/**
 *	Collapsible repeats
 *	@author stk 2009/05/15
 *	@dependencies mootools 1.2.2 core, mootools 1.2.2.1 fx.scroll
 */

cregions = {
	// Extra padding added to content bottom when opened
	content_extra_height: 5
};

cregions.init = function() {
	var els = $$('div.repeat');
	els.each(function(el, index) {
		el.set('id', 'r-' + index);
		var rt = el.getElement('div.repeat-title');
		var rc = el.getElement('div.repeat-content');
		rc.setStyles({
			height: 0,
			overflow: 'hidden'
		});
		if(rc.getElement('p')) {
			// Only add the more button if this region contains content
			var mlink = new Element('a', {
				'href': '#r' + index,
				'id': 'r-' + index + '-more',
				'html': 'Read more &raquo;',
				'class': 'more',
				'events': {
					click: function() {
						cregions.toggle(this);
						return false;
					}
				}
			}).inject(el);
		}
	});
};

cregions.toggle = function(el) {
	var r = el.getParent();
	var rc = r.getElement('div.repeat-content');
	if(!r.hasClass('open')) {
		new Fx.Scroll(window).toElement(r);
		r.addClass('open');
		r.getElement('a.more').set('html', 'Close');
		var h = rc.getElement('div.repeat-content-inner').getSize().y + cregions.content_extra_height;
		rc.tween('height', h);
	}
	else {
		r.removeClass('open');
		r.getElement('a.more').set('html', 'Read more &raquo;');
		rc.tween('height', 0);
	}
};

window.addEvent('domready', function() {
	cregions.init();
});