//<SCRIPT Language="JavaScript1.1">

function stripunderScore(s)

{   var i;
    var returnString = "";
    var bag = "_";

// Search through string's characters one by one.
// If character is not in bag, append to returnString.

    for (i = 0; i < s.length; i++)
    {   
// Check that current character isn't whitespace.
      var c = s.charAt(i);
      if (bag.indexOf(c) == -1)
        returnString += c;
      else
        returnString += " ";
    }

    return returnString;
}

//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 != '\t')) return false;
		}
		return true;
}

//this function performs that form varification. It will be invoked from
//the OnSubmit() event handler.  The handler should return whatever
//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 elements 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 these elements have a 'min' or 'max' property defined
//if the element has a 'numeric' property defined, verify that they are 
//in the right range.  if the element has a numeric property defined, verify
//that if is a number, but don't check it range.
//put together 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) {
		//first check if the field is empty
		if ((e.value == null) || (e.value =="") || isblank(e.value)) {
                        empty_fields = stripunderScore(empty_fields);
			empty_fields += "\n            " + e.name;
			continue;
		}
		
		//now check for fields that are supposed to be numeric
		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 error, display the message, and return
//false to prevent the form from being submitted,
//otherwise, reture true
if (!empty_fields && !errors) return true;

msg =  "___________________________________________________\n\n"
msg += "The form was not submitted becuase of the following errors(s).\n";
msg += "Please correct these error(s) and re-submit.\n";
msg += "___________________________________________________\n\n"

if (empty_fields) {
	msg += "- The following required fields(s)are empty:"
	+ stripunderScore(empty_fields) + "\n";
	if (errors) msg += "\n";
	}
	msg += errors;
	alert(msg);
	return false;
	}
//</script>
