
var mesIntervalles = new Array();
var mesDates = new Array();
var tempsIntervalle = 1;

var datePatron = /^([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4})(?: ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}))?$/g;

function initCompteurs()
{
    var blocCompteur, blocDate, contenuDate;
    var annee, mois, jour, heure, minute, seconde;
    var heureDate;

    var i = 1;

    do
    {
        blocDate = document.getElementById('Date_' + i);
        blocCompteur = document.getElementById('Compteur_' + i);
        if(blocCompteur && blocDate)
        {
            contenuDate = blocDate.innerHTML;

            if(contenuDate.match(datePatron))
            {
                jour = parseInt(contenuDate.replace(datePatron, '$1'));
                mois = parseInt(contenuDate.replace(datePatron, '$2'));
                annee = parseInt(contenuDate.replace(datePatron, '$3'));

                heure = parseInt(contenuDate.replace(datePatron, '$4'));
                if(!isNaN(heure))
                {
                    minute = parseInt(contenuDate.replace(datePatron, '$5'));
                    seconde = parseInt(contenuDate.replace(datePatron, '$6'));
                }
                else
                {
                    heure = 0;
                    minute = 0;
                    seconde = 0;
                }
                mesDates[i] = new Date(annee, mois - 1, jour, heure, minute, seconde);

                mesIntervalles[i] = setInterval('rafraichirCompteur(' + i + ')', tempsIntervalle);
                rafraichirCompteur(i);
            }
            i++;
        }
    }
    while(blocCompteur && blocDate);
}

function rafraichirCompteur(idCompteur)
{
    var blocDate = document.getElementById('Date_' + idCompteur);
    var blocCompteur = document.getElementById('Compteur_' + idCompteur);
    var dateMaintenant;

    if(blocCompteur && blocDate)
    {
        dateMaintenant = new Date();
        blocCompteur.innerHTML = formatageDuree(mesDates[idCompteur].getTime() - dateMaintenant.getTime(), idCompteur);
    }
}

function formatageDuree(timeStamp, idCompteur)
{
    if(timeStamp <= 0)
    {
        clearInterval(mesIntervalles[idCompteur]);
        return 'Terminé !';
    }
    else
    {
        var secondes = Math.floor(timeStamp / 1000) % 60;
        var minutes = Math.floor(timeStamp / 60000) % 60;
        var heures = Math.floor(timeStamp / 3600000) % 24;
        var jours = Math.floor(timeStamp / (1000 * 60 * 60 * 24));

        if(secondes < 10) secondes = '0' + secondes;
        if(minutes < 10) minutes = '0' + minutes;
        if(heures < 10) heures = '0' + heures;

        return '<span class="white"><b>' + jours + ' Jrs ' + heures + ' H ' + minutes + ' min ' + secondes + ' sec</b></span>';
    }
}
