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 speed = 50;
var loop, timer;
var initialised; 
bw = new verifyCompatibleBrowser();
