/*
Scroll - classe para criação de barras de rolagem no navegador

	Propriedades:
		- Conteudo: id do conteudo que vai receber o scroll
		- AreaVisivel: id da div com o overflow hidden do scroll
		- SetaCima: id do elemento html que vai ser a seta para cima do scroll
		- SetaBaixo: id do elemento html que vai ser a seta para baixo do scroll
		- BotaoArraste: id do elemento html que vai ser o botão de arraste do scroll
		- AreaArraste: id do elemento html que é a área de arraste do scroll
		- Velocidade: velocidade do scroll ao clicar nas setas
		- [TempoIntervalo]: tempo do intervalo entre o incremento dos passos do menu, para controlar melhor a velocidade caso a propriedade 'velocidade' não seja suficiente. Se for omitido, assume 1ms.
		
	Métodos:
		- Init(): inicia todos os eventos e todos os cálculos do scroll. Deve ser executado após serem atribuídas todas as propriedades do scroll
		- Posicionar(): posiciona o scroll em uma certa posição. Recebe essa posição como parametro.
		
*/
function Scroll(){var m=this;var i,e;var d,j,g;var l,f;var k=(navigator.userAgent.indexOf("MSIE")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1);var r;var a;var o;var p;var c;var b;this.Init=function(){i=document.getElementById(m.Conteudo);e=document.getElementById(m.AreaVisivel);d=document.getElementById(m.SetaCima);j=document.getElementById(m.SetaBaixo);g=document.getElementById(m.BotaoArraste);areaArraste=document.getElementById(m.AreaArraste);c=(m.TempoIntervalo)?m.TempoIntervalo:1;l=m.Velocidade;q();areaArraste.style.position="relative";g.style.position="absolute";i.style.position="absolute";b=true;g.onmousemove=function(){return false};if(i.offsetHeight<e.offsetHeight){d.style.visibility="hidden";j.style.visibility="hidden";g.style.visibility="hidden";areaArraste.style.visibility="hidden"}g.onmousedown=function(u){b=false;if(!u){u=event}var t=(k)?u.clientY+document.documentElement.scrollTop:u.pageY;var s=t-g.offsetTop;document.onmousemove=function(w){if(!w){w=event}t=(k)?w.clientY+document.documentElement.scrollTop:w.pageY;if(k){if(w.button==0){document.onmouseup()}}var v=t-s;if(v<=0){v=0}else{if(v>a){v=a}}g.style.top=v+"px";i.style.top=(v*r*-1)+"px"};document.onmouseup=function(){b=true;document.onmousemove=function(){return false};document.onmouseup=function(){return false}};return false};areaArraste.onmousedown=function(u){if(b){if(!u){u=event}var t=(k)?u.clientY+document.documentElement.scrollTop:u.pageY;var s=t-(n(areaArraste).y);m.Posicionar(s)}};d.direcao=-1;j.direcao=1;j.onmousemove=d.onmousemove=function(){return false};j.onmousedown=d.onmousedown=function(){p=this.direcao;h();document.onmouseup=function(){document.onmouseup=null;clearTimeout(o)};return false}};function n(v){var t=v;for(var s=v.offsetLeft,u=v.offsetTop;t=t.offsetParent;){s+=t.offsetLeft;u+=t.offsetTop}return{x:parseInt(s),y:parseInt(u)}}this.Posicionar=function(s){var t=s;if(t<=0){t=0}else{if(t>a){t=a}}i.style.top=(t*r*-1)+"px";g.style.top=t+"px"};function q(){r=((i.offsetHeight-e.offsetHeight)/(areaArraste.offsetHeight-g.offsetHeight));a=areaArraste.offsetHeight-g.offsetHeight}function h(){var s=(g.offsetTop+l*p);if(s<=0){s=0}else{if(s>a){s=a}}i.style.top=(s*r*-1)+"px";g.style.top=s+"px";o=setTimeout(h,c)}};