var validator = {
	validators : {
		"REQUIRED" : function(ele) {
			if (ele.value == null || new RegExp(/^\s*$/).test(ele.value)) {
				if (ele.message) alert(ele.message);
				(ele.select || ele.focus)();
				return false;
			}
			return true;
		},
		"RANGE" : function(ele) {
			if (ele.min && ele.max) {
				if (ele.value >= ele.min && ele.value <= ele.max) {
					return true;
				} else {
					if (ele.message) alert(ele.message);
					(ele.select || ele.focus)();
					return false;
				}
			}
			return false;
		},
		"EQUAL" : function(ele) {
			//equal指定值
			if (ele.equalValue) {
				if (new RegExp(/^\{\w+\}$/).test(ele.equalValue)) {
					
				}
			} else if (ele.control) {//equal指定表单域的值
				var group = ele.form[ele.control];
				
				//如果有同组的表单元素
				if ((group.length && !group.value)) {
					var grpIndex = ele.groupIndex || 0;
					if (ele.value != group[grpIndex].value) {
						if (ele.message) alert(ele.message);
						(ele.select || ele.focus)();
						return false;
					}
					return true;
				} else if (ele.value != group.value) {
					if (ele.message) alert(ele.message);
					(ele.select || ele.focus)();
					return false;
				}
				return true;
			}
			return false;
		},
		"REGEXP" : function(ele) {
			if (ele.regExp) {
				if (!new RegExp(ele.regExp).test(ele.value)) {
					if (ele.message) alert(ele.message);
					(ele.select || ele.focus)();
					return false;
				}
				return true;
			}
			return false;
		}
	},
	register : function(validatorType, validator) {
		this.validators[validatorType.toUpperCase()] = validator;
	}
	,
	validate : function(form) {
		var elements = form.elements;
		for (var i = 0; i < elements.length; i++) {
			var ele = elements[i];
			if (ele.validator) {
				var validator = this.validators[ele.validator.toUpperCase()];
				if (validator && !validator(ele)) {
					return false;
				}
			}
		}
		return true;
	}
};
