     /*
      *********************************
        viz popisek u funkce napoveda, pripadne upravit hodnoty na konci skriptu (cesta ke skriptu apod)
        
        mimo tohoto souboru je potreba jeste skript co bude vracet odpovedi (napoveda.php), soucasti tohoto skriptu lze rozstrkat do souboru..
      *********************************
     */
     
     if(window.send_xmlhttprequest == undefined )
     {
        // provede xmlhttp pozadavek pres GET na zadanou url, a preda vytvoreny objekt prislusne callback funkci
        function send_xmlhttprequest(callback, url, content) {
            
            var http_request;
            // vytvoreni objektu xmlHttpRequest
            if (window.XMLHttpRequest) { // gecko based
              http_request = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
              try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
              } catch (e) {
                try {
                  http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
              }
            }
            
            if (!http_request) {
               alert('Vas prohlizec nepodporuje objekt XMLHttpRequest, naseptavac nebude fungovat!');
               return false;
            }
        
            http_request.open('GET', url);
            http_request.onreadystatechange = function() {
               callback(http_request);
            };
        
            http_request.send(content);
            return true;
        }
     }
     
     if(window.napoveda == undefined )  
     {
        /*
        *   funce pres ajax ziska xmlko s odpovedma a zobrazi je v seznamu
        *              
        *  syntaxe: 
        *         <htmlInput onKeyUp='napoveda(this,event);' autocomplete="off" onfocus="disp(ulHint,1);" onblur="disp(ulHint,0);">
        *         napr viz input na konci stranky
        */  
        
        function napoveda(prvek,e) {
             
             
             // u prazdneho pole nic neprovadet    
             if(prvek.value.length<0){             
                return true;
             }
             
             	
            // odeslání požadavku na aktualizaci dat
            if (!send_xmlhttprequest(napoveda_obsluha,napovedaSkript + prvek.value)) {
                return false;
            }
            
            if (!e) var e = window.event;
            if (e.keyCode) code = e.keyCode;
	          else if (e.which) code = e.which;
	          
            // cursor down/up/right/backspace/enter
            if(code==40 || code==38 || code==39 || code==8 || code==13){
               var ul = document.getElementById(ulHint);
               
               // sipka doprava/enter dosadi hodnotu a prejde na dalsi prvek
               if((code==39 ||code==13) && ul.childNodes[vybrany_prvek] != null)
               {  
                  dosad(ul.childNodes[vybrany_prvek].firstChild.nodeValue,0);
                  if(code==13) // pokud enter tak subminout form driv nez se odesle ta puvodni nanaseptana hodnota
                  {
                    document.getElementById(formId).submit();
                    return false;
                  }
                  return true;
               }
               if(code==8)
               {
                vybrany_prvek = -1;
                return true;
               }
               if(code==40) vybrany_prvek++;
               if(code==38) vybrany_prvek--;
               
               // uzivatel prejel sipkama konec
               if(vybrany_prvek > ul.childNodes.length-1) vybrany_prvek=0;
               // uzivatel prejel sipkama na zacatek
               if(vybrany_prvek < 0) vybrany_prvek=ul.childNodes.length-1;
               // zvyrazneni vybrane polozky
               if(vybrany_prvek>-1 && ul.childNodes[vybrany_prvek] != null) ul.childNodes[vybrany_prvek].className="hover";
               
            }
            
            return true;
        }
     
     
     
        function napoveda_obsluha(xmlhttp) {
            
            var ul = document.getElementById(ulHint);
            while (ul.childNodes.length > 0)
                      ul.removeChild(ul.childNodes[0]);
            ul.style.border="none";
           
            if (xmlhttp.readyState == 4) {
                
                var odpovedi = xmlhttp.responseXML.getElementsByTagName('moznost');
                for (var i=0; i < odpovedi.length; i++) {
                         
                        var li = document.createElement("LI");
                        var label = odpovedi[i].firstChild.data;
                        li.appendChild(document. createTextNode(label));
        					      li.id= odpovedi[i].getAttribute('id');
                        ul.appendChild(li);
                        li.onmousedown = function() { 
                                    dosad(this.firstChild.nodeValue,this.id);
                                    // do vypisu pridana cena - tu v hledani ale nechceme, takze split
                                    //var tmp = this.firstChild.nodeValue.split(' - ');
                                    //document.getElementById(inputText).value = tmp[0]; 
                        }
                        
                        /* for IE, don't support li:hover */
                        li.onmouseover = function(){
        						               this.className = 'hover';
                        }
                        li.onmouseout = function(){
        						               this.className = '';
                        }
                }
            }
            
            // ramecek pokud jsou nejake odpovedi
            if(ul.childNodes.length){
              ul.style.border="1px solid rgb(0,132,196)";
            }
        }

        function dosad(co,coH){
           document.getElementById(inputText).value = co;
           document.getElementById(inputHidden).value = coH;
           document.getElementById(formId).submit(); 
        }
     

     }

     
     if(window.disp == undefined )  
     {
      
        function disp(co,stav)
        {
         co = document.getElementById(co);
         if (stav)
          {
            clearTimeout(self.timer);
            co.style.visibility = "visible";
          }
          else
          {
           // aby nemizelo ihned
            var f = function(){co.style.visibility = "hidden";}
            self.timer = setTimeout(f, 300);
          } 
        
        }
      }
 // pro pamatovani pozice pri listovani pomoci sipek - nemenit
 var vybrany_prvek=-1;

 // idcka html prvku - vstupniho pole a seznamu, ktery obsahuje napovedu
 var inputText = 'id-lokace';
 var inputHidden = 'id-lokace-hidden';
 var formId = 'LokaceForm';
 var ulHint    = 'napoveda';
 
 
 // cesta ke skriptu co vyrabi odpovedi
 // musi koncit otevrenym parametrem - do nej se vpisuje text ze vstupniho pole
 var napovedaSkript = '../xml/naseptavac_booking.php?napoveda=';
