// JavaScript Document
var map = null;
var listMarkers = Array();
var htmlMarkers = Array();
var iconeVert = null;
var timer = Array();
var lienSelected = "";
var correspondanceIdActivite = Array();

// On initialise le tableau des correspondance de rando
correspondanceIdActivite[28] = 3;		// Catégorie Randonnnées
correspondanceIdActivite[29] = 2;		// Catégorie VTT
correspondanceIdActivite[22] = 8;		// Catégorie Raquettes
correspondanceIdActivite[21] = 11;		// Catégorie Ski de fond
		
function maps_initialize() {     
	if (GBrowserIsCompatible()) {        
		map = new GMap2(document.getElementById("activites_maps"));     
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(46.33173, 6.05900), 10);  
		
		// Configuration de l'icone verte
		iconeVert = new GIcon();
		iconeVert.image = "images/vert.png";
		iconeVert.shadow = "images/ombre.png";
		iconeVert.iconSize = new GSize(12, 20);
		iconeVert.shadowSize = new GSize(22, 20);
		iconeVert.iconAnchor = new GPoint(0, 5);
		iconeVert.infoWindowAnchor = new GPoint(5, 1);

		
	} else {
		alert("Désolé, votre navigateur ne permet pas d'afficher la carte. Veuillez le mettre à jour.");
	}	 
}

function maps_resetMarkers() {
	map.clearOverlays();
	listMarkers = Array();
	htmlMarkers = Array();
	timer = Array();
	document.getElementById('activites_listeEntites_items').innerHTML = "";
}

function maps_showPoints(idAct) {
	
	maps_resetMarkers();
	
	// On met le lien correspondant à l'activité en surbrillance dans le menu
	if(lienSelected != "")
		document.getElementById(lienSelected).className = "lien_Activite";
	
	lienSelected = 'lien_Activite_' + idAct;
	document.getElementById(lienSelected).className = "lien_Activite_selected";

	// Création de l'objet XMLHttpRequest
	var xhr=null;
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e1) {
				xhr = null;
			}
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	}
	
	//on définit l'appel de la fonction au retour serveur
	xhr.onreadystatechange = function() {
		if(xhr.readyState == 4 && xhr.status == 200) {
			var docXML = xhr.responseXML.documentElement;
			
			// On centre la carte
			var centerX = docXML.getElementsByTagName("centerX")[0].firstChild.nodeValue;
			var centerY = docXML.getElementsByTagName("centerY")[0].firstChild.nodeValue;
			map.setCenter(new GLatLng(centerX, centerY), 10);      
				
			// On traite le XML reçu
			var items = docXML.getElementsByTagName("entite");

			// On écrit le titre de la catégorie dans la colonne de droite
			document.getElementById('activites_listeEntites_titre').innerHTML = docXML.getElementsByTagName("activiteNom")[0].firstChild.nodeValue;

			for (i=0;i<items.length;i++) {
				// On recupere les infos du XML
				var id = docXML.getElementsByTagName("id")[i].firstChild.nodeValue;
				var libelle = docXML.getElementsByTagName("libelle")[i].hasChildNodes() ? docXML.getElementsByTagName("libelle")[i].firstChild.nodeValue : "";
				var texte = docXML.getElementsByTagName("texte")[i].hasChildNodes() ? docXML.getElementsByTagName("texte")[i].firstChild.nodeValue : "";
				var latitude = docXML.getElementsByTagName("latitude")[i].firstChild.nodeValue;
				var longitude = docXML.getElementsByTagName("longitude")[i].firstChild.nodeValue;
				
				// On ajoute l'entité à la liste sur la droite de la carte
				
				document.getElementById('activites_listeEntites_items').innerHTML += '<a href="#" onmouseover="list_mouseOver(' + id + ');" onmouseout="list_mouseOut(' + id + ');" onclick="list_mouseClick(' + id + '); return false;" title="Cliquez pour voir la fiche de : ' + libelle + '" class="activites_listeEntites_item">' + libelle + '</a>'
				
				// On affiche les points des entites sur la carte
				var point = new GLatLng(latitude,longitude);
				var htmlMarker = '<div class="maps_item">' +	
							'<div  class="maps_item_libelle">' + libelle + '</div>' +
							'<span class="maps_item_texte">' + texte + '</span>' +
							/*'<div class="maps_item_ensavoirplus"><a href="#" onclick="show_detailsEntite(' + id + '); return false;" class="maps_item_ensavoirplus_lien">» En savoir plus</a>'+*/
						'</div>';
						
				var marker = createMarker(id,point,htmlMarker,{icon: iconeVert, title: libelle});
				
				listMarkers["entite_" + id] = marker;
				htmlMarkers["entite_" + id] = htmlMarker
				map.addOverlay(marker);			
			}
		}
	}
	
	// On appel le fichier
	xhr.open("POST",'ajax_entitesByAct.php',true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send('idAct=' + idAct);	
	
	// On affiche ou non l'encart des randonnées
	var key = "";
	var idActiviteExiste = false;
	for (key in correspondanceIdActivite) {
    	if (key == idAct) {
			idActiviteExiste = true;
        	break;
    	}
    }

	if(idActiviteExiste) {
		//document.getElementById("encart_rando_activites").style.display = "inline";
		document.getElementById("encart_rando_activites").href = "randonnees.php?activityId=" + correspondanceIdActivite[idAct];
	} else {
		//document.getElementById("encart_rando_activites").style.display = "none";
		document.getElementById("encart_rando_activites").href = "randonnees.php";
	}
}

function createMarker(idMarker,point,html,option) {
	var marker = new GMarker(point,option);
	
	GEvent.addListener(marker, "click", function() {
		marker.setImage("images/rouge.png"); 
		show_detailsEntite(idMarker);
	});
	
	GEvent.addListener(marker, 'mouseover', function() { 
		map.closeInfoWindow();
		marker.setImage("images/rouge.png"); 
		marker.openInfoWindowHtml(html);
		//GLog.write("mouseOver");
	});
	
	GEvent.addListener(marker, 'mouseout', function() { 
		marker.setImage("images/vert.png");
		timer[idMarker] = setTimeout(function() {
			marker.closeInfoWindow();
			clearTimeout(timer[idMarker]);
		},200);
		//GLog.write("mouseOut");
	});

	return marker;
}

function list_mouseOver(idPoint) {
	timer[idPoint] = setTimeout(function() {
		map.closeInfoWindow();
		listMarkers["entite_" + idPoint].setImage("images/rouge.png"); 
		listMarkers["entite_" + idPoint].openInfoWindowHtml(htmlMarkers["entite_" + idPoint]);
		map.panTo(listMarkers["entite_" + idPoint].getLatLng()); 
	},500);
}

function list_mouseOut(idPoint) {
	clearTimeout(timer[idPoint]);
	listMarkers["entite_" + idPoint].closeInfoWindow();
	listMarkers["entite_" + idPoint].setImage("images/vert.png"); 
}

function list_mouseClick(idPoint) {
	listMarkers["entite_" + idPoint].setImage("images/rouge.png"); 
	show_detailsEntite(idPoint);
}




