var trimValue = true;	//是否对表单值剪去头尾空格
var formItemInvalidClassName = "formItem_err";	//表单元素值无效时的样式

//check form(it can just be a DOM container element, not necessarily be a form
//containerDomElement : the dom element containing the form elements,
//						it can be the dom element's id property
function checkForm(containerDomElement) {
	var jForm = toJqueryObject(containerDomElement);
	
	var txtInputs = jForm.find(":text[regExp],:password[regExp],textarea[regExp]");
	for(var i = 0; i < txtInputs.length; i++) {
		if (!checkElement(txtInputs[i])) {		
			return false;
		}
	}
	return true;
}
//check if an element is valid
//elementOrId : elementId or element object(can be a jQuery object)
//errPromptDivClassName : a css class name to be set to the error prompt div
function checkElement(elementOrId, errPromptDivClassName) {
	var jElement = toJqueryObject(elementOrId);
	if (!errPromptDivClassName) errPromptDivClassName = "formItemErrorPrompt";
	
	if (jElement.attr("regExp")) {
		var testReg = eval(jElement.attr("regExp"));
		if (trimValue) jElement.val($.trim(jElement.val()));
		
		$("#" + "formerr_" + jElement.attr("id")).remove();
		if (!testReg.test(jElement.val())) {
			jElement.addClass(formItemInvalidClassName);
			
			var newDiv = createNeighborPrompt(
				jElement, 
				jElement.attr("errorMessage"),
				"formerr_" + jElement.attr("id"),
				0, -24, errPromptDivClassName);
			document.body.appendChild(newDiv);
			jElement.bind("mouseover", function() {
				$(newDiv).show();
			}).bind("mouseout", function() {
				$(newDiv).hide();
			});
			return false;
		} else {
			jElement.removeClass(formItemInvalidClassName);
		}
	}
	return true;
}

function clearErrorPrompts(containerDomElement) {
    var jForm = toJqueryObject(containerDomElement);
    var inputs = jForm.find(":text[regExp],:password[regExp],textarea[regExp]");
    for (var i = 0; i < inputs.length; i++) {
        $(inputs[i]).removeClass(formItemInvalidClassName);
        $("#formerr_" + inputs[i].id).remove();
    }
}
