CP = new Class({
	Default: '',
	Exceptions: [],
	Theme: '',
	HashCookie: {},
	Items: {},
	
	initialize: function() {
		this.HashCookie = new MooHash.Cookie('CP_Settings', {duration: 3650});
	},
	
	Start: function() {
		Els = $$('div#Panel h2');
		Els.each(function(el) {
			Key = el.getText();
			if(this.Exceptions.contains(Key.toLowerCase())) return;
			el.setStyle('cursor', 'pointer');
			if(this.Theme == 'organic') {
				var div = new Element('div');
				var Parent = el.getParent();
				if(Parent.tagName == 'LI') {
					div.adopt(Parent.getElements('a'));
					div.injectInside(Parent);
				} else div = el.getNext();
			} else var div = el.getNext();
			this.Items[Key] = {
				el: el,
				effect: new Fx.Slide(div, {duration: 500}),
				state: (this.Default == 'Closed') ? false : true,
				key: Key
			};
			var Item = this.Items[Key];
			if(!Item.state) Item.effect.hide();
			Item.el.addEvent('click', function() {
				if(!this.state) {
					this.effect.slideIn();
					this.state = true;
				} else {
					this.effect.slideOut();
					this.state = false;
				}
				CollapsiblePanel.HashCookie.set(this.key, this.state);
			}.bind(Item));
		}.bind(this));
		
		this.HashCookie.each(function(val, key) {
			var Item = this.Items[key]
			if(!Item) return;
			if(!val) Item.effect.hide();
			else Item.effect.show();
			Item.state = val;
		}.bind(this));
	}
});

var CollapsiblePanel = new CP();

Window.addEvent('domready', function() {
	CollapsiblePanel.Start();
});
