/**
 * Accion cuando se selecciona una imagen en la navegacion
 */
function mostrarImagen(pos) {
	try {
		indiceImagenActual = pos;
		actualizaNavegacion();
	} catch (e) {
	}
}

/**
 * Accion de siguiente o anterior en la navegacion
 * 
 * @param pos
 *            Si es >0 se avanza, sino se retrocede
 */
function moverImagen(pos) {
	try {
		if (pos > 0) {
			indiceImagenActual++;
		} else {
			indiceImagenActual--;
		}
		indiceImagenActual %= numeroImagenes;
		if (indiceImagenActual < 0) {
			indiceImagenActual += numeroImagenes;
		}
		actualizaNavegacion();
	} catch (e) {
	}
}

/**
 * Se encarga de realizar las operaciones necesarias entre cada transicion de
 * imagenes
 */
function actualizaNavegacion() {
	actualizarIndicesPaginacion();
	marcarEnlace(indiceImagenActual);
	mostrarFoto(indiceImagenActual);
	ocultarNoVisibles();
	recargarElementos();
}

/**
 * Carga los elementos de estadisticas (nielsen y gAnalytics)
 */
function recargarElementos() {
	recargarNielsen();
	recargarGoogleAnalytics();
}

/**
 * Carga los elementos de estadisticas (gAnalytics)
 */
function recargarGoogleAnalytics(){(
function(){setTimeout(function(){
var pos = window.indiceImagenActual+1;
var temp = escape(window.location);
var temp1 = temp.lastIndexOf("-");
var porcion = temp.substring(temp1+1);
var googlean1 = temp.substring(0,temp1)+'-'+pos+'.html';
var s=document.createElement("script");
s.type="text/javascript";s.src="http://www.google-analytics.com/ga.js";s.onload=s.onreadystatechange=function(){
if(typeof _gat=='object'){var init=setInterval(function(){
var uasemilla = "";
if (location.href.indexOf('comercio') != -1) uasemilla = 'UA-3458093-1';
	else if (location.href.indexOf('correo') != -1) uasemilla = 'UA-7212485-3';
	else if (location.href.indexOf('hoy') != -1) uasemilla = 'UA-7648528-1';
	else if (location.href.indexOf('elnortedecastilla') != -1) uasemilla = 'UA-5509324-11';
	else if (location.href.indexOf('ideal') != -1) uasemilla = 'UA-4272508-36';
	else if (location.href.indexOf('provincias') != -1) uasemilla = 'UA-7008806-1';
	else if (location.href.indexOf('vozdigital') != -1) uasemilla = 'UA-3047322-6';
	else if (location.href.indexOf('diariosur') != -1) uasemilla = 'UA-3128303-19';
	else if (location.href.indexOf('diariomontanes') != -1) uasemilla = 'UA-7123523-1';
	else if (location.href.indexOf('rioja') != -1) uasemilla = 'UA-7124171-1';
	else if (location.href.indexOf('laverdad') != -1) uasemilla = 'UA-6052672-2';
	else if (location.href.indexOf('diariovasco') != -1) uasemilla = 'UA-59232-1';
var pageTracker=_gat._getTracker(uasemilla);pageTracker._trackPageview(googlean1);clearInterval(init);},200);}
}
document.getElementsByTagName("head")[0].appendChild(s);},0);})();}

/**
 * Carga los elementos de estadisticas (nielsen)
 */
function recargarNielsen() {
	var pos = window.indiceImagenActual+1;
	var temp = escape(window.location);
	var temp1 = temp.lastIndexOf("-");
	var porcion = temp.substring(temp1+1);
	var url = temp.substring(0,temp1)+'-'+pos+'.html';
	$("#estadisticas").html('<img src="http://secure-uk.imrworldwide.com/cgi-bin/m?ci=es-vocento&cg=0&si='+url+'&rp='+escape(document.referrer)+'&rnd='+(new Date()).getTime()+'" width="1" height="1" alt=""/>');
	$("#estadisticas").append('<img src="http://b.scorecardresearch.com/p?c1=2&c2=7715761&c7='+url+'&c9='+escape(document.referrer)+'&ns__t='+(new Date()).getTime()+'">');
}

/**
 * Muestra la imagen de progreso mientras carga la imagen de la galeria
 * 
 * @param img
 *            imagen de la galeria
 */
function abrirCarga(img) {
	$("#imageLoading").show();
	$(img).hide();
}

/**
 * Oculta la imagen de progreso tras cargar la imagen de la galeria
 * 
 * @param img
 *            imagen de la galeria
 */
function cerrarCarga(img) {
	$("#imageLoading").hide();
	$(img).show();
}

/**
 * Proceso de cambio de foto
 * 
 * @param pos
 *            Indica la posicion en el array de imagenes donde se encuentra la
 *            informacion de la foto actual
 */
function mostrarFoto(pos) {
	var url = imagenes[pos].url;
	$("#pieFoto").html(imagenes[pos].pie);
	try{
		$("#fecha").html(imagenes[pos].fecha);
		$("#fuente").html(imagenes[pos].fuente);
	}catch(e){}
	var img = $("#imagenVisor")[0];
	abrirCarga(img);
	img.src = url;
	img.onload = function() {
		cerrarCarga(img);
	}
}

/**
 * Actualiza los indices de paginacion para mostrar u ocultar los enlaces de
 * navegacion
 */
function actualizarIndicesPaginacion() {
	paginaActual = Math.floor(indiceImagenActual / elementosPorPagina);
	primerElemento = paginaActual * elementosPorPagina;
	ultimoElemento = ((paginaActual + 1) * elementosPorPagina) - 1;
}

/**
 * Resalta el enlace seleccionado y desmarca los seleccionados anteriormente
 * 
 * @param pos
 *            Posicion del enlace a resaltar
 */
function marcarEnlace(pos) {
	function reset() {
		$(this).removeClass("activo");
	}
	$("#enlacesImagenes1 a").each(reset);
	$("#enlacesImagenes2 a").each(reset);
	$(
			"#enlacesImagenes1 a:eq(" + pos + "), #enlacesImagenes2 a:eq("
					+ pos + ")").addClass("activo");
}

/**
 * Oculta los enlaces que no se ven en la pagina actual
 */
function ocultarNoVisibles() {
	function ocultar(pos) {
		pos++;
		if (pos <= primerElemento || pos > ultimoElemento + 1) {
			this.style.display = "none";
		} else {
			$(this).css("display", "");
		}
	}
	$("#enlacesImagenes1 a").each(ocultar);
	$("#enlacesImagenes2 a").each(ocultar);
}

function marcaPestana() {
	var pestana = document.getElementById(window.pestana);
	pestana.className = 'activo';
	marcaMultiPestanaActivo(window.pestana);
}

function ajustaImagenesYPintaEnlaces() {
	pintaEnlacesImagenes(window.indiceImagenActual, window.numeroImagenes,
			window.elementosPorPagina);
}

/**
 * Genera los enlaces de la navegacion
 * 
 * @param indiceImagenActual
 *            Posicion actual de la galeria
 * @param numeroImagenes
 *            Total de elementos en la galeria
 * @param elementosPorPagina
 *            Numero de elementos por pagina
 * @return
 */
function pintaEnlacesImagenes(indiceImagenActual, numeroImagenes,
		elementosPorPagina) {
	var posActual = window.indiceImagenActual;
	var obj1 = document.getElementById('enlacesImagenes1');
	var obj2 = document.getElementById('enlacesImagenes2');

	obj1.style.display = "none";
	obj2.style.display = "none";

	if (obj1 != null && obj2 != null) {
		var codigoHTML = '';

		var paginaActual = Math.floor(indiceImagenActual / elementosPorPagina);
		var primerElemento = paginaActual * elementosPorPagina;
		var ultimoElemento = ((paginaActual + 1) * elementosPorPagina) - 1;
		if (ultimoElemento > numeroImagenes) {
			ultimoElemento = numeroImagenes - 1;
		}

		for ( var i = 0; i < imagenes.length; i++) {
			var urlPaginacion = window.baseURLPaginacion + '-' + i + '.html';
			if (i == posActual) {
				codigoHTML += '<a class="activo" href="' + urlPaginacion + '">'
						+ (i + 1) + '</a>';
			} else {
				codigoHTML += '<a href="' + urlPaginacion + '">' + (i + 1)
						+ '</a>';
			}
		}

		obj1.innerHTML = codigoHTML;
		obj2.innerHTML = codigoHTML;

		ocultarNoVisibles();

		obj1.style.display = "";
		obj2.style.display = "";
	}

	// asignamos los eventos a los enlaces
	function eventoPaginacion(pos) {
		$(this).click(function(e) {
			mostrarImagen(pos);
			e.preventDefault();
		});
	}
	$("#enlacesImagenes1 a").each(eventoPaginacion);
	$("#enlacesImagenes2 a").each(eventoPaginacion);
}

function marcaMultiPestanaActivo(nombreIDPestanaSeleccionada) {
	var obj = document.getElementById(nombreIDPestanaSeleccionada);
	if (obj != null) {
		var idMultipestanaActivo = obj.parentNode.parentNode.id;

		// Ponemos todas las pestaņas ocultas excepto la activa
		var cadAux = 'multi-pestana-link-';
		if (idMultipestanaActivo != null
				&& idMultipestanaActivo.indexOf(cadAux) != -1) {
			var i = 1;
			var parar = false;
			while (!parar) {
				var nombrePestana = cadAux + i;
				var obj2 = document.getElementById(nombrePestana);
				if (obj2 != null) {
					if (nombrePestana != idMultipestanaActivo) {
						obj2.style.display = 'none';
					} else {
						obj2.style.display = 'block';
						actualPage = i;
						selectedPage = i;
					}
				} else {
					parar = true;
				}
				i++;
			}
		}
	}
}
