



(function($) {
	
	var Tabs = function(element, options, content) {
		
		var settings = $.extend({}, $.fn.tabBrowser.defaults, options);
		
		var vars = {
			curTab: 0,
			nextTab: -1,
			totalTabs: 4,
			content: content,
			paused: false,
			running: false,
			timer: '',
			manual: false,
			pauseTime: 7000,
			frontContent: 0,
		}
		
		var container = $(element);
		
		$('div#tab-'+vars.curTab).css('display','block');
		$('div#tabsmenu-'+vars.curTab).css('background-position','0 -60px');
		
		$('div.tabsmenu-item').hoverIntent(function(e) {
			if (vars.running == true) {
				vars.nextTab = $(this).attr('id').substr(9);
				return;
			} vars.running = true;
			
			var key = $(this).attr('id').substr(9);
			setContent(key,$(this));
		},function() {});
		
		$('div.tabsmenu-item').disableSelection();
		
		setContent(vars.curTab,$('div#tab_'+vars.curTab));
		
		function setContent(key,obj) {
			if (key < 0 || key >= vars.totalTabs) key = 0;
			if (vars.curTab != key) {
				$('div#tabsmenu-'+vars.curTab).css('background-position','0 0px');
				obj.css('background-position','0 -60px');
				$('div#tab-'+vars.curTab).fadeOut(600,function() { $(this).css('display','none'); });
				vars.curTab = key;
				$('div#tab-'+key).css('opacity',0);
				$('div#tab-'+key).css('display','block');
				$('div#tab-'+key).animate({'opacity':1},600,function(){ container.trigger('tabs:animFinished'); });
			} else { vars.running = false; } 
		}
		
		container.bind('tabs:animFinished', function() {
			
			if (vars.nextTab >= 0 && vars.nextTab < vars.totalTabs) {
				var next = vars.nextTab;
				vars.nextTab = -1;
				setContent(next,$('div#tabsmenu-'+next));
				return;
			}
			
			vars.running = false;
			
			if (vars.timer == '' && !vars.paused) {
				vars.timer = setInterval(function() { tabCycle(); }, vars.pauseTime);
			}
		});
		
		function tabCycle() {
			if (vars.running == true) {
				return;
			} vars.running = true;
			
			var next = parseInt(vars.curTab)+parseInt(1);
			if (next >= parseInt(vars.totalTabs)) next = 0;
			
			setContent(next,$('div#tabsmenu-'+next));
		}
		
		container.hover(function() {
			vars.paused = true;
			clearInterval(vars.timer);
			vars.timer = '';
		},function() {
			vars.paused = false;
			if(vars.timer == ''){
				vars.timer = setInterval(function() { tabCycle(); }, vars.pauseTime);
			}
		});
		
		vars.timer = setInterval(function() { tabCycle(); }, vars.pauseTime);
		
	}
	
	$.fn.tabBrowser = function(options,content) {
		
        return this.each(function(){
            var element = $(this);
            // Return early if this element already has a plugin instance
            if (element.data('tabs')) return;
            // Pass options to plugin constructor
            var tabs = new Tabs(this,options,content);
            // Store plugin object in this element's data
            element.data('tabs', tabs);
        });
        
	};
	
	$.fn.tabBrowser.defaults = {
		pauseTime: 50000,
	}
	
})(jQuery);

$.fn.disableSelection = function() {
    $(this).attr('unselectable', 'on')
   .css('-moz-user-select', 'none')
   .each(function() { 
	   this.onselectstart = function() { return false; };
	});
};


