if (GBrowserIsCompatible()) {

    var select_html = '<button onClick="reset(1);">Reset<\/button>' +
                      '<select onChange="handleSelected(this)" id="mSelect">' +
                      '<option selected> - Vyber místo - <\/option>';

    var gmarkers = [];
    var to_htmls = [];
    var i = 0;

    function createMarker(point,name,html) {
      var marker = new GMarker(point,{icon: ikona, title: name}); 

      to_htmls[i] = html + 'Naplánovat cestu <b>sem<\/b> z :' +
         '<form action="http://maps.google.com/maps" method="get" target="_blank">' +
         '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" \/><br>' +
         '<input value="Ukaž trasu" TYPE="SUBMIT" class="go" \/>' +
         '<input type="hidden" name="daddr" value="' + point.lat() + ',' + point.lng() + 
         '"/>';   
      html = html + 'Naplánovat cestu <a href="javascript:tohere('+i+')">sem<\/a>.';              
      
      GEvent.addListener(marker, "click", function() {
        map.setCenter(new GLatLng(marker.getLatLng().lat() , marker.getLatLng().lng()), 14);
        marker.openInfoWindowHtml(html);
      });

      gmarkers[i] = marker;
      select_html += '<option>' + name + '<\/option>';        
      i++;
      return marker;
    }

    function handleSelected(opt) {
      var i = opt.selectedIndex - 1;
      if (i > -1) {
        GEvent.trigger(gmarkers[i],"click");
      }
      else {
        map.setCenter(new GLatLng(50.44351, 14.46350), 8);
        map.closeInfoWindow();
      }
    }

    function reset(r){
      if (r){
        map.setCenter(new GLatLng(50.44351, 14.46350), 8);
        map.closeInfoWindow();
        document.getElementById("mSelect").selectedIndex = 0;
      }
    }

    var map = new GMap2(document.getElementById("mapa"), {draggableCursor:"crosshair"});
    map.setCenter(new GLatLng(50.44351, 14.46350), 8);
    map.addControl(new GSmallMapControl());  
    map.addControl(new GMenuMapTypeControl());
    map.addControl(new GScaleControl());
    map.addMapType(G_PHYSICAL_MAP );

    var ikona = new GIcon();
    ikona.image = "upload/js/img/hike.png";
    ikona.shadow = "upload/js/img/hike-shadow.png";
    ikona.iconSize = new GSize(21, 31);
    ikona.shadowSize = new GSize(37, 31);
    ikona.iconAnchor = new GPoint(6, 32);
    ikona.infoWindowAnchor = new GPoint(10, 3);

    var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(440,1));
    pos.apply(document.getElementById("selection"));
    map.getContainer().appendChild(document.getElementById("selection"));

    var statusControl;
		statusControl = new MStatusControl({DMS:true, position:new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(0, -51))});
		map.addControl(statusControl);

    GEvent.addListener(map, "infowindowclose", function() {
      map.setCenter(new GLatLng(50.44351, 14.46350), 8);
      map.closeInfoWindow();
      document.getElementById("mSelect").selectedIndex = 0;    
    });
		
    function tohere(i) {
      gmarkers[i].openInfoWindowHtml(to_htmls[i]);
    }
      
    GDownloadUrl("upload/js/markers.xml", function (doc) {
      var xmlDoc = GXml.parse(doc);
      var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          
      for (var i = 0; i < markers.length; i++) {
      var lat = parseFloat(markers[i].getAttribute("lat"));
      var lng = parseFloat(markers[i].getAttribute("lng"));
      var point = new GLatLng(lat,lng);
      var url = markers[i].getAttribute("url");
      var html = markers[i].getAttribute("html");
      var label = markers[i].getAttribute("label");
      html = html + '<br>Přejít na <a href="' + url + '">článek<\/a>.<br>';
      var marker = createMarker(point,label,html);
      map.addOverlay(marker);
      }
      select_html += '<\/select>';
      document.getElementById("selection").innerHTML = select_html;
    });

}else {
  alert("Sorry, the Google Maps API is not compatible with this browser");
}