// ====== Début diaporama
/***********************************************************************************************
Copyright (c) 2005 - Alf Magne Kalleland post@dhtmlgoodies.com
UPDATE LOG:
March, 10th, 2006 : Added support for a message while large image is loading
Get this and other scripts at www.dhtmlgoodies.com
You can use this script freely as long as this copyright message is kept intact.
***********************************************************************************************/ 
var galeries = Object();
activeImage = false;
imageGalleryLeftPos = false;
imageGalleryWidth = false;
imageGalleryObj = false;
maxGalleryXPos = false;
//	slideSpeed = 0;
//	imageGalleryCaptions = new Array();
var id_ofr_mar = 0;
function startSlide(e)
{
	if(document.all)e = event;
	var id = this.id;
//	this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '_over.gif';
	var id_ofr = this.id.split('_');
	var id_ofr_mar = id_ofr[id_ofr.length-1];
	/*if (verif_chargement_images(id_ofr_mar))
	{*/
		var reg = new RegExp("arrow_right_([0-9]+)"); 
		if (this.id.match(reg))	{
			//if(this.id=='arrow_right_'+id_ofr_mar){
			slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5);
			galeries[id_ofr_mar]['slideSpeed'] = -1*slideSpeedMultiply;
			galeries[id_ofr_mar]['slideSpeed'] = Math.max(-10,galeries[id_ofr_mar]['slideSpeed']);
		}else{			
			slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
			galeries[id_ofr_mar]['slideSpeed'] = 1*slideSpeedMultiply;
			galeries[id_ofr_mar]['slideSpeed'] = Math.min(10,galeries[id_ofr_mar]['slideSpeed']);
		if(galeries[id_ofr_mar]['slideSpeed']<0)galeries[id_ofr_mar]['slideSpeed']=10;
		}
	/*}*/
};

function releaseSlide(e)
{
	if(document.all)e = event;
	var id = this.id;
	var id_ofr = this.id.split('_');
	var id_ofr_mar = id_ofr[id_ofr.length-1];
//	this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '.gif';
	galeries[id_ofr_mar]['slideSpeed'] = 0;
};
function gallerySlide(obj_identifier)
{
	imageGalleryObj = galeries[obj_identifier]['imageGalleryObj'];
	maxGalleryXPos = galeries[obj_identifier]['maxGalleryXPos'];
	minGalleryXPos = galeries[obj_identifier]['minGalleryXPos'];
	if(galeries[obj_identifier]['slideSpeed'] != 0){
		var leftPos = imageGalleryObj.offsetLeft;
//			leftPos = leftPos/1 + 75;
		leftPos = leftPos/1 + galeries[obj_identifier]['slideSpeed'];
		if(leftPos>maxGalleryXPos){
			leftPos = maxGalleryXPos;
			galeries[obj_identifier]['slideSpeed'] = 0;
			
		}
		if(leftPos<minGalleryXPos){
			leftPos = minGalleryXPos;
			galeries[obj_identifier]['slideSpeed'] = 0;
		}
		
		imageGalleryObj.style.left = leftPos + 'px';
		galeries[obj_identifier]['imageGalleryObj'] = imageGalleryObj;
	}
	setTimeout("gallerySlide('"+obj_identifier+"')",20);
	//releaseSlide()
};
function showImage()
{
	if(activeImage){
		activeImage.style.filter = 'alpha(opacity=50)';	
		activeImage.style.opacity = 0.5;
	}	
	this.style.filter = 'alpha(opacity=100)';
	this.style.opacity = 1;	
	activeImage = this;	
};
function initSlideShow(obj_identifier)
{
	if (document.getElementById('galleryContainer_'+obj_identifier) != null)
	{
		galeries[obj_identifier] = Object();
		galeries[obj_identifier]['imageGalleryCaptions'] = new Array();
		galeries[obj_identifier]['displayWaitMessage'] = false;
		galeries[obj_identifier]['slideSpeed'] = 0;
		document.getElementById('arrow_left_'+obj_identifier).onmousemove = startSlide;
		document.getElementById('arrow_left_'+obj_identifier).onmouseout = releaseSlide;
		document.getElementById('arrow_right_'+obj_identifier).onmousemove = startSlide;
		document.getElementById('arrow_right_'+obj_identifier).onmouseout = releaseSlide;
		galeries[obj_identifier]['imageGalleryObj'] = document.getElementById('theImages_'+obj_identifier);
		imageGalleryLeftPos = galeries[obj_identifier]['imageGalleryObj'].offsetLeft;
		galeries[obj_identifier]['imageGalleryWidth'] = document.getElementById('galleryContainer_'+obj_identifier).offsetWidth - 80;
		galeries[obj_identifier]['maxGalleryXPos'] = galeries[obj_identifier]['imageGalleryObj'].offsetLeft; 
		galeries[obj_identifier]['minGalleryXPos'] = galeries[obj_identifier]['imageGalleryWidth'] - document.getElementById('slideEnd_'+obj_identifier).offsetLeft + 40;
		var slideshowImages = galeries[obj_identifier]['imageGalleryObj'].getElementsByTagName('IMG');
		for(var no=0;no<slideshowImages.length;no++){
			slideshowImages[no].onmouseover = showImage;
		}
		var divs = galeries[obj_identifier]['imageGalleryObj'].getElementsByTagName('DIV');
		for(var no=0;no<divs.length;no++){
			if(divs[no].className=='imageCaption_'+obj_identifier)galeries[obj_identifier]['imageGalleryCaptions'][galeries[obj_identifier]['imageGalleryCaptions'].length] = divs[no].innerHTML;
		}
		gallerySlide(obj_identifier);
	}
};
function showPreview(imagePath,imageIndex,obj_identifier){
	var subImages = document.getElementById('previewPane_'+obj_identifier).getElementsByTagName('IMG');
	if(subImages.length==0){
		var img = document.createElement('IMG');
		document.getElementById('previewPane_'+obj_identifier).appendChild(img);
	}else img = subImages[0];
	
	if(galeries[obj_identifier]['displayWaitMessage']){
		//document.getElementById('waitMessage_'+id_ofr_mar).style.display='inline';
	}
	document.getElementById('largeImageCaption_'+obj_identifier).style.display='none';
	//img.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); };
	img.src = imagePath;
	//img.height=135;
	//img.width=205;
};
function hideWaitMessageAndShowCaption(imageIndex)
{
	//document.getElementById('waitMessage_'+id_ofr_mar).style.display='none';	
	document.getElementById('largeImageCaption_'+id_ofr_mar).innerHTML = imageGalleryCaptions[imageIndex];
	document.getElementById('largeImageCaption_'+id_ofr_mar).style.display='block';
	
};
/*
function verif_chargement_images(id_ofr_mar)
{
	var ok = true;
	var slideshowImages = galeries[id_ofr_mar]['imageGalleryObj'].getElementsByTagName('IMG');
	for(var no=0;no<slideshowImages.length;no++){
		ok = (ok && slideshowImages[no].complete);
	}
	return (ok);
}*/
//window.onload = initSlideShow;
// ====== Fin diaporama

function popup(adresse,target,largeur,hauteur,degauche,duhaut,status,varscroll,resize)
{
	//parametrage par defaut des variables
	if (target == "") { target = "new_window";}
	if (largeur == "") { largeur = "500";}
	if (hauteur == "") { hauteur = "400";}
	if (degauche == "") { degauche = "0";}
	if (duhaut == "") { duhaut = "0";}
	if (varscroll == "") { varscroll = "yes";}
	if (resize == "") {  resize = ",resizable";  } else { resize = ",resizable=no";}
	if (status == "") { status = "yes";}
	window.open(adresse,target,"width="+largeur+",height="+hauteur+",left="+degauche+",top="+duhaut+",status="+status+",toolbar=no,menubar=no,scrollbars="+varscroll+",location=no,directories=no"+resize);
};
function voir(url_multimedia)
{
	popup(url_multimedia,'multimedia',600,350,100,100);
};
//Fonction permettant de vérifier que seulement 2 a 4 cases sont cochées sur la page de résultat
function selection_id (chk)
{
	// On récupère la valeur de la variable cachée 
	variable = document.getElementById('id_coche').value;
	// Si l'élément est coché 
	if (chk.checked)
	{
		chk.parentNode.className = "compare";
		// On vérifie que l'on ne dépasse pas 4 éléments cochés 
		var tableau = new Array();
		tableau = variable.split("-");
		var cpt =  tableau.length;
		if (cpt > 4)
		{
			alert(wrd_min_max_offre);
			chk.checked = false;
			chk.parentNode.className = "";
			return (false);
		}
		else // on lui ajoute la valeur de la case cochée
		{
			variable = variable + chk.value + "-";
		}
	}
	else // Si l'élément est décoché 
	{
		chk.parentNode.className = "";
		// on retire l'id de la liste
		rech = chk.value + "-";
		debut  = variable.indexOf (rech, 0);
		variable = variable.slice(0,debut) + variable.slice(debut+rech.length,variable.length);
	}
	// On renvoi l'url modifiée dans la variable 
	document.getElementById('id_coche').value = variable;
	return true;
};
//Fonction qui repasse les cases cochées dans l'url
function case_cochee_page(url)
{
	//on cour-circuite cette fonction si les cases sont cochées automatiquement
	if (!coche_automatique)
	{
		url_tmp = document.getElementById('id_coche').value;
		if (rewrite_global_site == 1)
		{
			if (url_tmp != "") { url = url.replace(".html","/"+url_tmp+".html"); }
		}
		if (rewrite_global_site == 0)
		{
			if (url_tmp != "") { url += '&cochee='+url_tmp; }
		}
	}
	return(url);
};
//Fonction qui lance la comparaison des offres
function comparer()
{
	//on récupère la valeur de la variable cachée
	url_tmp = document.getElementById('id_coche').value;
	if (url_tmp != "")
	{
		if (rewrite_global_site == 1)
		{
			url = url.replace(".html","/"+url_tmp+".html#ici");
		}
		if (rewrite_global_site == 0)
		{
			if (url_tmp != "") { url += '&cochee='+url_tmp; }
		}
	}
	url += "#ici";
	window.location.href = url;
};
//Fonction qui lance la comparaison des offres
function soumettre()
{
	// On récupère la valeur de la variable cachée 
	variable = document.getElementById('id_coche').value;
	// On vérifie que l'on a au moins 2 éléments de cochés
	var tableau = variable.split("-");
	var cpt = tableau.length;
	if ((cpt < 2)||(tableau[1]==""))
	{
		alert(wrd_min_max_offre);
		return false;
	}
	comparer()
};
//===============================================================================================
//Partie AJAX
function createRequestObject()
{
    var http;

    if(window.XMLHttpRequest)
    { // Mozilla, Safari, ...
        http = new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    { // Internet Explorer
        http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return http;
};
http = createRequestObject();
//g = Object();
function ajax_voir_details(id_diapo,texte_bulle,adresse_ofr_ref,adresse_sta,id_ofr_mar,obj_identifier,lgt,lat,pays,zoom) 
{
	if (document.getElementById("voir_" + obj_identifier).style.display == "block")
	{
		document.getElementById("voir_" + obj_identifier).style.display = "none";
		//document.getElementById("ligne_voir_" + obj_identifier).style.display = "none";				
	}
	else
	{
		if (document.getElementById("voir_" + obj_identifier).innerHTML == "")
		{
			try
			{
			  	http.open('post', url_site+'scripts/ajax_details_ofr_mar.php', true); //appel du programme avec la méthode post
				http.onreadystatechange = handleAJAXReturn; //abonnement de la fonction handleAJAXReturn à l'évenement onreadystatechange
				http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				//envoi de la requete avec les paramètres nécessaires.
				http.send('id_diapo='+id_diapo+'&id_ofr_mar='+id_ofr_mar+'&identifier='+obj_identifier);
			}
			catch (ex)
			{
				alert("Erreur : le traitement précédent n'est pas complètement terminé");
				http.open('post', url_site+'scripts/ajax_details_ofr_mar.php', true); //appel du programme avec la méthode post
				http.onreadystatechange = handleAJAXReturn; //abonnement de la fonction handleAJAXReturn à l'évenement onreadystatechange
				http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				//envoi de la requete avec les paramètres nécessaires.
				http.send('id_diapo='+id_diapo+'&id_ofr_mar='+id_ofr_mar+'&identifier='+obj_identifier);
			}
			document.getElementById("voir_" + obj_identifier).style.display = "block";
			document.getElementById("attente_" + obj_identifier).style.display = "block";
		} 
		else
		{
			document.getElementById("voir_" + obj_identifier).style.display = "block";				
			//document.getElementById("ligne_voir_" + obj_identifier).style.display = "";				
		}
	}
	//------------------------------------------------------------------------------------------//
	// Fonction : handleAJAXReturn()
	//
	// Prise en charge de l'évènement onreadystatechange de l'objet XMLHttpRequest
	// Nécessaire pour les requêtes AJAX, permet de connaître l'état de la requête en temps réel.
	//------------------------------------------------------------------------------------------//
	function handleAJAXReturn() {
		if(http.readyState == 4)
	    {
	    	//La requête est terminée et le serveur a retourné une réponse.
			//La requete est un succès
			// Utilisation du résultat
			if(http.status == 200)
	        {
				document.getElementById("voir_" + obj_identifier).style.display = "block";
				document.getElementById("voir_" + obj_identifier).innerHTML = "";
				document.getElementById("voir_" + obj_identifier).innerHTML = http.responseText;
				loadMap("map_" + obj_identifier,zoom);
				addresse = adresse_ofr_ref;
				texte = texte_bulle;
				createMarker(addresse, texte, 'map_' + obj_identifier,lgt,lat,adresse_sta,pays,zoom);
				//Initialisation de la galerie
			    initSlideShow(obj_identifier);
				document.getElementById("attente_" + obj_identifier).style.display = "none";
	        }
	        else
	        {
     			document.getElementById("voir_" + obj_identifier).style.display = "none";
				document.getElementById("attente_" + obj_identifier).style.display = "none";
        		alert('Erreur : ' + http.status);
	        }
	    }
	}
};
function closeDetails(element)
{
	element.parentNode.style.display = "none";
};

function ajax_comparer(id_coche)
{
	url_appel = url_site+"scripts/ajax_comparer.php";
	tab_input = document.getElementsByTagName("input");
	tab_check = new Object();
	if (document.getElementById("comparer").style.display == "block")
	{
		document.getElementById("comparer").style.display = "none";
	}
	else
	{
		try
		{
		  	http.open('post', url_appel, true); //appel du programme avec la méthode post
			http.onreadystatechange = handleAJAXReturn; //abonnement de la fonction handleAJAXReturn à l'évenement onreadystatechange
			http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			//envoi de la requete avec les paramètres nécessaires.
			http.send(id_coche);
		}
		catch (ex)
		{
			alert("Erreur : le traitement précédent n'est pas complètement terminé");
			http.open('post', url_appel, true); //appel du programme avec la méthode post
			http.onreadystatechange = handleAJAXReturn; //abonnement de la fonction handleAJAXReturn à l'évenement onreadystatechange
			http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			//envoi de la requete avec les paramètres nécessaires.
			http.send();
		}
		document.getElementById("comparer").style.display = "block";
//		document.getElementById("attente_comparer").style.display = "block";
	}
	//------------------------------------------------------------------------------------------//
	// Fonction : handleAJAXReturn()
	//
	// Prise en charge de l'évènement onreadystatechange de l'objet XMLHttpRequest
	// Nécessaire pour les requêtes AJAX, permet de connaître l'état de la requête en temps réel.
	//------------------------------------------------------------------------------------------//
	function handleAJAXReturn() {
		if(http.readyState == 4)
	    {
	    	//La requête est terminée et le serveur a retourné une réponse.
			//La requete est un succès
			// Utilisation du résultat
			if(http.status == 200)
	        {
				document.getElementById("comparer").style.display = "block";
				document.getElementById("comparer").innerHTML = "";
				document.getElementById("comparer").innerHTML = http.responseText;
				
				document.getElementById("attente_comparer").style.display = "none";
	        }
	        else
	        {
     			document.getElementById("comparer").style.display = "none";
				document.getElementById("attente_comparer").style.display = "none";
        		alert('Erreur : ' + http.status);
	        }
	    }
	};
};
//===============================================================================================

