var Text = Class.create(
{
	duration: .5,
	paragraph_prev: null,

	initialize : function()
	{
	},

	parse : function()
	{
		(this.container = $('textDefaultList')) && this.container.select('li b a').each(this.handler, this);
	},

	handler: function(element)
	{
		var paragraph = element.up().next();

		paragraph.height = paragraph.getHeight();
		paragraph.setStyle({ height: '0px' });

		element.observe('click', this.toggle.bind(this, paragraph));
	},

	toggle : function(paragraph)
	{
		this.paragraph_prev && this.morph(this.paragraph_prev, false);

		this.paragraph_prev = (this.paragraph_prev != paragraph && this.morph(paragraph, true) ? paragraph : null);
	},

	morph: function(paragraph, show)
	{
		show ? paragraph.previous().addClassName('selected') : paragraph.previous().removeClassName('selected');

		return new Effect.Morph(paragraph, { style: { height: (show ? paragraph.height : 0) + 'px' }, duration: this.duration, queue: 'end' });
	}
});

var Text = new Text ();

document.observe ('dom:loaded', function (event) { Text.parse (); });
