var xmlHttp = createXmlHttpRequestObject();
var serverAddress = "/app/lib/ajax/prometric/prometric.php";
var atributy = '?action=';
var atribut;
var proc;
var kamZobraz = 'myDivKlienti';
var updateInterval = 5;
var errorRetryInterval = 15;
var debugMode = true;
function dejAtrib(atrib) {
  return (atrib);
}
function createXmlHttpRequestObject()
{
  var xmlHttp;
  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
    {
      try
      {
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      }
      catch (e) {}
    }
  }
  if (!xmlHttp)
    alert("Chyba při vytváření objektu XMLHttpRequest.");
  else
    return xmlHttp;
}
function display($message)
{
  myDiv = document.getElementById(kamZobraz);
  myDiv.innerHTML = $message;
}
function displayError($message)
{
  display("Selhal přístup do databáze! Bude se pokračovat za " +
          errorRetryInterval + " sekund." +
          (debugMode ? "<br/>" + $message : ""));
  setTimeout(proc, errorRetryInterval * 1000);
}
function process(atrib,kam)
{
  atribut = atrib;
    if (atribut == 'GetTest')
    {
      klient_id = document.getElementById('klienti').value;
      atribut += '&klient=' + klient_id;
      myDiv = document.getElementById('myDivCena');
      myDiv.innerHTML = '–';
    }
    else if (atribut == 'GetCena')
    {
      test_id = document.getElementById('testy').value;
      atribut += '&test=' + test_id;
    }
  proc = "process('" + atribut + "');"
  if (kam)
    {
      kamZobraz = kam;
    }
  if (xmlHttp)
  {
    try
    {
      display("Přijímám zprávy ze serveru...")
      var atributies = atributy + atribut;
      xmlHttp.open("GET", serverAddress + atributies , true);
      xmlHttp.onreadystatechange = handleGettingNews;
      xmlHttp.send(null);
    }
    catch(e)
    {
      displayError(e.toString());
    }
  }
}
function handleGettingNews()
{
  if (xmlHttp.readyState == 4)
  {
    if (xmlHttp.status == 200)
    {
      try
      {
        getNews();
      }
      catch(e)
      {
        displayError(e.toString());
      }
    }
    else
    {
      displayError(xmlHttp.statusText);
    }
  }
}
function getNews()
{
  var response = xmlHttp.responseText;
  if (response.indexOf("ERRNO") >= 0
      || response.indexOf("error") >= 0
      || response.length == 0)
    throw(response.length == 0 ? "Chyba na straně serveru." : response);
  display(response);
}