if(typeof Effect=="undefined"){
throw ("accordion.js requires including script.aculo.us' effects.js library!");
}
var accordion=Class.create();
accordion.prototype={showAccordion:null,currentAccordion:null,duration:null,effects:[],animating:false,AlreadyActivated:[],initialize:function(_1,_2){
if(!$(_1)){
throw (_1+" doesn't exist!");
return false;
}
this.options=Object.extend({resizeSpeed:8,classNames:{toggle:"accordion_toggle",toggleActive:"accordion_toggle_active",content:"accordion_content"},defaultSize:{height:null,width:null},direction:"vertical",onEvent:"click",onActivate:null,RepeatActivate:{}},_2||{});
this.duration=((11-this.options.resizeSpeed)*0.15);
this.AlreadyActivated=[];
var _3=$$("#"+_1+" ."+this.options.classNames.toggle);
_3.each(function(_4){
Event.observe(_4,this.options.onEvent,this.activate.bind(this,_4),false);
if(this.options.onEvent=="click"){
_4.onclick=function(){
return false;
};
}
if(this.options.direction=="horizontal"){
var _5={width:"0px"};
}else{
var _5={height:"0px"};
}
Object.extend(_5,{display:"none"});
this.currentAccordion=$(_4.next(0)).setStyle(_5);
}.bind(this));
},activate:function(_6){
if(this.animating){
return false;
}
this.effects=[];
this.currentAccordion=$(_6.next(0));
this.currentAccordion.setStyle({display:"block"});
this.currentAccordion.previous(0).addClassName(this.options.classNames.toggleActive);
if(this.options.direction=="horizontal"){
this.scaling={scaleX:true,scaleY:false};
}else{
this.scaling={scaleX:false,scaleY:true};
}
if(this.currentAccordion==this.showAccordion){
this.deactivate();
}else{
var _7=true;
var _8=$(this.currentAccordion).id;
var AA=this.AlreadyActivated.indexOf(_8);
var RA=this.options.RepeatActivate[_8];
if(RA!=undefined){
if(AA!=-1){
if(RA!=undefined){
_7=RA;
}
}else{
this.AlreadyActivated.push(_8);
}
}
if(this.options.onActivate&&_7){
this.options.onActivate(this.currentAccordion);
}
this._handleAccordion();
}
},deactivate:function(){
var _b={duration:this.duration,scaleContent:false,transition:Effect.Transitions.sinoidal,queue:{position:"end",scope:"accordionAnimation"},scaleMode:{originalHeight:this.options.defaultSize.height?this.options.defaultSize.height:this.currentAccordion.scrollHeight,originalWidth:this.options.defaultSize.width?this.options.defaultSize.width:this.currentAccordion.scrollWidth},afterFinish:function(){
this.showAccordion.setStyle({height:"0px",display:"none"});
this.showAccordion=null;
this.animating=false;
}.bind(this)};
Object.extend(_b,this.scaling);
this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);
new Effect.Scale(this.showAccordion,0,_b);
},_handleAccordion:function(){
var _c={sync:true,scaleFrom:0,scaleContent:false,transition:Effect.Transitions.sinoidal,scaleMode:{originalHeight:this.options.defaultSize.height?this.options.defaultSize.height:this.currentAccordion.scrollHeight,originalWidth:this.options.defaultSize.width?this.options.defaultSize.width:this.currentAccordion.scrollWidth}};
Object.extend(_c,this.scaling);
this.effects.push(new Effect.Scale(this.currentAccordion,100,_c));
if(this.showAccordion){
this.showAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);
_c={sync:true,scaleContent:false,transition:Effect.Transitions.sinoidal};
Object.extend(_c,this.scaling);
this.effects.push(new Effect.Scale(this.showAccordion,0,_c));
}
new Effect.Parallel(this.effects,{duration:this.duration,queue:{position:"end",scope:"accordionAnimation"},beforeStart:function(){
this.animating=true;
}.bind(this),afterFinish:function(){
if(this.showAccordion){
this.showAccordion.setStyle({display:"none"});
}
$(this.currentAccordion).setStyle({height:"auto"});
this.showAccordion=this.currentAccordion;
this.animating=false;
}.bind(this)});
}};

