var map = null;
var geocoder = null;

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
	    map.addMapType(G_PHYSICAL_MAP); 
	    map.addControl(new GMapTypeControl());
	    map.enableScrollWheelZoom();
	    map.setCenter(new GLatLng(41.736343,13.359375), 2);
	    //map.enableGoogleBar();

	// Creo GeoCoder Max 1.6 query/sec
		geocoder = new GClientGeocoder();
	
	loadMarkers();	

		}

    }
var allMarkerArray = [];					//tutti i marker 

 GMarker.prototype.Label = null;			//nuovi attributi, contenuto testuale
 GMarker.prototype.ImageIndex = 0;			//indice dell'imagine usato come segnaposto, ogni categoria ha un immagine
 //GMarker.prototype.CatIndex = 0;			//indice della categoria //superfluo

var markerImages = [
  "images/markeryellow.png",                                        //0 yellow
  "images/markerred.png",                                           //1 red
  "images/markergray.png",   										//2 gray
"images/markergray.png",   										//2 gray	
  "images/vespa.jpg"                                                //3 vespa
];


// Crea il marker con la label passata come parametro
function createMarker(point, label, imageIndex , catIndex ) 
{
	//alert("createMarker function!");
	// Variabile marker
	var marker = new GMarker(point);
	map.addOverlay(marker);  
   	marker.setImage(markerImages[0]);
	// Crea listener per il click sull'oggetto
	//GEvent.addListener(marker, "mouseover", function() 
	//{
    	//marker.openInfoWindowHtml(label);
	
  	//});

	GEvent.addListener(marker, "click", function() 
	{
    	marker.openInfoWindowHtml(label);
	
  	});

 
	marker.Label = label;
	marker.ImageIndex = imageIndex;


	allMarkerArray.push(marker);
  
	return marker;
}





function hideMarkers() {
  for (var i=0; i<allMarkerArray.length;i++) {

    allMarkerArray[i].hide();
  	
	}
}


function markerToggler(cat )
{

alert(cat);
}



// Traduce indirizzo inserito in coordinate tramite GeoCoder, altrimenti cerca nel database
function showAddress(address) 
{
	geocoder.getLatLng(address,
    function(point) 
	{
    	if (!point) 
		{
        	// Indirizzo non trovato, cerca nel database.
			alert(address + " non trovato!");
      	} 
		else 
		{
        	// Indirizzo trovato, centra la mappa ;)
			//alert(point);
			//alert(address);
			map.setCenter(point, 15);
			
			//address = address + point;
			address2 = point.toString().split(",");
			lat = address2[0];
			lng = address2[1];
			//alert(lat);
			label = '<form action=\"insert.php\" method=\"post\" enctype=\"multipart/form-data\" >';
			label += '<p>Se la località scelta sulla mappa va bene allora clicca su continua, altrimenti ripeti la ricerca</p>';
			label += '<p>Potrai modificare il nome della località per non far comparire la via nella fase successiva.</p>';
			label += '<input type=\"text\" readonly name=\"luogo\" value=\"'+address+'\">   ';
			label += '<input type=\"hidden\" name=\"lat\" value=\"'+lat+'\">';
			label += '<input type=\"hidden\" name=\"lng\" value=\"'+lng+'\">';
			label += '<input type=\"hidden\" name=\"op\" value=\"showForm\">';
			label += '<input type=\"submit"\ value=\"CONTINUA\"></form>';
		
			// Crea il marker
			//hideMarkers();
			temp = map.addOverlay(createMarker(point, label ));
			temp.openInfoWindowHtml(label);
      	}
    });
}


//Mostra un alert con le coordinate del luogo cercato, per admin

function showLatLng(address) 
{
	geocoder.getLatLng(address,
    function(point) 
	{
    	if (!point) 
		{
        	// Indirizzo non trovato, cerca nel database.
			alert(address + " non trovato!");
      	} 
		else 
		{
        	// Indirizzo trovato, centra la mappa ;)
			alert(point);
			map.setCenter(point, 10);
			
			address = address + point;

			// Crea il marker
			map.addOverlay(createMarker( point, address));
      	}
    });
}