 /**
 * FunÃ§Ã£o: gsbadCarrousel(object ulLista, object setaEsquerda, object setaDireita, object ulIndicadores, int intervalo, int velocidade, int visiveis)
 * @author - Gustavo SÃ¡ <gustavo.sa@webadvisor.com.br>
 * @param object ulLista -  Elemento <ul> - Deve-se passar o elemento DOM que contem as <li> das imagens ou conteudo do carrosel. 
 * @param object setaEsquerda - Elemento do DOM que serÃ¡ a seta esquerda. Preferencialmente um <a>
 * @param object setaDireita - Elemento do DOM que serÃ¡ a seta direita. Preferencialmente um <a>
 * @param object ulIndicadores - Elemento <ul> - Deve-se passar o elemento DOM que receberÃ¡ os indicadores li no seguinte formato: <li><a href="#1">1</a></li> (Classe padrÃ£o: .ativa)
 * @param int intervalo - Intervalo em milisegundos entre uma transiÃ§Ã£o e outra
 * @param int velocidade - Velocidade da transiÃ§Ã£o
 * @param int visiveis - Numero de imagens visiveis ao mesmo tempo no carrosel
 * @param bool automatico - Flag que define a automatizaÃ§Ã£o do carrosel
 * @todo MÃ©todo para escolher modo de transiÃ§Ã£o (fade, vertical, horizonal, etc... decidir)
 * Tudo referente a tempo Ã© em milisegundos - Ex: 1000ms = 1seg / Essa funÃ§ao se utiliza do jCarouselLite para funcionar
 */ 
	
function gsbadCarrousel(ulLista, setaEsquerda, setaDireita, ulIndicadores, intervalo, velocidade, visiveis,automatico,transicao,ulLegenda, ulMostraCorrente){
		var totalNavegacao = $(ulLista).find("li").length;
		//var tamanhoItem = $(ulLista).find("li").outerWidth(true);
		var tamanhoItem = 0;
		$(ulLista).find('li').each(function(){
			var temp = $(ulLista).find("li").outerWidth(true);
			tamanhoItem += temp;
		});
		var tamanhoLista = tamanhoItem;
		tamanhoItem = tamanhoItem / totalNavegacao;
		
		var qtdDeMudancas =  Math.ceil(totalNavegacao  / visiveis);
		var distancia = tamanhoItem * visiveis;
		var classeIndicador = "ativa"; //Classe default para as li's dos indicadores
		
		
		var pg = 0;
		 $(ulLista).css("width",tamanhoLista+"px")		
		
		//Seta pra esquerda
		$(setaEsquerda).click(function(){
			clearInterval(a);
			if(automatico) a = setInterval(proxima,intervalo);	
			var pos = $(ulLista).css("left").replace("px","");
			if (pos == "auto") return;		
			pos = parseInt(pos) * -1;
			
			qtdDeMudancas = Math.ceil(qtdDeMudancas);
			if ((pos % tamanhoItem) != 0) return; 
			if ($(ulLista).css("left") == "0px") {
				$(ulLista).stop().animate({"left": ((tamanhoLista-distancia) * -1)+"px"},{queue:false, duration:velocidade, easing: transicao}); 
					pg = qtdDeMudancas;
				}
			else 
				$(ulLista).animate({"left": "+="+distancia+"px"},{queue:false, duration:velocidade, easing: transicao});
			pg--;
			mudaNavegacao(pg);
			
		});	

		//Seta pra direita	
		$(setaDireita).click(function(){						
			clearInterval(a);
			if(automatico) a = setInterval(proxima,intervalo);
			
			var pos = $(ulLista).css("left").replace("px","");
			if (pos == "auto") pos = 0;		
			pos = parseInt(pos) * -1;
			qtdDeMudancas = Math.ceil(qtdDeMudancas);
			
			if ((pos % tamanhoItem) != 0) return;
			if (((qtdDeMudancas-1) * distancia) == pos) {
				$(ulLista).animate({"left": "0"},{queue:false, duration:velocidade, easing: transicao});
				pg = -1;
			} else 
				$(ulLista).animate({"left": "-="+distancia+"px"},{queue:false, duration:velocidade, easing: transicao});
			pg++;
			mudaNavegacao(pg);

		});
		//Adiciona a numeração
		if(qtdDeMudancas > 1){
			for(i = 1; i <= qtdDeMudancas; i++){	
				$(ulIndicadores).append('<li><a href="#'+(i-1)+'">'+i+'</a></li>');
			}
		}
		//Função temporal que acontece na mudança de banner !IMPORTANTE
		function mudaNavegacao(p){
			/** Muda o html da Legenda **/
			function legenda(){
				if(ulLegenda){
					$("li",ulLista).each(function(i) {
						if (i == p) {	
							$(ulLegenda).html($(this).find("blockquote").html());
						}
					});
				}
			}/** Muda o html do corrente **/
			function corrente(){
				if(ulMostraCorrente){
					$("li",ulLista).each(function(i) {
						if (i == p) {	
							$(ulMostraCorrente).html("<span class='corrente'>"+(i+1)+"</span>/<span class='total'>"+totalNavegacao+"</span>");
						}
					});
				}
			}
			/** Muda o html dos indicadores **/
			function criaIndicadores(){
				$("a",$(ulIndicadores)).parent().removeClass(classeIndicador);
				$("a",$(ulIndicadores)).each(function(i){
					if (p == i){
						$(this).parent().addClass(classeIndicador);
					}
				});
			}	
		
			/** Chama função para mudar indicadores **/
			criaIndicadores();
			/** Chama função para mudar legenda **/
			legenda();
			/** Chama função para mudar o numero corrente **/
			corrente();
		}
		//Numeracao do carroussel	
		$("a",$(ulIndicadores)).click(function(){
			clearInterval(a);
			if(automatico) a = setInterval(proxima,intervalo);
			var pagina = $(this).html();
			pg = pagina-1;
			var posleft = (pg) * distancia * -1; 
			$(ulLista).animate({"left": posleft+"px"},{queue:false, duration:velocidade, easing: transicao});
			mudaNavegacao(pg);
		});
		
		if(automatico) var a = setInterval(proxima,intervalo);

		//FunÃ§ao para retornar a posiÃ§ao qdo ultrapassar o limite das setas	
		function proxima(){
			pg++;
			if (pg == qtdDeMudancas)
			pg = 0;
			var posleft = (pg) * distancia * -1; 
			$(ulLista).animate({"left": posleft+"px"},{queue:false, duration:velocidade, easing: transicao});
			mudaNavegacao(pg);			
		}
		
		mudaNavegacao(0);

}
