// Bibliothèque de scripts - 

//****************************************************************
// Bibliothèque de scripts lié à la recherche d'offres touristiques
//****************************************************************


//----------------------------------------------------------------
// Initialisation d'un slider à partir de son Id
function funcInitSlider(varId) {
	$(function() {
		$("#"+ varId +"range").slider({
			value:0,
			min: 0,
			max: 4,
			step: 1,
			slide: function(event, ui) {
				$("#"+ varId).val(ui.value);
			}
		});
	});
}

//
// Modification de l'action du formulaire de recherche
function funcSubmitRech(varId) {
	document.getElementById(varId).action = document.getElementById(varId).action.replace("liste", "carte") +"?btGo=ok";
	document.getElementById(varId).submit();
}

//----------------------------------------------------------------
// Gestion du carnet de voyage
//--- Stockage en cookie des références du carnet de voyage
function setTravelBook(varRef) {
	// Récupération de la liste préexistante des références stockées en cookie
	if(getCookie("cdvref") == null) {
		var strRefList = "";
		// Information sur les cookies
		$('#CDVhelp').colorbox({open:true});
	} else {
		var strRefList = getCookie("cdvref");
	}
	// Contrôle si la référence est déjà présente dans le cookie
	if((strRefList.indexOf("#"+ varRef +"#") < 0) && (strRefList.indexOf(varRef +"#") != 0)) {
		// Ajout de la référence à la liste
		strRefList += varRef +"#";
		//--- Ecriture des informations dans le cookie
		setCookie("cdvref", strRefList, 60, "/", "", "");
	}
	// Mise à jour de la liste du mini carnet de voyage
	setTravelBookView();
}

//--- Suppression d'une des références du carnet de voyage stockée en cookie
function delTravelBook(varRef, varReload) {
	var intConfirm = confirm("Êtes-vous sur de vouloir effacer cette adresse de votre carnet de voyage ?");
	if(intConfirm) {
		// Récupération de la liste préexistante des références stockées en cookie
		if(getCookie("cdvref") == null) {
			var strRefList = "";
		} else {
			var strRefList = getCookie("cdvref");
		}
		// Suppresion de la référence
		strRefList = strRefList.replace(varRef +"#", "");
		if (strRefList == "#") {
			strRefList = "";
		}
		//--- Ecriture des informations dans le cookie
		setCookie("cdvref", strRefList, 60, "/", "", "");
		// Rechargement de la page
		if(varReload) {
			// Si la sélection n'est pas vide >> Rechargement de la page
			if (strRefList != "") {
				window.location.reload();
			// Si la sélection est vide >> retour à la page de recherche
			} else {
				window.location.href = "../preparer-mon-sejour/";
			}
		// Mise à jour de la liste du mini carnet de voyage
		} else {
			setTravelBookView();
		}
	}
}

//--- Mise à jour de la liste du mini carnet de voyage
function setTravelBookView() {
	// Déclaration des variables
	var objTravelBook = document.getElementById("TravelBookMini"); // Objet mini carnet de voyage
	var tabRef;	// Tableau des références mémorisées dans le carnet de voyage
	var tabRefDetail; // Tableau des informations détaillées d'une référence
	var strUrlXml = "../_inc/CPN_OffresCDV.asp?case=xmlmini&cdvref="+ escape(getCookie("cdvref"))	// URL de chargement des données
	// Test l'existence d'une sélection dans le carnet de voyage et affichage d'un loading 
	testTravelBook()
	// Pointage de l'objet mini carnet de voyage
	if(objTravelBook) {
		// Chargement AJAX des données
		if(window.XMLHttpRequest) { // Firefox
			oXmlHttp = new XMLHttpRequest();
		} else if(window.ActiveXObject) { // Internet Explorer 6 et inf.
			oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		// Action déclenchée à la réception des données de la requête
		if(oXmlHttp) {
			oXmlHttp.open("GET", strUrlXml, true);
			//Envoi
			oXmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			oXmlHttp.send();
			oXmlHttp.onreadystatechange = function() {
				if(oXmlHttp.readyState == 4) { // Déclenchement au chargement complet
					//--- Réception des données
					if (oXmlHttp.responseText != '' && oXmlHttp.status == 200) {
						if (oXmlHttp.responseText != 'null') {
							// Purge du contenu
							while(objTravelBook.children.length > 0) {
								objTravelBook.removeChild(objTravelBook.lastChild );
							}
							// Fin du style loading
							objTravelBook.className = "";
							// Récupération des données
							tabRef = oXmlHttp.responseText.split("\n");
							// Génération du contenu
							for(i=0; i<tabRef.length; i++) {
								tabRefDetail = tabRef[i].split("#");
								var li = document.createElement("li");
								objTravelBook.appendChild(li);
								var a = document.createElement("a");
								a.setAttribute("href", "../preparer-mon-sejour/fiche.html?ref="+ tabRefDetail[0]);
								a.setAttribute("title", "Afficher l'offre");
								li.appendChild(a);
								a.appendChild(document.createTextNode(tabRefDetail[1]));
							}
						}
					}
				}
			};
		}
	}
}

addLoadEvent(setTravelBookView);

//--- Test l'existence d'une sélection dans le carnet de voyage et affichage d'un loading
function testTravelBook() {
	// Déclaration des variables
	var objTravelBook = document.getElementById("TravelBookMini"); // Objet mini carnet de voyage
	if (objTravelBook) {
		if (getCookie("cdvref")) {
			// Affichage des liens fonctionnels
			document.getElementById("TravelBookLnk").style.display = "inline";
			// Affichage de l'animation de loading
			objTravelBook.className = "loading";
		} else {
			// Suppression des liens fonctionnels
			document.getElementById("TravelBookLnk").style.display = "none";
			// Suppression de l'animation de loading
			objTravelBook.className = "";
			// Affichage du message d'invitation
			var li = document.createElement("li");
			objTravelBook.appendChild(li);
			var i = document.createElement("i");
			li.appendChild(i);
			i.appendChild(document.createTextNode("Mémorisez votre sélection afin de préparer votre séjour"));
		}
	}
}

//--- Recevoir son carnet de voyage par E-mail >> formatage de l'URL d'appel du formulaire
function setTravelSend(varObj,varUrl) {
	//--- Contrôle de saisie
	var StatutValid = "OK";
	var strCar = "0123456789abcdefghijklmnopqrstuvwxyz_-.@"

	if (varObj.value.length < 6 || varObj.value.indexOf("@") < 0 || varObj.value.indexOf(".") < 0) {
		alert("Vous devez saisir une adresse E-mail valide");
		StatutValid = "KO";
	}
	for (j = 0; j < varObj.value.length; j++) {
		if (strCar.toLowerCase().indexOf(varObj.value.charAt(j).toLowerCase()) < 0) {
			alert("Votre adresse E-mail peut contenir uniquement les caractères suivants \"" + strCar + "\"");
			StatutValid = "KO";
			break;
		}
	}
	//--- Mise à jour du lien
	if (StatutValid == "OK") {
		document.getElementById("CDVsendToLnk").href = varUrl + varObj.value;
	}
}

//----------------------------------------------------------------
// Gestion des cookies
//--- Fonction générique de mise à jour d'un cookie
function setCookie(varName, varValue, varExpires, varPath, varDomain, varSecure) {
	// Définition de la date courante (en millisecondes)
	var dtmToday = new Date();
	dtmToday.setTime(dtmToday.getTime());
	// Définition de la date d'expiration (Jours -> Millisecondes)
	if(varExpires) {
		varExpires = varExpires * 1000 * 60 * 60 * 24;
	}
	var dtmExpiresDate = new Date(dtmToday.getTime()+(varExpires));
	// Renseignement du cookie
	document.cookie = varName +"="+ escape(varValue) +
	((varExpires)? ";expires=" + dtmExpiresDate.toGMTString() : "" ) +
	((varPath) ? ";path=" + varPath : "" );
}

//--- Fonction générique d'édition d'un cookie
function getCookie(varName) {
	var intStart = document.cookie.indexOf(varName +"=");
	var intLen = intStart + varName.length + 1;
	if((!intStart) && (varName != document.cookie.substring(0,varName.length)))	{
		return null;
	}
	if(intStart == -1) {
		return null;
	}
	var intEnd = document.cookie.indexOf(";",intLen);
	if(intEnd == -1) {
		intEnd = document.cookie.length;
	}
	return unescape(document.cookie.substring(intLen,intEnd));
}

//----------------------------------------------------------------
// Envoi du carnet de voyage
//--- Récupération du code source du carnet de voyage pour envoi
function funcGetCDVhtml() {
	var objCDVhtml = document.getElementById("cdvConterner");
	var objForm = document.getElementById("formMessenger");
	document.formMessenger.cdvhtml.value = objCDVhtml.innerHTML;
}

