<!--
/* Copyright 2001 : Atout Développement */
/* Auteur : Yvan Vanwynsberghe            */
var ns4 = (document.layers)? true:false;            //NS 4 
var ie4 = (document.all)? true:false;                   //IE 4 
var dom = (document.getElementById)? true:false;   //DOM

function GetNS4Object(MyID,MyDocument)
    {
    var MyObject= eval('MyDocument.'+MyID);
  if (!(MyObject))
    for(var i=0;i<MyDocument.layers.length;i++)
            {
            MyObject = GetNS4Object(MyID,MyDocument.layers[i].document);
            if (MyObject) break;
            }
  return MyObject;
  }


function GetObject(MyID)
    {
  if (dom) return document.getElementById(MyID);
  if (ie4) return document.all[MyID];
  if (ns4) return GetNS4Object(MyID,window.document);
  return 0;
    } 

function GetCSS(MyObject)
    {
  if (dom || ie4) return MyObject.style;
  else if (ns4) return MyObject;
  else return 0;
    }

function GetHeight(MyObject)
    { 
  if (dom || ie4) return MyObject.offsetHeight;
  else if (ns4) return MyObject.clip.height;
  else return 0;
    }
    
function GetWidth(MyObject)
    { 
  if (dom || ie4) return MyObject.offsetWidth;
  else if (ns4) return MyObject.clip.width;
  else return 0;
    }

function GetTop(MyObject)
    { 
  if (dom || ie4) 
    return (MyObject.offsetTop);
  if (ns4) return MyObject.y;
    return 0;
    }

function GetLeft(MyObject)
    { 
  if (dom || ie4) return MyObject.offsetLeft;
  if (ns4) return MyObject.x;
  return 0;
    }

function MoveObject(myX,myY)
    {
  this.X = myX;
  this.Y = myY;
  this.CSS.left=this.X;
  this.CSS.top=this.Y;
  }

function MoveObjectUp(mystep)
    {
  this.Y -= mystep;
  this.CSS.top=this.Y;
  }

function MoveObjectDown(mystep)
    {
  this.Y += mystep;
  this.CSS.top=this.Y;
  }

function CreateObject(DivId,MyObject)
        {
    if (MyObject)
        this.Object = MyObject;
    else
        this.Object = GetObject(DivId);
    
    if (this.Object)
        {
      this.CSS = GetCSS(this.Object);
      this.Height = GetHeight(this.Object);
      this.Width = GetWidth(this.Object);
      this.X = GetTop(this.Object);
      this.Y = GetLeft(this.Object);
      this.Move = MoveObject;
      this.Up = MoveObjectUp;
      this.Down = MoveObjectDown;
      }
    return this;
    }

function DelTextNode(MyObject)
    {
  if ((MyObject == undefined) || (MyObject.firstChild == undefined)) return;

  var node = MyObject.firstChild;
  var next;

  while (node)
    {
    next = node.nextSibling;
    if (node.nodeType == 3)
      MyObject.removeChild(node);
    node = next;
    }
  }

function CreateChildren(MyObject,HoriSpacer,VertSpacer)
    {
  if ((MyObject == undefined) || (MyObject.firstChild == undefined)) return;

  var i=0;
  var MyChildren = new Array();
  if (dom)
    {
    DelTextNode(MyObject);
    for (i=0;i<MyObject.childNodes.length;i++)
        {
        MyChildren[i] = new CreateObject(0,MyObject.childNodes[i]);
      MyChildren[i].Move(i*HoriSpacer,i*VertSpacer);
      }
    return MyChildren;
    }
  if (ie4)
    {
    for (i=0;i<MyObject.children.length;i++)
        {
      MyChildren[i] = new CreateObject(0,MyObject.children(i));
      MyChildren[i].Move(i*HoriSpacer,i*VertSpacer);
      }
    return MyChildren;
    }
  if (ns4)
    {
    for (i=0;i<MyObject.document.layers.length;i++)
        {
      MyChildren[i] = new CreateObject(0,MyObject.layers[i]);
      MyChildren[i].Move(i*HoriSpacer,i*VertSpacer);
      }
    return MyChildren;   
    }
  }

function ScrollUp()
    {
  if (this.Children == undefined) return;

  var MyInterval = this.Interval1;
  this.stop();
  if (this.Children[this.FirstChildren].Y<-this.threshold)
    {
    MyInterval = this.Interval2;
      this.Children[this.FirstChildren].Down(this.TotalHeight);
    if (this.FirstChildren<this.Children.length-1)
        {
        this.FirstChildren++;
      this.threshold += this.Children[this.FirstChildren].Height;
      }
    else
        {
        this.FirstChildren = 0;
      this.threshold = this.Children[this.FirstChildren].Height+this.Spacer;
      }
    }
    for (var i=0;i<this.Children.length;i++)
    {
    this.Children[i].Up(this.Step);    
    }
  this.ProcessId = setTimeout(this.name + '.start()', MyInterval);
  }

  
function ScrollStop()
    {
  if (this.ProcessId)
    clearTimeout(this.ProcessId);
  this.ProcessId = null;
    }

function Box(BoxName, DivId, myStep, myTempo1, myTempo2, mySpacer)
    {
  this.name     = BoxName;
  this.Step  = myStep ? myStep : 1;
  this.Interval1 = myTempo1 ? myTempo1 : 10;
  this.Interval2 = myTempo2 ? myTempo2 : 10;
  this.Spacer = mySpacer ? mySpacer : 0;
  this.ProcessId    = null;
  this.Container = new CreateObject(DivId);

  if ((this.Container == undefined) || (this.Container.Object == undefined)) return;

  this.Children = new CreateChildren(this.Container.Object,0,mySpacer);
  this.FirstChildren = 0;
  this.LastChildren = this.Children.length-1;
  this.threshold = this.Children[0].Height+this.Spacer;
  var myHeight = 0;
  for (var i=0;i<this.Children.length;i++) 
    {
    myHeight += (this.Children[i].Height + this.Spacer);
    }
  this.TotalHeight = myHeight;
  this.Container.visibility = 'visible';
    }

Box.prototype.start = ScrollUp;
Box.prototype.stop = ScrollStop;
//-->