//验证email
function isEmail(MailAddress)
{
	if(MailAddress.length!=0)
	{
		if (MailAddress.charAt(0)=="." || 
			MailAddress.charAt(0)=="@"|| 
			MailAddress.indexOf('@', 0) == -1 || 
			MailAddress.indexOf('.', 0) == -1 || 
			MailAddress.lastIndexOf("@")==MailAddress.length-1 || 
			MailAddress.lastIndexOf(".")==MailAddress.length-1)
				return false;
		
		 else
			return true;
	 }
		return false;
}
//是否手机
function isMobil(mobile)
{
	//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	//s=obj.value;
	//if (!patrn.exec(s)) return false;
	if(mobile.length!=11)
	{
		return false;
	}
	var myreg = /^(((13[0-9]{1})|159|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
	if(!myreg.test(mobile))
	{
		return false;
	}
	return true;
}
//是否电话
function isTel(telphone)
{
	//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	//s=obj.value;
	//if (!patrn.exec(s)) return false
	//return true
	var cellphone=/^([\d-+]*)$/;
	if(!cellphone.test(telphone))
	{
		return false;
	}
	return true;
}
//邮编
function isPostalCode(obj)
{
	var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
	s=obj.value;
	if (!patrn.exec(s)) return false
	return true
}

//对输入域是否是日期的校验，splitChar参数缺省为"-"
function isDate(date,splitChar)
{
	  var charSplit = (splitChar==null?"-":splitChar);
	  var strValue = date.split(charSplit);
	  if(strValue.length!=3) return false;
	  //alert(strValue[0].length+"\t"+strValue[1].length+"\t"+strValue[2].length);
	  //alert(strValue[0].length==4&&strValue[1].length==2&&strValue[2].length==2);
	  if(!(strValue[0].length==4&&strValue[1].length==2&&strValue[2].length==2)) return false;
	  if(!isInt(strValue[0]) || !isInt(strValue[1]) || !isInt(strValue[2]) ) return false;
	  var intYear  = parseInt(strValue[0],10);
	  var intMonth = parseInt(strValue[1],10)-1;
	  var intDay   = parseInt(strValue[2],10);

	  var dt = new Date(intYear,intMonth,intDay);
	  if( dt.getFullYear() != intYear ||
	      dt.getMonth() != intMonth ||
	      dt.getDate() != intDay
	     )
	  {
	    return false;
	  }
	  return true;
}

//是否有效日期
function checkIsValidDate(str)
{
    if(str == "")
        return true;
    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;
    if(!pattern.test(str))
        return false;
    var arrDate = str.split("-");
    if(parseInt(arrDate[0],10) < 100)
        arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);
    if(date.getFullYear() == arrDate[0]
       && date.getMonth() == (parseInt(arrDate[1],10) -1)+""
       && date.getDate() == arrDate[2])
        return true;
    else
        return false;
}
//日期对比
function dateDuibi(a,b)
{ 
	var arr=a.split("-"); 
	var starttime=new Date(arr[0],arr[1],arr[2]); 
	var starttimes=starttime.getTime();
	
	var arrs=b.split("-"); 
	var lktime=new Date(arrs[0],arrs[1],arrs[2]); 
	var lktimes=lktime.getTime();
	if(starttimes>=lktimes) 
	{
		return true;
	}
	else
		return false;

}


//
function isInt(str)
{
	for (Count=0; Count < str.length; Count++)
	{
		if(!IsDigit(str.charAt(Count))) return false;

	}
	return true;
}
function IsDigit(cCheck) { return (('0'<=cCheck) && (cCheck<='9')); }


//去掉字符串头空格
function leftTrim(strValue)
{
  var re =/^\s*/;
  if(strValue==null)
    return null;

 strValue= "" + strValue;
  var strReturn = strValue.replace(re,"");

  return strReturn;
}

//去掉字符串尾空格
function rightTrim(strValue)
{
  var re =/\s*$/;
  if(strValue==null)
    return null;

  var strReturn = strValue.replace(re,"");

  return strReturn;
}

//去掉字符串头尾空格
function trim(s)
{
  var strReturn;
  strReturn = leftTrim(s);
  strReturn = rightTrim(strReturn);

  return strReturn;
}

//对输入域是否是整数的校验,即只包含字符0123456789
function isInteger(strValue)
{
  var result = regExpTest(strValue,/\d+/g);

  return result;
}

//RegExt Test
function regExpTest(source,re)
{
  var result = false;

  if(source==null || source=="")
    return false;

  if(source==re.exec(source))
    result = true;

  return result;
}

//对输入域是否是数字的校验
function isNumeric(strValue)
{
  var result = regExpTest(strValue,/\d*[.]?\d*/g);
  return result;
}


function isIdCardNo(num)
{
	
	var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
	var error;
	var varArray = new Array();
	var intValue;
	var lngProduct = 0;
	var intCheckDigit;
	var intStrLen = num.length;
	var idNumber = num;
	alert(intStrLen);
	// initialize
	if ((intStrLen != 15) && (intStrLen != 18)) {
		error = "输入身份证号码长度不对！";
		alert(error);
		return false;
	}
	// check and set value
	for(i=0;i<intStrLen;i++) {
		varArray[i] = idNumber.charAt(i);
		if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
			error = "错误的身份证号码！.";
			alert(error);
			return false;
		} else if (i < 17) {
			varArray[i] = varArray[i]*factorArr[i];
		}
	}
	if (intStrLen == 18) {
		//check date
		var date8 = idNumber.substring(6,14);
		if (checkDate(date8) == false) {
			error = "身份证中日期信息不正确！.";
			alert(error);
			return false;
		}
		// calculate the sum of the products
		for(i=0;i<17;i++) {
			lngProduct = lngProduct + varArray[i];
		}
		// calculate the check digit
		intCheckDigit = 12 - lngProduct % 11;
		switch (intCheckDigit) {
		case 10:
			intCheckDigit = 'X';
			break;
		case 11:
			intCheckDigit = 0;
			break;
		case 12:
			intCheckDigit = 1;
			break;
		}
		// check last digit
		if (varArray[17].toUpperCase() != intCheckDigit) {
		error = "身份证效验位错误!...正确为： " + intCheckDigit + ".";
		alert(error);
		return false;
		}
	}
	else{ //length is 15
		//check date
		var date6 = idNumber.substring(6,12);
		if (checkDate(date6) == false) {
			alert("身份证日期信息有误！.");
			return false;
		}
	}
	return true;
	}
	
	
	
    function checkDate(date)
	{
	return true;
} 


function checkId(pId){

    var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
    var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
    var Checker = [1,9,8,7,6,5,4,3,2,1,1];

    if(pId.length != 15 && pId.length != 18)    return "身份证号共有15位或18位!";

    var Ai=pId.length==18 ?  pId.substring(0,17)   :   pId.slice(0,6)+"19"+pId.slice(6,16);

    if (!/^\d+$/.test(Ai))  return "身份证除最后一位外，必须为数字！";

    var yyyy=Ai.slice(6,10) ,  mm=Ai.slice(10,12)-1  ,  dd=Ai.slice(12,14);

    var d=new Date(yyyy,mm,dd) ,  now=new Date();
     var year=d.getFullYear() ,  mon=d.getMonth() , day=d.getDate();

    if (year!=yyyy || mon!=mm || day!=dd || d>now || year<1900) return "身份证输入错误！";

    for(var i=0,ret=0;i<17;i++)  ret+=Ai.charAt(i)*Wi[i];    
    Ai+=arrVerifyCode[ret %=11];
    
     

    return pId.length ==18 && pId != Ai?"身份证输入错误！":"";        
}


function chkdate(tmpy,tmpm,tmpd){
	//chkdate
	 var year=new String (tmpy);
	 var month=new String (tmpm);
	 var day=new String (tmpd);
	 var a=new Date(year+"/"+month+"/"+day);
	 if(a<(new Date("1900/1/1"))||a>(new Date())){ 
	  window.alert("你输入的日期超出范围!");
	  return false;
	 }
	 if (!(((year % 400)==0)||((year % 100!=0)&&(year % 4 ==0 ))) && (month==2) && (day>=29))
	 {
	  window.alert ("不是闰年,2月只有28天!");
	  return false;
	 }
	 if ((month==2) && (day>=30))
	 {
	  alert ("闰年2月只有29天!");
	  return false;
	 }
	 if ((month<=7) && ((month % 2)==0) && (day>=31))
	 {
	  alert (month+"月只有30天!");
	  return false;
	 
	 }
	 if ((month>=8) && ((month % 2)==1) && (day>=31))
	 {
	  alert (month+"月只有30天!");
	  return false;
	 } 
	   return true;
}


Date.prototype.format = function(mask) {   
  
    var d = this;   
  
    var zeroize = function (value, length) {   
  
        if (!length) length = 2;   
  
        value = String(value);   
  
        for (var i = 0, zeros = ''; i < (length - value.length); i++) {   
  
            zeros += '0';   
  
        }   
  
        return zeros + value;   
  
    };     
  
    return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])\1?|[lLZ])\b/g, function($0) {   
  
        switch($0) {   
  
            case 'd':   return d.getDate();   
  
            case 'dd':  return zeroize(d.getDate());   
  
            case 'ddd': return ['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][d.getDay()];   
  
            case 'dddd':    return ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'][d.getDay()];   
  
            case 'M':   return d.getMonth() + 1;   
  
            case 'MM':  return zeroize(d.getMonth() + 1);   
  
            case 'MMM': return ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][d.getMonth()];   
  
            case 'MMMM':    return ['January','February','March','April','May','June','July','August','September','October','November','December'][d.getMonth()];   
  
            case 'yy':  return String(d.getFullYear()).substr(2);   
  
            case 'yyyy':    return d.getFullYear();   
  
            case 'h':   return d.getHours() % 12 || 12;   
  
            case 'hh':  return zeroize(d.getHours() % 12 || 12);   
  
            case 'H':   return d.getHours();   
  
            case 'HH':  return zeroize(d.getHours());   
  
            case 'm':   return d.getMinutes();   
  
            case 'mm':  return zeroize(d.getMinutes());   
  
            case 's':   return d.getSeconds();   
  
            case 'ss':  return zeroize(d.getSeconds());   
  
            case 'l':   return zeroize(d.getMilliseconds(), 3);   
  
            case 'L':   var m = d.getMilliseconds();   
  
                    if (m > 99) m = Math.round(m / 10);   
  
                    return zeroize(m);   
  
            case 'tt':  return d.getHours() < 12 ? 'am' : 'pm';   
  
            case 'TT':  return d.getHours() < 12 ? 'AM' : 'PM';   
  
            case 'Z':   return d.toUTCString().match(/[A-Z]+$/);   
  
            // Return quoted strings with the surrounding quotes removed   
  
            default:    return $0.substr(1, $0.length - 2);   
  
        }   
  
    });   
  
};  

//是html
function isHtml(remark)
{
	var t = /<\/*[^<>]*>/;
	if(!t.test(remark))
	{
		return false;
	}
	return true;
}

