var ProtoAccordion = Class.create({
	
	options: {
		classNames : {
			toggle : 'accordion_toggle',
			toggleActive : 'accordion_toggle_active',
			content : 'accordion_content'
		},
		allClosed: true
	},
	
	headers: [],
	containers: [],
	states: [],			// Estado de los contenedores: fasle->cerrado, true->abierto.
	
	initialize: function(container,options){
		Object.extend(this.options,options);
		this.headers = container.select('.'+this.options.classNames.toggle);
		this.containers = container.select('.'+this.options.classNames.content);
		this.headers.each(function(item,i){
			this.containers[i].setStyle({display:'block',overflow:'hidden'});
			if(this.options.allClosed)this.containers[i].hide(); // Si se quieren todas cerradas, la esconde.
			else this.states[i]=true; // Indica que su estado es abierta
			this.headers[i].observe('click',function(){
				if (this.states[i]) { // Cierra
					this.containers[i].morph('error',{
						style:{height:'0px'},
						duration: 0.5,
						afterFinish: function(){this.containers[i].hide();}.bind(this)
					});
					this.states[i] = false;
				} else { // Abre			
					this.containers[i].setStyle({height:'auto'});
					var targetHeight = this.containers[i].getHeight();
					this.containers[i].setStyle({height:'0'}).show().morph('error',{
						style: {height: targetHeight + 'px'},
						duration: 0.5,
						afterFinish: function(){this.containers[i].setStyle({height:'auto'})}.bind(this)
					});
					this.states[i] = true;
				}
			}.bind(this));
		}.bind(this));
	}
});
