var typcheckboxu = new Array();
var adresy = new Array();
var zaskrtane = ""; //pro dynam
var kusanec = "";
var pom = 0;
var adresawebu = "";
var coid = "";
var delka_prefixu = 15; //pro odkazy_hidcheck je 15, pro odkazy_hidcheck 17 atd.
var pocet_hl_kategorii = 4;

function init(){ //zapíše do pole stavy checkboxů
  
  var el = document.getElementById('odkazy_vyhledavani_form');  
  pom = 0;
  for (var i = 0; el.elements.length > i; i++) {         
   if (el.elements[i].id.substr(0,delka_prefixu) == 'odkazy_hidcheck') {     
     typcheckboxu[el.elements[i].id.substr(delka_prefixu)] = document.getElementById('odkazy_hidcheck'+el.elements[i].id.substr(delka_prefixu)).getAttribute("value");   
    
    //vygeneruje řetězec popisující zaškrtané adresy pro dynam
    
    if (document.getElementById('odkazy_hidcheck'+el.elements[i].id.substr(delka_prefixu)).getAttribute("value") == '2') {
    zaskrtane += "|"+el.elements[i].id.substr(delka_prefixu);
    }
        
     adresy[pom] = el.elements[i].id.substr(delka_prefixu); 
     pom++;
   }
  }
  
  adresawebu = document.getElementById('odkazy_adresa_webu').getAttribute('value');
  
    anketa_hlasovat(zaskrtane,document.getElementById('odkazy_vyhledat_text').value); 
}
  


function ouvr(co)
{            
  if (document.getElementById('odkazy_vypnout_checkboxy').getAttribute('value') != "ano") {
    switch (typcheckboxu[co]) {
    case '2': document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch21.png'; break;
    case '1': document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch11.png'; break;
    case '0': document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch01.png'; break;   
    }
  
  }

}

function aut(co)
{    
  if (document.getElementById('odkazy_vypnout_checkboxy').getAttribute('value') != "ano") {
    switch (typcheckboxu[co]) {
    case '2': document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch20.png'; break;
    case '1': document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch10.png'; break;
    case '0': document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch00.png'; break;   
    }
  }

}

function klik(co)
{

  if (document.getElementById('odkazy_vypnout_checkboxy').getAttribute('value') != "ano") {
    switch (typcheckboxu[co]) {
    case '2':
      
      document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch01.png';
      typcheckboxu[co] = '0';   
      document.getElementById('odkazy_hidcheck'+co).setAttribute('value','0'); 
      break;
    
    case '1': 
      
      document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch21.png';
      typcheckboxu[co] = '2';   
      document.getElementById('odkazy_hidcheck'+co).setAttribute('value','2'); 
      break;
  
    case '0':    
      
      document.getElementById('odkazy_imgcheck'+co).src=adresawebu+'/images/ch21.png';
      typcheckboxu[co] = '2';
      document.getElementById('odkazy_hidcheck'+co).setAttribute('value','2');    
      break;
  
    }
  
    
    checkclick('check'+co);
  }
}


  

  
function checkclick(co)
{    
  var uroven = co.length-6; //0 hlavni, 1 nižší, 2 ještě nižší...
  var hlavni = co.substr(5,1);
  var kategorie = co.substr(5,1+uroven);
  var pocet = 0;
  var pocetpodkategorii = 0; //pokud neexistuji podkategorie, je dobré o tom vědět :o)
  var el = document.getElementById('odkazy_vyhledavani_form');	    

  //podíváme se, zda nejsou nějaké checkboxy šedivé, aniž by měly zaškrtnuté podkategorie
  
  if (typcheckboxu[co.substr(5)] != "2") {    


                    
    for(var i = uroven;i > 0;i--) { //pro všechny nadúrovně...
      
      pocet = 0;           
      for (var j=0;adresy.length > j;j++) {
      
      
        if ((adresy[j].substr(0,i) == co.substr(5,i)) && (typcheckboxu[adresy[j]] == "2")) {

          pocet++; break;
        }       
      
      }                     
        if (pocet == 0) {                    

          document.getElementById('odkazy_img'+co.substr(0,5+i)).src=adresawebu+'/images/ch00.png';
          typcheckboxu[co.substr(5,i)] = '0'; 
            
          document.getElementById('odkazy_hid'+co.substr(0,5+i)).setAttribute('value','0');   

        }        
              
      
    }   
  }


        
  //pokud bylo zaškrtnuto, odškrtnou se všechny nadkategorie a vyznačí se šedivě
  
  
  if (typcheckboxu[co.substr(5)] == "2") {         
 
    
    for(var i = uroven;i > 0;i--) {
      
     
              
      document.getElementById('odkazy_img'+co.substr(0,5+i)).src=adresawebu+'/images/ch10.png';
      typcheckboxu[co.substr(5,i)] = '1';    
      document.getElementById('odkazy_hid'+co.substr(0,5+i)).setAttribute('value','1');
      
    }    
  }



  //pokud bylo zaškrtnuto, odškrtnou se všechny podkategorie
  
             
  if (typcheckboxu[co.substr(5)] == "2") {
  
  
  for (var i = 0; adresy.length > i; i++) { 
   
   if ((adresy[i].substr(0,uroven+1) == kategorie) && (adresy[i].length > 1+uroven) && (typcheckboxu[adresy[i]] != "0")) {
    
     coid = 'check'+adresy[i];       
     
          document.getElementById('odkazy_img'+coid).src=adresawebu+'/images/ch00.png';
          typcheckboxu[coid.substr(5)] = '0';   
          document.getElementById('odkazy_hid'+coid).setAttribute('value','0'); 


   }       
  }     

  }

 
   //následjící kód zajistí, že v hlavní kategorii je vždy aspoň něco zaškrtnuto a nikdy není současně nejhlavnější i něco pod ní
  
  
  for (var i = 0; adresy.length > i; i++) { 
   if ((adresy[i].substr(0,1) == hlavni) && (adresy[i].length > 1) && (typcheckboxu[adresy[i]] == "2")) {
     pocet++;
   }       
  
  }     
    
  if (pocet == 0) {      

 
    coid = hlavni;
          document.getElementById('odkazy_imgcheck'+coid).src=adresawebu+'/images/ch20.png';
          typcheckboxu[coid] = '2'; 
          document.getElementById('odkazy_hidcheck'+coid).setAttribute('value','2');   
  
  
  
  //ještě vše pod tím vymazat, kdyby tam byly nějaké šedivé
  
  
  
  for (var i = 0; adresy.length > i; i++) {            
   if ((adresy[i].substr(0,1) == hlavni) && (adresy[i].length > 1) && (typcheckboxu[adresy[i]] != "0")) {
     
     coid = 'check'+adresy[i];       
     
     
          document.getElementById('odkazy_img'+coid).src=adresawebu+'/images/ch00.png';
          typcheckboxu[coid.substr(5)] = '0';   
          document.getElementById('odkazy_hid'+coid).setAttribute('value','0'); 

   }       
  }     


  }
  else {
          
    coid = hlavni;      
          document.getElementById('odkazy_imgcheck'+coid).src=adresawebu+'/images/ch10.png';
          typcheckboxu[coid] = '1';  
          document.getElementById('odkazy_hidcheck'+coid).setAttribute('value','1');  

  }              

  
  //ještě se přepíše řetězec zaskrtane pro dynam
  
  zaskrtane = "";
  var el = document.getElementById('odkazy_vyhledavani_form');    
  for (var i = 0; el.elements.length > i; i++) {         
   if (el.elements[i].id.substr(0,delka_prefixu) == 'odkazy_hidcheck') {     
     typcheckboxu[el.elements[i].id.substr(delka_prefixu)] = document.getElementById('odkazy_hidcheck'+el.elements[i].id.substr(delka_prefixu)).getAttribute("value");   
    
    //vygeneruje řetězec popisující zaškrtané adresy pro dynam
    
    if (document.getElementById('odkazy_hidcheck'+el.elements[i].id.substr(delka_prefixu)).getAttribute("value") == '2') {
    zaskrtane += "|"+el.elements[i].id.substr(delka_prefixu);
    }
        
   }
  }
        
  anketa_hlasovat(zaskrtane,document.getElementById('odkazy_vyhledat_text').value); //provede dotaz do databáze, jímž zjistí počet příspěvků odpovídajících aktuálně vybraným kategoriím
  

} //konec checkclick





function zobrazit_kategorie(id,nazev)
{                    
  var nove_okno = window.open('zobrazit_kategorie.php?id='+id+'&nazev='+nazev, "", "left=100, top=100, width=650, height=450, menubar=no, directories=no, toolbar=no, location=no, status=no, scrollbars=yes, resizable=yes");
  nove_okno.focus();
}

function zobrazit_kategorie_z_administrace(id,nazev)
{                    
  var nove_okno = window.open('../zobrazit_kategorie.php?id='+id+'&nazev='+nazev, "", "left=100, top=100, width=650, height=450, menubar=no, directories=no, toolbar=no, location=no, status=no, scrollbars=yes, resizable=yes");
  nove_okno.focus();
}


function upozorneni(co)
{

  var upozorneni_text = prompt("Děkujeme, že nás chcete upozornit na problém s tímto příspěvkem - nepřesné nebo zastaralé informace, nefunkční odkaz apod.","Popište stručně problém.");   

  if (upozorneni_text != null) {
    if (upozorneni_text.length > 100) {
      alert ("Text je příliš dlouhý, prosíme pošlete e-mail.");
      document.location="mailto:vyhledavadlo_upozorneni@pavelbohm.cz?subject=Vyhledavadlo - chyba&amp;body="+upozorneni_text;
      }
    else
      {           
      if (upozorneni_text) {        
        document.forms["odkazy_vyhledavani_form"].action="index.php?upozornit="+co+"&sdeleni="+upozorneni_text;                  
        document.forms["odkazy_vyhledavani_form"].submit();
        }
        else
          {
          return false
          }
      }
  }
  return false;
}



function kontrola_vkladani(co){
  var pass=true;
  var el = document.getElementById('odkazy_vyhledavani_form');
  var celkem = 1;
  var pocet = 0;
  var hlktg = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
  var zaskrtnuto = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
  var pomadr = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
  
  var delka=co.nazev.value.length;
  var delka2=co.popis.value.length;
  var delka3=co.url.value.length;
  
  if (delka > 60) {alert('Maximální délka názvu je 60 znaků'); pass=false; }
  if (delka3 > 255) {alert('Maximální délka URL je 255 znaků'); pass=false; }
  if (delka2 > 255) {alert('Maximální délka popisu je 255 znaků'); pass=false; }
  
  if (co.nazev.value=="") {alert('Musíte zadat název'); pass=false; }
  if (co.popis.value=="") {alert('Musíte zadat popis'); pass=false; }
  
  
  kategorizace = 'ano';
  for (var i = 0; el.elements.length > i; i++) {  	     
   if (el.elements[i].id.length == delka_prefixu+1 && el.elements[i].id.substr(0,15)=='odkazy_hidcheck' && el.elements[i].value == '2') {kategorizace = 'ne'; break;}                    
  }    
               
  if (kategorizace == 'ne') {alert('V jedné nebo více kategoriích nebylo provedeno zařazení.' ); pass=false;}
          
  if (pass==true) {return true} else {return false}

}



    //odeslání dynam hlavičky    
    function send_xmlhttprequest(obsluha, method, url, content, headers) {
      var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
      if (!xmlhttp) {
        return false;
      }
      xmlhttp.open(method, url);
      xmlhttp.onreadystatechange = function() {
        obsluha(xmlhttp);
      }; 
      if (headers) {
        for (var key in headers) { 
          xmlhttp.setRequestHeader(key, headers[key]); 
        } 
      }
      xmlhttp.send(content);
      return true;
    }
    
         
  //obsluha dynam komunikace
  function anketa_hlasovat(hodnota,fulltextik) {          

    document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídá <strong>...</strong>';
    if (!send_xmlhttprequest(anketa_obsluha, 'GET', encodeURI('includes/dynam_fn.php?zaskrtane='+hodnota+'&odkazy_vyhledat_text='+fulltextik))) {      
      return false;
    }    
    return true; 
  }
         
  function anketa_obsluha(xmlhttp) {
    if (xmlhttp.readyState == 4) {            
      var dynam_odpovedi = xmlhttp.responseXML.getElementsByTagName('pocet');                                   
      var dynam_odpovedi_presne = xmlhttp.responseXML.getElementsByTagName('pocetpresnych');	

      switch (dynam_odpovedi[0].firstChild.data) {
      case '0':
        document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru neodpovídá <strong>žádný</strong> záznam.';
        break;
      case '1':
        document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídá <strong>' + dynam_odpovedi[0].firstChild.data+'</strong> záznam, z toho <strong>'+dynam_odpovedi_presne[0].firstChild.data + '</strong> přesně.';
        break;
      case '2':
        document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídají <strong>' + dynam_odpovedi[0].firstChild.data+'</strong> záznamy, z toho <strong>'+dynam_odpovedi_presne[0].firstChild.data + '</strong> přesně.';
        break;
      case '3':
        document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídají <strong>' + dynam_odpovedi[0].firstChild.data+'</strong> záznamy, z toho <strong>'+dynam_odpovedi_presne[0].firstChild.data + '</strong> přesně.';
        break;
      case '4':
        document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídají <strong>' + dynam_odpovedi[0].firstChild.data+'</strong> záznamy, z toho <strong>'+dynam_odpovedi_presne[0].firstChild.data + '</strong> přesně.';
        break;
      default:
        document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídá <strong>' + dynam_odpovedi[0].firstChild.data+'</strong> záznamů, z toho <strong>'+dynam_odpovedi_presne[0].firstChild.data + '</strong> přesně.';
      }
      	
      //document.getElementById('odkazy_kolik_vysledku').innerHTML = ' Aktuálnímu výběru odpovídá <strong>' + dynam_odpovedi[0].firstChild.data+'</strong> záznamů, z toho <strong>'+dynam_odpovedi_presne[0].firstChild.data + '</strong> přesně.';
      //document.getElementById('hledat_submit_button').value = ' Vypsat výsledky hledání (' + dynam_odpovedi[0].firstChild.data+' záznamů) ';
    } 
  } 


// zpožďovač
var timerID = 0;
var tStart = null;
var milisekundy = 0;

function UpdateTimer(hodnota, fulltextik) {
  clearTimeout(timerID);
  timerID = 0;
  anketa_hlasovat(hodnota,fulltextik);
}

function Start(hodnota, fulltextik) {
  clearTimeout(timerID);
  timerID = 0;
  document.getElementById('odkazy_kolik_vysledku').innerHTML = 'Aktuálnímu výběru odpovídá <strong>...</strong>';
  timerID = setTimeout("UpdateTimer('"+hodnota+"','"+fulltextik+"')", 300);
}