//	Original script by Thomas Brattli (www.bratta.com)
//	reworked by dsr (including browser centering fix for IE)

function bcheck() {
	this.dom = document.getElementById ? 1 : 0;
	this.ie4 = (document.all && !this.dom) ? 1 : 0;
	this.ns4 = (document.layers && !this.dom) ? 1 : 0;
	return this;
}
var bw = new bcheck();
var speed = 40;
var loop, timer;

function makeObj(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 = goUp; this.down = goDown;
	this.moveIt = moveIt; this.x=0; this.y=0;
    this.obj = obj + "Object";
    eval(this.obj + "=this");
    return this;
}

var px = bw.ns4 || window.opera ? "" : "px";
function moveIt(x,y) {
	this.x = x;	this.y = y;
	this.css.left = this.x + px;
	this.css.top = this.y + px;
}

function goDown(move) {
	if (this.y > -this.scrollHeight + oCont.clipHeight) {
		this.moveIt(0, this.y-move);
			if (loop) setTimeout(this.obj + ".down(" + move + ")", speed);
	}
}

function goUp(move) {
	if (this.y < 0) {
		this.moveIt(0, this.y-move);
		if (loop) setTimeout(this.obj + ".up(" + move + ")", speed);
	}
}

function scroll(speed) {
	if (scrolltextLoaded) {
		loop = true;
		if (speed>0) oScroll.down(speed)
		else oScroll.up(speed)
	}
}

function noScroll() {
	loop = false;
	if (timer) clearTimeout(timer);
}

var scrolltextLoaded = false
function scrolltextInit() {
	oCont = new makeObj('ScrollAreaContainer');
	oScroll = new makeObj('ScrollArea', 'ScrollAreaContainer');
	oScroll.moveIt(0,0);
	oCont.css.visibility = "visible";
	scrolltextLoaded = true;
}

function fixScrollArea() {
	if (bw.dom) {
		var marginTop = Math.round((document.body.clientHeight - 391) / 2) + 35;
		var marginLeft = Math.round((document.body.clientWidth - 415) / 2) - 30;
		document.all.ScrollAreaContainer.style.top = marginTop;
		document.all.ScrollAreaContainer.style.left = marginLeft;
		self.status = 'Coords: (' + marginLeft + ', ' + marginTop + ')';
	}
}

onload = scrolltextInit;
onresize = fixScrollArea;