/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts. This may be used freely as long as this msg is intact!
I will also appriciate any links you could give me.
********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser() {
    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 checkBrowser();
var speed = 30;
var loop, timer;

//Object constructor
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.scrollWidth = bw.ns4?this.css.document.width:this.el.offsetWidth;
    this.clipHeight = bw.ns4?this.css.clip.height:this.el.offsetHeight;
    this.clipWidth = bw.ns4?this.css.clip.width:this.el.offsetWidth;
    this.up = goUp;this.down=goDown;
    this.gl = goLeft;this.gr=goRight;
    this.moveIt = moveIt;
    this.x;
    this.y;
    this.obj = obj + "Object";
    eval(this.obj + "=this");
    return this;
}
function moveIt(x,y) {
    this.x = x;
    this.y = y;
    this.css.left = this.x+"px";
    this.css.top = this.y+"px";
}

//Makes the object go up
function goDown(move) {
    if(this.y>-this.scrollHeight+oCont.clipHeight) {
        this.moveIt(0,this.y-move);
        if(loop) setTimeout(this.obj+".down("+move+")",speed);
    }
}
//Makes the object go down
function goUp(move) {
    if(this.y<0) {
        this.moveIt(0,this.y-move);
        if(loop) setTimeout(this.obj+".up("+move+")",speed);
    }
}

//Makes the object go right
function goRight(move) {
    if(this.x>-this.scrollWidth+oCont.clipWidth) {
        this.moveIt(this.x-move,0);
        if(loop) timer = setTimeout(this.obj+".gr("+move+")",speed);
    }
}

//Makes the object go left
function goLeft(move) {
    if(this.x<0) {
        this.moveIt(this.x-move,0);
        if(loop) timer = setTimeout(this.obj+".gl("+move+")",speed);
    }
}

//Calls the scrolling functions. Also checks whether the page is loaded or not.
function scroll(speed) {
    if(loaded) {
        loop = true;
        if(speed>0) oScroll.gr(speed);
        else oScroll.gl(speed);
    }
}

//Stops the scrolling (called on mouseout)
function noScroll() {
    loop = false;
    if(timer) clearTimeout(timer)
}

//Makes the object
var loaded;
function scrollInit() {
    oCont = new makeObj('divCont');
    oScroll = new makeObj('divText','divCont');
    oScroll.moveIt(0,0);
    oCont.css.visibility = 'visible';
    loaded = true;
}

//Call the init on page load
onload = scrollInit;

