﻿document.domain = "365ub.com";
(function($) {
    $.UpalLogin = {
        Init: function(options) {
            var dataurl = "http://passport.365ub.com/";
            var Settings = {
                UserNameInputId: "#UserName",
                PassWordInputId: "#PassWord",
                SubmitButtonId: "#LoginBtn",
                IsRemoberCheckBoxId: "",
                MsgSpanId: "",
                LoginDivId: "#Login",
                GameId: 0,
                GameServerURL: "",
                NickNameLiId: "#NickName",
                ServerListLiId: "#ServerList",
                LoginSuccessDivId: "#LoginSuccess"
            };
            if (options) $.extend(Settings, options);

            Settings.UserNameInputId = $.trim(Settings.UserNameInputId);
            Settings.PassWordInputId = $.trim(Settings.PassWordInputId);
            Settings.SubmitButtonId = $.trim(Settings.SubmitButtonId);
            Settings.IsRemoberCheckBoxId = $.trim(Settings.IsRemoberCheckBoxId);
            Settings.MsgSpanId = $.trim(Settings.MsgSpanId);
            Settings.LoginDivId = $.trim(Settings.LoginDivId);
            Settings.LoginSuccessDivId = $.trim(Settings.LoginSuccessDivId);
            Settings.GameServerURL = $.trim(Settings.GameServerURL);
            Settings.NickNameLiId = $.trim(Settings.NickNameLiId);
            Settings.ServerListLiId = $.trim(Settings.ServerListLiId);

            var isExistErrSpan = false;
            var isExistRemober = false;
            isExistErrSpan = Settings.MsgSpanId != "";
            isExistRemober = Settings.IsRemoberCheckBoxId != "";
            var partn = /^#/;
            if (!partn.test(Settings.UserNameInputId))
                Settings.UserNameInputId = "#" + Settings.UserNameInputId;
            if (!partn.test(Settings.PassWordInputId))
                Settings.PassWordInputId = "#" + Settings.PassWordInputId;
            if (!partn.test(Settings.SubmitButtonId))
                Settings.PassWordInputId = "#" + Settings.SubmitButtonId;
            if (isExistErrSpan && !partn.test(Settings.MsgSpanId))
                Settings.MsgSpanId = "#" + Settings.MsgSpanId;
            if (isExistRemober && !partn.test(Settings.IsRemoberCheckBoxId))
                Settings.IsRemoberCheckBoxId = "#" + Settings.IsRemoberCheckBoxId;
            if (!partn.test(Settings.LoginDivId))
                Settings.LoginDivId = "#" + Settings.LoginDivId;
            if (!partn.test(Settings.LoginSuccessDivId))
                Settings.LoginSuccessDivId = "#" + Settings.LoginSuccessDivId;
            if (!partn.test(Settings.ServerListLiId))
                Settings.ServerListLiId = "#" + Settings.ServerListLiId;
            if (!partn.test(Settings.NickNameLiId))
                Settings.NickNameLiId = "#" + Settings.NickNameLiId;

            var UserNameInput = $(Settings.UserNameInputId);
            var PassWordInput = $(Settings.PassWordInputId);
            var SubmitButton = $(Settings.SubmitButtonId)
            var MsgSpan = undefined;
            if (isExistErrSpan)
                MsgSpan = $(Settings.MsgSpanId);

            MsgAlert = function(msg) {
                if ($.trim(msg) == "")
                    return;
                if (isExistErrSpan) {
                    MsgSpan.html(msg);
                }
                else {
                    alert(msg);
                }
            };

            SubmitButton.click(function() {
                var UserName = $.trim(UserNameInput.val());
                var PassWord = $.trim(PassWordInput.val());
                var isRemober = 0;

                if (UserName == "") {
                    MsgAlert("账号不能为空！");
                    UserNameInput.focus();
                    return;
                }
                if (PassWord == "") {
                    MsgAlert("密码不能为空！");
                    PassWordInput.focus();
                    return;
                }

                var UserNamePartn = /^[a-zA-Z0-9_]{3,20}$/;
                if (!UserNamePartn.test(UserName)) {
                    MsgAlert("账号不存在!");
                    UserNameInput.focus();
                    return;
                }
                var PassWordPartn = /^[a-zA-Z0-9!@#$%^&\*(),]{6,20}$/;
                if (!PassWordPartn.test(PassWord)) {
                    MsgAlert("密码错误!");
                    PassWordInput.focus();
                    return;
                }

                if (isExistRemober) {
                    isRemober = $(Settings.IsRemoberCheckBoxId).checked == true ? 1 : 0;
                }

                $.ajax({
                    url: dataurl + "login.ashx",
                    dataType: "jsonp",
                    type: "GET",
                    data: ({ UserName: UserName, PassWord: PassWord, Remober: isRemober }), 
                    jsonp: "jsonpcallback",
                    success: function(data) {
                        if (!data.Result) {
                            MsgAlert(data.Msg)
                        }
                        ChangeLoginStats();
                    }
                });//ajax
            }); //click

            GetLoginCookie = function(keyName) {
                var cookieName = "Upal_COOKIES";
                if (document.cookie.length > 0) {
                    var re = new RegExp((keyName ? cookieName + "=(.*?&)*?" + keyName + "=(.*?)(&|;)" : cookieName + "=(.*?);"), "i");
                    return re.test(decodeURIComponent(document.cookie)) ? (keyName ? RegExp["$2"] : RegExp["$1"]) : "";
                }
                else {
                    return "";
                }
            } //GetLoginCookie

            ChangeLoginStats = function() {
                var strUserId = GetLoginCookie("UpalUserId");
                var strUserName = GetLoginCookie("UpalUserName");
                var strNickName = GetLoginCookie("UpalNickName");
                var userId = strUserId == "" ? 0 : parseInt(strUserId);

                var isLogin = (userId > 0 && strUserName != "" && strUserName.length > 3 && strNickName != "" && strNickName.length > 0);

                if (isLogin) {
                    $(Settings.LoginDivId).hide();
                    $(Settings.LoginSuccessDivId).show();

                    $(Settings.NickNameLiId).empty().append(strNickName);
                    $.ajax({
                    url: dataurl + "UserGameList.ashx",
                        dataType: "jsonp",
                        type: "GET",
                        data: ({ UserId: userId, Game: Settings.GameId }),
                        jsonp: "jsonpcallback",
                        success: function(data) {
                            if (data != null && data.length > 0) {
                                var serverList = "您最近登录过：<br/>";
                                serverList = serverList + data;
                                $(Settings.ServerListLiId).empty().append(serverList);
                            }
                            else {
                                $(Settings.ServerListLiId).empty().append("你还没有玩过游戏<br/><li><a href=\"" + Settings.GameServerURL + "\">-服务器中心-</a><li>");
                            }
                        }
                    }); //ajax
                }
                else {
                    $(Settings.LoginDivId).show();
                    $(Settings.LoginSuccessDivId).hide();
                }
            } //ChangeLoginStats
            ChangeLoginStats();
        } //init
    }//UpalLogin
})(jQuery);
