// Array con los objetos a hacer scroll
scrollList=new Array();
function registraScroll(idAbajo, idArriba, div, velAbajo, velArriba, sentido) {
    if(scrollList[idAbajo]==null) scrollList[idAbajo]=new Array();
    if(scrollList[idArriba]==null) scrollList[idArriba]=new Array();
    scrollList[idAbajo].push(new Array(div, velAbajo, sentido));
    scrollList[idArriba].push(new Array(div, velArriba, sentido));
}
// Inicializa los métodos del scroll
function inicializar() {
    for(key in scrollList) {
    	  var elemento=getEl(key);
        elemento.onmouseover=iniciaScroll;
        elemento.onmouseout=detieneScroll;
    }
}
// Inicializa los objetos del scroll
function iniciaScroll() {
    scrollDivs=new Array();
    velDivs=new Array();
    var sentido = 'v';
    for(key in scrollList[this.id]) {
    	  scrollDivs.push(getEl(scrollList[this.id][key][0]));
        velDivs.push(scrollList[this.id][key][1]);
        sentido=scrollList[this.id][key][2];
    }
    if (sentido == 'v') {
    	// Vertical
    	identificador=setInterval('scrollNowTop()', 30);
    } else {
    	// Horizontal
    	identificador=setInterval('scrollNowLeft()', 30);
    }
}
// Para el scroll
function detieneScroll() {
    clearInterval(identificador);
}
// Desplazamiento Vertical
function scrollNowTop() {
    for(key in scrollDivs) {
        var desplazamientoActual=scrollDivs[key].scrollTop;
        var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
        scrollDivs[key].scrollTop=nuevoDesplazamiento;
    }
}
// Desplazamiento Horizontal
function scrollNowLeft() {
    for(key in scrollDivs) {
        var desplazamientoActual=scrollDivs[key].scrollLeft;
        var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
        scrollDivs[key].scrollLeft=nuevoDesplazamiento;
    }
}
// Recupera un elemento por su identificador
function getEl(elementId) {
  return document.getElementById(elementId);
}