/*
 * 	VS Slider 1.5 - jQuery plugin
 *	written by Alen Grakalic	
 *	http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding
 *
 *	Copyright (c) 2009 Alen Grakalic (http://cssglobe.com)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *
 */
 
/*
 *	markup example for $("#slider").easySlider();
 *	
 * 	<div id="slider">
 *			<div><img src="images/01.jpg" alt="" /></div>
 *			<div><img src="images/02.jpg" alt="" /></div>
 *			<div><img src="images/03.jpg" alt="" /></div>
 *			<div><img src="images/04.jpg" alt="" /></div>
 *			<div><img src="images/05.jpg" alt="" /></div>
 *	</div>
 *
 */

(function($) {

	$.fn.vsSlider = function(options){
	  
		// default configuration properties
		var defaults = {			
			tempo: 1500,
			horizontal: true,
			transicao: 2000,
			automatico: false,
			stopclick: false,
			fade: false
		}; 
		
		var options = $.extend(defaults, options);  
				
		this.each(function() {  
			var obj = $(this);
			var tamanho = $("div", obj).length;
			var largura = $("div", obj).width();
			var altura = $("div", obj).height();
			var maxLargura = (tamanho -1) * largura;
			var maxAltura = (tamanho -1) * altura;
			var htmlCache  = $(obj).html();
			
			$("div", obj).css("float", "left");
			$(obj).css("position", "relative");			
			$(obj).css("left", "0px");
			$(obj).css("width", largura * tamanho);
			$(obj).css("height", altura);
			
			var posAtual = 0;
			
			function animar(direcao){
			
				if(options.horizontal){
				
					if( direcao == "direita" && posAtual == (tamanho -1 ) * largura * -1){
						if(!options.fade){									
							$(obj).append(htmlCache);							
							tamanho = $("div", obj).length;
							$(obj).css("width",tamanho * largura+"px");
							$("div", obj).css("float", "left");
							var novaPos = posAtual - largura;
						}else{
							var novaPos = 0;
						}
					}
					else if( direcao == "esquerda" && posAtual == 0 ){
						var novaPos = (tamanho - 1) * largura * -1;
					}
					else{
						if(direcao == "direita")
							var novaPos = posAtual - largura;
						else
							var novaPos = posAtual + largura;
					}					
					
					if(options.fade){
						$(obj).fadeOut(options.transicao / 2, function(){
							$(obj).css("left", novaPos+"px");
						});
					
						$(obj).fadeIn(options.transicao / 2);
					}
					else{						
						$(obj).animate({left: novaPos+"px"}, options.transicao);
					}
					
					posAtual = novaPos;
				}
			}
			
			function iniciaRepeticao(){
				timeout = setInterval(function (){
					animar("direita");
				}, (options.tempo + (options.transicao / 2)));
			}
			
			$("#sliderBack", (obj).parent()).click(function(){				
				clearTimeout(timeout);
				animar("esquerda");
				if(!options.stopclick)
					iniciaRepeticao();
			});
			$("#sliderNext", (obj).parent()).click(function(){				
				clearTimeout(timeout);
				animar("direita");
				if(!options.stopclick)
					iniciaRepeticao();
			});
			
			//init					
			if(options.automatico){
				var timeout;
				iniciaRepeticao();
			}
		});
	  
	};

})(jQuery);




