//variaveis com valores padrão, não alterar
var IE = (navigator.userAgent.indexOf("MSIE") > -1);	
var intervaloScroll;
var y, maxTop, relacao, pY = 0;
var calcular = true;
var mouseup = false;

//retorna as coorenadas do mouse quando o navegador nao for o IE
if (!IE)
	window.captureEvents(Event.MOUSEMOVE);

//função para calcular as relações
function calcularScroll(){
	maxTop = (document.getElementById(texto).offsetHeight - document.getElementById(container).offsetHeight) * -1;
	tamanhoBarra = document.getElementById(barra).offsetHeight - document.getElementById(cursor).offsetHeight;
	relacao = maxTop/tamanhoBarra * -1;
}

//função para descer o scroll
function descer(){
	if(y > maxTop){
		document.getElementById(texto).style.top = y + 'px';
		document.getElementById(cursor).style.top = (y/relacao * -1) + 'px';
		y -= velocidade;
		intervaloScroll = setTimeout("descer()", 1);
		mouseup = true;
	}
	document.onmouseup = parar;
}

//Função para subir o scroll
function subir(){
	if(parseInt(document.getElementById(texto).style.top) < 0){
		document.getElementById(texto).style.top = y + 'px';
		document.getElementById(cursor).style.top = (y/relacao * -1) + 'px';
		y += velocidade;
		intervaloScroll = setTimeout("subir()", 1);
		mouseup = true;
	}
	document.onmouseup = parar;
}

//Função para arrastar o scroll
function arrastarScroll(){
	document.onmousemove = function(e){			
		pY = (IE)?event.clientY + document.body.scrollTop : e.pageY;
		if(calcular){
			difY = pY - document.getElementById(cursor).offsetTop;
			calcular = false;				
		}
		y = ((pY - difY) * relacao * -1);
		if(y >= maxTop && y <= 0){
			document.getElementById(cursor).style.top = (pY - difY) + 'px';
			document.getElementById(texto).style.top = y + 'px';
		}
		mouseup = true;
	}	

	document.onselectstart = function(){
		return false;
	}
	
	document.onmouseup = function(){
		if(!mouseup)
			null;
		else{
			document.onmousemove = document.onselectstart = null;
			calcular =  true;
			parar();				
			y = parseInt(document.getElementById(texto).style.top);
			mouseup = false;
		}
	}	
}


function parar(){
	if(mouseup)
		clearTimeout(intervaloScroll);
	else
		null;
}
