var Expandable = Class.create({
	elem: null,

	initialize: function(elem)
	{
		this.elem = $(elem);
		if(this.elem)
		{
			this.elem.down('ul').hide();

			var h3Elem = this.elem.down('h3');
			Element.addClassName(h3Elem, 'scripted');

			var plusMinus = h3Elem.down('img');
			plusMinus.src = plusMinus.src.replace(/\-minus/, '-plus');

			Event.observe(h3Elem.down('span'), 'click', this.titleClicked.bindAsEventListener(this));
			Event.observe(plusMinus, 'click', this.titleClicked.bindAsEventListener(this));
		}
	},

	titleClicked: function(evt)
	{
		Event.stop(evt);
		var ulElem = this.elem.down('ul');
		var plusMinus = this.elem.down('h3').down('img');

		if(ulElem.visible())
		{
			Effect.BlindUp(ulElem, {duration: 0.5});
			Effect.Fade(ulElem, {duration: 0.5});
			plusMinus.src = plusMinus.src.replace(/\-minus/, '-plus');
		}
		else
		{
			Effect.BlindDown(ulElem, {duration: 0.5});
			Effect.Appear(ulElem, {duration: 0.5});
			plusMinus.src = plusMinus.src.replace(/\-plus/, '-minus');
		}
	}
});

$$('.expandable').each(function(s) { new Expandable(s); });
