// Scroll con arrastre y alecelaracion by Nardino @ Abysoma.com
var numero_scrolles=0; var t;
var arrayscrolles = new Array(); var nombrescroles = new Array();

function handle(delta) 
	{	for(t=0;t<=numero_scrolles;t++)
			if(typeof(arrayscrolles[t])!='undefined')
			{ 
				if(arrayscrolles[t].md_whell==1)
				{
					arrayscrolles[t].para=0; arrayscrolles[t].vel=arrayscrolles[t].max_v;
					if (delta < 0) arrayscrolles[t].dir =0; 
					else arrayscrolles[t].dir =1; sc_scrolea(t); 
				}
			}
	}
function wheel(event)
	{ var delta = 0; 
	if (!event) event = window.event;
	if (event.wheelDelta) 
		{ delta = event.wheelDelta/120;
		 if (window.opera) delta = -delta; 
		 } else if (event.detail) 
		 { delta = -event.detail/3; 
		 } if (delta) handle(delta); 
	}
if (window.addEventListener) 
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
function sc_arrastra(indscroll,eje_ini)	{ 
idscroll = arrayscrolles[indscroll];
idscroll.eje_ant = eje_ini; idscroll.raton_abajo = 1; sc_mueve(indscroll); }

function sc_mueve(indscroll)
{ 
idscroll = arrayscrolles[indscroll];
var cp = py - idscroll.eje_ant;idscroll.eje_ant = py; var v_contenido = -cp*(idscroll.alto_contenido/idscroll.mavan_arr);
idscroll.alto_contenido = document.getElementById(idscroll.contenidoid).offsetHeight - idscroll.alto_contenedor;
if(isNaN(idscroll.arriba)) idscroll.arriba = 0;
if(cp<0)
{ 	if(idscroll.up_arr+cp > idscroll.alt_bot){ 
		idscroll.arriba += v_contenido; idscroll.up_arr += cp; 
	}else{ 
		idscroll.arriba = 0; idscroll.up_arr = idscroll.alt_bot; }}
else if(cp>=0){
	
	if(idscroll.up_arr+cp < idscroll.mavan_arr+idscroll.alt_bot){ 
		idscroll.arriba += v_contenido; idscroll.up_arr += cp; }else{ 
		idscroll.arriba =-idscroll.alto_contenido; idscroll.up_arr = idscroll.mavan_arr+idscroll.alt_bot; }}
document.getElementById(idscroll.contenidoid).style.top =  idscroll.arriba + "px";
document.getElementById(idscroll.astre).style.top =  idscroll.up_arr + "px";
if(idscroll.raton_abajo == 1)setTimeout("sc_mueve("+indscroll+")",5); 
}
function raton_arriba()
	{ 
	for(t=0;t<=numero_scrolles;t++){ 
		if(typeof(arrayscrolles[t])!='undefined'){
			arrayscrolles[t].raton_abajo=0; }
		}
	}

function position(event)
{ if (!document.all){ py = event.pageY; px = event.pageX; }
else{ py = event.clientY +document.body.scrollTop; px = event.clientX +document.body.scrollLeft; }}

function sc_scrolea(indscroll){	
var idscroll = arrayscrolles[indscroll];
var vel = parseInt(idscroll.vel/100);
var vel_arr = vel*(idscroll.mavan_arr/idscroll.alto_contenido);
if (idscroll.dir == 0) if(idscroll.arriba - vel > -idscroll.alto_contenido){ 
idscroll.arriba -= vel; idscroll.up_arr += vel_arr; }else{
idscroll.para=1; idscroll.vel = 0; idscroll.arriba= -idscroll.alto_contenido;
idscroll.up_arr = idscroll.mavan_arr+idscroll.alt_bot; }else 
if(idscroll.dir == 1) if(idscroll.arriba + vel < 0){ 
idscroll.arriba += vel; idscroll.up_arr -= vel_arr; }else{
idscroll.para=1; idscroll.vel = 0; idscroll.arriba=0;
idscroll.up_arr = idscroll.alt_bot; }
document.getElementById(idscroll.contenidoid).style.top =  idscroll.arriba + "px";
document.getElementById(idscroll.astre).style.top =  idscroll.up_arr + "px";
if(idscroll.raton_dentro == 1 ) if(idscroll.vel + idscroll.acelera < idscroll.max_v)
{ idscroll.vel += idscroll.acelera; }else{ idscroll.vel = idscroll.max_v;}
if(idscroll.raton_dentro == 0) if(idscroll.vel - idscroll.acelera > 0)
{ idscroll.vel -= idscroll.acelera; }else{ idscroll.vel = 0;}
if(idscroll.vel == 0) { idscroll.para=1; } if(idscroll.para != 1) setTimeout("sc_scrolea("+indscroll+")",5); }

function sc_arriba(indscroll){
idscroll = arrayscrolles[indscroll];
if(idscroll.dir == 0) { idscroll.vel=1; idscroll.dir = 1; }
idscroll.para=0; idscroll.raton_dentro=1; sc_scrolea(indscroll); }

function sc_abajo(indscroll){
idscroll = arrayscrolles[indscroll];
if(idscroll.dir == 1) { idscroll.vel=1; idscroll.dir = 0; }
idscroll.alto_contenido = document.getElementById(idscroll.contenidoid).offsetHeight - idscroll.alto_contenedor;
idscroll.para=0; idscroll.raton_dentro=1; sc_scrolea(indscroll); }


function sc_para(indscroll){arrayscrolles[indscroll].raton_dentro=0;}


function sc(idscroll,alto_contenedor,contenidoid){
this.arriba=0; this.dir =0; this.para=0; this.acelera = 20; this.raton_dentro=0; this.md_whell = 0; this.raton_abajo =0;
this.eje_ant =0; this.vel =1; this.max_v=500; this.contenidoid=contenidoid; this.alto_contenedor = alto_contenedor;
this.alto_contenido = this.contenidoid.offsetHeight-alto_contenedor;
this.alt_bot = 11; this.up_arr= this.alt_bot; this.rec_scr = this.alto_contenedor - (this.alt_bot * 2);
this.alto_arrastre = document.getElementById(contenidoid).offsetHeight;
this.astre = 'sc_arratre_' + idscroll;
this.bu = parseInt((this.rec_scr/this.alto_arrastre)* this.rec_scr);
if(this.bu > this.rec_scr) { this.bu = this.rec_scr; }
document.getElementById('sc_arratre_' + idscroll).style.height = this.bu + "px";
this.mavan_arr = this.rec_scr - this.bu ; 

}
function crea_scroll(contenidoid,i,alto_contenedor,ancho_contenedor){
var nodo_a_scrollear = document.getElementById(contenidoid); 
if(nodo_a_scrollear.offsetHeight > alto_contenedor)
	{
	var scroll_encontrado = false; 
	for(t=0;t<=numero_scrolles;t++) 
		if(typeof(nombrescroles[t])!='undefined' && nombrescroles[t]==i) 
			iscroll_encontrado = true; 
	if(!scroll_encontrado) {numero_scrolles++;  nombrescroles[numero_scrolles] = i;}
	var padre = nodo_a_scrollear.parentNode;
	var nodo_contenedor = document.createElement('div');
	nodo_contenedor.setAttribute('class','sc_contenedor');
	nodo_contenedor.className='sc_contenedor';
	nodo_contenedor.style.position = 'absolute';
	nodo_contenedor.style.width = ancho_contenedor +'px' ;
	nodo_contenedor.style.height = alto_contenedor + 'px';
	nodo_contenedor.style.top = nodo_a_scrollear.offsetTop + 'px'; 
	nodo_contenedor.style.left = nodo_a_scrollear.offsetLeft + 'px';
	var ancho_cont = ancho_contenedor - 15;
	nodo_contenedor.onselectstart=new Function ("return false");
	contenidoid='<div class="sc_comtenido"id="contenido_'+i
	+'" style="width:'+ancho_cont+'px;top:0px;" onmouseover="mdwell1('+numero_scrolles+');"onmouseout="mdwell0('+numero_scrolles+');">'
	+ nodo_a_scrollear.innerHTML +'</div><div class="sc_fondo"></div><div class="sc_arriba" onmouseover="sc_arriba('
	+numero_scrolles+')" onmouseout="sc_para('+numero_scrolles+')" ></div><div id="sc_arratre_'+i+'" class="sc_arratre" onmousedown="sc_arrastra('+numero_scrolles+',py)"><img src="/abysoma3.0/scroll/tb_up.gif" class="sc_tb_up" /><img src="/abysoma3.0/scroll/tb_down.gif" class="sc_tb_down" /></div><div class="sc_abajo" onmouseover="sc_abajo('+numero_scrolles+')" onmouseout="sc_para('+numero_scrolles+')"></div>';
	nodo_contenedor.innerHTML = contenidoid;
	padre.removeChild(nodo_a_scrollear); 
	padre.appendChild(nodo_contenedor);
	scroll_contenido_id ='contenido_' + i;
	arrayscrolles[numero_scrolles] = new sc(i,alto_contenedor,scroll_contenido_id);
	
	} 

}
function mdwell1(idscroll){idscroll.md_whell=1;}
function mdwell0(idscroll){idscroll.md_whell=0;}
function comprobar(){alert('scrolles: '+ nombrescroles[numero_scrolles]);}