/*
* jSlideShow by RCDMK - Agosto de 2010
* rcdmk@hotmail.com
* 
* Plugin para jQuery que gera um slideshow ou banner rotativo
*/
(function($) {
	$.fn.jSlideShow = function(options) {
		// Inicialização
		var $this = $(this);
		var slides = $this.find(".slide");
		var opts = $.extend({}, $.fn.jSlideShow.defaults, options);
		var currItem = 0;
		var mouseOver = false;
		var transitionIn = true;
		var timer = null;
		var buttons = null;
		
		// Se tiver slides
		if (slides.length && slides.length > 1) {
			// Se tiver mais de um slide, inicia a animação
			
			slides.not(slides.eq(0)).css({ 'display': 'none' });
			
			// Criar botões de navegação
			buttons = $('<div class="slideButtonsContainer" />');
			
			for (var i = 0; i < slides.length; i++) {
				buttons.append('<div class="slideButton"><a href="#" rel="' + (i + 1) + '">' + (i + 1) + '</a></div>');
			}
			
			// Ativar o click nos botões
			buttons.find(".slideButton").each(function() {
				$(this).click(function() {
					transitionSlide($(this).find('a').attr('rel'));
				});
			});
			
			$this.append(buttons);
			
			activeButton(1);
			waitNext();
		}
		
		/*	Função que alterna os slides
		*	@num = número do slide para trocar
		* 	Se não passar um parâmetro, o próximo slide é chamado
		*/
		
		function transitionSlide(num) {
			// trocar slides
			clearTimeout(timer);
			if (num != '' && num != null && num!= undefined ) {
				
				num = parseInt(num) - 1;
				if (num != currItem) {
					$(slides[currItem]).animate(opts.animationOut, opts.animationTime, function() {
						$(slides[num]).animate(opts.animationIn, opts.animationTime, function() { waitNext() });
						currItem = num;
						activeButton(currItem + 1)
					});
				} else {
					waitNext();
					activeButton(1);
				}
				
			} else {
				
				$(slides[currItem]).animate(opts.animationOut, opts.animationTime, opts.easeOut, function() {
					currItem++;
					currItem = (currItem == slides.length)?0:currItem;
					activeButton(currItem + 1)
					$(slides[currItem]).animate(opts.animationIn, opts.animationTime, opts.easeIn, function() { waitNext() });
				});
			}
			
			
		}
		
		// Chamar a função após o tempo
		function waitNext() {
			clearTimeout(timer);
			timer = setTimeout(function (){transitionSlide()}, opts.interval);
		}
		
		// Ativar o botão do slide atual
		function activeButton(currButton) {
			buttons.find("a").each(function() {
				if ($(this).attr('rel') == String(currButton)) {
					$(this).addClass('slideButtonOn');
				} else {
					$(this).removeClass('slideButtonOn');
				}
			});
		}
		
		return $this;
	}
	
	$.fn.jSlideShow.defaults = {
		interval: 4000,
		animationIn: { opacity: 'show' },
		animationOut: { opacity: 'hide' },
		easeIn: "linear",
		easeOut: "linear",
		animationTime: 500
	};
})(jQuery)

$(document).ready(function(){
	$(".jSlideShow").jSlideShow({ interval: 5000 });
	//$(".jSlideShow").jSlideShow({ interval: 2000, animationIn: { width: "show" }, animationOut: { width: "hide" }, easeIn:"bounce", easyOut:"bounce" });
});
