 //<![CDATA[
 <!--
 //::::::::::::::::::::::::::::::::::::::::::::::
 // Auteur : Michael LHOTE :
 //::::::::::::::::::::::::::::::::::::::::::::::

 //+-----------------------------------------------------------------------------------+
 //| Classe : scrollerObjH |
 //| Description : classe qui permet de mettre en place un scroller horizontal. |
 //| Ce scroller peut contenir du HTML. |
 //| Lorsque le pointer de la souris est dans le scroller, ce dernier |
 //| s'arrête. Ce qui permet par exemple de cliquer sur un lien. |
 //| De plus, ce scroller a 2 principales options qui sont : |
 //| |
 //| 1 - possibilité de régler la vitesse de scrolling tant au niveau de |
 //| déplacement du message qu'au niveau du réglage du Timer. |
 //| |
 //| 2 - possibilité de faire défiler le même message, le 2ème, à la suite |
 //| de l'autre, le 1er, en spécifiant la position approximative, puisque |
 //| c'est exprimé en %. Donc espacement proportionnel entre le 1er bandeau |
 //| de message par rapport au 2ème bandeau de message. |
 //| |
 //| Parametres : |
 //| |
 //| 1 - ID de l'objet |
 //| 2 - position Top du message par rapport au bandeau |
 //| 3 - position Left du message par rapport au bandeau |
 //| 4 - hauteur du message et du bandeau |
 //| 5 - largeur du bandeau |
 //| 6 - le message Flash |
 //| 7 - couleur de fond du bandeau |
 //| 8 - couleur de fond du message Flash |
 //| 9 - vitesse de défilement du message dans le bandeau |
 //| 10 - vitesse de défilement du message dans le bandeau (le retour) |
 //| Réglage de la fréquence du Timer. |
 //| 11 - delta exprimé en pourcentage (%). |
 //| Par exemple, 0.1 (10%) indique qu'on recommence |
 //| à re afficher le bandeau message que lorsque le 1er est arrivé |
 //| à 10% de sa fin. |
 //| Entre 0 et 1 cette fonctionnalité est annulée. |
 //| Elle est remplacée par celle par défaut qui n'affiche le |
 //| prochain message qu'à la fin du 1er et vice et versa. |
 //| |
 //+-----------------------------------------------------------------------------------+
 function scrollerObjH(name,initH,initW,heightB,widthB,content,initBg,Bg,speed,timerSpeed,delta){
 //====================================//
 // Attributs //
 //====================================//
 this.name=name;
 this.initH=initH;
 this.initW=initW;
 this.heightB=heightB;
 this.widthB=widthB;
 this.content=content;
 this.widthText=this.content.length+10;
 this.initBg=initBg;
 this.Bg=Bg;
 this.speed=parseInt(speed) || 1;
 this.timerSpeed=parseInt(timerSpeed) || 25;
 this.timer=name + "Timer";
 this.elem; //1er bandeau
 this.elemBuff; //2eme bandeau
 this.delta=delta;
 this.offsetDiv=(60 * this.delta);
 this.isD1=true;//c'est le 1er bandeau qui commence
 this.isD2=false;
 this.cptD1=0;
 this.cptD2=0;
 //====================================//
 // Declaration Methods //
 //====================================//
 this.getElement=getElement;
 this.createLayer=createLayer;

 //Affectation de la fonction dont le Timer
 //va se servir
 if (this.delta > 0 && this.delta < 1)
 {
 this.scrollLayer = scrollLayerPlus;
 } else {
 this.scrollLayer = scrollLayer;
 }
 //

 this.stopAnim=stopAnim;
 this.startAnim=startAnim;
 this.scrollLoop=scrollLoop;
 //====================================//
 // Initialise l'objet //
 //====================================//
 this.createLayer();
 this.getElement();
 this.scrollLayer();

 }//fin scrollerObjH

 //=======================================================================================//
 // Definition Methods //
 //=======================================================================================//

 /*
 * Permet d'interagir avec la vitesse du scrolling.
 *
 * param int s vitesse du message scrollé.
 * Remarque : s = 0 stop le scrolling
 */
 function scrollLoop(s){
 this.speed = s;
 }//fin scrollLoop

 //=======================================================================================

 /*
 * Le mecanisme du scrolling par défaut.
 *
 */
 function scrollLayer(){

 var D1Left = parseInt(this.elem.style.left);

 if(D1Left > this.elem.offsetWidth*(-1)){
 this.elem.style.left = D1Left - this.speed;
 }else {
 this.elem.style.left = this.initW;
 }//fin if

 }//fin scrollLayer

 //=======================================================================================

 /*
 * Le scroller ++
 *
 * On fait en sorte que le 2ème bandeau message puisse commencer à défiler alors
 * que le 1er bandeau message n'est pas encore arrivé à sa fin.
 * De plus, le début du 2ème message s'ajuste par rapport à un delta exprimé en pourcentage.
 * Ce pourcentage correspond à la postion en partant de la fin du bandeau.
 */
 function scrollLayerPlus(){

 var D1Left = parseInt(this.elem.style.left);
 var D2Left = parseInt(this.elemBuff.style.left);
 var diff = this.elem.offsetWidth * this.delta; //le delta pour le 1er bandeau
 var diff2 = this.elemBuff.offsetWidth * this.delta; //le delta pour le 2eme bandeau

 ////////////////////////////////////////////////////
 // Controle le si le delta est atteint
 //
 if( D1Left - diff < this.elem.offsetWidth*(-1)) this.isD2 = true;
 if( D2Left - diff2 < this.elemBuff.offsetWidth*(-1)) this.isD1 = true;
 //fin controle delta/////////////////////////////////

 ////////////////////////////////////////////////////
 // Activation du Bandeau D1
 //
 // Si le bandeau D1 est arrivé à la fin et que le delta soit atteint
 if( (D1Left > this.elem.offsetWidth*(-1)) && this.isD1){

 //Si D2 est actif, on ne fait pas bouger D1 sinon il bougerait 2 fois
 //donc il irait plus vite
 if (this.isD2)
 {
 this.cptD2++;
 //Au départ de l'affichage de D2, on le positionne
 //proportionnellement à D1 en fonction de delta (en %)
 if (this.cptD2 == 1)
 this.elemBuff.style.left = D2Left - this.speed + this.offsetDiv;
 else
 this.elemBuff.style.left = D2Left - this.speed;

 }else {
 //on attend que D2 soit fini pour que le relais de D1 se fasse ici
 this.cptD1++;
 this.elem.style.left = D1Left - this.speed;
 }

 }else {
 this.cptD1 = 0;
 this.isD1 = false;
 this.elem.style.left = this.initW;
 }//fin if

 ////////////////////////////////////////////////////
 // Activation du Bandeau D2
 //
 // Si le bandeau D2 est arrivé à la fin et que le delta soit atteint
 if ((D2Left > this.elemBuff.offsetWidth*(-1)) && this.isD2) {

 //Si D1 est actif, on ne fait pas bouger D2 sinon il bougerait 2 fois
 //donc il irait plus vite
 if (this.isD1)
 {
 this.cptD1++;
 //Au départ de l'affichage de D1, on le positionne
 //proportionnellement à D2 en fonction de delta (en %)
 if (this.cptD1 == 1)
 this.elem.style.left = D1Left - this.speed + this.offsetDiv;
 else
 this.elem.style.left = D1Left - this.speed;

 }else {
 //on attend que D1 soit fini pour que le relais de D2 se fasse ici
 this.cptD2++;
 this.elemBuff.style.left = D2Left - this.speed;
 }

 } else {
 this.cptD2 = 0;
 this.isD2 = false;
 this.elemBuff.style.left = this.initW;
 }//fin if


 }//fin scrollLayerPlus

 //=======================================================================================

 /*
 * Recuperation du DIV (le bandeau)
 *
 */
 function getElement() {

 if(document.getElementById){
 this.elem = document.getElementById(this.name);
 this.elemBuff= document.getElementById('buff'+this.name);
 } else if (document.all){
 this.elem = document.all[name];
 this.elemBuff= document.all['buff'+name];
 } else if (document.layers){
 this.elem = document.layers[name];
 this.elemBuff= document.layers['buff'+name];
 }//fin if
 }//fin getElement

 //=======================================================================================

 /*
 * Création du scroller ou du bandeau
 *
 */
 function createLayer(){

 if(document.getElementById || document.all){
 //conteneur
 document.write('<div id="layer'+this.name+'" style="position:relative;overflow:hidden;background-color:#'+this.initBg+';border:1px;width:'+this.widthB+'px;height:'+this.heightB+'px;" onMouseover="'+this.name+'.scrollLoop(0)" onMouseout="'+this.name+'.scrollLoop('+this.speed+')">');
 //1er bandeau de message
 document.write('<div id="'+this.name+'" style="position:absolute;top:'+this.initH+'px;left:'+this.initW+'px;border:1px;white-space:nowrap;height:'+this.heightB+'px;background-color:#'+this.Bg+'">');
 document.write(this.content);
 document.write('<\/div>');
 //2eme bandeau de message
 document.write('<div id="buff'+this.name+'" style="position:absolute;top:'+this.initH+'px;left:'+this.initW+'px;border:1px;white-space:nowrap;height:'+this.heightB+'px;background-color:#'+this.Bg+'">');
 document.write(this.content);
 document.write('<\/div><\/div>');
 } else if(document.layers){
 document.write('<ilayer name="'+this.name+'" bgcolor="#'+this.Bg+'" width="'+this.widthB+'" height="'+this.heightB+'">'+this.content+'<\/ilayer>');
 document.write('<ilayer name="buff'+this.name+'" bgcolor="#'+this.Bg+'" width="'+this.widthB+'" height="'+this.heightB+'">'+this.content+'<\/ilayer>');
 return;
 }//fin if

 //mise en route du Timer
 this.startAnim();

 }//fin createLayer

 //=======================================================================================

 /*
 * Stop le Timer
 *
 */
 function stopAnim(){
 if(this.scrollLayer) window.clearInterval(this.timer);
 }//fin stopAnim

 function startAnim() {
 if (this.scrollLayer) this.timer = setInterval(this.name+'.scrollLayer()',this.timerSpeed);
 }//fin startAnim
 //-->
 //]]>


