var Panel = {
	init: function () {
		$$(':not(.nopanel) .panel h1').each(function(element) {
			Panel.observe(elements);
		});
	},
	
	observe: function(e) {
		e.stopObserving();
		e.observe('click', Panel.handleClick);
	},
	
	specify: function(elements) {
		if (elements.each != null) {
			elements.each(function(e) {
				Panel.observe(e);
			});
		} else {
			Panel.observe(elements);
		}
	},
	
	handleClick: function(event) {
		var element = event.element();
		element = (element.tagName == 'A' ? element : element.up('a'));
		if (element.hasClassName('active')) {
			Panel.hide(element);
		} else {
			Panel.show(element);
		}
		
		return false;
	},
	
	hide: function(element) {
		if (element.hasClassName('active')) {
			element.removeClassName('active');
			
			var div = element.next('div');
			if (typeof div != 'undefined') {
				div.slideUp();
			}
		}
	},
	
	show: function(element) {
		if (!element.hasClassName('active')) {
			element.addClassName('active');
			
			var div = element.next('div');
			if (typeof div != 'undefined') {
				div.slideDown();
			}
		}
	}
};

window.document.observe('dom:loaded', function() {
	Panel.init();
});