var MultipleOpenAccordion = new Class({
    Extends: Accordion,
    options: {
        allowMultipleOpen: true,
        opacity: false
    },
    initialize: function(togglers,togglees,options){
            this.parent(togglers,togglees,options);
    },
    onActive: function(toggler, element){
        toggler.setStyle('color', this.options.onActiveColor);

        var ele1 = toggler.getElement('a');
        if(ele1){
            ele1.set('class','active');
        }
        this.onComplete = function(){
            
            var ele = element.getElement('button');
            if(ele){
                ele.setStyle("display","inline");
            }
        };

    },
    onBackground: function(toggler, element){
        toggler.setStyle('color', this.options.onBackgroundColor);
        var ele1 = toggler.getElement('a');
        if(ele1){
            ele1.set('class','inactive');
        }
        var ele = element.getElement('button');
        if(ele){
        ele.setStyle("display","none");
        this.onComplete = function(){
            var ele = element.getElement('button');
            ele.setStyle("display","none");
        };
        }else{
            this.onComplete = function(){};
        }
        
    },
    display: function(index){
        index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;
        if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;
 
        var obj = {};
        if(this.options.allowMultipleOpen){
            var el = this.elements[index];
            obj[index] = {};
            var hide = (el.offsetHeight > 0);
            //this.fireEvent(hide ? 'onBackground' : 'onActive', [this.togglers[index], el]);
            for (var fx in this.effects) obj[index][fx] = hide ? 0 : el[this.effects[fx]];
            (hide) ? this.onBackground(this.togglers[index],el) : this.onActive(this.togglers[index],el);

        }else{
            this.previous = index;
            this.elements.each(function(el, i){
                obj[i] = {};
                var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0));
                //this.fireEvent(hide ? 'onBackground' : 'onActive', [this.togglers[i], el]);
                for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];
                (hide) ? this.onBackground(this.togglers[index],el) : this.onActive(this.togglers[index],el);
            }, this);
        }
        return this.start(obj);
    }
});
