var punkty = new Array();
var localSearch = new GlocalSearch();

function load() {
  if (GBrowserIsCompatible()) {
    mapa = new GMap2(document.getElementById("mapka"),{mapTypes: [G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP]});

    mapa.addControl(new GLargeMapControl());
    var typyMapy = mapa.getMapTypes();
    typyMapy[0].getName= function() { return "Mapa";}
    typyMapy[1].getName = function() { return "Satelita";}
    typyMapy[2].getName = function() { return "Hybryda";}
    mapa.addControl(new GMapTypeControl());
    mapa.addControl(new GScaleControl());

    var anglia = new GLatLng(54.622978,-2.592773);
    mapa.setCenter(anglia, 8);
    
    ladujMarkery();
    
    mapa.setCenter(new GLatLng(52.014641,-0.630341), 8);
  }
}

function ladujMarkery() {
  mapa.clearOverlays();

  var ilosc = 0;
  $.ajax({
    type: "POST",
    url: 'lokacje.php',
    dataType: "xml",
    data: 'action=gmap',
    success: function(xml) {
      $("obiekt", xml).each(function() {
        punkty[ilosc] = {
          latitude: $('lat', this).text(),
          longitude: $('lon', this).text(),
          kod_pocztowy: $('kod_pocztowy', this).text(),
          id : $('id', this).text(),
          nazwa: $('nazwa', this).text(),
          adres: $('adres', this).text(),
          opis: $('opis', this).text(),
          fotka: $('fotka', this).text() };
        if (punkty[ilosc].latitude == 0 && punkty[ilosc].longitude == 0 && punkty[ilosc].kod_pocztowy != '') {
          znajdzMiejsce(punkty[ilosc], dodajMarker);
        } else {
          dodajMarker(punkty[ilosc]);
        }
        ilosc++;
      });
    },
    error: function() { alert("Nie mogłem otworzyć pliku z danymi... " + begin); }
  });
}

function dodajMarker(pkt) {
  var ikona = new GIcon();

  ikona.image = 'http://maps.google.com/mapfiles/kml/pal3/icon38.png';
  ikona.iconSize = new GSize(32,32);
  ikona.iconAnchor = new GPoint(10,34);
  ikona.shadow = 'http://maps.google.com/mapfiles/kml/pal3/icon38s.png';
  ikona.shadowSize = new GSize(59,32);
  ikona.infoWindowAnchor = new GPoint(15,12);

  var punkt  = new GLatLng(pkt.latitude, pkt.longitude);
  var marker = new GMarker(punkt, {title: pkt.nazwa, icon: ikona});

  if (pkt.fotka != '')
    zdjecie = '<img src="gallery/thumbs/' + pkt.fotka + '" alt="' + pkt.nazwa + '" title="' + pkt.nazwa + '" />';
  else
    zdjecie = '';

  mapa.addOverlay(marker);
  GEvent.addListener(marker, "click", function() {
    mapa.panTo(punkt);
    marker.openInfoWindowHtml('<div class="gmopis">' + zdjecie + '<h1>' + pkt.nazwa + '</h1>' + pkt.adres + '</div>');
  });
  //marker.openInfoWindowHtml('<div class="gmopis">' + zdjecie + '<h1>' + pkt.nazwa + '</h1>' + pkt.adres + '</div>');
  //mapa.panTo(punkt);
}

function znajdzMiejsce(pkt, callbackFunction) {
  localSearch.setSearchCompleteCallback(null, function() {
    if (localSearch.results[0]) {
      pkt.latitude = localSearch.results[0].lat;
      pkt.longitude = localSearch.results[0].lng;

      $.ajax({
        type: "POST",
        url: 'lokacje.php',
        dataType: "xml",
        data: 'action=dodaj&lat='+pkt.latitude+'&lon='+pkt.longitude+'&id='+pkt.id,
        success: function(xml) { alert($('wynik', xml).text()); },
        error: function() { alert("Nie mogłem odczytać pliku..."); }
      });

      callbackFunction(pkt);
    } else {
      alert("Miejsce nie znalezione!");
    }
  });
  localSearch.execute(pkt.kod_pocztowy);
}
