(function($) {
	$.fn.extend({
		tabs: function(options) {
			options = $.extend({
				// velocidade de troca das abas
				transition: 'normal',
				// ativa ou desativa a mundança automática
				autotab: false,
				// tempo de permencia em cada aba
				delay: 5000,
			}, options);

			return this.each(function() {
				var self = $(this);
				var tabs = self.children('ul').children();
				var divs = self.children('div');
				var i = 0;
				var timer = null;
				var aba = 0;
									
				$("#btnProximo").click(function() { 
					aba++;
					tabs.removeClass('in');
					$(tabs[aba]).addClass('in');
					
					divs.hide();
					$(divs[aba]).fadeIn(options.transition);
					
					verificaBtn(aba);
				});
				
				$("#btnAnterior").click(function() {
					aba--;
					tabs.removeClass('in');
					$(tabs[aba]).addClass('in');
					
					divs.hide();
					$(divs[aba]).fadeIn(options.transition);
					
					verificaBtn(aba);
				});
				
				verificaBtn(aba);

				// adiciona um evento para que no clique as abas sejam trocadas
				/*
				tabs.click(function() {
					tabs.removeClass('in');
					$(this).addClass('in');
					divs.hide();
					// encontra a posição da aba clicada
					i = tabs.index(this);
					$(divs[i]).fadeIn(options.transition);
					// se a mudança automática estiver ativa, o temporizador é reiniciado
					if (options.autotab)
						resetTimer();
					
					verificaBtn(i);
				});
				*/
				
				function verificaBtn(indice)
				{
					if(indice == 0) {
						$("#btnAnterior").attr('disabled', true);
						$("#btnAnterior").removeClass('botao').addClass('botaoDisabled');
					} else {
						$("#btnAnterior").removeAttr('disabled');
						$("#btnAnterior").removeClass('botaoDisabled').addClass('botao');
					}
				
					if(indice == 4) {
						$("#btnProximo").hide();
						$("#btnGravar").show();
					} else {
						$("#btnProximo").show();
						$("#btnGravar").hide();
					}
				}
							

				// executa a inicialização do temporizador
				if (options.autotab)
					startTimer();

				// função para iniciar o temporizador
				function startTimer() {
					timer = window.setInterval(showNext, options.delay);
				}

				// função para reiniciar o temporizador
				function resetTimer() {
					window.clearTimeout(timer);
					startTimer();
				}

				// função para mostrar a próxima aba
				function showNext() {
					// encontra a aba que deverá ser exibida
					if (tabs.length > i + 1)
						i++;
					else
						i = 0;

					tabs.removeClass('in');
					$(tabs[i]).addClass('in');

					divs.hide();
					$(divs[i]).fadeIn(options.transition);
				}
			});
		}
	});
})(jQuery);