/* game popup functions for gamarena & dynamite
 * need common.js
 * included in game_popup.tpl
 */
var global_visible_popups = [];
var flash_name;

function popupPlayWindow(url, features) {
    features = features == undefined ? {} : features;
    if (typeof(features) != "object") {
        // convert json string to be dictionary obj
        features = eval('('+features+')')
    }

    if (features.width == undefined) {
        features.width = 986;
    }
    if (features.height == undefined) {
        features.height = 2000;
    }

    popupWindow(url, 'GamePopupWindow', features);
    hidePopups();
}

function showNotLoggedInPopup() {
    var popup = e$("not_logged_in_popup");
    hidePopups();
    showCentralizedPopup(popup);
}

function playEventHandler(game_id)
{
    this.onclick = function()
    {
        clickGame(game_id);
        return false;
    };
}

function showGameInfoPopup(name, not_display_watch, game_id) {
    var popup = e$("game_info_popup");
    var linkPlay = e$("game_info_play_btn");
    var watch_intro_button = e$("watch_intro");
    changeStyleForGameInfoPopup(true, popup);
    if (watch_intro_button && not_display_watch) {
        watch_intro_button.style.display = "none";
    }
    if(linkPlay != null){
        if(game_id != undefined && game_id != null) {
            var handler = new playEventHandler(game_id);
            linkPlay.onclick = handler.onclick;
            linkPlay.style.display = "";
        }else{
            linkPlay.style.display = "none";
        }
        linkPlay = null;
    }

    var request = getHttpRequest();
    request.onreadystatechange = function() {
        if(request.readyState == 4) {
            var resp;
            if(request.status == 200)
                resp = request.responseText;
            else
                resp = getDefaultErrorMessage();
            popup.getElementsByTagName('div')[0].innerHTML = resp;
            flash_name = name;
            hidePopups();
            showCentralizedPopup(popup);
            popup = null;
            request = null;
        }
    }
    var url = gameinfo_path + name;
    request.open("GET", url, true);
    request.send(null);
}

function showIntroMovie() {
    var play_button = e$("game_info_play_btn");
    if (play_button.style.display != "none") {
        play_button.style.display = "none";
        play_button.name = "should display";
    }
    var popup = e$("game_info_popup");
    changeStyleForGameInfoPopup(false, popup);
    var movie_name = flash_name + '.swf';
    var movie_obj = '<embed height="320" width="400" src="/common/' +
                    movie_name + '" type="application/x-shockwave-flash" />';
    popup.getElementsByTagName('div')[1].innerHTML = movie_obj;
}

function backGameInfoPopup() {
    var popup = e$("game_info_popup");
    var play_button = e$("game_info_play_btn");
    if (play_button.name == "should display") {
        play_button.style.display = "";
    }
    changeStyleForGameInfoPopup(true, popup);
}

function changeStyleForGameInfoPopup(display_watch_intro, popup) {
    var watch_intro_button = e$("watch_intro");
    var back_button = e$("back_game_info");

    var style_1;
    var style_2;
    if (display_watch_intro) {
        style_1 = "";
        style_2 = "none";
    } else {
        style_1 = "none";
        style_2 = "";
    }

    if (watch_intro_button) {
        watch_intro_button.style.display = style_1;
    }
    if (back_button) {
        back_button.style.display = style_2;
    }
    popup.getElementsByTagName('div')[0].style.display = style_1;
    popup.getElementsByTagName('div')[1].style.display = style_2;
}

function insertFlashObject(flash_name) {
    var movie_name = flash_name + '.swf';
    var movie_obj = '<embed height="300" width="400" src="/common/' +
                    movie_name + '" type="application/x-shockwave-flash" />';
    var flash_block = e$("flash_block");
    if (flash_block) {
        flash_block.innerHTML = movie_obj;
    }
}
