/* 
 *
 *	File JS per la gestione delle mappe
 *	http://www.myvalledaosta.it
 *
 *	Autore: Francesco Napoletano per Uni-fi S.r.l.
 *
 *
 */

var map = null;
var geocoder = null;
var markerManager = null;

// Icona per gli eventi
var 	iconaEvento 					= new GIcon(); 
		iconaEvento.image 				= "http://labs.google.com/ridefinder/images/mm_20_green.png";
		iconaEvento.shadow 				= "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		iconaEvento.iconSize 			= new GSize(12, 20);
		iconaEvento.shadowSize 			= new GSize(22, 20);
		iconaEvento.iconAnchor 			= new GPoint(6, 20);
		iconaEvento.infoWindowAnchor 	= new GPoint(5, 1);

// Icona per i locali
var 	iconaLocale 					= new GIcon(); 
		iconaLocale.image 				= "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
		iconaLocale.shadow 				= "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		iconaLocale.iconSize 			= new GSize(12, 20);
		iconaLocale.shadowSize 			= new GSize(22, 20);
		iconaLocale.iconAnchor 			= new GPoint(6, 20);
		iconaLocale.infoWindowAnchor 	= new GPoint(5, 1);

// Icona per i negozi
var 	iconaNegozio 					= new GIcon(); 
		iconaNegozio.image 				= "http://labs.google.com/ridefinder/images/mm_20_red.png";
		iconaNegozio.shadow 			= "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		iconaNegozio.iconSize 			= new GSize(12, 20);
		iconaNegozio.shadowSize 		= new GSize(22, 20);
		iconaNegozio.iconAnchor 		= new GPoint(6, 20);
		iconaNegozio.infoWindowAnchor 	= new GPoint(5, 1);

// Icona per i negozi
var 	iconaRistorante 				= new GIcon(); 
		iconaRistorante.image 			= "http://labs.google.com/ridefinder/images/mm_20_blue.png";
		iconaRistorante.shadow 			= "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		iconaRistorante.iconSize 		= new GSize(12, 20);
		iconaRistorante.shadowSize 		= new GSize(22, 20);
		iconaRistorante.iconAnchor 		= new GPoint(6, 20);
		iconaRistorante.infoWindowAnchor= new GPoint(5, 1);

function initMapHomepage()
{
	// Inizializza Google Maps per l'homepage del sito
    if (GBrowserIsCompatible()) 
	{
        map = new GMap2($("mappa"));
		
		// Controlli 
		map.addControl(new GMapTypeControl());			

		// Frecce 
		map.addControl(new GLargeMapControl());	

		// Centra la mappa sulla Valle d'Aosta
		map.setCenter(new GLatLng(45.738777, 7.426758), 9);
		
		// Timeout per il marker manager
		window.setTimeout(setupMarkerManager, 0);
	}
}

function initMapComune(comune)
{
	// Inizializza Google Maps per la pagina relativa ai comuni
    if (GBrowserIsCompatible()) 
	{
        map = new GMap2($("mappaComune"));
		geocoder = new GClientGeocoder();
		
		// Controlli 
		map.addControl(new GMapTypeControl());			

		// Frecce 
		map.addControl(new GLargeMapControl());	

		// Centra la mappa sulla Valle d'Aosta
		map.setCenter(new GLatLng(45.738777, 7.426758), 14);

		// Indirizzo trovato, sposta la mappa sul punto
		geocoder.getLatLng(comune + ", Valle d'Aosta, Italia",function(point) { map.panTo(point);	});

		// Timeout per il marker manager
		window.setTimeout(setupMarkerManager, 0);
	}
}

function initMapShow(lati,longi,icona)
{
	// Inizializza Google Maps per la pagina relativa alla pagina di visualizzazione dell'evento/locale
    if (GBrowserIsCompatible()) 
	{
        map = new GMap2($("mappaShow"));
		geocoder = new GClientGeocoder();
		
		// Controlli 
		map.addControl(new GMapTypeControl());			

		// Frecce 
		map.addControl(new GLargeMapControl());	

		// Centra la mappa sull punto passato
		map.setCenter(new GLatLng(lati, longi), 15);

		// Crea marker
		point = new GLatLng(lati,longi);
		map.addOverlay(new GMarker(point,icona));
	}
}

function initMapTag()
{
	// Inizializza Google Maps per la pagina relativa ai Tag
    if (GBrowserIsCompatible()) 
	{
        map = new GMap2($("mappaTag"));
		geocoder = new GClientGeocoder();
		
		// Controlli 
		map.addControl(new GMapTypeControl());			

		// Frecce 
		map.addControl(new GLargeMapControl());	

		// Centra la mappa sulla Valle d'Aosta
		map.setCenter(new GLatLng(45.738777, 7.426758), 9);

		// Timeout per il marker manager
		window.setTimeout(setupMarkerManager, 0);
	}
}

function initMapUtente()
{
	// Inizializza Google Maps per la pagina relativa all'utente
    if (GBrowserIsCompatible()) 
	{
        map = new GMap2($("mappaUtente"));
		geocoder = new GClientGeocoder();
		
		// Controlli 
		map.addControl(new GMapTypeControl());			

		// Frecce 
		map.addControl(new GLargeMapControl());	

		// Centra la mappa sulla valle d'Aosta
		map.setCenter(new GLatLng(45.738777, 7.426758), 9);

		// Timeout per il marker manager
		window.setTimeout(setupMarkerManager, 0);
	}
}

function setupMarkerManager()
{
	// Nuovo Marker Manager
	markerManager = new GMarkerManager(map);	
	
	// Imposto markers per i vari livelli di zoom
	markerManager.addMarkers(getMarkers(1), 0);
	markerManager.addMarkers(getMarkers(3), 6);
	markerManager.addMarkers(getMarkers(10), 8);
	markerManager.addMarkers(getMarkers(20), 9);
	markerManager.addMarkers(getMarkers(50), 10);
	markerManager.addMarkers(getMarkers(75), 12);
	
	/*markerManager.addMarkers(getMarkers(250), 11);
	markerManager.addMarkers(getMarkers(1250), 13);
	markerManager.addMarkers(getMarkers(12500), 14);*/
  	
	// Refresh di tutto
	markerManager.refresh();
}

// Crea il marker con la label passata come parametro
function creaMarker(point, icona, label, id) 
{
	// Variabile marker
	var marker = new GMarker(point,icona);

	// Crea listener per il click sull'oggetto
	GEvent.addListener(marker, "click", function() 
	{
    	marker.openInfoWindowHtml(label);
  	});
  
  	return marker;
}
