/* Gestion des cartes affichées */

var montagnonLat = 46.836255;
var montagnonLng = 6.397669;

function CarteSimple() {
/* Chargement de la carte centrée sur le Montagnon */

	if (GBrowserIsCompatible()) {
		var lat = montagnonLat;
		var lng = montagnonLng;
		var map = new GMap2(document.getElementById("carte"));
		var centre = new GLatLng(lat, lng);
		map.setCenter(centre, 12);
		map.setMapType(G_NORMAL_MAP);
		var customUI = map.getDefaultUI();
		customUI.controls.maptypecontrol = false; // Supprime les boutons de sélection du type de carte
		customUI.controls.menumaptypecontrol = true; // Force la sélection du type de carte dans un menu vertical
		map.setUI(customUI);
		map.addControl(new GNavLabelControl() ); // Ajoute une liste de zones précisant la position de la carte (ex: France > Franche-Comté > Doubs > Les Fourgs)

		// Ajout d'un marqueur au centre de la carte
		var texte = '<span class=\"montagnon gras\">Le Montagnon</span>';
		var marker = creerMarkerMontagnon(centre, texte);
		map.addOverlay(marker);
	}
}

function CarteSites() {
/* Chargement des cartes des sites à visiter */

	if (GBrowserIsCompatible()) {
		var cptCartes = 2;
		var idCarte;
		var noCarte;
      var point;
      var marker;
		for (var i = 0 ; i < cptCartes ; i++) {
			// Création de la carte
			noCarte = i + 1;
			idCarte = "carte" + noCarte;
			var lat = montagnonLat;
			var lng = montagnonLng;
			var map = new GMap2(document.getElementById(idCarte));
			var centre = new GLatLng(lat, lng);
			map.setCenter(centre, 12);
			map.setMapType(G_NORMAL_MAP);
			var customUI = map.getDefaultUI();
			customUI.controls.maptypecontrol = false; // Supprime les boutons de sélection du type de carte
			customUI.controls.menumaptypecontrol = true; // Force la sélection du type de carte dans un menu vertical
			map.setUI(customUI);
			// Ajout des points sur la carte
			var bounds = new GLatLngBounds();
			// Montagnon
			point = new GLatLng(montagnonLat, montagnonLng);
			// Ajoute le nouveau point à la zone d'affichage
			bounds.extend(point);
			// Crée le marqueur représentant le point
			var texte = '<span class=\"montagnon gras\">Le Montagnon</span>';
			marker = creerMarkerMontagnon(centre, texte);
			// Ajoute le marqueur à la carte
			map.addOverlay(marker);
			// Sites
			var jMax = Math.min(jsonMarkers[i].length, 26 - 1);
			for (var j = 0 ; j < jMax ; j++) {
				with (jsonMarkers[i][j]) {
					var pointNom = nom;
					point = new GLatLng(lat, lng);
               var pointSiteUrl = url;
               var pointImgUrl = imgUrl;
               var pointImgAlt = alt;
				}
				bounds.extend(point);
				var lettre = String.fromCharCode("A".charCodeAt(0) + j);
				marker = creerMarker(map, point, lettre, pointNom, pointSiteUrl, pointImgUrl, pointImgAlt);
				map.addOverlay(marker);
				// Ajoute un évènement permettant d'ouvrir la fenêtre d'information correspondant à l'adresse
				var idLi = 'pt' + noCarte + lettre;
				var li = document.getElementById(idLi);
				ActiverClickElt(li, marker);
			}
			// Affiche la carte de façon à contenir tous les points
			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
			// Mémorise la nouvelle position de la carte (permet de revenir à la positon initiale après déplacement)
			map.savePosition();
		}
	}
}

function creerMarkerMontagnon(point, texteHtml) {
// Crée un marqueur pour le point avec une fenêtre d'information

	var montagnonIcon = new GIcon(G_DEFAULT_ICON);
	montagnonIcon.image = "images/carte/marker_montagnon.png";
	markerOptions = { icon: montagnonIcon };
	var marker = new GMarker(point, markerOptions);
	// Ajout gestionnaire d'évènement
	GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(texteHtml);
	});
	return marker;
}


function creerMarker(map, point, lettre, nom, siteUrl, imgUrl, alt) {
// Crée un marqueur pour le point avec une fenêtre d'information

	var lettreIcon = new GIcon(G_DEFAULT_ICON);
	lettreIcon.image = "images/carte/marker" + lettre + ".png";
	markerOptions = { icon: lettreIcon };
	var marker = new GMarker(point, markerOptions);
	var texteHtml = '<p class="centre">';
   texteHtml += '<b>' + nom + '</b><br /><br />';
   if (imgUrl) {
      texteHtml += '<img class="photomini" src="' + imgUrl + '" width="120" height="90" alt="' + alt + '" /><br />';
   }
   if (siteUrl) {
      texteHtml += '<a href="http://' + siteUrl + '" title="' + nom + '" target="_blank">' + siteUrl + '</a><br />';
   }
   texteHtml += '</p>';
   // Ajout gestionnaire d'évènement
	GEvent.addListener(marker, 'click', function() {
		map.setCenter(point, 12);
      marker.openInfoWindowHtml(texteHtml);
	});
	return marker;
}

function ActiverClickElt(li, marker) {
// Permet d'afficher la fenêtre d'information en cliquant sur l'élément de liste correspondant

	GEvent.addDomListener(li, 'click', function() {
		GEvent.trigger(marker, 'click');
	});
}