﻿
function doValidateCompactForm(name, email, err) {
    var hasErrors = false;
    doRemoveErrorStyles();

    if (!doValidateField(name, err)) {
        hasErrors = true;
    }
    if (!doValidateField(email, err)) {
        hasErrors = true;
    }
    if (hasErrors == false) {
        if (!doValidateEmail(email, err))
            hasErrors = true;
    }


    if (hasErrors == true)
        return false;
    else
        return true;
}

function doValidateFullForm(name, address1, address2, city, postcode, err) {
    var hasErrors = false;
    doRemoveErrorStyles();
    
    if (!doValidateField(name, err)) {
        hasErrors = true;
    }
    if (!doValidateField(address1, err)) {
        hasErrors = true;
    }
    if (!doValidateField(address2, err)) {
        hasErrors = true;
    }
    if (!doValidateField(city, err)) {
        hasErrors = true;
    }
    if (!doValidateField(postcode, err)) {
        hasErrors = true;
    }

    if (hasErrors == true)
        return false;
    else
        return true;
}

function doRemoveErrorStyles() {
    $('.row').removeClass("error")
    $('.row').addClass("border");
}

// validate the field
function doValidateField(field, err) {
    var output = getOutputField(field);
    if ($('#' + field).val() == "") {
        output.addClass("error");
        output.removeClass("border");
        $('#' + err).html('Please fill in all required fields');
        return false;
    } else {
        output.removeClass("error");
        output.addClass("border");
        return true;
    }
}

// validate the email address
function doValidateEmail(email, err) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    var output = getOutputField(email);
    if (!emailPattern.test($('#' + email).val())) {
        output.addClass("error");
        output.removeClass("border");
        $('#' + err).html('Please enter a valid email address');
        return false;
    } else {
        output.removeClass("error");
        output.addClass("border");
        return true;
    }
}

// Gets the li tag name for a given field - assumes the li has the same name as the field but with li as the first 2 characters
function getOutputField(field) {
    var arrName = $('#' + field).parent().parent();
    return arrName;
}
