<!--

/* 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)

	{

  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)

	{

  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()

	{

  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 : 100;

  this.Interval2 = myTempo2 ? myTempo2 : 100;

  this.Spacer = mySpacer ? mySpacer : 0;

  this.ProcessId	= null;

  this.Container = new CreateObject(DivId);

  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;

//-->
