//-------------FUNZIONE CHE FA LO SLIDESHOW CON BLEND DI UNA SERIE DI IMMAGINI-------------------
//			DATA CREAZIONE: 19/13/2009
//
//		- includere questa libreria
//		
//		- costruire una stringa con segno di divisione tra una foto ed un'altra il carattere ";"
//
//		- richiamare la funzione:
//			RunSlideShow(divid,imageid,n,displaySecs)
//				- divid --> id del div contenitore
//				- imageid --> id dell'immagine
//				- n --> posizione di partenza
//				- displaySecs --> secondi tra una foto ed un'altra
//
//		- ARRAY DI IMMAGINI:
//				imageFiles
//
//		-	variabile  "numero_slide"  che contiene il numero di immagini
//
///////////////////////////////////////////////////////////////////////////////////////////////////
//
//				ESEMPIO DI FUNZIONE DA METTERE NELLA PAGINA DA CARICARE AL BODY ONLOAD	
//				
//				-	RunSlideShow('divid','imageid',0,2);
//					
//				SCRIPT DA METTERE NELLA PAGINA PER CARICARE L'IMMAGINE
//				<script language="JavaScript">
//				
//					imageFiles[0].src="img/1.jpg";
//					imageFiles[1].src="img/2.jpg";
//					imageFiles[2].src="img/3.jpg";
//					imageFiles[3].src="img/4.jpg";
//					imageFiles[4].src="img/5.jpg";
//					
//					<//script>
//
///////////////////////////////////////////////////////////////////////////////////////////////////

var slideCache = new Array();			//dichiarazione dell'array per la cache delle immagini
var n;									//variabile della posizione nell'array


/////////////////////////////////////////////////////////////////////////////////
/*			DICHIARATE NELLA PAGINA HTML
var numero_slide = 5;								//numero di immagini
var imageFiles = new Array();						//dichiarazione dell'array dellle immagini
for (i=0; i<numero_slide; i++){						//inizializzazione dell'array
imageFiles[i]=new Image();
}*/
//////////////////////////////////////////////////////////////////////////////////

//funzione che regola l'opacità
function changeOpac(opacity, id)
{
var object = document.getElementById(id).style;
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
}

// funzione che attiva il blend sull'immagine
function blendimage(divid, imageid, imagefile, millisec)
{
var speed = Math.round(millisec / 10);
var timer = 0;

//mette la corrente immagine come background del div
document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";

//APPLICA all'immagine una trasparenza
changeOpac(0, imageid);

//mette la nuova immagine nel campo immagine
document.getElementById(imageid).src = imagefile;

//fa il blend dell'immagine
for(i = 0; i <= 100; i++)
		{
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

//funzione principale che si occupa di padssare le immagini alle altre funzioni
function RunSlideShow(divid,imageid,n,displaySecs)
{
		
		var imageSeparator = imageFiles[n].src;			//immagine di base
		var nextImage = imageFiles[n].src;				//immagine successiva
		changeOpac(0, imageid);							//cambia l'opacità dell'immagine
		blendimage(divid,imageid,nextImage,100);		//attiva il blend sulla prossima immagine
		n++;											//aumenta il contatore
		if(n >= numero_slide) {									//se supero il limite metto il contatore a 0
			n=0;										//array circolare
		}
		nextImage = imageFiles[n].src;					//prende la prossima immagine
		if (slideCache[nextImage] == null)				//se non esiste nell'array della cache 
			{
			slideCache[nextImage] = new Image;			//inizializza
			slideCache[nextImage].src = nextImage;		//inserisce la prossima immagine
			}
			
			
	setTimeout("RunSlideShow('"+divid+"','"+imageid+"',"+n+","+displaySecs+")",displaySecs*1000);//richiama la funzione
	}


