var valMessage = "Some fields are missing or filled out incorrectly. Please review the form and correct the errors.";
		var isFormValid;
		
		var reqPrefix = 'req';
		var summaryDivID = 'validation';

		function verify() {
			isFormValid = true;
		
			//check all input boxes
			var inputBoxes = document.getElementsByTagName('input');
			for (var i = 0; i < inputBoxes.length; i++) {
				if (!validateValue(inputBoxes[i])) {
					isFormValid = false;
				}
			}
		
			//check all textareas
			var inputBoxes = document.getElementsByTagName('textarea');
			for (var i = 0; i < inputBoxes.length; i++) {
				if (!validateValue(inputBoxes[i])) {
					isFormValid = false;
				}
			}

			//check all select boxes
			var selectBoxes = document.getElementsByTagName('select');
			for (var i = 0; i < selectBoxes.length; i++) {
				if (!validateValue(selectBoxes[i])) {
					isFormValid = false;
				}
			}
			
			if (!isFormValid) {

				var validDiv = document.getElementById(summaryDivID);
				if (validDiv.firstChild != null) {
					validDiv.replaceChild(document.createTextNode(valMessage), validDiv.firstChild);
				} else {
					validDiv.appendChild(document.createTextNode(valMessage));
				}
			}
			
			//Call any other (custom) validation functions
			valEmail();

			return isFormValid;
		}

		function validateValue(boxElem) {
			if (isReqd(boxElem)) {
				if (boxElem.value.length >= 1) {
					document.getElementById(reqPrefix + boxElem.id).style.visibility = 'hidden';
				} else {
					//required field not filled in; return false
					document.getElementById(reqPrefix + boxElem.id).style.visibility = 'visible';
					return false;
				}
			}
			return true;
		}

		function isReqd(boxElem) {
			var curBoxClass = boxElem.className;

			return (curBoxClass.search(new RegExp('(^|\\s)' + reqPrefix + '(\\s|$)')) != -1);
		}
		
		function valEmail() {
			var emailAddr = document.getElementById('from');
			if (emailAddr.value.length < 1 || emailAddr.value.match(new RegExp('^.+@.+\.[a-z]{2,}$'))) {
				document.getElementById('invalidEmail').style.visibility = 'hidden';
			} else {
				isFormValid = false;
				document.getElementById('invalidEmail').style.visibility = 'visible';
			}
		}
