﻿function checkID_ICCID(ID_ICCID){ 
	var Errors=new Array( 
	"正确", 
	"身份证号码位数不对!", 
	"身份证号码出生日期超出范围或含有非法字符!", 
	"身份证号码校验错误!", 
	"身份证地区非法!" 
	); 
	
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}  
	var ID_ICCID,Y,JYM; 
	var S,M; 
	var ID_ICCID_array = new Array(); 
	ID_ICCID_array = ID_ICCID.split(""); 
	//地区检验 
	if(area[parseInt(ID_ICCID.substr(0,2))]==null) return Errors[4]; 
	//身份号码位数及格式检验 
	switch(ID_ICCID.length){ 
	case 15: 
	if ( (parseInt(ID_ICCID.substr(6,2))+1900) % 4 == 0 || ((parseInt(ID_ICCID.substr(6,2))+1900) % 100 == 0 && (parseInt(ID_ICCID.substr(6,2))+1900) % 4 == 0 )){ 
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性 
	} else { 
	ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性 
	} 
	if(ereg.test(ID_ICCID)) return Errors[0]; 
	else return Errors[2]; 
	break; 
	case 18: 
	//18位身份号码检测 
	//出生日期的合法性检查  
	//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9])) 
	//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8])) 
	if ( parseInt(ID_ICCID.substr(6,4)) % 4 == 0 || (parseInt(ID_ICCID.substr(6,4)) % 100 == 0 && parseInt(ID_ICCID.substr(6,4))%4 == 0 )){ 
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式 
	} else { 
	ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式 
	} 
	if(ereg.test(ID_ICCID)){//测试出生日期的合法性 
	//计算校验位 
	S = (parseInt(ID_ICCID_array[0]) + parseInt(ID_ICCID_array[10])) * 7 
	+ (parseInt(ID_ICCID_array[1]) + parseInt(ID_ICCID_array[11])) * 9 
	+ (parseInt(ID_ICCID_array[2]) + parseInt(ID_ICCID_array[12])) * 10 
	+ (parseInt(ID_ICCID_array[3]) + parseInt(ID_ICCID_array[13])) * 5 
	+ (parseInt(ID_ICCID_array[4]) + parseInt(ID_ICCID_array[14])) * 8 
	+ (parseInt(ID_ICCID_array[5]) + parseInt(ID_ICCID_array[15])) * 4 
	+ (parseInt(ID_ICCID_array[6]) + parseInt(ID_ICCID_array[16])) * 2 
	+ parseInt(ID_ICCID_array[7]) * 1  
	+ parseInt(ID_ICCID_array[8]) * 6 
	+ parseInt(ID_ICCID_array[9]) * 3 ; 
	Y = S % 11; 
	M = "F"; 
	JYM = "10X98765432"; 
	M = JYM.substr(Y,1);//判断校验位 
	if(M == ID_ICCID_array[17]) return Errors[0]; //检测ID的校验位 
	else return Errors[3]; 
	} 
	else return Errors[2]; 
	break; 
	default: 
	return Errors[1]; 
	break; 
	} 
} 

function checkDate(Str){
	var temp = Str;
	var darray = new Array();
	darray = temp.split("-");
	if(darray.length != 3){
		return false;
	}else{
		var Ystr = darray[0];
		var Mstr = darray[1];
		var Dstr = darray[2];
		var flag = checkNum(Ystr,Mstr,Dstr);
		if(!flag){
			return false;
		}else{
			if((Ystr.length != 4) || (Mstr.length != 2) || (Dstr.length != 2)){
				return false;
			}
			if(!((Mstr >= 1) && (Mstr <= 12) && (Dstr >= 1) && (Dstr <= 31))){
				return false;
			}
			if(!((Ystr % 4) == 0) && (Mstr == 2) && (Dstr == 29)){
				return false;
			}
			if((Mstr <= 7) && ((Mstr % 2) == 0) && (Dstr >= 31)){
				return false;
			}
			if((Mstr >= 8) && ((Mstr % 2) == 1) && (Dstr >= 31)){
				return false;
			}
			if((Mstr == 2) && (Dstr == 30)){
				return false;
			}
			return true;
		}
	}
}

function checkNum(Ystr,Mstr,Dstr){
	var source = "0123456789";
	var ch;
	var i;
	var temp;
	for(i=0;i<Ystr.length;i++){
		ch = Ystr.charAt(i);
		temp = source.indexOf(ch);
		if(temp == -1){
			return false;
		}
	}
	
	for(i=0;i<Mstr.length;i++){
		ch = Mstr.charAt(i);
		temp = source.indexOf(ch);
		if(temp == -1){
			return false;
		}
	}
	
	for(i=0;i<Dstr.length;i++){
		ch = Dstr.charAt(i);
		temp = source.indexOf(ch);
		if(temp == -1){
			return false;
		}
	}
	return true;
}

function checkRegParam1(form)

{

	/*if(form.chgfamilyname.value=="")

	{

		alert("Please input your chinese surname！");

		form.chgfamilyname.focus();

		return false;		

	}

	else if(form.chgivename.value=="")

	{

		alert("Please input your chinese givenname！");

		form.chgivename.focus();

		return false;		

	}*/

	 if(form.engfamilyname.value=="")

	{

		alert("Please input your english surname！");

		form.engfamilyname.focus();

		return false;		

	}

	else if(form.engivename.value=="")

	{

		alert("Please input your english givenname！");

		form.engivename.focus();

		return false;

	}
 else if(document.getElementsByName('id')[0].value==""
     && form.pas.value=="" && form.mil.value=="" && form.ori.value==""
     && form.other.value==""){
     	alert("At least need to enter a certificate number!");
     	document.getElementsByName('id')[0].focus();
     	return false;
    }else if(document.getElementsByName('id')[0].value!=""){
    	var len=document.getElementsByName('id')[0].value.length;
		if(len!=15&&len!=18)
		{
			alert("The digit of id number is wrong!");
			document.getElementsByName('id')[0].focus();
			return false;
		}
 else{
			if(
				checkID_ICCID(document.getElementsByName('id')[0].value)!='正确'){
				alert("Please enter a valid identity card number.");
				document.getElementsByName('id')[0].focus();
				return false;
 
			}
		}
}
	


/*	else if(form.identityno.value=="")

	{

		alert("Please input your id number！");

		form.identityno.focus();

		return false;

	}
      
    else if(form.identitytype.value=="ID")
	{
	var len=form.identityno.value.length;
	if(len!=15&&len!=18)
	{
		alert("The digit of id number is wrong!");
		form.identityno.focus();
		return false;
	}
	}
*/
	if(!checkDate(form.toTime.value))
	{
		alert("Please input your birthday correctly according to this example.");
		form.toTime.focus();
		return false;
	}else{
		
		var adultcard = document.getElementById("adultcard");
			var adultcardpwd = document.getElementById("adultcardpwd");
		   if(adultcard && adultcardpwd){
			adultcard = adultcard.value;
			adultcardpwd = adultcardpwd.value;
			if(adultcard==""){
				alert('Please input "Eastern Miles" membership card number.');
				document.getElementById("adultcard").focus();
				return false;
			}
			if(adultcardpwd==""){
				alert('Please input "Eastern Miles" membership card password.');
				document.getElementById("adultcardpwd").focus();
				return false;
			}
			
			if(!(/^\d*$/.test(adultcard))){
					alert('Sorry, Please input right "Eastern Miles" membership card number.');
					document.getElementById("adultcard").focus();
					return false;
			}
		   }
	
	if(form.orgpwd.value=="")

	{

		alert("Please input your password！");

		form.orgpwd.focus();

		return false;

	}

	else if(form.rptpwd.value=="")

	{

		alert("Please input your confirm password！");

		form.rptpwd.focus();

		return false;

	}

	else if(form.hintquestion.value=="")

	{

		alert("Please input your hit question！");

		form.hintquestion.focus();

		return false;

	}

	else if(form.hintanswer.value=="")

	{

		alert("Please input your hit answer！");

		form.hintanswer.focus();

		return false;

	}

	else if(form.orgpwd.value!=form.rptpwd.value)

	{

		alert("Your confirm password is not same with your original password！");

		form.orgpwd.focus();

		return false;

	}

	/*else if(form.beneficiary.value=="B")

	{

		if(form.beneficiary1.value=="" && form.beneficiary2.value=="" && form.beneficiary3.value=="" && form.beneficiary4.value=="" && form.beneficiary5.value=="") 	

		{

			alert("Please input your benifity！");

			form.beneficiary1.focus();

			return false;

		}	

	}*/

	else if(funIsNum(form.orgpwd.value)==2)

	{

		alert("Your password length must be 4~8！");

		form.orgpwd.focus();
		return false;

	}

	else if(funIsNum(form.orgpwd.value)==0)

	{

		alert("Your input is invalid！");

		form.orgpwd.focus();
		return false;

	}
	}
	return true;	


}

function checkRegParam2(form)

{

    var strEmail=form.email.value;
    if(strEmail!="")
  {
	if(strEmail.indexOf("@")<0 || strEmail.indexOf(".")<0)
	{
		alert("The format of your email is wrong");
		form.email.focus();
		return false;		
	}
  }


     if(form.mailcountry.disabled== false && form.mailcountry.value=="")
	{

		alert("Please input your country！");
		form.mailcountry.focus();
        return false;
	}
   else if(form.mailcountry.disabled== true && form.mailstate.value=="")
	{

		alert("Please input your state/prov！");
		form.mailstate.focus();
        return false;
	}

	else if(form.mailcountry.disabled== true && form.mailcity.value=="")

	{

		alert("Please input your city！");
		form.mailcity.focus();
        return false;
	}		

	else if(form.mailcountry.disabled== true && form.mailzip.value=="")
	{
		alert("Please input your postcode！");
		form.mailzip.focus();
		return false;
	}		

	else if(form.mailaddress1.value=="" && form.mailaddress2.value=="" && form.mailaddress3.value=="" )

	{

		alert("Please input your address！");
		form.mailaddress1.focus();
        return false;
	}	
		else if(calLen(form.mailaddress1.value)>=60|| 
		calLen(form.mailaddress2.value)>=60||
		calLen(form.mailaddress3.value)>=60) {
			alert("Please split address to three lines, and ensure the length of each line is less than 60.");  			
			form.mailaddress1.focus();
			return false;		
		}


//验证电话号码手机号码，包含153，158，159号段    
	if (form.personalphone.value=="" && form.mobile.value==""){    
	alert("Please input telephone or mobile！");    
	form.personalphone.focus();    
	return false;    
	}  
  
	if (form.personalphone.value != ""){  
  
	var phone=form.personalphone.value;     
    if (isphone(phone)==0){    
	form.personalphone.value="";    
	alert("Sorry,your telephone is error.");    
	form.personalphone.focus();    
	return false;    
	} 
	//var p1 = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/; 
    var reg0 = /^[\d\+\-\(\)\s]{7,20}$/;    
	/*var reg1 = /^153\d{4,8}$/;    
	var reg2 = /^159\d{4,8}$/;     
    var reg3 = /^158\d{4,8}$/;    
	var me = false;    

    if (reg0.test(phone))me=true;    
	if (reg1.test(phone))me=true;    
	if (reg2.test(phone))me=true;    
    if (reg3.test(phone))me=true; */
    if(reg0.test(phone))//如果电话输入为手机号码
    {
       if(form.mobile.value=="")
      {
          form.mobile.value=phone;
           
    			return true;  
 
      }
    }

	}   
 
	if (form.mobile.value != ""){    
	var mobile=form.mobile.value;  
	var reg0 = /^[\d\+\-\(\)\s]{7,20}$/;  
/*	var reg1 = /^153\d{4,8}$/;    
	var reg2 = /^159\d{4,8}$/;    
    var reg3 = /^158\d{4,8}$/; 
	var my = false;    
	if (reg0.test(mobile))my=true;    
	if (reg1.test(mobile))my=true;    
	if (reg2.test(mobile))my=true;    
    if (reg3.test(mobile))my=true;  */
 
	if (!reg0.test(mobile)){    
	form.mobile.value="";    
	alert("Sorry,your mobile is error.");    
	form.mobile.focus();    
	return false;    
	}    	
    if(form.personalphone.value=="")  
    {
     form.personalphone.value=mobile;
    }
	 return true;  
	}    


}	

function setWebUrl(form,strurl)

{

	form.action=strurl;

	if (checkRegParam2(form))

	{

		form.submit();	

	}

	else

	{

		return false;	

	}



}	

function isphone(zipcode) {
	var allowstrlist;

	allowstrlist="1234567890()-+ ";
	for (i=0;i<zipcode.length;i++) {
		if (allowstrlist.indexOf(zipcode.substr(i,1))==-1) {
        //说明有字符不符合限制
		return false;
		break;
		}
	}
    //说明符合限制
	return true;
}


function funIsNum1(NUM)
{
	var i,j,strTemp;
	strTemp="0123456789";
	if ( NUM.length== 0)
	{
		return 0;	
	}
	for (i=0;i<NUM.length;i++)
	{
		j=strTemp.indexOf(NUM.charAt(i));	
		if (j==-1)
		{
			return 0;
		}
	}
	return 1;
}
function funIsNum(NUM)

{

	var i,j,strTemp;

	strTemp="0123456789";

	if ( NUM.length== 0)

	{

		return 0;	

	}

	if ( NUM.length>= 4 && NUM.length<= 8)

	{}

	else

	{

		return 2;		

	}	

	for (i=0;i<NUM.length;i++)

	{

		j=strTemp.indexOf(NUM.charAt(i));	

		if (j==-1)

		{

		//说明有字符不是数字

			return 0;

		}

	}

	//说明是数字

	return 1;

}
function calLen(s){
	var count = 0;
	for(var i=0;i<s.length;i++){
		if(s.charCodeAt(i)>128){
			count +=2;
		}else{
			count ++;
		}
	} 
	return count;
}
