var comunidad_actual="";
var restauraciones = new Array();
//Necesitamos un contador para el array de restauraciones, ya que los índices i,j y k son diferentes en cada browser y no son fiables.
var cont=0;
var literal_ver_imagen = "View image"; //Literal donde se pincha para abrir la imagen de la restauracion

function Restauraciones_Init(){
		
	restauracionesXML = '/TLBB/tlbb/jsp/esp/progcultu/restaura/xml/restauraciones_xml.xml';
	//restauracionesXML = 'restauraciones_xml.xml';
	
	var callback = { 
			  success: hecho,
			  failure: errFunc,
			  timeout: 5000	
			} 

	YAHOO.util.Connect.asyncRequest('GET', restauracionesXML, callback, null); 
	
}
function errFunc(){
alert("Se ha producido un error en la carga asíncrona de datos");
}

function hecho(o)
{
	//alert("comunidad_actual"+ comunidad_actual);
	var _Comunidad = o.responseXML.getElementsByTagName("Comunidad");
	var comunidad_revisada="";
		
	for(var i = 0; i < _Comunidad.length; i++)
	{
								
		for(var j = 0; j < _Comunidad[i].childNodes.length; j++)
		{	
			var node = _Comunidad[i].childNodes[j];
			//alert("nodo=" + node.nodeName);
			if (node.nodeName == "Name")
			{
			//	alert(node.nodeName + ":" + node.firstChild.nodeValue);
			//	Texto += node.nodeName + ":" + node.firstChild.nodeValue + "</BR>";
				comunidad_revisada = node.firstChild.nodeValue;
					
			//	alert("comunidad revisada= " + comunidad_revisada);
			//	alert("comunidad actual= " + comunidad_actual);
				
			}
			
			if (node.nodeName == "Restauracion")
			{
				//alert("nombre del nodo :" + node.nodeName);
				//alert("numero de nodos :" + node.childNodes.length);
				
				var _restauracion = new Restauracion();
				for(var k = 0; k < node.childNodes.length; k++)
				{
					var node_restauracion = node.childNodes[k];
					
					if (node_restauracion.nodeName == 'Fecha')
					{
						_restauracion.fecha=node_restauracion.firstChild.nodeValue;
						//alert(node_restauracion.nodeName + ":" + node_restauracion.firstChild.nodeValue);
					}
					if (node_restauracion.nodeName == 'Enlace')
					{
						//como este campo no es obligatorio, puede venirme vacio, por lo que lo compruebo
						if (node_restauracion.hasChildNodes())
						{
							_restauracion.enlace=node_restauracion.firstChild.nodeValue;
						}
						else
						{
							_restauracion.enlace="";
						}
						//alert(node_restauracion.nodeName + ":" + node_restauracion.firstChild.nodeValue);
					}
					if (node_restauracion.nodeName == 'Descripcion')
					{
						_restauracion.descripcion=node_restauracion.firstChild.nodeValue;
						//alert(node_restauracion.nodeName + ":" + node_restauracion.firstChild.nodeValue);
					}

				}
				//alert("terminados restauraciones de comunidad");
				_restauracion.comunidad = comunidad_revisada;
				//alert("Comunidad de restauracion" + _restauracion.comunidad);
				//alert("Fecha de restauracion" + _restauracion.fecha);
				//alert("Descripcion de restauracion" + _restauracion.descripcion);
				//alert("Enlace de restauracion" + _restauracion.enlace);

				
				restauraciones[cont] = _restauracion;
				cont += 1;
						
				//alert(node.childNodes[1].nodeName + ":" + node.childNodes[1].firstChild.nodeValue);
				
				
				
			}
			
		}
	}
}

function Restauracion (comunidad, fecha, enlace, descripcion) 
{
	this.comunidad = comunidad;
	this.fecha = fecha;
	this.enlace = enlace;
                this.descripcion = descripcion;
}

function maquetar_tabla(comunidad, restauraciones)
{
	//escribe en la capa con el id="tabla-provincia" el string texto
	var texto="";
	texto ="<h5 class='azul'>" + comunidad + "</h5>";
	document.getElementById('tabla_provincia').innerHTML= texto;
	
	//Si la comunidad actual, tiene restauraciones asociadas dibujamos la tabla
	//alert("Se va a comprobar si la comunidad " + comunidad + " tiene .length");
	if (restauraciones.length > 0)
	{
		texto = "<h5 class='azul'>";
		for (var i=0; i< restauraciones.length ; i++)
		{	
			texto += "<span class='texto-azul'>" + restauraciones[i].fecha
			if (restauraciones[i].enlace != "") //si tiene enlace pondremos el href con la ruta hacia la imagen
			{
				texto +=  " - </span><a class='a2' href='" + restauraciones[i].enlace + "' target='_blank'>" + literal_ver_imagen + "</a>";
			}
			else
			{
				texto +=  "</span>"
			}
			texto += "<p class='texto_titular_azul'>" + restauraciones[i].descripcion + "</p>";
			if (i<restauraciones.length-1)
			{
				texto += "<br class='texto_falso'/>";
			}
		}
		texto += "</h5>";
		document.getElementById('contenido_tabla').innerHTML= texto;
	}
	else	//si no tiene restauraciones se muestra el texto correspondiente
	{
		//alert("La comunidad " + comunidad + " NO TIENE .length");
		texto="<h4 class='texto_titular_azul'>No restoration project was found for the Autonomous Region selected.</h4><br />";
		document.getElementById('contenido_tabla').innerHTML= texto;
		texto="";
	}
	//ponemos transparente la capa que muestra el rollover
	document.getElementById('mapa').src= "/TLBB/mult/img/comunidades/capa_transparente.gif";
	//pintamos la capa que muestra la comunidad seleccionada
	document.getElementById('mapa_base').src="/TLBB/mult/img/comunidades/" + formatear_nombre_comunidad(comunidad) + "_selec.gif"
	
	formatear_nombre_comunidad(comunidad);
}

function formatear_nombre_comunidad(comunidad)
{
//Esta función es necesaria ya que los nombres de las comunidades pueden contener caracteres en blanco, acentos, ñ, etc, que
//no son devueltos correctamente por todos los navegadores
var nombre_gif;

nombre_gif = comunidad.replace("á", "a");
nombre_gif = nombre_gif.replace("é", "e");
nombre_gif = nombre_gif.replace("í", "i");
nombre_gif = nombre_gif.replace("ó", "o");
nombre_gif = nombre_gif.replace("ú", "u");
nombre_gif = nombre_gif.replace("Á", "A");
nombre_gif = nombre_gif.replace("É", "E");
nombre_gif = nombre_gif.replace("Í", "I");
nombre_gif = nombre_gif.replace("Ó", "O");
nombre_gif = nombre_gif.replace("Ú", "U");
nombre_gif = nombre_gif.replace("ñ", "n");
nombre_gif = nombre_gif.replace("Ñ", "N");
//Como el replace solo reemplaza el primer carácter que encuentra, con la g (expresion regular) se reemplaza todas las ocurrencias de espacios y guiones por subrayado
nombre_gif = nombre_gif.replace(/ /g, "_");
nombre_gif = nombre_gif.replace(/-/g, "_");

//alert("nombre comunidad" + nombre_gif);
return nombre_gif;

	
}

function entra(Comunidad)
 {
 	document.getElementById('mapa').src= "/TLBB/mult/img/comunidades/" + formatear_nombre_comunidad(Comunidad) + "_roll.gif";
 	//alert("En la función entra");
  }
function sale(Comunidad)
{
 	document.getElementById('mapa').src= "/TLBB/mult/img/comunidades/capa_transparente.gif";
 	//alert("En la función sale");
}

function onClick(comunidad_actual)
{
	var restauraciones_actuales = new Array();
	var contador=0;
	var ahora = new Date(); //los número de los meses empiezan por cero
	var fecha_actual;
	var comunidad="";
	
	
		
	//alert("numero de restauraciones =" + restauraciones.length);
	
	//Leemos todos los restauraciones y desechamos los que no corresponden a la comunidad seleccionada o que aunque pertenezcan a la comunidad
	//actual ya han pasado
	for (var i=0 ; i<restauraciones.length ; i++)
	{
		if (formatear_nombre_comunidad(restauraciones[i].comunidad) == formatear_nombre_comunidad(comunidad_actual))
		{
			//Desechamos los restauraciones que ya han pasado, no los metemos en el array y por lo tanto no se mostrarán en la tabla

			//alert("fecha pasada mayor que fecha actual:" + restauraciones[i].fecha);			
			restauraciones_actuales[contador]= restauraciones[i];
			//alert("restauraciones_actuales" + contador + ".lugar = " + restauraciones_actuales[contador].lugar);
			contador = contador+1;
			
			//restauraciones_actuales[contador].lugar = restauraciones[i].lugar;
			//restauraciones_actuales[contador].fecha = restauraciones[i].fecha;
			comunidad=restauraciones[i].comunidad;
			
		}	
		
	}
	if (comunidad == "")
	   comunidad=comunidad_actual;	

//ya que hemos leido la comunidad y filtrado los restauraciones  que contiene, llamamos a esta función que la maquetará	
maquetar_tabla(comunidad, restauraciones_actuales);

}

