/**
 *	FONCTIONS GOOGLE API MAPS
 */
 
var params = "Saint-Etienne";
var Nord = 45.5000000000;
var Est = 4.4700000000;
var Sud = 45.39000000;
var Ouest = 4.3200000000;
var coordonnees = mini_map = false;
var presentoirs = new Array();

var init = function ()
{
    google.load("maps", "2");
    google.setOnLoadCallback(initMap);
}; // init

var createMarker = function(infosPresentoir, zoomLevel)
{
    point = new GPoint(infosPresentoir.lng, infosPresentoir.lat);

    var myIcon = MapIconMaker.createMarkerIcon({width: 36, height: 32, primaryColor: infosPresentoir.color});
    
    var markerOptions = {
        icon:myIcon
    };
    
    var marker = new GMarker(point, markerOptions);
    
    marker.autoShowHide = function(zoom){
        if (zoom >= infosPresentoir.zoomMin) {
            marker.show();
        }
        else {
            marker.hide();
        }
    };
	
	if(!mini_map)
	{	
		var window = function() {
			var tabs = [
					new GInfoWindowTab("Infos",
							'<p class="bul-titre">'+ infosPresentoir.loc + '</p>' +
							'<p>' + infosPresentoir.adr + '</p>' +
							'<p>' + infosPresentoir.ville + '</p>' +
							'<p class="bul-lien"><a href="'+ infosPresentoir.lien +'" title="Plus d\'informations sur ce point de distribution">+ Plus d\'infos</a></p>'
					   )
				];
			
			marker.openInfoWindowTabsHtml(tabs);
		};
		//*/
		GEvent.addListener(marker, "click", window);
	}
    
    return marker;
}; // createMarker

var initMap = function ()
{
    var map = new google.maps.Map2(document.getElementById('map'));
   
   	map.setMapType(G_NORMAL_MAP);  // Vue satellite + informations cartographiques
	
	if(!coordonnees)
	{
		map.addControl(new GLargeMapControl());	
		map.addControl(new GHierarchicalMapTypeControl());
	}
	else
		map.addControl(new GSmallMapControl());
	
    var geocoder = new google.maps.ClientGeocoder();
	
	var pointSW = new GLatLng(Sud, Ouest);
	var pointNE = new GLatLng(Nord, Est);
	geocoder.setViewport(new GLatLngBounds(pointSW, pointNE));
	
	if(coordonnees && lat != 0 && long != 0)
		map.setCenter(new GLatLng(lat, long), zoom);
	else
	{
		geocoder.getLatLng(params+'France', function (coord) {
			map.setCenter(coord, zoom);  // Centrage sur le point dont on a obtenu les coordonnées depuis l'adresse
		});
	} 
	
	var marker;
	var markers = [];
	
	// Ajout d'un marqueur pour chacune des stations de metro de Lyon
	for (var i=0 ; i<presentoirs.length ; i++)
	{
		marker = createMarker(presentoirs[i], map.getZoom());
		markers.push(marker);
		map.addOverlay(marker);
		
		marker.autoShowHide(map.getZoom());
	}
	
	GEvent.addListener(map, "zoomend", function(oldLevel, newLevel) {     
		for (var i = 0; i < markers.length; i++) {
			markers[i].autoShowHide(newLevel);
		}
	});   
	
	if(coordonnees)
		afficheStreetView();
}; // initMap


function afficheStreetView()
{
	point_street = new google.maps.LatLng(lat, long);
	/* On efface le message d'attente affiché dans l'info-bulle */
	document.getElementById("street").innerHTML="";
	/* Le Street View va venir s'afficher à l' intérieur de la balise <div> ayant pour identifiant id="EmplacementStreetView" */
	StreetView = new google.maps.StreetviewPanorama(document.getElementById("street"));
	/* yaw = angle de la caméra par rapport au Nord vrai : 0 - Ouest : 90 - Sud : 180 - Est : 270 */
	/* pitch = angle de la caméra par rapport à la rue : vue horizontale : 0 - vue zénith : -90 - vue sol : 90 */
	/* zoom = niveau de zoom à appliquer sur l'image du Street View */
	var myPOV = {yaw:318,pitch:0,zoom:0};
	/* Permet l'affichage du Street View sur le point "TourEiffel" en lui appliquant les options de visualisation "myPOV" */
	StreetView.setLocationAndPOV(point_street, myPOV);
	/* S'il est impossible d'afficher le "StreetView", une erreur est générée et l'appel de la fonction "handleNoFlash" est déclenché */
	google.maps.Event.addListener(StreetView, "error", handleNoFlash);
}

/* Fonction handleNoFlash() */
function handleNoFlash(errorCode) {
	if (errorCode == FLASH_UNAVAILABLE) {
		alert("Erreur : Flash n'est pas supporté par votre navigateur");
		return;
	}
}




