﻿var idPrefix = "ctl00_ctl00_main_content_subLeft_content_";
var errors = new Object;

function SubmitGuideInit() {

}

function SubmitGuideFieldVal(id, eType) {

    switch (id) {
    case idPrefix + "inp_company":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 75) {
            fieldWarn(id, "Company name can not excede 75 characters");
        } else {
            fieldReset(id);
        }
    break;

    case idPrefix + "inp_address":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 100) {
            fieldWarn(id, "Address field can not excede 100 characters");
        } else {
            fieldReset(id);
        }
    break;
	
	case idPrefix + "inp_country":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 75) {
            fieldWarn(id, "Country name can not excede 75 characters");
        } else {
            fieldReset(id);
        }
    break;
	
	case idPrefix + "inp_state":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 2) {
            fieldWarn(id, "State/Providence can not excede 2 characters");
        } else {
            fieldReset(id);
        }
    break;

    case idPrefix + "inp_city":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 50) {
            fieldWarn(id, "City name can not excede 50 characters");
        } else {
            fieldReset(id);
        }
    break;
	
	case idPrefix + "inp_zip":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 10) {
            fieldWarn(id, "Zip field can not excede 10 characters");
        } else {
            fieldReset(id);
        }
    break;

    case idPrefix + "inp_contact":
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 50) {
            fieldWarn(id, "Contact name can not excede 50 characters");
        } else {
            fieldReset(id);
        }
    break;

    case idPrefix + "inp_phone":
        if (!$F(id).match(/^(\d{3}-?\d{3}-?\d{4})(\s?\w?)/) && eType == "blur") {
            fieldWarn(id, "Please include area code. Only digits and \"-\" allowed...");
        } else if ($F(id).length > 30) {
            fieldWarn(id, "Phone field can not excede 30 characters");
        } else {
            fieldReset(id);
        }
    break;

    case idPrefix + "inp_fax":
        if (!$F(id).match(/^(\d{3}-?\d{3}-?\d{4})(\s?\w?)/) && eType == "blur") {
            fieldWarn(id, "Please include area code. Only digits and \"-\" allowed...");
        } else if ($F(id).length > 20) {
            fieldWarn(id, "Fax field can not excede 20 characters");
        } else {
            fieldReset(id);
        }
    break;

    case idPrefix + "inp_email":
        if (!$F(id).match(/^([a-zA-Z0-9_\.\-])+@([a-zA-Z0-9_\.\-])+([a-zA-Z0-9]{2,4})+$/) && eType == "blur") {
            fieldWarn(id, "This doesn't appear to be a valid email address...");
        } else if ($F(id).length > 50) {
            fieldWarn(id, "Email field can not excede 50 characters");
        } else {
            fieldReset(id);
        }
    break;
    
    case idPrefix + "inp_website":
        if (!$F(id).match(/^(http:\/)?([\?\#\=\%a-zA-Z0-9\.\-\/])+([a-zA-Z0-9]{2,4})+$/) && eType == "blur") {
            fieldWarn(id, "This does not appear to be a valid URL...");
        } else if ($F(id).length > 100) {
            fieldWarn(id, "Website URL can not excede 100 characters");
        } else {
            fieldReset(id);
        }
    break;
    
    case idPrefix + "inp_pl1": case idPrefix + "inp_pl2": case idPrefix + "inp_pl3": 
        if (invalidChars($F(id))) {
            fieldWarn(id, "Invalid characters...");
        } else if ($F(id).length > 75) {
            fieldWarn(id, "Product name can not excede 75 characters");
        } else {
            fieldReset(id);
        }
    break;
    
    default:
        //alert("No validation code to handle this element/event combination!");
    break;
    }
}

function wordCop(id, count) {
var currentCount = $F(id).split(/\s+|\n+/).length - 1;
fieldWarn(id, currentCount);
    if (currentCount > count) {
        fieldWarn(id, count + " word limit exceded... (" + currentCount + ")");
    } else {
        fieldReset(id);
    }
}

function step2val() {
var s2inps = $('guideFrmS2').getElementsByTagName('input');
    for (var i = 0; i < s2inps.length; i++) {
        if (!s2inps[i].value.match(/\w+/)) {
           //alert("Please fill in all fields");
           new Effect.Pulsate(s2inps[i].id, {duration: 1, pulses: 1});
           fieldWarn(s2inps[i].id, "Please fill in this field");
           s2inps[i].focus();
           return false;
        }
    }
    
var s2sels = $('guideFrmS2').getElementsByTagName('select');
    for (var i = 0; i < s2sels.length; i++) {
        if (!s2sels[i].value.match(/\w+/)) {
           new Effect.Pulsate(s2sels[i].id, {duration: 1, pulses: 1});
           fieldWarn(s2sels[i].id, "Please fill in this field");
           s2sels[i].focus();
           return false;
        }
    }

    for (var e in errors) {
        if (errors[e] == true) {
            //alert("Please correct errors before proceding");
            SubmitGuideFieldVal(e);
            return false;
        }
    }
return true;
}

function step3val() {
//For some reason, `$("ctl00_ctl00_main_content_subLeft_content_inp_pl1").value.match(/\w+/)` isn't working...
    if ($("ctl00_ctl00_main_content_subLeft_content_inp_pl1").value == "") {
        new Effect.Pulsate($("ctl00_ctl00_main_content_subLeft_content_inp_pl1").id, {duration: 1, pulses: 1});
        fieldWarn($("ctl00_ctl00_main_content_subLeft_content_inp_pl1").id, "-Must include at least one product line");
        $("ctl00_ctl00_main_content_subLeft_content_inp_pl1").focus();
        return false;
        }

    for (var e in errors) {
        if (errors[e] == true) {
            //alert("Please correct errors before proceding");
            SubmitGuideFieldVal(e);
            return false;
        }
    }
return true;
}

function fieldReset(id) {
$(id + "_message").innerHTML = "";
$(id).style.borderColor = "#808080";
$(id).style.backgroundColor = "#ffffff";
errors[id] = false;
}

function fieldWarn(id,message) {
$(id + "_message").innerHTML = message;
$(id).style.borderColor = "#a02020";
$(id).style.backgroundColor = "#f0a0a0";
errors[id] = true;
}

function invalidChars(v) {
var invalid = /\^+|@+|\$+|%+|\*+|\[+|\]+|\\+|\/+|\|+|<+|>+|\?+|&+|`+|~+|\++|=+|!+|\{+|\}+|"+|'+/g;
return v.match(invalid);
}