// for more information see http://studio.karu.nl/js/verifyform/readme.txt

var globalerrorlist = new Array();

function isblank(s) {
    for(var i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
    }
    return true;
}

function isemail(t) {
    var filter  = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(([a-zA-Z\-0-9]+\.)*([a-zA-Z0-9][a-zA-Z\-0-9]+[a-zA-Z0-9]\.)([a-zA-Z]{2}|com|org|net|gov|mil|edu|int|info|biz|name|aero|museum|coop|pro|arpa)))$/;
    if (!filter.test(t)) return false;
    return true;
}

function verify(f) {
    var msg;
    var empty_fields = "";
    var errors = "";
    var firsterror = "";

    if (document.getElementById) {
        for (var i = 0; i < globalerrorlist.length; i++)
            document.getElementById("label" + globalerrorlist[i]).style.color="#335290";
    }

    var errorlist = new Array();

    for(var i = 0; i < f.length; i++) {
        var e = f.elements[i];
        var htmlnames = new Array("Name","Email","Company");
        var displaynames = new Array("Name","Email","Company");
        var displayname;
        var k;
        for (k=0; k<htmlnames.length; k++)
            if (e.name == htmlnames[k]) {
                displayname = displaynames[k];
            }

        if (((e.type == "text") || (e.type == "textarea")) && !e.optional) {

            if ((e.value == null) || (e.value == "") || isblank(e.value)) {
                empty_fields += "\n\u00A0\u00A0\u00A0- " + displayname;
                if (firsterror == "") {
                    firsterror=e.name;
                }
                errorlist = errorlist.concat(e.name);
                continue;
            }

            if (e.emailaddress) {
                if (!isemail(e.value)) {
                    errors += "\u2022 The email address is invalid.\n";
                    if (firsterror == "") {
                        firsterror=e.name;
                    }
                    errorlist = errorlist.concat(e.name);
                    continue;
                }
            }
        }
    }

    if (!empty_fields && !errors) return true;

    if (document.getElementById) {
        for (var i = 0; i < errorlist.length; i++)
            document.getElementById("label" + errorlist[i]).style.color="#C00";
    }

    globalerrorlist = errorlist;

    msg  = "We\u2019re sorry, the form cannot be processed because it has not been filled in (correctly).\n\n"

    if (empty_fields) {
        msg += "\u2022 One or more of the required fields have not been filled in (correctly), i.e.:"
                + empty_fields + "\n";
        if (errors) msg += "\n";
    }
    msg += errors;
    alert(msg);
    f.elements[firsterror].focus();
    firsterror = "";
    return false;
}