function verifyCompatibleBrowser(){
  this.ver=navigator.appVersion
  this.dom=document.getElementById?1:0
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
  this.ie4=(document.all && !this.dom)?1:0;
  this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
  this.ns4=(document.layers && !this.dom)?1:0;
  this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
  return this
}
bw=new verifyCompatibleBrowser()

var loopTimeout=50;
var loop, timer;

function ConstructObject(obj,nest){
  nest = (!nest)? '' : 'document.'+nest+'.';
  this.el = bw.dom ? document.getElementById(obj) : bw.ie4 ? document.all[obj] : bw.ns4 ? eval(nest+'document.'+obj) : 0;
  this.css = bw.dom ? document.getElementById(obj).style : bw.ie4 ? document.all[obj].style : bw.ns4 ? eval(nest+'document.'+obj) : 0;
  this.scrollHeight = bw.ns4 ? this.css.document.height : this.el.offsetHeight;
  this.clipHeight = bw.ns4 ? this.css.clip.height : this.el.offsetHeight;
  this.up = MoveAreaUp;
  this.down = MoveAreaDown;
  this.MoveArea = MoveArea;
  this.x;
  this.y;
  this.obj = obj + "Object";
  eval(this.obj + "=this");
  return this;
}

function MoveArea(x,y){
  this.x = x;
  this.y = y;
  this.css.left = this.x;
  this.css.top = this.y;
}

function MoveAreaDown(move){
  if(this.y>-this.scrollHeight+objContainer.clipHeight){
    this.MoveArea(0,this.y-move);
    if(loop) setTimeout(this.obj+".down("+move+")",loopTimeout);
  }
}

function MoveAreaUp(move){
  if(this.y<0){
    this.MoveArea(0,this.y-move);
    if(loop) setTimeout(this.obj+".up("+move+")",loopTimeout);
  }
}

function PerformScroll(speed){
  if(initialised){
    loop = true;
    if(speed>0) objScroller.down(speed);
    else objScroller.up(speed);
  }
}

function CeaseScroll(){
  loop = false;
  if(timer) clearTimeout(timer);
}

var initialised;
function InitialiseScrollableArea(){
  objContainer = new ConstructObject('divContainer');
  objScroller = new ConstructObject('divContent','divContainer');
  objScroller.MoveArea(0,0);
  objContainer.css.visibility='visible';
  initialised = true;
}

