﻿// File JScript

	function _AddFoto(_PathFotoThumb, _PathFoto){
		// Costruisco l'array con tutte le immagini da caricare
		SlideShow.aImg[SlideShow.IndexFoto] = new Image();
		SlideShow.aImg[SlideShow.IndexFoto].src = SlideShow.PathDirFoto + _PathFoto;
		
		SlideShow.aImgThumb[SlideShow.IndexFoto] = new Image();
		SlideShow.aImgThumb[SlideShow.IndexFoto].src = SlideShow.PathDirFotoThumb + _PathFotoThumb;
		
		// Memorizzo il path delle foto in miniatura
		SlideShow.aFotoImgThumb[SlideShow.IndexFoto] = SlideShow.PathDirFotoThumb + _PathFotoThumb;
		// Memorizzo il path delle foto
		SlideShow.aFotoPathImg[SlideShow.IndexFoto] = SlideShow.PathDirFoto + _PathFoto;
		// Incremento il contatore delle foto
		SlideShow.TotaleFoto++;
		// Incremento l'indice della foto corrente
		SlideShow.IndexFoto++;
		// Calcolo il totale delle pagine
		SlideShow.TotalePagine = SlideShow.TotaleFoto / SlideShow.FotoPerPagina;
		SlideShow.TotalePagine = parseInt(SlideShow.TotalePagine);
		if (((SlideShow.TotaleFoto / SlideShow.FotoPerPagina) - parseInt(SlideShow.TotalePagine)) > 0){
			SlideShow.TotalePagine++;
		}
		
		SlideShow.UpdateContatori();
	};

	function _GoFoto(val){
		if (val == '+'){
			SlideShow.FotoCorrente++;
			if (SlideShow.FotoCorrente > SlideShow.TotaleFoto - 1){
				SlideShow.FotoCorrente = 0;
				SlideShow.GoPagina('+');
			}else if(SlideShow.FotoCorrente >= (SlideShow.PaginaCorrente * SlideShow.FotoPerPagina)){
				SlideShow.GoPagina('+');
			}else{
				SlideShow.ShowFoto();
				SlideShow.UpdateContatori();
			}
		}else{
			SlideShow.FotoCorrente--;
			if (SlideShow.FotoCorrente < 0){
				SlideShow.FotoCorrente = SlideShow.TotaleFoto - 1;
				SlideShow.GoPagina('-');
			}else if(SlideShow.FotoCorrente < ((SlideShow.PaginaCorrente-1) * SlideShow.FotoPerPagina)){
				SlideShow.GoPagina('-');
			}else{
				SlideShow.ShowFoto();
				SlideShow.UpdateContatori();
			}
		}
		SlideShow.Debug();
	}

	function _GoFotoIndex(val){
		SlideShow.FotoCorrente = val;
		if (SlideShow.FotoCorrente > SlideShow.TotaleFoto - 1){
			SlideShow.FotoCorrente = 0;
			SlideShow.GoPagina('+');
		}else if(SlideShow.FotoCorrente >= (SlideShow.PaginaCorrente * SlideShow.FotoPerPagina)){
			SlideShow.GoPagina('+');
		}else if (SlideShow.FotoCorrente < 0){
			SlideShow.FotoCorrente = SlideShow.TotaleFoto - 1;
			SlideShow.GoPagina('-');
		}else if(SlideShow.FotoCorrente < ((SlideShow.PaginaCorrente-1) * SlideShow.FotoPerPagina)){
			SlideShow.GoPagina('-');
		}else{
			SlideShow.ShowFoto();
			SlideShow.UpdateContatori();
		}
		SlideShow.Debug();
	}

	function _GoPagina(val){
		if (val == '+'){
			SlideShow.PaginaCorrente++;
			SlideShow.FotoCorrente = (SlideShow.PaginaCorrente * this.FotoPerPagina) - this.FotoPerPagina;
			
			if (SlideShow.PaginaCorrente > SlideShow.TotalePagine){
				SlideShow.PaginaCorrente = 1;
				SlideShow.FotoCorrente = 0;
			}
		}else{
			SlideShow.PaginaCorrente--;
			SlideShow.FotoCorrente = (SlideShow.PaginaCorrente * this.FotoPerPagina) - this.FotoPerPagina;
			
			if (SlideShow.PaginaCorrente == 0){
				SlideShow.PaginaCorrente = SlideShow.TotalePagine;
				SlideShow.FotoCorrente = (SlideShow.TotalePagine * this.FotoPerPagina);
			}
		}
		
		SlideShow.ShowPagina();
		SlideShow.ShowFoto();
		SlideShow.UpdateContatori();
	}

	function _ShowFoto(){
		SlideShow.Visualizzatore.src = SlideShow.aImg[SlideShow.FotoCorrente].src;
		
		for (var CurImg = 0; CurImg < SlideShow.GalleryThumb.getElementsByTagName("img").length; CurImg++){
			var oImg = new Image();
			oImg = SlideShow.GalleryThumb.getElementsByTagName("img")[CurImg];
			oImg.className = "img_out";
		}
		
		var _FotoIndex = SlideShow.FotoCorrente - ((SlideShow.PaginaCorrente-1) * this.FotoPerPagina);
		SlideShow.GalleryThumb.getElementsByTagName("img")[_FotoIndex].className = "img_over";
		//GalleryThumb.getElementsByTagName("img")[SlideShow.FotoCorrente].className = "img_over";
		
		SlideShow.Debug();
	}

	function _ShowPagina(){
		if (SlideShow.PaginaCorrente == 1 && SlideShow.TotalePagine-1 == 0){
			SlideShow.ImgPageNext.width = 0;
			SlideShow.ImgPagePrev.width = 0;	
		}
		if (SlideShow.PaginaCorrente == 1 && SlideShow.TotalePagine-1 > 0){
			SlideShow.ImgPagePrev.width = 0;	
			SlideShow.ImgPageNext.width = 44;
		}
		if (SlideShow.PaginaCorrente > SlideShow.TotalePagine){
			SlideShow.ImgPagePrev.width = 43;	
			SlideShow.ImgPageNext.width = 44;
		}
		if (SlideShow.PaginaCorrente == SlideShow.TotalePagine){
			SlideShow.ImgPagePrev.width = 43;	
			SlideShow.ImgPageNext.width = 0;
		}
		
		
		var _FotoIndex = (SlideShow.PaginaCorrente-1) * this.FotoPerPagina;
		for (var CurImg = 0; CurImg < SlideShow.GalleryThumb.getElementsByTagName("img").length; CurImg++){
			var oImg = new Image();
			oImg = SlideShow.GalleryThumb.getElementsByTagName("img")[CurImg];
			if (_FotoIndex < SlideShow.TotaleFoto){
				oImg.src = SlideShow.aFotoImgThumb[_FotoIndex];
				oImg.width = 120;
				oImg.border = 1;	
				//oImg.attachEvent('onclick','SlideShow.GoFotoIndex(' + CurImg + ');');
			}else{
				oImg.width = 0;
			}
			_FotoIndex++;
		}
		this.Debug();
		
		
	}

	function _Auto(){
		// Avvia il player
		this.IdTimer = window.setInterval("SlideShow.GoFoto('+')", 3000);
	}

	function _Stop(){
		// Stoppa il player
		window.clearInterval(this.IdTimer);
	}

	function _UpdateContatori(){
		SlideShow.ContaPagine.innerHTML= "Pagina " + (SlideShow.PaginaCorrente) + " di " + SlideShow.TotalePagine;
		SlideShow.ContaFoto.innerHTML = "Foto " + (SlideShow.FotoCorrente + 1) + " di " + SlideShow.TotaleFoto;
	}

	function _Debug(){
		if (!SlideShow.debug) return;
		
		window.status = "FotoCorrente=" + SlideShow.FotoCorrente + ";";
		window.status += "PaginaCorrente=" + SlideShow.PaginaCorrente + ";"
		window.status += "TotalePagine=" + SlideShow.TotalePagine + ";";
		window.status += "FotoPerPagina=" + SlideShow.FotoPerPagina + ";";
		window.status += "TotaleFoto=" + SlideShow.TotaleFoto + ";";
		
		//window.status += "_FotoIndex=" + _FotoIndex + ";";
		
	}

	function SlideShow(_PathDirFotoThumb, _PathDirFoto, oImg, oGallery, _oImgPagPrev, _oImgPagNext, _oContaPagine, _oContaFoto ){
		// Directory delle foto miniature
		this.PathDirFotoThumb = _PathDirFotoThumb;
		// Directory delle foto
		this.PathDirFoto = _PathDirFoto;	
		// Oggetto html immagine per visualizzare le foto
		this.Visualizzatore = oImg;
		// Memorizza il numero della foto corrente impostando a 0 la prima
		this.FotoCorrente = 0;
		// Memorizza il numero della pagina corrente inpostando a 0 la prima
		this.PaginaCorrente = 1;
		// Memorizza il numero totale di foto presenti
		this.TotaleFoto = 0;
		// Memorizza l'indice della foto corrente
		this.IndexFoto = 0;
		// Oggetto Tabella che contiene gli oggetti immagine per le immagini in miniatura
		this.GalleryThumb = oGallery;
		// Memorizza il numero di foto per pagina
		//this.FotoPerPagina = oGallery.getElementsByTagName("img").length;
		this.FotoPerPagina = 8;
		
		this.TotalePagine = 0;
		
		this.ContaPagine = _oContaPagine;
		this.ContaFoto = _oContaFoto;
		
		this.ImgPagePrev = _oImgPagPrev;
		this.ImgPagePrevWidth = this.ImgPagePrev.width;
		this.ImgPageNext = _oImgPagNext;
		this.ImgPageNextWidth = this.ImgPageNext.width;
		
		// Memorizza i path delle foto minature
		this.aFotoImgThumb = new Array();
		// Memorizza i path delle foto
		this.aFotoPathImg = new Array();
		
		// Array per la precarica delle immagini
		this.aImg = new Array();
		// Array per la precarica delle immagini miniature
		this.aImgThumb = new Array();
		
		// Id del timer
		this.IdTimer = 0;
		 
		// Metodi dell'oggetto SlideShow
		this.AddFoto=_AddFoto;
		this.ShowFoto = _ShowFoto;
		this.GoFoto = _GoFoto;
		this.GoFotoIndex = _GoFotoIndex;
		this.GoPagina = _GoPagina;
		this.ShowPagina = _ShowPagina;
		this.Auto =_Auto;
		this.Stop = _Stop;
		this.UpdateContatori = _UpdateContatori;
		this.Debug = _Debug;
		
		this.debug = false;
	}