﻿// JScript 文件

var arrTips = new Array();
arrTips["m_edt登录帐号"] = "登录名必须是字母、数字、下划线或中文！";
arrTips["m_edt密码"] = "要想使您的密码更安全，可采取以下方法：<br />- 使用字母和数字<br />- 使用特殊字符(如@)<br />- 混合使用大小写<br />- 密码长度必须大于等于6位";
arrTips["m_edt邮箱"] = "当您注册新用户或试图找回密码，信息将被发送到该邮箱。";
arrTips["m_edt安全提示问题"] = "最好是您自己记得住，但别人猜测不到的问题！<br />- 用于忘记密码后自行取回密码！";
arrTips["m_edt安全答案"] = "最好是您自己记得住，但别人猜测不到的答案！<br />- 用于忘记密码后自行取回密码！";
arrTips["m_edt用户编码"] = "此用户编码为打开软件后标题栏中显示的十位数字编码。";
arrTips["m_edt公司网址"] = "格式为：http://www.cjx.com.cn。";
arrTips["m_ddl是否开放您的个人信息"] = "设置您个人信息的开放范围。";
arrTips["m_ddl是否开放您的公司信息"] = "设置您公司信息的开放范围。";
arrTips["m_edt验证码"] = "验证码可以防止恶意注册。";

//密码找回
var arrTipsByFP = new Array();
arrTipsByFP["m_edt登录帐号"] = "用以登录本网站/论坛的登录名！";
arrTipsByFP["m_edt安全提示问题"] = "注册会员时您所填写的安全提示问题！";
arrTipsByFP["m_edt安全答案"] = "注册会员时您所填写的安全答案！";
arrTipsByFP["m_edt验证码"] = "验证码可以防止恶意找回密码。";

//密码修改
var arrTipsByCP = new Array();
arrTipsByCP["m_edt旧密码"] = "用以登录本网站/论坛的原密码！";
arrTipsByCP["m_edt密码"] = "要想使您的密码更安全，可采取以下方法：<br />- 使用字母和数字<br />- 使用特殊字符(如@)<br />- 混合使用大小写<br />- 密码长度必须大于等于6位";

//登录
var arrTipsByLogin = new Array();
arrTipsByLogin["m_edt登录帐号"] = "用以登录本网站/论坛的登录名！";
arrTipsByLogin["m_edt登录密码"] = "用以登录本网站/论坛的密码！";
arrTipsByLogin["m_edt验证码"] = "验证码可以防止恶意登录。";

function CheckInfo(options)
{
    this.options =
    {
        clientID: null,
        imagePath: "",
        tipList: null,
        bindTip: null,
        winLoad: null,
        styleName: "",
        selectItem: null,
        selectTip: null,
        selectTipText: null,
        inputTimeHandle: null
    };
    $.extend(this.options, options);
    
    var me = this;
    this.options.selectTip = $("#m_divTips");
    this.options.selectTipText = $("#m_lblTips");
    
    this.getID = function(id)
    {
        return id.attr("id").replace(this.options.clientID, "");
    }
    
    this.getFullID = function(id)
    {
        return this.options.clientID + id;
    }
    
    this.showTips = function(e)
    {
        var ctl = $(e.target);
        var ctlExp = $("#" + ctl.attr("id") + "_Explain");
        if(ctl.val().length == 0 && (ctlExp == null || ctlExp.html() == null || ctlExp.html().length == 0))
        {
            if(me.options.tipList[me.getID(ctl)] != null)
            {
                var ctlTr = ctl.parent().next();
                var location = ctlTr.offset();
                var location1 = ctl.offset();
                me.options.selectTip.css("left", location.left + 5);
                me.options.selectTip.css("top", location1.top + 1);
                me.options.selectTip.css("display","block");
                me.options.selectTipText.html(me.options.tipList[me.getID(ctl)]);
                me.options.selectItem = ctl;
            }
        }
    }
    
    this.hideTips = function()
    {
        if(me.options.selectItem != null)
        {
            me.options.selectTip.css("display", "none");
            me.options.selectItem = null;
        }
    }
    
    this.changeFace = function()
    {
        var list = $("#" + me.getFullID("m_ddl头像"));
        var img = $("#m_img头像");
        if (img != null && list != null)
        {
            img.attr("src", me.options.imagePath + "/" + list.val());
        }
    }
    
    this.bindTipEvent = function()
    {
        for(var i = 0; i < this.options.bindTip.length; i++)
        {
            if(this.options.bindTip[i] == "m_ddl头像")
            {
                $("#" + this.getFullID(this.options.bindTip[i])).bind("change", me.changeFace);
            }
            else
            {
                $("#" + this.getFullID(this.options.bindTip[i])).bind("focus", me.showTips);
                $("#" + this.getFullID(this.options.bindTip[i])).bind("blur", me.hideTips);
            }
        }
    }
    
    this.regMatch = function(args, reg)
    {
        return args.match(reg) == null ? false : true;
    }

    //校验密码强度
    this.checkPWD = function(ctl1, ctlExp1, ctl2, ctlExp2, strAddTips)
    {
        var reg1 = /[0-9]/g;
        var reg2 = /[a-z]/g;
        var reg3 = /[A-Z]/g;
        var reg4 = /[^a-zA-Z0-9]/g;
        var iCount = 0;
        var ctl = $("#m_span密码");
        var txt = ctl1.val();
        if(txt.length < 6)
        {
            ctlExp1.html(strAddTips + "密码不能少于6位！");
            iCount = 0;
        }
        else
        {
            if(this.regMatch(txt, reg1) && this.regMatch(txt, reg2) && this.regMatch(txt, reg3) && this.regMatch(txt, reg4))
            {
                iCount = 4;
            }
            else if(this.regMatch(txt, reg1) && this.regMatch(txt, reg2) && this.regMatch(txt, reg3) ||
                this.regMatch(txt, reg2) && this.regMatch(txt, reg3) ||
                this.regMatch(txt, reg2) && this.regMatch(txt, reg4) ||
                this.regMatch(txt, reg3) && this.regMatch(txt, reg5))
            {
                if(txt.length > 8)
                {
                    iCount = 4;
                }
                else
                {
                    iCount = 3;
                }
            }
            else if(this.regMatch(txt, reg1) && this.regMatch(txt, reg2) ||
                this.regMatch(txt, reg1) && this.regMatch(txt, reg3) ||
                this.regMatch(txt, reg1) && this.regMatch(txt, reg4))
            {
                if(txt.length > 8)
                {
                    iCount = 3;
                }
                else
                {
                    iCount = 2;
                }
            }
            else
            {
                iCount = 1;
            }
            ctlExp1.empty();
            if(ctl1.val() != ctl2.val())
            {
                ctlExp2.html("请再次核对您的" + strAddTips + "密码！");
            }
            else
            {
                ctlExp2.empty();
            }
        }
        ctl.empty();
        for(var i=1; i<=iCount; i++)
        {
            ctl.html(ctl.html() + "■");
        }
        for(var j=iCount+1; j<=4; j++)
        {
            ctl.html(ctl.html() + "□");
        }
    }
    
    // 校验控件是否为空
    this.checkNull = function(ctl1, ctlExp1, tips)
    {
        if (ctl1.val().length == 0)
        {
            this.setTips(ctl1, ctlExp1, tips);
            return true;
        }
        else
        {
            ctlExp1.empty();
            return false;
        }
    }

    this.setTips = function(ctl1, ctlExp1, tips)
    {
        if(this.options.selectItem != null && ctl1[0] == this.options.selectItem[0])
        {
            this.hideTips();
        }
        ctlExp1.html(tips);
    }

    //注册
    this.CheckControl = function(ctl1, ctl2, ctl3, ctl4, ctl5)
    {
        var Control = $("#" + ctl1);
        var Control1;
        var ctlExp = null;
        var ctlExp1 = null;
        switch(me.getID(Control))
        {
            case "m_edt登录帐号":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "登录名不能为空！"))
                {
                    //Ajax 校验
                    var result = Control_UcRegister.CheckLoginCode(Control.val());
                    if(result.value == 1)
                    {
                        me.setTips(Control, ctlExp, "该登录名已经存在，请重新输入！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
            case "m_edt密码":
                Control1 = $("#" + ctl2);
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                ctlExp1 = $("#" + Control1.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "密码不能为空！"))
                {
                    me.checkPWD(Control, ctlExp, Control1, ctlExp1, "")
                }
                break;
            case "m_edt确认密码":
                Control1 = $("#" + ctl2);
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "确认密码不能为空！"))
                {
                    if(Control.val() != Control1.val())
                    {
                        me.setTips(Control, ctlExp, "请再次核对您的密码！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
            case "m_edt邮箱":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "邮箱不能为空！"))
                {
                    var reg = /^[a-z0-9_\-\.]+@[a-z0-9]+[a-z0-9_\-\.]*\.[a-z]{2,}$/i;
                    if(Control.val().match(reg) == null)
                    {
                        me.setTips(Control, ctlExp, "不是有效的邮件地址！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
            case "m_edt安全提示问题":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "安全提示问题不能为空！"))
                {
                    if(Control.val().length < 3)
                    {
                        me.setTips(Control, ctlExp, "安全提示问题不能少于6位！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
            case "m_edt安全答案":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "安全答案不能为空！"))
                {
                    if(Control.val().length < 3)
                    {
                        me.setTips(Control, ctlExp, "安全答案不能少于6位！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
            case "m_edt昵称":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "昵称不能为空！"))
                {
                    //Ajax 校验
                    var result = Control_UcRegister.CheckNickname(Control.val());
                    if(result.value == 1)
                    {
                        me.setTips(Control, ctlExp, "该帐号已经存在，请重新输入！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
            case "m_edt年":
            case "m_ddl月":
            case "m_ddl日":
                var srcY = $("#" + ctl2);
                var srcM = $("#" + ctl3);
                var srcD = $("#" + ctl4);
                ctlExp = $("#" + ctl5);
                if(srcY.val().length == 0 || srcY.val() == "19")
                {
                    ctlExp.empty();
                    break;
                }
                var reg1 = /^[0-9]{4}$/;
                if(srcY.val().match(reg1) == null || Number(srcY.val()) < 1900)
                {
                    me.setTips(Control, ctlExp, "出生日期格式不正确！");
                    break;
                }
                var date = new Date(srcY.val(), srcM.val(), 0).getDate();
                if(Number(srcD.val()) > date)
                {
                    me.setTips(Control, ctlExp, "出生日期格式不正确！");
                    break;
                }
                ctlExp.empty();
                break;
            case "m_edt公司网址":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(Control.val().length != 0)
                {
                    var reg1 = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/i;
                    if(Control.val().match(reg1) == null)
                    {
                        me.setTips(Control, ctlExp, "不是有效的网址（例：http://www.cjx.com.cn）！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                else
                {
                    ctlExp.empty();
                }
                break;
            case "m_edt验证码":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "验证码不能为空！");
                break;
        }
        var rtn = true;
        if(ctlExp != null)
        {
            if(ctlExp.html().length != 0)
            {
                rtn = false;
            }
        }
        if(!rtn && ctlExp1 != null)
        {
            if(ctlExp1.html().length != 0)
            {
                rtn = false;
            }
        }
        return rtn;
    }
    
    //密码找回
    this.CheckControlByFP = function(ctl1)
    {
        var Control = $("#" + ctl1);
        var ctlExp = null;
        switch(me.getID(Control))
        {
            case "m_edt登录帐号":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "登录名不能为空！")
                break;
            case "m_edt安全提示问题":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "安全提示问题不能为空！")
                break;
            case "m_edt安全答案":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "安全答案不能为空！")
                break;
            case "m_edt验证码":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "验证码不能为空！");
                break;
        }
        var rtn = true;
        if(ctlExp != null)
        {
            if(ctlExp.html().length != 0)
            {
                rtn = false;
            }
        }
        return rtn;
    }

    //密码修改
    this.CheckControlByCP = function(ctl1, ctl2)
    {
        var Control = $("#" + ctl1);
        var Control1;
        var ctlExp = null;
        var ctlExp1 = null;
        switch(me.getID(Control))
        {
            case "m_edt旧密码":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "旧密码不能为空！")
                break;
            case "m_edt密码":
                Control1 = $("#" + ctl2);
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                ctlExp1 = $("#" + Control1.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "新密码不能为空！"))
                {
                    me.checkPWD(Control, ctlExp, Control1, ctlExp1, "新")
                }
                break;
            case "m_edt确认密码":
                Control1 = $("#" + ctl2);
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                if(!me.checkNull(Control, ctlExp, "确认新密码不能为空！"))
                {
                    if(Control.val() != Control1.val())
                    {
                        me.setTips(Control, ctlExp, "请再次核对您的新密码！");
                    }
                    else
                    {
                        ctlExp.empty();
                    }
                }
                break;
        }
        var rtn = true;
        if(ctlExp != null)
        {
            if(ctlExp.html().length != 0)
            {
                rtn = false;
            }
        }
        if(!rtn && ctlExp1 != null)
        {
            if(ctlExp1.html().length != 0)
            {
                rtn = false;
            }
        }
        return rtn;
    }

    //登录
    this.CheckControlByLogin = function(ctl1)
    {
        var Control = $("#" + ctl1);
        var ctlExp = null;
        switch(me.getID(Control))
        {
            case "m_edt登录帐号":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "登录名不能为空！")
                break;
            case "m_edt登录密码":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "登录密码不能为空！")
                break;
            case "m_edt验证码":
                ctlExp = $("#" + Control.attr("id") + "_Explain");
                me.checkNull(Control, ctlExp, "验证码不能为空！");
                break;
        }
        var rtn = true;
        if(ctlExp != null)
        {
            if(ctlExp.html().length != 0)
            {
                rtn = false;
            }
        }
        return rtn;
    }

    var time = null;

    this.CheckItem = function(ctl1, ctl2, ctl3, ctl4, ctl5)
    {
        var Control = $("#" + ctl1);
        var fun;
        switch(me.options.styleName)
        {
            case "":
                fun = me.CheckControl;
                break;
            case "FP":
                fun = me.CheckControlByFP;
                break;
            case "CP":
                fun = me.CheckControlByCP;
                break;
            case "Login":
                fun = me.CheckControlByLogin;
                break;
        }
        if(Control.attr("tagName") == "INPUT")
        {
            Control.bind("keydown", function(){
                window.clearTimeout(me.options.inputTimeHandle);
                me.options.inputTimeHandle = window.setTimeout(function(){ fun(ctl1, ctl2, ctl3, ctl4, ctl5); }, 200);
            });
        }
        if(Control.attr("tagName") == "SELECT")
        {
            Control.bind("change", function(){
                window.clearTimeout(me.options.inputTimeHandle);
                me.options.inputTimeHandle = window.setTimeout(function(){ fun(ctl1, ctl2, ctl3, ctl4, ctl5); }, 200);
            });
        }
    }

    //---------------------------------------------------------------------------------------------
    
    this.bindTipEvent();
    this.changeFace();
    if($.isFunction(this.options.winLoad))
    {
        this.options.winLoad(me);
    }
}
//---------------------------------------------------------------------------------------------

var __Time = 5;
var __WTime = null;

function JumpPage(args)
{
    if(__Time == 0)
    {
        var url = $("#" + ClientID + "m_aJump" + args);
        window.location.href = url.attr("href");
    }
    else
    {
        $("#m_spanSec" + args).html(__Time);
        window.clearTimeout(__WTime);
        __WTime = window.setTimeout(function(){ JumpPage(args); }, 1000);
    }
    __Time--;
}
