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.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.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}

var bw=new lib_bwcheck()

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

//Sets variables to keep track of what's happening
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.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
	
	this.scrollWidth=bw.ns4?this.css.document.width:this.el.offsetWidth
	
	this.clipWidth=bw.ns4?this.css.clip.width:this.el.offsetWidth
	
	this.up=goUp;this.down=goDown;
	
	this.left=goLeft;this.right=goRight;
	
	this.moveIt=moveIt; 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 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

}

//Makes the object go up
function goDown(move){
	
	if (this.y>-this.scrollHeight+oContText.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>oContImage.clipWidth-this.scrollWidth){
		this.moveIt(this.x-move, 0)
		if (loop) setTimeout(this.obj+".right("+move+")",speed)
	
	}
	
}
//Makes the object go down
function goLeft(move){

	if (this.x<0){
		this.moveIt(this.x-move,0)
		if (loop) setTimeout(this.obj+".left("+move+")",speed)
	}
	
}

//Calls the scrolling functions. Also checks whether the page is loaded or not.
function scrollText(speed){

	if (scrolltextLoaded){
		loop = true;
		if (speed>0) oScrollText.down(speed)
			else oScrollText.up(speed)
	}
	
}

function scrollImage(speed){

	if (scrollimageLoaded){
		loop = true;
		if (speed>0) oScrollImage.right(speed)
			else oScrollImage.left(speed)
	}
	
}

//Stops the scrolling (called on mouseout)
function noScroll() {

	loop = false
	if (timer) clearTimeout(timer)

}

//Makes the object
var scrollimageLoaded = false

var scrolltextLoaded = false

function scrollimageInit(){

	oContImage = new makeObj('divScrollImageCont')
	oScrollImage = new makeObj('divImage','divScrollImageCont')
	oScrollImage.moveIt(0,0)
	oContImage.css.visibility = "visible"
	scrollimageLoaded = true

}

function scrolltextInit(){

	oContText = new makeObj('divScrollTextCont')
	oScrollText = new makeObj('divText','divScrollTextCont')
	oScrollText.moveIt(0,0)
	oContText.css.visibility = "visible"
	scrolltextLoaded = true

}
