Fx.Expando=Class.create({initialize:function(a){this.expandoElement=$(a.expandoElement)||$$(a.expandoSelector)[0];this.toggleElement=$(a.toggleElement)||$$(a.toggleSelector)[0];this.expandedClass=a.expandedClass||"expanded";this.collapsedClass=a.collapsedClass||"collapsed";this.onExpandComplete=a.onExpandComplete||Prototype.emptyFunction;this.onCollapseComplete=a.onCollapseComplete||Prototype.emptyFunction;this.onStart=a.onStart||Prototype.emptyFunction;this.duration=a.duration||500;this.expandedHeight=a.expandedHeight;this.collapsedHeight=a.collapsedHeight||0;if(!this.expandedHeight){this.expandedHeight=this.expandoElement&&$(this.expandoElement).getHeight()}this.fx=new Fx.Style(this.expandoElement,"height",{options:{duration:this.duration,wait:true},onStart:this.onStart});if(!!this.toggleElement){this.toggleElement.observe("click",this.toggle.bind(this))}},toggle:function(b){var a=this;if(this.expandoElement.hasClassName(this.expandedClass)){this.fx.options.onComplete=function(){a.expandoElement.removeClassName(a.expandedClass).addClassName(a.collapsedClass);a.onCollapseComplete()};this.fx.start(this.expandedHeight,this.collapsedHeight)}else{this.fx.options.onComplete=function(){a.expandoElement.removeClassName(a.collapsedClass).addClassName(a.expandedClass);a.onExpandComplete()};this.fx.start(this.collapsedHeight,this.expandedHeight)}}});