Varien.Accordeon = Class.create();
Varien.Accordeon.prototype = {
	initialize: function(selector, item_class, item_balise, on_class, off_class, onoff_balise) {
		this.visible = true;
		this.item_class = item_class;
		this.item_selector = selector;
		if (item_balise != '') this.item_selector += ' ' + item_balise;
		this.on_class = on_class;
		this.off_class = off_class;
		this.onoff_selector = selector;
		if (onoff_balise != '') this.onoff_selector += ' ' + onoff_balise;
		$$(this.onoff_selector).each(this.initOnOff.bind(this));
		this.drawAll();
	},
 
	initOnOff: function(el) {
		if (el.hasClassName(this.on_class) || el.hasClassName(this.off_class)) {
			el.href = 'javascript:void(0)';
			el.observe('click', this.drawAll.bind(this, el));
		}
	},

	drawAll: function() {
		this.visible = !this.visible;
		$$(this.onoff_selector).each(this.drawOnOff.bind(this));
		$$(this.item_selector).each(this.drawItems.bind(this));
	},
	
	drawOnOff: function(el){
		if (el.hasClassName(this.off_class)) {
			if (this.visible) el.show();
			else el.hide();
		}
		else if (el.hasClassName(this.on_class)) {
			if (this.visible) el.hide();
			else el.show();
		}
	},
	
	drawItems: function(el){
		if (el.hasClassName(this.item_class)) {
			if (this.visible) el.show();
			else el.hide();
		}
	}
}

