function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

String.prototype.trim = function()
{
    // 用正则表达式将前后空格用空字符串替代。
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function evalForm(formName){
	var isLeapYear=false; /*闰年[二月为29天]*/
	var isSmallMonth=false; /*小月[该月为30天]*/

	if (!document.forms(formName)) return false;
	//for (i=0;i<document.forms(formName).length;i++)	{
	var colInput = document.forms(formName).all.tags("INPUT");
	var colSelect = document.forms(formName).all.tags("SELECT");

	var aryObj = new Array();
	aryObj[0] = colInput;
	aryObj[1] = colSelect;

	for(var iIndex = 0; iIndex<aryObj.length; iIndex++){
		colObj = aryObj[iIndex];
		for (var i=0;i<colObj.length;i++)	{
			objTgt = colObj[i];

			if (objTgt.MUST==1&&objTgt.value==''){
				if (objTgt.disabled==true){
					//return false
				}else{
					if(objTgt.title!=""){
						errAlert ("必填项 ["+objTgt.title+"] 未填写 !","为了保证数据的完整性，系统要求某些值必须填写，\n现在您没有填写其中的 ["+objTgt.title+"] 这一项。","重新填写。");
					}else{
						errAlert("必填项未填写 !","为了保证数据的完整性，系统要求某些值必须填写，\n现在您没有填写其中的某几项。","重新填写。");
					}

					//objTgt.focus();
					//objTgt.select();
					return false;
				}
			}

			if(objTgt.value!=''){
				if (objTgt.isNumeric==1){
					if (isNaN(objTgt.value)){
						if(objTgt.title!=""){
							errAlert ("["+objTgt.title+"] 项中应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在 ["+objTgt.title+"] 项中没有填写数字。","重新填写。");
						}else{
							errAlert ("应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您在某几项中没有填写数字。","重新填写。");
						}
						//objTgt.focus();
						//objTgt.select();
						return false;
					}
					if(objTgt.isInt==1){
						var objTgtIntValue = objTgt.value;
						var startPos = objTgtIntValue.indexOf(".");
						if (startPos!=-1){
							if (objTgt.title!=""){
								errAlert ("["+objTgt.title+"] 项,应该填写整型数字 !","为了保证数据的准确性，系统要求此值必须填写整型数字，\n现在您在此项中没有填写整型数字。","重新填写。");
							}else{
								errAlert ("应该填写整型数字 !","为了保证数据的准确性，系统要求某些值必须填写整型数字，\n现在您在某几项中没有填写整型数字。","重新填写。");
							}
							//objTgt.focus();
							//objTgt.select();
							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))){
							if (objTgt.title!=""){
								errAlert ("["+objTgt.title+"] 项,所填数字超出规定范围!","为了保证数据的准确性，系统要求必须填写一定范围里的数字，\n现在您填写的数值超出了范围。","请重新填写。");
							} else {
								errAlert ("所填数字超出规定范围!","为了保证数据的准确性，系统要求必须填写一定范围里的数字，\n现在您填写的数值超出了范围。","请重新填写。");
							}
							//objTgt.focus();
							//objTgt.select();
							return false;
						}
					}else{
						if(objTgtValue.valueOf()>maxV||objTgtValue.valueOf()<minV){
							if (objTgt.title!=""){
								errAlert ("["+objTgt.title+"] 项,所填数字超出规定范围!","为了保证数据的准确性，系统要求必须填写一定范围里的数字，\n现在您填写的数值超出了范围。","请重新填写。");
							}else {
								errAlert ("所填数字超出规定范围!","为了保证数据的准确性，系统要求必须填写一定范围里的数字，\n现在您填写的数值超出了范围。","请重新填写。");
							}
							//objTgt.focus();
							//objTgt.select();
							return false;
						}
					}
				}

				if (objTgt.isDate==1){
					var inDate=objTgt.value;

					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);
							inMonth=parseInt(inMonth);
						var inDay=inDate.substring(inDate.lastIndexOf("-")+1,inDate.length);
							if (inDay.substring(0,1)=="0" && inDay.length>1)
								inDay=inDay.substring(1,inDay.length);
							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.focus();
							//objTgt.select();
							return false;
						}else{
							errAlert("年份填写有误 !","","");
							//objTgt.focus();
							//objTgt.select();
							return false;
						}

						if (inMonth && !(isNaN(inMonth)) && inMonth<=12 && inMonth >=1){
							var month=inMonth;
							isSmallMonth=judgeSmallMonth(inMonth);
						}else{
							errAlert("月份填写有误 !","表示月份的数字必须处于1到12之间，可是您在 ["+objTgt.title+"] 项中填写的 "+inMonth+" 显然不在这个范围内。","重新填写。");
							//objTgt.focus();
							//objTgt.select();
							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.focus();
							//objTgt.select();
							return false;
						}

						var inputDate=new Date();
						if (!(Date.parse(month + "-" + day + "-" + year))){
							//alert("error!");
							errAlert("日期填写有误 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入。");
							//objTgt.focus();
							//objTgt.select();
							return false;
						}

					}else{
						errAlert("您输入的不是一个完整的日期值 !","为了保证日期存储的准确性，系统要求所有的日期输入都按照 YYYY-MM-DD 的格式输入，\n可是您在 ["+objTgt.title+"] 项中的输入值 ["+objTgt.value+"] 不满足输入要求。","重新输入。");
						//objTgt.focus();
						//objTgt.select();
						return false;
					}
				}
			}

		} //end for i
	}//end for iIndex
	return true;
}

// 判断闰年。
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;
}

//判断整数 (added by cary)
function isInt(objTgt){
	if (isNaN(objTgt.value.trim())){
		errAlert ("应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您没有填写数字。","重新填写。");
		objTgt.select();
		objTgt.focus();
		return false;

	}else{
		var objTgtIntValue = objTgt.value.trim();
		var startPos = objTgtIntValue.indexOf(".");
		if (startPos!=-1){
			errAlert ("应该填写整型数字 !","为了保证数据的准确性，系统要求此值必须填写整型数字，\n现在您在此项中没有填写整型数字。","重新填写。");
			objTgt.focus();
			objTgt.select();
			return false;
		}else{
			return true;
		}
	}
}

//判断是否为数字 (added by cary)
function isNumber(objTgt){
	if (isNaN(objTgt.value.trim())){
		errAlert ("应该填写数字 !","为了保证数据的准确性，系统要求某些值必须填写数字，\n现在您没有填写数字。","重新填写。");
		objTgt.select();
		objTgt.focus();
		return false;
	}else{
		return true;
	}
}

function isNumberNew(objTgt){
	if (isNaN(objTgt.value)){
		objTgt.select();
		objTgt.focus();
		return false;
	}else{
		return true;
	}
}

//判断整数 (added by cary)
function isIntNew(objTgt){
	if (isNaN(objTgt.value.trim())){
		objTgt.select();
		objTgt.focus();
		return false;
	}else{
		var objTgtIntValue = objTgt.value.trim();
		var startPos = objTgtIntValue.indexOf(".");
		if (startPos!=-1){
			objTgt.focus();
			objTgt.select();
			return false;
		}else{
			return true;
		}
	}
}

// 判断是否是日期。
function isDate(objTgt){
	var inDate=objTgt.value;

	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);
			inMonth=parseInt(inMonth);
		var inDay=inDate.substring(inDate.lastIndexOf("-")+1,inDate.length);
			if (inDay.substring(0,1)=="0" && inDay.length>1)
				inDay=inDay.substring(1,inDay.length);
			inDay=parseInt(inDay);

		if (inYear && !(isNaN(inYear)) && inYear.toString().length==4){
			var year=inYear;
			isLeapYear=judgeLeapYear(inYear);
		}
		else if(inYear.toString().length!=4){

			return false;
		}
		else{
			return false;
		}

		if (inMonth && !(isNaN(inMonth)) && inMonth<=12 && inMonth >=1){
			var month=inMonth;
			isSmallMonth=judgeSmallMonth(inMonth);
		}else{
			return false;
		}

		if (inDay && !(isNaN(inDay)) && inDay>=1 && (month==2?(isLeapYear?inDay<=29:inDay<=28):(isSmallMonth?inDay<=30:inDay<=31))){
			var day=inDay;
		}else{
			return false;
		}

		var inputDate=new Date();
		if (!(Date.parse(month + "-" + day + "-" + year))){
			return false;
		}

		// 正确无误。
		return true;
	}else{
		return false;
	}

}