// JavaScript Document

var arrayPolygon = new Array();

var doComunidad = "http://10.13.90.29:8080/cartociudadnomenclator/comunidades.do";
var doProvincia = "http://10.13.90.29:8080/cartociudadnomenclator/provincias.do";
var doMunicipio = "http://10.13.90.29:8080/cartociudadnomenclator/municipios.do";

var wfsComunidad = "http://10.13.90.29:8080/wfs-comunidad/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsProvincia = "http://10.13.90.29:8080/wfs-provincia/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsMunicipio = "http://10.13.90.29:8080/wfs-municipio/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";


var wfsVial = "http://10.13.90.29:8080/wfs-vial/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsSeccion = "http://10.13.90.29:8080/wfs-seccion/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsCodigo = "http://10.13.90.29:8080/wfs-codigo/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsPortal = "http://10.13.90.29:8080/wfs-portal/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=";
var wfsDistrito = "http://10.13.90.29:8080/wfs-distrito/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";

var urlWps = "http://10.13.90.29:8080/wps/WebProcessingService";

/*var doComunidad = "http://192.168.47.153:8083/cartociudadnomenclator/comunidades.do";
var doProvincia = "http://192.168.47.153:8083/cartociudadnomenclator/provincias.do";
var doMunicipio = "http://192.168.47.153:8083/cartociudadnomenclator/municipios.do";

var wfsComunidad = "http://192.168.47.153:8083/wfs-comunidad/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsProvincia = "http://192.168.47.153:8083/wfs-provincia/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsMunicipio = "http://192.168.47.153:8083/wfs-municipio/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";


var wfsVial = "http://192.168.47.153:8083/wfs-vial/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsSeccion = "http://192.168.47.153:8083/wfs-seccion/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsCodigo = "http://192.168.47.153:8083/wfs-codigo/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";
var wfsPortal = "http://192.168.47.153:8083/wfs-portal/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=";
var wfsDistrito = "http://192.168.47.153:8083/wfs-distrito/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&NAMESPACE=xmlns(app=http://www.deegree.org/app)&TYPENAME=app:Entidad&FILTER=<Filter>";

var urlWps = "http://192.168.47.153:8083/wps/WebProcessingService";*/

var arrayAddPoint = new Array();
var arrayWayPoint = new Array();
var arrayRuta = new Array();
var arrayPOIS=new Array();

var arrayABC = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","point2");
var intermedioPos = -1;
var arrayPuntoIntermedio = new Array();
var arrayPuntoMove = new Array();

var dhtmlCmb;
var dhtmlCmbOrigen;
var dhtmlCmbDestino;
var dhtmlCmbArea;
var dhtmlCmbDestinoAdd;

var cadenaViales=0;
var cadenaHtmlViales = "";
var cadenaHtmlVacios = "";
var llamada = 0;

var elementProvincia = "";

function loadEntidad(val,tipoInterfaz)
{
	
	if(tipoInterfaz != 1)
	{
		var nMunicipio1 = "";
			
		if((GetCookie("municipioOrigen")!=null)&&(GetCookie("municipioOrigen")!="null"))
		{
			nMunicipio1 = GetCookie("municipioOrigen");
		}
		var comboWidth = 178;
		if(isIE())comboWidth = 180;
		
		dhtmlCmbOrigen=new dhtmlXCombo("munDivOrigen","municipioOrigen",comboWidth);
		
		if((nMunicipio1)&&(nMunicipio1!=""))
		{
			dhtmlCmbOrigen.addOption([[nMunicipio1,nMunicipio1]]);
			dhtmlCmbOrigen.selectOption(0);
		}
		
		var inputMunicipioOrigen = document.getElementById('munDivOrigen');
		OpenLayers.Event.observe(inputMunicipioOrigen, 'keyup', OpenLayers.Function.bindAsEventListener(loadMunRuta1,inputMunicipioOrigen));
		
		if(GetCookie("vialOrigen")!=null)
		{
			document.forms.ruta.calleOrigen.value = GetCookie("vialOrigen");
				
		}
		
		if(GetCookie("numOrigen")!=null)
		{
			document.forms.ruta.numOrigen.value = GetCookie("numOrigen");
		}
		
		loadProvincia('provinciaOrigen','municipioOrigen');
	
	}
	if(tipoInterfaz != 0)
	{
		var nMunicipio2 = "";
	
		if((GetCookie("municipioDestino")!=null)&&(GetCookie("municipioDestino")!="null"))
		{
			nMunicipio2 = GetCookie("municipioDestino");
			
		}
		dhtmlCmbDestino=new dhtmlXCombo("munDivDestino","municipioDestino",comboWidth);
		if((nMunicipio2)&&(nMunicipio2!=""))
		{
			dhtmlCmbDestino.addOption([[nMunicipio2,nMunicipio2]]);
			dhtmlCmbDestino.selectOption(0);
		}
		
		var inputMunicipioDestino = document.getElementById('munDivDestino');
		OpenLayers.Event.observe(inputMunicipioDestino, 'keyup', OpenLayers.Function.bindAsEventListener(loadMunRuta2,inputMunicipioDestino));
		
		if(GetCookie("vialDestino")!=null)
		{
			document.forms.ruta.calleDestino.value = GetCookie("vialDestino");
		}
		
		if(GetCookie("numDestino")!=null)
		{
			document.forms.ruta.numDestino.value =  GetCookie("numDestino");
		}
		
		loadProvincia('provinciaDestino','municipioDestino');
	}
	
		
	if(val == 0)
	{
		if((GetCookie("tipoEntidad")!=null)||(document.nomenclator.entidad.value!=""))
		{
			if(GetCookie("tipoEntidad")!=null)
			{
				document.nomenclator.entidad.value = GetCookie("tipoEntidad");
			}
			
			selectPk();
			
			
			if ((GetCookie("tipoEntidad") == 1)||(GetCookie("tipoEntidad") == 2) || (GetCookie("tipoEntidad") == 4))
			{
				if(GetCookie("entidad")!=null)
				{
					document.getElementById("nombreEntidad").value = GetCookie("entidad");
				}
				
				if (GetCookie("tipoEntidad") == 1)
				{
					if(GetCookie("numPk")!=null)
					{
						document.getElementById("numeroPk").value = GetCookie("numPk");
					}
				}
			}
			else if((GetCookie("tipoEntidad") == 5)||(GetCookie("tipoEntidad") == 6))
			{
				if(GetCookie("entidad")!=null)
				{
					
						for(a=0;a<document.getElementById("nombreEntidad").options.length;a++)
						{
							if(document.getElementById("nombreEntidad").options[a].text == GetCookie("entidad"))
							{
								document.getElementById("nombreEntidad").options[a].selected = true;
							}
						}
				}
			}
			else
			{
			}
		}
	}
	
	
		
}





function AjaxObj()
{ 
    
    var xmlhttp=false; 
    try 
    { 
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(e)
    { 
        try
        { 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(E) { xmlhttp=false; }
    }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

	
    return xmlhttp; 
}



function loadProvincia(tagProv)
{
	getProvincia(doProvincia,tagProv);
}
function getProvincia(url,tagProv)
{
	
	var tagProvincia = document.getElementById(tagProv);
	
	for(var n=tagProvincia.options.length; n>0; n--)
	{
		tagProvincia.options[n] = null;
	}
	
	var ajax=AjaxObj();
    ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
    
    var divLoading = document.getElementById("loading");
    
    if(tagProv == "provinciaArea")
	{
		divLoading = document.getElementById("resultSearchPoi");
	}
	
	else if((tagProv == "provinciaOrigen")||(tagProv == "provinciaDestino"))
	{
		divLoading = document.getElementById("divLoadingRuta");
	}
	else 
	{
	}
	
	divLoading.innerHTML = "<img src='img/loading.gif' border=0/>Cargando datos";
    ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	var doc = ajax.responseXML;
        		
        		if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}  
        		
		        var provincia = doc.getElementsByTagName("provincia");
		        
		       
				for (n = 0; n < provincia.length; n ++)
				{
					try
					{
						var tagIdProvincia = provincia[n].getElementsByTagName('id_provincia');
						var tagNameProvincia = provincia[n].getElementsByTagName('nombre_provincia');
					
						var idProvincia = tagIdProvincia.item(0).firstChild.data;
						var nameProvincia = tagNameProvincia.item(0).firstChild.data;
						tagProvincia.options[n+1] = new Option(nameProvincia,idProvincia);
						
					}
					catch(e)
		        	{
		        			divLoading.innerHTML = "";
		        			
		        	}
					
					if(tagProv == "provincia")
					{
						
						if(nameProvincia == GetCookie("provincia"))
						{
							var indice = n + 1;
							tagProvincia.options[indice].selected = true;
							
						}
					}
					else if(tagProv == "provinciaArea")
					{
						
						if(nameProvincia == GetCookie("provincia"))
						{
							var indice = n + 1;
							tagProvincia.options[indice].selected = true;
							
						}
					}
					else if(tagProv == "provinciaOrigen")
					{
						if(nameProvincia == GetCookie("provinciaOrigen"))
						{
							var indice = n + 1;
							tagProvincia.options[indice].selected = true;
						}
					}
					else if(tagProv == "provinciaDestino")
					{
						if(nameProvincia == GetCookie("provinciaDestino"))
						{
							var indice = n + 1;
							tagProvincia.options[indice].selected = true;
						}
					}
					else
					{
					}
					
					if(n == provincia.length - 1)
					{
						divLoading.innerHTML = "";
					}
				}

	        }
	        else
	        {
	        }
	        
	    }//readyState==4
	    else
	    {
	    
	    }
	    
	 }//onreadystatechange
	
	ajax.send(null);
	
}

function loadMunicipio(tagProv,tagMun,changeProv)
{
	var textoMun;
	var url = wfsMunicipio;
	var textoProvincia="";
	var idProvincia = document.getElementById(tagProv).value;
	var isProv = 0;
	
	var tabla = document.getElementById('tableRuta');
	var ultimaFila = tabla.rows.length;
	var row;
	var rows = tabla.rows;
	
	var elementCmb;
	
	if (tagMun == "municipio")
	{
		elementCmb = dhtmlCmb;
	}
	else if(tagMun == "municipioArea")
	{
		elementCmb = dhtmlCmbArea;
		
	}
	else if(tagMun == "municipioOrigen")
	{
		elementCmb = dhtmlCmbOrigen;
	}
	else if(tagMun == "municipioDestino")
	{
		elementCmb = dhtmlCmbDestino;
	}
	else if(tagMun == "municipioDestinoAdd")
	{
		elementCmb = dhtmlCmbDestinoAdd;
	}
	else
	{
		
	}
	
	
	var textoMun=elementCmb.DOMelem_input.value;
	
	
	if(((textoMun.length >=3)||((idProvincia!="")&&(textoMun.length >=1))) && (changeProv == 0))
	{
		filter = '<PropertyIsLike wildCard="*" singleChar="_" escapeChar="|"><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*'+ textoMun +'*</Literal></PropertyIsLike>';		
		
		if(idProvincia!="")
		{
			isProv = 1;
			textoProvincia=document.getElementById(tagProv).options[document.getElementById(tagProv).selectedIndex].text;
			filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+textoProvincia+"</Literal></PropertyIsEqualTo>";
			url = url + "<And>" + filter + "</And></Filter>";
		}
		else
		{
			
			url = url + filter + "</Filter>";
		}
		
		getMunicipio(url,tagMun,isProv);
	}
	else
	{
		
		if(changeProv == 1)
		{
			elementCmb.clearAll();
			elementCmb.unSelectOption();
			elementCmb.DOMelem_input.value = "";
			
			filter = '<PropertyIsLike wildCard="*" singleChar="_" escapeChar="|"><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*'+ textoMun +'*</Literal></PropertyIsLike>';		
		
			if(idProvincia!="")
			{
				isProv = 1;
				textoProvincia=document.getElementById(tagProv).options[document.getElementById(tagProv).selectedIndex].text;
				url = url + "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+textoProvincia+"</Literal></PropertyIsEqualTo></Filter>";
				getMunicipio(url,tagMun,isProv);
			}
		}
		

	}
	
		

}


var ajaxReqMun;
function callInProgress(xmlhttp) {
    switch ( xmlhttp.readyState ) {
        case 1, 2, 3:
            return true;
        break;

        // Case 4 and 0
        default:
            return false;
        break;
    }
}


function getMunicipio(url,tagMun,isProv)
{
try
{
	var elementCmb;
	var elementLoading = null;
	
	if (tagMun == "municipio")
	{
		elementCmb = dhtmlCmb;
		elementLoading = document.getElementById('divloadingMun');
		
	}
	else if(tagMun == "municipioArea")
	{
		elementCmb = dhtmlCmbArea;
		elementLoading = document.getElementById('loadingMunArea');
		
	}
	else if(tagMun == "municipioOrigen")
	{
		elementCmb = dhtmlCmbOrigen;
		elementLoading = document.getElementById('loadingMunOrigen');
	}
	else if(tagMun == "municipioDestino")
	{
		elementCmb = dhtmlCmbDestino;
		elementLoading = document.getElementById('loadingMunDestino');
	}
	else if(tagMun == "municipioDestinoAdd")
	{
		elementCmb = dhtmlCmbDestinoAdd;
		elementLoading = document.getElementById('loadingMunAddDestino');
	}
	else
	{
		
	}
	timeoutId = setTimeout( function() { if ( callInProgress(ajaxReqMun) ) { ajaxReqMun.abort(); return false;} }); 
	
	if(elementLoading!=null)
    {
		elementLoading.innerHTML="<img src='img/loading.gif' border=0/>";
	}
	elementCmb.clearAll();

	ajaxReqMun = AjaxObj();
    ajaxReqMun.open("GET", "proxy.do?urlValor="+escape(url), true); 
  
	ajaxReqMun.onreadystatechange=function() 
    { 
        if (ajaxReqMun.readyState==4)
        { 
        	
	        if (ajaxReqMun.status == 200) 
	        {
	        	var doc = ajaxReqMun.responseXML;
        
        		if (!doc || ajaxReqMun.fileType!="XML") {
		            doc = ajaxReqMun.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}  
        		
		        var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		
        		if (features_gml.length == 0)
        		{
        			try
        			{
	        			htmlAdd = "<table border=0 style='border:1px solid #7192C5;' width=100% celpadding=2 cellspacing=2><tr><td>&nbsp;</td><td width=190px;>";
	        			htmlAdd = htmlAdd + "<i><font color='#FF0000'>No se han encontrado municipios</font></i></td></tr></table>";
	        			if(elementLoading!="")
	        			{
	        				elementLoading.innerHTML="";
	        			}
	        		}
	        		catch(e)
	        		{
	        		}
        		}
        		else
        		{
        			
        			var idFeature = 0;
        			var nombreFeature = "";
        			var nombreMun = "";
        			var nombreProvFeature="";
        			var totalArrayMun = new Array();
        			for (var i = 0; i < features_gml.length; i++) 
		        	{
		        		if (i == 0)
						{
							styleBorder="";
						}
						else
						{
							styleBorder="border-top:1px dotted #999999;";
						}
		        		
		        		idFeature = features_gml[i].childNodes[0].attributes[0].nodeValue;
		        		
		        		
		        		nombreFeature = getNombre(features_gml[i]);
		        		
		        		
		        		if(isProv == 0)
		        		{
		        			nombreProvFeature = getFeatureProv(features_gml[i]);
		        			
		        		}
		        		
		        		while(nombreFeature.indexOf("'")!=-1)
		        		{
		        			nombreFeature = nombreFeature.replace("'","´");
		        		}
		        		
		        		nombreMun = nombreFeature;
		        		if(isProv == 0)
		        		{
		        			nombreMun =  nombreMun + "&nbsp;("+nombreProvFeature+")";
		        		}
		        		var opcion_mun = new Array(2);
		        		opcion_mun[0] = nombreMun;
		        		opcion_mun[1] = nombreMun;
		        		
		        		totalArrayMun.push(opcion_mun);
		        		
		        	}//for
		        	
		        	elementCmb.addOption(totalArrayMun);
		        	
		        	if(totalArrayMun.length == 1)
		        	{
		        		elementCmb.selectOption(0);
		        	}
        		}
        		if(elementLoading!=null)
        		{
        			elementLoading.innerHTML="";
        		}
        		
			
	        	
	       	}
	        else
	        {
	        }//ajaxReqMun.status==200
	        
	    }//readyState==4
	    else
	    {
	    
	    }
	    
	 }//onreadystatechange
	 
	 ajaxReqMun.send(null);
	
}
	catch(e)
	{
		if(elementLoading!="")
        		{
        			elementLoading.innerHTML="";
        		}
	}	 
}


function loadResults (nombreForm)
{
	var url = "";
	var filter = "";
	var includeAnd = false;
	
	var ejecutaConsulta = false;
	
	if (nombreForm == "nomenclator")
	{
		document.getElementById('resultadosBusqueda').innerHTML="";
		var elementoNombreEntidad = "";
		for(var elm = 0; elm < document.forms.nomenclator.elements.length; elm++)
		{
			if(document.forms.nomenclator.elements[elm].name == "nombreEntidad")
			{
				elementoNombreEntidad = document.forms.nomenclator.elements[elm].value;
			}
		}
		if (document.forms.nomenclator.entidad.value == "")
		{
			alert("Seleccione un tipo de entidad");
		}
		else if (elementoNombreEntidad == "")
		{
			alert("Escriba un nombre para la entidad");
		}
		else if((document.forms.nomenclator.entidad.value == 1 ) && (elementoNombreEntidad.length<3) && (elementProvincia.selectedIndex == 0))
		{
			alert("Introduzca un mínimo de 3 caracteres para la búsqueda por vial");
			
		}
		else if((document.forms.nomenclator.entidad.value == 3 ) && (elementoNombreEntidad.length<3))
		{
			alert("Introduzca un mínimo de 3 caracteres para la búsqueda por municipio");
			
		}
		
		else if((document.forms.nomenclator.entidad.value == 4 ) && (elementoNombreEntidad.length<2))
		{
			alert("Introduzca un mínimo de 2 caracteres para la búsqueda por código postal");
			
		}
		else if((document.forms.nomenclator.entidad.value == 2) && ((dhtmlCmb.DOMelem_input.value==null)||(dhtmlCmb.DOMelem_input.value=="null")||(dhtmlCmb.DOMelem_input.value=="")))
		{
		
			alert("Tiene que seleccionar un municipio para la búsqueda de Distrito / Sección Censal.");
			
			
			
		}
		else
		{
			ejecutaConsulta = true;
			var tipoBusqueda = "";
			tipoBusqueda = document.forms.nomenclator.entidad.value;
			switch (document.forms.nomenclator.entidad.value)
			{
				case "1"://es el vial
					url = wfsVial;
					break;
				case "2": //sección censal
					url = wfsDistrito;
					break;
				case "3"://municipio
					url = wfsMunicipio;
					break;
				case "4"://codigo postal
					url = wfsCodigo;
					break;
				case "5"://provincia
					url = wfsProvincia;
					break;
				case "6"://comunidad
					url = wfsComunidad;
					break;
				default:
					break;
			}
				
			var nombre = trim(elementoNombreEntidad.toUpperCase()); 
			if((document.forms.nomenclator.entidad.value == 2) && (document.forms.nomenclator.seccionCensal.value!=""))
			{
				url = wfsSeccion;
				var filter = "";
				if(document.forms.nomenclator.nombreEntidad.value!="")
				{
					filter = filter + '<PropertyIsEqualTo><PropertyName>atributoEntidad/valorAtributo</PropertyName><Literal>'+ document.forms.nomenclator.nombreEntidad.value +'</Literal></PropertyIsEqualTo>';
				}
				filter = filter + '<PropertyIsEqualTo><PropertyName>nombreEntidad/nombre</PropertyName><Literal>'+ document.forms.nomenclator.seccionCensal.value +'</Literal></PropertyIsEqualTo>';
				includeAnd = true;
				
				
			}
			else
			{
				if((document.forms.nomenclator.entidad.value == 5) || (document.forms.nomenclator.entidad.value == 6))
				{
					var campoBusqueda = document.forms.nomenclator.nombreEntidad.options[document.nomenclator.nombreEntidad.selectedIndex].text;
					if(document.forms.nomenclator.entidad.value == 6)
					{
						campoBusqueda = document.forms.nomenclator.nombreEntidad.value;
					}
					
					filter = "<PropertyIsEqualTo><PropertyName>nombreEntidad/nombre</PropertyName><Literal>"+campoBusqueda+"</Literal></PropertyIsEqualTo>";
				}
				else
				{
					if(document.forms.nomenclator.entidad.value != 3) 
					{
						filter = '<PropertyIsLike wildCard="*" singleChar="_" escapeChar="|"><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*'+ nombre +'*</Literal></PropertyIsLike>';		
					}
				}
			}
			
			if((document.forms.nomenclator.entidad.value != 5) && (document.forms.nomenclator.entidad.value != 6))
			{
				
				try
				{
					var _prov = "";
					var _mun = "";
					
					if(elementProvincia.value != "")
					{
						_prov = elementProvincia.options[elementProvincia.selectedIndex].text;
					}
					
					if((dhtmlCmb.DOMelem_input.value!=null)&&(dhtmlCmb.DOMelem_input.value!="null")&&(dhtmlCmb.DOMelem_input.value!=""))
					{
						_mun = dhtmlCmb.DOMelem_input.value;
						
						if(elementProvincia.value == "")
						{
							if((dhtmlCmb.getSelectedValue()!=null)&&(dhtmlCmb.getSelectedValue()!="null")&&(dhtmlCmb.getSelectedValue()!=""))
							{
								_mun = dhtmlCmb.getSelectedValue();
								
								var _posmun = 0;
//								while(_mun.indexOf("&nbsp;")!=-1)

//---------------------------------Inicio Parche JGG--------------------------//
							    //if((_mun.indexOf("(")!=-1)&&(_mun.indexOf(")")!=-1))
							    if((_mun.lastIndexOf("(")!=-1)&&(_mun.lastIndexOf(")")!=-1))
							    {
							    	//var _nombreMun_ = _mun.substr(0,_mun.indexOf("("));
								var _nombreMun_ = _mun.substr(0,_mun.lastIndexOf("("));
//---------------------------------Fin Parche JGG-----------------------------//
							    	_nombreMun_ = _nombreMun_.replace("&nbsp;","");
							    	var longitudMun = _mun.length;
							    	var _nombreProvincia_ = _mun.substr(_nombreMun_.length,_mun.length -_nombreMun_.length );
							    	_nombreProvincia_ = _nombreProvincia_.replace("(","");
							    	_nombreProvincia_ = _nombreProvincia_.replace(")","");
							    	_nombreProvincia_ = _nombreProvincia_.replace("&nbsp;","");
							    	_mun = trim(_nombreMun_);
									_prov = trim(_nombreProvincia_);
							    }
			        			
			        			/*var checkProv = _mun.split("|");
			        			if(checkProv.length == 2)
			        			{
				        			_mun = checkProv[0];
				        			_prov = checkProv[1];
				        			_prov = _prov.replace("(","");
				        			_prov = _prov.replace(")","");
			        			}
			        			else if(checkProv.length == 1)
			        			{
			        				_mun = checkProv[0];
			        			}
			        			else
			        			{
			        			}*/
			        		}
		        		}
						
						while(_mun.indexOf("´")!=-1)
					    {
					    	_mun = _mun.replace("´","'");
					    }
					   
					    if(document.forms.nomenclator.entidad.value == 3)
						{
//							filter = filter + "<PropertyIsEqualTo><PropertyName>nombreEntidad/nombre</PropertyName><Literal>"+_mun+"</Literal></PropertyIsEqualTo>";
							filter = filter + "<PropertyIsLike wildCard='*' singleChar='_' escapeChar='|'><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*"+_mun+"*</Literal></PropertyIsLike>";
//							filter = filter + "<PropertyIsLike wildCard='*' singleChar='_' escapeChar='|'><PropertyName>entidadLocal/municipio</PropertyName><Literal>*"+_mun+"*</Literal></PropertyIsLike>";
						}
						else
						{
							filter = filter + "<PropertyIsLike wildCard='*' singleChar='_' escapeChar='|'><PropertyName>entidadLocal/municipio</PropertyName><Literal>*"+_mun+"*</Literal></PropertyIsLike>";
							/*if(document.forms.nomenclator.entidad.value == 4)
							{
								filter = filter + "<PropertyIsLike wildCard='*' singleChar='_' escapeChar='|'><PropertyName>nombreEntidad/nombre</PropertyName><Literal>"+_mun+"</Literal></PropertyIsLike>";
							}
							else
							{
								filter = filter + "<PropertyIsEqualTo><PropertyName>nombreEntidad/nombre</PropertyName><Literal>"+_mun+"</Literal></PropertyIsEqualTo>";
							}*/
							
							if((document.forms.nomenclator.entidad.value == 4) || (document.forms.nomenclator.entidad.value == 2))
							{
								
								var capa = "SSCC";
								if(document.forms.nomenclator.entidad.value == 4)
								{
									capa = "CCPP";
								}
								var layers = this.map.layers.slice();
								
								 for( var i = 0; i < layers.length; i++) 
								 {
								 	var layer = layers[i];
								 	if((layer.name==capa)&&(!layer.getVisibility()))
								 	{
								 		layer.setVisibility("true");
								 	}
								 }
							}
							
							includeAnd = true;
						}
						
						/*if(document.forms.nomenclator.entidad.value != 3)
						{
							includeAnd = true;
						}*/
					}
				
					
					if(_prov !="")
					{
						filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+_prov+"</Literal></PropertyIsEqualTo>";
						if((document.forms.nomenclator.entidad.value != 3)||(_mun!=""))
						{
							includeAnd = true;
						}
					}
					try
					{
						SetCookie("provincia",_prov);
					}
					catch(e)
					{
					}
								
					try
					{
						SetCookie("municipio",_mun);
					}
					catch(e)
					{
					}
						
					
					if(document.forms.nomenclator.entidad.value == 1)
					{
						SetCookie("numPk",document.forms.nomenclator.numeroPk.value);
					}
					
					
				}
				catch(e)
				{
					alert(e);
				}
			 }
		}
		
		SetCookie("tipoEntidad",document.forms.nomenclator.entidad.value);
		SetCookie("entidad",elementoNombreEntidad);
			
	}
	else if (nombreForm == "zonas")
	{
		var nombre = document.forms.zonas.nomvia_poi.value;
		
		if(nombre == "")
		{
			alert("Escriba el nombre del vial");
		}
		else
		{
		
			ejecutaConsulta = true;
			tipoBusqueda = 1; // viales
			url = wfsVial;
		
			var elementProvArea = document.forms.zonas.provinciaArea;
		
			var _prov = "";
			var _mun = "";
					
			if(elementProvArea.value != "")
			{
				_prov = elementProvArea.options[elementProvArea.selectedIndex].text;
			}
		
		
		
			filter = '<PropertyIsLike wildCard="*" singleChar="_" escapeChar="|"><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*'+ nombre +'*</Literal></PropertyIsLike>';		
		
			if((dhtmlCmbArea.DOMelem_input.value!=null)&&(dhtmlCmbArea.DOMelem_input.value!="null")&&(dhtmlCmbArea.DOMelem_input.value!=""))
			{
				_mun = dhtmlCmbArea.DOMelem_input.value;
			
				if(elementProvArea.value == "")
				{
					if((dhtmlCmbArea.getSelectedValue()!=null)&&(dhtmlCmbArea.getSelectedValue()!="null")&&(dhtmlCmbArea.getSelectedValue()!=""))
					{
						_mun = dhtmlCmbArea.getSelectedValue();
						var _posmun = 0;
						if((_mun.indexOf("(")!=-1)&&(_mun.indexOf(")")!=-1))							
						{
						   	var _nombreMun_ = _mun.substr(0,_mun.indexOf("("));
						   	_nombreMun_ = _nombreMun_.replace("&nbsp;","");
						   	var longitudMun = _mun.length;
						   	var _nombreProvincia_ = _mun.substr(_nombreMun_.length,_mun.length -_nombreMun_.length );
						   	_nombreProvincia_ = _nombreProvincia_.replace("(","");
						   	_nombreProvincia_ = _nombreProvincia_.replace(")","");
						   	_nombreProvincia_ = _nombreProvincia_.replace("&nbsp;","");
						   	_mun = trim(_nombreMun_);
							_prov = trim(_nombreProvincia_);
						}
			        }
						
					while(_mun.indexOf("´")!=-1)
					{
						_mun = _mun.replace("´","'");
					}
			
					filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/municipio</PropertyName><Literal>"+_mun+"</Literal></PropertyIsEqualTo>";
					includeAnd = true;						
				}
			
			}
					
			if(_prov !="")
			{
				filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+_prov+"</Literal></PropertyIsEqualTo>";
				includeAnd = true;
				
			}
		
			try
			{
				SetCookie("provincia",_prov);
			}
			catch(e)
			{
			}
			try
			{
				SetCookie("municipio",_mun);
			}
			catch(e)
			{
			}
		}		

	
		
	}
	
	if(ejecutaConsulta)
		{
			if (includeAnd == true)
			{
				url = url + "<And>" + filter + "</And></Filter>";
			}
			else
			{
				url = url + filter + "</Filter>";
			}
				
			getResults(url,tipoBusqueda,nombreForm);
		}
	
	
}

function getResults(url,type,nombreForm)
{
	
	cadenaViales = 0;
	cadenaHtmlViales = "";
	var divResults = "";
	var divLoading = "";
	var cmbResultados = "";

	
	if(nombreForm == "nomenclator")
	{
		cmbResultados = document.getElementById("resultNomenclator");
		
		for(var n=cmbResultados.options.length; n >= 0; n--)
		{
			cmbResultados.options[n] = null;
		}
		
		divLoading = document.getElementById('loading');
		
		divResults = document.getElementById("resultadosBusqueda");
		divResults.style.visibility="visible";
		document.forms.nomenclator.cadenahtml.value = "";
	}
	
	if(nombreForm == "zonas")
	{
		cmbResultados = document.getElementById("resultListPoi");

		for(var n=document.getElementById("resultListPoi").options.length; n >= 0; n--)
		{
			document.getElementById("resultListPoi").options[n] = null;
		}
		
		divResults = document.getElementById("resultSearchPoi");
		divResults.style.visibility="visible";
		document.forms.zonas.cadenahtmlPOI.value = "";
	}
	
	divResults.innerHTML="<img src='img/loading.gif' border=0/>Cargando datos";
	
	var ajax=AjaxObj();
   	ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
	var featuresvial = new Array();
	arrayPolygon = [];
	var urlPortal = new Array();

	ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	var doc = ajax.responseXML;
        
		        if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}    
        		
        		
        		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		
        		if (features_gml.length == 0)
        		{
        			divLoading.innerHTML="";
        			divResults.innerHTML = "<table width='100%'><tr><td><font color='FF0000'><strong>No se han encontrado resultados</strong></font></td></tr></table>";
        		}
        		else
        		{
        			
        			var resultHtml="";
        			
	        		if (type != 1)
					{
						resultHtml = "<table width='100%'><tr><td class='tituloB'>Resultados</td></tr><tr><td><hr color='#7192C5'></td></tr><tr><td><i>Sólo se muestran los 10 primeros resultados</i></td></tr><tr><td class='tituloB'  style='border: 1px solid #003677;'><table width='100%' cellspacing='0' cellpadding='0' >";

					}
				
					var styleBorder;	
					for (var i = 0; i < features_gml.length; i++) 
		        	{
		        			if (i == 0)
							{
								styleBorder="";
							}
							else
							{
								styleBorder="border-top:1px dashed #999999;";
							}
		        		
		        		
		        		var idFeature = features_gml[i].childNodes[0].attributes[0].nodeValue;
		        	
		        		
		        		if (type == 1)
						{
							var valorBusqueda = 2;
							
							var nombreFeature = getNombre(features_gml[i]);
							var tipoFeature = getTipo(features_gml[i]);
							
							if ((tipoFeature.toUpperCase()=="AUTO")||(tipoFeature.toUpperCase()=="AVIA")||(tipoFeature.toUpperCase()=="CARRE")||(tipoFeature.toUpperCase()=="CRA")||(tipoFeature.toUpperCase()=="CTRA"))
							{
								valorBusqueda = 3;
							}
							
							
							var munFeature = getFeatureMun(features_gml[i]);
							var provFeature = getFeatureProv(features_gml[i]);
											
							cmbResultados.options[i] = new Option(tipoFeature + "|" + nombreFeature + "|" + munFeature + "|" + provFeature,idFeature);
							resultHtml = resultHtml + "<tr id='"+idFeature+"' height='100%' onMouseOver='this.style.background=\"#F0F0F0\"' onMouseOut='this.style.background=\"#FFFFFF\"'><td height='100%' valign='top' style='"+styleBorder+";padding:3px;'><a id='"+idFeature+"_id_f' href='#' title='Situar en el mapa' alt='Situar en el mapa'>"+ tipoFeature + "&nbsp;" + nombreFeature +",&nbsp;en " + munFeature + " ("+ provFeature+")</a></td><td height='100%' valign='top' style='"+styleBorder+";padding:3px;' width=20px><a id="+idFeature+"_Link href='#'><img src='img/info.gif' alt='Información del nomenclator' title='Información del nomenclator' width='18' height='18' border='0'></a></td></tr>";
							
							
							if(nombreForm == "zonas")
							{
								valorBusqueda = 4;

							}
							
							if (i == features_gml.length-1)
		        			{
		        				var cadenaVialResultado = "";
		        					
		        				cadenaVialResultado = "<table width='100%'><tr><td class='tituloB' style='padding-top:10px;'>Resultados</td></tr><tr><td><hr color='#7192C5'></td></tr><tr><td><i>Sólo se muestran los 10 primeros resultados</i></td></tr><tr><td style='border: 1px solid #000000;'>";
		        				cadenaVialResultado = cadenaVialResultado + "<table width='100%' bgcolor='#FFFFFF' cellspacing='0' cellpadding='0'>" +resultHtml+ "</table>";
		        				
		        				
		        				
		        				if(nombreForm == "nomenclator")
		        				{
		        					document.getElementById('mapInfo').scrollTop = 420;//puntodescroll;
		        					
		        				}
		        				else
		        				{
		        					document.getElementById('zonas').scrollTop = 420;
		        					cadenaVialResultado = cadenaVialResultado + "</td></tr><tr><td style='padding:3px;'><i>* Pulse sobre el nombre del vial para establecer el origen sobre el mapa</i></td></tr></table>";
		        				}
		        				divResults.innerHTML = cadenaVialResultado;
		        				divLoading.innerHTML="";
							}
							
						}
						else
						{
							resultHtml = resultHtml + obtenFeatures(features_gml,i,idFeature,type,styleBorder);
						}
		        	}
		        	
		        	if (type != 1)
					{
					
			        	divResults.innerHTML = resultHtml + "</table></td></tr></table>";
			        	document.getElementById('loading').innerHTML="";
			        }
	
		        	
		        	if (type == 1)
					{
						urlPk = wfsPortal + "<Filter><Or>";
						var numeroPk = "";
						if(nombreForm =="nomenclator")
						{
							numeroPk = trim(document.forms.nomenclator.numeroPk.value);
						}
						else
						{
							numeroPk = trim(document.forms.zonas.numvia_poi.value);
						}
						
						
						if ((numeroPk!=0) && (numeroPk!=""))
						{
							intento = 2;
						}
						else
						{
							intento = 0;
						}
						for (var i = 0; i < cmbResultados.options.length; i++) 
		        		{
		        			idFeatureVial = cmbResultados.options[i].value;
			        		getPortal (idFeatureVial,valorBusqueda,numeroPk,intento);
			        	}
		        	
						
						
						
					}
		        	
		        	
        		}//else
        		      			
        		
	       	}//if ajax.status
	        else
	        {
	        }//ajax.status==200
	        
	    }// if readyState==4
	    else //readyState
	    {
	    
	    }
	 	   
	 }//onreadystatechange
	
	
//	 document.getElementById('loadingResults').innerHTML="";
	 

	 ajax.send(null);
	 
	 
	
				
	 
}


function loadDetail(idFeature, val,type)
{
		
	if (val == 1)
	{
		ventana = window.open("detalles.html?idFeature="+idFeature+"&type="+type, "detalles", "width=480px,height=400px");
		if (window.focus) {ventana.focus()}
		
	}
	else
	{
		var url = "";
		switch (type)
		{
			case "1"://es el vial
					url = wfsVial;
					break;
				case "2": //sección censal
					url = wfsDistrito;
					break;
				case "3"://municipio
					url = wfsMunicipio;
					break;
				case "4"://codigo postal
					url = wfsCodigo;
					break;
				case "5"://provincia
//					url = wfsComunidad;
					url = wfsProvincia;
					break;
				case "6"://comunidad
					url = wfsComunidad;
					break;
				case "7"://secc
					url = wfsSeccion;
					break;
				default:
					break;
		}
		url = url + "<PropertyIsEqualTo><PropertyName>fid</PropertyName><Literal>"+ idFeature +"</Literal></PropertyIsEqualTo>";
		url = url + "</Filter>";
		
		getDetail(url,idFeature,type);
	}
}

function getDetail(url,idF,type)
{
	
	
   	var ajax=AjaxObj();
   	ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
    ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	 if((type == 5) || (type == 6) || (type == 3))
	{
		document.getElementById("municipioTd").style.visibility = "hidden";
	}
	else
	{
		document.getElementById("municipioTd").style.visibility = "visible";
	
	}
        		var doc = ajax.responseXML;
        
		        if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}    
        		document.getElementById("FID").innerHTML = idF;
        		
        		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		
        		for (var i = 0; i < features_gml.length; i++) 
		        {
		        	for(var j = 0; j < features_gml[i].childNodes.length; j++)
	        		{
	        			if (features_gml[i].childNodes[j].tagName == "Entidad")
	        			{
	        				try
	        				{
	        					for(var k = 0; k < features_gml[i].childNodes[j].childNodes.length; k++)
		        				{
		        					if (features_gml[i].childNodes[j].childNodes[k].tagName=="nombreEntidad")
		        					{
		        						
										if ((navigator.appName.contains("Microsoft"))||(navigator.appName.contains("Opera")))
										{
											document.getElementById("NOMBRE").innerHTML = features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('nombre').item(0).text;
			        						document.getElementById("IDIOMA").innerHTML = features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('idioma').item(0).text;
											document.getElementById("CLASE").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('claseNombre').item(0).text;
											document.getElementById("ESTATUS").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('estatus').item(0).text;
											document.getElementById("FUENTE").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('fuente').item(0).text;	
										}
										else
										{
											document.getElementById("NOMBRE").innerHTML = features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('nombre').item(0).textContent;
			        						document.getElementById("IDIOMA").innerHTML = features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('idioma').item(0).textContent;
											document.getElementById("CLASE").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('claseNombre').item(0).textContent;
											document.getElementById("ESTATUS").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('estatus').item(0).textContent;
											document.getElementById("FUENTE").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('fuente').item(0).textContent;	
										}
											        							
		        					}
		        					
		        					if (features_gml[i].childNodes[j].childNodes[k].tagName=="tipoEntidad")
		        					{
		        						if ((navigator.appName.contains("Microsoft"))||(navigator.appName.contains("Opera")))
										{
			        						document.getElementById("TIPO").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('tipo').item(0).text;
			        						document.getElementById("CATALOGO").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('catalogoEntidades').item(0).text;
			        					}
			        					else
			        					{
			        						document.getElementById("TIPO").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('tipo').item(0).textContent;
			        						document.getElementById("CATALOGO").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('catalogoEntidades').item(0).textContent;
			        					}
		        					}
		        					
		        					if (features_gml[i].childNodes[j].childNodes[k].tagName=="entidadLocal")
		        					{
		        						if ((navigator.appName.contains("Microsoft"))||(navigator.appName.contains("Opera")))
										{
			        						document.getElementById("PROVINCIA").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('provincia').item(0).text;
											document.getElementById("MUNICIPIO").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('municipio').item(0).text;
										}
										else
										{
											document.getElementById("PROVINCIA").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('provincia').item(0).textContent;
											document.getElementById("MUNICIPIO").innerHTML =features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('municipio').item(0).textContent;
										}
		        					}
		        					
		        						
		        				}//for
		        			}//try
	        				catch(e)
	        				{
	        				}
	        			}
	        			
			        }
		        }
		        	
        		
        		
	       	}
	        else
	        {
	        }//ajax.status==200
	        
	    }//readyState==4
	    else
	    {
	    
	    }
	    
	 }//onreadystatechange
	
	 ajax.send(null);
	 
}

function getDetailOld(url,idF)
{
   	var ajax=AjaxObj();
   	ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
    ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	
        		var doc = ajax.responseXML;
        
		        if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
        
				var gml = this.format ? new this.format() : new OpenLayers.Format.GML();
			
        		var features_gml = gml.read(doc);
        		
        		for (var i = 0; i < features_gml.length; i++) 
        		{
        			var feature = features_gml[i];
        			
        			document.getElementById("FID").innerHTML = idF;
        			document.getElementById("IDIOMA").innerHTML = feature.attributes["idioma"];
        			document.getElementById("CLASE").innerHTML = feature.attributes["claseNombre"];
        			document.getElementById("ESTATUS").innerHTML = feature.attributes["estatus"];
        			document.getElementById("FUENTE").innerHTML = feature.attributes["fuente"];
        			document.getElementById("TIPO").innerHTML = feature.attributes["tipo"];
        			document.getElementById("CATALOGO").innerHTML = feature.attributes["catalogoEntidades"];
        			document.getElementById("PROVINCIA").innerHTML = feature.attributes["provincia"];
        			document.getElementById("MUNICIPIO").innerHTML = feature.attributes["municipio"];
        			document.getElementById("NOMBRE").innerHTML = feature.attributes["nombre"];
									
				}	
        		
	       	}
	        else
	        {
	        }//ajax.status==200
	        
	    }//readyState==4
	    else
	    {
	    
	    }
	    
	 }//onreadystatechange
	 
	 ajax.send(null);
}



function marca(valorX,valorY,setFrom,idF)
{
	
	
	if (popupQuery!= null)
	{
		popupQuery.destroy();
		popupQuery = null;
	}
		                   
	markers2.clearMarkers();
	eliminarRuta(true,true);
	
	var size = new OpenLayers.Size(40,40);
	var offset = new OpenLayers.Pixel(-20,-30);
	  
	var icon = new OpenLayers.Icon('img/location.gif',size,offset,null);
	
	if(setFrom)
	{
		
		try
		{
			if((idF!=null)&&(idF!="null")&&(idF!=-1)&&(idF!=""))
			{
				var origenDetalle = document.getElementById(idF+"_id_f").innerHTML;
				setMarkerRoute(valorX,valorY,0,origenDetalle);
				prepareArea();
				document.getElementById("helpTD").innerHTML = "";			
			}
		}
		catch(e)
		{
		}
		
		var existeFilaHelp = rowExists("tableZonasB","helpTR",true);
	}
	else
	{
		markers2.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(valorX,valorY),icon));
	}
	map.setCenter(new OpenLayers.LonLat(valorX, valorY),13);
	document.formgml.lastExtent.value = "setCenter|"+valorX+"|"+valorY+"|13";
	
		            
	
}
//---------------------------------Inicio Parche JGG--------------------------//
function getResultQueryInfoCartociudad(center, layers, arrayPosicionInfo, position)
{
	
	if(arrayPosicionInfo.length == 5){

		//a las layer.WMS que llaman a wms-c se les han añadido atributos urlQueryGetFeatureInfo y layersQueryGetFeatureInfo
		//para que llamen a los servicios wms sobre los que esta montado el wms-c
		var url = (layers[position].urlQueryGetFeatureInfo?layers[position]['urlQueryGetFeatureInfo']:layers[position].url) + "?";
		url = url + "SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&EXCEPTIONS=application/vnd.ogc.se_xml&INFO_FORMAT=text/html";
		url = url + "&LAYERS=" + (layers[position]['layersQueryGetFeatureInfo']?layers[position]['layersQueryGetFeatureInfo']:layers[position].params['LAYERS']);
		url = url + "&QUERY_LAYERS=" + (layers[position]['layersQueryGetFeatureInfo']?layers[position]['layersQueryGetFeatureInfo']:layers[position].params['LAYERS']);
		url = url + "&BBOX="+arrayPosicionInfo[0]+"&X="+arrayPosicionInfo[1]+"&Y="+arrayPosicionInfo[2]+"&WIDTH="+arrayPosicionInfo[3]+"&HEIGHT="+arrayPosicionInfo[4];
		url = url + "&SRS=EPSG:4258";
		
		var ajaxReqQuery=AjaxObj();
		ajaxReqQuery.open("GET", "proxy.do?urlValor="+escape(url), true);
	
		ajaxReqQuery.onreadystatechange=function(){
			if (ajaxReqQuery.readyState==4){
				if (ajaxReqQuery.status == 200){
					if((ajaxReqQuery.responseText == null)||(trim(ajaxReqQuery.responseText)=="")){
						if (popupQuery!= null){
							popupQuery.destroy();
							popupQuery = null;
						}
					}else{
						var respuesta = ajaxReqQuery.responseText;
						//analizar la respuesta dada para no procesar ni añadir nada al popup si esta vacia
						//buscar entre <body> y </body>
						var inicioCuerpo = respuesta.toUpperCase().indexOf('<BODY>') + 6;
						var finalCuerpo = respuesta.toUpperCase().indexOf('</BODY>');
						var bodyVacio = true;
						for(var i = inicioCuerpo; i< finalCuerpo; i++){
							if(respuesta.charAt(i) != ' '){
								bodyVacio = false;
								break;
							}
						}
							
						if(!bodyVacio){
							//procesamos la respuesta de forma burda para que en el caso de que haya un hipervinculo
							//asegurarnos de que se abrirá en una ventana/pestaña nueva "blank"
							//sustituimos en la respuesta '<a ' por '<a target="blank "
							respuesta = respuesta.replace(/<a /g, '<a target="blank" ');
							document.formgml.resultadoQuery.value = document.formgml.resultadoQuery.value + respuesta + '<hr>';
						}
						
						var resLoading = document.formgml.resultadoQuery.value;
						
						if(resLoading){

							unsetCapaLoad();

							if((position + 1) < layers.length) resLoading = "<p><img src='img/loading.gif'>Cargando ...</p>" + resLoading;
							
							if (popupQuery!= null){
								popupQuery.destroy();
								popupQuery = null;
							}

							popupQuery = new OpenLayers.Popup.FramedBubble("infoQuery",
								center,
								new OpenLayers.Size(300,200),
								resLoading,
								"",
								true,
								"",
								true);
							map.addPopup(popupQuery);
							document.getElementById("infoQuery").style.width = "350px";
							document.getElementById("infoQuery").style.overflowX="auto";
							document.getElementById("infoQuery").style.overflowY="hidden";
							if((position + 1) < layers.length) document.formgml.PositionQuery.value = '';
						}	
						if((position + 1) < layers.length) getResultQueryInfoCartociudad(center,layers,arrayPosicionInfo,position + 1);
					}
				}
			}
		}//termina funcion
	
		ajaxReqQuery.send(null);
	}
}

/*
function getResultQueryInfoCartociudad(center, arrayCapasConsulta, arrayPosicionInfo, position)
{

	document.formgml.PositionQuery.value = position;

	var arrayCapas = arrayCapasConsulta.split(",");
	if(arrayPosicionInfo.length == 5)
	{

		var url = "http://www.cartociudad.es/wms/CARTOCIUDAD/CARTOCIUDAD?";
		url = url + "SERVICE=WMS&VERSION=1.1.1&REQUEST=GetFeatureInfo&EXCEPTIONS=application/vnd.ogc.se_xml&INFO_FORMAT=text/html";
		url = url + "&LAYERS="+arrayCapas[position]+"&QUERY_LAYERS="+arrayCapas[position]+"&BBOX="+arrayPosicionInfo[0]+"&X="+arrayPosicionInfo[1]+"&Y="+arrayPosicionInfo[2]+"&WIDTH="+arrayPosicionInfo[3]+"&HEIGHT="+arrayPosicionInfo[4];

		var ajaxReqQuery=AjaxObj();

	    ajaxReqQuery.open("GET", "proxy.do?urlValor="+escape(url), true);

	    ajaxReqQuery.onreadystatechange=function(){
		
	        if (ajaxReqQuery.readyState==4){
		        if (ajaxReqQuery.status == 200){
		            if((ajaxReqQuery.responseText == null)||(trim(ajaxReqQuery.responseText)=="")){
			            if (popupQuery!= null){
					popupQuery.destroy();
			              	popupQuery = null;
				    }
			    }else{
				    
				    if (popupQuery!= null){
				    popupQuery.destroy();
			            popupQuery = null;
			            }
				    if(position == 0){
					    unsetCapaLoad();
				    }
				    document.formgml.resultadoQuery.value = document.formgml.resultadoQuery.value + ajaxReqQuery.responseText;
				    var resLoading = document.formgml.resultadoQuery.value;
				    if((position + 1) < arrayCapas.length) resLoading = resLoading + "<p><img src='img/loading.gif'>Cargando ...</p>";
				    popupQuery = new OpenLayers.Popup.FramedBubble("infoQuery",
					center,
					new OpenLayers.Size(300,200),
					resLoading,
					"",
					true,
					"",
					true);

				    map.addPopup(popupQuery);
				    document.getElementById("infoQuery").style.width = "350px";
				    document.getElementById("infoQuery").style.overflowX="auto";
				    document.getElementById("infoQuery").style.overflowY="hidden";
						
				    if((position + 1) < arrayCapas.length) getResultQueryInfoCartociudad(center,arrayCapasConsulta,arrayPosicionInfo,position + 1);

			    }
			}else{
		        }
	        }else{
	        }
	    }

	    ajaxReqQuery.send(null);
	  }

}
*/
//----------------------------------Fin parcheo JGG --------------------------//
/*
function getResultQueryInfo(target, center, url,position)
{
	
	ajaxReqQuery=AjaxObj();
	
    ajaxReqQuery.open("GET", "proxy.do?urlValor="+escape(url), true); 

    ajaxReqQuery.onreadystatechange=function() 
    { 
        if (ajaxReqQuery.readyState==4)
        { 
	        if (ajaxReqQuery.status == 200) 
	        {
				
	            if((ajaxReqQuery.responseText == null)||(trim(ajaxReqQuery.responseText)==""))
			    {
			    	
		            if (popupQuery!= null)
					{
						popupQuery.destroy();
		              	popupQuery = null;
		             }
			    }
			    else
			    {
			    	
			    	if (popupQuery!= null)
					{
						popupQuery.destroy();
		              	popupQuery = null;
		             }
		         	
			    
			    	resultadoQuery = resultadoQuery + ajaxReqQuery.responseText;
			    	
					if(position == -1)
					{
						popupQuery = new OpenLayers.Popup.FramedBubble("infoQuery", 
	                                         center,
	                                         new OpenLayers.Size(300,200),
	                                         resultadoQuery,
	                                         "",
	                                         true,"",true);
	                   		 map.addPopup(popupQuery); 
	                    	
	                    	 document.getElementById("infoQuery").style.width = "350px";
	                   
	                   var innerHtmlDiv = document.getElementById("infoQuery").innerHTML;
	                   
	                   if((innerHtmlDiv==null)&&(innerHtmlDiv=="null")&&(innerHtmlDiv==""))
	                   {
	                   	popupQuery.destroy();
		              	popupQuery = null;
	                   }
	                   
	               
                   	}
                                  
			    	
			    }
			} 
			else 
			{
				
	               
	        }
        } 
        else
        {
        	
        }
    }
  		            
    ajaxReqQuery.send(null);
}
*/

function selectPk()
{
	
	deleteRows(document.forms.nomenclator.entidad.value);
	document.getElementById('resultadosBusqueda').innerHTML="";
	
	
	
	var tableNomenclator = document.getElementById('tableNomenclator');
 	
	var rowsNomenclator = tableNomenclator.rows;	
		
	for (var ix=0, len=rowsNomenclator.length; ix<len; ix++) 
	{
		row = rowsNomenclator[ix];
		if (row.id) 
		{
			if (row.id == "_nomenclator_")
			{
				tableNomenclator.deleteRow(ix);
				break;
			}
		}
	}
	
	if (document.forms.nomenclator.entidad.value !="")
	{			
	
		var cadenaNom="";
		var ultimaFilaNomenclator = tableNomenclator.rows.length;	
		var filaNomenclator = tableNomenclator.insertRow(ultimaFilaNomenclator);
	  	filaNomenclator.id="_nomenclator_";
  		var celdaValor = filaNomenclator.insertCell(0);
  		
  		if (document.forms.nomenclator.entidad.value == 2)
  		{
  			var tituloNomenclator = "Distrito: ";	
  		}
  		else if(document.forms.nomenclator.entidad.value == 4)
  		{
  			var tituloNomenclator = "C.Postal: ";	
  		}
  		else
  		{
  			var tituloNomenclator = "Nombre: ";	
  		}
  		
  		
			var nombreCMunicipio ="";
			if((GetCookie("municipio")!=null)&&(GetCookie("municipio")!="null"))
			{
				nombreCMunicipio = GetCookie("municipio");
			}
  		
  		celdaValor.innerHTML = tituloNomenclator;
  		
  		var celdaTipo =  filaNomenclator.insertCell(1);
  		
  		if ((document.forms.nomenclator.entidad.value == 1)||(document.forms.nomenclator.entidad.value == 2)||(document.forms.nomenclator.entidad.value == 4))
  		{
			cadenaNom = "<input id='nombreEntidad' name='nombreEntidad' type='text' size='18'>";
				  	
			if (document.forms.nomenclator.entidad.value == 1)
			{
				cadenaNom = cadenaNom + "&nbsp;&nbsp;<span id='labelPk'> Nº</span>&nbsp;&nbsp;<input name='numero' id='numeroPk' type='text' value='' size='2'>	";
			}
			
			celdaTipo.innerHTML = cadenaNom;
			
			if(document.forms.nomenclator.entidad.value == 4)
			{
				 document.getElementById("nombreEntidad").setAttribute('maxLength', 5);
				 document.getElementById("nombreEntidad").setAttribute('size', 10);
				 document.getElementById("nombreEntidad").setAttribute('alt', 'Introduzca un máximo de 5 caracteres');
				 document.getElementById("nombreEntidad").setAttribute('title', 'Introduzca un máximo de 5 caracteres');
				 var inputCp = document.getElementById('nombreEntidad');
				 OpenLayers.Event.observe(inputCp, 'keydown', OpenLayers.Function.bindAsEventListener(isNumberChar,inputCp));
				 OpenLayers.Event.observe(inputCp, 'keyup', OpenLayers.Function.bindAsEventListener(isNumberChar,inputCp));
			}
		
 		}
 		else
 		{
 			if(document.forms.nomenclator.entidad.value == 5)
 			{
 				celdaTipo.innerHTML = "<select style='width:180px;' name='nombreEntidad' id='nombreEntidad'><option value=''>-- Provincia --</option></select>";
 				loadProvincia('nombreEntidad');	
 			}
 			
 			if(document.forms.nomenclator.entidad.value == 6)
 			{
 				celdaTipo.innerHTML = "<select style='width:180px;' name='nombreEntidad' id='nombreEntidad'><option value=''>-- CCAA --</option></select>";
 				loadCCAA('nombreEntidad');	
 			}
 			
 			if(document.forms.nomenclator.entidad.value == 3)
 			{
 				celdaTipo.innerHTML ="<div id='munDiv' alt='Solo municipos disponibles en Cartociudad' title='Solo municipos disponibles en Cartociudad' style='width:180px; height:20px;'></div>";
 			}
 		}
 		
 		if (document.forms.nomenclator.entidad.value == 2)
		{
         
			 var existeFilaRs = rowExists("tableNomenclator","trSCensal",true);
			 if(existeFilaRs)
			 {
			 	ultimaFilaNomenclator = ultimaFilaNomenclator - 1;
			 }
			 	 var fila = tableNomenclator.insertRow(ultimaFilaNomenclator + 1);
		  		 fila.id="trSCensal";
	  			 var celda1 = fila.insertCell(0);
	  			 celda1.colSpan = 2;
	  			 
				 var texto1 = document.createTextNode("Sección Censal: ");
				 var elemento =document.createElement("input");
				 elemento.name="seccionCensal";
				 elemento.id="seccionCensal";
				 elemento.type="text";
				 elemento.size="10";
				
				 celda1.appendChild(texto1);
				 celda1.appendChild(elemento);
				
				 document.getElementById("seccionCensal").setAttribute('maxLength', 3);
				 document.getElementById("nombreEntidad").setAttribute('maxLength', 2);
				 
				 document.getElementById("seccionCensal").setAttribute('alt', 'Introduzca un máximo de 2 caracteres');
				 document.getElementById("nombreEntidad").setAttribute('alt', 'Introduzca un máximo de 2 caracteres');
				 document.getElementById("seccionCensal").setAttribute('title', 'Introduzca un máximo de 2 caracteres');
				 document.getElementById("nombreEntidad").setAttribute('title', 'Introduzca un máximo de 2 caracteres');
				 
				 document.getElementById("seccionCensal").setAttribute('size', 5);
				 document.getElementById("nombreEntidad").setAttribute('size', 5);
				
				var inputDs = document.getElementById('nombreEntidad');
				OpenLayers.Event.observe(inputDs, 'keydown', OpenLayers.Function.bindAsEventListener(isNumberChar,inputDs));
				OpenLayers.Event.observe(inputDs, 'keyup', OpenLayers.Function.bindAsEventListener(isNumberChar,inputDs));
	 
				var inputSSCC = document.getElementById('seccionCensal');
				OpenLayers.Event.observe(inputSSCC, 'keydown', OpenLayers.Function.bindAsEventListener(isNumberChar,inputSSCC));
				OpenLayers.Event.observe(inputSSCC, 'keyup', OpenLayers.Function.bindAsEventListener(isNumberChar,inputSSCC));
	
				 
				
			 
		}
		
		if ((document.forms.nomenclator.entidad.value == 1)||(document.forms.nomenclator.entidad.value == 2)||(document.forms.nomenclator.entidad.value == 4))
		{
			var textoOpcional = "&nbsp;(opcional)";
			if(document.forms.nomenclator.entidad.value == 2)
			{
				textoOpcional = "";
			}
			document.getElementById("areaGeografica").innerHTML = "<table width='100%' border='0' cellspacing='3' cellpadding='3'><td colspan='3' class='tituloB2' id='lista'><li>Area Geográfica"+textoOpcional+"</li></td> </tr><tr><td valign='top'>Municipio:</td> <td><div alt='Solo municipos disponibles en Cartociudad' title='Solo municipos disponibles en Cartociudad' id='munDiv' style='width:180px; height:20px;'></div></td><td><div id='divloadingMun'></div></td></tr><tr>  <td valign='top'>Provincia:</td>   <td colspan='2'><select style='width:180px;' name='provincia' id='provincia' onChange='javascript:loadMunicipio(\"provincia\",\"municipio\",1);'><option value=''>-- Provincia --</option></select></td></tr></table>";
			loadProvincia('provincia');	
  		}	 
  		
  		else if(document.forms.nomenclator.entidad.value == 3)
		{
			document.getElementById("areaGeografica").innerHTML = "<table width='100%' border='0' cellspacing='3' cellpadding='3'><td colspan='2' class='tituloB2' id='lista'><li>Area Geográfica (opcional)</li></td> </tr><tr>  <td>Provincia:</td>   <td><select style='width:180px;' name='provincia' id='provincia' onChange='javascript:loadMunicipio(\"provincia\",\"municipio\",1);'><option value=''>-- Provincia --</option></select></td></tr></table>";
			loadProvincia('provincia');
		}
		else
		{
			document.getElementById("areaGeografica").innerHTML ="&nbsp;";
		}
		
		if((document.forms.nomenclator.entidad.value == 1) ||(document.forms.nomenclator.entidad.value == 3)||(document.forms.nomenclator.entidad.value == 2)  || (document.forms.nomenclator.entidad.value == 4))
		{
			var comboWidthMun = 178;
			if(isIE())comboWidthMun = 180;
		
			elementProvincia =  document.forms.nomenclator.provincia;
			
			if(document.forms.nomenclator.entidad.value == 3)
			{
				dhtmlCmb=new dhtmlXCombo("munDiv","nombreEntidad",comboWidthMun);
			}
			else
			{
				dhtmlCmb=new dhtmlXCombo("munDiv","municipio",comboWidthMun);
			}
			
			dhtmlCmb.clearAll();
			
			if((nombreCMunicipio)&&(nombreCMunicipio!=""))
			{
				dhtmlCmb.addOption([[nombreCMunicipio,nombreCMunicipio]]);
				dhtmlCmb.selectOption(0);

			}
			
			var inputMunicipio = document.getElementById('munDiv');
			OpenLayers.Event.observe(inputMunicipio, 'keyup', OpenLayers.Function.bindAsEventListener(loadMunNomenclator,inputMunicipio));
			
		}

	}
	
}
function getCP(feature)
{
	var nameEntidad="";
	for(var j = 0; j < feature.childNodes.length; j++)
	{
		if (feature.childNodes[j].tagName == "Entidad")
	    {
	    	try
	       	{
	        	for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
		        {
		        	if (feature.childNodes[j].childNodes[k].tagName=="cp")
		        	{
		        		try
		        		{
		        			nameEntidad = feature.childNodes[j].childNodes[k].getElementsByTagName('cp').item(0).firstChild.data;
		        		}
		        		catch(e)
		        		{
		        			nameEntidad="";
		        		}
		        	}
		        }
		     }
		     catch(e)
		     {
		     }
	    }
	}
	return nameEntidad;
}

function getNombre(feature)
{
	var nameEntidad="";
	for(var j = 0; j < feature.childNodes.length; j++)
	{
		if (feature.childNodes[j].tagName == "Entidad")
	    {
	    	try
	       	{
	        	for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
		        {
		        	if (feature.childNodes[j].childNodes[k].tagName=="nombreEntidad")
		        	{
		        		try
		        		{
		        			nameEntidad = feature.childNodes[j].childNodes[k].getElementsByTagName('nombre').item(0).firstChild.data;
		        		}
		        		catch(e)
		        		{
		        			nameEntidad="";
		        		}
		        	}
		        }
		     }
		     catch(e)
		     {
		     }
	    }
	}
	return nameEntidad;
}

function getTipo(feature)
{
	var tipoEntidad="";
	for(var j = 0; j < feature.childNodes.length; j++)
	{
		if (feature.childNodes[j].tagName == "Entidad")
	    {
	    	try
	       	{
	        	for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
		        {
		        	if (feature.childNodes[j].childNodes[k].tagName=="tipoEntidad")
		        	{
		        		try
		        		{
		        			tipoEntidad = feature.childNodes[j].childNodes[k].getElementsByTagName('tipo').item(0).firstChild.data;
		        		}
		        		catch(e)
			        	{
			        		tipoEntidad ="";
			        	}
		        		
		        	}
		        }
		     }
		     catch(e)
		     {
		     }
	    }
	}
	return tipoEntidad;
}

function getBbox(feature)
{
	var bBOX = new Array();
	for(var j = 0; j < feature.childNodes.length; j++)
	{
		if (feature.childNodes[j].tagName == "Entidad")
	    {
	    	try
	       	{
	       		for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
		        {
					if (feature.childNodes[j].childNodes[k].tagName=="posicionEspacial")
			        {
			        	for (a = 0; a <feature.childNodes[j].childNodes[k].childNodes.length; a++)
			        	{
			        		if (feature.childNodes[j].childNodes[k].childNodes[a].tagName == "gml:boundedBy")
			        		{
			        			isAPoint = 0;
			        			for (b = 0; b <feature.childNodes[j].childNodes[k].childNodes[a].childNodes.length; b++)
			        			{
			        				if(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:Envelope")
			        				{
			        					for (c = 0; c <feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes.length; c++)
			        					{
			        						if(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[c].tagName=="gml:pos")
			        						{
			        							bBOX.push(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[c].firstChild.nodeValue);
			        						}
			        					}
			        				}
			        			}
			        		}
			        		else if (feature.childNodes[j].childNodes[k].childNodes[a].tagName == "gml:Point")
			        		{
			        			isAPoint = 1;
			        			for (b = 0; b <feature.childNodes[j].childNodes[k].childNodes[a].childNodes.length; b++)
			        			{
			        				if(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:coordinates")
			        				{
			        					bBOX.push(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].firstChild.nodeValue);
			        				}
			        			}
			        		}
			        	}
			        }
		        }
		    }
		    catch(e)
		    {
		    }
		}
	}
		    return bBOX;
}

function getFeatureProv(feature)
{
	var nameProv="";
	
	try
	{
		for(var j = 0; j < feature.childNodes.length; j++)
		{
			if (feature.childNodes[j].tagName.toUpperCase() == "ENTIDAD")
		    {
		       	for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
			    {
			        	if (feature.childNodes[j].childNodes[k].tagName=="entidadLocal")
			        	{
			        		try
			        		{
			        			nameProv = feature.childNodes[j].childNodes[k].getElementsByTagName('provincia').item(0).firstChild.data;
			        		}
			        		catch(e)
			        		{
			        			nameProv ="";
			        		}
			        	}
			        }
		    }
		}
	 }
	catch(e)
	{
	}
	return nameProv;
}

function getFeatureMun(feature)
{
	var nameMun="";
	
	try
	{
		for(var j = 0; j < feature.childNodes.length; j++)
		{
			if (feature.childNodes[j].tagName.toUpperCase() == "ENTIDAD")
		    {
		    	
		       		
		       		for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
			        {
			        
			        	if (feature.childNodes[j].childNodes[k].tagName=="entidadLocal")
			        	{
			        		try
			        		{
			        			nameMun = feature.childNodes[j].childNodes[k].getElementsByTagName('municipio').item(0).firstChild.data;
			        		}
			        		catch(e)
							{
								var nameMun = "";
							}
			        	}
			        }
		    }
		}
	 }
	catch(e)
	{
	}
	return nameMun;
}

function obtenFeatures(features_gml,i,idFeature,type,styleBorder)
{
	var cadenaResults="";
	var cadenaDistrito = "";
	var bBOX = new Array();
	var isAPoint = 0;
	var cadenaResults ="";// "<tr onMouseOver='this.style.background=\"#F0F0F0\"' onMouseOut='this.style.background=\"#FFFFFF\"'><td valign='top' style='"+styleBorder+";padding:3px;'>";
	
		        		for(var j = 0; j < features_gml[i].childNodes.length; j++)
	        			{
	        				if (features_gml[i].childNodes[j].tagName == "Entidad")
	        				{
	        					try
	        					{
	        						for(var k = 0; k < features_gml[i].childNodes[j].childNodes.length; k++)
		        					{
		        						if (features_gml[i].childNodes[j].childNodes[k].tagName=="nombreEntidad")
		        						{
		        							try
		        							{
		        								var nameEntidad = features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('nombre').item(0).firstChild.data;
		        							}
		        							catch(e)
								        	{
								        		var nameEntidad = "";
								        	}
		        							
		        							var idH = "";
		        							
		        							if(type == 5)
		        							{
		        								idH = nameEntidad;
		        							}
		        							
		        							
		        							if((type == 2)&&(document.forms.nomenclator.seccionCensal.value!=""))
		        							{
		        								type2 = 7
		        							}
		        							else
		        							{
		        								type2 = type;
		        							}
		        							
		        							linkInfo = "<a href='javascript:loadDetail("+ idFeature +",1,"+ type2 +")'>";
		        							
		        							if(type == 2)
		        							{
		        								
		        								
		        								if(document.forms.nomenclator.seccionCensal.value!="")
		        								{
		        									cadenaDistrito = ", Sección Censal " + nameEntidad;	
		        								}
		        								else
		        								{
		        									cadenaResults = cadenaResults + "Distrito Censal " + nameEntidad;
		        								}
		        							}
		        							else
		        							{
		        								
			        							cadenaResults = cadenaResults + nameEntidad;	
			        						}
											
		        						}
		        						
		        						if (features_gml[i].childNodes[j].childNodes[k].tagName=="entidadLocal")
		        						{
		        							var entidadLocal="";
		        							
		        							if((type == 3)||(type == 4)||(type ==2))
		        							{
		        								try
		        								{
			        								entidadLocal =" (" + features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('provincia').item(0).firstChild.data+")";
			        								
			        								if (type == 2)
			        								{
			        									entidadLocal = ", " + features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('municipio').item(0).firstChild.data + entidadLocal;
			        								}
			        							}
			        							catch(e)
			        							{
			        								//alert(e);
			        								entidadLocal = "";
			        							}
		        								
		        							}
		        							
		        							if((type != 5) && (type != 6))
		        							{
		        								if((type == 2)&&(document.forms.nomenclator.seccionCensal.value!=""))
		        								{
		        									cadenaDistrito = cadenaDistrito + entidadLocal;
		        								}
		        								else
		        								{
		        									cadenaResults = cadenaResults + entidadLocal;//" (" + entidadLocal +")";
		        								}
		        							}
		        						}
		        						if (features_gml[i].childNodes[j].childNodes[k].tagName=="atributoEntidad")
		        						{
		        							
		        							if(type == 2)
		        							{
		        								if(document.forms.nomenclator.seccionCensal.value!="")
		        								{
		        									try
			        								{
				        								cadenaResults = cadenaResults + "Distrito Censal " + features_gml[i].childNodes[j].childNodes[k].getElementsByTagName('valorAtributo').item(0).firstChild.data + cadenaDistrito;
				        							}
				        							catch(e)
				        							{
				        								
				        							}
		        								}
		        							}
		        						}
		        						
		        						if (features_gml[i].childNodes[j].childNodes[k].tagName=="posicionEspacial")
		        						{
		        							for (a = 0; a <features_gml[i].childNodes[j].childNodes[k].childNodes.length; a++)
		        							{
		        								if (features_gml[i].childNodes[j].childNodes[k].childNodes[a].tagName == "gml:boundedBy")
		        								{
		        									isAPoint = 0;
		        									for (b = 0; b <features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes.length; b++)
		        									{
		        										if(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:Envelope")
		        										{
		        											for (c = 0; c <features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes.length; c++)
		        											{
		        												if(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[c].tagName=="gml:pos")
		        												{
		        													bBOX.push(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[c].firstChild.nodeValue);
		        												}
		        												
		        											}
		        										}
		        									}
		        								}
		        								else if (features_gml[i].childNodes[j].childNodes[k].childNodes[a].tagName == "gml:Point")
		        								{
		        									isAPoint = 1;
		        									
		        									for (b = 0; b <features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes.length; b++)
		        									{
		        										if(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:coordinates")
		        										{
		        											bBOX.push(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].firstChild.nodeValue);
		        										}
		        									}
		        								}
		        								else if (features_gml[i].childNodes[j].childNodes[k].childNodes[a].tagName == "gml:Polygon")
		        								{
		        									isAPoint = 0;
		        									
		        									for (b = 0; b <features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes.length; b++)
		        									{
		        										if(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:outerBoundaryIs")
		        										{
		        											for (b1 = 0; b1 <features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes.length; b1++)
		        											{
		        												if(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[b1].tagName=="gml:LinearRing")
		        												{
		        													for (b2 = 0; b2 <features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[b1].childNodes.length; b2++)
		        													{
		        														if(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[b1].childNodes[b2].tagName=="gml:coordinates")
		        														{
		        															arrayPolygon.push(features_gml[i].childNodes[j].childNodes[k].childNodes[a].childNodes[b].childNodes[b1].childNodes[b2].firstChild.nodeValue);
		        														}
		        													}
		        												}
		        											}
		        										}
		        									}
		        								}
		        							}
		        						}
		        					}//for
		        					
		        					//Obtengo los valores de las x e y:
		        					
		        					var coordC = new Array(); 
		        					for(z=0; z < bBOX.length; z++)
		        					{
		        						if (isAPoint == 1)
		        						{
		        						//	var cBOX = bBOX[z].split(",");
		        						var cBOX = bBOX[z].split(" ");
		        						
		        						}
		        						else
		        						{
		        							var cBOX = bBOX[z].split(" ");
		        						}
		        						
		        						for(y = 0; y < cBOX.length; y++)
		        						{
		        							coordC.push(cBOX[y]);
		        						}
		        							
		        					}
		        					var enlaceInicial = "";
		        					var enlaceFinal = "";
									var isPolygon = "";
									
									if (arrayPolygon.length != 0)
		        					{
		        						isPolygon = "&idPol="+arrayPolygon.length;
		        					}
									if (coordC.length == 4)
		        					{
		        						if(type == 5)
		        						{
		        							linkSetIni = "<a id="+ idH +" href='javascript:setToExtent(new OpenLayers.Bounds("+coordC[0]+ "," + coordC[1] + "," + coordC[2] + "," + coordC[3] + "))'>";//,"+arrayPolygon.length +",1,0)'>";
		        							getCCAA(idH);
		        						}
		        						else
		        						{
		        							linkSetIni = "<a href='javascript:setToExtent(new OpenLayers.Bounds("+coordC[0]+ "," + coordC[1] + "," + coordC[2] + "," + coordC[3] + "))'>";//,"+arrayPolygon.length +",1,0)'>";
		        						}
		        						linkEnd = "</a>";
		        					}
		        					else if(coordC.length == 2)
		        					{
		        						linkSetIni = "<a href='javascript:marca("+coordC[0]+","+coordC[1]+",false,-1)'>";
		        						linkEnd = "</a>";
		        					}
		        					else
		        					{
		        						linkSetIni = "";
		        						linkEnd = "";
									}
										
										cadenaResults ="<tr onMouseOver='this.style.background=\"#F0F0F0\"' onMouseOut='this.style.background=\"#FFFFFF\"'><td valign='top' style='"+styleBorder+";padding:3px;'>" + linkSetIni + cadenaResults + linkEnd;
										
										cadenaResults = cadenaResults + "</td><td width=5% style='"+styleBorder+";padding:3px;'>"+linkInfo+"<img src='img/info.gif' alt='Situar en el mapa' width='18' height='18' border='0'>"+linkEnd+"</td>";
										
										return cadenaResults;
		        						
		        				}
	        					catch(e)
	        					{
	        						alert(e);
	        					}
	        				}
	        			
			        	}
}






function setToExtent(coords)//,idPol,idLayer,loc)
{
	markers2.clearMarkers();
	map.zoomToExtent(coords);
	
	//if((document.forms.nomenclator.entidad.value==4)||(document.forms.nomenclator.entidad.value==2)||(document.forms.nomenclator.entidad.value==3)||(document.forms.nomenclator.entidad.value==5)||(document.forms.nomenclator.entidad.value==6))
	if(document.forms.nomenclator.entidad.value!=1)
	{
		 map.zoomOut(); 
	}
}

var isRoute;
var detailRoute;
var isCenterNow;
var updateMarker;

function drawArea(x,y,d,td)
{
	ocultaCartel();
	var postParams="";
	
	if(td == "Lineal")
	{
		postParams = "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?><Execute service='WPS' version='0.4.0' store='false' status='false' xmlns='http://www.opengeospatial.net/wps' xmlns:pak='http://www.opengis.net/examples/packet' xmlns:ows='http://www.opengeospatial.net/ows' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.opengeospatial.net/wps ..\wpsExecute.xsd' xmlns:om='http://www.opengis.net/om' xmlns:gml='http://www.opengis.net/gml'>	<ows:Identifier>com.ign.process.geometry.CircleGenerator</ows:Identifier>	<DataInputs><Input>	<ows:Identifier>data</ows:Identifier><ows:Title>Punto</ows:Title><ComplexValue>			<pak:GMLPacket>	<pak:packetMember><pak:StaticFeature><gml:pointProperty><gml:Point>									<gml:coord><gml:X>"+x+"</gml:X><gml:Y>"+y+"</gml:Y></gml:coord></gml:Point></gml:pointProperty>					</pak:StaticFeature></pak:packetMember></pak:GMLPacket></ComplexValue></Input><Input><ows:Identifier>radio</ows:Identifier><ows:Title>Radio</ows:Title><LiteralValue dataType='xs:double'>"+d+"</LiteralValue></Input></DataInputs>	<OutputDefinitions>	<Output><ows:Identifier>result</ows:Identifier>	<ows:Title>LineString</ows:Title><ows:Abstract>GML describiendo una feature de Linestring.</ows:Abstract><ComplexOutput defaultFormat='text/XML' defaultSchema='http://geoserver.itc.nl:8080/wps/schemas/gml/2.1.2/gmlpacket.xsd'><SupportedComplexData><Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema></SupportedComplexData></ComplexOutput></Output></OutputDefinitions></Execute>";
		
	}
	else
	{
		postParams = "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?><Execute service='WPS' version='0.4.0' store='false' status='false' xmlns='http://www.opengeospatial.net/wps' xmlns:pak='http://www.opengis.net/examples/packet' xmlns:ows='http://www.opengeospatial.net/ows' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.opengeospatial.net/wps ..\wpsExecute.xsd' xmlns:om='http://www.opengis.net/om' xmlns:gml='http://www.opengis.net/gml'><ows:Identifier>com.ign.process.geometry.ManhattanGenerator</ows:Identifier><DataInputs><Input><ows:Identifier>data</ows:Identifier><ows:Title>Punto</ows:Title><ComplexValue><pak:GMLPacket><pak:packetMember>	<pak:StaticFeature>	<gml:pointProperty>	<gml:Point>	<gml:coord>	<gml:X>"+x+"</gml:X><gml:Y>"+y+"</gml:Y></gml:coord></gml:Point></gml:pointProperty></pak:StaticFeature></pak:packetMember>	</pak:GMLPacket></ComplexValue></Input>	<Input>	<ows:Identifier>radio</ows:Identifier><ows:Title>Radio</ows:Title><LiteralValue dataType='xs:double'>"+d+"</LiteralValue></Input></DataInputs><OutputDefinitions><Output><ows:Identifier>result</ows:Identifier>	<ows:Title>LineString</ows:Title><ows:Abstract>GML describiendo una feature de Linestring.</ows:Abstract><ComplexOutput defaultFormat='text/XML' defaultSchema='http://geoserver.itc.nl:8080/wps/schemas/gml/2.1.2/gmlpacket.xsd'><SupportedComplexData><Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema></SupportedComplexData></ComplexOutput></Output><Output><ows:Identifier>status</ows:Identifier><ows:Title>Estado</ows:Title><ows:Abstract>estado del proceso al finalizar</ows:Abstract><LiteralOutput><ows:DataType ows:reference='xs:string'></ows:DataType>	</LiteralOutput></Output></OutputDefinitions></Execute>";
	}
	
	var urlPath = urlWps ;
	postParams="urlValor="+ urlWps+"&request="+escape(postParams);
	muestraCartel(x,y,"Calculando el área de influencia");
	
	doWPSProfileQuery(urlPath, postParams,0,false,true,false);

	
}

var wpsProfileReq;

function doWPSProfileQuery(urlPath, postParams,ruta,detail,center,update) {

if (! update) updatemarker=true; else updatemarker=update;


if((wpsProfileReq) && (ruta == 1))
{
	timeoutId2= setTimeout( function() { if ( callInProgress(wpsProfileReq) ) {wpsProfileReq.abort(); return false;} }); 
}
if(wpsProfileReq)
{
//aqui es donde se cuelga:
//	wpsProfileReq.abort();
	
}

			if (popupQuery!= null)
			{
				popupQuery.destroy();
		        popupQuery = null;
		    }

 			isRoute = ruta;
 					 
			detailRoute = detail;
			isCenterNow = center;
			
            if (window.XMLHttpRequest) {

                        wpsProfileReq = new XMLHttpRequest();

                        wpsProfileReq.onreadystatechange = handlerWhenWPSProfileLoaded;

                        //wpsProfileReq.open("POST","proxy.do?urlValor="+urlPath, true);
                        wpsProfileReq.open("POST","proxy.do", true);

                        wpsProfileReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

                        wpsProfileReq.send(postParams);
                        

                        // branch for IE/Windows ActiveX version

            } else if (window.ActiveXObject) {

                        wpsProfileReq = new ActiveXObject("Microsoft.XMLHTTP");

                        if (wpsProfileReq) {

                                wpsProfileReq.onreadystatechange = handlerWhenWPSProfileLoaded;
								wpsProfileReq.open("POST","proxy.do", true);

                                   wpsProfileReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

                                   wpsProfileReq.send(postParams);

                        }
            }
}

 

function handlerWhenWPSProfileLoaded() 
{
	
	
	/*try 
	{*/
		
		var styleBorder_2="border-top:1px dashed #999999;";
		var styleBorder_1="border-bottom:1px dashed #999999;";
			
		if (wpsProfileReq.readyState==4) 
		{
			
			profileURL = wpsProfileReq.responseXML; 

			if (!profileURL || wpsProfileReq.fileType!="XML") {
		    	profileURL = wpsProfileReq.responseText;
		    }
        	if (typeof profileURL == "string") { 
           		profileURL = OpenLayers.parseXMLString(profileURL);
        	}    
			
			        	
        	var coordGML="";
	        var separator;
	        var pointList = [];
	        var lineFeatureCount = 0;
	        var pointFeatureCount = 0;
	        var pointListUnique = new Array();
	        var pointListRoute = new Array();
	        
	        var featuresWPS = getElementsByTagNameNS(profileURL, "http://www.opengis.net/gml", "gml", "lineStringProperty");
			
			if(isRoute == 0)
			{
		        for (var z = 0; z < featuresWPS.length; z++) 
		        {
		        	for(var j = 0; j < featuresWPS[z].childNodes.length; j++)
		        	{
		        		if (featuresWPS[z].childNodes[j].tagName == "gml:LineString")
		        		{
		        			pointListUnique.push(new Array());
							pointListRoute.push(new Array());
							
		        			for(var b = 0; b < featuresWPS[z].childNodes[j].childNodes.length; b++)
		        			{
		        				if (featuresWPS[z].childNodes[j].childNodes[b].tagName == "gml:coord")
		        				{
		        					var point = new OpenLayers.Geometry.Point(featuresWPS[z].childNodes[j].childNodes[b].childNodes[0].firstChild.nodeValue, featuresWPS[z].childNodes[j].childNodes[b].childNodes[1].firstChild.nodeValue);//la x e y
		        					pointList.push(point);
		        					
		        					pointListRoute[lineFeatureCount].push(point);
		        					
		        					pointFeatureCount = pointFeatureCount + 1;
		        							
		        					if (b == featuresWPS[z].childNodes[j].childNodes.length - 1)
		        					{
		        						separator = "";
		        					}
		        					else
		        					{
		        						separator = " ";
		        					}
		        					coordGML = coordGML + featuresWPS[z].childNodes[j].childNodes[b].childNodes[0].firstChild.nodeValue + "," + featuresWPS[z].childNodes[j].childNodes[b].childNodes[1].firstChild.nodeValue + separator;
								}
		        			}
		        			pointListUnique[lineFeatureCount][0] = pointListRoute;
					    	lineFeatureCount = lineFeatureCount + 1;
		        		}
		        	}
		        }
		    }
        	
			if (isRoute == 1)
	        {
	        	var lyrV = layerVector("RUTA");
	        	eliminarRuta(false,false);
	        	markers2.clearMarkers();
	        	var root = null;
	        	var featuresWPS = getElementsByTagNameNS(profileURL, "http://www.opengis.net/gml", "gml", "lineStringProperty");
				
				for (var z = 0; z < featuresWPS.length; z++) 
		        {
		        	for(var j = 0; j < featuresWPS[z].childNodes.length; j++)
		        	{
		        		if (featuresWPS[z].childNodes[j].tagName == "gml:LineString")
		        		{
		        			root = featuresWPS[z].childNodes[j];
		        			
		        			for(num = 0; num < root.childNodes.length; num ++)
				        	{

								var estructuraGml = '<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs"><gml:featureMember xmlns:gml="http://www.opengis.net/gml"><feature:features xmlns:feature="http://mapserver.gis.umn.edu/mapserver" fid="1"><feature:geometry><gml:LineString><gml:coordinates decimal="." cs=", " ts=" ">';
								var sibl = "";
								for (var iNode = 0; iNode < root.childNodes[num].childNodes.length; iNode++) 
								{
									
									sibl = root.childNodes[num].childNodes[iNode].nodeValue;
									
									estructuraGml = estructuraGml + sibl;
					            }
					            estructuraGml = estructuraGml + '</gml:coordinates></gml:LineString></feature:geometry><feature:name>undefined</feature:name></feature:features></gml:featureMember></wfs:FeatureCollection>';
					        	
					        	var fileGml = new OpenLayers.Format.GML();
					        	var features = fileGml.read(estructuraGml);
				        		
				        		if(features) 
				            	{
				                	if(features.constructor != Array) 
				                	{
				                    	features = [features];
					                }
				                	for(var i=0; i<features.length; ++i) 
				                	{
				                    	if (!bounds) 
				                    	{
				                        	bounds = features[i].geometry.getBounds();
					                    } 
					                    else 
					                    {
					                    	bounds.extend(features[i].geometry.getBounds());
					                    	
				        	            }
				               	 	}
				               	 	
				               	 	
	
				               	 	map.layers[lyrV].addFeatures(features);
				               	 	
				                }
				        		
					        }
		        		}
		        	}
		        }
				
	        	
		        
		      
		        var root = profileURL.getElementsByTagName('routeData');
		       	
		       	var sibl = "";     	
	        	for(num = 0; num < root.length; num ++)
	        	{
	        		
				
	        		for (var iNode = 0; iNode < root[num].childNodes.length; iNode++) 
					{
		            	var node = root[num].childNodes.item(iNode);
		            	if(node.nodeName == "nombre")
		            	{
		                	for (i = 0; i < node.childNodes.length; i++) 
		                	{
		                  		sibl = sibl + node.childNodes.item(i).data + ";";
		                 	}
		                 }
		                 
		                if(node.nodeName == "coste")
		            	{
		                	for (i = 0; i < node.childNodes.length; i++) 
		                	{
		                  		sibl = sibl + node.childNodes.item(i).data + "|";
		                 	}
		                 }
		                  
		               
		            }
		           
		        }
		       
		      
		      	
			    var totalCoste=0;
		        var sumaCoste=0;
		        var contadorDestinos = 0;
		        var arrayNombre = new Array();
		        var arrayCoste = new Array();
		        arrayWayPoint = new Array();
		        
		        
		        var idArrayWayPoint = 0;
		        
	            var listaVias = profileURL.getElementsByTagName('wayPointList');
        
				for (var z = 0; z < listaVias.length; z++) 
		        {
		        	for(var j = 0; j < listaVias[z].childNodes.length; j++)
				    {
				    	if(listaVias[z].childNodes[j].nodeName == "wayPoint")
		        		{
		        			arrayWayPoint.push(new Array(4));
		        			for(var wp = 0; wp < listaVias[z].childNodes[j].childNodes.length; wp++)
		        			{
		        				var nodeValueLista = "";
		        				if(listaVias[z].childNodes[j].childNodes[wp].childNodes.length > 0)//.nodeValue!=null)&&(listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue!="null")&&(listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue!=""))
		        				{
		        					nodeValueLista = listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue;
		        				}
		        				if(listaVias[z].childNodes[j].childNodes[wp].nodeName == "gml:Point")
		        				{
		        					arrayWayPoint[idArrayWayPoint][0] ="<gml:Point xmlns:gml='www.opengeospatial.net/gml'><gml:coord><gml:X>"+listaVias[z].childNodes[j].childNodes[wp].childNodes[0].childNodes[0].firstChild.nodeValue+"</gml:X><gml:Y>"+listaVias[z].childNodes[j].childNodes[wp].childNodes[0].childNodes[1].firstChild.nodeValue+"</gml:Y></gml:coord></gml:Point>";
		        				}
		        				if(listaVias[z].childNodes[j].childNodes[wp].nodeName == "idTramo")
		        				{
									arrayWayPoint[idArrayWayPoint][1] ="<idTramo>"+nodeValueLista+"</idTramo>";
		        				}
		        				if(listaVias[z].childNodes[j].childNodes[wp].nodeName == "description")
		        				{
		        					arrayWayPoint[idArrayWayPoint][2] ="<description>"+nodeValueLista+"</description>";
		        				}
		        				if(listaVias[z].childNodes[j].childNodes[wp].nodeName == "postalAddress")
		        				{
		        					var postalA = "<postalAddress>";
		        					
		        					for(var postalAddress = 0; postalAddress < listaVias[z].childNodes[j].childNodes[wp].childNodes.length;postalAddress++)
		        					{
		        						if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].nodeName == "street")
		        						{
		        							postalA = postalA + "<street>";
		        							for(var pA2 = 0; pA2 < listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes.length; pA2++)
		        							{
		        								var nodeValuePA = "";
		        								if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes[pA2].nodeName == "type")
		        								{
		        									if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes[pA2].childNodes.length > 0)//.nodeValue!=null)&&(listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue!="null")&&(listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue!=""))
							        				{
							        					nodeValuePA = listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes[pA2].firstChild.nodeValue;
							        				}
							        				
													postalA = postalA +"<type>" + nodeValuePA+"</type>";
		        								}
		        								if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes[pA2].nodeName == "name")
		        								{
		        									if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes[pA2].childNodes.length > 0)//.nodeValue!=null)&&(listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue!="null")&&(listaVias[z].childNodes[j].childNodes[wp].firstChild.nodeValue!=""))
							        				{
							        					nodeValuePA = listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes[pA2].firstChild.nodeValue;
							        				}
		        									postalA = postalA +"<name>" + nodeValuePA+"</name>";
		        								}
		        							}
		        							postalA = postalA + "</street>";
		        						}
		        						else if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].nodeName == "number")
		        						{
		        							var nodePA2 = "";
		        							if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes.length > 0)
		        							{
		        								nodePA2 = listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].firstChild.nodeValue;
		        							}
				        					postalA = postalA + "<number>" +nodePA2 +"</number>";
		        						}
		        						else if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].nodeName == "municipality")
		        						{
		        							var nodePA3 = "";
		        							if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes.length > 0)
		        							{
		        								nodePA3 =listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].firstChild.nodeValue;
		        							}
		        							postalA = postalA + "<municipality>" + nodePA3+"</municipality>";
		        						}
		        						else if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].nodeName == "idPortal")
		        						{
		        							var nodePA4 = "";
		        							if(listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].childNodes.length > 0)
		        							{
		        								nodePA4 =listaVias[z].childNodes[j].childNodes[wp].childNodes[postalAddress].firstChild.nodeValue;
		        							}
		        							postalA = postalA + "<idPortal>" + nodePA4+"</idPortal>";
		        						}
		        						else
		        						{
		        						}
		        					}
		        					postalA = postalA + "</postalAddress>";
		        					arrayWayPoint[idArrayWayPoint][3] = postalA;
		        				}
		        			}
		        			
		        			if(arrayWayPoint[idArrayWayPoint][0]==undefined)
		        			{
		        				alert("entra");
			        		}
					    	
		        			idArrayWayPoint = idArrayWayPoint + 1;
					    
		        		}
		        		
				    	
				    	if(listaVias[z].childNodes[j].nodeName == "wayPointSelected")
		        		{
		        			if(arrayRuta.length > contadorDestinos + 1)
		        			{
		        				arrayNombre.push(new Array(1));
		        				arrayNombre[contadorDestinos]=contadorDestinos;//arrayRuta[contadorDestinos][1];
		        			}
		        			arrayCoste = new Array();
		        			contadorDestinos = contadorDestinos + 1;

				    	}
				    
				    	if(listaVias[z].childNodes[j].nodeName == "routeData")
		        		{
		        			
		        			if(listaVias[z].childNodes[j].childNodes.length == 2)
		        			{
		        				var viaRoute = listaVias[z].childNodes[j].childNodes[0].childNodes[0].nodeValue;
		        				var costeRoute = listaVias[z].childNodes[j].childNodes[1].childNodes[0].nodeValue;
		        				if(viaRoute =="")
		        				{
		        					viaRoute = null;
		        				}
		        				arrayCoste.push(new Array(viaRoute,costeRoute));
		        				
		        				var idE = arrayNombre.length - 1;
		        				if(idE >= 0)
		        				{
		        					arrayNombre[idE] = arrayCoste;
		        				}

		        			}
		        			
				        }
				    }
				    
				 	
		        }
		  		
		  	
		  		var totalCoste=0;
		  		var sumaCoste=0;
		  		var totalPuntosIntermedios = 0;
		  		var idABC = 0;
		  		var esOrden = false;
		  		for(var elArr = 0; elArr < arrayNombre.length; elArr++)
		  		{
		  			
		  			var repe = 0;
					var cadenaRep = "";
					var nombrevia = "";
					var coste = 0;
					esOrden = false;
					
					if(inArray(arrayPuntoIntermedio,elArr))
					{
							idABC = arrayABC.length - 1;
							totalPuntosIntermedios = totalPuntosIntermedios + 1;
							esOrden = true;
					}
					
					
					if(totalPuntosIntermedios == 0)
					{
						idABC = elArr;
					}
					else
					{
						if(!esOrden)
						{
							idABC = elArr - totalPuntosIntermedios;
						}
					}
					
					
					document.forms.ruta.descRuta.value  = document.forms.ruta.descRuta.value + "<tr bgcolor='#EFEFEF'><td style='"+styleBorder_1 + "' valign='top' width='25px'><a href='#' onClick='javascript:centrarPunto("+elArr+")'><img border='0' src='img/"+arrayABC[idABC]+".png'/></a>&nbsp;</td><td style='"+styleBorder_1 + "' valign='middle'><strong>" +arrayRuta[elArr][1]+"</strong></td><td width='10px' valign='top' style='"+styleBorder_1 + "' name='none'><a href='#' onclick='javascript:unSetMarkerRoute("+elArr+",1)'><img src='img/papelera.gif' border='0' id='close_"+elArr+"' onMouseOver='javascript:changeImage(\"close_"+elArr+"\",1);' onMouseOut='javascript:changeImage(\"close_"+elArr+"\", 0);'></a></td></tr>";
					document.forms.formgml.detailRoute.value = document.forms.formgml.detailRoute.value +"<tr bgcolor='#EFEFEF'><td style='"+styleBorder_1 + "' valign='top' width='25px'><img border='0' src='img/"+arrayABC[idABC]+".png'/>&nbsp;</td><td style='"+styleBorder_1 + "' valign='middle'><strong>" +arrayRuta[elArr][1]+"</strong></td></tr>";
		  			for(var elm = 0; elm < arrayNombre[elArr].length; elm++)
		  			{
		  				
		  				nombrevia = arrayNombre[elArr][elm][1];
		  				coste = arrayNombre[elArr][elm][1];
		  				
		  				totalCoste = totalCoste + parseFloat(coste);
		  				
		  				if(elm > 0)
						{
							if(arrayNombre[elArr][elm - 1][0] == arrayNombre[elArr][elm][0])
							{
								cadenaRep = cadenaRep + ","  + (elm);
							}
							else
							{
								cadenaRep = cadenaRep +  "|" + (elm);
							}
						}
						else
						{
								cadenaRep = cadenaRep + (elm);
						}
		  				
		  			}
		  			
		  			var cadenaTotal = cadenaRep.split("|"); 
		  			
					for(ab = 0; ab < cadenaTotal.length; ab++)
					{
						sumaCoste = 0;
						
						valoresRepetidos = cadenaTotal[ab].split(",");
						
						if(valoresRepetidos.length == 1)
						{
							document.forms.ruta.descRuta.value  = document.forms.ruta.descRuta.value + "<tr><td colspan='3' style='"+styleBorder_1+"'>Continúe por <strong><i>"+arrayNombre[elArr][valoresRepetidos[0]][0]+"</i></strong> durante "+Math.round(arrayNombre[elArr][valoresRepetidos[0]][1])+" metros</td></tr>";
							document.forms.formgml.detailRoute.value = document.forms.formgml.detailRoute.value +"<tr><td colspan='2' style='"+styleBorder_1+"'>Continúe por <strong><i>"+arrayNombre[elArr][valoresRepetidos[0]][0]+"</i></strong> durante "+Math.round(arrayNombre[elArr][valoresRepetidos[0]][1])+" metros</td></tr>";
						}
						else
						{
							for(ac = 0; ac < valoresRepetidos.length; ac++)
							{
								sumaCoste = sumaCoste + parseFloat(arrayNombre[elArr][valoresRepetidos[ac]][1]);
								if (ac ==  valoresRepetidos.length -1)
						        {
						        	document.forms.ruta.descRuta.value  = document.forms.ruta.descRuta.value +  "<tr><td colspan='3'  style='"+styleBorder_1 +"'>Continúe por <strong><i>"+arrayNombre[elArr][valoresRepetidos[0]][0]+"</i></strong> durante "+Math.round(sumaCoste)+" metros</td></tr>";
						        	document.forms.formgml.detailRoute.value = document.forms.formgml.detailRoute.value +"<tr><td colspan='2' style='"+styleBorder_1 +"'>Continúe por <strong><i>"+arrayNombre[elArr][valoresRepetidos[0]][0]+"</i></strong> durante "+Math.round(sumaCoste)+" metros</td></tr>";
						        }
						    }
						}
					}
		  		}
				//el último destino		
				var lastVal = arrayRuta.length-1;  		
		        document.forms.ruta.descRuta.value  = document.forms.ruta.descRuta.value + "<tr bgcolor='#EFEFEF'><td style='"+styleBorder_1 + "' valign='top' width='25px'><a href='#' onClick='javascript:centrarPunto("+lastVal+")'><img border='0' src='img/"+arrayABC[lastVal-totalPuntosIntermedios]+".png'/></a>&nbsp;</td><td    style='"+styleBorder_1 + "' valign='middle'><strong>" +arrayRuta[lastVal][1]+"</strong></td><td width='10px' valign='top' style='"+styleBorder_1 + "' name='none'><a id='olPopupCloseButton' class='close' href='#' onclick='javascript:unSetMarkerRoute("+lastVal+",1)'><img src='img/papelera.gif' border='0' id='close_"+lastVal+"' onMouseOver='javascript:changeImage(\"close_"+lastVal+"\",1);' onMouseOut='javascript:changeImage(\"close_"+lastVal+"\", 0);'></a></td></tr>";
		        document.forms.formgml.detailRoute.value = document.forms.formgml.detailRoute.value + "<tr bgcolor='#EFEFEF'><td style='"+styleBorder_1 + "' valign='top' width='25px'><img border='0' src='img/"+arrayABC[lastVal-totalPuntosIntermedios]+".png'/>&nbsp;</td><td    style='"+styleBorder_1 + "' valign='middle'><strong>" +arrayRuta[lastVal][1]+"</strong></td></tr>";
		        document.forms.ruta.descRuta.value  = document.forms.ruta.descRuta.value + "<tr bgcolor='#CCD8EA'><td colspan='3'>Distancia total a recorrer: "+Math.round(totalCoste) +" metros</td></tr>";
		        document.forms.formgml.detailRoute.value = document.forms.formgml.detailRoute.value + "<tr bgcolor='#CCD8EA'><td colspan='2'>Distancia total a recorrer: "+Math.round(totalCoste) +" metros</td></tr>";
			    setInterfazRuta(1);
			    
	        	
			   
		    }
	        
	        else if(isRoute == 0)
	        {
	        	ocultaCartel();
	        	var lyrV = layerVector("Polygon");
	        	if(pointList.length > 0)
	        	{
	        		pointList.push(pointList[0]);
		            var linearRing = new OpenLayers.Geometry.LinearRing(pointList);
	           	
		            var polygonFeature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Polygon([linearRing]));
		    	    var bounds = polygonFeature.geometry.getBounds();
		    	    
		    	    map.layers[lyrV].addFeatures([polygonFeature]);
		                
		            if (map.layers[lyrV].features.length > 0)
		            {
		            	document.getElementById("deleteArea").style.visibility = "visible";
		            }
		            else
		            {
		                document.getElementById("deleteArea").style.visibility = "hidden";
		            }
		            
		            var ctrl = document.forms.zonas.mark;
					var idPB = 0;
					
					for(var elm = 0; elm < document.forms.zonas.elements.length; elm++)
					{
						if(document.forms.zonas.elements[elm].type == "checkbox")
						{
							if(document.forms.zonas.elements[elm].checked)
							{
								idPB = document.forms.zonas.elements[elm].value;
							}
						}
					}
					var valor_origen = arrayRuta[0][0];		
					var pointClick = valor_origen.split(",");
					pointClick = new OpenLayers.LonLat(pointClick[0],pointClick[1]);
					
					var distancia = document.forms.zonas.distancia.value;
					var indice =document.forms.zonas.tipoDistancia.selectedIndex;
					var tipoDistancia = document.forms.zonas.tipoDistancia.options[indice].text;
					
					map.zoomToExtent(bounds);
			    	document.formgml.lastExtent.value = "zoomToExtent|"+bounds.left+"|"+bounds.bottom+"|"+bounds.right+"|"+bounds.top;
				    map.zoomTo(map.getZoom()-1);
				    
				    if(document.forms.formgml.setFromArea.value==0)
				    {
						for(i=0;i<ctrl.length;i++)
						{
					        if(ctrl[i].checked) 
					        {
					        	if(ctrl[i].value=="opc1")
					        	{
									var setUrl = setUrlPoi(false,idPB,distancia,tipoDistancia,pointClick.lon, pointClick.lat);
									if(setUrl == false)
									{
										alert("No se puede realizar la búsqueda.");
									}
									
								}
					        	if(ctrl[i].value=="opc2")
					        	{
					        		var setUrl = setUrlPoi(true,idPB,distancia,tipoDistancia,pointClick.lon, pointClick.lat);
	
									if(setUrl == false)
									{
										alert("No se puede realizar la búsqueda.");
									}
					        	}
					        }
					    }
					}
					
					document.forms.formgml.setFromArea.value=0;
		       }
		       else
		       {
		       		isCenterNow = false;
		       		alert("No se puede dibujar el área de influencia");
		       }
	        }
	        
	        
	        else if (isRoute == 7)
	        {
	        	//eliminada la opcion
	        }
	        else if(isRoute == 8)
	        {
	        	ocultaCartel();
	        	
				markersPOI.clearMarkers();
				arrayPOIS=new Array();
				
	        	var sep = "";
	        	var intro = "";
	        	var cadena = "";
	        	var featuresWPS = getElementsByTagNameNS(profileURL, "http://www.opengis.net/gml", "gml", "featureMember");
				var numero = 0;
	        	if (featuresWPS.length != 0)
	            {
	           		for(var jj = 0; jj < featuresWPS.length; jj++)
					{
						for(var xx = 0; xx < featuresWPS[jj].childNodes.length; xx++)
						{
							var nombrePoi = "";
							var tipoPoi = "";
							
							if (featuresWPS[jj].childNodes[xx].tagName == "mne:Entidad")
							{	
							
								for(var wh = 0; wh < featuresWPS[jj].childNodes[xx].childNodes.length; wh ++)
				            	{
				            			
				            		if(featuresWPS[jj].childNodes[xx].childNodes[wh].nodeName=="mne:nombreEntidad")
					            	{
					            		if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes.length != 0)
					            		{
					            			if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].nodeName =="mne:NombreEntidad")
					            			{
					            				for(var xxx = 0; xxx < featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes.length; xxx++)
					            				{
					            					if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].nodeName == "mne:nombre")
					            					{
					            						nombrePoi = featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].firstChild.nodeValue;
					            						cadena = cadena + "<tr id='"+numero+"_id_area_tr' height='100%' onMouseOver='this.style.background=\"#F0F0F0\"' onMouseOut='this.style.background=\"#FFFFFF\"'><td height='100%' valign='top' style='"+styleBorder_1+";padding:3px;'><a id='"+numero+"_id_area' href='#' onClick='javascript:centrarPOI("+numero+")'>"+ nombrePoi;
					            						
					            					}
					            				}
					            			}
					            		}
					            		
					            	}
					            	else if(featuresWPS[jj].childNodes[xx].childNodes[wh].nodeName=="mne:tipoEntidad")
					            	{
					            		if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes.length != 0)
					            		{
					            			if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].nodeName =="mne:TipoEntidad")
					            			{
					            				for(var xxx = 0; xxx < featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes.length; xxx++)
					            				{
					            					if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].nodeName == "mne:tipo")
					            					{
					            						if(tipoPoi != "")
					            						{
					            							sep = ", ";
					            							intro = "";
					            						}
					            						else
					            						{
					            							intro = "<br>";
					            							sep = "";
					            						}
					            						tipoPoi = tipoPoi + sep + featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].firstChild.nodeValue;
					            						//cadena = cadena + intro + tipoPoi;//featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].firstChild.nodeValue + sep;
					            						cadena = cadena + intro + sep + featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].firstChild.nodeValue;//featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].firstChild.nodeValue + sep;
					            					}
					            				}
					            			}
					            		}
					            		
					            	}
					            	
					            	else if(featuresWPS[jj].childNodes[xx].childNodes[wh].nodeName=="mne:posicionEspacial")
					            	{
					            		if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes.length != 0)
					            		{
					            			if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].nodeName =="mne:PosicionEspacial")
					            			{
					            				for(var xxx = 0; xxx < featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes.length; xxx++)
					            				{
					            					if(featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].nodeName == "mne:geometria")
					            					{
					            						var size = new OpenLayers.Size(15,23);
											  			
											  			var sz = new OpenLayers.Size(15,23);
															var calculateOffset = function(size) {
														    	return new OpenLayers.Pixel(-(size.w/2), -(size.h+10));
														    };
	    
														var icon = new OpenLayers.Icon('img/mapmarker.png',sz,null,calculateOffset,numero);
					            						var coordinatesPoi = featuresWPS[jj].childNodes[xx].childNodes[wh].childNodes[0].childNodes[xxx].childNodes[0].childNodes[0].childNodes[0].nodeValue;
					            						coordinatesPoiVector = coordinatesPoi.split(",");
					            						
					            						var markaPoi = new OpenLayers.Marker(new OpenLayers.LonLat(coordinatesPoiVector[0],coordinatesPoiVector[1]),icon);
					            						markersPOI.addMarker(markaPoi);
					            						
					            						arrayPOIS.push(new Array(3));
                										arrayPOIS[arrayPOIS.length - 1][0] = numero;
														arrayPOIS[arrayPOIS.length - 1][1] = new OpenLayers.LonLat(coordinatesPoiVector[0],coordinatesPoiVector[1]);
										    			arrayPOIS[arrayPOIS.length - 1][2] = nombrePoi + "<br>" + tipoPoi;
					            					}
					            				}
					            			}
					            		}
					            		
					            	}
					            	else
					            	{
					            	}
					            	
					            }
					       }//if entidad
					      if (featuresWPS[jj].childNodes[xx].tagName == "distancia")
						  { 
						  	cadena = cadena +  " (" + parseInt(featuresWPS[jj].childNodes[xx].firstChild.nodeValue) + " m)</a></td></tr>";
						  	numero = numero + 1;
						  }
					        
								
					       
					      
					   }//for nº
				    }//for featuremember
//				    cadena = convertISO88591(cadena);
				    document.getElementById("areaResultados").innerHTML= "<table width='100%'><tr><td class='tituloB' style='padding-top:10px;'>Resultados</td></tr><tr><td><hr color='#7192C5'></td></tr><tr><td style='border: 1px solid #000000;'><table width=100%>"+cadena+"</table>";
			    }//if features
			    else
			    {
			 		document.getElementById("areaResultados").innerHTML = "<table width='100%'><tr><td><font color='FF0000'><strong>No se han encontrado resultados</strong></font></td></tr></table>";
			    }

/*			    cadena = "<table width=100%>"+cadena+"</table>";
	            document.getElementById("areaResultados").innerHTML = cadena;*/
	            	
	            
	        }
	        else
	        {
	        	unsetCapaLoad();
	        	
				var featuresWPS = profileURL.getElementsByTagName('listaPortales');
	            	
	            var tipoViaWh = "";
	            var nbViaWh = "";
	            var numViaWh = "";
	            var provViaWh = "";
	            var munViaWh = "";
            	var pointWhX = "";
            	var pointWhY = "";
            	var idFeatureWh = "";
            	var direccionWh = "";
            	var cpWh = "";	
	            if (featuresWPS.length != 0)
	            {
	            	for(wh = 0; wh < featuresWPS[0].childNodes[0].childNodes.length; wh ++)
	            	{
	            		if(featuresWPS[0].childNodes[0].childNodes[wh].nodeName=="portal")
		            	{
		            		for(nm = 0; nm < featuresWPS[0].childNodes[0].childNodes[wh].childNodes.length; nm ++)
	            			{
	            				if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="provincia")
	            				{
	            					provViaWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="municipio")
	            				{
	            					munViaWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="tipoVia")
	            				{
	            					tipoViaWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="nombreVia")
	            				{
	            					nbViaWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="cp")
	            				{
	            					try
	            					{
	            						cpWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            					}
	            					catch(e)
	            					{
	            						cpWh = "";
	            					}
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="rotulo")
	            				{
	            					numViaWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="coordenadas")
	            				{
	            					for(cd = 0; cd < featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].childNodes.length; cd ++)
	            					{
	            						if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].childNodes[cd].nodeName=="coordenadaX")
	            						{
	            							pointWhX = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].childNodes[cd].firstChild.nodeValue;
	            						}
	            						else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].childNodes[cd].nodeName=="coordenadaY")
	            						{
	            							pointWhY = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].childNodes[cd].firstChild.nodeValue;
	            						}
	            						else
	            						{
	            						}
	            					}
	            				}
	            				else if(featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].nodeName=="id")
	            				{
	            					idFeatureWh = featuresWPS[0].childNodes[0].childNodes[wh].childNodes[nm].firstChild.nodeValue;
	            				}
	            				else
	            				{
	            				}
	            			}
	            			
	            			var centerWh = new OpenLayers.LonLat(pointWhX, pointWhY); 
							
							var posCoord = convertPosition(centerWh);
							
							var tipoDireccion = ""; 
							var menuDireccion = "";
							tipoDireccion = "Dirección: ";
							if(cpWh!="")
							{
								direccionWh ="<span class='tituloB2'><strong>"+tipoDireccion+"</strong></span><br> <br><span>"+ tipoViaWh + " " + nbViaWh + ", " + numViaWh + "<br>"+ cpWh + ", " + munViaWh + " (" + provViaWh + ")<br/><br>"+posCoord+"</span>";
							}
							else
							{
								direccionWh ="<span class='tituloB2'><strong>"+tipoDireccion+"</strong></span><br> <br><span>"+ tipoViaWh + " " + nbViaWh + ", " + numViaWh + "<br>" + munViaWh + " (" + provViaWh + ")<br/><br>"+posCoord+"</span>";
							}
	            			direccionWh = direccionWh + menuDireccion;
	            			
							if(isRoute == 2)
                			{
		            			popupQuery = new OpenLayers.Popup.FramedBubble("popupwh", 
	                                         centerWh,
	                                         new OpenLayers.Size(200,200),
	                                         direccionWh,
	                                         "",
	                                         true,"",false);
	                			map.addPopup(popupQuery);
	                			
	                			document.getElementById("popupwhFrame").style.zIndex = "129333567";
	                			
	                			/*document.getElementById("popupIdx").style.position = "absolute";
	                			document.getElementById("popupIdx").style.zIndex = "1024";
	                			document.getElementById("popupIdx").style.width =document.getElementById("popupwhFrame").style.width;
	                			document.getElementById("popupIdx").style.height =document.getElementById("popupwhFrame").style.height;
								document.getElementById("popupIdx").style.left =document.getElementById("popupwhFrame").style.left;
								document.getElementById("popupIdx").style.top =document.getElementById("popupwhFrame").style.top;
								document.getElementById("popupIdx").className = "olBubbleFrame";
								
								document.getElementById("popupIdx").innerHTML =document.getElementById("popupwhFrame").innerHTML;
	                			
	                			*/
	                			
	                			
	                			
	                		}
                			else if(isRoute == 11)
                			{
                				var numPoi = document.forms.formgml.iddPOI.value;
                				
		
                				var menuPOI = "";
                				if((arrayRuta.length == 0)||(arrayRuta[0] == -1))
                				{
                					menuPOI = "<br><br><span><b><a href='#' onClick='javascript:chFrom("+numPoi+");'>Establecer origen</a></b>&nbsp;<b>|</b>&nbsp;<a href='javascript:chTo("+numPoi+")'>Establecer destino</a></span>";
                				}
                				else 
                				{
                					menuPOI = "<br><br><span><b><a href='#' onClick='javascript:chTo("+numPoi+");'>Añadir un destino</a></b></span>";
                				}
                				
                				
                				document.forms.formgml.addressPOI.value = document.forms.formgml.addressPOI.value + "<br/><br/><span class='tituloB2'><strong>Dirección: </span><br/><br/><span>"+ tipoViaWh + " " + nbViaWh + ", " + numViaWh + "<br>" + cpWh + ", " + munViaWh + " (" + provViaWh + ")<br/><br>"+posCoord+"</span>" + menuPOI;
                				
                				popupQuery = new OpenLayers.Popup.FramedBubble("infoQuery", 
		                                       centerWh,
		                                         new OpenLayers.Size(300,200),
		                                         document.forms.formgml.addressPOI.value,
		                                         "",
		                                         true,"",true);
		                   		 map.addPopup(popupQuery); 
		                    	
		                    	 document.getElementById("infoQuery").style.width = "350px";
                			}
                			else if((isRoute == 3)||(isRoute == 5)||(isRoute == 4)||(isRoute == 6)||(isRoute == 10))
                			{
                				var direccion = "<span>"+ tipoViaWh + " " + nbViaWh + ", " + numViaWh + "<br>" + cpWh + ", " + munViaWh + " (" + provViaWh + ")</span>";
                				
                				if((isRoute == 3) || (isRoute == 5))
                				{
                					setMarkerRoute(centerWh.lon,centerWh.lat,0,direccion);
                					resizeWay(0);
                					
                					if((isRoute == 3)&&(document.forms.formgml.setFromArea.value==1))
                					{
                						
                						prepareArea();
                					}
                				}
                				if((isRoute == 4)||(isRoute == 6))
                				{
                					var elemento;
                					if(arrayRuta.length == 0)
                					{
                						elemento = 1;
                					}
                					else
                					{
                						if((isRoute == 6) && (document.forms.formgml.idDrag.value!=""))
                						{
                							elemento = document.forms.formgml.idDrag.value;
                							resizeWay(elemento);
                							
			                				
                						}
                						else
                						{
                							elemento = arrayRuta.length;
                						}
                					}
                					
                					
                					setMarkerRoute(centerWh.lon,centerWh.lat,elemento,direccion);
                					
                					
                					
                				}
                				if(isRoute == 10)
                				{
                					markersPoint.clearMarkers();
                				
                					var posicionruta = document.forms.formgml.idPosition.value;
                					
                					if (arrayWayPoint.length > 0)
                					{
                						intermedioPos = 0;
                						
                						if(vectorLayer2.features.length > 1)
                						{
                							for(var nF = 0; nF < vectorLayer2.features.length; nF++)
                							{
                								if(vectorLayer2.features[nF].id == posicionruta)
                								{
                									intermedioPos = nF;
                								}
                							}
                						}
                						
                						if(vectorLayer2.features.length !=  0)
                						{
                						    arrayAddPoint = new Array();
										    arrayAddPoint.push(new Array(3));
                							arrayAddPoint[0][0] = intermedioPos;
											arrayAddPoint[0][1] = centerWh.lon + "," + centerWh.lat;
										    arrayAddPoint[0][2] = direccion;
                						}
                					}
                				}
                				
                			}

                		 }
		            		
		           	}
	            }
			}
	        
	        
	        if(isRoute == 1)
    	    {
    	    	if(isCenterNow)
				{
					try
					{
			    	   map.zoomToExtent(bounds);
			    	   document.formgml.lastExtent.value = "zoomToExtent|"+bounds.left+"|"+bounds.bottom+"|"+bounds.right+"|"+bounds.top;
				       map.zoomTo(map.getZoom()-1);
				    }
				    catch(e)
				    {
				    	if(isRoute == 1)
				    	{
				    		setInterfazRuta(0);
				    	}
				    	alert(e);
				    }
			    }
		    }
	        else
            {
            	
            	if((isRoute != 2)&&(isRoute != 0)&&(isRoute != 7)&&(isRoute != 8)&&(isRoute != 9)&&(isRoute != 11))
               	{
               		
               		if(arrayRuta.length >= 2)
               		{
               			
               			if((isRoute == 3) || (isRoute == 4))
						{
							recentrar = false;	
						}
						else
						{
							recentrar = true;
						}
						
						
						if(arrayRuta.length >= 2)
						{
							if(arrayRuta[0] != -1)
							{
								if(isRoute == 10)
								{
									if(arrayAddPoint.length > 0)
									{
										var lonlatMark = arrayAddPoint[0][1].split(",");
										
										if(arrayPuntoMove.length != 0)
										{
											unSetMarkerRoute(arrayPuntoMove[0],1);
											arrayPuntoMove = new Array();
										}
										
										
											var positionArrayRuta = intermedioPos + 1;
											//if(!detailRoute)arrayPuntoMove.push(positionArrayRuta);
											if((positionArrayRuta) < arrayRuta.length)
											{
												var arrayRutaTemp = new Array();
												arrayRutaTemp = arrayRuta.slice(0,positionArrayRuta);
												
												arrayRutaTemp.push(new Array(1));
												arrayRutaTemp[arrayRutaTemp.length - 1][0] = arrayAddPoint[0][1];
												arrayRutaTemp[arrayRutaTemp.length - 1][1] = arrayAddPoint[0][2];;
												
												var elArrTemp = null;
												for(var mcd = 0; mcd < arrayRuta.slice(positionArrayRuta).length; mcd ++)
												{
													elArrTemp = arrayRuta.slice(positionArrayRuta)[mcd];
													arrayRutaTemp.push(new Array(2));
													arrayRutaTemp[arrayRutaTemp.length - 1][0] = elArrTemp[0];
													arrayRutaTemp[arrayRutaTemp.length - 1][1] = elArrTemp[1];
												}
												arrayRuta = arrayRutaTemp;
												for(var vbg = 0; vbg < arrayPuntoIntermedio.length ; vbg++)
												{
													if(arrayPuntoIntermedio[vbg]>= positionArrayRuta)
													{
														arrayPuntoIntermedio[vbg] = arrayPuntoIntermedio[vbg] + 1;
													}
													
												}
												
												if(!detailRoute)arrayPuntoMove.push(positionArrayRuta);
												arrayPuntoIntermedio.push(positionArrayRuta);
												arrayPuntoIntermedio.sort();
										}
											
										var markaInt =new OpenLayers.Marker(new OpenLayers.LonLat(lonlatMark[0],lonlatMark[1]));
										markers.addMarker(markaInt);
											
											
											for(mk = 0; mk < markers.markers.length; mk ++)
											{
												if(markers.markers[mk].icon.id2 >= positionArrayRuta)
												{
													markers.markers[mk].icon.id2 = parseInt(markers.markers[mk].icon.id2) + 1;
												}
											}
											
											markers.markers[markers.markers.length - 1].icon.id2 = positionArrayRuta;
											
											
											var arrayWayPointTemp = new Array();
											arrayWayPointTemp = arrayWayPoint.slice(0,positionArrayRuta);
											arrayWayPointTemp.push(-1);	
											
											for(var mcd = 0; mcd < arrayWayPoint.slice(positionArrayRuta).length; mcd ++)
											{
												elArrTemp = arrayWayPoint.slice(positionArrayRuta)[mcd];
												arrayWayPointTemp.push(new Array(2));
												arrayWayPointTemp[arrayWayPointTemp.length - 1][0] = elArrTemp[0];
												arrayWayPointTemp[arrayWayPointTemp.length - 1][1] = elArrTemp[1];
												arrayWayPointTemp[arrayWayPointTemp.length - 1][2] = elArrTemp[2];
												arrayWayPointTemp[arrayWayPointTemp.length - 1][3] = elArrTemp[3];
											}
											arrayWayPoint = arrayWayPointTemp;
										}
										else
										{
											var markaInt =new OpenLayers.Marker(new OpenLayers.LonLat(lonlatMark[0],lonlatMark[1]),defaultIcon);
											markersPoint.addMarker(markaInt);
										}
								}
								drawRuta(true,recentrar);
							}
						}
						
               			
               		}
						
	           } 
            }
        }
		
	
	/*} 
	catch (e) 
	{
		
		if (isRoute == 1)
		{
			var idLayer = layerId("LocalizacionRuta");
			if(idLayer != -1)
			{
				map.removeLayer(map.layers[idLayer]);
			}

			alert("No se puede calcular una ruta entre estos dos puntos");
			
			try
			{
				document.getElementById('calculandoRuta').innerHTML="";
			}
			catch(e2)
			{
			}
						
		}
		else if(isRoute == 0)
		{
			document.getElementById("areaId").innerHTML = "";
			document.getElementById("areaId").style.visibility = "hidden";
			
			document.getElementById("deleteArea").style.visibility = "hidden";
			cancelarPunto(2);
			
		}
		else
		{
		}

	}*/

}

function drawRuta(detail,isMarker)
{
	setOverFt(0);
	var postParams="<?xml version='1.0' encoding='UTF-8' standalone='yes'?><Execute service='WPS' version='0.4.0' store='false' status='false' xmlns='http://www.opengeospatial.net/wps' xmlns:pak='http://www.opengis.net/examples/packet' xmlns:ows='http://www.opengeospatial.net/ows' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.opengeospatial.net/wps ..\wpsExecute.xsd' xmlns:om='http://www.opengis.net/om' xmlns:gml='http://www.opengis.net/gml'> <ows:Identifier>com.ign.process.geometry.RouteFinder</ows:Identifier><DataInputs><Input><ows:Identifier>details</ows:Identifier><ows:Title>Distancia</ows:Title>";
	postParams = postParams + "<LiteralValue dataType='xs:boolean'>"+detail+"</LiteralValue></Input><Input><ows:Identifier>wayPointList</ows:Identifier><ows:Title>WayPoints</ows:Title>";
	postParams = postParams +"<ComplexValue><wayPointList>";
	
	var vector2,vector1,x,y;
	
	
	if(arrayWayPoint.length !=0)//&&(arrayWayPoint.length > elmx))
	{
		
		var nuevoValor = -1;
		for(var bk = 0; bk < arrayWayPoint.length; bk ++)
		{

			if(arrayWayPoint[bk] == -1)
			{
				vector2 = arrayRuta[bk][0];
			    vector1 = vector2.split(",");
		    	x = vector1[0];
				y = vector1[1];
				postParams = postParams +"<wayPoint><gml:Point><gml:coord><gml:X>"+x+"</gml:X><gml:Y>"+y+"</gml:Y></gml:coord></gml:Point></wayPoint>";
			}
			else
			{
				postParams = postParams + "<wayPoint>";
				for(var countWay = 0; countWay < arrayWayPoint[bk].length; countWay ++)
				{
					postParams = postParams + arrayWayPoint[bk][countWay];
				}
				postParams = postParams + "</wayPoint>";
				
			}
				
		}
		
	}
		
	for(var elmx=0;elmx<arrayRuta.length;elmx++)
	{
		if(elmx >= arrayWayPoint.length)
		{
			vector2 = arrayRuta[elmx][0];
		    vector1 = vector2.split(",");
	    	x = vector1[0];
			y = vector1[1];
			postParams = postParams +"<wayPoint><gml:Point><gml:coord><gml:X>"+x+"</gml:X><gml:Y>"+y+"</gml:Y></gml:coord></gml:Point></wayPoint>";
		}
	}
	postParams = postParams +"</wayPointList></ComplexValue></Input></DataInputs><ProcessOutputs><Output><ows:Identifier>result</ows:Identifier><ows:Title>LineString</ows:Title><ows:Abstract>GML describiendo una feature de Linestring.</ows:Abstract><ComplexOutput defaultFormat='text/XML' defaultSchema='http://geoserver.itc.nl:8080/wps/schemas/gml/2.1.2/gmlpacket.xsd'><SupportedComplexData><Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema></SupportedComplexData></ComplexOutput></Output><Output><ows:Identifier>route</ows:Identifier><ows:Title>Ruta</ows:Title><ows:Abstract>Ruta</ows:Abstract><ComplexOutput defaultFormat='text/XML' defaultSchema='http://www.idee.es/complexValues.xsd'><SupportedComplexData><Schema>http://www.idee.es/complexValues.xsd</Schema></SupportedComplexData></ComplexOutput></Output><Output><ows:Identifier>wayPoints</ows:Identifier><ows:Title>Puntos</ows:Title><ows:Abstract>Lista de puntos</ows:Abstract><ComplexOutput defaultFormat='text/XML' defaultSchema='http://www.idee.es/wayPointsValues.xsd'><SupportedComplexData><Schema>http://www.idee.es/wayPointsValues.xsd</Schema></SupportedComplexData></ComplexOutput></Output></ProcessOutputs></Execute>";
	
	var urlPath = urlWps;//"http://10.13.90.116:8080/wps/WebProcessingService";
	var centrado = true;
		
	if(isMarker)
	{
		centrado = false;
	}
	postParams="urlValor="+ urlWps+"&request="+escape(postParams);
	
	doWPSProfileQuery(urlPath, postParams,1,detail,centrado,true);
	
}


function getResultsRuta(prv,mun,vial,num,tipo)
{
	var includeAnd = false;
	var url;
	var esUnicaRuta = false;
	
	var existeFilaRs = rowExists("tableRutasForm","trResultRuta",false);
		if(!existeFilaRs)
		{
			createTr("tableRutasForm","trResultRuta");
		}
		else
		{
			var cadenaMunProv = "";
			
			cadenaMunProv = "En " + mun;
			if(prv != "")
			{
				cadenaMunProv = cadenaMunProv + " (" + prv + ")";
			}
			
			if(tipo == 0)
			{
				document.getElementById("listOrigen").innerHTML = cadenaMunProv;
			}
			else
			{
				document.getElementById("listDestino").innerHTML = cadenaMunProv;
			}
			
			if((dhtmlCmbDestino.DOMelem_input.value!=null)&&(dhtmlCmbDestino.DOMelem_input.value!="null")&&(dhtmlCmbDestino.DOMelem_input.value!=""))
			{
				municipioDestino = dhtmlCmbDestino.DOMelem_input.value;
			}
			
			if(document.forms.ruta.provinciaOrigen.selectedIndex >0)
			{
				provinciaOrigen = " (" + document.forms.ruta.provinciaOrigen.options[document.forms.ruta.provinciaOrigen.selectedIndex].text + ")";
			}
			
			if(document.forms.ruta.provinciaDestino.selectedIndex >0)
			{
				provinciaDestino = " (" + document.forms.ruta.provinciaDestino.options[document.forms.ruta.provinciaDestino.selectedIndex].text+ ")";
			}
		}
	
		if (tipo == 0)
		{
			for(var n=document.getElementById("resultOrigen").options.length; n >= 0; n--)
			{
				document.getElementById("resultOrigen").options[n] = null;
			}
		}
							
		for(var n=document.getElementById("resultDestino").options.length; n>=0; n--)
		{
			document.getElementById("resultDestino").options[n] = null;
		}
	
	var filter = '<PropertyIsLike wildCard="*" singleChar="_" escapeChar="|"><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*'+ vial +'*</Literal></PropertyIsLike>';		
	
	if(prv!="")
	{
		filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+prv+"</Literal></PropertyIsEqualTo>";
		includeAnd = true;
	}
	if(mun != "")
	{
		filter = filter + "<PropertyIsLike wildCard='*' singleChar='_' escapeChar='|'><PropertyName>entidadLocal/municipio</PropertyName><Literal>*"+mun+"*</Literal></PropertyIsLike>";
		//filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/municipio</PropertyName><Literal>"+mun+"</Literal></PropertyIsEqualTo>";
		includeAnd = true;
	}
	
	if(includeAnd)
	{
		url = wfsVial + "<And>" + filter + "</And></Filter>";
	}
	else
	{
		url = wfsVial + filter + "</Filter>";
	}
	
	var ajax=AjaxObj();
	
   	ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
	document.getElementById("noResults").innerHTML ="<img src='img/loading.gif' border=0/>Cargando datos";		
	
	document.getElementById('tablaResultados').style.visibility = "hidden";	
	
	ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	var doc = ajax.responseXML;
        
		        if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}    
        		
        			
        		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		
        		if (features_gml.length == 0)
        		{
        			document.getElementById('loading').innerHTML="";
	        		document.getElementById("noResults").innerHTML = "<font color='FF0000'><b>No se han encontrado Resultados</b></font>";
	        		document.getElementById('rutas').scrollTop = 0;
        		}
        		else
        		{
        			for (var i = 0; i < features_gml.length; i++) 
		        	{
		        		var idFeature = features_gml[i].childNodes[0].attributes[0].nodeValue;
		        		
		        		var nombreFeature = getNombre(features_gml[i]);
		        		var tipoFeature = getTipo(features_gml[i]);
						var bboxFeature= getBbox(features_gml[i]);
						
						if((prv == "") || (mun ==""))
						{
							var munFeature = getFeatureMun(features_gml[i]);
							var provFeature = getFeatureProv(features_gml[i]);
							nombreFeature = nombreFeature + ", en " + munFeature + " (" + provFeature + ")";
						}
						
							if (tipo == 0)
							{
								document.getElementById("resultOrigen").options[i] = new Option(tipoFeature + " " + nombreFeature,idFeature);
							}
							else
							{
								document.getElementById("resultDestino").options[i] = new Option(tipoFeature + " " + nombreFeature,idFeature);
							}
						
		        	}
		        	
			        	if((document.getElementById("resultOrigen").options.length > 0) && (document.getElementById("resultDestino").options.length >0))
			        	{
			        		document.getElementById("noResults").innerHTML = "";
							document.getElementById('loading').innerHTML="";
								
			        		if((document.getElementById("resultOrigen").options.length == 1)&&(document.getElementById("resultDestino").options.length == 1))
			        		{
			        			document.getElementById('tablaResultados').style.visibility = "hidden";
			        		}
			        		else
			        		{
			        			document.getElementById('tablaResultados').style.visibility = "visible";
			        			var puntodescroll = document.getElementById('datosRutaForm').offsetTop;
				        		document.getElementById('rutas').scrollTop = puntodescroll;
				        	}
			        		
		        		
		        		
			        	}
				        else
				        {
				        	document.getElementById('rutas').scrollTop = 0;
				        }
								
		        	urlPk = wfsPortal + "<Filter><Or>";
			       
		        	
			        	if (tipo == 0)
						{
							var comboResults = document.getElementById('resultOrigen');
						}
						if(tipo == 1)
						{
							var comboResults = document.getElementById('resultDestino');
						}
					
					if ((num!=0) && (num!=""))
					{
						intento = 2;
					}
					else
					{
						intento = 0;
					}
		        	for (var i = 0; i < comboResults.options.length; i++) 
		        	{
		        		idFeatureVial = comboResults.options[i].value;
		        		getPortal (idFeatureVial,tipo,num,intento);
		        		
		        		if(i == comboResults.options.length - 1)
		        		{
		        			//alert(comboResults.options[i].text);
		        			if(comboResults.offsetWidth < 250)
					        {
					        	comboResults.style.width = "250px";
					        }
		        		}
		        	}
		        	
		        	
		        	
		        	
        		}//else
        		      			
        		
	       	}//if ajax.status
	        else
	        {
	        }//ajax.status==200
	        
	    }// if readyState==4
	    else //readyState
	    {
	    
	    }
	 	   
	 }//onreadystatechange
	 
	 ajax.send(null);
	 
}



function getPortal(idFeature,tipo,num,intento)
{
	
	var url = wfsPortal;
	
	var filter="";
	
	if((num != 0) && (num!=""))
	{
		filter = filter + "<PropertyIsEqualTo><PropertyName>nombreEntidad/nombre</PropertyName><Literal>"+num+"</Literal></PropertyIsEqualTo>";
	}
	
	filter = filter + "<PropertyIsEqualTo><PropertyName>entidadRelacionada/idEntidad</PropertyName><Literal>"+idFeature+"</Literal></PropertyIsEqualTo>";
	
	
	if((num != 0) && (num!=""))
	{
		url = url + "<Filter><And>" + filter + "</And></Filter>";
	}
	else
	{
		url = url + "<Filter>" + filter + "</Filter>";
	}
	
	var ajax=AjaxObj();
	
   	ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
	document.getElementById('loading').innerHTML="<td colspan=2><img src='img/loading.gif' border=0/>Cargando datos</td>";
	
	
	ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	var doc = ajax.responseXML;
        
		        if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}    
        		
        		
        		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		var entidadRelacionada;
        		
        		if (tipo == 0)
				{
					var comboResults = document.getElementById('resultOrigen');
				}
				else if (tipo == 1)
				{
					var comboResults = document.getElementById('resultDestino');
				}
				else if(tipo == 4)
				{
					var comboResults = document.getElementById('resultListPoi');
					
				}
				else if(tipo == 5)
				{
					var comboResults = document.getElementById('resultDestinoAdd');
					
				}
				else 
				{
					var comboResults = document.getElementById('resultNomenclator');
				}
				
				if (features_gml.length == 0)
				{
					if(((num != 0)&&(num!=""))&&(intento == 2))
					{
						
						if(tipo == 2)
						{
							getPortal(idFeature,tipo,0,3);
						}
						else
						{
							getPortal(idFeature,tipo,0,intento);
						}
					}
					
					
					
					
				}
				arrayPortalLoc = [];
				
				var setFrom = false;
				
				if(tipo == 4)
				{
					setFrom = true;	
				}
				
				for (var i = 0; i < features_gml.length; i++) 
		        {
		        	var localizador = 0;
		        	var idFeaturePortal = features_gml[i].childNodes[0].attributes[0].nodeValue;
		        	var nombreFeature = getNombre(features_gml[i]);
		        	
		        	entidadRelacionada = getEntidad(features_gml[i]);
		        	var bboxFeature= getPoint(features_gml[i]);
		        	var arrayCoordPortal = [];
		        	try
		        	{
		        		if(bboxFeature.length > 0)
		        		{
		        			arrayCoordPortal = bboxFeature[0].split(",");
		        		}
		        		
		        	}
		        	catch(e)
		        	{
		        		
		        	}
				    
		       			for (var x = 0; x < comboResults.options.length; x++) 
		        		{
		        			
			        		if(localizador == 0)
			        		{
			        			if (entidadRelacionada == comboResults.options[x].value)
				        		{
				        			comboResults.options[x].value = idFeaturePortal;
				        			
				        			
				        			
				        			if((tipo == 2)||(tipo == 4)||(tipo == 3))
				        			{
				        				try
				        				{
				        			
				        					document.getElementById(entidadRelacionada+"_Link").href ="javascript:loadDetail("+entidadRelacionada+",1,1)";
				        			
				        				
					        				var elementoReplace = document.getElementById(entidadRelacionada+"_id_f").innerHTML;
					        				var cadenaBuscar = ",&nbsp;en ";
											var cadenaReplace = ", " + nombreFeature + cadenaBuscar;
											if(tipo == 3)
											{
												cadenaReplace = ", Km " + nombreFeature + cadenaBuscar;
											}
											
											var cadenaFinal = elementoReplace.replace(cadenaBuscar,cadenaReplace);
											
											document.getElementById(entidadRelacionada+"_id_f").innerHTML = cadenaFinal;
											
											if(arrayCoordPortal.length > 0)
						        			{
						        				document.getElementById(entidadRelacionada+"_id_f").href = "javascript:marca("+arrayCoordPortal[0]+","+arrayCoordPortal[1]+","+setFrom+","+entidadRelacionada+")";
						        			}
										}
										catch(e)
										{
										}
				        			}
				        			else
				        			{
				        				
				        					var elementoReplace = comboResults.options[x].text;
				        					var cadenaBuscar = ", en ";
				        					var cadenaFinal = "";
				        					
				        					if(elementoReplace.indexOf(cadenaBuscar)!=-1)
				        					{
				        						var cadenaReplace = ", " + nombreFeature + cadenaBuscar;
												cadenaFinal = elementoReplace.replace(cadenaBuscar,cadenaReplace);
											}
											else
											{
												cadenaFinal = comboResults.options[x].text + ", " + nombreFeature;
											}											 
											comboResults.options[x].text = cadenaFinal;
											comboResults.options[x].title = cadenaFinal;
											
											if((tipo == 0) || (tipo == 1))
											{
													if((document.getElementById("resultOrigen").options.length == 1)&&(document.getElementById("resultDestino").options.length == 1))
								        			{
								        				if((document.getElementById("resultOrigen").options[0].text.indexOf(", ")!=-1) && (document.getElementById("resultDestino").options[0].text.indexOf(", ")!=-1))
								        				{
									        				document.getElementById("resultOrigen").selectedIndex = 0;
									        				document.getElementById("resultDestino").selectedIndex = 0;
								        					dibujarRuta();
										        	}
								        		}
						        			}
						        			
				        				//}
				        			}//tipo
				        			localizador = 1;
				        		}//coincide la entidad
				        	}//localizador
		        		}//for
		         }//for
		        
		       /*if((tipo != 2)&&(tipo != 3)&&(tipo!=4)&&(tipo!=5))
			   	{
			        if(document.getElementById('resultOrigen').offsetWidth < 250)
			        {
			        	document.getElementById('resultOrigen').style.width = "250px";
			        }
			        	
			        if(document.getElementById('resultDestino').offsetWidth < 250)
			        {
			        	document.getElementById('resultDestino').style.width = "250px";
			        }
			        
			       
			  }
		        	
		      if(tipo == 5)
		      {
		      	if(document.getElementById('resultDestinoAdd').offsetWidth < 250)
		      	{
		      		document.getElementById('resultDestinoAdd').style.width = "250px";
		      	}
		      } */
		        
		    }//if ajax.status
	        else
	        {
	        }//ajax.status==200
	        
	    }// if readyState==4
	    else //readyState
	    {
	    
	    }
	 	   
	 }//onreadystatechange
	
	document.getElementById('loading').innerHTML="";	        	
	ajax.send(null);
	 

}

function getEntidad(feature)
{
	var entidad="";
	for(var j = 0; j < feature.childNodes.length; j++)
	{
		if (feature.childNodes[j].tagName == "Entidad")
	    {
	    	try
	       	{
	        	for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
		        {
		        	if (feature.childNodes[j].childNodes[k].tagName=="entidadRelacionada")
		        	{
		        		try
		        		{
		        			entidad = feature.childNodes[j].childNodes[k].getElementsByTagName('idEntidad').item(0).firstChild.data;
		        		}
			        	catch(e)
			        	{
			        		entidad = "";
			        	}
		        		
		        	}
		        }
		     }
		     catch(e)
		     {
		     }
	    }
	}
	return entidad;
}
//var ajaxGetXY;

function getXY(arrayXY)
{

	var url;
	var cadenaPt="";
	
	if(arrayXY.length > 0)
	{
		for(var idf = 0; idf < arrayXY.length; idf++)
		{
			cadenaPt = cadenaPt + "<PropertyIsEqualTo><PropertyName>fid</PropertyName><Literal>" + arrayXY[idf][0] +"</Literal></PropertyIsEqualTo>";
		}
		
		url = wfsPortal + "<Filter>";
		
		if(arrayXY.length > 1)
		{
			url = url + "<Or>";
		}
		url = url + cadenaPt;
		if(arrayXY.length > 1)
		{
			url = url + "</Or>";
			document.getElementById('calculandoRuta').innerHTML="<img src='img/loading.gif' border=0/>Creando ruta";
		}
		url = url + "</Filter>";
		
	}
	
		ajax = new AjaxObj();
		ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
		ajax.onreadystatechange=function() 
    	{ 
        	if (ajax.readyState==4)
        	{ 
	        	if (ajax.status == 200) 
	        	{
	       
	        		var doc = ajax.responseXML;
        
			        if (!doc || ajax.fileType!="XML") {
			            doc = ajax.responseText;
			        }
		    	    if (typeof doc == "string") { 
           			 	doc = OpenLayers.parseXMLString(doc);
	        		}    
        			
    	    		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        			var bBOX;
        			var arrayFeatures = new Array();
					for(var j = 0; j < features_gml.length; j++)
					{
						for(var r = 0; r < features_gml[j].childNodes.length; r++)
						{
							if (features_gml[j].childNodes[r].tagName == "Entidad")
						    {
						    	var idFeature = features_gml[j].childNodes[0].attributes[0].nodeValue;
						    	
						    	try
					    	   	{
					       			for(var k = 0; k < features_gml[j].childNodes[r].childNodes.length; k++)
						        	{
						        		if (features_gml[j].childNodes[r].childNodes[k].tagName=="posicionEspacial")
							        	{
							        		for (a = 0; a <features_gml[j].childNodes[r].childNodes[k].childNodes.length; a++)
							        		{
							        			if (features_gml[j].childNodes[r].childNodes[k].childNodes[a].tagName == "gml:Point")
							        			{
							        				isAPoint = 1;
							        				for (b = 0; b <features_gml[j].childNodes[r].childNodes[k].childNodes[a].childNodes.length; b++)
							        				{
							        					if(features_gml[j].childNodes[r].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:coordinates")
							        					{
							        						bBOX = features_gml[j].childNodes[r].childNodes[k].childNodes[a].childNodes[b].firstChild.nodeValue;
							        						
							        						for(var idf = 0; idf < arrayXY.length; idf++)
															{
																if(arrayXY[idf][0] == idFeature)
																{
																	var elRuta = arrayXY[idf][1];
																	//arrayRuta[elRuta][0] = bBOX;
																	var xy = bBOX.split(",");
																	setMarkerRoute(xy[0],xy[1],elRuta,arrayXY[idf][2]);
																}
															}
							        						
															
							        					}
							        				}
							        				
							        			}
							        		}
							        	}
						        	}
						    	}
						    	catch(e)
						    	{
						    		alert(e);
						    		if(arrayXY.length > 1)
									{
						    			document.getElementById('calculandoRuta').innerHTML="";
						    		}
						    	}
							}
						}
						
						
					}//
					
					if(arrayRuta.length > 1)
					{
						drawRuta(true,false);
					}
					if(arrayXY.length > 1)
					{
						document.getElementById('calculandoRuta').innerHTML="";
					}
        		}
        	}
        	
    	}
   
		ajax.send(null);	

}


function verRuta(estado)
{
	try
	{
		if(estado == 0)
		{
			ventana = window.open("detallesRuta.html", "detalles", "width=480px,height=450px,resizable=yes,scrollbars=yes");
			if (window.focus) {ventana.focus()}
			
		}
		
	}
	catch(e)
	{
		alert("información no disponible");
	}
							        					
}
function datosRuta()
{
	
	document.getElementById("detail").innerHTML = window.opener.document.forms["formgml"].routeDetail.value;
}

function getPoint(feature)
{
	var bBOX = new Array();
	for(var j = 0; j < feature.childNodes.length; j++)
	{
		if (feature.childNodes[j].tagName == "Entidad")
	    {
	    	try
	       	{
	       		for(var k = 0; k < feature.childNodes[j].childNodes.length; k++)
		        {
					if (feature.childNodes[j].childNodes[k].tagName=="posicionEspacial")
			        {
			        	for (a = 0; a <feature.childNodes[j].childNodes[k].childNodes.length; a++)
			        	{
			        		if (feature.childNodes[j].childNodes[k].childNodes[a].tagName == "gml:Point")
			        		{
			        			isAPoint = 1;
			        			for (b = 0; b <feature.childNodes[j].childNodes[k].childNodes[a].childNodes.length; b++)
			        			{
			        				if(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].tagName=="gml:coordinates")
			        				{
			        					bBOX.push(feature.childNodes[j].childNodes[k].childNodes[a].childNodes[b].firstChild.nodeValue);
			        				}
			        			}
			        		}
			        	}
			        }
		        }
		    }
		    catch(e)
		    {
		    }
		}
	}
		    return bBOX;
}

function selectMun(nombreMun,tagMun,nombreProv)
{
	var checkProv = nombreMun.split("|");
	
	if((tagMun == "municipio")||(tagMun == "nombreEntidad"))
	{
			
								
		if(nombreProv!="")
		{
			
				for(a=0;a<elementProvincia.options.length;a++)
				{
					if(elementProvincia.options[a].text == nombreProv)
					{
						elementProvincia.options[a].selected = true;
					}
				}
			
			
		}
		
		if(document.forms.nomenclator.entidad.value == 2)
		{
			loadSCensal();
		}
	}
	
	if(tagMun == "municipioOrigen")
	{
		
		
	}
	
	if(tagMun == "municipioDestino")
	{
		
	}
	
}

function getCCAA(nombreProvincia)
{
	var url = wfsComunidad;
	var filter = "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+nombreProvincia+"</Literal></PropertyIsEqualTo>";
	url = url + filter + "</Filter>";
	var nameCCAA="";
	var ajaxCCAA=AjaxObj();
   	ajaxCCAA.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
    ajaxCCAA.onreadystatechange=function() 
    { 
        if (ajaxCCAA.readyState==4)
        { 
	        if (ajaxCCAA.status == 200) 
	        {
	        	
        		var doc = ajaxCCAA.responseXML;
        
		        if (!doc || ajaxCCAA.fileType!="XML") {
		            doc = ajaxCCAA.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}    
        		
        		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		
        		for (var xx = 0; xx < features_gml.length; xx++) 
				{
					for(var jj = 0; jj < features_gml[xx].childNodes.length; jj++)
					{
						if (features_gml[xx].childNodes[jj].tagName == "Entidad")
						{						        	
							for(var k1 = 0; k1 < features_gml[xx].childNodes[jj].childNodes.length; k1++)
							{
								if (features_gml[xx].childNodes[jj].childNodes[k1].tagName=="nombreEntidad")
								{
									try
									{
										nameCCAA = features_gml[xx].childNodes[jj].childNodes[k1].getElementsByTagName('nombre').item(0).firstChild.data;
									}
									catch(e)
						        	{
						        		nameCCAA = "";
						        	}
									document.getElementById(nombreProvincia).innerHTML = nombreProvincia + " (" + nameCCAA + ")";
								}
							}
						}
					}
				}
        	}
	        
	    }//readyState==4
	    else
	    {
	    
	    }
	    
	 }//onreadystatechange
	 
	 ajaxCCAA.send(null);
}


 
		



function setMarkerRoute(lon,lat,tipo,direccion)
{
	markers2.clearMarkers();
	
	var inArrayIntermedio = false;
	var inAddDestino = false;
	var numMarca = tipo;
	
					
	if(arrayPuntoIntermedio.length != 0)
	{
		for(var vbg = 0; vbg < arrayPuntoIntermedio.length ; vbg++)
		{
			if(arrayPuntoIntermedio[vbg] == tipo)
			{
				inArrayIntermedio = true;
			}
			
			if(tipo > arrayPuntoIntermedio[vbg])
			{
				inAddDestino = true;
			}
		}
	}
	
	
	var crearElementoArray = false;
	var updateElementoArray = false;
	var nuevaMarka = null;
	
	var icon = null;
	 
	
	    var sz = new OpenLayers.Size(23,26);
		var calculateOffset = function(size) {
	    	return new OpenLayers.Pixel(-(size.w/2), -(size.h+10));
	    };
	   	
	    unSetMarkerRoute(tipo,0);
		
	    
	    if(arrayRuta.length == 0)
	    {
	    	if(tipo!=0)
	    	{
	    		arrayRuta.push(-1);
	    	}
	    	crearElementoArray = true;
	    }
	    else
	    {
	    	if(tipo == 0)
	    	{
	    		
	    		updateElementoArray = true;
	    	}
	    	else
	    	{
	    		var encontrado = false;
	    		for(var tt = 0; tt < arrayRuta.length; tt++)
	    		{
	    			if(tt == tipo)
	    			{
	    				encontrado = true;
	    			}
	    		}
	    		if(encontrado)
	    		{
	    			updateElementoArray = true;
	    			
	    		}
	    		else
	    		{
	    			crearElementoArray = true;
	    		}
	    	}
	    }
	    
	    if(inAddDestino)
	    {
	    	numMarca = numMarca - arrayPuntoIntermedio.length;
	    }
	    
	    var iconPoint = "img/" +arrayABC[numMarca] + ".png";
	        
	    if(tipo==0)
	    {
	    	var cadenaBuscar = "<br>";
			var cadenaReplace = "&nbsp;";
			var infoPointTxt = direccion.replace(cadenaBuscar,cadenaReplace);
			
			var cadenaBuscar2 = ",&nbsp;en";
			infoPointTxt = infoPointTxt.replace(cadenaBuscar2,cadenaReplace);
			
				
	    	var htmlDireccion = "<table width=100% cellspacing=2 cellpadding=2 id='tableOrigenArea'><tr><td width='25px'><a href='#' onClick='javascript:centrarPunto(0)'/><img border='0' src='"+iconPoint+"'/></a></td><td>" +infoPointTxt+"</td></tr></table>";
	        document.getElementById("infoPointOrigen").innerHTML = htmlDireccion;
	        
	        //activar
	        document.getElementById("mark_1").disabled = false;
	        document.getElementById("mark_2").disabled = false;
	        document.getElementById("poi_1").disabled = false;
	        document.getElementById("buscarPoiBtn").disabled = false;
	        
	        
	        
	        crearFilaBotonEliminar();
	    }
	    
	    icon = new OpenLayers.Icon(iconPoint, sz, null, calculateOffset,tipo);
	    		
		if(!inArrayIntermedio)
		{
			 nuevaMarka =new OpenLayers.Marker(new OpenLayers.LonLat(lon,lat),icon);
		}
		else
		{
			 nuevaMarka =new OpenLayers.Marker(new OpenLayers.LonLat(lon,lat));
		}
		
		markers.addMarker(nuevaMarka);
		if(inArrayIntermedio)
		{
			markers.markers[markers.markers.length - 1].icon.id2 = tipo;
		}

	
	if(crearElementoArray)
    {
    	arrayRuta.push(new Array(2));
    	arrayRuta[tipo][0] = lon + "," + lat;
    	arrayRuta[tipo][1] = direccion;
    }
    
    if(updateElementoArray)
    {
   	 	arrayRuta.splice(tipo,1,new Array(2));
    	arrayRuta[tipo][0] = lon + "," + lat;
	    arrayRuta[tipo][1] = direccion;
	}

         
	
}


function unSetMarkerRoute(valor,accion)
{
	
	try
	{
		
		for(mk = 0; mk < markers.markers.length; mk ++)
		{
			if(markers.markers[mk].icon.id2 == valor)
			{
				markers.removeMarker(markers.markers[mk]);
			}
		}
		
		if(valor == 0)
		{
			//delArea(0);
			document.getElementById("infoPointOrigen").innerHTML ="";
			document.getElementById("mark_1").disabled = true;
	       	document.getElementById("mark_2").disabled = true;
		    document.getElementById("poi_1").disabled = true;
		    document.getElementById("buscarPoiBtn").disabled = true;
		}
		
		
		
		if(accion == 1)
		{
			if (popupQuery!= null)
			{
				popupQuery.destroy();
				popupQuery = null;
			}
			
			if(arrayRuta.length == 2)
			{
				markers.clearMarkers();
				arrayRuta = new Array();
				arrayPuntoIntermedio = new Array();
				arrayWayPoint = new Array();
				eliminarRuta(true,false);
			}	
			else if(arrayRuta.length > 2)
			{
				var arrayNoPunto = new Array();
				if(arrayPuntoIntermedio.length != 0)
				{
					
					for(var tl = 0; tl < arrayRuta.length; tl++)
					{
						if(!inArray(arrayPuntoIntermedio, tl))
						{
							arrayNoPunto.push(tl);
						}
					}
				}
				
				if(inArray(arrayNoPunto, valor))
				{
					compruebaIntermedios(arrayNoPunto,valor);
					
				}
				else
				{
					
					if((arrayRuta.length - 1 == valor)&&(arrayPuntoIntermedio.length == 0))
					{
						arrayRuta.pop();
						if(arrayWayPoint.length > 0)
						{
							arrayWayPoint.pop();
						}
						drawRuta(true,false);
					}
					else
					{
						
						
						for(var tl = 0; tl < arrayRuta.length; tl++)
						{
							if(tl >= valor)
							{
							
								if(tl < arrayRuta.length - 1)
								{
									arrayRuta[tl] = arrayRuta[tl+1];
									if((arrayWayPoint.length > 0) && (arrayWayPoint.length > tl))
									{
										arrayWayPoint[tl] = arrayWayPoint[tl+1];
									}
								}
								else
								{
									arrayRuta.pop();
									if(arrayWayPoint.length > 0)
									{
										arrayWayPoint.pop();
									}
									
									if(arrayPuntoIntermedio.length != 0)
									{
										var positionDelete = -1;
										
										for(var vbg = 0; vbg < arrayPuntoIntermedio.length ; vbg++)
										{
											if(valor == arrayPuntoIntermedio[vbg])
											{
												positionDelete = vbg;
												arrayPuntoIntermedio[vbg] = -1;
											}
											else if(arrayPuntoIntermedio[vbg] > valor)
											{
												arrayPuntoIntermedio[vbg] = arrayPuntoIntermedio[vbg] - 1;
											}
											else
											{
											}
										}
										
										if(positionDelete != -1)
										{
											if(positionDelete == 0)
											{
												arrayPuntoIntermedio.shift();
											}
											else if(positionDelete == arrayPuntoIntermedio.length - 1)
											{
												arrayPuntoIntermedio.pop();
											}
											else
											{
												for(var nA = positionDelete; nA < arrayPuntoIntermedio.length; nA++)
												{
													if(nA + 1 < arrayPuntoIntermedio.length)
													{
														arrayPuntoIntermedio[nA] = arrayPuntoIntermedio[nA + 1];
													}
												}
												arrayPuntoIntermedio.pop();
											}
											
										}
									}
									for(mk = 0; mk < markers.markers.length; mk ++)
									{
										if(markers.markers[mk].icon.id2 > valor)
										{
											markers.markers[mk].icon.id2 = parseInt(markers.markers[mk].icon.id2-1);
											var idABC = parseInt(markers.markers[mk].icon.id2);// - 1;
											
											if (inArray(arrayPuntoIntermedio,markers.markers[mk].icon.id2))
											{
												idABC = arrayABC.length - 1;
											}
											else
											{
												for(var nA = 0; nA < arrayPuntoIntermedio.length; nA++)
												{
													if(arrayPuntoIntermedio[nA] < idABC)
													{
														idABC = idABC - 1;
														
													}
												}
											}
											markers.markers[mk].icon.src = "img/" + arrayABC[idABC] + ".png";
											markers.markers[mk].icon.url = markers.markers[mk].icon.src;
											
										}
									}
									drawRuta(true,false);
								}
							}
						}
					}
						
				}
					
				//}
				
			}//else if
			else if(arrayRuta.length == 1)
			{
				arrayRuta.pop();
				arrayPuntoIntermedio = new Array();
				arrayWayPoint = new Array();
			}
			else
			{
			}
			
			
			
		}
		
	}
	catch(e)
	{
		alert(e);
	}
}

function loadCCAA()
{
	getCCAANomenclator(doComunidad);
}

function getCCAANomenclator(url)
{
	document.getElementById('loading').innerHTML="<td colspan=2><img src='img/loading.gif' border=0/>Cargando datos</td>";
	var ajax=AjaxObj();
	var tagCCAA = document.getElementById('nombreEntidad');
	
	
    ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
    
    ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	var doc = ajax.responseXML;
        		
        		if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}  
		        var ccaa = doc.getElementsByTagName('comunidad');
		        
				for (n = 0; n < ccaa.length; n ++)
				{
					var tagIdCCAA = ccaa[n].getElementsByTagName('nombre_original');
					var tagNameCCAA = ccaa[n].getElementsByTagName('nombre_comunidad');
					
					var idCCAA = tagIdCCAA.item(0).firstChild.data;
					var nameCCAA = tagNameCCAA.item(0).firstChild.data;
					
					tagCCAA.options[n+1] = new Option(nameCCAA,idCCAA);
					
				}
				
				document.getElementById('loading').innerHTML="";
				
        		
	        }
	        else
	        {
	        }//ajax.status==200
	        
	    }//readyState==4
	    else
	    {
	    
	    }
	    
	 }//onreadystatechange
	 
	 ajax.send(null);
	 
}

function loadMunArea(evt)
{
	if (!evt) 
	{
		evt = window.event;
	}
	
	if(evt.type != "click")
	{
		if(isValidKey (evt.keyCode))
		{
				loadMunicipio("provinciaArea","municipioArea",0);
		}
	}
	
}


function loadMunNomenclator(evt)
{
	if (!evt) 
	{
		evt = window.event;
	}
	
	if(evt.type != "click")
	{
		if(isValidKey (evt.keyCode))
		{
				loadMunicipio("provincia","municipio",0);
		}
	}
	
}

function loadMunRuta1(evt)
{
	if (!evt) 
	{
		evt = window.event;
	}
	
	if(evt.type != "click")
	{
		if(isValidKey (evt.keyCode))
		{
				loadMunicipio("provinciaOrigen","municipioOrigen",0);
		}
	}
	
	
}

function loadMunRuta2(evt)
{
	if (!evt) 
	{
		evt = window.event;
	}
	
	if(evt.type != "click")
	{
		if(isValidKey (evt.keyCode))
		{
				loadMunicipio("provinciaDestino","municipioDestino",0);
		}
	}
	
	
}

function loadMunRutaAdd(evt)
{
	if (!evt) 
	{
		evt = window.event;
	}
	
	if(evt.type != "click")
	{
		if(isValidKey (evt.keyCode))
		{
				loadMunicipio("provinciaDestinoAdd","municipioDestinoAdd",0);
		}
	}
	
	
}
function isValidKey(code)
{
	
	if((code >= 48) && (code <= 90))
	{
		return true;
	}
	else
	{
		if((code == 96) || (code == 8) || (code == 32)) //0
		{
			return true;
		}
		
		return false;
	}
}

function getResultsAddPoint(prv,mun,vial,num)
{
	var includeAnd = false;
	var url;
	
	var existeFila = rowExists("tableAddPoint","resultPointTr",true);
	var tabla = document.getElementById("tableAddPoint");
	var ultimaFila = tabla.rows.length;
 	var fila = tabla.insertRow(ultimaFila);
	fila.id="resultPointTr";
  	var celda1 = fila.insertCell(0);
  	celda1.colSpan = 2;
  	celda1.id = "resultPointTd";
  			
	var filter = '<PropertyIsLike wildCard="*" singleChar="_" escapeChar="|"><PropertyName>nombreEntidad/nombre</PropertyName><Literal>*'+ vial +'*</Literal></PropertyIsLike>';		
	
	if(prv!="")
	{
		filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/provincia</PropertyName><Literal>"+prv+"</Literal></PropertyIsEqualTo>";
		includeAnd = true;
	}
	if(mun != "")
	{
		filter = filter + "<PropertyIsEqualTo><PropertyName>entidadLocal/municipio</PropertyName><Literal>"+mun+"</Literal></PropertyIsEqualTo>";
		includeAnd = true;
	}
	
	if(includeAnd)
	{
		url = wfsVial + "<And>" + filter + "</And></Filter>";
	}
	else
	{
		url = wfsVial + filter + "</Filter>";
	}
	
	var ajax=AjaxObj();
	
   	ajax.open("GET", "proxy.do?urlValor="+escape(url), true); 
	
	document.getElementById("resultPointTd").innerHTML = "<img src='img/loading.gif' border=0/>Cargando datos";
	
	
	
	ajax.onreadystatechange=function() 
    { 
        if (ajax.readyState==4)
        { 
	        if (ajax.status == 200) 
	        {
	        	var doc = ajax.responseXML;
        
		        if (!doc || ajax.fileType!="XML") {
		            doc = ajax.responseText;
		        }
		        if (typeof doc == "string") { 
           			 doc = OpenLayers.parseXMLString(doc);
        		}    
        		
        			
        		var features_gml = getElementsByTagNameNS(doc, "http://www.opengis.net/gml", "gml", "featureMember");
        		
        		if (features_gml.length == 0)
        		{
        			document.getElementById("resultPointTd").innerHTML = "<font color='FF0000'><b>No se han encontrado Resultados</b></font>";
	        		
        		}
        		else
        		{
        			var htmlAddPoint = "<table width=100% cellspacing='2' cellpadding='2'>";
        			htmlAddPoint = htmlAddPoint + "<tr><td><li>Seleccione la dirección que quiere añadir como nuevo destino:</li></td></tr>";
        			
        			var provinciaDestinoAdd = "";
					var municipioDestinoAdd = "";
					
					if((dhtmlCmbDestinoAdd.DOMelem_input.value!=null)&&(dhtmlCmbDestinoAdd.DOMelem_input.value!="null")&&(dhtmlCmbDestinoAdd.DOMelem_input.value!=""))
					{
						municipioDestinoAdd = dhtmlCmbDestinoAdd.DOMelem_input.value;
					}
					
					if(document.forms.ruta.provinciaDestinoAdd.selectedIndex >0)
					{
						provinciaDestinoAdd = " (" + document.forms.ruta.provinciaDestinoAdd.options[document.forms.ruta.provinciaDestinoAdd.selectedIndex].text+ ")";
					}
					
        			if(municipioDestinoAdd!="")
  					{
  						htmlAddPoint = htmlAddPoint + "<tr><td id=lista class=tituloB4><li><b>En "+ municipioDestinoAdd + provinciaDestinoAdd +"</b></li></td></tr>";
  					}
  			
        			htmlAddPoint = htmlAddPoint + "<tr><td><div id='select_container2'><select id='resultDestinoAdd' size='10' align='left'></select></div></td></tr>";
        			htmlAddPoint = htmlAddPoint + "<tr><td align='right'><input type='button' value='Añadir destino' name='adddestino' onClick='javascript:addDestino();'></td></tr></table>";
        			document.getElementById("resultPointTd").innerHTML = htmlAddPoint;
        			
        			//document.getElementById("resultPointTd").innerHTML = "<div id='select_container2'><select id='resultDestinoAdd' size='10' align='left'></select></div>";
        			for (var i = 0; i < features_gml.length; i++) 
		        	{
		        		var idFeature = features_gml[i].childNodes[0].attributes[0].nodeValue;
		        		
		        		var nombreFeature = getNombre(features_gml[i]);
		        		var tipoFeature = getTipo(features_gml[i]);
						var bboxFeature= getBbox(features_gml[i]);
						
						if((prv == "") || (mun ==""))
						{
							var munFeature = getFeatureMun(features_gml[i]);
							var provFeature = getFeatureProv(features_gml[i]);
							nombreFeature = nombreFeature + ", en " + munFeature + " (" + provFeature + ")";
						}
						
						document.getElementById("resultDestinoAdd").options[i] = new Option(tipoFeature + " " + nombreFeature,idFeature);
						
		        	}
		        	var puntodescroll = document.getElementById('add_route').offsetTop;
					document.getElementById('rutas').scrollTop = puntodescroll;
		        		
		        	urlPk = wfsPortal + "<Filter><Or>";
		        	
		        	var comboResults = document.getElementById('resultDestinoAdd');
					
					if ((num!=0) && (num!=""))
					{
						intento = 2;
					}
					else
					{
						intento = 0;
					}
		        	for (var i = 0; i < comboResults.options.length; i++) 
		        	{
		        		idFeatureVial = comboResults.options[i].value;
		        		getPortal (idFeatureVial,5,num,intento);
		        		
		        		if(i == comboResults.options.length - 1)
		        		{
		        			if(comboResults.offsetWidth < 250)
					        {
					        	comboResults.style.width = "250px";
					        }
		        		}
		        	}
		        	
		        	
        		}//else
        		      			
        		
	       	}//if ajax.status
	        else
	        {
	        }//ajax.status==200
	        
	    }// if readyState==4
	    else //readyState
	    {
	    
	    }
	 	   
	 }//onreadystatechange
	 
	 ajax.send(null);
	 
}
function resizeWay(valor)
{
	if(arrayWayPoint.length != 0)
	{
		if(arrayWayPoint.length - 1 > valor)
		{
			arrayWayPoint[valor] = -1;
		}
		if(arrayWayPoint.length - 1 == valor)
		{
			arrayWayPoint.pop();
		}
	}
	
}
function compruebaNavegador(name)
{
  var position = navigator.appVersion.indexOf('MSIE');
  if (position !=  - 1)
  {
    var arVersion = navigator.appVersion.split("MSIE");
    var version = parseFloat(arVersion[1]);
    if (version == 6)
    {
     patchIE6(name);
    }
  }
}
function compruebaIntermedios(arrayNPunto,valor)
{
	var puntoAnterior = null;
	var puntoSiguiente = null;
	var cadenaIntermedia = new Array();
	var arrayPuntoTemp = new Array();
	var arrayRutaTemp = new Array();
	var arrayWayPointTemp = new Array();
	
	for(var tmp = 0; tmp < arrayNPunto.length; tmp ++)
	{
		if(arrayNPunto[tmp] == valor)
		{
			if(tmp + 1 == arrayNPunto.length)
			{
				//Está borrando el último punto.
				puntoSiguiente = arrayNPunto[tmp];
				puntoAnterior = arrayNPunto[tmp - 1];
				
			}
			else if(tmp == 0)
			{
				//Está borrando el primer punto.
				puntoAnterior = arrayNPunto[tmp];
				puntoSiguiente = arrayNPunto[tmp + 1];
				
			}
			else
			{
				puntoAnterior = arrayNPunto[tmp - 1];
				puntoSiguiente = arrayNPunto[tmp + 1];
			}
			
			
			
			for(var del = 0; del < arrayPuntoIntermedio.length; del++)
			{
				if((arrayPuntoIntermedio[del] < puntoSiguiente) && (arrayPuntoIntermedio[del] > puntoAnterior))
				{
					cadenaIntermedia.push(arrayPuntoIntermedio[del]);
				}
				else
				{
					arrayPuntoTemp.push(arrayPuntoIntermedio[del]);
				}
			}
			
			arrayPuntoIntermedio = arrayPuntoTemp;
			
			if(arrayRuta.length == arrayWayPoint.length)
			{
				for(var tot = 0; tot < arrayRuta.length; tot++)
				{
					var slice_1 = false;
					
					if(cadenaIntermedia.length != 0)
					{
						if((!inArray(cadenaIntermedia,tot))&&(tot != valor))
						{
							slice_1 = true;
						}
					}
					else
					{
						if(tot != valor)slice_1 = true;
					}
					
					if(slice_1)
					{
						arrayRutaTemp.push(new Array(1));
						arrayRutaTemp[arrayRutaTemp.length - 1][0] = arrayRuta[tot][0];
						arrayRutaTemp[arrayRutaTemp.length - 1][1] = arrayRuta[tot][1];
							
						arrayWayPointTemp.push(new Array(1));
						arrayWayPointTemp[arrayWayPointTemp.length - 1][0] = arrayWayPoint[tot][0];
						arrayWayPointTemp[arrayWayPointTemp.length - 1][1] = arrayWayPoint[tot][1];
						arrayWayPointTemp[arrayWayPointTemp.length - 1][2] = arrayWayPoint[tot][2];
						arrayWayPointTemp[arrayWayPointTemp.length - 1][3] = arrayWayPoint[tot][3];
					}
				}
				
				arrayRuta = arrayRutaTemp;
				arrayWayPoint = arrayWayPointTemp;
				
				if(arrayRuta.length >= 2)
				{
					reasignarMarcas();
					drawRuta(true,false);
					
				}else eliminarRuta(true,true);

			}
			break;
		}
		
	}
	return true;
	
}

function reasignarMarcas()
{
	markers.clearMarkers();
	var markaInt = null;
	var idABC = null;
	var icon = null;
	var iconPoint = null;
	
	var lonlat = null;
	
	var sz = new OpenLayers.Size(23,26);
	var calculateOffset = function(size) 
	{
		return new OpenLayers.Pixel(-(size.w/2), -(size.h+10));
	};
	    
	for(var tot = 0; tot < arrayRuta.length; tot++)
	{
		lonlat = arrayRuta[tot][0].split(",");
		
		if(inArray(arrayPuntoIntermedio,tot))
		{
			markaInt =new OpenLayers.Marker(new OpenLayers.LonLat(lonlat[0],lonlat[1]));
		}
		else
		{
			idABC = tot;
			if (!inArray(arrayPuntoIntermedio,tot))
			{
				for(var nA = 0; nA < arrayPuntoIntermedio.length; nA++)
				{
					if(arrayPuntoIntermedio[nA] < idABC)
					{
						idABC = idABC - 1;
					}
				}
			}
			iconPoint = "img/" +arrayABC[idABC] + ".png";
			icon = new OpenLayers.Icon(iconPoint, sz, null, calculateOffset,tot);
			markaInt = new OpenLayers.Marker(new OpenLayers.LonLat(lonlat[0],lonlat[1]),icon);
		}
		
		markers.addMarker(markaInt);
		markers.markers[markers.markers.length-1].icon.id2 = tot;
	}
	
}