<!--

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}


function hasWhitespace(s) {
	var i;
	var whitespace = " \t\n\r";
	
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++) {
		if (whitespace.indexOf(s.charAt(i)) > -1) return true;
	}
	return false;
}


function isEmail(s) {
	if (hasWhitespace(s)) return false;
	if (isEmpty(s)) return false;
	var i = 0;                             
	var SPECIAL_CHARACTERS_EMAIL_STRING = "`!@#$%^&*()+=|\\[]{};:'\",<>/?";
	
	// look for @ and validate for special characters
	while ((i < s.length) && (s.charAt(i) != "@")) { 
		if (SPECIAL_CHARACTERS_EMAIL_STRING.indexOf(s.charAt(i)) >= 0) return false;
		else i++;
	}
	if (i == 0) return false;  // no moniker
	else i++;
	var currentI = i; // keep track of where var i was before validating domain
	
	// look for . and validate for special characters
	while ((i < s.length) && (s.charAt(i) != ".")) { 
		if (SPECIAL_CHARACTERS_EMAIL_STRING.indexOf(s.charAt(i)) >= 0) {
			return false;
		} else i++; 
	}
	if (i == currentI) return false;  // no domain
	else i++;
	
	// there must be at least one character after the .
	if (isEmpty(s.charAt(i))) return false;
	else return true;

}


function validate(f) {
	
	var error_count = 0;

	loadValidReq();
	//Validate User's Age against Age Limit (only invoked if ageLimit is set as a global variable in refering document, and form date field names and field types remain the same)
	
	
	for (var i = 0; i < f.length; i++) {
		var e = f.elements[i];
		if (((e.type == "select-one") || (e.type == "password") || (e.type == "text") || (e.type == "textarea")) && !e.optional) {
			if (e.type == "select-one" && e.options[e.selectedIndex].text == "") {
				empty_fields_web += "<br>&nbsp;&nbsp;&nbsp;" + "'" + e.engName + "'";
				error_count++;
				continue;
			} 
		}
		
		if (e.emailFormat) {
			if (!isEmail(e.value.replace(/^\s+/g, '').replace(/\s+$/g, ''))) { 
				alert('Please enter a properly formatted email address');
			}
		}
	}

}
//-->
