
function addLoadEvent(func){
  var oldonload=window.onload;
  if(typeof window.onload!='function') {
    window.onload = func;
  }
  else {
    window.onload=function() {
        oldonload();
      func();
    }
  }
}



addLoadEvent(Mappa);
//addResizeEvent(Mappa);
//addUnLoadEvent(GUnload);
window.onunload= GUnload;

var icon;
var gmarkers;
var info;

function Mappa(){
	if (GBrowserIsCompatible()) {
		
		var map = new GMap2(document.getElementById("mappaR"));
		map.addControl(new GSmallMapControl()); 
		//map.addControl(new GOverviewMapControl());
		map.addControl(new GMapTypeControl());
		
		// POSIZIONO LEGENDA
		/*
		var pos = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(2,15));
		pos.apply(document.getElementById("legenda"));
		map.getContainer().appendChild(document.getElementById("legenda"));
		*/
		// == E' necessario crea un setCenter prima di tutto dato che non conosciamo i valori esatti ====
		map.setCenter(new GLatLng(41.829761,12.460406),14);
		
		map.enableDoubleClickZoom();
		//map.enableScrollWheelZoom();
		
		// === dimensioni icone ===
			var iconCat = new GIcon();
			iconCat.shadow = "grafica/ombra.png";
			iconCat.iconSize = new GSize(23, 42);
			iconCat.shadowSize = new GSize(34, 42);
			iconCat.iconAnchor = new GPoint(11, 42);
			iconCat.infoWindowAnchor = new GPoint(13, 1);

		// === Pulisco le variabili ===
		gmarkers = [];
		// differenza solo per Home NO ZOOM calcolato in base ai punti (commento riga sotto)		
		//bounds = [];
		info= [];
		var i = 0;

		function createMarker(point,nome,vaidettaglio,indirizzo,iconaCategoria) {
	
		if (iconaCategoria == 'dormire') {
			iconCat.image = "grafica/alberghi.png";
		} else {
			iconCat.image = "grafica/ristoranti.png";
		}
			var marker = new GMarker(point, iconCat);
				GEvent.addListener(marker, "click", function() {
					marker.openInfoWindowHtml('<div class="padMappa"><p><span class="nomeRistorante">'+nome+'</span><br />'+indirizzo+'</p></div>');
				});
			gmarkers[i] = marker;
			info[i] = '<div class="padMappa"><p><span class="nomeRistorante">'+nome+'</span><br />'+indirizzo+'</p></div>';
			i++;
			return marker;
		}

		// ===== Svuoto l'oggetto GLatLngBounds =====
		// differenza solo per Home NO ZOOM calcolato in base ai punti (commento riga sotto)
		// var bounds = new GLatLngBounds();
	
		var newpoints = arraypunti();	
		for (var k = 0; k < newpoints.length; k++) {
			// ottengo glie attributi di ogni marker
			var lat = newpoints[k][0];
			var lng = newpoints[k][1];
			var point = new GLatLng(lat,lng);
			var nome = newpoints[k][2];
			var vaidettaglio = newpoints[k][3];
			var indirizzo = newpoints[k][4];
			var iconaCategoria = newpoints[k][5];
			// creo il marker
			var marker = createMarker(point,nome,vaidettaglio,indirizzo,iconaCategoria);
			map.addOverlay(marker);
			// ==== per ogni punto, estende il boundse lo include =====
		// differenza solo per Home NO ZOOM calcolato in base ai punti (commento riga sotto)
			// bounds.extend(point);
		}
		// determino lo zoom e il centro della mappa
		// differenza solo per Home NO ZOOM calcolato in base ai punti (commento riga sotto)
		// map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds)); 
	} else {// visualizza l'errore se non è un browser compatibile
		  alert("La mappa che stai tentando di visionare non è compatibile con il tuo browser!");
	}

}

function myclick(i) {
		gmarkers[i].openInfoWindowHtml(info[i]);
		window.location.href="#top";
}