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 == "file")) && !e.optional) {

            // first check if the field is empty

            if ((e.value == null) || (e.value == "") || isblank(e.value)) {

                if (e.alt != null) {

					empty_fields += "\n " + e.alt;

                } else {

					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))) {

                    if (e.alt != null) {

						errors += "- The field " + e.alt + " must be a number";

                    } else {

						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";

                }

            }

        

		} else if (((e.type == "text") || (e.type == "textarea") || (e.type == "file")) && e.optional) {

			if (isblank(e.value) == false) {

	        	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))) {

	                    if (e.alt != null) {

							errors += "- The field " + e.alt + " must be a number";

	                    } else {

							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";

	                }

				}

			}

		}

	   

	   if (e.emailFormat && ((e.type == "text") || (e.type == "textarea"))) {

	   	 	if (isblank(e.value) == false) {

			   	var emailError = 0

				

			   	indAt = e.value.indexOf('@');

				indDot = e.value.lastIndexOf('.');

			

				if ( (indAt == -1) || (indDot == -1) || (indDot < indAt) || (indDot < (e.value.length - 5)) || ((indDot - indAt) <= 1) || (indAt == 0) ) {

					errors += "- The email address '" + e.value + "' apprears to be in an invalid format.  Please confirm the email address.";

					errors += "\n";			

				}

			}

	   }



	   if (e.dateFormat && ((e.type == "text") || (e.type == "textarea"))) {

	   	 	if (isblank(e.value) == false) {

			   	var maxDays = 31;

				

				theMonth = e.value.substring(0,2);

				if (theMonth.charAt(0) == '0') {

					theMonth = theMonth.charAt(1);

				}

				

				theDay = e.value.substring(3,5);

				if (theDay.charAt(0) == '0') {

					theDay = theDay.charAt(1);

				}

				

				theYear = e.value.substring(6,10);

		

				if (theMonth == 2)	{

					if ((theYear % 4) == 0) {

						maxDays = 29

					} else {

						maxDays = 28;

					}

				} else if ((theMonth == 4) || (theMonth == 6) || (theMonth == 9) || (theMonth == 11)) {

					maxDays = 30;

				}

				

				if ( (e.value.length != 10) || ((theMonth < 1) && (theMonth > 12)) || ((theDay < 1) && (theDay > maxDays)) || ((theYear < 1900) && (theYear > 9999)) ) {

					errors += "- The date '" + e.value + "' apprears to be in an invalid format.  Please re-enter the date.";

					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;

}

