// Validate User Registration form

function validateContactUsForm() {
    var isValid = true;
    // Var Cleanup
    var first_name = trim(document.getElementById('first_name').value);
    var last_name = trim(document.getElementById('last_name').value);
    var email = trim(document.getElementById('email').value);
    var phone = trim(document.getElementById('phone').value);
    var description = trim(document.getElementById('description').value);

    // Error vars
    var formError = document.getElementById('formError');
    var first_nameError = document.getElementById('first_nameError');
    var last_nameError = document.getElementById('last_nameError');
    var emailError = document.getElementById('emailError');
    var phoneError = document.getElementById('phoneError');
    var descriptionError = document.getElementById('descriptionError');
    var invalidEmailError = document.getElementById('invalidEmailError');

    // First name validation.
    if (first_name == "") {
        isValid = false;
        formError.style.display = "block";
        first_nameError.style.display = "block";
    } else {
        first_nameError.style.display = "none";
    }

    // Last name validation.
    if (last_name == "") {
        isValid = false;
        formError.style.display = "block";
        last_nameError.style.display = "block";
    } else {
        last_nameError.style.display = "none";
    }    

    // Email validation.    
    if (!isValidEmail(email)) {
        isValid = false;
        formError.style.display = "block";
        invalidEmailError.style.display = "block";
    } else {
        invalidEmailError.style.display="none";
    }
    if (email == "") {
        isValid = false;
        formError.style.display = "block";
        emailError.style.display = "block";
        invalidEmailError.style.display="none";
    } else {        
        emailError.style.display="none";
    }

    // Phone validation.
    if (phone != "") {
        if (!isPhoneNumber(phone)) {
            isValid = false;
            formError.style.display = "block";
            phoneError.style.display = "block";
        } else {
            phoneError.style.display="none";
        }
    }

    // Description validation.
    if (description == "") {
        isValid = false;        
        formError.style.display = "block";
        descriptionError.style.display = "block";
    } else {
        descriptionError.style.display = "none";
    }

    // Hide errors if all good
    if (isValid == true) {
        formError.style.display = "none";
    }
    return isValid;
}

// Utility functions
function isValidEmail(email) {
    var isValid = false;
    if (email.match(/^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)) {
        isValid = true;
    }
    return isValid;
}
/*function trim(stringToTrim) {
    //alert("'" + stringToTrim + "'");
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}*/
function trim(str) {
    if (str != undefined) {
        var    str = str.replace(/^\s\s*/, ''),
            ws = /\s/,
            i = str.length;
        while (ws.test(str.charAt(--i)));
        return str.slice(0, i + 1);
    }
}
function isPhoneNumber(s) {
    // Check for correct phone number
    rePhoneNumber = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);
    if (!rePhoneNumber.test(s)) {
         //alert("Phone Number Must Be Entered As: (555) 555-1234");
         return false;
    }
    return true;
}