
/**********************************************************************************   
ScrollText 
*   Copyright (C) 2001 <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a>
*   This script was released at DHTMLCentral.com
*   Visit for more great scripts!
*   This may be used and changed freely as long as this msg is intact!
*   We will also appreciate any links you could give us.
*
*   Made by <a href="/dhtmlcentral/thomas_brattli.asp">Thomas Brattli</a> 
*********************************************************************************/

function lib_bwcheck() { //Browsercheck (needed)
  this.ver=navigator.appVersion;
  this.agent=navigator.userAgent;
  this.dom=document.getElementById?1:0;
  this.opera5=this.agent.indexOf("Opera 5")>-1;
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
  this.ie=this.ie4||this.ie5||this.ie6;
  this.mac=this.agent.indexOf("Mac")>-1;
  this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;
  this.ns4=(document.layers && !this.dom)?1:0;
  this.bw=(this.ie7 || this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
  return this;
}

var stbw=new lib_bwcheck();

//If you want it to move faster you can set this lower, it's the timeout:
var speed = 30;

//Sets variables to keep track of what's happening
var loop, timer;

//Object constructor
function stmakeObj(obj,nest){
    nest=(!nest) ? "":'document.'+nest+'.'
	this.el=stbw.dom?document.getElementById(obj):stbw.ie4?document.all[obj]:stbw.ns4?eval(nest+'document.'+obj):0;
  	this.css=stbw.dom?document.getElementById(obj).style:stbw.ie4?document.all[obj].style:stbw.ns4?eval(nest+'document.'+obj):0;
	this.scrollHeight=stbw.ns4?this.css.document.height:this.el.offsetHeight
	this.clipHeight=stbw.ns4?this.css.clip.height:this.el.offsetHeight
	this.up=goUp;this.down=goDown;
	this.stmoveIt=stmoveIt; this.x=0; this.y=0;
    this.obj = obj + "Object"
    eval(this.obj + "=this")
    return this
}

// A unit of measure that will be added when setting the position of a layer.
var stpx = stbw.ns4||window.opera?"":"px";

function stmoveIt(x,y) {
  this.x = x;
  this.y = y;
  this.css.left = this.x+stpx;
  this.css.top = this.y+stpx;
}

//Makes the object go up
function goDown(move) {
  if (this.y>-this.scrollHeight+oCont.clipHeight) {
    this.stmoveIt(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.stmoveIt(0,this.y-move);
    if (loop) {
      setTimeout(this.obj+".up("+move+")",speed)
    }
  }
}

//Calls the scrolling functions. Also checks whether the page is loaded or not.
function scroll(speed) {
  if (scrolltextLoaded) {
    loop = true;
    if (speed>0) {
      oScroll.down(speed);
    }
    else {
      oScroll.up(speed);
    }
  }
}

//Stops the scrolling (called on mouseout)
function noScroll() {
  loop = false;
  if (timer) {
    clearTimeout(timer);
  }
}
//Makes the object
var scrolltextLoaded = false;

function scrolltextInit() {
  oCont = new stmakeObj('divScrollTextCont');
  oScroll = new stmakeObj('divText','divScrollTextCont');
  oScroll.stmoveIt(0,0);
  oCont.css.visibility = "visible";
  scrolltextLoaded = true;
}

//Call the init on page load if the browser is ok...
if (stbw.bw) {
  onload = scrolltextInit;
}
