//Javascript
	//Config
	var iZoomMinMarging = 30;//px
	var iZoomDelay = 1;//mlsgs
	var iZoomFrames = 10;//px
	
	//
	var iZoomInt = 0;
	var iZoomW = 0;
	var iZoomH = 0;
	var iZoomY = 0;
	var iZoomX = 0;
	var bZoomOn = false;
	var bZoomAnim = false;
	var aZoomInfo = new Object();
	var eZoomImage = null;
	var oZoomImageLoad = null;
	var eZoomLoader = null;
	var eZoomPrev = null;
	var eZoomPrevImg = null;
	var eZoomClose = null;
	var divEpi = null;
	var zoomImageInEndEjec = null;
	var altoEpi = 0;
	
	var iZoomNro = 0;
	var eZoomPrevious = null;
	var eZoomNext = null;

	function zoomInit(){
		if(!window.innerWidth){//IE
			iZoomW = document.documentElement.clientWidth;
			iZoomH = document.documentElement.clientHeight;
			iZoomY = document.documentElement.scrollTop;
			iZoomX = document.documentElement.scrollLeft;
		}
		else{
			iZoomW = window.innerWidth;
			iZoomH = window.innerHeight;
			iZoomY = window.pageYOffset;
			iZoomX = window.pageXOffset;
		}
		eZoomLoader = document.getElementById('zoomLayLoader');
		eZoomPrev = document.getElementById('zoomLayPrev');
		eZoomPrevImg = document.getElementById('zoomImagePrev');
		eZoomPrevImg.onclick = zoomImageOut;
		eZoomClose = document.getElementById('zoomImageClose');
		eZoomEpig = document.getElementById('zoomLayEpig');
		eZoomClose.onclick = zoomImageOut;
		eZoomPrevious = document.getElementById('zoomImagePrevious');
		eZoomPrevious.onclick = zoomImagePreviousImg;
		eZoomNext = document.getElementById('zoomImageNext');
		eZoomNext.onclick = zoomImageNextImg;
	}
	
	function zoomImage(event, image, nro, contEpi){
		StopEvent(event);
		zoomInit();
		
		divEpi = $(contEpi);
		altoEpi = 0;
		eZoomEpig.style.visibility = 'hidden';
		if(divEpi){ eZoomEpig.innerHTML = divEpi.innerHTML; }
		altoEpi = Math.round(eZoomEpig.offsetHeight/2);
		
		eZoomImage = image;
		iZoomNro = nro;
		zoomShowLoader(true);
		zoomImageLoad();
	}
	
	function zoomImageLoad(){
		oZoomImageLoad = new Image();
		oZoomImageLoad.onload = function(){ zoomImageLoaded(); }
		oZoomImageLoad.src = eZoomImage.src.substr(0, eZoomImage.src.lastIndexOf('.') - 1) + eZoomImage.src.substr(eZoomImage.src.lastIndexOf('.'), eZoomImage.src.length);
	}
	
	function zoomImageLoaded(){
		zoomShowLoader(false);
		zoomImageIn();
	}
	
	function zoomShowLoader(bShow){
		if(bShow){
			eZoomLoader.style.top = Math.ceil(((iZoomH - eZoomLoader.offsetHeight) / 2) + iZoomY) + 'px';
			eZoomLoader.style.left = Math.ceil(((iZoomW - eZoomLoader.offsetWidth) / 2) + iZoomX) + 'px';
			eZoomLoader.style.visibility = 'visible';
		}
		else{
			eZoomLoader.style.top = '-' + (eZoomLoader.offsetHeight + 20) + 'px';
			eZoomLoader.style.visibility = 'hidden';
		}
	}
	
	function zoomImageIn(){
		var iIniW = eZoomImage.width;
		var iIniH = eZoomImage.height;
		var iEndW = oZoomImageLoad.width;
		var iEndH = oZoomImageLoad.height;
		
		var oPos = getElementPos(eZoomImage);
		var iIniX = oPos.x;
		var iIniY = oPos.y;
		
		if(bZoomAnim != true){
			aZoomInfo['iIniW'] = iIniW;
			aZoomInfo['iIniH'] = iIniH;
			aZoomInfo['iIniX'] = iIniX;
			aZoomInfo['iIniY'] = iIniY;
			
			zoomImageHideNav();
			eZoomClose.style.visibility = 'hidden';
			eZoomEpig.style.visibility = 'hidden';
			
			eZoomPrevImg.style.height = iIniH + 'px';
			eZoomPrevImg.style.width = iIniW + 'px';
			eZoomPrevImg.src = oZoomImageLoad.src;
			eZoomPrevImg.alt = eZoomImage.alt;
			eZoomPrevImg.title = eZoomImage.title;
			
			eZoomPrev.style.top = iIniY + 'px';
			eZoomPrev.style.left = iIniX + 'px';
			
			setOpacity(0, eZoomPrev);
			eZoomPrev.style.visibility = 'visible';
			
			var iPorc = iEndW / iEndH;
			if(iEndW > iZoomW - iZoomMinMarging){
				iEndW = iZoomW - iZoomMinMarging;
				iEndH = iEndW / iPorc;
			}
			if(iEndH > iZoomH - iZoomMinMarging - (altoEpi*2)){
				iEndH = iZoomH - iZoomMinMarging - (altoEpi*2);
				iEndW = iEndH * iPorc;
			}
			
			var iChangeX = (((iZoomW / 2) - (iEndW / 2) - iIniX) + iZoomX);
			var iChangeY = (((iZoomH / 2) - (iEndH / 2) - iIniY) + iZoomY);
			var iChangeW = (iEndW - iIniW);
			var iChangeH = (iEndH - iIniH);
			var sOpacity = "(100 / iZoomFrames) * iCurFrame";
			
			iZoomInt = setInterval('zoomImageAnim('+iIniW+', '+iChangeW+', '+iIniH+', '+iChangeH+', '+iIniX+', '+iChangeX+', '+iIniY+', '+iChangeY+', 0, "zoomImageInEnd()", "'+sOpacity+'")', iZoomDelay);
			bZoomAnim = true;
			oPos = null;
		}
	}
	
	function zoomImageOut(){
		if(bZoomAnim != true){
			mostrarBlockeador();
			zoomImageHideNav();
			eZoomClose.style.visibility = 'hidden';
			divEpi = false;
			eZoomEpig.style.visibility = 'hidden';
			
			var iIniW = parseInt(eZoomPrevImg.style.width);
			var iIniH = parseInt(eZoomPrevImg.style.height);
			var iEndW = eZoomImage.width;
			var iEndH = eZoomImage.height;
			
			var iIniX = parseInt(eZoomPrev.style.left);
			var iIniY = parseInt(eZoomPrev.style.top);
			
			var iChangeX = aZoomInfo['iIniX'] - iIniX;
			var iChangeY = aZoomInfo['iIniY'] - iIniY;
			var iChangeW = aZoomInfo['iIniW'] - iIniW;
			var iChangeH = aZoomInfo['iIniH'] - iIniH;
			var sOpacity = "(100 / iZoomFrames) * (iZoomFrames - iCurFrame)";
			
			iZoomInt = setInterval('zoomImageAnim('+iIniW+', '+iChangeW+', '+iIniH+', '+iChangeH+', '+iIniX+', '+iChangeX+', '+iIniY+', '+iChangeY+', 0, "zoomImageOutEnd()", "'+sOpacity+'")', iZoomDelay);
			bZoomAnim = true;
		}
	}
	
	function zoomImageAnim(iIniW, iChangeW, iIniH, iChangeH, iIniX, iChangeX, iIniY, iChangeY, iCurFrame, sFunction, sOpacity){
		if(iCurFrame == (iZoomFrames + 1)){
			bZoomAnim = false;
			clearInterval(iZoomInt);
			eval(sFunction);
		}
		else{
			var w = strongEaseInOut(iCurFrame, iIniW, iChangeW, iZoomFrames);
			var h = strongEaseInOut(iCurFrame, iIniH, iChangeH, iZoomFrames);
			var x = strongEaseInOut(iCurFrame, iIniX, iChangeX, iZoomFrames);
			var y = strongEaseInOut(iCurFrame, iIniY, iChangeY, iZoomFrames);
			
			eZoomPrev.style.left = x + 'px';
			if(divEpi){ eZoomPrev.style.top = (y - (altoEpi / iZoomFrames * iCurFrame)) + 'px'; }
			else{ eZoomPrev.style.top = y + 'px'; }
			
			eZoomPrevImg.style.width = w + 'px';
			eZoomPrevImg.style.height = h + 'px';
			
			setOpacity(eval(sOpacity), eZoomPrev);
			
			iCurFrame++;
			
			clearInterval(iZoomInt);
			iZoomInt = setInterval('zoomImageAnim('+iIniW+', '+iChangeW+', '+iIniH+', '+iChangeH+', '+iIniX+', '+iChangeX+', '+iIniY+', '+iChangeY+', '+iCurFrame+', "'+sFunction+'", "'+sOpacity+'")', iZoomDelay);
		}
	}
	
	function zoomImageInEnd(){
		bZoomOn = true;
		eZoomClose.style.top = (parseInt(eZoomPrev.style.top) - (eZoomClose.offsetHeight / 2)) + 'px';
		eZoomClose.style.left = (parseInt(eZoomPrev.style.left) + parseInt(eZoomPrevImg.style.width) - (eZoomClose.offsetWidth / 2)) + 'px';
		eZoomClose.style.visibility = 'visible';
		
		//
		if(!!$('imgFicha' + (iZoomNro - 1))){
			eZoomPrevious.style.top = ((iZoomH - eZoomPrevious.offsetHeight) / 2) + 'px';
			eZoomPrevious.style.left = iZoomMinMarging + 'px';
			eZoomPrevious.style.visibility = 'visible';
		}
		if(!!$('imgFicha' + (iZoomNro + 1))){
			eZoomNext.style.top = ((iZoomH - eZoomNext.offsetHeight) / 2) + 'px';
			eZoomNext.style.left = (iZoomW - eZoomNext.offsetWidth - iZoomMinMarging) + 'px';
			eZoomNext.style.visibility = 'visible';
		}
		
		//
		if(divEpi){
			eZoomEpig.innerHTML = divEpi.innerHTML;
			eZoomEpig.style.visibility = 'visible';
		}
		mostrarBlockeador(true);
	}
	
	function zoomImageOutEnd(){
		bZoomOn = false;
		eZoomPrev.style.visibility = 'hidden';
		eZoomPrev.style.top = '-1000px';
		eZoomPrev.style.left = '0';
	}
	
	function zoomImageHideNav(){
		eZoomPrevious.style.visibility = eZoomNext.style.visibility = 'hidden';
		eZoomPrevious.style.top = eZoomNext.style.top = '-1000px';
	}
	
	function zoomImagePreviousImg(){ FireEvent($('imgFicha' + (iZoomNro - 1)), 'click'); }
	
	function zoomImageNextImg(){ FireEvent($('imgFicha' + (iZoomNro + 1)), 'click'); }