﻿/* 
	Data de creacio: 27/02/2008
	Autors: IT Deusto (M. Molist)
	
	Data d'ultima modificacio: 03/09/2008
	Autors: IT Deusto (M. Molist)
	
	CSS: Definicio d'estils Carrerer
*/
(function(){if(document.documentElement) document.documentElement.className = "js";})();


function _addEvent(obj, evType, fn){ 

	if(obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	}else if (obj.attachEvent){ 
		return obj.attachEvent("on" + evType, fn); 
	}else{ 
		return false; 
	} 
 
	}

function _remEvent(obj, evType, fn) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, false);
		return true;
	}else if (obj.detachEvent) {
		return obj.detachEvent("on"+evType, fn);
	}else {
		return false;
	}
}

// On Load de la pagina
_addEvent(window,'load', function () {
	var loc = location.href;
	if(loc[loc.length-1] == "#")
		loc = loc.substr(0,loc.length-1);
	if(loc.indexOf("?") >= 0)
		loc = loc.substr(0,loc.indexOf("?"));	
	if (document.getElementById("versio_ajax")!=null)
	{
		document.getElementById("versio_ajax").href = loc;
		if (selectMunicipi != "") 
		{ document.getElementById("versio_ajax").href += "&idmuni="+selectMunicipi;
			document.getElementById("versio_ajax").href += "&ctl_municipi="+document.getElementById("ctl_municipi").value;
		}
		
		if (selectCarrer != "") document.getElementById("versio_ajax").href += "&tipus_cerca=adreca&idvia="+selectCarrer + "&idmuni="+resultat.idmunicipi;
		if (selectNum != "") document.getElementById("versio_ajax").href += "&tipus_cerca=adreca&ctl_num="+selectNum;
		if (selectToponim != "") document.getElementById("versio_ajax").href += "&tipus_cerca=toponim&ctl_toponim="+selectToponim;
		if (selectPoi != "") document.getElementById("versio_ajax").href += "&ctl_poi="+selectPoi.replace("'"," ");	
		document.getElementById("link_ajax").style.display = "";		
		_addEvent(document.getElementById("versio_ajax"),'click',function(){
				evaluaVersioAjax();
			});
		var c = llegirCookie("carrerer");
		if (c==null) 
		{
			cercadorM.setupEstils();
			cercadorM.capturaEvents();
			
			/*mapa.capturaEvents();
		  mapa.setupEstils();
		  zonaInfo.setupEstils();
		  zonaInfo.capturaEvents();*/
		  
			versioAjax = false;
			document.getElementById("versio_ajax").innerHTML = "Versi\u00F3 accessible";
			document.getElementById("versio_ajax").title = "Versi\u00F3 accessible";
			document.getElementById("versio_ajax").onclick="window.location = 'carrerer.php'"
		}
		else
			versioAjax = true;
	}
	else {
		versioAjax=true;
	}
	
	var aside = tab.init("asideTabs");	
	addHelpPoint();
});
function addHelpPoint(){	
	var _a = document.getElementById("asideTabs").parentNode.getElementsByTagName("a"),	
		found = 0,
		as = [],
		close = document.getElementById("helpPointClose");
	for (var i = 0; i < _a.length && !found; i++) {
		if (_a[i].className.match("helpPoint")) {
			found = 1;
			as.push(_a[i]);
		}
	}
	for (var i = 0; i < as.length; i++) {
		(function(){
			as[i].onclick = function(e){
				var e = e || window.event,
					target = e.target || e.srcElement;
				if (target.tagName.toLowerCase() == "a") {
					if (!document.getElementById("Ajuda").className.match("showPan")) {
						document.getElementById("Ajuda").className += " showPan";
					}
				}
				return false;
			}
		})();
	}
	close.onclick = function(){
		this.parentNode.className = this.parentNode.className.replace("showPan", "");
	}
	
}
var tab = {
	tab: null,
	panels: [],
	current: null,
	currentPanel: null,
	targets: [],
	init: function(tab){
		this.tab = document.getElementById(tab);
		this.panels = this.getPanels();
		this.targets = this.getTargets();
		var current = this.getCurrent();
		if (!current) {
			this.targets[0].parentNode.className += " current";
			this.current = this.targets[0].parentNode;
		}
		else {
			this.current = current.parentNode;
			this.currentPanel = this.panels[this.getId(this.current.childNodes[0])];
			this.switchPanel(this.current.childNodes[0]);
		}
		this.fire();
	},
	getId: function(target){
		return target.getAttribute("href").split("#")[1]
	},
	getCurrent: function(){
		var found = 0,
			response = null;
		for(var i=0; i<this.targets.length && !found; i++){
			if(this.targets[i].parentNode.className.match("current")){
				found = 1;
				response = this.targets[i];
			}
		}
		return response;
	},
	fire: function(){
		for(var i=0; i<this.targets.length; i++){
			var tar = this.targets[i];
			(function(sup){ tar.onclick = function(ev){
					sup.switchPanel(this);
					return false;
				};
			})(this);
		}
	},
	getPanels: function(){
		var founded = this.tab.getElementsByTagName("div"),
			response = {};
		for(var i=0; i<founded.length; i++){
			if (founded[i].className.match("tabPanel")) {
				response[founded[i].id] = founded[i];
			}
		}
		return response;
	},
	getTargets: function(){
		var ul = this.tab.getElementsByTagName("ul");
			li = ul[0].getElementsByTagName("li");
		return (function(){
			var response = [];
			for(var i=0; i<li.length;i++){
				if(li[i].getElementsByTagName("a"))
					response.push(li[i].getElementsByTagName("a")[0]);
			}
			return response;
		})();
	},
	switchPanel: function(target){
		var id = this.getId(target),
			wrapTarget = target.parentNode;		
		this.current.className = this.current.className.replace(/current/, "");
		wrapTarget.className += " current";
		this.current = wrapTarget;
		this.currentPanel.className = this.currentPanel.className.replace("current", "");
		this.panels[id].className = this.panels[id].className += "  current";
		this.currentPanel = this.panels[id];
		if (id == "adreces")
		{ 
			//$('ctl_carrer').value = "";
			$('ctl_carrer').focus();
			$('Ajuda_1').innerHTML = 'Ex: major 5, vic';
			$('Ajuda_2').innerHTML = 'Mallorca amb balmes barcelona<br />plaça de la Font, Tarragona<br />Barruera';
			/*$("Ajuda_adreces_1").style.visibility = "visible";
			$("Ajuda_adreces_2").style.visibility = "visible";
			$("Ajuda_indrets_1").style.visibility = "hidden";
			$("Ajuda_indrets_2").style.visibility = "hidden";
			$("Ajuda_punts_1").style.visibility = "hidden";
			$("Ajuda_punts_2").style.visibility = "hidden";
			$("Ajuda_adreces_1").style.display = "block";
			$("Ajuda_adreces_2").style.display = "block";
			$("Ajuda_indrets_1").style.display = "none";
			$("Ajuda_indrets_2").style.display = "none";
			$("Ajuda_punts_1").style.display = "none";
			$("Ajuda_punts_2").style.display = "none";
			if (!$("Ajuda_adreces_2").className.match("showPan")) {
						$("Ajuda_adreces_2").className += " showPan";
					}
			$("Ajuda_indrets_2").className.replace("showPan", "");
			$("Ajuda_punts_2").className.replace("showPan", "");*/
		}
		if (id == "toponims")
		{ 
			$('ctl_indret').style.display="block";
			$('ctl_indret').focus();
			$('ctl_indret').value = "";
			$('Ajuda_1').innerHTML = 'Ex: Platja Icària';
			$('Ajuda_2').innerHTML = 'Parc Olèrdola<br />Mas Pau<br />Pont del Diable';																	
			
			/*$("Ajuda_adreces_1").style.visibility = "hidden";
			$("Ajuda_adreces_2").style.visibility = "hidden";
			$("Ajuda_indrets_1").style.visibility = "visible";
			$("Ajuda_indrets_2").style.visibility = "visible";
			$("Ajuda_punts_1").style.visibility = "hidden";
			$("Ajuda_punts_2").style.visibility = "hidden";
			$("Ajuda_adreces_1").style.display = "none";
			$("Ajuda_adreces_2").style.display = "none";
			$("Ajuda_indrets_1").style.display = "block";
			$("Ajuda_indrets_2").style.display = "block";
			$("Ajuda_punts_1").style.display = "none";
			$("Ajuda_punts_2").style.display = "none";
			if (!$("Ajuda_indrets_2").className.match("showPan")) {
						$("Ajuda_indrets_2").className += " showPan";
					}
			$("Ajuda_adreces_2").className.replace("showPan", "");
			$("Ajuda_punts_2").className.replace("showPan", "");*/
		}
		if (id == "punts")
		{ 
			$('ctl_puntsI').style.display="block";
      $('ctl_puntsI').focus();
			$('ctl_puntsI').value = "";
			$('Ajuda_1').innerHTML = 'Ex: Museu del joguet';
			$('Ajuda_2').innerHTML = 'CAP Güell<br />Biblioteca de Tàrrega<br />Comissaria Badalona';
			/*$("Ajuda_adreces_1").style.visibility = "hidden";
			$("Ajuda_adreces_2").style.visibility = "hidden";
			$("Ajuda_indrets_1").style.visibility = "hidden";
			$("Ajuda_indrets_2").style.visibility = "hidden";
			$("Ajuda_punts_1").style.visibility = "visible";
			$("Ajuda_punts_2").style.visibility = "visible";
			$("Ajuda_adreces_1").style.display = "none";
			$("Ajuda_adreces_2").style.display = "none";
			$("Ajuda_indrets_1").style.display = "none";
			$("Ajuda_indrets_2").style.display = "none";
			$("Ajuda_punts_1").style.display = "block";
			$("Ajuda_punts_2").style.display = "block";
						if (!$("Ajuda_indrets_2").className.match("showPan")) {
						$("Ajuda_indrets_2").className += " showPan";
					}
			$("Ajuda_adreces_2").className.replace("showPan", "");
			$("Ajuda_punts_2").className.replace("showPan", "");*/
		}
	}
};

var cercadorM = new cercadorMunicipis();
var resultat = {
	   	 x: "",	   	
	   	 y: "",
	   	 ex: "",
	   	 ey: "",
	   	 idvia:  "",
	   	 municipi: "",
	   	 idmunicipi: "",
	   	 comarca: "",
	   	 idcomarca: "",
	     adreca: "",
	     llogaret: "",
		 carrer: "",
  	     portal: "",
  	     cruilla: "",
  	     idcruilla: "",	     
	     indret: "",
	     poi: "",
	     zoom: 9,
	     taula: "",
	     puntual: false,
	     puntualFilAriadna: false,
	     incidencia: ""
	   }
var xResultatFilAriadna = 0;
var yResultatFilAriadna = 0;	   
var delicious_callbacks = {};
var tempsDarreraResposta = 0;
var MaxResultats = 301;	 
var selectMunicipi="";
var selectLlogaret="";
var selectComarca="";
var selectCarrer="";
var selectToponim="";
var selectPoi="";
var selectTaula = "";
var selectIdVia1 = "";
var selectIdVia2 = "";
var selectNum = "";
var indexMostrats = 0;
var maxMostrats = 10;
var locsConsulta = "";
var locSeleccionat = "";
var dump = "";
  
function cercadorMunicipis(){
	var _pestanyaActiva = "dv_cercadorAdreca";
	var _contBackSpace = 0;
	this._loader;
	
	this.canviaPestanya = _canviaPestanya;
	this.canviaDivMunicipi = _canviaDivMunicipi;
	this.setupEstils = _setupEstils;
	this.mostraMapa = _mostraMapa;	
	this.mostraMissatge = _mostraMissatge;
	this.novaCerca = _novaCerca;
	this.capturaEvents = _capturaEvents;
	this.handleKeyUp = _handleKeyUp;
	this.registrarExtent = _registrarExtent;	

	this.preZoomComarca = _preZoomComarca;
	this.getZoomComarca = _getZoomComarca;
	this.gestionaZoomCom = _gestionaZoomCom;
	this.preZoomMunicipi = _preZoomMunicipi;
	this.preZoomMunicipi_Nom = _preZoomMunicipi_Nom;
	this.getZoomMunicipi = _getZoomMunicipi;	
	this.getZoomMunicipi_Nom = _getZoomMunicipi_Nom;	
	this.gestionaZoomMun = _gestionaZoomMun;
	this.getPrimerCandidat = _getPrimerCandidat;
	this.tractarPrimerCandidat = _tractarPrimerCandidat;
	this.inicialitzarResultat = _inicialitzarResultat;
	this.gestioResultat = _gestioResultat;
	this.getDadesExtra = _getDadesExtra;
	this.tractarDadesExtra = _tractarDadesExtra;
	this.extreureElements = _extreureElements;
	this.extreureElements_JSON = _extreureElements_JSON;
	this.MostraSeguents = _MostraSeguents;
	this.MostraAnteriors = _MostraAnteriors;
	this.prePopulateDiv = _prePopulateDiv;
	this.populateDiv = _populateDiv;
	this.populateDiv_JSON = _populateDiv_JSON;
	
	this.zoomFilAriadna3 = _zoomFilAriadna3;
	this.actFilAriadna3 = _actFilAriadna3;
	this.actFilAriadnaComarca = _actFilAriadnaComarca;
	this.actFilAriadnaPoblacio = _actFilAriadnaPoblacio;
	this.esborrarSel = _esborrarSel;
	this.ocultaFilAriadna = _ocultaFilAriadna;
	this.preInfoPunt = _preInfoPunt;
	this.gestionaInfoPunt = _gestionaInfoPunt;
	this.gestionaInfoPunt_RecuperarComarca = _gestionaInfoPunt_RecuperarComarca;
	this.mostraLocalitzacionsMunicipis_gestionaInfoPunt = _mostraLocalitzacionsMunicipis_gestionaInfoPunt;
	this.cercaMunicipi_gestionaInfoPunt = _cercaMunicipi_gestionaInfoPunt;

	this.populateDiv_JSON_Indret_o_Poi = _populateDiv_JSON_Indret_o_Poi;
	this.MostraSeguents_Indret_o_POI = _MostraSeguents_Indret_o_POI;
	this.MostraAnteriors_Indret_o_POI = _MostraAnteriors_Indret_o_POI;
	this.gestioResultatPerIndex = _gestioResultatPerIndex;
	this.getPoi_Indrets2 = _getPoi_Indrets2;


	function _canviaPestanya(id) {
			_pestanyaActiva = id;
			var opAdreca = document.getElementById("ps_pestanyaAdreca")
			var opIndret = document.getElementById("ps_pestanyaIndret");
			var opPuntsI = document.getElementById("ps_pestanyaPuntsI");
			var oAdreca = document.getElementById("dv_cercadorAdreca")
			var oIndret = document.getElementById("dv_cercadorIndret");
			var oPuntsI = document.getElementById("dv_cercadorPuntsInteres");
			
			switch (_pestanyaActiva) {
				case "dv_cercadorAdreca":
					opAdreca.className = "FW_sPestanyesSel";
					opIndret.className = "FW_sPestanyesNoSelGris";
					opPuntsI.className = "FW_sPestanyesNoSelGris_ultim";
					oAdreca.style.display = "";
					oIndret.style.display = "none";
					oPuntsI.style.display = "none";
					
					break;
				case "dv_cercadorIndret":
					opAdreca.className = "FW_sPestanyesNoSelGris";
					opIndret.className = "FW_sPestanyesSel";
					opPuntsI.className = "FW_sPestanyesNoSelGris_ultim";
					oAdreca.style.display = "none";
					oIndret.style.display = "";
					oPuntsI.style.display = "none";
					break;
				case "dv_cercadorPuntsInteres":
					opAdreca.className = "FW_sPestanyesNoSelGris";
					opIndret.className = "FW_sPestanyesNoSelGris";
					opPuntsI.className = "FW_sPestanyesSel_ultim";
					oAdreca.style.display = "none";
					oIndret.style.display = "none";
					oPuntsI.style.display = "";
					break;
			}
			document.getElementById("ctl_municipi").focus();
			ocultaMissatge();
			_novaCerca();
	}
		
	function _canviaDivMunicipi(id){
		var divMunicipi = document.getElementById("dv_municipi");
		var parentMunicipi = divMunicipi.parentNode;
		
		parentMunicipi.removeChild(divMunicipi);
		var nouParent;
		switch (id) {
			case "tab1":
				nouParent = document.getElementById("dv_cercadorAdreca");
				nouParent.insertBefore(divMunicipi, nouParent.firstChild);
				break;
			case "tab2":
				nouParent = document.getElementById("dv_cercadorIndret");
				nouParent.insertBefore(divMunicipi, nouParent.firstChild);
				break;
			case "tab3":
				nouParent = document.getElementById("dv_cercadorPuntsInteres");
				nouParent.insertBefore(divMunicipi, nouParent.firstChild);
				break;
		}
		_novaCerca();
	}
	/* Inici funcions generals */
	function _setupEstils() {
		document.getElementById("ctl_carrer").style.width = 195 + "px";
		document.getElementById("ctl_indret").style.width = 195 + "px";
		document.getElementById("ctl_puntsI").style.width = 195 + "px";
		
		document.getElementById("ctl_carrer").disabled = false;
		document.getElementById("ctl_indret").disabled = false;
		document.getElementById("ctl_puntsI").disabled = false;
		//_novaCerca();
	}
	
	function _mostraMapa() {
		map.setCenter(new OpenLayers.LonLat(resultat.x,resultat.y),fzResultat, false, true);	
		if (resultat.incidencia != "") mapa.mostraMissatgeAvis(true,resultat.incidencia,false);
		actRessaltar(resultat.adreca);				
		zonaInfo.mostraResultatPI();
	}
	
	function _mostraMissatge(ntext,id) {
		if (ntext == "0results")
		{		 
			  if($('adreces').className.match("current"))			 
			  {
				  var nhtml = "<p>No s'ha localitzat l'adreça: <br/>";
					nhtml +=	"<strong>"+ $("ctl_carrer").value +"</strong></p>"; 	
					nhtml +=	"<div class='moreInfo'>";
					nhtml +=	"	<h5>Suggeriments</h5>";
					nhtml +=	"	<ul><li>";
					nhtml +=	"				Assegureu-vos que heu escrit una població.";
					nhtml +=	"			</li>";
					nhtml +=	"	<ul><li>";
					nhtml +=	"				Assegureu-vos que els noms dels carrers i les poblacions estan escrits correctament.";
					nhtml +=	"				Podeu introduir el nom, o part del nom, del carrer o població.";
					nhtml +=	"			</li>";
					nhtml +=	"			<li>";
					nhtml +=	"				No cal que introduïu codi postal, signes de puntuació (punts, comes...) o accents ni que diferencieu majúscules i minúscules.";
					nhtml +=	"			</li>";
					nhtml +=	"		</ul>";
					nhtml +=	"	</div>";
			  }
			  if($('toponims').className.match("current"))			  
			  {
				  var nhtml = "<p>No s'ha localitzat el top&ograve;nim: <br/>";
					nhtml +=	"<strong>"+ $("ctl_indret").value +"</strong></p>"; 	
					nhtml +=	"<div class='moreInfo'>";
					nhtml +=	"	<h5>Suggeriments</h5>";
					nhtml +=	"	<ul><li>";
					nhtml +=	"				Assegureu-vos que el nom del top&ograve;nim està escrit correctament.";
					nhtml +=	"			</li>";
					nhtml +=	"	<ul><li>";
					nhtml +=	"				Podeu introduir el nom, o part del nom, del top&ograve;nim.";
					nhtml +=	"			</li>";
					nhtml +=	"			<li>";
					nhtml +=	"				No introduïu la població, municipi o comarca on està ubicat el top&ograve;nim";
					nhtml +=	"			</li>";
					nhtml +=	"		</ul>";
					nhtml +=	"	</div>";
			  }
			  if ($('punts').className.match("current"))
			  {
				  var nhtml = "<p>No s'ha localitzat el punt d'interès: <br/>";
					nhtml +=	"<strong>"+ $("ctl_puntsI").value +"</strong></p>"; 	
					nhtml +=	"<div class='moreInfo'>";
					nhtml +=	"	<h5>Suggeriments</h5>";
					nhtml +=	"	<ul><li>";
					nhtml +=	"				Assegureu-vos que el nom del punt d'interès està escrit correctament. Podeu introduir una part del nom.";
					nhtml +=	"			</li>";
					nhtml +=	"	<ul><li>";
					nhtml +=	"				Podeu localitzar equipaments sanitaris, culturals, educatius...  (consulteu les tipologies a l’apartat <em>Punts d’interès</em>). També podeu localitzar organismes oficials de la Generalitat.";
					nhtml +=	"			</li>";					
					nhtml +=	"		</ul>";
					nhtml +=	"	</div>";
			  }
				var resultDiv = $("results");
				resultDiv.style.visibility = 'visible';
				resultDiv.innerHTML = nhtml;
		}	
		else
		{		 
			  var nhtml = "<p>"+ntext+"</p>";
				var resultDiv = $("results");
				resultDiv.style.visibility = 'visible';
				resultDiv.innerHTML = nhtml;
		}					
	}
	
	function _novaCerca() {
		 resultat = {
	   	 x: "0",	   	
	   	 y: "0",
	   	 extensio_x: "",
	   	 extensio_y: "",
	   	 municipi: "",
	   	 idmunicipi: "",
	   	 comarca: "",
	   	 idcomarca: "",
	     carrer: "",
	     portal: "",
	     indret: "",
	     poi: "",
	     zoom: 9,
	     puntual: false,
	     puntualFilAriadna: false
	   }		
		ocultaMissatge();
		locSeleccionat = "";
	}
	function _capturaEvents() {
		_addEvent(document.getElementById("ctl_carrer"),'keyup',cercadorM.handleKeyUp);
		_addEvent(document.getElementById("ctl_indret"),'keyup',cercadorM.handleKeyUp);
		_addEvent(document.getElementById("ctl_puntsI"),'keyup',cercadorM.handleKeyUp);		
		_addEvent(document.getElementById("bt_mostracarrer"),'click',_loader.getCarrers);					
		_addEvent(document.getElementById("bt_mostraindret"),'click',_loader.getIndrets);					
		_addEvent(document.getElementById("bt_mostrapuntsI"),'click',_loader.getPuntsI);
		_addEvent(document.getElementById("linkInteres"),'click',function(){
			zonaInfo.mostraPestanya("tab4");
		});
		_addEvent(document.getElementById("linkPropaqui"),'click',function(){
			zonaInfo.mostraPestanya("tab5_mostra_pestanya");
		});							
		}	
	function _handleKeyUp(e) {
		var keyID = (window.event) ? event.keyCode : e.keyCode;
		var id = (window.event) ? event.srcElement.id : this.id;
		if (keyID == 13) {
			switch(id) {				
				case "ctl_carrer":
					_loader.getCarrers();
					break;
				case "ctl_indret":
					_loader.getIndrets();
					break;
				case "ctl_puntsI":
					_loader.getPuntsI();
					break;
			}
		}
	}
		function _registrarExtent() {
			cercadorM.esborrarSel();
	    //ocultaMissatge();
			var trobatCoord = false;
			xResultat = 0;
			yResultat = 0;
			fzResultat = 0;
			var sInc_AltreTipus = 0;
			var sInc_Portal_Proper = 0;
			var sInc_NoNumeracio = 0;
			var sInc_RepSimp = 0;
			var sInc_Carrer = 0;
			var sInc_Poblacio = 0;
			if ((resultat.tipus == "municipi") || (resultat.tipus == "municipi_gestionaInfoPunt"))
			{
				locPuntInteres="";				
				xMunicipiValidat="";
				yMunicipiValidat="";	
				selectMunicipi = resultat.idmunicipi;		
				if (resultat.x != 0)
				{
					resultat.puntual = false;
					resultat.puntualFilAriadna = false;
					xResultat = resultat.x;
					yResultat = resultat.y;
					xMunicipiValidat = xResultat;
					yMunicipiValidat = yResultat;
					if (resultat.ex != "")
					{
						var minx=xResultat-(resultat.ex/2);
						var maxx=xResultat+(resultat.ex/2);
						var miny=yResultat-(resultat.ey/2);
						var maxy=yResultat+(resultat.ey/2);   
						var bounds = new OpenLayers.Bounds(minx,miny,maxx,maxy);
						var nzoom = map.getZoomForExtent(bounds,false);
						if (nzoom >= 5) nzoom = 5;
				  }
				  else
				  	//es llogaret
				  	var nzoom = 6;
					fzResultat = nzoom;
					fzMunicipiValidat = nzoom;
					trobatCoord = true;
				}							
			}
			if (resultat.tipus == "carrer") 
			{
				locPuntInteres="";
				selectCarrer = resultat.idvia;
					if (resultat.x != 0)
					{
						resultat.puntual = false;
						resultat.puntualFilAriadna = false;
						xResultat = resultat.x;
						yResultat = resultat.y;
						if (resultat.ex != "")
						{
							var minx=xResultat-(resultat.ex/2);
							var maxx=xResultat+(resultat.ex/2);
							var miny=yResultat-(resultat.ey/2);
							var maxy=yResultat+(resultat.ey/2);   
							var bounds = new OpenLayers.Bounds(minx,miny,maxx,maxy);
							var nzoom = map.getZoomForExtent(bounds,false);
							//if (nzoom >= 5) nzoom = 5;
					  }
					  else
				  		var nzoom = 9;
						fzResultat = nzoom;
						trobatCoord = true;
					//}
				}

			}
			if (resultat.tipus == "cruilla")
			{ 
					if ((resultat.x != 0) && (resultat.y != 0))
					{
					// Cas especial: via sense numeracio. Es retornen coordenades d'algun punt de la via
					// Exemple: c.Josep Clarà i Ayats. Girona
						trobatCoord = true;								
						resultat.puntual = true;
						resultat.puntualFilAriadna = true;
						xResultat = resultat.x;
						yResultat =resultat.y;
						fzResultat = 8;	
						VeureMapa = 1;							
					}
					else					
						trobatCoord = false;
			}
			if (resultat.tipus == "portal") 
			{
				locPuntInteres="";					
				if (resultat.portal == 0)
				{								
					if ((resultat.x != 0) && (resultat.y != 0))
					{
					// Cas especial: via sense numeracio. Es retornen coordenades d'algun punt de la via
					// Exemple: c.Josep Clarà i Ayats. Girona
						trobatCoord = true;					
						resultat.puntual = true;
						resultat.puntualFilAriadna = true;
						xResultat = resultat.x;
						yResultat =resultat.y;
						fzResultat = 8;	
						VeureMapa = 1;							
					}
					else					
						trobatCoord = false;
				}
				else
				{							
					if ((resultat.x == 0) || (resultat.y == 0))
						trobatCoord = false;
					else
					{
						trobatCoord = true;
						resultat.puntual = true;
						resultat.puntualFilAriadna = true;
						xResultat = resultat.x;
						yResultat =resultat.y;
						selectNum=resultat.portal;
						selectCarrer = resultat.idvia;;
						fzResultat = 8;
						trobatCoord = true;	
						VeureMapa = 1;	
					}
				}
			}

			if (resultat.tipus == "indret") 
			{

				if ((resultat.x == 0) || (resultat.y == 0))
					trobatCoord = false;
				else
					{
					resultat.puntual = true;
					resultat.puntualFilAriadna = true;
					fzResultat = 5;
				  selectToponim=resultat.adreca;
					trobatCoord = true;
					VeureMapa = 1;
					}
			}
			if (resultat.tipus == "puntsI") 
			{				
				zonaInfo.mostraPestanya("tab4");
				if ((resultat.x == 0) || (resultat.y == 0))
					trobatCoord = false;
				else
					{
					resultat.puntual = true;
					resultat.puntualFilAriadna = true;
					selectTaula = resultat.taula;	
					fzResultat = 8;	
					selectPoi=resultat.adreca;
					tipusPOI = selectTaula;
					trobatCoord = true;
					VeureMapa = 1;								
					}
			}
			
			if (!trobatCoord)
					cercadorM.mostraMissatge("0results",resultat.tipus);
			else	
				{
				if (resultat.tipus == "municipi_gestionaInfoPunt")
				{ 
					selectMunicipi="";
					resultat.puntual = true;
					resultat.puntualFilAriadna = true;
					if (resultat.comarca != "") cercadorM.actFilAriadnaComarca(resultat.idcomarca,resultat.comarca);	
					cercadorM.actFilAriadnaPoblacio(resultat.idmunicipi,resultat.municipi);	
					document.getElementById("a_FilAriadna3").innerHTML = "";
					//actRessaltar();
				}
				else
					{
						//if (VeureMapa == 1) _mostraMapa();		
						cercadorM.mostraMapa();
					}			
				}			
}

	/* Fi funcions generals */
	

//-----------------------------------------------
	function _preZoomComarca(com) {
	//-----------------------------------------------
		selectComarca = com;
		selectCarrer = "";	
		selectMunicipi = "";
		selectNum="";
		//selectToponim="";
		selectPoi="";				
		cercadorM.getZoomComarca(com);		       
	}	
		//-----------------------------------------------
	function _getZoomComarca(com) {
	//-----------------------------------------------
    selectComarca = com;
	var params = $H({
    id: com
    });
    jsonp(parametres.urlSpatialsearch + "getDataSpatialMatch", params, "cercadorM.gestionaZoomCom");		       
}
//----------------------------
	function _gestionaZoomCom(resp) {
	//----------------------------						
		var nstr = resp.toString();
		//document.getElementById("debug2").innerHTML=dump(nstr);
		var nloc = nstr.split(' / ');								   
		var minx=nloc[1];
		var maxx=nloc[3];
		var miny=nloc[2];
		var maxy=nloc[4];
		var bounds = new OpenLayers.Bounds(minx,miny,maxx,maxy);
		var nxy= bounds.getCenterLonLat();
		var nzoom = map.getZoomForExtent(bounds,false);	
		actRessaltar();
		map.setCenter(nxy,nzoom, false, true);
						
	}
	//-----------------------------------------------
	function _preZoomMunicipi(mun) {
	//-----------------------------------------------
		selectMunicipi = mun;
		selectCarrer = "";	
		selectComarca = "";
		selectNum="";
		//selectToponim="";
		selectPoi="";			
		cercadorM.getZoomMunicipi(mun);		       
	}	
		//-----------------------------------------------
	function _preZoomMunicipi_Nom(nommun) {
	//-----------------------------------------------
		selectMunicipi = "";
		selectCarrer = "";	
		selectComarca = "";
		selectNum="";
		//selectToponim="";
		selectPoi="";			
		cercadorM.getZoomMunicipi_Nom(nommun);		       
	}	
	//-----------------------------------------------
	function _getZoomMunicipi(mun) {
	//-----------------------------------------------
    var params = $H({
	    maxresultats: MaxResultats,
	    metode: "localitzaAdreca",
	    ordre: "alfabetic",
	    trobaTots: "no"}); 
	  params.set('idMunicipi',mun);	 
	  jsonp(parametres.urlGeocodificador, params, "cercadorM.gestionaZoomMun");
}	
		//-----------------------------------------------
	function _getZoomMunicipi_Nom(nommun) {
	//-----------------------------------------------
    var params = $H({
	    maxresultats: MaxResultats,
	    metode: "localitzaAdreca",
	    ordre: "alfabetic",
	    trobaTots: "no"}); 
	  params.set('municipi',nommun);	 
	  jsonp(parametres.urlGeocodificador, params, "cercadorM.gestionaZoomMun");
}	
		//----------------------------
	function _gestionaZoomMun(resp) {
	//----------------------------				
		if (resp.length > 0)
		{
			var x = resp[0].coordenades.x;
			var y = resp[0].coordenades.y;			
			var ex = resp[0].extensio.x;
			var ey = resp[0].extensio.y;
			
			var minx=x-(ex/2);
			var maxx=x+(ex/2);
			var miny=y-(ey/2);
			var maxy=y+(ey/2); 
			
			
			var bounds = new OpenLayers.Bounds(minx,miny,maxx,maxy);
			var nxy= bounds.getCenterLonLat();
			var nzoom = map.getZoomForExtent(bounds,false);	
			selectMunicipi = resp[0].adreca.municipi.id;	
			actRessaltar();
			map.setCenter(nxy,nzoom, false, true);
		}
	}	
//---------------------------- 
		function _getPrimerCandidat(peticio){
//----------------------------
		var request =  OpenLayers.Request.GET({
		    url: parametres.urlMIC + escape(peticio),
		    callback:cercadorM.tractarPrimerCandidat
    });
	}	
//---------------------------- 	
function _tractarPrimerCandidat(httpRequest){ 
//---------------------------- 	
		if(httpRequest.readyState==4) 
		{ 
			if(httpRequest.status==200) 
			{
		  //clearTimeout(valTimeout); 
		  var text = httpRequest.responseText; 
		  if (window.DOMParser)
        { 
        	parser=new DOMParser(); 
		  		xmlDoc=parser.parseFromString(text,"text/xml"); 
		  	} 
		  else 
		  	{
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
					xmlDoc.async="false";
					xmlDoc.loadXML(text);
				} 
			var html = ""; 
			var temp = {
	   	 			adreca:   "",	
	   	 			municipi: "",
	   	 			tipus:    "",
	   	 			x:        "",
	   	 			y:        "",
	   	 			ex:        "",
  	   	 		ey:        "",
  	   	 		idvia:     "",
  	   	 		llogaret:  "",
  	   	 		carrer: "",
  	   	 		portal: "",
  	   	 		cruilla: "", 
  	   	 		idcruilla: "",
  	   	 		taula: "", 	   	 		
  	   	 		incidencia: ""};
			var item;
			if (xmlDoc.getElementsByTagName("item").length >0)
				{							
						item = xmlDoc.getElementsByTagName("item")[0];		
						temp = cercadorM.extreureElements(item);							
						resultat.x = temp.x;
						resultat.y = temp.y;
						cercadorM.inicialitzarResultat();
					  cercadorM.gestioResultat(temp);						
				}							
}
}
}	
//---------------------------- 
function _inicialitzarResultat(){
//---------------------------- 
resultat = {
	   	 x: "",	   	
	   	 y: "",
	   	 ex: "",
	   	 ey: "",
	   	 adreca: "",
	   	 idvia:  "",
	   	 taula: "",
	   	 municipi: "",
	   	 llogaret: "",
 	 	   carrer: "",
 	 		 portal: "",
 	 		 cruilla: "",
 	 		 idcruilla: "",	   	 
	   	 idmunicipi: "",
	   	 comarca: "",
	   	 idcomarca: "",
	     indret: "",
	     poi: "",
	     zoom: 9,
	     puntual: false,
	     puntualFilAriadna: false,
	     incidencia: ""
	   }	
}
//---------------------------- 
function _gestioResultat(temp){
//---------------------------- 
			 cercadorM.ocultaFilAriadna();
			 resultat.x = temp.x;	   	
			 resultat.y = temp.y;	 
			 resultat.ex = temp.ex;	 
			 resultat.ey = temp.ey;	 
			 resultat.municipi = temp.municipi;	 
			 resultat.llogaret = temp.llogaret;	 
			 resultat.adreca = temp.adreca;	 
			 resultat.tipus = temp.tipus;	 
			 resultat.idvia = temp.idvia;	
			 resultat.carrer = temp.carrer;
			 resultat.portal = temp.portal;
			 resultat.cruilla = temp.cruilla;
			 resultat.idcruilla = temp.idcruilla;
			 resultat.incidencia = temp.incidencia;
			 resultat.idmunicipi = temp.idmunicipi;		
			 resultat.idcomarca = temp.idcomarca;		
			 resultat.comarca = temp.comarca;		
			 resultat.taula = temp.taula;		
			 //cercadorM.getDadesExtra(temp.municipi);
			 if (resultat.idcomarca != "") cercadorM.actFilAriadnaComarca(resultat.idcomarca,resultat.comarca);	
		   cercadorM.actFilAriadnaPoblacio(resultat.idmunicipi,resultat.municipi);	
		   cercadorM.actFilAriadna3(resultat.adreca);
			 cercadorM.registrarExtent();					 
}


//---------------------------- 
function _gestioResultatPerIndex(index){
//---------------------------- 
			 cercadorM.inicialitzarResultat();
			 locSeleccionat = locsConsulta[index];
       var temp = cercadorM.extreureElements_JSON(locSeleccionat);	 
			 cercadorM.inicialitzarResultat();
			 cercadorM.gestioResultat(temp);		 
}
//---------------------------- 
	function _getDadesExtra(municipi){
//---------------------------- 
		var params = $H({
	    maxresultats: MaxResultats,
	    metode: "localitzaAdreca",
	    ordre: "alfabetic",
	    trobaTots: "no"}); 	    
	    
	    params.set("municipi", municipi);
	        
	    jsonp(parametres.urlGeocodificador, params, "cercadorM.tractarDadesExtra");		
	}
//---------------------------- 
	function _tractarDadesExtra(resposta){ 					
//---------------------------- 
			var nstr = resposta[0];
			if (resposta.length >0)
			{							
						resultat.idmunicipi = resposta[0].adreca.municipi.id;		
						resultat.idcomarca = resposta[0].adreca.comarca.id;		
						resultat.comarca = resposta[0].adreca.comarca.nom;																
			}	
			if (resultat.idcomarca != "") cercadorM.actFilAriadnaComarca(resultat.idcomarca,resultat.comarca);	
		  cercadorM.actFilAriadnaPoblacio(resultat.idmunicipi,resultat.municipi);	
		  cercadorM.actFilAriadna3(resultat.idvia);
			cercadorM.registrarExtent();						
}
//---------------------------- 
	function _extreureElements(item) {
//---------------------------- 			
				var temp = {
	   	 			adreca:   "",	
	   	 			municipi: "",
	   	 			tipus:    "",
	   	 			x:        "",
	   	 			y:        "",
	   	 			ex:       "",
  	   	 		ey:       "",
  	   	 		idvia:    "",
  	   	 		taula: "",
  	   	 		llogaret:"",
  	   	 		idllogaret:"",
  	   	 		carrer: "",
  	   	 		portal: "",
  	   	 		cruilla: "",
  	   	 		idcruilla: "",  	   	 		
  	   	 		incidencia: "" };  	   	 		
						temp.tipus = "municipi";
						temp.adreca = "";
						if (item.getElementsByTagName("Incidencies").length > 0)
			      {				    	 
							var id_incidencia = item.getElementsByTagName("Incidencies")[0].getElementsByTagName("Id")[0].childNodes[0].nodeValue;
							if (id_incidencia == 102)
								temp.incidencia = item.getElementsByTagName("Incidencies")[0].getElementsByTagName("Descripcio")[0].childNodes[0].nodeValue;
							if ((id_incidencia == 118) || (id_incidencia == 120))
							{
							  temp.incidencia = "Incidencia critica";
							  return temp;
							}
						}
						if (item.getElementsByTagName("Cruilla").length == 0)
						{
											if (item.getElementsByTagName("valid")[0].childNodes[0].nodeValue == 'true')
											{														
												temp.tipus = "carrer";
												if (item.getElementsByTagName("Via").length > 0)
												{
													if (item.getElementsByTagName("Via")[0].getElementsByTagName('Tipus').length > 0)
														temp.adreca = item.getElementsByTagName("Via")[0].getElementsByTagName("Tipus")[0].childNodes[0].nodeValue + " ";
													if (item.getElementsByTagName("Via")[0].getElementsByTagName('Article').length > 0)
													{
													if (item.getElementsByTagName("Via")[0].getElementsByTagName("Article")[0].childNodes.length > 0)
														temp.adreca += item.getElementsByTagName("Via")[0].getElementsByTagName("Article")[0].childNodes[0].nodeValue+ " ";
													}
													temp.adreca += item.getElementsByTagName("Via")[0].getElementsByTagName("Nom")[0].childNodes[0].nodeValue;							
													temp.carrer = temp.adreca;
												temp.idvia = item.getElementsByTagName("Via")[0].getElementsByTagName("Id")[0].childNodes[0].nodeValue;
											  }
											  if (item.getElementsByTagName('Portal').length > 0)
											  {
													temp.portal = item.getElementsByTagName("Portal")[0].childNodes[0].nodeValue;																										
													if (temp.portal == "0") 
														temp.portal == "";
													else
													{
														temp.tipus = "portal";
														temp.adreca += ", "+ item.getElementsByTagName("Portal")[0].childNodes[0].nodeValue + " ";
													}
												}
											}
					  }
					  else
					  {
					  					temp.tipus = "cruilla";
											if (item.getElementsByTagName("Vies")[0].getElementsByTagName("Tipus").length > 0)
											{	
												if (item.getElementsByTagName("Vies")[0].getElementsByTagName("Tipus")[0].childNodes.length > 0)
													temp.carrer = item.getElementsByTagName("Vies")[0].getElementsByTagName("Tipus")[0].childNodes[0].nodeValue + " ";
											}
											if (item.getElementsByTagName("Vies")[0].getElementsByTagName("Article").length > 0)
											{
													if (item.getElementsByTagName("Vies")[0].getElementsByTagName("Article")[0].childNodes.length > 0)
													temp.carrer += item.getElementsByTagName("Vies")[0].getElementsByTagName("Article")[0].childNodes[0].nodeValue+ " ";
											}
											temp.carrer += item.getElementsByTagName("Vies")[0].getElementsByTagName("Nom")[0].childNodes[0].nodeValue + " ";							
											if (item.getElementsByTagName("Vies")[0].getElementsByTagName("Id").length > 0)
												temp.idvia = item.getElementsByTagName("Vies")[0].getElementsByTagName("Id")[0].childNodes[0].nodeValue + " ";
											
											if (item.getElementsByTagName("Vies")[1].getElementsByTagName("Tipus").length > 0)
											{	if (item.getElementsByTagName("Vies")[1].getElementsByTagName("Tipus")[0].childNodes.length > 0)	
													temp.cruilla = item.getElementsByTagName("Vies")[1].getElementsByTagName("Tipus")[0].childNodes[0].nodeValue + " ";
											}
											if (item.getElementsByTagName("Vies")[1].getElementsByTagName('Article').length > 0)
											{	if (item.getElementsByTagName("Vies")[1].getElementsByTagName("Article")[0].childNodes.length > 0)
													temp.cruilla += item.getElementsByTagName("Vies")[1].getElementsByTagName("Article")[0].childNodes[0].nodeValue+ " ";
											}
											temp.cruilla += item.getElementsByTagName("Vies")[1].getElementsByTagName("Nom")[0].childNodes[0].nodeValue + " ";							
											if (item.getElementsByTagName("Vies")[1].getElementsByTagName("Id").length > 0)
												temp.idcruilla += item.getElementsByTagName("Vies")[1].getElementsByTagName("Id")[0].childNodes[0].nodeValue + " ";							
											temp.adreca = temp.carrer + " amb " + temp.cruilla;
										  
					  }	
						if (item.getElementsByTagName("Llogaret").length > 0)
						{
							if (item.getElementsByTagName("Llogaret")[0].getElementsByTagName("nom").length > 0)
						  {
						  	temp.llogaret = item.getElementsByTagName("Llogaret")[0].getElementsByTagName("nom")[0].childNodes[0].nodeValue;
						  	temp.idllogaret = item.getElementsByTagName("Llogaret")[0].getElementsByTagName("id")[0].childNodes[0].nodeValue;
						  }
						}
						
						temp.municipi = item.getElementsByTagName("Poblacio")[0].childNodes[0].nodeValue;					  							
						if (item.getElementsByTagName("Cruilla").length == 0)
						{
						  temp.x = item.getElementsByTagName("Coordenades")[0].getElementsByTagName("X")[0].childNodes[0].nodeValue;
						  temp.y = item.getElementsByTagName("Coordenades")[0].getElementsByTagName("Y")[0].childNodes[0].nodeValue;
							temp.ex = item.getElementsByTagName("Extensio")[0].getElementsByTagName("X")[0].childNodes[0].nodeValue;
						  temp.ey = item.getElementsByTagName("Extensio")[0].getElementsByTagName("Y")[0].childNodes[0].nodeValue;
				   	}
				   	
						
return temp;
}											
	//---------------------------- 
	function _MostraSeguents()
	//---------------------------- 
{
	indexMostrats= indexMostrats + maxMostrats;
	_loader.getCarrers_index(indexMostrats);
}
	//---------------------------- 
	function _MostraAnteriors()
	//---------------------------- 
{
	indexMostrats= indexMostrats - maxMostrats;
	_loader.getCarrers_index(indexMostrats);
}

	//---------------------------- 
	function _MostraSeguents_Indret_o_POI()
	//---------------------------- 
{
	indexMostrats= indexMostrats + maxMostrats;
	cercadorM.populateDiv_JSON_Indret_o_Poi(locsConsulta);
}
	//---------------------------- 
	function _MostraAnteriors_Indret_o_POI()
	//---------------------------- 
{
	indexMostrats= indexMostrats - maxMostrats;
	cercadorM.populateDiv_JSON_Indret_o_Poi(locsConsulta);
}
//---------------------------- 
	function _zoomFilAriadna3(id) {
	//---------------------------- 		
 	  selectMunicipi = "";
		selectComarca = "";
		selectNum="";
		//selectToponim="";
		selectPoi="";				
		selectCarrer = id;		
		actRessaltar();
		map.setCenter(new OpenLayers.LonLat(xResultatFilAriadna,yResultatFilAriadna),fzResultat, false, true);			
	} 	
	//---------------------------- 
function _actFilAriadna3(idCarrer) {
	//---------------------------- 
	resultat.puntualFilAriadna = resultat.puntual;
	xResultatFilAriadna = resultat.x;
	yResultatFilAriadna = resultat.y;
	var n_filAriadna = document.getElementById("a_FilAriadna3"); 
	if ((resultat.adreca != "") && (resultat.adreca != " "))
	{				
		n_filAriadna.onclick = function() {cercadorM.zoomFilAriadna3(resultat.idvia)};
		n_filAriadna.innerHTML = resultat.adreca;
		if (resultat.llogaret != "") n_filAriadna.innerHTML += " (nucli de poblaci&oacute;:" + resultat.llogaret + ")";
		n_filAriadna.href = "#";
		n_filAriadna.style.visibility = "visible";
		var sp_filAriadna = document.getElementById("sp_FilAriadna2"); 
		sp_filAriadna.style.visibility = "visible";
	}
	else
	{
		n_filAriadna.style.visibility = "hidden";
		var sp_filAriadna = document.getElementById("sp_FilAriadna2"); 
		sp_filAriadna.style.visibility = "hidden";
	}
}
	//---------------------------- 
function _prePopulateDiv(httpRequest)
	//---------------------------- 
{
	_desbloquejaCercador();
	if(httpRequest.readyState==4) 
		{ 
			if(httpRequest.status==200) 
			{
		  var text = httpRequest.responseText; 
		  if (window.DOMParser)
		  	{ parser=new DOMParser(); 
		  		xmlDoc=parser.parseFromString(text,"text/xml"); 
		  	} 
		  else 
		  	{
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
					xmlDoc.async="false";
					xmlDoc.loadXML(text);
				} 
			cercadorM.populateDiv(xmlDoc)
		}
	}
} 
function eliminaAccents(temp){
	/*var tmp_this = temp.toLowerCase();
	var arr_busca = "áàéèíìóòúùñüïç".split("");
	var arr_reemplaza = "aaeeiioouunuic".split("");
	for(var i=0; i<arr_busca.length; i++ ){
		tmp_this = tmp_this.replace(arr_busca[i],arr_reemplaza[i]);
	}
	return tmp_this;*/
	return temp;
}
//---------------------------- 
function _populateDiv(xmlDoc){ 		
//---------------------------- 
				_desbloquejaCercador();
				var html = ""; 
				cercadorM.esborrarSel();
				var temp = {
					adreca:   "",	
					municipi: "",
					comarca: "",
					idcomarca: "",	   	 			
					tipus:    "",
					x:        "",
					y:        "",
					ex:        "",
  	   	 		ey:        "",
  	   	 		idvia:        "",
  	   	 		llogaret: "",
  	   	 		idllogaret: "",
  	   	 		carrer: "",
  	   	 		portal: "",
  	   	 		cruilla: "",
  	   	 		idcruilla: "",
  	   	 		taula: "",
  	   	 		incidencia: ""};
        var temp0 = temp;  	   	 		
  	   	var item;
  	   	var nombreTrobats=xmlDoc.getElementsByTagName("item").length;  	    
 	   	
  	   //	alert("nombreTrobats="+nombreTrobats);
  	   	var massaTrobats = false;
  	   	var nombreMostrats = nombreTrobats;
  	   	var mostratsAra  = nombreTrobats;
				if (nombreTrobats >0)
				{							
							if (nombreTrobats > maxMostrats)							 
							{
									nombreMostrats=maxMostrats+indexMostrats;
									if (nombreMostrats > nombreTrobats) nombreMostrats = nombreTrobats;
									massaTrobats = true;
							}
							mostratsAra = nombreMostrats - indexMostrats;
							if (indexMostrats >0)
							{
								html += "<div class='prevResults'><p><a href='#' onclick='cercadorM.MostraAnteriors()'>Resultats anteriors</a></p></div>";
							}
							for (i=indexMostrats;i<nombreMostrats;i++) 
							{
										item = xmlDoc.getElementsByTagName("item")[i];
										temp = cercadorM.extreureElements(item);
										//alert("temp.incidencia"+temp.incidencia);
										if (temp.incidencia == "Incidencia critica") mostratsAra = mostratsAra-1;
										if (temp.incidencia != "Incidencia critica")
										{
										if (i==0)
										{
											temp0 = temp;
											html += "<p id='primer_sel' class='resultFound'>";
											if (temp.tipus != "municipi")
											{												
													tm =eliminaAccents(temp.municipi);
													tm=tm.replace(/\'/gi,"#");
													tc =eliminaAccents(temp.cruilla);													
													tc=tc.replace(/\'/gi,"#");			
													html += "<a href='#' onclick='_loader.getCarrers2(0,"+indexMostrats+","+nombreMostrats+",\"" + encodeURIComponent(tm) + "\",\""+temp.idllogaret
 + "\",\""+temp.idvia+ "\",\""+temp.portal+ "\",\"" +encodeURIComponent(tc) + "\",\"" +temp.idcruilla+ "\")'>";
												html += temp.adreca;												
												if (temp.llogaret != "")												
													html += " ("+ temp.llogaret + ")";
												html += "</a><br />";
											  html += "			<strong>" + temp.municipi + "</strong>";
										  }
										  else
										  	{
												tm =eliminaAccents(temp.municipi);
												tm=tm.replace(/\'/gi,"#");
												tc =eliminaAccents(temp.cruilla);													
												tc=tc.replace(/\'/gi,"#");
												html += "<a href='#' onclick='_loader.getCarrers2(0,"+indexMostrats+","+nombreMostrats+",\"" + encodeURIComponent(tm) + "\",\""+temp.idllogaret
 + "\",\""+temp.idvia+ "\",\""+temp.portal+ "\",\"" +encodeURIComponent(tc) + "\",\"" +temp.idcruilla+ "\")'>";
 												if (temp.llogaret != "")
 													html += " ("+ temp.llogaret + ")";
											  html += "			<strong>" + temp.municipi + "</strong></a>";
										  }
											html += "		</p>";
											resultat.x = temp.x;
											resultat.y = temp.y;
									  }
										else
										{
											  if ((i == indexMostrats) || (i==1))	html += "<div class='moreInfo'>";
												if (i==1) html += "	<h5>Altres adreces localitzades:</h5>";
												if ((i == indexMostrats) || (i==1))	html += "<ul>";
											  											   												
													  /*if (i==1)
													  	html += "<li class='resultatDestacat'>";
													  else*/
													  	html += "<li id='li_" + i + "' class='resultList'>";
														if (temp.tipus != "municipi")
														{
															tm =eliminaAccents(temp.municipi);
															tm=tm.replace(/\'/gi,"#");
													    tc =eliminaAccents(temp.cruilla);													
													    tc=tc.replace(/\'/gi,"#"); ;
															html += "<a href='#' onclick='_loader.getCarrers2("+i+","+indexMostrats+","+nombreMostrats+",\"" + encodeURIComponent(tm) + "\",\""+temp.idllogaret
 + "\",\""+temp.idvia+ "\",\""+temp.portal+ "\",\"" +encodeURIComponent(tc) + "\",\"" +temp.idcruilla+ "\")'>";
															html += temp.adreca;
															
															if (temp.llogaret != "")
													    	html += " ("+ temp.llogaret + ")";
															html += "</a><br />";
													    html += temp.municipi;
													  }
													  else
													  	{
															tm =eliminaAccents(temp.municipi);
															tm=tm.replace(/\'/gi,"#");
													    tc =eliminaAccents(temp.cruilla);													
													    tc=tc.replace(/\'/gi,"#"); 
															html += "<a href='#' onclick='_loader.getCarrers2("+i+","+indexMostrats+","+nombreMostrats+",\"" + encodeURIComponent(tm) + "\",\""+temp.idllogaret
 + "\",\""+temp.idvia+ "\",\""+temp.portal+ "\",\"" +encodeURIComponent(tc) + "\",\"" +temp.idcruilla+ "\")'>";
																  if (temp.llogaret != "")
			 													html += " ("+ temp.llogaret + ")";
														  html += "			<strong >" + temp.municipi + "</strong></a>";
													  }
														html += "</li>";
														html += "<br/>";											  																						
										}
							} 							
							//if (xmlDoc.getElementsByTagName("item").length >1) html += "</ul></div>";
						}
							if (xmlDoc.getElementsByTagName("item").length >1) html += "</ul></div>";
							if (nombreMostrats<nombreTrobats)
							{
								html += "<div class='moreResults'><p><a href='#' onclick='cercadorM.MostraSeguents()'>Mostra m&eacute;s resultats</a></p></div>";
							}
							var resultDiv=document.getElementById("results"); 
							resultDiv.style.visibility = 'visible';
							resultDiv.innerHTML = html; 
			  }
			  if (mostratsAra==0) cercadorM.mostraMissatge("0results","carrers"); 
				cercadorM.inicialitzarResultat();
				if (mostratsAra >0) _loader.getCarrers2(0,indexMostrats,nombreMostrats,eliminaAccents(temp0.municipi),temp0.idllogaret,temp0.idvia,temp0.portal,eliminaAccents(temp0.cruilla),temp0.idcruilla);
}
//---------------------------- 
function _populateDiv_JSON(locs){
//---------------------------- 	
	_desbloquejaCercador();
	if (locs.length > 0)
	{			  
				var i = 0;
				var temp = cercadorM.extreureElements_JSON(locs[i]);
				locsConsulta = locs;												  
				cercadorM.inicialitzarResultat();
				cercadorM.gestioResultat(temp);														 
 }
}
//---------------------------- 
function _populateDiv_JSON_Indret_o_Poi(locs){
//---------------------------- 	
	_desbloquejaCercador();
	//document.getElementById("debug2").innerHTML=dump2(locs);
  			var html = ""; 
			var temp = {
   	 			adreca:   "",	
   	 			municipi: "",
   	 			comarca: "",
   	 			idcomarca: "",
   	 			tipus:    "",
   	 			x:        "",
   	 			y:        "",
   	 			ex:        "",
  	   	 		ey:        "",
  	   	 		idvia:        "",
  	   	 		llogaret: "",
  	   	 		idllogaret: "",
  	   	 		carrer: "",
  	   	 		portal: "",
  	   	 		cruilla: "",
  	   	 		idcruilla: "",
  	   	 		taula: "",
  	   	 		incidencia: ""};	 		
  	   	var temp0 = temp;  	  
			var item;
  	   	var nombreTrobats=locs.length;
  	   	var massaTrobats = false;
  	   	var nombreMostrats = nombreTrobats;
  	   	var mostratsAra  = nombreTrobats;
  	   	locsConsulta = locs;
				if (nombreTrobats >0)
				{							
							if (nombreTrobats > maxMostrats)							 
							{
									nombreMostrats=maxMostrats+indexMostrats;
									if (nombreMostrats > nombreTrobats) nombreMostrats = nombreTrobats;
									massaTrobats = true;
							}
							mostratsAra = nombreMostrats - indexMostrats;
							if (indexMostrats>0)
							{
								html += "<div class='prevResults'><p><a href='#' onclick='cercadorM.MostraAnteriors_Indret_o_POI()'>Resultats anteriors</a></p></div>";
							}
							for (i=indexMostrats;i<nombreMostrats;i++) 
							{
										item = locs[i];
										temp = cercadorM.extreureElements_JSON(item);
										if (temp.incidencia == "Incidencia critica") mostratsAra = mostratsAra-1;
										if (temp.incidencia != "Incidencia critica")
										{
										if (i==0)
										{
											temp0 = temp;
											html += "<p id='primer_sel' class='resultFound'>";
												if (temp.tipus == "indret")
												{
													ti=temp.indret.replace(/\'/gi,"#");
													tm=temp.municipi.replace(/\'/gi,"#");
													tc=temp.comarca.replace(/\'/gi,"#");
													//html += "<a href='#' onclick='cercadorM.gestioResultatPerIndex(" + i + ")'>";
													html += "<a href='#' onclick='cercadorM.getPoi_Indrets2("+i+","+indexMostrats+","+nombreMostrats+")'>";
													html += temp.indret;
											  }	
											  if (temp.tipus == "puntsI")
												{
													ti=temp.poi.replace(/\'/gi,"#");
													tm=temp.municipi.replace(/\'/gi,"#");
													tc=temp.comarca.replace(/\'/gi,"#");
													//html += "<a href='#' onclick='cercadorM.gestioResultatPerIndex(" + i + ")'>";
													html += "<a href='#' onclick='cercadorM.getPoi_Indrets2("+i+","+indexMostrats+","+nombreMostrats+")'>";
													html += temp.poi;
													locSeleccionat=locsConsulta[0];
											  }												
												html += "</a><br />";
											  html += "			<strong>" + temp.municipi + "</strong>";
										  
											html += "		</p>";
											resultat.x = temp.x;
											resultat.y = temp.y;
									  }
										else
										{
											  if ((i == indexMostrats) || (i==1))	html += "<div class='moreInfo'>";
												if (i==1) 
												{
													if (temp.tipus == "puntsI")
														html += "	<h5>Altres Punts d'inter&egrave;s localitzats:</h5>";
													else
														html += "	<h5>Altres top&ograve;nims localitzats:</h5>";
												}
												if ((i == indexMostrats) || (i==1))	html += "<ul>";
											  											   												
													  html += "<li id='li_" + i + "' class='resultList'>";
															//html += "<a href='#' onclick=''>";
												if (temp.tipus == "indret")
												{
													ti=temp.indret.replace(/\'/gi,"#");
													tm=temp.municipi.replace(/\'/gi,"#");
													tc=temp.comarca.replace(/\'/gi,"#");
													//html += "<a href='#' onclick='cercadorM.gestioResultatPerIndex(" + i + ")'>";
													html += "<a href='#' onclick='cercadorM.getPoi_Indrets2("+i+","+indexMostrats+","+nombreMostrats+")'>";
													html += temp.indret;
											  }	
											  if (temp.tipus == "puntsI")
												{
													ti=temp.poi.replace(/\'/gi,"#");
													tm=temp.municipi.replace(/\'/gi,"#");
													tc=temp.comarca.replace(/\'/gi,"#");
													//html += "<a href='#' onclick='cercadorM.gestioResultatPerIndex(" + i + ")'>";
													html += "<a href='#' onclick='cercadorM.getPoi_Indrets2("+i+","+indexMostrats+","+nombreMostrats+")'>";													
													html += temp.poi;
											  }	
															html += "</a><br />";
													    html += temp.municipi;
														html += "</li>";
														html += "<br/>";											  																						
										}
							} 							
						}
							if (locs.length >1) html += "</ul></div>";
							if (nombreMostrats<nombreTrobats)
							{
								html += "<div class='moreResults'><p><a href='#' onclick='cercadorM.MostraSeguents_Indret_o_POI()'>Mostra m&eacute;s resultats</a></p></div>";
							}
							var resultDiv=document.getElementById("results"); 
							resultDiv.style.visibility = 'visible';
							resultDiv.innerHTML = html; 
			  }
			  
				cercadorM.inicialitzarResultat();
				if (mostratsAra==0)
			  {
			  			/*var resultDiv=document.getElementById("results"); 
							resultDiv.style.visibility = 'visible';
							resultDiv.innerHTML = "No s'han trobat resultats"; */							
							cercadorM.mostraMissatge("0results",resultat.tipus);
				}
				else
					   if (indexMostrats==0) cercadorM.gestioResultat(temp0);		
}
function _getPoi_Indrets2(indexElement,inici,fi)
{
			if (indexElement>0) 
			{
				if ($('primer_sel')) $('primer_sel').className = $('primer_sel').className.replace("resultFound", "resultF2");
				if (inici==0) inici=1;
				for(var i=inici; i < fi; i++) 
				{
					si = i + "";
					index = "li_"+si;
					//var nt = $('li_1').className = "resultList";
					nt = "$('" +  index + "').className ='resultList'";
				  eval(nt);
				}
				indexElement= indexElement + "";
				var index = "li_"+indexElement;
				nt = "$('" +  index + "').className ='resultatDestacat'";
				eval(nt);
			}
			else
			{
				if ($('primer_sel')) $('primer_sel').className = $('primer_sel').className.replace("resultF2", "resultFound");
				//if (inici==0) inici=1;
				for(var i=inici+1; i < fi; i++) 
				{
					si = i + "";
					index = "li_"+si;
					//var nt = $('li_1').className = "resultList";
					nt = "$('" +  index + "').className ='resultList'";
				  eval(nt);
				}
			}
		cercadorM.gestioResultatPerIndex(indexElement);
}												

function _extreureElements_JSON(loc){
				var temp = {
	   	 			adreca:   "",	
	   	 			municipi: "",
	   	 			idmunicipi: "",
	   	 			comarca: "",
	   	 			idcomarca: "",
	   	 			tipus:    "",
	   	 			x:        "",
	   	 			y:        "",
	   	 			ex:        "",
  	   	 		ey:        "",
  	   	 		idvia:        "",
  	   	 		llogaret: "",
  	   	 		poi: "",
  	   	 		idllogaret: "",
  	   	 		carrer: "",
  	   	 		portal: "",
  	   	 		cruilla: "",
  	   	 		idcruilla: "",
  	   	 		taula: "",
  	   	 		incidencia: ""
  	   	};  	   					
				temp.tipus="municipi";
				if ((loc.adreca)||(loc.taula))
				// pot ser que el camp adreca estigui buit per a un POI
				{
					if (loc.taula)
					{
						temp.tipus="puntsI";
						temp.web = loc.web;
						temp.adrecapoi= loc.adreca;
						temp.x=loc.utmX;
						temp.y=loc.utmY;
						temp.telefon=loc.telefon;
						temp.mesinformacio=loc.mesinformacio;
						temp.municipi=loc.municipi;
						temp.poi=loc.nom;
						temp.adreca=loc.nom;
						temp.taula = loc.taula;		
					}
					else
					{	
						if (loc.adreca.via.id) temp.tipus="carrer";
						temp.municipi = loc.adreca.municipi.nom;
						temp.idmunicipi = loc.adreca.municipi.id;
						temp.comarca = loc.adreca.comarca.nom;
						temp.idcomarca = loc.adreca.comarca.id;
						temp.idvia=loc.adreca.via.id;
						temp.carrer=loc.adreca.via.tipus;
						if (trim(loc.adreca.via.article) != "") temp.carrer += " " + trim(loc.adreca.via.article);
						temp.carrer += " " + loc.adreca.via.nom;
						temp.adreca=temp.carrer;
						if (loc.adreca.llogaret)
						{
							temp.llogaret=loc.adreca.llogaret.nom;
							temp.idllogaret=loc.adreca.llogaret.id;
						}
						temp.portal=loc.adreca.portal;
						if (temp.portal == "0") temp.portal == "";
						if (temp.portal != "") 
						{
							temp.tipus="portal";
							temp.adreca += ", "+ temp.portal;
						}
						temp.ex=loc.extensio.x;
					    temp.ey=loc.extensio.y;
					    temp.x=loc.coordenades.x;
						temp.y=loc.coordenades.y;
				  }
			  }
			  if (loc.cruilla)
			  {
			  	temp.tipus="cruilla";
			  	temp.municipi = loc.cruilla.municipi.nom;
					temp.idmunicipi = loc.cruilla.municipi.id;
					temp.comarca = loc.cruilla.comarca.nom;
					temp.idcomarca = loc.cruilla.comarca.id;			  	
					temp.idvia=loc.cruilla.vies[0].id;
					temp.carrer=loc.cruilla.vies[0].tipus;
					if (trim(loc.cruilla.vies[0].article) != "") temp.carrer += " " + trim(loc.cruilla.vies[0].article);
					temp.carrer += " " + loc.cruilla.vies[0].nom;
					temp.carrer+= " amb " + loc.cruilla.vies[1].tipus;
					if (trim(loc.cruilla.vies[1].article) != "") temp.carrer += " " + trim(loc.cruilla.vies[1].article);
					temp.carrer += " " + loc.cruilla.vies[1].nom;
					temp.adreca=temp.carrer;
					temp.cruilla = loc.cruilla.vies[1].nom;
					temp.idcruilla = loc.cruilla.vies[1].id;
					temp.x=loc.coordenades[0].x;
				  temp.y=loc.coordenades[0].y;
		   	}	
				if (loc.nomTipus)
				{
					temp.tipus="indret";
					temp.municipi = loc.nomMunicipi;
					temp.idmunicipi = loc.idMunicipi;
					temp.comarca = loc.nomComarca;
					temp.idcomarca = loc.idComarca;
                    temp.indret = loc.nom
					temp.adreca = temp.indret;					
				    temp.x=loc.x;
					temp.y=loc.y;				
			  }
			  return temp;
}										
//----------------------------  
  function dump2(obj){
//----------------------------  
    var volcat = "<ul>";
    for(var propietat in obj) {
      if (typeof(obj[propietat])=="object") {
        volcat += "<b>" + propietat + "</b><ul>" + dump2(obj[propietat]) + "</ul>";
      } else {
        volcat += "<li><i>" + propietat + "</i>: " + obj[propietat] + "</li>";
      }
    }
    return volcat + "</ul>";
  }	
//-----------------------------------------------
function _esborrarSel() {
//-----------------------------------------------
selectMunicipi = "";
selectComarca = "";
selectNum="";
selectToponim="";
selectPoi="";
resultat.puntual = false;
selectY="";
selectCarrer="";
selectCruilla="";
selectTaula = "";
selectIdVia1 = "";
selectIdVia2 = "";
tipusPOI = "";
actRessaltar();   
//map.removePopup(ident_popup);
}	
//---------------------------- 
function _actFilAriadnaComarca(idCom,nomCom) 
{
//---------------------------- 		
		var n_filAriadna = document.getElementById("a_FilAriadna1"); 
		n_filAriadna.onclick = function() {cercadorM.preZoomComarca(idCom)};
		n_filAriadna.href = "#";
		n_filAriadna.innerHTML = nomCom;
		n_filAriadna.style.visibility = "visible";
		
		var sp_filAriadna = document.getElementById("sp_FilAriadna1"); 
		sp_filAriadna.style.visibility = "visible";		
}	

//---------------------------- 
function _actFilAriadnaPoblacio(idMun,nomMun) {
//---------------------------- 
		var n_filAriadna = document.getElementById("a_FilAriadna2"); 
		if (idMun != "")
			n_filAriadna.onclick = function() {cercadorM.preZoomMunicipi(idMun)};
		else
			n_filAriadna.onclick = function() {cercadorM.preZoomMunicipi_Nom(nomMun)};			
		n_filAriadna.href = "#";
		n_filAriadna.innerHTML = nomMun;		
		n_filAriadna.style.visibility = "visible";
}	
//----------------------------
	function _ocultaFilAriadna() {
//----------------------------
		document.getElementById("a_FilAriadna1").style.visibility = 'hidden';	
		document.getElementById("a_FilAriadna2").style.visibility = 'hidden';	
		document.getElementById("a_FilAriadna3").style.visibility = 'hidden';	
		document.getElementById("sp_FilAriadna1").style.visibility = 'hidden';		
		document.getElementById("sp_FilAriadna2").style.visibility = 'hidden';	
		document.getElementById("a_FilAriadna1").innerHTML = '';		
		document.getElementById("a_FilAriadna2").innerHTML = '';			
		document.getElementById("a_FilAriadna3").innerHTML = '';		
	}
//-----------------------------------------------
	function _preInfoPunt(x,y) {
//-----------------------------------------------
		_loader.getInfoPunt(x,y);		       
	}
//----------------------------
	function _gestionaInfoPunt(resp) {
//----------------------------				
		var nstr = resp.toString();
		if (nstr == "")
			mapa.mostraMissatgeAvis(true,"El punt indicat &eacute;s fora de Catalunya.",false);				
		else
		{			
			//document.getElementById("debug2").innerHTML=dump(nstr);
			var nloc = nstr.split(' / ');		
			var nmun = nloc[0];			
			resultat.comarca = nloc[1];	
			resultat.idmunicipi = nloc[2];
			nomLlogaretValidat = "";	
			idLlogaretValidat = "";
			if (resultat.idmunicipi.substring(0,1)== "8") resultat.idmunicipi = "0" + resultat.idmunicipi;					
			resultat.idcomarca = nloc[3];	
			_loader.getMunicipis_gestionaInfoPunt();		
			var minx=nloc[4];
			var maxx=nloc[6];
			var miny=nloc[5];
			var maxy=nloc[7];
			
			var bounds = new OpenLayers.Bounds(minx,miny,maxx,maxy);
			var nxy= bounds.getCenterLonLat();
			
			var nzoom = map.getZoomForExtent(bounds,false);					
			
			if (resultat.idcomarca != "") cercadorM.actFilAriadnaComarca(resultat.idcomarca,resultat.comarca);	
			cercadorM.actFilAriadnaPoblacio(resultat.idmunicipi,nmun);	
			document.getElementById("a_FilAriadna3").innerHTML = "";			
		}
		map.getControlsByClass("Vissir.Click")[0].activate();
	    map.getControlsByClass("Vissir.ClickIndica")[0].deactivate();	
	    zonaInfo.mostraPestanya("tab5");			
	}
	//----------------------------------------------------
	function _gestionaInfoPunt_RecuperarComarca(resp) {
	//----------------------------------------------------				
		var nstr = resp.toString();
		var nloc = nstr.split(' / ');				
		var nmun = nloc[0];			
		resultat.comarca = nloc[1];	
		resultat.idcomarca = nloc[3];						
	}
		//----------------------------
	function _mostraLocalitzacionsMunicipis_gestionaInfoPunt(resp) {
	//----------------------------
		var locs;
		locs = resp;
		//document.getElementById("debug2").innerHTML=dump(locs);
		cercadorM.cercaMunicipi_gestionaInfoPunt(resp);								
	}
		//----------------------------
		function _cercaMunicipi_gestionaInfoPunt(resp) {		
		//----------------------------
		var itemsResultat = new Array();
		var itemsResultatIntern = new Array();
		var locs = resp;
		locsConsulta = locs;
		if (locs.length == undefined) {
				_mostraMissatge("Hi ha problemes en el servei de cerca", "municipi");			
				return;
		}		
		if (locs.length == 0) {
				_mostraMissatge("No existeix la poblaci&oacute; amb nom " +  document.getElementById("ctl_municipi").value, "municipi");	
				_reiniciaLlistaResultat();		
				return;
		}
		if (locs.length == 1)
		{ 
			resultat.idmunicipi = locs[0].adreca.municipi.id;		
			resultat.municipi = locs[0].adreca.municipi.nom;		
			resultat.idcomarca = locs[0].adreca.comarca.id;		
			resultat.comarca = locs[0].adreca.comarca.nom;	
			resultat.x = locs[0].coordenades.x;	
			resultat.y = locs[0].coordenades.y;	
			resultat.tipus = "municipi_gestionaInfoPunt";	
			cercadorM.registrarExtent(locs[0],"municipi_gestionaInfoPunt");	
		}
		else
		{
			for (var i=0;i<locs.length;i++) 
			{
				var loc = locs[i];
				itemsResultat.push(loc.adreca.municipi.nom);
				itemsResultatIntern.push(i);
			}
			_mostraResultat("municipi",itemsResultat,itemsResultatIntern);
		}
	}
			

	/* codi del constructor */
	_loader = new XMLloader();
/* tancar function cercadorMunicipis() */
}
//----------------------------  
//----------------------------  
//----------------------------  

function XMLloader(){

	this.objXML;
	this.objXMLHTTP;
	this.getCarrers = _getCarrers;
	this.getCarrers_index = _getCarrers_index;
	this.getCarrers2 = _getCarrers2;
	this.getIndrets = _getIndrets;
	this.getPuntsI = _getPuntsI;
	this.getInfoPunt = _getInfoPunt;
	this.getInfoPunt_RecuperarComarca = _getInfoPunt_RecuperarComarca;
	this.getPOIDescripcio = _getPOIDescripcio;
	this.getMunComDescripcio = _getMunComDescripcio;
	this.getCruillesProperesDescripcio = _getCruillesProperesDescripcio;
	this.getMunicipis_gestionaInfoPunt = _getMunicipis_gestionaInfoPunt;

	
		 

//----------------------------  	
	function _getCarrers(){
//----------------------------  		
    if ($("ctl_carrer").value.length == 0) 
    {
        //cercadorM.mostraMissatge("Cal indicar una part del nom del carrer o població","indret");
        cercadorM.mostraMissatge("0results",resultat.tipus);
        return;
    }
		if (popup_punt != null) {                 
               map.removePopup(popup_punt); 
               popup_punt.destroy(); 
               popup_punt = null; 
       } 
		_bloquejaCercador();
		indexMostrats=0;	
		var temp = $('ctl_carrer').value;
		// es filtren les cadenes de 5 o més dígits
		temp = temp.replace(/\d{5,20}/g,"");
		//es filtren possibles caràcters estranys		
		//temp = temp.replace(/[^A-z0-9-'.'-','-'-'-' '-'à'-'á'-'è'-'é'-'ì'-'í'-'ò'-'ó'-'ù'-'ú'-'ï'-'ü'-'ç'-'ñ'-'À'-'Á'-'È'-'É'-'Ì'-'Í'-'Ò'-'Ó'-'Ù'-'Ú'-'Ï'-'Ü'-'Ç'-'Ñ']/g,"");
		temp = temp.replace(/[^A-z0-9-'-.,àáèéìíòóùúïüçñ'-' '-'\'']/gi,"");
		temp = temp.replace(/\[/g,"");
		temp = temp.replace(/\]/g,"");
		temp = temp.replace(/\^/g,"");
		
		$('ctl_carrer').value = temp;
		
		var request =  OpenLayers.Request.GET({
		    url: parametres.urlMIC + escape(temp),
		    callback:cercadorM.prePopulateDiv
    });    
	}
//----------------------------  
 function _getCarrers_index(index){
//----------------------------  
		_bloquejaCercador();
		indexMostrats=index;
		var temp = $('ctl_carrer').value;
		// es filtren les cadenes de 5 o més dígits
		temp = temp.replace(/\d{5,20}/g,"");
		//es filtren possibles caràcters estranys		
    temp = temp.replace(/[^A-z0-9-'-.,àáèéìíòóùúïüçñ'-' '-'\'']/gi,"");
		temp = temp.replace(/\[/g,"");
		temp = temp.replace(/\]/g,"");
		temp = temp.replace(/\^/g,"");
		
		$('ctl_carrer').value = temp;	
		
		var request =  OpenLayers.Request.GET({
		    url: parametres.urlMIC + escape(temp),
		    callback:cercadorM.prePopulateDiv
    });
	}

//----------------------------  
function _getCarrers2(indexElement,inici,fi,municipi,idllogaret,idvia,portal,cruilla,idcruilla) {
//----------------------------  
			if (indexElement>0) 
			{
				if ($('primer_sel')) $('primer_sel').className = $('primer_sel').className.replace("resultFound", "resultF2");
				if (inici==0) inici=1;
				for(var i=inici; i < fi; i++) 
				{
					si = i + "";
					index = "li_"+si;
					//var nt = $('li_1').className = "resultList";
					nt = "$('" +  index + "').className ='resultList'";
				  eval(nt);
				}
				indexElement= indexElement + "";
				var index = "li_"+indexElement;
				nt = "$('" +  index + "').className ='resultatDestacat'";
				eval(nt);
			}
			else
			{
				if ($('primer_sel')) $('primer_sel').className = $('primer_sel').className.replace("resultF2", "resultFound");
				//if (inici==0) inici=1;
				for(var i=inici+1; i < fi; i++) 
				{
					si = i + "";
					index = "li_"+si;
					//var nt = $('li_1').className = "resultList";
					nt = "$('" +  index + "').className ='resultList'";
				  eval(nt);
				}
			}
			var params = $H({
	    maxresultats: MaxResultats,
	    metode: "localitzaAdreca",
	    ordre: "alfabetic",
	    trobaTots: "no"}); 	
	    var tm=decodeURIComponent(municipi).replace(/#/gi,"'");  
	    params.set("municipi", tm);
	    if (idllogaret != "")	params.set("idLlogaret", idllogaret);	    
	    if (idvia != "")	
	    {
	    	params.set("idVia", idvia);
	    	params.set('nomVia','*');
	    }
	    if (portal != "")	params.set("portal", portal);
	    if (cruilla != "")	
	    {	
	    	params.set("idVia1", idvia);
	    	params.set('nomVia1','*');
	    	params.set("idVia2", idcruilla);
	    	params.set("metode", "localitzaCruilla");	
	    	var tc=decodeURIComponent(cruilla).replace(/#/gi,"'");    
	    	params.set("nomVia2", cruilla);	        
	    }   	
	    	jsonp(parametres.urlGeocodificador, params, "cercadorM.populateDiv_JSON");
}

//----------------------------  
  function jsonp(nurl, nparams, callback_function) {
//----------------------------
	nurl += "?";

	nparams.each(function(item) {
		nurl += item.key + "=" + escape(item.value) + "&";
	});
	var n_uid = (new Date()).getTime();
	delicious_callbacks[n_uid] = function (content) 
	{ 
	 if (n_uid > tempsDarreraResposta)
	    {
	       tempsDarreraResposta=n_uid;	       
		
		   var nt = "" + callback_function + "(content)";
	       eval(nt);
	       
		}
		else
		{
	       //document.getElementById("debug2").innerHTML += n_uid + "(Resposta no processada..................)<br>";			
		}	
	       delete delicious_callbacks[n_uid];
     };
  
	nurl += "jsonp=" +  encodeURIComponent("delicious_callbacks[" + n_uid + "]");
	var scriptElem = document.createElement('script');
	scriptElem.setAttribute('Id', callback_function);
	scriptElem.setAttribute('src', nurl);
	scriptElem.setAttribute('type', 'text/javascript');
	tag = document.getElementById(callback_function);

	if(!tag) {
	  tag = document.getElementsByTagName('head')[0].appendChild(scriptElem);
	} else {
	  document.getElementsByTagName('head')[0].replaceChild(scriptElem, tag);
	}
	eval(callback_function);
  } 
  
//----------------------------  	
	function _getIndrets(){
//----------------------------  		
      if ($("ctl_indret").value.length == 0) 
      {
        cercadorM.mostraMissatge("Cal indicar l'indret","indret");
        return;
      }
      if (popup_punt != null) {                 
               map.removePopup(popup_punt); 
               popup_punt.destroy(); 
               popup_punt = null; 
       } 		  
		  _bloquejaCercador();
		  indexMostrats=0;	
			var params = $H({
	    maxresultats: MaxResultats,
	    metode: "localitzaToponim",
	    ordre: "alfabetic",
	    municipi: "",
	    trobaTots: "si"});  
        params.set('nom',$("ctl_indret").value);  
        // 10 de maig de 2011
        // Les calculadors no funcionen als virgo
        // Les coordenades dels cims estan en ETRS89 i amb les calculadores es passen a ED50
        // Mentre aquestes coordenades estan en ETRS89, es crida al geocodificador dels viking              	
	    //jsonp("http://www.icc.cat/geocodificador/json", params, "cercadorM.populateDiv_JSON_Indret_o_Poi");
	    
        jsonp(parametres.urlGeocodificador, params, "cercadorM.populateDiv_JSON_Indret_o_Poi");
	}

//----------------------------
	function _getPuntsI(){
//----------------------------		
		  if ($("ctl_puntsI").value.length == 0) 
      {
	        cercadorM.mostraMissatge("Cal indicar el punt d'interès","puntsI");
	        return;
      }
      if (popup_punt != null) {                 
               map.removePopup(popup_punt); 
               popup_punt.destroy(); 
               popup_punt = null; 
       } 
      _bloquejaCercador();
		  indexMostrats=0;	
			var params = $H({});  
      params.set('nom',$("ctl_puntsI").value);             
	    jsonp(parametres.urlPOIsearch + "getPoisMatch", params, "cercadorM.populateDiv_JSON_Indret_o_Poi");	   
	}

	//-----------------------------------------------
	function _getInfoPunt(x,y) {
	//----------------------------------------------- 
    var params = $H({
    x: x,
    y: y
    }); 	
    jsonp(parametres.urlSpatialsearch + "getDataSpatialMatch", params, "cercadorM.gestionaInfoPunt");	    		       
}	
//-----------------------------------------------
	function _getInfoPunt_RecuperarComarca(x,y) {
	//----------------------------------------------- 
    var params = $H({
    x: x,
    y: y
    }); 	
    jsonp(parametres.urlSpatialsearch + "getDataSpatialMatch", params, "cercadorM.gestionaInfoPunt_RecuperarComarca");	    		       
}	

	//-----------------------------------------------
	function  _getMunComDescripcio() {		    
	      var params = $H({
		    xmin: map.getExtent().left,
		    ymin: map.getExtent().bottom,
		    xmax: map.getExtent().right,
		    ymax: map.getExtent().top
		    }); 	
		  jsonp(parametres.urlSpatialsearch + "getDataSpatialMatch", params, "cercadorM.gestionaMunComDescripcio");	    		       
}

	//-----------------------------------------------
	function  _getCruillesProperesDescripcio(id1,id2,num) {		    
	      if ((id1 != "") && (id2 != "") && (id2 != -1))
	      {
				var params = $H({
				idvia1: id1,
				idvia2: id2
				}); 
				jsonp(parametres.urlCruillessearch , params, "cercadorM.gestionaCruillesProperesDescripcio");	    		       
		  }
		   else
	      {
		      if ((id1 != "") && (num != "") && (num != -1))
		      {
		        var params = $H({
			    idvia: id1,
			    x: xResultat,
			    y: yResultat,
			    num: num
			    }); 
			    jsonp(parametres.urlCruillessearch , params, "cercadorM.gestionaCruillesProperesDescripcio");	    		       
			  }		   
		  }
}
	  
	//-----------------------------------------------
	function  _getPOIDescripcio() {	
		if (map.getZoom() < zonaInfo.maxZoomVis)
		{
			var tdesc = document.getElementById("idDescripcioPI");
			var tpare = tdesc.parentNode;
			tpare.removeChild(tdesc);
			_loader.getCruillesProperesDescripcio(selectIdVia1,selectIdVia2,selectNum);	      
		}
		else
		{ 		
			sTotsLayersVis = '';
			for(var i=0; i < map.layers.length; i++) 
			{
		        var layerEntry = map.layers[i];
		        if ((!layerEntry.isBaseLayer) && (layerEntry.displayInLayerSwitcher) && (layerEntry.getVisibility()))  
		        {           	
							if (!((map.layers[i].name == "metrotmb") || (map.layers[i].name == "autobustmb")))
							{
								temp = layerEntry.name; 
								if (layerEntry.name == 'Consells comarcals') 
									temp = 'DELEGACIONS';
								else if (layerEntry.name == 'Centres ensenyament') 
									temp = 'CENTRES_ENSENYAMENT';
								else if (layerEntry.name == 'Colleccions') 
									temp = 'COLLECCIONS';               
									
								if (sTotsLayersVis != '')
									sTotsLayersVis += ',mob_' + temp + '_g' ; 
								else
									sTotsLayersVis += 'mob_' + temp + '_g' ; 
							}
		        }
	    	}
			sTotsLayersVis = sTotsLayersVis.toLowerCase();	
		    if (sTotsLayersVis != '')
		    {
		      var params = $H({
			    xmin: map.getExtent().left,
			    ymin: map.getExtent().bottom,
			    xmax: map.getExtent().right,
			    ymax: map.getExtent().top,
			    capes: sTotsLayersVis,
			    x: 400000,
			    y: 4600000
			    }); 	
			  jsonp(parametres.urlPOIsearch + "getPoisProx", params, "cercadorM.gestionaPOIDescripcio");	    		       
			 }
			 else
			 {
			  	var tdesc = document.getElementById("idDescripcioPI");
			  	var tpare = tdesc.parentNode;
				tpare.removeChild(tdesc);
				 _loader.getCruillesProperesDescripcio(selectIdVia1,selectIdVia2,selectNum);	 
		  	}		  
			          
		}
}	  
function _getMunicipis_gestionaInfoPunt(){
	    var params = $H({
	    maxresultats: MaxResultats,
	    metode: "localitzaAdreca",
	    ordre: "alfabetic",
	    trobaTots: "si"}); 
	    
	    if (resultat.idmunicipi != "") 
	    	params.set('idMunicipi',resultat.idmunicipi);	      
	    //cercador = 1;
	    jsonp(parametres.urlGeocodificador, params, "cercadorM.mostraLocalitzacionsMunicipis_gestionaInfoPunt");
	}	
	function _openHttpRequest() {
		if (navigator.userAgent.toLowerCase().indexOf("msie") > -1) {
			objXMLHTTP = new ActiveXObject('Microsoft.XMLHTTP');
		}
		else
	   		objXMLHTTP = new XMLHttpRequest();
	}
	/* codi constructor */
	
	
}






function ocultaMissatge() {
		var div;
		if (document.getElementById("dv_missatges")) {
			div = document.getElementById("dv_missatges").parentNode;
			div.removeChild(document.getElementById("dv_missatges"));
		}
	}
		function _bloquejaCercador() {
		document.getElementById("bt_mostracarrer").disabled = true;
		document.getElementById("bt_mostraindret").disabled = true;
		document.getElementById("bt_mostrapuntsI").disabled = true;
	}
	
	function _desbloquejaCercador() {
		document.getElementById("bt_mostracarrer").disabled = false;
		document.getElementById("bt_mostraindret").disabled = false;
		document.getElementById("bt_mostrapuntsI").disabled = false;
	}
