
jQuery.fn.tabs = function(options) {
	var settings = {
        length  	: 0,
        curvalue  	: 0, 
		initvalue 	: 0,
		over		: 0,
		loop		: 0,
		delay		: 5000,
		big_delay	: 20000,
		dclass		: 'tab'
    };    
	if(options) {
       jQuery.extend(settings, options);
    };
	
	var timeID = 0;
	var container = jQuery(this);
	var tabs = $('.'+settings.dclass,container);
	var cons = $('.'+settings.dclass+'_c',container);
	settings.length = tabs.length;
		tabs
			.mouseover(function(){
				if(settings.over==1){
					var index = tabs.index(this)+1;
					settings.curvalue = index;	
					event.fixed(this);
				}
				window.clearTimeout(timeID); timeID = 0;
				if(settings.loop==1){
					timeID = setTimeout(function(){event.loop()},settings.big_delay);
				}
			})
			.click(function(){ 
				if(settings.over==0){
					var index = tabs.index(this)+1;
					settings.curvalue = index;	
					event.fixed(this);
				}
				window.clearTimeout(timeID); timeID = 0;
				if(settings.loop==1){
					timeID = setTimeout(function(){event.loop()},settings.big_delay);
				}				
			});
	
		cons
			.mouseover(function(){
				window.clearTimeout(timeID); timeID = 0;
				if(settings.loop==1){
					timeID = setTimeout(function(){event.loop()},settings.big_delay);
				}
			});
		
	var event = {
		loop: function() {
			timeID = setTimeout(function(){event.getloop();},settings.delay);
		},
		getloop: function(){
			if(settings.curvalue<tabs.length){
				settings.curvalue++;
			}else
				settings.curvalue = 1;
			event.fixed(tabs[settings.curvalue>0?settings.curvalue-1:0]);
			timeID = setTimeout(function(){event.getloop();},settings.curvalue==1?settings.big_delay:settings.delay);
		},		
		reset: function(){
			tabs.eq(settings.initvalue).addClass('selected').end();
			cons.eq(settings.initvalue).css('display','block').end();
		},
		fixed: function(el){
			tabs.gt(settings.curvalue-1).removeClass('selected').end();
			tabs.lt(settings.curvalue).removeClass('selected').end();
			$(el).addClass('selected').end();
			cons.css('display','none').end();
			cons.eq(settings.curvalue-1).css('display','block').end();
		}
	}        
	event.reset();
	event.loop();
	return(this);
}
