// JavaScript Document

// Parametri di configurazione
var liDeltaAlpha	= 2;
var liAlphaMax		= 100; 

// Mostra o nasconde un oggetto HTML con l'effetto Fade
// FadeAction:		1 -> esegue il FadeIn
//						0 -> esegue solo lo spostamento dell'oggetto
//					  -1 -> esegue il FadeOut
//						2 -> da trasparente a opaco senza sfumatura
//					  -2 -> da opaco a trasparente senza sfumatura
function autoFade(lsObjectId, liFadeAction)
{ 
	var obj		= document.getElementById(lsObjectId);		
			
	// Gestione Fade
	switch(liFadeAction)
	{
		// Show (da trasparente a opaco senza sfumatura)
		case 2	:	
			// controllo di sicurezza per evitare dei loop
			if (obj.style.visibility == 'hidden')
			{
				obj.style.filter		= "Alpha(Opacity=" + liAlphaMax + ")";
				//obj.style.MozOpacity = liAlphaMax / 100;
				obj.style.opacity 	= liAlphaMax / 100;
				obj.style.visibility = 'visible';						
			}
			break;
		
		// FadeIn (da trasparente ad opaco)
		case 1	:	
			// controllo di sicurezza per evitare dei loop
			if (obj.style.visibility == 'hidden')
			{
				obj.style.filter 		= "Alpha(Opacity=" + 0 + ")";
				//obj.style.MozOpacity = 0;
				obj.style.opacity 	= 0;
				obj.style.visibility = 'visible';
				window.setTimeout("changeAlpha('" + lsObjectId + "', " + 0 + ", " + liFadeAction + ");", 1);
			}
			else
			{
				obj.style.filter 		= "Alpha(Opacity=" + 0 + ")";
				//obj.style.MozOpacity = 0;
				obj.style.opacity 	= 0;
				obj.style.visibility = 'hidden';
				autoFade(lsObjectId, liFadeAction);
			}
			break;
			
		// No Fade	
		case 0	:	
			break;
			
		// FadeOut (da opaco a trasparente)
		case -1	:	
			// controllo di sicurezza per evitare dei loop
			if ( (obj.style.filter == "Alpha(Opacity=" + liAlphaMax + ")") || /*(obj.style.MozOpacity == liAlphaMax / 100) ||*/ (obj.style.opacity == liAlphaMax / 100))
			{
				window.setTimeout("changeAlpha('" + lsObjectId + "', " + (liAlphaMax - 1) + ", " + liFadeAction + ");", 1);
			}
			break;
		
		// Hide (da opaco a trasparente senza sfumatura)
		case -2	:	
			// controllo di sicurezza per evitare dei loop
			if ( (obj.style.filter == "Alpha(Opacity=" + liAlphaMax + ")") ||  /*(obj.style.MozOpacity == liAlphaMax / 100) ||*/ (obj.style.opacity == liAlphaMax / 100))
			{
				obj.style.visibility = 'hidden';						
			}
			break;
	}
}


// Funzione di supporto alla funzione precedente
function changeAlpha(lsObjectId, liAlphaValue, liFadeAction)
{
	var obj = document.getElementById(lsObjectId);
	var incremento = liDeltaAlpha * liFadeAction;
	
	obj.style.filter 		= "Alpha(Opacity=" + liAlphaValue + ")";
	//obj.style.MozOpacity	= liAlphaValue / 100;
	obj.style.opacity 	= liAlphaValue / 100;
	
	if ((liAlphaValue < liAlphaMax) && (liAlphaValue >= 0))
	{
		window.setTimeout("changeAlpha('" + lsObjectId + "', " + parseInt(liAlphaValue + incremento) + ", " + liFadeAction + ");", 5);
	}
	if (liAlphaValue < 0)
	{
		obj.style.visibility = 'hidden';
	}
}


function autoLoadImg(lsObjectId, k, lsPath) {
	// k (quindi Immagine1) è l'indice dell'immagine da assegnare in questo ciclo
	// 			(Immagine2) è l'immagine su cui fare fade (è quella in 1° piano)
	
	var i					= 0;
	var liAction		= 1;
	var liNextObjId	= 1;
	var liMaxVal		= 16;
	var lsFileName 	= "";
	var lsFileName2 	= "";
	var objImmagine1	= document.getElementById(lsObjectId + k);
	
	// questa parte viene eseguita solo dopo che l'immagine è stata completamente caricata dal server
	objImmagine1.onload = function() {
													// Action: 	se k = 1 -> fadeout (-1)
													//				se k = 2 -> fadein   (1)
													
													liAction 	= (k == 1) ? -1 : 1;
													liNextObjId	= (k == 1) ? 2  : 1;
													autoFade(lsObjectId + 2, liAction);
													
													window.setTimeout("autoLoadImg('" + lsObjectId + "', " + liNextObjId + ", '" + lsPath + "');", 10000);
												}
	
	// Determino e assegno il nome della nuova immagine
	while (i == 0 || i > liMaxVal) {
		i = Math.floor(Math.random() * 100);
	}
	
	lsFileName			= lsFileName.concat(lsPath + "Immagini/AutoFade/image", parseInt(i), ".jpg");
	objImmagine1.src	= lsFileName;
}