scrollList=new Array();
 
function registraScroll(idAbajo, idArriba, div, velAbajo, velArriba)
{ 
    scrollList.length=0;
    if(scrollList[idAbajo]==null) scrollList[idAbajo]=new Array();
    if(scrollList[idArriba]==null) scrollList[idArriba]=new Array();
	scrollList[idAbajo].length=0;
	scrollList[idArriba].length=0;
    scrollList[idAbajo].push(new Array(div, velAbajo));
    scrollList[idArriba].push(new Array(div, velArriba));
}
 
function getEl(elementId)
{
    return document.getElementById(elementId);
}
 
function inicializar()
{
    for(key in scrollList)
    {   
		if (key!='toJSONString')
		{
          var elemento=getEl(key);
          elemento.onmouseover=iniciaScroll;
          elemento.onmouseout=detieneScroll;
		  elemento.onmousedown=aceleraScroll;
		  elemento.onmouseup=deceleraScroll;
		}
    }
	scrolling=false;
	multiplicador=1;
}
 
function iniciaScroll()
{
	if (!scrolling)
	{
      scrollDivs=new Array();
      velDivs=new Array();
      for(key in scrollList[this.id])
      {
		if (key!='toJSONString')
		{
          scrollDivs.push(getEl(scrollList[this.id][key][0]));
          velDivs.push(scrollList[this.id][key][1]);
		}
      }
	  scrolling=true;
      identificador=setInterval('scrollNow()',20); 
	}
}
 
function detieneScroll()
{
    clearInterval(identificador);
	scrolling=false;
}

function aceleraScroll()
{
    multiplicador=2;
}

function deceleraScroll()
{
    multiplicador=1;
}


function scrollNow()
{
    for(key in scrollDivs)
    {
    var desplazamientoActual=scrollDivs[key].scrollTop;
    var nuevoDesplazamiento=desplazamientoActual+(velDivs[key]*multiplicador);
    scrollDivs[key].scrollTop=nuevoDesplazamiento;
    } 
} 