// JavaScript Document
// 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;
}
// performs form verification, 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 a "max" property defined,
    // then verify that they are numbers and that they are in the right range.
    // Put together error messages for invalid fields.
       var zip = f.ZipCode;
	   var st = f.State;
	   var cit = f.YourCity;
       // first check if the field is empty
        if ((zip.value == null) || (zip.value == " zip") || isblank(zip.value)) 
		{
			if ((st.value == null) || (st.value == "") || isblank(st.value)) 
			{
				empty_fields += "\n          " + st.name;
			}
			if ((cit.value == null) || (cit.value == " city") || isblank(cit.value)) 
			{
				empty_fields += "\n          " + "City";
			}
         }
    // Now check for fields that are supposed to be numeric.
    // if there were any errors, display the messages, and
    // return false to prevent the form from being submitted. 
    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;
}
function vgen(f)
{
    var msg;
    var empty_fields = "";
    var errors = "";
	var thePosition;
	var email;
    // 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 a "max" property defined,
    // then verify that they are numbers and that they are in the right range.
    // Put together error messages for invalid fields.
    for(var i = 0; i < f.length; i++) {
        var e = f.elements[i];
		thePosition=e.name.indexOf("_");
		if(-1==thePosition){
			thePosition=e.name.length;
		}
		if(e.name.substring(0,thePosition).toLowerCase()=='email')
		{
			if(f.email.value!=f.confirmationEmail.value)
			{
				errors += " Please make sure that your email address matches the confirmation email address.";
			}					
			email=e.name;
		}		
//        if (((e.type == "text") || (e.type == "textarea")) && !e.optional) {
        if (e.type == "text" && !e.optional) 
		{
            // first check if the field is empty
            if ((e.value == null) || (e.value == "") || isblank(e.value)) 
			{
				switch(e.name)
				{
					case 'First':
		                empty_fields += "\n          " + "First Name";					
					break;
					case 'Last':
		                empty_fields += "\n          " + "Last Name";					
					break;	
					case 'confirmationEmail':
		                empty_fields += "\n          " + "Confirmation Email Address";					
					break;
					case 'email':
		                empty_fields += "\n          " + "Email Address";										
					break;			
				}
            }
            // 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";
                }
            }
        }
    }
	// check to see if email address field is of valid syntax
	substremail = document.getElementById(email).value.split("@")
	if (substremail.length > 1)
	{
		index = substremail[1].indexOf(".")
		if (index == -1)
		{
					errors += "- please enter a valid e-mail address\n";
		}
	}
	else
	{
					errors += "- please enter a valid e-mail address\n";
//		alert("Please enter a valid e-mail address")
//		document.form1.email.focus()
//		return false
	}
    // if there were any errors, display the messages, and
    // return false to prevent the form from being submitted. 
    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;
}