

var errors = false;
addLoadEvent( function() {
    var emailForm = document.emailForm;
    emailForm.onsubmit = function() {
        validateEmailUsForm(emailForm); // create error list
        if(errors) {
            var disc = document.getElementById('disclaimer');
            clearError(disc); // clear errors from page
            displayError(disc); // display errors*/
            return false;
        }
        return true;
    }
});                       
function validateEmailUsForm(emailForm) {
    if(errors) errors = false; // clear errors; form has been resubmitted and still contains errors..
    /* Check each required field in the form and set error flag if necessary */
    if(emailForm.firstName.value == ""              // Check if first name field is empty
    || emailForm.lastName.value == ""               // Check if last name field is empty
    || emailForm.emailAddress.value == ""           // Check if email field is empty
    || !isValidEmail(emailForm.emailAddress.value)  // Check if email address is valid
    || emailForm.contactUsComments.value == "" )    // Check if comment field is empty
        errors = true;
    if(emailForm.contactUsSubject.value == "")      // Check if subject not selected
       errors = true;
    else { // a subject is selected
        var selected = emailForm.contactUsSubject.value.match(/(Information|Reservation|Availability|Feedback|Technical|Preferred|Recent)/);
        // if null is returned, subject value was set via hidden input, no need for checking.
        if(selected != null){
            switch(selected[1]) {
                case "Information": case "Availability" : case "Feedback" :
                    if(!isValidEntry(emailForm.hotelNameCity, "alpha") || emailForm.hotelNameCity.value == "") // Check if hotel name field is empty
                        errors = true;
                    break;
                case "Reservation" :
                    if(!isValidEntry(emailForm.confirmationNumber, "numeric") || emailForm.confirmationNumber.value == "") // Check if confirmation number field is empty
                        errors = true;
                    break;
                case "Preferred" :
                    if(emailForm.memberNumber.value == "") // Check if member number field is empty
                        errors = true;
                    break;
                default: break;
            }
        }
    }
}
function displayError(target) {
    var err = document.createElement("span");
    err.id                  = "errorList";
    err.style.fontSize      = "11px";
    err.style.fontWeight    = "bold";
    err.style.color         = "#FF0000";
    err.innerHTML = '<br/>* ' + 'Please fill in the mandatory fields before submitting';
    target.appendChild(err);
}
function clearError(target) {
    var el = document.getElementById('errorList')
    if(el){
        target.removeChild(el)
    }
}
function addLoadEvent(func) {
    var curOnLoad = window.onload;
    window.onload = typeof window.onload != 'function' ? func : function() { curOnLoad(); func(); };
}
function isValidEntry(element, type){
    if(type == 'numeric'){
        var regExpFilter = /(^\d\d*$)/;
        return regExpFilter.test(element.value);
    }
    else if(type == 'alpha'){
        var regExpFilter = /^\D*$/;
        return regExpFilter.test(element.value);
    }
    return true
}
