window.onload = function(){
	if( !document.getElementById ) return false;
	if( !document.getElementById("validate") ) return false;
	var theform = document.getElementById("validate");
	theform.onsubmit = function(){
		var required = getElementsByClassName( theform, "p", "required" );
		var errors = false;
		var firsterror = false;	
		for( var x = 0; x < required.length; x++ ) {
			var children = required[x].childNodes;
			for (var i = 0; i < children.length; i++) {
				 if( children[i].nodeName == "INPUT" || children[i].nodeName == "TEXTAREA" || children[i].nodeName == "SELECT" )
					if( children[i].value == "" ) {
						setErrorColor( children[i] );
						errors = true;
						if(!firsterror)	firsterror = children[i];
					} else {
						defaultColor( children[i] );
					}
			}
		}
		if( errors ) {
			alert( 'There seems to be some missing required information.\n Please complete all required fields' );
			firsterror.focus();
			return false;
		} else {
			return true;
		}
	}
}

function setErrorColor( e ) {
	e.style.backgroundColor = '#ffe5e5';
}

function defaultColor( e ) {
	e.style.backgroundColor = '#fff';
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
