//------------------------------------------------------------------------------
// Promenne (pole), ktere se prebiraji ze Smarty (pripadne z PHP)
/*
var popup1offsettop=32;  // posun 1. urovne popup menu pod vertikalne hlavnim vodorovnym menu
var popup1offsetleft=5;  // posun 1. urovne popup menu ve vodorovnem smeru pod hlavnim vodorovnym menu
var popupoffsettop=-1; // posun ostatnich urovni popup menu vertikalne
var popupoffsetleft=-2; //posun ostatnich urovni popup menu ve vodorovnem smeru

var menu=new Array(); // pole prirazujici dane polozce (radku) v menu (item - budto <li> nebo <a>) id cislo menu (<ul>) do ktereho nalezi; 0 odpovida hlavnimu vodorovnemu menu
menu[1]=0;
menu[2]=0;
menu[3]=1;
menu[4]=1;
menu[5]=2;
menu[6]=2;
menu[7]=2;
menu[8]=1;
menu[9]=3;
menu[10]=3;
menu[11]=3;
menu[12]=1;
menu[13]=0;
menu[14]=0;
menu[15]=0;
menu[16]=4;
menu[17]=4;
menu[18]=5;
menu[19]=5;

var menuto=new Array(); // pole prirazujici dane polozce (radku) v menu (item - budto <li> nebo <a>) id cislo podrizeneho menu (<ul>), ktere se po najeti na polozku otevre
menuto[1]=0;
menuto[2]=1;
menuto[3]=0;
menuto[4]=2;
menuto[5]=0;
menuto[6]=0;
menuto[7]=0;
menuto[8]=3;
menuto[9]=0;
menuto[10]=0;
menuto[11]=0;
menuto[12]=0;
menuto[13]=4;
menuto[14]=0;
menuto[15]=0;
menuto[16]=0;
menuto[17]=5;
menuto[18]=0;
menuto[19]=0;
*/

//------------------------------------------------------------------------------
// Deklarace promennych
var menuup=new Array(); // pole prirazujici danemu menu (<ul>) id cislo nadrazeneho menu (<ul>)
var menumain=new Array(); // pole polozek hlavniho (horizontalniho) menu - neskryva se
var casovac;


//------------------------------------------------------------------------------
// Funkce

function MenuStart()
{
  var podrizene;
  var nadrazene;
  var aktualni;
  var x;
  var y;
  var itemid;
  var menuid; 
  var menuupid;   
  var element=new Object();
  var elementmenu=new Object();
  var elementmenuup=new Object();
  var elementitem=new Object();
  
  //----------------------------------------------------------------------------
  // Vytvoreni pole prirazujici kazdemu menu id nadrazeneho menu

  for(id in menuto) // id je cislo polozky menu (radku - item - <li> nebo <a>), menuto[id] je cislo menu, na ktere polozka ukazuje
  {
    if(menuto[id] != 0) // polozka ukazuje na podrizene menu
    {
      podrizene=menuto[id];
      aktualni=menu[id];
      menuup[podrizene]=aktualni;
    }
  }

  //----------------------------------------------------------------------------
  // Vytvoreni dvou poli se souradnicemi x a y (top a left) popup menu

  for(id in menuto) // id je cislo polozky menu (radku - item - <li> nebo <a>), menuto[id] je cislo menu, na ktere polozka ukazuje
  {
    podrizene=menuto[id]; // id podrizeneho menu - jeho souradnice hledam
    if(podrizene != 0)  // podrizene existuje
    {
      itemid='item'+id; // id prislusne polozky menu v HTML
      elementitem=document.getElementById(itemid);
      menuupid='menu'+menu[id]; // id menu, v kterem lezi dana polozka v HTML
      elementmenuup=document.getElementById(menuupid);
      
      if(menu[id] == 0)  // popup menu 1 urovne (hned za hlavnim horizontalnim menu) - pozice se odvozuje od hlavniho menu
      {
        x=elementitem.offsetLeft+popup1offsetleft;
        y=popup1offsettop;
      }
      else  // popup menu 2. nebo dalsich urovni - pozice se odvozuje od nadrazeneho popup menu
      {
        x=elementmenuup.offsetWidth+popupoffsetleft;
        y=elementitem.offsetTop+popupoffsettop;      
      }

      menuid='menu'+podrizene;  // id podrizeneho menu v HTML

      elementmenu=document.getElementById(menuid);
      elementmenu.style.left=x+'px';
      elementmenu.style.top=y+'px';      
    }
  }

  //----------------------------------------------------------------------------
  // Prirazeni akci pro otevreni menu jednotlivym polozkam menu - OpenMenu()

  for(id in menuto) // id je cislo polozky menu (radku - item - <li> nebo <a>), menuto[id] je cislo menu, na ktere polozka ukazuje
  {
    podrizene=menuto[id]; // id podrizeneho menu
    aktualni=menu[id];  // id aktualniho menu
    nadrazene=menuup[id]; // id nadrazeneho menu
    
    itemid='item'+id; // id dane polozky menu pro HTML

    elementitem=document.getElementById(itemid);
    
    if(podrizene == 0) // polozka nikam neukazuje
    {
      if(aktualni != 0)  // nejedna se o polozku hlavniho vertikalniho menu
      {
        elementitem.onmouseover=new Function('OpenMenu('+aktualni+');');
      }
    }
    else  // polozka ukazuje na menu
    {
      elementitem.onmouseover=new Function('OpenMenu('+podrizene+');');
    }
  }

  //----------------------------------------------------------------------------
  // Prirazeni akci pro zavreni menu pri opusteni jakehokoli menu - CloseMenu()

  menuid='menu0'; // id daneho menu pro HTML - hlavni menu
  elementmenu=document.getElementById(menuid);
  elementmenu.onmouseout=new Function('CloseMenu();');
    
  for(id in menuup) // id je cislo menu, menuup[id] je cislo nadrazeneho menu
  {
    menuid='menu'+id; // id daneho menu pro HTML
  elementmenu=document.getElementById(menuid);
  elementmenu.onmouseout=new Function('CloseMenu();');
  }
}

function OpenMenu(id)  // zobrazi vybrane vyskakovaci menu a vsechny nadrazene
{
  window.clearTimeout(casovac);

  var open=new Array(); // pole otevrenych menu (aktivni + nadrazene)
  open=FindOpenMenu(id);

  for(mid in menuup)  // otevre vsechny menu, ktere maji byt otevrene, ostatni zavre 
  {
    if(open[mid]==1) ShowMenu(mid);
    if(open[mid]==0) HideMenu(mid);
  } 
}

function ShowMenu(id)  // zobrazi vybrane vyskakovaci menu
{
  if(id != 0)
  {
    var menuid='menu' + id;
    document.getElementById(menuid).style.visibility ='visible';
  }
}

function FindOpenMenu(id)  // nalezeni otevrenych menu (aktivni + nadrazene), je ulozeno do pole
{
  var open=new Array(); // nalezeni otevrenych menu (aktivni + nadrazene), je ulozeno do pole
  var oid;  // pomocna promenna - postupne id jednotlivych zobrazenych polozek 

  for(mid in menuup)  // nastavi oznaceni vsech polozek menu do stavu zavreno
  {
    open[mid]=0;
  }

  if(id != 0)
  {
    open[id]=1; // aktivni polozka menu
    oid=menuup[id];  // id prvni nadrazene polozky menu
    if(oid != 0)  // pokud to uz neni hlavni vodorovne menu
    {
      open[oid]=1; // prvni nadrazena polozka menu    

      oid=menuup[oid];  // id druhe nadrazene polozky menu
      if(oid != 0)  // pokud to uz neni hlavni vodorovne menu
      {
        open[oid]=1; // druha nadrazena polozka menu    

        oid=menuup[oid];  // id treti nadrazene polozky menu
        if(oid != 0)  // pokud to uz neni hlavni vodorovne menu
        {
          open[oid]=1; // treti nadrazena polozka menu 

          oid=menuup[oid];  // id ctvrte nadrazene polozky menu 
          if(oid != 0)  // pokud to uz neni hlavni vodorovne menu
          {
            open[oid]=1; // ctvrta nadrazena polozka menu  
          }           
        }
      }
    }
  }
  return open;
}

function CloseMenu()
{
  window.clearTimeout(casovac);
  casovac=window.setTimeout("HideMenuAll()", 500);    // Start odpocitavani 
}

function HideMenu(id)
{
  if(id != 0)
  {
    menuid='menu' + id;
    document.getElementById(menuid).style.visibility ='hidden';
  }
}

function HideMenuAll()
{
  for(mid in menuup)  // zavre vsechny menu
  {
    HideMenu(mid);
  }
}

function Write(pole)  // Vypise pole do Alert
{
  var vystup='';
  for(id in pole)
  {
    vystup=vystup+id+'=> '+pole[id]+'\n';
  }
  alert(vystup);
}

