 
(function($) {
		  
	var AllTimers = Array();
	var generalTimer = null;
	var startEvent = false;
	var timerRefreshAjax = true;
	
    $.Timer = function(temps_total, temps, id, msgFin, option)
    {
		if(!option) option = {};
		option = $.makeOption(option);
		val = {'temps':temps, 'id':id, 'msgFin':msgFin, 'temps_total':temps_total, 'temps_ecoule':(temps_total-temps), 'option':option};
		
		insert=false;
		for(i=0;i<AllTimers.length;i++)
		{
			if(AllTimers[i]==null) continue;
			if(AllTimers[i].id==id)
			{
				AllTimers[i] = val;
				insert = true;
			}
		}
		
		if(insert==false)
		{
			AllTimers.push(val);
		}
		
		if(!startEvent)
		{
			$(document).ready(function() { $.TimerStart(); });
		}
		startEvent = true;
    };
	
    $.TimerStart = function()
    {
        generalTimer = setInterval($.TimerTick, 1000);
    };
	
    $.TimerClear = function()
    {
        AllTimers = Array();
    };
	
    $.makeOption = function(option)
    {
        if(!option.progression)
			option.progression = true;
			
        if(option.refreshAjax==false)
			timerRefreshAjax = false;
		else
			timerRefreshAjax = true;
			
		return option;
    };
	
    $.TimerFormat = function(temps)
    {
        jours = 0;
		heures = 0;
        minutes = 0;
		secondes = 0;
		
		jours = Math.floor(temps / (24 * 60 * 60));
		if(jours>0)
			temps -= jours * 24 * 60 * 60;
		
		heures = Math.floor(temps / (60 * 60));
		if(heures>0)
			temps -= heures * 60 * 60;
		
		minutes = Math.floor(temps / 60);
		if(minutes>0)
			temps -= minutes * 60;
		
		secondes = temps;
		
		if(jours>1) 
			jours = jours+" j";
		else if(jours>0) 
			jours = jours+" j";
		else
			jours = "";
		
		if(heures>1) 
			heures = heures+" h";
		else if(heures>0) 
			heures = heures+" h";
		else
			heures = "";
		
		if(minutes>1) 
			minutes = minutes+" m";
		else if(minutes>0) 
			minutes = minutes+" m";
		else
			minutes = "";
			
		
		if(secondes>1) 
			secondes = secondes+" s";
		else
			secondes = secondes+" s";
			
		return jours+" "+heures+" "+minutes+" "+secondes;
    };
	
    $.TimerProgression = function(temps_total, temps_ecoule)
    {
        progression = Math.round(temps_ecoule * 100 / temps_total);
		return progression;
    };
	
    $.TimerTick = function()
    {
       for(var i=0;i<AllTimers.length;i++)
	   {
			if(AllTimers[i]==null) continue;
			
			AllTimers[i].temps--;
			
			if(AllTimers[i].temps<=0)
			{
				$('#'+AllTimers[i].id).html(AllTimers[i].msgFin);
				progression = "100%";
				$('#'+AllTimers[i].id+'_barre').animate({width:progression}, 1000);
				$('#'+AllTimers[i].id+'_barre_txt').html(progression);
				if(AllTimers[i].temps<0)
				{
					AllTimers[i] = null;
					if(timerRefreshAjax==true) 
						$.ajaxRefresh();
				}
			}
			else if(AllTimers[i].temps>0)
			{
				AllTimers[i].temps_ecoule++;
				$('#'+AllTimers[i].id).html($.TimerFormat(AllTimers[i].temps));
				progression = $.TimerProgression(AllTimers[i].temps_total, AllTimers[i].temps_ecoule)+"%";
				
				$('#'+AllTimers[i].id+'_barre').animate({width:progression}, 1000);
				$('#'+AllTimers[i].id+'_barre_txt').html(progression);
			}
	   }
    };
})(jQuery);

