var map;

  function Text(text, link, latLng) {
    this.text_ = text;
    this.link_ = link;
    this.latLng_ = latLng;
  }
  
  Text.prototype = new GOverlay();
  
  Text.prototype.initialize = function(map) {    
    var txtNode = document.createTextNode(this.text_);
    
    var a = document.createElement("a");
    a.href = "/" + this.link_;
    a.style.position = "absolute";
    a.style.width = "150px";
    a.appendChild(txtNode);
    
    map.getPane(G_MAP_MAP_PANE).appendChild(a);
    
    a.style.left = map.fromLatLngToDivPixel(this.latLng_).x + "px";
    a.style.top = map.fromLatLngToDivPixel(this.latLng_).y + "px";
    
    this.map_ = map;
    this.a_ = a;
  }
  
  Text.prototype.remove = function() {
    this.div_.parentNode.removeChild(this.div_);
  }

  Text.prototype.redraw = function(force) {
    if (!force) return;
    
    this.a_.parentNode.style.zIndex = "1000";
    this.a_.style.left = this.map_.fromLatLngToDivPixel(this.latLng_).x + 10 + "px";
    this.a_.style.top = this.map_.fromLatLngToDivPixel(this.latLng_).y - 25 + "px";
  }

function createMarker(data) {
  var point = new GLatLng(data.point[0], data.point[1]);
  var code = data.code;
  var name = data.name;
  
  var ico = new GIcon();
  ico.image = "/img/kapka_dest.png";
  ico.iconSize = new GSize(19, 29);
  ico.iconAnchor = new GPoint(10, 29);

  var marker = new GMarker(point, {icon:ico});
  map.addOverlay(new Text(name, code, point));

  GEvent.addListener(marker, "click", function() {
    document.location.href = "/" + code;
  });
    
  return marker;
}

if (GBrowserIsCompatible()) {
  $(document).ready(function() {
    map = new GMap2(document.getElementById("mapa"));
        
    //nastaveni zobrazovane plochy 
    var bounds = new GLatLngBounds(min, max);
    var centerPoint = bounds.getCenter();
    
    //vykresleni ovladacich panelu
    map.removeMapType(G_NORMAL_MAP);
    map.removeMapType(G_SATELLITE_MAP);
    map.removeMapType(G_HYBRID_MAP);
    map.addMapType(G_HYBRID_MAP);
    map.addMapType(G_SATELLITE_MAP);
    map.addMapType(G_PHYSICAL_MAP);
    map.addMapType(G_NORMAL_MAP);
    map.addControl(new GLargeMapControl());                      
    map.addControl(new GMapTypeControl());
    map.setCenter(centerPoint, map.getBoundsZoomLevel(bounds));
    //map.enableScrollWheelZoom();
  
    $.getJSON(ajax, function(data){  
      var ico = new GIcon();
      ico.image = "/img/kapka_dest.png";
      ico.iconSize = new GSize(19, 29);
      ico.iconAnchor = new GPoint(10, 29);
      
      for (var i in data) {
        var zaznam = data[i];
        var marker = createMarker(zaznam);
        map.addOverlay(marker);
      }
    });
  });
}