/*****************************************************
***判断身份证
******************************************************/
function CheckIDCard(StrNumber) 
{ 
//判断身份证号码格式函数 
//公民身份号码是特征组合码， 
//排列顺序从左至右依次为：六位数字地址码，八位数字出生日期码，三位数字顺序码和一位数字校验码 

//身份证号码长度判断 
if(StrNumber.length <15||StrNumber.length==16||StrNumber.length==17||StrNumber.length>18) 
{ 
alert("填写的身份证号码长度不正确，请重新填写!"); 
return false; 
} 
//身份证号码最后一位可能是超过100岁老年人的X.X也可以代表是阿拉伯数字10的意思 
//所以排除掉最后一位数字进行数字格式测试，最后一位数字有最后一位数字的算法 

var Ai; 
if(StrNumber.length==18) 
{ 
Ai = StrNumber.substring(0,17); 
} 
else 
{ 
Ai =StrNumber.substring(0,6)+"19"+StrNumber.substring(6,9); 
} 
//调用数字判断函数IsNumeric() 
if(IsNumeric(Ai)==false) 
{ 
alert("身份证号码数字字符串不正确，请重新填写!"); 
return false; 
} 

var strYear,strMonth,strDay,strBirthDay; 
strYear = parseInt(Ai.substr(6,4)); 
strMonth = parseInt(Ai.substr(10,2)) ; 
strDay = parseInt(Ai.substr(12,2)); 
//调用日期判断函数IsValidDate() 
if (IsValidDate(strYear,strMonth,strDay)==false) 
{ 
alert("身份证号码"+Ai+"日期格式年份"+strYear+"月份"+strMonth+"日"+strDay+"不正确，请重新填写!"); 
return false; 
} 

var arrVerifyCode = new Array("1","0","x","9","8","7","6","5","4","3","2"); 
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); 
var k,TotalmulAiWi=0; 
for (k=0; k <17;k++) 
{ 
TotalmulAiWi = TotalmulAiWi + parseInt(Ai.substr(k,1)) * Wi[k]; 

  } 
//alert(\"身份证号码最后一位的识别码是:\"+TotalmulAiWi); 
var modValue =TotalmulAiWi % 11 ; 
var strVerifyCode = arrVerifyCode[modValue]; 
Ai = Ai+strVerifyCode; 
//alert(\"身份证号码\"+StrNumber+\"与正确的号码\"+Ai+\"一致!\"); 
if((StrNumber.length==18)&&(StrNumber!=Ai)) 
{ 
alert("身份证号码"+StrNumber+"与正确的号码"+Ai+"不一致，请重新填写!"); 
return false; 
} 
return true; 

}
//数字判断函数IsNumeric() 
function IsNumeric(oNum) 
{ 
 // if(!oNum) return false; 
  //var strP=/^\\d+(\\.\\d+)?$/; 
  var strP=/^[0-9,]*$/
  if(!strP.test(oNum)) return false; 
  /*try{ 
  if(parseFloat(oNum)!=oNum) return false; 
  } 
  catch(ex) 
  { 
  return false; 
  } */
  return true; 
} 
//有效年份判断函数
function IsValidYear(psYear)
{
    var sYear = new String(psYear);
    if(psYear==null)
    {
        alert("身份证号码出生日期中年份为Null，请重新填写!");
  			return false;
    }
    if(isNaN(psYear)==true)
    {
        alert("身份证号码出生日期中年份必须为数字，请重新填写!");[Page]
  			return false;
    }
    if(sYear == "")
    {
  			alert("身份证号码出生日期中年份为空，请重新填写!");
        return true;
    }
    if(sYear.match(/[^0-9]/g)!=null)
    {
        alert("身份证号码出生日期中年份必须为0-9之间的数字组成，请重新填写!");
  			return false;
    }
    var nYear = parseInt(sYear,10);
    if((nYear < 0) || (9999 < nYear))
    {
        alert(nYear +"身份证号码出生日期中年份必须为正常的正整数，请重新填写!");
  			return false;
    }
    return true;
}

//有效月份判断函数IsValidMonth()
function IsValidMonth(psMonth)
{
    var sMonth = new String(psMonth);
    if(psMonth==null)
    {
        return false;
    }
    if(isNaN(psMonth)==true)
    {
        return false;
    }
    if(sMonth == "")
    {
        return true;
    }
    if(sMonth.match(/[^0-9]/g)!=null)
    {
        return false;
    }
    var nMonth = parseInt(sMonth,10);
    if((nMonth < 0) || (12 < nMonth))
    {
        return false;
    }
    return true;
}

//有效日判断函数IsValidDay()
function IsValidDay(psDay)
{
    var sDay  = new String(psDay);
    if(psDay==null)
    {
        return false;

 		}
    if(isNaN(psDay)==true)
    {
        return false;
    }
    if(sDay == "")
    {
        return true;
    }
    if(sDay.match(/[^0-9]/g)!=null)
    {
        return false;
    }
    var nDay = parseInt(psDay, 10);
    if((nDay < 0) || (31 < nDay))
    {[Page]
        return false;
    }
    return true;
}

//有效日期判断函数IsValidDate()
function IsValidDate(psYear, psMonth, psDay)
{
    if(psYear==null || psMonth==null || psDay==null)
    {
        return false;
    }
    var sYear  = new String(psYear);
    var sMonth = new String(psMonth);
    var sDay   = new String(psDay);
    if(IsValidYear(sYear)==false)
    {
        return false;
    }
    if(IsValidMonth(sMonth)==false)
    {
        return false;
    }
    if(IsValidDay(sDay)==false)
    {
        return false;
    }
    var nYear  = parseInt(sYear,  10);
    var nMonth = parseInt(sMonth, 10);
    var nDay   = parseInt(sDay,   10);
    if(sYear=="" &&  sMonth=="" && sDay=="")
    {
        return true;
    }
    if(sYear==""|| sMonth=="" || sDay=="")
    {
        return false;
    }
    if(nMonth < 1 || 12 < nMonth)
    {
        return false;
    }
    if(nDay < 1 || 31 < nDay)
    {
        return false;
    }
    if(nMonth == 2)
    {
        if((nYear % 400 == 0) || (nYear % 4 == 0) && (nYear % 100 != 0))
        {
            if((nDay < 1) || (nDay > 29))
            {
                return false;
            }
        }
        else
        {
            if((nDay < 1) || (nDay > 28))[Page]
            {
                return false;
            }
        }
    }
    else if((nMonth == 1)  ||
            (nMonth == 3)  ||
            (nMonth == 5)  ||
            (nMonth == 7)  ||
            (nMonth == 8)  ||
            (nMonth == 10) ||
            (nMonth == 12))
    {
        if((nDay < 1) || (31 < nDay))
        {
            return false;
        }
    }
    else
    {
        if((nDay < 1) || (30 < nDay))
        {
            return false;
        }
    }
    return true;
}
/******************************************************************
*校验普通电话、传真号码：可以“+”开头，除数字外，可含有“-”
*/ 
function isTel(object)
	{
	//国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"
	 var s =document.getElementById(object.id).value; 
	 var pattern =/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
	 //var pattern =/(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/; 
	     if(s!="")
	     {
	         if(!pattern.exec(s))
	         {
	          alert('请输入正确的电话号码:电话号码格式为国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"');
	          object.value="";
	          object.focus();
	         }
	     }
	}
/******************************************************************
*邮箱
*/ 
 function isEmail(object)
    { 
    var s =document.getElementById(object.id).value; 
         //var pattern =/^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/;
		   var pattern =/(\S)+[@]{1}(\S)+[.]{1}(\w)+/
             if(s!="")
             {
                 if(!pattern.exec(s))
                 {
                  alert('请输入正确的邮箱地址');
                  object.value="";
                  object.focus();
                 }
             }
            
    }
/******************************************************************
*校验手机号码：必须以数字开头，除数字外，可含有“-”
*/ 
function isMobile(object)
	{
	var s =document.getElementById(object.id).value; 
	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 my = false;
	if (reg0.test(s))my=true;
	if (reg1.test(s))my=true;
	if (reg2.test(s))my=true;
	if (reg3.test(s))my=true;
	    if(s!="")
	    {
	        if (!my)
	        {
	           alert('请输入正确的手机号码');
	           object.value="";
	           object.focus();
	        }
	    }
	}


/******************************************************************
*校验日期
*/
function isdate(object)
	{
	 var s =document.getElementById(object.id).value; 
	 var pattern =/^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
	     if(s!="")
	     {
	         if(!pattern.exec(s))
	         {
	          alert('请输入正确的日期');
	          object.value="";
	          object.focus();
	         }
	     }         
	}
/******************************************************************
*校验(国内)邮政编码
*/
function isPostalCode(object)
	{
	 var s =document.getElementById(object.id).value; 
	 var pattern =/^[0-9]{6}$/;
	     if(s!="")
	     {
	         if(!pattern.exec(s))
	         {
	          alert('请输入正确的邮政编码');
	          object.value="";
	          object.focus();
	         }
	     }
	}
	
/***********************************************************************/
//身份证验证,Idcard错误信息显示区id
function IdCardValidate(_this) {
	var _exp = _this.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
	if (_exp == null) {
		return false;
		_this.focus();
	}
	return true;
}
//根据身份证得到性别		
function getSexByIdCard(_this) {
	var _exp = _this.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
	if (_exp[2].length == 12) {
		if ((_this.charAt(16) % 2) == 0) {
			return "0";
		} else {
			return "1";
		}
	} else {
		if ((_this.charAt(14) % 2) == 0) {
			return "0";
		} else {
			return "1";
		}
	}
}


//根据身份证得到出生日期
function getBirthdayByIdCard(_this) {
	var _exp = _this.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
	if (_exp[2].length == 12) {
		var birthday = [_exp[9], _exp[10], _exp[11]].join("-");
		return birthday;
	} else {
		var birthday = ["19" + _exp[4], _exp[5], _exp[6]].join("-");
		return birthday;
	}
}
/***********************************************************************/