document.observe('dom:loaded',accordionTomSetup);
var accordionsTom=[];
function accordionTomSetup() {
        $$('.accordion').each(function(accordionEl){
                if (accordionEl.select('.page').length>0) {
                        accordionsTom.push(accordionEl);
                        accordionEl.select('.page').each(function(pageEl) {
                                pageEl.select('.bar, cufon').each(function(el,ix){
                                        el.observe('click',function(ev) {
                                                accordionOpenPage(ev.target);
                                                ev.element().up('.page').removeClassName('ro');
                                        });
                                });
                                pageEl.select('.max').first().style.height='0px';
                                addEvent(pageEl.select('.bar').first(),'mouseenter',function(ev) {
                                        ev=Event.extend(ev);
                                        if (ev.element().up('.page').hasClassName('selected')!=true) {
                                                ev.element().up('.page').addClassName('ro');
                                        }
                                });
                                addEvent(pageEl.select('.bar').first(),'mouseleave',function(ev) {
                                        ev=Event.extend(ev);
                                        ev.element().up('.page').removeClassName('ro');
                                });
                        });
                        accordionOpenPage(accordionEl.select('.page .bar').first());
                }
        });
}
var isAnimating=false;
function accordionOpenPage(which) {
        if (!isAnimating && !$(which).hasClassName('selected')) {
                var anims=[];
                var thisPage=$(which).up('.page');
                thisPage.addClassName('selected');
                anims.push(new Effect.Morph(thisPage.select('.max').first(),{
                        style: {
                                height: thisPage.select('.max .inner').first().getHeight()+'px'
                        },
                        beforeStart: function(){ isAnimating=true; },
                        afterFinish: function(){ isAnimating=false; },
                        duration: 0.5
                }));
                thisPage.siblings().each(function(otherPageEl) {
                        anims.push(new Effect.Morph(otherPageEl.select('.max').first(), {
                                style: {
                                        height: '0px'
                                },
                                duration: 0.5,
                                afterFinish: function() {
                                        otherPageEl.removeClassName('selected');
                                        Cufon.refresh();
                                }
                        }));
                });
                new Effect.Parallel(anims,{
                        sync: true
                });
        }
}

