var initialised; 
var bw;
var speed = 50;
var loop;
var timer;


// begin absolutely positioned scrollable area object scripts
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();


function ConstructObject(obj, nest) {
    nest = (!nest) ? '' : 'document.' + nest + '.';

    if (bw.dom) {
        this.el = document.getElementById(obj);
        this.css = document.getElementById(obj).style;
    } else {
        if (bw.ie4) {
            this.el = document.all[obj];
            this.css = document.all[obj].style;
        } else {
            if (bw.ns4) {
                this.el = eval(nest + 'document.' + obj);
                this.css = eval(nest + 'document.' + obj);
            } else {
                this.el = 0;
                this.css = 0;
            }
        }
    }

    if (bw.ns4) {
        this.scrollHeight = this.css.document.height;
    } else {
        this.scrollHeight = this.el.offsetHeight;
    }

    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;
}

// end absolutely positioned scrollable area object scripts 
// JavaScript Document
