/**
*	IZslider Plugin------------
*	Plugin jquery per la visualizzazione di immagini. 
*	Carica solo le immagini che vengono richieste tramite la pressione dei pulsati prev e next,
*	a differenza degli altri slider non carica direttamente tutte le immagini della gallery
*       quindi utile in caso di immagini molto grandi.
*
* 	@todo: Va implementato un PreLoader 
*/	
(function($) {

   $.fn.IZIslider = function(arrayImg,settings) {
     var current = 0;
     var config = {
     	'next':$("#next"),
     	'prev':$("#prev"),
     	'resize':false,
     	'rate':1
     };
     if (settings) $.extend(config, settings);


     $(this).addClass("IZIslider");
     obj = $(this);
     loadImage(arrayImg,obj,0,config.resize,config.rate);
     
        $(obj).css("width",$("#container").width());
        $(obj).css("height",$("#container").height());

     $(config.next).bind("click",function(event){	
     	event.preventDefault();
     	$("#preload").show();
		if(current == arrayImg.length -1){	
			current = 0;
		}
		else{	
			current++;
		}
		loadImage(arrayImg,obj,current,config.resize,config.rate);	
     	
     });
     	  
     $(config.prev).bind("click",function(event){	
     	event.preventDefault();
     	$("#preload").show();
		if(current == 0){	
			current = arrayImg.length -1;
		}
		else{	
			current--;
		}
		loadImage(arrayImg,obj,current,config.resize,config.rate);	
     	
     });
  
     return this;
   };
  
   
	function loadImage(arrayImg,obj,id,resize,rate){	
	    $(obj).children().filter("img").addClass("remove");
	    $(".remove").hide().remove();
	    
	    var img = new Image();
	    $(img).load(function () {
	    	loaded = $(this);
	    	setTimeout(function(){
                        
   		        $(loaded).hide();
       			$(obj).append(loaded);
       			$(loaded).show();
       			$("#preload").hide();
       			if(resize){
       				var w_width = $("#container").width();
				var w_height = w_width / rate;
                    
	    			$(loaded).attr("width",w_width);
                                $(loaded).attr("height",w_height);
       			}
	    	},"300");

	        
	    }).error(function () {
	        
	    }).attr({
	            src: arrayImg[id]
	    });
	} 
 
})(jQuery);
