var domena = document.location.href.split(".cz")[0] + ".cz";

var map;
var geoXml, sGeoXml, cGeoXml;
var gml;
var sGeoXmls = new Array();
sGeoXmls["o"] = new Array();
sGeoXmls["tc"] = new Array();
sGeoXmls["ka"] = new Array();
sGeoXmls["sm"] = new Array();
var sGeoUrls = new Array();
sGeoUrls["o"] = new Array();
sGeoUrls["tc"] = new Array();
sGeoUrls["ka"] = new Array();
sGeoUrls["sm"] = new Array();

var cGeoXmlFirstLoaded = false;
var toggleState = 1;
var defaultLat = 49.787838;
var defaultLng = 15.424132;
var baseUrl = domena + '/jsmapy/';
var defaultUrl = baseUrl + 'objekty_pro_mapy.asp';
var mapArr = new Array();
var dynamicMap;
var dmDefaultType = "o";
var dmDefaultId;
var dynamicMapNezobrazovat = "";

var pocitadloNacteniDlazdic = 0;

var preloaderCounter = 0;
var znackyMist = new Array();
var tooltip = null;

var cestyKIkonam = new Array();
cestyKIkonam["obj"] = domena+"/jsmapy/icons/set1/hotely.gif";
cestyKIkonam["tc"] = domena+"/jsmapy/icons/set4/tc_%s.gif";
cestyKIkonam["sm"] = domena+"/jsmapy/icons/set3/sm_%s.gif";
cestyKIkonam["ka"] = domena+"/jsmapy/icons/set2/ka_%s.gif";

$(document).ready(function() {
    
    document.onmousemove=getMouse;
    
    if(document.getElementById("tooltip") != null) {
      tooltip = document.getElementById("tooltip");
      tooltip.style.position = 'absolute';
    }
    
    /* Inicializace detailu s mapou */
    if(document.getElementById("map_canvas") != null && document.getElementById("ubytovani") != null) {
        var typPredmetu = $("#map_typ_predmetu").val() == "o" ? "o" : "c";
        var kodPredmetu = $("#map_kod_predmetu").val();
    }

    $("#toggle1").click(function() {
        var type = 'o';

        if($.inArray('vyhledavani_velka', mapArr) == -1) {
            var url = defaultUrl + "?" + type + "="+$("#map_big").val() + "&piktogramy=1";
            setTimeout("initialize(" + defaultLat + ", " + defaultLng + ", 'map_canvas', '" + url + "', true)", 500);
            mapArr[mapArr.length] = 'vyhledavani_velka';
        }
        return false;
    });

    $(".button1 a").click(function() {
        if($.inArray(this.rel, mapArr) == -1) {
            var type = $("#map_type").val();
            type = (!type) ? 'o' : type;

            var rel = this.rel;
            var spl = rel.split("_");
            var obj_id = spl[2];
            
            var url = defaultUrl + "?" + type + "=" + obj_id  + "&no_description=1&piktogramy=1";
            
            /* po kliknutí na libovolnou (předpokládá se jedna) značku ve vrstvě URL se má přejít na odkaz */
            if(document.getElementById("odkaz_" + obj_id) != null) {
              vgxOdkazovatNa[zkratUrl(url)] = $("#odkaz_"+obj_id).attr("href");
            }
            
            if($("#map_uroven_obec") && $("#map_uroven_obec").val()) {
                var zoom = 13;
            } else {
                var zoom = 11;
            }
            
            setTimeout("initialize(" + defaultLat + ", " + defaultLng + ", '" + this.rel + "', '" + url + "', "+zoom+")", 500);
            mapArr[mapArr.length] = this.rel;
        }
    });
    

    
    
    
    /* Do objektů s class="mapframe_(objekt|cil)" a atributem rel="ID_OBJEKTU" se automaticky načte mapka se zvýrazněným objektem */
    $(".mapframe_objekt").each(function(i) {
            var obj_id = this.getAttribute("rel");
            
            // Jedna ikonka = bez piktogramu, více ikonek = s piktogramama
            var piktogram = obj_id.split(',').length > 1 ? "&piktogramy=1" : "";
            var description = obj_id.split(',').length == 1 ? "&no_description=1" : "&no_description=0";
            
            var url = new Array(defaultUrl + "?o=" + obj_id + description + piktogram);
            if($("#map_pridej_vrstvu_m") && $("#map_pridej_vrstvu_m").attr("rel") == this.id) {
              url[1] = defaultUrl + "?m=" + $("#map_pridej_vrstvu_m").val() + "&no_description=1";        
            }
            
            initialize(defaultLat, defaultLng, this, url, 9);
    });
    
    if(document.getElementById("map_okoli_mista")) {
        var urlOkoliMista = baseUrl + "okoli_objektu.asp" +
                                      "?o=" + $("#map_okoli_mista").attr("rel") + 
                                      "&typ=tc,sm,ka" +
                                      "&vzdalenost=15" + 
                                      "&piktogramy=1";
        var mapaOkoli = initialize(defaultLat, defaultLng, "map_okoli_mista", urlOkoliMista, 11);

    }
});

function initialize(lat, lng, id, url, zoom, schovatObjekt) {
    if (GBrowserIsCompatible()) {
        if(id) {
            if(typeof id == 'object') {
                
                map = new GMap2(id);
            } else {
                map = new GMap2(document.getElementById(id));
            }
        } else {
            map = new GMap2(document.getElementById('map_canvas'));
        }

        map.setCenter(new GLatLng(lat, lng), zoom);
        map.setUIToDefault();
        map.disableScrollWheelZoom();
        
        url = !url ? defaultUrl : url;
        if(isArray(url)) {
          var pUrl = url;
        } else {
          var pUrl = new Array(url);
        }
        
        var pGeoXml = new Array();
        
        for(var i = 0; i<pUrl.length; i++) {
          var poc = i;
          ukazPreloader();
          vgxStart(pUrl[poc], map, zoom ? zoom : false);

          //pGeoXml[i] = new GGeoXml(pUrl[poc]);
          //map.addOverlay(pGeoXml[poc]);
        
       /*   GEvent.addListener(pGeoXml[poc], "load", function() {
              if(zoom) {
                  map.setZoom(zoom);
              } else {
                  if(pGeoXml[poc].getDefaultBounds()) {
                      map.setZoom(map.getBoundsZoomLevel(pGeoXml[poc].getDefaultBounds()));
                  } else {
                      map.setZoom(7);
                  }
              }
              
              if(pGeoXml[poc].getDefaultCenter()) {
                  map.setCenter(pGeoXml[poc].getDefaultCenter());              
              } else {
                  map.setCenter(defaultLat, defaultLng);
              }
              
              if(document.getElementById("preloader")) {
                $("#preloader").hide();
              }
          });*/
        }
    }
    return map;
}

/**
 * cObjType = typ středového objektu - typicky "o", "ka", "sm", "tc"
 * cObject = katalogový kód středového objektu
 */  
function initDynamicMap(target, cObjType, cObject, zoom) {
    if (GBrowserIsCompatible()) {
           
        var cot = cObjType=="o" ? "o" : cObjType;
        dynamicMapNezobrazovat = "&nezobrazovat_" + (cot == "o" ? "objekt" : "cil") + "=" + cObject;
        var cUrl = baseUrl + "objekty_pro_mapy.asp?" + cot + "=" + cObject; 

        if(typeof target == 'object') {
            dynamicMap = new GMap2(target);
        } else {
            dynamicMap = new GMap2(document.getElementById(target));
        }

        dynamicMap.setUIToDefault();

        // Je nastavený typ centrálního objektu -> tady se rozliší i dynamická mapa detailu proti dynamické mapové aplikaci
        if(cObjType) {
            vgxStart(cUrl, dynamicMap, 10);
            dynamicMap.disableScrollWheelZoom();   
            /*cGeoXml = new GGeoXml(cUrl);
            dynamicMap.addOverlay(cGeoXml);*/
        } else {
            dynamicMap.setCenter(new GLatLng(defaultLat, defaultLng), zoom);    
        }
        
        /*if(cObjType) {
            GEvent.addListener(cGeoXml, "load", function() {
                if(!cGeoXmlFirstLoaded) {
                    dynamicMap.setCenter(cGeoXml.getDefaultCenter(), 11);
                }
                cGeoXmlFirstLoaded = true;
                
                $("#preloader").hide();
                $("form#kategorie_search input[type='checkbox']").each(function(i) {
                  aktualizujVrstvu(this);
                });
            });
        }*/
        
        GEvent.addListener(dynamicMap, "zoomend", function() {
            schovPreloader();
            $("form#kategorie_search input[type='checkbox']").each(function(i) {
              aktualizujVrstvu(this);
            });
        });
        
        GEvent.addListener(dynamicMap, "dragend", function() {
            schovPreloader();      
            $("form#kategorie_search input[type='checkbox']").each(function(i) {
              aktualizujVrstvu(this);
            });
        });        
    }
}

function aktualizujVrstvu(checkbox) {

        bounds = dynamicMap.getBounds();
        pravyHorni = bounds.getNorthEast();
        levyDolni = bounds.getSouthWest();

        var staraUrl = sGeoUrls[dmDefaultType][checkbox.value];
        var kratkaStaraUrl = zkratUrl(staraUrl);
        
        var novaUrl = baseUrl + "vysek_souradnic.asp" + 
                                 "?typ=" + dmDefaultType + 
                                 "&id=" + checkbox.value +
                                 "&lat1=" + levyDolni.lat() +
                                 "&long1=" + levyDolni.lng() + 
                                 "&lat2=" + pravyHorni.lat() + 
                                 "&long2=" + pravyHorni.lng() + 
                                 "&piktogramy=1" + dynamicMapNezobrazovat;


        if(checkbox.checked == true) {

            // Budeme znovunačítat vrstvu jenom v případě, že nově vytvořená URL se liší od staré
            if(staraUrl != novaUrl) {
                
                if(vgxMapySeZnackama[kratkaStaraUrl] != null) {
                    vgxSkryj(kratkaStaraUrl);
                    vgxMapySeZnackama[kratkaStaraUrl] = null;
                }
                
                ukazPreloader(); 

              /*  
              //  var gXml = new GGeoXml(sUrl);
                
                /*GEvent.addListener(gXml, "load", function() {

                });*/
                
                vgxStart(novaUrl, dynamicMap, false);
                
              /*  sGeoXmls[dmDefaultType][checkbox.value] = gXml;*/
                sGeoUrls[dmDefaultType][checkbox.value] = novaUrl;
            } else {
            
              vgxZobraz(dynamicMap, kratkaStaraUrl);
                
            }
            
        // Tři podmínky pro odstranění vrstvy
        // - checkbox je prázdný
        // - odstraňovaná vrstva není nullová
        // - Checkbox je v aktuálně vybrané kategorii {o, ka, sm, tc} 
        } else if(vgxMapySeZnackama[kratkaStaraUrl] != null && checkbox.id.indexOf("_"+dmDefaultType+"_") >= 0) {
            vgxSkryj(kratkaStaraUrl);
            if(staraUrl != novaUrl) {
              vgxMapySeZnackama[kratkaStaraUrl] = null; 
              sGeoXmls[dmDefaultType][checkbox.value] = null;
            }
        }
}

function vynulujKategorii(kat) {
    
    // Skrytí a vynulování checkboxů
    $("div#volba_"+kat).hide();
    
    /*$("div#volba_"+kat+" input").each(function() {
        this.checked = false;
    });
    
    $("div#volba_"+kat+" input").trigger(changeEvent);
    
    // Vynulování overlays
    sGeoXmls[kat] = new Array();
    sGeoUrls[kat] = new Array();*/
}

/* Je li zadaná jenom kategorie, nastaví se na ni select a všechny checkboxy v ní se zaškrtnou, 
Bude-li zadána i podkategorie (int), vybere se select podle kategorie a jeden checkbox podle podkategorie */
function initCheckboxes(kategorie, podkategorie) {
    if(kategorie) {
        $("select#ubytovani").val(kategorie);
    } else {
        $("select#ubytovani").val("o");
    }
    
    $("select#ubytovani").trigger("change");
    
    if(podkategorie) {
        $("div#volba_"+kategorie + " input[value="+podkategorie+"]").attr("checked", true);
        $("div#volba_"+kategorie + " input[value="+podkategorie+"]").trigger("change");
    } else {
        // Zapnutí všech podkategorií v kategorii
        $("#volba_" + kategorie + " input").each(function(i) {
            this.checked = true;
            $("#"+this.id).trigger("change");
        });
    }
};

function mapovaAplikaceVyhledat(misto) { 
    var hledaciUrl = domena + "/js/vypis_mist.asp?misto="+urlencode(misto);
    $.ajax({
      url: hledaciUrl,
      cache: false,
      dataType: "json",
      success: function(data){
        var pole = data.nalezeno;

        for(var a = 0; a<znackyMist.length; a++) {
                dynamicMap.removeOverlay(znackyMist[a]);            
        }
        znackyMist = [];

        if(pole.length) {
        
            for(var i = 0; i<pole.length; i++) {
                if(pole[0].typ == "misto") {
                    var latlng = new GLatLng(parseFloat(data.nalezeno[i].lat1), parseFloat(data.nalezeno[i].lng1));
                    
                } else {
                    var latlng = new GLatLng((parseFloat(data.nalezeno[i].lat1) + parseFloat(data.nalezeno[i].lat2)) / 2, 
                                             (parseFloat(data.nalezeno[i].lng1) + parseFloat(data.nalezeno[i].lng2)) / 2);
                    
                }
                
                var marker = new GMarker(latlng, {title: data.nalezeno[i].nazev});
                znackyMist.push(marker);                 
            }
            
            for(var j = 0; j<znackyMist.length; j++) {
                dynamicMap.addOverlay(znackyMist[j]);            
            }
            
            if(znackyMist.length > 1) {
              dynamicMap.setCenter(new GLatLng(defaultLat, defaultLng), 7);
            } else {
              dynamicMap.setCenter(znackyMist[0].getLatLng(), 11);                
            }
  
        } else {
            alert('Zadané umístění nebylo nalezeno');
        }
     },
     error: function(XMLHttpRequest,status,error){
            alert('Nastala chyba. Zkuste hledat později nebo kontaktujte správce serveru.');
     }});
}

function schovPreloader() {
    preloaderCounter--;
    if(preloaderCounter <= 0) {
       $("#preloader").hide();
       preloaderCounter = 0;
    }
}

function ukazPreloader() {
    $("#preloader").show();
    setTimeout("schovPreloader()", 10000);
    preloaderCounter++;
}


function urlencode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // %          note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
                             
    var histogram = {}, unicodeStr='', hexEscStr='';
    var ret = (str+'').toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF';
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
 
    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }
    
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}


vgxZnacky = new Array();
vgxHranice = new Array();
vgxMapySeZnackama = new Array();
vgxZoomovatMapu = new Array();
vgxOdkazovatNa = new Array();
vgxSidebar = new Array();

function vgxNahraj(kml, returnCode) {
          
          // zde se dá dodělat podmínka na returnCode == 200
          
          var kmlDoc = GXml.parse(kml);
          
          if(kmlDoc && kmlDoc.documentElement &&  kmlDoc.documentElement.tagName != 'parsererror') {
            
            if($.browser.msie) {
              var adresa = kmlDoc.documentElement.getElementsByTagName("address")[0].nodeTypedValue;
            } else {
              var adresa = kmlDoc.documentElement.getElementsByTagName("address")[0].textContent;
            }
            
            vgxZnacky[adresa] = new Array();
            vgxHranice[adresa] = new GLatLngBounds();
          
            var placemarks = kmlDoc.documentElement.getElementsByTagName("Placemark");
    
            for (var i = 0; i < placemarks.length; i++) {
              var placemark = placemarks[i];
              var lookAt = placemark.getElementsByTagName("LookAt");
              
              if($.browser.msie) {
                var lat = lookAt[0].getElementsByTagName("latitude")[0].nodeTypedValue;
                var lng = lookAt[0].getElementsByTagName("longitude")[0].nodeTypedValue;
                var styleUrl = placemark.getElementsByTagName("styleUrl")[0].nodeTypedValue;
                try {
                  var popis = placemark.getElementsByTagName("description")[0].nodeTypedValue;
                } catch(e) {
                  var popis = "";
                }    
                try {
                  var ExtendedData = placemark.getElementsByTagName("ExtendedData")[0].nodeTypedValue;
                } catch(e) {
                  var ExtendedData = "";
                }        
              } else {
                var lat = lookAt[0].getElementsByTagName("latitude")[0].textContent;
                var lng = lookAt[0].getElementsByTagName("longitude")[0].textContent;
                var styleUrl = placemark.getElementsByTagName("styleUrl")[0].textContent;
                try {
                  var popis = placemark.getElementsByTagName("description")[0].textContent;
                } catch(e) {var popis = "";}
                try {
                  var ExtendedData = placemark.getElementsByTagName("ExtendedData")[0].textContent;
                } catch(e) {
                  var ExtendedData = "";
                }  
              }
              
              var hledejNazev = popis.match(/img alt='([^']+)' src=/);
              if(hledejNazev != null) {
                var nazev = hledejNazev[1];
              } else {
                var nazev = ""; 
              }
              
              var souradnice = new GLatLng(lat,lng);

              if(styleUrl.match(/#([a-zA-Z]+)\d/) != null) {
                var typObjektu = styleUrl.match(/#([a-zA-Z]+)\d/)[1];
                var kategorieObjektu = styleUrl.match(/[a-zA-Z]([\d]+)/)[1];
                var urlIkony = cestyKIkonam[typObjektu].replace(/(.+)%s(.+)/, "$1"+kategorieObjektu+"$2");
              } else {
                var urlIkony = "http://www.chata.cz/jsmapy/icons/default2.gif"; 
              }
              
              if(typeof vgxOdkazovatNa[adresa] != 'undefined' && vgxOdkazovatNa[adresa]) {
                var odkazovatNa = vgxOdkazovatNa[adresa];            
              } else {
                var odkazovatNa = false;
              }
              
              vgxZnacky[adresa].push(vgxVytvorZnacku(vgxMapySeZnackama[adresa], souradnice, nazev, popis, urlIkony, odkazovatNa, ExtendedData));
              vgxHranice[adresa].extend(souradnice);
            }

            if(typeof vgxZoomovatMapu[adresa] != 'undefined' && vgxZoomovatMapu[adresa] != null) {
              var stred = vgxDejStred(adresa);
              var zoom = vgxZoomovatMapu[adresa] > 1 ? vgxZoomovatMapu[adresa]
                                                     : vgxMapySeZnackama[adresa].getBoundsZoomLevel(vgxHranice[url]);
              vgxMapySeZnackama[adresa].setCenter(stred, zoom);
            }
            
            /* Mezitím, co se nahrál KML dokument, jím zobrazená vrstva už se nemá zobrazit */
            if(typeof vgxMapySeZnackama[adresa] == 'undefined'  || vgxMapySeZnackama[adresa] == null) {
              // hack! 
                //return false;
            }
            
            vgxZobraz(vgxMapySeZnackama[adresa], adresa);
            
            schovPreloader();
            
            return true;
          } else {
            return false;
          }
  }
  
function vgxZobraz(mapa, url) {
    if(url && typeof vgxZnacky[url] != 'undefined') {
      for (var i = 0; i < vgxZnacky[url].length; i++) {
              var znacka = vgxZnacky[url][i];
              mapa.addOverlay(znacka);
              
              if(typeof vgxSidebar[url] != "undefined") {
                var sidebarId = vgxSidebar[url];
                GEvent.addListener(znacka,"mouseover", function(e) {
                  var odkaz = $("#"+sidebarId+" a[rel="+this.ExtendedData+"]");
                  if(odkaz.length) {
                    odkaz[0].style.fontWeight = "bold";
                    this.setImage(domena + "/design/icons/default3.gif");
                  }
                });
                
                GEvent.addListener(znacka,"mouseout", function() {
        		      var odkaz = $("#"+sidebarId+" a[rel="+this.ExtendedData+"]");
        		      if(odkaz.length) {
                    odkaz[0].style.fontWeight = "";
                    this.setImage(domena + "/design/icons/default2.gif");
                  }
                });
                
                $("#"+sidebarId+" a").hover(
                  function() {
                    this.style.fontWeight = "bold";
                    if(typeof znacka != "undefined") {
                      for(var j = 0; j < vgxZnacky[vgxSidebar[sidebarId]].length; j++) {
                          if(vgxZnacky[vgxSidebar[sidebarId]][j].ExtendedData == $(this).attr("rel")) {
                            vgxZnacky[vgxSidebar[sidebarId]][j].setImage(domena + "/design/icons/default3.gif");
                          }
                      }
                    }
                  }, 
                  function() {
                    this.style.fontWeight = "";
                    if(typeof znacka != "undefined") {
                      for(var j = 0; j < vgxZnacky[vgxSidebar[sidebarId]].length; j++) {
                          if(vgxZnacky[vgxSidebar[sidebarId]][j].ExtendedData == $(this).attr("rel")) {
                            vgxZnacky[vgxSidebar[sidebarId]][j].setImage(domena + "/design/icons/default2.gif");
                          }
                      }
                    }
                  }
                );
              }
      }
      vgxMapySeZnackama[url] = mapa;
    }
  }
  
function vgxDejStred(url) {
  return vgxHranice[url].getCenter();
}
  
function vgxVytvorZnacku(mapa,souradnice,nazev,popis,urlIkony, odkazovatNa, ExtendedData) {
        var ikonka = new GIcon(G_DEFAULT_ICON);
        ikonka.image = urlIkony;
        
        if(urlIkony.match(/(.+)def(.+)/) == null) {
          ikonka.shadow = "";
          ikonka.iconSize = new GSize(26,26);
          ikonka.imageMap = new Array(0,0,25,0,25,25,0,25);
        }
        
		    var nastaveniZnacky = { icon: ikonka };
          
        var znacka= new GMarker(souradnice, nastaveniZnacky);
        
        if(ExtendedData) {
          znacka.ExtendedData = ExtendedData;
        }
        
        if(nazev != "") {
          znacka.nazev = nazev;
          znacka.tooltip = '<div class="tooltip">'+nazev+'</div>';
  
  		    GEvent.addListener(znacka, "click", function() {
            if(popis) {
              this.openInfoWindowHtml("<div id='iw_kml'>"+popis+"</div>");
            }
          });
  
          GEvent.addListener(znacka,"mouseover", function(e) {
            showTooltip(znacka, mapa);
          });
          
          GEvent.addListener(znacka,"mouseout", function() {
  		      tooltip.style.display="none";
          });
       }
       
       if(typeof odkazovatNa != "undefined" && odkazovatNa) 
       {
          znacka.tooltip = '<div class="tooltip">Kliknutím přejdete na detail objektu</div>';
          GEvent.addListener(znacka,"click", function() {
  		      window.location.href = odkazovatNa;
          });
          
          GEvent.addListener(znacka,"mouseover", function(e) {
            showTooltip(znacka, mapa);
          });
          
          GEvent.addListener(znacka,"mouseout", function() {
  		      tooltip.style.display="none";
          });
       }

       return znacka;
   }
   
function vgxSkryj(url) {
      
      if(vgxMapySeZnackama[url] && vgxZnacky[url] != null) {
        for (var i = 0; i < vgxZnacky[url].length; i++) {
                vgxMapySeZnackama[url].removeOverlay(vgxZnacky[url][i]);
        }
      }
}
   
function vgxStart(dlouhaUrl, mapa, zoomovat) {
      url = zkratUrl(dlouhaUrl);
      vgxMapySeZnackama[url] = mapa;
      GDownloadUrl(dlouhaUrl, vgxNahraj);
      
      if(zoomovat) {
        vgxZoomovatMapu[url] = zoomovat;
      }   
}
   
   

function showTooltip(marker, map) {
	tooltip.innerHTML = marker.tooltip;
  tooltip.style.display="block";
}

function zkratUrl(url) {
  if(!url) return "";
  
  if(url.split("/jsmapy/")[1] != null) {
    return url.split("/jsmapy/")[1];
  } else {
    return url.split("/jsmapy/")[0];
  };
}

function getMouse(e){
  if(typeof tooltip != 'undefined' && tooltip != null) {
      posx=0;posy=0;
      var ev=(!e)?window.event:e;//IE:Moz
      if (ev.pageX){//Moz
        posx=ev.pageX;
        posy=ev.pageY;
      }
      else if(ev.clientX){//IE
        //compliant mode vs. quirk mode
        var sLeft=document.documentElement?document.documentElement.scrollLeft:document.body.scrollLeft;
        var sTop=document.documentElement?document.documentElement.scrollTop:document.body.scrollTop;
        posx=ev.clientX+sLeft;
        posy=ev.clientY+sTop;
      }
      else{return false}//old browsers
    
      tooltip.style.left=(posx)+'px';
      tooltip.style.top=(posy+20)+'px';
  }
}
