// form validation

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

function isEmail(field) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(field.value)) {
        return true;
    } else {
        return false;
    }
}

function validateForm(whichform) {
    for (var i=0; i<whichform.elements.length; i++) {
    
        var element = whichform.elements[i]; // form element
        var label = document.getElementById(element.name+"-label"); // label for form element
        
        // ***** validate required field
        if (element.className.indexOf("required") != -1) {
            if(!isFilled(element)) {
                label.innerHTML = "<span>"+element.name+" required</span>";
                element.focus();
                return false;
            }
        }
        
        // ***** validate email address
        if (element.className.indexOf("email") != -1) {
            if (!isEmail(element)) {
                label.innerHTML = "<span>invalid "+element.name+"</span>";
                element.focus();
                return false;
            }
        }
		
		// ***** validate numeric field
        if (element.className.indexOf("numeric") != -1) {
            if (isNaN(element.value)) {
                label.innerHTML = "<span>invalid "+element.name+" (must be numeric)</span>";
                element.focus();
                return false;
            }
        }
		
    }
return true;
}

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