// 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 verify(f)
{
    var msg;
    var empty_fields = "";
    var errors = "";
    arr = new Array
    var domain;
    // 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 fields that are wrong.
    
    for(var i = 0; i < f.length; i++) {
        var e = f.elements[i];
       
		if (e.email)
		{
			// must have a domain name
			// must have a @
			
			arr = e.value.split("@");
			if (arr[0] == null || arr[0].length < 1 || arr[1] == null || arr[1].length < 1 || arr.length > 2)
			
			{
				errors += " - Het veld '" + e.name + "' is geen geldig e-mail veld\n";
			}
			else 
			{
				if (arr[1].lastIndexOf(".") == -1)
					errors += " - Het veld '" + e.name + "' is geen geldig e-mail veld\n";
			}
		}

		if (e.type == "select-one" && !e.optional)
		{
			if (e.selectedIndex == 0)
				{
					empty_fields += "\n          " + e.name;
	            	continue;
				}
		}

        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 += "\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 += "- Het veld " + e.name + " moet een nummer zijn";                     
                   if (e.min != null)
                        errors += " dat groter is dan " + e.min;                     
                   if (e.max != null && e.min != null)
                        errors += " en kleiner dan " + e.max;                     
                   else if (e.max != null)
                        errors += " dat kleiner is dan " + e.max;                     
                   errors += ".\n";
                }
            }
        }
    }
 
    // 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 += "Het formulier is niet gepost vanwege de volgende fout(-en).\n";
    msg += "Corrigeer de fouten en post het formulier nog eens.\n";     
    msg += "______________________________________________________\n\n" 
 
    if (empty_fields) {
        msg += "- De volgende verplichte velden zijn niet ingevuld:" + empty_fields + "\n";
        if (errors) msg += "\n";
    }
    msg += errors;
    alert(msg);
    return false;
}

