/* 
Cross-Browser-Bibliothek:
Definition von Variablen für die Ansprache der Ebenen, um den unterschiedlichen Objekt Modellen der Browser Rechnung zu tragen und den Sourcecode der Funktion show() zu verkleinern.
*/

// IE 5.x und Netscape 6.x/7.x
if(document.getElementById)
{
dom="document.getElementById(";
format=").style";
}
// IE 4.x
else if(document.all)
{
dom="document.all";
format=".style";
}
// Netscape 4.x
else if(document.layers)
{
dom="document";
format="";
}

// Array mit den ID-Bezeichnungen der Untermenüs - im vorliegenden Beispiel sind es 6 Untermenüs (vgl. die Namensvergabe in der Daei dropdownmenu.htm: ...<div id="um1" class="untermenu"...). Gegebenenfalls müssen hier weitere Array-Elemente hinzugefügt werden.
var untermenu = new Array("um1","um2","um3","um4","um5","um6","um7","um8","um9","um10","um11","um12","um13","um14","um15","um16","um17");

// mit der Variablen delay kann die Verzögerungszeit eingestellt werden, nach der aufgeklappte Menüs wieder einklappen (unsichtbar werden), sobald der Mauszeiger sich nicht mehr auf dem Menüpunkt befindet. Die Zeitangabe erfolgt in Millisekunden.
var delay=500;

/*
Die Funktion show() regelt das Ein-und Ausklappen der Untermenüs.
Beim Aufruf der Funktion über den Eventhandler onmouseover wird als Parameter die id-Bezeichnung der aktiven Ebene, d.h. des aufgeklappten Untermenüs übergeben). Die Funktion clearout() deaktiviert das Timeout, um zu verhindern, daß das Untermenü nach einer kurzen Verzögerungszeit wieder eingeklappt wird - die Funktion cover() dient quasi als Reset, um alle möglichen geöffneten Menüs bei der Auswahl eines neuen Menüpunktes zu schließen. Die for-Schleife der cover()-Funktion wiederholt die Anweisung entsprechend der Anzahl der Untermenü-Ebenen (die Zählung in JavaScript beginnt mit der 0 !).
*/
function show(ebene)
{
clearout();
cover();
eval(dom+'["'+ebene+'"]'+format+'.visibility="visible"');
}

function cover()
{
for(i=0;i<=16;i++)
{
eval(dom+'["'+untermenu[i]+'"]'+format+'.visibility="hidden"');
}}

// Die Funktion out() wird mit dem Eventhandler onmouseout ausgelöst, sobald der Mauszeiger von einem Auswahlpunkt weggezogen wird (delay s.o.) und aktiviert zeitverzögert die cover()-Funktion. Clearout() schließlich deaktiviert den Timer wieder.
function out()
{
timer = setTimeout("cover()",delay);
}

function clearout()
{
if(window.timer)
{
clearTimeout(timer)
}
}

