//Javascript
	//Config
	var iZoomMinMarging = 30;//px
	var iZoomDelay = 4;//mlsgs
	var iZoomFrames = 16;//px
	
	//
	var iZoomImgW = 0;
	var iZoomImgH = 0;
	var iZoomImgY = 0;
	var iZoomImgX = 0;
	var bZoomImgOn = false;
	var bZoomImgAnim = false;
	var aZoomImgInfo = new Object();
	var eZoomImage = null;
	var oZoomImgLoad = null;
	var eZoomImgLoader = null;
	var eZoomImgLayer = null;
	var eZoomImgImage = null;
	var eZoomImgClose = null;
	var eZoomImgBack = null;
	var eZoomImgFord = null;
	var eZoomFromGalery = false;
	var eZoomFromIdGalery = false;	
	var eZoomFromBtnGalery = false;
	var eZoomHasFord = false;
	var eZoomHasBack = false;
	var eZoomHasDown = false;	
	var eZoomImgBlock = null;
	var eZoomImgClosePos = 'right';
	var eZoomImgGalerys = new Array();//SE UTILIZA PARA GUARDAR LAS GALERIAS YA CARGADAS ASI NO SE VUELVEN A CARGAR.
	var eZoomImgFileGalery = DIR_ROOT + 'requests/loadGalery.php';
	var eZoomImgReq = null;
	var eZoomImgPrincipal = false;
	var eZoomImgDesdePartir = false;
	var eZoomImgAnt = null;
	var eZoomShowDown = false;
	var eZoomCargando = false;
	var eZoomTemp = null;
	var eZoomImgDown = null;
	var eZoomReqTemp = null;
	var eZoomSeccionTemp = null;
	var eZoomIdSeccion = null;
	function zoomInit(){
		iZoomImgW = WBody();
		iZoomImgH = HScreen();
		iZoomImgY = YPos();
		iZoomImgX = XPos();
		
		eZoomImgLoader = document.getElementById('zoomLayLoader');
		eZoomImgLayer = document.getElementById('zoomLayPrev');
		eZoomImgImage = document.getElementById('zoomImagePrev');
		eZoomImgImage.onclick = zoomImageOut;
		eZoomImgEpi = document.getElementById('zoomImageEpi');
		eZoomImgEpi.firstChild.innerHTML = '';
		eZoomImgEpi.style.display = 'none';
		eZoomImgClose = document.getElementById('zoomImageClose');
		eZoomImgClose.onclick = zoomImageOut;
		eZoomImgClose.style.visibility = 'hidden';
		eZoomImgBack = document.getElementById('zoomImageBack');
		eZoomImgBack.onclick = zoomImagePrev;
		eZoomImgBack.style.visibility = 'hidden';
		eZoomImgDown = document.getElementById('zoomImageDown');
		eZoomImgDown.onclick = zoomImageDown;
		eZoomImgDown.style.visibility = 'hidden';
		
		
		eZoomImgFord = document.getElementById('zoomImageFord');
		eZoomImgFord.onclick = zoomImageNext;
		eZoomImgFord.style.visibility = 'hidden';
		eZoomImgBlock = document.getElementById('zoomLayBlock');
		eZoomImgBlock = document.getElementById('zoomLayBlock');		
		eZoomImgMinis = document.getElementById('zoomImageMinis');

		if(!eZoomImgReq && eZoomFromIdGalery > 0){
			eZoomImgReq = new Request(zoomImageListener);
		}
		
		if(!eZoomFromBtnGalery){
			eZoomImgBlock.style.display = 'none';
			eZoomFromBtnGalery = false;
		}
		setOpacity(70, eZoomImgBlock);
		
	}
	
	function zoomImage(event, image, galery,idGalery,principal,mostrarDown,idSeccion){
		eZoomIdSeccion = idSeccion;
		if(document.getElementById('zoomLayLoader')){
		
			eZoomShowDown = mostrarDown;
			var IdGaleryAnt = eZoomFromIdGalery;
			eZoomFromIdGalery = (!idGalery)? 0:idGalery;				
			zoomInit();
			if(eZoomFromIdGalery > 0){
				if(eZoomImgGalerys[eZoomFromIdGalery]){
					if(IdGaleryAnt != eZoomFromIdGalery){
						$('miniZoomImage').innerHTML = eZoomImgGalerys[eZoomFromIdGalery]['html'];
						zoomRedimContMini();
					}
				}
				else{
					var anexReq = '';	

					if(eZoomIdSeccion){
						anexReq = 'idSeccion' + SEP_IGUAL + eZoomIdSeccion + SEP_AND;
						eZoomIdSeccion = null;

					}
					eZoomImgReq.pedir(eZoomImgFileGalery,'idGalery' + SEP_IGUAL + eZoomFromIdGalery + SEP_AND + anexReq);
				}
			}
			eZoomImgPrincipal = principal;
			if(principal){
				eZoomImgDesdePartir = image;
			}
			eZoomImage = image;
			eZoomFromGalery = (!galery)? false:true;
			zoomShowLoader(true);
			zoomImageLoad();
		}
		else{
			if(!eZoomCargando){
				eZoomCargando = true;
				eZoomTemp = {'image' : image,'galery' : galery,'idGalery' : idGalery,'principal' : principal,'mostrarDown' : mostrarDown};
				eZoomReqTemp = new Request(zoomReqLoad);
				eZoomReqTemp.pedir(DIR_ROOT + 'requests/cargar.php','file' + SEP_IGUAL +'../includes/zoomImage.php' + SEP_AND);

			}
		}
		if(event)StopEvent(event);		
	}
	
	function zoomReqLoad(){
		var d = eZoomReqTemp.respuestaXML;

		if(d){

			cargarHTMLRequest(d.firstChild.data);					
			zoomImage(null,eZoomTemp['image'],eZoomTemp['galery'],eZoomTemp['idGalery'],eZoomTemp['principal'],eZoomTemp['mostrarDown'],eZoomIdSeccion);
		}
		
	}
	
	function zoomImageLoad(){
		oZoomImgLoad = new Image();
		oZoomImgLoad.loaded = false;
		oZoomImgLoad.onload = function(){ zoomImageLoaded(); }
		oZoomImgLoad.src = eZoomImage.src.substr(0, eZoomImage.src.lastIndexOf('.') - 1) + eZoomImage.src.substr(eZoomImage.src.lastIndexOf('.'), eZoomImage.src.length);
	}
	
	function zoomImageLoaded(){
		oZoomImgLoad.loaded = true;

		if(eZoomFromIdGalery == 0 || (eZoomImgGalerys[eZoomFromIdGalery])){
			if(eZoomImgPrincipal){
				if($('imagenGaleriaPrincipal')){
					eZoomImage = $('imagenGaleriaPrincipal');

				}
				else eZoomImage = $('principal' + eZoomFromIdGalery);

			}
			else{
				var srcImg = eZoomImage.src.substr(eZoomImage.src.lastIndexOf('/'));
				if($('imagenGaleria' + srcImg))eZoomImage = $('imagenGaleria' + srcImg);

			}

			zoomShowLoader(false);
			zoomImageIn();
		}
	
	}
	function zoomImageListener(){
		if(eZoomImgReq.respuestaXML){

			$('miniZoomImage').innerHTML = eZoomImgReq.respuestaXML.firstChild.data;
			eZoomImgGalerys[eZoomFromIdGalery] = new Array();
			eZoomImgGalerys[eZoomFromIdGalery]['html'] = eZoomImgReq.respuestaXML.firstChild.data;
			eZoomImgGalerys[eZoomFromIdGalery]['cantidad'] = eZoomImgReq.respuestaXML.childNodes[1].getAttribute('cantidad');
			eZoomImgGalerys[eZoomFromIdGalery]['widthImg'] = eZoomImgReq.respuestaXML.childNodes[1].getAttribute('widthImg');
			var srcImg = oZoomImgLoad.src.substr(oZoomImgLoad.src.lastIndexOf('/')+1);
			if($('imagenGaleria' + srcImg)){
				eZoomImage = $('imagenGaleria' + srcImg);
			}
			zoomRedimContMini();			
			
		}
		else alert(eZoomImgReq.respuestaHTML);
		if(oZoomImgLoad.loaded){
			if(eZoomImgPrincipal){
				if($('imagenGaleriaPrincipal')){
					eZoomImage = $('imagenGaleriaPrincipal');

				}
				else eZoomImage = $('principal' + eZoomFromIdGalery);
			}
			zoomShowLoader(false);
			zoomImageIn();
		}


	}
	function zoomRedimContMini(){
		$('miniZoomImage').style.width = (eZoomImgGalerys[eZoomFromIdGalery]['cantidad']*eZoomImgGalerys[eZoomFromIdGalery]['widthImg'])+'px';
		var longitudContMini = Math.round((80*iZoomImgW/100));
	
		
		
		if(longitudContMini < $('miniZoomImage').offsetWidth){
			
			var diferencia = Math.round(longitudContMini/eZoomImgGalerys[eZoomFromIdGalery]['widthImg']);
			longitudContMini = Math.round(diferencia*eZoomImgGalerys[eZoomFromIdGalery]['widthImg']);
			
			
			$('zoomContAntSig').style.width = (longitudContMini + $('anteriorMini').offsetWidth + $('siguienteMini').offsetWidth + 20)+'px';
			$('zoomContAntSig').style.marginLeft = (Math.round(iZoomImgW-$('zoomContAntSig').offsetWidth)/2)+'px';			
			$('zoomContAntSig').style.top = (HScreen()-eZoomImgMinis.offsetHeight-10)+YPos()+'px';		
			$('zoomContAntSig').style.visibility = 'visible';		
		}
		else{
			$('zoomContAntSig').style.visibility = 'hidden';
			$('zoomContAntSig').style.top = '-5000px';					
		}
		eZoomImgMinis.style.width = longitudContMini+'px';
		eZoomImgMinis.style.marginLeft = (Math.round(iZoomImgW-eZoomImgMinis.offsetWidth)/2)+'px';
		
		
		scrollWidth = eZoomImgMinis.offsetWidth+4;
		

	}
	
	function zoomShowLoader(bShow){
		if(bShow){
			eZoomImgLoader.style.top = Math.ceil(((iZoomImgH - eZoomImgLoader.offsetHeight) / 2) + iZoomImgY) + 'px';
			eZoomImgLoader.style.left = Math.ceil(((iZoomImgW - eZoomImgLoader.offsetWidth) / 2) + iZoomImgX) + 'px';
			eZoomImgLoader.style.visibility = 'visible';
		}
		else{
			eZoomImgLoader.style.top = '-' + (eZoomImgLoader.offsetHeight + 20) + 'px';
			eZoomImgLoader.style.visibility = 'hidden';
		}
	}
	
	function zoomImageIn(){
		if(eZoomImgDesdePartir){
			var iIniW = eZoomImgDesdePartir.width;
			var iIniH = eZoomImgDesdePartir.height;
		}
		else{
			var iIniW = eZoomImage.width;
			var iIniH = eZoomImage.height;
		}
		var iEndW = oZoomImgLoad.width;
		var iEndH = oZoomImgLoad.height;

		var DIFERENCIA = 0;
		if($('miniZoomImage').innerHTML != '' && eZoomFromIdGalery > 0){
			DIFERENCIA = $('miniZoomImage').offsetHeight + 4;
		}
		var iPorc = iEndW / iEndH;
		
		var oPos;
		if(eZoomImgDesdePartir){
			oPos = getElementPos(eZoomImgDesdePartir);			
		}
		else{
			oPos = getElementPos(eZoomImage);
		}

	
		var iIniX = oPos.x;
		var iIniY = oPos.y;
		
		if(bZoomImgAnim != true){
				aZoomImgInfo['iIniW'] = iIniW;
				aZoomImgInfo['iIniH'] = iIniH;
				aZoomImgInfo['iIniX'] = iIniX;
				aZoomImgInfo['iIniY'] = iIniY;
				
				eZoomImgImage.style.height = iIniH + 'px';
				eZoomImgImage.style.width = iIniW + 'px';
				eZoomImgImage.src = oZoomImgLoad.src;
				eZoomImgImage.title = eZoomImage.title;
				
				eZoomImgLayer.style.top = iIniY + 'px';
				eZoomImgLayer.style.left = iIniX + 'px';
				
				setOpacity(0, eZoomImgLayer);
				eZoomImgLayer.style.visibility = 'visible';
				
				var iDif = 0;
				if(trim(eZoomImage.alt) != ''){
					eZoomImgEpi.firstChild.innerHTML = eZoomImage.alt;
					eZoomImgEpi.style.width = iIniW + 'px';
					eZoomImgEpi.style.display = 'block';
					
					iDif = eZoomImgEpi.offsetHeight;
				}
				
				if(iEndW > iZoomImgW - iZoomMinMarging){
					iEndW = iZoomImgW - iZoomMinMarging;
					iEndH = iEndW / iPorc;
				}
				if(iEndH > (iZoomImgH-DIFERENCIA) - iZoomMinMarging - iDif){
					iEndH = (iZoomImgH-DIFERENCIA) - iZoomMinMarging - iDif;
					iEndW = (iEndH - iDif) * iPorc;
				}
				
				var iChangeX = (((iZoomImgW / 2) - (iEndW / 2) - iIniX) + iZoomImgX);
				var iChangeY = ((((iZoomImgH-DIFERENCIA) / 2) - (iEndH / 2) - iIniY) + iZoomImgY - (iDif / 2));
				var iChangeW = (iEndW - iIniW);
				var iChangeH = (iEndH - iIniH);
				var sOpacity = "(100 / iZoomFrames) * iCurFrame";
				
				setTimeout('zoomImageAnim('+iIniW+', '+iChangeW+', '+iIniH+', '+iChangeH+', '+iIniX+', '+iChangeX+', '+iIniY+', '+iChangeY+', 0, "in")', iZoomDelay);
				bZoomImgAnim = true;
				oPos = null;
			
		}
	}
	
	function zoomImageOut(){
		if(bZoomImgAnim != true){
			
			eZoomImgMinis.style.visibility = 'hidden';
			eZoomImgMinis.style.top = '-100px';
			
			$('zoomContAntSig').style.visibility = 'hidden';
			$('zoomContAntSig').style.top = '-100px';					
			
			
			RemEvent(document, 'keypress', zoomImageKeypress);
			
			eZoomImgBlock.style.display = 'none';
			eZoomImgClose.style.visibility = eZoomImgBack.style.visibility = eZoomImgDown.style.visibility =
			eZoomImgFord.style.visibility = 'hidden';
			
			var iIniW = parseInt(eZoomImgImage.style.width);
			var iIniH = parseInt(eZoomImgImage.style.height);
			var iEndW = eZoomImage.width;
			var iEndH = eZoomImage.height;
			
			var iIniX = parseInt(eZoomImgLayer.style.left);
			var iIniY = parseInt(eZoomImgLayer.style.top);
			
			var iChangeX = aZoomImgInfo['iIniX'] - iIniX;
			var iChangeY = aZoomImgInfo['iIniY'] - iIniY;
			var iChangeW = aZoomImgInfo['iIniW'] - iIniW;
			var iChangeH = aZoomImgInfo['iIniH'] - iIniH;
			
			setTimeout('zoomImageAnim('+iIniW+', '+iChangeW+', '+iIniH+', '+iChangeH+', '+iIniX+', '+iChangeX+', '+iIniY+', '+iChangeY+', 0, "out")', iZoomDelay);
			bZoomImgAnim = true;
		}
	}
	
	function zoomImageAnim(iIniW, iChangeW, iIniH, iChangeH, iIniX, iChangeX, iIniY, iChangeY, iCurFrame, sMode){
		if(iCurFrame == (iZoomFrames + 1)){
			bZoomImgAnim = false;
			if(sMode == 'in'){ zoomImageInEnd(); }
			else{ zoomImageOutEnd(); }
		}
		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);
			var i = (sMode == 'in')? (100 / iZoomFrames) * iCurFrame : (100 / iZoomFrames) * (iZoomFrames - iCurFrame);
			
			eZoomImgLayer.style.left = x + 'px';
			eZoomImgLayer.style.top = y + 'px';
			eZoomImgImage.style.width = w + 'px';
			eZoomImgImage.style.height = h + 'px';
			
			if(eZoomImgEpi.style.display == 'block'){
				eZoomImgEpi.style.width = w + 'px';
			}
			
			setOpacity(i, eZoomImgLayer);
			
			iCurFrame++;
			
			setTimeout('zoomImageAnim('+iIniW+', '+iChangeW+', '+iIniH+', '+iChangeH+', '+iIniX+', '+iChangeX+', '+iIniY+', '+iChangeY+', '+iCurFrame+', "'+sMode+'")', iZoomDelay);
		}
	}
	
	function zoomImageInEnd(){
		bZoomImgOn = true;
		eZoomImgClose.style.top = (parseInt(eZoomImgLayer.style.top) - (eZoomImgClose.offsetHeight / 2)) + 'px';
		if(eZoomImgClosePos == 'left'){ eZoomImgClose.style.left = (parseInt(eZoomImgLayer.style.left) -  (eZoomImgClose.offsetWidth / 2)) + 'px'; }
		else{ eZoomImgClose.style.left = (parseInt(eZoomImgLayer.style.left) + parseInt(eZoomImgImage.style.width) -  (eZoomImgClose.offsetWidth / 2)) + 'px'; }
		eZoomImgClose.style.visibility = 'visible';
		if(eZoomFromGalery && !!eZoomImage.parentNode && !!eZoomImage.parentNode.nextSibling && !!eZoomImage.parentNode.nextSibling.nextSibling){
			eZoomHasFord = true;
			eZoomImgFord.style.top = (((iZoomImgH - eZoomImgFord.offsetHeight) / 2) + iZoomImgY) + 'px';
			eZoomImgFord.style.visibility = 'visible';
		}
		else{ eZoomHasFord = false; }
		
		if(eZoomFromGalery && !!eZoomImage.parentNode && !!eZoomImage.parentNode.previousSibling && !!eZoomImage.parentNode.previousSibling.previousSibling){
			eZoomHasBack = true;
			eZoomImgBack.style.top = (((iZoomImgH - eZoomImgBack.offsetHeight) / 2) + iZoomImgY) + 'px';
			eZoomImgBack.style.visibility = 'visible';
		}
		else{ eZoomHasBack = false; }

		if(eZoomShowDown){
			eZoomImgDown.style.top = (((iZoomImgH - eZoomImgDown.offsetHeight) / 2) + iZoomImgY + eZoomImgBack.offsetHeight) + 'px';
			eZoomImgDown.style.visibility = 'visible';
		}


		
		if(eZoomFromIdGalery > 0)zoomImagePosicionarMinis();
		
		var n = (HBody() > iZoomImgH)? HBody():iZoomImgH;
		eZoomImgBlock.style.height = n + 'px';
		eZoomImgBlock.style.width = WBody() + 'px';
		eZoomImgBlock.style.display = 'block';
		
		AddEvent(document, 'keypress', zoomImageKeypress);
	}
	
	function zoomImagePosicionarMinis(){
		eZoomImgMinis.style.top = (HScreen()-eZoomImgMinis.offsetHeight-10)+YPos()+'px';
		eZoomImgMinis.style.visibility = 'visible';
		
		
		if(eZoomImgAnt)eZoomImgAnt.className = '';
		eZoomImage.className = 'zoomImageMinisOn';
		eZoomImgAnt = eZoomImage;
		zoomImageOpacityMinis(50);
	}
	function zoomImageOpacityMinis(opa){
		setOpacity(opa, eZoomImgMinis);	
	}
	
	function zoomImageOutEnd(){
		bZoomImgOn = false;
		eZoomImgLayer.style.visibility = 'hidden';
		eZoomImgLayer.style.top = '-1000px';
		eZoomImgLayer.style.left = '0';
		if(eZoomImgAnt)eZoomImgAnt.className = '';		
	}
	
	function zoomImageNext(){
		if(eZoomHasFord){
			eZoomFromBtnGalery = true;
			if(eZoomImage.parentNode.nextSibling.nextSibling.firstChild.tagName)FireEvent(eZoomImage.parentNode.nextSibling.nextSibling.firstChild, 'click');
			else{
				FireEvent(eZoomImage.parentNode.nextSibling.nextSibling.childNodes[1].firstChild, 'click');
			}
		}
	}
	
	function zoomImagePrev(){
		if(eZoomHasBack){
			eZoomFromBtnGalery = true;
			FireEvent(eZoomImage.parentNode.previousSibling.previousSibling.firstChild, 'click');
		}
	}
	function zoomImageDown(){
		var img = eZoomImage.src.substr(0, eZoomImage.src.lastIndexOf('.') - 1) + HR + eZoomImage.src.substr(eZoomImage.src.lastIndexOf('.'), eZoomImage.src.length);	
		if(Nav.esIE6)document.location = DIR_ROOT+'requests/descargaFoto.php'+'?foto='+img;
		else $('galeriaFrame').src = DIR_ROOT+'requests/descargaFoto.php?foto='+img;
	}	
	
	function zoomImageKeypress(e){
		if(bZoomImgAnim != true){
			if(e.keyCode == 27){ zoomImageOut(); }
			else if(e.keyCode == 39){ zoomImageNext(); }
			else if(e.keyCode == 37){ zoomImagePrev(); }
		}
	}

	var scrollHeight = 473;
	var scrollWidth = 250;
	var frames = 15;
	var delay = 4;
	var scrollDownTimes = 0;
	var scrollRightTimes = 0;
	var scrollElement = null;



	function zoomImageScrollRight(){
		var o = $('miniZoomImage');
		var e = $('siguienteMini');
		var i = 0, t = 0;
		
		if(!!scrollElement || e.className == 'siguienteOff'){ return false; }
		o = o.childNodes;
		for(i; i < o.length; i++){

			if(!!o[i].tagName){

				if(t == scrollRightTimes){
					scrollElement = o[i];
					var to = scrollWidth;
					setTimeout('zoomImageScrollLeftRightAnim(0, -'+to+', 0)', delay);
					scrollRightTimes++;
					break;
				}
				else{ t++; }
			}
		}
	}
	function zoomImageScrollLeft(){
		var o = $('miniZoomImage');
		var i = 0, t = 0;
		if(!!scrollElement || scrollRightTimes == 0){ return false; }
		o = o.childNodes;
		
		for(i; i < o.length; i++){
			if(!!o[i].tagName){

				if(t == (scrollRightTimes - 1)){
					scrollElement = o[i];
					var dif = parseInt(o[i].style.marginLeft);
					setTimeout('zoomImageScrollLeftRightAnim('+dif+', '+(-dif)+', 0)', delay);
					scrollRightTimes--;
					break;
				}
				else{ t++; }
			}
		}
	}
	function zoomImageScrollLeftRightAnim(from, inc, current){
		if(current != (frames + 1)){
			var t = strongEaseInOut(current, from, inc, frames);
			scrollElement.style.marginLeft = t + 'px';
			current++;
			setTimeout('zoomImageScrollLeftRightAnim('+from+', '+inc+', '+current+')', delay);
		}
		else{
			
			scrollElement = null;
			zoomImageScrollLeftRightControl();
		}
	}
	function zoomImageScrollLeftRightControl(){
		var o = $('zoomImageMinis').childNodes;
		var e = $('siguienteMini');
		var i = 0, t = 0, b = true;
		
		for(i; i < o.length; i++){
			if(!!o[i].tagName){
				if(t == (scrollRightTimes)){

					b = false;
					break;
				}
				else{
					if(t == scrollRightTimes){
						FireEvent(o[i].firstChild, 'click');
					}
					t++;
				}
			}
		}
				
		e.className = 'siguiente' + ((b)? 'Off':'');
		e = $('anteriorMini');
		e.className = 'anterior' + ((scrollRightTimes > 0)? '':'Off');
	}

