var ns4 = (document.layers)? true:false;   			//NS 4 
var ie4 = (document.all)? true:false;   				//IE 4 
var dom = (document.getElementById)? true:false;   //DOM

function GetCSS(MyObject){
  if (dom || ie4) return MyObject.style;
  else return 0;
}
function GetHeight(MyObject){ 
  if (dom || ie4) return MyObject.offsetHeight;
  else return 0;
}
function GetWidth(MyObject){ 
  if (dom || ie4) return MyObject.offsetWidth;
  else return 0;
}
function GetTop(MyObject){ 
  if (dom || ie4) return (MyObject.offsetTop);
  return 0;
}
function GetLeft(MyObject){ 
  if (dom || ie4) return MyObject.offsetLeft;
  return 0;
}
function MoveObject(myX,myY){
  this.X = myX;
  this.Y = myY;
  this.CSS.left=this.X+'px';
  this.CSS.top=this.Y+'px';
}
function MoveObjectUp(mystep){
  this.Y -= mystep;
  this.CSS.top=this.Y+'px';
}
function MoveObjectDown(mystep){
  this.Y += mystep;
  this.CSS.top=this.Y+'px';
}
function CreateObject(DivId,MyObject){
	if (MyObject)
		this.Object = MyObject;
	else
		this.Object = document.getElementById(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();
	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;
}

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.Step = !myStep ? 100 : ((bw.ie)?myStep:(myStep*4));// -- AMELIORATION TM POUR LE PAS ENTRE IE ET FIREFOX
	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;
var MyBox = null;
// -- IL FAUT LA FONCTION cm_bwcheck DANS OUTILS.PHP OU OUTILS.JS
function Init(){
	MyBox = new Box('MyBox', 'conteneur', 2, 4, 6000, 0);
	setTimeout('MyBox.start()', 500);
}