/*
	Copyright (c) 2007 FormatoWeb.com.ar
	Prohibida la copia o modificación del presente código fuente.
*/

scrollListV=new Array();
scrollListH=new Array();

function registraScrollV(idAbajo, idArriba, div, velAbajo, velArriba)
{
	if(scrollListV[idAbajo]==null) scrollListV[idAbajo]=new Array();
	if(scrollListV[idArriba]==null) scrollListV[idArriba]=new Array();

	scrollListV[idAbajo].push(new Array(div, velAbajo));
	scrollListV[idArriba].push(new Array(div, velArriba));
}

function registraScrollH(idDerecha, idIzquierda, div, velDerecha, velIzquierda)
{
	if(scrollListH[idDerecha]==null) scrollListH[idDerecha]=new Array();
	if(scrollListH[idIzquierda]==null) scrollListH[idIzquierda]=new Array();

	scrollListH[idDerecha].push(new Array(div, velDerecha));
	scrollListH[idIzquierda].push(new Array(div, velIzquierda));
}

window.onload=inicializar;

function getEl(elementId)
{
	return document.getElementById(elementId);
}

function inicializar()
{
	for(key in scrollListV)
	{
		var elemento=getEl(key);
		elemento.onmouseover=iniciaScrollV;
		elemento.onmouseout=detieneScroll;
	}
	for(key in scrollListH)
	{
		var elemento=getEl(key);
		elemento.onmouseover=iniciaScrollH;
		elemento.onmouseout=detieneScroll;
	}
}

function iniciaScrollV()
{
	scrollDivs=new Array();
	velDivs=new Array();
	for(key in scrollListV[this.id])
	{
		scrollDivs.push(getEl(scrollListV[this.id][key][0]));
		velDivs.push(scrollListV[this.id][key][1]);
	}
	 /*
	 	La idea era pasar scrollDivs y velDivs por argumento a scrollNow(), pero scrollDivs es un elemento, y al hacer la llamada de esta forma:
		identificador=setInterval('scrollNow('+scrollDivs+', '+velDivs+')', 100);
		scrollDivs queda ente medio de cadena de texto, por lo que JavaScript le aplica un toString() conviertiendolo en una cadena y no un elemento.
	 */
	identificador=setInterval('scrollNowV()', 50);
}

function scrollNowV()
{
	for(key in scrollDivs)
	{
		var desplazamientoActual=scrollDivs[key].scrollTop;
		var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
		scrollDivs[key].scrollTop=nuevoDesplazamiento;

		// Movimiento del box
		var rango_desplazamiento = scrollDivs[key].scrollHeight-scrollDivs[key].offsetHeight;
		if (scrollDivs[key].scrollTop >= rango_desplazamiento) { // Si llegamos hasta abajo
			fijarBoxScrollV(310);
		}
		else if (scrollDivs[key].scrollTop == 0) { // Si llegamos hasta arriba
			fijarBoxScrollV(130);
		}
		else {
			// Dividimos toda la sección en 17 pasos de 10 pixeles cada uno
			for (var i = 1; i <= 17; i++) {
				if (scrollDivs[key].scrollTop > (i*rango_desplazamiento/17) && scrollDivs[key].scrollTop < ((i+1)*rango_desplazamiento/17)) {
					fijarBoxScrollV(130 + (i*10));
					break;
				}
			}
		}
	}

}
function moverBoxScrollV(desplazamiento) {
	var posicion_actual = document.getElementById('boxScroll').offsetTop;
	var posicion_nueva = posicion_actual+desplazamiento;
	if (posicion_nueva >= 130 && posicion_nueva <= 310) {
		fijarBoxScrollV(posicion_nueva);
	}
}
function fijarBoxScrollV(posicion) {
	document.getElementById('boxScroll').style.top=posicion+'px';
}


function iniciaScrollH()
{
	scrollDivs=new Array();
	velDivs=new Array();
	for(key in scrollListH[this.id])
	{
		scrollDivs.push(getEl(scrollListH[this.id][key][0]));
		velDivs.push(scrollListH[this.id][key][1]);
	}
	 /*
	 	La idea era pasar scrollDivs y velDivs por argumento a scrollNow(), pero scrollDivs es un elemento, y al hacer la llamada de esta forma:
		identificador=setInterval('scrollNow('+scrollDivs+', '+velDivs+')', 100);
		scrollDivs queda ente medio de cadena de texto, por lo que JavaScript le aplica un toString() conviertiendolo en una cadena y no un elemento.
	 */
	identificador=setInterval('scrollNowH()', 50);
}

function scrollNowH()
{
	for(key in scrollDivs)
	{
		var desplazamientoActual=scrollDivs[key].scrollLeft;
		var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
		scrollDivs[key].scrollLeft=nuevoDesplazamiento;
	}

}

function detieneScroll()
{
	clearInterval(identificador);
}

