// JScript 文件

function isEmail(email) {
    var emailRequest = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
    if(emailRequest.test(email)) {
        return true;
    }
    return false;
}

function StringLength(Name){
    if(Name == null || Name == "undefined") return 0;
	return Name.replace( /[^\x00-\xff]/g,'mm').length; 
 }
 
function FindObj(t_id){
    return document.getElementById(t_id);
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function CheckLoginName(){
    var login_name = FindObj("t_login_name").value;
    //var loginRequest = /^([a-zA-Z])+([a-zA-Z0-9_-])+/;
	var loginRequest = /^[A-Za-z0-9_-]+$/;
    if(!loginRequest.test(login_name))
    {
        FindObj("t_login_name").className = "error_red";
        return false;
    }    
    var ch_ret = true;//检查结果
    if(StringLength(login_name) < 6 || StringLength(login_name) > 20)
        ch_ret = false;
    if(!ch_ret)
    {
        FindObj("t_login_name").className = "error_red";
    }else{        
        FindObj("t_login_name").className = "ok_green";       
    }
    return ch_ret;
}
function CheckPWDStrong(){

    var pwd = FindObj("t_password").value;
    FindObj("t_password").style.display = "";
    var PwdLevel=lvPwdStrenth.getLevel(pwd);
    var error_id = lvPwdStrenth.errorId;
    lvPwdStrenth.userName = FindObj("t_login_name").value;
	if(PwdLevel<=0)
	{
        FindObj("t_password").className = "error_red";
        //FindObj("pw_img").src = "images/fen1.gif";
        
	    return false;
	}
	if(PwdLevel==1)
	{
        FindObj("t_password").className = "ok_blue";
        //FindObj("pw_img").src = "images/fen2.gif";
	    return true;
	}
	if(PwdLevel>1)
	{
        FindObj("t_password").className = "ok_green";
        //FindObj("pw_img").src = "images/fen3.gif";
	    return true;
	}
}
function CheckPWDSame(){
    var pwd = FindObj("t_password").value;
    var pwd2 = FindObj("t_password2").value; 
    var ch_ret = (pwd == pwd2);
    if(!ch_ret)
    {
        FindObj("t_password2").className = "error_red";
    }else{
        FindObj("t_password2").className = "ok_green";
    }
    return ch_ret;
}
function CheckAnswer(){
    FindObj("answer_info").style.display = "";
    var answer = FindObj("t_answer").value;
    if(StringLength(answer) < 6 || StringLength(answer) > 20){
        FindObj("answer_info").className = "error_red";
        FindObj("answer_info").innerText = "字数不符";
        return false;
    }else
    {
        FindObj("answer_info").className = "ok_green";
        FindObj("answer_info").innerText = "字数符合";
        return true;    
    }
}

function CheckEmail(){
    var email = FindObj("t_email").value;
    var ch_ret = isEmail(email);
    if(!ch_ret){
        FindObj("t_email").className = "error_red";
    }else{
        FindObj("t_email").className = "ok_green";
    }
	FindObj("t_email").className = "ok_green";
    return true;
}

function CheckRealName(){
    var realname = FindObj("t_real_name").value;
    if(StringLength(realname) < 6 || StringLength(realname) > 20){
        FindObj("realname_error").style.display = "";
        FindObj("realname_error").className = "error_red";
        FindObj("realname_error").innerText = "姓名格式不对";
        return false;
    }else
    {
        FindObj("realname_error").style.display = "none";
        return true;    
    }
}

function CheckCard(){
    var cardno = FindObj("t_card_no").value;
    if(!CheckIdcard(cardno)){
        //FindObj("card_error").style.display = "";
        //FindObj("card_error").className = "error_red";
        //FindObj("card_error").innerText = "身份证格式不对";
        return false;
    }else
    {
        FindObj("card_error").style.display = "none";
        return true;    
    }
    
}
//检查身份证
function CheckIdcard(v_card)
{
	var reg = /^\d{15}(\d{2}[0-9X])?$/i;
	if (!reg.test(v_card))
	{
		//alert("证件号码输入错误！");
		return false;
	}
   
	if(v_card.length==15)
	{
	    var n = new Date();
        var y = n.getFullYear();
	    if(parseInt("19" + v_card.substr(6,2)) < 1900 || parseInt("19" + v_card.substr(6,2)) > y)
	    {
            //alert("生日年份范围错误");
		    //alert("证件号码输入错误！");
		    return false;
	    }

	    var birth = "19" + v_card.substr(6,2) + "-" + v_card.substr(8,2) + "-" + v_card.substr(10,2);
	    if(!isDate(birth))
	    {
            //alert("生日错误");
		    //alert("证件号码输入错误！");
		    return false;
	    }
    }
	if(v_card.length==18)
	{
	    var n = new Date();
        var y = n.getFullYear();
	    if(parseInt(v_card.substr(6,4)) < 1900 || parseInt(v_card.substr(6,4)) > y)
	    {
            //alert("生日年份范围错误");
		    //alert("证件号码输入错误！");
		    return false;
	    }

	    var birth = v_card.substr(6,4) + "-" + v_card.substr(10,2) + "-" + v_card.substr(12,2);
	    if(!isDate(birth))
	    {
            //alert("生日错误");
		    //alert("证件号码输入错误！");
		    return false;
	    }

        iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);

        iSum = 0;
        for( i=0;i<17;i++)
        {
            iC = v_card.charAt(i);
            iVal = parseInt(iC);
            iSum += iVal * iW[i];
        }

        iJYM = iSum % 11;
        if(iJYM == 0) sJYM = "1";
        else if(iJYM == 1) sJYM = "0";
        else if(iJYM == 2) sJYM = "x";
        else if(iJYM == 3) sJYM = "9";
        else if(iJYM == 4) sJYM = "8";
        else if(iJYM == 5) sJYM = "7";
        else if(iJYM == 6) sJYM = "6";
        else if(iJYM == 7) sJYM = "5";
        else if(iJYM == 8) sJYM = "4";
        else if(iJYM == 9) sJYM = "3";
        else if(iJYM == 10) sJYM = "2";

        var cCheck = v_card.charAt(17).toLowerCase();
        if( cCheck != sJYM )
        {
            //alert("校验位不符");
            //alert("证件号码输入错误");
            return false;
        }
	}

	return true;
}
//日期格式：YYYY-MM-DD
function isDate(strDate)
{
   var strSeparator = "-"; //日期分隔符
   var strDateArray;
   var intYear;
   var intMonth;
   var intDay;
   var boolLeapYear;

   strDateArray = strDate.split(strSeparator);

   if(strDateArray.length!=3) return false;

   intYear = parseInt(strDateArray[0],10);
   intMonth = parseInt(strDateArray[1],10);
   intDay = parseInt(strDateArray[2],10);

   if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;

   if(intMonth>12||intMonth<1) return false;

   if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)) return false;

   if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) return false;

   if(intMonth==2){
      if(intDay<1) return false;

      boolLeapYear = false;
      if((intYear%100)==0){
         if((intYear%400)==0) boolLeapYear = true;
      }
      else{
         if((intYear%4)==0) boolLeapYear = true;
      }

      if(boolLeapYear){
         if(intDay>29) return false;
      }
      else{
         if(intDay>28) return false;
      }
   }

   return true;
}

//检查手机号码
function CheckMobile(v_mobile)
{
    var reg1=/^1[3][4-9]\d{8}$/;
    var reg2=/^1[5][089]\d{8}$/;
	
	if (!reg1.test(v_mobile) && !reg2.test(v_mobile))
	{
		alert("手机号码输入错误！");
		return false;
	}

	return true;
}

function CheckAgreement()
{
    var ch_ret = FindObj("chkAgreement");
    if(!ch_ret.checked){
        alert("阅读并同意通行证用户协议才能继续下一步");
        return false;
    }
    return true;
}

function CheckVcode(){
    if(FindObj("t_vcode").value == ""){
        alert("请填写验证码");
        return false;
    }
    return true;
}   

function CheckSubmit(){
    if(!CheckAgreement()){
        return false;
    }    
    var c0 = CheckLoginName();
    var c1 = CheckPWDStrong() ;
    var c2 = CheckPWDSame();
    var c3 = true;// CheckAnswer();
    var c4 = CheckEmail();
    var c5 = true;//CheckRealName();
    var c6 = true;//CheckCard();
    if(c0 && c1 && c2 && c3 && c4 && c5 && c6)
        return CheckVcode();
    else
        return false;
}

function ResetVcode(Obj,VUrl){
    var date = new Date();
    var mim = date.getTime();
    var splits = "?";
    if(VUrl.indexOf("?") > 0)
        splits = "&";
    Obj.src = VUrl+splits+"time="+mim
}
