// JavaScript Document
window.onload = initForms;
function initForms() {
		document.forms[0].elements[0].focus();
		for (var i=0; i< document.forms.length; i++){
			document.forms[i].onsubmit = function() {return validForm();}
		}
}

function validForm() {
	var allGood = true;
	var selTag = false;
	var allTags = document.getElementsByTagName("*");
	var allLabels = document.getElementsByTagName("LABEL");
	for (var i=0; i<allTags.length; i++){
		if (!validTag(allTags[i])){
			allGood = false;
			document.getElementById("error").style.visibility="visible";
		}
	}

	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) {
				if (selTag == false){
					thisTag.focus();
					if (thisTag.nodeName == "INPUT"){
						thisTag.select();
					}
					selTag = true;
				}
				
				var currLabel = "";
				for (var k=0; k<allLabels.length; k++){
					if(allLabels[k].htmlFor == thisTag.id){
						currLabel = allLabels[k];
						currLabel.className = "invalid";
					}
				}
				return false;
		}
		return true;
		
		function validBasedOnClass(thisClass){
			var classBack = "";
			
			switch(thisClass){
				case "":
				
				case "invalid":
					break;
					
				case "reqd":
					if (thisTag.value == "") classBack = "invalid ";
		   				classBack += thisClass;
					
					break;
						
				default:
					classBack += thisClass;
					
			}
			return classBack;
		}	
	
	}
		
}
