/*******************************************************************************
* /contact/include/generic_form.js
*
* @package bondurant.com
* @author prestonm3@mcmurry.com
* @version 1.0
* @copyright (C) Copyright 2009 by McMurry, Inc.
*
*******************************************************************************/
function validate( form ) {

    var errors = new Array();

    trimall( form );

    if ( form.first_name.value.search(/^\w{2,}/) == -1 ) {

        errors[errors.length] = 'First name is required';
    }

    if ( form.last_name.value.search(/^\w{2,}/) == -1 ) {

        errors[errors.length] = 'Last name is required';
    }

    if ( form.email.value.search(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/) == -1 ) {

        errors[errors.length] = 'Email address is invalid';
    }

    if ( !form.phone_day.value ) {

        errors[errors.length] = 'Phone is required';
    }

    if ( form.state.options[form.state.selectedIndex].value == '' ) {

        errors[errors.length] = 'State is required';
    }

    if ( form.zip.value.search(/^\w{5,}/) == -1 ) {

        errors[errors.length] = 'Zip is required';
    }

    // If age is not hidden, it is must be an integer.
    if ( form.age.type != 'hidden' ) {
        if ( !isInt( form.age.value ) ) {

            errors[errors.length] = 'Age must be an integer';
        }
    }

    if ( !form.comments.value ) {

        errors[errors.length] = 'Comments are required';
    }

    if ( errors.length > 0 ) {

        var errormessage = "The following problems were detected with the information you submitted:\n\n";
        for (var i = 0; i < errors.length; i++) {

            errormessage += ' - '+errors[i]+"\n";

        }
        errormessage += "\nPlease make appropriate changes and resubmit.";
        alert(errormessage);

    }

    return (errors.length == 0) ? true : false;
}
