	function stripTrailingSpace(theStr) {
		var iStr;
		iStr = theStr;
	 	if (iStr.charAt(0) == " ") {
			iStr = iStr.substring(1,iStr.length)
		}
		if (iStr.charAt(iStr.length) == " ") {
			iStr = iStr.substring(0,iStr.length-1)
		}
		return iStr;
	}
	function validate(theform) {
		var reqfields = theform.required.value;
		var reqErrMsg = theform.requiredErrMsg.value;
		var reqfieldsAry = reqfields.split(",");
		var reqErrMsgAry = reqErrMsg.split("\n");
		var tmpStr = "";
		var strEmails = "";
		var strConfEmails = "";
		var bEntered = false;
		for (i=0;i<reqfieldsAry.length;i++){
			reqfieldsAry[i] = stripTrailingSpace(reqfieldsAry[i]);
		}
		for (i=0;i<reqfieldsAry.length;i++){
			if ((theform.elements[reqfieldsAry[i]].type == "text")||(theform.elements[reqfieldsAry[i]].type == "textarea")) {
				if (theform.elements[reqfieldsAry[i]].value.length < 1) {
					alert(reqErrMsgAry[i]);
					theform.elements[reqfieldsAry[i]].focus();
					return false;
				}
				tmpStr = reqfieldsAry[i].toLowerCase();
				if (tmpStr.indexOf('email',0) >= 0) {
					if (!validEmail(theform.elements[reqfieldsAry[i]].value)) {
						alert("Please make sure that the email address provided is valid.");
						theform.elements[reqfieldsAry[i]].focus();
						return false;
					}
				}
			} else if (theform.elements[reqfieldsAry[i]].type == "select-one") {
				if (theform.elements[reqfieldsAry[i]].selectedIndex < 1) {
					alert(reqErrMsgAry[i]);
					theform.elements[reqfieldsAry[i]].focus();
					return false;
				}
			} else if (theform.elements[reqfieldsAry[i]].type == "checkbox") {
				if (theform.elements[reqfieldsAry[i]].checked != true) {
					alert(reqErrMsgAry[i]);
					theform.elements[reqfieldsAry[i]].focus();
					return false;
				}
			} else {
					bEntered = false;
					for (j=0;j<theform.elements[reqfieldsAry[i]].length;j++){
						if (theform.elements[reqfieldsAry[i]][j].checked == true) {
							bEntered = true;
						}
					}
					if (!bEntered) {
						alert(reqErrMsgAry[i]);
						theform.elements[reqfieldsAry[i]][0].focus();
						return false;
					}
			}
		}
		for (i=0;i<reqfieldsAry.length;i++){
			tmpStr = reqfieldsAry[i].toLowerCase();
			if (tmpStr.indexOf('email_confirm',0) >= 0) {
				strConfEmails += reqfieldsAry[i] + ",";
			} else if (tmpStr.indexOf('email',0) >= 0) {
				strEmails += reqfieldsAry[i] + ",";
			}
		}
		if ((strEmails.length > 0) && (strConfEmails.length > 0)){
			strEmails = strEmails.substring(0,strEmails.length-1);
			strConfEmails = strConfEmails.substring(0,strConfEmails.length-1);
			var emailsAry = strEmails.split(",");
			var confEmailsAry = strConfEmails.split(",");
			for (i=0;i<confEmailsAry.length;i++){
				for (j=0;j<emailsAry.length;j++){
					if ((confEmailsAry[i].substring(0,confEmailsAry[i].length-8) == emailsAry[j])||(confEmailsAry[i].substring(0,confEmailsAry[i].length-13) == emailsAry[j])) {
						if (theform.elements[confEmailsAry[i]].value != theform.elements[emailsAry[j]].value) {
							alert("Please make sure your confirmation email address matches you email address.");
							theform.elements[confEmailsAry[i]].focus();
							return false;
						}
					}
				}
			}
		}
		return true;
	}

	function validEmail(thestr) {
	 	if (thestr.match("^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$") == null) {
			return false;
		} else {
			return true;
		}
	}
