/*
********************基本格式*******************************
例<input name="f1" v_type=string v_maxlength=32， v_minlength=20>字符类型，最大长度为32，最小为20
例<input name="f1" v_type=money v_maxvalue=1000>货币类型，金额最大为1000

类型：（必填）
      string       字符型
      zip          邮政编码型
      money        货币型
      0_9          0-9型
      a_z          a-z型
      A_Z          A-Z型
      a_Z          a-Z型
      a_Z0_9       a-Z型或0-9型
      int          整型     可以为负数
      float        浮点型   可以为负数
      email        电子邮件型
      date         日期型   （属性由month，day，输入表单元素的名称name）
      pwd          密码型   (属性有pwd2，输入校验密码的域名）
      phone        电话型
      idcard       身份证型
      single       单选框
      multi        复选框
      tel          电话类型(标准：国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位))
      mobile       手机类型
      
属性：v_minlength   最小长度
      v_maxvalue    最大值
      v_minvalue    最小值
      v_name        报错时显示的名称
      v_must        必填项(1,必填 0非必填)
      v_maxlength   最大长度
      v_type        类型(必填)
      v_incode      全角半角 'dbc':半角(暂时只有半角)
      v_duplicate   指定与当前的控件的value相同的另一个控件的ID

××××××××××××入口函数×××××××××××××××××××
function check(formname)

××××××××××××基本函数列表×××××××××××××××××××
function boolean isMadeOf(value,str)   //判断value中的字符是否由str中的字符组成
function boolean isSizeOf(value,max,min)//判断value的大小是否由符合标准
function boolean isLengthOf(value,max,min)//判断value的长度是否由符合标准
function boolean isNotNull(value)//判断value是否空或null
function trimSubStr(ATrimStr,ASubStr,AWhere)//去掉符合条件的字符，用于去空格  


××××××××××××扩充函数列表×××××××××××××××××××
function void packUp(obj)//整理域的属性值，校验v_×域的值是否符合标准

××××××××××××××××××接口函数列表××××××××××××××××××××
function void forString(obj)//判断一般字符串的长度
function void forZip(obj)//判断邮政编码
function void forMoney(obj)//判断金额
function void for0_9(obj)//判断字符是否由0－9个数字组成
function void forInt(obj)//判断字符是否是整数组成，可以为负数
function void forFloat(obj)//判断字符是否是数字，可以有小数点，负数
function void forEmail(obj)//判断字符是合法的电子邮件
function void forDate(obj1,obj2,obj2)//判断字符是合法的日期
function void forPwd(obj1,obj2)//判断字符密码，两次输入密码是否相等
function void forPhone(obj)//判断字符是否是合法的电话021-55555555,(021)2222222,
function void forMadeOf(obj,str)//判断字符是否是由str里的字符组成
function void forIdCard(obj1)//判断字符是否是合法的身份证号
function void forSingle(obj)//对单选框的必填校验
function void forMulti(obj)//对复选框的必填校验
function void forCertificate(obj)//对证件号码校验（排除汉字）
*/

//*****************全局变量****************************
var numStr="0123456789";
var idCardStr = "0123456789x";
var moneyStr = numStr + ".";//金额的组成,浮点数的组成
var intStr = numStr+"-";
var floatStr = moneyStr+"-";
var phoneStr = "()-#" + numStr;//电话号码
var codeStr = "#" + numStr;//机构代码
var dateStr = numStr+"-";//日期
var flag = 0;
var enWord = "abcdefghijklmnopqrstuvwxyz";
//var single_array = new Array();
//var multi_array = new Array();
var errorString = /[\=\'\"<>\(\)\\\/]+/;

//*********************入口函数***************************

function check(form)
{    var obj = null;
     var t = null;
     var i;

     for (i=0;i<form.length;i++)
    {    
         obj = form.elements[i];    

         packUp(obj); 		 
     
	     //if(obj.type=='hidden'|| obj.getAttribute("v_type") == "noclear"){}else{
	        //if(errorString.test(obj.value)){
	            //alert("您输入的内容里有非法字符，如 = ' \" < > ( ) \\ / 等！");
	            //obj.focus();
	            //return false;
	         //}
	    // }
    
         if(obj.getAttribute("v_type") == "string") forString(obj);
         else if(obj.getAttribute("v_type") == "zip") forZip(obj);
         else if(obj.getAttribute("v_type") == "money") forMoney(obj);
         else if(obj.getAttribute("v_type") == "0_9") for0_9(obj);
         else if(obj.getAttribute("v_type") == "a_z") fora_z(obj);
         else if(obj.getAttribute("v_type") == "A_Z") forA_Z(obj);
         else if(obj.getAttribute("v_type") == "a_Z") fora_Z(obj);
         else if(obj.getAttribute("v_type") == "a_Z0_9") fora_Z0_9(obj);
         else if(obj.getAttribute("v_type") == "int") forInt(obj);
         else if(obj.getAttribute("v_type") == "float") forFloat(obj);
         else if(obj.getAttribute("v_type") == "email") forEmail(obj);
         else if(obj.getAttribute("v_type") == "date") myDate(obj);
         else if(obj.getAttribute("v_type") == "pwd") forPwd(obj);
         else if(obj.getAttribute("v_type") == "phone") forPhone(obj);
         else if(obj.getAttribute("v_type") == "mobile") forMobile(obj);
         else if(obj.getAttribute("v_ip") == "ip")  forIp(obj);
         else if(obj.getAttribute("v_type") == "tel")  forTel(obj);
         else if(obj.getAttribute("v_type") == "code") forCode(obj);
         else if(obj.getAttribute("v_type") == "idcard") forIdCard(obj);
         else if(obj.getAttribute("v_type") == "single") forCheck(form,obj);
         else if(obj.getAttribute("v_type") == "multi") forCheck(form,obj);
         else if(obj.getAttribute("v_type") == "certif") forCertificate(obj);
         else if(obj.getAttribute("v_type") == "noclear") {}//对于‘清除’操作，但不清除的组件，不做校验操作
         else if(obj.getAttribute("v_type") == "search") forSearch(obj);
		 
		 if(flag==0&&obj.getAttribute("v_duplicate")) validateDuplicate(obj); 
		 

        // else alert("程序错误：'" + obj.name + "的’v_type =" + obj.getAttribute("v_type") + "'不是一个合法的类型！");
                    
        if(flag == 1) {
          flag = 0;
          return false;
        }
     }     
     return true;
}

//*********************基本函数***************************


function isMadeOf(val,str)
{

    var jj;
    var chr;
    for (jj=0;jj<val.length;++jj){
        chr=val.charAt(jj);
        if (str.indexOf(chr,0)==-1)
            return false;           
    }
    
    return true;
}


function isNotNull(val)
{
    if (val =="")
        return (false);
    if (val == null)
        return (false);
    
        return (true);
}

function isSizeOf(val,min,max)
{
    var maxval = parseFloat(max);
    var minval = parseFloat(min);
    var selval = parseFloat(val);
    
    if (isNaN(selval)){
      return false;
    }
    
    if (!isNaN(maxval)){
      if (selval > maxval){
        return false;
      }
    }
    if (!isNaN(minval)){
      if (selval < minval){
        return false;
      }
    }
    
    /*
    if (val < min || val > max){
      return false; 
    }
    */
        
    return (true);
}

function strlen(str)
{
    var len;
    var i;
    len = 0;
    for (i=0;i<str.length;i++)
    {
        if (str.charCodeAt(i)>255) len+=2; else len++;
    }
    return len;
}

function isLengthOf(val,min,max)
{           
    var minlen = parseInt(min);
    var maxlen = parseInt(max);  
    if (!isNaN(maxlen)){
      if (strlen(val) > maxlen){
        return false;
      }
    }
    if (!isNaN(minlen)){
      if (strlen(val) < minlen){
        return false;
      }
    }    
    return true;
}

//判断小数点
function isValid_dot(val)
{   
    
    var subvalue;
    
    if (val.indexOf(".",0) != -1){
    
       subvalue = val.substring(val.indexOf(".",0)+1);
       
      if (subvalue.indexOf(".",0) != -1){
        return false;  
      }
      
    }
    
    return true;
    
}

//判断负号
function isValid_negative(val)
{
    
    var subvalue;
    
    if (val.indexOf("-",0) != -1){
    
       if (val.indexOf("-",0) > 0){
         return false;
       }
       
       subvalue = val.substring(val.indexOf("-",0)+1);
      
      if (subvalue.indexOf("-",0) != -1){
        return false;       
      }
      
    }
    
    return true;
    

}

//校验日期格式2005-01-01
function isValid_date(val)
{

    var jj;
    var chr; 
    var str;
    var subvalue;
    str="-";
    
    
    if (!(val.length==10)){
      return false;
     }
     
     subvalue="";

    for (jj=0;jj<val.length;++jj){
        chr=val.charAt(jj);
        if (jj==4||jj==7){
          if (str.indexOf(chr,0)==-1){
            return false;
          }
        }else{
          subvalue=subvalue+chr;
        }
    }
    
    if (!isMadeOf(subvalue,numStr)){
      return false;
    }

    
    return true;
}

//判断合适长度
function isRight_length(val,num)
{
     var len = parseInt(num);
     
     if (isNaN(len)){ return true;}
     
     if (val.length != len){
       return false;
     }

     return true;

}

//***************************************************************************************************
//--- 从ATrimStr中去掉符合条件的字符串ASubStr 
//--- 参数：
//---    ATrimStr：要去掉符合条件字符串的字符串
//---    ASubStr：要去掉的子字符串
//---    AWhere 0：去掉所有的, 1:去掉左边相连的,2:去掉右面的相连的 
//--- 返回: 处理完的字符串
//---   创建日期:       2001-07-27      最近更新日期:   2001-07-27
//---   创建程序员:  xg_delayth      最近更新程序员: xg_delayth     
//---   维护程序员:     xg_delayth 
//--- 举例： trimSubStr(" usj  29 "," ",0) 返回 "usj29"
  function trimSubStr(ATrimStr,ASubStr,AWhere){  
    var tTrLength,tSbLength,tempLength;
    var tempString;
    var i; 

    tTrLength = ATrimStr.length;
    tSbLength = ASubStr.length;

    if (tSbLength == 0){return ATrimStr;}
    if (tSbLength > tTrLength){return ATrimStr;}
  
    tempString = ATrimStr;
    switch(AWhere){
      case 0://所有
        do{
          tempLength = tempString.length;
          tempString = tempString.replace(ASubStr,"");
        } while(tempLength != tempString.length);
        break; 
      case 1://左
        while (true){
          if (tempString.length < tSbLength) break;
          for (i = 0;i < tSbLength;i++)
            if (ASubStr.charAt(i) != tempString.charAt(i)) 
              return tempString;
          tempString = tempString.replace(ASubStr,"");  
        };  
      case 2://右
        while(true){
          tempLength = tempString.length;
          if (tempLength < tSbLength){return tempString;}
          for (i = 0;i < tSbLength;i ++){
            if (ASubStr.charAt(i) != tempString.charAt(tempLength - tSbLength+i)){
              return tempString;
            }  
          }    
          tempString = tempString.substr(0,tempLength-tSbLength); 
        };
      default:
        return tempString;
    }
    return tempString; 
  }
//***************************************************************************************************


//××××××××××××扩充函数列表×××××××××××××××××××
//整理域的属性值，校验v_×域的值是否符合标准
function  packUp(obj)
{   

     if (obj == null){
       alert("非法对象");
       return false;
     }
     
	 
         //创建v_name属性
         try{
           if (obj.getAttribute("v_name") == null){
             //alert("创建v_name属性");
			 obj.setAttribute("v_name",obj.name);
             //obj.getAttribute("v_name") = new String(obj.name);
            }            
         }catch(exception){}
         
         //创建v_type属性
         try{
           if (obj.getAttribute("v_type") == null){
             //alert("创建v_type属性");
			 obj.setAttribute("v_type","string");
             //obj.getAttribute("v_type") = new String("string");  
           }              
         }catch(exception){}
         
         //创建v_minlength属性
         try{
           if (obj.getAttribute("v_minlength") == null){
             //alert("创建v_minlength属性");
             obj.setAttribute("v_minlength","0");
             //obj.getAttribute("v_minlength") = new String("0");
            }            
         }catch(exception){}
         
         //创建v_maxlength属性
         try{
           if (obj.getAttribute("v_maxlength") == null){
             //alert("创建v_maxlength属性");
			 obj.setAttribute("v_maxlength","");
             //obj.getAttribute("v_maxlength") = new String("");
            }            
         }catch(exception){}
         
         //创建v_maxvalue属性
         try{
           if (obj.getAttribute("v_maxvalue") == null){
             //alert("创建v_maxvalue属性");
			 obj.setAttribute("v_maxvalue","");
             //obj.getAttribute("v_maxvalue") = new String("");
            }            
         }catch(exception){}
         
         //创建v_minvalue属性
         try{
           if (obj.getAttribute("v_minvalue") == null){
             //alert("创建v_minvalue属性");
			 obj.setAttribute("v_minvalue","");
             //obj.getAttribute("v_minvalue") = new String("");
            }            
         }catch(exception){}
         
        //创建v_must属性
         try{
           if (obj.getAttribute("v_must") == null){
             //alert("创建v_must属性");
			 obj.setAttribute("v_must","0");
             //obj.getAttribute("v_must") = new String("0");
            }            
         }catch(exception){} 
    
        //创建v_hidden属性



         try{
           if (obj.getAttribute("v_hidden") == null){
             //alert("创建v_hidden属性");
			 if(obj.v_hidden){
				  if(obj.v_hidden=='1') obj.setAttribute("v_hidden","1"); 
				  else obj.setAttribute("v_hidden","0");
			 }else{
			 	  obj.setAttribute("v_hidden","0");
			 }
             //obj.getAttribute("v_hidden")  = new String("0");
            }
         }catch(exception){}  
		 
		 
	     if (obj.value != null && obj.getAttribute("v_type") != "noclear"){
	       //obj.value = trimSubStr(trimSubStr(obj.value," ",1)," ",2);
	       obj.value=Trim(obj.value);
	       
	     }  
		 
	    return true;
    
}



//*********************扩充函数***************************



function forDate(useryear,usermonth,userday)
{
    var myyear;
    var mymonth;
    var myday;
    //myyear=parseInt(useryear);
    //mymonth=parseInt(usermonth);
    //myday=parseInt(userday);
    myyear=useryear;
    mymonth=usermonth;
    myday=userday;
    if (myyear < 1950 || myyear > 2050 ||mymonth < 1 ||mymonth > 12 || myday < 1 || myday > 31)
        return (false);
        if(mymonth==4 || mymonth==6 || mymonth==9 || mymonth==11)
        { 
            if(myday>30)
                    return (false);
        }
    if(myyear%4==0)
    {
        if((myyear%100==0 && myyear%400==0) || myyear%100!=0)
            {
                    if(mymonth==2 && myday>29)
                        return (false);
                    else
                    return (true);
            }
        }
    else
    {
            if(mymonth==2 && myday>28)
                    return (false);
                else
                    return (true);
    }
}

//校验日期格式2005-01-01
function myDate(obj)
{
    var myyear;
    var mymonth;
    var myday;
    
    /*
    //必填项判断 
      if (obj.getAttribute("v_must")!="0"){
      
        if (obj.value.length == 0){
           alert("'" + obj.getAttribute("v_name") + "'为必填项，请务必填写");
           flag = 1;
           obj.focus();
           return false;
        }
        
      }
     */
     if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
        
     if (!isMadeOf(obj.value,dateStr)){
            flag = 1;
            alert("'" + obj.getAttribute("v_name") + "'的值不正确！");//请输入数字！
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;
        }
    
    if (!isValid_date(obj.value)){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！日期格式有错误！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;  
    }
    
    myyear  = obj.value.substr(0,4);
    mymonth  = obj.value.substr(5,2);
    myday  = obj.value.substr(8,2);
     
    if (!forDate(myyear,mymonth,myday)){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！日期错误！不存在的日期！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;  
    }

          
      return true;
      

}


//查询界面的的text类型组件不允许有单数单引号(')，必须偶数出现
function  forSearch(obj){
    if(forString(obj)){
        var n = 0; //单引号数量
        for(i = 0; i < obj.value.length; i++){
            if(obj.value.charAt(i) == "'"){
                n++;
            }
        }
        if(n%2 != 0){//非偶数
            alert("条件 '"+obj.getAttribute("v_name")+"' 不允许有奇数单引号,操作无意义,请重新输入");
            flag = 1;
            if(obj.type=='hidden'){}else{obj.focus();}
            return false;
        }
    }
    return true;
}




function forString(obj)//判断一般字符串的长度
{     	  
      if(obj.getAttribute("v_hidden")=="1")
       return true;
      //必填项判断 
      if(obj.getAttribute("v_must")!=null){
          if (obj.getAttribute("v_must")!="0"){
          
            if (isEmpty(obj.value)){
               alert("'" + obj.getAttribute("v_name") + "'为必填项，请务必填写");
               flag = 1;
                if(obj.type=='hidden'){}
				else{
					try{
						obj.focus();
					}catch(e){}
				}
               return false;
            }
            
          }
      }
	  
      if(obj.getAttribute("v_incode")!=null&&obj.getAttribute("v_incode")=="dbc"){
        SBCtoDBC(obj);
      }
      
      if (!isLengthOf(obj.value,obj.getAttribute("v_minlength"),obj.getAttribute("v_maxlength"))){
        flag = 1;
        alert("'"+obj.getAttribute("v_name")+"'的值不正确！长度有错误！(提示：一个中文字符占2个长度)");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;
      
      }      
      return true;      
}

function forZip(obj)//判断邮政编码
{
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
  
    if (!isMadeOf(obj.value,numStr)){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入数字！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;
      }
          
    if (!isRight_length(obj.value,"6")){
      flag = 1;
      alert("'"+obj.getAttribute("v_name")+"'的值不正确！长度有错误！(6位数字)");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    } 

    return true;
}

function forMoney(obj)//判断金额
{   
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
        
    if (!isMadeOf(obj.value,moneyStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入数字（正值）！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }
     
    if (!isValid_dot(obj.value)){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！小数点有错误！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;  
    }
    
    if(obj.value.indexOf(".")==0 || obj.value.indexOf(".")==obj.value.length-1){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;
    }

    if (obj.value!=0){
        if (obj.value.indexOf("0")==0){
            if(obj.value.indexOf(".")>-1 && obj.value.indexOf(".")!=1){
                flag = 1;
                alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
                if(obj.type=='hidden'){}else{obj.focus();}
                return false;
            }
        }
    }
    
    if (!isSizeOf(obj.value,obj.getAttribute("v_minvalue"),obj.getAttribute("v_maxvalue"))){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！超出规定范围！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }     
    return true;    
}


function for0_9(obj) //判断字符是否由0－9个数字组成
{    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,numStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入数字！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }    
    return true;
    
}

function fora_z(obj) //判断字符是否由a－z个小写字母组成
{    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,enWord)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入小写字母！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }    
    return true;
    
}

function forA_Z(obj) //判断字符是否由A－Z个大写字母组成
{    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,enWord.toUpperCase())){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入大写字母！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }    
    return true;
    
}

function fora_Z(obj) //判断字符是否由a－Z个英文字母组成
{    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,enWord+enWord.toUpperCase())){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入英文字母！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }    
    return true;
    
}

function fora_Z0_9(obj) //判断字符是否由英文字母或数字组成
{    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,numStr+enWord+enWord.toUpperCase())){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入英文字母或数字！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }    
    return true;
    
}

function validateDuplicate(obj){
   var _o = document.getElementById(obj.getAttribute("v_duplicate"));
   if(_o){
        if(_o.value!=obj.value){
			flag = 1;
            alert("'" + obj.getAttribute("v_name") + "'的值与'"+_o.getAttribute("v_name")+"'的值不一致！");
            if(obj.type!='hidden'){
				obj.focus();
			}else if(_o.type!='hidden'){
				_o.focus();
			}
            return false;
        }
   }
   return true;
}

function forInt(obj)//判断字符是否是整数组成，可以为负数
{
    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,intStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入数字！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }
    
    if (!isValid_negative(obj.value)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！'-'符号有错误！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }
    
    if (!isSizeOf(obj.value,obj.getAttribute("v_minvalue"),obj.getAttribute("v_maxvalue"))){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！超出规定范围！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }    
   return true;
   
}

function forFloat(obj)//判断字符是否是数字，可以有小数点，负数
{
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
   
    if (!isMadeOf(obj.value,floatStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请输入数字！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }
    
    if (!isValid_dot(obj.value)){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！小数点有错误！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;  
    }   
    
    if(obj.value.indexOf(".")==0 || (obj.value.indexOf(".")==1 && obj.value.indexOf("-")==0) || obj.value.indexOf(".")==obj.value.length-1){
        flag = 1;
        alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;
    }
    
    if (!isValid_negative(obj.value)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！'-'符号有错误！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }

    if (obj.value!=0){
        if (obj.value.indexOf("-")==0)
        {
            if (obj.value.indexOf("0")==1){
                if(obj.value.indexOf(".")>-1 && obj.value.indexOf(".")!=2){
                    flag = 1;
                    alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
                    if(obj.type=='hidden'){}else{obj.focus();}
                    return false;
                }else if(obj.value.indexOf(".")==-1){
                    flag = 1;
                    alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
                    if(obj.type=='hidden'){}else{obj.focus();}
                    return false;
                }
            }
        }else{
            if (obj.value.indexOf("0")==0){
                if(obj.value.indexOf(".")>-1 && obj.value.indexOf(".")!=1){
                    flag = 1;
                    alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
                    if(obj.type=='hidden'){}else{obj.focus();}
                    return false;
                }else if(obj.value.indexOf(".")==-1){
                    flag = 1;
                    alert("'" + obj.getAttribute("v_name") + "'的值不正确！数字格式有错误！");
                    if(obj.type=='hidden'){}else{obj.focus();}
                    return false;
                }
            }
        }
    }
    if (!isSizeOf(obj.value,obj.getAttribute("v_minvalue"),obj.getAttribute("v_maxvalue"))){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！超出规定范围！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }
   return true;
}

function forPhone(obj)//判断字符是否是合法的电话021-55555555,(021)2222222,
{
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }    
    if (!isMadeOf(obj.value,phoneStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请填写数字,可以包含(,),－,#符号"); 
      if(obj.type=='hidden'){}else{obj.focus();}
      return false; 
    }
}
function forCode(obj)
{
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    if (!isMadeOf(obj.value,codeStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！请填写数字,可以包含#符号"); 
      if(obj.type=='hidden'){}else{obj.focus();}
      return false; 
    }
}
function forEmail(obj)//判断字符是合法的电子邮件
{
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    var myReg = /^[._a-z0-9]+@([-_a-z0-9]+\.)+[a-z0-9]{2,3}$/; 
    if(myReg.test(obj.value)){
      return true; 
    }
    alert("'" + obj.getAttribute("v_name") + "'的值不正确！请确信填写正确的电子邮箱！");
    flag = 1;
    if(obj.type=='hidden'){}else{obj.focus();}
    return false; 
}

function forIdCard(obj)//判断字符是否是合法的身份证
{
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    } 
    
    if (!isMadeOf(obj.value,idCardStr)){
      flag = 1;
      alert("'" + obj.getAttribute("v_name") + "'的值不正确！身份证必须填写数字或者x！");
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
    
        if (!isRight_length(obj.value,"15") && !isRight_length(obj.value,"18")){
          flag = 1;
          alert("'" + obj.getAttribute("v_name") + "'的值不正确！身份证长度不正确(15或18位数字)！");
          if(obj.type=='hidden'){}else{obj.focus();}
          return false;
        }else{
          if(isRight_length(obj.value,"15")){
            if(obj.value.indexOf("x")!=-1){
                flag = 1;
                alert("'" + obj.getAttribute("v_name") + "'的值不正确！");
                if(obj.type=='hidden'){}else{obj.focus();}
                return false;
            }
          }
          if(isRight_length(obj.value,"18")){
            if(obj.value.indexOf("x")!=-1 && obj.value.indexOf("x")!=17){
                flag = 1;
                alert("'" + obj.getAttribute("v_name") + "'的值不正确！");
                if(obj.type=='hidden'){}else{obj.focus();}
                return false;
            }
          }
        }
    }    
    return true;
}
function forCheck(form,obj)//对单选框的必填校验
{
    if(obj.getAttribute("v_hidden")=="1")
       return true;
    //非必填项判断 
      if (obj.getAttribute("v_must")=="0"){
        return true;
      }
      bb = eval("form."+obj.name);

      if(bb.length==undefined)
      {
        if(bb.checked)
        {
            return true;
        }
      }
      else
      {
        for(var i=0;i<bb.length;i++)
        {
            if(bb[i].checked)
            {
                return true;
            }
        }
      }
      alert("请选择'" + obj.getAttribute("v_name") + "'！");
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
}

function forCertificate(obj)//判断证件号码是否含有汉字
{
    //必填项判断 
        if (!forString(obj)){
          flag = 1;
          if(obj.type=='hidden'){}else{obj.focus();}
          return false;
        }else{
          if (obj.value.length == 0){
            return true;
          }
        }
      
      if (strlen(obj.value) > obj.value.length){
        flag = 1;
        alert("'"+obj.getAttribute("v_name")+"'的值不正确！不能包含汉字！");
        if(obj.type=='hidden'){}else{obj.focus();}
        return false;
      }
      return true;
}

function forIp(obj){
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    } 
        
    var check=function(v){try{return (v<=255 && v>=0)}catch(x){alert("ip地址不正确！");return false}};
    var re=obj.value.split(".")
    return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

//电话校验 格式：国家区号-区号-电话号码-分机号 例 086-010-12345678-888 （国家区号，区号，分机号可以没有）
function forTel(obj){
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
    
    var telReg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;   
    if(telReg.test(obj.value.trim())){
        return true;

    }
    alert("'"+obj.getAttribute("v_name")+"'格式不正确！");
    flag = 1;
    if(obj.type=='hidden'){}else{obj.focus();}  
    return false;   
}

//手机号码验证
function forMobile(obj){
    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){}else{obj.focus();}
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }
        
    var mobileReg = /^(?:13\d|15[0-9]|189)-?\d{5}(\d{3}|\*{3})$/;
    if(mobileReg.test(obj.value.trim())){
        return true;
    }
    
    alert("'"+obj.getAttribute("v_name")+"'格式不正确！");
    flag = 1;
    if(obj.type=='hidden'){}else{obj.focus();}  
    return false;   
    
}

//全角转成半角
function SBCtoDBC(obj){    
    var str=obj.value;
    var result="";
    for (var i = 0; i < str.length; i++){
        if (str.charCodeAt(i)==12288){
            result+= String.fromCharCode(str.charCodeAt(i)-12256);
            continue;
        }
        if (str.charCodeAt(i)>65280 && str.charCodeAt(i)<65375){
            result+= String.fromCharCode(str.charCodeAt(i)-65248);
        }else{
            result+= String.fromCharCode(str.charCodeAt(i));
        }
    } 
    
    obj.value=result;
}

function baseFunction(obj){
    
    if (!forString(obj)){
      flag = 1;
      if(obj.type=='hidden'){
        
      }else{
        obj.focus();
      }   
      return false;
    }else{
      if (obj.value.length == 0){
        return true;
      }
    }   
}

//去掉字符串两边的空格
String.prototype.trim = function() {  
  var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);  
  return (m == null) ? "" : m[1];  
}
function Trim(ui){ 
    var notValid=/(^\s)|(\s$)/; 
    while(notValid.test(ui))
    { 
        ui=ui.replace(notValid,"");
    } 
    return ui;
} 

function isEmpty(ui){ 
    var notValid=/(\s)|(&nbsp;)/; 
	if(!ui) return true;
	if(ui.length<1) return true;
    while(notValid.test(ui))
    { 
        ui=ui.replace(notValid,"");
    } 
	if(ui.length<1) return true;
    return false;
} 


/***********add by 郭 清除操作********/
//清除当前form中的所有值（select复位，radio、checkbox去除选定）

function clearForm(form)
{    var obj = null;
     var t = null;
	 var i;

     for (i=0;i<form.length;i++)
    {    
		 obj = form.elements[i];		 		 		 
		 packUpForClear(obj); 
	     if(obj.v_type == "string") clearText(form,obj);
         else if(obj.v_type == "zip") clearText(form,obj);
         else if(obj.v_type == "money") clearText(form,obj);
         else if(obj.v_type == "0_9") clearText(form,obj);
		 else if(obj.v_type == "int") clearText(form,obj);
		 else if(obj.v_type == "float") clearText(form,obj);
		 else if(obj.v_type == "email") clearText(form,obj);
//		 else if(obj.v_type == "date") forDate(obj);
         else if(obj.v_type == "date") clearText(form,obj);
		 else if(obj.v_type == "pwd") clearText(form,obj);
		 else if(obj.v_type == "phone") clearText(form,obj);
		 else if(obj.v_type == "idcard") clearText(form,obj);
		 else if(obj.v_type == "account") clearText(form,obj);
		 else if(obj.v_type == "single") clearCheck(form,obj);
		 else if(obj.v_type == "multi") clearCheck(form,obj);
		 else if(obj.v_type == "certif") clearText(form,obj);
     }
}
function packUpForClear(obj)
{   

     if (obj == null){
	   alert("非法对象");
	   return false;
	 }
	 
	 if (obj.value != null){
	   obj.value = trimSubStr(trimSubStr(obj.value," ",1)," ",2);
	 }
		 
		 //创建v_type属性

		 try{
	       if (obj.v_type == null){
			 //alert("创建v_type属性");
			 obj.v_type = "string";  
		   }			  
	     }catch(exception){}
	
	return true;
	
}

//清除text框与select
function clearText(form,obj)
{
	if(obj.v_type == "string")
	{
		if(obj.value!=null && obj.value!="")
		{
			if(obj.type!="submit" && obj.type!="button" && obj.type!="reset"){
				if(obj.type=="radio" || obj.type=="checkbox")
				{
					clearCheck(form,obj);
				}
				else
				{
					if(obj.length==undefined)
					{
						if(obj.type!="hidden")
						{
							obj.value = "";
						}
					}
					else if(obj.length>0)
					{
						obj.selectedIndex = 0;
					}
				}
			}
		}
		else
		{
			if(obj.length!=undefined && obj.length>0)
			{
				obj.selectedIndex = 0;
			}
		}
	}
	else
	{
		if(obj.value!=null && obj.value!="")
			obj.value = "";
	}
}
//清除radio、checkbox选中项

function clearCheck(form,obj)//对单选框的必填校验

{

	//非必填项判断 
	//  if (obj.v_must=="0"){
	//   return true;
	//  }
	  bb = eval("form."+obj.name);

      if(bb.length==undefined)
      {
		if(bb.checked)
		{
			bb.checked=0;
		}
      }
      else
      {
		for(var i=0;i<bb.length;i++)
		{
			if(bb[i].checked)
			{
				bb[i].checked=0;
			}
		}
      }
}

/***********add by 郭 清除操作********/

