// Browser detectionvar dom = document.getElementById ? true:false;var nn4 = document.layers ? true:false;var ie4 = document.all ? true:false;var mouseY; // Mouse Y position onclickvar mouseX; // Mouse X position onclickvar clickUp = false; // If click on up-arrowvar clickDown = false; // If click on down-arrowvar clickDrag = false; // If click on scrollbarvar clickAbove = false; // If click above scrollbarvar clickBelow = false; // If click below scrollbarvar timer = setTimeout("",500); // Repeat variablevar upL; // Up-arrow Xvar upT; // Up-arrow Yvar downL; // Down-arrow Xvar downT; // Down-arrow Yvar dragL; // Scrollbar Xvar dragT; // Scrollbar Yvar rulerL; // Ruler Xvar rulerT; // Ruler Yvar contentT; // Content layer Y;var contentH; // Content heightvar contentClipH; // Content clip heightvar scrollLength; // Number of pixels scrollbar should movevar startY; // Keeps track of offset between mouse and spanvar speed = 15; // Mousedownfunction down(e){	if((document.layers && e.which!=1) || (document.all && event.button!=1 && !window.opera)) return true; // Enables the right mousebutton   getMouse(e);	startY = (mouseY - offsetY - dragT);	// If click on up-arrow	if(mouseX >= upL && (mouseX <= (upL + upW)) && mouseY >= upT && (mouseY <= (upT + upH))){		clickUp = true;		return scrollUp();	}	// Else if click on down-arrow	else if(mouseX >= downL && (mouseX <= (downL + downW)) && mouseY >= downT && (mouseY <= (downT + downH))){		clickDown = true;		return scrollDown();	}	// Else if click on scrollbar	else if(mouseX >= dragL && (mouseX <= (dragL + dragW)) && mouseY >= (dragT + offsetY)  && (mouseY <= (dragT + dragH  + offsetY))){		clickDrag = true;		return false;	}	else if(mouseX >= dragL && (mouseX <= (dragL + dragW)) && mouseY >= (rulerT + offsetY) && mouseY <= (rulerT + scrollH + offsetY)){		// If click above drag		if(mouseY < (dragT + offsetY)){			clickAbove = true;			clickUp = true;			return scrollUp();		}		// Else click below drag		else{			clickBelow = true;			clickDown = true;			return scrollDown();		}	}	// If no scrolling is to take place	else{		return true;	}}// Drag functionfunction move(e){	if(clickDrag && contentH > contentClipH){		getMouse(e);		dragT = (mouseY - startY - offsetY);		if(dragT < (rulerT))			dragT = rulerT;		if(dragT > (rulerT + scrollH - dragH))			dragT = (rulerT + scrollH - dragH);		//alert("dragT: "+dragT);		contentT = ((dragT - rulerT)*(1/scrollLength));		contentT = eval('-' + contentT);		moveTo();		// So ie-pc doesn't select gifs		if(ie4)			return false;	}}function up(){	clearTimeout(timer);	// Resetting variables	clickUp = false;	clickDown = false;	clickDrag = false;	clickAbove = false;	clickBelow = false;	return true;}// Reads content layer topfunction getT(){	if(ie4)		contentT = document.all.scrollContent.style.pixelTop;	else if(nn4)		contentT = document.contentClip.document.scrollContent.top;	else if(dom)		contentT = parseInt(document.getElementById("scrollContent").style.top);}// Reads mouse X and Y coordinatesfunction getMouse(e){	if(ie4){		mouseY = event.clientY + document.body.scrollTop;		mouseX = event.clientX + document.body.scrollLeft;	}	else if(nn4 || dom){		mouseY = e.pageY;		mouseX = e.pageX;	}}// Moves the layerfunction moveTo(){	if(dom){		document.getElementById("scrollContent").style.top = contentT + "px";		document.getElementById("drag").style.top = dragT + "px";		document.getElementById("ruler").style.top = dragT + "px";	}	else if(ie4){		document.all.scrollContent.style.top = contentT;		document.all.ruler.style.top = dragT;		document.all.drag.style.top = dragT;	}	else if(nn4){		document.contentClip.document.scrollContent.top = contentT;		document.ruler.top = dragT;		document.drag.top = dragT;	}}// Scrolls upfunction scrollUp(){	getT();	if(clickAbove){		if(dragT <= (mouseY - offsetY - (dragH/2)))			return up();	}	if(clickUp){		if(contentT < 0){			dragT = dragT - (speed*scrollLength);			if(dragT < (rulerT))				dragT = rulerT;			contentT = contentT + speed;			if(contentT > 0)				contentT = 0;			moveTo();			timer = setTimeout("scrollUp()",25);		}	}	return false;}// Scrolls downfunction scrollDown(){	getT();	if(clickBelow){		if(dragT >= (mouseY - offsetY -(dragH/2)))			return up();	}	if(clickDown){		if(contentT > -(contentH - contentClipH)){			dragT = dragT + (speed*scrollLength);			if(dragT > (rulerT + scrollH - dragH))				dragT = (rulerT + scrollH - dragH);			contentT = contentT - speed;			if(contentT < -(contentH - contentClipH))				contentT = -(contentH - contentClipH);			moveTo();			timer = setTimeout("scrollDown()",25);		}	}	return false;}function wheel (event){	var delta = 0;	if (!event) event = window.event;	if (event.wheelDelta) {		delta = event.wheelDelta/120; 		if (window.opera && window.navigator.userAgent.indexOf('Macintosh') < 0) delta = -delta;	} else if (event.detail) {		delta = -event.detail/3;	}	if (delta){		if(delta < 0){			wheelDown();		}else{			wheelUp();		}		if (event.preventDefault) event.preventDefault();		event.returnValue = false;	}}function wheelDown(){	getT();		if(contentT > -(contentH - contentClipH)){		dragT = dragT + (speed*scrollLength);		if(dragT > (rulerT + scrollH - dragH))			dragT = (rulerT + scrollH - dragH);		contentT = contentT - speed;		if(contentT < -(contentH - contentClipH))			contentT = -(contentH - contentClipH);		moveTo();		timer = setTimeout("scrollDown()",25);	}	return false;}function wheelUp(){	getT();	if(contentT < 0){		dragT = dragT - (speed*scrollLength);		if(dragT < (rulerT))			dragT = rulerT;		contentT = contentT + speed;		if(contentT > 0)			contentT = 0;		moveTo();		timer = setTimeout("scrollUp()",25);	}	return false;}// reloads page to position the layers againfunction reloadPage(){	location.reload();}// Preloadfunction eventLoader(){   if(dom){		// Up-arrow X and Y variables		upL = parseInt(document.getElementById("up").style.left)+parseInt(document.getElementById("content").offsetLeft);		upT = parseInt(document.getElementById("up").style.top)+parseInt(document.getElementById("content").offsetTop);		// Down-arrow X and Y variables		downL = parseInt(document.getElementById("down").style.left)+parseInt(document.getElementById("content").offsetLeft);		downT = parseInt(document.getElementById("down").style.top)+parseInt(document.getElementById("content").offsetTop);;		// Scrollbar X and Y variables		dragL = parseInt(document.getElementById("drag").style.left)+parseInt(document.getElementById("content").offsetLeft);		dragT = parseInt(document.getElementById("drag").style.top);		startDragT= parseInt(document.getElementById("drag").style.top)+parseInt(document.getElementById("content").offsetTop);		offsetY=parseInt(document.getElementById("content").offsetTop);		// Ruler Y variable		rulerT = parseInt(document.getElementById("ruler").style.top);		// Height of content layer and clip layer		contentH = parseInt(document.getElementById("scrollContent").offsetHeight);		contentClipH = parseInt(document.getElementById("contentClip").offsetHeight);		document.getElementById("scrollContent").style.top = 0 + "px";   }	else if(ie4){		// Up-arrow X and Y variables		upL = document.all.up.style.pixelLeft;		upT = document.all.up.style.pixelTop;		// Down-arrow X and Y variables		downL = document.all.down.style.pixelLeft;		downT = document.all.down.style.pixelTop;		// Scrollbar X and Y variables		dragL = document.all.drag.style.pixelLeft;		dragT = document.all.drag.style.pixelTop;		// Ruler Y variable		rulerT = document.all.ruler.style.pixelTop;		// Height of content layer and clip layer		contentH = parseInt(document.all.content.scrollHeight);		contentClipH = parseInt(document.all.contentClip.style.height);	}	else if(nn4){		// Up-arrow X and Y variables		upL = document.up.left;		upT = document.up.top;		// Down-arrow X and Y variables		downL = document.down.left;		downT = document.down.top;		// Scrollbar X and Y variables		dragL = document.drag.left;		dragT = document.drag.top;		// Ruler Y variable		rulerT = document.ruler.top;		// Height of content layer and clip layer		contentH = document.contentClip.document.content.clip.bottom;		contentClipH = document.contentClip.clip.bottom;	}	// Number of pixels scrollbar should move	scrollLength = ((scrollH-dragH)/(contentH-contentClipH));	// Initializes event capturing	if(nn4){		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);		window.onresize = reloadPage;	}	if(contentH > contentClipH){				document.getElementById("up").style.visibility ="visible";				document.getElementById("down").style.visibility ="visible";				document.getElementById("drag").style.visibility ="visible";				document.onmousedown = down;				document.onmousemove = move;				document.onmouseup = up;				if (window.addEventListener) document.getElementById("content").addEventListener('DOMMouseScroll', wheel, false);				document.getElementById("content").onmousewheel = wheel;					}else{		document.getElementById("up").style.visibility ="hidden";		document.getElementById("down").style.visibility ="hidden";		document.getElementById("drag").style.visibility ="hidden";	}}function reset_drag(t){		document.getElementById("drag").style.top=t+"px";		document.getElementById("ruler").style.top=t+"px";}