// Gestion des Réservations

/* --- Gestion dynamique des séjours --- */

// GestionSejours('afficher_detail',155,'promo',4,'2009-07-04',14)
function GestionSejours(etape,id,type_resultat,nbpersonnes,datearrivee,nbnuitees) {

	var xmlHttp;
	var requete_selection, requete_recherche, requete_coord, requete_options, requete_reservation, requete;
	var option_idoption = new Array();
	var total;

/*	idsejour = '';
	idpromo = '';
	idnuitee = '';
	switch (type_resultat) {
		case 'promo' : idpromo = id;break;
		case 'sejour' : idsejour = id;break;
		case 'nuitees' : idnuitee = id;break;
	}*/
	if (document.getElementById('choix_tarif_sejour')) { idsejour = document.getElementById('choix_tarif_sejour').value; };

	xmlHttp = selectNavigateur();

	// les criteres de recherche
	requete_recherche = "";
	recherche_idresidence = document.getElementById('recherche_idresidence').options[document.getElementById('recherche_idresidence').selectedIndex].value;
	recherche_idtypeappartement = document.getElementById('recherche_idtypeappartement').options[document.getElementById('recherche_idtypeappartement').selectedIndex].value;
	recherche_nbpersonnes = document.getElementById('recherche_nbpersonnes').value;
	recherche_datearrivee = document.getElementById('recherche_datearrivee').value;
	recherche_nbnuitees = document.getElementById('recherche_nbnuitees').value;

	if (etape == 'verifier_nb_personnes_promo'){
		// clic sur une promo dans marquee
		requete_recherche = "";
		requete_recherche = "&recherche_idpromotionresidencetypesappart=" + id + "&recherche_nbpersonnes=" + nbpersonnes + 	"&recherche_datearrivee=" + datearrivee + "&recherche_nbnuitees=" + nbnuitees;
	} else {
		requete_recherche = "&recherche_idresidence=" + recherche_idresidence + "&recherche_idtypeappartement=" + recherche_idtypeappartement + "&recherche_nbpersonnes=" + recherche_nbpersonnes + "&recherche_datearrivee=" + recherche_datearrivee + "&recherche_nbnuitees=" + recherche_nbnuitees;
	}

	// Le sejour choisi
	requete_selection = "";
	if (GestionSejours.arguments[1]) {
		requete_selection = "&selection_id=" + id + "&selection_type_resultat=" + type_resultat + "&selection_nbpersonnes=" + nbpersonnes + "&selection_datearrivee=" + datearrivee + "&selection_nbnuitees=" + nbnuitees;
	}

	if (document.getElementById('selection_id')) {
		selection_id = document.getElementById('selection_id').value;
		selection_type_resultat = document.getElementById('selection_type_resultat').value;
		selection_nbpersonnes = document.getElementById('selection_nbpersonnes').value;
		selection_datearrivee = document.getElementById('selection_datearrivee').value;
		selection_nbnuitees = document.getElementById('selection_nbnuitees').value;
		requete_selection = "&selection_id=" + selection_id + "&selection_type_resultat=" + selection_type_resultat + "&selection_nbpersonnes=" + selection_nbpersonnes + "&selection_datearrivee=" + selection_datearrivee + "&selection_nbnuitees=" + selection_nbnuitees;
	}

	if (document.getElementById('total')) { total = document.getElementById('total').value; }

	// Les coordonnees
	requete_coord = "";
	if (document.getElementById('nom')) {
		civilite = "";
		if (document.getElementById('civiliteM').checked) { civilite = document.getElementById('civiliteM').value; }
		if (document.getElementById('civiliteMme').checked) { civilite = document.getElementById('civiliteMme').value; }
		if (document.getElementById('civiliteMlle').checked) { civilite = document.getElementById('civiliteMlle').value; }
		nom = document.getElementById('nom').value;
		prenom = document.getElementById('prenom').value;
		adresse1 = document.getElementById('adresse1').value;
		adresse2 = document.getElementById('adresse2').value;
		codepostal = document.getElementById('codepostal').value;
		ville = document.getElementById('ville').value;
		pays = document.getElementById('pays').value;
		telephone = document.getElementById('telephone').value;
		courriel = document.getElementById('courriel').value;
		requete_coord = "&civilite=" + civilite + "&nom=" + nom + "&prenom=" + prenom + "&adresse1=" + adresse1 + "&adresse2=" + adresse2 + "&codepostal=" + codepostal + "&ville=" + ville + "&pays=" + pays + "&telephone=" + telephone + "&courriel=" + courriel;
	}

	// enregistrement reservation
	requete_reservation = "";
	if (document.getElementById('idreservation') && document.getElementById('idclient')) {
		requete_reservation = requete_reservation + "&idclient=" + document.getElementById('idclient').value;
		requete_reservation = requete_reservation + "&idreservation=" + document.getElementById('idreservation').value;
	}

	// Ouvrir le flux AJAX
	requete = "etape=" + etape + "&total=" + total;
	requete = requete + requete_recherche;
	requete = requete + requete_selection;
	//requete = requete + requete_options;
	requete = requete + requete_coord;
	requete = requete + requete_reservation;
	xmlHttp.open("POST","index.php5?ajax=true&acces=module_reservation.xml",true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.send(requete);

// document.getElementById('promotion_sejour').innerHTML=requete;

// modif residence
//etape=choix_types_appartements&total=undefined&recherche_idresidence=4&recherche_idtypeappartement=0&recherche_nbpersonnes=1&recherche_datearrivee=30/07/2009&recherche_nbnuitees=7

// clic sur promo : 	GestionSejours('afficher_detail',155,'promo',4,'2009-07-04',14)
//  			GestionSejours('afficher_detail',0,'promo','4','2009-06-22',7) etape=afficher_detail&total=undefined&recherche_idresidence=4&recherche_idtypeappartement=0&recherche_nbpersonnes=1&recherche_datearrivee=30/07/2009&recherche_nbnuitees=7&selection_id=155&selection_type_resultat=promo&selection_nbpersonnes=4&selection_datearrivee=2009-07-04&selection_nbnuitees=14

	// Traitement de la réponse
	xmlHttp.onreadystatechange=function() {
		switch (xmlHttp.readyState) {
			case 0 :
				break;
			case 1 :
				document.getElementById('attente').innerHTML='<p style="text-align:center"><img src="visuels/attente.gif" alt="Patientez svp..." /><br/>Patientez svp...</p>';
				break
			case 2 :
				document.getElementById('attente').innerHTML='<p style="text-align:center"><img src="visuels/attente.gif" alt="Demande envoyée..." /><br/>Demande envoyée...</p>';
				break;
			case 3 :
				document.getElementById('attente').innerHTML='<p style="text-align:center"><img src="visuels/attente.gif" alt="Recherche en cours..." /><br/>Recherche en cours...</p>';
				break;
			case 4 :
				switch (etape) {
					case 'choix_types_appartements' :
						// Residence sélectionnée, afficher les types d'appartement cacher le nombre de personnes et le calendrier
						document.getElementById('erreurs_coordonnees').style.display = 'none';
						document.getElementById('mod_types_appartements').innerHTML=xmlHttp.responseText;
						document.getElementById('resultats').innerHTML='';
						document.getElementById('paiement').innerHTML='';
						document.getElementById('attente').innerHTML='';
					break;

					case 'verifier_coordonnees' :
						document.getElementById('erreurs_coordonnees').style.display = 'block';
						document.getElementById('erreurs_coordonnees').innerHTML=xmlHttp.responseText;
						document.getElementById('attente').innerHTML='';
						document.getElementById('paiement').innerHTML='';
						document.getElementById('coordonnees').style.display='block';
						break;

					case 'afficher_systeme_paiement' :
						document.getElementById('erreurs_coordonnees').style.display = 'none';
						document.getElementById('paiement').innerHTML=xmlHttp.responseText;
						document.getElementById('attente').innerHTML='';
						document.getElementById('coordonnees').style.display='none';
						break;

					case 'choix_types_appartements_accueil' :
						document.getElementById('mod_types_appartements').innerHTML=xmlHttp.responseText;
						document.getElementById('attente').innerHTML='';
						break;

					case 'verifier_nb_personnes_accueil' :
						document.getElementById('erreurs_coordonnees').innerHTML=xmlHttp.responseText;
						if (document.getElementById('erreurs_coordonnees').innerHTML!='') {
							document.getElementById('erreurs_coordonnees').style.display = 'block';
							document.getElementById('erreurs_coordonnees').style.position = 'absolute';
						} else { document.getElementById('erreurs_coordonnees').style.display = 'none'; }
						document.getElementById('attente').innerHTML='';
						break;

					default :
						// Type d'appartement selectionné, vérification Nb personnes
						document.getElementById('erreurs_coordonnees').style.display = 'none';
						document.getElementById('resultats').innerHTML=xmlHttp.responseText;
						document.getElementById('paiement').innerHTML='';
						document.getElementById('attente').innerHTML='';
					break;
				}
				break;
		}
	}

}


function selectNavigateur() {
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}

	catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
				alert("Votre navigateur ne supporte pas AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}


var cal_date_arrivee = new CalendarPopup("Calendrier");
var now = new Date();
now.setTime(now.getTime() - 1 * 24 * 60 * 60 * 1000);
cal_date_arrivee.setWeekStartDay(1);

function traductionCalendrier(cal,langue) {
	switch (langue) {
		case 'fr' :
			cal.setMonthNames("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
			cal.setDayHeaders("D","L","M","M","J","V","S");
			cal.setTodayText("Aujourd'hui");
			cal.langueDate = 'dd/MM/yyyy';
			break;
		default :
			cal.langueDate = 'yyyy/MM/dd';
			break;
	}
}

cal_date_arrivee.showNavigationDropdowns();
cal_date_arrivee.offsetX = 0;
cal_date_arrivee.addDisabledDates(null,formatDate(now,"yyyy-MM-dd"));

function SousTotalOption(i) {
	sstotal = new Number();
	choix = document.getElementById('option_idoption' + i).checked;
	qte1 = document.getElementById('option_nbpersonnes' + i).value;
	qte2 = document.getElementById('option_nbjours' + i).value;
	prix = document.getElementById('option_prix' + i).value;
	if (choix && qte1!="" && qte2!="" && parseFloat(qte1)>=0 && parseFloat(qte2)>=0) {
		sstotal = parseFloat(qte1) * parseFloat(qte2) * parseFloat(prix);
		document.getElementById('option_total' + i).value=sstotal.toFixed(2);
	} else {
		document.getElementById('option_total' + i).value = "";
	}
}

function TotalOptions(nboptions) {
	total = new Number(parseFloat(document.getElementById('prixsejour').value));
	for (i=0;i<nboptions;i++) {
		if (document.getElementById('option_idoption' + i).checked && document.getElementById('option_total' + i).value!='') {
			total = total + parseFloat(document.getElementById('option_total' + i).value);
		}
	}
	document.getElementById('total').value = total.toFixed(2);
}

