// Liste des départements
// Eric Quillévéré 2008-09

/*jsl:import ../../charte/js/js_rewrite.js */
/*jsl:import ../../charte/js/js_rewrite_1-02.js */
/*jsl:import ../../charte/js/1-effets.js */
var timeoutRecherche=null;
var rechEnCours=false;
var AjaxAnnuleDemande=false;
var AjaxEnCours=null;

// Mémorise les zones pour éviter des appels inutiles
var rech_TypeLogement=null;
var rech_RegionDept=null;
var rech_Ville=null;

var objAttente=null;


var tabRegions=new Array;
tabRegions=Array('Alsace', 'Aquitaine', 'Auvergne', 'Basse-Normandie', 'Bourgogne', 'Bretagne', 'Centre',
	'Champagne-Ardenne', 'Corse','Franche-Comté', 'Haute-Normandie', 'Ile-de-France',
	'Languedoc-Roussillon', 'Limousin', 'Lorraine', 'Midi-Pyrénées', 'Nord-Pas-de-Calais',
	'Pays-de-la-Loire', 'Picardie', 'Poitou-Charentes', 'Provence-Alpes-Cote-d-Azur',
	'Rhône-Alpes','Outre-mer');

var tabDep=new Array; 
tabDep=Array(['01', 'Ain',21], 	['02', 'Aisne',18],  ['03', 'Allier',2], ['04', 'Alpes de Haute-Provence',20],  
	['05', 'Alpes Maritimes',20],  ['06', 'Hautes-Alpes',20], ['07', 'Ardèche',21],   ['08', 'Ardennes',7],  
	['09', 'Ariège',15],   ['10', 'Aube',7],  ['11', 'Aude',12],  ['12', 'Aveyron',15],  ['13', 'Bouches du Rhône',20],   
	['14', 'Calvados',3],  ['15', 'Cantal',2],  ['16', 'Charente',19],   ['17', 'Charente Maritime',19],  ['18', 'Cher',6],  
	['19', 'Correze',13],  ['2A', 'Corse du Sud',8],  ['2B', 'Haute-Corse',8],   ['21', 'Côte d\'or',4],   ['22', 'Côte d\'armor',5],  
	['23', 'Creuse',13],  ['24', 'Dordogne',1],  ['25', 'Doubs',9],   ['26', 'Drôme',21],  ['27', 'Eure',10],  ['28', 'Eure-et-Loir',6],  
	['29', 'Finistère',5],  ['30', 'Gard',12],  ['31', 'Haute-Garonne',15],  ['32', 'Gers',15],  ['33', 'Gironde',1],   
	['34', 'Hérault',12],  ['35', 'Ille-et-Vilaine',5],   ['36', 'Indre',6],  ['37', 'Indre-et-Loire',6],  ['38', 'Isère',21],  
	['39', 'Jura',9],   ['40', 'Landes',1],  ['41', 'Loir-et-Cher',6],   ['42', 'Loire',21],  ['43', 'Haute-Loire',2],  
	['44', 'Loire Atlantique',17],  ['45', 'Loiret',6],   ['46', 'Lot',15],  ['47', 'Lot-et-Garonne',1],  ['48', 'Lozère',12],  
	['49', 'Maine-et-Loire',17],   ['50', 'Manche',3],  ['51', 'Marne',7],  ['52', 'Haute Marne',7],  ['53', 'Mayenne',17],  
	['54', 'Meurthe-et-Moselle',14],   ['55', 'Meuse',14],  ['56', 'Morbihan',5],  ['57', 'Moselle',14],   ['58', 'Nièvre',4],  
	['59', 'Nord',16],  ['60', 'Oise',18],  ['61', 'Orne',3],  ['62', 'Pas-de-Calais',16],  ['63', 'Puy-de-Dôme',2],  
	['64', 'Pyrénées Atlantiques',1],  ['65', 'Hautes Pyrénées',15],  ['66', 'Pyrénées Orientales',12],  ['67', 'Bas-Rhin',0],  
	['68', 'Haut-Rhin',0],  ['69', 'Rhône',21],  ['70', 'Haute-Saône',9],  ['71', 'Saône-et-Loire',4],  ['72', 'Sarthe',17],  
	['73', 'Savoie',21],  ['74', 'Haute-Savoie',21],  ['75', 'Paris',11],  ['76', 'Seine-Maritime',10],  ['77', 'Seine-et-Marne',11],  
	['78', 'Yvelines',11],  ['79', 'Deux-Sèvres',19],  ['80', 'Somme',18],  ['81', 'Tarn',15],  ['82', 'Tarn-et-Garonne',15],  
	['83', 'Var',20],  ['84', 'Vaucluse',20],  ['85', 'Vendée',17],  ['86', 'Vienne',19],  ['87', 'Haute-Vienne',13],  
	['88', 'Vosges',14],  ['89', 'Yonne',4],  ['90', 'Territoire-de-Belfort',9],  ['91', 'Essonne',11],  ['92', 'Hauts-de-Seine',11],  
	['93', 'Saint-Denis',11],  ['94', 'Val-de-Marne',11],  ['95', 'Val d\'Oise',11], ['00', 'Dom-Tom', 22]);

// Renvoie la liste des régions	
function afficheRegions(nomobjRegion, numRegionSelectionner, numDeptSelectionner)
	{
	
	var objRegion=obj(nomobjRegion);
	

	var elem=document.createElement('option');
	objRegion.appendChild(elem);	
	//elem.innerHTML=' Choisissez une localisation';
	//elem.value=0; elem.selected=true;		

	var i;
	for (i=0;i<tabRegions.length;i++)
		{
		elem=document.createElement('option');
		objRegion.appendChild(elem);	
		elem.value='R' + (i+1);	
		elem.innerHTML=tabRegions[i];	
		elem.className='styleRegion';
		
		// Sélection par défaut de la région
		if (i==numRegionSelectionner-1) 
			elem.selected=true;		
		
		afficheDepartements(objRegion, i, elem.value, numDeptSelectionner);
		

		}	
		
	// Supprime la première option si vide (un SELECT vide crée automatiquement une option)
	i=0;
	var trouveOption=false;
	while (i<2 && !trouveOption)
		{
		if (objRegion.childNodes[i].nodeType==1 && objRegion.childNodes[i].nodeName.toLowerCase()=='option')
			{
			if (objRegion.childNodes[i].value==='')
				obj_Detruit(objRegion.childNodes[i]);
			trouveOption=true;
			}
		else
			i++;
		}
	
	}
	
	
	
// Renvoie la liste des régions	
function afficheDepartements(objRegion, numRegion, valeurRegion, numDeptSelectionner)
	{

	for (var i=0;i<tabDep.length;i++)
		{
		var infosDep=tabDep[i];
		
		if (numRegion==infosDep[2])
			{
			var elem=document.createElement('option');
			objRegion.appendChild(elem);	
			
			var nomDepartement=infosDep[1];
			if (!navig_Firefox) nomDepartement='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + nomDepartement;
			elem.className='styleDepartement';
			elem.value='D' + infosDep[0] + '-' + valeurRegion + '-'+tabRegions[numRegion];	
			elem.innerHTML=nomDepartement;	
			
			// Sélection par défaut de la région
			if (numDeptSelectionner==parseInt(infosDep[0]) && numDeptSelectionner!=='') 
				elem.selected=true;
			
			}
		}
	}	
	
// Renvoi vrai si c'est une région qui est sélectionnée
function estRegion()	
	{
	if (document.formulaire.region.value!==0)
		return (document.formulaire.region.value.substring(0,1)=='R');
	else
		return false;
	}
	
// Renvoi vrai si c'est un département qui est sélectionné
function estDepartement()	
	{
	if (document.formulaire.region.value!==0)
		return (document.formulaire.region.value.substring(0,1)=='D');
	else
		return false;
	}	
	
// Valide la recherche	
function rechercheVerifier(faireVerif, opt_faireVerifCalendrier)
	{
	if (nonDef(opt_faireVerifCalendrier)) opt_faireVerifCalendrier=false;
	if (!estRegion() && !estDepartement())
		{
		return false;
		}
		
	else if (document.formulaire.villeLocation.value.length>=1 && document.formulaire.villeLocation.value.length<3 && estDepartement() )
		return false;

	else if (document.formulaire.cleVille.value.length<1  && document.formulaire.villeLocation.value.length>=1 && estDepartement() )
		{
		alert('La ville doit être choisie parmi celles proposées dans la boîte déroulante.');
		document.formulaire.villeLocation.focus();
		return false;
		}
		
	else
		{
		// Y a-t-il du changement ?
		if (faireVerif)
			{
			if (rech_TypeLogement==document.formulaire.typeLocation.value &&
				rech_RegionDept==document.formulaire.region.value &&
				rech_Ville==document.formulaire.villeLocation.value)
				{
				return false;
				}
			}
			
		// Vérifie qu'une date a bien été entrée
		if (opt_faireVerifCalendrier)
			{
			var dateDebut=dateDebut=obj('dateDebut').value;
			if (dateDebut==='')
				{
				alert('La date de début doit être sélectionnée pour ce filtre.');
				return false;
				}
			}
		
		rech_TypeLogement=document.formulaire.typeLocation.value;
		rech_RegionDept=document.formulaire.region.value;
		rech_Ville=document.formulaire.villeLocation.value;
		
		
		return true;
		}
	}

function rechercheEffectuer(faireVerifValeurs, opt_faireVerifCalendrier)
	{
	if (AjaxEnCours) 
		{
		AjaxAnnuleDemande=true;
		AJAX_Annule	(AjaxEnCours);
		AjaxEnCours=null;
		rechercheRetourAjax('');
		}
		
	if (rechercheVerifier(faireVerifValeurs, opt_faireVerifCalendrier)) 
		{
		if (timeoutRecherche!==null) clearTimeout(timeoutRecherche);
		
		timeoutRecherche=setTimeout(rechercheEffectuer_Immediat,400);
		}
	}
	
function rechercheEffectuer_Immediat()
	{
	var resultats=obj('resultatLocation');
	obj_Opacite_Fixe(resultats,50);
	objAttente=obj_CreeDiv(document.body, true, 'chargement');
	var posResult=obj_PosAbs_Renvoie(resultats);
	var tailleResult=obj_Taille_Renvoie(resultats);
	var posAttente=obj_Taille_Renvoie(objAttente);
	objAttente.style.position='absolute';
	
	objAttente.innerHTML='Recherche des locations en cours...';

	objAttente.style.left=(posResult.gauche+((tailleResult.largeur-posAttente.largeur)/2))+'px';
	objAttente.style.top=(posResult.haut+ 100) + 'px';
	obj_Affiche(objAttente);
	
	var prixMini='';
	var prixMaxi='';
	var dateDebut=dateDebut=obj('dateDebut').value;
	var nbSemaines='';
	
	if (dateDebut!=='')
		{
		prixMini=document.formulaire.prixMini.value;
		prixMaxi=document.formulaire.prixMaxi.value;			
		nbSemaines=document.formulaire.nbSemaines.value;
		}
	
	var nomRegionDept=document.formulaire.region.options[document.formulaire.region.selectedIndex].text;
	nomRegionDept=nomRegionDept.replace(/\xA0/g,''); // Supprime les &nbsp;

	var params={
		numRegionDept:document.formulaire.region.value,
		nomRegionDept:nomRegionDept,

		nomVille:document.formulaire.villeLocation.value,
		inseeVille:document.formulaire.cleVille.value,
		
		typeLocation:document.formulaire.typeLocation.value,

		nbPersonnesMini:document.formulaire.nbPersonnesMini.value,
		nbPersonnesMaxi:document.formulaire.nbPersonnesMaxi.value,



		handi:document.formulaire.handi.checked?1:0,
		piscine:document.formulaire.piscine.checked?1:0,
		animaux:document.formulaire.animaux.checked?1:0,
		internet:document.formulaire.internet.checked?1:0,
		
		tri:document.formulaire.triResultLoc.value,
		
		prixMini:prixMini,
		prixMaxi:prixMaxi,			
		dateDebut:dateDebut,
		nbSemaines:nbSemaines
		
		};
		/*
	var listeParams='';
	
	
	var i=0;
	for (var cle in params) 
		{
		if (i!==0) listeParams+='|';
		listeParams+= cle + "=" + params[cle];
		i++;
		}*/
	rechEnCours=true;

	AjaxAnnuleDemande=false;
	AjaxEnCours=AJAX_Appel({page:'/locations_vacances/locationsListe.php',paramsEntree:params, opt_fonctionRetour:rechercheRetourAjax}, true);
	}
	
function rechercheRetourAjax(reponse)	
	{
	AjaxEnCours=null;
	rechEnCours=false;
	obj_Detruit(objAttente);
	if (!AjaxAnnuleDemande)
		{
		obj('resultatLocation').innerHTML=reponse;
		obj_Opacite_Fixe(obj('resultatLocation'),100);
		
		// Traduction automatique ?
		traduction_lectureCookie();
		}
	}
	

	
// Affiche les flèches de défilement	
var numPhotoDeb=1;
var nbPhotosAff=2;
var defilEnCours=false;
var idPhotoSel;
function listePhotos_init(idPhoto, nbPhotosTotal, idCadrePhotoGrand)
	{

	// Positionne les images
	var posX=0;
	idPhotoSel=idPhoto+'1'; // la première photo est sélectionnée
	for (var i=1;i<=nbPhotosTotal;i++)
		{
		var objPhoto=obj(idPhoto+i);
		if (objPhoto.id==idPhotoSel) objPhoto.style.border='1px solid #C4C4C4';
		//objet_PositionnementAuto(objPhoto,posX,)
		objPhoto.parentNode.style.position = 'absolute';
		objPhoto.parentNode.style.left=posX+'px';
		objPhoto.parentNode.style.top='0px';
		
		var taillePhoto=obj_Taille_Renvoie(objPhoto.parentNode);
		posX+=taillePhoto.largeur;
		
		// Change la photo	
		objPhoto.onclick=function()
			{
			obj(idPhotoSel).style.border='';
			idPhotoSel=this.id;
			obj(idPhotoSel).style.border='1px solid #C4C4C4';
			var objPhotoGrande=obj(idCadrePhotoGrand);
			if (objPhotoGrande) objPhotoGrande.src=this.src;
			};
		objPhoto.onmouseover=objPhoto.onclick;
		}
		
	
	if (nbPhotosTotal<nbPhotosAff) return;
	}
	
function listePhotos_afficheFleches(tabParams)
	{	
	var idConteneur=tabParams[0], 
		idPrecedent=tabParams[1], idSuivant=tabParams[2], idPhoto=tabParams[3], 
		nbPhotosTotal=tabParams[4],
		flgGaucheDecalX=tabParams[5], flgGaucheDecalY=tabParams[6], 
		flgDroiteDecalX=tabParams[7], flgDroiteDecalY=tabParams[8],
		idCadrePhotoGrand=tabParams[9];	
	
	var objConteneur=obj(idConteneur);

	var margesG=0;
	var margesH=0;
	
	var posConteneur=obj_PosAbs_Renvoie(objConteneur.offsetParent);
	var tailleConteneur=obj_Taille_Renvoie(objConteneur.offsetParent);	
	var posY=posConteneur.haut-margesH;
	
	var tailleContent=obj_Pos_Renvoie(obj('allcontent'));
	
	// Affiche la flèche droite
	var objSuivant=obj(idSuivant);
	if (numPhotoDeb+nbPhotosAff<=nbPhotosTotal)
		{
		if (!ie) obj_Opacite_Fixe(objSuivant,100);
		obj_Affiche(objSuivant);
		var tailleSuivant=obj_Taille_Renvoie(objSuivant);
		obj_Pos_Fixe(objSuivant, posConteneur.gauche-tailleContent.gauche+tailleConteneur.largeur-tailleSuivant.largeur-margesG+flgDroiteDecalX, posY+flgDroiteDecalY);
		objSuivant.onclick=function()
			{
			listePhotos_defilement(true, tabParams);
			};
		}
	else
		{
		if (ie)
			obj_Cache(objSuivant);
		else
			objSuivant.anime ({'opacity':{decrementer:true}, duree:400});
		}
		
	// Affiche la flèche gauche
	var objPrecedent=obj(idPrecedent);
	if (numPhotoDeb>1)
		{
		if (!ie) obj_Opacite_Fixe(objPrecedent,100);
		obj_Affiche(objPrecedent);
		//var taillePrecedent=objet_TailleRenvoie(objPrecedent);
		

		obj_Pos_Fixe(objPrecedent, posConteneur.gauche-tailleContent.gauche-margesG+flgGaucheDecalX, posY+flgGaucheDecalY);
		
		objPrecedent.onclick=function()
			{
			listePhotos_defilement(false, tabParams);
			};
		}
	else
		{
		if (ie) 
			obj_Cache(objPrecedent);
		else
			obj(idPrecedent).anime({'opacity':{decrementer:true}, duree:500});
		}
		
	}
	
// Fait défiler la liste des photos
function listePhotos_defilement(versDroite, tabParams)	
	{
	// Désactive les click
	var idConteneur=tabParams[0], 
		idPrecedent=tabParams[1], idSuivant=tabParams[2], idPhoto=tabParams[3];
		
	var objSuivant=obj(idSuivant);
	var objPrecedent=obj(idPrecedent);
	objSuivant.onclick=function(){};
	objPrecedent.onclick=function(){};
	
	var posX;
	var objPhoto;
	if (versDroite)
		numPhotoDeb++;
	else
		numPhotoDeb--;
		
	// Récupère la photo
	objPhoto=obj(idPhoto+numPhotoDeb);
	var taillePhoto=obj_Pos_Renvoie(objPhoto.offsetParent);
	posX=-taillePhoto.gauche;
	
	//obj(idConteneur).pos_Fixe(posX);
	obj(idConteneur).anime({'left':{fin:posX, fontion:'fnInOutQuint'}, duree:300, fonctionFin:function()
			{
			listePhotos_afficheFleches(tabParams);
			}});	
	
	}

