Will McElwain's modified domCollapse script
This is a modified version of Chris Heilmann's excellent domCollapse script which collapses sections of a webpage. I added a few functions, mainly to enable the "expand/collapse all" functionality you see below. During initialization, I look for spans with class='excoll' and add onClick='changeAll' functions to them (search the code for 'var changealls'). The changeAll function expands or collapses all the elements with class='trigger' until it hits the next span with class='excoll'. The function checks the content of the 'excoll' span, and if it says '[expand all]', it expands all the divs and changes the content of that span to '[collapse all]' and vice versa. Those values are hard-coded in, so if you'd like it to say something else, then just do a search and replace in the code. I'm a total noob at javascript, so my code probably sucks. There's likely a simpler way to do what I'm trying to do, but this works for me, so I doubt I'll improve it much more. You can check out the modified javascript here, and an example of the new functionality is below.
[expand all]Section One
Heading One
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque nunc felis, rhoncus et, varius vitae, auctor eget, mauris. Etiam odio massa, blandit eget, gravida eget, venenatis eget, justo. Nulla id magna. Curabitur aliquam dolor a arcu. Vestibulum faucibus pellentesque dui. In a leo eu augue nonummy molestie. Proin lectus ante, bibendum vitae, iaculis semper, congue eu, eros. Vivamus sit amet sapien. Nullam posuere erat sit amet sapien. Sed congue, lacus placerat volutpat lacinia, velit metus commodo diam, non vehicula sapien metus sed mauris. In mattis enim at diam.
Heading Two
Nullam ornare ullamcorper velit. Vivamus ut ante tincidunt dui malesuada condimentum. Nullam eu urna a neque pulvinar tempor. Vestibulum dui. Maecenas nulla. In vel mauris. Sed ac orci vitae nisl pretium sollicitudin. Aenean ac pede eget eros posuere rutrum. Curabitur venenatis rhoncus erat. Proin aliquet, nisi in vulputate consectetuer, ipsum nisl fringilla ante, sit amet faucibus eros lectus at sem. Aenean pulvinar urna vel nibh. Quisque hendrerit. Fusce mauris. Vestibulum convallis, massa at tristique tempus, ligula dui ultricies nulla, et sagittis ipsum tellus ac augue. Morbi augue. Ut nonummy purus sit amet urna. This is an idea for an mp3 tagger I've had since early 2005. It combines some of the best features from other taggers, simplifies them, and adds automation. It is currently in the very early stages of development.
[expand all]Section Two
Heading One
Maecenas pharetra purus eget ipsum. Maecenas ipsum tellus, pretium quis, consequat in, ultricies ac, arcu. Donec magna. Nullam ut nunc in diam cursus dignissim. Donec tristique ipsum. Nam pulvinar enim quis ligula. Mauris ac erat in neque auctor faucibus. Mauris vitae dui posuere lectus gravida euismod. Vivamus facilisis sem id lorem. Fusce nisi orci, lobortis sit amet, placerat ut, viverra sit amet, libero. Nullam eu magna vitae felis semper sagittis. Aenean sit amet nisl. Quisque pulvinar porta magna. Maecenas viverra turpis eget quam. Proin elementum libero ut nisi. Nunc posuere arcu ut ligula. Vestibulum hendrerit nunc eget felis posuere tempor. Suspendisse egestas lorem posuere ligula. Nulla sodales, metus sit amet pharetra sollicitudin, erat nulla iaculis massa, eu tincidunt tortor augue sed turpis.
Heading Two
Morbi commodo leo eu velit. Nam laoreet condimentum felis. Donec accumsan. Vestibulum ultricies. Cras ipsum. Praesent ac leo ut eros eleifend interdum. Nunc orci sapien, rutrum et, malesuada at, mattis sed, arcu. Integer tempor accumsan felis. Morbi dolor. Sed bibendum, dui convallis congue viverra, felis orci interdum nulla, eget pretium dolor purus non mauris. Quisque ipsum. Maecenas magna. Pellentesque nibh velit, dapibus a, posuere feugiat, dictum vitae, tortor. Donec enim. Duis aliquet erat ac sapien. Aenean ac odio. Fusce fermentum. Quisque posuere justo dignissim quam. Phasellus libero. Ut dignissim.
Heading Three
Cras non nulla in diam dapibus pharetra. Mauris tellus nibh, feugiat ac, facilisis vel, eleifend sed, mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nunc lacus metus, porta bibendum, pharetra nec, consectetuer sed, pede. Etiam molestie purus. Ut ac nulla. Nullam lorem lectus, tincidunt quis, euismod in, condimentum vitae, nibh. Phasellus ornare massa non odio. Nullam diam. Aliquam sed erat. Mauris id felis. Vestibulum nulla erat, semper ac, tristique vel, facilisis tempor, diam. Aenean bibendum quam. Integer sodales. Donec nisl tortor, volutpat sit amet, interdum in, interdum id, urna. Etiam vitae ante. Praesent bibendum rhoncus metus. Cras ac nisi. Phasellus sit amet lacus. Proin diam metus, iaculis ac, luctus id, venenatis cursus, tellus.
Heading Four
Vivamus sit amet dolor. Sed nonummy dictum purus. Pellentesque blandit massa non nunc. Vestibulum viverra tellus sed sem. Sed ornare semper sapien. Donec mauris arcu, accumsan eget, dapibus at, vestibulum quis, risus. Praesent egestas, lorem non sagittis scelerisque, nibh libero suscipit augue, ut vestibulum metus erat nec enim. Donec sodales. Donec fringilla lacus in enim. Suspendisse lobortis eros at pede. Curabitur ut urna. Suspendisse tortor turpis, rutrum at, pharetra ac, auctor fermentum, eros. Pellentesque ultricies. Vestibulum nunc. Morbi elementum malesuada purus. Quisque nec dolor. Nunc vitae libero sagittis arcu mattis posuere.
Heading Five
Integer dictum purus quis orci. Aenean turpis. Cras malesuada urna. Integer facilisis nonummy nunc. Sed vitae justo. Mauris ultricies fringilla neque. Fusce cursus. Nulla neque. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque condimentum lacinia erat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam hendrerit. Vestibulum gravida sapien et sapien. Etiam eget magna at massa volutpat fringilla. Etiam feugiat dictum dui. Donec arcu. Mauris libero. Pellentesque facilisis, tortor imperdiet blandit porta, diam neque sodales arcu, et fermentum quam augue et tellus.
[expand all]Section Three
Heading One
Duis interdum sagittis pede. Maecenas vitae felis. Donec odio nunc, vulputate sed, gravida et, dignissim et, arcu. Morbi interdum, nunc ac aliquet suscipit, pede ante scelerisque ante, non varius massa velit feugiat lacus. Fusce luctus. Donec sit amet augue. Donec nibh mauris, ultrices sit amet, imperdiet non, sodales at, velit. Donec faucibus rutrum erat. Pellentesque malesuada. Cras lectus orci, hendrerit porta, laoreet at, sagittis id, tellus. Vivamus tristique feugiat tortor. Donec vel orci non sapien tempus consectetuer. Etiam luctus. Nam eu lorem. Aenean ornare tincidunt risus. Phasellus sit amet libero nec lacus tristique laoreet. Quisque non eros luctus velit pharetra dapibus.