/******* BUTINE.NET -> Edit.js
********
******** Routines de manipulation des zones de textes (<input type="text">)
********
******** Routines de scrolling
********   IniScrollText("NomText") : ajoute un enregistrement dans le tableau des textes à "scroller"
********   ActiveScrollText("NomText", T/F) : (dés)active le scrolling d'un texte
********   TimerScrollText : routine de scrolling
********
********/

function IniScrollText(NomText) {
  // Si la liste n'a encore pas été crée
  if (typeof document.aLstScrollText == "undefined") {
//  if (document.aLstScrollText == undefined) {
    document.aLstScrollText = new Array();
    setInterval("TimerScrollText()",100);
  }

  // Récupération de l'objet désigné par le nom...
  var obj = document.getElementById(NomText);
  // ...puis ajout d'un Enr avec : -1- l'objet text, -2- son libellé de départ, -3- s'il est actif ou non
  if (obj != null) {
    var IdEnr = document.aLstScrollText.length;
    document.aLstScrollText[IdEnr] = new Array(3);
    document.aLstScrollText[IdEnr][0] = obj; // L'objet
    document.aLstScrollText[IdEnr][1] = obj.value; // Le libellé de départ
    document.aLstScrollText[IdEnr][2] = false; // Inactif par défaut (!! toujours activer par la function !!)
  }
}

function ActiveScrollText(NomText, Active) {
  // On recherche l'Id de l'enregistrement
  var IdEnr = -1;
  for (var i = 0; i < document.aLstScrollText.length; i++)
    if (document.aLstScrollText[i][0].id == NomText)
      IdEnr = i;

  if (IdEnr != -1) {
    document.aLstScrollText[IdEnr][2] = Active;
    var obj = document.aLstScrollText[IdEnr][0];
    var str = '';
    
    if (Active == true) {
      // Si on active le scroll => ajout d'espaces dans le libellé
      if (obj.value.length >= obj.size) {
        // Si la longueur du texte est plus grand que la zone d'affichage => 1 seul espace
        str = obj.value + ' ';
      } else {
        // Sinon on complète avec des espaces
        for (var i = 0; i < min(obj.size, obj.maxlength); i++)
          str += ' ';
        str += obj.value;
      }
    } else {
      // Sinon, on remet le libellé de départ
      str = document.aLstScrollText[IdEnr][1];
    }
    document.aLstScrollText[IdEnr][0].value = str;
  }
}

function TimerScrollText() {
  for (var i = 0; i < document.aLstScrollText.length; i++) {
    if (document.aLstScrollText[i][2] == true) {
      var obj = document.aLstScrollText[i][0];
      str = obj.value.substring(1, obj.value.length);
      str += obj.value.substring(0, 1);
      document.aLstScrollText[i][0].value = str;
    }
  }
}

//******** Routines de clignotements => à finaliser

var Drapeau=0;

function Clignote() {
// for(var i = 0; i < document.getElementsByTagName("li").length; i++)
  for (var Text in document.getElementsByTagName("debat").length)
    document.getElementsByTagName("debat").setAttribute("style", "background-color:yellow;");
}

// tous les cycles (5s?), on fait clignoter l'élément suivants
function IniClignote() {
  if (Drapeau==1)
    window.setTimeout("Clignote('Debat')", 0);
}

//******** Bandeau défilant à base de calques

var PAS = 1;
var DELAI = 50;
var Bandeaux = new Array();

/**** ActiveBandeaux
* Fait défiler un calque à 'lintérieur d'un autre
****/
function ActiveBandeaux() {
  if(document.all) { // Version IE 6.0 (ne supporte que DOM 1)
    for (var i=0; i<Bandeaux.length; i++) {
      var DivTexte = Bandeaux[i].getElementsByTagName("div")[0];
      // style="width:200; height:20; position:absolute; left:0; top:0; z-index:1; overflow:hidden;"
      var Left = GetVal(DivTexte.style.left);
      var Width = GetVal(DivTexte.style.width);
      if ((Left-PAS)>(-Width)) {
        var NvLeft = Left-PAS;
      } else {
        var NvLeft = GetVal(Bandeaux[i].style.width)-PAS;
      }
//      var sStyle = "width:"+Width+"px;height:"+Bandeaux[i].style.height+";position:absolute;left:"+NvLeft+"px;top:0px;z-index:1; overflow:hidden;";
      DivTexte.style.setAttribute("left", NvLeft+"px", "false");
    }
  } else { // Version DOM 2
    for (var i=0; i<Bandeaux.length; i++) {
      var DivTexte = Bandeaux[i].firstChild.nextSibling;
      // style="width:200; height:20; position:absolute; left:0; top:0; z-index:1; overflow:hidden;"
      var Left = GetVal(DivTexte.style.left);
      var Width = GetVal(DivTexte.style.width);
      if ((Left-PAS)>(-Width)) {
        var NvLeft = Left-PAS;
      } else {
        var NvLeft = GetVal(Bandeaux[i].style.width)-PAS;
      }
      var sStyle = "width:"+Width+"px;height:"+Bandeaux[i].style.height+";position:absolute;left:"+NvLeft+"px;top:0px;z-index:1; overflow:hidden;";
      DivTexte.setAttribute("style", sStyle);
    }
  }
  
  window.setTimeout("ActiveBandeaux()", DELAI);
}

function IniBandeaux() {
  // Recherche des bandeaux
  for (var i=0; i<document.getElementsByTagName("div").length; i++)
    if (document.getElementsByTagName("div")[i].id.substr(0, 7)=='Bandeau')
      Bandeaux.push(document.getElementsByTagName("div")[i]);
  
  if (Bandeaux.length>0)
    window.setTimeout("ActiveBandeaux()", 0);
}
