//											Ce module gère l'ensemble du domaine coté utilisateur de la Google Map
//											¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
// Si le navigateur est compatible
if (GBrowserIsCompatible()){


//			Les variables Globales
//			¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

	var map; // La Google Map
	var nbResultats = 0; // Le nombre de fiche affiché
	var typeCoche = [0, 0, 0];  // Variable des types qui sont coché Restaurateurs Vignerons Autres
	
	var tabIcon = []; // Variable pour les icons des indicateurs
	var tabIconImg = [];
	var lesIndicateurs = []; // Tableau qui contient tous les Markers
	var infoIndicateur = [];


//			Initialisation
//			¯¯¯¯¯¯¯¯¯¯¯¯¯¯

	function LoadGoogleMap() {

		// On charge la google map
		map = new GMap2(document.getElementById("CartesMap"));
		map.setCenter(new GLatLng(43.252, 2.282), 8);
		map.addControl(new ExtLargeMapControl());	// Déplacement et zoom
		map.addControl(new GMapTypeControl());		// Option d'affichage
		map.addControl(new GOverviewMapControl());	// Mini affichage de navigation
		//map.enableContinuousZoom();
        //map.enableScrollWheelZoom();
		
		// On coche les catégories par défaut
		ActionClick(0); //Autre
		ActionClick(0);  // désactive affichage autre au second passage
		ActionClick(1); //restaurateur
		ActionClick(2); //vignerons
		document.getElementById("nbResultats").innerHTML = nbResultats;
		//$(".css_1").addClass("hidden"); // désactive affichage autre
	}


//			Les fonctions
//			¯¯¯¯¯¯¯¯¯¯¯¯¯

	// La fonction pour parametrer et créer un Indicateur ( marker )
	function CreateIndicateur(numType, num){
		
		var type 		= infoType[numType];
		var id 			= infoIndicateur[numType][num][0];
		var longitude 	= infoIndicateur[numType][num][1];
		var latitude 	= infoIndicateur[numType][num][2];
		var nom 		= infoIndicateur[numType][num][3];
		var ville 		= infoIndicateur[numType][num][4];
		var adresse 	= infoIndicateur[numType][num][5];
		var cp 			= infoIndicateur[numType][num][6];
		var lien 		= infoIndicateur[numType][num][7];

		var pos = new GLatLng(latitude, longitude);

		// Le html de la petite fenêtre du marker
		var html = '';
		var html = html + '<span class="soumligne">' + nom + '</span><br />';
		var html = html + adresse + '<br />';
		var html = html + cp + ' ' + ville + '<br />';
		var html = html + '<a href="' + lien + '"><img src="/images/icon_info.png" alt="ic&ocirc;ne fiche complete" width="17" height="20" border="0" align="absmiddle" /></a><a href="' + lien + '"> Voir la fiche complete</a>';

		// En envois les infos à Google
		lesIndicateurs[id] = new GMarker(pos, tabIcon[type]);
		map.addOverlay(lesIndicateurs[id]);
		lesIndicateurs[id].value = id;
		GEvent.addListener(lesIndicateurs[id], "click", function() {
			lesIndicateurs[id].openInfoWindowHtml(html, {maxWidth:300});
		});

	}
	
	// En cas de clique de souris sur une catégorie ( ActionClick est déclenchée par Rollover )
	function ActionClick(numType) {
		
		// S’il existe
		if(typeCoche[numType]) {
			
			// Alors on cache toute les cases du type
			for(var i = 0; i < infoIndicateur[numType].length; i++){
				var id = infoIndicateur[numType][i][0];
				map.removeOverlay(lesIndicateurs[id]);
				nbResultats--;
			}
			
			// Fonction Jquery qui ajoute le « display:none » à la class des fiches du type numType+1
			numCSS = numType+1;
			$(".css_"+numCSS).addClass("hidden");
			
			typeCoche[numType] = 0;
		}
		else {
			
			// Alors on affiche toute les cases du type
			for(var i = 0; i < infoIndicateur[numType].length; i++){
				CreateIndicateur(numType, i);
				nbResultats++;
			}
			
			// Fonction Jquery qui enlève le « display:none » à la class des fiches du type numType+1
			numCSS = numType+1;
			$(".css_"+numCSS).removeClass("hidden");
			
			typeCoche[numType] = 1;
		}

	}
	
	// Rollover déclenché en cas détection d'événement de souris sur les boutons de la catégorie
	function Rollover(action, num){
		if(action == 3){
			ActionClick(num);
			document.getElementById("nbResultats").innerHTML = nbResultats;
		}
		switch (num){
			case 1 :
				if(action == 3){
					if(typeCoche[1]) document.getElementById("CarteRestaurateurs").src = "images/Img-carte-restaurateurs3.gif";
					else document.getElementById("CarteRestaurateurs").src = "images/Img-carte-restaurateurs2.gif";
				}
				if(!typeCoche[1]){
					if(action == 1) document.getElementById("CarteRestaurateurs").src = "images/Img-carte-restaurateurs2.gif";
					if(action == 2) document.getElementById("CarteRestaurateurs").src = "images/Img-carte-restaurateurs1.gif";
				}
			break;
			case 2 :
				if(action == 3) {
					if(typeCoche[2]) document.getElementById("CarteVignerons").src = "images/Img-carte-vignerons3.gif";
					else document.getElementById("CarteVignerons").src = "images/Img-carte-vignerons2.gif";
				}
				if(!typeCoche[2]){
					if(action == 1) document.getElementById("CarteVignerons").src = "images/Img-carte-vignerons2.gif";
					if(action == 2) document.getElementById("CarteVignerons").src = "images/Img-carte-vignerons1.gif";
				}
			break;
			default :
				if(action == 3) {
					if(typeCoche[0]) document.getElementById("CarteAutres").src = "images/Img-carte-autres3.gif";
					else document.getElementById("CarteAutres").src = "images/Img-carte-autres2.gif";
				}
				if(!typeCoche[0]){
					if(action == 1) document.getElementById("CarteAutres").src = "images/Img-carte-autres2.gif";
					if(action == 2) document.getElementById("CarteAutres").src = "images/Img-carte-autres1.gif";
				}
			break;
		}
		
	}

	// Rollover déclenché en cas détection d'événement de souris sur les boutons de la catégorie pour l'anglais
	function Rollover_en(action, num){
		if(action == 3){
			ActionClick(num);
			document.getElementById("nbResultats").innerHTML = nbResultats;
		}
		switch (num){
			case 1 :
				if(action == 3){
					if(typeCoche[1]) document.getElementById("CarteRestaurateurs").src = "/images/Img-carte-restaurateurs-en3.gif";
					else document.getElementById("CarteRestaurateurs").src = "/images/Img-carte-restaurateurs-en2.gif";
				}
				if(!typeCoche[1]){
					if(action == 1) document.getElementById("CarteRestaurateurs").src = "/images/Img-carte-restaurateurs-en2.gif";
					if(action == 2) document.getElementById("CarteRestaurateurs").src = "/images/Img-carte-restaurateurs-en1.gif";
				}
			break;
			case 2 :
				if(action == 3) {
					if(typeCoche[2]) document.getElementById("CarteVignerons").src = "/images/Img-carte-vignerons-en3.gif";
					else document.getElementById("CarteVignerons").src = "/images/Img-carte-vignerons-en2.gif";
				}
				if(!typeCoche[2]){
					if(action == 1) document.getElementById("CarteVignerons").src = "/images/Img-carte-vignerons-en2.gif";
					if(action == 2) document.getElementById("CarteVignerons").src = "/images/Img-carte-vignerons-en1.gif";
				}
			break;
			default :
				if(action == 3) {
					if(typeCoche[0]) document.getElementById("CarteAutres").src = "/images/Img-carte-autres-en3.gif";
					else document.getElementById("CarteAutres").src = "/images/Img-carte-autres-en2.gif";
				}
				if(!typeCoche[0]){
					if(action == 1) document.getElementById("CarteAutres").src = "/images/Img-carte-autres-en2.gif";
					if(action == 2) document.getElementById("CarteAutres").src = "/images/Img-carte-autres-en1.gif";
				}
			break;
		}
		
	}
	
	function ZoomCiteMedieval(){
		map.setCenter(new GLatLng(43.206, 2.363), 16);
	}
	
	function ZoomRoute(){
		map.setCenter(new GLatLng(43.252, 2.282), 8);
	}

}
else alert('Votre configuration ne permet pas d\'afficher la Google Map');