admin_tree = { numdivs: null, hiddennodes: null, closedimg: null, openimg: null, closedalt: null, openalt: null, init: function(numdivs, expandnodes, openimg, closedimg, openalt, closedalt) { // Store the information we were passed in. admin_tree.openimg = openimg; admin_tree.closedimg = closedimg; admin_tree.openalt = openalt; admin_tree.closedalt = closedalt; admin_tree.numdivs = numdivs; // Initialise the hiddennodes array. admin_tree.hiddennodes = new Array(); for (var i = 1; i <= admin_tree.numdivs; i++) { admin_tree.hiddennodes[i] = null; } // Collapse everything while adding the event handlers. for (var i = admin_tree.numdivs; i > 0; i--) { admin_tree.collapse(i); var togglelink = document.getElementById("vh_div" + i + "indicator").parentNode; togglelink.href = '#'; YAHOO.util.Event.addListener(togglelink, 'click', admin_tree.toggle, i); } // Re-expand the bits we want expanded. for (var i = 0; i < expandnodes.length; i++) { admin_tree.expand(expandnodes[i]); } }, toggle: function(e, i) { if (admin_tree.hiddennodes[i] === null) { admin_tree.collapse(i); } else { admin_tree.expand(i); } YAHOO.util.Event.preventDefault(e); }, collapse: function(i) { if (admin_tree.hiddennodes[i] !== null) { return; } var obj = document.getElementById("vh_div" + i); if (obj === null) { return; } var nothing = document.createElement("span"); nothing.setAttribute("id", "vh_div" + i); admin_tree.hiddennodes[i] = obj; obj.parentNode.replaceChild(nothing, obj); var icon = document.getElementById("vh_div" + i + "indicator"); icon.src = admin_tree.closedimg; icon.alt = admin_tree.closedalt; }, expand: function(i) { if (admin_tree.hiddennodes[i] === null) { return; } var nothing = document.getElementById("vh_div" + i); var obj = admin_tree.hiddennodes[i]; admin_tree.hiddennodes[i] = null; nothing.parentNode.replaceChild(obj, nothing); var icon = document.getElementById("vh_div" + i + "indicator"); icon.src = admin_tree.openimg; icon.alt = admin_tree.openalt; } };