function isChinaIDCard(StrNo){
StrNo = StrNo.toString();
if(StrNo.length != 18 && StrNo.length != 15){
	return 2;
}

switch(StrNo.length){
case 15:
        if (!isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2)))
    		return 1;
        
case 18:
        if (!isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2)))
        	return 1;
}

if (StrNo.length==18)
{
     var a,b,c
     if (!isInteger(StrNo.substr(0,17))) {return 1;}
     a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
     a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
     a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;
     a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;
     a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;
     a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
     b=a%11;

     if (b==2) //最后一位为校验位
     {
    	c=StrNo.substr(17,1).toUpperCase(); //转为大写X
     }
     else
     {
     	c=parseInt(StrNo.substr(17,1));
     }
	 
     switch(b)
     {
	     case 0: if ( c!=1 ) {return 3;}break;
	     case 1: if ( c!=0 ) {//alert("身份证号码校验位错:最后一位应该为:0");
	     return 3;}break;
	     case 2: if ( c!="X") {//alert("身份证号码校验位错:最后一位应该为:X");
	     return 3;}break;
	     case 3: if ( c!=9 ) {//alert("身份证号码校验位错:最后一位应该为:9");
	     return 3;}break;
	     case 4: if ( c!=8 ) {//alert("身份证号码校验位错:最后一位应该为:8");
	     return 3;}break;
	     case 5: if ( c!=7 ) {//alert("身份证号码校验位错:最后一位应该为:7");
	     return 3;}break;
	     case 6: if ( c!=6 ) {//alert("身份证号码校验位错:最后一位应该为:6");
	     return 3;}break;
	     case 7: if ( c!=5 ) {//alert("身份证号码校验位错:最后一位应该为:5");
	     return 3;}break;
	     case 8: if ( c!=4 ) {//alert("身份证号码校验位错:最后一位应该为:4");
	     return 3;}break;
	     case 9: if ( c!=3 ) {//alert("身份证号码校验位错:最后一位应该为:3");
	     return 3;}break;
	     case 10: if ( c!=2 ){//alert("身份证号码校验位错:最后一位应该为:2");
	     return 3;}
     }
}
else(StrNo.length==15) //15位身份证号
{
	if (!isInteger(StrNo)) 
	{
		return 1;
	}
}


return 'true';

}

function isValidDate(iY, iM, iD) {
    var a=new Date(iY,iM,iD);
    //var y=a.getFullYear();
    //var m=a.getMonth();
    //var d=a.getDate();
    if (iY<1900 || iM>12 || iD>31)
    {
        return false;
    }
	return true;
}

function isInteger(str) {
if (/[^\d]+$/.test(str)){
return false;
}
return true;
}


function IDUpdate(StrNo){

if (!isChinaIDCard(StrNo)) {return false}
if (StrNo.length==15)
{
     var a,b,c
     StrNo=StrNo.substr(0,6)+"19"+StrNo.substr(6,9)
     a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
     a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
     a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;
     a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;
     a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;
     a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
     b=a%11;

     switch(b)
     {
     case 0: {StrNo=StrNo+"1";}break;
     case 1: {StrNo=StrNo+"0";}break;
     case 2: {StrNo=StrNo+"X";}break;
     case 3: {StrNo=StrNo+"9";}break;
     case 4: {StrNo=StrNo+"8";}break;
     case 5: {StrNo=StrNo+"7";}break;
     case 6: {StrNo=StrNo+"6";}break;
     case 7: {StrNo=StrNo+"5";}break;
     case 8: {StrNo=StrNo+"4";}break;
     case 9: {StrNo=StrNo+"3";}break;
     case 10: {StrNo=StrNo+"3";}
     }
     }
     return StrNo;
}
function refreshCc() 
{
var now=new Date();
var verifycode=now.getSeconds();
var ccImg = document.getElementById("checkCodeImg");
var ccImgSrc = "";

if (ccImg) 
{
	if (document.all) 
	{
		ccImgSrc = "passcode.php?verifycode="+verifycode;
	} 
	else {
		nowTime = new Date()
		ccImgSrc = "passcode.php?verifycode="+verifycode+"&r=" + nowTime.getTime();
	}
	ccImg.src = ccImgSrc;
}
}

function isChinese(str){
	var reg = /^[\u4E00-\u9FA5]+$/;
	if(!reg.test(str)){
		return false;
	}
	return true;
}
function checkPhone(phone)    
{    
//验证电话号码手机号码，包含153，159号段    
if (phone==""){    
alert("电话号码不能为空！");     
return false;    
}    
if (phone != ""){     
var p1 = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;    
var me = false;    
if (p1.test(phone)) me=true;    
if (!me){       
//alert('对不起，您输入的电话号码有错误。区号和电话号码之间请用-分割');      
return false;    
}    
}   
return true;    
}    
    

function checkMobile(mobile)    
{      
if (mobile != ""){       
var reg0 = /^13\d{5,9}$/;    
var reg1 = /^153\d{4,8}$/;    
var reg2 = /^159\d{4,8}$/;    
var reg3 = /^0\d{10,11}$/;  
var reg4 = /^150\d{4,8}$/; 
var reg5 = /^158\d{4,8}$/; 
var reg6 = /^15\d{5,9}$/;  
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 (reg4.test(mobile))my=true;    
if (reg5.test(mobile))my=true;    
if (reg6.test(mobile))my=true;    
if (!my){  
//alert('对不起，您输入的手机或小灵通号码有错误。');      
return false;    
}    
return true;    
}    
}  