  var msg;
  function trim(value)
  { 
     return value.replace(/(^\s+)|(\s+$)/g,"");
  }
  function isLeapYear(year) 
  { 
     if((year%4==0&&year%100!=0)||(year%400==0)) 
     { 
       return true; 
     }  
     return false; 
  }
  
  
  /*
   功能：判断输入是否是一定范围内的数值类型
   str:  被检查的字符串 [必须输入]
   flag: flag=='y', 输入允许为空，否则不允许为空 [可选]
   min:  最小值 [可选]
   max:  最大值 [可选]
  */
  function isnumber(obj,flag,min,max)
  {
	 var errmsg ;
     if ( obj.title == null) errmsg = "检查失败,输入是"+obj.value ;
	 else errmsg              =  "请输入正确的"+obj.title;
	 
     if (arguments.length == 0 )
	 {
	   //没有参数输入，错误
		alert(errmsg+",无参数输入，必须输入参数!");
		return false;
	 }
	 if (arguments.length == 1)
	 {
	    str = trim(obj.value);
		if ( str == null || !isNaN(str) )  return true;
		alert(errmsg+",输入必须是数值类型!");
		obj.focus();
		return false;
	 }
	 if (arguments.length == 2 || arguments.length == 3)
	 {
	  	str = trim(obj.value);
		 
		if ( str == null || str.length ==0)
		 {
			if ( flag == 'y' ) return true;
			alert(errmsg + ",输入不能为空!");
			obj.focus();
            		return false;
		 } else {
		    	if ( !isNaN(str)) return true;
		    	alert(errmsg + ",必须是数值类型!");
			obj.focus();
			return false;
		 }
	 }
	  
	  if (obj != null ) {
	     str = trim(obj.value);
		 if ( (str == null || str == '') && flag == 'y' ) return true;
		 if (!isNaN(str)) {
		    n1 = parseInt(str,10);
			n2 = parseInt(min,10);
			n3 = parseInt(max,10);
           	if (n1>=n2 && n1<=n3) {
		        return true;            
		    } else {
		        alert(errmsg+","+obj.title+"应该在"+min+"到"+max+"之间！");
				obj.focus();
		        return false;
		    }
		 } else {
		    alert(errmsg +","+obj.title+"必须为数字！");
			obj.focus();
			return false;
		 }
	 } else {
	     if (falg == 'y') {
		    return true;
		 } else {
		    alert(errmsg + ",输入不能为空!");
			obj.focus();
		    return false;
		 }
	 }
  }
   /*
   功能：判断输入是否是具有一定长度范围的字符类型
   str:  被检查的字符串 [必须输入]
   flag: flag=='y', 输入允许为空，否则不允许为空 [可选]
   min:  字符串长度最小值 [可选]
   max:  字符串长度最大值 [可选]
  */
  function isstring(obj,flag,min,max)
  {    
    
	 var errmsg ;
	 if ( obj.title == null) errmsg = "检查失败,输入是"+obj.value ;
	 else errmsg              =  "请输入正确的"+obj.title;
	 
	 if (arguments.length == 0 )
	 {
	   //没有参数输入，错误
		alert(errmsg+",无参数输入，必须输入参数!");
		return false;
	 }
	 if (arguments.length == 1)
	 {
	    return true;
	 }
	 if (arguments.length == 2 || arguments.length == 3)
	 {
	  	str = trim(obj.value);
    	if ( str != null && str.length > 0) { return true;}
    	else
		 {
			 if ( flag == 'y' ) return true;
             alert(errmsg + ",输入不能为空!");
			 obj.focus();
             return false;
		 } 
	 } 
	 if (obj.value != null && obj.value.length > 0 ) {
	     str = trim(obj.value);
		 n1 = str.length;
 	     n1 = parseInt(n1,10);
		 n2 = parseInt(min,10);
		 n3 = parseInt(max,10);
         if (n1>=n2 && n1<=n3) {
	        return true;            
 	     } else {
		    alert(errmsg +","+obj.title+"长度应该在"+min+"到"+max+"之间！");
   		    obj.focus();
		    return false;
		 }
	 } else {
	     if (flag == 'y') {
		    return true;
		 } else {
		    alert(errmsg+",输入不能为空!");
   		    obj.focus();
		    return false;
		 }
	 }
  }
  /*
   功能：判断输入是否是日期类型
   obj:  被检查的表单对象
   flag: flag=='y', 输入允许为空，否则不允许为空 
   fmt:  "yyyy-mm-dd"
  */
   function isdate(obj,flag,fmt){
    var datetime;
    var year,month,day;
    var gone,gtwo;
	
	 var errmsg ;
	 if ( obj.title == null) errmsg = "检查失败,输入是"+obj.value ;
	 else errmsg              =  "请输入正确的"+obj.title;
	
	 
	datetime = trim(obj.value);
    if (datetime != ""){
       if (datetime.length==10){
          year=datetime.substring(0,4);
          gone=datetime.substring(4,5);
		  gtwo=fmt.substring(4,5);
          month=datetime.substring(5,7);
          day=datetime.substring(8,10);
          if(isNaN(year)==true){
             alert(errmsg+",日期格式为"+fmt+"！");
			 obj.focus();
             return false;
          }
          if(isNaN(month)==true){
             alert(errmsg+",日期格式为"+fmt+"！");
			 obj.focus();
             return false;
          }
          if(isNaN(day)==true){
             alert(errmsg +", 日期格式为"+fmt+"！");
			 obj.focus();
             return false;
          }
          if(gone == gtwo){
             if(month<1||month>12) { 
                alert(errmsg+",月份必须在01和12之间!"); 
				obj.focus();
                return false; 
             } 
             if(day<1||day>31){ 
                alert(errmsg + ",日期必须在01和31之间!");
				obj.focus();
                return false; 
             }else{
                if(month==2){  
                   if(isLeapYear(year)&&day>29){ 
                      alert(errmsg + ",二月份日期必须在01到29之间!"); 
					  obj.focus();
                      return false; 
                    }       
                   if(!isLeapYear(year)&&day>28){ 
                      alert(errmsg+ ",二月份日期必须在01到28之间!");
					  obj.focus();
                      return false; 
                   } 
                } 
                if((month==4||month==6||month==9||month==11)&&(day>30)){ 
                   alert(errmsg + ", 在四，六，九，十一月份 \n日期必须在01到30之间!");
				   obj.focus();
                   return false; 
                } 
            }
          }else{
            alert(errmsg + ",日期格式为"+fmt+"！");
			obj.focus();
            return false;
          }
       }else{
          alert(errmsg +", 日期格式为"+fmt+"！");
		  obj.focus();
          return false;
       }
    }else{
       if (flag == 'y' ) {
         return true;
	   } else {
	     alert(errmsg +", 日期格式为"+fmt+"！");
		 obj.focus();
	     return false;
	   }
    }
    return true;
  }
 
// add by zoukunhong at 2005-07-22
	function isemail(obj,flag,min,max) {
		if(isstring(obj,flag)){
			if (!checkEmail(obj.value)) {
				alert(obj.title + "不是有效的邮件地址。");
				obj.focus();
				return false;
			}
			return true;
		}else{
			return false;
		}
	}


function checkEmail(emailStr) {
   if (emailStr.length == 0) {
	   return true;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
   var matchArray=emailStr.match(emailPat);
   if (matchArray == null) {
	   return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
	   return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
	   for (var i = 1; i <= 4; i++) {
		  if (IPArray[i] > 255) {
			 return false;
		  }
	   }
	   return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
	   return false;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
	   (domArr[domArr.length-1].length > 3)) {
	   return false;
   }
   if (len < 2) {
	   return false;
   }
   return true;
}



function ismobile(obj,flag)
{
	 var errmsg ;
	 if ( obj.title == null) errmsg = "检查失败,输入是"+obj.value ;
	 else errmsg              =  "请输入正确的移动电话号码";
	 
	 if (arguments.length == 0 )
	 {
	   //没有参数输入，错误
		alert(errmsg+",无参数输入，必须输入参数!");
		return false;
	 }

	 if (obj.value != null && obj.value.length > 0 ) {
	     str = trim(obj.value);
		 if(isNaN(str)){ 
			 alert(errmsg);
			 return false;
		 }
		 if(str.length==11)
			if(str.substring(0,2)!="13" && str.substring(0,2)!="15"){
			 alert(errmsg);
			  return false;
		  }
		if(str.length!=11 && str.length!=8){
			 alert(errmsg);
				return false;
		}
	 } else {
	     if (flag == 'y') {
		    return true;
		 } else {
		    alert(errmsg+",输入不能为空!");
   		    obj.focus();
		    return false;
		 }
	 }
}

//检查输入的字符串，由英文字母和数字组成
function checkstring(obj,flag)
{
	 var errmsg ;
	 var i=0;
	 var validchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	 var parsed = true;
	 if ( obj.title == null) errmsg = "检查失败,输入是"+obj.value ;
	 else errmsg              =  "请输入正确的"+obj.title;
	 
	 if (arguments.length == 0 )
	 {
	   //没有参数输入，错误
		alert(errmsg+",无参数输入，必须输入参数!");
		return false;
	 }

	 if (obj.value != null && obj.value.length > 0 ) {
	     str = trim(obj.value);
		 for(i=0;i<str.length;i++){
			var letter=str.charAt(i);
			if (validchars.indexOf(letter) != -1)
				continue;
			else{
				alert(errmsg+",输入非法字符: " + letter);
				parsed = false;
				break;
			}
		 }
		return parsed;
	 } else {
	     if (flag == 'y') {
		    return true;
		 } else {
		    alert(errmsg+",输入不能为空!");
   		    obj.focus();
		    return false;
		 }
	 }
}
