var v;
var h;
var dS;
var sD;
var y;
var x;
var iW;
var iH;
var contador = 0;
var topLoading = 0;
var leftLoading = 0;
var img = new Image();
var procesando = false;

movex = 0;
movey = 0;
xdiff = 0;
ydiff = 0;
ystart = 0;
xstart = 0;

cancelado = false;

function setVariables(ancho, alto, objeto) {
	if (navigator.appName == "Netscape") {
		v = ".top=";
		h = ".left=";
		dS = ""; // document.
		sD = ".style"; // ""
		y = "window.pageYOffset";
		x = "window.pageXOffset";
		iW = "window.innerWidth";
		iH = "window.innerHeight";
	}else {
		h = ".pixelLeft=";
		v = ".pixelTop=";
		dS = "";
		sD = ".style";
		y = "document.body.scrollTop";
		x = "document.body.scrollLeft";
		iW = "document.body.clientWidth";
		iH = "document.body.clientHeight";
	}

	xyz = 0;
	innerX = ancho;
	innerY = alto;
	object = objeto;
	checkLocationA();
}

function checkLocation() {
	try{
		yy = eval(y);
		xx = eval(x);
		ydiff = ystart - yy;
		xdiff = xstart - xx;
		if ((ydiff < (-1)) || (ydiff > (1))) movey = Math.round(ydiff / 10), ystart -= movey;
		if ((xdiff < (-1)) || (xdiff > (1))) movex = Math.round(xdiff / 10), xstart -= movex;
		eval(dS + object + sD + v + (ystart + innerY));
		eval(dS + object + sD + h + (xstart + innerX));
		setTimeout("checkLocation()", 100);
	}catch(err){}
}

function checkLocationA() {
	ystart = eval(y);
	xstart=eval(x);
}

function resMonitor (){
	leftLoading = parseInt((window.document.body.clientWidth - 42)/2);
	topLoading = parseInt((window.document.body.clientHeight - 41)/2);
}

function reescale(){
	if(procesando == false){
		procesando = true;
		var contenedor = document.getElementById("contenedor");
		if(contenedor.style.display != "none"){
			document.getElementById("total").style.height = window.document.body.scrollHeight;
			document.getElementById("total").style.pixelWidth = document.body.scrollWidth;

			var img = document.getElementById("mostrar");
			var altoImagen = img.style.height;
			var anchoImagen = img.style.width;

			var pos = altoImagen.lastIndexOf("px");
			if(pos!=-1){
				altoImagen = altoImagen.substring(0,pos);
			}
			pos = anchoImagen.lastIndexOf("px");
			if(pos!=-1){
				anchoImagen = anchoImagen.substring(0,pos);
			}

			var altoTotal = window.document.body.clientHeight;
			var anchoTotal = window.document.body.clientWidth;

			var per = (altoTotal * 100) / altoImagen;
			altoImagen = (altoTotal / 1.2);
			anchoImagen = (((anchoImagen * per)/100) / 1.2);

			if(altoImagen>100 && anchoImagen>100){
				img.style.height = altoImagen + "px";
				img.style.width = anchoImagen + "px";

				var left = parseInt(((anchoTotal - anchoImagen) / 2)+1);
				var top = parseInt(((altoTotal - altoImagen) / 2) - 27);

				document.getElementById("contenedor").style.width = anchoImagen + 20;

				setVariables(left,top,"contenedor");
				checkLocation();
			}
		}
		procesando = false;
	}
}

function muestraImagen(imagen){
	finCarga = false;
	var cargado = false;
	var loading = document.getElementById("loading");

	if(contador<60000 && !cancelado){
		if(imagen != undefined) img.src = imagen;

		if (window.XMLHttpRequest) {
			document.getElementById("total").style.height = window.document.body.scrollHeight;
			document.getElementById("total").style.pixelWidth = document.body.scrollWidth;

			document.getElementById("total").style.display = "block";
			var image = document.getElementById("mostrar");
			document.getElementById("mostrar").style.opacity = 0;

			// Firefox, Safari
			if((img.complete != true)){
				//Loading effect;
				loading.style.visibility = "visible";
				contador += 500;
				setVariables(leftLoading,topLoading,"loading");
	 			window.setTimeout("muestraImagen()",500);
	 			checkLocation();
	   		}else{
	   			cargado = true;
	   		}
		}else{
			document.getElementById("total").style.pixelHeight = document.body.scrollHeight;
			document.getElementById("total").style.pixelWidth = document.body.scrollWidth;

			document.getElementById("total").style.display = "block";
			var image = document.getElementById("mostrar");
			document.getElementById("mostrar").style.opacity = 0;

			if((img.readyState != 'complete')){
				//Loading effect;
				loading.style.visibility = "visible";
				contador += 500;
				setVariables(leftLoading,topLoading,"loading");
	 			window.setTimeout("muestraImagen()",500);
	 			checkLocation();
	   		}else{
	   			cargado = true;
	   		}
		}

	   	if(cargado){
	   		var altoImagen = img.height;
			var anchoImagen = img.width;
			var altoTotal = window.document.body.clientHeight - 20;
			var anchoTotal = window.document.body.clientWidth - 20;

			if(altoImagen > altoTotal){
				var per = (altoTotal * 100) / altoImagen;
				altoImagen = altoTotal / 1.2;
				anchoImagen = ((anchoImagen * per)/100) / 1.2;
			}

			document.getElementById("mostrar").style.height = parseInt(altoImagen);
			document.getElementById("mostrar").style.width = parseInt(anchoImagen);

			var left = parseInt(((anchoTotal - anchoImagen) / 2)+1);
			var top = parseInt(((altoTotal - altoImagen) / 2) - 27);

			document.getElementById("mostrar").src = img.src;
			document.getElementById("mostrar").src = img.src;

			// alto, derecha, abajo, izquierda
			document.getElementById("contenedor").style.width = anchoImagen + 20;
			document.getElementById("contenedor").style.display = "block";

	   		//Show image after loading completed and resize window;
	   		loading.style.visibility = "hidden";
	   		image.style.display = "inline";
	   		image.style.filter = "Alpha(Opacity=0)";
	   		image.style.opacity = 0;

	   		shiftOpacity("mostrar",300);

	   		setVariables(left,top,"contenedor");
 			checkLocation();
 			img = new Image();
	   	}
	}else{
		desaparece();
		contador = 0;
		cancelado = false;
	}
}

function desaparece(divAOcultar){
	cancelado = true;
	document.getElementById("loading").style.visibility = "hidden";
	document.getElementById("total").style.display = "none";
	document.getElementById("contenedor").style.display = "none";
	// Ocultamos otras capas que pueden estar mostradas
	document.getElementById("copy-right").style.display = "none";
	document.getElementById("menuGaleria").style.display = "none";
}

var posActualGaleria = 0;
var image_gallery = new Array();

function muestraMenu(visible){
	var back = document.getElementById("back");
	var next = document.getElementById("next");
	var menuGaleria = document.getElementById("menuGaleria");
	if(visible){
		if(menuGaleria.style.display != "block"){
			// debemos cargar que opciones son visibles y cuales no
			if(posActualGaleria == 0){
				back.style.backgroundImage = "url('" + contextRoot + "img/public/back_grey.gif')";
			}else{
				back.style.backgroundImage = "url('" + contextRoot + "img/public/back_white.gif')";
			}

			if(posActualGaleria == image_gallery.length - 1){
				next.style.backgroundImage = "url('" + contextRoot + "img/public/next_grey.gif')";
			}else{
				next.style.backgroundImage = "url('" + contextRoot + "img/public/next_white.gif')";
			}

			menuGaleria.style.display = "block";
		}
	}else{
		menuGaleria.style.display = "none";
	}
}

function changeOption(elementId, imgBackground){
	var elDiv = document.getElementById(elementId);
	if((elDiv.style.backgroundImage == "url('" + contextRoot + "img/public/back_grey.gif')" ||
		elDiv.style.backgroundImage == "url(" + contextRoot + "img/public/back_grey.gif)")
		&& imgBackground == "back_light.gif"){
		return false;
	}else if(imgBackground == "back_grey.gif"){
		if(posActualGaleria == 0){
			elDiv.style.backgroundImage = "url('" + contextRoot + "img/public/back_grey.gif')";
		}else{
			elDiv.style.backgroundImage = "url('" + contextRoot + "img/public/back_white.gif')";
		}
		return false;
	}else if((elDiv.style.backgroundImage == "url('" + contextRoot + "img/public/next_grey.gif')" ||
		elDiv.style.backgroundImage == "url(" + contextRoot + "img/public/next_grey.gif)")
		&& imgBackground == "next_light.gif"){
		return false;
	}else if(imgBackground == "next_grey.gif"){
		if(posActualGaleria == image_gallery.length - 1){
			elDiv.style.backgroundImage = "url('" + contextRoot + "img/public/next_grey.gif')";
		}else{
			elDiv.style.backgroundImage = "url('" + contextRoot + "img/public/next_white.gif')";
		}
		return false;
	}

	elDiv.style.backgroundImage = "url('" + contextRoot + "img/public/" + imgBackground + "')";
}

function enlarge(){
	var imageGallery = document.getElementById("mostrar");
	window.open(imageGallery.src, '_blank');
}

function rollImagePrev(){
	if(posActualGaleria != 0){
		muestraImagen(image_gallery[--posActualGaleria]);
	}
}

function rollImageNext(){
	if(posActualGaleria != image_gallery.length - 1){
		muestraImagen(image_gallery[++posActualGaleria]);
	}
}

// Precarga de imagenes de navegacion de la galeria
var image_gal = new Array();
image_gal[0] = contextRoot + "img/public/back_grey.gif";
image_gal[1] = contextRoot + "img/public/back_light.gif";
image_gal[2] = contextRoot + "img/public/back_white.gif";
image_gal[3] = contextRoot + "img/public/enlarge_grey.gif";
image_gal[4] = contextRoot + "img/public/enlarge_light.gif";
image_gal[5] = contextRoot + "img/public/enlarge_white.gif";
image_gal[6] = contextRoot + "img/public/next_grey.gif";
image_gal[7] = contextRoot + "img/public/next_light.gif";
image_gal[8] = contextRoot + "img/public/next_white.gif";
image_gal[9] = contextRoot + "img/public/quit_light.gif";
image_gal[10] = contextRoot + "img/public/quit_white.gif";
image_gal[11] = contextRoot + "img/public/menu_galeria.gif";

preloadImage(image_gal);
