//<![CDATA[
var map;
var marker;
var geocoder = new GClientGeocoder();
var tilelayers;
//--- Valeur par défaut à utiliser s'il n'y a pas de cookie
var lat = 45.86897519703922;
var lng = 2.7850341796875;
var zoom = 9;
var zoomMax=13;
var zoomMin=6;
var MapTyp = 3;
//--- Paramètre du cookie
//------ Nom du cookie
var cookiename = "mapinfo";
//------ Délai d'expiration en nombre de jours
var expiredays = 1;
//--- Types d'informations à charger sur la carte
var ListTyp = "--1-";
var typH="";
//--- Position horizontale de la barre de chargement
var LeftPos;
//--- Permet de savoir quel type d'hébergement a été coché
var tot="";

//================================================================================================
//--- FONCTIONS DE GESTION DES CONTENUS DE LA CARTE
//================================================================================================

//-----------------------------------------------
//--- Fonction de gestion des types d'informations à charger sur la carte
function DataToLoad(Id,Check,total)
	{
	ListTyp = "--";
	if ((Check == true) && (document.getElementById("mapleg"+Id).checked == true))
		{ document.getElementById("mapleg"+Id).checked = false; }
	else if (Check == true)
		{ document.getElementById("mapleg"+Id).checked = true; }
	for (i=1; i<5; i++)
		{
		if (document.getElementById("mapleg"+i).checked == true)
			{
			ListTyp += i +"-";
			}
		}
		typH=""
		for (i=5; i<total+5; i++)
		{
			document.getElementById("mapleg"+i).checked = false;
		}
		//pour le cookie pour recocher
		tot=total;
	loadData();
	}

//---coche le bouton radio du type d'hébergement
function DataToLoadHeb(Id,Check,total)
	{
	if ((Check == true) && (document.getElementById("mapleg"+Id).checked == true))
		{ document.getElementById("mapleg"+Id).checked = false; }
	else if (Check == true)
		{ document.getElementById("mapleg"+Id).checked = true; }
	for (i=5; i<total+5; i++)
		{
		if (document.getElementById("mapleg"+i).checked == true)
			{
				typH = i;
			}
		}
		//pour le cookie pour recocher
		tot=total;
	loadData();
	}


//-----------------------------------------------
//--- Fonction de chargement de la carte
function load()
	{
	if (GBrowserIsCompatible())
		{

		document.getElementById("maploading").style.left = "67px";

		//--- Pointage de l'objet carte et définition des options d'affichage
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());

		//--- Utilisation des données du cookie
		if (document.cookie.length>0)
			{
			cookieStart = document.cookie.indexOf(cookiename + "=");
			if (cookieStart!=-1)
				{
				cookieStart += cookiename.length+1; 
				cookieEnd=document.cookie.indexOf(";",cookieStart);
				if (cookieEnd==-1)
					{
					cookieEnd=document.cookie.length;
					}
				cookietext = document.cookie.substring(cookieStart,cookieEnd);
				//--- Récupération des données dans la chaîne texte du cookie
				bits = cookietext.split("|");
				lat = parseFloat(bits[0]);
				lng = parseFloat(bits[1]);
				zoom = parseInt(bits[2]);
				MapTyp = parseInt(bits[3]);
				ListTyp = bits[4];
				typH=bits[5];
				tot=bits[6];
				}
			}
		//--- Centrage de la carte
		map.setCenter(new GLatLng(lat,lng),zoom,map.getMapTypes()[MapTyp]);
		//var v=map.getMapTypes()[MapTyp]
		//v.getMinimumResolution = function() {return zoomMin;} 
		//v.getMaximumResolution = function() {return zoomMax;} 
	
		
		//--- Masquage de la barre de chargement
		document.getElementById("maploading").style.left = "-999em";

		//--- Chargement des données sur la carte
		if ((ListTyp != "--"))
			{
			//--- Appel de la fonction de chargement
			loadData();
			//--- Coche des cases correspodantes dans le bloc de légende
			for (i=1; i<5; i++)
				{

				if (ListTyp.indexOf("-"+ i +"-") > 0)
					{
					document.getElementById("mapleg"+i).checked = true;
					}
				}
				if ((ListTyp != "--1-")){
					document.getElementById('typeHeb').style.display='none';
				}
			
			}
			
			if ((typH!="") && (ListTyp == "--1-"))
			{
				document.getElementById('typeHeb').style.display='block';
				loadData();
				t=tot+5
				for(e=5;e<t;e++)
				{
					if(e==typH)
					{
						document.getElementById("mapleg"+e).checked = true;
					}
				}
			}
			
		
		}
	}

//-----------------------------------------------
//--- Mémorisation du type de carte courante
function getMapTyp()
	{
	MapTyp = 0;
	for (var i=0;i<map.getMapTypes().length;i++) 
		{
		if (map.getCurrentMapType() == map.getMapTypes()[i])
			{
			MapTyp = i;
			}
		}
	}

//-----------------------------------------------
//--- mise à jour du cookie avant fermeture de la page
function setCookie()
	{
	MapTyp = 0;
	for (var i=0;i<map.getMapTypes().length;i++) 
		{
		if (map.getCurrentMapType() == map.getMapTypes()[i])
			{
			MapTyp = i;
			}
		}
	var cookietext = cookiename+"="+map.getCenter().lat()+"|"+map.getCenter().lng()+"|"+map.getZoom()+"|"+MapTyp+"|"+ListTyp+"|"+typH+"|"+tot;
	if (expiredays)
		{
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+expiredays);
		cookietext += ";expires="+exdate.toGMTString();
		}
	//--- Ecriture des informations dans le cookie
	document.cookie=cookietext;
	//--- Appel de la fonction de déchargement
	GUnload();
	}



//-----------------------------------------------
//--- Fonction de chargement de la carte
function loadData()
	{
	if (GBrowserIsCompatible())
		{
			//alert(ListTyp);
		//--- Affichage de la barre de chargement
		document.getElementById("maploading").style.left = "67px";
		//--- Fonction de création des marqueurs sur la carte
		function creerMarker(point, icon, html)
			{ 
			var marker = new GMarker(point, icon); 
			GEvent.addListener(marker, "click", function()
				{ 
				ew.openOnMarker(marker,html);
				map.setCenter(point);
				}); 
			return marker; 
			}
		//--- Fonction de création du code HTML contenu dans la EWindow avec un bouton de fermeture
		function EWindowContent(a,b)
			{
			return '<table border="0" width="185" cellpadding="0" cellspacing="0"><tr><td width="100%" class="EWTitle" nowrap>' + a +
			'<a href="javascript:ew.hide()"><img title="Fermer l\'infobulle" src="../images/google-maps/eclose.gif" border=0 style="position:absolute;right:4px;top:4px"></a>' +
			'</td></tr>' +
			'<tr><td nowrap>' + b + '</td></tr></table>';
			}
		//--- Chargement des données XML définissant les marqueurs de la carte
		map.clearOverlays();
		if (ListTyp != "--")
			{
			GDownloadUrl("../_inc/CPN_GoogleMapsXml.asp?ListTyp="+ListTyp+"&typH="+typH, function(data)
				{
					
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				
				if (markers.length > 0)
					{
					for (var i = 0; i < markers.length; i++)
						{ 
						//--- Création des icones pour les marqueurs sur la carte
						if (markers[i].getAttribute("lat")!="")
						{
							var icon = new GIcon();
							icon.image = markers[i].getAttribute("iconUrl");
							icon.iconSize = new GSize(32, 32);
							icon.iconAnchor = new GPoint(6, 20);
							icon.infoWindowAnchor = new GPoint(15, 5); 
							//--- Création du point sur la carte
							var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), 8); 
							marker = creerMarker(point, icon, EWindowContent("", markers[i].getAttribute("info")));
							map.addOverlay(marker);
							//--- Création d'une infobulle personnalisée (EWindow)
							ew = new EWindow(map, E_STYLE_7);      
							map.addOverlay(ew);
							//--- Fermer la EWindow en cas de click sur la carte
							GEvent.addListener(map, "click", function(overlay,point) { if (!overlay) { ew.hide(); } });
						}
						if (i == markers.length-1)
							{
							document.getElementById("maploading").style.left = "-999em";							
							}
						}
					}
				else
					{
					alert("Il n'y a pas de données pour cette catégorie.");
					document.getElementById("maploading").style.left = "-999em";
					}
				});
			}
		else
			{
			document.getElementById("maploading").style.left = "-999em";
			}
		}
	}
//]]>
