// add script tag in html form to include this function
// call function with .call to change context to the forms context
// e.g.: requireFields.call(formObj, Array('email', 'Email Address'));

function requireFields(fields) {
    missinginfo = "";
    var i = 0;
    for (i = 0; i < fields.length; i = i + 2) {
       	var fieldname = fields[i];
       	var msg_text = fields[i+1];
       	if (this.elements[fieldname].value == "") {
            missinginfo += "\n  " + msg_text;
       	}
    }
    if (missinginfo != "") {
        var msg = "_____________________________\nThe following fields are required:\n" +
     	          missinginfo + 
                  "\n_____________________________\nPlease re-enter and submit again!";
        alert(msg);
     	return false;
    } else {
        return true;
    }
}

function requireHighlight(fields) {
    failed = false;
    for (var i = 0; i < fields.length; i = i + 2) {
       	var fieldname = fields[i];
       	var msg_text = fields[i+1];
        field = this.elements[fieldname];
        field.className = field.className.replace("error", "");
        label = field.parentNode.previousSibling;
        label.className = label.className.replace("error", "");
       	if (field.value == "" || field.value.replace(" ", "") == "") {
            failed = true;
            field.className += " error"; // change bgcolor of input box
            label.className += " error"; // change font color of label
        }
    }
    if (failed) {
        var errorMsg = document.getElementById('errorMsg');
        if (!errorMsg) { // in case error message node was not added
            errorMsg = document.createElement('p');
            errorMsg.className = "error";
            errorMsg.id = "errorMsg";
            this.parentNode.insertBefore(errorMsg, this);
        }
        errorMsg.innerHTML = "The following highlighted fields are required:";
        errorMsg.style.display = "block";
     	return false;
    } else {
        return true;
    }
}

