//
// -------------------------------------------------------------
// Fichiers des scripts Ajax par défaut
// le chargement de ces fichiers doit être marqué dans la liste de lib_js de sites.inc.php
// -------------------------------------------------------------
// (c) J.MICUCCI / SEMI-K 
// 28/07/2010
//
//

//
// --------------------------------------------------
// Suivi de la position de la souris
//
var mouseX;
var mouseY;
function mousePosition(e)
 {
    if (!e) e = window.event;
    mouseX = (navigator.appName.substring(0, 3) == "Net") ? e.pageX: event.x + document.body.scrollLeft;
    mouseY = (navigator.appName.substring(0, 3) == "Net") ? e.pageY: event.y + document.body.scrollTop;
		
		// déplace quelque chose suivant la souris
		moveObj();
		
		
		try {
				var progressImage = document.getElementById("progressImgDiv");
				progressImage.style.left = mouseX + progressImage.offsetWidth + "px" ;
				progressImage.style.top = mouseY + progressImage.offsetHeight + "px" ;
		} catch(e) {}
		
}
if (navigator.appName.substring(0, 3) == "Net") document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = mousePosition;

var moveObject;
var moveObject_x = 7;
var moveObject_y = 0;
function moveObj(){
	try{
		obj = moveObject;


		
		obj.style.top = mouseY + moveObject_y + "px";
		obj.style.left = mouseX + moveObject_x + "px";
		
		
	} catch (e) {}
}

// --------------------------------------------------
// Tableau des légendes traduites
var legends = new Array();
function getLegend(legend)
{
	var translatedLegend = "";
	try {
		translatedLegend = legends[legend];
	}
	catch(e)
	{
		translatedLegend = legend;
	}
	return legend;
}

// --------------------------------------------------
// Interfaçage ajax
//
// responder => fichier PHP à solliciter
// args => arguments à faire passer à file (a=9&b=10)
// sid => la sid_key du user
// params => une chaine de variable de paramètres à mettre en 'eval()' : type='popup';css='classCSS';div='ajax_css';
//
var ajaxRequestAfterPopulate = new Array(); // tableau des actions éventuelles à réaliser après le chargement ajaxRequest
var countRequestAfterPopulate = 0;
var lastPositionX;
var lastPositionY;
var lastRequest;
var onmouseovervalue;

function ajaxRequest(responder, args, sid, params, form)
{
	var div = 'ajax_popup';
	var type = 'default';
	var css = div ;
	var datas = "";
	var after = "";
	var googlemap = "";
	var longitude = "";
	var latitude = "";
	var drag = 0;
	var position = "";
	function afterPopulate(){};
	
	// on crée l'image d'attente...
	try {
		var progressImage = document.getElementById("progressImgDiv");
	} catch(e)
	{
		var progressImage = null;
	}
	if (progressImage == null) {
		var progressImage = document.createElement("div");
    progressImage.setAttribute('id', "progressImgDiv");
    document.body.appendChild(progressImage);
		progressImage.style.visibility = 'hidden';
		progressImage.style.zIndex = '10000';
		progressImage.style.height = '20px';
		progressImage.style.width = '20px';
		progressImage.style.position = 'absolute';
		
		progressImageImg = document.createElement("img");
		progressImageImg.src = "templates/default/img/indicator.gif";
		progressImage.appendChild(progressImageImg);
	}
	
		
	lastRequestTmp = responder + args + sid + params + form;	
	
	// if (lastRequest != lastRequestTmp)
	{
		lastRequest = lastRequestTmp;
		// ------- on initialise les variables passées dans "params"
		try {
			eval(params);
		} catch(e) {}

		if (form != "")
		{
			var datas = getDatas(form);
		}


		// ------------ Exception : chargement de la carte GoogleMap
		if (googlemap != "" && longitude != "" && latitude != "")
		{
			ajaxRequestAfterPopulate[ajaxRequestAfterPopulate.length]="showGoogleMap('" + latitude + "', '" + longitude + "', '" + googlemap + "');";
		} 


		
		var div_append = div; // div dans lequel on place le résultat
		// on crée éventuellement un div pour recevoir la request
		// console.log ('here ' + div + " " + type);
		
		switch(type)
		{
			case "block" :
			{		
				try	
				{
						block = document.getElementById(div);
						block.innerHTML = ""; // ****** A tester 28/01/2010
						div_append = block.id;
				}
				catch(e)
				{}
				break;
			}	

			case "popup" :
			{
				cleanPopup(div);
				
				var popup = document.getElementById(div);
				
				
				if (popup == undefined)
				{
						// on crée le popup
						var popup = document.createElement("div");

			    popup.setAttribute('id', div);
			    document.body.appendChild(popup);
					popup.style.visibility = 'hidden';
					var block = document.createElement("div");
				  popup.appendChild(block);
				}
			    popup.setAttribute('class', css);
			    popup.setAttribute('className', css);
					if (drag == 0) setCloseButton(popup, sid, args);
					div_append = popup.id;

			 	afterPopulate = endLoading(popup, sid, args, params);
				if (drag == 1) moveObject = popup;
			}
			break;

			default : // on crée un petit popup 
			{
				cleanPopup(div);
					// on crée le popup
				var popup = document.createElement("div");

		    popup.setAttribute('id', div);
		    document.body.appendChild(popup);
				if (drag == 0) setCloseButton(popup, sid, args);
			  popup.setAttribute('class', css);
		    popup.setAttribute('className', css);
		    popup.style.visibility = 'hidden';
				var block = document.createElement("div");
			  popup.appendChild(block);
			 	afterPopulate = endLoading(popup, sid, args, params);
				if (drag == 1) moveObject = popup;
				
				div_append = popup.id;
			}
			break;
		}

		// position du popup
		var flagpos = false;


		if (type != "block") 
		{
			// ------- suit la souris
			if (drag == 1 && !flagpos) {
				ajaxRequestAfterPopulate[ajaxRequestAfterPopulate.length] = "positionDiv(div_append, {'type': 'mouseanddrag'})";
				popup.onmouseover = function()
				{
					onmouseovervalue = true;
				}
				popup.onmouseout = function()
				{
					onmouseovervalue = false;
				}
				flagpos = true;
			}

			// ----- positionné sur la souris
			if (position == "mouse" && !flagpos) {
				ajaxRequestAfterPopulate[ajaxRequestAfterPopulate.length] = "positionDiv(div_append, {'type': 'mouse'})";
				flagpos = true;
			}
			// ------ positionné au centre de la page
			if (position == "center" && !flagpos) {
				ajaxRequestAfterPopulate[ajaxRequestAfterPopulate.length] = "positionDiv(div_append, {'type': 'center'})";
				flagpos = true;
			}
			// ------ positionné à la dernière position de la fenêtre
			if (!flagpos) {
				ajaxRequestAfterPopulate[ajaxRequestAfterPopulate.length] = "positionDiv(div_append, {'type': 'default'})";
			}		
		}


		url = "getAjaxContent.php?sid=" + sid + "&url=" + responder + "&" + args;
		
		
		// on fait la requête
		showProgressImage();
    $.ajax({  // ajax
      url: url, // url de la page à charger
			type: "POST",
      cache: false, // pas de mise en cache
			data : datas,
      success:function(html){ // si la requêté est un succès
        //$("#" + div_append).empty(); // on vide le div
		    $("#" + div_append).append(html); // on met dans le div le résultat de la requete ajax				
				hideProgressImage();
      },
      error:function(XMLHttpRequest, textStatus, errorThrows){ // erreur durant la requete
				hideProgressImage();
      },
			complete:function(XMLHttpRequest, textStatus) {
				// textStatus == "success";
				try {
					afterPopulate();
				} catch (e) {}

				try {
					nicEditStart('_popup'); // ***** HACK à corriger pour permettre le chargement de nicEdit en httprequest
				} catch(e) {	}

				// ajaxRequestAfterPopulate : actions post chargement
				for(i=0; i< ajaxRequestAfterPopulate.length; i++)
				{
					try {
						eval(ajaxRequestAfterPopulate[i] + ";");
					} catch(e){}
				}
				// quand on a tout éxécuté, on vide le tableau :
				// ***** pour l'instant on vide pas, sinon ça bug avec l'affichage de la googlemap
				countRequestAfterPopulate++;
				// if (countRequestAfterPopulate>3) ajaxRequestAfterPopulate = new Array();

				// console.log(this.baseElement.parentNode.offsetWidth);
				
			}
    });
		
		
	  //var fi = new FragmentImporter(url, afterPopulate, block, datas);
	  // fi.load();
	}
	
}

// div_append => div.id
// position => array pour la position ("type", ...)
// 
function positionDiv(div_append, position)
{
	var div = document.getElementById(div_append);
	
	var type = position['type'];	
	
	
	switch (type)
	{
		// ----- positionné sur la souris
		case "mouseanddrag" :
		{
			var distance = 5; // éloignement du div par rapport au pointeur pour éviter les recouvrement malheureux		
			
			lastPositionX = (mouseX + distance );
			lastPositionY = (mouseY + distance );
			
			// si ça dépasse en bas on bouge la fenêtre
			var bottom = mouseY + div.offsetHeight;
			var top = mouseY - div.offsetHeight;
			if (bottom > document.body.clientHeight && top > 0) lastPositionY =  mouseY - div.offsetHeight - distance; 
			// else if (top < 0) lastPositionY =  mouseY + div.offsetHeight + distance; 

			var right = mouseX + div.offsetWidth;
			var left = mouseX - div.offsetWidth;
			if (right > document.body.clientWidth && left > 0) lastPositionX =  mouseX - div.offsetWidth - distance; 
			else if (right < 0) lastPositionX =  mouseX + div.offsetWidth + distance; 
			
			if (lastPositionY != mouseY) {
				moveObject_y = lastPositionY - mouseY;
				// console.log("positionDiv : " + moveObject_y);
			}
			if (lastPositionX != mouseX) {
				moveObject_x = lastPositionX - mouseX;
				// console.log("positionDiv : " + moveObject_y);
			}
			
			
			div.style.left = lastPositionX + "px"  ; 
			div.style.top =  lastPositionY + "px"  ;
			break;
		}
		
		// ----- positionné sur la souris
		case "mouse" :
		{
			lastPositionX = (mouseX );
			lastPositionY = (mouseY );
			
			// si ça dépasse en bas on bouge la fenêtre
			var bottom = mouseY + div.offsetHeight;
			var top = mouseY - div.offsetHeight;
			if (bottom > document.body.clientHeight && top > 0) lastPositionY =  mouseY - div.offsetHeight; 

			var right = mouseX + div.offsetWidth;
			var left = mouseX - div.offsetWidth;
			if (right > document.body.clientWidth && left > 0) lastPositionX =  mouseX - div.offsetWidth; 
			
			
			div.style.left = lastPositionX + "px"  ; 
			div.style.top =  lastPositionY + "px"  ;
			break;
		}
		
		
		// ------ positionné au centre de la page
		case "center" :
		{
			try {
				lastPositionX = (document.body.clientWidth - div.offsetWidth)/2;
				lastPositionY = (document.body.clientHeight - div.offsetHeight)/2;
				
			} catch (e)
			{
				lastPositionX = (window.innerWidth - div.offsetWidth)/2;
				lastPositionY = (window.innerHeight - div.offsetHeight)/2;
				
			}
			
			lastPositionY = (lastPositionY < 0) ? 0 : lastPositionY;
			lastPositionX = (lastPositionX < 0) ? 0 : lastPositionX;
			
			div.style.left = lastPositionX + "px"  ; // centrer par rapport à la page
			div.style.top =  lastPositionY + "px"  ; // centrer par rapport à la page
			break;
			
		}
		// ------ positionné à la dernière position de la fenêtre
		default :
		{
			div.style.left = lastPositionX + "px"  ; // dernière position de la fenêtre
			div.style.top = lastPositionY + "px"  ; // dernière position de la fenêtre
		}
		
	}
	
}


function setCloseButton(div, sid, args)
{
	// bouton fermer
	var button_close = document.createElement("div");
  button_close.setAttribute('id', 'close');
  div.appendChild(button_close);
	url = "getAjaxContent.php?sid=" + sid + "&url=misc/closeButton.php&" + args;
	
	/*
  var fi = new FragmentImporter(url, nop, button_close, '');
	fi.load();
	*/
	
	$.ajax({  // ajax
    url: url, // url de la page à charger
		type: "POST",
    cache: false, // pas de mise en cache
    success:function(html){ // si la requêté est un succès
      // $("#" + button_close.id).empty(); // on vide le div
	    $("#" + button_close.id).append(html); // on met dans le div le résultat de la requete ajax
    },
    error:function(XMLHttpRequest, textStatus, errorThrows){ // erreur durant la requete
    }
  });
}

function cleanPopup(divName)
{
	try	// on vire le popup si il y a déjà
	{
			popup = document.getElementById(divName);
			//console.log(onmouseovervalue);
			
			if (!onmouseovervalue)
			{			
				document.body.removeChild(popup);
				moveObject = null;
			}
	}
	catch(e)
	{}
	
	// on efface le background éventuellement
	try	// on vire le popup si il y a déjà
	{
			bckgd = document.getElementById('background_popup');
			document.body.removeChild(bckgd);
			moveObject = null;
	}
	catch(e)
	{}
}

// ---------- Affiche un diaporama avec les photos de la page
// dans params => on doit trouver la variable photoArray= nom du tableau array(urlphotos1, urlphotos2,...)
function showPictDiaporama(params)
{
	var div = 'ajax_popup';
	var css = div ;
	var photos = new Array();
	var photosArray = "";
	var drag = 0;
	var position = "";
	var background = 0;
	var img = 0;
	
	// ------- on initialise les variables passées dans "params"
	try {
		eval(params);
		eval("photos = " + photosArray + ";");
	} catch(e) {}
			
	if (photos.length > 0)
	{
		cleanPopup(div);
		
		// ---------- on ajoute un background noir transparent 
		if (background=='1')
		{

			var bckgd = document.createElement("div");
		  bckgd.setAttribute('id', 'background_popup');
		  document.body.appendChild(bckgd);
			bckgd.zIndex = 200;

			bckgd.style.width = document.body.clientWidth + "px";
			bckgd.style.height = document.body.clientHeight + "px";
			bckgd.style.backgroundColor = "#000000";
			bckgd.style.position = "absolute";
			bckgd.style.top= "0px";
			bckgd.style.left= "0px";
			
			bckgd.onclick = function(){
				cleanPopup('ajax_popup');
			}
		}
		
		
		// on crée le popup
		var popup = document.createElement("div");
	  popup.setAttribute('id', div);
	  document.body.appendChild(popup);
	  popup.setAttribute('class', css);
	  popup.setAttribute('className', css);
	
		if (drag == 1) moveObject = popup;		
		
		// on ajoute les boutons next + suivant
		// diaporama_messages['previous']
		// 'photosArray=\'phototheque\';background=\'1\';position=\'center\';img=\'0\';'
		
		var next_img = (img + 1) > photos.length -1 ? 0 : img + 1;
		var previous_img = (img - 1) < 0 ? photos.length - 1 : img - 1;
		var buttons = "<div class='next_previous'>"; 
		buttons += "<a href='#' onclick=\"showPictDiaporama('photosArray=\\\'" + photosArray + "\\\';position=\\\'" + position + "\\\';background=\\\'" + background + "\\\';img=" + previous_img + ";')\">" + diaporama_messages['previous'] + "</a>";
		buttons += " <span class='infos'>" + (img + 1 )+ "/" + photos.length + "</span> ";
		buttons += "<a href='#' onclick=\"showPictDiaporama('photosArray=\\\'" + photosArray + "\\\';position=\\\'" + position + "\\\';background=\\\'" + background + "\\\';img=" + next_img + ";')\">" + diaporama_messages['next'] + "</a>";
		buttons += "</div>";
		popup.innerHTML = photos[img] + buttons; // 
		
		var flagpos = false;
		// ---------- positionné à l'emplacement de la souris
		if (position == "mouse" && !flagpos) {
			lastX = (mouseX - (popup.offsetWidth/2));
			lastY = (mouseY - (popup.offsetHeight/2));
			popup.style.left = lastX + "px"  ; // centrer par rapport au lien
			popup.style.top =  lastY + "px"  ; // centrer par rapport au lien
			flagpos = true;
		}
		// -------- positionné au centre de la page
		if (position == "center" && !flagpos) {
			try {
				var lastX = (window.innerWidth - popup.offsetWidth)/2;
				var lastY = (window.innerHeight - popup.offsetHeight)/2;
			} catch (e)
			{
				var lastX = (document.body.clientWidth- popup.offsetWidth)/2;
				var lastY = (document.body.clientHeight - popup.offsetHeight)/2;
			}
						
			
			popup.style.left = lastX + "px"  ; // centrer par rapport à la page
			// popup.style.top =  lastY + "px"  ; // centrer par rapport à la page
			popup.style.top = "100px";
			
			flagpos = true;
		}
		// ---------- positionné sur la dernière positition de la fenêtre
		if (!flagpos) {
			popup.style.left = lastX + "px"  ; // dernière position de la fenêtre
			//popup.style.top = lastY + "px"  ; // dernière position de la fenêtre
			popup.style.top = "100px";
		}
		
		popup.zIndex = 3000;
		

	}
	
	

}


// ------------------------ Function exécutée après la création du popup
function endLoading(div, sid, args, params)
{
	// div.style.left = 24 + "px";
	div.style.visibility = 'visible';
	
}

// ------------------------ Active/désactive un champ de formulaire
function enabledField(fieldID)
{	
	field = document.getElementById(fieldID);
		
	field.disabled = !field.disabled;
	
}

// ------------------------ Inverse la selection de toutes les checkbox
function invertAllCheckbox(formID)
{
	// ******* le formID déconne, j'ai dû le retirer 
	var fields = document.getElementsByTagName('input');
	for (var i=0; i < fields.length; i++)
	{
		if (fields[i].type == "checkbox") {
			fields[i].checked = !fields[i].checked;
		}
 	}	
}



// ------------------------ Function ferme la fenêtre
function closePopup(div)
{
	
	try	// on vire le popup si il y a déjà
	{
			popup = div.parentNode.parentNode;
			document.body.removeChild(popup);
	}
	catch(e)
	{
		try {
			if (typeof(div) == "string") {
				var popup = document.getElementById(div);
				document.body.removeChild(popup);
			}
		} 
		catch(e)
		{
			if (typeof(div) == "string") {
				popup.style.visibility = 'hidden';
			}
			else div.parentNode.parentNode.style.visibility = 'hidden';
		}
	}
	
	cleanPopup('background_popup');
}


// ------------------------ Function nop
function nop(){}


// ----- met en place le roll over sur une image
function rolloverImg(image) {
	image.status = true;
	image.src1 = image.src;
	var lengthImageName = image.src.length;
	var imageName = image.src.substring(0, lengthImageName - 4);
	var imageExt = image.src.substring(lengthImageName - 3, lengthImageName);
	var imageRo = imageName + "_ro." + imageExt;
	if (file_exists(imageRo)) image.src = imageRo;
	//alert(image.src);
	
	image.onmouseout = function() {
		image.src = image.src1;
	}
}

// ------- file_exists
function file_exists (url) {
    // Returns true if filename exists  
    // 
    // version: 1101.3117
    // discuss at: http://phpjs.org/functions/file_exists    // +   original by: Enrique Gonzalez
    // +      input by: Jani Hartikainen
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // %        note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.
    // %        note 1: Synchronous so may lock up browser, mainly here for study purposes.     // *     example 1: file_exists('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm');
    // *     returns 1: '123'
    
    var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    if (!req) {throw new Error('XMLHttpRequest not supported');}      
    // HEAD Results are usually shorter (faster) than GET
    req.open('HEAD', url, false);
    req.send(null);
    if (req.status == 200){        return true;
    }
    
    return false;
}

// ------------------------- Affiche la petite roue qui tourne
function showProgressImage()
 {
    try
    {
        var progressImageDiv = document.getElementById("progressImgDiv");
        progressImageDiv.style.visibility = 'visible';
    }
    catch(e)
    {}
}

// ------------------------- Masque la petite roue qui tourne
function hideProgressImage()
 {
    try
    {
        //var progressImage = document.getElementById("progressImg");
        //progressImage.src = 'templates/common/icons/indicator_ok.gif';
        var progressImageDiv = document.getElementById("progressImgDiv");
        progressImageDiv.style.visibility = 'hidden';
    }
    catch(e)
    {}
}

// ------------------------- Récupère les champs du form 'formID'
function getDatas(formID)
{
	var form = document.getElementById(formID);
    var data = "";
    // construire la variable Data;
    var champ = form.getElementsByTagName('input');
    data += buildData(champ);
		
		// recopier les textarea en nicEdit
		var textarea_block = form.getElementsByTagName('textarea');
		for(var k=0; k < textarea_block.length; k++) {
			try {
				nicEditors.findEditor(textarea_block[k].id).saveContent();
			} catch (e) {}
		}
    var champ = form.getElementsByTagName('textarea');
    data += buildData(champ);

    var champ = form.getElementsByTagName('button');
    data += buildData(champ);

    var champ = form.getElementsByTagName('select');
    data += buildData(champ);
		
		// googlemap
		try {
			
			var gm = document.getElementById('googlemap');
			data += '&gpsposition=' + gpsposition;
		} catch(e) {}
		
		
		return data;
}


// ------------------------- check googlemap
// modifie un form en insérant un champ hidden avec la long et la lat
function checkGooglemap(fieldID, googlemap)
{
	// googlemap
	try {
		var field = document.getElementById(fieldID);
		field.value = gpsposition;
		
	} catch(e) {}
}

// ------------------------- Récupère le contenu du champ 'field'
function buildData(field)
 {
    var data = "";
    var count = field.length;
    for (var i = 0; i < count; i++) {
				// console.log(field[i].name);
        if ((field[i].type == "checkbox") || (field[i].type == "radio"))
        {
            // traitement des séries de cases à cocher
            //alert (field[i].checked) ;
            if (field[i].checked)
            {
                if (field[i].type == "checkbox") data += field[i].name + "=on&";
                if (field[i].type == "radio") data += field[i].name + "=" + field[i].value + "&";
            }
            else
            {
                if (field[i].type != "radio") data += field[i].name + "=0&";
            }
        }
        else
        {
            if (field[i].multiple)
            {
                // traitement des select multiples
                var countMultiple = field[i].length;
                for (var ii = 0; ii < countMultiple; ii++) {
                    if (field[i][ii].selected) data += field[i].name + "=" + field[i][ii].value + "&";
                    // + "[" + ii + "]
                }
            }
            else data += field[i].name + "=" + encodeURIComponent(field[i].value) + "&";
            //else data += field[i].id + "=" + field[i].value + "&";
        }
    }
    return data;
}

// ------------------------- Affiche un popup pour confirmer une action
function areYouSure(message, next) {
	// message : message affiché
	message = ((message == "") || (message == undefined)) ? "Are you sure of that ?" : message;
	if (confirm(message)) {
		eval(next);
	} else {
		return false;
	}	
}
function areYouSureForm(message, formID, fieldID) {
	// message : message affiché
	message = ((message == "") || (message == undefined)) ? "Are you sure of that ?" : message ;
	if (confirm(message)) {
		var field = document.getElementById(fieldID);
		var form = document.getElementById(formID);
				
		var newField = document.createElement("input");
	  newField.name= field.name;
		newField.value = field.value;
		newField.type='hidden';
		
	  form.appendChild(newField);
	
		form.submit();
	} else {
		return false;
	}
		
}
// ------------------------ Affiche une googleMaps
var gpsposition = 0;
function showGoogleMap(longitude, latitude, divmap) {
	// console.log("maps : " + longitude + " "+ latitude );
	var latlng = new google.maps.LatLng(longitude, latitude);
	//objet contenant des propriétés avec des identificateurs prédéfinis dans Google Maps permettant
	//de définir des options d\'affichage de notre carte
	var options = {
		center: latlng,
		zoom: 14,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	
	//constructeur de la carte qui prend en paramêtre le conteneur HTML
	//dans lequel la carte doit s\'afficher et les options
	if (map = document.getElementById(divmap))
	{
		var myMap = new google.maps.Map(map, options);
		
		//création du marqueur
		var myMarker = new google.maps.Marker({
				position: new google.maps.LatLng(longitude, latitude),
				map: myMap,
				draggable: true 
			});
		
		// récupération de la position	
		google.maps.event.addListener(myMarker, 'dragend', function(event) {
				//message d'alerte affichant la nouvelle position du marqueur
				//alert("La nouvelle coordonnée du marqueur est : "+event.latLng);
				gpsposition = event.latLng;
				
		});
		
		
	}
}



// éxécuter un script chargé par un requète Http
function loadContentLocation(sid, responder, args)
{
	url = "getAjaxContent.php";
	args = "sid=" + sid + "&url=" + responder + "&" + args;
		
	var xhr_object = null;
	xhr_object = new XMLHttpRequest();
	xhr_object.open("POST", url, true);
	xhr_object.onreadystatechange = function() {
		if (xhr_object.readyState == 4) {
			var string = xhr_object.responseText ;
			try {
				eval(string);
			}catch(e){};
		}
	}
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send(args);
}

// retourne le contenu d'une page chargé par un requète Http
function loadContent(sid, responder, args)
{
	url = "getAjaxContent.php";
	args = "sid=" + sid + "&url=" + responder + "&" + args;
		
	var xhr_object = null;
	xhr_object = new XMLHttpRequest();
	xhr_object.open("POST", url, true);
	xhr_object.onreadystatechange = function() {
		if (xhr_object.readyState == 4) {
			var string = xhr_object.responseText ;
			return string;
		}
	}
	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr_object.send(args);
}


function deleteArticle(id , sid, site, returnUrl) {
	
		var url = "modules/article_0/responders/deleteArticle.php";
		
		var urlAjax = "getAjaxContent.php?sid=" + sid + "&s=" + site + "&id=" + id + "&url=" + url;
		
		// on fait la requête
		showProgressImage();
    $.ajax({  // ajax
      url: urlAjax, // url de la page à charger
			type: "POST",
      cache: false, // pas de mise en cache
			data : datas,
      success:function(html){ // si la requêté est un succès
				hideProgressImage();
      },
      error:function(XMLHttpRequest, textStatus, errorThrows){ // erreur durant la requete
				hideProgressImage();
      },
	complete:function(XMLHttpRequest, textStatus) {
		// quand on a tout exécuté, on recharge la page :
		
		window.location.replace(returnUrl);
		}
    });
	
}

// -------- OUVRE UNE FENETRE AVEC JQUERY ----------
function openJWindow (img, popWidth) {
	var popID = "popup"; //Trouver la pop-up correspondante
	
	

		// on crée le popup
		var popup = document.createElement("div");
	  	popup.setAttribute('id', popID);
	  popup.setAttribute('class', 'popup_block');
	  popup.setAttribute('className', 'popup_block');
	  	document.body.appendChild(popup);
	
	//var imgs = object.getElementsByTagName('img');
	var html_content = "<img src='" + img + "' />";
	
	

	//Faire apparaitre la pop-up et ajouter le bouton de fermeture
	$('#' + popID).fadeIn().css({
		'width': Number(popWidth)
	})
	.prepend('');
	
	$('#' + popID).html('<a class="close" href="#" title="Fermeture" onclick="closeJWindow()" >Fermer la fenêtre</a>' + html_content);

	//Récupération du margin, qui permettra de centrer la fenêtre - on ajuste de 80px en conformité avec le CSS
	var popMargTop = ($('#' + popID).height() + 80) / 2;
	var popMargLeft = ($('#' + popID).width() + 80) / 2;
		
	var offset = $('#' + popID).offset();
	if ((offset.top - popMargTop) < 0) popMargTop = offset.top;
	
	
	// console.log(popMargTop);
	
	
	//On affecte le margin
	$('#' + popID).css({
		'margin-top' : -popMargTop,
		'margin-left' : -popMargLeft
	});

	//Effet fade-in du fond opaque
	$('body').append(''); //Ajout du fond opaque noir
	//Apparition du fond - .css({'filter' : 'alpha(opacity=80)'}) pour corriger les bogues de IE
	$('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn();

	return false;
}

//Fermeture de la pop-up et du fond
function closeJWindow() { //Au clic sur le bouton ou sur le calque...
	$('#fade , .popup_block').fadeOut(function() {
		$('#fade, a.close').remove();  //...ils disparaissent ensemble
	});
	return false;
}

// menu accordion
function accordion() {
	this.click(function() {
		$(this).next().toggle('slow');
		return false;
	}).next().hide();
}
