
var field_config =new Array() ;
var check_global_status_img=false ;


function matchCheck(fn,v) {
	
	 for(var i =0;i<field_config.length;i++) {
	 	 if (fn ==field_config[i][0]) { //match field
	 	 	
	 	  b =	loopProps(field_config[i][2],v,field_config[i][1]) ;
	 	  return b ;
	 	 	
	 	}
	 	
	}
	return true ;
	
}

function loopProps(propstr,v,error_div) {
	var maps =propstr.split(",") ;
	//alert(maps.length) ;
	var error ="" ;
for(var i =0 ;i<maps.length;i++ ) {
	 var item =maps[i] ;
	 var submap =item.split("="); 
	 var propName=submap[0] ;
	 var param  =submap[1] ;
	// alert(propName+":"+param) ;
	

	 var error = getFieldError(propName ,param,v);
	 if (error ) {
	   document.all[error_div].style.color="red"
	   document.all[error_div].innerHTML=error;
	  if (check_global_status_img)
	   document.all[error_div+"_img"].src="/images/cuo.gif";
	   
	   
	  break ;
	 } 

	 
	 //alert(fieldname+" is: "+v) ;
}
  if (!error) {
    	   document.all[error_div].style.color="black";
    	   document.all[error_div].innerHTML="输入正确";
    	  
    	   if (check_global_status_img)

    	   document.all[error_div+"_img"].src="/images/duigou.gif";
    	   
    	   }
    	   
    return 	!error;   

}
function validateForm(frmobj){
//return true ;
 
 var elements ;
 if (frmobj) {
 elements=document.all[frmobj].elements ;
 }else { 
 elements=document.forms[0].elements ;
 
 }
 var checkResult =true ;
 for(var i =0 ;i<elements.length;i++) {
    if(elements[i].type=="text"||elements[i].type=="password") {
    var obj =elements[i];
 //	alert(obj.name);
 	var b =matchCheck(obj.name,obj.value);
 	if (!b)
 	   checkResult =false;
   }
 }
 
 return checkResult;
 

}

	 function  getFieldError(t ,param,v) {
	 
	  if (t=="must" &&param=="true") {
	  	if (!v)
	  	 return "不能为空";
	  	
	  }else if (t=="min") {
	  	 if(v&&v.length<param)
	  	 return "长度必须大于等于"+param; 
	  	
	  }else if (t=="max") {
	  		if(v&&v.length>param)
	  	 return "长度必须小于等于"+param; 
	  	
	  }	else if (t=="type") {
	  	  if("email"==param) {
	  	  //	alert("checkmail") ;
	  	    if(!isEmail(v))
	  	     return "必须输入合法的邮件地址,如:admin@efirsta.com";
	  	  	
	  	  }else if ("phone"==param) {
	  	  	  if(!isPhone(v))
	  	      return "必须输入合法的电话信息,不能包含非法字符";
	  	  	
	  	  }
	  	
	  }	else if ("chinese"==t) {
	  	
	  	if (v) {
				
				var b =containChinese(v);
				
				if(param=="false"&&b) {
			
					return "不能包含中文";
				}else if (param=="true"&&!b) {
					return "必须填写中文";
					
				}
			   
				
			}
	  }	else if (t=="same") {
	  	   var other =document.all[param].value ;
	  	 if (v !=other)
	  	  return "两次输入不一致" ;
	  }else if ("filter"==t) {
	  //	alert();
	  	if (v&&"true"==param) {
				
			var filters ="!@#$%^&*()+=~`[]{}:;'<>.|,?/\"";
			  for(var i =0;i<filters.length;i++) {
			   var chars =filters.charAt(i);
			   if(v.indexOf(chars) !=-1)
			     return "不能包含非法字符";
			  } 
				
			}
	  }
	  
	  
	  return false ;
	 	
	 	
	}
function containChinese(v) {
	if (!v) return false;
	var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
	for(var i =0;i<v.length;i++) {
      var chars =v.charAt(i);
      var b =pattern.test(chars);
      if (b) return true;
    }
    return false ;

}

function isEmail(email)
{
/*
	var reEmail = /^\w+([-+.]\w+)*@(\w)+(\.)(com|com\.cn|net|cn|net\.cn|org|biz|info|gov|gov\.cn|edu|edu\.cn)/;
    if (email.match(reEmail)&&email!="")
    {
    	return true;
    }
    else return false;
    */
    
    return __emailValidate_D(email);
}

function __emailValidate_D(email)
{

        invalidChars = " /;,:{}[]|*%$#!()`<>?";
        if (email == "")
        {
                return false;
        }
        for (i=0; i< invalidChars.length; i++)
        {
                badChar = invalidChars.charAt(i)
                if (email.indexOf(badChar,0) > -1)  {
                        return false;
                }
        }
        atPos = email.indexOf("@",1)
        if (atPos == -1)  {   return false;  }
        if (email.indexOf("@", atPos+1) != -1) {   return false;  }
        periodPos = email.indexOf(".",atPos)
        if(periodPos == -1) {
                return false;  // and at least one "." after the "@"
        }
        if ( atPos +2 > periodPos)  {
                return false;  // and at least one character between "@" and "."
        }
        if ( periodPos +3 > email.length)  {   return false;  }
        return true;
}

function isPhone(phone)
{
 /*
	var regu =/^(00\d{1,3}-){0,1}0\d{3}-\d{7,8}$/ ;    
    var re = new RegExp(regu);    
	return re.test(phone);*/
	if (!phone) return false ;
	var filters ="0123456789()+-";
		for(var i =0;i<phone.length;i++) {
		var chars =phone.charAt(i);
		if(filters.indexOf(chars) ==-1)
			return false ;
		}
	return true ;	
}

function doquery(){

document.forms[0].submit() ;

}
