

var numPuntiMappa;

if (GBrowserIsCompatible()) {
		/*
	  var options = {

		//onGenerateMarkerHtmlCallback : function(marker, div, result) { div.innerHTML = "bla"; return div; },
		onMarkersSetCallback : function() { alert("ciao");}           

		};
	 
		  */
	  var map = new GMap2(document.getElementById("main_map_container"));
	  //map.addControl(new GLargeMapControl());
	  map.addControl(new GSmallZoomControl3D ());
	  //map.addControl(new GMapTypeControl());
	  /*
	  var normal = new GMapTypeControl();
	  var normalTiny = new GMapTypeControl(true);
	  var menuTiny = new GMenuMapTypeControl(true);
	  var menuBorder = new GMenuMapTypeControl(false,true);
	  var menuTinyBorder = new GMenuMapTypeControl(true,true);
	  */
	  var menu = new GMenuMapTypeControl();
	  map.addControl(menu);
	  //map.addControl(GHierarchicalMapTypeControl() );
	  map.enableScrollWheelZoom();     
	  
	  //map.setCenter(new GLatLng(37,-122), 14);            
	  //map.enableGoogleBar();
	  
	  /*icone*/
	  var baseIcon = new GIcon(G_DEFAULT_ICON);
	  baseIcon.image = 'img/gmaps/marker.png';
	  baseIcon.shadow = "img/gmaps/shadow.png";
	  /*baseIcon.iconSize = new GSize(48, 48);
	  baseIcon.iconAnchor = new GPoint(11, 0);
	  baseIcon.infoWindowAnchor = new GPoint(11, 48);*/
	  markerOptions = { icon:baseIcon };
	  
	  var gicons = [];
	  gicons["marker"] = "img/gmaps/marker.png";
	  gicons["start"] = "img/gmaps/dd-start.png";
	  
	  
	  // ==== It is necessary to make a setCenter call of some description before adding markers ====
	  // ==== At this point we dont know the real values ====
	  map.setCenter(new GLatLng(0,0),0);
	
   
	  //var side_bar_html = "";
	  var gmarkers = [];
	  var htmls = [];
	  var i = 0;

	  // ===== Start with an empty GLatLngBounds object =====     
	  var bounds = new GLatLngBounds();
	  
	  
	  
	  function createMarker(point,html,htmlBalloon) {
		var marker = new GMarker(point,markerOptions);
		GEvent.addListener(marker, "click", function() {
		  marker.openInfoWindowHtml(html);
		});
		gmarkers[i]     = marker;
		htmls[i]        = html;
		//side_bar_html  += '<a href="javascript:myclick(' + i + ')">' + html + '<\/a><br>';
		i++;
		return marker;
	  }


	  function myclick(i) {
		 
		  gmarkers[i].openInfoWindowHtml(htmls[i]);
		  //alert("ciao")
		 
	  }
	  
	  function resetMarker(i) {
		try{  
			gmarkers[i].closeInfoWindow();
			gmarkers[i].setImage(gicons["marker"])   ;
		}catch(err){};
	  }
	  function markerOn(i){
		try{      
		myclick(i);       
		gmarkers[i].setImage(gicons["start"]);
		}catch(err){};        
	  }
	  
	  
		   

		 
	  /**Ottiene  Lat / long / dall'indirizzo'**/   
	  function getLL(address,elemErr,htmlBalloon){     
		//alert(address)
		// creo l'oggetto GClientGeocoder
		var geocoder = new GClientGeocoder();
		// l'indirizzo č proprio un testo, potrebbe essere anche solo una cittā
		//var address = 'via salaria, roma, italia';
		 
		geocoder.getLatLng( address,
			function(point) {
				 if(point){
					//alert(point)
					/*var marker = new GMarker(point);
					map.addOverlay(marker);
					map.setCenter(point, 8);*/
					showPoint(point,address,htmlBalloon);
				  } 
				  else{ 
					  //alert(address)
					  $("#"+elemErr).show().html("Punto sulla mappa non trovato.") ;
					}
			}
		);
	   }
	  
	  /**Mostra un punto sulla mappa passando Lat / long / Indirizzo(per il balloon)**/
	  function showLL(lat,lng,address){
			
			var point = new GLatLng(lat,lng);
			showPoint(point,address);       

		}
	   
	   

	  /****/
	  function showPoint(point,address,htmlBalloon){
		
		 
		if(!htmlBalloon)  
			htmlBalloon = address;
		
		//alert(htmlBalloon)
		var marker = createMarker(point,htmlBalloon);
		map.addOverlay(marker);
		bounds.extend(point);   
		   
		var zoomlevel;
		zoomlevel = map.getBoundsZoomLevel(bounds) - 1;
			  
		// ===== determine the zoom level from the bounds =====
		map.setZoom(zoomlevel);
		
		// ===== determine the centre from the bounds ======
		center = bounds.getCenter();//center definito in modo globale in gmaps_init.js
		map.setCenter(center);
			
		
	  }
 
	  
		
	 
	
}//end if 
	
// display a warning if the browser was not compatible
else {
	  alert("Sorry, the Google Maps API is not compatible with this browser");
	}
	
	
	/*
	getLL("Triggiano - Viale Gramsci, 13");//bari
	getLL("Trani - VIA ANNIBALE MARIA DI FRANCIA, 174");//milano
	
	getLL("Roma");//milano  
	*/