var RequiredField = {
	init: function(){
		var requiredFields = Core.getElementsByClass("required");
		var field = document.getElementById("FN");
		var email = document.getElementById("email");
		var theForm = requiredFields[0].form;
		Core.addEventListener(theForm,"submit",RequiredField.submitListener);
		for(var i = 0; i < requiredFields.length; i++){
		Core.addEventListener(requiredFields[i],"change",RequiredField.changeValue);
		}
		Core.addEventListener(theForm,"reset",RequiredField.resetListener);
	},
	
	resetListener: function(event){
		var requiredFields = Core.getElementsByClass("required");
		var ele = Core.getElementsByClass("hidden");
		for(var i = 0; i < ele.length; i++){
				ele[i].style.display = "none";
		}
			
	},
	
	submitListener: function(event){
		var requiredFields = Core.getElementsByClass("required");
		var ele = Core.getElementsByClass("hidden");
		for(var i = 0; i < requiredFields.length; i++){
			if(requiredFields[i].value == ""){
				ele[i].innerHTML = "* required";
				ele[i].style.display = "inline";
				Core.preventDefault(event);
			}
			else if(requiredFields[i].name == "EmailAddress"){
					if(!(RequiredField.emailValidation(requiredFields[i]))){
					Core.preventDefault(event);
				}
			}
			else{
				ele[i].style.display = "none";
			}
		}
	},
	
	changeValue: function(event){
		    var str = this.name;
			str = str + "1";
			var ele = document.getElementById(str);
			//alert(this.name);
			if(this.name != "EmailAddress"){
			ele.style.display = "none";
			//alert(ele.class);
			ele.innerHTML = "* required";
			}
			else{
				var emailAddr = this.value;
				//var emailpattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/;
				var emailpattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
				if(emailAddr == ""){
					ele.style.display = "inline";
					ele.innerHTML = "* required";
				}
				else if(!emailpattern.test(emailAddr)){
					ele.style.display = "inline";
					ele.innerHTML = "* invalid Email Address";
				}
				else{
					ele.style.display = "none";
				}
			}
		
			
	},
	
	emailValidation: function(element){
		var str = element.name;
		str = str + "1";
		var ele = document.getElementById(str);
		var emailAddr = element.value;
		var emailpattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		if(!emailpattern.test(emailAddr)){
					ele.style.display = "inline";
					ele.innerHTML = "* invalid Email Address";
					return false;
			
		}
		else return true;
	}
};
Core.start(RequiredField);
