
function isValidEmail (str) {
	var re=/^.+@([A-z0-9_-]+\.)+[A-z]{2,4}$/

	return re.test(str)
}

function validate(frm, errMsgId) {

	var errMsg="";

	for(var i=0; i<frm.elements.length; ++i) {
		var elem=frm.elements[i];
		if(elem.validFunc){
			if(!elem.validFunc()){
				errMsg+=elem.errMsg + "\n";

				if(elem.lblId) {
					var lbl=document.getElementById(elem.lblId)
					lbl.oldClass=lbl.className || "";
					lbl.className="err";
				}
			}

			else if(elem.className=="err") {
				elem.className=elem.oldClass;
			}
		}
	}

	if(errMsg) {

		if(errMsgId){
			var errMsgElem=document.getElementById(errMsgId);
			errMsgElem.innerHTML=errMsg.replace(/\n/g, "<br>");
			window.location.hash=errMsgId;
		}

		else {
			alert(errMsg);
		}
		return false;
	}

	return true;
}

function hasInput () { return /\S+/.test(this.value); }

function setRequired (elem, validFunc, errMsg, lblId) {
	elem.validFunc=validFunc;
	elem.errMsg=errMsg;
	elem.lblId=lblId;
} 
