/* Adias internet solution fadeIn/fadeOut slideshow www.adias.it */
/*
 vers. 1.0
 
*/

$.fn.slideshow = function() {
	return this.each(function() {
	   
	   
	   var itemSlideShow = $(".slideshow");
	   var itemContainerPhoto = $(".slideshow-container");
	   var itemControl = $(".slideshow-bottom");
	   var itemCaption = $(".slideshow-trasp");
	   
	   var slideshow = $(this).find(itemSlideShow);
	   var containerPhoto = $(this).find(itemContainerPhoto);
	   var control = $(this).find(itemControl);
	   var caption = $(this).find(itemCaption);
	  
       //customize
       var timeBeforeTrasition = 8000;
	   
	   var cache = [];
	   var _interval;
	   var count = 0;
	   var max = 0;
	  
	   
	   $.getJSON('data/slideshow.json', function(data) {
			
			max  = data.length;
			for (i = 0; i < max; i++){	  
				  var cacheImage = document.createElement('img');
		          cacheImage.src = data[i].path;
				  cacheImage.alt = data[i].testo;
		          cache.push(cacheImage);
			}
			
			
			
			createSlide();
		});
		
		function createSlide(){
		
		   for (i = 0; i < max; i++){
              var zindex = 999 - i;
			  if (i == 0){		   
                 var item = "<div class='slideshow-item current' style='z-index:" + zindex +"'><img alt='" + cache[i].alt + "' src='" + cache[i].src + "' /></div>";
				 var btn = "<li class='btn-slideshow-clicked'></li>";
			  }else{
			     var item = "<div class='slideshow-item' style='z-index:" + zindex +"'><img alt='" + cache[i].alt + "' src='" + cache[i].src + "' /></div>";
				 var btn = "<li></li>"
			  }
			  //containerPhoto.append(item);
			  control.find("ul").append(btn);
			  containerPhoto.find(".slideshow-item").css("display","none");
			  containerPhoto.find(".current").fadeIn();
		   }
		   
		   control.find("li").click(function(){
	             stop();
				 var i = $(this).index();
		         goTo(i);
	          });
            
           	start();  
		}
		
		
		function start(){
		   _interval = setInterval(next,timeBeforeTrasition);	
		}
		
		function stop(){
		   clearInterval(_interval);
		}
		
		
		function next(){
			current = containerPhoto.find(".current");
			var i = current.index();
			current.removeClass("current");
			count = (i + 1 + cache.length) % cache.length; 
			goTo(count);
		}
	   
	   
	   function goTo(index){
          stop();
		  containerPhoto.find("div").css("display","none");
		  var current = containerPhoto.find("div").eq(index);
		  current.addClass("current");
		  current.fadeIn();
		  control.find("li").removeClass("btn-slideshow-clicked");
		  control.find("li").eq( index ).addClass("btn-slideshow-clicked");
		  caption.find("p").html(current.find("img").attr("alt"));
		  caption.find("p").fadeIn();
		  _interval = setInterval(next,timeBeforeTrasition);
	   }
	   
	   
	   
	   
	   
	});
}
