// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||// // Coded by Travis Beckham// http://www.squidfingers.com | http://www.podlob.com// If want to use this code, feel free to do so, but please leave this message intact.//// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||// --- version date: 01/24/03 ---------------------------------------------------------// Added By Ben Alt 7 Oct 2003 -- To chage to meet personal needs the following must be done ://	Changed some values to fit site and added a light browser sniff (sorry) to  the hide scrollbar function. Still a little probematic for IE5.* for MAC, though works otehrwise.//// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||// Cross-Browser Functions//var dom = document.getElementById;var iex = document.all;var ns4 = document.layers;function addEvent(event,method){	this[event] = method;	if(ns4) this.captureEvents(Event[event.substr(2,event.length).toUpperCase()]);}function removeEvent(event){	this[event] = null;	if(ns4) this.releaseEvents(Event[event.substr(2,event.length).toUpperCase()]);}function getElement(name,nest){	nest = nest ? "document."+nest+"." : "";	var el = dom ? document.getElementById(name) : iex ? document.all[name] : ns4 ? eval(nest+"document."+name) : false;	el.css = ns4 ? el : el.style;	el.getTop = function(){return parseInt(el.css.top) || 0};	el.setTop = function(y){el.css.top = ns4 ? y: y+"px"};	el.getHeight = function(){return ns4 ? el.document.height : el.offsetHeight};	el.getClipHeight = function(){return ns4 ? el.clip.height : el.offsetHeight};	el.hideVis = function(){el.css.visibility="hidden"};	el.addEvent = addEvent;	el.removeEvent = removeEvent;	return el;}function getYMouse(e){	return iex ? event.clientY-162 : e.pageY-162;}document.addEvent = addEvent;document.removeEvent = removeEvent;// ||||||||||||||||||||||||||||||||||||||||||||||||||// Scroller ClassScrollObj = function(speed, dragHeight, trackHeight, trackObj, upObj, downObj, dragObj, contentMaskObj, contentObj){	this.speed = speed;	this.dragHeight = dragHeight;	this.trackHeight = trackHeight;	this.trackObj = getElement(trackObj);	this.upObj = getElement(upObj);	this.downObj = getElement(downObj);	this.dragObj = getElement(dragObj);	this.contentMaskObj = getElement(contentMaskObj);	this.contentObj = getElement(contentObj,contentMaskObj);	this.obj = contentObj+"Object";	eval(this.obj+"=this");		this.trackTop = this.dragObj.getTop();	this.trackLength = this.trackHeight-this.dragHeight;	this.trackBottom = this.trackTop+this.trackLength;	this.contentMaskHeight = this.contentMaskObj.getClipHeight();	this.contentHeight = this.contentObj.getHeight();	this.contentLength = this.contentHeight-this.contentMaskHeight;	this.scrollLength = this.trackLength/this.contentLength;	this.scrollTimer = null;		if(this.contentHeight <= this.contentMaskHeight){		this.dragObj.hideVis();	}else{		var _this = this;		this.trackObj.addEvent("onmousedown", function(e){_this.scrollJump(e);return false});		this.upObj.addEvent("onmousedown", function(){_this.scroll(_this.speed);return false});		this.upObj.addEvent("onmouseup", function(){_this.stopScroll()});		this.upObj.addEvent("onmouseout", function(){_this.stopScroll()});		this.downObj.addEvent("onmousedown", function(){_this.scroll(-_this.speed);return false});		this.downObj.addEvent("onmouseup", function(){_this.stopScroll()});		this.downObj.addEvent("onmouseout", function(){_this.stopScroll()});		this.dragObj.addEvent("onmousedown", function(e){_this.startDrag(e);return false});		if(iex) this.dragObj.addEvent("ondragstart", function(){return false});	}}ScrollObj.prototype.startDrag = function(e){	this.dragStartMouse = getYMouse(e);	this.dragStartOffset = this.dragObj.getTop();	var _this = this;	document.addEvent("onmousemove", function(e){_this.drag(e)});	document.addEvent("onmouseup", function(){_this.stopDrag()});}ScrollObj.prototype.stopDrag = function(){	document.removeEvent("onmousemove");	document.removeEvent("onmouseup");}ScrollObj.prototype.drag = function(e){	var currentMouse = getYMouse(e);	var mouseDifference = currentMouse-this.dragStartMouse;	var dragDistance = this.dragStartOffset+mouseDifference;	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;	this.dragObj.setTop(dragMovement);	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);	this.contentObj.setTop(contentMovement);}ScrollObj.prototype.scroll = function(speed){	var contentMovement = this.contentObj.getTop()+speed;	var dragMovement = this.trackTop-Math.round(this.contentObj.getTop()*(this.trackLength/this.contentLength));	if(contentMovement > 0){		contentMovement = 0;	}else if(contentMovement < -this.contentLength){		contentMovement = -this.contentLength;	}	if(dragMovement < this.trackTop){		dragMovement = this.trackTop;	}else if(dragMovement > this.trackBottom){		dragMovement = this.trackBottom;	}	this.contentObj.setTop(contentMovement);	this.dragObj.setTop(dragMovement);	this.scrollTimer = window.setTimeout(this.obj+".scroll("+speed+")",25);}ScrollObj.prototype.stopScroll = function(){	if(this.scrollTimer){		window.clearTimeout(this.scrollTimer);		this.scrollTimer = null;	}}ScrollObj.prototype.scrollJump = function(e){	var currentMouse = getYMouse(e);	var dragDistance = currentMouse-(this.dragHeight/2);	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;	this.dragObj.setTop(dragMovement);	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);	this.contentObj.setTop(contentMovement);}// ||||||||||||||||||||||||||||||||||||||||||||||||||// Misc Functionsfunction hideScrollbars(){http://dhcp0.ny.interdim.com/portlibertedirect/images/scrollDrag.gif	bName = navigator.appName;	bVer = parseInt(navigator.appVersion);	if (bName == 'Microsoft Internet Explorer' && bVer <= 5.9) {		return false;}	else {		if(document.getElementsByTagName){			document.getElementsByTagName("body")[0].style.overflow = "hidden";		}	}}function fixNetscape4(){	if(ns4origWidth != window.innerWidth || ns4origHeight != window.innerHeight){		window.location.reload();	}	}if(document.layers){	ns4origWidth = window.innerWidth;	ns4origHeight = window.innerHeight;	window.onresize = fixNetscape4;}// ||||||||||||||||||||||||||||||||||||||||||||||||||window.onload = function(){	// speed, dragHeight, trackHeight, trackObj, upObj, downObj, dragObj, contentMaskObj, contentObj	myScroll = new ScrollObj(10,17,187,"track","up","down","drag","contentMask","content");};