//----------------------------------------------------------
//	Funciones para la gestion de las consultas
//----------------------------------------------------------
function EstablecerCampoFiltroConsulta(sCampo,sValor)
{
	var aElemDes,oCampoDes,i;

	//Buscamos el campo destino
  aElemDes=document.getElementsByName(sCampo);
  if (aElemDes.length>0)
	{ 
		oCampoDes=aElemDes[0];


		
		if (oCampoDes.type=='checkbox') oCampoDes.checked=(sValor=='S');
		else if (oCampoDes.type=='radio')
		{
			// AGA 04/12/2006 >> Inicialización campos radio
			for(i=0; i<aElemDes.length; i++)
			{
				oCampoDes=aElemDes[i];
				if(oCampoDes.value == sValor) oCampoDes.checked=true;
			}
		}
		else if (oCampoDes.disabled && ((oCampoDes.type=='select-one') || (oCampoDes.type=='textarea')))
		{
			// AGA 23/11/2006 >> Inicializació campo desactivado 
			// que  no se envían al hacer el submit => se replica 
			// el valor de inicialización al campo hidden paralelo
			oCampoDes.value = sValor;
			aElemDes[1].value = sValor;
		}
		else oCampoDes.value=sValor;
	}
	else if(sCampo.substring(0,4) == 'FIL_')
	{
		// No hemos encontrado el campo FIL_WTX... quizás es un campo informativo
		EstablecerCampoFiltroConsulta('INF_' + sCampo.substring(4),sValor);
	}
}

function GestionarEnlaceAccion(sEnlace,sIdAccion,iVentana,iWidth,iHeight,iHTTPS)
{
	var aElementos,i,sIdFila;

	//Buscamos la fila seleccionada
	sIdFila='';
	aElementos=document.getElementsByName('WTGSELECC');
	for(i=0;i<aElementos.length;i++)
	{
		if (aElementos[i].checked)
		{
			sIdFila=aElementos[i].value;
			break;
		}
	}

	//Comprobamos si hay alguna fila seleccionada
	if (sIdFila.length>0)
	{
		GestionarEnlaceAccionFila(sEnlace,sIdAccion,sIdFila,iVentana,iWidth,iHeight,iHTTPS);
	}
	else
	{
		alert(strSeleccionarFila);
	}
}

function GestionarEnlaceAccionFila(sEnlace,sIdAccion,sIdFila,iVentana,iWidth,iHeight,iHTTPS)
{
	var oCampo,aRelServicio,aParejaRel,sValor,oFormLink,oCampoOculto,i,oVentana,sNombreVentana,iTop,iLeft,sFeatures,aParams;

  
	//Buscamos el formulario que utilizaremos para simular un link y le quitamos todos los campos que tenga.
	oFormLink=document.getElementById('frmLink');
	while (oFormLink.childNodes.length>0)
		oFormLink.removeChild(oFormLink.childNodes.item(0));

	//Buscamos la relacion de campos con el servicio de este enlace
	oCampo=document.getElementById(sIdAccion);
  if ((oCampo!=null) && (oCampo.value.length>0))
	{
		//Por cada campo anadimos un campo oculto al formulario con su valor
		aRelServicio=oCampo.value.split('&');

		for(i=0;i<aRelServicio.length;i++)
		{
			//Buscamos el valor del campo
			aParejaRel=aRelServicio[i].split('=');
			
			//** AGA 20/09/2006: Paso de parámetros entre formularios
			// La codificación de la relación de campos entre páginas puede ser de 2 maneras:
			//  - Campos resultado consulta (sistema tradicional):
			//				En la parte derecha del igual está el nombre del campo resultado de la consulta
			//  - Parámetro (sistema nuevo):
			//				En la parte derecha del igual está el tipo de parámetro (CMP=campo o VAL=valor)
			//        y el valor (nombre del campo en el form o valor, respectivamente) separados
			// 				por la secuencia de control "|$|"

			aParams=aParejaRel[1].split('|$|');
			
			if (aParams.length == 1)
			{
				// Relación por campo resultado de consulta
				oCampo=document.getElementById(sIdFila.concat('_').concat(aParejaRel[1]));
				if (oCampo!=null) sValor=oCampo.value;
				else sValor='';
	
				//Creamos un campo oculto y lo anadimos al formulario
				oCampoOculto=document.createElement('INPUT');
				oCampoOculto.type='hidden';
				oCampoOculto.name=aParejaRel[0];
				oCampoOculto.value=sValor;
				oFormLink.appendChild(oCampoOculto);
			}
			else if (aParams.length == 2)
			{
				// Relación por parámetro
				switch(aParams[0])
				{
					case 'CMP':
						oCampo=document.getElementById(aParams[1]);
						if (oCampo!=null) sValor=oCampo.value;
						else sValor='';
						break;
					
					case 'VAL':
						sValor=URLDecode(aParams[1]);
						break;
					
					default:
						sValor='';
						break;
				}
				//Creamos un campo oculto y lo anadimos al formulario
				oCampoOculto=document.createElement('INPUT');
				oCampoOculto.type='hidden';
				oCampoOculto.name=aParejaRel[0];
				oCampoOculto.value=sValor;
				oFormLink.appendChild(oCampoOculto);				
			}
		}
	}

	//Comprobamos si el resultado hay que mostrarlo en otra ventana o no
	if ((iVentana==0) || (iVentana==1))
	{
	  // Calculamos la posicion de la ventana para que salga en el centro
		iLeft=Math.round((window.screen.availWidth-iWidth)/2);
	  if (iLeft<0) iLeft=0;
		iTop=Math.round((window.screen.availHeight-iHeight)/2);
	  if (iTop<0) iTop=0;
		if (iVentana==1) sFeatures='scrollbars=yes,resizable=yes';
		else sFeatures='menubar=yes,toolbar=yes,scrollbars=yes,resizable=yes,location=yes';
		sFeatures=sFeatures.concat(',width='+iWidth+',height='+iHeight+',left='+iLeft+',top='+iTop);

		// Abrimos la nueva ventana
		oCampo=document.getElementById('EDC_ID_VENTANA');
		if (oCampo!=null) sNombreVentana=oCampo.value;
		else sNombreVentana='EDC_link';
		oVentana=window.open('about:blank',sNombreVentana,sFeatures);
		oFormLink.target=sNombreVentana;
		oVentana.focus();
	}
	else oFormLink.target='_self';

	//Ejecutamos el link
	sEnlace=CalcularURLHTTPS(sEnlace,iHTTPS);
	oFormLink.action=sEnlace.concat('?procedencia=Consulta');
	oFormLink.submit();
}
function InicializarConsulta()
{
  try
   {
      InicializarCampos(); 
   }
   catch(ex)
   {
    
   }
}



// ENLACE CON ABSVISOR: Paso de parámetros al mapa
function CargarMapaAbsVisor()
{
		var ref, claveMapa, idCapa, idEntorno, maxElems, urlVisor, urlRespuesta, targetRespuesta;
    var oFrmMapa=document.getElementById("frmLink");
    
  	while (oFrmMapa.childNodes.length>0)
			oFrmMapa.removeChild(oFrmMapa.childNodes.item(0));
    
    // Recogida de valores
    if (document.getElementById('INF_WTXREFCAT').value != '')
    	ref = document.getElementById('INF_WTXREFCAT').value.replace('-','').substr(0, 14); 
    else
    	ref = document.getElementById('INF_WTXREFPAR').value + document.getElementById('INF_WTXREFPLA').value;

		if (ref.length == 0 && window.location.search.indexOf('procedencia') >= 0)
		{
			alert(sLitRefCatIncorrecta);
			return;
		}

    claveMapa = document.getElementById('INF_WTXCLAVEM').value;
    idCapa = document.getElementById('INF_WTXIDCAPA').value;
    idEntorno = document.getElementById('INF_WTXENTORN').value;
    maxElems = document.getElementById('INF_WTXMAXELE').value;
    urlVisor = document.getElementById('INF_WTXURLVIS').value;
    
    urlRespuesta = window.location.href.substr(0, window.location.href.lastIndexOf('/')) + '/../src/asp/absVisor/RespuestaMapa.asp?css=' + document.styleSheets[1].href;
    targetRespuesta = 'frmRespuesta';
    
    // CAMPO REFERENCIA CATASTRAL
    AnadirCampoFormulario('ida', ref, oFrmMapa);

    // CAMPO CLAVE MAPA
    AnadirCampoFormulario('claveMapa', claveMapa, oFrmMapa);
    
    // CAMPO CAPA
    AnadirCampoFormulario('idCapa', idCapa, oFrmMapa);
        														 
    // CAMPO ENTORNO
    AnadirCampoFormulario('idEntorno', idEntorno, oFrmMapa);
        														 
    // CAMPO MAX ELEMS
    AnadirCampoFormulario('max_elems', maxElems, oFrmMapa);
    
    // CAMPO URL RESPUESTA
    AnadirCampoFormulario('urlRespuesta', urlRespuesta, oFrmMapa);

    // CAMPO TARGET RESPUESTA
    AnadirCampoFormulario('targetRespuesta', targetRespuesta, oFrmMapa);
    
    oFrmMapa.action=urlVisor;
		oFrmMapa.target = 'frmVisor';
		
    oFrmMapa.submit();
    
   	while (oFrmMapa.childNodes.length>0)
			oFrmMapa.removeChild(oFrmMapa.childNodes.item(0));

    AnadirCampoFormulario('ida', ref, oFrmMapa);
    oFrmMapa.action=urlRespuesta;
		oFrmMapa.target = targetRespuesta;
    oFrmMapa.submit();
}
   
function AnadirCampoFormulario(sNombre,sValor,oForm)
{
    var oCampo=document.createElement('INPUT');
		oCampo.type='hidden';
		oCampo.name=sNombre;
		oCampo.value=sValor;
		oForm.appendChild(oCampo);
}

