function checkForm(frm) {
	
	aryMissingFields = new Array();
	
	for (i=0; i < frm.elements.length; i++) {
		if ( frm.elements[i].name && frm.elements[i].name.indexOf("_require") > 0 ) {
		
			fldValue = "";
			aryTmp = frm.elements[i].name.split("_");
			fldName = aryTmp[0];
			if ( aryTmp.length == 3 )
				fldName = fldName + "_" + aryTmp[1];
			aryVal = frm.elements[i].value.split("+");
			reqTyp = aryVal[3];
			labelFldObj = document.getElementById(fldName + "_label");
			fldObj = eval("frm." + fldName);
			fldType = fldObj.type;
			if ( fldType == undefined ) {
				fldType = fldObj[0].type;
			}
	
			if ( fldType == "select-one" ) {
				fldValue = eval("frm." + fldName + ".options[frm." + fldName + ".options.selectedIndex].value");
			} else if ( fldType == "checkbox" || fldType == "radio" ) {
				for (ii=0; ii < fldObj.length; ii++) {
					if ( fldObj[ii].checked ) {
						fldValue = fldObj[ii].value;
						break;
					}
				}
			} else {
				fldValue = eval("frm." + fldName + ".value");
				
				// validate numeric/money fields
				re = /[^0-9\.]/g;
				if ( (reqTyp == "num" || reqTyp == "money") && fldValue.search(re) >= 0 ) {
					fldValue = fldValue.replace(re, "");
					eval("frm." + fldName + ".value = " + fldValue);
				}
			}
			
			if ( labelFldObj.className == "required" ) {
				if ( fldValue.length == 0 ) {
					aryMissingFields[aryMissingFields.length] = labelFldObj.innerHTML;
				}
				else if ( reqTyp == "email" && (fldValue.indexOf('@') < 0 || fldValue.indexOf('.') < 0) ) {
					aryMissingFields[aryMissingFields.length] = "Check your E-mail address format (name@example.com)";
				}
			}
		
		} // end if form field is a requirements flag type field
	} // end loop over all form fields
		
	
	if ( aryMissingFields.length > 0 ) {
		alertMsg = "The following required fields are missing in the current form.\n\n";
			
		for (i=0; i < aryMissingFields.length; i++) {
			alertMsg = alertMsg + "- " + aryMissingFields[i] + "\n";
		}
		
		alertMsg = alertMsg + "\n\nRequired items are indicated with red text. Please complete these items before submitting the form.\n\n\tPress OK to return to the form.";
		alert(alertMsg);
		return false;
	}
	
	return true
	
}
