window.onload = initForms;

function initForms(){
    for (var i = 0; i < document.forms.length; i++) {
        document.forms[i].onsubmit = function(){
            return validForm();
			
        }
    }
}

function validForm(){
    var allGood = true;
    var allTags = document.getElementsByTagName("*");
    for (var i = 0; i < allTags.length; i++) {
        if (!validTag(allTags[i])) {
            allGood = false;
        }
    }
    return allGood;
    function validTag(thisTag){
        var outClass = "";
        var allClasses = thisTag.className.split(" ");
        for (var j = 0; j < allClasses.length; j++) {
            outClass += validBasedOnClass(allClasses[j]) + " ";
        }
        thisTag.className = outClass;
        if (outClass.indexOf("invalid") > -1) {
            thisTag.focus();
			window.alert("Please fill out the required field");
            if (thisTag.nodeName == "INPUT") {
                thisTag.select();
            }
            return false;
        }
		return true;
        function validBasedOnClass(thisClass){
            var classBack = "";
            switch (thisClass) {
                case "":
                case "invalid":
                    break;
                case "reqd":
                    if (allGood && thisTag.value == "") {
                        classBack = "invalid ";
                    }
                    classBack += thisClass;
                    break;
				case "radio":
					if (allGood && !radioPicked(thisTag.name)) {
						classBack = "invalid ";
					}
					classBack += thisClass;
					break;
                default:
                    classBack += thisClass;
            }
            return classBack;
        }
		
			function radioPicked(radioName) {
			var radioSet = "";

			for (var k=0; k<document.forms.length; k++) {
				if (!radioSet) {
					radioSet = document.forms[k][radioName];
				}
			}
			if (!radioSet) return false;
			for (k=0; k<radioSet.length; k++) {
				if (radioSet[k].checked) {
					return true;
				}
			}
			return false;
		}
    }
}