/********************LA PARTIE SUIVANTE CONTIENS LES VARIABLES GLOBALES************************/
//LES MESSAGES DE DIFFERENTES LANGUES D'ERREUR A AFFICHER
var tabMessageFR = new Array(	'Vous devez saisir le champs "',
								'Le champs suivant doit être un entier "',
								'Le champs suivant doit être un nombre réel "',
								'Le format de mail n\'est pas valide pour le champs "',
								'Le format de date n\'est pas valide pour le champs "',
								'Vous devez avoir la même saisie dans les deux champs "',
								//"MIN" ET "MAX" SONT A REMPLACER APRES
								'Le champs suivant doit comporter entre MIN et MAX caractères "',
								'Le champs suivant ne doit comporter que les caractères alphanumérique "');

var tabMessageEN = new Array(	'You must fill the following field "',
								'The following field must be an integer "',
								'The following field must be a real number "',
								'The format of mail is not valid for the field "',
								'The format of date is not valid for the fields "',
								'You must fill the same data in the field "',
								//"MIN" ET "MAX" SONT A REMPLACER APRES
								'The following field must be between MIN and MAX characters long "',
								'The following field must contain only the alphanumeric characters "');

var tabCustomheaderErreurFR = new Array(
								"<strong>Attention</strong>",
								"<strong>Pour valider votre commande</strong>",
								"<strong>Pour un envoi valide&nbsp;:</strong>",
								"<strong>Pour valider cette étape et passer à la suivante&nbsp;:</strong>"
							);

var tabCustomheaderErreurEN = new Array(
								"<strong>Warning</strong>",
								"<strong><strong>To validate your order</strong>",
								"<strong>For a proper message&nbsp;:</strong>",
								"<strong>Warning</strong>"
							);
/********************FONCTIONS POUR L'AFFICHAGE DES MESSAGES D'ERREUR ************************/

//CES FONCTIONS SERVENT A CONSTRUIRE LE MESSAGE D'ERREUR D'APRES LA SEMANTIQUE ET LA LANGUE
//ET RETOURNE LE MESSAGE QUI S'EST AJOUTE DE NOUVELLES INFORMATIONS


/********************FONCTIONS POUR VERIFIER LES SAISIES DE L'UTILISATEUR************************/

$(document).ready(function() {
	//AFFICHAGE D'UN MESSAGE DE TEL FORMAT: VOUS DEVEZ ... LE CHAMPS SUIVANT: NOM_DU_CHAMPS (TEXTE DANS LA BALISE "label")
	var errorMessageNormal = function(errorMessage, seman, lang, index) {
		switch(lang) {
			case 'fr': var base = tabMessageFR[index];break;
			case 'en': var base = tabMessageEN[index];break;
			default: var base = tabMessageFR[index];
		}
		// errorMessage += base + seman.substr(0,seman.length-2) + "\"\n";
		errorMessage += base + seman + "\"\n";
		return errorMessage;
	}
	//CETTE FONCTION SE BASE SUR LA FONCTION errorMessageNormal ET NE FAIT QU'UN APRS-TRAITEMENT
	//POUR REMPLACER DES CHAINES DE CARACTERES
	var errorMessageLength = function(errorMessage, seman, lang, index, lengthMin, lengthMax) {
		//L'APPEL DE LA FONCTION errorMessageNormal
		var errorMessage = errorMessageNormal(errorMessage, seman, lang, index);

		var regMin = new RegExp('MIN', 'g');
		var regMax = new RegExp('MAX', 'g');

		errorMessage = errorMessage.replace(regMin, lengthMin);
		errorMessage = errorMessage.replace(regMax, lengthMax);

		return errorMessage;
	}
	//VERIFIER SI AU MOINS UN CHAMPS DANS UN GROUP DE RADIO OU DE CHECKBOX A ETE BIEN COCHE.
	var verifyChoice = function(element) {
		var fieldset = element.parentNode;
		//tab_input CONTIENT TOUS LES ELEMENTS FRERE DE L'element TRANSFERE PAR LE PARAMETRE
		var tab_input = fieldset.getElementsByTagName('input');
		for(var i=0;i<tab_input.length;i++) {
			if(tab_input[i].checked == true) 
				return true;
		}
		return false;
	}

	//VERIFIER SI LA VALUE DE L'element EN PARAMETRE EST BIEN UN ENTIER
	var verifyInteger = function(element) {
		//SI LA VALEUR EST VIDE, ON NE CONTINUE PLUS.
		if (element.value.length == 0)
			return true;

		if(isNaN(element.value))
			return false;
		//SI UN NOMBRE CONTIENT ".", IL DOIT ETRE UN REEL.
		else if(element.value.indexOf('.') != -1)
			return false;
		else
			return true;
	}

	//VERIFIER SI LA VALUE DE L'element EN PARAMETRE EST BIEN UN REEL
	var verifyFloat = function(element) {
		//SI LA VALEUR EST VIDE, ON NE CONTINUE PLUS.
		if (element.value.length == 0)
			return true;

		if(isNaN(element.value))
			return false;
		else
			return true;
	}

	//VERIFIER SI LA VALUE DE L'element EN PARAMETRE CORRESPOND A UN BON FORMAT DE MAIL
	var verifyMail = function(element) {
		//SI LA VALEUR EST VIDE, ON NE CONTINUE PLUS.
		if (element.value.length == 0)
			return true;

		var reg = new RegExp('^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+', 'g');
		return reg.test(element.value);
	}

	//VERIFIER SI LA VALUE DE L'element EN PARAMETRE CORRESPOND A UN BON FORMAT DE DATE
	var verifyDate = function(element) {
		//SI LA VALEUR EST VIDE, ON NE CONTINUE PLUS.
		if (element.value.length == 0)
			return true;

		var reg = new RegExp('^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$', 'g');
		return reg.test(element.value);
	}

	//CETTE FONCTION TROUVE LE TYPE CORRESPONDANT DE L'element. LE TYPE SERA UTILISE POUR
	//DES TRAITEMENTS DIFFERENTS. POUR L'INSTANT ON NE DISTINGUE QUE "checkbox" ET "radio",
	//LES AUTRES TYPES ("text", "texterea", "selectunique", etc) ETANT RESERVES POUR LE FUTUR.
	var findType = function(element) {
		var tag = element.tagName.toLowerCase();
		if(tag == 'input')
			return element.type;

		if(tag == 'textarea')
			return 'textarea';

		//DISTINCTION ENTRE LE CHOIX MULTIPLE ET CELUI D'UNIQUE POUR LE BALISE SELECT
		if(tag == 'select')
			if(element.multiple == true)
				return 'selectmultiple';
			else
				return 'selectunique';
	}

	//LA FONCTION PRINCIPALE VERIFIE LES CHAMPS DU FORMULAIRE (idForm), GENERE UN
	//MESSAGE D'ERREUR D'APRES LA LANGUE (lang) EVENTUELLEMENT ET ENVOYE LES DONNEES
	//SAISIES A UN URL (url) S'IL N'Y A PAS D'ERREUR EN UTILISANT AJAX.
	var submitForm = function(idForm, url, lang, idErrorField, errNum) {
		var errorMessage = '';
		var tabName = new Array();
		var tabValue = new Array();
		var form = $('#'+idForm);

		//POUR AFFICHER LE BON EN-TÊTE CUSTOMISÉ DE MESSAGE D'ERREUR
		if (!errNum) {errNum=0;}
		switch(lang) {
			case 'fr': var customheaderErreur = tabCustomheaderErreurFR[errNum];break;
			case 'en': var customheaderErreur = tabCustomheaderErreurEN[errNum];break;
			default: var customheaderErreur = tabCustomheaderErreurFR[errNum];
		}
		//CETTE VARIABLE EVITE D'AFFICHER LE MEME MESSAGE D'ERREUR PLUSIEURS FOIS
		//POUR UN GROUPE DE "INPUT" DE TYPE RADIO OU CHECKBOX
		var name_choice = '';

		//ON PARCOURT TOUS LES ELEMENTS "label" DU FORMULAIRE
		var nbLabel = form.find('label').length;
		for(var i=0;i<nbLabel;i++) {

			var semantic = form.find('label:eq('+i+')').text();

			//SUPPRESSION DE " *" POUR LES CHAMPS OBLIGATOIRES S'IL Y A UN " *"
			//semantic S'AFFICHE EVENTUELLEMENT DANS LE MESSAGE D'ERREUR
			if(semantic.lastIndexOf('*') == semantic.length-1) //semantic = semantic.split('*')[0];
				semantic = semantic.substr(0, semantic.indexOf('*'));
			else 
				semantic = semantic.substr(0, semantic.length);
			
			semantic = $.trim(semantic);

			// recuperation de l'element auquel le label est lies
			var element = document.getElementById(form.find('label:eq('+i+')').attr('for'));//document.getElementById(tabLabel[i].htmlFor);
			// alert(form.find('label:eq('+i+')').attr('for'));
			var type = findType(element);

			//TRAITEMENT POUR LES CHAMPS OBLIGATOIRES
			if(element.id.indexOf('_ob') != -1) {		
				if(type == form.find('label:eq('+i+')').attr('for') || type == 'radio') {
					//EVITER D'AFFICHER LE MEME MESSAGE D'ERREUR PLUSIEUR FOIS
					if(!verifyChoice(element) && name_choice != element.name) {
						name_choice = element.name;
						errorMessage = errorMessageNormal(errorMessage, semantic, lang, 0);
					}
				}
				else {
					if(element.value.length == 0)
						errorMessage = errorMessageNormal(errorMessage, semantic, lang, 0);
				}
			}

			//TRAITEMENT POUR DES CHAMPS DE SAISIE QUI DOIVENT ETRE UN ENTIER
			if(element.id.indexOf('_int') != -1 && !verifyInteger(element))
				errorMessage = errorMessageNormal(errorMessage, semantic, lang, 1);

			//TRAITEMENT POUR DES CHAMPS DE SAISIE QUI DOIVENT ETRE UN REEL
			if(element.id.indexOf('_float') != -1 && !verifyFloat(element))
				errorMessage = errorMessageNormal(errorMessage, semantic, lang, 2);

			//TRAITEMENT POUR DES CHAMPS DE SAISIE QUI DOIVENT ETRE UN MAIL
			if(element.id.indexOf('_mail') != -1 && !verifyMail(element))
				errorMessage = errorMessageNormal(errorMessage, semantic, lang, 3);

			//TRAITEMENT POUR DES CHAMPS DE SAISIE QUI DOIVENT ETRE UNE DATE
			if(element.id.indexOf('_date') != -1 && !verifyDate(element))
				errorMessage = errorMessageNormal(errorMessage, semantic, lang, 4);

			//TRAITEMENT POUR DEUX CHAMPS DE SAISIE QUI DOIVENT SE CORRESPONDRE
			if(element.id.indexOf('_verif') != -1) {
				var tab_verif = element.parentNode.getElementsByTagName('input');
				if(tab_verif[0].value.length == 0 && tab_verif[1].value.length == 0)
					continue;
				//SI LES DEUX MOTS DE PASSE NE SE CORRESPONDENT PAS
				if(tab_verif[0].value != tab_verif[1].value)
					errorMessage = errorMessageNormal(errorMessage, semantic, lang, 5);
			}

			//TRAITEMENT POUR DES CHAMPS DE SAISIE AYANT UNE CONTAINTE DE LONGUEUR
			if(element.id.indexOf('_long') != -1) {
				if(element.value.length == 0)
					continue;
				//TROUVER LA LONGEUR MINIMALE ET CELLE DE MAXIMALE DANS L'ID
				var reg = new RegExp('[0-9]+', 'g');
				length_min = reg.exec(element.id);
				length_max = reg.exec(element.id);

				if(element.value.length<length_min || element.value.length<length_min 
					|| element.value.length>length_max || element.value.length>length_max)
					errorMessage = errorMessage_length(errorMessage, semantic, lang, 6, length_min, length_max);
			}

			//TRAITEMENT POUR DES CHAMPS DE SAISIE NE CONTENANT QUE LES CARACTERES ALPHABETANUMERIQUE
			if(element.id.indexOf('_alphanum') != -1) {
				if(element.value.length == 0)
					continue;

				//SEULEMENT LES CARACTERES ALPHABETANUMERIQUE SONT AUTORISES
				var reg = new RegExp('^[0-9a-zA-Z]+$', 'g');
				if(reg.test(element.value) == false)
					errorMessage = errorMessageNormal(errorMessage, semantic, lang, 7);
			}

			//REMPLISSAGE POUR LES DEUX TABLEAUX DE DONNEES QUI SERONT ENVOYEES VERS LE SERVEUR
			//SI C'EST UN "CHECKBOX"
			if(type == 'checkbox') {
				if(element.checked == false)
					continue;
				else {
					var tab_checkbox = document.getElementsByName(element.name);
					var value = '';
					for(var j=0;j<tab_checkbox.length;j++)
						if(tab_checkbox[j].checked == true)
							value += tab_checkbox[j].value + '|';
					tabName.push(element.name);
					tabValue.push(value);
				}
			}
			//SI C'EST UN "RADIO"
			else if(type == 'radio') {
				if(element.checked == false)
					continue;
				else {
					var tab_radio = document.getElementsByName(element.name);
					var value = '';
					for(var j=0;j<tab_radio.length;j++)
						if(tab_radio[j].checked == true)
							value = tab_radio[j].value;
					tabName.push(element.name);
					tabValue.push(value);
				}
			}
			//SI C'EST UNE LISTE DEROULANTE MULTIPLE
			else if(type == 'selectmultiple') {
				var tab_option = element.getElementsByTagName('option');
				var value = '';
				for(var j=0;j<tab_option.length;j++)
					if(tab_option[j].selected == true)
						value += tab_option[j].value + '|';

				if(value != '') {
					tabName.push(element.name);
					tabValue.push(value);
				}
			}
			//LES AUTRES CAS
			else if(element.value != '') {
				tabName.push(element.name);
				tabValue.push(element.value);
			}
		}
		if(errorMessage.length == 0) { // SI LES DONNEES SONT TOUTES VALIDES
			// $('#'+idErrorField).html('');
			$('#'+idErrorField).hide();
			form.submit();
			return true;
		}
		else { // SI ERREUR IL Y A
			if(document.getElementById(idErrorField)) {
				var closeButtonText=$('#closeMsgBox').text();
				// var html = '<a href="javascript:document.getElementById(\'messerrok\').style.display=\'none\';" id="closeMsgBox" class="submitButton">'+closeButtonText+'</a>'
				var html = '<a href="#" id="closeMsgBox" class="button" onclick="document.getElementById(\''+idErrorField+'\').style.display=\'none\';">'+closeButtonText+'</a>';
				$('#'+idErrorField).html(customheaderErreur + errorMessage.split("\n").join("<br>\n") + html);
			}
			else {
				alert(errorMessage);
			}
			return false;
		}
	}
	if($.trim($('#messerrok').text()).length>20) {
		$('#messerrok').removeClass('err');
		$('#messerrok').addClass('ok');
		$('#messerrok').show();
		$('#closeMsgBox').show();
	}
	if($.trim($('#messerrokk').text()).length>20) {
		$('#messerrokk').removeClass('err');
		$('#messerrokk').addClass('ok');
		$('#messerrokk').show();
		$('#closeMsgBox').show();
	}
	// appel de la fonction sur le clic	
	$('#contactForm .submitButton').click(function() {
		if(submitForm('contactForm', '','fr','messerrok', 0) == false) {
			$('#messerrok').removeClass('ok');
			$('#messerrok').addClass('err');
			$('#messerrok').show();
			// $('#closeMsgBox').show();
			// $('#messerrok').fadeOut(7500);
		}
		return false;
	});
	$('#alertForm .submitButton').click(function() {
		if($('#surf_min_alert_int').attr('value')=='' || $('#surf_max_alert_int').attr('value')=='') {
			var closeButtonText=$('#closeMsgBox').text();
			var html = '<a href="#" id="closeMsgBox" class="button" onclick="document.getElementById(\'messerrok\').style.display=\'none\';">'+closeButtonText+'</a>';
			$('#messerrok').html("« Merci de remplir les champs obligatoires / Please fill the obligatory mentions »<br/>"+ html);
			$('#messerrok').removeClass('ok');
			$('#messerrok').addClass('err');
			$('#messerrok').show();
			return false;
		}
		if(submitForm('alertForm', '','fr','messerrok', 0) == false) {
			$('#messerrok').removeClass('ok');
			$('#messerrok').addClass('err');
			$('#messerrok').show();
 		}
		return false;
	});
	// appel de la fonction sur le clic	
	$('#searchForm .submitButton').click(function() {
		$('#searchForm').submit();
		return false;
	});
	$('#closeMoreFormBox').click(function() {
		$('#messerrok').removeClass('err');
		$('#messerrok').removeClass('ok');
		$('#messerrok').hide();
		$('#moreDetails').hide();
		return false;
	});
	$('#closeMsgBox').click(function() {
		$(this).parent().removeClass('err');
		$(this).parent().removeClass('ok');
		$(this).parent().hide();
		$(this).hide();
		return false;
	});
	$('#loginForm .submitButton').click(function() {
		if(submitForm('loginForm', '','fr','messerrok', 0) == false) {
			$('#messerrok').removeClass('ok');
			$('#messerrok').addClass('err');
			$('#messerrok').show();
		}
		return false;
	});
	// validation du formulaire #moreDetails
	$('#moreButton').click(function() {
		if(submitForm('moreDetails', '','fr','messerrokk', 0) == false) {
			$('#messerrokk').removeClass('ok');
			$('#messerrokk').addClass('err');
			$('#messerrokk').show();
		}
		return false;
	});
});

$(document).ready(function() {
	// makes a fding animation between 2 images
	function slideSwitch(selector, seconds) {
		/*
		// gets the currently displayed image
	    var $active = $(selector + ' a img.active');
		// gets the div which will contain the alt
		var $div = $(selector + ' div.alt');
	
		// if none found uses the last one of the list
	    if($active.length == 0) {
			$active = $(selector + ' a:last img');
		}
		// gets the next image to be displayed
		if($active.parent().next().find('img').length && $active.parent().next().attr('class')!='alt') {
			var $next = $active.parent().next().find('img');
		}
		else {
			var $next = $(selector + ' a:first img');
		}
		// display the content of alt parameter
		$div.html($next.attr('alt'));
		$div.css({top: + $active.height()});
		
		// add class previous to current active image in order to put it in the background of the appering $next one
		$active.addClass('previous');
		// make the next image transparent add active class to $next make it fadein through opacity changing over time removes classes of $active when done
		$next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, seconds*1000, function() {$active.removeClass('active previous');});
		*/
		$(selector + ' a img').hide();
		var $active = $(selector + ' a img.active');
		// gets the div which will contain the alt
		var $div = $(selector + ' div.alt');
	
		// if none found uses the last one of the list
	    if($active.length == 0) {
			$active = $(selector + ' a:last img');
		}
		// gets the next image to be displayed
		if($active.parent().next().find('img').length && $active.parent().next().attr('class')!='alt') {
			var $next = $active.parent().next().find('img');
		}
		else {
			var $next = $(selector + ' a:first img');
		}
		// display the content of alt parameter
		$div.html($next.attr('alt'));
		$div.css({top: + $active.height()});
		
		// add class previous to current active image in order to put it in the background of the appering $next one
		$active.addClass('previous');
		$active.removeClass('active');
		$next.addClass('active');
		$next.show();
		// make the next image transparent add active class to $next make it fadein through opacity changing over time removes classes of $active when done
		// $next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, seconds*1000, function() {$active.removeClass('active previous');});
	}

	// displays first image in #slideShowFrance and its reference
	$('#slideShowFrance a:first img').addClass('active');
	$('#slideShowFrance div.alt').css({top: + $('#slideShowFrance a img.active').height()});
	$('#slideShowFrance div.alt').html($('#slideShowFrance a img.active').attr('alt'));
	
	// displays first image in #slideShowInternational and its reference
	$('#slideShowInternational a:first img').addClass('active');
	$('#slideShowInternational div.alt').css({top: + $('#slideShowInternational a img.active').height()});
	$('#slideShowInternational div.alt').html($('#slideShowInternational a img.active').attr('alt'));
	
	// displays first image in #slideShowPrestige and its reference
	$('#slideShowPrestige a:first img').addClass('active');
	$('#slideShowPrestige div.alt').css({top: + $('#slideShowPrestige a img.active').height()});
	$('#slideShowPrestige div.alt').html($('#slideShowPrestige a img.active').attr('alt'));

	// starts the endless slideshow
	setInterval( function() {slideSwitch('#slideShowFrance',1);}, 5000);
	setInterval( function() {slideSwitch('#slideShowInternational',1);}, 5000);
	setInterval( function() {slideSwitch('#slideShowPrestige',1);}, 5000);
});

$(document).ready(function() {
	var razPaysAlert = function(e) {
		
	}
	var razVilleAlert = function(e) {
		
	}
	var razArrAlert = function(e) {
		
	}
	
	var razPays = function(e) {
		// alert($('#id_pays option:selected').attr('value'));
		// $('#id_pays_alert option[value="'+$('#id_pays option:selected').attr('value')+'"]').attr('selected','selected');
		// alert($('#id_pays_alert option:selected').attr('value'));
	}
	// initialise la liste des villes a partir des donnees fournies sous forme de liste par PHP au chargement de la page
	var razVille = function(e) {
		// suppression des toutes les villes
		$('#id_ville option').remove();
		$('#id_ville').append('<option value="">'+$('#ville_full_list li:first').text().split('#')[1]+'</option>');

		$('#id_ville_alert option').remove();
		$('#id_ville_alert').append('<option value="">'+$('#ville_full_list li:first').text().split('#')[1]+'</option>');
		// si un pays a prealablement ete selectionne (donnee issue de la soumission du formulaire et stocke en SESSION)
		if($('#id_pays option:selected').attr('value')!='') {
			// generation de la liste des options du select a partir de la liste #ville_full_list
			$('#ville_full_list li').each(function() {
				var data = $(this).text().split('#');
				var optionVille=data[1].split(' + ')[0];
				var optionPays=data[1].split(' + ')[1];
				// si la ville decrite est dans le pays selectionnee on l'ajoute a la liste
				if($('#id_pays option:selected').attr('value')!='' && $.trim(optionPays)==$('#id_pays option:selected').text()) {
					// si cette ville a ete prealablement selectionnee (donnee issue de la soumission du formulaire et stocke en SESSION)
					// l'element porte alors la class selected (attribuee via PHP)
					if($(this).attr('class')=='selected') {
						// on pre-selectionne cette option dans le menu deroulant
						$('#id_ville').append('<option value="'+data[0]+'" selected="selected">'+optionVille+'</option>');
						$('#id_ville_alert').append('<option value="'+data[0]+'" selected="selected">'+optionVille+'</option>');
					}
					else {
						$('#id_ville').append('<option value="'+data[0]+'">'+optionVille+'</option>');
						$('#id_ville_alert').append('<option value="'+data[0]+'">'+optionVille+'</option>');
					}
				}
			});
			$('#id_ville').parent().show();
			$('#id_ville_alert').parent().show();
		}
	}
	// initialise la liste des arrondissements a partir des donnees fournies sous forme de liste par PHP au chargement de la page
	var razArr = function(e) {
		// suppression des arrondissements
		// suppression des toutes les villes
		$('.listeArrondissement input[type=checkbox]').remove();
		$('.listeArrondissement label').remove();
		
		// si une ville a prealablement ete selectionne (donnee issue de la soumission du formulaire et stocke en SESSION)
		if($('#ville_full_list li.selected').text()!='') {
			// generation de la liste des options du select a partir de la liste #arrondissement_full_list
			$('#arrondissement_full_list li').each(function() {
				var data = $(this).text().split('#');
				var optionArr=data[1].split(' + ')[0];
				var optionVille=data[1].split(' + ')[1];
				// si l'arrondissement decrit est dans la ville selectionnee on l'ajoute a la liste
				if($('#ville_full_list li.selected').text()!='' && $.trim(optionVille)==$('#ville_full_list li.selected').text().split('#')[1].split(' + ')[0] && optionArr!='') {
					if($(this).attr('class')=='selected') {
						$('.listeArrondissement').append('<input type="checkbox" name="id_arrondissement[]" id="id_arrondissement'+data[0]+'" value="'+data[0]+'" checked="checked"><label for="id_arrondissement'+data[0]+'">'+optionArr+'</label>');
					}
					else {
						$('.listeArrondissement').append('<input type="checkbox" name="id_arrondissement[]" id="id_arrondissement'+data[0]+'" value="'+data[0]+'"><label for="id_arrondissement'+data[0]+'">'+optionArr+'</label>');
					}
				}
			});
			if($('.listeArrondissement input[type=checkbox]').length>0) {
				$('.listeArrondissement').show();
			}
		}
	}
	// modification des choix geographiques proposes en fonction du pays chois par l'internaute
	var changePays = function(e) {
		// suppression des villes dans le formulaire de recherche
		$('#id_ville').parent().hide();
		$('#id_ville option').remove();
		$('#id_ville').append('<option value="">'+$('#ville_full_list li:first').text().split('#')[1]+'</option>');
		
		// suppression des arrondissements dans le formulaire de recherche
		$('.listeArrondissement').hide();
		$('.listeArrondissement input[type=checkbox]').remove();
		$('.listeArrondissement label').remove();

		
		// generation de la liste des options du select a partir de la liste #ville_full_list
		$('#ville_full_list li').each(function() {
			// alert($(this).text());
			var data = $(this).text().split('#');
			var optionVille=data[1].split(' + ')[0];
			var optionPays=data[1].split(' + ')[1];
			if(($('#id_pays option:selected').attr('value')!='' && $.trim(optionPays)==$('#id_pays option:selected').text())) {
				// alert(optionVille);
				$('#id_ville').append('<option value="'+data[0]+'">'+optionVille+'</option>');
			}
		});
		$('#id_ville').parent().show();
	}
	var changePaysAlert = function(e) {
		// dans le formulaire d'enregistrement des alertes
		if($('#id_ville_alert')) {
			$('#id_ville_alert').parent().hide();
			$('#id_ville_alert option').remove();
			$('#id_ville_alert').append('<option value="">'+$('#ville_alert_full_list li:first').text().split('#')[1]+'</option>');
		}
		// suppression des arrondissements dans le formulaire d'enregistrement des alertes
		$('.listeArrondissementAlert').hide();
		$('.listeArrondissementAlert input[type=checkbox]').remove();
		$('.listeArrondissementAlert label').remove();

		
		// generation de la liste des options du select a partir de la liste #ville_full_list
		$('#ville_alert_full_list li').each(function() {
			// alert($(this).text());
			var data = $(this).text().split('#');
			var optionVille=data[1].split(' + ')[0];
			var optionPays=data[1].split(' + ')[1];
			if(($('#id_pays_alert option:selected').attr('value')!='' && $.trim(optionPays)==$('#id_pays_alert option:selected').text())) {
				$('#id_ville_alert').append('<option value="'+data[0]+'">'+optionVille+'</option>');
			}
			// $('#id_pays_alert option[value="'+$('#id_pays_alert option:selected').attr('value')+'"]').attr('selected','selected');
		});
		$('#id_ville_alert').parent().show();
	}

	var changeVille = function(e) {
		// suppression des toutes les arrondissements
		$('.listeArrondissement input[type=checkbox]').remove();
		$('.listeArrondissement label').remove();

		// generation de la liste des checkbox a partir de la liste #arrondissement_full_list
		$('#arrondissement_full_list li').each(function() {
			var data = $(this).text().split('#');
			var optionArr=data[1].split(' + ')[0];
			var optionVille=data[1].split(' + ')[1];
			
			
			if($('#id_ville option:selected').attr('value')!='' && $.trim(optionVille)==$('#id_ville option:selected').text().split(' + ')[0] && optionArr!='') {
				if($(this).attr('class')=='selected') {
					$('.listeArrondissement').append('<input type="checkbox" name="id_arrondissement[]" id="id_arrondissement'+data[0]+'" value="'+data[0]+'" checked="checked"><label for="id_arrondissement'+data[0]+'">'+optionArr+'</label>');
				}
				else {
					$('.listeArrondissement').append('<input type="checkbox" name="id_arrondissement[]" id="id_arrondissement'+data[0]+'" value="'+data[0]+'"><label for="id_arrondissement'+data[0]+'">'+optionArr+'</label>');
				}
			}

		});
		if($('#id_ville option:selected').attr('value')=='' || $('.listeArrondissement input').length==0) {
			$('.listeArrondissement').hide();
		}
		else {
			$('.listeArrondissement').show();
		}
		$('#id_ville').parent().show();
		if($('#id_ville option:selected').attr('value')=='' || $('.listeArrondissement input').length==0) {
			$('.listeArrondissement').hide();
		}
		else {
			$('.listeArrondissement').show();
		}
	}
	var changeVilleAlert = function(e) {
		// suppression des toutes les arrondissements
		$('.listeArrondissementAlert input[type=checkbox]').remove();
		$('.listeArrondissementAlert label').remove();

		// generation de la liste des checkbox a partir de la liste #arrondissement_full_list
		$('#arrondissement_alert_full_list li').each(function() {
			var data = $(this).text().split('#');
			var optionArr=data[1].split(' + ')[0];
			var optionVille=data[1].split(' + ')[1];
			
			
			if($('#id_ville_alert option:selected').attr('value')!='' && $.trim(optionVille)==$('#id_ville_alert option:selected').text().split(' + ')[0] && optionArr!='') {
				if($(this).attr('class')=='selected') {
					$('.listeArrondissementAlert').append('<input type="checkbox" name="id_arrondissement[]" id="id_arrondissement'+data[0]+'" value="'+data[0]+'" checked="checked"><label for="id_arrondissement'+data[0]+'">'+optionArr+'</label>');
				}
				else {
					$('.listeArrondissementAlert').append('<input type="checkbox" name="id_arrondissement[]" id="id_arrondissement'+data[0]+'" value="'+data[0]+'"><label for="id_arrondissement'+data[0]+'">'+optionArr+'</label>');
				}
			}
		});
		if($('#id_ville_alert option:selected').attr('value')=='' || $('.listeArrondissementAlert input').length==0) {
			$('.listeArrondissementAlert').hide();
		}
		else {
			$('.listeArrondissementAlert').show();
		}
		$('#id_ville_alert').parent().show();
		if($('#id_ville_alert option:selected').attr('value')=='' || $('.listeArrondissementAlert input').length==0) {
			$('.listeArrondissementAlert').hide();
		}
		else {
			$('.listeArrondissementAlert').show();
		}
	}
	var changeType = function(e) {
		var index=0;
		// suppression des toutes les sous-type
		$('#id_sous_type_bien option').remove();

		$('#id_sous_type_bien').append('<option value="">'+$('#id_sous_type_bien_full_list li:first').text().split('#')[1]+'</option>');
		// generation de la liste des options du select a partir de la liste #ville_full_list

		$('#id_sous_type_bien_full_list li').each(function() {
			var data = $(this).text().split('#');
			var optionCat=data[1].split(' + ')[0];
			var optionType=data[1].split(' + ')[1];
			if($('#id_type_bien option:selected').attr('value')!='' && $.trim(optionType)==$('#id_type_bien option:selected').text().split(' + ')[0]) {
				$('#id_sous_type_bien').append('<option value="'+data[0]+'">'+optionCat+'</option>');
				if($(this).attr('class')=='selected') {
					$('#id_sous_type_bien select option:last').attr('selected','selected');
				}
			}
		});
		if($('#id_type_bien option:selected').attr('value')=='' || $('#id_sous_type_bien select option').length==1) {
			$('#id_sous_type_bien').parent().hide();
		}
		else {
			$('#id_sous_type_bien').parent().show();
		}
	}
	$('#id_sous_type_bien').parent().hide();
	$('#id_ville').parent().hide();
	$('#id_ville_alert').parent().hide();
	$('.listeArrondissement').hide();
	
	razPays();
	razVille();
	razArr();
	changeType();
	$('#id_pays').bind('change',changePays);
	$('#id_ville').bind('change',changeVille);
	$('#id_type_bien').bind('change',changeType);

	$('#id_pays_alert').bind('change',changePaysAlert);
	$('#id_ville_alert').bind('change',changeVilleAlert);
	
	// on cache le menu permettant le choix du type de location si l'on est en mode vente.
	if($('#id_type_transaction').attr('value')==1) {
		$('#id_type_location').parent().hide();
	}
	$('div.info').each(function () {
		var first=$(this).find('div.value:first').text();
		if(first=='0' || first=='' || first==' --- AUCUN ---' || first=='--- AUCUN ---' || first=='--- NO SELECTION ---' || first==' --- NO SELECTION ---') {
			// $(this).hide();
			$(this).addClass('hidden');
		}
		else {
			if($(this).find('div.value:first').attr('alt')) {
				var text=$(this).find('div.value:first').text();
				// text=text + ' ' + $(this).find('div.value:first').attr('alt');
				if($(this).find('div.value:first').attr('id')!='--- AUCUN ---') {
					text=text + ' ' + $(this).find('div.value:first').attr('id');
				}
				$(this).find('div.value:first').text(text);
			}
		}
	});
	if($('p.comment').html()=='') $('p.comment').attr('style','visibility:hidden;');
	$('.hidden').remove();
});

$(document).ready(function() {

	var changeUrlData = function(url, param, newValue) {
		if(url.match('&'+param+'\=')) {
			var oldValue=url.charAt(url.indexOf('&'+param+'=')+param.length);
			var search = param+'\='+oldValue;
			var replace = param+'\='+newValue;
			return url.replace(search,replace);
		}
		else {
			return url+'&'+param+'='+newValue;
		}
	}
	
	// ouverture de la fenetre flottante
	$('a.foreignKey').click(function() {
		$('#floatingDivMain').attr('src',$(this).attr('href'));
		$('#floatingDivContent div.handle').html($(this).attr('title'));
		$('#floatingDiv').show();
		$('#floatingDivContent').show();
		return false;
	});
	
	$('a._bckffcActionView').click(function() {
		$('#floatingDivMain').attr('src',$(this).attr('href'));
		// $('#floatingDivContent div.handle').html($(this).attr('title'));
		$('#floatingDiv').show();
		$('#floatingDivContent').show();
		return false;
	});
	
	// fermeture de la fenetre flottante
	$('#floatingDivContent div.close a').click(function() {
		var url=$(this).attr('href');

		url = changeUrlData(url, 'action','edit');

		url = changeUrlData(url, 'save','true');
		if($('#id').attr('value')) {
			url = changeUrlData(url, 'id',$('#id').attr('value'));
		}
		$('#floatingDiv').hide();
		$('#floatingDivContent').hide();
		$('#bckffcForm').attr('action',url);
		$('#bckffcForm').submit();
		// document.getElementById('bckffcForm').submit();
		return false;
	});
	
	$('li.bilanAnnuel a').click(function() {
		$('#floatingDivMain').attr('src',$(this).attr('href'));
		$('#floatingDivContent div.handle').html($(this).attr('title'));
		$('#floatingDiv').show();
		$('#floatingDivContent').show();
		return false;
	});

	// fermeture de la fenetre flottante
	$('#lightBoxContent div.return').click(function() {
		$('#lightBox').hide();
		$('#lightBoxContent').hide();
	});
});

$(document).ready(function() {
	
	$('ul.photoList').each(function () {
		$(this).find('li:last').attr('class','prev');
		$(this).find('li:first').attr('class','selected');
		$(this).find('li:first img').attr('class','selected');
		$(this).find('li:eq(1)').attr('class','next');
	});

	$('ul.photoList li img').click(function () {
		$(this).parent().parent().find('li').removeAttr('class');
		$(this).parent().parent().find('li').removeAttr('class');
		$(this).parent().parent().find('li').removeAttr('class');
		
		$(this).parent().parent().find('li img').removeAttr('class');
		
		var index=$('ul.photoList li img').index(this);
		// gestion de la class de l'element predecent
		if(index>0) {
			$('ul.photoList li:eq('+(index-1)+')').attr('class','prev');
		}
		else {
			$('ul.photoList li:last').attr('class','prev');
		}
		// gestion de la class de l'element suivant
		if((index+1)<$('ul.photoList li').length) {
			$('ul.photoList li:eq('+(index+1)+')').attr('class','next');
		}
		else {
			$('ul.photoList li:first').attr('class','next');
		}
		// changement de la grande image
		$(this).parent().parent().parent().find('img.zoom').attr('src',$(this).attr('src'));

		// marqueur de la photo en cours d'affichage en zoom
		$(this).addClass('selected');
		$(this).parent().addClass('selected');
	});
	$('ul.photoList li a').lightBox({
			overlayOpacity: 1.0,
			imageLoading: 'http://alma-immobilier.com/media/_images/lightbox-ico-loading.gif',
			imageBtnClose: 'http://alma-immobilier.com/media/_images/lightbox-btn-close.gif',
			imageBtnPrev: 'http://alma-immobilier.com/media/_images/lightbox-btn-prev.gif',
			imageBtnNext: 'http://alma-immobilier.com/media/_images/lightbox-btn-next.gif'
	});
	// ouverture de la "lightBox"
/*
	$('img.zoom').click(function() {
		// recuperation de l'image en cours
		var $active=$('ul.photoList li img.selected');

		$('#lightBoxMain a.prev').attr('href',$('ul.photoList li.prev img').attr('src'));
		$('#lightBoxMain a.next').attr('href',$('ul.photoList li.next img').attr('src'));
		
		var smallSrc=$(this).attr('src');
		var zoomFile='../media/800x600'+smallSrc.substring(smallSrc.lastIndexOf('/'),smallSrc.length);
		
		$('#lightBoxMain').css('background-image', 'url('+zoomFile+')');
		// $('#floatingDivContent div.handle').html($(this).attr('title'));
		$('#lightBox').show();
		$('#lightBoxContent').show();
		return false;
	});
	$('a.prev').click(function(){
		var smallSrc=$(this).attr('href');
		var zoomFile='../media/800x600'+smallSrc.substring(smallSrc.lastIndexOf('/'),smallSrc.length);
		
		$('#lightBoxMain').css('background-image', 'url('+zoomFile+')');
		$('img.zoom').attr('src',$(this).attr('href'));
		// suppression des class sur les elements selected
		$('ul.photoList li.selected img').removeAttr('class');
		$('ul.photoList li.selected').removeAttr('class');
		// suppresion des class sur les element next qui seront redefini plus tard
		$('ul.photoList li.next img').removeAttr('class');
		$('ul.photoList li.next').removeAttr('class');
		// l'element prev devient l'element selected
		$('ul.photoList li.prev img').attr('class','selected');
		$('ul.photoList li.prev').attr('class','selected');

		$('ul.photoList li').each(function(){
			if($(this).hasClass('selected')) {
				var index=$('ul.photoList li').index(this);
				// calcul de l'image precedente
				if(index>0) {
					$('ul.photoList li:eq('+(index-1)+')').attr('class','prev');
				}
				else {
					$('ul.photoList li:last').attr('class','prev');
				}
				// calcul de l'image suivante
				if((index+1)<$('ul.photoList li').length) {
					$('ul.photoList li:eq('+(index+1)+')').attr('class','next');
				}
				else {
					$('ul.photoList li:first').attr('class','next');
				}
			}
		});
		
		$('#lightBoxMain a.next').attr('href',$('ul.photoList li.next img').attr('src'));
		$(this).attr('href',$('ul.photoList li.prev img').attr('src'));
		return false;
	});

	$('a.next').click(function() {
		var smallSrc=$(this).attr('href');
		var zoomFile='../media/800x600'+smallSrc.substring(smallSrc.lastIndexOf('/'),smallSrc.length);
		
		$('#lightBoxMain').css('background-image', 'url('+zoomFile+')');
		$('img.zoom').attr('src',$(this).attr('href'));
		// suppression des class sur les elements selected
		$('ul.photoList li.selected img').removeAttr('class');
		$('ul.photoList li.selected').removeAttr('class');
		
		// suppresion des class sur les element prev qui seront redefini plus tard
		$('ul.photoList li.prev img').removeAttr('class');
		$('ul.photoList li.prev').removeAttr('class');
		// l'element next devient l'element selected
		$('ul.photoList li.next img').attr('class','selected');
		$('ul.photoList li.next').attr('class','selected');
		
		$('ul.photoList li').each(function(){
			if($(this).hasClass('selected')) {
				var index=$('ul.photoList li').index(this);
				// calcul de l'image precedente
				if(index>0) {
					$('ul.photoList li:eq('+(index-1)+')').attr('class','prev');
				}
				else {
					$('ul.photoList li:last').attr('class','prev');
				}
				// calcul de l'image suivante
				if((index+1)<$('ul.photoList li').length) {
					$('ul.photoList li:eq('+(index+1)+')').attr('class','next');
				}
				else {
					$('ul.photoList li:first').attr('class','next');
				}
			}
		});
		
		$('#lightBoxMain a.prev').attr('href',$('ul.photoList li.prev img').attr('src'));
		$(this).attr('href',$('ul.photoList li.next img').attr('src'));
		return false;
	});
*/
	$('#listeInfo li a').each(function () {
		if($(this).attr('href')=='#') $(this).attr('class','hidden');
	});
});

$(document).ready(function() {
	var changeUrlData = function(url, param, newValue) {
		if(url.match('&'+param+'\=')) {
			var oldValue=url.charAt(url.indexOf('&'+param+'=')+8);
			var search = param+'\='+oldValue;
			var replace = param+'\='+newValue;
			return url.replace(search,replace);
		}
		else {
			return url+'&'+param+'='+newValue;
		}
		
	}
	var selectOnglet = function(ongletIndex) {
		// changement du focus de l'onglet
		$('#onglets ul li').removeClass('on');
		$('#onglets ul li:eq('+(ongletIndex-1)+')').addClass('on');

		// affichage de la partie correspondante du formulaire
		$('div.onglet').addClass('hidden');
		$('div.onglet:eq('+(ongletIndex-1)+')').removeClass('hidden');
	}
	
	var ongletIndex=1;
	// generation s'il y a lieu de la liste des onglets
	if($('div.onglet').length>1) {
		selectOnglet(ongletIndex);
	}
	// lorsque l'on clique sur un onglet
	$('#onglets ul li').click(function () {
		ongletIndex=$("#onglets ul li").index(this)+1;
		selectOnglet(ongletIndex);
	});
	$('#selectionList li ul.resultList').hide();
	
	$('#selectionList li h2').click(function() {
		var list=$(this).parent().find('ul.resultList');
		list.slideDown('slow');
	});
	var test=$('div.detailBien div.left a.backButton').attr('alt');
	$('div.detailBien div.left a.addToSelection').hide();
	if(test=='[GET:key]') $('div.detailBien div.left a.addToSelection').show();

});

$(document).ready(function() {
	$('img.gesSmall').click(function() {
		$('#ges').show();
	});
	$('img.energySmall').click(function() {
		$('#energy').show();
	});
	$('#ges a.close').click(function(){
		$('#ges').hide();
	});
	$('#energy a.close').click(function(){
		$('#energy').hide();
	});
	
	$('a.moreButton').click(function(){
		$('#moreDetails').show();
	});
	
	if($('#ges').attr('class')=='gesClass0') {
		$('img.gesSmall').parent().hide();
	}
	if($('#energy').attr('class')=='energyClass0') {
		$('img.energySmall').parent().hide();
	}
});

