Click to format the list and add behaviors

document.observe('dom:loaded',function(){ $('main').addClassName('finder'); $$('#main li > ul').invoke('hide'); $$('#main li').invoke('addClassName','clickable'); $('main').observe('click',function(evt){ var elm = Event.element(evt); if(elm.hasClassName('clickable')){ var next = elm.down('ul'); Event.stop(evt); elm.addClassName('selected'); if(next){ next.show(); $('message').update(''); }else{ $('message').update('<h1>' + elm.innerHTML + '</h1>'); } elm.siblings().each(function(elm){ elm.removeClassName('selected'); elm.select('ul').invoke('hide'); }); elm.descendants().invoke('removeClassName','selected'); } }); });