var xhr = vytvorXHR();
var cache = new Array();

function vytvorXHR(){
  var xhr;
  try{
    xhr = new XMLHttpRequest();
  }catch(e){//pro případ starší verze prohlížeče
    var MSXmlVerze = new Array('MSXML2.XML.Http.6.0','MSXML2.XML.Http.5.0','MSXML2.XML.Http.4.0','MSXML2.XML.Http.3.0','MSXML2.XML.Http.2.0','Microsoft.XML.Http');
    for(var i = 0; i < MSXmlVerze.lenght; i ++){
      try{
        xhr = new ActiveXObject(MSXmlVerze[i]);
      }catch(e){
        //vzniklou chybu ignoruji a pokračuji nastavením další verze
      }
    }
  }
  if(!xhr)

  else
    return xhr;
}


function vytvorPozadavek(id,hodnota){
if(xhr){
  if(id){
    //zakoduji hodnoty
    id = encodeURIComponent(id);
    hodnota = encodeURIComponent(hodnota);
    //vložím hodnoty do fronty
    cache.push("id="+id+"&hodnota="+hodnota);
    //alert(cache);
  }
  try{
    //pokračovat budu jen v případě že cache není prázdná a objekt
    //XHR nemá co na práci
    if((xhr.readyState == 4 || xhr.readyState == 0)&& cache.length > 0){
      //z cache načtu další hodnotu
      var cacheVstup = cache.shift();
      xhr.open("POST","/validace.php",true);
      xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      xhr.onreadystatechange = validace;
      xhr.send(cacheVstup);
    }
  }catch(e){
    alert("Nelze se připojik k serveru:\n" + e.toString());
  }
}else{
  alert("Funkce \"precitSoubor()\": chybí objekt XMLHttpRequest");
}
}
function validace(){
  if(xhr.readyState == 4){
    if(xhr.status == 200){
      var XMLRes = xhr.responseXML;
        //zachycení chyb IE a Opery
        if(!XMLRes || !XMLRes.documentElement){
          throw("Chybná struktura XML:\n"+xhr.responseText);
        }
        //zachycení chyb ohnivé lišky :-)
        var rootNodeName = XMLRes.documentElement.nodeName;
        if(rootNodeName == "parsereerror"){
          throw("Chybná struktura XML:\n"+xhr.responseText);
        }
        //čtu dokument, jelikož je vše ok :-)
        xmlRoot = XMLRes.documentElement;
        odpoved = xmlRoot.getElementsByTagName("odpoved")[0].firstChild.data;
        stav = xmlRoot.getElementsByTagName("stav")[0].firstChild.data;
        id = xmlRoot.getElementsByTagName("id")[0].firstChild.data;
        zprava = document.getElementById(id+"Zprava");
        //alert(odpoved+" "+id+" "+zprava);
        if(odpoved == 0){          
          zprava.innerHTML = stav;
        }else{
          zprava.innerHTML = "";
        }
        
        setTimeout("vytvorPozadavek();", 50);
    }else{
      alert("Požadavek HTTP není v pořádku.")
    }
  }
}