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);
}

function verify(f) {
	var msg;
	var empty_fields = "";
	var errors = "";

	for(var i = 0; i < f.length; i++) {
		var e = f.elements[i];
		if(((e.type == "text") || (e.type == "textarea") ||
			(e.type== "password")) && !e.optional) {
			if((e.value == null) || (e.value == "") || isblank(e.value)) {
				empty_fields += "\n		" + e.r;
				continue;
			}

			if(e.d) {
				if(isNaN(Date.parse(e.value)))
					errors += "- The field " +e.r+" must be formated like 01/17/2001\n";
			}
			if(e.numeric || (e.min != null) || (e.max != null)) {
				if(e.i) {
					var v = parseInt(e.value);
					if(v != e.value) {
						errors += "- The field " +e.r + " must be a ";
						errors += "number with no decimal\n";
						continue;
					}
				}
				else
					var v = parseFloat(e.value);
				if(isNaN(v) ||
					((e.min != null) && (v < e.min)) ||
					((e.max != null) && (v > e.max))) {

					errors += "- The field " + e.r + " 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";
				}
			}
		}
	}

	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);
}
