// a kis menüképek előre betöltése
preload = new Array();
if (document.images) {
    for (var i = 0; i < kepek.length; i++)
    {
        preload[i] = new Image();
        preload[i].src= kepek[i];
    }
}
// a toggle tömb ugyanakkora, mint a menu, csupa nulla
var toggle= new Array();
for (i = 0; i < menu.length + 1; i++)
     toggle[i] = 0;

// a teljes toggle tömböt stringé alakítja
function menuGetToggle()
{
        var t = "";
        for (k = 0; k < toggle.length; k++)
                t += toggle[k];
        return t;
}

// a num szüleinek toggle bitjeit állítja csak be
function menuGetParentsToggle(num)
{
        var t = "";
        for (k = toggle.length; k > num; k--)
                t = "0"+t;
        var level = szint[num];
        for (k = num; k > 0; k--)
        {
                if (szint[k - 1] == level - 1) {
                        t = "1" + t;
                        level--;
                }
                else
                        t = "0" + t;
        }
        return t;
}

// segéd esemémykezelők
function menuOver2()
{ menuOver(parseInt(this.id.substring(4,100))); }
function menuOut2()
{ menuOut(parseInt(this.id.substring(4,100)));}
function menuClick2()// üres linket nem kell követni
{ menuClick(parseInt(this.id.substring(4,100))); if (linkek[parseInt(this.id.substring(4,100))] == ''){return false;} }

// rendes eseménykezelők
function menuOver(num)
{
/*        if (szint == -1) return false;
            var o = document.getElementById("menu"+num);
            if (o != null)
                o.className = "level"+szint[num]+"Open";
*/
}
function menuOut(num)
{
/*
        var o = document.getElementById("menu"+num);
        if (o != null)
                o.className = "level"+szint[num];
*/
}

function menuClick(num)
{
        // megkeressük a menu divjét
        var menuDiv = document.getElementById("menu");
        var line1 = document.getElementById("menu"+num);
        var line2 = line1.nextSibling;

        if (toggle[num] == 0)
        {
                //
                // ha ki kell nyitni menüt
                //
                toggle[num] = 1;
                var index = 1 + num;

                while (szint[index] > szint[num])
                {
                        //
                        // végigmegyünk a potenciális gyerek csomópontokon
                        //
                        if  (szint[index]  == szint[num] + 1)
                        {
                                // csinálunk neki divet
                                var div = document.createElement("div");
                                div.id = "menu" + index;
                                div.onmouseover = menuOver2;
                                div.onmouseout = menuOut2;
                                div.onclick = menuClick2;
                                div.className= "level" + szint[index];

                                // belekerül a képecske
                                var image1 = document.createElement("img");
                                image1.align = "absmiddle";
                                image1.src = kepek[szint[index] * 2 + (szint[index+1] > szint[index] ? 1 : 0)];
                                div.appendChild(image1);
                                div.appendChild(document.createTextNode(" "));

                                // utána a link, ami lehet, hogy sehova sem mutat, akkor a menuClick2 return false miatt nem megy sehova
                                var link = document.createElement("a");

                                link.href = "javascript:menuGetLink("+index+");";

                                link.className = "level" + szint[index];
                                link.appendChild(document.createTextNode(menu[index]));
                                div.appendChild( link );

                                // beillesztjük a dokumentumba a menüpontot
                                menuDiv.insertBefore(div, line2);
                        }
                        index += 1;
                }
        }
        else
        {
                // ha be kell csukni menüt
                toggle[num] = 0;
                var index = num + 1;
                while (szint[index] > szint[num])
                {
                        //
                        // az összes gyerekcsomópontot is be kell csukni, és kitörölni
                        //
                        toggle[index] = 0;
                        var elem = document.getElementById("menu"+index)
                        if (elem != null)
                                menuDiv.removeChild(elem);
                        index++;
                }
        }
        setCookie("menuState", menuGetToggle());
}

// megnyitja a linket úgy, hogy a menü infóit is mellékeli a menu paraméterben. Ezt később a menuInit dekódolni tudja
function menuGetLink(num)
{
        // az adott link új ablakban nyílik meg, ha ! az első karaktere, egyébként ugyanott
        if (linkek[num]){
            if (linkek[num].substring(0, 1) !== '!')
                window.location.href = linkek[num];//+"?menu="+menuGetToggle();
            else
                open(linkek[num].substring(1));
        }
}

// kirajzolja a menüt, ha a tglOpen paraméter NULL, akkor sütiből is vezérelhető
function menuInit(all, tglOpen)
{
        var toggleOpen = "";

        for (i=0; i < menu.length; i++) {
            if (szint[i] == 0 || (all === true && szint[i] >= 0)) {
                        if (linkek[i] !== '')
                                document.write('<div  id="menu'+i+'" class="level'+szint[i]+'" ondblclick="return false;" onClick="menuClick('+i+');" onmouseover="menuOver('+i+');"onmouseout="menuOut('+i+');"><img src="'+kepek[szint[i] * 2 + (szint[i+1] > szint[i] ? 1 : 0)]+'" align="absmiddle">&nbsp;<a class="level'+szint[i]+'" href="javascript:menuGetLink('+i+');">'+menu[i]+'</a></div>');
                        else
                                document.write('<div  id="menu'+i+'" class="level'+szint[i]+'" ondblclick="return false;" onClick="menuClick('+i+');return false;" onmouseover="menuOver('+i+');"onmouseout="menuOut('+i+');"><img src="'+kepek[szint[i] * 2 + (szint[i+1] > szint[i] ? 1 : 0)]+'" align="absmiddle">&nbsp;<a class="level'+szint[i]+'" href="javascript:menuGetLink('+i+');">'+menu[i]+'</a></div>');
                        if ((szint[i+1] == szint[i] + 1) && all === true)
                                toggle[i] = 1;
            }
        }

        if (tglOpen)
            toggleOpen = tglOpen;
        else
            if (getCookie("menuState"))
                toggleOpen = getCookie("menuState");

        // az aktuálisan nyitott menü részek újrakinyitása, nem nyit ki semmit, ha a paraméter üres string,
        // vagy, ha a menü azonosítója nem egyezik.
        if (toggleOpen !== "" && menuID === getCookie("menuID")) {
                for (i = 0; i < toggle.length; i++)
                {
                        if (toggle[i] != toggleOpen.substring(i, i + 1))
                                menuClick(i);
                }
        }
        setCookie("menuID", menuID);
}
