/*fonction d'initialisation du scroll sur un élément
   La fonctionne se lance ainsi :
    initScroll(ElementId, increment, timer, direction, ismouseover)
    ElementId : correspond à l'identifiant de l'élément visé
    increment : nombre de pixels que le block avance
    timer : durée en millisecondes avant la prochaine incrémentation (avancement)
    direction : direction du bloc :
                -TB : Top to Bottom, du haut vers le bas
                -BT : Bottom to Top, du bas vers le haut
                -LR : Left to Right, de la gauche vers la droite
                -RL : Right to Left, de la droite vers la gauche
    ismouseover : arrêt du défilement lors du passage de la souris
                  true : action avec souris
                  false : aucune action avec souris

    exemple :
       -initScroll("monbloc", 2, 20, "tb");
       -initScroll("mesnews", 1, 30, "lr");


   la fonction scrollElement est la fonction qui est appelée successivement, pour faire avancer le scroll.
   la fonction initScroll sert à créer et initialiser le block avec qu'il puisse faire du scrolling.
   sous Opera, le scroll ne fonction que si les scroller sont visible (overflow:auto), avec overflow:hidden
   le scroll ne fonctionnera pas sous Opera

   Vous pouvez à tout moment arrêter le scroll sur un bloc ou le relancer.
   il vous suffit pour cela de faire un clearInterval(lenomdemonblockTimer)
   le nom de la variable qui est lancée par setInterval, est constitué de l'id du bloc suivi du mot Timer
   ex : blocktoscrollTimer
   et vous pouvez à tout moment relancer la fonction par un setInterval de cette manière :
   var monTimer = setInterval('scrollElement("iddemonElement", 10, "tb"', 30);

   la fonction scrollElement se lance avec les parametre ElementId, increment, direction.

   Attention aux valeurs que vous choisissez, dans l'increment, vous pouvre mettre des valeurs de 1 à 5, c'est largement suffisant
   et pour le timer, mettez des valeurs de 10 à 100, c'est une bonne fouchette


 */

function initScroll(EltId, increment, timer, direction, ismouseover) {
   direction = direction.toLowerCase();
   var BlockScroll = document.getElementById(EltId); //On recupere l'element
   //On rajoute les attributs dans l'élément, ça évite de se les trimballer à chaque fois
   BlockScroll.increment = increment;
   BlockScroll.timer = timer;
   BlockScroll.direction = direction;
   if (direction=="bt" || direction=="tb") { //direction verticale
      var FirstDiv = BlockScroll.insertBefore(document.createElement("div"), BlockScroll.firstChild); //On cree un DIV au debut du bloc
      var LastDiv = BlockScroll.appendChild(document.createElement("div")); //on cree un div à la fin du bloc
      FirstDiv.style.height = BlockScroll.clientHeight+"px"; //On dimensionne le premier div de la hauteur du bloc
      FirstDiv.style.clear = "both"; // ENT : on replace le div dans le flux html (car les div alentours peuvent flotter))
      LastDiv.style.height = BlockScroll.clientHeight+"px"; //idem pour le dernier div
      LastDiv.style.clear = "both"; // ENT : on replace le div dans le flux html (car les div alentours peuvent flotter)
   }
   if (direction=="lr" || direction=="rl") { //direction horizontale
      BlockScroll.style.paddingLeft=BlockScroll.clientWidth;
      BlockScroll.style.paddingRight=BlockScroll.clientWidth;
      BlockScroll.style.whiteSpace="nowrap"; //On vire le retour charriot afin de présenter le texte sur une seule ligne
    }
 //Rajout des évènement sur le block
 if (ismouseover) {
    BlockScroll.onmouseover = function() { //Arrête le défilement lors du passage de la souris
       this.backupincrement = this.increment;
       this.increment=0;
    }
    BlockScroll.onmouseout = function() {
       this.increment=this.backupincrement;
    }
 }
 eval('var '+EltId+'Timer = setInterval("scrollElement(\'"+ EltId + "\')",timer);'); //On lance la fonction qui va initialiser le scroll



 }

 function scrollElement(eltId) {

    var BlockScroll = document.getElementById(eltId);
    with (BlockScroll) {

       switch(direction) {
           case "bt":
              scrollTop += increment;
              if (scrollTop+clientHeight>=scrollHeight) { scrollTop=0};
              break;
           case "tb":
              scrollTop -= increment;
              if (scrollTop<=increment) { scrollTop=scrollHeight};
              break;
           case "rl":
              scrollLeft += increment;
              if (scrollLeft+clientWidth>=scrollWidth) scrollLeft=0;
              break;
           case "lr":
              scrollLeft -= increment;
              if (scrollLeft<increment) scrollLeft=scrollWidth;
              break;
       }
    }
 }

 /*
window.onload=function() {
   //initScroll("blocktoscroll", 2, 100, "bt", true);
   initScroll("blocktoscroll", 1, 40, "bt", true);
 }
 */
