// Validate User Registration form
function validateNewsletterForm() {
    var isValid = true;
    // Var Cleanup
    var first_name = trim(document.getElementById('nl_first_name').value);
    var last_name = trim(document.getElementById('nl_last_name').value);
    var email = trim(document.getElementById('nl_email').value);
    // Error vars
    var formError = document.getElementById('nl_FormError');
    var first_nameError = document.getElementById('nl_first_nameError');
    var last_nameError = document.getElementById('nl_last_nameError');
    var emailError = document.getElementById('nl_emailError');
    var invalidEmailError = document.getElementById('nl_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";
    }
    
    // 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);
    }
}
