﻿/*********************************************************************\
MANAGER CHE CONTROLLA LO SWAP DELLE IMMAGINI DI BACKGROUND IN HOME PAGE
\*********************************************************************/
SwapBackgroundManager = function(){}
//CONFIG
SwapBackgroundManager.BodyId        =  "hpbody"; 	//id del body a cui va sostituita la ccsclass
SwapBackgroundManager.SwapTime      =  3500; 		//Tempo di transizione tra uno swap e l'altro
SwapBackgroundManager.SwapCatNumber =  4; 			//Numero di categorie di background disponibili per lo swap
SwapBackgroundManager.SwapNumber    =  3; 			//Numero di cssclass disponibili per lo swap
SwapBackgroundManager.ClassRadix    =  "hp"; 		//radice del nome della classe a cui viene aggiunto un numero da 1 a SwapBackgroundManager.SwapNumber
SwapBackgroundManager.Mode          =  "ROLLING";	// "ROLLING" = ricarica l'immagine ogni X secondi 
													// "RANDOM" = carica randomicamente un'immagine e la mantiene fino al refresh
													
SwapBackgroundManager.DefaultCat    =  0;			//definisce il gruppo di immagini, se 0 la funzione sceglie random tra tutte le
													//immagini
SwapBackgroundManager.expire        = null;			//variabile per il salvataggio del timeout

//Public Methods
SwapBackgroundManager.StartSwap = function()
{
	//get Date
	var now = new Date();
	
	//randomize cat
	if(SwapBackgroundManager.DefaultCat == 0){
		var numCat = (now.getSeconds()) % SwapBackgroundManager.SwapCatNumber;
		numCat = numCat + 1;
		if( numCat < 10 )
			numCat = "0" + numCat;
	}else{
		numCat = SwapBackgroundManager.DefaultCat;
		if( numCat < 10 )
			numCat = "0" + numCat;
	}
	
	//var now = new Date();
	
	//randomize number
	var numImg = (now.getSeconds()) % SwapBackgroundManager.SwapNumber;
	numImg = numImg + 1;
	if( numImg < 10 )
		numImg = "0" + numImg;
		
	findElementById( SwapBackgroundManager.BodyId ).className = SwapBackgroundManager.ClassRadix + numCat + "_" + numImg;
	if( SwapBackgroundManager.Mode == "ROLLING" ){
		SwapBackgroundManager.expire = window.setTimeout( SwapBackgroundManager.StartSwap, SwapBackgroundManager.SwapTime );
		//alert(""+SwapBackgroundManager.expire);
	}
}

SwapBackgroundManager.DefaultCatEnable = function( numberOfCat )
{
	SwapBackgroundManager.DefaultCat = numberOfCat;
	//set timeout to null
	clearTimeout(SwapBackgroundManager.expire);
	SwapBackgroundManager.StartSwap();
}

SwapBackgroundManager.DefaultCatDisable = function()
{
	SwapBackgroundManager.DefaultCat = 0;
	//clearTimeout(SwapBackgroundManager.expire);
	//SwapBackgroundManager.StartSwap();
}


//UTILITY

function findElementById(id_elemento) {
	// elemento da restituire
	var elemento;
	// se esiste il metodo getElementById
 	// questo if sarà  diverso da false, null o undefined
 	// e sarÃ  quindi considerato valido, come un true
	if(document.getElementById)
		elemento = document.getElementById(id_elemento);
	// altrimenti è necessario usare un vecchio sistema
	else
		elemento = document.all[id_elemento];
	// restituzione elemento
	return elemento;
}