var CollapseText = new Class({
	initialize: function(sections) {
		$$(sections).each(function(el) {
			this.addToggler(el);
			this.saveFullText(el);
			this.saveShortText(el);
			this.collapse(el);
		}, this);
	},
	collapse: function(el) {
		el.set('html', el.retrieve('short-text'));
		el.store('isCollapsed', true);
		el.retrieve('toggler').set('html', 'show more');
	},
	expand: function(el) {
		el.set('html', el.retrieve('full-text'));
		el.store('isCollapsed', false);
		el.retrieve('toggler').set('html', 'show less');
	},
	toggle: function(el) {
		if (el.retrieve('isCollapsed')) this.expand(el);
		else this.collapse(el);
	},
	addToggler: function(el) {
		var p = new Element('p', {'class':'toggler'});
		var a = new Element('a', {'href': '#'});
		el.store('toggler', a);
		a.addEvent('click', function(event) {
			event.stop();
			this.toggle(el);
		}.bind(this));
		a.inject(p);
		p.inject(el, 'after');
	},
	saveFullText: function(el) {
		el.store('full-text', el.get('html'));
	},
	saveShortText: function(el) {
		el.store('short-text', el.get('html').substring(0, 300) + '...');
	}
});
