(function($) {

	$.fn.EWM_Slider = function(Opcoes){

		var Padrao = {
			largura : 320,
			altura : 240,
			auto : false,
			velocidade : 500,
			espera : 2000,
			paginacao : 0
		};

		var Opcoes = $.extend(Padrao, Opcoes);

		this.each(function() {
			var Temporizador;
			var Mexendo = false;
			var Atual = 1;

			var Objeto = $(this);
			var Quadro = $("div.Quadro", Objeto);
			var Quantidade = $("div.Item", Quadro).length;

			Objeto.width(Opcoes.largura);
			Objeto.height(Opcoes.altura + Opcoes.paginacao);
			Objeto.css("overflow", "hidden");
			Objeto.mouseover(function(){ Pausa(true); });
			Objeto.mouseout(function(){ Pausa(false); });

			Quadro.width(Opcoes.largura * (Quantidade + 1));
			Quadro.height(Opcoes.altura);
			Quadro.css("overflow", "hidden");

			// Deixa lado a lado
			$("div.Item", Quadro).width(Opcoes.largura);
			$("div.Item", Quadro).height(Opcoes.altura);
			$("div.Item", Quadro).css("overflow", "hidden");
			$("div.Item", Quadro).css('float','left');

			// Cria barra de paginação
			if (Opcoes.paginacao > 0)
				{
				$(document.createElement("div"))
					.attr('class', 'Paginacao')
					.html('<ul id="Paginacao_Lista"></ul>')
					.appendTo(Objeto);

				for (Posicao = 1; Posicao <= Quantidade; Posicao++)
					$(document.createElement("li"))
						.attr('id', 'Paginacao_Lista_' + Posicao)
						.html('<a rel="' + Posicao + '" href="javascript:void(0);">' + Posicao + '</a>')
						.appendTo($("#Paginacao_Lista"))
						.click(function(){
							Animacao($("a",$(this)).attr('rel'), true);
						});
				}

			function Finaliza()
				{
				Mexendo = false;
				}

			function Pausa(Parado)
				{
				if (Temporizador) clearTimeout(Temporizador);

				if (!Parado && Opcoes.auto && Quantidade > 1)
					Temporizador = setTimeout(function(){ Animacao(Atual + 1, false); }, Opcoes.espera);
				}

			function Animacao(Numero, Clicado)
				{
				if (!Mexendo)
					{
					if (Clicado) clearTimeout(Temporizador);
					if (Numero > Quantidade) Numero = 1;

					var Anterior = Atual;

					Mexendo = true;
					Atual = Numero;

					$("#Paginacao_Lista_" + Anterior, Objeto).removeClass("Selecionado");
					$("#Paginacao_Lista_" + Atual, Objeto).addClass("Selecionado");

					var Destino = (Atual - 1) * Opcoes.largura * -1;
					var Velocidade = Math.abs(Anterior - Atual) * Opcoes.velocidade;

					$("div.Quadro", Objeto).animate(
							{ marginLeft: Destino },
							{ queue: false, duration: Velocidade, complete: Finaliza });

					// Liga temporizador
					if (Opcoes.auto && !Clicado) Temporizador = setTimeout(function(){ Animacao(Atual + 1, false); }, Opcoes.espera);
					}
				}

			// Inicia animação
			if (Opcoes.auto && Quantidade > 1)
				{
				// Destaca a seleção do primeiro
				$("#Paginacao_Lista_1", Objeto).addClass("Selecionado");
				Temporizador = setTimeout(function(){ Animacao(2, false); }, Opcoes.espera);
				}

		});

	};

})(jQuery);
