/*
*  Vytvoření request objektu
*/
function getRequest () {
	if (window.XMLHttpRequest) {
		try { result = new XMLHttpRequest(); }
		catch(e) { result = false; }
	}
	else if (window.ActiveXObject) {
		try { result = new ActiveXObject("Msxml2.XMLHTTP");	}
		catch(e) {
			try {	result = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch(e) { result = false; }
		}
	}
	return result;
}

/*
*  Zapne nebo vypne časovač pro dotaz na předbídnutí hledaných frází
*/
function initCombo(stav) {
  self.stav = stav;

  // -- požadavek na hledání
  if (stav) {
    // -- toto předbízení funguje jen pro názvy produktů
    if (document.getElementById('hledat_typ').selectedIndex != 0) return;
    // -- událost časovače
    var f = function() {
      // -- dokud neuplynula určitá doba, tak se požadavek ještě neposílá
      if (++self.step < 5) return;
      initCombo(false); // -- vypnutí časovače
      var url = 'ajaxhledejprodukt.php?find=' + escape(document.getElementById("text").value);
      req.open('GET',url,false);
      req.send(null);
      var list = req.responseText.split("\n"); // -- načtení vráceného výsledku do pole
      // -- pokud byl vracen nějaký výsledek
      if (list.length > 0) {
        var combo =  document.getElementById("lbSugg");
        // -- tak se naplní combo dle specifického prohlížeče
        if (navigator.appName == "Microsoft Internet Explorer") {
          while(combo.options.length > 0) combo.options.remove(0);
          for(var i=0; i<list.length; i++) {
            var o = document.createElement("OPTION");
            combo.options.add(o);
            o.innerHTML = list[i].toString();
          }
        }
        else {
          while(combo.length > 0) combo.remove(0);
          for(var i=0; i<list.length; i++) {
            var o = document.createElement("OPTION");
            combo.add(o,null);
            o.innerHTML = list[i].toString();
          }
        }
        combo.style.visibility = "visible";
      }
    }
    // -- vynulování a nastavení časovače
    self.step = 0;
    // -- pokud není časovač ještě inicializován
    if (self.interval == false) self.interval = setInterval(f,100);
  }
  else {
    // -- zrušení časovače a skrytí comba
    clearInterval(self.interval);
    self.interval = false;
    document.getElementById("lbSugg").style.visibility = "hidden";
  }
}

/*
*  Pokud se klikne na položku v combu, tak se nastaví do inputu pro vyhledávání
*/
function comboClick(sender) {
  var edit = document.getElementById("text");
  edit.value = sender.options[sender.selectedIndex].text;
}

/*
*  Pokud se opustí input pro vyhledávání tak se také zruší combo
*/
function editLeave(sender) {
  var f = function() {
    initCombo(false);
    clearTimeout(self.timer);
  }
  self.timer = setTimeout(f,500);
}

self.interval = false;
var req = getRequest();
