var geocoder;
var map;

function showAddresses(addresses) {
	if (GBrowserIsCompatible()) {
		//var geocoder = new GClientGeocoder();
		geocoder = new GClientGeocoder();
    map = new GMap2($('GmapTerr'));

		if (addresses.length > 0) {
			addresses.each( function (addr) {
				geocoder.getLatLng(
					addr.indirizzo,
					function (point) {
						if (!point) {
							//alert(addr.indirizzo, + " non trovato");
						} else {
							var marker = new GMarker(point);
							GEvent.addListener(marker, "click", function() {
								var myHtml = "<b>" + addr.nome + "</b><br/>" + addr.indirizzo;
								map.openInfoWindowHtml(point, myHtml);
							});
							map.addOverlay(marker);
						}
					} );
				} );
		}
    map.addControl(new GSmallMapControl());
		map.setCenter(new GLatLng(45.055046, 7.68028), 15);
	}
}


function getAddressesAjax(tipo, kt, ricerca) {
	var data = $H({
		'tipo': tipo,
		'kt': kt,
    'ricerca': ricerca,
		'action': 'getIndirizzi'
	}).toQueryString();
	new Ajax.Request('ajaxIndirizzi.php', {
		method: 'get',
		parameters: data,
		onSuccess: function(transport) {
			showAddresses(eval(transport.responseText));
		}
	});
}

function showInfo(indirizzo, nome) {
  if (GBrowserIsCompatible()) {
    geocoder.getLatLng(
      indirizzo,
			function (point) {
				if (!point) {
          //alert(addr.indirizzo, + " non trovato");
				} else {
          var myHtml = "<b>" + nome + "</b><br/>" + indirizzo;
					map.openInfoWindowHtml(point, myHtml);
				}
      }
     );
  }
}

function registerEvents() {
	var mappaTerr = $('GmapTerr') || '';
	if (mappaTerr) {
		getAddressesAjax(mappaTerr.className);
	}
}

//Event.observe(window, 'load', registerEvents);
