
		//定义正则表达式库 
var PatternsDict = new Object(); 

PatternsDict.Long=/^-?(\d+)$/; 
PatternsDict.Int32=/^-?(\d+)$/; 
PatternsDict.Int16=/^-?(\d+)$/; 
PatternsDict.Single=/^-?\d+$|^\d*\.\d+$/; 
PatternsDict.Double=/^-?\d+$|^\d*\.\d+$/; 
PatternsDict.Decimal=/^-?\d+$|^\d*\.\d+$/; 
PatternsDict.NegativeDecimal=/^-\d+$|^\d*\.\d+$/; 
PatternsDict.PositiveDecimal=/^\d+$|^\d*\.\d+$/; 
PatternsDict.NegativeInt=/^-\d+$/; 
PatternsDict.PositiveInt=/^\d+$/; 
PatternsDict.NotEmpty=/^\S+$/; 
PatternsDict.Email=/^.+@.+$/i; 
PatternsDict.Boolean=/True|False/;
PatternsDict.String=/.*/;
PatternsDict.DateTime= /^(\d{4})(-|\/|年)(0?\d{1}|1[0-2])(-|\/|月)(0?\d{1}|[12]\d{1}|3[01])日?$/; 


/*
//别人写的,先留着
//日期格式yyyy 
PatternsDict.date_y= /^(\d{4})$/; 
//日期格式yyyy-mm 
PatternsDict.date_ym= /^(\d{4})-(0\d{1}|1[0-2])$/; 
//日期格式yyyy-mm-dd 
PatternsDict.DateTime= /^(\d{4})(-|\/|年)(0\d{1}|1[0-2])(-|\/|月)(0\d{1}|[12]\d{1}|3[01])日?$/; 
//时间格式hh 
PatternsDict.time_h=/^(0\d{1}|1\d{1}|2[0-3])$/; 
//时间格式hh:mm 
PatternsDict.time_hm=/^(0\d{1}|1\d{1}|2[0-3]):([0-5]\d{1})$/; 
//时间格式hh:mm:ss 
PatternsDict.time_hms=/^(0\d{1}|1\d{1}|2[0-3]):[0-5]\d{1}:([0-5]\d{1})$/; 
//整数格式 
//任意字符，可以为空 
//
//电子邮件 
//PatternsDict.Email=/^(\w+@\w{2,})(([.]\w{2,})+)$/i; 
//钱的格式，元，两位小数 
PatternsDict.money=/^(0|[1-9]\d*)$|^(0|[1-9]\d*)\.(\d{1,2})$/; 
//电话格式，0xx-xxxxxxxx或0xxx-xxxxxxx或13xxxxxxxxx 
PatternsDict.telephone=/^(0\d{10})$|^(0\d{11})$|^(13\d{9})&/; 
//多个电话格式，用逗号分隔 
PatternsDict.mtelephone=/^(0\d{10}|0\d{11}|13\d{9})((,(0\d{10}|0\d{11}|13\d{9}))*)$/; 
//多个电子邮件 
//邮政编码 
PatternsDict.postcode=/^(\d{6})$/; 
//只包含数字字母和下划线，可以为空 
PatternsDict.enormal=/^\w*$/; 
//只包含数字字母和下划线，不可以为空 
PatternsDict.normal=/^\w+$/; 
//变量，字母打头的任意数字字母组合 
PatternsDict.variable=/^[a-zA-Z]\w*$/; 
//身份证，要求必须15位或者18位的数字 
PatternsDict.identity=/^(\d{15}|\d{18})$/; 
//成绩，最高5 
PatternsDict.mark5=/^[0-5]$/; 
//成绩，最高10 
PatternsDict.mark10=/^([0-9]|10)$/; 
//成绩，最高15 
PatternsDict.mark15=/^([0-9]|1[0-5])$/; 
//成绩，最高100 
PatternsDict.mark100=/^(\d{1}|[1-9]\d{1}|100)$/; 
//成绩，最高120 
PatternsDict.mark120=/^(\d{1}|[1-9]\d{1}|1[0-1]\d{1}|120)$/; 
//成绩，最高150 
PatternsDict.mark150=/^(\d{1}|[1-9]\d{1}|1[0-4]\d{1}|150)$/; 
//比率0到1000之间 
PatternsDict.rate=/^(0|[1-9]|[1-9]\d{1}|[1-9][0-9][0-9]|1000)$/; 
//1到10之间的一个数 
PatternsDict.one2ten=/^([1-9]|10)$/; 
//下拉列表 
PatternsDict.select=/(.)+/; 


*/
//检查用户有没有修改过内容,有就提示
function checkChanged() {
	if (initialContents != getAllContents()) {
		if (window.confirm("当前记录还未保存,所作的修改将会丢失.是否继续?")) {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		//showTip();
		return true;
	}
}

//指定检验Form的名称，若验证受理则返回true 
/*
提交时检验输入的合法性和检查内容有没有被修改

checkChanged:是否
*/
function validateForm(form) 
{ 	//debugger;
	//alert('kk');

	var elArr;
	if (form == null) {
		elArr = document.forms[0].elements; // 将表单中的所有元素放入数组 
	}
	else {
		elArr = form.elements; // 将表单中的所有元素放入数组 
	}
	//if (!elArr)
	//	alert('fx');
	//
	var count = elArr.length;
	//alert(count);
	for(var i = 0; i < count; i++) 
	{ 
	var a = new String();
	
	    if (elArr[i].tagName.toUpperCase() == "INPUT") {
	        if (elArr[i].name != ""&&elArr[i].name!="__VIEWSTATE") {//edit ljb
	            if (elArr[i].maxLength == 2147483647) {
	                if (elArr[i].value.length >255) {
	                    alert('字段长度太长, 不能超过255个字符');
	                    return false;
	                }
	            }
	            else {
	        	    if (elArr[i].maxLength != -1 && elArr[i].value.length > elArr[i].maxLength) {
	                    alert('字段长度太长, 不能超过' + elArr[i].maxLength + '个字符');
	                    return false;
	                }
	            }
	        }
	    }
	    
	    if (elArr[i].tagName.toUpperCase() == "TEXTAREA") {
	        if (elArr[i].name != "") {
	            if (elArr[i].maxLength == null) {
	        	    if (elArr[i].maxLength != -1 && elArr[i].value.length > elArr[i].maxLength) {
	                    alert('字段长度太长, 不能超过' + elArr[i].maxLength + '个字符');
	                    return false;
	                }
	            }
	        }
	    }

		if (!elArr[i].disabled) {
			with(elArr[i]) 
			{ 
				s = elArr[i].name;
				
					
				var v = elArr[i].getAttribute("validateType"); // 获取其validator属性 
				if(v && value != "") 
				{
					var thePat = PatternsDict[v];   // 选择验证用的正则表达式 
					if (thePat != undefined)
					{
						var gotIt = thePat.test(value); // 用正则表达式验证elArr[i]的值 
						if(!gotIt) 
						{ 
							//报错 
							var desc = elArr[i].description
								if (desc)
								{
									alert(desc + "的格式不正确!"); 
								}
								else
								{
									alert(" 输入值：'" + value + "'格式不正确!"); 
								}
							//聚焦 
							focus(); 
							//选中文本内容 
							if(v.toLowerCase() != "select") 
							{ 
								select(); 
							} 
							return false; 
						}
					} 
				} 
			}
				
				
				
			//检查allownull
			with(elArr[i]) 
			{ 
					var v = elArr[i].getAttribute("allowNull"); // 获取其validator属性 
					if(v == "false")
					{ 
						if (elArr[i].value == "") {
							var desc = elArr[i].getAttribute("description");
						
							if (desc != null )
							{
								alert(desc + "不能为空"); 
							}
									else
							{
								alert("不能为空");
									}
							try {
								focus(); 
								//选中文本内容 
								if(v.toLowerCase() != "select") 
								{ 
									select(); 
								} 
							}
							catch (e){}
							return false;
						}
					} 
			}
			
							
			with(elArr[i]) 
			{ 
				var v = elArr[i].getAttribute("equalTo"); 
				if(v)
				{
					var target = document.getElementById(v);
					if (elArr[i].value != target.value){
						//报错 
						var desc = elArr[i].getAttribute("description");
						alert(desc + "和" + target.getAttribute("description") + "不一致"); 

						//聚焦 
						focus(); 
						//选中文本内容 
						if(v.toLowerCase() != "select") 
						{ 
							select(); 
						} 
						return false; 
					} 
				} 
			}
				
				//检查RegEx
			with(elArr[i]) 
			{ 
				var v = elArr[i].getAttribute("regex"); // 获取其validator属性 
				if(v && value != "")
				{
					var thePat = new RegExp(v, "i");
					var gotIt = thePat.test(value); // 用正则表达式验证elArr[i]的值 
					if(!gotIt) 
					{ 
						//报错 
						var desc = elArr[i].getAttribute("description")
							if (desc)
							{
								alert(desc + "的格式不正确!" + elArr[i].getAttribute("instruction")); 
							}
							else
							{
								alert(" 输入值：'" + value + "'格式不正确!"); 
							}
						//聚焦 
						focus(); 
						//选中文本内容 
						if(v.toLowerCase() != "select") 
						{ 
							select(); 
						} 
						return false; 
					} 
				} 
			}
		}
	}
	
	/*
	var saveBtn = document.getElementById("btnSave");
	if (saveBtn != null && !saveBtn.disabled && window.event.srcElement != saveBtn) {
		return window.confirm("当前记录还没按\"保存\",所作的修改将会丢失.是否继续?");
	}
	*/
	

	return true;
}
/*	if (clickedObj == null) {
		clickedObj = window.event.srcElement;
		disableLinks();
	}
	//debugger;

	*/
//页面刚load的时候把所有html对象的value记录下来,然后提交时再做比较,决定是否提示要保存

var initialContents;
function getInitialContents() {
	initialContents = getAllContents();
}

function getAllContents() {
	var allText = "";
	var all = document.forms[0].all;
	for (var i = 0; i < all.length; i++) {
		if (all[i].id != "" && all[i].value) {
		allText += all[i].id + ":" + all[i].value + ";";
		}
	}
	return allText;
}
	
function clearOptions(control) {
	l = document.getElementById(control).options.length;
	for (i=0; i<l; i++) {
		document.getElementById(control).options.remove(0);
	}
}

/*
和弹出窗口有关的js

var popUp; 


function openCodeWindow(displayId, valueId, type, valueField, layer) {
	if (layer == null) {
	layer = -1;
	}
	
	var offsetTop = document.getElementById(displayId).offsetTop;
	var offsetLeft = document.getElementById(displayId).offsetLeft;
	var parentElement = document.getElementById(displayId).offsetParent;
	while (parentElement) {
		offsetTop += parentElement.offsetTop;
		offsetLeft += parentElement.offsetLeft;
		parentElement = parentElement.offsetParent;
	}
	offsetLeft += window.screenLeft - document.body.scrollLeft ;
	offsetTop += window.screenTop  + document.getElementById(displayId).offsetHeight - document.body.scrollTop;
	popUp = window.showModalDialog('..\\CommonDialogs\\SelectCode.aspx?valueField=' + valueField+ '&type=' + type + '&layer=' + layer, 
		[window], 
		'dialogWidth:300px;dialogHeight:300px;status:0;dialogLeft:' + offsetLeft + ';dialogTop:' + offsetTop ) ;
	
	if (popUp != null) {

		document.getElementById(displayId).value = popUp.display;//date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate();
		document.getElementById(valueId).value = popUp.value;//date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate();
		
	}
}




function openUnitWindow(url, displayId, valueId, addButtonId) {
	if (addButtonId == null) {
		addButtonId = valueId;
	}
	var offsetTop = document.getElementById(addButtonId).offsetTop;
	var offsetLeft = document.getElementById(addButtonId).offsetLeft;
	var parentElement = document.getElementById(addButtonId).offsetParent;
	
	while (parentElement) {
		offsetTop += parentElement.offsetTop;
		offsetLeft += parentElement.offsetLeft;
		parentElement = parentElement.offsetParent;
	}
	offsetLeft += window.screenLeft - document.body.scrollLeft ;
	offsetTop += window.screenTop  + document.getElementById(addButtonId).offsetHeight - document.body.scrollTop;
	popUp = window.showModalDialog(url + '?', 
		[window], 
		'dialogWidth:400px;dialogHeight:500px;status:0;dialogLeft:' + offsetLeft + ';dialogTop:' + offsetTop ) ;
		
	if (popUp != null) {
		if (displayId != null && displayId != "")
						document.getElementById(displayId).value = popUp.display;//date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate();
	
		if (valueId != null && valueId != "")
		document.getElementById(valueId).value = popUp.value;//date.getFullYear() + '/' + date.getMonth() + '/' + date.getDate();
		return popUp.id;
	}
}

	*/


