in reply to html tree

Sam's module is pretty sharp :)

Here's the basic HTML+JS+CSS way to make them if your original structure is or can be UL / LI lists. Just in case you wanted to know HOW one worked.

<script> function toggle(obj) { obj.parentNode.className = (obj.parentNode.className=='li-open') ? + 'li-closed' : 'li-open'; return false; } </script> <style type="text/css"> ul.dtree ul { display: block; } ul.dtree ul { display: none; } </style> <ul class=dtree> <li class=li-closed> <div class="leaf" onClick="toggle(this)">Item</div> <ul> <li>Item 2</li> <li>Item 3</li> </ul> </li> </ul>
The kinda nice thing about this technique is you can go back to vanilla UL/LI lists just by removing those CSS classes.

BTW, I make my ul/li lists in perl and HTML::Template so nyaaah! ;)