//Objet à générer en PHP
/*
 var tab_event = 
{
	'event1': 
	{
		'libelle': 'Rallye de Monte Carlo', 
		'date': '2010/10/12 11:50:00'
	},
	
	'event2': 
	{
		'libelle': 'Rallye du Var', 
		'date': '2010/12/02 16:25:42'
	}
}; 

*/

//Récupération du nombre d'évènement (impossible d'utiliser length sur un objet
var count_event = 0;

jQuery.each(tab_event,function() { count_event++; });

//Temps de rafraichissement du timer en ms
var time = 1000;

//Index de l'évènement
var index_event = 1;

//Index du l'évènement de parcours (pour la gestion multi-évènement)
var count = 0;

//Temps de rotation des évènements (pour la gestion multi-évènement)
var max = 5;	

//S'il n'y a qu'un évènement
if(count_event == 1)
{
	//Mis en place d'une intervale sur l'évènement N°1 (celui en cours de traitement)
	setInterval(function() { var event = get_timer_data(tab_event.event1);refresh_timer(event); },time);
}

//S'il y a plusieurs évènements
else
{
	//Mis en place d'une intervale avec injection de code en paramètres : les joies du JS :D
	setInterval(function() 
	{ 							
		count++;			
		if(count > max)
		{
			//Partie **crade** pour se repérer dans l'objet (on ne peux pas y aller à coup d'index comme dans un array)
			count = 0;
			index_event = (++index_event > count_event ? 1 : index_event);
			
			//Effet de disparition
			jQuery('.timer_bloc').fadeOut('fast',function() 
			{ 
				//Récupération des données : 
				//		Oui OK ily a un eval mais bon toujours le même principe, dans un objet c'est impossible de se déplacer par key... 
				//		Peut-être voir à stocker ça dans la variable root "window"...
				event = get_timer_data(eval('tab_event.event'+index_event));
											
				//Modification du bloc avec les données précédement récupérées
				refresh_timer(event);				
				
				//Effet d'apparition
				jQuery('.timer_bloc').fadeIn('fast'); 
			});
		}
		else
		{
			//Récupération des données			
			event = get_timer_data(eval('tab_event.event'+index_event));							
			//Modification du bloc avec les données précédement récupérées				
			refresh_timer(event);
		}
	},time);
}



function get_timer_data(event)
{
	var data = '';
	if(event)
	{
		//Récupération de la date actuelle
		var actuel = new Date();
		
		//Récupération de la date de l'évènement		
		var evenement = new Date(event.date.substr(0,4),event.date.substr(5,2)-1,event.date.substr(8,2),event.date.substr(11,2),event.date.substr(14,2),event.date.substr(17,2));
		
		//Calcul de la différence de timestamp entre les deux
		var tmp_data = evenement-actuel;
		if(tmp_data > 0)
		{
			//Objet qui sera retournéaprès les calculs
			data = {'jours' : 0,'heures' : 0,'minutes' : 0,'secondes' : 0, 'libelle' : event.libelle }

			// Gestion du décalage de jours
			data.jours = Math.floor(tmp_data/1000/60/60/24);
			tmp_data = tmp_data-data.jours*24*60*60*1000;
			if(data.jours < 10) data.jours = '0'+data.jours;

			// Gestion du décalage d'heures
			data.heures = Math.floor(tmp_data/1000/60/60);
			tmp_data = tmp_data-data.heures*60*60*1000;
			if(data.heures < 10) data.heures = '0'+data.heures;

			// Gestion du décalage des minutes
			data.minutes = Math.floor(tmp_data/1000/60);
			tmp_data = tmp_data-data.minutes*60*1000;
			if(data.minutes < 10) data.minutes = '0'+data.minutes;

			// Gestion du décalage des secondes
			data.secondes = Math.floor(tmp_data/1000);
			tmp_data = tmp_data-data.secondes*1000;
			if(data.secondes < 10) data.secondes = '0'+data.secondes;
		}
	}
	return data;
}

function refresh_timer(data)
{
	if(data)
	{
		//Changement du libellé
		jQuery('.libelle_timer').html(data.libelle);
	
		//Changement des jours restants
		jQuery('#days span').html(data.jours);
	
		//Changement des heures restantes
		jQuery('#hours span').html(data.heures);
	
		//Changement des minutes restantes	
		jQuery('#minutes span').html(data.minutes);
	
		//Changement des secondes restantes		
		jQuery('#seconds span').html(data.secondes);
	}
}


