var timeScroll;
var objLayer;
var objLayerScroll;
var intAltoLayerScroll;
var intAltoLayer;
var intAnchoLayer;
var intLayerPosicionTop;
var intAreaVisible;

/* Variables para el indicador de Scroll */
var intTopScroll = 0;
var intAltoScroll = 0;
var intCantidadPixelesMovimiento = 0;
var intLayerIndicadorScroll = 0;
var objLayerIndicadorScroll;
var intScrollerHeight = 0;

function showScroll(strNombreLayer, strReferencia, intTopReferencia, intLeftReferencia, intAreaAMostrar){
	intLayerPosicionTop = intTopReferencia;
	intAreaVisible = intAreaAMostrar;

	objLayerScroll = getLayerName(strNombreLayer);
	objLayer = getObjectName(strNombreLayer);
	intAltoLayerScroll = parseInt(getAbsY(getObjectName(strReferencia))) + intLayerPosicionTop;
	intAltoLayer = (objLayer.offsetHeight) ? objLayer.offsetHeight : objLayer.clip.height;
	intAnchoLayer = (objLayer.offsetWidth) ? objLayer.offsetWidth : objLayer.clip.width;

	setLayerPosition(strNombreLayer, strReferencia, intLayerPosicionTop, intLeftReferencia);
	setClippingArea(objLayerScroll, 0, 0, intAreaVisible, intAnchoLayer);
	MM_showHideLayers(strNombreLayer, '', 'show', 1);

	/* Variables para el indicador */
	intTopScroll = parseInt(getAbsY(getObjectName('imgBeginScroll')));
	intEndScroll = parseInt(getAbsY(getObjectName('imgEndScroll')));
	intAltoScroll = parseInt(getAbsY(getObjectName('imgEndScroll'))) - intTopScroll;
	intCantidadPixelesMovimiento = intAltoScroll / (intAreaAMostrar - 50);
	intLayerIndicadorScroll = parseInt(getAbsY(getObjectName('layerBarra')));
	objLayerIndicadorScroll = getLayerName('layerBarra');

	if (intAltoScroll > intAreaAMostrar){
		intAltoScroll = intAltoScroll - intAreaAMostrar;
		MM_showHideLayers('layerBarra', '', 'show', 1);
		MM_showHideLayers('layerBarraMarker', '', 'show', 1);

		intScrollerHeight = intAreaAMostrar - parseInt(objLayerIndicadorScroll.height);

	 	// Set Main div to correct Position
		intScrollerPosY = parseInt(objLayerIndicadorScroll.top);
		if (intScrollerPosY > 0){
			intAltoLayerDesplazamiento = intScrollerPosY * intAltoScroll / intScrollerHeight;
			objLayerScroll.top = (intAltoLayerScroll - intAltoLayerDesplazamiento) + "px";
			setClippingArea(objLayerScroll, (intAltoLayerScroll - parseInt(objLayerScroll.top)), 0, (intAltoLayerScroll - parseInt(objLayerScroll.top)) + intAreaVisible, intAnchoLayer);
		}
	}
}

function doLayerScroll(intSpeed){
	intLayerTop = parseInt(objLayerScroll.top);
	intLayerBottom = parseInt(objLayerScroll.top) + parseInt(intAltoLayer);
	if (((intLayerBottom - intAreaVisible > intAltoLayerScroll) && (intSpeed < 0)) ||
		((intLayerTop < intAltoLayerScroll) && (intSpeed > 0))){
		objLayerScroll.top = parseInt(objLayerScroll.top) + parseInt(intSpeed);
		setClippingArea(objLayerScroll, (intAltoLayerScroll - parseInt(objLayerScroll.top)), 0, (intAltoLayerScroll - parseInt(objLayerScroll.top)) + intAreaVisible, intAnchoLayer);
		timeScroll = setTimeout('doLayerScroll(' + intSpeed + ')', 50);
	}
	intMovimientoLayer = (intTopScroll - parseInt(objLayerScroll.top)) / intCantidadPixelesMovimiento; 
	objLayerIndicadorScroll.top = intLayerIndicadorScroll + parseInt(intMovimientoLayer); 
}

function goTo(strString){
	intAltoImagen = parseInt(getAbsY(getObjectName(strString))) - 3;
	objLayerScroll.top = intAltoLayerScroll + parseInt(objLayerScroll.top) - intAltoImagen;
	setClippingArea(objLayerScroll, (intAltoLayerScroll - parseInt(objLayerScroll.top)), 0, (intAltoLayerScroll - parseInt(objLayerScroll.top)) + intAreaVisible, intAnchoLayer);
}

function stopLayerScroll(){
	clearTimeout(timeScroll);
}

function disableEvents(event){
	if (isIE){
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}else{
		event.preventDefault();
	}
}
 
function dragScroller(event, id){
	objScrollDiv = document.getElementById(id);
	if (isIE){
		intCursorY = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
		document.attachEvent("onmousemove", startDrag);
		document.attachEvent("onmouseup", endDrag);
	}else{
		intCursorY = event.clientY + window.scrollY;
		document.addEventListener("mousemove", startDrag, true); 
		document.addEventListener("mouseup", endDrag, true);
	}

	intScrollerBeginY = parseInt(objScrollDiv.style.top);
	disableEvents(event);
}
 
function startDrag(event){
	var intActualY = (isIE) ? window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop : event.clientY + window.scrollY;
    
	intScrollerPosY = (intScrollerBeginY + intActualY - intCursorY);
	intScrollerPosY = (intScrollerPosY < 0) ? 0 : intScrollerPosY;
	intScrollerPosY = (intScrollerPosY > intScrollerHeight) ? intScrollerHeight : intScrollerPosY;
	objScrollDiv.style.top = intScrollerPosY + "px";
 
 	// Set Main div to correct Position
	intAltoLayerDesplazamiento = intScrollerPosY * intAltoScroll / intScrollerHeight;
	objLayerScroll.top = (intAltoLayerScroll - intAltoLayerDesplazamiento) + "px";
	setClippingArea(objLayerScroll, (intAltoLayerScroll - parseInt(objLayerScroll.top)), 0, (intAltoLayerScroll - parseInt(objLayerScroll.top)) + intAreaVisible, intAnchoLayer);

	disableEvents(event);
}
 
function endDrag(event){
	if (isIE){    
		document.detachEvent("onmousemove", startDrag);
		document.detachEvent("onmouseup", endDrag);
	}else{
		document.removeEventListener("mousemove", startDrag, true);
		document.removeEventListener("mouseup", endDrag, true);
	}
}
