var objImage;
var objLayer;
var objLayerScroll;
var blnScrolling = false;
var intVelocity = 0;
var intMaxVelocity = 7;
var objTimer = "";
var intAreaVisible = 380;

function beginScroll(intIncrement){
	blnScrolling = true;
	intVelocity = intIncrement;
	if (objTimer != "")
		clearTimeout(objTimer);
	scrollContent();
}
function scrollContent(){
	/* Seteo el scroll en su lugar */
	objLayer = document.getElementById("layerContenido");
	objLayer.scrollTop += intVelocity;
	if (blnFotoGallery)
		intAreaVisible = 356;
	intPosicion = objLayer.scrollTop * 358 / (objLayer.scrollHeight - intAreaVisible);
	objLayerScroll = document.getElementById("layerScroll");
	objLayerScroll.style.top = Math.floor(intPosicion) + "px";

	/* Calculo velocidad */
	if (blnScrolling){
		if (intVelocity < intMaxVelocity & intVelocity > 0)
			intVelocity++;
		else if (intVelocity > (intMaxVelocity * -1) & intVelocity < 0)
			intVelocity--;
		objTimer = setTimeout("scrollContent();", 50);
	}else{
		if (intVelocity <= intMaxVelocity && intVelocity > 0)
			intVelocity--;
		else if (intVelocity >= (intMaxVelocity * -1) && intVelocity < 0)
			intVelocity++;
		if (intVelocity > 0 || intVelocity < 0)
			objTimer = setTimeout("scrollContent();", 50);
	}
}
function stopScroll(){
	blnScrolling = false;
}

var intPosicionInicialY = 0;
var intPosicionInicialMouseY = 0;
var objScrollObject = "";

function getElementTop(elem){
	yPos = elem.offsetTop;
	tempEl = elem.offsetParent;

	while (tempEl != null){
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}

	return yPos;
}

function getElementLeft(elem){
	yPos = elem.offsetLeft;
	tempEl = elem.offsetParent;

	while (tempEl != null){
		yPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}

	return yPos;
}

function mouseDown(e){
	try{
		if (blnFotoGallery)
			intAreaVisible = 356;
		var strElementName = (isIE) ? event.srcElement.parentElement.id : e.target.parentNode.id;
		if (strElementName == "layerScroll"){
			objScrollObject = document.getElementById("layerScroll");
			intPosicionInicialY = parseInt(objScrollObject.style.top, 10);
			intPosicionInicialY = (isNaN(intPosicionInicialY)) ? 0 : intPosicionInicialY;
			intPosicionInicialMouseY = (isIE) ? event.clientY : e.clientY;
			return false;
		}else{
			intPosicionMouseX = (isIE) ? event.clientX : e.clientX;
			intPosicionMouseY = (isIE) ? event.clientY : e.clientY;
			objImgScrollUp = document.getElementById("imgScrollUp");
			objImgScrollDown = document.getElementById("imgScrollDown");
			if (intPosicionMouseX >= getElementLeft(objImgScrollUp) && intPosicionMouseX <= (getElementLeft(objImgScrollUp) + 18) &&
				intPosicionMouseY >= (getElementTop(objImgScrollUp) + 18) && intPosicionMouseY <= getElementTop(objImgScrollDown)){
				/* Seteo el contenido y el Scroll a esa posición */
				intScrollBarPosition = 	intPosicionMouseY - parseInt(getElementTop(objImgScrollUp), 10) - 28;
				if (intScrollBarPosition < 0)
					intScrollBarPosition = 0;
				if (intScrollBarPosition > 358)
					intScrollBarPosition = 358;
				objScrollObjectDummy = document.getElementById("layerScroll");
				objScrollObjectDummy.style.top = intScrollBarPosition + "px";

				objLayerContent = document.getElementById("layerContenido");
				objLayerContent.scrollTop = intScrollBarPosition * (objLayerContent.scrollHeight - intAreaVisible) / 358;
			}
			objScrollObject = "";
			return true;
		}
	}catch (err){
		objScrollObject = "";
		return true;
	}
}

function mouseMove(e){
	if (objScrollObject != ""){
		intPosicion = intPosicionInicialY + ((isIE) ? event.clientY : e.clientY) - intPosicionInicialMouseY;
		if (intPosicion < 0){
			intPosicion = 0;
		}else if (intPosicion > 358){
			intPosicion = 358;
		}
		objScrollObject.style.top = intPosicion + "px";

		objLayerContent = document.getElementById("layerContenido");
		objLayerContent.scrollTop = intPosicion * (objLayerContent.scrollHeight - intAreaVisible) / 358;
		return false;
	}
}

function mouseUp(){
	objScrollObject = "";
	showHideScrollBar();
	return false;
}

function wheel(event){
	var delta = 0;
	if (!event)
		event = window.event;
	if (event.wheelDelta){
		delta = event.wheelDelta / 120;
		if (window.opera)
			delta = -delta;
	}else if (event.detail) {
		delta = -event.detail / 3;
	}

	if (delta){
		var objScrollObject = document.getElementById("layerScroll");
		intPosicion = parseInt(objScrollObject.style.top, 10);
		intPosicion = (isNaN(intPosicion)) ? 0 : intPosicion;
		intPosicion += delta * -3;

		if (intPosicion < 0){
			intPosicion = 0;
		}else if (intPosicion > 358){
			intPosicion = 358;
		}
		objScrollObject.style.top = intPosicion + "px";

		objLayerContent = document.getElementById("layerContenido");
		objLayerContent.scrollTop = intPosicion * (objLayerContent.scrollHeight - intAreaVisible) / 358;
	}

	if (event.preventDefault)
		event.preventDefault();
	event.returnValue = false;
}

function showHideScrollBar(){
	objLayerContent = document.getElementById("layerContenido");
	objScrollLayer = document.getElementById("layerScroll");
	objImgScrollUp = document.getElementById("imgScrollUp");
	objImgScrollDown = document.getElementById("imgScrollDown");
	if (objLayerContent.scrollHeight <= 380){
		objScrollLayer.style.visibility = "hidden";
		objImgScrollUp.style.visibility = "hidden";
		objImgScrollDown.style.visibility = "hidden";
	}else{
		objScrollLayer.style.visibility = "visible";
		objImgScrollUp.style.visibility = "visible";
		objImgScrollDown.style.visibility = "visible";
	}
}

document.onmousedown = mouseDown;
document.onmousemove = mouseMove;
document.onmouseup = mouseUp;
if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
window.onload = showHideScrollBar;
