// This Javascript may me used to display/determine REQUIRED form feilds 

// 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 != '\t'))
			return  false; 
	}
	return true;
} 



// This is the function that performs form verification. It will be invoked 
// from the onSubmit() event handler. The handler should return whatever 
// value this function returns. 
function FormVerify(f)
{
	var msg;
	var empty_fields = "";
	var errors = "";

	var firstFocusField = "";
	
    // Loop through the elements of the form, looking for all   
    // text and textarea elements that don't have a required 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 fields that are wrong.
    for(var i = 0; i < f.length; i++)
    {
        var e = f.elements[i];
        
        if (e.required == true)
        {    		
        	//alert(e.type);
        	
	        if ((e.type == "text") 
	         || (e.type == "textarea") 
	         || (e.type == "password")
	         || (e.type == "select-one"))
	        {
   	        	// first check if the field is empty
            	if ((e.value == null) || (e.value == "") || isblank(e.value))
            	{
	              empty_fields += "\n          " + e.name;

	              if (firstFocusField == "")
	              {
	              	e.focus();
	              	firstFocusField = "True";
	              }
                	continue;
            	}


			// Now check if field should be an email address
            	if (e.email)                         
            	{	   
               		if( e.value.indexOf('@')== -1 || e.value.indexOf('.')== -1)	
			{
	              	errors += "- You entered an invalid email address.\n";

			if (firstFocusField == "")
			{
	              	e.focus();
	              	firstFocusField = "True";
			}
                	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";
					}
	              if (firstFocusField == "")
	              {
	              	e.focus();
	              	firstFocusField = "True";
	              }
                	continue;
				}	 
			}
			else if ((e.type == "checkbox") || (e.type == "radio"))
			{
				empty_fields += "\n          " + e.name;

				if (firstFocusField == "")
	          {
	          		e.focus();
	              firstFocusField = "True";
	          }
             	continue;
			}
		}
	} 
	
	// 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)
    {
	
	//remove underscores used in form element names
	while(empty_fields.indexOf("_") != -1) {
   	empty_fields = empty_fields.replace("_", " ");
 	} 

	msg += "- The following required field(s) are empty:" + empty_fields + "\n";
        if (errors) 
		msg += "\n";
    }
	//remove underscores used in form element names
	while(errors.indexOf("_") != -1) {
   	errors = errors.replace("_", " ");
 	} 

    msg += errors ;
    alert(msg); 
    
    // Set focus to first EMPTY field.
    return false;
}

