var ExpandList = new Class({
        
    largeList: false,
        
    initialize: function(el, lrg) {
        
        var list = $(el);
        
        if (lrg == true) this.largeList = true;
        
        this.items = list.getElements("div.row");
        
        if (this.items.length > 0) {
            
            this.items.each(function(item, index) {
                                
                this.items[index].open = false;
                
                item.addEvent("click", function(evt) {
                    if (evt.target) {
                        var tgt = evt.target;
                    } else {
                        var tgt = evt.srcElement;
                    }
                    
                    var tag = $(tgt).getTag();
                    
                    if ((tag != "a" && tag != "img" && tag != "b") || (tag == "a" && $(tgt).hasClass("arrow-list"))) {
                        evt = new Event(evt).stop();
                        this.toggle(index);
                    }
                }.bind(this));
                
            }, this);
            
        }
        
        this.expand(0); // Open first element initially
        
    },
    
    toggle: function(index) {
        
        this.items.each(function(item, num) {
            if (num != index) {
                this.collapse(num);
            }
        }, this);
        
        if (this.items[index].open) {
            this.collapse(index);
        } else {
            this.expand(index);
        }
                
    },
    
    collapse: function(index) {
        this.items[index].removeClass("folded-out");
        if (this.largeList) this.items[index].removeClass("lrgfold");
        this.items[index].open = false;
    },
    
    expand: function(index) {
        this.items[index].addClass("folded-out");
        if (this.largeList) this.items[index].addClass("lrgfold");
        this.items[index].open = true;
    }
    
});