// Clase base de los buscadores.
function tBuscador(name)
{
	this.init = function()
	{
		this.sm_listaSeleccionados = new Array();
		this.sm_listaSeleccionadosON = new Array();

		this.posicion = 0;
		
		this.salida_inicio = '';
		
		this.buscador = null;		
		
		this.ajax = new AjaxV4();
		this.ajaxPrecios = new AjaxV4();
		this.ajaxPromueve = new AjaxV4();
		this.ajaxRastroMigas = new AjaxV4();
		this.ajaxRastroMigas.name = this.name + '.ajaxRastroMigas'
		
		this.ajax.name = this.name + '.ajax'
		this.error = false;
		
		this.caja_promos_preferente = '';
		this.caja_promos_zona = '';
		this.caja_bien_SM_1 = '';
		this.caja_bien_SM_2 = '';
		
		this.tipo_favorito = '';
		
		this.miLayerPromo = '';
		this.miLayerSI = new Clayer('',344);
		this.loading = new Clayer();
		this.hl = false;
		this.s = ''
		this.urlUrchin = ''
		
		this.listaCamposPorDefecto = ''
		this.listaCamposReset = ''
		
		this.mensajeAclaratorio = ''
		this.bienesZona = ''
		this.hayBienesZona = false;
		this.hayBienesLocal = false;
		
		this.cual = ''
		this.urlBuscador = '';
			_on_zona = 1;
		this.capaON = null;
		
		this.jsones = {};	// Para cachear los resultados de las búsquedas
	}
	
	this.name = name? name: Math.random();
	this.init();
	
	this.inicio = function(inicio)
	{
		var i = 0;
		var f = 0;
		var j = 0;
		var ip, fp;
		this.pintarJS = true		
		document.location.href='#ancla'		
		if (inicio > $10(this.buscador['rango_pisos_1'].value))
		{
			i = $10(this.buscador['rango_buscador_1'].value) + 1
			f = i + $10(this.buscador['rango_buscador_2'].value) - 1

			ip = $10(this.buscador['rango_buscador_on'].value) + 1
			fp = ip + $10(this.buscador['rango_buscador_on'].value) - 1
			
			for(j = 1; j < 1000; j++)
			{
				if ((inicio >= i) && (inicio <= f))
				{
					this.buscador['inicio_buscador'].value = i
					this.buscador['rango_buscador'].value = $10(this.buscador['rango_buscador_2'].value)
					this.buscador['inicio_buscador_on'].value = ip
					break
				}
				else
				{
					i = f + 1
					f = i + $10(this.buscador['rango_buscador_2'].value) - 1
					
					ip = fp + 1
					fp = ip + $10(this.buscador['rango_buscador_on'].value) - 1
				}
			}
		}
		else 
		{
			this.buscador['inicio_buscador'].value = 1
			this.buscador['inicio_buscador_on'].value = 1
		}		
		
		this.buscador['final_buscador'].value = Math.min($10(this.buscador['inicio_buscador'].value) + $10(this.buscador['rango_buscador'].value) - 1, this.buscador['max_pisos_mostrar'].value)
		this.buscador['final_buscador_on'].value = $10(this.buscador['inicio_buscador_on'].value) + $10(this.buscador['rango_buscador_on'].value) - 1
		
		this.buscador['rango_pagina'].value = (inicio <= this.buscador['rango_pisos_1'].value)?this.buscador['rango_pisos_1'].value:this.buscador['rango_pisos_2'].value;
		
		if (inicio <= this.buscador['rango_pisos_1'].value)
		{
			this.buscador['inicio_pagina'].value = 1
			this.buscador['inicio_pagina_on'].value = 1
		}
		else
		{
			<!--- No es la primera página. Vemos el rango de página. --->
			i = $10(this.buscador['rango_pisos_1'].value) + 1
			f = i + $10(this.buscador['rango_pisos_2'].value) - 1
			
			ip = $10(this.buscador['rango_promociones'].value) + 1
			fp = ip + $10(this.buscador['rango_promociones'].value) - 1
			
			for(j = 1; j < 1000; j++)
			{
				if ((inicio >= i) && (inicio <= f))
				{
					this.buscador['inicio_pagina'].value = i
					this.buscador['inicio_pagina_on'].value = ip
					break
				}
				else
				{
					i = f + 1
					f = i + $10(this.buscador['rango_pisos_2'].value) - 1					
					ip = fp + 1
					fp = ip + $10(this.buscador['rango_promociones'].value) - 1
				}
			}
		}
		this.buscador['paginaPaginacion'].value = j + 1
		objFuncionesAnalytics['pagina'] = this.buscador['paginaPaginacion'].value
		eval("objFuncionesAnalytics." + origenPeticion + "_paginacion_SM(this.buscador['paginaPaginacion'].value)");		
		
		this.buscador['paginaDentroDeBuscador'].value = $10(this.buscador['paginaPaginacion'].value) % $10(this.buscador['paginasPorRangoBuscador'].value)
		
		if (this.buscador['paginaDentroDeBuscador'].value == 0)
			this.buscador['paginaDentroDeBuscador'].value = $10(this.buscador['paginasPorRangoBuscador'].value)
		
		this.buscador['final_pagina'].value = Math.min($10(this.buscador['inicio_pagina'].value) + $10(this.buscador['rango_pagina'].value) - 1, $10(this.buscador['max_pisos_mostrar'].value))
		this.buscador['final_pagina_on'].value = Math.min($10(this.buscador['inicio_pagina_on'].value) + $10(this.buscador['rango_promociones'].value) - 1, this.pp.longitud)
		
		try{this.ponerPixeles()}catch(e){}
		if (this.Bienes.hueco(inicio))
			this.realizarBusqueda()
		else 
		{
			try{this.pintarSM();}catch(e){}
			try{this.pintarON();}catch(e){}
		}
		this.PonerPaginacion();
	}
	
	this.PonerPaginacion = function()
	{
		var i = 0;
		var ni = 1;
		var sCentro = ''
		
		this.buscador['total'].value = Math.min(this.buscador['max_pisos_mostrar'].value, this.buscador['total'].value)		
		this.buscador['numPaginasTotal'].value = ($10(this.buscador['total'].value) < $10(this.buscador['rango_pisos_1'].value))?1:(Math.ceil(($10(this.buscador['total'].value) - $10(this.buscador['rango_pisos_1'].value)) / this.buscador['rango_pisos_2'].value) + 1);
		if (this.buscador['numPaginasTotal'].value > 1)
		{
			this.buscador['inicioPaginacion'].value = Math.max(1, this.buscador['paginaPaginacion'].value - 2)			
			this.buscador['finPaginacion'].value = Math.min(this.buscador['numPaginasTotal'].value, $10(this.buscador['inicioPaginacion'].value) + $10(this.buscador['paginacionRangoPaginas'].value) - 1)			
			
			if (($10(this.buscador['finPaginacion'].value) - $10(this.buscador['inicioPaginacion'].value)) < ($10(this.buscador['paginacionRangoPaginas'].value) - 1))
				this.buscador['inicioPaginacion'].value = Math.max($10(this.buscador['finPaginacion'].value) - $10(this.buscador['paginacionRangoPaginas'].value) + 1, 1);

			this.s = '';
		
			if (this.pintarJS)
			{
				for (i = $10(this.buscador['inicioPaginacion'].value); i <= $10(this.buscador['finPaginacion'].value); i++)
				{
					if ($10(this.buscador['paginaPaginacion'].value) == i)
						sCentro += '<a href="javascript:;" class="act">' + i + '</a>'
					else
					{
						if (i == 1)
							ni = i
						else if (i == 2)
							ni = $10(this.buscador['rango_pisos_1'].value) + 1
						else
							ni = Math.max(1, ((i - 2) * $10(this.buscador['rango_pisos_2'].value)) + $10(this.buscador['rango_pisos_1'].value) + 1)
						sCentro += '<a onclick="buscador.inicio(' + ni + ')" class="des">' + i + '</a>';
					}
					if (i < $10(this.buscador['finPaginacion'].value)) sCentro += '&nbsp;'
				}
			
				for (i = 1; i <= 1; i++)
				{
					if ($10(this.buscador['paginaPaginacion'].value) >= 4)
					{
						$('pri_' + i).href = "javascript:buscador.inicio(1)"
						$('pri_' + i).onclick = null
						$2('pri_' + i)
						
					}
					else 
						$3('pri_' + i)
					
					if (this.buscador['inicioPaginacion'].value > 2)
						$14('puntos_pri_' + i)
					else
						$5('puntos_pri_' + i)
					
					if ($10(this.buscador['paginaPaginacion'].value) > 1)
					{
						if (this.buscador['paginaPaginacion'].value == 2)
							ni = 1
						else
							ni = $10(this.buscador['inicio_pagina'].value) - $10(this.buscador['rango_pagina'].value)
						$('bi_' + i).href = "javascript:buscador.inicio(" + ni + ")"
						$('bi_' + i).onclick = null					
						$2('bi_' + i)
					}
					else $3('bi_' + i)
					
					$11('centro_' + i, sCentro)
					$2('centro_' + i)
					
					if ($10(this.buscador['paginaPaginacion'].value) < $10(this.buscador['numPaginasTotal'].value))
					{
						if (this.buscador['paginaPaginacion'].value == 1)
							ni = $10(this.buscador['rango_pisos_1'].value) + 1
						else
							ni = $10(this.buscador['inicio_pagina'].value) + $10(this.buscador['rango_pisos_2'].value)
						$('bd_' + i).href = "javascript:buscador.inicio(" + ni + ")"
						$('bd_' + i).onclick = null
						$2('bd_' + i)
					}
					else $3('bd_' + i)
					
					if ($10(this.buscador['finPaginacion'].value) <= $10(this.buscador['numPaginasTotal'].value))
					{
						ni = Math.min((($10(this.buscador['numPaginasTotal'].value) - 2) * $10(this.buscador['rango_pisos_2'].value)) + $10(this.buscador['rango_pisos_1'].value) + 1, this.buscador['max_pisos_mostrar'].value)						
						$('ult_' + i).href = "javascript:buscador.inicio(" + ni + ")"
						$('ult_' + i).onclick = null
						$2('ult_' + i)
						
						if ($10(this.buscador['finPaginacion'].value) == $10(this.buscador['numPaginasTotal'].value))
							$3('ult_' + i)
						else
						{
							$2('ult_' + i)
							$11('ult_' + i, this.buscador['numPaginasTotal'].value)
						}
					}
					else $3('ult_' + i)
					
					if ((this.buscador['finPaginacion'].value) < (this.buscador['numPaginasTotal'].value - 1))
						$14('puntos_ult_pagina_' + i)
					else
						$5('puntos_ult_pagina_' + i)
					$1('paginador_' + i)
				}
			}
		}
	}
	
	this.ponerPixeles = function()
	{
		if (this.urlUrchin != '') eval("objFuncionesAnalytics." + origenPeticion + "_filtro_SM(this.urlUrchin)");
	}
	
	this.ponerPixel = function(nombre, ruta, rnd)
	{
		$(nombre).src = ruta + '&rand=' + Math.random()
	}
	
	this.pintarUnSM = function(caja_1)
	{
		var caja;
		var poblacionEnNegrita;
		var o;
		var s;
		var classFavorito;
		var classmapa;
		caja_1 = true		
		if (caja_1)
		{
			//if (this.pintarJS) $7('resultados_recomendados,bienes_SM_1,titulo_bienes_sm_1')
			
			caja = this.caja_bien_SM_1;
			foto = this.Bienes.dameFoto(this.posicion);			
	
			if (foto == '-')
				foto = '/images/img_error.jpg';
			else
			{
				facilisimo = 'http://images.facilisimo.com';
				if (foto.indexOf('http://') == 0)
				{
					isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
					if (isIE6)
					{
						a = foto.split('/');				
						foto = foto.replace(a[a.length - 1], escape(a[a.length - 1]));
					}
				}
				else 
				{				
					foto = facilisimo + ((foto.charAt(0) == '/')?'':'/') + foto;
						
					a = foto.split('/');
					if (a[a.length - 1] != 0)
						foto = foto.replace(a[a.length - 1], 'por_' + a[a.length - 1]);
					else foto = '/images/img_error.jpg';
				}
	
			}
			caja = caja.replace(/\$foto\$/g, foto);
		}
		else
		{
			(this.pintarJS)?$7('otros_resultados,cabecera_otros_resultados,bienes_SM_2,titulo_bienes_sm_2,cabeceraBoxListadoEnventa'):false
			caja = this.caja_bien_SM_1;
		}
		
		contrato = this.buscador['contrato'].value.toLowerCase();
		precio = this.Bienes.damePrecio(this.posicion);
		
		((precio < this.precio_minimo) || (precio > this.precio_maximo))?(precio = 0):'';
		
		s = (precio != 0)?formatoNumero(precio):'';
		
		if (s != 0)
		{
			s = '<span class="cifra">' + s;
			s += (contrato == 'v')?' &euro;</span>':' &euro; / mes</span>';
		}
		else
			s = '<span style="color: #FF850D">Precio a consultar</span>'
		
		caja = caja.replace('$precio$', s);
		
		caja = caja.replace('$superficie$', (this.Bienes.dameSuperficie(this.posicion) == 0)?'Cons.':formatoNumero(this.Bienes.dameSuperficie(this.posicion)))
		caja = caja.replace('$display_span_superficie$', (this.Bienes.dameSuperficie(this.posicion) == 0)?'none':'block')
		
		caja = caja.replace('$habitaciones$', (this.Bienes.dameHabitaciones(this.posicion) == 0)?'Cons.':this.Bienes.dameHabitaciones(this.posicion));
		caja = caja.replace('$display_span_habitaciones$', (this.Bienes.dameHabitaciones(this.posicion) == 0)?'none':'block');
		
		caja = caja.replace('$banos$', (this.Bienes.dameBanos(this.posicion) == 0)?'Cons.':this.Bienes.dameBanos(this.posicion));
		caja = caja.replace('$display_span_banos$', (this.Bienes.dameBanos(this.posicion) == 0)?'none':'block');
		
		var poblacionEnNegrita = (this.Bienes.bienesZona[this.posicion] == '0')		
		var o = this.generarLinkTextoTitlePisoV2(this.Bienes.dameIdBien(this.posicion), this.Bienes.dameNombreTipoBien(this.posicion), this.Bienes.dameIdTipoBien(this.posicion), this.Bienes.dameCaracAleatoria(this.posicion))
		
		caja = caja.replace(/\$texto_zona\$/g, o['texto']);
		caja = caja.replace(/\$title_zona\$/g, o['title']);
		
		var zona = this.Bienes.dameNombreZona(this.posicion)
		if ((zona != '') && (zona != '-'))
			caja = caja.replace(/\$texto_zona2\$/g, ', zona ' + zona + '$texto_zona2$');
		caja = caja.replace(/\$texto_zona2\$/g, ', ' + this.Bienes.dameNombrePoblacion(this.posicion));
		
		caja = caja.replace(/\$id_bien\$/g, this.Bienes.dameIdBien(this.posicion));

		if (buscarEnArray(this.sm_listaSeleccionados, this.Bienes.dameIdBien(this.posicion)) != -1)
		{
			s = pintarFavorito(caja_1)
			classFavorito = 'favoritDES'
		}
		else
		{
			s = pintarNoFavorito(caja_1, this.posicion, this.tipo_favoritos);
			classFavorito = 'favorit'
		}
		caja = caja.replace('$favorito$', s);
		caja = caja.replace('$classFavorito$', classFavorito);
		
		caja = caja.replace(/\$enlace_verBien\$/g, o['enlace']);
		caja = caja.replace(/\$recomendado\$/g, ((this.Bienes.dameDestacado(this.posicion) == 1)?'* Preferente':''));
		caja = caja.replace(/\$caracteristicas\$/g, this.Bienes.dameCaracteristicasCortas(this.posicion));
		caja = caja.replace('$interes$', '');
		
		if ((this.Bienes.dameX(this.posicion) == '') || (this.Bienes.dameY(this.posicion) == ''))
		{
			classMapa = 'mapDES';
			s = '<b>mapa</b>';
		}
		else
		{
			classMapa = 'map';
			s = '<a href="javascript:;" onclick="verMapa(' + this.Bienes.dameIdBien(this.posicion) + '); return false;">mapa</a>';
		}
		
		caja = caja.replace('$texto_mapa$', s);
		caja = caja.replace('$classMapa$', classMapa);
		caja = caja.replace(/\$id_localizacion\$/g, this.Bienes.dameIdLocalizacion(this.posicion))
		return caja;
	}
	
	this.convierteTipo = function(id_tipo_bien, tipologia)
	{
		var tiposNoDeseados = new Object();
		var salida = tipologia;
		tiposNoDeseados['0100'] = 'piso';	// Piso
		tiposNoDeseados['0101'] = 'piso';	// Atico
		tiposNoDeseados['0102'] = 'piso';	// Apartamento		
		tiposNoDeseados['0103'] = 'duplex';	// Piso dúplex
		tiposNoDeseados['0104'] = 'estudio'; 	// Loft
		tiposNoDeseados['0105'] = 'piso'; 	// Loft
		tiposNoDeseados['0200'] = 'chalet';	// Chalet
		tiposNoDeseados['0201'] = 'chalet';	// Chalet dúplex
		tiposNoDeseados['0202'] = 'chalet';	// Chalet Independiente
		tiposNoDeseados['0203'] = 'chalet';	// Chalet pareado
		tiposNoDeseados['0204'] = 'casa';	// Casa baja
		tiposNoDeseados['0205'] = 'chalet';	// Chalet adosado
		tiposNoDeseados['0104'] = 'piso';	// Estudio
		tiposNoDeseados['0206'] = 'casa';	// Casa rústica
		tiposNoDeseados['0207'] = 'chalet';	// Villa		
		salida = tiposNoDeseados[id_tipo_bien];
		salida = salida.toLowerCase();
		return salida;	
	}
	
	this.generarLinkTextoTitlePisoV2 = function(id_bien, tipologia, id_tipo_bien, caracAleatoria)
	{
		// Generamos el enlace
		var enlace = '/' + this.convierteTipo(id_tipo_bien, tipologia) + '_' + caracAleatoria.replace(' ', '_');
		var title = '';
		var texto = '';
		var salida = new Object();
		
		enlace += '_ficha' + id_bien + '.html';
		salida['enlace'] = enlace;
		
		// Generamos el title
		title = tipologia + ' ' + caracAleatoria;
		title += '';
		salida['title'] = title.trim();
		
		// Generamos el texto
		texto = title.trim();
		salida['texto'] = texto;
		return salida;	
	}
	
	this.consultasResumen = function(i)
	{
		this.ponerPixel('px_consultas_resumen', '/buscar/px_consultas_resumen/index.cfm?id=' + i, true)
	}
	
	this.consultasResumenON = function(i)
	{
		this.ponerPixel('px_consultas_resumen_ON', '/buscar/obranueva/rastreo/visitas.cfm?ids=' + i + '&campo=vv_sm', true)
	}
		
	this.pintarSM = function()
	{	
		var j = 0
		var h = 0
		var px_pintados = new Array();
		var caja_1 = false;
		var obj;
		
		if (this.pintarJS)
		{
			$12('bienes_SM_1,bienes_SM_2');
			h = $10(this.buscador['inicio_pagina'].value);
			
			if (this.Bienes.bienesZona[h] == '1')
				$5('titulo_bienes_sm_1')
			else $1('titulo_bienes_sm_1')
		}

		for(h = $10(this.buscador['inicio_pagina'].value); h <= $10(this.buscador['final_pagina'].value); h++)
		{	
			this.posicion = this.Bienes.aPosiciones[h];
			
			if (this.tipo_favoritos == 'vip')
				caja_1 = true
			else
				caja_1 = (this.Bienes.bienesZona[h] == '0')			
			if (this.pintarJS)
			{
				obj = $((caja_1)?'bienes_SM_1':'bienes_SM_2')				
				obj.innerHTML += this.pintarUnSM(caja_1)
			}
			
			if ((h >= $10(this.buscador['total'].value)) && (this.buscador['numPaginasTotal'].value > 1))
			{
				if (this.pintarJS && ($10(this.buscador['total'].value)) >= $10(this.buscador['max_pisos_mostrar'].value))
					this.pintarAvisoTope()
				break
			}
			else px_pintados[px_pintados.length] = this.Bienes.dameIdBien(this.posicion)
		}
		
		this.consultasResumen(px_pintados)
	}	
	
	this.pintarUnON = function(pos, caja, listaPromociones)
	{
		var classFavorito = ''
		try{
			caja = caja.replace(/\$id_promocion\$/g, listaPromociones.dameIdPromocion(pos));
			caja = caja.replace(/\$target\$/g, '');
			caja = caja.replace(/\$enlace_promo\$/g, listaPromociones.dameEnlacePromocion(pos));
			this.s = listaPromociones.dameTipoViviendas(pos);
			
			caja = caja.replace(/\$tipo_viviendas\$/g, (s == '0')?'':this.s.toLowerCase());
			this.s = listaPromociones.dameZona(pos)
			
			if (this.s == '')
				this.s = listaPromociones.dameNombrePoblacion(pos);
			caja = caja.replace(/\$poblacion\$/g, this.s);		
			caja = caja.replace(/\$descripcion\$/g, listaPromociones.dameDescripcion(pos));
			caja = caja.replace(/\$logo\$/g, listaPromociones.dameLogo(pos));
			caja = caja.replace(/\$nombre_promocion\$/g, listaPromociones.dameNombrePromocion(pos));		
			
			s1 = listaPromociones.dameDormitorios(pos);		
	
			if ((s1 != '') && (s1 != '0'))
				s1 += ' dormitorios'
			else s1 = ''
			
			caja = caja.replace(/\$dormitorios\$/g, s1);
			
			if (buscarEnArray(this.sm_listaSeleccionadosON, listaPromociones.dameIdPromocion(pos)) != -1)
			{
				this.s = pintarFavoritoON()
				classFavorito = 'favoritDES'
			}
			else
			{
				this.s = pintarNoFavoritoON(listaPromociones.dameIdPromocion(pos))
				classFavorito = 'favorit'
			}
			
			if ((listaPromociones.dameX(pos) == '') || (listaPromociones.dameY(pos) == ''))
			{
				classMapa = 'mapDES';
				s = '<b>mapa</b>';
			}
			else
			{
				classMapa = 'map';
				s = '<a href="javascript:;" onclick="verMapaON(' + listaPromociones.dameX(pos) + ', ' + listaPromociones.dameY(pos) + '); return false;">mapa</a>';
			}
		
			caja = caja.replace(/\$enlace_google\$/g, listaPromociones.dameEnlaceGoogle(pos));
			caja = caja.replace('$texto_mapa$', s);
			caja = caja.replace('$classMapa$', classMapa);
			
			caja = caja.replace('$favorito$', this.s);
			caja = caja.replace('$classFavorito$', classFavorito);
			
		}catch(e){caja = '';$CloseLoading()}
		return caja
	}
	
	this.pintarON = function()
	{
		var lay = null;
		var listaIds = new Array();
		var preferente = false;
		var preferenteAnt = false;
		var h = 1;
		var posEsDeZona = -1
		
		if (this.pintarJS)
		{
			$12('promociones_preferentes,promociones_zona')
			if ((this.pp.longitud > 0) && ($10(this.buscador['inicio_pagina_on'].value) < this.pp.longitud))
			{
				this.s = this.pp.aEsDeZona.toString();
				this.s = this.s.replace(/\,/g, '')
				
				if (this.capaON == null)
				{
					posEsDeZona = this.s.indexOf('0')
					preferente = ((this.cual == '') || (this.cual == 'cambioLocalizacion')) && (this.buscador['paginaPaginacion'].value == 1) && (posEsDeZona == 0)
					
					preferenteAnt = preferente
				}
				else preferente = false;
				
				$1((preferente?'promociones_preferentes':'promociones_zona'))
				$1((preferente?'titulo_promociones_preferentes':'titulo_promociones_zona'))
				
				$5((preferente?'promociones_zona':'promociones_preferentes'))
				$5((preferente?'titulo_promociones_zona':'titulo_promociones_preferentes'))
				
				this.buscador['final_pagina_on'].value = Math.min($10(this.buscador['inicio_pagina_on'].value) + $10(this.buscador['rango_promociones'].value) - 1, this.pp.longitud)
				for (h = $10(this.buscador['inicio_pagina_on'].value); h <= $10(this.buscador['final_pagina_on'].value); h++)
				{
					lay = $((preferente?'promociones_preferentes':'promociones_zona'))
					if (this.pp.dameIdPromocion(h) != -1)
					{
						lay.innerHTML += this.pintarUnON(h, this.caja_promos_preferente, this.pp)
						listaIds.push(this.pp.dameIdPromocion(h));
						j = $10(h) + 1;
						if (this.capaON == null)
						{
							preferenteAnt = preferente
							preferente = (this.pp.dameEsDeZona(h + 1) == 0) && (this.buscador['paginaPaginacion'].value == 1)
							if (preferenteAnt != preferente)
								break
						}						
					}
				}
				this.consultasResumenON(listaIds)
			}
			else if (this.buscador['inicio_pagina_on'].value > this.pp.longitud)
					$6('titulo_promociones_preferentes,promociones_preferentes,titulo_promociones_zona,promociones_zona')
		}
		else
		{
			if (this.inicio_on_zona < $10(this.buscador['final_pagina_on'].value))
			{
				// insertamos en donde tenía que haber algo y no hay nada. Esto apsa cuando hay 1 o 2 de la localizacion.
				this.pp.desplazar(this.inicio_on_zona, 4 - this.inicio_on_zona)
			}
		}
	}
	
	this.realizarBusqueda = function()
	{
		$Loading('BUSCANDO')
		this.ajax.url = '/buscar/enventa/buscar.cfm?' + this.convierteAURL()
		this.ajax.f = "procesar()"
		this.ajax.loaderror = "pintarError()"
		this.ajax.timeOut = 7000;
		this.ajax.run()
	}

	this.convierteAURL = function ()
	{
		var url = "";
		var destinos = new Array()
		for (i = 0; i < this.buscador.length; i++)
		{
			if ((this.buscador.elements[i].type == 'checkbox') && (this.buscador.elements[i].name.indexOf('destino_') > -1))
			{
				if (this.buscador.elements[i].checked)
					destinos[destinos.length] = this.buscador.elements[i].value;
			}
			else url += '&' + this.buscador.elements[i].name + '=' + escape(this.buscador.elements[i].value);			
		}
		url += '&destinos=' + destinos
		return url.replace(/ /g, '');
	}
	
	this.convierteAURLJSON = function ()
	{
		var url = "";
		for (i = 0; i < this.buscador.length; i++)
		{
			if (this.buscador.elements[i].name != 'excluidas')
			{
				if ((this.buscador.elements[i].type == 'checkbox') && (this.buscador.elements[i].name.indexOf('destino_') > -1))
				{
					if (this.buscador.elements[i].checked)
						url += '&' + this.buscador.elements[i].name + '=' + escape(this.buscador.elements[i].value);
				}
				else url += '&' + this.buscador.elements[i].name + '=' + escape(this.buscador.elements[i].value);			
			}
		}
		return url.replace(/ /g, '');
	}
	
	this.pintarError = function()
	{
		this.error = true;
		$CloseLoading();
		if ($10(this.buscador.paginaPaginacion.value) > 1)
		{		
			this.buscador.rango_pagina.value = $10(this.buscador.rango_pisos_1.value) + $10(this.buscador.rango_pisos_2.value);
			this.buscador.inicio_pagina.value = $10(this.buscador.inicio_pagina.value) - $10(this.buscador.rango_pagina.value);
			this.buscador.final_pagina.value = $10(this.buscador.inicio_pagina.value) + $10(this.buscador.rango_pagina.value) - 1;
			this.buscador.final_buscador.value = $10(this.buscador.final_buscador.value) - $10(this.buscador.rango_buscador.value) - 1;
			this.buscador.paginaPaginacion.value = $10(this.buscador.paginaPaginacion.value) - 1;
		}
		else this.inicializarFormulario()
		miLayer = new Clayer('Ha habido un error realizando la búsqueda. Inténtelo de nuevo dentro de unos momentos.',344);
		miLayer.AddButton('Reintentar','miLayer.Cerrar();buscador.buscar();');
		miLayer.open();
	}
	
	this.procesar = function()
	{	
		try{this.ponerPixeles()}catch(e){}
		this.salida_inicio = this.ajax.xmlDoc.responseText;
		this.anyadir()
	}
		
	this.pintarAvisoTope = function()
	{
		$CloseLoading()
		$aviso('Has alcanzado el número máximo de resultados mostrables en una búsqueda. Redefine tus criterios de b&uacute;squeda por favor.')		
	}
	
	this.pintarMensajeAclaratorio = function ()
	{
		if (this.mensajeAclaratorio != '')
		{
			$1("mensaje")
			$11('mensaje', '<span style="background: #ffff00">' + this.mensajeAclaratorio + '</span>')
		}
		else $5("mensaje")
	}
	
	this.anyadir = function ()
	{			
		//try{
			this.urlBuscador = this.convierteAURLJSON();
			this.jsones[this.urlBuscador] = this.salida_inicio;

			var a = this.salida_inicio.split('$$$$$$$$$$$$$$$$$$$$')
			var s = ''
			var obj;
			if (a[0] != 'error')
			{
				this.buscador['total'].value = a[1];
				obj = eval('(' + a[0] + ')')
				this.Bienes.anyadir(obj, $10(this.buscador['inicio_buscador'].value))
				this.mensajeAclaratorio = obj.mensajeAclaratorio;
				if (this.pintarJS) this.pintarMensajeAclaratorio()
				this.buscador['rango_pagina'].value = Math.min(this.buscador['rango_pagina'].value, this.buscador['total'].value)
				this.buscador['final_pagina'].value = $10(this.buscador['inicio_pagina'].value) + $10(this.buscador['rango_pagina'].value) - 1
				
				if (this.buscador['total'].value == '0')
				{
					//$6('titulo_bienes_sm_1,titulo_bienes_sm_2,ordenador_1,ordenador_2,paginador_1,paginador_2'); // Ocultamos
					$6('ordenador_1,ordenador_2,paginador_1,paginador_2'); // Ocultamos
					if (this.pintarJS) 
					{
						$CloseLoading()
						this.mostrarCapaAlertas()
					}
					else $12('bienes_SM_1,bienes_SM_2') // Limpiamos
				}
				else
				{
					this.bienesZona = this.Bienes.bienesZona.toString().replace(/,/g, '');
					this.hayBienesZona = (this.bienesZona.indexOf('1') > -1);
					this.hayBienesLocal = (this.bienesZona.indexOf('0') > -1);
					
					if (this.pintarJS)
					{
						if (this.hayBienesZona)
						{
							// Hay bienes de la zona
							// Mostramos la caja y el título de SM2
							$7('titulo_bienes_sm_2,bienes_SM_2')
							if (!this.hayBienesLocal)
							{
								// No hay bienes local
								// Ocultamos el buscador y el orden
								$6('boxGenFiltros,ordenador_1');							
								// Ocultamos lo de SM 1
								$6('titulo_bienes_sm_1,bienes_SM_1')
							}
							else
							{
								// hay bienes local
								// Mostramos el buscador y el orden
								$7('boxGenFiltros,ordenador_1');
								// Mostramos lo de SM 1
								$7('titulo_bienes_sm_1,bienes_SM_1')
							}
						}
						else
						{
							// No hay bienes zona
							// Ocultamos lo de SM 2
							$6('titulo_bienes_sm_2,bienes_SM_2')
							if (!this.hayBienesLocal)
							{
								// No hay bienes local
								// Ocultamos el buscador y el orden
								$6('boxGenFiltros,ordenador_1');
								// Ocultamos lo de SM 1
								$6('titulo_bienes_sm_1,bienes_SM_1')
								
							}
							else
							{
								// hay bienes local
								// Mostramos el buscador y el orden
								$7('boxGenFiltros,ordenador_1');
								// Mostramos lo de SM 1
								$7('titulo_bienes_sm_1,bienes_SM_1')
							}
						}
					}
					
					
					// Las promociones					
					this.pp.anyadir(eval('(' + a[2] + ')'), $10(this.buscador['inicio_buscador_on'].value))
					s = this.pp.idspromocion.toString()
					this.buscador['excluidas'].value = s.substr(1, s.length)					
					this.Bienes.inicializaPosiciones()					
					//if (($10(this.buscador['total'].value) != 0)) this.PonerPaginacion()
					if (this.pintarJS) this.PonerPaginacion()
					//try{
						this.pintarSM()
						//}catch(e){}
					try{this.pintarON()}catch(e){}
				}				
			}
			else this.pintarError()
			$CloseLoading();
		//}catch(e){$CloseLoading()}
	}
	
	this.cambiaPorQueBusco = function (por)
	{
		this.cual = por;
	}
	
	this.cambioModoBusqueda = function()
	{
		var r = false;
		var aux = this.listaCamposPorDefecto.split(',');
		for(i = 0; i < aux.length; i++)
		{
			if (
				(this.buscador[aux[i]].value != this.buscador['defecto_' + aux[i]].value) && (this.buscador[aux[i]].value != '')
				)
			{
				//this.buscador[aux[i]].style.background = '#ffff00'
				r = true
			}
			else this.buscador[aux[i]].style.background = '#ffffff'
		}
		// Casos especiales, ordenación y cambio de localizacion
		if ((this.cual == 'ordenar') || (this.cual == 'cambioLocalizacion'))
			r = false
		return r
	}
	
	this.buscar = function()
	{	
		this.pintarJS = true
		this.inicializarFormulario()		
		buscador.buscador['bez'].value = 1
		this.cual = ((arguments.length  == 1)?arguments[0]:this.cual);
		this.capaON = 'promociones_zona'

		if (this.comprobarCoherenciaFormulario())
		{		
			borrarPrecio(this.buscador['precio_minimo'])
			borrarPrecio(this.buscador['precio_maximo'])
						
			$6('paginador_1,paginador_2,resultados_recomendados,otros_resultados,cabeceraBoxListadoEnventa,cabecera_otros_resultados,titulo_promociones_preferentes,promociones_preferentes,titulo_promociones_zona,promociones_zona,')
			
			if (this.buscador['modoBusqueda'].value != 'serieIds')
				this.buscador['modoBusqueda'].value = (this.cambioModoBusqueda())?'sinRelleno':'defecto'
			
			this.Bienes.init()
			this.generarUrlUrchin(this.cual)
				
			if (this.comprobarParametrosBusquedaLocal() && !this.error)
			{
				$Loading('BUSCANDO')
				this.realizarBusquedaLocal()
				this.error = false;
				this.anyadir()
			}
			else
			{
				this.realizarBusqueda()
				this.error = false
			}
			//this.traerBusquedasRelacionadas()
		}
	}
	
	//this.pintarBusquedasRelacionadas = function(){}	
	//this.traerBusquedasRelacionadas = function(){}
	
	this.comprobarCoherenciaFormulario = function()
	{
		return true;
	}
	
	this.inicializarFormulario = function()
	{
		if (this.pintarJS)
		{
			var aux = this.listaCamposReset.split(',');
			for (i = 0; i < aux.length; i++)
				this.buscador[aux[i].replace('reset_', '')].value = this.buscador[aux[i]].value
			this.buscador['total'].value = 0
			this.buscador['rango_pagina'].value = 25
		}
	}
	
	this.comprobarParametrosBusquedaLocal = function()
	{
		var r = false;
		this.urlBuscador = this.convierteAURLJSON();
		if (this.jsones[this.urlBuscador])
			r = true
		return r;

	}
	
	this.realizarBusquedaLocal = function()
	{
		this.salida_inicio = this.jsones[this.urlBuscador];
	}
	
	this.anyadirLocal = function()
	{
		// El total de pisos
		this.buscador.total.value = $10(this.Bienes.longitud);
		if ($10(this.buscador.total.value) > 0)
		{
			this.buscador.inicio_pagina.value = 1;
			this.buscador.final_buscador.value = $10(this.Bienes.longitud);
			this.Bienes.inicializaPosiciones();
			if (($10(this.buscador['total'].value) != 0) && this.pintarJS)
				this.PonerPaginacion();
			try{this.pintarSM();}catch(e){}
			try{this.pintarON();}catch(e){}
		}
	}
	
	this.anyadirFavorito = function (id_bien)
	{
		this.sm_listaSeleccionados[this.sm_listaSeleccionados.length] = id_bien;
	}
	
	this.anyadirFavoritoON = function (id_promocion)
	{
		this.sm_listaSeleccionadosON[this.sm_listaSeleccionadosON.length] = id_promocion;	
	}
	
	this.dameIdBien = function(posicion)
	{
		return this.Bienes.dameIdBien(posicion);
	}
	
	this.damePosicion = function(id_bien)
	{
		return this.Bienes.damePosicion(id_bien)	
	}
	
	this.dameSumaSeleccionados = function ()
	{
		return (this.sm_listaSeleccionadosON.length + this.sm_listaSeleccionados.length);	
	}
	
	this.cambiarEnlacesPestanas = function(porQueBusco)
	{
		try{$('pestana_enventa').href = '/buscar/?pagina=buscar_enventa_resultados&' + porQueBusco;}catch(e){}
		try{$('pestana_enalquiler').href = '/buscar/?pagina=buscar_enalquiler_resultados&' + porQueBusco;}catch(e){}
		try{$('pestana_vacacional').href = '/buscar/?pagina=buscar_vacacional_resultados&' + porQueBusco;}catch(e){}
		try{$('pestana_obranueva').href = '/buscar/?pagina=buscar_obranueva_resultados&' + porQueBusco;}catch(e){}
	}
	
	this.cambiarTitulos = function(id)
	{
		var s = ''
		var a = id.split('=')
		if (a[0] == 'id_localizacion')
			s = $('poblacion_' + a[1]).innerHTML;
		else
			s = 'C.P. ' + this.buscador['TiposBusqueda.id'].value
		$11("promos_on_en", s);		
		$11('casas_en_venta_en', ' en&nbsp;' + s)	
		$11('otras_casas_en_venta_en', '&nbsp;cerca de ' + s)
		
		if (a[0] == 'id_localizacion')
			s = formatURL(s)
		
		if (a[0] == 'id_localizacion')
		{
			if ((a[1] == '280796') || (a[1] == '080193'))
				cambiaPreciometro(a[1])
		}
		else
		{
			// Es un CP
			if (s == 'madrid')
				cambiaPreciometro('280796')
			else if (s == 'barcelona')
				cambiaPreciometro('080193')
		}
		
		objFuncionesAnalytics['nombrePoblacion'] = s;
		objFuncionesAnalytics['tipobusqueda'] = a[0];
		objFuncionesAnalytics['valortipobusqueda'] = a[1];
		
		eval("objFuncionesAnalytics." + origenPeticion + "_cambioLocalizacion_SM()");
	}
	
	this.cambioLocalizacion = function(id, nombre_url)
	{
		var id_loc_ant = this.buscador['TiposBusqueda.tipo'] + '=' + this.buscador['TiposBusqueda.id'].value
		this.s = id.split('=')
		this.buscador['TiposBusqueda.tipo'].value = this.s[0]
		this.buscador['TiposBusqueda.id'].value = this.s[1]		
		this.buscador['orden'].value = 'facilisimo asc';		
		this.buscador['profesionalesPrimero'].value = 1;
		try{this.buscador['ids'].value = ''}catch(e){}
		this.inicializarFormulario()
		this.buscador['modoBusqueda'].value = 'defecto'
		this.buscar('cambioLocalizacion')
		this.CambiarCombosEImagenes();		
		this.cambiarEnlacesPestanas(id)
		this.cambiarTitulos(id)
		rastroMigas.cambioLocalizacion(id, 'buscador', '', '', '', nombre_url, '')
		if (id.split('=')[0] != 'cp')
		{
			try
			{
				$('capaObjeto69991').innerHTML = $('capaObjeto69991').innerHTML.replace(/iloca=([0-9]{2,6})/g, 'iloca=' + id.split('=')[1])
				$('preciometro_titular').innerHTML = rastroMigas.getNombrePoblacionActual()
			}
			catch(e){}
		}
		try
		{
			$11('casas_en_variacion_precio', '')
			traerVariacionPrecios(this.buscador['TiposBusqueda.id'].value)
		}
		catch(e)
		{

		}
	}
	
	this.ordenar = function ()
	{
		this.inicializarFormulario()
		this.buscar('ordenar');
	}
	
	this.ordenarPorEnlace = function (campo, ord)
	{
		this.buscador.orden.value = campo + ' ' + ord;
		this.ordenar();
		this.CambiarCombosEImagenes('');
	}
	
	this.CambiarCombosEImagenes = function (nombre)
	{
		try{
			var capas = new Array('facilisimo', 'fecha_modif', 'precio', 'superficie' ,'habitaciones', 'banos')
			var campo = this.buscador.orden.value.split(' ')[0]
			var ord = this.buscador.orden.value.split(' ')[1]
			var ord_contrario
			var i = 0
			var capa_enlace
			var capa_flecha
			var cf
			
			if (ord == 'asc')
				ord_contrario = 'desc'
			else
				ord_contrario = 'asc'			
			
			for (i = 0; i < capas.length; i++)
			{
				capa_enlace = $('orden_' + capas[i])
				cf = 'flecha_orden_' + capas[i]
				capa_flecha = $(cf)
					
				if (campo == capas[i])
				{
					eval('capa_enlace.onclick = function (){buscador.ordenarPorEnlace("' + capas[i] + '", "' + ord_contrario + '")}')
					eval('capa_flecha.onclick = function (){buscador.ordenarPorEnlace("' + capas[i] + '", "' + ord_contrario + '")}')
					capa_enlace.className += ' naranja'
					if (campo == 'facilisimo')
						$5(capa_enlace.id)	// Ocultamos
					else $11(cf, ((ord == 'asc')?'&#9650;':'&#9660;'))

					$14(cf)
				}
				else
				{
					eval('capa_enlace.onclick = function (){buscador.ordenarPorEnlace("' + capas[i] + '", "asc")}')
					capa_enlace.className = capa_enlace.className.replace(/naranja/g, '');
					$5(cf)
					if (capas[i] == 'facilisimo') $14(capa_enlace.id)	// Mostramos
				}
			}			
		}catch(e){}
	}

	this.pintarPromueve = function(id)
	{
		this.s = eval(this.name + '.ajaxPromueve.xmlDoc.responseText')
		var a = this.s.split('__');
		a[0] = unescape(a[0]).trim()
		a[1] = unescape(a[1]).trim()
		if ((a[0] != 'error') && (a[0] != ''))
		{
			this.s = a[0]
			this.s = this.s.replace('$random$', Math.random())
			var miLayerPromo = new Clayer(this.s, 344,350);
			miLayerPromo.setTitulo(a[1])
			miLayerPromo.open();			
		}
		else eval(this.pp.dameEnlacePromocion(this.pp.damePosicion(id)))
	}
	
	this.verPromueve = function(id)
	{
		this.ajaxPromueve.url = '/buscar/traerPromueve.cfm?' + id;
		this.ajaxPromueve.f = "pintarPromueve(" + id + ")"
		this.ajaxPromueve.run();
	}
	
	this.generarUrlUrchin = function(cual)
	{
		var s = ''
		switch (cual)
		{
			case 'ordenar' : 
				eval("objFuncionesAnalytics." + origenPeticion + "_orden_SM(this.buscador['orden'].value.split(' ')[0])");
			break;
			
			case 'cambioLocalizacion' : 
				objFuncionesAnalytics['nombrePoblacion_ant'] = objFuncionesAnalytics['nombrePoblacion']
				objFuncionesAnalytics['tipobusqueda_ant'] = objFuncionesAnalytics['tipobusqueda'];
				objFuncionesAnalytics['valortipobusqueda_ant'] = objFuncionesAnalytics['valortipobusqueda'];
			break;
			
			case 'cambioPrecioMinimo' : 
				s += String.format('precio_minimo={0}&precio_maximo={1}', this.buscador['precio_minimo'].value, this.buscador['precio_maximo'].value)
				s = 'precio_minimo';
			break;
			
			case 'cambioPrecioMaximo' :
				s += String.format('precio_minimo={0}&precio_maximo={1}',  this.buscador['precio_minimo'].value, this.buscador['precio_maximo'].value)
				s = 'precio_maximo'
			break;
			
			case 'cambioSuperficie' :
				s += String.format('superficie_minima={0}&superficie_maxima={1}', this.buscador['superficie_minima'].value, this.buscador['superficie_maxima'].value)
				s = 'superficie'
			break;
			
			case 'cambioDormitorios' : 
				s += String.format('dormitorios={0}', this.buscador['habitaciones'].value)
				s = 'dormitorios'
			break;
			
			case 'cambioBanos' :
				s += String.format('banos={0}', this.buscador['banos'].value)
				s = 'banos'
			break;
			
			case 'cambioTipoBien' :
				s += String.format('tipo_bien={0}', aTiposBien[this.buscador['id_tipo_bien'].value])
				s = 'tipo_bien'
			break;
			
			case 'cambioCaracteristicas' :
				s += String.format('caracteristicas={0}', this.buscador['caracteristicas'].value)
				s = 'caracteristicas'
			break;

		}
		this.urlUrchin = s
	}
	
	this.hacerLog = function (s)
	{
		try{console.log(s)}catch(e){}
	}
	
	this.mostrarCapaAlertas = function()
	{
		var contenido = $('formulario_alertas_2').innerHTML
		contenido = contenido.replace(/help_alertas_2/g,'help_alertas_3');
		contenido = contenido.replace(/fAlertas_2/g,'fAlertas_3');
		var cna = new Clayer(this.mensajeAclaratorio + '<br>' +  contenido,800,250);
		cna.open()
	}
	
	this.errorFoto = function(obj)
	{
		var nueva = '';
		var src = obj.src;
		if (src.indexOf('facilisimo.com/por_') > 0)	
		{
			nueva = src.replace('/por_', '/')
		}
		else if (src.indexOf('particulares/por_') > 0)
			nueva = src.replace('/por_', '/')
		else nueva = '/images/img_error.jpg';
		obj.src = nueva;
	}
	
	this.cargarCaracteristicas = function(id){}	
	this.anyadirCaracteristicas = function(id){}	
	this.ocultarCaracteristicas = function(id){}
}	