var mtree = new Class({
	
	Implements: [Options],
	
	elements: new Array(),
	tree: null,
	sliders: new Array(),
	
	options: {
		
	},
	
	initialize: function(tree) {
		var self = this;
		
		//this.setOptions(options);
		
		this.tree = tree;
		this.elements = tree.getElements('ul');
		
		this.elements.each(function(el, index) {
			self.sliders.push(new Fx.Slide(el.getParent(), { 
				onComplete: function(outside) {
					var hidden = outside.getParent().getStyle('height') == '0px' ? true : false;
					outside.getParent().setStyle('height','');
					if(hidden) outside.getParent().setStyle('height','0px');
				}
			}));
			
			document.fireEvent('collapseTree', self.collapseTree(index));
			
			var toggle = el.getParent().getParent().getPrevious();
			toggle.addEvent('click', self.slide.bind(self, [toggle, index]))
		});
		
		var i = 0;
	},
	
	collapseTree: function(index) {
		this.sliders[index].hide();
	},
	
	slide: function(event, index) {
		var e = new Event(event);
		this.sliders[index].toggle();
		if(!e.event.hasClass("root"))
		{
			e.event.toggleClass("expanded");
		}
		e.stop();
	}
});
