window.addEvent('domready', function() {	

	// Execution automatique
	(function () {
		
		if ($('baseline') != null) {
			$('baseline').inject($('footer'), 'after');
		}
		
		$$('ul.submenuNav li a').each(function(elt, i) {
			if (elt.getNext('span') != null) {
				(elt.getNext('span')).addEvent('click', function() { document.location = elt.get('href'); });
			}
		});
/*			var urlRef = document.URL.getRoot();
			$$('#submenuNav a').each(function(elt, i) {
				if (elt.get('href') != null && elt.get('href').getRoot() == urlRef) {
					var li = elt.getParent('li');
					li.set('class','over');
				}
			});
			
			$('newsBar').destroy();*/
		
		if ($('content-form') != null) {
				var myForm = new Forms('content-form');
				
				($('content-form').getElements('input[type=text]')).each(function(elt,i) { elt.addEvent('click', function() { this.select(); }); });
			}
		
		if ($('detailItems') != null) {
			
			var tarif = $$('#detailItems li.tarif')[0];
			if (tarif != null) {
				tarif.getElement("a").addEvent('click', function(event) { 
					event.stop();
					var reqNews = new Request({
					method : 'get', 
					url : '/include/devspe.php?action=sejourHotelLst&idh='+$('idh').get('value')+'&idm='+$('idm').get('value'),
					onRequest: $('detailItemsContent').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('detailItemsContent'). set('html', response); }
					}).send(null);
				});
			}
			
			var desc = $$('#detailItems li.description')[0];
			if (desc != null) {
				(desc.getElement("a")).addEvent('click', function(event) { 
					event.stop();
					var reqNews = new Request({
					method : 'get', 
					url : '/include/devspe.php?action=descHotelLst&idh='+$('idh').get('value'),
					onRequest: $('detailItemsContent').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('detailItemsContent'). set('html', response); }
					}).send(null);
				});
			}
			
			var tarifVille = $$('#detailItems li.tarifVille')[0];
			if (tarifVille != null) {
				tarifVille.getElement("a").addEvent('click', function(event) { 
					event.stop();
					var reqNews = new Request({
					method : 'get', 
					url : '/include/devspe.php?action=sejourVilleLst&idv='+$('idv').get('value')+'&idm='+$('idm').get('value'),
					onRequest: $('detailItemsContent').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('detailItemsContent'). set('html', response); }
					}).send(null);
				});
			}
			
			var hotelVille = $$('#detailItems li.hotelVille')[0];
			if (hotelVille != null) {
				(hotelVille.getElement("a")).addEvent('click', function(event) { 
					event.stop();
					var reqNews = new Request({
					method : 'get', 
					url : '/include/devspe.php?action=hotelVilleLst&idv='+$('idv').get('value')+'&idm='+$('idm').get('value'),
					onRequest: $('detailItemsContent').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('detailItemsContent'). set('html', response); }
					}).send(null);
				});
			}
			
			
			var sejourVille = $$('#detailItems li.sejourVille')[0];
			if (sejourVille != null) {
				(sejourVille.getElement("a")).addEvent('click', function(event) { 
					event.stop();
					var reqNews = new Request({
					method : 'get', 
					url : '/include/devspe.php?action=sejourVilleLst&idv='+$('idv').get('value')+'&idm='+$('idm').get('value'),
					onRequest: $('detailItemsContent').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('detailItemsContent'). set('html', response); }
					}).send(null);
				});
			}
			
			
			var orientationVille = $$('#detailItems li.orientationVille')[0];
			if (orientationVille != null) {
				(orientationVille.getElement("a")).addEvent('click', function(event) { 
					event.stop();
					var reqNews = new Request({
					method : 'get', 
					url : '/include/devspe.php?action=orientationVilleLst&idv='+$('idv').get('value')+'&idm='+$('idm').get('value'),
					onRequest: $('detailItemsContent').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('detailItemsContent'). set('html', response); }
					}).send(null);
				});
			}
			
			$$($(document.body).getElements('a')).each(function(elt, i) {
				
				if (elt.get('href') != null) {
					if ((elt.get('href')).indexOf('http\://') == -1 && (elt.get('href')).substr(0,1) != "/") {	
 						elt.setProperty('target', '_blank');
					}
				}
			});
			
			
/*			var reqNews = new Request({
				method : 'get', 
				url : '../include/exposants.php?action=searchLst',
				onRequest: $('searchExpList').set('value', 'en cours de chargement...'),
				onComplete: function (response) { 
					$('searchExpList'). set('html', response);
				}
			}).send(null);*/
		}
	})();
	
	
	
	String.prototype.getRoot = function () {
		return this.replace(/^.*\/([^\/]+)$/g,"$1");
	}
	
	// Suppression du bloc actualité sur certaines pages
	var lstPage = ["avantages-clients.php", "charte-qualite-thermhotel.php", "mentions-legales.php"];
	lstPage.each(function(elt,i) { 
		if (document.URL.getRoot() == elt) 
		$('detail').destroy();
	});

	
});


var verifyStatutHotel = function (idh, ids) {
	var reqNews = new Request({
					method : 'get', 
					url : '../include/devspe.php?action=verifyHotelStat&idh='+idh+'&ids='+ids,
					onRequest: $('statutHotel').set('html', 'en cours de chargement...'),
					onComplete: function (response) { $('statutHotel'). set('html', response); }
	}).send(null);
}


var Forms = new Class ({
		Implements: Options,
		
		options : {
			formValidInput : 'valid-form',
			errorClass : 'error'
		},

		initialize : function (container, options) {
			this.setOptions(options);
			this.validForm = $(this.options.formValidInput);
			
			
			this.container = $(container);

			this.obl = [];
			this.initUrl();
			this.initPopup();

			$('valid-form').addEvent('click', function(event) {
				event.stop();
				this.obl.empty();
				this.parseInput(this.container); 
				if (this.obl.length > 0) {
					event.preventDefault(); 
					this.displayObl();
				}else $('content-form').submit();
			}.bind(this));
		},
		
		initUrl : function () {
			this.action = this.container.get('action');
		},
		
		initPopup : function () {
			this.popup = new Element ('div', {'id' : 'popup'});
			this.popup.inject(document.body, 'top');
			
			this.popup.addEvents({
				'show' : function () { this.toggleClass('show'); },
				'hide' : function () { this.toggleClass('show'); }
			});
		},
		
		parseInput : function (container) {
			var bool = true;
			(container.getElements('input, textarea, select')).each(function (elt, i) {
				if (elt.hasClass('obligatoire') && this.testInput(elt) == false) {
					elt.addClass(this.options.errorClass);
					this.obl.push(elt);
				}else if (elt.hasClass('error')) elt.removeClass('error');
			}, this);
		},
		
		testInput : function (tag) {
			var result =  true;

			switch (tag.get('tag')) {
				case 'input'	:	if (tag.get('type') == 'text') {
										if (tag.get('value').trim() == '')
											result = false;
										tag.addEvent('click', function() { this.select(); });
									}
									else if (tag.get('type') == 'checkbox' && tag.checked == false) result = false;
									else if (tag.get('type') == 'radio' && tag.checked == false) result = false
									break;

				case "textarea"	:	if (tag.get('value').trim() == '') result = false;
									break;

				case "select"	:	if (tag.get('value') == 0) result = false;
									break
			}
			
			return result;
		},

		displayObl : function () {
			this.popup.empty();
			
			var background = new Element('div', {'class': 'background'});
			background.inject(this.popup);
			
			var message = new Element('div', {'class': 'message'});
			message.addEvent('click', function () { this.popup.fireEvent('hide'); }.bind(this));

			if (this.obl.length > 0) {
				(new Element('p', {'html' : 'Les champs du formulaire <span class="rouge">en rose</span> contiennent des erreurs ou ne sont pas remplis correctement'})).inject(message);
				(new Element('p', {'html' : '&gt;&gt; Revenir sur le formulaire', 'class' : 'link'})).inject(message);
				(new Element('p', {'class' : 'footer'})).inject(message);
	
				message.inject(this.popup);
				
				this.popup.fireEvent('show');
			}
		}
	});
