﻿// JScript 文件
var PaperNumPowerArray = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
var Page_Validateor = true;

var tbUserName=null;
var tbPassword=null;
var tbPassword1=null;
var DDLPaperType=null;
var tbPaperNum=null;
var tbEMail=null;
var tbName=null;
var tbBirthDay=null;
var tbBirthDayImg=null;
var tbLinkTel=null;
var tbLinkAddr=null;
var tbPostCode=null;
var tbRandomCode=null;
var rbMan=null;
var rbWomen=null;

function InitPageInfo(tbUserNameID,tbPasswordID,tbPassword1ID,DDLPaperTypeID,tbPaperNumID,tbEMailID,tbNameID,tbBirthDayID,tbLinkTelID,tbLinkAddrID,tbPostCodeID,tbRandomCodeID,rbManID,rbWomenID)
{
    tbUserName=document.getElementById(tbUserNameID);
    tbPassword=document.getElementById(tbPasswordID);
    tbPassword1=document.getElementById(tbPassword1ID);
    DDLPaperType=document.getElementById(DDLPaperTypeID);
    tbPaperNum=document.getElementById(tbPaperNumID);
    tbEMail=document.getElementById(tbEMailID);
    tbName=document.getElementById(tbNameID);
    tbBirthDay=document.getElementById(tbBirthDayID+"_TxtDate");
    tbBirthDayImg=document.getElementById(tbBirthDayID+"_ImgDate");
    tbLinkTel=document.getElementById(tbLinkTelID);
    tbLinkAddr=document.getElementById(tbLinkAddrID);
    tbPostCode=document.getElementById(tbPostCodeID);
    tbRandomCode=document.getElementById(tbRandomCodeID);
    rbMan=document.getElementById(rbManID);
    rbWomen=document.getElementById(rbWomenID);
}

function UserDateSumbitForCheck()
{
    Page_Validateor=true;
    validateUserName(true);
    validatePassword(true);
    validatePasswordConfirm(true);
    validatePaperNum(true);
    validateEmail(true);
    validateName(true);
    validateLinkTel(true);
    validateLinkAddr(true);
    validatePostCode(true);
    validateRandomCode(true);
    validateProtocol(true);
    return Page_Validateor;
}

function validateUserName()
{
    var Msg = "";var IsValid=false;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}var match=null;
    if(tbUserName.value.length==0){Msg="请输入通行证帐号！";}
    //else{match = tbUserName.value.match(new RegExp(/^[a-zA-Z]{1}[0-9a-zA-Z_]{5,15}$/gi));Msg="通行证格式不正确！";}
    else{match = tbUserName.value.match(new RegExp(/^[a-zA-Z]{1}[0-9a-zA-Z_]{4,13}[0-9a-zA-Z]$/gi));Msg="通行证格式不正确！";}
    if(match==null){ShowCheckControlResult(tbUserName,IsValid,Msg,Alert);}
    else{Page_RegistAccount.CheckUserNameIsExist(tbUserName.value,validateUserNameIsExistCallBack);} 
}

function validateUserNameIsExistCallBack(Data)
{
    if(Data!=null){if(Data.value!=null){ShowCheckControlResult(tbUserName,Data.value.IsSuccess,"该通行证帐号已使用，请重新填写！",false);}}
}

function validatePaperNum()
{
    var IsValid = false;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}
    var Msg = "";
    if(DDLPaperType.value=="0")
    {
        if(tbPaperNum.value.length==15)
        {
            var Match = tbPaperNum.value.match(new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/));
            if(Match!=null)
            {
                var D = new Date("19"+Match[3]+"/"+Match[4]+"/"+Match[5]);
                IsValid = D.getYear()==Match[3]&&(D.getMonth()+1)==Match[4]&&D.getDate()==Match[5];
                if(IsValid){
                    tbBirthDay.value = "19"+Match[3]+"-"+Match[4]+"-"+Match[5];
                    Match[6]%2==1?rbMan.checked=true:rbWomen.checked=true;rbMan.disabled=rbWomen.disabled=true;
                }
            }
        }
        else if(tbPaperNum.value.length==18)
        {
            var Match = tbPaperNum.value.match(new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|[a-zA-Z])$/));
            if(Match!=null)
            {
                var D = new Date(Match[3]+"/"+Match[4]+"/"+Match[5]);
                IsValid = D.getFullYear()==Match[3]&&(D.getMonth()+1)==Match[4]&&D.getDate()==Match[5];
                if(IsValid){
                    if(CalculatePaperNum(tbPaperNum.value)=="X"){if(Match[7]!="x"&&Match[7]!="X"){IsValid=false;}}
                    else{if(Match[7]!=CalculatePaperNum(tbPaperNum.value)){IsValid=false;}}
                }
                if(IsValid)
                {
                    tbBirthDay.value = Match[3]+"-"+Match[4]+"-"+Match[5];
                    Match[6]%2==1?rbMan.checked=true:rbWomen.checked=true;
                    rbMan.disabled=rbWomen.disabled=true;
                }
            }
        }
        Msg="请正确输入身份证号码！";
    }
    else
    {
        if(tbPaperNum.value.length==0){Msg="请输入证件号码！";}
        else if(tbPaperNum.value.length<=30)
        {
            var Match = tbPaperNum.value.match(new RegExp(/^[0-9a-zA-Z_]+$/))
            if(Match!=null){IsValid = true;}
        }
    }
    ShowCheckControlResult(tbPaperNum,IsValid,Msg,Alert);
    if(!IsValid){rbMan.disabled=rbWomen.disabled=false;}
}

//生成18位身份证号最后一位校验码
function CalculatePaperNum(str)
{
    var Sum = 0;
    for(var i=0;i<17;i++)
    {
        Sum += PaperNumPowerArray[i] * parseInt(str.substring(i,i+1));
    }
    var Index = 12 - Sum % 11;
    if(Index>10){Index=Index-11;}
    if(Index==10){return "X";}else{return ""+Index;}
}

function validatePassword()
{
    var Alert=false;if(arguments.length!=0){Alert=arguments[0];}
    if(validatePasswordReg(tbPassword,Alert)&&tbPassword1.value!=""){ShowCheckControlResult(tbPassword,tbPassword1.value==tbPassword.value,"两次填写的密码不一致, 请检查并重新填写",Alert);};
}

function validatePasswordConfirm()
{var Alert=false;if(arguments.length!=0){Alert=arguments[0];}
if(validatePasswordReg(tbPassword1,Alert)){ShowCheckControlResult(tbPassword1,tbPassword1.value==tbPassword.value,"两次填写的密码不一致, 请检查并重新填写",Alert);}}

function validatePasswordReg(TextBox,Alert)
{
    var tbPassword = TextBox.value;
    var Msg = "";
    var IsValid = false;
    if(tbPassword.length< 6|| tbPassword.length> 10 )
    {
        Msg = "通行证密码最短6位，最长10位！";
        ShowCheckControlResult(TextBox,IsValid,Msg,Alert);
        return IsValid;
    }
    var re = new RegExp(/[a-zA-Z]+/);
    var a= tbPassword.match(re);
    if(a==null)
    {
        Msg = "通行证密码必须含有字母！";
        ShowCheckControlResult(TextBox,IsValid,Msg,Alert);
        return IsValid;
    }
    re = new RegExp(/\d+/);
    a = tbPassword.match(re)
    if(a==null)
    {
        Msg = "通行证密码必须含有数字！";
        ShowCheckControlResult(TextBox,IsValid,Msg,Alert);
        return IsValid;
    }
    if(!tbPassword.match(new RegExp(/^[0-9a-zA-Z_]+$/gi)))
    {
        Msg = "通行证密码只允许字母、数字、下划线！";
        ShowCheckControlResult(TextBox,IsValid,Msg,Alert);
        return IsValid;
    }
    if(tbUserName.value == tbPassword)
    {
        Msg = "密码不能与帐号名相同！";
        ShowCheckControlResult(TextBox,IsValid,Msg,Alert);
        return IsValid;
    }
    IsValid = true;
    ShowCheckControlResult(TextBox,IsValid,Msg,Alert);
    return IsValid;
}

function validatePaperNumForTypeChange()
{
    validatePaperNum();
    rbMan.disabled=rbWomen.disabled=tbBirthDayImg.disabled=DDLPaperType.value=="0"?true:false;
}

function validateEmail()
{
    var IsValid=false;var Msg="";var Alert=false;if(arguments.length!=0){Alert=arguments[0];}
    if(tbEMail.value.length==0){Msg="请输入Email！";}
    else
    {
        var reg=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi;
        var Match = tbEMail.value.match(new RegExp(reg));
        if(Match==null){Msg="Email格式不正确，请重新输入！";}else{IsValid=true;}
    }
    ShowCheckControlResult(tbEMail,IsValid,Msg,Alert);
}

function validateName()
{
    var IsValid=false;var Msg="";var Alert=false;if(arguments.length!=0){Alert=arguments[0];}
    if(tbName.value==""){return;}
    if(strlen(tbName.value)>20){Msg="真实姓名长度必须在20个字符（10个中文）内！";}else{IsValid=true;}
    ShowCheckControlResult(tbName,IsValid,Msg,Alert);
}

function validateLinkTel()
{
    var IsValid = true;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}var Msg="联系电话格式不正确，请重新输入！";
    if(tbLinkTel.value.length!=0)
    {
        var Match1 = tbLinkTel.value.match(new RegExp(/^\d{3,4}\-\d{7,8}(\-\d*)*$/gi));
        if(Match1==null){ var Match2 = tbLinkTel.value.match(new RegExp(/^1[358]\d{9}$/gi));if(Match2==null){IsValid=false;}}
    }
    else{return;}
    ShowCheckControlResult(tbLinkTel,IsValid,Msg,Alert);
}

function validateLinkAddr()
{
    var IsValid = false;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}var Msg="联系地址长度必须在100个字符（50个中文）内！";
    if(tbLinkAddr.value==""){return;}
    if(strlen(tbLinkAddr.value)<100){IsValid=true;}
    ShowCheckControlResult(tbLinkAddr,IsValid,Msg,Alert);
}

function validatePostCode()
{
    var IsValid = true;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}var Msg="请正确输入邮政编码！";
    if(tbPostCode.value.length!=0){ var Match=tbPostCode.value.match(new RegExp(/^[0-9]{6}$/gi));if(Match==null){IsValid=false;}}else{return;}
    ShowCheckControlResult(tbPostCode,IsValid,Msg,Alert);
}

function validateRandomCode()
{
    var IsValid=true;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}var Msg="请输入验证码！";
    if(tbRandomCode.value.length==0){IsValid=false;}
    if(IsValid){Page_RegistAccount.CheckRandom(tbRandomCode.value,validateRandomCodeCallBack);}
    ShowCheckControlResult(tbRandomCode,IsValid,Msg,Alert);
}

function validateRandomCodeCallBack(Data)
{
    if(Data!=null){if(Data.value!=null){ShowCheckControlResult(tbRandomCode,Data.value.IsSuccess,"验证码错误！",false);}}
}

function validateProtocol()
{
    var IsValid=true;var Alert=false;if(arguments.length!=0){Alert=arguments[0];}var Msg="请仔细阅读《渡口通行证用户注册协议》！";
    IsValid = document.getElementById("cbProtocol").checked;
    ShowCheckControlResult(document.getElementById("cbProtocol"),IsValid,Msg,Alert);
}

function ShowCheckControlResult(Control,IsRight,Msg,IsAlert)
{
    if(IsAlert){if(Page_Validateor&&!IsRight){Page_Validateor=false;alert(Msg);Control.focus();}}
    var parentObj=Control.parentNode;
    if(parentObj!=null)
    {
        var amsgid="aCheckTip_" + Control.id;
        var amsg = document.getElementById(amsgid);
        if(amsg==null)
        {
            amsg = document.createElement("span");
            amsg.id = amsgid;
            amsg.className = "no";
            parentObj.appendChild(amsg);              
        }
        if(IsRight){amsg.className="yes";amsg.innerHTML="&nbsp;";}else{amsg.innerHTML = Msg;amsg.className="no";}
        amsg.style.display="inline";        
    }
    if(!IsRight){Page_Validateor=IsRight;}
}
