// JavaScript Document
var map = null;

	function initialize(lat_list,lng_list,popup_info_list,address_number,is_homepage) {
		var lat=new Array();
		var lng=new Array();
		var popUpDesc=new Array();
		
		lat=lat_list;
		lng=lng_list;
		popUpDesc=popup_info_list;
			//alert (is_homepage);		

		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("map_canvas"));

			//Mode hybride pour la page d'accueil centré sur l'ile de la cité
			if (is_homepage=='oui'){
				map.setMapType(G_HYBRID_MAP);
				//map.setMapType(G_SATELLITE_MAP);
				map.setCenter(new GLatLng(48.85771288591816, 2.3431777954101562), 15);
			}else{
				map.setCenter(new GLatLng(48.85771288591816, 2.3431777954101562), 12);
			}
			map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
			
			

			
			mgr = new MarkerManager(map);
			mgr.addMarkers(getRefMarkers(lat,lng,address_number,popUpDesc), 12);
			mgr.refresh();
			//showGoogleMap(address_list,popup_info_list,address_number);
			
		}
	}
	
	//Créer le tableau de markers retourné dans le MarkerManager
	function getRefMarkers(lat,lng,addresses_number,popUpDesc){
		var batch = [];
		for (var i = 0; i < addresses_number; i++) {
			batch.push(createMarker (lat[i],lng[i],popUpDesc[i]));
		}
		return batch;
	}

	//Création du marqueur à partir de ses coordonnées et de ses infos popup		
	function createMarker(lat,lng,Info_PopUp) { 
		var position = new GLatLng(lat,lng);
		
		// Création du marker associé à l'icône créé précédemment
		markerOptions = { icon:getRefIcon(Info_PopUp) };
		
		var marker = new GMarker(position,markerOptions); 
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(Info_PopUp);
		});
											
		return marker; 
	} 

	function getRefIcon(Info_PopUp) {
		var baseIcon = new GIcon(G_DEFAULT_ICON);
		baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
		baseIcon.iconSize = new GSize(20, 35);
		
		// Création d'une icone associée à la lettre correspondante au type de la ref(position de l'expression "</td><td>" + 1 
		var letter =Info_PopUp.charAt(Info_PopUp.indexOf("</td><td>")+9); 
		//alert (letter) ;
		//var letter =Info_PopUp.charAt(0); 
	
		var letteredIcon = new GIcon(baseIcon);
		//letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
	
		switch (letter) 
		{ 
		case 'B': 
			letteredIcon.image='http://labs.google.com/ridefinder/images/mm_20_white.png';
			break; 
			
		case 'S': 
			letteredIcon.image='http://labs.google.com/ridefinder/images/mm_20_yellow.png';
			break;
			
		case 'T': 
			letteredIcon.image='http://labs.google.com/ridefinder/images/mm_20_orange.png'; 
			break; 
			
		case 'U': 
			letteredIcon.image='http://labs.google.com/ridefinder/images/mm_20_red.png';
			break;
			
		default: 
			letteredIcon.image='http://labs.google.com/ridefinder/images/mm_20_purple.png';
			break;
	
		} 
		 return letteredIcon;
	}
	
	function showGoogleMap(address,popup_info){
		if (GBrowserIsCompatible()) {
			
			geocoder = new GClientGeocoder();
			if (geocoder) {
				geocoder.getLocations(
					address,
					function(point) {
						if (!point) {
							alert(address + " not found");
						} else {
							//alert (point);
							//récupére les coordonnées du marqueur dans un tableau p correspondant à la latitude et longitude
							var p = point.Placemark[0].Point.coordinates;
							var position = new GLatLng(p[1],p[0]);
							
							//ajout des outils de zoom
							map = new GMap2(document.getElementById("map_canvas")); 
							map.addControl(new GSmallMapControl());
							
							//Positionnement au centre
							map.setCenter(position, 15); 
							
							//Ajout d'un marqueur
							var marker = new GMarker(position); 
							GEvent.addListener(marker, "click", function() {
								marker.openInfoWindowHtml(popup_info);
							});
							//marker.openInfoWindowHtml(address);
							map.addOverlay(marker); 
							
							
						//GEvent.addListener(myPano, "error", handleNoFlash);
						}
					}
				);
			}
		}
		
	}
	
	
	function showStreetview(address,description) {
		if (GBrowserIsCompatible()) {
			//Rend visible le calque de streetview
//			document.getElementById("pano").style.visibility="visible";
					document.getElementById("pano").style.display="block";
	//		document.getElementById("pano").style.zindex="6";
			document.getElementById('photo_desc').innerHTML=description;
			
			geocoder = new GClientGeocoder();
			//Si objet geocoder créé on se positionne à l'adresse passée en paramétre par la méthode getLocations qui retourne 
			//un  marqueur 'placemark' correspondant à l'adresse
			if (geocoder) {
				geocoder.getLocations(
					address,
					function(point) {
						if (!point) {
							alert(address + " not found");
						} else {
							//alert (point);
							//récupére les coordonnées du marqueur dans un tableau p correspondant à la latitude et longitude
							var p = point.Placemark[0].Point.coordinates;
							
							//Création d'un objet LatLng nécessaire pour créer un panorama streetview
							var position = new GLatLng(p[1],p[0]);
							panoramaOptions = { latlng:position };
							myPano = new GStreetviewPanorama(document.getElementById("pano"), panoramaOptions);
						//GEvent.addListener(myPano, "error", handleNoFlash);
						}
					}
				);
			}
		}
	}