
	/****create by XieYuChang ********/
	/********函数说明***/
	/**
	 validateRequired()  用于检验是否为空
	 validateMaxLength() 用于检验最大长度	
	 validateMinLength() 用于检验最小长度
	 validateMask()		 用于检验固定的格式，比如email ,整数 ，浮点数等等
	 使用说明
	 1 。 在需要验证的jsp页面加入如下的函数
	 
	 function validateForm(form) {
		return validateRequired(form) && validateMaxLength(form) && validateMinLength(form) && validateMask(form);  
	 }
	 可以根据自己的需要来确定需要哪个校验，比如我只需要检验为不为空和最大值，那么只需要
	 return validateRequired(form) && validateMaxLength(form)即可

	 然后在你自己的提交函数里，在提交之前加入校验即可
	 例如
	 function submit() {
	    if ( validateForm(document.forms[0]) ) {
			document.forms[0].submit() ;
     }
     2  根据页面的实际情况配置如下的函数，用于作为校验的条件
	function required () { 
		this.aa = new Array("carElectronicNo", "车牌号", new Function ("varName", "this.mask=/^[0-9a-zA-Z]*$/; this.maxlength='16'; this.minlength='1';return this[varName];")) ;
		
		this.ab = new Array("carElectronicNo", "所属公司海关编号", new Function ("varName", "this.mask=/^[0-9a-zA-Z]*$/; this.maxlength='16'; this.minlength='1';return this[varName];")) ;
	}
	函数说明 每一个属性对应你要检验的页面的一个输入框  required ()包含了检验是否为空，大小，这里的mask字段不起作用，但保留了是因为函数的关系

	function mask () {
		this.aa = new Array("carryingCapacity", "载重吨数", new Function ("varName", "this.mask=/(^[0-9]{1,3}$)|(^[0-9]{1,3}[.][0-9]{1,3}$)/; this.maxlength='7'; this.minlength='1';return this[varName];")) ;
	}
	函数的特点与required一样,但只有mask属性起作用,根据属性的特殊要求只要用上合适的正则表达式做检验
	以下是常用的正则表达式的例子
	用于检验numberic(6,3)
	/(^[0-9]{1,3}$)|(^[0-9]{1,3}[.][0-9]{1,3}$)/

	用于检验email    说明 \s : 任何空白 \w :等价与[A-Za-z0-9_] 
	/^\s*([A-Za-z0-9_-]+@(\w+\.)+\w{2,3})\s*$/


	是否数字，全部都是数字
	/^[0-9]*$/

	是否字母
	/^[A-Za-z]*$/

	数字和字母
	/^\w*$/

**/
/**
 *根据xml文件来生成相应的配置函数，然后自动根据配置函数对输入的数据进行校验
 */
var orderDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");	

function validatesubmit(xmlfile, form) {
	//生成配置函数
	if ( validateRequired(form) && validateMaxLength(form) && validateMinLength(form) && validateMask(form)  ) {
		document.forms[0].submit() ;
	}
}
function validateRequired( form ) {
	var bValid = true ;
	var i = 0  ;
    var fields = new Array() ; //用来记录返回的错误提示信息
	oRequired = new required() ;
	for (x in oRequired) {
		var field = form[oRequired[x][0]] ;
		if (field.type == 'text' ||
            field.type == 'textarea' ||
            field.type == 'file' ||
	        field.type == 'select-one' ||
            field.type == 'radio' ||
            field.type == 'password') { 
			//获得field得值，其中select做特殊处理
			if (field.type == "select-one") {
				var si = field.selectedIndex;
				if (si >= 0) {
					value = field.options[si].value;
				}
			} else {
				value = field.value;
			}

			//为空时判断返回的焦点,并将错误信息放到fields中
			if ( trim(value) == '') {
				 if (i == 0) {
					focusField = field;
	             }
	             fields[i++] = oRequired[x][1] + "不能为空" ;
				 bValid = false;
			}

		}
	}

	if (fields.length > 0) {
		focusField.focus();
        alert(fields.join('\n'));
    }
	return bValid ;
}

function validateMaxLength(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMaxLength = new mask() ;
    for (x in oMaxLength) {
		if (form[oMaxLength[x][0]].type == 'text' ||
				form[oMaxLength[x][0]].type == 'textarea' ||
				form[oMaxLength[x][0]].type == 'password') {
            var iMax = parseInt(oMaxLength[x][2]("maxlength")) ;
            if ( getStrLen(form[oMaxLength[x][0]].value)> iMax) {
				if (i == 0) {
					focusField = form[oMaxLength[x][0]];
                }
            fields[i++] = oMaxLength[x][1] + "的长度不能大于" + iMax/2 + "汉字(" + iMax + "字符)";
            bValid = false;
		    }
		}
    }
    if (fields.length > 0) {
		focusField.focus();
        alert(fields.join('\n'));
    }
    return bValid;
}
function validateMinLength(form) {
	var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMinLength = new mask() ;
    for (x in oMinLength) {
		if (form[oMinLength[x][0]].type == 'text' ||
			form[oMinLength[x][0]].type == 'textarea' ||
			form[oMaxLength[x][0]].type == 'password' ) {
            var iMin = parseInt(oMinLength[x][2]("minlength"));
            if (getStrLen(form[oMinLength[x][0]].value) < iMin) {
				if (i == 0) {
					focusField = form[oMinLength[x][0]];
                }
                fields[i++] = oMinLength[x][1] + "长度不能小于" + iMin/2 + "汉字(" + iMin + "字符)";
                bValid = false;
            }
        }
    }
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
	}
    return bValid ;
}

function validateMask(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMasked = new mask() ;
    for (x in oMasked) {
		if ((form[oMasked[x][0]].type == 'text' ||
			 form[oMasked[x][0]].type == 'textarea' ||
             form[oMasked[x][0]].type == 'password') &&
             (form[oMasked[x][0]].value.length > 0)) {
            if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {
				if (i == 0) {
					focusField = form[oMasked[x][0]];
                }
				fields[i++] = "您输入的" + oMasked[x][1] + "格式不正确";			
                bValid = false;
            }
        }
    }
    if (fields.length > 0) {
		focusField.focus();
        alert(fields.join('\n'));
    }
    return bValid ;
}
function matchPattern(value, mask) {
	var bMatched = mask.exec(value);
    if (!bMatched) {
		return false;
    }
    return true;
}
function trim(Str , Flag )
{

	Str	= ""+Str;
	if( Flag == "l" || Flag == "L" )/*trim left side only*/
	{
		RegularExp	= /^\s+/gi;
		return Str.replace( RegularExp,"" );
	}
	else if( Flag == "r" || Flag == "R" )/*trim right side only*/
	{
		RegularExp	= /\s+$/gi;
		return Str.replace( RegularExp,"" );
	}
	else/*defautly, trim both left and right side*/
	{
		RegularExp	= /^\s+|\s+$/gi;
		return Str.replace( RegularExp,"" );
	}
}
function getStrLen(str)
{
var nPos;
var nLen;

	if(str==null) return 0;

	nPos = 0;
    	nLen = 0;
	while (nPos < str.length)
	{	
		if(str.charCodeAt(nPos) > 127)
		{
			nLen = nLen + 2;
		}
		else
	    	{
			nLen = nLen +1;
		}
		nPos++;
	}		
	return nLen;
}




function showDivMessage(text) {
	var obj = document.createElement("<div></div>") ;
	obj.innerHTML=text ;
	var oPopup = window.createPopup(); 
	with (oPopup.document.body) {
		style.backgroundColor="#D4DDE6";
		style.border="solid #CCCCCC 2px";
		style.fontSize="12px" ;
		var windowTitle = "<table width=\"100%\" height=\"28\" border=1 align=center cellspacing=0 bordercolor=#ffffff bordercolorlight=#c3c3c3 bgcolor=#FFFFFF><tr><td bgcolor=\"#778899\" background=\"/lg/Images/graytitle.gif\"><span style=\"font-size: 12px;color: 000000;\">&nbsp;系统提示</span></td></tr></table>" ;
		innerHTML=windowTitle + "<table width=\"100%\" height=\"100%\" border=1 align=center cellspacing=0 bordercolor=#ffffff bordercolorlight=#c3c3c3 bgcolor=#FFFFFF><tr valign='top'><td style=\"font-size: 12px;color: 000000;\"><br>" + obj.innerHTML + "</td></tr></table>";	
	}
	//设置位置
	var width = 280 ;
	var height = 150 ;
	var x = 0 , y = 0 ; 
	if ( parseInt( navigator.appVersion ) >= 4 ) {
		x = (screen.width - width) / 2 ;
		y = (screen.height - height) /2  - 100 ;
	}
	oPopup.show(x,y, width, height, document.body);
}
