﻿if (!this.Lobby) {
    this.Lobby = {};
}

(function() {
	
 	//var rootDir = '/lobby';
 	var rootDir = '/';

	var ExitFunc = function() {//强制退出登陆

		var ps = {
			sessionid: $.cookie("LSESSIONID")
		};

		var jsonStr = JSON.stringify(ps);

		$.ajax({
			//url: rootDir + '/CommonService/AcctService.svc/QuitGame',
			url: rootDir + '/index.php?c=Game21BallService&a=logout',
			type: 'POST',
			data: jsonStr,
			dataType: "json",
			contentType: "application/json; charset=utf-8",
			error: function() {
				alert('网络超时，请重试');
			},
			success: function(data) {

			}
		});

		$.cookie("LSESSIONID", null);
		//top.location.href = rootDir + '/viewer/Login.htm';
		top.location.href = rootDir + '/index.php?c=main&a=index';
	} 

	var QuitCasino = function() {
		
		var box = document.createElement('DIV'),
			txt = document.createElement('DIV'),
			style = document.createElement('link');

		style.rel = 'stylesheet';
		style.type = 'text/css';
		style.href = rootDir + '/viewer/scripts/Quit_casino.css';

		box.id = 'Casino_error';
		txt.id = 'Casino_error_txt';
		txt.innerHTML = '您的帐号在其它地方登录或会话失效，请重新登录!';
		box.appendChild(txt);

		document.body.appendChild(style);
		document.body.appendChild(box);

		setTimeout(function() {
			$('#Casino_error').show();
			ExitFunc();
		}, 3000);
	}

	var Identity = function() {
		var level = $.cookie("LEVEL");
		
		if (level != 40) {
			//window.location.href = rootDir + '/viewer/Login.htm';
			window.location.href = rootDir + '/index.php?c=main&a=index';
		}
	};
	
	var LobbyHeartBeat = function() {//agent 下
		var ps = {
			sessionid: $.cookie("LSESSIONID")
		};

		var jsonStr = JSON.stringify(ps);

		$.ajax({
			//url: rootDir + '/CommonService/AcctService.svc/DoLobbyHeart',
			url: '/index.php?c=agent_Game21BallService&a=DoLobbyHeart',
			type: 'POST',
			data: jsonStr,
			dataType: "json",
			contentType: "application/json; charset=utf-8",
			error: function() {
				alert('网络超时，请重试');
			},
			success: function(data) {
			  if(!data){
                if (data.response.value == 9)
			    {
				   QuitCasino();
			    } 
			  }
			}
		});
	    
	}

	window.QuitCasino = QuitCasino || {};
	window.ExitFunc = ExitFunc || {};
	window.Identity = Identity || {};
	window.LobbyHeartBeat = LobbyHeartBeat || {};

}) ();

(function() {

    if (typeof Lobby.call_web_service != 'function') {
        Lobby.call_web_service = function(param) {
            if (param == null)
                return;

            var varUrl, varData;
            varUrl = param.varUrl;

            varData = {};
            if (param.varData != undefined)
                varData = param.varData;

            var cb_service_succeeded = null, cb_service_failed = null;
            var type = "POST";
            var contentType = "application/json; charset=utf-8";

            if (param.cb_success != undefined)
                cb_service_succeeded = param.cb_success;

            if (param.cb_failed != undefined)
                cb_service_failed = param.cb_failed;

            if (param.type != undefined)
                type = param.type;

            if (param.contentType != undefined)
                contentType = param.contentType;

            var varCache = true;
            if (param.varCache != undefined)
                varCache = param.varCache;

            var varAsync = true;
            if (param.varAsync != undefined)
                varAsync = param.varAsync;

            var session = { sessionid: $.cookie("LSESSIONID") };
            var ps = Lobby.json_merge(varData, session);
            var jsonStr = JSON.stringify(ps);

            $.ajax({
                type: type, //GET or POST or PUT or DELETE verb
                url: varUrl, // Location of the service
                data: jsonStr, //Data sent to server
                contentType: contentType, // content type sent to server
                dataType: "json", //Expected data format from server
                cache: varCache,
                async: varAsync,
                success: function(data) {// call back function on Successfull service call
                    //alert(JSON.stringify(data));
                    if (Lobby.response_common_process(data) && cb_service_succeeded != null)
                        cb_service_succeeded(data);
                },
                error: cb_service_failed
            });
        }

        Lobby.session_id = function() {
            return $.cookie("LSESSIONID");
        }

        Lobby.return_error = function(msg) {
            alert(msg);
            //window.location.href = "/index.htm";
            window.location.href = "/index.php";
        }

    }

    //TODO放这儿好吗？
    //TODO 对于jqgride其他的事件，如何处理，貌似有需要的还得加到param才行
    if (typeof Lobby.show_jqGrid != 'function') {
        Lobby.show_jqGrid = function(param) {
            if (param == null
            //允许不传入varUrl,则只生成表格，等待其他插入数据
            //        || param.varUrl == undefined
        || param.varColNames == undefined
        || param.varColModel == undefined)

                return;

            var varUrl, varColNames, varColModel;

            varUrl = param.varUrl;
            varColModel = param.varColModel;
            varColNames = param.varColNames;


            var varResponse_data_process = null;
            var varRowNum = 20;
            var varRowList = [20, 40, 60];
            var varLoadtext = '读取信息中......';
            var varData = null;
            var varSortname = null;
            var varHeight = 300, varWidth;
            var varfooterrow = false;
            var varCaption = "";

            varGridName = "#grid_id";
            varUrl = null;

            if (param.varfooterrow != undefined)
                varfooterrow = param.varfooterrow;

            if (param.varUrl != undefined)
                varUrl = param.varUrl;

            if (param.varResponse_data_process != undefined)
                varResponse_data_process = param.varResponse_data_process;

            if (param.varRowNum != undefined)
                varRowNum = param.varRowNum;

            if (param.varRowList != undefined)
                varRowList = param.varRowList;

            if (param.varLoadtext != undefined)
                varLoadtext = param.varLoadtext;

            if (param.varData != undefined)
                varData = param.varData;

            if (param.varSortname != undefined)
                varSortname = param.varSortname;

            if (param.varHeight != undefined)
                varHeight = param.varHeight;

            if (param.varWidth != undefined)
                varWidth = param.varWidth;

            if (param.varWidth != undefined)
                varWidth = param.varWidth;

            if (param.varCaption != undefined)
                varCaption = param.varCaption;

            varGridName = "#grid_id";
            if (param.varGridName != undefined)
                varGridName = param.varGridName;

            varPagerName = '#pager';
            if (param.varPagerName != undefined)
                varPagerName = param.varPagerName;

            varPage = 1;
            if (param.varPage != undefined)
                varPage = param.varPage;


            jQuery(varGridName).jqGrid({
                caption: varCaption,
                width: varWidth,
                height: varHeight,
                url: varUrl,
                datatype: 'json',
                mtype: 'POST',
                colNames: varColNames,
                colModel: varColModel,
                pager: jQuery(varPagerName),
                rowNum: varRowNum,
                rowList: varRowList,
                viewrecords: true,
                imgpath: 'themes/basic/images',
                loadtext: varLoadtext,
                sortname: varSortname,
                footerrow: varfooterrow,
                postData: { sessionid: $.cookie("LSESSIONID") },
                jsonReader: {
                    repeatitems: false
                },
                page: varPage,
                ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },

                serializeGridData: function(data) {
                    //            data.test = true;
                    //            return JSON.stringify(data);

                    $(varGridName).appendPostData(varData);

                    var pd = $(varGridName).getPostData();
                    return JSON.stringify(pd);
                },
                loadError: function() {
                    //alert("Web Service Request Failed");
                    alert("读取服务器信息错误");
                },
                loadComplete: function(data) {
                    //alert(JSON.stringify(data));
                    //var response = jQuery("#grid_id").getUserData();
                    if (Lobby.response_common_process(data) && (varResponse_data_process != null))
                        varResponse_data_process(data);

                }
            });
        }
    }

    if (typeof Lobby.response_common_process !== 'function') {
        Lobby.response_common_process = function(data) {
            if (data != null && data.response != undefined && (data.response.value != 0 && data.response.value != -1 && data.response.value != 9)) {
                alert(data.response.msg);
                return false;
            }
            if (data == null || (data.response != undefined && data.response.value == -1)) {
                alert("网络超时，请等待！");
                //     url = 'http://' + window.location.host + '/Lobby/viewer/login.htm';
                //     window.top.location.href = url; //TODO 这个路径怎么寻？
                return false;
            }


            if (data == null || (data.response != undefined && data.response.value == 9)) {
                QuitCasino();
                //     url = 'http://' + window.location.host + '/Lobby/viewer/login.htm';
                //     window.top.location.href = url; //TODO 这个路径怎么寻？
                return false;
            } return true;
        }
    }

    if (typeof Lobby.json_merge != 'function') {
        Lobby.json_merge = function(json1, json2) {
            var result = json1;
            for (k in json2) {
                result[k] = json2[k];
            }
            return result;
        }
    }

    if (typeof Lobby.query != 'function') {

        Lobby.query = function() {
            var Url = window.location.href;
            var u, g, StrBack = '';
            if (arguments[arguments.length - 1] == "#")
                u = Url.split("#");
            else
                u = Url.split("?");
            if (u.length == 1) g = '';
            else g = u[1];

            if (g != '') {
                gg = g.split("&");
                var MaxI = gg.length;
                str = arguments[0] + "=";
                for (i = 0; i < MaxI; i++) {
                    if (gg[i].indexOf(str) == 0) {
                        StrBack = gg[i].replace(str, "");
                        break;
                    }
                }
            }
            return StrBack;
        }
    }

    //end main function()
} ())


