// assumes all fields are required
function validateForm(whichform) {
    for (var i=0; i<whichform.elements.length; i++) {
        var element = whichform.elements[i];
        if (!isFilled(element)) {
            // Give specific messages to each field
            switch (element.name) {
                case "name":
                    alert("Please fill in your name.");
                    return false;
                case "email":
                    alert("Please fill in your email address.");
                    return false;
                case "subject":
                    alert("Please fill in a subject for the message.");
                    return false;
                case "message":
                    alert("Please fill in the message.");
                    return false;
            }
        }

        if (element.className.indexOf("email") != -1) {
            if (!isEmail(element)) {
                alert("Email address must contain a valid email address");
                return false;
            }
        }
    }
}

function isFilled(field) {
    if (field.value.length < 1) {
        return false;
    } else {
        return true;
    }
}

function isEmail(field) {
    // something simple - the backend will be more detailed
    if ((field.value.indexOf("@") == -1) && (field.value.indexOf(".") == -1)) {
        return false;
    } else {
        return true;
    }
}

function prepareForms() {
    for (var i=0; i<document.forms.length; i++) {
        var thisform = document.forms[i];
        thisform.onsubmit = function() {
            return validateForm(this);
        }
    }
}

addEvent(window, 'load', prepareForms, false);
