//Menüaufruf durch jsMenu(ID des eine HTML-Liste umschließenden Elements)
function jsMenu(divId) {
//Array mit den Bildpfaden angeben
var bilder = new Array();
bilder['blind'] = 'images/space.gif';
bilder['ordner'] = 'images/closed.gif';
bilder['text'] = 'images/file.gif';
//Menüaufruf für onClick-Ereignis
ocEreignis = "jsOnOff(this.parentNode,'"+divId+"');";
//Menü umfassenden DIV-Container holen
var menuContainer = document.getElementById(divId);
//Alle LI-Tags im DIV-Container holen
var liElemente = menuContainer.getElementsByTagName('li');
//Bildknoten erstellen
var bildKnoten = new Array();
bildKnoten['standard'] = document.createElement('img');
//Ordnerknoten erstellen
bildKnoten['ordner'] = bildKnoten['standard'].cloneNode(true);
bildKnoten['ordner'].setAttribute('src',bilder['ordner']);
//Browserweiche wegen schlechter Unterstützung von setAttribute onClick
//seitens des IE
if( navigator.appName == "Netscape" ) {
bildKnoten['ordner'].setAttribute('onclick',ocEreignis);
}
else {
bildKnoten['ordner'].onclick = new Function(ocEreignis);
alert(bildKnoten['ordner'].getAttribute('onclick'));
}
bildKnoten['blind'] = bildKnoten['standard'].cloneNode(true);
bildKnoten['blind'].setAttribute('src',bilder['blind']);
bildKnoten['text'] = bildKnoten['standard'].cloneNode(true);
bildKnoten['text'].setAttribute('src',bilder['text']);
//Jedes LI-Tag bearbeiten
for( i=0 ; i<liElemente.length ; i++ ){
var bIndex = (liElemente[i].getElementsByTagName('li').length > 0)? 'ordner' : 'text' ;
var dimension = jsDimension(menuContainer,liElemente[i]);
bild = bildKnoten[bIndex].cloneNode(true);
liElemente[i].insertBefore(bild,liElemente[i].childNodes[0]);
for( x=1 ; x<= dimension ; x++ ){
liElemente[i].insertBefore(bildKnoten['blind'].cloneNode(true),liElemente[i].childNodes[0]);
}
if( dimension > 1 ) {
liElemente[i].style.display = 'none';
}
}
}
//Ebene eines Memnüelements herausfinden
function jsDimension(div,objekt){
dimension = -1;
pNode = objekt.parentNode;
while( pNode != div ){
if( pNode.tagName == 'UL' )
{ dimension++; }
pNode = pNode.parentNode;
}
return dimension;
}
function jsOnOff(liElement,divId){
alert('jsOnOff wird aufgerufen.');
liElemente = liElement.getElementsByTagName('li');
offen = ( liElemente[0].style.display == "block" )? true : false;
//Untermenüs sind offen, werden geschlossen
if( offen ) {
for( i=0 ; i<liElemente.length ; i++ ){
liElemente[i].style.display = 'none' ;
}
}
//Untermenüs sind geschlossen, werden geöffnet
else {
menuContainer = document.getElementById(divId);
parentDimension = jsDimension(menuContainer,liElement);
for( i=0 ; i<liElemente.length ; i++ ){
dimension = jsDimension(menuContainer,liElemente[i]);
liElemente[i].style.display = (dimension > parentDimension+1 )? 'none' : 'block' ;
}
}
}