var geocoder = new GClientGeocoder();

function showAddresses(addresses, id) {
  if (GBrowserIsCompatible()) {
    var geocoder = new GClientGeocoder();
    var mappa = $('GmapEv') || $('GmapEvOld');
    var map = new GMap2(mappa);

    addresses.each( function (addr) {
      if (!addr.indirizzo) {
        return;
      }
      geocoder.getLatLng(
        addr.indirizzo,
        function (point) {
          if (!point) {
          //alert(addr.indirizzo, + " non trovato");
          } else {
            var marker = new GMarker(point);
            var myHtml = '<b><a href="' + addr.url + '">' + addr.nome + '</a></b><br/><br/>' + addr.indirizzo;

            if (addr.id==id)
              map.openInfoWindowHtml(point, myHtml);
            
            GEvent.addListener(marker, "click", function() {
              map.openInfoWindowHtml(point, myHtml);
            });
            
            map.addOverlay(marker);            
          }
        }
        );
			
    } );

    map.addControl(new GSmallMapControl());
    map.setCenter(new GLatLng(45.055046, 7.68028), 14);

  }
}

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

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

/*function registerEvents() {
	var mappaEv = $('GmapEv') || '';
	var mappaEvOld = $('GmapEvOld') || '';
	if (mappaEv) {
		getAddressesAjax();
	} else if (mappaEvOld) {
		getAddressesAjaxOld();
	}
}

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