







/******************************/
/*****Gestión de la leyenda****/
/******************************/

//Indica si se está cargando incialmente para no refrescar dos veces
var cargando = false;
var mapamunic = window.document.getElementById('mapaMunic');


function anadirEtiqueta(codigoCapa)
{
	if (!cargando && mapaMunic != null &&  peticion != null)
		 window.peticion.anadirEtiqueta(codigoCapa);

	if (!cargando)
		refrescoRetardado();
}

function quitarEtiqueta(codigoCapa)
{
	if (!cargando && mapaMunic != null)
		 window.peticion.quitarEtiqueta(codigoCapa);

	if (!cargando)
		refrescoRetardado();
}

/*Función llamada cuando se cambia la selección de una etiqueta.*/
function cambiarEtiqueta(codigoCapa)
{
   //Si este nodo está entre los seleccionados
	var capasEtiquetadas = capasEtiquetadasIniciales;
   if (mapaMunic != null &&  window.peticion != null)
   	capasEtiquetadas =  window.peticion.capasEtiquetadas;

   var img = window.document.getElementById('ch' + codigoCapa);

   if (capasEtiquetadas.indexOf("'" + codigoCapa + "'") == -1)
		{
		img.src = '/nomecalles_inter/graficos/etiqueta.gif';
		img.title = 'Remove label for this layer';
		anadirEtiqueta(codigoCapa);
		}
	else
		{
		img.src = '/nomecalles_inter/graficos/sinEtiqueta.gif';
		img.title = 'Label this layer';
		quitarEtiqueta(codigoCapa);
		}
}

/*Función para crear un elemento de la solapa de etiqueta
en función de los datos de un nodo*/
function crearElementoEtiqueta(datosNodo, tipo)
{
	if (document.getElementById('etiqueta' + datosNodo[4]) != null)
		return;

   var etiqueta = document.getElementById('etiqueta' + tipo);
   var fila = document.createElement('div');
   fila.id = 'etiqueta' + datosNodo[4];
   etiqueta.appendChild(fila);

	//Creamos el botón de información
  	var img2 = document.createElement('IMG');
  	img2.src = '/nomecalles_inter/graficos/informacion.gif';
  	img2.className = 'botonesLeyenda';
  	img2.title = 'Show information about this layer';
  	var enlace = document.createElement('A');
  	enlace.className = 'leyenda';
  	enlace.onclick = mostrarInformacionCapa;
	enlace.href = "/nomecalles_inter/servlet/LeyendaCapa.icm?codCapa=" + datosNodo[4];
  	enlace.target = 'inforCapa';
  	enlace.appendChild(img2);
  	fila.appendChild(enlace);

	//Creamos el botón de búsqueda
  	img2 = document.createElement('IMG');
  	img2.src = '/nomecalles_inter/graficos/buscar1.gif';
  	img2.className = 'botonesLeyenda';
  	img2.title = 'Search in this layer';
  	enlace = document.createElement('A');
  	enlace.className = 'leyenda';
  	enlace.href = 'javascript:buscar("", "'+ datosNodo[4] + '")';
  	enlace.appendChild(img2);
  	fila.appendChild(enlace);

	//Creamos el botón de eliminar la capa
  	img2 = document.createElement('IMG');
  	img2.src = '/nomecalles_inter/graficos/quitar.gif';
  	img2.className = 'botonesLeyenda';
  	img2.title = 'Remove this layer';
  	enlace = document.createElement('A');
  	enlace.className = 'leyenda';
  	enlace.href = 'javascript:quitarCapaLeyenda("'+ datosNodo[4] + '", "'+ tipo + '")';
  	enlace.appendChild(img2);
  	fila.appendChild(enlace);

	//Creamos el botón de etiqueta
   var img = document.createElement('img');
   img.id='ch'+datosNodo[4];
   img.className='botonesLeyenda';

	//Si no se está cargando se añade los callejero etiquetados por defecto.
//   if (!cargando && datosNodo[3] == "Callejero")
   if (!cargando)
   	{
		anadirEtiqueta(datosNodo[4]);
		}

   //Si este nodo está entre los seleccionados
	var capasEtiquetadas = capasEtiquetadasIniciales;
   if (window.document.getElementById('mapaMunic') != null &&  peticion != null)
   	capasEtiquetadas =  peticion.capasEtiquetadas;

   //Si esta capa ya estaba marcada para etiquetar
   if (capasEtiquetadas.indexOf("'" + datosNodo[4] + "'") != -1)
   	{
   	img.src = '/nomecalles_inter/graficos/etiqueta.gif';
   	img.title = 'Remove label for this layer';
		}
   else
   	{
   	img.src = '/nomecalles_inter/graficos/sinEtiqueta.gif';
  	   img.title='Label this layer';
		}

	if (datosNodo[3] != "Numeros")
		{
		enlace = document.createElement('a');
		enlace.href='javascript:cambiarEtiqueta(' + datosNodo[4] + ')';
		enlace.appendChild(img);
  		fila.appendChild(enlace);
		}
	else
  		fila.appendChild(img);

	//Creamos el texto sin enlace
  	var texto = document.createTextNode(datosNodo[2]);















  	fila.appendChild(texto);









	//Creamos el símbolo de la capa si es único
   if (datosNodo.length <= 5)
   	{
  		var img = document.createElement('IMG');
  		img.className = 'botonesLeyenda';
		img.src = imagesCapas + '/capa'+ datosNodo[4] + '.gif';
  		fila.appendChild(img);
  		}

  	fila.appendChild(document.createElement('BR'));

	//Para todos los distintos símbolos de la capa
   if (datosNodo.length > 5)
   	{
   	for (i = 5; i < datosNodo.length; i++)
   		{
   		var img = document.createElement('IMG');
   		img.src = '/nomecalles_inter/graficos/nada.gif';
   		fila.appendChild(img);
   		var img = document.createElement('IMG');
  			img.className = 'botonesLeyenda';
			img.src = imagesCapas + '/capa'+ datosNodo[4] + '_' + String(i - 4) + '.gif';
   		var texto = document.createTextNode(datosNodo[i]);
   		fila.appendChild(texto);
   		fila.appendChild(img);
   		fila.appendChild(document.createElement('BR'));
   		}
   	}
}




/*Función para borar un elemento de la solapa de etiquetas*/
function borrarElementoEtiqueta(codigo, tipo)
{
   var etiqueta = document.getElementById('etiqueta'+tipo);
   var parrafo = document.getElementById('etiqueta'+codigo);
   while (parrafo != null)
   	{
   	etiqueta.removeChild(parrafo);
   	parrafo = document.getElementById('etiqueta'+codigo);
   	}
}


/******************************/
/*******Gestión de capas*******/
/******************************/

/*Función que inicializar la leyenda de un determinado tipo*/
function inicializarLeyendaTipo(arrDatos, tipo, capas)
{
	cargando = true;

	var codigosCapas = capas.split(',');
	//Para cada nodo
	for (var iNodo = 0; iNodo < arrDatos.length; iNodo++)
		{
		var nodeValues = arrDatos[iNodo];
		var estaSeleccionado = false;
		for (var iCodigo = 0; iCodigo < codigosCapas.length; iCodigo++)
			{
			var codigo = "'" + nodeValues[4] + "'";
			if (codigosCapas[iCodigo].toUpperCase() == codigo.toUpperCase())
				estaSeleccionado = true;
			}

		if (estaSeleccionado)
			crearElementoEtiqueta(nodeValues, tipo);
		else
			quitarEtiqueta(nodeValues[4]);
		}
	cargando = false;
}

function actualizarSeleccionArboles(capas)
{
	inicializarLeyenda(capas);
}

/*Función que inicializar las leyendas*/
function inicializarLeyenda(capas)
{
	inicializarLeyendaTipo(arrTree1, "Puntos", capas);
	inicializarLeyendaTipo(arrTree2, "Delimitaciones", capas);
}

/*Evento de respuesta cuando se marca una capa de alguno de los árboles*/
function marcadaCapa(iNodo, arbol)
{
	var nodeValues = arbol.nodes[iNodo];
	var tipo = "";
	if (arbol == arbol2)
		tipo = 'Delimitaciones';
	else
		tipo = 'Puntos';
	crearElementoEtiqueta(nodeValues, tipo);
	if (!cargando)
		{
		if (mapaMunic != null)
			{
			 peticion.anadirCapa(nodeValues[4]);
			refrescoRetardado();
			}
		}
}

/*Evento de respuesta cuando se desmarca una capa de alguno de los árboles*/
function desmarcadaCapa(iNodo, arbol)
{
	var nodeValues = arbol.nodes[iNodo];
	var tipo = "";
	if (arbol == arbol2)
		tipo = 'Delimitaciones';
	else
		tipo = 'Puntos';

	quitarCapaLeyenda(nodeValues[4], tipo);
}

function quitarCapaLeyenda(codigo, tipo)
{
	borrarElementoEtiqueta(codigo, tipo);
	if (!cargando)
		{
		
			 window.peticion.quitarEtiqueta(codigo);
			 window.peticion.quitarCapa(codigo);
		
		refrescoRetardado();
		}
}

function mostrarInformacionCapa()
{
	var ventanaInfor =  open("", "inforCapa", "dependend=yes,statusbar=no,scrollbars=yes,titlebar=no,toolbar=no,menubar=no,resizable=yes,width="+screen.availWidth * 2 / 3+ ", height="+ screen.availHeight / 2 + ",left=0");
	if (ventanaInfor == null)
   	alert('Según la configuración de seguridad de su navegador no se puede acceder a esta opción');
   else
   	{
		ventanaInfor.focus();
		}
}

function seleccionadaCapa(iNodo, arbol)
{
	var nodeValues = arbol.nodes[iNodo];
	if (nodeValues[4] != null && nodeValues[4] != "")
		mostrarInformacionCapa(nodeValues[4]);
}

function mostrarVentanaDeCapas(tipo)
{
	var url = "";
//	var url = "arbolCapas.icm?tipo=" + tipo + "&capas=" +  peticion.capas;
	ventanaArbol =  open(url, "arbolCapas", "dependend=yes,statusbar=no,scrollbars=yes,titlebar=no,toolbar=no,menubar=no,resizable=yes,width="+screen.availWidth * 1 / 3+ ", height="+ screen.availHeight * 1 / 2 + ", left=" + screen.availWidth / 2 + ",top=" + screen.availHeight / 4);
	if (ventanaArbol != null)
		ventanaArbol.focus();
	else
  		alert('Según la configuración de seguridad de su navegador no se puede acceder a esta opción');
}

function mostrarVentanaDeFondos()
{
	var url = "";
	var ventanaArbol =  open(url, "SelFondos", "dependend=yes,statusbar=no,scrollbars=yes,titlebar=no,toolbar=no,menubar=no,resizable=yes,width="+screen.availWidth * 1 / 3+ ", height="+ screen.availHeight * 1 / 2 + ", left=" + screen.availWidth / 2 + ",top=" + screen.availHeight / 4);
	if (ventanaArbol != null)
		ventanaArbol.focus();
	else
  		alert('Según la configuración de seguridad de su navegador no se puede acceder a esta opción');
}

/******************************/
/*******Gestión de búsquedas***/
/******************************/
/*Función que busca un elemento de la capa seleccionada*/
function buscar(valorInicial, capaInicial)
{
	if (capaInicial == '2')
		buscarNumero();
	else
		buscarUnidad(valorInicial, capaInicial);
}

function abrirVentanaBuscar()
{
	var w =  open('', "ventanaBusqueda", "dependent=yes,scrollBars=1,resizable=1,width=700,height=510");
	if (w == null)
   	alert('Según la configuración de seguridad de su navegador no se puede acceder a esta opción');
   else
   	{
  		w.focus();
  		w.opener = self;
  		}
  	return w;
}

/*Función que busca un elemento de la capa seleccionada*/
function buscarUnidad(valorInicial, capa, munic)
{
	var formBuscar = document.getElementById('formBuscar');

	var cbBusqueda = document.getElementById('cbBusqueda');
	if (cbBusqueda != null)
		formBuscar.tipo.value = cbBusqueda.options[cbBusqueda.selectedIndex].value;
	else
		formBuscar.tipo.value = '';

	if (capa != "" && capa!= undefined)
		formBuscar.codCapa.value = capa;
	else
		formBuscar.codCapa.value = '';

	formBuscar.palabras.value = valorInicial;

	if (munic != "" && munic != undefined)
		formBuscar.munic.value = munic;
	else if (mapaMunic != null &&  window.peticion.munic != '000')
		formBuscar.munic.value =  window.peticion.munic;
	else
		formBuscar.munic.value = '';

  	abrirVentanaBuscar();
  	formBuscar.submit();
}

/*Función que busca un elemento de la capa seleccionada*/
function buscarCalles(valorInicial, munic)
{
	buscarUnidad(valorInicial, '1', munic);
}

function alBuscarNumeros(formNumeros)
{
	var codCalle = '';
//	if (mapaMunic != null)
		codCalle =  window.peticion.valorBusqueda;
	var litCalle = window.document.getElementById("leyendaElementoBuscado").innerHTML;
	formNumeros.codigoVia.value = codCalle;
	formNumeros.literalVia.value = litCalle;

	abrirVentanaBuscar();
}

/*Función que busca un número. En primer lugar comprueba
que se haya seleccionado alguna calle.*/
function buscarNumero()
{
	var formNumeros = document.getElementById('leyendaBloqueNumero');

	var codCalle = '';
	if (mapaMunic != null)
		codCalle =  window.peticion.valorBusqueda;
	var litCalle = window.document.getElementById("leyendaElementoBuscado").innerHTML;

	if (codCalle == '')
		{
		buscar('', '1');
		return;
		}

	formNumeros.codigoVia.value = codCalle;
	formNumeros.literalVia.value = litCalle;

  	formNumeros.submit();
}

/*Limpia los datos de las búsquedas.*/
function limpiarBusqueda()
{
  if (window.peticion.valorBusqueda != '')
     {
      window.peticion.valorBusqueda = '';
      window.peticion.capaBusqueda = '';
      window.peticion.numero = '';
      window.peticion.etiqueta = '';
     }

  window.document.getElementById("leyendaCapaBuscada").innerHTML = '';
  window.document.getElementById("leyendaElementoBuscado").innerHTML = '';
  window.document.getElementById("btLimpiarBusqueda").style.visibility = 'hidden';
  window.document.getElementById("btLimpiarBusquedaNumero").style.visibility = 'hidden';
  window.document.getElementById("leyendaBloqueNumero").style.visibility = 'hidden';
  refrescoRetardado();
}

function limpiarBusquedaNumero()
{
   if (window.peticion.numero != '')
      {
       window.peticion.numero = '';
       window.peticion.etiqueta = '';
      }
   window.document.getElementById("btLimpiarBusquedaNumero").style.visibility = 'hidden';
   window.document.getElementById("leyendaNumeroBuscado").innerHTML = "";
   refrescoRetardado();
}


var timerId = null;
var necesitaRefrescar = false;

function refrescoRetardado()
{
	//Si no se necesitaba refrescar ya
	if (!cargando && !necesitaRefrescar)
		{
		necesitaRefrescar = true;
		timerId = setInterval("intentarRefrescar()", 3000);
		}
}

function intentarRefrescar()
{
	if (necesitaRefrescar)
		{
		necesitaRefrescar = false;
		clearInterval(timerId);
	//	if (mapaMunic != null)
 	   	 refrescar();
		}
}

function ocultarAltaCalidad()
{
	window.document.getElementById('altaCalidad').style.visibility = 'hidden';
}

function mostrarAltaCalidad()
{
	window.document.getElementById('altaCalidad').style.visibility = 'visible';
}


