function getScrollY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return scrOfY;
}

var IE = document.all?true:false
if (!IE) document.captureEvents(Event.MOUSEMOVE);
var cur;		
var cat;
var velocidade = 0;
function move(){
	var posicao;
	var obj;
	var altura;
	var visivel;
	

	
	obj = document.getElementById('ul_categorias');
	visivel = document.getElementById('categorias_div').offsetHeight;
	
	altura = obj.offsetHeight;
	
	posicao = String(obj.style.top);
	
	posicao = posicao.replace(/px/g, '');
	posicao = posicao.replace(/pt/g, '');
	

	posicao = parseInt(posicao);
	posicao = parseInt(posicao + 10*velocidade);

	if(posicao>0) {
		velocidade -= 0.1;
		return;
	}
		
	if(((posicao*(-1)+visivel))>altura){
			velocidade += 0.1;
		return;
	}	
	obj.style.top = posicao + 'px';

	return true;
	
}

function verificaPagina() {
	if(document.getElementById('categorias')) {
		document.onmousemove = getMouseXY;
		cur = document.getElementById('cursor');
		cat = document.getElementById('categorias');
		setInterval('move()', 100);
	}
}

hitTest = function(o, l){
	function getOffset(o){
		for(var r = {l: o.offsetLeft, t: o.offsetTop, r: o.offsetWidth, b: o.offsetHeight};
			o = o.offsetParent; r.l += o.offsetLeft, r.t += o.offsetTop);
		return r.r += r.l, r.b += r.t, r;
	}
	for(var b, s, r = [], a = getOffset(o), j = isNaN(l.length), i = (j ? l = [l] : l).length; i;
		b = getOffset(l[--i]), (a.l == b.l || (a.l > b.l ? a.l <= b.r : b.l <= a.r))
		&& (a.t == b.t || (a.t > b.t ? a.t <= b.b : b.t <= a.b)) && (r[r.length] = l[i]));
	return j ? !!r.length : r;
};

function getMouseXY(e) {
	var tempX = 0
	var tempY = 0
	
	if (IE) {
	tempX = event.clientX + document.body.scrollLeft;
	tempY = event.clientY + getScrollY();
	} else {
	tempX = e.pageX
	tempY = e.pageY
	}  
	if (tempX < 0){tempX = 0}
	if (tempY < 0){tempY = 0} 
	
	cur.style.top = tempY+'px';
	cur.style.left = tempX+'px';
	if(hitTest(cur, cat)) {
		var yI, altura;
		altura = cat.offsetHeight-50;
		
		yI = cat.offsetTop;
		var relativoY;
		relativoY = tempY - yI;
		
		if(relativoY>altura)
			return;
			
		if(relativoY < 0)
			return;
		
		velocidade = 0;
		
		relativoY = relativoY/altura;
		
		if(relativoY < 0.3) {
			velocidade = +0.3;
		}
		if(relativoY < 0.2) {
			velocidade = +0.5;
		}
		if(relativoY < 0.1) {
			velocidade = +0.7;
		}
		
		if(relativoY > 0.7) {
			velocidade = -0.3;
		}
		
		if(relativoY > 0.8) {
			velocidade = -0.5;
		}
		
		if(relativoY > 0.9) {
			velocidade = -0.7;
		}

	}
	return true;
}

window.onload = verificaPagina;
