/*
 * 	loopedSlider 0.5.4 - jQuery plugin
 *	written by Nathan Searles	
 *	http://nathansearles.com/loopedslider/
 *
 *	Copyright (c) 2009 Nathan Searles (http://nathansearles.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 $("#loopedSlider").loopedSlider();
 *
 *	<div id="loopedSlider">	
 *		<div class="container">
 *			<div class="slides">
 *				<div><img src="01.jpg" alt="" /></div>
 *				<div><img src="02.jpg" alt="" /></div>
 *				<div><img src="03.jpg" alt="" /></div>
 *				<div><img src="04.jpg" alt="" /></div>
 *			</div>
 *		</div>
 *		<a href="#" class="previous">previous</a>
 *		<a href="#" class="next">next</a>
 *		<ul class="pagination">
 *			<li><a href="#">1</a></li>
 *			<li><a href="#">2</a></li>
 *			<li><a href="#">3</a></li>
 *			<li><a href="#">4</a></li>
 *		</ul>	
 *	</div>
 *
*/

(function($) {
	$.fn.loopedSlider = function(options) {
		
	var defaults = {			
		container: '.container',
		slides: '.slides',
		pagination: '.pagination',
		containerClick: false, // Click container for next slide
		autoStart: 0, // Set to positive number for auto start and interval time
		restart: 0, // Set to positive number for restart and restart time
		slidespeed: 300, // Speed of slide animation
		fadespeed: 300, // Speed of fade animation
		autoHeight: false, // Set to positive number for auto height and animation speed
        inputIsVideo: "#isVideo" // Set if the actual item is a video -- Rudnei
	};

		
	this.each(function() {
		var obj = $(this);
		var o = $.extend(defaults, options);
        
        //isVideo = setInterval(start_stop, (o.restart - 1));
        //isVideo = setInterval(start_stop, 4000);
		
	
		var indexSlide = 0;
		var pagination = $(o.pagination+' a',obj);
		var m = 0;
		var t = 1;
		var s = $(o.slides,obj).children().size();
		var w = $(o.slides,obj).children().outerWidth();
		var p = 0;
		var u = false;
		var n = 0;
		var interval=0;
		var restart=0;
		
		$(".thumbPanel img").removeClass("active").eq(indexSlide).addClass("active");
		
		$(o.slides,obj).css({width:(s*w)});
		
		$(o.slides,obj).children().each(function(){
			$(this).css({position:'absolute',left:p,display:'block'});
			p=p+w;
		});
		
		$(pagination,obj).each(function(){
			n=n+1;
			$(this).attr('rel',n);
			$(pagination.eq(0),obj).addClass('active');
		});
		
		$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:-w});
		
		if (s>3) {
			$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:-w});
		}
		
		if(o.autoHeight){autoHeight(t);}
		
		$('.next',obj).click(function(){
			if(u===false) {
				animate('next',true);
				if(o.autoStart){
					if (o.restart) {autoStart();}
					else {clearInterval(sliderIntervalID);}
				}
			} return false;
		});
		
		$('.previous',obj).click(function(){
			if(u===false) {	
				animate('prev',true);
				if(o.autoStart){
					if (o.restart) {autoStart();}
					else {clearInterval(sliderIntervalID);}
				}
			} return false;
		});
		
		if (o.containerClick) {
			$(o.container ,obj).click(function(){
				if(u===false) {
					animate('next',true);
					if(o.autoStart){
						if (o.restart) {autoStart();}
						else {clearInterval(sliderIntervalID);}
					}
				} return false;
			});
		}
		
		$(pagination,obj).click(function(){
			if ($(this).hasClass('active')) {return false;}
			else {
				t = $(this).attr('rel');
				$(pagination,obj).siblings().removeClass('active');
				$(this).parent().addClass('active');
				animate('fade',t);
				if(o.autoStart){
					if (o.restart) {autoStart();}
					else {clearInterval(sliderIntervalID);}
				}
			} return false;
		});
	
		if (o.autoStart) {
			sliderIntervalID = setInterval(function(){
				if(u===false) {animate('next',true);}
			}, o.autoStart);
			function autoStart() {
				if (o.restart) {
				clearInterval(sliderIntervalID);
				clearInterval(interval);
				clearTimeout(restart);				
					restart = setTimeout(function() {
						interval = setInterval(	function(){
							animate('next',true);
						},o.autoStart);
					},o.restart);
				} else {
					sliderIntervalID = setInterval(function(){
						if(u===false) {animate('next',true);}
					},o.autoStart);
				}
			};
		}
		
		function current(t) {
			indexSlide=t-1;
			if(t===s+1){t=1;indexSlide=0}
			if(t===0){t=s;indexSlide=s-1;}
			$(pagination,obj).siblings().removeClass('active');
			$(pagination+'[rel="' + (t) + '"]',obj).addClass('active');
		};
		
		function autoHeight(t) {
			if(t===s+1){t=1;}
			if(t===0){t=s;}	
			var getHeight = $(o.slides,obj).children(':eq('+(t-1)+')',obj).outerHeight();
			$(o.container,obj).animate({height: getHeight},o.autoHeight);					
		};
        
        function start_stop() {
            if ( $(o.inputIsVideo).val() == "start" ) {                            
                clearInterval(sliderIntervalID);
                clearTimeout(restart);
                clearInterval(interval);
            } else {
                if (!( sliderIntervalID > 0 )) {
                    sliderIntervalID = setInterval(function(){
                        if(u===false) {animate('next',true);}
                    }, o.autoStart);
                }
                if (!( restart > 0 )&&!( interval > 0 )) {
                    restart = setTimeout(function() {
                        interval = setInterval(	function(){
                            animate('next',true);
                        },o.autoStart);
                    },o.restart);
                }
            }
        }
        
        function stop() {
            alert('parando');

        };
        
        /*function start() {
            alert("iniciando");
        };*/
		
		function animate(dir,clicked){
            if ( $(o.inputIsVideo).val() == "stop" ) {
                u = true;
                switch(dir){
                    case 'next':
                        t = t+1;
                        m = (-(t*w-w));
                        current(t);
                        if(o.autoHeight){autoHeight(t);}
                        if(s<3){
                            if (t===3){$(o.slides,obj).children(':eq(0)').css({left:(s*w)});}
                            if (t===2){$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(w)});}
                        }					
                        $(o.slides,obj).animate({left: m}, o.slidespeed,function(){
                            if (t===s+1) {
                                t = 1;
                                $(o.slides,obj).css({left:0},function(){$(o.slides,obj).animate({left:m})});							
                                $(o.slides,obj).children(':eq(0)').css({left: 0});
                                $(o.slides,obj).children(':eq('+(s-1)+')').css({ position:'absolute',left:-w});				
                            }
                            if (t===s) $(o.slides,obj).children(':eq(0)').css({left:(s*w)});
                            if (t===s-1) $(o.slides,obj).children(':eq('+(s-1)+')').css({left:s*w-w});
                            u = false;
                        });
                        break; 
                    case 'prev':
                        t = t-1;
                        m = (-(t*w-w));
                        current(t);
                        if(o.autoHeight){autoHeight(t);}
                        if (s<3){
                            if(t===0){$(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(-w)});}
                            if(t===1){$(o.slides,obj).children(':eq(0)').css({position:'absolute',left:0});}
                        }
                        $(o.slides,obj).animate({left: m}, o.slidespeed,function(){
                            if (t===0) {
                                t = s;
                                $(o.slides,obj).children(':eq('+(s-1)+')').css({position:'absolute',left:(s*w-w)});
                                $(o.slides,obj).css({left: -(s*w-w)});
                                $(o.slides,obj).children(':eq(0)').css({left:(s*w)});
                            }
                            if (t===2 ) $(o.slides,obj).children(':eq(0)').css({position:'absolute',left:0});
                            if (t===1) $(o.slides,obj).children(':eq('+ (s-1) +')').css({position:'absolute',left:-w});
                            u = false;
                        });
                        break;
                    case 'fade':
                        t = [t]*1;
                        m = (-(t*w-w));
                        current(t);
                        if(o.autoHeight){autoHeight(t);}
                        $(o.slides,obj).children().fadeOut(o.fadespeed, function(){
                            $(o.slides,obj).css({left: m});
                            $(o.slides,obj).children(':eq('+(s-1)+')').css({left:s*w-w});
                            $(o.slides,obj).children(':eq(0)').css({left:0});
                            if(t===s){$(o.slides,obj).children(':eq(0)').css({left:(s*w)});}
                            if(t===1){$(o.slides,obj).children(':eq('+(s-1)+')').css({ position:'absolute',left:-w});}
                            $(o.slides,obj).children().fadeIn(o.fadespeed);
                            u = false;
                        });
                        break;
                    default:
                        break;
                }	

                $(".thumbPanel img").removeClass("active").eq(indexSlide).addClass("active");
            }
		};
	});
};
})(jQuery);
