
var width_btn_nav = 46;
var width_diapo = 121;
var height_diapo = 52;
var space_diapo = 45;
var spostamento = -(width_diapo+space_diapo);
var step = 4;
var immaginivisibili = 4;
var ultima = 0;
var statoANIMAZIONE = 0;
var offset = 5;
var carica = [];


function controllaDiv(){
//Rimuove tutti i div vuoti
	
	$(".galleria ul li h2:empty").each(function(index){
		
		 $(this).parent().remove();

	});

		setGallery();

}

function setGallery(){
	
	
	
	
	//VALUTA DIMENSIONI

	assegnaID();
	
	//SETTAGGI COMUNI
	
	//Setto grandezza dei tasti di navigazione
	$('.next, .back').width(width_btn_nav);
	$('.galleria').width($('.galleria_outer').width()-(width_btn_nav*2)).css({ 'top': 0, 'left': width_btn_nav , 'height': $('.galleria_outer').height()});
	
	//Setto dimensione dei li
	$('.galleria li').width(width_diapo).height(height_diapo).css({'margin-right':space_diapo+'px'});
	//La dimensione degli ul viene settata dalla funzione assegnaID Che lancia set_dimensione_ul 
	
	
	///////////////////////////////////////////////////////////////////////
	//FUNZIONI INTERNE
	///////////////////////////////////////////////////////////////////////
	
	function assegnaID(){
	//ASSEGNA GLI ID DELLE GALLERY E LANCIA il dimensionamento
		$('.galleria_outer').each(function(index) {

		$(this).attr('id', 'gal_' + index);
		
		generaStep(index);
		set_dimensione_ul(index);
		valutaDimensione(index);
		settaDimensioneImmagini(index);
				
		})
			
	}
	
	///////////////////////////////////////////////////////////////////////
	
	function set_dimensione_ul(idPassato){
	//SETTA LA DIMENSIONE DEGLI UL VIENE LANCIATO DA ASSEGNA ID
	
		$('#gal_' + idPassato + ' .galleria ul').width((width_diapo+space_diapo) * num_slide(idPassato))
	
	}
	
	///////////////////////////////////////////////////////////////////////
		
	function num_slide(idPassato){
	//CONTA LE IMMAGINI PRESENTI CONTENUTE IN UNA DETERMINATA GALLERY	
		var num = 0;
		
		$('#gal_' + idPassato + ' .galleria li').each(function(index) {
			++num;	
		})
		
		return num; 
		
	}
	
	///////////////////////////////////////////////////////////////////////
	
	function generaStep(idPassato){
	
	//VALORIZZO ALCUNI VALORI NEL CONTENITORE PRINCIPALE DI OGNI GALLERY	
		$('#gal_' + idPassato + ' .galleria ul').data('valori', {
		
			lunghezzaGallery : (num_slide(idPassato)-1)
		
		});
		
		riposizionaClip(idPassato);	

	}

	///////////////////////////////////////////////////////////////////////
	
	function riposizionaClip(idPassato){
	//SPOSTA IL CLIP a left = 0
	
		$('#gal_' + idPassato + ' .galleria ul').css({'left':0+'px'})
		
		
	}
	
	///////////////////////////////////////////////////////////////////////
	
	function assegnaFunzioni(idPassato){
		
	//ASSEGNA FUNZIONI DI NAVIGAZIONE
		$('#gal_' + idPassato + ' .next').click(function() {
			if(statoANIMAZIONE == 0){
			
				muoviGallery("next", idPassato);
			}
	
		})
		
		$('#gal_' + idPassato + ' .back').click(function() {
			if(statoANIMAZIONE == 0) {
				
				muoviGallery("back", idPassato);
			}
		})
		
		$('#gal_' + idPassato + ' .back').hover(
		  function () {
			$(this).css('background-position','left -87px');
		  },
		  function () {
			$(this).css('background-position','left top');
		  }
		);
		$('#gal_' + idPassato + ' .next').hover(
		  function () {
			$(this).css('background-position','right -87px');
		  },
		  function () {
			$(this).css('background-position','right top');
		  }
		);
		
		
		
	}
	
	///////////////////////////////////////////////////////////////////////
	
	function valutaDimensione(idPassato){
	//VALUTA DIMENSIONE DELLA GALLERY SE IL NUMERO DELLE IMMAGINI VISIBILI è UGUALE 
	//AL NUMERO DEGLI SLIDE ALLORA NON ASSEGNA LE FUNZIONI AI PULSANTI
	
		if(num_slide(idPassato) <= immaginivisibili){
			
			//Nascondo i pulsanti di navigazione
			$('.next, .back').css('display','none')
			
		}else{
			
			assegnaFunzioni(idPassato);
		
		}
		
	}
	///////////////////////////////////////////////////////////////////////
	
	function muoviGallery(direzione, idPassato){
	
		if(direzione=="next"){
			
			
			primaSpostamenento("next", idPassato);
			$('#gal_' + idPassato + ' .galleria ul').animate( {
				"left" : "-=" + (width_diapo+space_diapo)*step + "px"
				}, "slow", function() {
			//FINE MOVIMENTO ESEGUI:
				dopoSpostamento("next", idPassato);
			})
					
			
		}
		
		if(direzione=="back"){
			
				primaSpostamenento("back", idPassato);
				
			$('#gal_' + idPassato + ' .galleria ul').animate( {
					"left" : "+=" + (width_diapo+space_diapo)*step + "px"
					}, "slow", function() {
				//FINE MOVIMENTO ESEGUI:
					dopoSpostamento("back", idPassato);
				})
		}
	}

	///////////////////////////////////////////////////////////////////////
	
		function primaSpostamenento(direzione, idPassato){
			
			//QUESTO VALORE GLOBALE DISABILITA IL PULSANTE DI NAVIGAZIONE BACK E NEXT SE = 1
			//SERVE PER NON RICHIAMARE LA FUNZIONE muoviGallery() durante l'animazione
			statoANIMAZIONE = 1;
			//
			
			if(direzione=="next"){
				
				for(i=0;i<step;i++){
					
					$('#gal_' + idPassato + ' .galleria li:eq('+i+')').clone().appendTo($('#gal_' + idPassato + ' .galleria ul'));
				
				}
							
				$('#gal_' + idPassato + ' .galleria ul').width(	$('#gal_' + idPassato + ' .galleria ul').width()+((width_diapo+space_diapo)*step));
			}
			
			if(direzione=="back"){	
				
				
				ultima = num_slide(idPassato);
				
				for(i=0;i<step;i++){
					
					current = ultima - i-1;
					
					cloneSlide = $('#gal_' + idPassato + ' .galleria li:eq(' + current + ')').clone();
						
					carica.push(cloneSlide);

				}
				
				for(e=0;e<carica.length;e++){
				
					$(carica[e]).prependTo($('#gal_' + idPassato + ' .galleria ul'));
				
				}
				
							
			carica=[];
				
			settaDimensioneImmagini()
			
			$('#gal_' + idPassato + ' .galleria ul').width(	$('#gal_' + idPassato + ' .galleria ul').width()+((width_diapo+space_diapo)*step));
			
			$('#gal_' + idPassato + ' .galleria ul').css({'left':-((width_diapo+space_diapo)*step)});
			
			
			}
			
		}	
	
	///////////////////////////////////////////////////////////////////////
	
		function dopoSpostamento(direzione, idPassato){
			
			//QUESTO VALORE GLOBALE DISABILITA IL PULSANTE DI NAVIGAZIONE BACK E NEXT SE = 1
			//SERVE PER NON RICHIAMARE LA FUNZIONE muoviGallery() durante l'animazione
			statoANIMAZIONE = 0;
			//
			
			if(direzione=="next"){
				
				for(i=0; i<step; i++){
					
					$('#gal_' + idPassato + ' .galleria li:eq(0)').remove();
					
				}

					riposizionaClip(idPassato);
				
				
				$('#gal_' + idPassato + ' .galleria ul').width(	$('#gal_' + idPassato + ' .galleria ul').width()-((width_diapo+space_diapo)*step));	
					
			}
			
			if(direzione=="back"){
				
				ultima = num_slide(idPassato);
				
				for(i=0; i<step; i++){
					
					$('#gal_' + idPassato + ' .galleria li:last').remove();	

				}
				
				
				$('#gal_' + idPassato + ' .galleria ul').width(	$('#gal_' + idPassato + ' .galleria ul').width()-(width_diapo+space_diapo)*step);	
				
			}
			
		}
		
}

function settaDimensioneImmagini(){
//RIDIMENSIONA LE IMMAGINI e LE CENTRA
     
   var basewidth = 0;
   
   $('.galleria li').css({'top':(($('.galleria_outer').height()/2)-(height_diapo/2))+'px'})

}


function loading(stato){
	
	 	//MOSTRA MESSAGGIO CARICAMNETO e attiva le immagini quandcompletato
	
		if(stato){
			$('.galleria').fadeIn('slow', function() {
				// Animation complete elimina loading
				$('.loading').remove();
			});
         	$('.galleria_outer').each(function(index) {
									settaDimensioneImmagini();
			})
		}else{
			$('<div class="loading">Loading<span>...</span><div>').appendTo('.galleria_outer');	
		}
		
		
}


$(document).ready(function(){
 	//loading(0);
	//setGallery();
	controllaDiv();
})

$(window).load( 
	function (){
		//loading(1)
});




