// Jiri Lenert && Echar Hajdalakovic
var zvoleno = new Array();
var pocet = new Array();
var naseptavac = new Array();
var req = null;
var on_x = 0;
var data_x = new Array();

function P_naseptavac_submit(on)
{
  tmp = document.getElementById(on);
  while (tmp = tmp.parentNode)
  {
    if (tmp.submit)
    {
      tmp.submit();
      return ;
    }
  }
}


function pridej(on, polozka, hodnota, autosend)
{
  pocet[on]++;
  document.getElementById(on + "_").innerHTML += '<li ondblclick="document.getElementById(\'' + on + '\').value=\'' + hodnota.replace(/'/, "\\'") + '\'" onmouseover="zvoleno[\'' + on + '\']=' + pocet[on] + ';akt(\'' + on + '\')" onclick="nastav(\'' + on + '\');disp(\'' + on + '\',0);' + ((autosend) ? 'P_naseptavac_submit(\'' + on + '\')' : '') + '">' + polozka + '</li>';
}


function nastav(on, hodnota)
{
  if (zvoleno[on] > 0)
  {
//    tmp = document.getElementById(on + "_").childNodes[zvoleno[on] - 1].innerHTML;
//    tmp = tmp.replace(/ \| .*/, '');
//    document.getElementById(on).value = tmp;
    document.getElementById(on + "_").childNodes[zvoleno[on] - 1].ondblclick();
  }
}


function akt(on)
{
  pocet[on] = document.getElementById(on + "_").childNodes.length;

  if (zvoleno[on] < 0) zvoleno[on] = 0;
  if (zvoleno[on] > pocet[on])
  {
    zvoleno[on] = pocet[on];
  }

  for (i = 0; i < pocet[on]; i++)
  {
    document.getElementById(on + "_").childNodes[i].style.backgroundColor = (i == (zvoleno[on] - 1)) ? "lightblue" : "";
  }
}


function naseptej(e, url, data, on, cas)
{
  if (e != null)
  {
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;

    if ((code == 38) || (code == 40))
    {
      cas = 0;
    }

    if (code == 13)
    {
      disp(on, 0);
      return ;
    }
  }
  else
  {
    code = 0;
  }

  window.clearInterval(naseptavac[on]);

  if (data.length == '')
  {
    disp(on, data.length);
    return ;
  }

  naseptavac[on] = setTimeout('naseptej_(' + code + ', "' + url + '", "' + on + '", "' + data + '")', cas);
}

function naseptej_(code, url, on, data)
{
  try
  {
    if ((code == 38) || (code == 40))
    {
      if (code == 38) zvoleno[on] = zvoleno[on] - 1;
      if (code == 40) zvoleno[on] = zvoleno[on] + 1;
      nastav(on);
      return akt(on);
    }

    if (window.XMLHttpRequest)
    {
      req = new XMLHttpRequest();
    }
    else
    {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }

    req.open("GET", url + '&P_naseptavac_polozka=' + on + '&' + on + '=' + encodeURIComponent(data) + '&tmp=' + new Date().getTime(), true);
    //req.send(null);
    
    on_x = on;
    data_x = data;
    req.onreadystatechange = function () {processRequest();};
    //eval(req.responseText);

    //disp(on, data.length);
    req.send(null);
  }
  catch (exception)
  {
  }
}

function processRequest() {
  if (req.readyState == 4)
  {
    if(req.status == 200)
    {
      zvoleno[on_x] = 0; pocet[on_x] = 0;
      document.getElementById(on_x + '_').innerHTML = '';
    
      eval(req.responseText);
      disp(on_x, data_x.length);
    }
  }
}

function disp(on, x)
{
  if (document.getElementById(on + "_").childNodes.length == 0) x = 0;

  document.getElementById(on + "_").style.display = ((x == 0) ? 'none' : 'block');
}


function P_naseptej_klavesa(e, on, enter)
{
  if (document.getElementById(on + "_").style.display == 'none') return true;

  if (!e) var e = window.event;
  if (e.keyCode) code = e.keyCode;
  else if (e.which) code = e.which;

  if (enter == undefined)
  {
    if (code == 13)
    {
      return false;
    }
  }
}
