var CosMooSlideTabs = new Class({
	Implements: [Options],
	

	version: '0.1',
 
	options: {
		startTitle: '', 
		container: '',
		zindex_open: 0,
		zindex_close: 1
	},
 
	
	initialize: function(options) {
		
		this.setOptions(options);
		var obj = this;
		this.titles = $$('.slidetabs_title');
		this.panels = $$('.slidetabs_panel');
		this.tween = new Fx.Tween(this.options.container, {'property':'height'});
		$(this.options.container).store('height', $(this.options.container).getSize().y);
		
		this.attach(this.titles);
		
		this.panels.each(function(el, index){
			var tween = new Fx.Tween(el, {'property':'height'}); 
			el.store('tween', tween);
			el.store('height', el.getSize().y);
			el.setStyle('height',0);
			el.setStyle('z-index', obj.options.zindex_close);
		});
		var title = $(''+this.options.startTitle);
		if(this.options.startTitle!='' && title)
			this.activate(title);
	},
	
	attach: function(titles)
	{
		var obj = this;
		titles.each(function(el){
			el.addEvent('click', function(){obj.activate(el);});
		});
	},
	
	detach: function(titles)
	{
		var obj = this;
		titles.each(function(el){
			el.removeEvents('click');
		});
	},
	
	activate: function(title)
	{
		var obj = this;
		obj.detach(obj.titles);
		var id = "panel_"+title.get("title");
		var panel = $(id);
		var open = $$('.slidetabs_panel.open');
		
		if(open.length>0)
		{
			open = open[0];
			var tween = open.retrieve('tween'); 
			tween.start(0);
			open.removeClass("open");
			open.setStyle('z-index', obj.options.zindex_close);
		}
		if(open.get("id")!=id)
		{
			var tween = panel.retrieve('tween');
			panel.setStyle('z-index', obj.options.zindex_open);
			tween.start(panel.retrieve('height'));
			obj.tween.start(panel.retrieve('height')+30);
			panel.addClass("open");
		}
		else
		{
			obj.tween.start($(obj.options.container).retrieve('height'));
		}
		(function(){obj.attach(obj.titles);}).delay(450);
	}
});