﻿//Validation for the Contact-us form
var ecolor = "#F4DBC6";
var err = 0;
function validate(form) {
    err = 0;
    for (var i = 0; i < form.length; i++) {
        var e = form.elements[i];
        if (e.type == "text") {
             v_text(e);
         }
         if (e.type == "select-one") {
             v_sel(e);
         }
     }
   if (err > 0) {
       return false;
   }
}

function v_text(obj) {
    var name = obj.name;
    var val = obj.value;
    var boolSuccess = true;
    switch (name) {
        case "fname":
            if (val == "" || literalFieldsFormat(obj)==false) {
                seterror(obj);
                err++;
            } else{IsFilled(obj);}
            break;
        case "lname":
            if (val == "" || literalFieldsFormat(obj) == false) {
                seterror(obj);
                err++;
            } else{IsFilled(obj);}
            break;
        case "email":
            if (val == "") {
                seterror(obj);
                err++;
            } else if (!emailFormat(obj)){
                seterror(obj);
                err++;
            } else {
            IsFilled(obj); 
            }
            break;
        case "verEmail":
            if (val == "") {
                seterror(obj);
                err++;
            } else if (val != document.form.email.value){
                seterror(obj);
                err++;
            } else {
                IsFilled(obj);
            }
            break;
        case "address":
            if (val == "") {
                seterror(obj);
                err++;
            } else { IsFilled(obj); }
            break;
        case "city":
            if (val == "" || literalFieldsFormat(obj) == false) {
                seterror(obj);
                err++;
            } else { IsFilled(obj); }
            break;
        case "zip":
            if (val == "") {
                seterror(obj);
                err++;

            } else if (!zipCodeFormat(obj)) {
                 seterror(obj);
                 err++;
            }
            else
            { IsFilled(obj); }
            break;
    }
}

function v_sel(obj) {
    var ind = obj.selectedIndex;
    var n = obj.name;
    if (n == "state") {
        if (ind == 0 || ind == 52) {
            seterror(obj);
            err++;
        } else { IsFilled(obj);}
    
    } else if (n == "country") {
        if (ind == 0) {
            seterror(obj);
            err++;
        //Check if country and state match
        } else if ((ind == 1 && document.form.state.selectedIndex > 51) || (ind == 2 && document.form.state.selectedIndex <= 52)){
            seterror(obj);
            document.form.state.style.backgroundColor = ecolor;
            err++;
        }
        else { IsFilled(obj); }
        }
    }

function seterror(oField) {
    var strName = oField.name;
    var strID = oField.id;
    oField.style.backgroundColor = ecolor;
}

function IsFilled(oField) {
    var strData = oField.value;
    if (strData.length >= 1) {
        oField.style.backgroundColor  = "#FFF";
    }
}

function emailFormat(oField) {
    if (/^([a-zA-Z0-9_.-]){2,}@([a-zA-Z0-9_.-]){2,}\.([a-zA-Z])+([a-zA-Z])$/.test(oField.value)) {
        return true;
    }
    else {
        seterror(oField);
        return false;
    }
}

function zipCodeFormat(oField) 
{
    if (/^([a-zA-Z0-9])/.test(oField.value) && oField.value.length<=7 && oField.value.length>=5)
     {
        return true;
    }
    else 
    {
        seterror(oField);
        return false;
    }
}

function literalFieldsFormat(oField) {
    if (/[a-zA-Z]/.test(oField.value)) {
        return true;
    }
    else {
        seterror(oField);
        return false;
    }
}
