

/* */
var lettreDefile = -1;
var speed = 250;
var tourneID;
var _titre = "";
var _ou = "";

/**
 * 
 * Décompose un texte et l'écrit avec une couleur différente pour chaque lettre
 * 
 * @param {*} t : contient le texte qui sera décomposé
 * @param {*} ou : l'id de l'élément où le texte sera écrit
 */
function decompTitre(txt, ou) {
    if (!txt) {
        txt = _titre;
    }
    _titre = txt;

    if (!ou) {
        ou = _ou;
    }
    _ou = ou;

    // c pour la couleur du texte et _c pour la couleur complémentaire
    var c, _c;
    var html = "";

    if (txt !== undefined) {
        // HSL
        var decal = Math.round(Math.random() * 360);

        for (var i = 0, max = txt.length; i < max; i++) {

            c = colorHSL(decal + i, max, 100, 80, 1, false); // "hsl(" + h + "," + s + "%, " + l + "%)";
            _c = colorHSL(decal + i, max, 100, 80, 1, true); //"hsl(" + _h + "," + _s + "%, " + _l + "%)";

            // txt contient la texte et sera traitée ici comme un tableau, chaque caractère est une case.
            if (txt[i] === " ") {
                html += "<span class='lettreColor' style='color:" + c + "; text-shadow: 0px 0px 19px " + _c + ";'>&nbsp;</span>";
            } else {
                html += "<span class='lettreColor' style='color:" + c + "; text-shadow: 0px 0px 19px " + _c + ";'>" + txt[i] + "</span>";
            }
        }

        lettreDefile++;
        // on a traité le dernier caractère et on redémarre au premier.
        if (lettreDefile >= txt.length) {
            lettreDefile = 0;
        }

        // la fonction est appelée à la fin de tempo. 
        // et sera rappelé indéfiniment.
        tourneID = setTimeout(function () {
            decompTitre();
        }, speed);
    }

    // écriture du nouveau texte, mis en forme dans des span, dans la balise prévu (_ou)
    document.querySelector(_ou).innerHTML = html;
}