var Omail = {
	omailForm: null,
	emailInput: null,
	sumbitForm: null,
	isErrDisplayed: false,
	
	addEvent: function(elm, evType, fn, capture) 
	{
		if(typeof elm.addEventListener != 'undefined') 
		{
			elm.addEventListener(evType, fn, capture);
			return true;
		} 
		else if(typeof elm.attachEvent != 'undefined') 
		{
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} 
		else 
		{
			elm['on' + evType] = fn;
		}
	},
	
	init: function() {
		if(typeof document.getElementById == 'undefined' ||
			 typeof document.getElementsByTagName == 'undefined') {
			return;
		}
		
		if(document.forms['omailSignup'])
		{
			Omail.omailForm = document.forms['omailSignup'];
			Omail.emailInput = Omail.omailForm['EMAIL'];
		}
		else
		{
			return;
		}
		
		if(Omail.omailForm) {
			Omail.addEvent(Omail.emailInput, 'focus', Omail.clearField, false);
			Omail.omailForm.onsubmit = Omail.validateForm;
		}	
	},
	
	validateForm: function() {

		var emailPattern = /^[\w\-\.]+@([\w\-]+\.)+[a-zA-Z]+$/;
		Omail.submitForm = true;
		var errMsg = '';	
		
		if(!emailPattern.test(Omail.emailInput.value) || Omail.emailInput.value == '') {
			Omail.submitForm = false;
			
			if(Omail.emailInput.parentNode.lastChild.className != 'error' && Omail.isErrDisplayed == false) {
				Omail.isErrDisplayed = true;
				errMsg = Omail.newErrMsg('Please enter a valid email address. Example name@domain.com.');
				document.getElementById('omailfootDiv').appendChild(errMsg);
				Omail.addEvent(Omail.emailInput, 'blur', Omail.removeError, false);
			}		
		}
		
		if(!Omail.submitForm) return false;		
		else {
			return true;
		}
	},
	
	
	newErrMsg: function(customMsg) {
		var newSpan = document.createElement('span');
		var msg = '';
		
		if(customMsg != '') {
			msg = customMsg;
		}
		else {
			msg = 'This field is required';
		}
		
		newSpan.className = 'emailError';
		newSpan.appendChild(document.createTextNode(msg));
		
		return newSpan;
	},
	
	clearField: function(e)
	{
		var target = null;
		
		if(e && e.target) {
			target = e.target;
		} else if(window.event && window.event.srcElement) {
			target = window.event.srcElement;
		} else {
			target = null
		}
	
		if(target.value == 'enter email address')
		{
			target.value = '';
		}
	},
	
	removeError: function(e) {
		var target = null;
		var parent = null;
		
		if(e && e.target) {
			target = e.target;
		} else if(window.event && window.event.srcElement) {
			target = window.event.srcElement;
		} else {
			target = null
		}
		
		if(target == null) {
			return;
		}
		
		parent = target.parentNode;
		while(parent.parentNode && parent.id != 'omailfootDiv')
		{
			parent = parent.parentNode;
		}

		while(parent.lastChild.className == 'emailError') {
			parent.removeChild(parent.lastChild);
		}
		Omail.isErrDisplayed = false;
	}

}


Omail.addEvent(window, 'load', Omail.init, false);

