// 表单提交之前，在页面上判断输入的合法性（必填MUST、数字isNumeric、日期isDate等等）。
function checkForm(formName){
	var isLeapYear=false; /*闰年[二月为29天]*/
	var isSmallMonth=false; /*小月[该月为30天]*/

	if (!document.forms(formName)) return false;

	for (i=0;i<document.forms(formName).length;i++)	{
		objTgt = document.forms(formName).item(i);
		// 对于所有 Text 输入框中的值进行去空操作。
		if(objTgt.type=="text")objTgt.value=objTgt.value.trim();

		if (objTgt.MUST==1&&objTgt.value==''){
			if (objTgt.disabled==true){
				return true;
			}else{
				if(objTgt.title!=""){
					errAlert ("必填项 ["+objTgt.title+"] 未填写 !","为了保证数据的完整性，系统要求某些值必须填写，\n现在您没有填写其中的 ["+objTgt.title+"] 这一项。","重新填写 ["+objTgt.title+"] 这一项。");
				}else{
					errAlert("必填项未填写 !","为了保证数据的完整性，系统要求某些值必须填写，\n现在您没有填写其中的某几项。","返回重新填写。");
				}
				
				focusItem(objTgt);
				return false;
			}
		}
		
		if(objTgt.value!=''){
			if (objTgt.isNumeric==1){
				if (isNaN(objTgt.value)){
					if(objTgt.title!=""){
						errAlert ("["+objTgt.title+"] 项中应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在 ["+objTgt.title+"] 项中没有填写数字。","重新填写 ["+objTgt.title+"] 这一项。");
					}else{
						errAlert ("应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在某几项中没有填写数字。","重新填写。");
					}
					
					focusItem(objTgt);
					return false;
				}
				
				var objTgtValue=new Number(objTgt.value);
				var maxV=objTgt.maxValue;
				var minV=objTgt.minValue;
				
				if(objTgt.isPow==1){
					if (Math.abs(objTgtValue)>=Math.pow(10,maxV)||Math.abs(objTgtValue)<Math.pow(10,(minV-1))){
						errAlert ("所填数字超出规定范围!");
						
						focusItem(objTgt);
						return false;
					}
				}else{
					if(objTgtValue.valueOf()>maxV||objTgtValue.valueOf()<minV){
						errAlert ("所填数字超出规定范围!");
						
						focusItem(objTgt);
						return false;
					}
				}
			}
			//判断文本框所输入的字符是否需要规范，即只能输入英文字符a-z,A-Z数字0-9以及下划线！
			if(objTgt.isCriterion==1){
        		r2 = new RegExp('[^A-Za-z0-9_]','');
            	if(objTgt.value.search(r2) >= 0) {
					if(objTgt.title!=""){
                		errAlert("["+objTgt.title+"]项只能输入英文字符a-z,A-Z数字0-9以及下划线！");
					}else{
                		errAlert("只能输入英文字符a-z,A-Z数字0-9以及下划线！");
					}
    				focusItem(objTgt);
            		return false;
            	}
			}
			//判断文本框所输入的是否是mail地址！
			if(objTgt.isMail==1){
            	r1='@';
        		r2 = new RegExp('[^A-Za-z0-9_.@]','');
            	if(objTgt.value.search(r1)<0||objTgt.value.search(r2) >= 0) {
            		errAlert("电子邮件地址错误！请重新填写！");
    				focusItem(objTgt);
            		return false;
            	}
			}
			//判断文本框所输入的是否身份证！
			if(objTgt.isIDCard==1){
			    var birth;
        		if(objTgt.value.length==15){
        		    if(isNaN(objTgt.value)){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		    }else{
        		        IDYear = judgeLeapYear("19"+objTgt.value.substr(6,2));
        		        birth = objTgt.value.substr(8,2);
         		        if(birth>12||birth<01){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		        }
        		        IDMonth = judgeSmallMonth(birth);
        		        birth = objTgt.value.substr(10,2);
         		        if(birth<01||(!IDMonth&&birth>31)||(IDMonth&&birth>30)||(IDYear&&objTgt.value.substr(8,2)==02&&birth>29)||(!IDYear&&objTgt.value.substr(8,2)==02&&birth>28)){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		        }
        		    }
        		}else if(objTgt.value.length==18){
            		r2 = new RegExp('[^0-9Xx]','');
        		    if(isNaN(objTgt.value.substr(0,17))||objTgt.value.substr(17,1).search(r2) >= 0){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		    }else{
        		        birth = objTgt.value.substr(6,4);
        		        if(birth>2050||birth<1900){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		        }
        		        IDYear = judgeLeapYear(birth);
        		        birth = objTgt.value.substr(10,2);
         		        if(birth>12||birth<01){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		        }
        		        IDMonth = judgeSmallMonth(birth);
        		        birth = objTgt.value.substr(12,2);
         		        if(birth<01||(!IDMonth&&birth>31)||(IDMonth&&birth>30)||(IDYear&&objTgt.value.substr(10,2)==02&&birth>29)||(!IDYear&&objTgt.value.substr(10,2)==02&&birth>28)){
                    		errAlert("身份证号错误！请重新填写！");
            				focusItem(objTgt);
                    		return false;
        		        }
        		    }
        	    }else{
            		errAlert("身份证号只能是15位或者18位！请重新填写！");
    				focusItem(objTgt);
            		return false;
        	    }
			}
			//判断文本框或文本域可以输入的最大,小字符数
			if(objTgt.maxlength!=null&&objTgt.maxlength!=""){
				if (objTgt.value.length>objTgt.maxlength){
					errAlert ("["+objTgt.title+"]项所输入的最大字符数超出规定范围:"+objTgt.maxlength);
					focusItem(objTgt);
					return false;
				}				
			}
			
			if(objTgt.minlength!=null&&objTgt.minlength!=""){
				if (objTgt.value.length<objTgt.minlength){
					errAlert ("["+objTgt.title+"]项所输入的最小字符数超出规定范围:"+objTgt.minlength);
					focusItem(objTgt);
					return false;
				}
			}
			
			//长度必须是设定的长度 mustLength
			if(objTgt.mustLength!=null&&objTgt.mustLength!=""){
				if(objTgt.value!=""){
					if(objTgt.value.length!=objTgt.mustLength){
							errAlert ("["+objTgt.title+"]项的长度只能是:"+objTgt.mustLength);
							focusItem(objTgt);
							return false;
					}
				}	
			}
			
			//判断文本框可以输入的设定字符数
			if(objTgt.isSetLength==1){
			    var start=0;
			    var end=0;
			    var result=false;
			    while(objTgt.setLength.indexOf("位",start)>0){
			        end=objTgt.setLength.indexOf("位",start);
			        if(objTgt.value.length==objTgt.setLength.substring(start,end)){
			            result=true;
			            break;
			        }
			        start=end+1;
			    }
			    if(result==false){
					if(objTgt.title!=""){
    					errAlert ("["+objTgt.title+"]项所输入的字符数只能为："+objTgt.setLength+"！");
					}else{
    					errAlert ("所输入的字符数只能为："+objTgt.setLength+"！");
					}
					focusItem(objTgt);
					return false;
			    }
			}
			if (objTgt.isMDate==1){
				if(isMDate(objTgt)==false){return false;}
			}else if (objTgt.isDate==1){
				if(isDate(objTgt)==false){return false;}
			}else if(objTgt.isDetailDate==1){
        if(isDetailDate(objTgt)==false){return false;}
      }
		}	
	}
	return true;
}

// 判断是否是完整日期。(比如：2004-1-1 10:24:25)
function isDetailDate(objTgt){ 
  var inDate=objTgt.value.trim();	
	inDate	= dealSpecNum(inDate);//处理特殊的数字字符
	for(var index=0;index<2;index++){//必须处理2遍，因为replace每次找到第一个匹配的修改，然后马上中止替换	
		inDate	=	inDate.replace('－','-');		
		inDate	=	inDate.replace('—','-');		
		inDate	=	inDate.replace('、','-');	
		inDate	=	inDate.replace('/','-');
		inDate	=	inDate.replace('.','-');
		inDate	=	inDate.replace(',','-');
		inDate	=	inDate.replace('，','-');	  
    inDate	=	inDate.replace('：',':');	 
    inDate	=	inDate.replace('时',':');
    inDate	=	inDate.replace('分',':');
    inDate	=	inDate.replace('秒',' ');
	}	
  inDate = inDate.trim();
  if(inDate.length<14){
    focusItem(objTgt);
    return false;  
  }
  var dateDt = inDate.substring(0,inDate.indexOf(" "));//得到年月日比如：2004-1-1
  dateDt = dateDt.trim();
  /////////////////////
  if (dateDt.length>=6 && dateDt.length<=10 && dateDt.indexOf("-")!=-1 && dateDt.indexOf("-")!=dateDt.lastIndexOf("-") && dateDt.substring(dateDt.indexOf("-")+1,dateDt.lastIndexOf("-")).indexOf("-")==-1){
		var inYear=parseInt(dateDt.substring(0,dateDt.indexOf("-")));
		var inMonth=dateDt.substring(dateDt.indexOf("-")+1,dateDt.lastIndexOf("-"));
			if (inMonth.substring(0,1)=="0" && inMonth.length>1)
				inMonth=inMonth.substring(1,inMonth.length);
      if(isNaN(inMonth)){
        errAlert("月份必须是数字！您输入的["+inMonth+"]不满足条件");
        focusItem(objTgt);
        return false;
      }  
			inMonth=parseInt(inMonth);	
		var inDay=dateDt.substring(dateDt.lastIndexOf("-")+1);
			if (inDay.substring(0,1)=="0" && inDay.length>1)
				inDay=inDay.substring(1,inDay.length);
      if(isNaN(inDay)){
        errAlert("日期必须是数字！您输入的["+inDay+"]不满足条件！");
        focusItem(objTgt);
        return false;
      }    
			inDay=parseInt(inDay);
		
		if (inYear && !(isNaN(inYear)) && inYear.toString().length==4){
			var year=inYear;
			isLeapYear=judgeLeapYear(inYear);
		}else if(inYear.toString().length!=4){
			errAlert("对不起，系统需要四位年 !","为了保证日期存储的准确性，系统要求所有的日期输入都使用四位数字表示年份，\n可是您在 ["+objTgt.title+"] 项中没有使用四位年输入。","重新输入 ["+objTgt.title+"] 这一项。");
			focusItem(objTgt);
			return false;
		}else{
			errAlert("年份填写有误 !","","");			
			focusItem(objTgt);
			return false;
		}
		
		if (inMonth && !(isNaN(inMonth)) && inMonth<=12 && inMonth >=1){
			var month=inMonth;
			isSmallMonth=judgeSmallMonth(inMonth);
		}else{
			errAlert("月份填写有误 !","表示月份的数字必须处于1到12之间，可是您在 ["+objTgt.title+"] 项中填写的 "+inMonth+" 显然不在这个范围内。","重新填写 ["+objTgt.title+"] 这一项。");
			focusItem(objTgt);
			return false;
		}
	
		if (inDay && !(isNaN(inDay)) && inDay>=1 && (month==2?(isLeapYear?inDay<=29:inDay<=28):(isSmallMonth?inDay<=30:inDay<=31))){
			var day=inDay;
		}else{
			errAlert("日期填写有误 !","表示日期的数字必须处于1到31之间，而且必须满足闰年和大小月规则，\n可是您在 ["+objTgt.title+"] 项中填写的 "+inDay+" 显然不满足要求。","重新填写 ["+objTgt.title+"] 这一项。");
			focusItem(objTgt);
			return false;
		}
		
		var inputDate=new Date();
		if (!(Date.parse(month + "-" + day + "-" + year))){
			errAlert("日期填写有误 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD HH:MM:SS 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");
			
			focusItem(objTgt);
			return false;
		}
		
	}else{
		errAlert("您输入的不是一个完整的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD HH:MM:SS 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");
		
		focusItem(objTgt);
		return false;
	}
	
	
	for(var i=0;i<dateDt.length;i++){		
		if((dateDt.charAt(i)<'0'||dateDt.charAt(i)>'9')&&dateDt.charAt(i)!='-'){
			errAlert("您输入的不是一个有效的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD HH:MM:SS 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");				
			focusItem(objTgt);
			return false;	
		}
	}
  ///////////////////////////////////////
  var timeStr = inDate.substring(inDate.indexOf(" ")+1);//得到时间字符串比如： 10:24:25(但是前面可能有空格)
  timeStr.trim();
  if(timeStr.indexOf(":")==-1){
    timeStr += "00:00";
  }else if(timeStr.indexOf(":")==timeStr.lastIndexOf(":")){
    timeStr += ":00";
  }else if(timeStr.lastIndexOf(":")==timeStr.length-1){
    timeStr += "00";
  }
  var hour = timeStr.substring(0,timeStr.indexOf(":"));
  var minute = timeStr.substring(timeStr.indexOf(":")+1,timeStr.lastIndexOf(":"));
  var second = timeStr.substring(timeStr.lastIndexOf(":")+1);
  if(isNaN(hour)||isNaN(minute)||isNaN(second)){
    errAlert("时分秒必须是数字!");
    focusItem(objTgt);
    return false;  
  }
  if(eval(hour)>=24){
    errAlert("时间填写有误。时钟不能大于23小时 !");
    focusItem(objTgt);
    return false;  
  }
  if(eval(minute)>60){
    errAlert("时间填写有误。分钟不能大于60分 !");
    focusItem(objTgt);
    return false;  
  }
  if(eval(second)>60){
    errAlert("时间填写有误。秒钟不能大于60秒 !");
    focusItem(objTgt);
    return false;  
  }
  
  objTgt.value	= inDate;
}


// 判断是否是日期。(比如：2004-1-1)
function isDate(objTgt){
	var inDate=objTgt.value.trim();
	
	inDate	= dealSpecNum(inDate);//处理特殊的数字字符
	for(var index=0;index<2;index++){//必须处理2遍，因为replace每次找到第一个匹配的修改，然后马上中止替换	
		inDate	=	inDate.replace('－','-');		
		inDate	=	inDate.replace('—','-');		
		inDate	=	inDate.replace('、','-');	
		inDate	=	inDate.replace('/','-');
		inDate	=	inDate.replace('.','-');
		inDate	=	inDate.replace(',','-');
		inDate	=	inDate.replace('，','-');		
		inDate	=	inDate.replace(' ','-');
		inDate	=	inDate.replace('　','-'); 	
	}	
	
	inDate	=	inDate.replace('年','-');
	inDate	=	inDate.replace('月','-');	
	inDate	=	inDate.replace('日',' ');	
	inDate	=	inDate.trim();	

	if (inDate.length>=6 && inDate.length<=10 && inDate.indexOf("-")!=-1 && inDate.indexOf("-")!=inDate.lastIndexOf("-") && inDate.substring(inDate.indexOf("-")+1,inDate.lastIndexOf("-")).indexOf("-")==-1){
		var inYear=parseInt(inDate.substring(0,inDate.indexOf("-")));
		var inMonth=inDate.substring(inDate.indexOf("-")+1,inDate.lastIndexOf("-"));
			if (inMonth.substring(0,1)=="0" && inMonth.length>1)
				inMonth=inMonth.substring(1,inMonth.length);
      if(isNaN(inMonth)){
        errAlert("月份必须是数字！您输入的["+inMonth+"]不满足条件");
        focusItem(objTgt);
        return false;
      }    
			inMonth=parseInt(inMonth);		
		var inDay=inDate.substring(inDate.lastIndexOf("-")+1);
			if (inDay.substring(0,1)=="0" && inDay.length>1)
				inDay=inDay.substring(1,inDay.length);
      if(isNaN(inDay)){
        errAlert("日期必须是数字！您输入的["+inDay+"]不满足条件！");
        focusItem(objTgt);
        return false;
      }  
			inDay=parseInt(inDay);
		
		if (inYear && !(isNaN(inYear)) && inYear.toString().length==4){
			var year=inYear;
			isLeapYear=judgeLeapYear(inYear);
		}else if(inYear.toString().length!=4){
			errAlert("对不起，系统需要四位年 !","为了保证日期存储的准确性，系统要求所有的日期输入都使用四位数字表示年份，\n可是您在 ["+objTgt.title+"] 项中没有使用四位年输入。","重新输入 ["+objTgt.title+"] 这一项。");
			focusItem(objTgt);
			return false;
		}else{
			errAlert("年份填写有误 !","","");			
			focusItem(objTgt);
			return false;
		}
		
		if (inMonth && !(isNaN(inMonth)) && inMonth<=12 && inMonth >=1){
			var month=inMonth;
			isSmallMonth=judgeSmallMonth(inMonth);
		}else{
			errAlert("月份填写有误 !","表示月份的数字必须处于1到12之间，可是您在 ["+objTgt.title+"] 项中填写的 "+inMonth+" 显然不在这个范围内。","重新填写 ["+objTgt.title+"] 这一项。");
			focusItem(objTgt);
			return false;
		}
	
		if (inDay && !(isNaN(inDay)) && inDay>=1 && (month==2?(isLeapYear?inDay<=29:inDay<=28):(isSmallMonth?inDay<=30:inDay<=31))){
			var day=inDay;
		}else{
			errAlert("日期填写有误 !","表示日期的数字必须处于1到31之间，而且必须满足闰年和大小月规则，\n可是您在 ["+objTgt.title+"] 项中填写的 "+inDay+" 显然不满足要求。","重新填写 ["+objTgt.title+"] 这一项。");
			focusItem(objTgt);
			return false;
		}
		
		var inputDate=new Date();
		if (!(Date.parse(month + "-" + day + "-" + year))){
			errAlert("日期填写有误 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");
			
			focusItem(objTgt);
			return false;
		}
		
	}else{
		errAlert("您输入的不是一个完整的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");
		
		focusItem(objTgt);
		return false;
	}
	
	
	for(var i=0;i<inDate.length;i++){		
		if((inDate.charAt(i)<'0'||inDate.charAt(i)>'9')&&inDate.charAt(i)!='-'){
			errAlert("您输入的不是一个有效的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");				
			focusItem(objTgt);
			return false;	
		}
	}
	
	objTgt.value	= inDate;
}


// 判断是否是日期，并且日期格式是否为YYYY-MM。
function isMDate(objTgt){
	var inDate=objTgt.value.trim();
	inDate	= dealSpecNum(inDate);//处理特殊的数字字符
	for(var index=0;index<2;index++){//必须处理2遍，因为replace每次找到第一个匹配的修改，然后马上中止替换	
		inDate	=	inDate.replace('－','-');		
		inDate	=	inDate.replace('—','-');		
		inDate	=	inDate.replace('、','-');	
		inDate	=	inDate.replace('/','-');
		inDate	=	inDate.replace('.','-');
		inDate	=	inDate.replace(',','-');
		inDate	=	inDate.replace('，','-');		
		inDate	=	inDate.replace(' ','-');	
		inDate	=	inDate.replace('　','-'); 	
	}	
	
	inDate	=	inDate.replace('年','-');
	inDate	=	inDate.replace('月',' ');		
	inDate	=	inDate.trim();	
	
	if (inDate.length>=6 && inDate.length<=7 && inDate.indexOf("-")!=-1 && inDate.indexOf("-")==inDate.lastIndexOf("-")){
		var inYear=parseInt(inDate.substring(0,inDate.indexOf("-")));
		var inMonth=inDate.substring(inDate.indexOf("-")+1);
			if (inMonth.substring(0,1)=="0" && inMonth.length>1)
				inMonth=inMonth.substring(1,inMonth.length);
			inMonth=parseInt(inMonth);
		
		if (inYear && !(isNaN(inYear)) && inYear.toString().length==4){
			var year=inYear;
			isLeapYear=judgeLeapYear(inYear);
		}else if(inYear.toString().length!=4){
			errAlert("对不起，系统需要四位年 !","为了保证日期存储的准确性，系统要求所有的日期输入都使用四位数字表示年份，\n可是您在 ["+objTgt.title+"] 项中没有使用四位年输入。","重新输入 ["+objTgt.title+"] 这一项。");
			
			focusItem(objTgt);
			return false;
		}else{
			errAlert("年份填写有误 !","","");
			
			focusItem(objTgt);
			return false;
		}
		
		if (inMonth && !(isNaN(inMonth)) && inMonth<=12 && inMonth >=1){
			var month=inMonth;
			isSmallMonth=judgeSmallMonth(inMonth);
		}else{
			errAlert("月份填写有误 !","表示月份的数字必须处于1到12之间，可是您在 ["+objTgt.title+"] 项中填写的 "+inMonth+" 显然不在这个范围内。","重新填写 ["+objTgt.title+"] 这一项。");
			
			focusItem(objTgt);
			return false;
		}
		
	}else{
		errAlert("您输入的不是一个系统要求的日期值 !","为了保证日期存储的准确性，系统要求该处的日期输入都按照 YYYY-MM 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");
		
		focusItem(objTgt);
		return false;
	}
	
	
	for(var i=0;i<inDate.length;i++){		
		if((inDate.charAt(i)<'0'||inDate.charAt(i)>'9')&&inDate.charAt(i)!='-'){
			errAlert("您输入的不是一个有效的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入 ["+objTgt.title+"] 这一项。");				
			focusItem(objTgt);
			return false;	
		}
	}
	
	objTgt.value	= inDate;
}

// 判断闰年。
function judgeLeapYear(yearStr){
	if(!(isNaN(yearStr)) && yearStr.toString().length==4 && (yearStr%100==0?yearStr%400==0:yearStr%4==0))
		return true;
	return false;
}

// 判断小月。
function judgeSmallMonth(monthStr){
	if(monthStr==4||monthStr==6||monthStr==9||monthStr==11)
		return true;
	return false;	
}

// 是否整数。
function isInt(objNumber){
	if(!isNaN(objNumber)){
		if(Math.round(objNumber)==objNumber){
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

// 使INPUT对象获取焦点。
function focusItem(objTgt){
	//objTgt.select();
	objTgt.focus();
}

// 判断页面是否修改过。
// 传入要判断页面的对象 -- eForm。
// 返回值：
// true -- 曾经修改过
// false -- 没有修改过
function isModified(eForm){
	var iNumElems = eForm.elements.length;
	for (var i=0;i<iNumElems;i++){
		var eElem = eForm.elements[i];
		// 输入框是否修改。
		if ("text" == eElem.type || "TEXTAREA" == eElem.tagName){
			if (eElem.value != eElem.defaultValue) return true;
		}
		// checkBox和radioBox是否修改。
		else if ("checkbox" == eElem.type || "radio" == eElem.type){
			if (eElem.checked != eElem.defaultChecked) return true;
		}
		// select是否修改。
		else if ("SELECT" == eElem.tagName){
			var cOpts = eElem.options;
			var iNumOpts = cOpts.length;
			for (var j=0;j<iNumOpts;j++){
				var eOpt = cOpts[j];
				if (eOpt.selected != eOpt.defaultSelected) return true;
			}
		}
	}
	return false;
}





// trim()方法。
String.prototype.trim = function(){
    // 用正则表达式将前后空格用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//处理特殊的数字：０１２３４５６７８９
function dealSpecNum(str){	
	var rtnstr	= "";
	for(var i=0;i<str.length;i++){		
		if(str.charAt(i)=='０')		rtnstr	+= '0';
		else if(str.charAt(i)=='１')	rtnstr	+= '1';
		else if(str.charAt(i)=='２')	rtnstr	+= '2';
		else if(str.charAt(i)=='３')	rtnstr	+= '3';
		else if(str.charAt(i)=='４')	rtnstr	+= '4';
		else if(str.charAt(i)=='５')	rtnstr	+= '5';
		else if(str.charAt(i)=='６')	rtnstr	+= '6';
		else if(str.charAt(i)=='７')	rtnstr	+= '7';
		else if(str.charAt(i)=='８')	rtnstr	+= '8';
		else if(str.charAt(i)=='９')	rtnstr	+= '9';
		else				rtnstr	+= str.charAt(i);
	}	
	return rtnstr;
}

/**
 *错误信息
 */
function errAlert(errContent,errReason,errSolve){
	var errAlertString="";
	if(errContent!=""&&errContent!="undefined"){
		errAlertString="错误：\n"+errContent+"\n";
		
		if(errReason!=null&&errReason!="")
			errAlertString+="\n错误原因：\n"+errReason;

		if(errSolve!=null&&errSolve!="")
			errAlertString+="\n解决方法：\n"+errSolve;

		errAlertString+="\n";
		
		alert(errAlertString);
		
	}else{
		alert("调试期间错误 !\n\n错误内容为空 !");
	}
}


// 警告信息。
function warnAlert(warnContent){
	var warnAlertString="";
	
	if(warnContent!=""){
		warnAlertString="警告：\n"+warnContent+"\n";
		
		alert(warnAlertString);
		
	}else{
		alert("警告内容为空!");
	}
}

//////////////////////////////////////////////////////////////////////////////////
var bg_class = "";
function mouseOnTr(Obj) {
	bg_class = Obj.className;
	Obj.className = "tronmouse";
}
function mouseOverTr(Obj) {
	Obj.className = bg_class;
}


//打开新窗口
function openWin(fileName,width,height) {	
	var features;
	var e,FileName;
	FileName = fileName;
	features = "width="+width+",height="+height+",status=no,resizable=auto,scrollbars=yes,left=200,top=150"
	selWin = window.open(FileName, "selectWindow", features,false);
	selWin.focus();
}


	
//第一个参数一定要url（文件名路径）
//第二个参数是属性,如果没有第二个参数，则默认是最大化，能够缩放,带menubar的但是不带地址栏的窗口
//第三个参数是属性的追加标志，默认不是追加，
//不为null且不为空字符串表示是在原来最大化的基础上加上第二参数作为属性
//====举例
//openScreen("a.htm");
//openScreen("a.htm","width=500,height=350,top=50,left=20");
//openScreen("a.htm",'toolbar=yes,titlebar=yes,status=yes,location=yes','1');

/************** 主要是接近最大化形式打开窗口  ******************/
function openScreen(){
	var url	= arguments[0];		
	var str = "left=0,screenX=0,top=0,screenY=0,scrollbars=yes,resizable=yes,menubar=yes"; 
	if (window.screen) {
		var ah = screen.availHeight-80;
		var aw = screen.availWidth-10;
		str += ",height=" + ah;
		str += ",innerHeight=" + ah;
		str += ",width=" + aw;
		str += ",innerWidth=" + aw;
	} 	
	if(arguments[1]!=null&&arguments[1]!=""){//第二个属性设置参数如果存在
		if(arguments[2]==null||arguments[2]=="")str	= arguments[1];
		else str	= str+","+arguments[1];
	}			
	var obj	= window.open(url,"openScreen_openScreen",str);
	obj.focus();	
}




//第一个参数为url（文件名路径）
//第二参数为width :特别规定，如果是 newwin ，表示新开窗口
//第三参数为height
//第四个参数是属性,如果没有第二个参数，则默认长宽为600×400的窗口
//第四个参数如果是属性追加，
//第五个参数表示新窗口的对象。
//不为null且不为空字符串表示是在原来居中的基础上加上第二参数作为属性]
//=-===举例
//openScreenAtCenter("a.htm");
//openScreenAtCenter("a.htm",800,600);
//openScreenAtCenter("a.htm",800,500,"toolbar=yes,titlebar=yes,status=yes,location=yes");
//openScreenAtCenter("a.htm",800,500,"toolbar=yes,titlebar=yes,status=yes,location=yes","newwinopen"); 
/***********  主要用于窗口居中  ************************/
function openScreenAtCenter(){		
	var width	= arguments[1];
	var height	= arguments[2];	
	if(width==null||width=="")width	= 500;
	if(height==null||height=="")height	= 400;	
	var str = "height=" + height + ",innerHeight=" + height;
	str 	+= ",width=" + width + ",innerWidth=" + width;
	str	+= ",scrollbars=yes,resizable=yes,menubar=yes";
	if (window.screen) {
		var ah = screen.availHeight - 30;
		var aw = screen.availWidth - 10;		
		var xc = (aw - width) / 2;
		var yc = (ah - height) / 2;		
		str += ",left=" + xc + ",screenX=" + xc;
		str += ",top=" + yc + ",screenY=" + yc;
	}	
	if(arguments[3]!=null&&arguments[3]!=""){			
		str	= str+","+arguments[3];
	}	
	if(arguments[1]!=null&&arguments[1]=="newwin"){
		var obj	= window.open(arguments[0],"",str);
		obj.focus();
	}else if(arguments[4]!=null&&arguments[4]!=""){
		var obj	= window.open(arguments[0],arguments[4],str);//最后一个参数做为对象
		obj.focus();
	}else{
		var obj	= window.open(arguments[0],"openScreenAtCenter_openScreenAtCenter",str);
		obj.focus();
	}
}


//全国律管7通用的弹出框
//举列 	openDialog("a.html");
//		openDialog("a.html","aaa");
//		openDialog("a.html","aaa",600);
//		openDialog("a.html","aaa",800,600);
function openDialog (){
	var filePath	= arguments[0];//取得要打开的目标文件路径
	var winName		= arguments[1];//新窗口的对象名称，如果有则只是弹出一个对话框，如果没有将弹出多个对话框
	var width		= arguments[2];
	var height		= arguments[3];
	if(winName==null)winName	= "";
	if(width==null||width=="")	width	= 625;
	if(height==null||height=="")height	= 500;
	var property	= "status=yes,scrollbars=yes,width="+width+",height="+height+"";
	if (window.screen) {
		var ah = screen.availHeight - 30;
		var aw = screen.availWidth - 10;		
		var xc = (aw - width) / 2;
		var yc = (ah - height) / 2;		
		property += ",left=" + xc + ",screenX=" + xc;
		property += ",top=" + yc + ",screenY=" + yc;
	}	
	var dialogWin	= window.open(filePath,winName.trim(),property);
	dialogWin.focus();
}



//比较字符串日期dt1，dt2，如果相等返回1，如果dt1在dt2之前则返回1，否则返回-1
//举例：compareDate("2003-6-1","2003-5-1") 是 1
//	compareDate("2003-05-01","2003-5-1") 是 0
//	compareDate("2003-03-01","2003-5-1") 是 －1
function compareDate(dt1,dt2){
	if((parseDate(dt1)-parseDate(dt2))>0) return 1;
	else if((parseDate(dt1)-parseDate(dt2))==0) return 0;
	else if((parseDate(dt1)-parseDate(dt2))<0) return -1;
}

	
//根据输入的日期字符串，比如“2003－1－1”，返回他的日期表示
//第一个参数是日期字符串，第二个是分隔符，是“/”，“－”,还是"."等等
function parseDate(){
	var splitChar	= "";
	if(arguments[1]==null||arguments[1]=="")splitChar	= "-";
	else	splitChar	= arguments[1];	
	var dt	= arguments[0];
	var year	= dt.substring(0,dt.indexOf(splitChar));
	var month	= dt.substring(dt.indexOf(splitChar)+splitChar.length,dt.lastIndexOf(splitChar));
	var day		= dt.substring(dt.lastIndexOf(splitChar)+splitChar.length);		
	return new Date(year,eval(month)-1,day);
}






//控制只能数字（包括浮点数） 调用形式 ： <input onkeydown="onlyNumber(this);">
	function onlyNumber(obj){			
		if(event.keyCode!=190){		
			if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
			  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
			    event.returnValue=false;
		}else{				
			if(obj!=null){			
				if((obj.value.indexOf(".")!=-1||obj.value.indexOf("。")!=-1)&&(event.keyCode==190))				
					event.returnValue=false;
			}	
		}		
	}
	
	//只能输入整数数字  调用形式 ：<input onkeydown="onlyIntNum();">
	function onlyIntNum(){
		 if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
		  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
		    event.returnValue=false;
	}


/**
    *调整图片的大小
    *@id,img标签的id
    *@w，要设置的宽度
  */
  
  function setImage(photoUrl,w,h){        
  //alert(id);
    //var photoUrl=$g(id);  
    if (typeof(photoUrl) == "object"){ 
       if ((photoUrl.width != 0) && (photoUrl.height != 0)){
          photoUrl.removeAttribute("width");
          photoUrl.removeAttribute("height");
          var width = photoUrl.offsetWidth;
          var height = photoUrl.offsetHeight;
          //alert("width:"+width+"   "+"height:"+height);
            if(width>w || height>h){
              if((width/w)>=(height/h)){//宽条图形执行
                photoUrl.setAttribute("width",w);
              }else{//高条图形执行
                photoUrl.setAttribute("height",h);
              }
            }
        }else{          
         // if(photoUrl!=null)eval("setTimeout(setImage("+photoUrl+","+w+","+h+"),100)");
           setImage2(photoUrl,w,h);
        }
    }
  }

 
  function setImage2(el,w,h){  
    el.removeAttribute("width");
    el.removeAttribute("height");
    var image=new Image();
    image.src=el.src;
    var width = image.width;
    var height = image.height;
    if(width>0 && height>0){
      if(width>=w || height>=h){
        if((width/w) >= (height/h)){//宽条图形执行
          el.width = w;
        }else{//高条图形执行
          el.height = h;
        }
      }
    }
  }