/*
Part del codi extret de:
http://www.lawebdelprogramador.com/codigo/enlace.php?idp=1493&id=283&texto=AJAX
i 
http://www.icc.cat (gràcies Toni)
*/







var Conexion=false; // Variable que manipula la conexion.
var Servidor="/idecwebservices/mapawms/muniAjax.jsp"; // Determina la pagina donde buscar
var ServidorWFS="/idecwebservices/mapawms/wfs.jsp";
var ServidorFPS="/idecwebservices/mapawms/fps.jsp";
var Palabra=""; //Determina la ultima palabra buscada.

// funcion que realiza la conexion con el objeto XMLHTTP...
function Conectar()
{
	if(window.XMLHttpRequest)
		Conexion=new XMLHttpRequest(); //mozilla
	else if(window.ActiveXObject)
		Conexion=new ActiveXObject("Microsoft.XMLHTTP"); //microsoft
}

function Contenido(divLlista,tipusCerca){
	
	if(Conexion.readyState!=4) return;
	
	if(Conexion.status==200) 
	{
		//si recibimos algun valor a mostrar...
		if(Conexion.responseText){
			if(tipusCerca=="4"){
			var resposta=Conexion.responseText;
			resposta=resposta.replace("null","");
			resposta=trim(resposta);
            //alert(resposta);
					llistat = eval("(" + resposta + ")");
					//alert(resposta);
					
					table = "";
					
					//alert(llistat.length);
					
					iNumCandidates = llistat.length;
					//alert('Total '+iNumCandidates);
    				for(i = 0; i < llistat.length; i++) {
						iParId = llistat[i].id;
						//aID[i] = iParId;
						var topo = llistat[i].nom.replace("%27","'");
						var muni = llistat[i].nomMunicipi.replace("%27","'");
						var topoIN = llistat[i].nom.replace("'"," ");;
						var muniIN = llistat[i].nomMunicipi.replace("'"," ");
						var tipus = llistat[i].nom.replace("'"," ");
						
    				table += '';
    				table +="<a style=\"color:black\" href=\"javascript:selectItem('"+divLlista+"','"+iParId+"','"+topoIN+"','"+topoIN+"','"+muniIN+"','"+tipus+"','4')\">"+topo+"("+muni+")</a><br>";
					}
								
    				
					document.getElementById(divLlista).innerHTML = table;
					if(iNumCandidates==1){selectItem(divLlista,iParId,topoIN,topoIN,muniIN,tipus,'4');}
			document.getElementById(divLlista).style.display="block";
			
			}else if(tipusCerca=="5"){
			var resposta2=Conexion.responseText;
			resposta2=resposta2.replace("null","");
			resposta2=trim(resposta2);
			
			llistat2 = eval('(' + resposta2 + ')');
			
			var x = llistat2['infotopo'][0].x;
			var y = llistat2['infotopo'][0].y;
			var topo = llistat2['infotopo'][0].topo.replace("%27","'");
			
			//idec_activaGetMapaPunt(x,y,topo,300)
			map.zoomPt(parseFloat(x),parseFloat(y),300);
			}else if(tipusCerca=="7"){
			//alert(Conexion.responseText);
			//alert(divLlista);
			document.getElementById(divLlista).style.backgroundImage = "url(" + Conexion.responseText + ")";
			}else{
			document.getElementById(divLlista).style.display="block";
			document.getElementById(divLlista).innerHTML=Conexion.responseText;}
		
		
		
		
		}else{
			document.getElementById(divLlista).style.display="none";}
	}else{
		document.getElementById(divLlista).innerHTML=Conexion.status+"-"+Conexion.statusText;
	}

	// Deshabilitamos la visualización del reloj
	document.getElementById("avis").style.display="none";

	Conexion=false;
}

function Solicitud(divLlista,Cadena,tipusCerca)
{
	//alert("Solicitud " + tipusCerca);
	// si no recibimos cadena, no hacemos nada.
	// Cadena=la cadena a buscar en la base de datos
	/* Si cadena es igual a Palabra, no se realiza la busqueda. Puede ser que pulsen la tecla tabulador,
	 * y no interesa que vuelva a verificar...*/
	if(Cadena && Cadena!=Palabra)
	{
		// Si ya esta conectado, cancela la solicitud en espera de que termine
		if(Conexion) return; // Previene uso repetido del boton.
		
		// Realiza la conexion
		Conectar();
		
		// Si la conexion es correcta...
		if(Conexion){
		
		if(tipusCerca=="6"){divLlista=codiMun+";"+divLlista;}
		
			// Habilitamos la visualización del reloj
			document.getElementById("avis").style.display="block";

			// Esta variable, se utiliza para igualar con la cadena a buscar.
			Palabra=Cadena;

			
			Conexion.open("POST",Servidor,true);

			// Añade un par etiqueta/valor a la cabecera HTTP a enviar. Si no lo colocamos, no se pasan los parametros.
			Conexion.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	
			// Cada vez que el estado de la conexión (readyState) cambie se ejecutara el contenido de esta "funcion()"
			Conexion.onreadystatechange=function()
			{
				Contenido(divLlista,tipusCerca);
			}
			
			date=new Date();
			/* Realiza la solicitud al servidor. Puede enviar una cadena de caracteres, o un objeto del tipo XML
			 * Si no deseamos enviar ningun valor, enviariamos null */
			Conexion.send("divLlista="+divLlista+"&tipusCerca="+tipusCerca+"&word="+Cadena+"&"+date.getTime());
		}else
			document.getElementById(divLlista).innerHTML="No disponible";
	}
}

// Funcion que inicia la busqueda.
// Tiene que recibir el identificador donde mostrar el listado, y la cadena a buscar

function autocompletar(divLlista,Cadena,tipusCerca){
	//alert("autocompletar " + tipusCerca);
	if(tipusCerca=="4"){
		Cadena = Cadena.toUpperCase();
	 	Cadena = Cadena.replace("À","A");
	 	Cadena = Cadena.replace("Á","A");
	 	Cadena = Cadena.replace("È","E");
	 	Cadena = Cadena.replace("É","E");
	 	Cadena = Cadena.replace("Í","I");
	 	Cadena = Cadena.replace("Ï","I");
	 	Cadena = Cadena.replace("Ò","O");
	 	Cadena = Cadena.replace("Ó","O");
	 	Cadena = Cadena.replace("Ú","U");
	 	Cadena = Cadena.replace("Ü","U");
	 	Cadena = Cadena.replace("'","%27");
	  	Cadena = Cadena.replace("Ç","%7C");
	}else if(tipusCerca=="0"){
		Cadena = Cadena.replace("'","%27");
	//Cadena=Cadena.replace('Ç','4');
	//alert(Cadena);
	}
	Cadena=canviValor(Cadena)
	Cadena=Cadena.replace('Ç','%7C');
	//alert(Cadena);
	// Comprovamos que la longitud de la cadena sea superior o igual a 1 caracteres
	if(Cadena.length>=1)
	{
		if(Conexion!=false)
		{
			// Deshabilitamos la visualización del reloj
			document.getElementById("avis").style.display="none";
			//si esta en medio de una conexion, la cancelamos
			Conexion.abort();
			Conexion=false;
		}
		Solicitud(divLlista,Cadena,tipusCerca);
	}else{
		document.getElementById(divLlista).style.display="none";
	}
}


// Funcion que se ejecuta cuando seleccionamos un valor del desplegable
function selectItem(divLlista,codigM,nom_mun,nom_mun_M,bbox,parNomMunCom,tipusCerca){
	var control=divLlista.replace('div','txt');
	var controlH=control+"H";
	nom_mun=nom_mun.replace("%27","'");
	nom_mun_M=nom_mun_M.replace("%27","'");
	parNomMunCom=parNomMunCom.replace("%27","'");
	codiMun=codigM;
	//alert("selectItem " + tipusCerca);
   // interaccio('IDEC','C;'+tipusCerca+';'+nom_mun);
    
	if(tipusCerca=="0"||tipusCerca=="1"){
		document.getElementById(control).value=codigM;
		var cof=new Object();
		cof=parseBBOX(bbox);
		//alert(cof);
		map.rebre(parseFloat(cof.x0),parseFloat(cof.y0),parseFloat(cof.x1),parseFloat(cof.y1),nom_mun);
		document.getElementById(controlH).value=nom_mun;
		//autocompletar(divLlista,value1);
		//alert("aentro");
		document.getElementById(divLlista).style.display="none";
	}else if(tipusCerca=="2"){
		document.getElementById(control).value=codigM;
		document.getElementById(controlH).value=nom_mun;
		//autocompletar(divLlista,value1);
		document.getElementById(divLlista).style.display="none";
	}else if(tipusCerca=="3"){
		document.getElementById(control).value=parNomMunCom;
		codiMuniCad=parNomMunCom;
		document.getElementById(controlH).value=nom_mun;
		//autocompletar(divLlista,value1);
		document.getElementById(divLlista).style.display="none";
	}else if(tipusCerca=="4"){
		document.getElementById(control).value=parNomMunCom;
		codiMuniCad=parNomMunCom;
		document.getElementById(controlH).value=nom_mun;
		//autocompletar(divLlista,value1);
		document.getElementById(divLlista).style.display="none";	
		Solicitud(divLlista,codigM,"5");
	}
}


//funcions de validacio de formularis

function frmValidacio(divLlista,Cadena,tipusCerca,xmin,ymin,xmax,ymax,width,height,servWMS){

	// Comprovamos que la longitud de la cadena sea superior o igual a 1 caracteres
	if(Cadena.length>=1){
		if(Conexion!=false){
			
		//document.getElementById("avis").style.display="none";
			
			Conexion.abort();
			Conexion=false;
		}
		ValiSolicitud(divLlista,Cadena,tipusCerca,xmin,ymin,xmax,ymax,width,height,servWMS);
	}else{
		document.getElementById(divLlista).style.display="none";
}
}

function ValiSolicitud(divLlista,Cadena,tipusCerca,xmin,ymin,xmax,ymax,width,height,servWMS){
//tipusCerca val 7
	if(Cadena && Cadena!=Palabra)
	{
		// Si ya esta conectado, cancela la solicitud en espera de que termine
		if(Conexion) return; // Previene uso repetido del boton.
		
		// Realiza la conexion
		Conectar();
		
		// Si la conexion es correcta...
		if(Conexion){
		
		
			document.getElementById("avis").style.display="block";

			// Esta variable, se utiliza para igualar con la cadena a buscar.
			Palabra=Cadena;

			
			Conexion.open("POST",ServidorFPS,true);

			// Añade un par etiqueta/valor a la cabecera HTTP a enviar. Si no lo colocamos, no se pasan los parametros.
			Conexion.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	
			// Cada vez que el estado de la conexión (readyState) cambie se ejecutara el contenido de esta "funcion()"
			Conexion.onreadystatechange=function()
			{
				Contenido(divLlista,tipusCerca);
			}
			
			date=new Date();
			//alert("username="+form1.username.value+"&tipusCerca="+tipusCerca+"&password="+form1.password.value+"&bbox="+bbox+"&capaWFS="+capaWFS+"&serv="+serv+"&");
			/* Realiza la solicitud al servidor. Puede enviar una cadena de caracteres, o un objeto del tipo XML
			 * Si no deseamos enviar ningun valor, enviariamos null */
			Conexion.send("peticio=getWmsFPS&capesFPS="+Cadena+"&tipusCerca="+tipusCerca+"&xmin="+xmin+"&ymin="+ymin+"&xmax="+xmax+"&ymax="+ymax+"&width="+width+"&height="+height+"&servWMS="+servWMS+"&");
		}else
			document.getElementById(divLlista).innerHTML="No disponible";
	}
}


function actCapPrev(capaFPS,id,id2){
}

