var messageTimeout;
var menuTimeout;
var menuArray = new Array();

/**
 * Načtení obrázků do vyrovnávací paměti
 */
if(document.images)
{
  preload_image_object = new Image();
  image_url = new Array(1);
  image_url[0] = "design/menu.png";
  image_url[1] = "design/logo-trojkam-hover.png";

  for(i = 0; i <= image_url.length; i++)
    preload_image_object.src = image_url[i];
}

/**
 * Rozbalení uzlu menu, funkce případně skryje jiné rozbalené uzly
 * @param id Identifikátor rozbalovaného uzlu
 * @param level Úroveň rozbalovaného uzlu
 */
function showMenu(id, level)
{
  // Případné zrušení časovače
  if(menuTimeout)
    clearTimeout(menuTimeout);

  // Skrytí prvků jiné větve stromu
  element = document.getElementById(id);
  while(menuArray.length >= level) {
    hide = document.getElementById(menuArray.pop());
    if(hide && hide != element) {
      hide.className = "off";
    }
  }

  // Rozbalení požadováného uzlu
  if(element) {
    menuArray.push(id);
    element.className = "on";
  }
}

/**
 * Zpožděné skrytí všech rozbalených uzlů menu
 */
function hideMenu()
{
  // Případné zrušení časovače
  if(menuTimeout)
    clearTimeout(menuTimeout);

  // Nastavení časovače (skryj rozbalené uzly až po vteřině)
  menuTimeout = setTimeout("showMenu(0, 1)", 600);
}

/**
 * Nastavení zpožděného skrytí rozbaleného uzlu
 * @param id Id uzlu
 * @param time Čas zpoždění v milisekundách
 */
function startHidingMessage(id, time) {
  // Případné zrušení časovače
  if(messageTimeout)
    clearTimeout(messageTimeout);
  // Nastavení časovače, který skryje systémovou zprávu
  messageTimeout = setTimeout("hideMessage('" + id + "')", time);
}

/**
 * Skrytí rozbaleného uzlu
 * @param id Id uzlu
 */
function hideMessage(id) {
  // Případné zrušení časovače
  if(messageTimeout)
    clearTimeout(messageTimeout);
  // Nalezení požadovaného prvku
  if(element = document.getElementById(id)) {
    element.style.visibility = "hidden";
  }
}


/**
 * Změna názvu třídy
 * @param id Id uzlu
 * @param name Nový název třídy
 */
function changeClass(id, name)
{
  element = document.getElementById(id);
  element.className = name;
}

function changeClassStyle(name, property, value) {
  if(document.styleSheets[0].cssRules) {
    rules = document.styleSheets[0].cssRules;
    for(var i = 0; rule = rules[i]; i++)
      if(rule.selectorText.toLowerCase() == name)
        rule.style.setProperty(property, value, null);
  }
  else {
    rules = document.styleSheets[0].rules;
    for(var i = 0; rule = rules[i]; i++)
      if(rule.selectorText.toLowerCase() == name)
        rule.style[property] = value;
  }
}

/**
 * Nalezení absolutních souřadnic prvku na stránce podle id prvku
 * @param id Id prvku
 * @return Souřadnice prvku [x, y]
 */
function findElementPosById(id) {
  obj = document.getElementById(id);
  return obj ? findElementPos(obj) : [0, 0];
}

/**
 * Nalezení absolutních souřadnic prvku na stránce
 * @param obj Prvek
 * @return Souřadnice prvku [x, y]
 */
function findElementPos(obj) {
  var curleft = 0;
  var curtop = 0;
  while (obj.offsetParent) {
    curleft += obj.offsetLeft;
    curtop += obj.offsetTop;
    obj = obj.offsetParent;
  }
  return [curleft, curtop];
}

/**
 * Změna aktuálního jazyka
 * @param Nový dvoupísmenný kód jazyka
 * @param Seznam ostatních dvoupísmenných kódů (čárka jako oddělovač)
 */
function lang(focus, hide) {
  changeClass("flag_" + focus, "big");
  changeClassStyle("div.multi ." + focus, "display", "block");
  changeClassStyle("span.multi ." + focus, "display", "inline");
  changeClassStyle(".multi li." + focus, "display", "list-item");
  languages = hide.split(",");
  for(var i = 0; i < languages.length; i++) {
    changeClass("flag_" + languages[i], "small");
    changeClassStyle("div.multi ." + languages[i], "display", "none");
    changeClassStyle("span.multi ." + languages[i], "display", "none");
    changeClassStyle(".multi li." + languages[i], "display", "none");
  }
}


window.onload = function() { startHidingMessage('message', 5000); }
