// JavaScript Document
/*credits: Andrés Fernández*/
function Acordeon(id,abierto){
	this.abierto=abierto || 0;
	this.id=id;
	this.init=function(){
		var _this=this;
		for(var i=0,els; els=$(this.id).getElementsByTagName('dt')[i];i++){
			var maxExpand=$(this.id).getElementsByTagName('dd')[i].offsetHeight;
			if(!this.abierto || this.abierto!=i+1){
				$(this.id).getElementsByTagName('dd')[i].style.height=0;
				$(this.id).getElementsByTagName('dd')[i].style.display='none';
			}else{
				$(this.id).getElementsByTagName('dd')[i].style.height=maxExpand+'px';
			}
			
			(function(){
				var _maxExpand=maxExpand;
				var numero=i;
				panino.getO(els).addEvent('click',function(){_this.efectuar(_maxExpand,numero);}).css('cursor','pointer');
				panino.getO(window).addEvent('unload',function(){$(_this.id).t=null;});
			})()
		}
		$(this.id).css('visibility','visible');
	}
	this.efectuar=function(maximo,elemento){
		var _this=this;
		if($(_this.id).t!=null && typeof $(_this.id).t!='undefined' && $(_this.id).t.done_!=true)return;
		var aCerrar=0;
		for(var i=0,l=$(_this.id).getElementsByTagName('dd').length;i<l;i++){
			if(i!=elemento && parseInt($(_this.id).getElementsByTagName('dd')[i].style.height)>0){
				aCerrar=$(_this.id).getElementsByTagName('dd')[i];
				var inicioACerrar=parseInt($(_this.id).getElementsByTagName('dd')[i].style.height);
				break;
			}
		}
		
		
		var inicio=parseInt($(this.id).getElementsByTagName('dd')[elemento].style.height);
		var fin= maximo; 
		$(_this.id).t=new Transition(SineCurve,500,function(percentage) {
			if(fin<inicio){
				var delta=inicio-fin;
    			$(_this.id).getElementsByTagName('dd')[elemento].style.height=(inicio-(percentage*delta))+'px';
			}
			else{
				var delta=fin-inicio;
				$(_this.id).getElementsByTagName('dd')[elemento].style.height=(inicio+(percentage*delta))+'px';
			}
			if(aCerrar){
				aCerrar.style.height=(inicioACerrar-(inicioACerrar*percentage))+'px';
				if(parseInt(aCerrar.style.height)<1){
					aCerrar.style.display='none';
				}else{
					aCerrar.style.display='block';
				}				
			
			}
			
			if(parseInt($(_this.id).getElementsByTagName('dd')[elemento].style.height)<1)
				$(_this.id).getElementsByTagName('dd')[elemento].style.display='none';
			else
				$(_this.id).getElementsByTagName('dd')[elemento].style.display='block';
			});
		$(_this.id).t.run();
	}
	
}
