// JavaScript Document

//function isblank
//A utility function that returns true if a string contains only
//whitespace characters
function isblank(s)
{
	for(var i=0; i<s.length; i++)
	{
		var c=s.charAt(i);
		if((c!=' ') && (c!='\n') && (c!='')) return false;
	}
	return true; 
}

//function verify
//This function performs form validation. It is invoked from
//the onsubmit event handler. The handler should return
//the value this function returns.
function verify(f)
{
	var msg;
	var empty_fields="";
	var errors="";
	
	//Loop through the elements of the form, looking for all Text and Textarea
	//elemenst that don't have an "optional" property defined. Then check for
	//fields that are empty and make a list of them. Also if any of the the
	//elements have a "min" or "max" property defined, verify that they are
	//numbers and are in the right range. If the element has a "numeric"
	//property defined, verify that it is a number, but don't check its range.
	//Put totgether error messages for fields that are wrong.
	for(var i=0; i<f.length; i++)
	{
		var e=f.elements[i];
		if(((e.type == "text") || (e.type == "textarea")) && !e.optional)
		{
			if ((e.value == null) || (e.value == "") || isblank(e.value))
			{
				empty_fields += "\n          " + e.name;
				continue;
			}
			
			if (e.numeric || (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.name + " must be a number";
					if (e.min != null)
						errors += " that is greater than " + 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";
				}
			}
		}
	}
	
	//Now, if there were any errors, display the messages, and return
	//false to prevent the form from being submitted. Otherwise,
	//return true.
	
	if (!empty_fields && !errors) return true;
	
	msg = "_______________________________________________________\n\n";
	msg += "The form was not submitted because of the following error(s).\n";
	msg += "Please correct these error(s) and re-submit.\n";
	msg += "______________________________________________________\n\n";
	
	if (empty_fields)
	{
		msg += "- The following required field(s) are empty:"
			+ empty_fields + "\n";
		if (errors) msg += "\n";
	}
	
	msg += errors;
	alert(msg);
	return false;
}