// Copyright by Massive Art, 2003 firstcall = true; firstCatch = true; lastNode = null; allowToggle = true; clickHistory = new Array(); function openAllBranches () { allDivs = document.getElementsByTagName("DIV"); allMyDivs = new Array(); for (i = 0; i < allDivs.length; i++) { if (allDivs[i].className == "navigationClosed" || allDivs[i].className == "navigationActive") { allDivs[i].style.display="block"; } } } function closeUnusedNodes (aktiveNode) { if (aktiveNode.id != "navigationRoot") { fatherNode = aktiveNode.parentNode; for (i = 0; i < fatherNode.childNodes.length; i++) { if (fatherNode.childNodes[i] != aktiveNode) { closeBranch(fatherNode.childNodes[i]); } } } } function closeUnusedNodesRecursive (aktiveNode) { if (aktiveNode.id != "navigationRoot") { fatherNode = aktiveNode.parentNode; for (i = 0; i < fatherNode.childNodes.length; i++) { closeBranch(fatherNode.childNodes[i]); } closeUnusedNodesRecursive(fatherNode); } } function openBranch (aktiveNode) { fatherNode = aktiveNode.parentNode; if (fatherNode) { openBranch(fatherNode); } openNode (aktiveNode); } //function openNode () //oeffnet ein node function openNode (aktiveNode) { if(aktiveNode.hasChildNodes()) { for ( i = 0; i < aktiveNode.childNodes.length; i++ ) { if (aktiveNode.childNodes[i].nodeName == "DIV") { aktiveNode.childNodes[i].style.display = "block"; n = i + 1; if (i > 0 && aktiveNode.id == "navigationRoot" || aktiveNode.parentNode.id == "navigationRoot" && aktiveNode.childNodes[i].id != "navigationRoot"){ aktiveNode.childNodes[i].style.borderTop = "solid #CCCCCC 1px"; } } } }//if activeNode.hasChildNodes //document.getElementById("navigationRoot").style.borderBottom = "solid #CCCCCC 1px"; } function closeBranch (newaktiveNode) { if (newaktiveNode.hasChildNodes()) { ubound = newaktiveNode.childNodes.length; for (counter = 0; counter < ubound; counter++) { if (newaktiveNode.childNodes[counter].nodeName == "DIV") { newaktiveNode.childNodes[counter].style.display = "none"; } } } } function workHistory(myObject) { if(clickHistory[clickHistory.length-1] == myObject) { //selber link geklickt... if (myObject.hasChildNodes && myObject.childNodes.length > 2) { closeR(myObject); clearActivesN(myObject); openBranch(myObject.parentNode); markAktive(myObject.parentNode); clickHistory.length--; } } else { for (i = clickHistory.length -1; i >= 0; i--) { if (clickHistory[i]) { closeR(clickHistory[i]); clearActivesN(clickHistory[i]); clickHistory.length--; } } clickHistory[clickHistory.length] = myObject; openBranch(myObject); markAktive(myObject); } } function toggleNode (aktiveNode) { // fuehre das nodeToggeling nur aus wenn du das "erste" object if (firstCatch && allowToggle) { workHistory(aktiveNode); lastActiveObject = aktiveNode; firstCatch = false; }//if firstCatch } function clearActivesN (aktiveNode) { if (aktiveNode.id != "navigationRoot" && aktiveNode.nodeName=="DIV") { if (aktiveNode.hasChildNodes()) { for(i = 0; i < aktiveNode.childNodes.length; i++) { if (aktiveNode.childNodes[i].className) { aktiveNode.childNodes[i].className = "navigationClosed"; } if (aktiveNode.childNodes[i].nodeName == "IMG") { if (aktiveNode.childNodes[i].src.indexOf("pfeil") > 0) { aktiveNode.childNodes[i].src = "images/main/pfeil_rechts.gif"; } else { aktiveNode.childNodes[i].src = "images/main/rechteck_rot.gif"; } } } } if (aktiveNode.parentNode) { clearActivesN (aktiveNode.parentNode); } aktiveNode.className="navigationClosed"; } } function closeR (myNode) { while(myNode) { closeBranch(myNode); myNode = myNode.parentNode; } } function markAktive (aktiveNode) { if (aktiveNode.id != "navigationRoot") { if (aktiveNode.hasChildNodes() && aktiveNode.nodeName=="DIV") { for(i = 0; i < aktiveNode.childNodes.length; i++) { if (aktiveNode.childNodes[i].className) { aktiveNode.childNodes[i].className = "navigationActive"; } if (aktiveNode.childNodes[i].nodeName == "IMG") { if (aktiveNode.childNodes[i].src.indexOf("pfeil") > 0) { aktiveNode.childNodes[i].src = "images/main/pfeil_unten.gif"; } else { aktiveNode.childNodes[i].src = "images/main/rechteck_rot.gif"; } } } } if (aktiveNode.parentNode) { markAktive (aktiveNode.parentNode); } aktiveNode.className="navigationActive"; } } function openBranchById(nodeId) { aktiveNode = document.getElementById(nodeId); if (aktiveNode) { // loesche die alte klickhistory for (i = 0; i < clickHistory.length; i++) { closeR(clickHistory[i]); clearActivesN(clickHistory[i]); clickHistory.length--; } openBranch(aktiveNode); markAktive(aktiveNode); window.scrollTo(0,aktiveNode.offsetTop); // erstelle eine neue, als ob zu diesem navigationspunkt geklickt wurde tempHistArray = new Array(); tempNode = aktiveNode; while (tempNode && tempNode.id != "navigationRoot") { tempHistArray[tempHistArray.length] = tempNode; tempNode = tempNode.parentNode; } for (i = 0; i < tempHistArray.length; i++) { clickHistory[i] = tempHistArray[tempHistArray.length-(i+1)]; } } } var lastActiveObject = null;