// JavaScript Document

var maCarte;
var iconeAlpha;
var iconeBravo;
var iconeCharlie;
var iconeDelta;
var TousMesMarqueurs = [];
var urlXml = "inc/gmap_data.xml";

/* Fonction initialize() */
function initialize() 
{
	if (GBrowserIsCompatible())
	{
		var ToutesLesBalisesInput = document.getElementsByTagName("input");
		baseIcon = new GIcon();
		baseIcon.iconSize=new GSize(17,19);
		baseIcon.shadowSize=new GSize(25,22);
		baseIcon.iconAnchor=new GPoint(17,20);
		baseIcon.infoWindowAnchor=new GPoint(5,1);
		
		iconeloger = new GIcon(baseIcon, "library/icons/small_log.png", null, "library/icons/shadow.png");
		iconemontain = new GIcon(baseIcon, "library/icons/small_montain.png", null, "library/icons/shadow.png");
		iconewater = new GIcon(baseIcon, "library/icons/small_water.png", null, "library/icons/shadow.png");
		iconesea = new GIcon(baseIcon, "library/icons/small_sea.png", null, "library/icons/shadow.png");
		
		/* ... Création d'une nouvelle carte nommée "maCarte" qui s'affichera à l'intérieur de la <div> ayant pour identifiant id="EmplacementDeMaCarte" ... */
		maCarte = new GMap2(document.getElementById("gmap"));
		maCarte.addControl(new GLargeMapControl());
		maCarte.addControl(new GMenuMapTypeControl());
		/* ... La carte nommée "maCarte" est centrée sur la Latitude 47.38254402467962, la Longitude 0.690765380859375, avec un niveau de zoom égal à 9 ... */
		maCarte.setCenter(new GLatLng(43.28020470342185, -1.20849609375), 10);
		
			if(ToutesLesBalisesInput != null)
			{
				for(var i = 0; i < ToutesLesBalisesInput.length; i++)
				{
					if(ToutesLesBalisesInput[i].type == "checkbox")
					{ 
						EnvoiLoisir(ToutesLesBalisesInput[i]);
						ToutesLesBalisesInput[i].onclick=function(){ EnvoiLoisir(this); }
					}
				}
			}
	}
	else
	{
			alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
	}
}
 
function CreationDuMarqueur(point, nom, adresse, codepostal, ville, type, i) 
{
	if(type=="loger"){icone = iconeloger;}
	if(type=="montain"){icone = iconemontain;}
	if(type=="water"){icone = iconewater;}
	if(type=="sea"){icone = iconesea;}
	var marker = new GMarker(point,icone);
	TousMesMarqueurs[i] = marker;
	GEvent.addListener(marker, "click", function(){
	marker.openInfoWindowHtml("<b>" + nom + "</b><br/>" + adresse + "<br/>" + codepostal + " " + ville );
	});
	return marker;
}
 
function EnvoiLoisir(val)
{
	if(val == null){return;}
	var loisirselec = val.value;
	/* ... Si la case est cochée ... */
	if(val.checked == true)
	{
		GDownloadUrl(urlXml+"?"+Math.random(), function(data)
		{
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) 
			{
				var type = markers[i].getAttribute("type");
				/* ... Si les marqueurs correspondant à la catégorie sélectionnée ... */
					if(type == loisirselec)
					{
						var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
						var nom = markers[i].getAttribute("nom");
						var adresse = markers[i].getAttribute("adresse");
						var codepostal = markers[i].getAttribute("codepostal");
						var ville = markers[i].getAttribute("ville");
						var type = markers[i].getAttribute("type");
						var marker = CreationDuMarqueur(point, nom, adresse, codepostal, ville, type, i);
						/* ... on ajout le marqueur à la carte nommée "maCarte". */
						maCarte.addOverlay(marker);
					}
			}
		});
	}
	/* ... Si la case est décochée ... */
	if(val.checked == false)
	{
		GDownloadUrl(urlXml+"?"+Math.random(), function(data) 
		{
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) 
			{
				var type = markers[i].getAttribute("type");
			
				if(type == loisirselec)
				{
					maCarte.removeOverlay(TousMesMarqueurs[i]);
				}
			}
		});
	}
}
