	
	var is_admin = false;
	var default_center_coord = [43.926301,2.147338];
	var default_zoom = 14;

	// RS >> nombre de marqueurs trouvés
	var nb_markers_found = 0;
	var nb_markers_added = 0;
	var markers_adding = false;
	// Liste des markers des boutiques
	var arrayMarker = [];
	// Liste des quartiers (polygones)
	var arrayPolygons = [];	
	// Page courante dans le mode adresse
	var page_courante;	
	
	//Lance la recherche des boutiques en ajax
	function LancerRechercheAjax()
	{		
		// RS >> actualiser le mot clé de la recherche textuelle
		if (jQuery("#recherche_motcle").val() != "Recherche")
			jQuery("#motcle").val(jQuery("#recherche_motcle").val());
		
		form_serialize = jQuery("#form_recherche").serialize();
		//var resizeHeight = true;
		
		jQuery.ajax({
			type: "POST",
			url: '/sites/module/ajax/maj_marker_maps.php',
		 	data: form_serialize+"&mode="+is_admin,
		    cache: false,
		    async: true,
		    success: function(response) {
				nb_markers_found = 0;
				nb_markers_added = 0;
				markers_adding = false;
				
		    	if (response == -1)
			    	alert("Impossible d'afficher les boutiques de cette rubrique");
		    	else
		    	{
		    		var infos = jQuery.parseJSON(response);

		    		jQuery("#btq_afficher").val(infos.btq_afficher);
		    		
		    		// supprimer les markers
		    		var nb_markers_deleted = 0;
		    		array_btq_supprimer = infos.btq_supprimer.split(",");
		    		jQuery(array_btq_supprimer).each(function(index) {
		    			if (array_btq_supprimer[index] == "")
		    				return true;
		    			removeMarker(array_btq_supprimer[index]);
		    			nb_markers_deleted++;
		    		});
		    				    		
		    		// ajouter les markers
		    		array_btq_ajouter = infos.btq_ajouter.split("|");
		    		nb_markers_found = array_btq_ajouter.length;
		    		if (nb_markers_found == 1 && array_btq_ajouter[0] == "")
		    		{
		    			nb_markers_found = 0;
		    		}
		    		else
		    		{
		    			markers_adding = true;
		    			jQuery(array_btq_ajouter).each(function(index) {
			    			if (array_btq_ajouter[index] == "")
			    				return true;
			    			array_one_btq_ajouter = array_btq_ajouter[index].split("[~]");
			    			//alert(array_one_btq_ajouter);
			    			addMarker(array_one_btq_ajouter[2], array_one_btq_ajouter[3], array_one_btq_ajouter[1], array_one_btq_ajouter[4], array_one_btq_ajouter[0], array_one_btq_ajouter[5], array_one_btq_ajouter[6]);
			    		});
		    		}
		    		
		    		// RS >> vérifier si il reste des markers affichés et recentrer dessus
		    		if (nb_markers_found == 0 && nb_markers_deleted > 0)
		    			FitZoomToMarkers();
		    		
		    		// ajouter les blocs adresse
		    		addAddress(infos.result_addresses);
		    		addPagination(infos.result_pagination);
		    		jQuery("#page_1").html("<b>" + jQuery("#page_1").html() + "</b>");
		    		page_courante = 1;
		    		jQuery("#span_nb_resultat").html(infos.nb_resultat);
		    		
		    		if (!markers_adding)
		    			ResizeSiteHeight();
		    		//resizeHeight = false;
		    	}
		    },
		    error: function() {
		    	//centerMap(default_center_coord, default_zoom);
				ResizeSiteHeight();
		    }
		});
		
	}
	
	// RS >> centrer la carte
	function centerMap(coord, zoom)
	{
		if (coord == 0 || zoom == 0)
			return;
		if (markers_adding)
			return;
		if (jQuery('#map_canvas div').length == 0)
			return;
		try {
			//alert("centering map");
			jQuery('#map_canvas').jmap('MoveTo', {
				'mapZoom': zoom,
				'mapCenter': coord
			});
		} catch(err) {
			//alert(err);
		}
	}

	function ResizeZoneItineraire()
	{
		if (jQuery("#zone_itineraire").is(":visible"))
		{
			var hauteur_directions = jQuery("#zone_itineraire").outerHeight() - (jQuery("#itineraire_titre").outerHeight() + jQuery("#itineraire_infos").outerHeight());
			jQuery("#map_directions").height(hauteur_directions);
			jQuery("#map_directions").css('padding', '0px');
			jQuery("#map_canvas").width(jQuery("#content_panel").width() - 260);
			jQuery("#map_canvas").css('left', '260px');
		}
		else
		{
			jQuery('#map_canvas').width(jQuery("#content_panel").width());
			jQuery("#map_canvas").css('left', '0');
		}
	}

	//Ajouter un marker pour une boutique
	function addMarker(lat, lng, title, alias, id, adresse, idcateg)
	{		
		if(lat == "0" || lng == "0")
		{
			jQuery('#map_canvas').jmap('SearchAddress', {
	            'query': adresse,
	            'returnType': 'getLocations'
	        }, function(result, options) {		            
	        	
	        	var valid = Mapifies.SearchCode(result.Status.code);
	            if (valid.success)
	            {
	            	jQuery.each(result.Placemark, function(i, point){
		            	addMarkerFromCoord(id, point.Point.coordinates[1], point.Point.coordinates[0], alias, idcateg, title);
	                });
	            } else {
	            	//alert("Impossible de trouver l'adresse \""+adresse+"\". ("+valid.message+")");	            	
	            }
	        });				
		}
		else
			addMarkerFromCoord(id, lat, lng, alias, idcateg, title);
		
	}
	function addMarkerFromCoord(id, myLat, myLng, alias, idcateg, title)
	{
		var options = new Array();
		
		// coordonnees
		if(myLat == "0" || myLng == "0")
			options['pointLatLng'] = default_center_coord;
		else
			options['pointLatLng'] = [myLat, myLng];
		
		// icone marqueur
		if(jQuery.browser.msie && jQuery.browser.version == 6)
		{
			// curseur de base googlemaps
		}
		else
		{
			// curseur perso en png
			if (idcateg == undefined || idcateg == null)
				idcateg = 0;
			var customIcon = new GIcon();
			customIcon.image = "/sites/module/img/marker_"+idcateg+".png";
			customIcon.shadow = "http://chart.apis.google.com/chart?chst=d_map_pin_shadow";
			customIcon.iconSize = new GSize(32, 32);
			customIcon.shadowSize = new GSize(50, 32);
			customIcon.iconAnchor = new GPoint(16, 32);
			customIcon.infoWindowAnchor = new GPoint(16, 0);
			customIcon.transparent = "/sites/module/img/marker_transparent.png";
			customIcon.printImage = "/sites/module/img/marker_oldie.gif";
			customIcon.mozPrintImage = "/sites/module/img/marker_oldmoz.gif";
			options['pointIcon'] = customIcon;
		}
		
		// RS >> infobulle des infos de la boutique
		if (title)
		{
			options['pointOpenHTMLEvent'] = 'mouseover';
			options['pointCloseHTMLEvent'] = 'mouseout';
			options['pointHTML'] = title;
		}
		
		// centrer sur la boutique si il n'y en a qu'une
		//if (nb_markers_found == 1)
			//options['centerMap'] = true;

		jQuery('#map_canvas').jmap('AddMarker', options, function(marker, options) {		            
			if (id != undefined)
			{
				arrayMarker[id] = marker;
				nb_markers_added++;
			}
			GEvent.addListener(marker, 'click', function(){
				afficherFiche(alias);
			});
			
			// RS >> calculer le niveau de zoom/dézoom nécessaire
    		if (nb_markers_added == nb_markers_found)
    		{
    			FitZoomToMarkers();
    			//markers_adding = false;
    			//ResizeSiteHeight();
    		}
        });
	}
	
	function FitZoomToMarkers()
	{
		var nb_markers_affiches = 0;
		var currentMarker = null;
		var markers_bounds = null;
		markers_bounds = new GLatLngBounds();
		
		jQuery.each(arrayMarker, function(id, value) {
			if (arrayMarker[id] != undefined)
			{
				var marker = arrayMarker[id];
				if (typeof(marker)=='string' && marker == "del")
					return true;
				currentMarker = marker;
				markers_bounds.extend(marker.getLatLng());
				nb_markers_affiches++;
			}
		});
		if (nb_markers_affiches == 0)
			return;
		
		if (nb_markers_affiches == 1 && currentMarker != null)
		{
			markers_adding = false;
			centerMap([currentMarker.getLatLng().lat(),currentMarker.getLatLng().lng()], default_zoom);
		}
		else
		{
			var diffZoom = null;
			//if (nb_markers_affiches < 20)
				//diffZoom = 1;
			jQuery('#map_canvas').jmap('FitZoomToMarkers', markers_bounds, diffZoom);	
		}
		markers_adding = true;
	}
	
	
	//Supprime tous les markers
	function removeAllMarker()
	{
		jQuery.each(arrayMarker, function(id, value) {
			removeMarker(id);
		});
	}

	//supprime un marker
	function removeMarker(id)
	{
		var marker = arrayMarker[id];
		if (marker != undefined)
		{
			if (typeof(marker)=='string' && marker == "del")
				return;
			jQuery('#map_canvas').jmap('RemoveMarker', arrayMarker[id]);
			arrayMarker[id] = "del";
		}
	}
	
	// RS >> supprime les quartiers (polygons)
	function RemoveAllPolygons()
	{
		if (arrayPolygons != undefined)
		{
			jQuery.each(arrayPolygons, function(id, value) {
				if (arrayPolygons[id] != undefined)
					jQuery('#map_canvas').jmap('RemovePolygon', arrayPolygons[id]);
			});
		}	
	}

	//Ajoute une boutique dans la liste des adresses
	function addAddress(text)
	{
		jQuery("#address_list").html(text);
	}

	//Ajoute la pagination dans la liste des adresses
	function addPagination(pagination)
	{
		jQuery("#adr_pagination").remove();
		jQuery("#address_canvas").append(pagination);
	}

	//Affiche la fiche d'un commerçant
	function afficherFiche(alias)
	{
		if (is_admin)
		{
			jQuery(location).attr("href", "/Modifiermafiche.html?code="+alias)
		}
		else
		{
			fichePrettyPhoto.openBox('FicheVitrine.html&code='+alias+'&ajax=true&width=800&height=620&cache=false', '', '', function() {
				LoadFicheScripts();
			}, function() {
				if (encartPromosSlider != null)	
					encartPromosSlider.startShow();
				if (pubsSlider != null)
					pubsSlider.startShow();
			});
		}
	}


	//Efface totalement la recherhce
	function EffacerRecherche()
	{
		removeAllMarker();
		jQuery("#btq_afficher").val("");
		jQuery("#all").val("");
		
		var valeur_select = jQuery("#sujet_marques option[value='-1']").text();
		jQuery("#sujet_marques").next().val(valeur_select);
		jQuery("#sujet_marques").val("-1");
		
		jQuery("#col_gauche_panel input[type=checkbox]").attr('checked', false);

		LancerRechercheAjax();
	}

	//Changer de page dans le mode adresse
	function changerPage(page, liste_btq)
	{		
		jQuery.ajax({
			type: "POST",
			url: '/sites/module/ajax/change_page.php',
		 	data: "liste_boutique="+liste_btq,
		    cache: false,
		    async: true,
		    success: function(response) {		    
		    	if (response == -1)
			    	alert("Impossible de changer de page");
		    	else
		    	{
		    		var infos = jQuery.parseJSON(response);
		    		addAddress(infos.result_addresses);
		    		
		    		var nb_page = 0;
		    		jQuery("#adr_pagination a").each(function() {
		    			if (jQuery(this).attr("id").indexOf("page") == -1)
		    				return true;
		    			
		    			nb_page++;
			    		current_page = jQuery(this).attr("id").substring(5);
						if (page == current_page)
							jQuery(this).html("<b>" + current_page + "</b>");
						else
							jQuery(this).html(current_page);
			    	});

		    		if (page > 1)
		    		{
			    		jQuery("#btn_prev").html("<img src='/sites/templates/images/prev.jpg' border='0' />");
			    		jQuery("#btn_prev").attr("href", "javascript:pagePrecedente();");
			    		
		    		}
		    		else
			    	{
		    			jQuery("#btn_prev").html("");
		    			jQuery("#btn_prev").removeAttr("href");
			    	}
			    	
		    		if (page == nb_page)
		    		{
			    		jQuery("#btn_next").html("");
			    		jQuery("#btn_next").removeAttr("href");
		    		}
		    		else
			    	{
		    			jQuery("#btn_next").html("<img src='/sites/templates/images/next.jpg' border='0' />");
		    			jQuery("#btn_next").attr("href", "javascript:pageSuivante();");
			    	}
		    		
		    		page_courante = page;
		    	}
		    }
		});
	}

	//Passer à la page suivante dans le mode adresse
	function pageSuivante()
	{
		var page_suivante = page_courante+1;
		if (jQuery("#page_"+page_suivante).attr("id") != undefined)
		{
			page_courante++;
			jQuery(location).attr("href", jQuery("#page_"+page_courante).attr("href"));
		}	
	}

	//Passer à la page précédente dans le mode adresse
	function pagePrecedente()
	{
		var page_precedente = page_courante-1;
		if (jQuery("#page_"+page_precedente).attr("id") != undefined)
		{
			page_courante--;
			jQuery(location).attr("href", jQuery("#page_"+page_courante).attr("href"));
		}	
	}
