<!--

// Utility function that returns true if a string only contains whitespace
function isblank(s)
{
	for( var i = 0; i < s.length; i++ ) {
		var c = s.charAt(i);
		if( (c != ' ') && (c != '\n') && (c != '\t') ) return false;
	}
	return true;
}

// Validates fields tagged as "required".
function verify(f)
{
	var msg;
	var empty_fields = "";
	var errors = "";
	
	// Cycle through fields looking for numeric and/or required fields
	for( var i = 0; i < f.length; i++ )
	{
		var e = f.elements[i];
		
		// Use form name if nice name is blank
		if( !e.label )
			e.label = e.name; 
			
		// Check for empty entries in required fields based on field types
		if(  e.required && ((e.type == "text") || (e.type == "textarea") || (e.type == "hidden") || (e.type == "password")) ) {
			if( (e.value == null) || (e.value == "") || isblank(e.value) ) {
				empty_fields += "\n		" + e.label;
				continue;
			}		
		}
		else if( e.required && (e.type == "select-one" || e.type == "select-multiple") )
		{
			var itemSelected = false;
//			for( var j = 0; j < e.options.length; j++ ) {
			for( var j = 1; j < e.options.length; j++ ) { // Always skip 0th element - used for header "Select one.."
				if( e.options[j].selected ) {
					if( e.options[j].text != null && e.options[j].text != "" && !isblank(e.options[j].text) ) {
						itemSelected = true;
						break;
					}
				}
			}
			if( !itemSelected ) {
				empty_fields += "\n		" + e.label;
				continue;
			}
		}
		
		// Validate all numeric fields
		if( ( e.numeric && (e.required || e.value) ) || (e.min != null) || (e.max != null) )
		{		
			var v = parseFloat(e.value);
			if( isNaN(v) || ((e.min != null) && (v < e.min)) || ((e.max != null) && (v > e.max)))
			{
				errors += "- The field " + e.label + " must be a number";
				if( e.min != null )
					errors += " that is greater than or equal to " + e.min;
				if( e.max != null && e.min != null )
					errors += " and less than " + e.max;
				else if( e.max != null )
					errors += " that is less than " + e.max;
				errors += ".\n";
			}
		}

		if ( e.email && (e.required || e.value) )
		{
			if (window.RegExp)
			{
				var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
				var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
				var reg3str = " ";
				var reg1 = new RegExp(reg1str);
				var reg2 = new RegExp(reg2str);
				var reg3 = new RegExp(reg3str);
				if (reg1.test(e.value) || !reg2.test(e.value) || reg3.test(e.value)) {
					errors += "- The field " + e.label + " must be a valid email address.\n";
				}
			} else {
				if ((e.value.indexOf('@') == -1) || (e.value.indexOf('.') == -1)) {
					errors += "- The field " + e.label + " must be a valid email address.\n";
				}
			}
		}
	}
	
	// Create error report
	if( !empty_fields && !errors ) return true;
	
	msg = "Your information wasn't submitted due to error(s).\n";
	msg += "Correct the error(s) then click Update.\n";
	msg += "______________________________________________________\n\n";
	
	if( empty_fields ) {
		msg += "- MISSING DATA:" + empty_fields + "\n";
		if( errors ) msg += "\n";
	}
	msg += errors;
	alert(msg);
	return false;
}

//-->