var speed = 4; // Scroll speed
var xTop = 0;
var xBottom = 266;

// Browser detection
var opera = false;
if (navigator.appName.toLowerCase() == "opera" && navigator.appVersion.substring(0,1) <= 6) {
  opera = true; // this will detect opera (but only in some cases ...)
}
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 onDrag=false; // If mouse on scrollbar

var timer = setTimeout("",500); // Repeat variable
var dragT=xTop; // Scrollbar 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

function xDrag() { // scroll(Drag, true);
  onDrag = true;
}

function xDown() {
  clickDown = true;
  scrollDown();
}

function xUp() {
  clickUp = true;
  scrollUp();
}

// Mousedown
function down(e){


//  if((document.layers && e.which==1) || (document.all && event.button!=1)) 
 //{
 // return false; // Disables the right mousebutton
//}
 //else if (event.detail == 2 || event.detail == 3) {
  //  event.cancelBubble = true, event.returnValue = false;
  //  return false;
 // }	
	getMouse(e);
	startY = (mouseY - dragT);
  if(onDrag == true){
		clickDrag = true;
	  return false;
	}
	// If no scrolling is to take place
//	else{
		return true;
	//}
}

// Drag function
function move(e){
	if(clickDrag && contentH > contentClipH){
		getMouse(e);
		dragT = (mouseY - startY);
		
		if(dragT < xTop) {dragT = xTop;}
		if(dragT > xBottom) {	dragT = xBottom;}
		
		contentT = ((dragT - xTop)*(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;
  	onDrag=false;
 	//if((document.layers && e.which!=1) || (document.all && event.button!=1)){
	//return false; // Disables the right mousebutton
	//}
 	//else if (event.button == 2 || event.button == 3) {
   // event.cancelBubble = true, event.returnValue = false;
   // return false;
  	//}	
 	 return true;
}
function nocontextmenu() {
  event.cancelBubble = true, event.returnValue = false;

  return false;
} 

// Reads content layer top
function getT(){
	if(ie4)
		contentT = document.all.content.style.pixelTop;
	else if(nn4)
		contentT = document.contentClip.document.content.top;
	else if(dom)
		contentT = parseInt(document.getElementById("content").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(ie4){
		document.all.content.style.top = contentT;
		document.all.drag.style.top = dragT;
	}
	else if(nn4){
		document.contentClip.document.content.top = contentT;
		document.drag.top = dragT;
	}
	else if(dom){
		document.getElementById("content").style.top = contentT + "px";
		document.getElementById("drag").style.top = dragT + "px";
	}
}

// Scrolls up
function scrollUp(){
	getT();

	if(clickUp){
		if(contentT < 0){		
			dragT = dragT - (speed*scrollLength);
			
			if(dragT < (xTop))
				dragT = xTop;
				
			contentT = contentT + speed;
			if(contentT > 0)
				contentT = 0;
			
			moveTo();
			timer = setTimeout("scrollUp()",25);
		}
	}
	return false;
}

// Scrolls down
function scrollDown(){
	getT();
	
	if(clickDown){
		if(contentT > -(contentH - contentClipH)){			
			dragT = dragT + (speed*scrollLength);
			if(dragT > xBottom)
				dragT = xBottom;
			
			contentT = contentT - speed;
			if(contentT < -(contentH - contentClipH))
				contentT = -(contentH - contentClipH);
			
			moveTo();
			timer = setTimeout("scrollDown()",25);
		}
	}
	return false;
}

// reloads page to position the layers again
function reloadPage(){
	location.reload();
}

// Preload
function eventLoader(){
	if(ie4){
		contentH = parseInt(document.all.content.scrollHeight);
		contentClipH = parseInt(document.all.contentClip.style.height);
    document.all.drag.style.height=55;
	}
	else if(nn4){
		contentH = document.contentClip.document.content.clip.bottom;
		contentClipH = document.contentClip.clip.bottom;
	}
	else if(dom){
		contentH = parseInt(document.getElementById("content").offsetHeight);
		contentClipH = parseInt(document.getElementById("contentClip").offsetHeight);
		document.getElementById("content").style.top = "0px";
		document.getElementById("drag").style.height = "54px";
	}
  getT();
  moveTo();
	// Number of pixels scrollbar should move
	scrollLength = ((xBottom-xTop)/(contentH-contentClipH));
	// Initializes event capturing
	if(nn4){
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
		window.onresize = reloadPage;
	}
	document.onmousedown = down;
	document.onmouseup = up;
	document.oncontextmenu = nocontextmenu;

	if (opera == false) {
    document.onmousemove = move;
  }
}