 		
String.prototype.Trim = function(){
	return this.replace(/(^\s+)|(\s+$)/g, "");
}

/*
 * 对页面表单进行验证的函数
 * 输入：form对象
 * 输出：true：验证通过；false：验证失败
 * 使用方法：
 * 1、在需要调用的页面中包含validateForm.js  如：<SCRIPT language="JavaScript" SRC="../../../js/common/validateForm.js"></SCRIPT>
 * 2、在需要进行校验的输入框中添加 validator="验证类型" cnname="输入框名称" maxlength="长度"
 *    例如：<input name="FAVOURABLE_FEE" type="text" size="16" validator="float10_2Null" cnname="优惠费用" maxlength="13">
 *    目前支持的类型如下：
 *        1.非空的日期型数据
 *        2.可以空的日期型数据
 *        3.非空的数字类型
 *        4.可以为空的数字类型
 *        5.非空的实数型
 *        6.可以为空的实数型
 *        7.非空的最大10位整数，2位小数的实数型
 *	  7.1非空的最大10位整数，4位小数的实数型
 *        8.可以为空的最大10位整数，2位小数的实数型
 *	  8.1可以为空的最大10位整数，4位小数的实数型
 *        9.非空的整型
 *        10.可以为空的整型
 *        11、非空字符串
 *        12、可以为空字符串
 *        13、非空合法的字符串：除去（$*&'=<#>%^@~ ）
 *        14、可以为空的合法字符串：除去（$*&'=<#>%^@~ ）
 *        15、不可以为空的Email
 *        16、可以为空的Email
 * 3、在提交数据的地方添加调用 validateForm(form对象) 如：validateForm(form1)
*/

function validateForm(theForm)
{   //对页面表单进行验证的函数
  //定义正则表达式
  var PatternsDict=new Object();
  //1.非空的日期型数据
  PatternsDict.date = /^[1-2]\d{3}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[0-1])$/;
  //2.可以空的日期型数据
  PatternsDict.dateNull = /(^[1-2]\d{3}-(0?[1-9]|1[0-2]|3[0-1])-(0?[1-9]|[12][0-9]|3[0-1])$)|(^[1-2]\d{3}-([1-9]|1[0-2]|3[0-1])-([1-9]|[12][0-9]|3[0-1])$)|(^$)/;
  //3.非空的数字类型
  PatternsDict.num= /^\d+$/;
  //4.可以为空的数字类型
  PatternsDict.numNull = /^\d*$/;
  //5.非空的实数型
  PatternsDict.float= /^(0|\-?[1-9]+[0-9]*|\-?[1-9]+[0-9]*\.\d+|\-?[0-9]*\.\d+)$/;
  //6.可以为空的实数型
  PatternsDict.floatNull = /(^(0|\-?[1-9]+[0-9]*|\-?[1-9]+[0-9]*\.\d+|\-?[0-9]*\.\d+)$)|(^$)/;
  //7.非空的最大10位整数，2位小数的实数型
  PatternsDict.float10_2= /^(0|\-?[1-9]{1}\d{0,9}|\-?[1-9]{1}\d{0,9}\.\d{1,2}|\-?\d{0,9}\.\d{1,2})$/;
  PatternsDict.float10_4= /^(0|\-?[1-9]{1}\d{0,9}|\-?[1-9]{1}\d{0,9}\.\d{1,4}|\-?\d{0,9}\.\d{1,4})$/;
  //8.可以为空的最大10位整数，2位小数的实数型
  PatternsDict.float10_2Null = /(^(0|\-?[1-9]{1}\d{0,9}|\-?[1-9]{1}\d{0,9}\.\d{1,2}|\-?\d{0,9}\.\d{1,2})$)|(^$)/;
  //9.非空的整型
  PatternsDict.int= /^(0|\-?[1-9]{1}\d*)$/;
  //10.可以为空的整型
  PatternsDict.intNull = /(^(0|\-?[1-9]{1}\d*)$)|(^$)/;
  //11、非空字符串
  PatternsDict.string = /^[\S\s]+$/;
 
  //17、石利添加 不能为空的1-110的数字

  PatternsDict.hnum = /^(0|\-?[1-9]{1}\d*)$/;
///^((\d{1,2}(\.\d{1,2})?)|110|110.00)$/
//^(\\d|[1-9]\\d|100)$;
//([0-9])|([1-9][0-9])|100 

  //12、可以为空字符串
  PatternsDict.stringNull = /^[\S\s]*$/;
  //13、非空合法的字符串：除去（$*&'=<#>%^@~ ）
  PatternsDict.stringLegal = /^[^\$\*&'=<#>%\^@~\s]+$/;
  //14、可以为空的合法字符串：除去（$*&'=<#>%^@~ ）
  PatternsDict.stringLegalNull = /(^[^\$\*&'=<#>%\^@~\s]+$)|(^$)/;
  //15、不可以为空的Email
  PatternsDict.email = /^[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+@[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+(\.[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+)+$/;
  //16、可以为空的Email
  PatternsDict.emailNull = /(^[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+@[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+(\.[\-!#\$%&'\*\+\\\.\/0-9=\?A-Z\^_`a-z{|}~]+)+$)|(^$)/;
　　　　　　　　var elArr = document.getElementById(theForm).elements; //elArr数组获得全部表单元素
　　　　　　　　var val;
　　　　　　　　var vname = "";
               
　　　　　　　　for(var i = 0; i < elArr.length; i++)
　　　　　　　　with(elArr[i])
　　　　　　　　{　　　　　　　　　　　　　　　//循环表单中每一个元素
　　　　　　　　　　var v = elArr[i].validator; //获取validator属性值
　　　　　　　　　　
　　　　　　　　　　var cnname=elArr[i].cnname; //获取cnname属性值
      var maxlength=elArr[i].maxlength; //获得长度
　　　　　　　　　　if(!v) continue; //如没有validator属性值，则跳出本次循环
 
　　　　　　　　　　if(!cnname) continue;
　　　　　　　　　　
　　　　　　　　　　var thePat = PatternsDict[v]; //选择对应的正则表达式
　　　　　　　　　　var gotIt = thePat.exec(value.Trim()); //运行对比
　　　　　　　　　　 
　　　　　　　　　　if(!gotIt) //如果符合相应的正则表达式（为true），则转为false，否则执行该if块。
　　　　　　　　　　{
　　　　　　　　　　　　　　if (v=="date") vname="日期(例如：2005-01-02)";
　　　　　　　　　　　　　　if (v=="dateNull") vname="日期(例如：2005-01-02)，可以留空不填";
　　　　　　　　　　　　　　if (v=="num") vname="非空的数字类型值";
       if (v=="numNull") vname="数字类型值";
　　　　　　　　　　　　　　if (v=="float") vname="非空的实数";
       if (v=="floatNull") vname="实数";
　　　　　　　　　　　　　　if (v=="float10_2") vname="非空的最大10位整数，2位小数的实数型";
       if (v=="float10_2Null") vname="最大10位整数，2位小数的实数型";
			   if (v=="float10_4") vname="非空的最大10位整数，4位小数的实数型";
       if (v=="float10_4Null") vname="最大10位整数，4位小数的实数型";

　　　　　　　　　　　　　　if (v=="int") vname="非空的整型数值";
       if (v=="intNull") vname="整型数值";
　　　　　　　　　　　　　　if (v=="email") vname="非空的Eamil";
       if (v=="emailNull") vname="Eamil";
       if (v=="string") vname="非空";

      if (v=="hnum") vname="非空";

       if (v=="stringLegal") vname="非空合法的字符串。除『$*&'=<#>%^@~ 』";
       if (v=="stringLegalNull") vname="合法的字符串。除『$*&'=<#>%^@~ 』";
　　　　　　　　　　}
      else {
           if(maxlength){
            //这里主要针对textarea类型没有maxlength属性而设置的
            val=value;
            if (val.length>maxlength) {
             vname="长度小于【 "+maxlength+" 】的字符串";
            }
           }
      }
      if (vname != ""){
           //有错误，阻止提交
           try
       {
        
　　　　　　　　　　　　　　 elArr[i].focus(); //此元素获得焦点
        if (elArr[i].type=="text" ) 
        {
        	
        	document.getElementById(elArr[i].id).style.background = "#FFFF00"
        	 
        	elArr[i].select();
        	
        }
        
        
       } catch(e) {}
				 //document.getElementById("divError").style.display = "";
				 //document.getElementById("divError").innerHTML = "<font color='#339933' style='font-family: 宋体;text-decoration: none;font-size: 9pt;'> 请输入“" + cnname + "”字段的数据！\n数据必须为：" + vname +"</font>"
　　　　　　　　　　　　　　//showError( "错误信息："+cnname)
　　　　　　　　　　　　　　//alert(  cnname + "'字段的数据！\n数据必须为：" + vname );
			                     alert(cnname);
　　　　　　　　　　　　　　return false; //阻止提交
      }
　　　　		}
　　　　　　　　return true; 
}

//#设置DIV错误信息
//#
