﻿ConstData.Login = {};

//「已登录账号」编号
ConstData.Login.LoginedAccountID = "aLoginedAccount";
//「退出登陆」编号
ConstData.Login.LogoutID = "aLogout";
//「已登录区域」编号
ConstData.Login.LoginAreaID = "divLoginedArea";
//「未登录区域」编号
ConstData.Login.LogoutAreaID = "divNoLoginedArea";
//「我的帐户」编号
ConstData.Login.MyAccountID = "wdzh";

//「帐号」编号
ConstData.Login.AccountID = "txtLoginAccount";
//「密码」编号
ConstData.Login.PasswordID = "txtLoginPassword";
//「验证码」编号
ConstData.Login.AuthCodeID = "txtLoginAuthCode";
//「验证图」编号
ConstData.Login.AuthImageID = "imgLoginAuthImage";
//「登录」编号
ConstData.Login.LoginID = "btnLogin";
//「文本框聚焦」样式名称
ConstData.Login.TextInputStyleName = "login_text_input";

ConstData.Login.Dialog = {};

ConstData.Login.Dialog.ID = "login_dialog";
ConstData.Login.Dialog.ProcessID = "login_dialog_process";

//「账号」编号
ConstData.Login.Dialog.AccountID = "txtAccount";
//「密码」编号
ConstData.Login.Dialog.PasswordID = "txtPassword";
//「验证码」编号
ConstData.Login.Dialog.AuthCodeID = "txtAuthCode";
//「验证图」编号
ConstData.Login.Dialog.AuthImageID = "imgAuthImage";
//「换一张」编号
ConstData.Login.Dialog.ChangeAuthImageID = "aChangeAuthImageID";
//「登录」编号
ConstData.Login.Dialog.LoginID = "btnLogin";
//「取消」编号
ConstData.Login.Dialog.CancelID = "btnCancel";

//「登录」回调事件
ConstData.Login.Dialog.LoginCallbackEvent = "logincallback";
//「关闭」回调事件
ConstData.Login.Dialog.CloseCallbackEvent = "closecallback";

//登录
function Login()
{
    if ($.trim($("#" + ConstData.Login.Dialog.AccountID).val()).length <= 0)
    {
        Dialog.ShowWarnMessage("请输入帐号", function ()
        {
            $("#" + ConstData.Login.Dialog.AccountID).focus();
        });
        return;
    }

    if ($.trim($("#" + ConstData.Login.Dialog.PasswordID).val()).length <= 0)
    {
        Dialog.ShowWarnMessage("请输入密码", function ()
        {
            $("#" + ConstData.Login.Dialog.PasswordID).focus();
        });
        return;
    }

    if ($.trim($("#" + ConstData.Login.Dialog.AuthCodeID).val()).length <= 0)
    {
        Dialog.ShowWarnMessage("请输入验证码", function ()
        {
            $("#" + ConstData.Login.Dialog.AuthCodeID).focus();
        });
        return;
    }

    Dialog.ShowLoginProcessMessage("正在登录，请稍候...");

    $.ajax(
    {
        url: "/Login/LoginAction.ashx",
        type: "POST",
        data: { ACCOUNT: $('#' + ConstData.Login.Dialog.AccountID).val(), PASSWORD: $('#' + ConstData.Login.Dialog.PasswordID).val(), AUTHCODE: $('#' + ConstData.Login.Dialog.AuthCodeID).val() },
        success: function (paraReturnCode)
        {
            if (paraReturnCode == "0")
            {
                $("#" + ConstData.Login.LoginedAccountID).text($('#' + ConstData.Login.Dialog.AccountID).val().toLowerCase());
                $("#" + ConstData.Login.LogoutAreaID).css("display", "none");
                $("#" + ConstData.Login.LoginAreaID).css("display", "block");
                $("#" + ConstData.Login.MyAccountID).css("display", "block");

                Dialog.Close(ConstData.Login.Dialog.ProcessID);
                if ($.dialog.list[ConstData.Login.Dialog.ID] != null)
                {
                    $.dialog.list[ConstData.Login.Dialog.ID].unlock();
                    $.dialog.list[ConstData.Login.Dialog.ID].hide();
                }

                $("#" + ConstData.Login.Dialog.LoginID).trigger(ConstData.Login.Dialog.LoginCallbackEvent);
            }
            else
            {
                Dialog.ShowWarnMessage(ConstData.Message.GetErrorMessage(paraReturnCode), function ()
                {
                    $("#" + ConstData.Login.Dialog.AuthImageID).trigger("click");

                    switch (paraReturnCode)
                    {
                        case "200":
                            $("#" + ConstData.Login.Dialog.AccountID).focus();
                            $("#" + ConstData.Login.Dialog.AccountID).select();
                            break;
                        default:
                            break;
                    }
                    Dialog.Close(ConstData.Login.Dialog.ProcessID);
                });
            }
        },
        error: function ()
        {
            Dialog.ShowErrorMessage(ConstData.Message.InvokeServerMethodError, function ()
            {
                $("#" + ConstData.Login.Dialog.AuthImageID).trigger("click");
                Dialog.Close(ConstData.Login.Dialog.ProcessID);
            });
        }
    });
}

Dialog.Login = function (paraLoginCallback, paraCloseCallback)
{
    var table = "<table class='login_dialog_table' border=0>" +
                        "<tr>" +
                            "<td>　帐号：</td>" +
                            "<td colspan='2' style='padding-top: 4px; padding-left: 1px; padding-right: 8px;'><input id='" + ConstData.Login.Dialog.AccountID + "' type='text' tabindex='1' maxlength='20' /></td>" +
                            "<td><a href='/Register/Register.aspx' target='_blank'>注册帐号</a></td>" +
                        "</tr>" +
                        "<tr>" +
                            "<td>　密码：</td>" +
                            "<td colspan='2' style='padding-top: 4px; padding-left: 1px; padding-right: 8px;'><input id='" + ConstData.Login.Dialog.PasswordID + "' type='password' tabindex='2' maxlength='20' /></td>" +
                            "<td><a href='/JumptoUserCenter.aspx?target=wjmm' target='_blank'>忘记密码</a></td>" +
                        "</tr>" +
                        "<tr>" +
                            "<td>验证码：</td>" +
                            "<td style='padding-top: 4px; padding-left: 1px;'><input id='" + ConstData.Login.Dialog.AuthCodeID + "' type='text' style='width:70px' tabindex='3' maxlength='4' /></td>" +
                            "<td style='padding-top: 4px; '><img id='" + ConstData.Login.Dialog.AuthImageID + "' src='/AuthCode.aspx?d=" + new Date().toLocaleTimeString() + "'/></td>" +
                            "<td><a id='" + ConstData.Login.Dialog.ChangeAuthImageID + "'>换一张</a></td>" +
                        "</tr>" +
                        "<tr>" +
                            "<td colspan='4' style='padding-top: 12px; text-align:right;'><button id='" + ConstData.Login.Dialog.LoginID + "' tabindex='4'>登录</button><button id='" + ConstData.Login.Dialog.CancelID + "' tabindex='5'>取消</button></td>" +
                        "</tr>" +
                     "</table>";
    $.dialog(
    {
        closeFn: function ()
        {
            RefreshAuthCode(ConstData.Login.Dialog.AuthImageID);

            $("#" + ConstData.Login.Dialog.LoginID).trigger(ConstData.Login.Dialog.CloseCallbackEvent);

            $("#" + ConstData.Login.Dialog.LoginID).unbind(ConstData.Login.Dialog.LoginCallbackEvent);
            $("#" + ConstData.Login.Dialog.LoginID).unbind(ConstData.Login.Dialog.CloseCallbackEvent);
            $("#" + ConstData.Login.Dialog.LoginID).unbind("click");
            $("#" + ConstData.Login.Dialog.CancelID).unbind("click");
            $("#" + ConstData.Login.Dialog.AuthImageID).unbind("click");
            $("#" + ConstData.Login.Dialog.ChangeAuthImageID).unbind("click");
        },
        content: table,
        id: ConstData.Login.Dialog.ID,
        initFn: function ()
        {
            if (paraLoginCallback != null)
                $("#" + ConstData.Login.Dialog.LoginID).bind(ConstData.Login.Dialog.LoginCallbackEvent, paraLoginCallback);

            if (paraCloseCallback != null)
                $("#" + ConstData.Login.Dialog.LoginID).bind(ConstData.Login.Dialog.CloseCallbackEvent, paraCloseCallback);

            $("#" + ConstData.Login.Dialog.LoginID).bind("click", Login);

            $("#" + ConstData.Login.Dialog.CancelID).bind("click", function () { Dialog.Close(ConstData.Login.Dialog.ID); });

            $("#" + ConstData.Login.Dialog.AccountID + ",#" + ConstData.Login.Dialog.PasswordID + ",#" + ConstData.Login.Dialog.AuthCodeID).keydown(function (event)
            {
                if (event.keyCode == 13)
                {
                    if ($.browser.msie && ($.browser.version == "8.0" || $.browser.version == "9.0"))
                        return;
                    $(this).blur();
                    setTimeout("Login()", 10);
                }
            });

            $("#" + ConstData.Login.Dialog.AuthImageID + ",#" + ConstData.Login.Dialog.ChangeAuthImageID).bind("click", function ()
            {
                $("#" + ConstData.Login.Dialog.AuthImageID).attr("src", "/AuthCode.aspx?ref=" + new Date().getTime());
                $("#" + ConstData.Login.Dialog.AuthCodeID).focus();
                $("#" + ConstData.Login.Dialog.AuthCodeID).select();
            });

            $("#" + ConstData.Login.Dialog.AccountID).focus();
        },
        lock: true,
        padding: 0,
        title: '登录'
    });
}

Dialog.ShowLoginProcessMessage = function (paraMessage)
{
    if ($.dialog.list[ConstData.Login.Dialog.ProcessID] != null)
    {
        $.dialog.list[ConstData.Login.Dialog.ProcessID].content(paraMessage);
    }
    else
    {
        $.dialog(
        {
            content: '<img src="/Images/Dialog/loading.gif" style="padding-top: 1px;"></img>&nbsp' + paraMessage,
            esc: false,
            id: ConstData.Login.Dialog.ProcessID,
            lock: true,
            title: false
        });
    }
}
