﻿var arrSpaceGameData_GINDEX = -1;
var arrSpaceGameData_AINDEX = -1;
var arrSpaceGameData_ATTRS;

function InitializationSpaceGameForSelect(gid, aid, sid, initattr, subDisplay){    
    var gobj = $("#" + gid);
    var aobj = $("#" + aid);
    var sobj = $("#" + sid);
    
    if(!gobj.is("select") || !aobj.is("select") || !sobj.is("select")){
        return;
    }    
    var defaultAttr={"disabled":true};
    arrSpaceGameData_ATTRS = $.extend(defaultAttr, initattr || {});

    spaceGameDataBind(gid, arrSpaceGameData, "gameId", "gameName");
    
    initGameSubControl(aid,{"请选择":"请选择大区"}, arrSpaceGameData_ATTRS);
    initGameSubControl(sid,{"请选择":"请选择服务器"}, arrSpaceGameData_ATTRS);
    initGameSubControlDisplay(aid, subDisplay);
    initGameSubControlDisplay(sid, subDisplay);
    
    gobj.bind("change", function(){
        arrSpaceGameData_GINDEX = gobj[0].selectedIndex - 1;
       
        if(gobj.val() == "请选择"){
            initGameSubControl(aid, {"请选择":"请选择大区"}, arrSpaceGameData_ATTRS);
            initGameSubControl(sid, {"请选择":"请选择服务器"}, arrSpaceGameData_ATTRS);
            initGameSubControlDisplay(aid, subDisplay);
            initGameSubControlDisplay(sid, subDisplay);

            arrSpaceGameData_AINDEX = -1;
            return;
        }
        
        aobj.attr({"disabled":false,"visible":true});
        spaceGameDataBind(aid, arrSpaceGameData[arrSpaceGameData_GINDEX].sub, "GameAreaId", "gameAreaName");
        initGameSubControlDisplay(aid, true);
        initGameSubControlDisplay(sid, subDisplay);
    });
    
    aobj.bind("change", function(){
        arrSpaceGameData_AINDEX = aobj[0].selectedIndex - 1;
        
        if(gobj.val() == "请选择" || aobj.val() == "请选择"){
            initGameSubControl(sid, {"请选择":"请选择服务器"}, defaultAttr);
            initGameSubControlDisplay(sid, subDisplay);
            return;
        }
        sobj.attr({"disabled":false,"visible":true});
        spaceGameDataBind(sid, arrSpaceGameData[arrSpaceGameData_GINDEX].sub[arrSpaceGameData_AINDEX].sub, "GameServerId", "gameServerName");
        initGameSubControlDisplay(sid, true);
    });
    gobj.trigger("change");    
    
}

function spaceGameDataBind(cid, gamedata, key, val){
    var cobj = $("#" + cid);
    cobj.children().remove();
    $("<option value='请选择'>请选择</option>").appendTo(cobj);
    for(var i=0;i<gamedata.length;i++){
        $("<option value=\"" + gamedata[i][key] + "\">" + gamedata[i][val] + "</option>").appendTo(cobj);
    }
}

function initGameSubControl(cid, defaultData, attrs){
    var cobj = $("#" + cid);
    cobj.children().remove();
    for(key in defaultData){
        $("<option value=\"" + key + "\">" + defaultData[key] + "</option>").appendTo(cobj);
    }
    cobj.attr(attrs);
}

function initGameSubControlDisplay(cid, flag){
    var cobj = $("#" + cid);
    if(flag){
        cobj.css("display", "");
    }
    else{
        cobj.css("display", "none");
    }
}