// NOTE: Needs jsLoader.js to be called beforehand to work

var tagName;
var blurOnMe;
var addFunctionality;
	
blurOnMe = function(){
	//alert("blurOnMe");
this.className=this.className.replace(" highlight", "");
this.className=this.className.replace(" onFocus", "");
}

function focusOnMe(element){
	//alert("focusOnMe");
	element.focus();
	element.className+=" highlight";
}

function addFormFocus(tagType){
	var test = "";
	
		var navRoot = document.getElementsByTagName(tagType);
		
		for (var i = 0; i <  navRoot.length  ; i++)  {
			
			navRoot[i].onfocus = function(){
				 this.className+=" onFocus";
				 //alert(tagType + "focus");
				 this.onblur = blurOnMe;
			}
			
		}// for
}

function addFormHover(tagType){
		var navRoot = document.getElementsByTagName(tagType);
		for (var i = 0; i <  navRoot.length  ; i++)  {
			
			navRoot[i].onmouseover = function(){
				 this.className+=" hover";
				 //alert(tagType + "focus");
			}
			navRoot[i].onmouseout = function(){
				this.className=this.className.replace(" hover", "");
			}					
		}// for
}

function isEmail(strng) {
  var error = ""
  var flag = true;
  var emailFilter=/^.+@.+\..{2,3}$/;
  if (!(emailFilter.test(strng))) { 
    flag = false;
  }

  var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
  if (strng.match(illegalChars)) {
    flag = false;
  }
  return flag;
}
 
function validateRequest(tagType){
	var test = "";
		var navRoot = document.getElementsByTagName(tagType);
		for (var i = 0; i <  navRoot.length  ; i++)  {
			//alert(navRoot[i].className.indexOf("required"));
			if (navRoot[i].className.indexOf("required") >= 0){
				if (navRoot[i].value==''){
					//alert("This field must have a value: " + navRoot[i].id);
					document.getElementById("errorReport").innerHTML = formErrorPart1 + navRoot[i].getAttribute("title") + formErrorPart2;
					focusOnMe(navRoot[i]);
					navRoot[i].onblur = blurOnMe;
					return false;				
				}// if value = ''
				
				if ((navRoot[i].id == "email")||(navRoot[i].className.indexOf("email") >= 0)){
					if (!isEmail(navRoot[i].value)){
						//alert("The 'email' field required a valid email address");
						document.getElementById("errorReport").innerHTML = formErrorEmailPart1 + navRoot[i].getAttribute("title") + formErrorEmailPart2;
						focusOnMe(navRoot[i]);
						navRoot[i].onblur = blurOnMe;
						return false;								
					}
				}// if 'email'		
				
			}// if required field
						
		}// for
}// function

callValidateRequest = function(){
		if(validateRequest("input") == false){return false};
		if(validateRequest("textarea") == false){return false};
		}

function addFunctionality(){
	if (document.all&&document.getElementById) {
		addFormFocus("input");
		addFormFocus("textarea");
		addFormHover("input");
	}
	document.getElementById("form").onsubmit = callValidateRequest;
}

addToLoader("addFunctionality()");
