if(typeof Effect=='undefined')
throw("accordion.js requires including script.aculo.us' effects.js library!");var accordion=Class.create();accordion.prototype={currentAccordion:null,nextAccordion:null,showFlyout:null,currentFlyout:null,duration:null,effects:[],animating:false,initialize:function(container,options){if(!$(container)){throw(container+" doesn't exist!");return false;}
this.options=Object.extend({resizeSpeed:1,delay:500,openFirst:false,classNames:{toggle:'accordion_toggle',toggleActive:'accordion_toggle_active',content:'accordion_content'},defaultSize:{height:null,width:null},direction:'vertical',onEvent:'mousemove'},options||{});this.duration=(this.options.resizeSpeed*0.1);var accordions=$$('#'+container+' .'+this.options.classNames.toggle);var first_accordion=$$('#'+container+' .'+this.options.classNames.toggle)[0];accordions.each(function(accordion){Event.observe(accordion,this.options.onEvent,this.activate.bind(this,accordion),false);if(this.options.onEvent=='click'){accordion.onclick=function(){return false;};}
if(this.options.direction=='horizontal'){var options={width:'0px',display:'none'};}else{var options={height:'0px',display:'none'};}
this.nextAccordion=$(accordion.next(0)).setStyle(options);}.bind(this));if(this.options.openFirst){this.activate(first_accordion);}},activate:function(accordion){if(this.animating){return false;}
if(this.accordionTimeout){window.clearTimeout(this.accordionTimeout);}
this.effects=[];this.nextAccordion=$(accordion.next(0));if(this.nextAccordion==this.currentAccordion){return false;}
if(this.options.delay!=0){this.accordionTimeout=window.setTimeout(this._handleAccordion.bind(this),this.options.delay);}else{this._handleAccordion();}},_handleAccordion:function(){this.nextAccordion.setStyle({display:'block'});if(this.options.direction=='horizontal'){this.scaling=$H({scaleX:true,scaleY:false});}else{this.scaling=$H({scaleX:false,scaleY:true});}
this.nextAccordion.previous(0).addClassName(this.options.classNames.toggleActive);var options=$H({sync:true,scaleFrom:0,scaleContent:false,transition:Effect.Transitions.sinoidal,scaleMode:{originalHeight:this.options.defaultSize.height?this.options.defaultSize.height:this.nextAccordion.scrollHeight,originalWidth:this.options.defaultSize.width?this.options.defaultSize.width:this.nextAccordion.scrollWidth}});options.merge(this.scaling);this.effects.push(new Effect.Scale(this.nextAccordion,100,options.update(this.scaling).toObject()));if(this.currentAccordion){this.currentAccordion.previous(0).removeClassName(this.options.classNames.toggleActive);options=$H({sync:true,scaleContent:false,transition:Effect.Transitions.sinoidal});options.merge(this.scaling);this.effects.push(new Effect.Scale(this.currentAccordion,0,options.update(this.scaling).toObject()));}
new Effect.Parallel(this.effects,{duration:this.duration,queue:{position:'end',scope:'accordionAnimation'},beforeStart:function(){this.animating=true;}.bind(this),afterFinish:function(){if(this.currentAccordion){this.currentAccordion.setStyle({display:'none'});}
$(this.nextAccordion).setStyle({height:'auto'});this.currentAccordion=this.nextAccordion;this.animating=false;}.bind(this)});}}