var patterns = {
	empty: /^\s*$/,
	email: /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/i
};

var rules = {
	isEmail: function(value){
		return !patterns.email.test(value)
	}
}

validationRules={
	'email':
		{
		'error':'email invalide',
		'rule': rules.isEmail
		}
}


function getTarget(e){
			var target = window.event ? window.event.srcElement : e ? e.target : null;
			if (!target){return false;}
			while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){
				target=target.parentNode;
			}
			return target;
		}

		
function cancelClick(e){
	if (window.event) {
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}
	if (e && e.stopPropagation && e.preventDefault) {
		e.stopPropagation();
		e.preventDefault();
	}
}
		

df={
	error:[],
	errorMessage:null,
	errorClass:'error',
	errorTitle:'Please fix the marked issues',
	init:function(){
		var elm;
		df.sendButton=$('#registerNewsletter');
		if(!df.sendButton){return;}
		df.f=$('form')[0];
		//DOMhelp.addEvent(df.f,'submit',df.send,false);
		$('#registerNewsletter').bind('click',df.send);
		for(var i in validationRules){
			elm=$('#'+i);
			if(!elm){continue;}
			    $('#'+i).bind('blur',df.sendField);
		}
	},

	sendField:function(e){
	var t = getTarget(e);
		if(t.previousSibling && 
		   t.previousSibling.nodeName.toLowerCase()=='p' && 
		   t.previousSibling.className==df.errorClass){
			t.parentNode.removeChild(t.previousSibling);
		}
		df.checkValue(t.id);
	},
	send:function(a){
		df.flushErrors();
			
		for(var i in validationRules){
			if(!document.getElementById(i)){continue;}
			df.checkValue(i);
		}
		if (df.error.length > 0) {
			cancelClick(a);
		} /*else {
					df.successSend();
		}*/
	},
	flushErrors:function(){
		var elm;
		df.error=[];
		if(df.errorMessage){
			df.errorMessage.parentNode.removeChild(df.errorMessage);
			df.errorMessage=null;
		}			
		for(var i in validationRules){
			elm=document.getElementById(i);
			if(!elm){continue;}
			if(elm.previousSibling && 
			   elm.previousSibling.nodeName.toLowerCase()=='p' && 
			   elm.previousSibling.className==df.errorClass){
				elm.parentNode.removeChild(elm.previousSibling);
			}
		}
	},
	checkValue:function(o){
		var elm=document.getElementById(o);
				if(validationRules[o].rule(elm.value)){
					df.error.push(validationRules[o]['error']);
					df.addErrorMsg(elm,validationRules[o]['error']);
			}
	},
	addErrorMsg:function(o,msg){
		var errorMsg=document.createElement('p');
		errorMsg.className=df.errorClass;
		errorMsg.appendChild(document.createTextNode(msg));
		o.parentNode.insertBefore(errorMsg,o);
	},
	successSend: function() {
		$('#registerNewsletterForm').submit(
			function() {
				//alert('toto');
				var oAction = $(this).attr('action');
				var emailValue = $('#email').attr('value');
				//alert(emailValue);
				oAction = '&body='+emailValue;
				//alert(oAction);
				$(this).attr('action',oAction);
				//this.action = oAction;
				//this.action = this.action+'?subject= NEWSLETTER SUBSCRIPTION';
			}
		)
	}
}




$(document).ready(
	function() {
	var showHotels = function() {
		var oTable = $(this).parent().parent().parent().parent(); 
		oTable.removeClass('off');
		oTable.addClass('on');
	};
	
	var hideHotels = function() {
		var oTable = $(this).parent().parent().parent().parent(); 
		oTable.removeClass('on');
		oTable.addClass('off');		
	};
	
	$('.country a').toggle(showHotels,hideHotels);
	
	df.init();
	
})


