var AccordionFx = new Class({ Implements: Options, options: { button: '.toggler', content: '.element', link_tag: '.toggler a', start_event: 'mouseenter', end_event: 'mouseleave', css_start: '.accordion_link_rollover', css_end: '.accordion_link_rollout', a_speed: 1000, r_speed: 250, a_transition: Fx.Transitions.Pow.easeOut, r_transition: Fx.Transitions.Pow.easeOut, wait_bool: false, a_id: 'accordion', a_css_active: 'accordion_active', a_css_link: 'accordion_link', start_pos: 0
}, initialize: function(options) { this.setOptions(options); var functions = { remove_event: this.remove_event, readd_event: this.readd_event, button_morph: this.button_morph
}; functions.button_morph(options); var my_accordion = new Accordion(this.options.button, this.options.content, { opacity: false, transition: options.a_transition, onActive: function(toggler, element) { functions.remove_event(toggler, options); toggler.setProperty('class', options.a_css_active);}, onBackground: function(toggler, element) { functions.readd_event(toggler, options, functions); toggler.setProperty('class', options.a_css_link);}, display: this.options.start_pos
});}, button_morph: function(options) { var list = $$(options.link_tag); list.each(function(element) { var fx = new Fx.Morph(element, { duration: options.r_speed, wait: options.wait_bool, transition: options.r_transition
}); element.addEvent(options.start_event, function() { fx.start(options.css_start);}); element.addEvent(options.end_event, function() { fx.start(options.css_end);});});}, remove_event: function(obj, options) { var hover_tag = obj.getElement('a'); hover_tag.removeEvents(options.start_event); hover_tag.removeEvents(options.end_event);}, readd_event: function(obj, options, functions) { var link_tag = obj.getElement('a'); options.link_tag = link_tag; functions.button_morph(options); var fx = new Fx.Morph(link_tag, { duration: 0, wait: false
}); fx.start(options.css_end);}
});