window.onload = function() {

    if (!demoGame || !games || !games[demoGame])
        return;

    window['game'] = games[demoGame];

    // Set window size according to game

    var width = 850;
    var height = 600;

    var widthDiff = game.win_width ? game.win_width - width : 0;
    var heightDiff = game.win_height ? game.win_height - height : 0;

    window.resizeBy(widthDiff, heightDiff);

    // Send request to server for opening demo table

    if (game.demo_server.apiVersion == '1') {
        getDemoGameTable(function(gameTable) {
                             getDemoGame(gameTable, function(gid) {
                                             openGame(gid);
                                         });
                         });
    }
    else {
        createDemoGame(function(gid) {
                           openGame(gid);
                       });
    }
};



function getDemoGameTable(onComplete) {

    var remoteServer = game.demo_server.demo_connection;

    remoteServer.sendRequest('get_tables', {'game_id': game.game_id}, function(response) {
        var gameTable = null;
        if (response.status == 'ok') {
            for (var i in response.tables) {
                if (response.tables[i].GameID == game.game_id &&
                    response.tables[i].ModGame == game.mod_game &&
                    response.tables[i].currency == 'fun') {

                    gameTable = response.tables[i].TableID;
                    break;
                }
            }
        }
        onComplete(gameTable);
    });
}



function getDemoGame(gameTable, onComplete) {

    var remoteServer = game.demo_server.demo_connection;

    remoteServer.sendRequest('get_demo_game', {'table': gameTable}, function(response) {
        onComplete(response.game);
    });
}



function createDemoGame(onComplete) {

    var remoteServer = game.demo_server.demo_connection;

    remoteServer.sendRequest('create_demo_game', {'game_name': demoGame}, function(response) {
        onComplete(response.result.gid);
    });
}



function openGame(gid) {
    if (!gid) {
        alert('Sorry, this game is not available.');
        window.close();
        return;
    }
    window.location.href = game.demo_server.demo_connection.address + game.demo_server.connection.launchScript + gid;
}
