// JavaScript Document
function validateForm(f) {
	var reqerr = "";
	var valerr = "";
	var msg = "";
	for (var i=0; i<f.elements.length; i++) {
		var elem = f.elements[i];
		var bReqErr = false;
		if (elem.reqd=="1") {
			if (!isElemValue(elem)) {
				if (elem.optl) {
					var optlElem = eval("f." + elem.optl);
					if (!isElemValue(optlElem)) {
						reqerr+="\n"+getDisplayName(elem)+" (if no "+getDisplayName(optlElem)+")";;
						bReqErr = true;
					}
				}
				else {
					reqerr+="\n"+getDisplayName(elem);
					bReqErr = true;
				}
			}
		}
		if (!bReqErr) {
			if (elem.validType=="email" && !isEmail(elem.value)) 
				valerr += "\n"+getDisplayName(elem)+" (e.g. you@youremaildomain.com)";
			else if (elem.validType=="phone" && !isPhone(elem.value)) 
				valerr += "\n"+getDisplayName(elem)+" (e.g. 123-456-7890)";
		}
	}
	if (reqerr!="")	msg += "Sorry, the following fields are required:\n"+reqerr+"\n";
	if (valerr!="")	msg += "\nThe following fields are not formatted correctly:\n" + valerr;
	if (msg!="") {
		msg+="\n\nPlease press OK and try again"
		alert(msg);
		return false;
	}
	return true;
}
function isElemValue(e) {
	var v = "";
	switch (e.type) {
		case "select-one":
			v = e.options(e.selectedIndex).value;
			break;
		case "select-multiple":
			for (i=0;i<e.options.length;i++) {
				if (e.options[i].selected) return true;
			}
			break;
		default:
			v = e.value;
	}
	if(!isEmpty(v))	return true;
	else return false;
}
function getDisplayName(e) {return (e.dispName)?e.dispName:e.name;}
function isPhone(v) {
	var rePhone = /^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/;
	if (isEmpty(v)) return false;
	if (rePhone.test(v)) return true;
	return false;
}
function isEmail(v) {
	var reEmail = /^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/;
	if (isEmpty(v)) return false;
	if (reEmail.test(v)) return true;
	return false;
}
function isNumeric(v) {
	var reInteger = /^\d+$/
    return reInteger.test(v);
}
function isEmpty( v ) {
   var strTemp = v;
   if (strTemp==undefined || strTemp.length==0) return true;
   strTemp = trim(strTemp);
   if(strTemp.length > 0){
     return false;
   }  
   return true;
}
function trim( v ) {
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(v)) {
       v = v.replace(objRegExp, '');
       if( v.length == 0)
          return v;
    }
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(v)) {
       //remove leading and trailing whitespace characters
       v = v.replace(objRegExp, '$2');
    }
  return v;
}
