var Start;
var terMin_form,terMax_form;
var difMin_form,difMax_form;
var DatumZac_form;
var DatumKon_form;
var icon;
var AktSour=new GLatLng();
var JZrohMapy=new GLatLng();
var SVrohMapy=new GLatLng();
var AktZoom;
var ikony = new Array();
var legenda;
var legendaDiv;
var legendaCudl;
var pohledyCudl;
var grafCudl;
var map;
var pohledy;
var pohledyData = new Array();
var styl = "border:2px black solid;";
var pom;
var infobox;
var data;
var datai;
var dataGraf = new Array();
var grafDiv;
var indexZacZasazenych;
var Filtr_pocet;
var trad_stat,multi_stat,unkn_stat,event_stat,lett_stat,virt_stat,FTF_stat;
var webc_stat,other_stat,nalez_stat,vlast_stat,nenal_stat, wpt_stat, wptuser_stat;

//------------------------------------------------------------------------------
function cre(x) {return document.createElement(x)}
function creText(x) {return document.createTextNode(x)}
function append(x,y) {var z = cre(y); x.appendChild(z);return z; }
function appendText(x,y) {var z = creText(y); x.appendChild(z);return z; }
//------------------------------------------------------------------------------
function KlikChkKontrola() { /* nepovoli ve formulari filtru aktivovat nacteni jen na viditelne casti pri vyplem pamatovani pozice */
 if (!document.getElementById("chkPamatujPozici").checked) document.getElementById("chkNacistJenOblast").checked=false;
}
//------------------------------------------------------------------------------
function OtocVyber() {  /*otoci vyber, tj. preklopi checkboxy ve formulari filtru */
  document.getElementById("chkTradicni").checked=!document.getElementById("chkTradicni").checked;
  document.getElementById("chkMulti").checked=!document.getElementById("chkMulti").checked;
  document.getElementById("chkUnknown").checked=!document.getElementById("chkUnknown").checked;
  document.getElementById("chkEvent").checked=!document.getElementById("chkEvent").checked;
  document.getElementById("chkLetter").checked=!document.getElementById("chkLetter").checked;
  document.getElementById("chkVirtual").checked=!document.getElementById("chkVirtual").checked;
  document.getElementById("chkFTF").checked=!document.getElementById("chkFTF").checked;
  document.getElementById("chkWebcam").checked=!document.getElementById("chkWebcam").checked;
  document.getElementById("chkOtherCache").checked=!document.getElementById("chkOtherCache").checked;
  document.getElementById("chkNalezene").checked=!document.getElementById("chkNalezene").checked;
  document.getElementById("chkVlastni").checked=!document.getElementById("chkVlastni").checked;
  document.getElementById("chkNenalezene").checked=!document.getElementById("chkNenalezene").checked;
  document.getElementById("chkWpt").checked=!document.getElementById("chkWpt").checked;
  document.getElementById("chkWptUser").checked=!document.getElementById("chkWptUser").checked;
}
//------------------------------------------------------------------------------
function AplikujFiltr(typfiltru) { /*klik na cudl aplikace*/
  Start=false;
  if (typfiltru!=0) {
    document.getElementById("chkTradicni").checked=false;
    document.getElementById("chkMulti").checked=false;
    document.getElementById("chkUnknown").checked=false;
    document.getElementById("chkEvent").checked=false;
    document.getElementById("chkLetter").checked=false;
    document.getElementById("chkVirtual").checked=false;
    document.getElementById("chkFTF").checked=false;
    document.getElementById("chkWebcam").checked=false;
    document.getElementById("chkOtherCache").checked=false;
    document.getElementById("chkVlastni").checked=false;
    document.getElementById("chkWpt").checked=false;
    document.getElementById("chkWptUser").checked=false;
    switch(typfiltru) {
     case 1: document.getElementById("chkTradicni").checked=true; break;
     case 2: document.getElementById("chkMulti").checked=true; break;
     case 3: document.getElementById("chkUnknown").checked=true; break;
     case 4: document.getElementById("chkEvent").checked=true; break;
     case 5: document.getElementById("chkLetter").checked=true; break;
     case 6: document.getElementById("chkVirtual").checked=true; break;
     case 7: document.getElementById("chkFTF").checked=true; break;
     case 8: document.getElementById("chkWebcam").checked=true; break;
     case 9: document.getElementById("chkOtherCache").checked=true; break;
     case 10: document.getElementById("chkNalezene").checked=false;
              document.getElementById("chkNenalezene").checked=false;
              document.getElementById("chkVlastni").checked=true; break;
    } /*switch*/
  } 
  terMin_form=parseFloat(document.getElementById("selTerMin").value);
  terMax_form=parseFloat(document.getElementById("selTerMax").value);
  difMin_form=parseFloat(document.getElementById("selDifMin").value);
  difMax_form=parseFloat(document.getElementById("selDifMax").value);
//  alert(difMin_form);
  datumZac_form=str2Date(document.getElementById("selDenZac").value+"."+document.getElementById("selMesZac").value+"."+
  document.getElementById("selRokZac").value);
  datumKon_form=str2Date(document.getElementById("selDenKon").value+"."+document.getElementById("selMesKon").value+"."+
  document.getElementById("selRokKon").value);
  AktSour=map.getCenter();
  AktZoom=map.getZoom();
  JZrohMapy=map.getBounds().getSouthWest();
  SVrohMapy=map.getBounds().getNorthEast();
  document.getElementById("pocetcachi").innerHTML="<font color=magenta>Načítám cache dle filtru...</font>";
  GUnload();
  load();
}
//------------------------------------------------------------------------------
function tlacitko(owner,text,id,sirka)
{
    var newDiv = append(owner,'div');
    newDiv.style.fontSize = 'small';
    newDiv.style.fontFamily = "Arial"; 
    newDiv.style.top = '7px';
    newDiv.style.height = "19px"; 
    newDiv.className = "gmnoprint";
    
    var newDiv1 = append(newDiv,'div');
    newDiv1.style.width = sirka; 
    newDiv1.style.textAlign = "center"; 
    newDiv1.style.backgroundColor = "white";
    newDiv1.style.borderWidth = "1px";
    newDiv1.style.borderStyle = "solid";
    newDiv1.style.borderColor = "black";
    newDiv1.style.cursor = "pointer";

    var newDiv2 = append(newDiv1,'div')
    newDiv2.setAttribute("id",id);
    newDiv2.style.borderWidth = "1px";
    newDiv2.style.borderStyle = "solid";
    newDiv2.style.borderColor = "white";
    newDiv2.style.borderRightColor = "rgb(176,176,176)";
    newDiv2.style.borderBottomColor = "rgb(176,176,176)";
    newDiv.style.fontSize = '12px';
    newDiv2.innerHTML = text;
  return newDiv2;
}
//------------------------------------------------------------------------------
function tlacitko2(pos,text,id,sirka)
{
    var newDiv = append(map.getContainer(),'div');
    pos.apply(newDiv);
    newDiv.style.fontSize = 'small';
    newDiv.style.fontFamily = "Arial"; 
    newDiv.style.top = '7px';
    newDiv.style.height = "19px"; 
    newDiv.className = "gmnoprint";
    
    var newDiv1 = append(newDiv,'div');
    newDiv1.style.width = sirka; 
    newDiv1.style.textAlign = "center"; 
    newDiv1.style.backgroundColor = "white";
    newDiv1.style.borderWidth = "1px";
    newDiv1.style.borderStyle = "solid";
    newDiv1.style.borderColor = "black";
    newDiv1.style.cursor = "pointer";
    

    var newDiv2 = append(newDiv1,'div')
    newDiv2.setAttribute("id",id);
    newDiv2.style.borderWidth = "1px";
    newDiv2.style.borderStyle = "solid";
    newDiv2.style.borderColor = "white";
    newDiv2.style.borderRightColor = "rgb(176,176,176)";
    newDiv2.style.borderBottomColor = "rgb(176,176,176)";
    newDiv.style.fontSize = '12px';
    newDiv2.innerHTML = text;
  return newDiv2;
}
//------------------------------------------------------------------------------
function caraVodorovna(vlastnik,x,y,delka,barva)
{
  x = Math.round(x);
  y = Math.round(y);
  delka = Math.round(delka-0.5)+1;
  var cara = append(vlastnik,'div');
  cara.style.position = "absolute";
  cara.style.left = x+"px";
  cara.style.top = y+"px";
  cara.style.borderTopWidth = "1px";
  cara.style.borderTopColor = barva;
  cara.style.borderTopStyle = "solid";
  
  cara.style.padding = "0px";
  cara.style.width = delka+"px";
  cara.style.height = "1px";
}
//------------------------------------------------------------------------------
function caraSvisla(vlastnik,x,y,delka,barva)
{
  x = Math.round(x);
  y = Math.round(y);
  delka = Math.round(delka-0.5)+1;
  var cara = append(vlastnik,'div');
  cara.style.position = "absolute";
  cara.style.left = x+"px";
  cara.style.top = y+"px";
  cara.style.height = delka+"px";
  cara.style.width = "0px";
  cara.style.borderLeftColor = barva;
  cara.style.borderLeftWidth = "1px";
  cara.style.borderLeftStyle = "solid";
  cara.style.fontSize = '0px';
  
}
//------------------------------------------------------------------------------
function zobrazText(vlastnik,x,y,velikost,barva,text)
{
  x = Math.round(x);
  y = Math.round(y);
  var newDiv2 = append(vlastnik,'div')
  newDiv2.style.position = "absolute";
  newDiv2.style.left = x+"px";
  newDiv2.style.top = y+"px";
  newDiv2.style.fontSize = velikost;
  newDiv2.style.fontFamily = "Arial"; 
  
  newDiv2.innerHTML = text;
  return newDiv2;
}
function zobrazTextVlevo(vlastnik,x,y,velikost,barva,text)
{
  x = Math.round(x);
  y = Math.round(y);
  var newDiv2 = append(vlastnik,'div')
  newDiv2.style.position = "absolute";
  newDiv2.style.textAlign = "left";
  newDiv2.style.right = x+"px";
  newDiv2.style.top = y+"px";
  newDiv2.style.fontSize = velikost;
  newDiv2.style.fontFamily = "Arial"; 
  
  newDiv2.innerHTML = text;
  return newDiv2;
}


//------------------------------------------------------------------------------
function tlacitkoStav(tlacitko,stisknuto)
{
  if (stisknuto){
    tlacitko.style.borderLeftColor = "rgb(176,176,176)";
    tlacitko.style.borderTopColor = "rgb(176,176,176)";
    tlacitko.style.borderRightColor = "white";
    tlacitko.style.borderBottomColor = "white";
    tlacitko.style.fontWeight = "bold";
    
  }else{
    tlacitko.style.borderLeftColor = "white";
    tlacitko.style.borderTopColor = "white";
    tlacitko.style.borderRightColor = "rgb(176,176,176)";
    tlacitko.style.borderBottomColor = "rgb(176,176,176)";
    tlacitko.style.fontWeight = "";
  }
}
//------------------------------------------------------------------------------
function NahodnyStr()
{
  return (""+new Date().getYear()+"_"+new Date().getMonth()+"_"+new Date().getDate()+"_"+new Date().getHours()+"_"+new Date().getMinutes());
}
//------------------------------------------------------------------------------
function LegendaZobraz()
{
  if (legendaDiv.style.display=='none'){
     legendaDiv.style.display='';
     tlacitkoStav(legendaCudl,true);
  } else {
     legendaDiv.style.display='none'
     tlacitkoStav(legendaCudl,false);
  }
}
//------------------------------------------------------------------------------
function PohledyZobraz()
{
  if (pohledy.style.display=='none'){
     pohledy.style.display='';
     tlacitkoStav(pohledyCudl,true);
  } else {
     pohledy.style.display='none'
     tlacitkoStav(pohledyCudl,false);
  }
}
//------------------------------------------------------------------------------
function GrafZobraz()
{
  if (grafDiv.style.display=='none'){
     grafDiv.style.display='';
     tlacitkoStav(grafCudl,true);
  } else {
     grafDiv.style.display='none'
     tlacitkoStav(grafCudl,false);
  }
}
//------------------------------------------------------------------------------
function AktivujPohled(i)
{
  PohledyZobraz();
  map.setCenter(new GLatLng(pohledyData[i]['lat'], pohledyData[i]['lon']), pohledyData[i]['zoom']);
}
//------------------------------------------------------------------------------
function ZobrazInfobox(marker,i)
{  
      parts = data[i].split("|");
      var lat = parseFloat(parts[0]);
      var lon = parseFloat(parts[1]);
      var wpt = parts[2];
      var typ = parts[3];
      var popis = parts[4];
      var autor = parts[5];
      var datum = parts[6];
    infobox.style.display = '';
    var TxtZobraz='<strong>'+popis + '</strong> by '+ autor+' (';
    if(datum!="nenalezena") {
      if(typ=="vlastni") TxtZobraz=TxtZobraz+"zasazeno ";
      else TxtZobraz=TxtZobraz+"nalezeno ";
    }
    infobox.innerHTML = TxtZobraz+datum+')';
}
//------------------------------------------------------------------------------
function ZobrazInfo(marker,i)
{  
      parts = data[i].split("|");
      var Lat = parseFloat(parts[0]);
      var Lon = parseFloat(parts[1]);
      var Wpt = parts[2];
      var Typ = parts[3];
      var Nazev = parts[4];
      var Autor = parts[5];
      var Datum = parts[6];
      var Velikost = parts[7];
      var Obtiznost = parts[8];
      var Teren = parts[9];
      var Poradi = i+1;
      var okno;
      var styl="<span style=\"font-family:arial;font-size:12px;\">"
    if(Obtiznost[2]=='0') Obtiznost=Obtiznost[0];
    if(Teren[2]=='0') Teren=Teren[0]; /*odstraneni nulove desetinne casti u hodnoceni*/
    if(Velikost=='Not chosen') Velikost='Neznama';
    okno = "<table border=0 cellspacing=0 cellpadding=2><tr><td>";
    okno = okno + "<img src=./ikony_typu/"+Typ+".gif width=20 height=20>"+styl;
    okno = okno + "<a href=\"http://www.geocaching.com/seek/cache_details.aspx?wp="+Wpt+"\" target=\"OknoGCcom\"><strong>"+Nazev+"</strong></a>";
    okno = okno + " (" +Wpt+")</span></td></tr><tr><td>"+styl+"Autor: "+Autor+"</span></td></tr><tr><td>"+styl; 
    okno = okno + "Velikost: "+Velikost+", obtiznost / teren: "+Obtiznost+" / "+Teren+"</span></td></tr><tr><td>"+styl;
    if(Datum == "nenalezena")
      okno = okno +"Dosud nenalezena cache.";
    else {
      if(Typ =='vlastni') okno = okno +"Zasazeno: " +Datum+ " jako <b>"+(Poradi-indexZacZasazenych)+"</b>.cache";
      else /* nalezena cache */
        okno = okno + "Nalezeno: " +Datum+ " jako <b>"+Poradi+"</b>.cache";
    }
    okno = okno + "</span></td></tr>";
    okno = okno + "<tr><td>"+styl+"<a href=\"http://www.geocaching.com/seek/gmnearest.aspx?lat="+Lat+"&lng="+Lon+"&zm=13\" target=\"OknoMapyGC\"><strong>GC google maps</strong></a> | Mapy.cz: <a href=\"http://www.mapy.cz/?st=search&fr=Loc:"+Lat+"%20"+Lon+"%20dist:1200m\" target=\"OknoMapyCZ\"><strong>silnicni</strong></a>, <a href=\"http://www.mapy.cz/?st=search&mp=ophoto&fr=Loc:"+Lat+"%20"+Lon+"%20dist:200m\" target=\"OknoMapyCZ\"><strong>orto</strong></a>, <a href=\"http://www.mapy.cz/?st=search&mp=turist&fr=Loc:"+Lat+"%20"+Lon+"%20dist:1200m\" target=\"OknoMapyCZ\"><strong>turisticka</strong></a> </span></td></tr></table>";
    marker.openInfoWindowHtml(okno);
}
//------------------------------------------------------------------------------
function createMarker(index,Lat,Lon,Typ) {
  var point = new GLatLng(Lat,Lon);
  var marker = new GMarker(point,ikony[Typ]);

  GEvent.addListener(marker, "click", function() {
    ZobrazInfo(marker,index);
  });
  GEvent.addListener(marker,"mouseover", function() {
    ZobrazInfobox(marker,index);
  });        
  GEvent.addListener(marker,"mouseout", function() {
    infobox.style.display = 'none';
  });        
  
  return marker;
}
//------------------------------------------------------------------------------
function ZobrazCache()
{ 
 if (datai < data.length ){
   for(var i = 0; (i <20) &&(datai < data.length);i++ ){
     if (data[datai].length > 1) {
      // === split each line into parts separated by "|" and use the contents ===
      parts = data[datai].split("|");
      var lat = parseFloat(parts[0]);
      var lon = parseFloat(parts[1]);
      var typ = parts[3];
      var cachename = parts[4];
      var datum = parts[6];
      var velikost = parts[7];
      var obtiznost = parseFloat(parts[8]);
      var teren = parseFloat(parts[9]);
      var ZobrazCache = false;
      /* filtr dle typu */
      switch(typ) {
       case 'tradicni': if (document.getElementById("chkTradicni").checked) ZobrazCache=true; else break;
       case 'multi':    if (document.getElementById("chkMulti").checked) ZobrazCache=true; else break;
       case 'unknown':  if (document.getElementById("chkUnknown").checked) ZobrazCache=true; else break;
       case 'event':    if (document.getElementById("chkEvent").checked) ZobrazCache=true; else break;
       case 'letter':   if (document.getElementById("chkLetter").checked) ZobrazCache=true; else break;
       case 'virtual':  if (document.getElementById("chkVirtual").checked) ZobrazCache=true; else break;
       case 'webcam':   if (document.getElementById("chkWebcam").checked) ZobrazCache=true; else break;
       case 'FTF':      if (document.getElementById("chkFTF").checked) ZobrazCache=true; else break;
       case 'vlastni':  if (document.getElementById("chkVlastni").checked) ZobrazCache=true; else break;
       case '_wpt':     if (document.getElementById("chkWpt").checked) ZobrazCache=true; else break;
       case '_wptuser': if (document.getElementById("chkWptUser").checked) ZobrazCache=true; else break;
       default:         if (document.getElementById("chkOtherCache").checked) ZobrazCache=true; else break;
      }
      /* filtr nalezene/nenalezene (vlastni jsou v typu */
      if(datum!="nenalezena") { /* datum existuje, jde o nalezenou ci vlastni, kontrola zda je povolena */
        if((!document.getElementById("chkNalezene").checked)&&(typ!="vlastni")) ZobrazCache=false; /* nalezena nepovolena */ 
        if((!document.getElementById("chkVlastni").checked)&&(typ=="vlastni"))   ZobrazCache=false; /* vlastni nepovolena */
      }
      else 
        if(!document.getElementById("chkNenalezene").checked) ZobrazCache=false; /* nenalezena nepovolena */
      /* filtr dle hodnoceni teren/obtiznost */
      if((obtiznost<difMin_form)||(obtiznost>difMax_form)||(teren<terMin_form)||(teren>terMax_form)) ZobrazCache=false;
    
      /* filtr dle datumu nalezu/zasazeni, netyka se nenalezenych */
      if(datum!="nenalezena")
        if((str2Date(datum)<datumZac_form)||(str2Date(datum)>datumKon_form)) ZobrazCache=false;
 
      /* filtr zobrazeni jen cachi na akt.pozici mapy */
      if(document.getElementById("chkNacistJenOblast").checked) {
        if((lat<JZrohMapy.lat())||(lat>SVrohMapy.lat())) ZobrazCache=false; /* zem.sirka mimo oblast zobrazene mapy */
        if((lon<JZrohMapy.lng())||(lon>SVrohMapy.lng())) ZobrazCache=false; /* zem.delka mimo oblast zobrazene mapy */
      } 
      if(ZobrazCache) { /* proslo filtrem */
	Filtr_pocet++;
        var marker = createMarker(datai,lat,lon,typ);
        map.addOverlay(marker);

        if(document.getElementById("chkShowLabel").checked) {
          if (cachename.length > 15){
            cachename = cachename.substring(0,15) + '...';
          }
          var label = new ELabel(new GLatLng(lat,lon), cachename.replace(/ /g, "&nbsp;"), "styleLabel1", new GSize(10,-15));
          map.addOverlay(label);
        }

        switch(typ) { /*doplneni do statistiky*/
          case 'tradicni': trad_stat++; break;
          case 'multi': multi_stat++; break;
          case 'unknown': unkn_stat++; break;
          case 'event': event_stat++; break;
          case 'letter': lett_stat++; break;
          case 'virtual': virt_stat++; break;
          case 'webcam': webc_stat++; break;
          case 'FTF':    FTF_stat++; break;
          case 'vlastni': vlast_stat++; break;
          case '_wpt': wpt_stat++; break;
          case '_wptuser': wptuser_stat++; break;
          default: other_stat++; break;      
        }
        if ((typ!='vlastni')&&(typ[0]!='_')) { /* stat - pripocteni k nalezenym/nenalezenym*/
          if(datum=='nenalezena') nenal_stat++; else nalez_stat++;
        }
      }
      if ((indexZacZasazenych==0)&&(typ=='vlastni')) indexZacZasazenych=datai; /* konec nalezenych zacinaji zasazene*/
      if ((typ!="vlastni")&&(typ[0]!="_")&&(datum!="nenalezena")) { 
        DataGrafZarad(datum);       /* do grafu nalezu zaradit jen nalezene */
      }
     }
    datai++;
  }
    setTimeout("ZobrazCache()",5);
  }else{
    infobox.style.display = 'none';
    infobox.innerHTML = '';
    zobrazGraf(grafDiv,500,300);
    document.getElementById("pocetcachi").innerHTML="Zvolenému filtru vyhovuje celkem <font color=magenta><b>"+Filtr_pocet+" cachí</b></font>";
    document.getElementById("trad-stat").innerHTML="<b>&nbsp;&nbsp;"+trad_stat+"</b>";
    document.getElementById("multi-stat").innerHTML="<b>&nbsp;&nbsp;"+multi_stat+"</b>";
    document.getElementById("unkn-stat").innerHTML="<b>&nbsp;&nbsp;"+unkn_stat+"</b>";
    document.getElementById("event-stat").innerHTML="<b>&nbsp;&nbsp;"+event_stat+"</b>";
    document.getElementById("lett-stat").innerHTML="<b>&nbsp;&nbsp;"+lett_stat+"</b>";
    document.getElementById("virt-stat").innerHTML="<b>&nbsp;&nbsp;"+virt_stat+"</b>";
    document.getElementById("webc-stat").innerHTML="<b>&nbsp;&nbsp;"+webc_stat+"</b>";
    document.getElementById("FTF-stat").innerHTML="<b>&nbsp;&nbsp;"+FTF_stat+"</b>";
    document.getElementById("other-stat").innerHTML="<b>&nbsp;&nbsp;"+other_stat+"</b>";
    document.getElementById("nalez-stat").innerHTML="<b>&nbsp;&nbsp;"+nalez_stat+"</b>";
    document.getElementById("vlast-stat").innerHTML="<b>&nbsp;&nbsp;"+vlast_stat+"</b>";
    document.getElementById("nenal-stat").innerHTML="<b>&nbsp;&nbsp;"+nenal_stat+"</b>";
    document.getElementById("wpt-stat").innerHTML="<b>&nbsp;&nbsp;"+wpt_stat+"</b>";
    document.getElementById("wptuser-stat").innerHTML="<b>&nbsp;&nbsp;"+wptuser_stat+"</b>";
  }
}
//------------------------------------------------------------------------------
function LoadTXT(map)
{
  GDownloadUrl("data_cachi.txt?"+NahodnyStr(), function(doc) {
  lines = doc.split("\n");
  data = lines;
  datai = 0
    setTimeout("ZobrazCache()",50);
  });
} 
function NactiIkony()
{
  GDownloadUrl("ikony.txt?"+NahodnyStr(), function(doc) {
    lines = doc.split("\n");
    for (var i=0; i<lines.length; i++) {
      if (lines[i].length > 1) {
      // === split each line into parts separated by "|" and use the contents ===
      parts = lines[i].split("|");
      var Nazev=parts[0];
      var IkonaUrl=parts[1];
      var IkonaVelikost=parts[2];
      var Anchor=parts[3];
      var WindowAnchor=parts[4];
      var StinUrl=parts[5];
      var StinVelikost=parts[6];
      var IkonaPrint=parts[7];
      
      var radek = append(legenda,'tr');
      var newDiv = append(append(radek,'td'),'img');
      newDiv.setAttribute("src",IkonaUrl);
      newDiv.setAttribute("title",Nazev);
      newDiv.setAttribute("alt",Nazev);
      appendText(append(radek,'td'),Nazev);
      
      
      var icon = new GIcon();
      icon.image = IkonaUrl;
//      icon.printImage = IkonaPrint;
      icon.mozPrintImage = IkonaPrint;
      icon.shadow = StinUrl;
      icon.iconSize = new GSize(parseFloat((IkonaVelikost.split(","))[0]),parseFloat((IkonaVelikost.split(","))[1]));
      icon.shadowSize = new GSize(parseFloat((StinVelikost.split(","))[0]),parseFloat((StinVelikost.split(","))[1]));
      icon.iconAnchor = new GPoint(parseFloat((Anchor.split(","))[0]),parseFloat((Anchor.split(","))[1]));
      icon.infoWindowAnchor = new GPoint(parseFloat((WindowAnchor.split(","))[0]),parseFloat((WindowAnchor.split(","))[1]));
      
      ikony[Nazev] = icon;
      }
    }
  });
}
//------------------------------------------------------------------------------
function NactiPohledy()
{
  GDownloadUrl("lokality.txt?"+NahodnyStr(), function(doc) {
    lines = doc.split("\n");
    for (var i=0; i<lines.length; i++) {
      if (lines[i].length > 1) {
        parts = lines[i].split("|");
        var Nazev=parts[0];
        var Lat=parts[1];
        var Lon=parts[2];
        var Zoom=parts[3];
        pohledyData[i] = new Array();
        pohledyData[i]['lat'] = parseFloat(Lat);
        pohledyData[i]['lon'] = parseFloat(Lon);
        pohledyData[i]['zoom'] = parseFloat(Zoom);
        var tl = tlacitko(pohledy,Nazev,'pohled_'+i,"7em");
        tl.onclick = new Function("AktivujPohled("+i+");");// PohledyZobraz;
      }
    }
    if ((Start)||(!document.getElementById("chkPamatujPozici").checked)) /* mapa centrovana na prvni pohled */
      map.setCenter(new GLatLng(pohledyData[0]['lat'], pohledyData[0]['lon']), pohledyData[0]['zoom']);
    else map.setCenter(AktSour,AktZoom); /* mapa centrovana na predchozi stav */
    
  });
}
//------------------------------------------------------------------------------
function load()
{
  if (GBrowserIsCompatible()) {
  
    map = new GMap2(document.getElementById("map"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GOverviewMapControl(new GSize(120,120)));
    var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(70,2));
    map.addControl(new GScaleControl(),pos);

    
    var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(155,6));
    pohledyCudl = tlacitko2(pos,'Lokalita','pohledy-cudl','7em');
    pohledyCudl.onclick = PohledyZobraz;
    if(!Start) {  /* cudl pro Graf a Legendu bude az po prvni aplikaci filtru */
      var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(80,6));
      legendaCudl = tlacitko2(pos,'Legenda','legenda-cudl','5.5em');
      legendaCudl.onclick = LegendaZobraz;
    
      var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(247,6));
      grafCudl = tlacitko2(pos,'Graf nalezu','graf-cudl','7em');
      grafCudl.onclick = GrafZobraz;
    }
    indexZacZasazenych=0;
    Filtr_pocet=0;
    trad_stat=0; multi_stat=0; unkn_stat=0; event_stat=0; lett_stat=0; virt_stat=0; FTF_stat=0;
    webc_stat=0; other_stat=0; nalez_stat=0; vlast_stat=0; nenal_stat=0; wpt_stat=0; wptuser_stat=0;
    dataGraf = new Array();

    var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(155,26));
    pohledy = append(map.getContainer(),'div');
    pohledy.style.display='none';
     
    pos.apply(pohledy);
    
    NactiPohledy();

    var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(80,26));
    legenda = append(map.getContainer(),'div');
    pos.apply(legenda);
    legendaDiv = legenda;
    legenda.style.display='none';
    legenda.style.fontFamily = "Arial"; 
    legenda.style.fontSize = "12px"; 
    legenda.style.backgroundColor = "white";
    legenda.style.borderWidth = "1px";
    legenda.style.borderStyle = "solid";
    legenda.style.borderColor = "black";
    
    
    legenda = append(legenda,'table');
    legenda.style.borderWidth = "1px";
    legenda.style.borderStyle = "solid";
    legenda.style.borderColor = "white";
    legenda.style.borderRightColor = "rgb(176,176,176)";
    legenda.style.borderBottomColor = "rgb(176,176,176)";
    
    legenda = append(legenda,'tbody');
    
    var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(80,5));
    infobox = append(map.getContainer(),'div');
    pos.apply(infobox);
    infobox.style.display='none';
    infobox.style.fontFamily = "Arial"; 
    infobox.style.fontSize = "12px"; 
    infobox.style.backgroundColor = "white";
    infobox.style.borderWidth = "1px";
    infobox.style.borderStyle = "solid";
    infobox.style.borderColor = "black";
    infobox.style.padding = "1px";

    var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(80,40));
    grafDiv = append(map.getContainer(),'div');
    pos.apply(grafDiv);
    grafDiv.style.display='none';
    grafDiv.style.fontFamily = "Arial"; 
    grafDiv.style.fontSize = "12px"; 
    grafDiv.style.backgroundColor = "white";
    grafDiv.style.borderWidth = "1px";
    grafDiv.style.borderStyle = "solid";
    grafDiv.style.borderColor = "black";
    grafDiv.style.padding = "1px";
    grafDiv.style.width = "500px";
    grafDiv.style.height = "300px";

    if(Start) return;
    infobox.style.display = '';
    infobox.innerHTML = '<strong>Prosim strpeni, nacitam data...</strong>';
    

    var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(80,100));
    
    NactiIkony();
    LoadTXT(map);
  }
}
//------------------------------------------------------------------------------
function DataGrafZarad(Datum)
{
  for(var i = dataGraf.length - 1; i >=0 ; i--){
    if (dataGraf[i]["datum"] == Datum){
      dataGraf[i]["pocet"] = dataGraf[i]["pocet"] + 1;
      return; 
    } 
  }
  pom = new Array();
  pom["datum"] = Datum;
  pom["pocet"] = 1;
  dataGraf.push(pom);
}
//------------------------------------------------------------------------------
function str2Date(datum)
{
  var parts = datum.split('.');
  var den = parseFloat(parts[0]);
  var mesic = parseFloat(parts[1]);
  var rok = parseFloat(parts[2]);
  var dat = new Date(0);
  dat.setFullYear(rok);
  dat.setMonth(mesic-1);
  dat.setDate(den);
  return dat;
}
//------------------------------------------------------------------------------
function rozdil(datum1,datum2)
{
  var dat1 = str2Date(datum1);
  var dat2 = str2Date(datum2);
  var rozdil = (dat2.getTime() - dat1.getTime())/(24*60*60*1000);
  return rozdil; 
}
//------------------------------------------------------------------------------
function posunoMesic(datum)
{
  var den = datum.getDate();
  var mesic = datum.getMonth();
  var rok = datum.getFullYear();
  
  mesic++;
  if (mesic == 12){
    rok++;
    mesic = 0;
  } 
  datum.setMonth(mesic);
  datum.setFullYear(rok);
  return datum;
}
//------------------------------------------------------------------------------
function posunoMesicZpet(datum)
{
  var den = datum.getDate();
  var mesic = datum.getMonth();
  var rok = datum.getFullYear();
  
  mesic--;
  if (mesic == -1){
    rok--;
    mesic = 11;
  } 
  datum.setMonth(mesic);
  datum.setFullYear(rok);
  return datum;
}
//------------------------------------------------------------------------------
function zobrazGraf(root,sirka,vyska)
{
  var PosunX = 20;
  var PosunY = 20;
  var Vyska = vyska - 2*PosunY;
  var Sirka = sirka - 2*PosunX;
  var suma = 0;
  dniCelkem = rozdil(dataGraf[0]["datum"],dataGraf[dataGraf.length-1]["datum"]);
  dniCelkem = dniCelkem;
  var poslednix = 0;
  var posledniy = 0;
  var CelkemNalezu = 0;
  var hledamSto = 100;
  for(var i = 0 ; i < dataGraf.length; i++){
    CelkemNalezu = CelkemNalezu + dataGraf[i]["pocet"]
  } 
  
  for(var i = 0 ; i < dataGraf.length; i++){
    suma = suma + dataGraf[i]["pocet"]
    var x = rozdil(dataGraf[0]["datum"],dataGraf[i]["datum"])/dniCelkem * Sirka;
    var y = suma / CelkemNalezu * (Vyska-20);
    caraSvisla(root, x + PosunX , vyska - (y + PosunY) ,y - posledniy,"blue");
    caraVodorovna(root, poslednix+PosunX , vyska - (PosunY + posledniy),x-poslednix,"blue");
    poslednix = x;
    posledniy = y;    
    if (suma >= hledamSto){
      caraSvisla(root,x+PosunX,vyska - (y + PosunY) - 5,10,"red");
      hledamSto = hledamSto + 100;
      zobrazTextVlevo(root, sirka - x - PosunX + 3 , vyska - (y + PosunY) - 10,"9px","red", dataGraf[i]["datum"] );
    }
  }
  caraSvisla(root, x + PosunX+3 ,  PosunY ,Vyska,"black");
  caraVodorovna(root, PosunX , (PosunY + Vyska ),Sirka+3,"black");
  var pom = 100;
  while ( (y = pom / CelkemNalezu * (Vyska-20))< Vyska  ){
    caraVodorovna(root, PosunX , vyska - (PosunY + y),Sirka,"red");
    zobrazText(root,PosunX ,vyska - (PosunY + y)-12, "10px" ,"black",pom);
    pom = pom + 100;
  }
  var den = str2Date(dataGraf[0]["datum"]);
  den.setDate(1);
  den = posunoMesicZpet(den)
  while (  (x = (((((den = posunoMesic(den)).getTime()-str2Date(dataGraf[0]["datum"]).getTime())/(24*60*60*1000)))/dniCelkem * Sirka)) < Sirka ){
    caraSvisla(root, x + PosunX , Vyska + PosunY - 2 ,5,"black");
    zobrazText(root, x + PosunX - 10, Vyska + PosunY + 3,"9px","black", (den.getMonth()+1)+"/"+(den.getFullYear().toString()).substring(2,4));
  }
  
    
}
