 /*
	功能：检查日期格式是否有效；
	输入：日期字符串；日期的格式(YYYY年,MM月,DD日,格式可以为YYYYMMDD,MM/DD/YYYY等)
	输出：是true；否false；
*/

function isValidDate(dateStr,format){
	var yearPos = format.indexOf("YYYY");
	var monthPos = format.indexOf("MM");
	var dayPos = format.indexOf("DD");
	
	if(dateStr.length != format.length){
		return false;
	}
	
	var year = dateStr.substring(yearPos,yearPos + 4);
	var month = dateStr.substring(monthPos,monthPos + 2);
	var day = dateStr.substring(dayPos,dayPos + 2); 

	if(isNaN(year) || isNaN(month) || isNaN(day)){
		return false;
	}
	
	var dayNumOfMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	
	if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
		dayNumOfMonth[1]=29;
	}
	
	if(month < 1 || month > 12 || day >dayNumOfMonth[month -1] || day < 1 ){
		return false
	}
	else{
		return true;
	}

}

//函数名：chkcred                                 
//功能介绍：检查字符串的内容是不是正确的身份证号                                  
//参数说明：要检查的字符串                                  
//返回值：1:内容符合;0:内容不符合 
function chkcred(credNum)
{
   var weight =new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
	var sum = 0;
	var checkDigit ='X';
	
	/*身份证长度检查*/
	if(credNum.length != 15 && credNum.length != 18){
		return 0;
	}
	
	/*15位身份证号码*/
	if(credNum.length == 15){
		//出生年月日的合法性
		if(isValidDate("19" + credNum.substr(6,6),"YYYYMMDD")==false){
			return 0;
		}	
      if(isNumberString(credNum)==0){
         return 0;
      }	
	}else{
	
   	//前17位是否全为数字
   	if(isNumberString(credNum.substr(0,17))==0){
   		return 0;
   	}
   	
	   //出生年月日的合法性
	  if(!isValidDate(credNum.substr(6,8),"YYYYMMDD")){
		return 0;}
		
		//计算校验位的值
   	for(var i = 0; i < 17; i++){
   		sum = sum + credNum.substr(i,1)*weight[i];
   	}
	
   	//求余数
   	var mod = sum - Math.floor(sum/11)*11;

   	switch(mod){
   		case 0:
   			checkDigit = "1";
   			break;
   		case 1:
   			checkDigit = "0";
   			break;
   		case 2:
   			checkDigit = "X";
   			break;
   		case 3:
   			checkDigit = "9";
   			break;
   		case 4:
   			checkDigit = "8";
   			break;
   		case 5:
   			checkDigit = "7";
   			break;
   		case 6:
   			checkDigit = "6";
   			break;
   		case 7:
   			checkDigit = "5";
   			break;
   		case 8:
   			checkDigit = "4";
   			break;
   		case 9:
   			checkDigit = "3";
   			break;
   		case 10:
   			checkDigit = "2";
   			break;
	      }
	      
	  if(credNum.substr(17,1) != checkDigit.toString()){
		return 0;
	  }
	 return 1;
  }
}


//函数名：chkitem                                  
//功能介绍：检查字符串的内容是不字母数字或是下划线                                  
//参数说明：要检查的字符串                                  
//返回值：1:内容符合;0:内容不符合                                                                    
function chkitem(str)                                  
{	                                  
  var strSource ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";                                  
  var ch;                                  
  var i;                                  
  var temp;                                  
                                    
  for (i=0;i<=(str.length-1);i++)                                  
  {                                  
                                    
    ch = str.charAt(i);                                  
    temp = strSource.indexOf(ch);                                  
    if (temp==-1)                                   
    {                                  
     return 0;                                  
    }                                  
  }                                  
  if (strSource.indexOf(ch)==-1)                                  
  {                                  
    return 0;                                  
  }                                  
  else                                  
  {                                  
    return 1;                                  
  }                                                                     
}  

//函数名：chkspc                                  
//功能介绍：检查是否含有空格                                  
//参数说明：要检查的字符串                                  
//返回值：0：是  1：不是                                  
function chkspc(a)                                  
{                                  
	var i=a.length;                                  
	var j = 0;                                  
	var k = 0;                                  
	while (k<i)                                  
	{                                  
		if (a.charAt(k) != " ")                                  
			j = j+1;                                  
		k = k+1;                                  
	}                                  
	if (j==0)                                  
	{                                  
		return 0;                                  
	}                                  
	                                  
	if (i!=j)                                  
	{ return 2; }                                  
	else                                  
	{                                  
		return 1;                                  
	}                                  
}
                                 
//函数名：fucCheckLength                                  
//功能介绍：检查字符串的长度                                  
//参数说明：要检查的字符串                                  
//返回值：长度值                                  
function fucCheckLength(strTemp)                                  
{                                  
	var i,sum;                                  
	sum=0;                                  
	for(i=0;i<strTemp.length;i++)                                  
	{                                  
		if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))                                  
			sum=sum+1;                                  
		else                                  
			sum=sum+2;                                  
	}                                  
	return sum;                                  
}

//函数名：isNumberString
//功能介绍：检查是否为数字
//参数说明：要检查的数字
//返回值：1为是数字，0为不是数字
function isNumberString(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;
}

//函数名：fucCheckTEL
//功能介绍：检查是否为电话号码
//参数说明：要检查的字符串
//返回值：1为是合法，0为不合法
function fucCheckTEL(TEL)
{
	var i,j,strTemp;
	strTemp="0123456789-";
	for (i=0;i<TEL.length;i++)
	{
		j=strTemp.indexOf(TEL.charAt(i));	
		if (j==-1)
		{
		//说明有字符不合法
			return 0;
		}
	}
	//说明合法
	return 1;
}

//函数名：chkemail
//功能介绍：检查是否为Email Address
//参数说明：要检查的字符串
//返回值：0：不是  1：是
function chkemail(a)
{	var i=a.length;
	var temp = a.indexOf('@');
	var tempd = a.indexOf('.');
	if (temp > 1) 
	   {
		if ((i-temp) > 5)
		{
		   if ((i-tempd)>1)
		   {
			   return 1;
			}
			
		}
	   }
	return 0;
}

//函数名：chkmobile
//功能介绍：检查是否为手机号码
//参数说明：要检查的字符串
//返回值：0：不是  1：是
function chkmobile(str) {
        if (isNumberString(str)==1){
             if (parseInt(str)>13000000000 && parseInt(str)<14000000000)
		return 1;
        }
	return 0;
}

//函数名：chkmobile_yd
//功能介绍：检查是否为移动手机号码
//参数说明：要检查的字符串
//返回值：0：不是  1：是
function chkmobile_yd(str) {
        if (isNumberString(str)==1){
             if (parseInt(str)>13300000000 && parseInt(str)<14000000000)
		return 1;
        }
	return 0;
}

//函数名：CopyToMobile
//功能介绍：把目标字符串如果是手机则复制到手机栏目中
//参数说明：要复制的字符串
function CopyToMobile(str,form) {
        if (chkmobile(str)==1){
           form.MobilePhone.value=str;
           form.MobilePhone.select();
        }else{
           if ((str.length==0) && (form.MobilePhone.value.length!=0)){
              form.MobilePhone.select();
           }
        }
}


//函数名：Jtrim
//功能介绍：把目标字符串前后的空格去掉
//参数说明：要格式化的字符串
function Jtrim(str)
{
        var i = 0;
        var len = str.length;
        if ( str == "" ) return( str );
        j = len -1;
        flagbegin = true;
        flagend = true;
        while ( flagbegin == true && i< len)
        {
           if ( str.charAt(i) == " " )
                {
                  i=i+1;
                  flagbegin=true;
                }
                else
                {
                        flagbegin=false;
                }
        }

        while  (flagend== true && j>=0)
        {
            if (str.charAt(j)==" ")
                {
                        j=j-1;
                        flagend=true;
                }
                else
                {
                        flagend=false;
                }
        }

        if ( i > j ) return ("")

        trimstr = str.substring(i,j+1);
        return trimstr;
}
