// Script to show/hide elements on the Interactive Lists page // // Created: 20040806 // Author: Dominic Holmes var lastParent; var lastNodes = new Array; function expand(node) { var newNodes = new Array; if (getNextSubItem(node)) { currentParent = node; if (currentParent == lastParent && currentParent.getAttribute('selected') == 'true') { while (node = getNextSubItem(node)) { node.style.display = 'none'; } lastNodes = null; currentParent.setAttribute('selected', 'false'); currentParent.id = ''; } else { while (node = getNextSubItem(node)) { node.style.display = 'block'; newNodes.push (node); } currentParent.setAttribute('selected', 'true'); currentParent.id = 'selected'; } if (currentParent != lastParent) { if (lastNodes.length > 0) { for (var i in lastNodes) { lastNodes[i].style.display = 'none'; } lastParent.setAttribute('selected', 'false'); lastParent.id = ''; } } lastParent = currentParent; lastNodes = newNodes; } return false; } // Returns next sibling pf current node if it is a submenu item function getNextSubItem(node) { if (newNode = node.nextSibling) { if (newNode.nodeType == '3') { // IE returns nextSibling immediately, Moz and Opera need to be repeated if (newNode.nextSibling) { newNode = newNode.nextSibling; } else { return false; } } if (newNode.id.substring(5, 6) == '2') { return newNode; } } return false; }