var nbpart = 0;
var id_rech_ville = "";
var http_getidrechVille = getHTTPObject();
var http_multiple_ville = getHTTPObject();
var http_init_XML = getHTTPObject();
var http_getidrech = getHTTPObject();
var http_majprixmini = getHTTPObject();
var http_lecteur_ville1 = getHTTPObject();
var http_lecteur_ville2 = getHTTPObject();
var http_lecteur_ville3 = getHTTPObject();
var http_lecteur_ville4 = getHTTPObject();
var http_lecteur_ville5 = getHTTPObject();
var http_lecteur_ville6 = getHTTPObject();
var http_recherche_dest = getHTTPObject();
var bool_hotelscom = "t";
var bool_venere = "t";
var bool_bookings = "t";
var bool_ratestogo = "t";


var tabOrdreHotel = new Array();
var tabHotelsRech = new Array();
var nbHotelsRech=0;
var timer=60;

function clear_id_destination(){
	document.getElementById('id_destination').value='';	
	//document.getElementById('id_pays').value='';
}

function maj_destination_hotel(idDestination){
	if(idDestination!=""){
		document.getElementById('id_destination').value=idDestination;	
		xml();
		document.moteurHotel.submit();
	}
}

function close_recherche_destination(){
	show_liste_hotel();
	document.getElementById('div_moteur_hotel_dest').style.display='none';
	document.getElementById('div_moteur_hotel_dest_resultat').innerHTML='<div class="titrecat1" style="padding-top:50px; padding-bottom:50px" align="center">Recherche en cours<br>Veuillez patienter...</div>';
}

function recherche_destination(){
	var dest_tmp = document.moteurHotel.ville.value;
	//window.open("/hotel/recherche_destination_hotel.php?destination=" + dest_tmp);
	http_recherche_dest.open("GET","/hotel/recherche_destination_hotel.php?destination=" + dest_tmp, true);		
	http_recherche_dest.onreadystatechange = handleHttpResponseRechercheDest;		
	http_recherche_dest.send(null);	
}

function handleHttpResponseRechercheDest(){
	if (http_recherche_dest.readyState == 4) {
		results = http_recherche_dest.responseText;
		tabRetour = results.split("###");
		var nbResultat= parseInt(tabRetour[0]);
		if(nbResultat==1){
			maj_destination_hotel(tabRetour[1]);
		}else{
			hide_liste_hotel();
			document.getElementById('div_moteur_hotel_dest').style.display='';
			document.getElementById('div_moteur_hotel_dest_resultat').innerHTML=tabRetour[1];
		}
	}
}

function hide_liste_hotel(){
	document.getElementById('liste_DD').style.display='none';
	document.getElementById('liste_MM').style.display='none';
	document.getElementById('liste_nb_nuits').style.display='none';
	document.getElementById('liste_typeChambre').style.display='none';
}

function show_liste_hotel(){
	document.getElementById('liste_DD').style.display='';
	document.getElementById('liste_MM').style.display='';
	document.getElementById('liste_nb_nuits').style.display='';
	document.getElementById('liste_typeChambre').style.display='';	
}

function handleHttpResponseGetIdRechVille(){
	if (http_getidrechVille.readyState == 4) {
		results_ville = http_getidrechVille.responseText;
		id_rech_ville = results_ville;		
		lancementRecherche();
	}
}
function handleHttpResponseMultipleVille(){	
	if (http_multiple_ville.readyState == 4) {
		//alert('fin multiple');
	}
}
function handleHttpResponseLecteurVille1() {
	if (http_lecteur_ville1.readyState == 4) {
		traite_retour(http_lecteur_ville1.responseText);
	}	
}
function handleHttpResponseLecteurVille2() {
	if (http_lecteur_ville2.readyState == 4) {
		traite_retour(http_lecteur_ville2.responseText);
	}	
}
function handleHttpResponseLecteurVille3() {
	if (http_lecteur_ville3.readyState == 4) {
		traite_retour(http_lecteur_ville3.responseText);
	}	
}
function handleHttpResponseLecteurVille4() {
	if (http_lecteur_ville4.readyState == 4) {
		traite_retour(http_lecteur_ville4.responseText);
	}	
}
function handleHttpResponseLecteurVille5() {
	if (http_lecteur_ville5.readyState == 4) {
		traite_retour(http_lecteur_ville5.responseText);
	}	
}
function handleHttpResponseLecteurVille6() {
	if (http_lecteur_ville6.readyState == 4) {
		traite_retour(http_lecteur_ville6.responseText);
	}	
}


var tmp_results="";

function traite_retour(results) {
	tmp_results=results;
	document.getElementById('div_prix_attente').style.display='';
	window.setTimeout("traite_retour2()",50);
}

function traite_retour2() {
		
	var results=tmp_results;
		
	if (results!='') {
		
		http_multiple_ville.abort();
		
		tabListeRetour = results.split("FIN DATA");	
		
		for(i=0;i<(tabListeRetour.length)-1;i++){
			
			tabTmp 	= tabListeRetour[i].split("DATA<part>");
			tabTmp2 = tabTmp[1].split("</part>");
			part=tabTmp2[0];
			
			var contenu = tabTmp2[1];
			
			updateXml(contenu, part);
			switch(part){
				case "hotelscom" 	: bool_hotelscom='f';	break;	
				case "venere" 		: bool_venere='f';		break;	
				case "bookings"  	: bool_bookings='f';	break;	
				case "ratestogo" 	: bool_ratestogo='f';	break;	
			}
			nbpart = nbpart + 1;
		}	
	}
	
	bool_parts = bool_hotelscom + bool_venere + bool_bookings + bool_ratestogo;
	if(bool_parts != "ffff"){
		rappel(bool_parts)
	}	
}


function rappel(bool_parts) {
	if(test_ip==1) {
		//alert(nbpart);
		//alert(bool_parts);
	}
	if (nbpart ==1) {
		http_lecteur_ville2.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
		http_lecteur_ville2.onreadystatechange = handleHttpResponseLecteurVille2;		
		http_lecteur_ville2.send(null);		
	} else if (nbpart ==2) {
		http_lecteur_ville3.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
		http_lecteur_ville3.onreadystatechange = handleHttpResponseLecteurVille3;		
		http_lecteur_ville3.send(null);		
	} else if (nbpart ==3) {
		http_lecteur_ville4.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
		http_lecteur_ville4.onreadystatechange = handleHttpResponseLecteurVille4;		
		http_lecteur_ville4.send(null);		
	} else if (nbpart ==4) {
		http_lecteur_ville5.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
		http_lecteur_ville5.onreadystatechange = handleHttpResponseLecteurVille5;		
		http_lecteur_ville5.send(null);		
	} else if (nbpart ==5) {
		
		http_lecteur_ville6.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
		http_lecteur_ville6.onreadystatechange = handleHttpResponseLecteurVille6;		
		http_lecteur_ville6.send(null);		
	} 
}

function reinit_xml(){
	tabHotelsRech = new Array();
	tabOrdreHotel = new Array();
	var tabHotelRes = new Array();
	nbHotelsRech=0;
	xml();
}

function xml() {
	
	var form = document.moteurHotel; 
	var id_destination_temp= form.id_destination.value;
	var id_ville_ancien= id_ville;
	var lancement_recherche = 0;
	
	
	avecRecherche = 1;
	
	if(id_destination_temp != '') {
		if(id_destination_temp.search("ville")!=-1) {
			if (("ville" + id_ville_ancien) == id_destination_temp) {
				lancement_recherche=1;
			}
		} else {
			form.action = "/hotel/hotels-v0.php";
		}
	} else if(form.nom_hotel.value!="") {
		form.action="/hotel/recherche-hotel-par-nom.php";
	}else{
		lancement_recherche = 1;
	}
	if ( ((form.MM.value=="0") && (form.DD.value=="0")) || lancement_recherche==0) {
		
		form.submit();
	} else {	
		listePartFini = "";
		
		min1et=999999;
		min2et=999999;
		min3et=999999;
		min4et=999999;
		min5et=999999;
	
		nbs=0;
		chngChaines=0;
		ordre=1;
		page=1;
		nbligne=30;
		iMax=0;
		chaineChoix="";
		budgetChoix="";
		etoilesChoix="";
		chaine_moins="";
		compteur=0;
		nbpart = 0;
		mmois = form.MM.value.substr(0,2);
		aannee = form.MM.value.substr(3,4);
		var d0=new Date() ;
		
		var new_date = new Date(aannee, mmois*1 -1,  parseInt(form.DD.value * 1) + parseInt(form.nb_nuits.value),0,0,0); 
		nbnuits1 = form.nb_nuits.value;
	
		var new_day = new_date.getDate();        
		new_day = ((new_day < 10) ? '0' : '') + new_day; 
		var new_month = new_date.getMonth() + 1; 
	    new_month = ((new_month < 10) ? '0' : '') + new_month;
		form.DD1.value = new_day;
		form.MM1.value = new_month + "-" + new_date.getFullYear();
		
		document.getElementById('PartFini').innerHTML = '';
		document.getElementById('div_attente').style.display='';
		document.getElementById('tablePartFini').style.display='';
		document.getElementById('div_rech_terminee').style.display='none';
		
		get_id_rechVille();		
		return false;		
	}
}

function get_id_rechVille(){
	var form = document.moteurHotel; 
	$qur="id_ville=" + id_ville + "&DD=" + form.DD.value + "&MM=" + form.MM.value + "&DD1=" + form.DD1.value + "&MM1=" + form.MM1.value + "&typeChambre=" + form.typeChambre.value  + "&nom_hotel=" + form.nom_hotel.value;
	//window.open("/hotel/getIdRechVille.php?" + $qur);
	http_getidrechVille.open("GET","/hotel/getIdRechVille.php?" + $qur, true);		
	http_getidrechVille.onreadystatechange = handleHttpResponseGetIdRechVille;		
	http_getidrechVille.send(null);		
}


function lancementRecherche() {
	var form = document.moteurHotel; 
	bool_hotelscom = "t";
	bool_venere = "t";
	bool_bookings = "t";
	bool_ratestogo = "t";
	bool_parts = bool_hotelscom + bool_venere + bool_bookings + bool_ratestogo;
	$qur="id_ville=" + id_ville + "&DD=" + form.DD.value + "&MM=" + form.MM.value + "&DD1=" + form.DD1.value + "&MM1=" + form.MM1.value + "&typeChambre=" + form.typeChambre.value  + "&nom_hotel=" + form.nom_hotel.value;


	http_multiple_ville.open("GET","/hotel/multiple_ville.php?" + $qur + "&id_rech=" + id_rech_ville, true);		
	http_multiple_ville.onreadystatechange = handleHttpResponseMultipleVille;		
	http_multiple_ville.send(null);	
	
	http_lecteur_ville1.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
	http_lecteur_ville1.onreadystatechange = handleHttpResponseLecteurVille1;		
	http_lecteur_ville1.send(null);	
}


function reLancementRecherche() {
	var form = document.moteurHotel; 
	listePartFini = "";
	avecRecherche = 1;
	tabHotelsRech = new Array();
	tabOrdreHotel = new Array();
	nbHotelsRech=0;
	min1et=999999;
	min2et=999999;
	min3et=999999;
	min4et=999999;
	min5et=999999;

	nbs=0;
	chngChaines=0;
	ordre=1;
	page=1;
	nbligne=30;
	iMax=0;
	chaineChoix="";
	budgetChoix="";
	etoilesChoix="";
	chaine_moins="";
	compteur=0;
	nbpart = 0;
	mmois = form.MM.value.substr(0,2);
	aannee = form.MM.value.substr(3,4);
	var d0=new Date() ;
	
	var new_date = new Date(aannee, mmois*1 -1,  parseInt(form.DD.value * 1) + parseInt(form.nb_nuits.value),0,0,0); 
	nbnuits1 = form.nb_nuits.value;

	var new_day = new_date.getDate();        
	new_day = ((new_day < 10) ? '0' : '') + new_day; 
	var new_month = new_date.getMonth() + 1; 
	new_month = ((new_month < 10) ? '0' : '') + new_month;
	form.DD1.value = new_day;
	form.MM1.value = new_month + "-" + new_date.getFullYear();

	bool_hotelscom = "t";
	bool_venere = "t";
	bool_bookings = "t";
	bool_ratestogo = "t";

	bool_parts = bool_hotelscom + bool_venere + bool_bookings + bool_ratestogo;

	timer=60;
	decompte_timer();

	http_lecteur_ville1.open("GET","/hotel/lecteur_ville.php?listePart=" + bool_parts + "&id_rech=" + id_rech_ville, true);		
	http_lecteur_ville1.onreadystatechange = handleHttpResponseLecteurVille1;		
	http_lecteur_ville1.send(null);		
}

function decompte_timer(){
	if(timer>0){
		timer = timer - 1;	
		window.setTimeout("decompte_timer();", 1000);
	}else{
		fin_recherche();	
	}
}

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
	  return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
	if (document.embeds && document.embeds[movieName])
	  return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
	return document.getElementById(movieName);
  }
}


function updateXml(results,part) {


	if (part =="ratestogo") {
		part_txt = "Ratestogo";
	} else if (part =="bookings") {
		part_txt = "Booking.com";
	} else if (part =="laterooms") {
		part_txt = "Laterooms";
	} else if (part =="voyagessncf") {
		part_txt = "Voyages SNCF";
	} else if (part =="hotelscom") {
		part_txt = "Hotels.com";
	} else if (part =="venere") {
		part_txt = "Venere";
	}
	
	listePartFini = listePartFini + '&nbsp;<img src="/img/picto/checked.gif" align="absmiddle">&nbsp;' + part_txt + '<br>';
	
	req_updtPrix='';
	prix_hotel_mini='';
	if(results!="") {
		
		tabHotelRes = results.split("@");	
		for(i1=0;i1<((tabHotelRes.length)-1);i1++){
		
			tmpInfo=tabHotelRes[i1].split("#");			
			id_hotel=tmpInfo[0];
			prix_hotel=tmpInfo[1];
			if(prix_hotel!="0" && prix_hotel!="") {
				var trouve=false;
				if (tabOrdreHotel[id_hotel] != undefined) { 
					jj = tabOrdreHotel[id_hotel];
					trouve = true;
				}
				if(trouve==false) {
					chaine_moins = chaine_moins + id_hotel + ";;";
					finListePrix = "||99999||99999||99999||99999||99999||99999||99999";
					switch(part) {
						case "active":
						  finListePrix="||" + prix_hotel + "||99999||99999||99999||99999||99999||99999";
						  break;
						case "bookings":
						  finListePrix="||99999||" + prix_hotel + "||99999||99999||99999||99999||99999";
						  break;
						case "venere":
						  finListePrix="||99999||99999||99999||" + prix_hotel + "||99999||99999||99999";
						  break;
						case "hotelscom":
						  finListePrix="||99999||99999||99999||99999||" + prix_hotel + "||99999||99999";
						  break;					  
						case "hotelclub":
						  finListePrix="||99999||99999||99999||99999||99999||" + prix_hotel + "||99999";
						  break;
						case "ratestogo":
						  finListePrix="||99999||99999||99999||99999||99999||99999||" + prix_hotel;
						  break;
					}
					tabHotelsRech[nbHotelsRech]=prix_hotel + "||" + id_hotel + finListePrix;
					nbHotelsRech=nbHotelsRech+1;
			  	} else {					
					lntrouvee=tabHotelsRech[jj].split("||");
					prix_hotel_mini= lntrouvee[0];
					switch(part) {
						case "active":
							lntrouvee[2] = prix_hotel;
						break;
						case "bookings":
							lntrouvee[3] = prix_hotel;
						break;
						case "venere":
							lntrouvee[5] = prix_hotel;
						break;
						case "hotelscom":
							lntrouvee[6] = prix_hotel;
						break;					  
						case "hotelclub":
							lntrouvee[7] = prix_hotel;
						break;
						case "ratestogo":
							lntrouvee[8] = prix_hotel;
						break;
					}				

					if (parseInt(prix_hotel)<parseInt(prix_hotel_mini)) {
						prix_hotel_mini = prix_hotel;
					}

					tabHotelsRech[jj]=prix_hotel_mini + "||" + id_hotel + "||" + lntrouvee[2] + "||" + lntrouvee[3] + "||" + lntrouvee[4] + "||" + lntrouvee[5] + "||" + lntrouvee[6] + "||" + lntrouvee[7] + "||" + lntrouvee[8];
					
				}
			}
		}
    }
	
		
	tabHotelsRech.sort(TrierPrix);
	for( j=0 ; j < nbHotelsRech ; j++) {
		ln1=tabHotelsRech[j].split("||");
		id = ln1[1];
		tabOrdreHotel[id] = j;	
	}

	$fc1 = "";
	listeTemp="";
	nbTmp2=0;
	
	for(i1=0;i1<(tabHotelsRech.length);i1++){
		
		tmpInfoGlobal=tabHotelsRech[i1].split("||");
		prix_hotel_mini = tmpInfoGlobal[0];
		id_hotel = tmpInfoGlobal[1];	
		
		trouve=0;
		for(i2=0;i2<(tabTriPrix.length);i2++){
			if(tabTriPrix[i2] == id_hotel){
				trouve=1;
			}
		}
		if(trouve==0){
			tabTriPrix[nbTmp2] = id_hotel;	
			listeTemp = listeTemp +"#"+ id_hotel;
			nbTmp2++;
		}
	}

	listeFiltreRecherche = listeTemp + "#";	
	
	updt_prix2();
	retri();
	
	var divPartFini =document.getElementById('PartFini');
	divPartFini.innerHTML = listePartFini;
	
	//Fin
	if(nbpart==3) {
		fin_recherche();
	}
	
	//Update du prix mini pour le partenaire
  	
	if(part == "active"){
	  req_updtPrix = 'prix_activehotel=\''+prix_hotel_mini+'\' ';
	}
	if(part == "bookings"){
	  req_updtPrix = 'prix_bookings=\''+prix_hotel_mini+'\' ';
	}
	
	if(part == "venere"){
	  req_updtPrix = 'prix_venere=\''+prix_hotel_mini+'\' ';
	}
	if(part == "hotelscom"){
	  req_updtPrix = 'prix_hotelscom=\''+prix_hotel_mini+'\' ';
	}
	if(part == "hotelclub"){
	  req_updtPrix = 'prix_hotelclub=\''+prix_hotel_mini+'\' ';
	}
	if(part == "ratestogo"){
	  req_updtPrix = 'prix_ratestogo=\''+prix_hotel_mini+'\' ';
	}
	
	if(req_updtPrix!=""){
		maj_prixMini(req_updtPrix);	
	}
}

function handleHttpResponseMajPrixMini(){
	if (http_majprixmini.readyState == 4) {
		results = http_majprixmini.responseText;
	}
}

function maj_prixMini(req){
	
	http_majprixmini = getHTTPObject();
	if (http_majprixmini && http_majprixmini.readyState != 0) {
		http_majprixmini.abort();
	}
	$qur='id_rech='+id_rech_ville+'&req='+req+'';
	//window.open("/hotel/updtPrixRechVille.php?" + $qur);
	http_majprixmini.open("GET","/hotel/updtPrixRechVille.php?" + $qur, true);		
	http_majprixmini.onreadystatechange = handleHttpResponseMajPrixMini;
	http_majprixmini.send(null);
	
}

function fin_recherche(){
	document.getElementById('div_attente').style.display='none';
	document.getElementById('div_rech_terminee').style.display='';
	document.getElementById('div_prix_attente').style.display='none';
	http_lecteur_ville1.abort();
	http_multiple_ville.abort();
}

function TrierPrix(x1,x2){   
	var spprix1=x1.split("||");
	prix1=parseInt(spprix1[0]);
	
	var spprix2=x2.split("||");
	prix2=parseInt(spprix2[0]);
   
	return (prix1 < prix2)? -1 : 1;
}