function requiredFields(formId) {
    var errorMsg='';
    var fields = cssQuery('#' + formId + ' .required');
    for (var i=0; i<fields.length; i++) {
        if (fields[i].tagName.toLowerCase() == 'input') {
            if (fields[i].className.match('isEmail') == 'isEmail' && fields[i].value != '') {
                var filter = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)/gi;
            	if (!filter.test(fields[i])) {
            	    errorMsg += "The email you entered is invalid\n";
                    fields[i].className += ' invalid';
            	}
            	else {
            	    fields[i].className += fields[i].className.replace(' invalid','');
            	}
            }
            else if (fields[i].value == '') {
                errorMsg += fields[i].title + "\n";
                fields[i].className += ' invalid';
            }
            else {
                fields[i].className = fields[i].className.replace(' invalid','');
            }
        }
        else if (fields[i].tagName.toLowerCase() == 'textarea') {
            if (fields[i].value == '') {
                errorMsg += fields[i].title + "\n";
                fields[i].className += ' invalid';
            }
            else {
                fields[i].className = fields[i].className.replace(' invalid','');
            }
        }
        else if (fields[i].tagName.toLowerCase() == 'select') {
            if (fields[i].options.selectedIndex == '') {
                errorMsg += fields[i].title + "\n";
                fields[i].className += ' invalid';
            }
            else {
                fields[i].className = fields[i].className.replace(' invalid','');
            }
        }
    }

    if (errorMsg) {
        alert(errorMsg);
        return false;
    }
    else {
        return true;
    }
}

function submitForm() {
    var form = cssQuery('form');
	for (var i = 0; i < form.length; i++) {
		form[i].onsubmit = function() {
		    return requiredFields(this.id);
		}
	}
}

var subNavTitle_Text;
function subNavTitle() {
    // SET subNavTitle_Text DEFAULT VALUE
    if (document.getElementById('subNavTitle')) {
        var subNavTitle = document.getElementById('subNavTitle');
        subNavTitle_Text = subNavTitle.lastChild;
    }
    // APPLY HOVER EFFECT TO SUBNAV; changes text displayed
    subNavLinks = cssQuery('#subNav a');
    for (var i=0; i<subNavLinks.length; i++) {
        // CHANGE TO NEW TEXT
        subNavLinks[i].onmouseover = function() {
            var text = document.createTextNode(this.title);
            var subNavTitle = document.getElementById('subNavTitle');
            if (subNavTitle.hasChildNodes()) {
                subNavTitle.removeChild(subNavTitle.lastChild);
            }
            subNavTitle.appendChild(text);
        }
        // CHANGE TEXT BACK TO DEFAULT VALUE
        subNavLinks[i].onmouseout = function() {
            var subNavTitle = document.getElementById('subNavTitle');
            if (subNavTitle.hasChildNodes()) {
                subNavTitle.removeChild(subNavTitle.lastChild);
            }
            subNavTitle.appendChild(subNavTitle_Text);
        }
    }
}

function init() {
    subNavTitle();
    submitForm();
}

window.onload = init;