/*
Leonardo Service Provider S.p.A.
Tutti i diritti registrati e riservati,(R)(C) 2009.
La riproduzione parziale o totale del presente software
delle pagine generate nonchè della strutturazione dei dati,
delle tabelle e di quant'altro è ad esso inerente  è illegale 
ed è punibile secondo tutte le Leggi vigenti sulla violazione del Diritto D'Autore.
L'utilizzo del presente software senza regolare licenza d'uso
è illegale e sarà perseguito secondo tutte le Leggi vigenti applicabili
*/

(function($){  

    $.fn.zSlider = function(opts) {
	
	var defaults = {timeOut: 5000, showNav: true};
	var options = $.extend(defaults, opts);	
	
	var current     = 0;
	var currentN     = 0;
	var canClick	= true;
	var timeOutFn  	= null;	
	var mOver       = false;	
	var self 	= this;
	
	return this.each(function(){
	    
	    var items       = $("#" + this.id + "Content ." + this.id + "Image");
	    var itemsSpan   = $("#" + this.id + "Content ." + this.id + "Image span");
	    var nav = $('<div class="offerNewsNav"></div>');
	    var prev = $('<span class="prev"></span>').html('<< Indietro')
	    var pos = $('<span class="pos"></span>').html(current+1+' /'+items.length)
	    var next = $('<span class="next"></span>').html('Avanti >>')
	    var clr = $('<div class="clear"></div>');
		
		$("#" + this.id + "Content ." + this.id + "Image span").css('opacity', '0.7');
		
		
		next.click(function(){
			if (canClick){
				/*for (i=1; i<items.length; i++) {
					goAway(i, null)
				}*/
				goAway(currentN, current)
			}
		}).css('cursor', 'pointer');
		prev.click(function(){
			if (canClick){
				/*for (i=1; i<items.length; i++) {
					goAway(i, null)
				}*/
				goAway(currentN, current-2)
			}
		}).css('cursor', 'pointer');
	    
	    if(options.showNav == true){
		$('.offerNewsNav').remove();

		$(nav).append(prev); $(nav).append(pos); $(nav).append(next);
		$(nav).append(clr);
		
		$(this).after(nav)
	    }	 
	    
	    if(options.action == 'stop'){		
		mOver = true;		
		items.each(function(){
		    $(this).unbind('mouseenter').unbind('mouseleave');
		});		
	    }	   
	        
	    var slideMouseover = function(){
		mOver = true;		    
	    }
	    
	    var slideMouseout = function(){
		mOver = false;		    
		initTiming(500)
	    }
	   
	    items.each(function() {			
		$(this).hover(slideMouseover, slideMouseout);			   
	    });
	       
	    var initTiming = function(currentTimeout){
			//currentN = current;
		clearTimeout(timeOutFn)
		if(items.length > 1){
		    if(options.action != 'stop'){
			timeOutFn = setTimeout(initSliding, currentTimeout)
		    }
		}
	    }
	    
	    var initSliding = function(){
			current = (current >= items.length) ? 0 : current;
			var previous = (current <= 0) ? items.length-1 : current-1;
			
			
			
			if(!mOver){
				goAway(previous, current);
			}		    
		}
		
		var goAway = function(slideNum, slideNext) {
			clearTimeout(timeOutFn)
			//slideNext = (slideNum == slideNext)?slideNum+1:slideNext;
			slideNum = (slideNum >= items.length) ? 0 : (slideNum<0)? items.length-1 : slideNum;
			slideNext = (slideNext >= items.length) ? 0 : (slideNext<0)? items.length-1 : slideNext;
			//$('#couponcontainer').prepend('<p>Chiamata goAway con ' + slideNum + ', ' + slideNext + '</p>');
			canClick = false;
			$(itemsSpan[slideNum]).slideUp(500, function(){
				$(items[slideNum]).fadeOut(500, function(){
					if (slideNext != null) {
						currentN = slideNext;
						comeIn(slideNext)
					}
				})
			})
		}
		
		var comeIn = function(slideNum) {
			clearTimeout(timeOutFn)
			//$('#couponcontainer').prepend('<p>Chiamata comeIn con ' + slideNum + '</p>');
			if(options.showNav == true){
				$(pos).html(slideNum+1+' /'+items.length)
			}			
			current = slideNum;
			$(items[slideNum]).fadeIn(500,function(){
				$(itemsSpan[slideNum]).slideDown();
				
				current++;
				initTiming(options.timeOut)
				canClick = true;
			})
		}
		initSliding()	    
	})
    };  

})(jQuery);  