window.addEvent('domready', function() {
	var status = {
		'true': 'open',
		'false': 'close'
	};
	
	//--horizontal

	var myHorizontalSlide1 = new Fx.Slide('horizontal_slide1', {mode: 'horizontal'}).show();
	var myHorizontalSlide2 = new Fx.Slide('horizontal_slide2', {mode: 'horizontal'}).hide();
	var myHorizontalSlide3 = new Fx.Slide('horizontal_slide3', {mode: 'horizontal'}).hide();
	var myHorizontalSlide4 = new Fx.Slide('horizontal_slide4', {mode: 'horizontal'}).hide();
	var myHorizontalSlide5 = new Fx.Slide('horizontal_slide5', {mode: 'horizontal'}).hide();
	var myVerticalSlide1 = new Fx.Slide('vertical_slide1', {mode: 'vertical'}).hide();
	
	
	$('bh6').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide1.slideIn();
		myHorizontalSlide2.slideOut();
		myHorizontalSlide3.slideOut();
		myHorizontalSlide4.slideOut();
		myHorizontalSlide5.slideOut();
		myVerticalSlide1.slideOut();
	});	
	
	$('bh2').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide1.slideOut();
		myHorizontalSlide2.slideIn();
		myHorizontalSlide3.slideOut();
		myHorizontalSlide4.slideOut();
		myHorizontalSlide5.slideOut();
		myVerticalSlide1.slideOut();
	});	
	
	$('bh3').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide1.slideOut();
		myHorizontalSlide2.slideOut();
		myHorizontalSlide3.slideIn();
		myHorizontalSlide4.slideOut();
		myHorizontalSlide5.slideOut();
		myVerticalSlide1.slideOut();
	});	
	
	$('bh4').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide1.slideOut();
		myHorizontalSlide2.slideOut();
		myHorizontalSlide3.slideOut();
		myHorizontalSlide4.slideIn();
		myHorizontalSlide5.slideOut();
		myVerticalSlide1.slideOut();
	});	
	
	$('bh5').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide1.slideOut();
		myHorizontalSlide2.slideOut();
		myHorizontalSlide3.slideOut();
		myHorizontalSlide4.slideOut();
		myHorizontalSlide5.slideIn();
		myVerticalSlide1.slideOut();
	});
		
	$('bh1').addEvent('click', function(e){
		e.stop();
		myHorizontalSlide1.slideOut();
		myHorizontalSlide2.slideOut();
		myHorizontalSlide3.slideOut();
		myHorizontalSlide4.slideOut();
		myHorizontalSlide5.slideOut();
		myVerticalSlide1.slideIn();
	});
		
});

var sickTabs_t = new Class({
	Implements: [Events, Options],
	
	options : {
		defaultIndex : -1,
		tabHeader : 'tab-triggers', 		// #id
		tabSelector : 'span', 					// element
		tabWrapper : 'tab-wrapper', 		// #id
		tabContainers : '.tab-container', 	// .class
		
		triggersEvent : null, 				// eventHandler - mouseover || click
		setClicked : 'active',
		doAnimation : { },
		cache : true,

		onSelect : function(trigger, container, index) {
			container.addClass('active');
			trigger.addClass(this.options.setClicked);
			if (this.options.defaultIndex != index) window.location.hash = this.getHash(trigger.title);
		},
		onDeselect : function(trigger, container, isSelected) {
			isSelected.removeClass('active');
			trigger.removeClass(this.options.setClicked);
		}
	},
	
	initialize : function(elem, options) {
		__self = this;
		this.setOptions(options);
		this.element = $(elem);
		this.tElem = $(this.options.tabWrapper).getElements(this.options.tabContainers);
		
		var triggers = this.element.getElements(this.options.tabSelector);

		isActive = this.tElem[options.defaultIndex];
		isIndex = triggers[options.defaultIndex];

		this.tElem.each(function(key, index) {
			if (__self.getHash(triggers[index].href) == __self.getHash(window.location.hash)) {
				isActive = key;
				isIndex = triggers[index];
			}
		})

		this.tabFocus(triggers);
	},
	
	tabFocus : function(elems) {
		__self = this;
		__self.fireEvent('select', [isIndex, isActive, __self.options.defaultIndex]);
		
		var evt = this.options.triggersEvent;
		elems.each(function(el, index) {
			el.addEvent(evt, function(et) {
				et.stop();
				
				__self.fireEvent('deselect', [isIndex, __self.tElem[index], isActive]);
				__self.fireEvent('select', [this, __self.tElem[index], index]);
				
				isIndex = elems[index];
				isActive = __self.tElem[index];
			})
		})
	}.protect(),
	
	getHash: function(cur_hash) {
		if (!cur_hash) return false;
		if (cur_hash.contains('#'))
			pos_start_cut = cur_hash.indexOf('#') + 1;
		else
			pos_start_cut = 0;
		return cur_hash.substring(pos_start_cut);
	}.protect()
});



window.addEvent('domready', function() {

	var nSick = new sickTabs_t('tab-triggers', {
		tabSelector : 'span',
		tabWrappers : 'tab-wrapper',
		triggersEvent : 'click',
		defaultIndex : -1
	});
});
