?/create by mrjhao 2007-03-10
//将document保存为变?
var theDoc=document;
function $(objId)
{
	return theDoc.getElementById(objId);
}
function $$(tagName,parentElement)
{
	return ($(parentElement)||theDoc).getElementsByTagName(tagName);
}
function getSelectedValue(objId)
{
	return $(objId).options[$(objId).selectedIndex].value;
}
function setElementInnerHTML(ElementID,value)
{
	if(!$(ElementID)) return false;
	var targetElement=$(ElementID);
	targetElement.innerHTML=value;
}
function setElementAttribute(ElementID,attributename,attributevalue)
{
	if(!$(ElementID)) return false;
	var targetElement=$(ElementID);
	targetElement.setAttribute(attributename,attributevalue);
}
function getElementAttribute(ElementID,attributename)
{
	if(!$(ElementID)) return false;
	var targetElement=$(ElementID);
	return targetElement.getAttribute(attributename);
}
//验证控件?
var Component = new Object();
Component.ValidateForm = function(parentElement) {
	this.parentElement = (parentElement) ? parentElement : "";
	window.submitArray = new Array();
	this.InitValidateForm();
}
Component.ValidateForm.prototype = {
	InitValidateForm: function() {
		var inputs = $$("input",this.parentElement);
		var inputsLength = inputs.length;
		for(var i = 0; i < inputsLength; i++) {
			if(inputs[i].getAttribute("validate")) {
				this.InitListener(inputs[i]);
			}
		}
		var selects = $$("select",this.parentElement);
		var selectsLength = selects.length;
		for(var i = 0; i < selectsLength; i++) {
			if(selects[i].getAttribute("validate")) {
				this.InitListener(selects[i]);
			}
		}
		$(this.parentElement).onsubmit = function() {	
			var result = true;
			var returnObj;
			for(var i = window.submitArray.length-1; i >= 0; i--) {
				var func = window.submitArray[i][0];
				if(!func()) {
					returnObj = window.submitArray[i][1];
					result = false;
				}
			}
			if(returnObj)returnObj.focus();
			return result;
		}
	},
	//validate:提示区域ID,提示信息,验证方法,正确信息(可?;
	InitListener: function(srcObj) {
		var parameter = srcObj.getAttribute("validate").split("|");
		var hintID = parameter[0];
		var hintMsg = parameter[1];
		var validateFunction = parameter[2];
		var okMsg = (parameter[3]) ? parameter[3] : "通过检?;
		
		//如果没有提示区域ID,则返?
		if(!hintID || !$(hintID)) { return; }
		//如果有提示信?则添加提示事?
		if(hintMsg) {
			srcObj.onfocus = function() {
				//提示样式
				$(hintID).className = "help";
				$(hintID).innerHTML = "<img src='/images/validate_hint.gif' align='absMiddle'> "+hintMsg;
			}
		}
		//如果有验证方?则添加验证事?
		if(validateFunction) { 
			srcObj.onblur = function() {
				var errorMsg = eval(validateFunction + ".call(this,srcObj)");
				if(errorMsg){
					//错误样式
					$(hintID).className = "error";
					$(hintID).innerHTML = "<img src='/images/validate_error.gif' align='absMiddle'> "+errorMsg;
					return false;
				}
				else{ 
					//正确样式
					$(hintID).className = "ok";
					$(hintID).innerHTML = "<img src='/images/validate_right.gif' align='absMiddle'> "+okMsg;
					//$(hintID).innerHTML = "";
					return true;
				}
			}
			//提交
			window.submitArray[window.submitArray.length] = [srcObj.onblur,srcObj];
		}
		srcObj.removeAttribute("validate");
	}
}


