//variables globales al script
var array_fotos;
var array_ids;
var cambia_antes;
var cambia_despues;
$(document).ready(function() {
	$("#pag_siguiente").click(function () {
		$(".navegador").load("pagina_siguiente.html");
		return false;
	});

	num_galerias = $("#num_galerias").val();
	if (num_galerias>0) {
		cargar_mas_galerias();
		//Inicializar DatePicker para los filtros de mas galerias
		$('.filtro_f_creacion').datepicker({beforeShow: f_creacion_customRange});
		//Localizacion de los DatePicker
		$.datepicker.regional['es'];
	}
});

function cargar_navegador(galeria,pagina,elementos) {
	var url = "pinta_navegador_wraper_x.asp";
	$.post(url, { galeria : galeria, pagina : pagina, elementos : elementos }, resultado_cargar_navegador);
}

function resultado_cargar_navegador(data) {
	$(".navegador").html(data);
}

function cambia_elemento(id_galeria,id_foto,nombre_foto,nro) {
	array_fotos[0]=nro;
	$(".texto_extendido").hide();	//escondo el texto extendido (por si está abierto)
	extension = (nombre_foto.substr(nombre_foto.lastIndexOf(".")+1)).toLowerCase();
	switch (extension) {
		case "flv":
			pinta_flv(id_galeria,nombre_foto);
			break;
		case "jpg":
		case "gif":
		case "png":
			pinta_foto(id_galeria,nombre_foto);
			//Calculo cuál debe ser la siguiente foto a mostrar para el navegador sobre las fotos.
			var encontrado = false;
			for(i=1;i<array_fotos.length && !encontrado;i++)
			encontrado = (array_fotos[i] == nombre_foto);
			if (encontrado) array_fotos[0] = i-1;
			break;
		default:
			$("#foto_video").html("Formato no soportado : "+extension);
			break;
	}
	pinta_texto(id_galeria, id_foto);
	pinta_extendido(id_galeria, id_foto);
}

function findPos(obj) {
	var curleft = curtop = 0;

	if (obj.offsetParent) {
	do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;

	} while (obj = obj.offsetParent);
	return [curleft,curtop];
	}
}

function pinta_flv(id_galeria,nombre_foto) {
	_pinta_flv(id_galeria,nombre_foto,true);
}

function _pinta_flv(id_galeria,nombre_foto,autostart) {
	$("#foto_video").html("<p><br /><br /><br />Si no puede ver este video, <br />por favor instale Macromedia Flash Player</br /> haciendo click en el siguiente enlace<br /> <a href='http://www.macromedia.com/go/full_flashplayer_win_ie'>http://www.macromedia.com/go/full_flashplayer_win_ie</a></p>");
	carpeta=location.hostname;
	var media = new SWFObject("visor/flvvisor.swf","foto_actual","480","360","5");
	media.addVariable("file","http://" + carpeta + "/galeria-multimedia/galerias/" + id_galeria + "/" + nombre_foto);
	media.addVariable("displaywidth","480");
	media.addVariable("displayheight","360");
	media.addVariable("width","480");
	media.addVariable("height","360");
	media.addParam("allowfullscreen","true");
	media.addVariable("image","http://" + carpeta + "/galeria-multimedia/images/caratula.png");
	media.addVariable("autostart",autostart);
	media.addVariable("shuffle","false");
	media.addVariable("overstretch","fit");
	media.addVariable("bufferlength","5");
	media.addVariable("logo","http://" + carpeta + "/galeria-multimedia/images/logotipo.png");
	media.addVariable("showdigits","false");
	media.addVariable("usefullscreen","true");
	
	media.write("foto_video");
	fotos_actuales = $("#foto_actual").length;
	if (fotos_actuales > 0) {
		add_navegador_foto(id_galeria,nombre_foto,20);
		$("#foto_video").html("<table cellpading=0 cellspacing=0><tr><td align=right><span style=\"cursor:pointer;font-size:8pt;background-color:#999;color:#fff;padding:0px 4px;\" onclick=\"_pinta_flv("+id_galeria+",'"+nombre_foto+"',false);abrirPopupFlv('galeria-multimedia/galerias/"+id_galeria+"','"+nombre_foto+"','http://" + carpeta + "/','foto_actual');\">abrir en otra ventana</span></td></tr><tr><td>"+ $("#foto_video").html() +"</td></tr></table>");
	}
	return false;
}

function pinta_foto(id_galeria,nombre_foto) {
	$("#foto_video").html("<img src=\"galerias/"+id_galeria+"/"+nombre_foto+"\" id='foto_actual' onload='add_navegador_foto("+id_galeria+",\""+nombre_foto+"\",0)'/>");
	
}

//Añade la funcionalidad que permite ir hacia la foto siguiente haciendo click sobre la foto actual
function add_navegador_foto(id_galeria, nombre_foto,desplazamiento) {	

	//añado el evento de click 
	
	if (nombre_foto == "") {
		src = $("#foto_video img").attr("src");
		nombre_foto = src.substr(src.lastIndexOf("/")+1);
	}
	
	extension = (nombre_foto.substr(nombre_foto.lastIndexOf(".")+1)).toLowerCase();
	

	//if (extension!="flv") {
	;
		if (array_fotos==undefined) {
			
			//obtengo el array de fotos de esta galería
			
			
			$("#div_var").load("obtener_array_fotos.asp", {id_galeria:id_galeria, nombre_foto:nombre_foto}, function() {
				
				eval($("#div_var").html()); //obtiene array_fotos y array_ids. ** El índice 0 de array_fotos contiene la referencia hacia la foto actual
				desplazador(id_galeria,desplazamiento);
				$("#div_var").text("");
				
			});
		} else {
			desplazador(id_galeria,desplazamiento);
		}
	//}
}
function desplazador(id_galeria_actual,desplazamiento){
		foto_siguiente = (parseInt(array_fotos[0])+1)%(array_fotos.length)
		if (foto_siguiente == 0) foto_siguiente=1;
		
		
		cambia_despues="\"cambia_elemento("+id_galeria_actual+","+array_ids[foto_siguiente]+",'"+array_fotos[foto_siguiente]+"','"+foto_siguiente+"');\"";
		
		foto_antes = (array_fotos[0]-1);
		if (foto_antes <= 0) foto_antes=array_fotos.length-1;
		
		cambia_antes="\"cambia_elemento("+id_galeria_actual+","+array_ids[foto_antes]+",'"+array_fotos[foto_antes]+"','"+foto_antes+"');\"";
	
		ancho=document.getElementById("foto_actual").width;
		alto=document.getElementById("foto_actual").height;
		pos=findPos(document.getElementById("foto_actual"));
		
		x=pos[0];
		y=pos[1];
		resultado="<span style='left:"+(x-30)+"px;top:"+(y+(alto/2)-29+desplazamiento)+"px;' id='flecha_antes' >"+"<img src='../imagenes/galeria_flecha_izquierda.png' onclick="+cambia_antes+" />"+"</span>";
		resultado=resultado+"<span style='left:"+(parseInt(x)+parseInt(ancho)+4)+"px;top:"+(y+(alto/2)-29+desplazamiento)+"px;' id='flecha_despues' >"+"<img src='../imagenes/galeria_flecha_derecha.png' onclick="+cambia_despues+" />"+"</span>";
	
	document.getElementById("foto_divs").innerHTML=resultado;
}

function pinta_texto(galeria, foto) {
	var url = "texto_foto_x.asp";
	$.post(url,{ galeria : galeria, foto : foto }, respuesta_texto_foto);
}

function pinta_extendido(galeria,foto) {
	var url = "texto_extendido_x.asp";
	$.post(url,{ galeria : galeria, foto : foto }, respuesta_texto_extendido);
}

function respuesta_texto_foto(data) {
	$("#texto_foto").html(unescape(data));
}

function respuesta_texto_extendido(data) {
	$("#texto_extendido").html(unescape(data));
}

function cargar_mas_galerias(pagina) {
	var url = "mas_galerias_x.asp";
	var titulo = $("#filtro_titulo").val();
	var descripcion = $("#filtro_descripcion").val();
	var f_creacion_desde = $('#filtro_f_creacion_desde').datepicker("getDate");
	var f_creacion_hasta = $('#filtro_f_creacion_hasta').datepicker("getDate");
	f_creacion_desde = $.datepicker.formatDate('yy-mm-dd', f_creacion_desde);
	f_creacion_hasta = $.datepicker.formatDate('yy-mm-dd', f_creacion_hasta);
	var num_fotos_desde = $("#filtro_num_fotos_desde").val();
	var num_fotos_hasta = $("#filtro_num_fotos_hasta").val();
	var visitas_desde = $("#filtro_visitas_desde").val();
	var visitas_hasta = $("#filtro_visitas_hasta").val();
	var orden = $("#filtro_orden").val();
	var id_galeria_actual = $("#id_galeria_actual").val();

	if (pagina === undefined ) {
		pagina = 1;
    }

	$.post(url, { pagina : pagina, titulo : titulo, descripcion : descripcion, f_creacion_desde : f_creacion_desde, f_creacion_hasta : f_creacion_hasta, num_fotos_desde : num_fotos_desde, num_fotos_hasta : num_fotos_hasta, visitas_desde : visitas_desde, visitas_hasta : visitas_hasta, orden : orden, id_galeria_actual : id_galeria_actual }, resultado_mas_galerias);
	return false;
}

function resultado_mas_galerias(data) {
	$(".contenedor_mas_galerias").html(unescape(data));
}

// Funciones para filtrar entre fechas
// Si se ha introducido una fecha en uno de los input se restringe el otro desde o hasta
//para que desde siempre sea menor que hasta.
function f_creacion_customRange(input) {
	return {
		minDate: (input.id == 'filtro_f_creacion_hasta' ? $('#filtro_f_creacion_desde').datepicker("getDate") : null),
		maxDate: (input.id == 'filtro_f_creacion_desde' ? $('#filtro_f_creacion_hasta').datepicker("getDate") : null)
	};
}

//Sirve para mostrar texto extendido en caso de existir
function extiende_texto() {
	$(".texto_extendido").fadeIn("slow");
	return false;
}
function esconde_texto() {
	$(".texto_extendido").fadeOut("slow");
	return false;
}
