/**
 * @author Renso Vargas || Zemoga
 * @class Jquery plugin to create an image slider with indicator thumbnails
 */
;(function($){
	$.fn.slider = function(options){
	
		var element = this;
		var defaults = jQuery.extend({
			"containerId":"sliderContainer",
			"imageContainerClass":"TCVHomeBanner",
			"bulletsContainerClass":"TCVHomeBannerCarrouselBullets",
			"width":"982",
			"time":"7000"
		},options);
		
		return this.each(function() {
		
			var currentPosition = 0;
			var sliderWidth = defaults.width;
			var slides = $("."+defaults.imageContainerClass);
			var numberOfSlides = slides.length;
			var interval;
			var li = "";
			var bullets = $("ul."+defaults.bulletsContainerClass);
			var slidesWithBulletCount = 0;
			var liCount;
			var regex = /^bullet-(\d)/g; 
			
            $("#"+defaults.containerId).css("width",defaults.width*numberOfSlides);
			 
			for(i=0;i<numberOfSlides;i++){
				li += '<li><a href="" class="bullet-'+i+' carrouselBullet"></a></li>'; 
			}
			
			bullets.append(li);
			
			$("."+defaults.bulletsContainerClass+ " a[class|=bullet]").click(function(){
				clearInterval(interval);
				var matches = $(this).attr("class").match(regex);
				currentPosition = (RegExp.$1)-1;
				createInterval();
				animate();
				return false;
			});
			
			bullets.each(function(){
				liCount = 0;
				$(this).children("li").each(function(){
					if(liCount == slidesWithBulletCount){
						$(this).addClass("selected");	
					}
					liCount++
				});
				slidesWithBulletCount++
			});
			
			var animate = function(){
				if(currentPosition<numberOfSlides-1){
						$("#"+defaults.containerId).animate({left:sliderWidth*-(currentPosition+1)},defaults.time);
						currentPosition++;
				}else{
					currentPosition=-1;
				}
                $('.TCVHomeBannerImg img').each(function (index) {
                    var str = $(this).attr("src");
                    $(this).attr("src", str + "?rnd=" + Math.random());
                });
			}
			
			var createInterval = function(){
				interval = window.setInterval(animate,defaults.time);	
                
			}
			
			createInterval();
		});
	};
	
})(jQuery)

