var map;
var punto = new Array();
var i;
var prov = "";
/*
function cambia_prov()  // forse non serve //////////////////////////////////////////////////////////////////////////////////////////////////////////////
	{
	var citta = document.getElementById('c').options[document.getElementById('c').selectedIndex].value.toLowerCase();
	var tipologia = document.getElementById('t').options[document.getElementById('t').selectedIndex].value;
	document.location.href = "tipologia." + tipologia + ".p_" + citta + ".html";
	}

function cambia_citta()   // forse non serve //////////////////////////////////////////////////////////////////////////////////////////////////////////////
	{
	var citta = document.getElementById('c').options[document.getElementById('c').selectedIndex].value.toLowerCase();
	var tipologia = document.getElementById('t').options[document.getElementById('t').selectedIndex].value;
	document.location.href = "tipologia." + tipologia + ".c_" + citta + ".html";
	}

function cerca() // forse non serve //////////////////////////////////////////////////////////////////////////////////////////////////////////////
	{
    if (GBrowserIsCompatible())
		{
		var citta = document.getElementById('c').options[document.getElementById('c').selectedIndex].value;
		var point = get_coord_citta(citta, "coord");
		var zoom = get_coord_citta(citta, "zoom");
		map.setCenter(punto, zoom);
		show_poi();
		}
	}
*/


function get_coord_citta(citta, mode) // map.js ///////////////////////
	{
	if (citta == "AN")
		{
		var point = new GLatLng(43.615821, 13.518934);
		var zoom = 13;
		}
	else if (citta == "BA")
		{
		var point = new GLatLng(41.126047, 16.869292);
		var zoom = 13;
		}
	else if (citta == "BO")
		{
		var point = new GLatLng(44.494424, 11.34922);
		var zoom = 13;
		}
	else if (citta == "CZ")
		{
		var point = new GLatLng(38.909999, 16.587678);
		var zoom = 14;
		}
	else if (citta == "FI")
		{
		var point = new GLatLng(43.768732, 11.256901);
		var zoom = 13;
		}
	else if (citta == "GE")
		{
		var point = new GLatLng(44.407052, 8.934031);
		var zoom = 13;
		}
	else if (citta == "MI")
		{
		var point = new GLatLng(45.464706, 9.18869);
		var zoom = 13;
		}
	else if (citta == "NA")
		{
		var point = new GLatLng(40.840048, 14.252872);
		var zoom = 13;
		}
	else if (citta == "PA")
		{
		var point = new GLatLng(38.115651, 13.361092);
		var zoom = 13;
		}
	else if (citta == "PG")
		{
		var point = new GLatLng(43.110696, 12.389145);
		var zoom = 14;
		}
	else if (citta == "RM")
		{
		var point = new GLatLng(41.895441, 12.482357);
		var zoom = 13;
		}
	else if (citta == "TO")
		{
		var point = new GLatLng(45.070611, 7.686653);
		var zoom = 14;
		}
	else if (citta == "TS")
		{
		var point = new GLatLng(45.644408, 13.781834);
		var zoom = 13;
		}
	else if (citta == "VE")
		{
		var point = new GLatLng(45.43411, 12.339706);
		var zoom = 14;
		}

	if (mode == "coord")
		{
		return (point);
		}
	else if (mode == "zoom")
		{
		return (zoom);
		}
	
	}

function set_center(la, lo, zoom) // map.js ////////////
	{
    if (GBrowserIsCompatible())
		{
		var point = new GLatLng(la, lo);
		map.setCenter(point, zoom);
		show_poi();
		}
	}

function zoom(zoom) // map.js ////////////////////
	{
    if (GBrowserIsCompatible())
		{
		var new_zoom = map.getZoom() + zoom;
		map.setZoom(new_zoom);
		show_poi();
		}
	}

function readxml(data) // map.js ////////////
	{
	var xml = GXml.parse(data);
	var markers = xml.documentElement.getElementsByTagName("marker");
	for (i = 0; i < markers.length; i++)
		{
		var latlng = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
		punto[i] = new GMarker(latlng, icon);
		punto[i].nome = markers[i].getAttribute("n");
		punto[i].indi = markers[i].getAttribute("i");
		punto[i].tel =  markers[i].getAttribute("t");
		punto[i].url =  markers[i].getAttribute("u");
		map.addOverlay(punto[i]);
		GEvent.addListener(punto[i], "click", function()
			{
			this.openInfoWindowHtml("<div id='fumetto'><b id='nomelocalefumetto'>" + this.nome + "</b><br>" + this.indi + "<br>" + this.tel + "<br><a href='" + this.url + "'>Vedi scheda</a></div>");
			});
		}
	document.getElementById('loading').style.display="none";
	}

function show_poi()  // map.js ////////////
	{
	map.clearOverlays();
	var tipo = (document.getElementById('t')) ? document.getElementById('t').options[document.getElementById('t').selectedIndex].value : null;
	var prezzo =  (document.getElementById('prezzo')) ? document.getElementById('prezzo').options[document.getElementById('prezzo').selectedIndex].value : null;
	var spec =  (document.getElementById('spec')) ? document.getElementById('spec').options[document.getElementById('spec').selectedIndex].value : null;
	var zoom = map.getZoom();
	if (zoom > 10)
		{
		document.getElementById('loading').style.display="";
		var bounds = map.getBounds(); 
		var southWest = bounds.getSouthWest(); 
		var northEast = bounds.getNorthEast(); 
		var latmin = southWest.lat();
		var latmax = northEast.lat();
		var lonmin = southWest.lng();
		var lonmax = northEast.lng();
		var pars = "latmin="+latmin+"&latmax="+latmax+"&lonmin="+lonmin+"&lonmax="+lonmax+"&t="+tipo+"&z="+prov+"&spec="+spec;
		icon = new GIcon();
		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
//		alert ("xml_poi.php?"+pars);
		GDownloadUrl("xml_poi.php?"+pars, readxml);
		}
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function mapload() // index.php locale_map.php res_locali.php res_locali_citta.php /////////////////////////////////////////////////////////////////////
	{
	if (GBrowserIsCompatible())
		{
		map = new GMap2(document.getElementById("map"));
		map.clearOverlays();
		var point = new GLatLng(41.850122, 12.700195);
        geocoder = new GClientGeocoder();
		
		map.setCenter(point, 5);
		map.setMapType(G_NORMAL_MAP);
		
		icon = new GIcon();
		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
		//		map.addControl(new GSmallMapControl());
		map.removeMapType(G_SATELLITE_MAP)
		map.addControl(new GMapTypeControl());
//		map.addOverlay(new GMarker(point, icon));
		map.disableDoubleClickZoom();
		show_poi();
		
		GEvent.addListener(map, "dragend", show_poi); 
		}
	}

function map_locale_load() // locale.php //////////////////////////////////////////////////////////////////////////////////
	{
	if (GBrowserIsCompatible())
		{
		map = new GMap2(document.getElementById("map"));
		map.clearOverlays();
		var point = new GLatLng(init_lat, init_lon);
		
		map.setCenter(point, init_zoom);
		map.setMapType(G_NORMAL_MAP);
		
		icon = new GIcon();
		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
		map.addControl(new GSmallMapControl());
		map.removeMapType(G_SATELLITE_MAP)
		map.addControl(new GMapTypeControl());
		map.addOverlay(new GMarker(point, icon));
		map.disableDoubleClickZoom();
		}
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function cerca_citta() // index.tpl ///////////////////////////////////////////////////////////////////////////////////////////////////
	{
	if (geocoder)
		{
		var address = document.getElementById('c').value;
		geocoder.getLatLng(
		address+" italia",
		function(point)
			{
			if (!point)
				{
				alert("Impossibile localizzare "+address);
				}
			else
				{
				map.setCenter(point, 13);
				show_poi();
				}
			});
		}
	}


function cambia_citta_from_tipologia() // res_locali.tpl ///////////////////////////////////////////////////////////////////////////////////////////////////
	{
	var citta = document.getElementById('c').value.toLowerCase();
	var tipologia = document.getElementById('t').options[document.getElementById('t').selectedIndex].value;
	document.location.href = "tipologia." + tipologia + ".c_" + citta + ".html";
	}


function mapload_res(prov_1) // res_locali.php //////////////////////////////////////////////////////////////////////////////////
	{
	if (GBrowserIsCompatible())
		{
		map = new GMap2(document.getElementById("map"));
		map.clearOverlays();
		var point = get_coord_citta(prov_1, "coord");
		prov = prov_1;
		
		var zoom = get_coord_citta(prov_1, "zoom");
		map.setCenter(point, zoom);
		map.setMapType(G_NORMAL_MAP);

		icon = new GIcon();
		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
		//		map.addControl(new GSmallMapControl());
		map.removeMapType(G_SATELLITE_MAP)
		map.addControl(new GMapTypeControl());
//		map.addOverlay(new GMarker(point, icon));
		map.disableDoubleClickZoom();
		show_poi();

		GEvent.addListener(map, "dragend", show_poi); 
		document.getElementById('loading').style.display="none";
		}
	}
function mapload_res_citta(citta)// res_locali_citta.php //////////////////////////////////////////////////////////////////////////////////
	{
	if (GBrowserIsCompatible())
		{
		map = new GMap2(document.getElementById("map"));
		map.clearOverlays();
        geocoder = new GClientGeocoder();
	
		if (geocoder)
			{
			geocoder.getLatLng(
			citta+" italia",
			function(point)
				{
				if (!point)
					{
					alert("Impossibile localizzare "+citta);
					}
				else
					{
					map.setCenter(point, 13);
					show_poi();

					map.setCenter(point, 13);
					map.setMapType(G_NORMAL_MAP);
			
					icon = new GIcon();
					icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
					icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
					icon.iconSize = new GSize(12, 20);
					icon.shadowSize = new GSize(22, 20);
					icon.iconAnchor = new GPoint(6, 20);
					icon.infoWindowAnchor = new GPoint(5, 1);
					//		map.addControl(new GSmallMapControl());
					map.removeMapType(G_SATELLITE_MAP)
					map.addControl(new GMapTypeControl());
					//map.addOverlay(new GMarker(point, icon));
					map.disableDoubleClickZoom();
					show_poi();
			
					GEvent.addListener(map, "dragend", show_poi); 
					document.getElementById('loading').style.display="none";
					}
				});
			}
		}
	}

function showAddress(address, cap_citta, id) // locale.php ////////////////////////////////////////////////////////////////////
	{
	if (GBrowserIsCompatible())
		{
		map = new GMap2(document.getElementById("map"));
		map.clearOverlays();
		var point = new GLatLng(init_lat, init_lon);
		
		map.setCenter(point, init_zoom);
		map.setMapType(G_NORMAL_MAP);
		
		icon = new GIcon();
		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		icon.iconSize = new GSize(12, 20);
		icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
		map.addControl(new GSmallMapControl());
		map.removeMapType(G_SATELLITE_MAP)
		map.addControl(new GMapTypeControl());
		map.disableDoubleClickZoom();
		geocoder = new GClientGeocoder();
      	if (geocoder)
			{
			geocoder.getLatLng( address, function(punto_indirizzo)
				{
				if (!punto_indirizzo)
					{
					geocoder.getLatLng( cap_citta, function(punto_indirizzo2)
						{
						if (!punto_indirizzo2)
							{
							map.setCenter(point, 5);
							}
						else
							{
							map.setCenter(punto_indirizzo2, 9);
							map.addOverlay(new GMarker(punto_indirizzo2, icon));
							document.location.href = "locale.php?id=" + id + "&lat=" + punto_indirizzo2.lat() + "&lng=" + punto_indirizzo2.lng();
							}
						});
					}
				else
					{
					map.setCenter(punto_indirizzo, init_zoom);
					map.addOverlay(new GMarker(punto_indirizzo, icon));
					document.location.href = "locale.php?id=" + id + "&lat=" + punto_indirizzo.lat() + "&lng=" + punto_indirizzo.lng();
					}
				});
			}
		else
			{
			map.setCenter(point, 5);
			}
		}
	}

