var Omail = {
	omailForm: null,
	emailInput: null,
	
	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;
		}
		
		Omail.omailForm = document.forms['omailSignup'];
		Omail.emailInput = document.getElementById('EMAIL');
		
		if(omailForm) {
			Omail.addEvent(Omail.emailInput, 'focus', Omail.clearField, false);
			Omail.omailForm.onsubmit = Omail.validateForm;
		}	
	},
	
	validateForm: function() {
		var emailPattern = /^[\w\-\.]+@([\w\-]+\.)+[a-zA-Z]+$/;
		var submitForm = true;
		var errMsg = '';	
		
		if(!emailPattern.test(Omail.emailInput.value) || Omail.emailInput.value == '') {
			submitForm = false;
			
			if(Omail.emailInput.parentNode.lastChild.className != 'error') {
				errMsg = Omail.newErrMsg('Please enter a valid email address. Example name@domain.com.');
				Omail.emailInput.parentNode.appendChild(errMsg);
				Omail.addEvent(Omail.emailInput, 'blur', Omail.removeError, false);
			}		
		}
		
		if(!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.lastChild.className == 'emailError') {
			parent.removeChild(parent.lastChild);
		}
		
	}

}


Omail.addEvent(window, 'load', Omail.init, false);


