﻿scrollList=new Array();
scrollListH=new Array();
function registraScroll(idAbajo, idArriba, div, velAbajo, velArriba)
{
	if(scrollList[idAbajo]==null) scrollList[idAbajo]=new Array();
	if(scrollList[idArriba]==null) scrollList[idArriba]=new Array();
	scrollList[idAbajo].push(new Array(div, velAbajo));
	scrollList[idArriba].push(new Array(div, velArriba));
}
function registraScrollH(idAbajo, idArriba, div, velAbajo, velArriba)
{
	if(scrollListH[idAbajo]==null) scrollListH[idAbajo]=new Array();
	if(scrollListH[idArriba]==null) scrollListH[idArriba]=new Array();
	scrollListH[idAbajo].push(new Array(div, velAbajo));
	scrollListH[idArriba].push(new Array(div, velArriba));
}

window.onload = makeDoubleDelegate(window.onload, inicializar);
window.onload = makeDoubleDelegate(window.onload, inicializarH);

function getEl(elementId)
{
	return document.getElementById(elementId);
}
function inicializar()
{
	for(key in scrollList)
	{
		var elemento=getEl(key);
		elemento.onmouseover=iniciaScroll;
		elemento.onmouseout=detieneScroll;
	}
}

function inicializarH()
{
	for(key in scrollListH)
	{
		var elemento=getEl(key);
		elemento.onmouseover=iniciaScrollH;
		elemento.onmouseout=detieneScrollH;
	}
}
function iniciaScroll()
{
	scrollDivs=new Array();
	velDivs=new Array();
	for(key in scrollList[this.id])
	{
		scrollDivs.push(getEl(scrollList[this.id][key][0]));
		velDivs.push(scrollList[this.id][key][1]);
	}
	identificador=setInterval('scrollNow()', 1000);
}
function iniciaScrollH()
{
	scrollDivsH=new Array();
	velDivsH=new Array();
	for(key in scrollListH[this.id])
	{
		scrollDivsH.push(getEl(scrollListH[this.id][key][0]));
		velDivsH.push(scrollListH[this.id][key][1]);
	}
	identificador=setInterval('scrollNowH()', 1000);
}
function detieneScroll()
{
	clearInterval(identificador);
}
function detieneScrollH()
{
	clearInterval(identificador);
}
function scrollNow()
{
	for(key in scrollDivs)
	{
	var desplazamientoActual=scrollDivs[key].scrollTop;
	var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
	scrollDivs[key].scrollTop=nuevoDesplazamiento;
	}
}
function scrollNowH()
{
	for(key in scrollDivsH)
	{
	    var desplazamientoActual=scrollDivsH[key].scrollLeft;
	    var nuevoDesplazamiento=desplazamientoActual+velDivsH[key];
	    scrollDivsH[key].scrollLeft=nuevoDesplazamiento;
	}
}

function makeDoubleDelegate(function1, function2) 
{
    return function() 
    {
        if (function1)
            function1();
        if (function2)
            function2();
    }
}


function scrollManualH(objeto,cambio)
{
    if ((document.getElementById(objeto).scrollWidth - document.getElementById(objeto).scrollLeft - document.getElementById(objeto).clientWidth ) < cambio)
        return ;
        
	var desplazamientoActual=document.getElementById(objeto).scrollLeft;
	var nuevoDesplazamiento=desplazamientoActual+cambio;
	document.getElementById(objeto).scrollLeft=nuevoDesplazamiento;
}

function scrollManualV(objeto,cambio)
{
	var desplazamientoActual=document.getElementById(objeto).scrollTop;
	var nuevoDesplazamiento=desplazamientoActual+cambio;
	document.getElementById(objeto).scrollTop=nuevoDesplazamiento;
}


