var speed = 15;
var scrollH;
var toScroll;
var toView;
var speedScroll;
var interval = 25;
var hTimer;
var scrollPos;

function selectTurnOff() {
document.body.onselectstart = function() {return false;}
//document.body.style.-moz-user-select = "none";
}

function selectTurnOn() {
document.body.onselectstart = null;
}

function moveUp(noTimer) {
document.getElementById('cnt').style.top = document.getElementById('cnt').offsetTop + speed + 'px';
if(document.getElementById('cnt').offsetTop >= 0) {
	document.getElementById('cnt').style.top = 0;
	document.getElementById('scrollDrag').style.top = document.getElementById('scrollUp').offsetHeight + 'px';
	}
else {
	scrollPos = scrollPos - speedScroll;
	document.getElementById('scrollDrag').style.top = scrollPos + 'px';
	}
if(!noTimer) {hTimer = setTimeout('moveUp()', interval);}
}

function moveDown(noTimer) {
document.getElementById('cnt').style.top = document.getElementById('cnt').offsetTop - speed + 'px';

if(document.getElementById('cnt').offsetTop <= toView - toScroll) {
	document.getElementById('cnt').style.top = toView - toScroll + 'px';
	document.getElementById('scrollDrag').style.top = scrollH + document.getElementById('scrollDown').offsetHeight - document.getElementById('scrollDrag').offsetHeight + 'px';
	}
else {
	scrollPos = scrollPos + speedScroll;
	document.getElementById('scrollDrag').style.top = scrollPos + 'px';
	}
if(!noTimer) {hTimer = setTimeout('moveDown()', interval);}
}

var lastPos;

function doDrag(e) {

if(window.event) {
	if(lastPos == 0) {lastPos = window.event.y;}
	delta = window.event.y - lastPos;
	lastPos = window.event.y;
	}
else {
	if(lastPos == 0) {lastPos = e.clientY;}
	delta = e.clientY - lastPos;
	lastPos = e.clientY;
	}

document.getElementById('scrollDrag').style.top = document.getElementById('scrollDrag').offsetTop + delta + 'px';

scrollPos = scrollPos + delta;

document.getElementById('cnt').style.top = document.getElementById('cnt').offsetTop - delta * speed / speedScroll + 'px';

if(document.getElementById('scrollDrag').offsetTop > scrollH + document.getElementById('scrollDown').offsetHeight - document.getElementById('scrollDrag').offsetHeight) {
	document.getElementById('cnt').style.top = toView - toScroll + 'px';
	scrollPos = scrollH + document.getElementById('scrollDown').offsetHeight - document.getElementById('scrollDrag').offsetHeight;
	document.getElementById('scrollDrag').style.top = scrollH + document.getElementById('scrollDown').offsetHeight - document.getElementById('scrollDrag').offsetHeight + 'px';
	}

if(document.getElementById('scrollDrag').offsetTop < document.getElementById('scrollUp').offsetHeight) {
	document.getElementById('cnt').style.top = 0;
	scrollPos = document.getElementById('scrollDrag').offsetTop;
	document.getElementById('scrollDrag').style.top = document.getElementById('scrollUp').offsetHeight + 'px';
	}
}

function doScrollAct(act) {
switch(act) {
	case 'up':
		hTimer = setTimeout('moveUp()', interval);
	break;
	case 'down':
		hTimer = setTimeout('moveDown()', interval);
	break;
	case 'drag':
		lastPos = 0;
		document.onmousemove = doDrag;
	break;
	}
}

function noAct() {
clearTimeout(hTimer);
document.onmousemove = null;
}


function doSize() {
if(navigator.appName.indexOf('Explorer') > 0) {toMinus = 20;}
else {toMinus = 60;}
/*
document.getElementById('content').style.height = document.getElementById('forContent').offsetHeight - toMinus + 'px';
document.getElementById('center').style.height = document.getElementById('content').offsetHeight - toMinus + 'px';
document.getElementById('scroller').style.height = document.getElementById('center').offsetHeight + 'px';
*/
}

function prepare() {
if(document.getElementById('scroller')) {
	scrollH = document.getElementById('scroller').offsetHeight - document.getElementById('scrollUp').offsetHeight - document.getElementById('scrollDown').offsetHeight;
	toScroll = document.getElementById('cnt').offsetHeight;
	toView = document.getElementById('center').offsetHeight;
	if(toView > toScroll) {
		document.getElementById('scroller').style.display = 'none';
		}
	else {
		document.getElementById('scroller').style.visibility = 'visible';
		}
	scrollPos = document.getElementById('scrollDrag').offsetTop;
	speedScroll = speed * (scrollH - document.getElementById('scrollDrag').offsetHeight) / (toScroll - toView);
	}
}

function innerScroll(id) {
el = document.getElementById(id);

document.getElementById('cnt').style.top = (-1) * el.offsetTop + 'px';

if(document.getElementById('cnt').offsetTop >= 0) {
	document.getElementById('cnt').style.top = 0;
	document.getElementById('scrollDrag').style.top = document.getElementById('scrollUp').offsetHeight + 'px';
	}
else {
	scrollPos = document.getElementById('scrollUp').offsetHeight + el.offsetTop * (scrollH - document.getElementById('scrollDrag').offsetHeight) / (toScroll - toView);
	document.getElementById('scrollDrag').style.top = scrollPos + 'px';
	}

}

document.onmouseup = noAct;




function doScrollWheel(e) {
var evt = window.event || e //equalize event object
var delta = evt.detail? evt.detail*(-120) : evt.wheelDelta //check for detail first so Opera uses that instead of wheelDelta

if(delta > 0) {moveUp(1);}
else {moveDown(1);}
//document.getElementById("wheelvalue").innerHTML = delta //delta returns +120 when wheel is scrolled up, -120 when down
return 0;
}
 
var mousewheelevt = (/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x
 
if(document.attachEvent) {//if IE (and Opera depending on user setting)
	document.attachEvent("on"+mousewheelevt, doScrollWheel);
	}
else if(document.addEventListener) {//WC3 browsers
	document.addEventListener(mousewheelevt, doScrollWheel, false);
	}
 

