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;
}

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 + ")", speed);
	} 
}

function MoveAreaUp(move)
{ 
	if (this.y < 0) { 
	    this.MoveArea(0, this.y - move);
		if (loop) setTimeout(this.obj + ".up(" + move + ")", speed);
	} 
} 
 
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);
} 

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

var bw = new verifyCompatibleBrowser();
var speed = 50;
var loop, timer;
var initialised;
