// tableau des champs
var compteurs = new Array()
var champsPris = new Array()
// tableau de temps simple
var temps = new Array()
// nombre de compteur
var nombre = 0
// temps initial de recharge de la page
var decompteIni = false
// setTimeOut
var stout
// lancer
var lancer = 0
//	champs de décompte
var terminus


function initCompteur(nbSecondes,champs) {
	if(document.getElementById(champs)) {
		var indice = in_array(champsPris,champs);
		if(indice != -1) {
			compteurs.splice(indice, 1);
			champsPris.splice(indice, 1);
			temps.splice(indice, 1);
			nombre--;
		}
		// le champ
		compteurs[nombre] = document.getElementById(champs)
		champsPris.push(champs)
		terminus=champs;
		// le temps de décompte
		temps[nombre] = Math.round(nbSecondes) + 3;
		// incremente le nombre de compteur
		nombre++
		// decompte ini
		if(nbSecondes < decompteIni || decompteIni == false) {
			decompteIni = Math.round(nbSecondes) + 3;
		}
	}
}

function in_array(tab,val) {
	for (var i=0; i<tab.length; i++) {
		if (tab[i] == val)
			return i;
	}
	return -1;
}

function afficherEnDigital(numeric) {

	if(numeric >= 0 && numeric < 10) {
		return '0'+numeric
	} else {
		return numeric
	}
}

function transformeSecEnDate(nbSecondes) {

	// variables
	var jour = 0
	var heure = 0
	var minute = 0
	var message = ''
	
	// on calcule les jours complets
	jour = Math.floor(nbSecondes / (24*60*60))
	nbSecondes -= jour * (24*60*60)
	
	// on calcule les heures complets
	heure = Math.floor(nbSecondes / (60*60))
	nbSecondes -= heure * (60*60)
	
	// on calcule les minutes complets
	minute = Math.floor(nbSecondes / (60))
	nbSecondes -= minute * (60)
	
	if(jour > 0) {
		message +=  afficherEnDigital(jour)+'j  '
	} 
	
	if(heure > 0) {
		message +=  afficherEnDigital(heure)+'h  '
	}
	
	if(minute > 0) {
		message +=  afficherEnDigital(minute)+'m  '
	} 
	
	message += Math.round(afficherEnDigital(nbSecondes))+'s'
	
	return message
}

function afficheCompteur() {
	
	// pour chaque
	var j = 0
	while(j != nombre) {
		// on affiche
		if(temps[j] > 0){
			compteurs[j].innerHTML = transformeSecEnDate(temps[j]);
		}else{
			compteurs[j].innerHTML = 'Terminé';
		}
		// incremente
		j++
	}
}

function decompte() {

	// si il y a un décompte
	if(decompteIni != false) {
		// compteur
		var i = 0
		// pour chaque
		while(i != nombre) {
			// on décrémente le temps
			temps[i] --
			// on incremente i
			i++
		}
		// on décrémente le temps ini
		decompteIni--
		// on affiche
		afficheCompteur()
		// on relance la fonction pour actualiser à la seconde
		stout = setTimeout("decompte()",1000);
		lancer = 1;
	}
}

function trytoload(idChampsCache) {
	// si le champs caché est chargé
   if(document.getElementById(idChampsCache)) {
		// liste des chronos à lancer
		var initCompteurs = document.getElementById(idChampsCache).value.split(';')
		var temp
		// si timeout
		if (lancer == 1) {
			clearTimeout(stout);
		}
		// pour chaque chrono
		for(var i=0;i<initCompteurs.length;i++){
				// récup des valeurs
				temp = initCompteurs[i].split(':')
				// initialisation si pas undefined
				if(temp.length == 2)
					initCompteur(temp[0],temp[1])
		}
		// lancement du décompte
		decompte()

   }
}

trytoload('lanceurCh')
trytoload('lanceurCh2')
function reloaded() {
	if(typeof trytoload== "function") {
		trytoload('lanceurCh');
	}
}
function reloaded2() {
	if(typeof trytoload== "function") {
		trytoload('lanceurCh2');
	}
}