// JavaScripty www.iml-czech.com// Copyright by Michael.Stanovsky

var noveokno     = window.noveokno; 
var noveoknogoog = window.noveoknogoog;

// ===========================================================================
// script, kterej umi includovat jiny seznam scriptu
//         jmeno souboru musi byt relativni vzhledem k tomu, odkud to je volano
function include(script_filename) {
   document.write('<' + 'script');
   document.write(' language="javascript"');
   document.write(' type="text/javascript"');
   document.write(' src="' + script_filename + '">');
   document.write('</' + 'script' + '>');
}
// ===========================================================================
// test na prilis stary browser - chybna intepretace CSS
function testbrowser(lang)  {
   if (testFP()) return;
   if (((navigator.appName.substr(0,1)=="N")&&(navigator.appVersion.substr(0,1)<"5")) ||
       (navigator.appVersion.substr(0,1)<"4")) { chybabrowser(lang); }
}       
function chybabrowser(lang)  {
if (lang=="cz") {document.write('<p class="chyba">Pouzivate prilis starou verzi internetoveho prohlizece. ');
                 document.write('Tyto stranky zrejme nebudou korektne zobrazeny. Nainstalujte si, prosim, novejsi verzi!</p>');
                }
if (lang=="en") {document.write('<p class="chyba">Using too old version of internet browser. ');
                 document.write('Those pages probably will not be correctly displayed. Install please newer version</p>');
                }       
}
// ===========================================================================
// test na MSIE prohlizec
function testMSIE()  {
   if (testFP()) return;
   if (navigator.appName.substr(0,1)=="M") {return true};
}
// ===========================================================================
// test na MSIE5 prohlizec
function testMSIE5()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="M") && (navigator.appVersion.indexOf("MSIE 5.")>0)) {return true};
}
// ===========================================================================
// test na MSIE6 a starsi prohlizec
function testMSIE6()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="M") && (navigator.appVersion.indexOf("MSIE 6.")>0)) {return true};
}
// ===========================================================================
// test na MSIE7 prohlizec
function testMSIE7()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="M") && (navigator.appVersion.indexOf("MSIE 7.")>0)) {return true};
}
// ===========================================================================
// test na MSIE8,9 prohlizec
function testMSIE8()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="M") && ((navigator.appVersion.indexOf("MSIE 8.")>0) ||
                                                (navigator.appVersion.indexOf("MSIE 9.")>0))    ) {return true};
}
// ===========================================================================
// test na NETSCAPE prohlizec
function testNetscape()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="N") && (navigator.vendor.substr(0,1)=="N")) {return true};
}
// ===========================================================================
// test na SAFARI prohlizec
function testSafari()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="N") && (navigator.vendor.substr(0,1)=="A")) {return true};
}
// ===========================================================================
// test na CHROME prohlizec
function testChrome()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="N") && (navigator.vendor.substr(0,1)=="G")) {return true};
}
// ===========================================================================
// test na MOZILLA/FIREFOX/FLOCK prohlizec
function testMozilla()  {
   if (testFP()) return;
   if ((navigator.appName.substr(0,1)=="N") && (navigator.vendor.substr(0,1)!="N") && (navigator.vendor.substr(0,1)!="A")) {return true};
}
// ===========================================================================
// test na OPERA prohlizec
function testOpera()  {
   if (testFP()) return;
   if (navigator.appName.substr(0,1)=="O") {return true};
}
// ===========================================================================
// test na zobrazeni ve FrontPage
function testFP()  {
   var adres=" "+window.location;       // URL bezneho okna
   if (adres.substr(1,20)=="file:///C:/Documents") {return true};
}
// ===========================================================================
// test na ne-WEBSERVER
function testNEINET()    {
   if (location.hostname=="") {return true};
}
// ===========================================================================
// test na lokalni server nebo ne-WEBSERVER
function testLOCAL()    {
   if (location.hostname.indexOf(".")==-1) {return true};
}
// ===========================================================================
// uklada cookie
function setcook(jmeno)    {
   var vyprsi=new Date();
   vyprsi.setTime(vyprsi.getTime()+5000);                         // platnost 5 vterin
   var nazevcookie="ymsiml99=";
   document.cookie=nazevcookie+jmeno+";path=/;expires="+vyprsi.toGMTString();
}
// ===========================================================================
// cte cookie
function getcook()    {
   var nazevcookie="ymsiml99=";
   zacatek=document.cookie.indexOf(nazevcookie);
   if (zacatek != -1) {zacatek+=nazevcookie.length;
                       konec=document.cookie.indexOf(";",zacatek);
                       if (konec == -1) {konec=document.cookie.length}; 
                       jmeno=document.cookie.substring(zacatek,konec);
                      }
                 else {jmeno="xxxxxx";
                      };
   return jmeno;
} 
// ===========================================================================
// otevreni okna s alertovou zpravou
function openAlert(co,id,x,y) {
   xx=200+x;
   yy=200+y;
   window.open(co,"slalert"+id,"toolbar=no,location=no,directories=no,status=no,menubar=no,"+
                            "scrollbars=yes,resizable=yes,copyhistory=no,width="+xx+",height="+yy) ;
}
// ===========================================================================
// vola se v kazde MAP2 jeste v HEAD
// Nez se obrazkovy dokument zobrazi, testuji, zda nejsem v samostatnem okne imlobr
// Jestlize ne, potom startuji obrazek v novem okne a v aktualnim se vracim zpet
function oknohlavamapa(sirka,vyska) {
   if (testFP()) return;
   sir=sirka;
   vys=vyska;
   if (screen.height>600){vys1=screen.height-120}
                   else  {vys1=screen.height};
   if (sirka==null) {sir=650};
   if (vyska==null) {vys=vys1}; 
   if (window.name=="imlobr")  {self.focus(); return; }
   window.open(window.location,"imlobr","toolbar=no,location=no,directories=no,status=no,menubar=no,"+
                               "scrollbars=yes,resizable=yes,copyhistory=no,width="+sir+",height="+vys);
   if (getcook()=="xxxxxx")  history.go(-1);
}
// ===========================================================================
// zhasnutí watermarku napríklad v poli input text
// inspirace: http://www.davidjrush.com/blog/2009/06/javascript-creating-a-simple-textbox-watermark/
// príklad:   <input type="text" ... id="box1" onfocus="hideWatermark('box1')" style="background:url('../images/textmail.gif');">
function hideWatermark(theID) {
    var element = document.getElementById(theID);
    element.style.backgroundImage = 'none';
    element.style.backgroundColor = 'white';
}
// ===========================================================================
// onclick funkce pri vytvareni okna s externim odkazem mimo IML
//    zaridi, aby stranka byla v samostatnem okne XXXBLANK
//    kdyz se nepovede otevrit samostatne okno, zobrazi to v okne stavajicim
// do tagu <a ...> je treba vlozit: onclick="javascript:return !openoknoext(this);" - to delam preprocesorem
// pouziva globalni promennou "noveokno" uvedenou v zahlavi souboru
// ??? funguje to vůbec ??? jednodušší test a snad fungující - viz google
function openoknoext(link) { 
   var retvalue=true; 
   if (noveokno!=null && !noveokno.closed) {noveokno.focus(); 
                                            noveokno.location.href=link.href;} 
                                     else  {noveokno=window.open(link.href,"xxxblank"); 
                                            if (noveokno==null || typeof(noveokno)=="undefined") {retvalue=false;}
                                                                                           else  {link.target="xxxblank"; 
                                                                                                  noveokno.focus();} 
                                           } 
   return retvalue; 
} 
// ===========================================================================
// odkaz Spolecenske centrum na mapy.cz
function mapaspolecenskecentrum(jazyk) {
/*
   document.write('<a href="http://www.mapy.cz/?mapType=base&zoom=15&centerX=137966240&centerY=132908128&portWidth=669&portHeight=681&forceMap');
   document.write('Params=1&query=spole%C4%8Densk%C3%A9%20centrum%20bystrc&page=1&searchPort=124588965_123832193_146510757_145950593');
   document.write('&userMarkX=137964896&userMarkY=132908096&userMarkTitle=Jede%20Kudrna%20okolo%20Brna&userMarkDescription=');
   document.write('Klub%20%C4%8Desk%C3%BDch%20turist%C5%AF%20-%20mezin%C3%A1rodn%C3%AD%20pochod%20IML/IVV" target="xxxblank">')
*/
   document.write('<a href="http://www.mapy.cz/');
   document.write("#mm=ZTtTcP@sa=s@st=s@ssq=49%C2%B0%2013'%2023.048%22%20N%2C%2016%C2%B0%2031");
   document.write("'%2047.229%22%20E@sss=1@ssp=137959744_132902984_137974112_132915328@x=137962880@y=132907840@z=15");
   document.write('" target="xxxblank">');

   if (jazyk=="cz") document.write('Interaktivní mapa')
               else document.write('Interactive map');
/*
   document.write('</a> &#9679; <a href="http://www.mapy.cz/#x=137962944@y=132908928@z=15@mm=FP@sa=s@st=s@ssq=',
                  'Odbojarska%202,%20Brno@sss=1@ssp=137534432_132543968_138416096_133350368" target="xxxblank">');
*/
   document.write('</a> &#9679; <a href="http://www.mapy.cz/');
   document.write("#mm=FP@sa=s@st=s@ssq=49%C2%B0%2013'%2023.048%22%20N%2C%2016%C2%B0%2031'%");
   document.write("2047.229%22%20E@sss=1@ssp=137959744_132902984_137974112_132915328@x=137964448@y=132908128@z=15");
   document.write('" target="xxxblank">');

   if (jazyk=="cz") document.write('Interaktivní letecký snímek')
               else document.write('Interactive aerial photo');
   document.write('</a> &#9679; <a href="bystrc.htm">');
   if (jazyk=="cz") document.write('O Brne-Bystrci')
               else document.write('About Brno-Bystrc');
   document.write('</a>');
}
// ===========================================================================
// odkaz turistická mapa na mapy.cz
function mapaturisticka(jazyk) {
   document.write('<a href="http://www.mapy.cz/#mm=TTtP@x=137964032@y=133008384@z=11" target="xxxblank">');
   if (jazyk=="cz") document.write('Interaktivní turistická mapa se znacenými cestami (zaškrtnout "Turistické trasy")')
               else document.write('Interactive tourist map with KCT marked paths (mark "Turistické trasy")');
   document.write('</a>');
}
// ===========================================================================
// kontroluje správnost emailu - dve varianty, pomocí funkce VALIDATE_EMAIL/ODESILATEL jsou volány obe
// v PHP - http://www.root.cz/clanky/php-kontrola-e-mail/

// varianta 3 ... http://interval.cz/clanky/javascript-kontrola-spravnosti-e-mailove-adresy-3
function zkontroluj_email_3(adresa)  {
    re = /^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$/;
    return adresa.search(re) == 0;
}    

// varianta 2 ... http://interval.cz/clanky/javascript-kontrola-spravnosti-e-mailove-adresy-2
function zkontroluj_email_2(adresa)  {
// zjišt2ní pozice znaku @
    var pozice_zavinace = adresa.indexOf("@");
// kontrola pravidla 1, je aspon jeden @ v adrese?
    if (pozice_zavinace < 0)
        return false;
// získání cástí pred a po znaku @
    var cast_pred_zavinacem = adresa.substring(0,pozice_zavinace);
    var cast_po_zavinaci = adresa.substring(pozice_zavinace+1,adresa.length);
// kontrola pravidla 1, zda tam není ješt2 další @
    if (cast_po_zavinaci.indexOf("@") >= 0)
        return false;
// kontrola pravidla 2
    if (cast_pred_zavinacem.length <= 0)
        return false;
// kontrola pravidla 3
    if (cast_po_zavinaci.length <= 0)
        return false;
// zjišt2ní pozice poslední tecky
    var pozice_posledni_tecky = cast_po_zavinaci.lastIndexOf(".");
// kontrola pravidla 4
    if (pozice_posledni_tecky < 0)
        return false;
// kolik znaků je ješt2 za poslední teckou?
    var pocet_znaku_za_posledni_teckou = cast_po_zavinaci.length - pozice_posledni_tecky - 1;
// kontrola pravidla 6
    if (pocet_znaku_za_posledni_teckou < 2  ||  pocet_znaku_za_posledni_teckou > 3)   // ?????
        return false;
// kontrola pravidla 7
    var pozice_dvou_tecek_vedle_sebe = adresa.indexOf("..");
    if (pozice_dvou_tecek_vedle_sebe >= 0)
        return false;
// kontrola pravidla 5 u cásti pred @
    if (cast_pred_zavinacem.charAt(0) == "."  ||  cast_pred_zavinacem.charAt(cast_pred_zavinacem.length-1) == ".")
        return false;
// kontrola pravidla 5 u cásti po @
    if (cast_po_zavinaci.charAt(0) == "."  ||  cast_po_zavinaci.charAt(cast_po_zavinaci.length-1) == ".")
        return false;
// pokud jsme se dostali až sem, vše je O.K.
    return true;
}

function validate_email(form) {  
    if (!zkontroluj_email_3(form.email.value) || !zkontroluj_email_2(form.email.value))
          { if (jazyk=="en") alert("You must correctly fill in your e-mail address!");
            if (jazyk=="cz") alert("Musíte správně vyplnit svoji e-mailovou adresu!");
            form.odesilatel.focus(); 
            return false;
          }
    return true; 
}

function validate_odesilatel(form) {  
    if (!zkontroluj_email_3(form.odesilatel.value) || !zkontroluj_email_2(form.odesilatel.value))
          { if (jazyk=="en") alert("You must correctly fill in your e-mail address!");
            if (jazyk=="cz") alert("Musíte správně vyplnit svoji e-mailovou adresu!");
            form.odesilatel.focus(); 
            return false;
          }
    return true; 
} 
// ===========================================================================
// výpočet ceny ve formuláři zadávání plateb účastníka
function cena(TheForm,sql) {
  celkem = 0;
  celkem2dny = 0;
  celkem1denso = 0;
  celkem1denne = 0;
  celkemkolomaz = 0;
  celkemsnidaneso = 0;
  celkemsnidanene = 0;
  celkemtelocvicnapaso = 0;
  celkemtelocvicnasone = 0;
  TheForm.platba_1den_so.disabled=0;
  TheForm.platba_1den_ne.disabled=0;
  TheForm.platba_2dny.disabled=0;
  TheForm.sleva_1den_so.disabled=0;
  TheForm.sleva_1den_ne.disabled=0;
  TheForm.sleva_2dny.disabled=0;

  TheForm.sleva_2dny.disabled = !TheForm.platba_2dny.checked;
  if (TheForm.platba_2dny.checked)       {celkem += 350;
                                          celkem2dny += 350;
                                          TheForm.platba_1den_so.disabled=1; celkem1denso=0;
                                          TheForm.platba_1den_ne.disabled=1; celkem1denne=0;
                                         } 
  if ((TheForm.sleva_2dny.checked) && (TheForm.platba_2dny.checked)) 
                                         {celkem -= 100;
                                          celkem2dny -= 100;
                                         } 
  TheForm.sleva_1den_so.disabled = !TheForm.platba_1den_so.checked;
  if (TheForm.platba_1den_so.checked)    {celkem += 40;
                                          celkem1denso += 40;
                                          TheForm.platba_2dny.disabled=1; celkem2dny=0;
                                         } 
  if ((TheForm.sleva_1den_so.checked) && (TheForm.platba_1den_so.checked)) 
                                         {celkem -= 10;
                                          celkem1denso -= 10;
                                         } 
  TheForm.sleva_1den_ne.disabled = !TheForm.platba_1den_ne.checked;
  if (TheForm.platba_1den_ne.checked)    {celkem += 40;
                                          celkem1denne += 40;
                                          TheForm.platba_2dny.disabled=1; celkem2dny=0;
                                         } 
  if ((TheForm.sleva_1den_ne.checked) && (TheForm.platba_1den_ne.checked)) 
                                         {celkem -= 10;
                                          celkem1denne -= 10;
                                         } 
  if (TheForm.platba_kolomaz.checked)          {celkem += 20;
                                                celkemkolomaz += 20;
                                               } 
  if (TheForm.platba_snidane_so.checked)       {celkem += 40; 
                                                celkemsnidaneso += 40;
                                               } 
  if (TheForm.platba_snidane_ne.checked)       {celkem += 40; 
                                                celkemsnidanene += 40;
                                               } 
  if (TheForm.platba_telocvicna_paso.checked)    {celkem += 50; 
                                                celkemtelocvicnapaso += 50;
                                               } 
  if (TheForm.platba_telocvicna_sone.checked)    {celkem += 50; 
                                                celkemtelocvicnasone += 50;
                                               } 
  TheForm.celkem_2dny.value = celkem2dny;
  TheForm.celkem_kolomaz.value = celkemkolomaz;
  TheForm.celkem_1den_so.value = celkem1denso;
  TheForm.celkem_1den_ne.value = celkem1denne;
  TheForm.celkem_snidane_so.value = celkemsnidaneso;
  TheForm.celkem_snidane_ne.value = celkemsnidanene;
  TheForm.celkem_telocvicna_paso.value = celkemtelocvicnapaso;
  TheForm.celkem_telocvicna_sone.value = celkemtelocvicnasone;
  TheForm.celkem.value = celkem;  
  if (sql!="sql") TheForm.platba_celkem.value = celkem;  
}
// ===========================================================================



// ===========================================================================
// spousteni skriptu s galerii pri kliknuti na obrazek
// ===================================================
// melo by byt na konci celeho dokumentu
// vyuziva se objektovy model dokumentu DOM1, mozna i DOM2 (formatovani/css)

// bacha na velka/mala pismena, 
//    napr. vlastnost "event" v MSIE je neco uplne jinyho, nez "Event" ve Firefoxu, element "A" se nekdy muze psat i malym pismem

// vse se dela pouze v pripade, ze se obrazek nachazi v adresari xxxxxxj a je maly (tj. jmeno nekonci x)
// 1. obrazek nema onclick a je obalen tagem <a href="#"> - kriminal nahradim volanim javascriptu
// 2. obrazek nema onclick a neni obalen tagem <a....> - pridam vastnost onclick (Mozilla/Firefox+Opera+Netscape)
// 3. resp. to resim pres globalni onclick podminku - (MSIE+Safari+Chrome)
//    globalni onclick podminka funguje i pro Firefox+Opera+Netscape, ale v tomto pripade neumim dekodovat nektere parametry obrazku, 
//    napr. nadrazeny element aj... 
// zobrazime obrazek velky (jmeno konci x) - zavola se skript pro zobrazeni galerie tohoto tvaru: OpenOknoSlideShow('../xxxxxxxj/yyyyyyyx.jpg');

// -------------------------------------
// testuje, zda je obrazek maly (jmeno nekonci x) z zda je z adresare xxxxxxj, vrati adresu velkeho obrazku
function testadresarfoto(nam)  { 
  lomlast=nam.lastIndexOf("/");  // posledni lomitko
  lomprelast=nam.lastIndexOf("/",lomlast-1)
  teclast=nam.lastIndexOf(".");  // posledni tecka
  adresar=nam.substr(0,lomlast); // zacatek jmena koncici adresarem
  obrazek=nam.substr(0,teclast); // zacatek jmena koncici obrazkem
  obrazek=".."+obrazek.substr(lomprelast); // povinne to musi byt ve tvaru "../adresar/fotka.jpg"
  if ((adresar.substr(adresar.length-1,1).toLowerCase()=="j") &&
      (obrazek.substr(obrazek.length-1,1).toLowerCase()!="x")) { return(obrazek+"x"+nam.substr(teclast,nam.length-teclast)); }
                                                               { return(null) }
}
// -------------------------------------
// zobrazi obrazek lupy v pravem dolnim rohu obrazku
function zobrazlupu(element) {
  lomlast=element.src.lastIndexOf("/");              // posledni lomitko
  lomprelast=element.src.lastIndexOf("/",lomlast-1)  // predposledni lomitko
  obrazek=".."+element.src.substr(lomprelast);       // povinne to musi byt ve tvaru "../adresar/fotka.jpg"
  element.src="../prsafoto/thumb.php?photo="+obrazek+"&lupa=yes&x="+element.width;
}
// -------------------------------------
// akce MSIE pri splneni on-podminky ONCLICK
function kliknutoIE() {
  n=window.event.srcElement;               // window.event.type=typ(napr.click), ...srcElement=element,
                                           //                                    ...screenX,screenY=souradice
  if ((n.tagName=="IMG")&&                 // IMG velkymi !!!
      (n.parentNode.nodeName!="A")&&       // A velkymi   !!!
      (n.onclick==null)&&
      testadresarfoto(n.src))   OpenOknoSlideShow(testadresarfoto(n.src));
}
// -------------------------------------
// hlavni funkce obhospodarujici fotky na strance - doplni lupy a onclick
function obrazkynastrance() {
  for (var i=0;i<document.images.length;i++)  
      { n=document.images[i];             // cyklus pres vsechny obrazky - naplneni pole
        // zobrazeni lupy jestlize se obrazek nachazi v adresari xxxxxxj a je maly (tj. jmeno nekonci x)
        //                                         // muze byt i jinak, v tom pripade uprav funkci testadresarfoto()
        // odkazy netestuju, protoze tam bud neco je nebo se timto scriptem doplni
           if (testadresarfoto(n.src))  zobrazlupu(n);
        // 1. zmena vlastnosti href nadrazeneho elementu A - pouze tehdy, ma-li hodnotu #
           if ((n.parentNode.nodeName=="A")&&      // A velkymi !!!
               (n.parentNode.href==(document.location.href+"#"))&&
               testadresarfoto(n.src))  n.parentNode.href='javascript:OpenOknoSlideShow("'+testadresarfoto(n.src)+'");';
        // 2. vlastnost ONCLICK v elementu IMG - pouze tehdy, neni-li jiz nastavena a neexistuje-li nadrazeny element A
           if ((testMozilla() || testOpera() || testNetscape())&&    // funguje Firefox+Opera+Netscape, 
                                                                     // nefunguje Safari+Chrome+MSIE (viz globalni onclick)
               (n.parentNode.nodeName!="A")&&      // A velkymi !!!
               (n.onclick==null)&&
               testadresarfoto(n.src))  n.setAttribute('onclick','javascript:OpenOknoSlideShow("'+testadresarfoto(n.src)+'");');
      }
  // 3. globalni ONCLICK podminka, testuji zda jsem na spravnem elementu IMG a nadrazeny element je A
  if (testMSIE() || testSafari() || testChrome()) document.onclick=kliknutoIE;    // ostatni - viz onclick vlastnost elementu IMG
}
// ===========================================================================