		function attachCollapsible(collapsible)
		{
			var div = $(collapsible);

			var heading = div.getElementsByTagName('h3')[0];
			var contents = div.getElementsByTagName('div')[0];

			// add an anchor at run time,
			// that way non-js users won't see anchor, but js users will
			// still be able to use their keyboard for it.
			heading.innerHTML = '<a href="#">' + heading.innerHTML + '</a>';
			heading.getElementsByTagName('a')[0].onclick = collapsibleOnClick(div, heading, contents);
		}

		/* function for generating event handler for anchor etc; returns function that returns bool */
		function collapsibleOnClick(div, heading, contents)
		{

			// initially closed
			div.addClass('closed');
			contents.style.display = 'none';

			var slide_effect;
			return function() {
				if (!$defined(slide_effect)) {
					contents.style.display = '';
					slide_effect = new Fx.Slide(contents);
					slide_effect.hide();
				}

				slide_effect.stop();

				// do we need to go up or down?
				if (div.hasClass('closed')) {
					slide_effect.slideIn();
					Element.removeClass(div,'closed');
				} else {
					slide_effect.slideOut();
					Element.addClass(div,'closed');
				}

				// event has been dealt with.
				return false;
			};
		}