//var numApartats = 20;
var gIncScroll = 10;
var gInnerScrollDiv = null;
var gInnerScrollDivBrand = null;
var gInnerScrollDivDesign = null;
var gInnerScrollDivMotion = null;
var gTimeoutScroll = 0;;
/*
 *	baixaScroll(strApartat, numApartats){
 */
function baixaScroll(strApartat, numApartats){
	if (gTimeoutScroll != 0) return;
	_baixaScroll(strApartat, numApartats);
}
function _baixaScroll(strApartat, numApartats)
{
	inc = gIncScroll;
	gInnerScrollDiv = getCapa(strApartat, "contingut");
	if (!gInnerScrollDiv) return;
	
	movimentPossible = -(numApartats - 8) * 18; // (numApartats * apartatsQueHiCaben) * alçadaCadaApartat
	ttop = parseInt(gInnerScrollDiv.style.top);
	
	// Mou el contingut
	if (ttop > movimentPossible) ttop -= inc;
	if (ttop < movimentPossible) ttop = movimentPossible;
	gInnerScrollDiv.style.top = ttop + "px";

	// Posiciona la barra de l'scroll
	tanPerCent = (ttop/movimentPossible)*100;
	posicionaBarraScroll(tanPerCent, strApartat);

	if (ttop > movimentPossible)
	{
		gTimeoutScroll = setTimeout("_baixaScroll('"+strApartat+"',"+numApartats+");", 100);
	}
}

/*
 *	pujaScroll(strApartat, numApartats)
 */
function pujaScroll(strApartat, numApartats){
	if (gTimeoutScroll != 0) return;
	_pujaScroll(strApartat, numApartats);
}
function _pujaScroll(strApartat, numApartats)
{
	inc = gIncScroll;
	gInnerScrollDiv = getCapa(strApartat, "contingut")
	if (!gInnerScrollDiv) return;
	
	movimentPossible = -(numApartats - 8) * 18; // (numApartats * apartatsQueHiCabenSsenseScroll) * alçadaCadaApartat
	ttop = parseInt(gInnerScrollDiv.style.top);
	
	
	// Mou el contingut
	if (ttop < 0) ttop += inc;
	if (ttop > 0) ttop = 0;
	gInnerScrollDiv.style.top = ttop + "px";

	// Posiciona la barra de l'scroll
	tanPerCent = (ttop/movimentPossible)*100;
	posicionaBarraScroll(tanPerCent, strApartat);

	if (ttop > 0)
	{
		gTimeoutScroll = setTimeout("_pujaScroll('"+strApartat+"',"+numApartats+");", 100);
	}
}


var gBarraScroll = null;
var gBarraScrollBrand = null;
var gBarraScrollDesign = null;
var gBarraScrollMotion = null;
function posicionaBarraScroll(tanPerCent, strApartat)
{
	// Recorregut total = 91px
	gBarraScroll = getCapa(strApartat, "scrollBar");

	if (!gBarraScroll) return;
	ttop = (tanPerCent/100) * 91;
	gBarraScroll.style.top = ttop + "px";
}

/*
 *	paraScroll()
 */
function paraScroll()
{
	clearTimeout(gTimeoutScroll);
	gTimeoutScroll = 0;
}

function getCapa(strApartat, strCapa)
{
	if (strCapa == "contingut")
	{
		if (strApartat == "brand"){
			if (!gInnerScrollDivBrand) gInnerScrollDivBrand = MM_findObj('contingutScrollDivBrand');
			var gInnerScrollDiv = gInnerScrollDivBrand;
		}
		else if (strApartat == "design")	{
			if (!gInnerScrollDivDesign) gInnerScrollDivDesign = MM_findObj('contingutScrollDivDesign');
			var gInnerScrollDiv = gInnerScrollDivDesign;
		}
		else if (strApartat == "motion")	{
			if (!gInnerScrollDivMotion) gInnerScrollDivMotion = MM_findObj('contingutScrollDivMotion');
			var gInnerScrollDiv = gInnerScrollDivMotion;
		}
		return gInnerScrollDiv;
	}
	else if (strCapa == "scrollBar")
	{
		if (strApartat == "brand"){
			if (!gBarraScrollBrand) gBarraScrollBrand = MM_findObj('desplBrandDivScrollBar');
			var gBarraScroll = gBarraScrollBrand;
		}
		else if (strApartat == "design")	{
			if (!gBarraScrollDesign) gBarraScrollDesign = MM_findObj('desplDesignDivScrollBar');
			var gBarraScroll = gBarraScrollDesign;
		}
		else if (strApartat == "motion")	{
			if (!gBarraScrollMotion) gBarraScrollMotion = MM_findObj('desplMotionDivScrollBar');
			var gBarraScroll = gBarraScrollMotion;
		}
		return gBarraScroll;
	}
	return false;
}

/*
 *	mouPagScroll(strApartat, numApartats)
 */
function mouPagScroll(strApartat, numApartats)
{
	var scrollBar = gBarraScroll = getCapa(strApartat, "scrollBar");
	var posBarraScroll = GetAbsPosition(scrollBar);
	if (mouseY < posBarraScroll.y)	pujaScroll(strApartat, numApartats);
	else 														baixaScroll(strApartat, numApartats);
	
	setTimeout("paraScroll()",1200);
}

// Calculates the object's absolute position, and width and height
function GetAbsPosition(object) {
	var position = new Object;
	position.x = 0;
	position.y = 0;
	if( object ) {
		position.x = object.offsetLeft;
		position.y = object.offsetTop;
		
		if( object.offsetParent ) {
			var parentpos = GetAbsPosition(object.offsetParent);
			position.x += parentpos.x;
			position.y += parentpos.y;
		}
	}
	position.cx = object.offsetWidth;
	position.cy = object.offsetHeight;
	return position;
}


