// JavaScript Document


function load() 
	{
	//Si le navigateur est compatible 
	  if (GBrowserIsCompatible()) 
	  	{
	  	//création de l'objet map
		map = new GMap2(document.getElementById("map"));
		
		//ajout des controles de zoom et déplacement au format mini
		map.addControl(new GSmallMapControl());
		
		//positionnement initial de la map (ici la france) 
		map.setCenter(new GLatLng(47.4419, 2.1419), 5);
		
		//création de l'objet geocoder (nécessaire pour la localisation des adresses)
		geocoder = new GClientGeocoder();
		
		//lancement de la fonction permettant de créer les markers des pays
		createMarkersPays(0);
		
		//on créer un marker manager
		mgr = new GMarkerManager(map);
  		}
	}
	
function createMarkersPays(i) 
	{  
	  geocoder.getLatLng(pays[i][1],function(point) 
	  	{
	  	//on récupère la longitude et la latitude de l'adresse donnée
			if (point) 
				{
				//si les coordonnées existent
				var marker=new GMarker(point);//on créé le marker				
				batchPays.push(marker);//on enregistre le marker dans le tableau batchPays
				
                                //création des onglets de l'info bulle 
				var infoTabs = [new GInfoWindowTab("Adresse", pays[i][1]),
						new GInfoWindowTab("Contact", "<b>" + pays[i][0] + "</b>")];
				
				//ajout d'un écouteur de click sur le marker, le click affichera l'infobulle
				GEvent.addListener(marker, "click", 
							function() 
								{
								marker.openInfoWindowTabsHtml(infoTabs);
								});
				}
				
			if (i+1<pays.length) 
				{
				//si i est inférieur au nombre de pays compris dans le tableau pays
				createMarkersPays(i+1);//on relance la fonction
				}
			else 
				{
				mgr.addMarkers(batchPays, 1,4);//on ajoute le lot de marker pays au marker manager
				createMarkersEtbl(0);//on lance la création des marker des établissement
				}
	   	});
	}
 
//la fonction createMarkersEtbl fonctionne semsiblement de la même manière que la fonction createMarkerPays a l'exception de mgr.refresh à la fin
function createMarkersEtbl(i) {
	 geocoder.getLatLng(etbl[i][1],function(point) {
		if (point) {
			var marker=new GMarker(point);
			//on enregistre le marker dans le tableau batch
			batchEtbl.push(marker);
			//création des onglets de l'info bulle 
			var infoTabs = [
			new GInfoWindowTab("Adresse", etbl[i][1]),
			new GInfoWindowTab("id marker", "Marker #<b>" + etbl[i][0] + "</b>")
			];
			//ajout d'un écouteur de click sur le marker, le click affichera l'infobulle
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowTabsHtml(infoTabs);
			});
		}
			if (i+1<etbl.length) {
				createMarkersEtbl(i+1);
			}
			else {
				mgr.addMarkers(batchEtbl, 5);//on ajoute le lot de marker etablissement au manger créé dans createMarkerPays
				mgr.refresh();//on refresh le manager marker ce qui a pour effet d'afficher les marker
			}
	   });
}
