//===============
// Lista de categorias
//===============
function abcategoria(n,t,e,sub,vis) {
	this.ProcessTipo = function() {
		if(typeof(this.tipo)=='string') {
			this.tipo = this.tipo.replace(/,\s+/g,',').split(',');
		}
		return this;
	};
	this.ProcessExtras = function() {
		if(typeof(this.extras)=='string') {
			this.extras = this.extras.replace(/,\s+/g,',').split(',');
		}
		return this;
	};
	this.TieneSubCategorias = function() {
		return this.NumSubCat()>0;
	};
	this.NumSubCat = function() {
		return this.sub!=null ? this.sub.length : 0;
	};
	this.name = n;
	this.tipo = t || null;
	this.extras = e || null;
	this.vis = typeof(vis) == 'boolean' ? vis : true;
	this.ProcessTipo().ProcessExtras();
	this.sub = sub || null;
	for(var k in this.sub) {
		if(this.sub[k].tipo==null) {
			this.sub[k].tipo = this.tipo;
		}
		if(this.sub[k].extras==null) {
			this.sub[k].extras = this.extras;
		}
	}
}
var categorias = [];
categorias.push(new abcategoria('Casas y fincas','Compra, Venta, Cambio, Alquiler, Compartir','Superficie, Habitaciones, Baños', [
		new abcategoria('Piso'),
		new abcategoria('Casa'),
		new abcategoria('Local Comercial'),
		new abcategoria('Solar'),
		new abcategoria('Párking'),
		new abcategoria('Otros')
	]));

categorias.push(new abcategoria('Electrónica','Compra, Venta, Alquiler, Cambio, Regalo',null, [
		new abcategoria('Televisión y audio'),
		new abcategoria('Fotografía e imagen'),
		new abcategoria('Telefonía'),
		new abcategoria('Informática y videojuegos'),
		new abcategoria('Otros')
	]));	

categorias.push(new abcategoria('Empleo y negocios','Oferta de empleo, Demanda de empleo, Oferta de servicio, Demanda de servicio',null,[
		new abcategoria('Empleos','Oferta de empleo, Demanda de empleo','Tipo de trabajo'),
		new abcategoria('Servicios','Oferta de servicio, Demanda de servicio','Tipo de servicio'),
		new abcategoria('Negocios','Compra, Venta, Alquiler, Traspaso',null)
	]));

categorias.push(new abcategoria('Moda y hogar','Compra, Venta, Alquiler, Cambio, Regalo',null, [
		new abcategoria('Electrodomésticos'),
		new abcategoria('Jardín'),
		new abcategoria('Herramientas'),
		new abcategoria('Muebles'),
		new abcategoria('Textil, moda y complementos'),
		new abcategoria('Otros')
	]));

categorias.push(new abcategoria('Mascotas','Compra, Venta, Cría, Regalo','Raza, Edad, Género', [
		new abcategoria('Gatos'),
		new abcategoria('Perros'),
		new abcategoria('Otros')
	]));

categorias.push(new abcategoria('Ocio y deportes','Compra, Venta, Cambio, Regalo',null, [
		new abcategoria('Coleccionismo'),
		new abcategoria('Deporte'),
		new abcategoria('Literatura'),
		new abcategoria('Música e instrumentos'),
		new abcategoria('Tiempo libre'),
		new abcategoria('Otros')
	]));

categorias.push(new abcategoria('Vehículos','Compra, Venta, Alquiler, Cambio','Marca, Modelo, Año, Km, Combustible', [
		new abcategoria('Coches'),
		new abcategoria('Embarcaciones',null,'Marca, Modelo, Año, Km, Modelo motor'),
		new abcategoria('Motos'),
		new abcategoria('Recambios',null,'Marca, Modelo'),
		new abcategoria('Otros')
	]));

categorias.push(new abcategoria('Otros anuncios','Compra, Venta, Cambio, Otros',null,null));

//================
// Lista de zonas
//================
function abzona(n,z,vis) {
	this.name = n;
	this.sub = z || null;
	this.vis = typeof(vis) == 'boolean' ? vis : true;
}
var zonas = []

zonas.push(new abzona('Eivissa',[
		new abzona('Eivissa'),
		new abzona('Sant Antoni de Portmany'),
		new abzona('Sant Joan de Labritja'),
		new abzona('Sant Josep de sa Talaia'),
		new abzona('Santa Eulària des Riu')
	]));
zonas.push(new abzona('Formentera',[
		new abzona('Formentera')
	]));
zonas.push(new abzona('Mallorca',[
		new abzona('Palma'),
		new abzona('Serra de Tramuntana'),
		new abzona('Raiguer'),
		new abzona('Pla de Mallorca'),
		new abzona('Migjorn'),
		new abzona('Llevant'),
		new abzona('-'),
		new abzona('Alaró'),
		new abzona('Alcúdia'),
		new abzona('Algaida'),
		new abzona('Andratx'),
		new abzona('Ariany'),
		new abzona('Artà'),
		new abzona('Banyalbufar'),
		new abzona('Binissalem'),
		new abzona('Búger'),
		new abzona('Bunyola'),
		new abzona('Calvià'),
		new abzona('Campanet'),
		new abzona('Campos'),
		new abzona('Capdepera'),
		new abzona('Consell'),
		new abzona('Costitx'),
		new abzona('Deià'),
		new abzona('Escorca'),
		new abzona('Esporles'),
		new abzona('Estellencs'),
		new abzona('Felanitx'),
		new abzona('Fornalutx'),
		new abzona('Inca'),
		new abzona('Lloret de Vistalegre'),
		new abzona('Lloseta'),
		new abzona('Llubí'),
		new abzona('Llucmajor'),
		new abzona('Manacor'),
		new abzona('Mancor de la Vall'),
		new abzona('Maria de la Salut'),
		new abzona('Marratxí'),
		new abzona('Montuïri'),
		new abzona('Muro'),
		new abzona('Palma de Mallorca'),
		new abzona('Petra'),
		new abzona('Pollença'),
		new abzona('Porreres'),
		new abzona('Puigpunyent'),
		new abzona('Sa Pobla'),
		new abzona('Sant Joan'),
		new abzona('Sant Llorenç des Cardassar'),
		new abzona('Santa Eugènia'),
		new abzona('Santa Margalida'),
		new abzona('Santa Maria del Camí'),
		new abzona('Santanyí'),
		new abzona('Selva'),
		new abzona('Sencelles'),
		new abzona('Ses Salines'),
		new abzona('Sineu'),
		new abzona('Sóller'),
		new abzona('Son Servera'),
		new abzona('Valldemossa'),
		new abzona('Vilafranca de Bonany')
	]));
zonas.push(new abzona('Menorca',[
		new abzona('Alaior'),
		new abzona('Ciutadella de Menorca'),
		new abzona('Es Castell'),
		new abzona('Es Mercadal'),
		new abzona('Es Migjorn Gran'),
		new abzona('Ferreries'),
		new abzona('Maó'),
		new abzona('Sant Lluís')
	]));

// Cargar lista de anuncios guardados desde cookie
function anuncioGuardado(i,n) {
	this.id = i;
	this.name = n;
}
var guardados = [];
var fromcookie = readCookie('guardados');
if (fromcookie != null && fromcookie != '')  {
	fromcookie = fromcookie.split('||');
	for (i=0; i<fromcookie.length; i++) {
		fromcookie[i] = fromcookie[i].split('|');
		guardados.push(new anuncioGuardado(fromcookie[i][0],fromcookie[i][1]));
	}
}

// comprobar mayusculas
function checkCaps(texto,maximo) {
	val = 1;
	var matchList = "";
	var regexp = /[A-Z]/g;
	while ((match = regexp.exec(texto)) != null) {
		matchList += val;
	}
	if ((matchList.length/texto.length * 100) > maximo) {
		return false;
	} else {
		return true;
	}
	//alert("Percentage: " + matchList.length/texto.length * 100 + "%");
	
}

function getAnchor(s) {
	if (typeof(s)!='string') {
		s = $(s).attr('href');
	}
	return s.replace(/^.*\#/,'');
}

// cambiar imagen ayuda destacar
function cambiarImg(t,n) {
	$('#'+t+' img').attr('src','/images/destacarh_'+n+'.jpg');
}

//===============
// Crear filtros
//===============
function substituirTitulo(t,w) {
	var texto = '<span></span><strong style="width: '+w+'px;">'+t+'</strong><img alt="" src="/images/menuarrow.gif" />';
	return texto;
}
function loadFilter(tipofiltro,p) {
	var s = '';
	function crearCat() {
		// Crear input CATEGORIA y comprobar filtro inicial
		var cur = $('#ffiltro_cat_name').val();
		var curid;
		if (cur == 'Todas las categorías') {
			curid = -1;
		} else {
			for (k in categorias) {
				if (categorias[k].name==cur) {
					curid = k;
				}
			}
		}
		$('#searchfilter').append('<input type="hidden" id="ffiltro_cat" name="ffiltro_cat" value="'+curid+'" />');
		// Crear input SUBCATEGORIA y comprobar filtro inicial
		var subcur = $('#ffiltro_subcat_name').val();
		var subcurid;
		if (subcur == 'Todos') {
			subcurid = -1;
		} else {
			if (categorias[curid]) {
				for (k in categorias[curid].sub) {
					if (categorias[curid].sub[k].name==subcur) {
						subcurid = k;
					}
				}
			}
		}
		$('#searchfilter').append('<input type="hidden" id="ffiltro_subcat" name="ffiltro_subcat" value="'+subcurid+'" />');
	}
	if (tipofiltro == 0) {
		if ($('#ffiltro_cat').length==0) {
			crearCat();
		}
		var catloaded = false;
		var subcatloaded = false;
		
		// Crear filtro
		s += '<div class="filter-column"><p>Selecciona una categoría:</p>';
		s += '<ul id="filtro-categoria" class="filter-list">';
		s += '<li><a href="#" id="cat--1">Todas las categorías</a></li>';
		for(var k in categorias) {
			if (categorias[k].vis) {
				s += '<li><a href="#" id="cat-'+k+'">' + categorias[k].name + '</a></li>';
			}
		}
		s += '</ul>';
		s += '</div>';
		s += '<div class="filter-column"><p>Selecciona una subcategoría:</p>';
		s += '<ul id="filtro-subcat" class="filter-list">';
		s += '</ul>';
		s += '</div>';
		s += '<input type="button" value="Aplicar" class="filter-button" id="filtro-btn-categoria" />';
		
		p.append(s);
		$('#filtro-btn-categoria').click(function() {
			$('.menu:eq(0) a').trigger('click');
		});
		$('#filtro-categoria a').click(function() {
			var subcurid = $('#ffiltro_subcat').val().replace(/subcat-/,'');
			$('#filtro-categoria a.selected').removeClass('selected');
			$('#filtro-categoria a img').remove();
			// reset tipos
			if (catloaded) {
				$('.menu:eq(1) a').empty().append(substituirTitulo('Cualquier tipo',102));
				$('#ffiltro_tipo_name').val('Cualquier tipo');
			}
			// ---
			$('.menu:eq(0) a').empty().append(substituirTitulo($(this).text(),102));
			$(this).addClass('selected').prepend('<img alt="" src="/images/selectflecha.gif" />');
			var cat = $(this).attr('id').replace(/cat-/,'');
			$('#ffiltro_cat').val(cat);
			$('#ffiltro_cat_name').val($(this).text());
			$('#ffiltro_subcat').val(-1);
			$('#ffiltro_subcat_name').val('Todos');
			
			function listarSubcat(l) {
				var s = '';
				if (cat != -1) {
					for(var k in categorias[cat].sub) {
						if (categorias[cat].sub[k].vis) {
							s += '<li><a href="#" id="subcat-'+k+'" title="' + categorias[cat].sub[k].name + '" ';
							if (subcurid == k && !l) {
								s += 'class="selected"';
							}
							s += '>' + categorias[cat].sub[k].name + '</a></li>';
						}
					}
				}
				return s;
			}
			
			var s = '';
			if (catloaded) {
				$('#ffiltro_subcat').val(-1);
				s += '<li><a href="#" id="subcat--1" class="selected" title="Todos">Todos</a></li>';
				s += listarSubcat(catloaded);
			} else {
				s += '<li><a href="#" id="subcat--1" title="Todos">Todos</a></li>';
				s += listarSubcat(catloaded);
				catloaded = true;
			}
			$('#filtro-subcat').empty().append(s);
			$('#filtro-subcat a').click(function() {
				$('#filtro-subcat a.selected').removeClass('selected');
				$(this).addClass('selected');
				// reset tipos
				if (subcatloaded) {
					$('.menu:eq(1) a').empty().append(substituirTitulo('Cualquier tipo',102));
					$('#ffiltro_tipo_name').val('Cualquier tipo');
				}
				// ---
				if ($(this).attr('id') != 'subcat--1' && $(this).text() != 'Otros') {
					$('.menu:eq(0) a').empty().append(substituirTitulo($(this).text(),102));
				} else {
					$('.menu:eq(0) a').empty().append(substituirTitulo($('#filtro-categoria a.selected').text(),102));
				}
				var subcat = $(this).attr('id').replace(/subcat-/,'');
				$('#ffiltro_subcat').val(subcat);
				$('#ffiltro_subcat_name').val($(this).text());
				if (subcatloaded) {
					setTimeout("$('.menu:eq(0) a').trigger('click')",100);
				}
				return false;
			});
			if (!subcatloaded) {
				$('#subcat-'+subcurid).trigger('click');
				subcatloaded = true;
			}
			return false;
		});
		$('#filtro-categoria a').each(function() {
			if ($('#ffiltro_cat_name').val() == $(this).text()) {
				$(this).trigger('click');
			}
		});
	} else if (tipofiltro == 1) {
		if ($('#ffiltro_cat').length==0) {
			crearCat();
		}
		function updateTipos() {
			var s = '';
			var cat = $('#ffiltro_cat').val();
			var subcat = $('#ffiltro_subcat').val();
			if (cat >= 0 && subcat >= 0) {
				for (var k in categorias[cat].sub[subcat].tipo) {
					s += '<li><a href="#" id="tipo-'+k+'">' + categorias[cat].sub[subcat].tipo[k] + '</a></li>';
				}
			} else if (cat == -1) { // Si es categoria TODAS
				s += '<li><a href="#" id="tipo-0">Compra</a></li>';
				s += '<li><a href="#" id="tipo-1">Venta</a></li>';
				s += '<li><a href="#" id="tipo-2">Alquiler</a></li>';
				s += '<li><a href="#" id="tipo-3">Cambio</a></li>';
			} else if (cat == 7) { // Si es categoria OTROS (solo contiene subcategoria todos)
				for (var k in categorias[cat].tipo) {
					s += '<li><a href="#" id="tipo-'+k+'">' + categorias[cat].tipo[k] + '</a></li>';
				}
			} else if (subcat == -1) { // Si es subcategoria TODOS
				var tipos = [];
				for (var k in categorias[cat].sub) {
					if (categorias[cat].sub[k].vis) {
						for (var j in categorias[cat].sub[k].tipo) {
							tipos.push(categorias[cat].sub[k].tipo[j]);
						}
					}
				}
				for (i=0; i<tipos.length; i++) {
					for (n=i+1; n<tipos.length; n++) {
						if (tipos[i] == tipos[n]) {
							tipos.splice(n,1);
							n--;
						}
					}
				}
				for (k in tipos) {
					s += '<li><a href="#" id="tipo-'+k+'">' + tipos[k] + '</a></li>';
				}
			}
			return s;
		}
		function openTiposList() {
			var s = '<li><a href="#" id="tipo--1">Cualquier tipo</a></li>';
			s += updateTipos();
			$('#filtro-tipo').empty().append(s);
			$('#filtro-tipo a').each(function() {
				if ($('#ffiltro_tipo_name').val() == $(this).text()) {
					$(this).addClass('selected');
				}
			});
			$('#filtro-tipo a').click(function() {
				$('#filtro-tipo a.selected').removeClass('selected');
				$('.menu:eq(1) a').empty().append(substituirTitulo($(this).text(),102));
				$(this).addClass('selected');
				$('#ffiltro_tipo_name').val($(this).text());
				setTimeout("$('.menu:eq(1) a').trigger('click')",100);
				return false;
			});
		}
		s += '<div class="filter-column"><p>Selecciona un tipo:</p>';
		s += '<ul id="filtro-tipo" class="filter-list">';
		s += '</ul>';
		s += '</div>';
		s += '<input type="button" value="Aplicar" class="filter-button" id="filtro-btn-tipo" />';
		p.append(s);
		openTiposList();
		$('.menu:eq(1) a').click(function() {
			if ($('#filtro1').is(':visible')) {
				openTiposList();
			}
		});
		$('#filtro-btn-tipo').click(function() {
			$('.menu:eq(1) a').trigger('click');
		});
	} else if (tipofiltro == 2) {
		var subzonaloaded = false;
		// Crear input ZONA y comprobar filtro inicial
		var curz = $('#ffiltro_zona_name').val();
		var curzid;
		if (curz == 'Todas las Baleares') {
			curzid = -1;
		} else {
			for (k in zonas) {
				if (zonas[k].name==curz) {
					curzid = k;
				}
			}
		}
		$('#searchfilter').append('<input type="hidden" id="ffiltro_zona" name="ffiltro_zona" value="'+curzid+'" />');
		// Crear input SUBZONA y comprobar filtro inicial
		var subcurz = $('#ffiltro_subzona_name').val();
		var subcurzid;
		if (subcurz == 'Toda la isla' || subcurz == '') {
			subcurzid = -1;
		} else {
			if (zonas[curzid]) {
				for (k in zonas[curzid].sub) {
					if (zonas[curzid].sub[k].name==subcurz) {
						subcurzid = k;
					}
				}
			}
		}
		$('#searchfilter').append('<input type="hidden" id="ffiltro_subzona" name="ffiltro_subzona" value="'+subcurzid+'" />');
		
		// Crear filtro
		s += '<div class="filter-column"><p>Selecciona una isla:</p>';
		s += '<ul id="filtro-zona" class="filter-list">';
		s += '<li><a href="#" id="zona--1">Todas las Baleares</a></li>';
		for(var k in zonas) {
			if (zonas[k].vis) {
				s += '<li><a href="#" id="zona-'+k+'">' + zonas[k].name + '</a></li>';
			}
		}
		s += '</ul>';
		s += '</div>';
		s += '<div class="filter-column" style="display: none;"><p>Selecciona un municipio:</p>';
		s += '<ul id="filtro-subzona" class="filter-list">';
		s += '</ul>';
		s += '</div>';
		s += '<input type="button" value="Aplicar" class="filter-button" id="filtro-btn-zona" />';
		p.append(s);
		$('#filtro-btn-zona').click(function() {
			$('.menu:eq(2) a').trigger('click');
		});
		
		$('#filtro-zona a').click(function() {
			$('#filtro-zona a.selected').removeClass('selected');
			$('#filtro-zona a img').remove();
			$(this).addClass('selected');
			if ($(this).text() != 'Todas las Baleares') {
				$(this).prepend('<img alt="" src="/images/selectflecha.gif" />');
			}
			
			$('.menu:eq(2) a').empty().append(substituirTitulo($(this).text(),137));
			
			var zona = $(this).attr('id').replace(/zona-/,'');
			$('#ffiltro_zona').val(zona);
			$('#ffiltro_zona_name').val($(this).text());
			$('#ffiltro_subzona').val(-1);
			$('#ffiltro_subzona_name').each(function() {
				if (zona == -1) {
					$(this).val('');
				} else {
					$(this).val('Toda la isla');
				}
			});
			
			var s = '';
			if (zona >= 0) {
				s += '<li><a href="#" id="subzona--1" title="Toda la isla" class="selected">Toda la isla</a></li>';
				for (var k in zonas[zona].sub) {
					if (zonas[zona].sub[k].name == '-') {
						s += '<li class="sep"></li>';
					} else if (zonas[zona].sub[k].vis) {
						s += '<li><a href="#" id="subzona-'+k+'" title="' + zonas[zona].sub[k].name + '">' + zonas[zona].sub[k].name + '</a></li>';
					}
				}
				$('#filtro-subzona').parent().show();
			} else {
				$('#filtro-subzona').parent().hide();
			}
			$('#filtro-subzona').empty().append(s);
			
			// selección por teclado - no terminado
			/*
			if ($('#filtro-subzona li').length > 0) {
				$('body').keypress(function(e) {
					if (e.which == 27) {
						// se ha pulsado escape, mostramos todos
						$('#filtro-subzona li').show();
						$('#zona-userinput').text('').parent().hide();
					} else if (e.which == 13) {
						// se ha pulsado intro, seleccionamos primera opción
						$('a',$('#filtro-subzona li:not(.userinput):visible:first')).addClass('selected'); //trigger('click');
						$('#zona-userinput').text('').parent().hide();
					} else if (e.which == 38) {
						// se ha pulsado flecha arriba
					} else if (e.which == 40) {
						// se ha pulsado flecha abajo
						if ($('#filtro-subzona li a.selected').length == 0) {
							$('a',$('#filtro-subzona li:not(.userinput):visible:first')).addClass('selected');
						}
					} else {
						// crear input texto
						if ($('#zona-userinput').length == 0) {
							$('#filtro-subzona').prepend('<li class="userinput"><a name="zona-userinput" id="zona-userinput"></a></li>');
						}
						$('#zona-userinput').append(String.fromCharCode(e.which));
						
						var r = new RegExp("^("+$('#zona-userinput').text()+")","i");
						$('#filtro-subzona li:not(.userinput)').hide().each(function() {
							if (r.test($(this).text())) {
								$(this).show();
							}
						});
					}
				});
			}
			*/
			
			$('#filtro-subzona a').click(function() {
				$('#filtro-subzona a.selected').removeClass('selected');
				$(this).addClass('selected');
				
				if ($(this).attr('id') != 'subzona--1') {
					$('.menu:eq(2) a').empty().append(substituirTitulo($(this).text(),137));
				} else {
					$('.menu:eq(2) a').empty().append(substituirTitulo($('#filtro-zona a.selected').text(),137));
				}
				var subzona = $(this).attr('id').replace(/subzona-/,'');
				$('#ffiltro_subzona').val(subzona);
				$('#ffiltro_subzona_name').val($(this).text());
				if (subzonaloaded) {
					setTimeout("$('.menu:eq(2) a').trigger('click')",100);
				}
				return false;
			});
			if (!subzonaloaded) {
				$('#subzona-'+subcurzid).trigger('click');
				subzonaloaded = true;
			}
			return false;
		});
		$('#filtro-zona a').each(function() {
			if ($('#ffiltro_zona_name').val() == $(this).text()) {
				$(this).trigger('click');
			}
		});
	} else if (tipofiltro == 3) {
		function updatePrecio() {
			var precio;
			var preciomin = parseInt($('#ffiltro_preciomin2').val()) || 0;
			var preciomax = parseInt($('#ffiltro_preciomax2').val()) || 0;
			if (preciomin <= 0 && preciomax > 0) { // Solo precio maximo
				precio = 'Hasta ' + preciomax + ' €';
				$('#ffiltro_preciomin').val(0);
				$('#ffiltro_preciomax').val(preciomax);
			} else if (preciomax <= 0 && preciomin > 0) { // Solo precio minimo
				precio = 'Superior a ' + preciomin + ' €';
				$('#ffiltro_preciomin').val(preciomin);
				$('#ffiltro_preciomax').val(0);
			} else if (preciomin <= 0 && preciomax <= 0) { // minimo y maximo es 0
				precio = 'Cualquier Precio';
				$('#ffiltro_preciomin, #ffiltro_preciomax').val(0);
			} else if (preciomin == preciomax) {
				precio = preciomin + ' €';
				$('#ffiltro_preciomin, #ffiltro_preciomax').val(preciomin);
			} else if (preciomin < preciomax) { // Es un precio normal
				precio = preciomin + ' - ' + preciomax + ' €';
				$('#ffiltro_preciomin').val(preciomin);
				$('#ffiltro_preciomax').val(preciomax);
			} else {
				precio = preciomax + ' - ' + preciomin + ' €';
				$('#ffiltro_preciomin2').val(preciomax);
				$('#ffiltro_preciomin').val(preciomax);
				$('#ffiltro_preciomax2').val(preciomin);
				$('#ffiltro_preciomax').val(preciomin);
			}
			$('.menu:eq(3) a').empty().append(substituirTitulo(precio,97));
		}
		var pmin;
		$('#ffiltro_preciomin').val() > 0 ? pmin = $('#ffiltro_preciomin').val() : pmin = '';
		var pmax;
		$('#ffiltro_preciomax').val() > 0 ? pmax = $('#ffiltro_preciomax').val() : pmax = '';
		
		// Crear filtro
		s += '<div class="filter-column">';
		s += 	'<div class="filter-precio-top">';
		s += 		'<a href="#" id="filter-precio-todos">Cualquier Precio</a>';
		s +=		'<div class="filter-precio-sep"></div>';
		s += 	'</div>';
		s += 	'Entre <input type="text" name="ffiltro_preciomin2" id="ffiltro_preciomin2" value="'+pmin+'" class="num" /> y <input type="text" name="ffiltro_preciomax2" id="ffiltro_preciomax2" value="'+pmax+'" class="num" /> €';
		s += 	'<input type="button" value="Aplicar" class="filter-button2" id="filtro-btn-precio" />';
		s += '</div>';
		p.append(s);
		updatePrecio();
		$('#filtro-btn-precio').click(function() {
			updatePrecio();
			$('.menu:eq(3) a').trigger('click');
		});
		$('#filter-precio-todos').click(function() {
			$('#ffiltro_preciomin, #ffiltro_preciomax').val('0');
			$('#ffiltro_preciomin2, #ffiltro_preciomax2').val('');
			$('.menu:eq(3) a').trigger('click');
			$('.menu:eq(3) a').empty().append(substituirTitulo('Cualquier Precio',97));
			return false;
		});
	}
}

//========================
// Popup destacar anuncio
//========================
function destacarAnuncio(tipo,anuncio,p) {
	$.ajax({
		url: "/destacar/requestinfo/",
		dataType: 'xml',
		cache: false,
		data: 'tipo=' + tipo + '&id=' + anuncio,
		type: "POST",
		error: function() {
			var c = '';
			c += '<div class="destacar-popup">';
			c += '	<h3 class="center" style="color:#f00;">Ha ocurrido un error</h3>';
			c += '	<p style="margin:30px 0;">No se han podido cargar los datos para destacar este anuncio. Por favor, recarga la página y vuelve a intentarlo.</p>';
			c += '	<a href="#" class="btn_cerrar" style="display:block;margin:0 auto;" onclick="$(\'#popupprepago'+tipo+' .popup-bg\').trigger(\'click\');"></a>';
			c += '</div>';
			p.append(c);
		},
		success: function(xml){
			var iserror = $('error',xml).text();
			if (iserror) {
				var c = '';
				c += '<div class="destacar-popup">';
				c += '	<h3 class="center" style="color:#f00;">No puedes destacar este anuncio</h3>';
				c += '	<p style="margin:30px 0;">' + iserror + '</p>';
				c += '	<a href="#" class="btn_cerrar" style="display:block;margin:0 auto;" onclick="$(\'#popupprepago'+tipo+' .popup-bg\').trigger(\'click\');"></a>';
				c += '</div>';
				p.append(c);
			} else {
				var fecha = $('data',xml).attr('fecha');
				var titulo = $('data',xml).attr('titulo');
				var dias = $('data',xml).attr('dias');
				var precio = $('data',xml).attr('precio');
				var popuptitle = $('data',xml).attr('popup');
				
				var c = '';
				c += '<div class="destacar-popup">';
				c += '	<h3 class="center">' + popuptitle + '</h3>';
				c += '		<p class="infodestacar"><span>Te dispones a destacar el anuncio: </span>' + titulo + '</p>';
				c += '		<p class="infodestacar"><span>Permanecerá destacado hasta el: </span>' + fecha + '</p>';
				c += '		<p style="font-size:14px;">El anuncio se mostrará destacado durante <strong>' + dias + ' días</strong>, y el coste total (IVA incluido) será de <strong>' + precio + ' €</strong>.</p>';
				c += '		<p style="color:#7a7a7a;">Al pulsar el botón de "Pagar ahora" accederás a una página segura de pago de "Sa Nostra" mediante la cual podrás realizar el pago con tu tarjeta de crédito. Una vez confirmado el pago (proceso instantaneo), tu anuncio aparecerá destacado de inmediato hasta el '+fecha+'.</p>';
				c += '	<form class="formulario" action="/destacar/generarpago/" method="post">';
				c += '		<input type="hidden" name="id" value="' + anuncio + '" />';
				c += '		<input type="hidden" name="tipo" value="' + tipo + '" />';
				c += '		<p class="center" style="margin:0 0 5px 0;"><input type="submit" class="btn_pagar" value="" /></p>';
				c += '		<p class="center">o <a href="#" onclick="$(\'#popupprepago'+tipo+' .popup-bg\').trigger(\'click\');">cancelar</a>.';
				c += '	</form>';
				c += '	<p class="center" style="margin:20px 0 0 0;"><img alt="" src="/images/destacar_tarjetas.gif" /></p>';
				c += '</div>';
				p.append(c);
			}
		}
	});
}

//=============
// Cookies
//=============
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function newFavorite(id,name) {
	$('#listafavs .nofavs').hide();
	$('#listafavs .favhelp').show();
	$('#listafavs').append('<li id="g-'+id+'"><a href="#" class="del" title="Eliminar de la lista"></a><a href="/anuncio/'+id+'/" title="Ver este anuncio">'+name+'</a></li>');
	$('#g-'+id+' .del').click(function() {
		deleteSaved($(this).parent().attr('id').replace(/g-/,''));
		return false;
	});
}
function noFavorites() {
	$('#listafavs .nofavs').show();
	$('#listafavs .favhelp').hide();
}
function deleteSaved(n) {
	var cookie = '';
	for (var k in guardados) {
		if (guardados[k].id == n) {
			guardados.splice(k,1);
		}
	}
	for (var k in guardados) {
		if (k > 0) {
			cookie += '||';
		}
		cookie += guardados[k].id + '|' + guardados[k].name;
	}
	createCookie('guardados',cookie,100);
	$('#g-'+n).remove();
	$('#a-'+n+' .fav').removeClass('favact');
	if (!guardados.length) {
		noFavorites();
	}
}

// Plugins
(function($){
	//==========================
	// Popup
	//==========================
	$.fn.popUp = function(o) {
		o = $.extend({
			id: 'popup',
			style: 'popup-lightbox',
			posx: '50%',
			posy: '130px',
			width: '764px',
			opacity: 0.15,
			viewbg: true,
			data: ''},o || {});
			
		return this.each(function(){
			// Comprobamos si ya existe este popup
			if ($('#'+o.id).is(':visible')) {
				$('#'+o.id).hide();
			} else {
				$('.popup').hide();
				$('#'+o.id).length==0 ? crearPopUp() : updatePopUp();
			}
			function crearPopUp() {
				// Crear fondo
				$('body').append('<div id="'+o.id+'" class="popup" style="display: none;"><a href="#" class="popup-bg '+o.style+'-bg" style="height: '+$(document).height()+'px;"></a></div>');
				var myself = $('#'+o.id);
				myself.find('.popup-bg').css({opacity: o.opacity});
				// Crear ventana
				var tabla =	'<table cellspacing="0" class="popup-tabla '+o.style+'-tabla" style="left: '+o.posx+'; top: '+o.posy+'; width: '+o.width+';">';
				tabla +=		'<tr>';
				tabla +=			'<td class="'+o.style+'-tabla-tl"></td>';
				tabla +=			'<td class="'+o.style+'-tabla-t"></td>';
				tabla +=			'<td class="'+o.style+'-tabla-tr"></td>';
				tabla +=		'</tr>';
				tabla +=		'<tr>';
				tabla +=			'<td class="'+o.style+'-tabla-l"></td>';
				tabla +=			'<td class="'+o.style+'-tabla-c"><div class="popup-content '+o.style+'-content"></div></td>';
				tabla +=			'<td class="'+o.style+'-tabla-r"></td>';
				tabla +=		'</tr>';
				tabla +=		'<tr>';
				tabla +=			'<td class="'+o.style+'-tabla-bl"></td>';
				tabla +=			'<td class="'+o.style+'-tabla-b"></td>';
				tabla +=			'<td class="'+o.style+'-tabla-br"></td>';
				tabla +=		'</tr>';
				tabla +=	'</table>';
				myself.append(tabla);
				if (o.style=='popup-filter') {
					$('.popup-content',myself).prepend('<div class="popup-filter-flecha"></div>');
				}
				
				// Contenido del popup
				var popupcontent = $('.popup-content',myself);
				if (typeof(o.data) == 'string') {
					if($(o.data).length==1) {
						$(o.data).appendTo(popupcontent);
					} else {
						popupcontent.append(o.data);
					}
				} else if ($.isFunction(o.data)) {
					o.data(popupcontent);
				}
				
				// Asignar click al fondo y resize
				$(window).resize(function() {
					if (myself.css('display') == 'block') {
						$('.popup-bg',myself).css({height: $(document).height()+'px'});
						if (o.style=='popup-filter') { recalcPos(); }
					}
				});
				if (!o.viewbg){
					$('.popup-bg',myself).hide();
				} else {
					$('.popup-bg',myself).click(function() {
						myself.hide();
						return false;
					});
				}
				myself.fadeIn(200);
			}
			function updatePopUp() {
				$('.popup').hide();
				var myself = $('#'+o.id);
				$('.popup-bg',myself).css({height: $(document).height()+'px'});
				if (o.style=='popup-filter') { recalcPos(); }
				myself.fadeIn(200);
			}
			function recalcPos() {
				var thisid = o.id;
				thisid = thisid.replace(/filtro/,'');
				$('.popup-tabla','#'+o.id).css({left: ($('#menu .menu:eq('+thisid+')').offset().left-25)+'px'});
			}
		});
	};
	
	//==========================
	// Validacion
	//==========================
	$.fn.validarForm = function(o) {
		return this.each(function() {
			var myself = $(this);
			function validar(inp) {
				if (inp.hasClass('req_any') && inp.val() == '') {
					inp.parent().addClass('formerror');
				} else if (inp.hasClass('req_text') && ! /[A-Za-z0-9]/.test(inp.val())) {
					inp.parent().addClass('formerror');
				} else if (inp.hasClass('req_tel') && ! /^[6-8-9]\d{8,}$/.test(inp.val())) {
					inp.parent().addClass('formerror');
					inp.after('<p class="specerror">El teléfono que has indicado parece no ser válido.</p>');
				} else if (inp.hasClass('req_email') && ! /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(inp.val())) {
					inp.parent().addClass('formerror');
					inp.after('<p class="specerror">El email que has indicado parece no ser válido.</p>');
				} else if (inp.hasClass('req_3') && inp.val().length < 3) {
					inp.parent().addClass('formerror');
					inp.after('<p class="specerror">Tu nombre debe contener al menos 3 letras.</p>');
				} else if (inp.hasClass('req_10') && inp.val().length < 10) {
					inp.parent().addClass('formerror');
					inp.after('<p class="specerror">El título es demasiado corto. Mínimo 10 letras.</p>');
				} else if (inp.hasClass('req_15') && inp.val().length < 15) {
					inp.parent().addClass('formerror')
					.append('<p class="specerror" style="margin-left:47%;">Escribe una descripción de al menos 15 letras.</p>');
				} else if (inp.hasClass('req_nocaps') && !checkCaps(inp.val(),50)) {
					inp.parent().addClass('formerror');
					inp.after('<p class="specerror">Por favor, no escribas todo el anuncio en mayúsculas.</p>');
				} else {
					inp.parent().removeClass('formerror');
					$('.specerror',inp.parent()).remove();
				}
			}
			$('input, select, textarea',myself).blur(function() {
				if ($(this).hasClass('req_one') && $(this).val() == '') {
					if ($('.req_one:last',myself).attr('id') == $(this).attr('id')) {
						var hasdata = false;
						$('.req_one',myself).each(function() {
							if ($(this).val() != '') {
								hasdata = true;
								$('.specerror',$(this).parent()).remove();
								validar($(this));
							}
						});
						if (!hasdata) {
							$('.req_one',myself).parent().addClass('formerror');
						}
					}
				} else {
					$('.specerror',$(this).parent()).remove();
					validar($(this));
				}
			})
			.change(function() {
				$(this).parent().removeClass('formerror');
				$('.specerror',$(this).parent()).remove();
				$('.req_one',myself).each(function() {
					$(this).parent().removeClass('formerror');
					$('.specerror',$(this).parent()).remove();
					if ($(this).val() != '') {
						validar($(this));
					}
				});
			})
			.keypress(function() {
				$(this).parent().removeClass('formerror');
				$('.specerror',$(this).parent()).remove();
			});
			$('input[type=submit]',myself).click(function() {
				$('select, input, textarea',myself).trigger('blur');
				if ($('div.formerror',myself).length > 0) {
					alert('Has dejado algún campo del formulario sin rellenar o los datos no son correctos.\nPor favor revisa la información que has introducido.');
					return false;
				} else {
					myself.submit();
				}
			});
		});
	};
})(jQuery);

//================
// Document.ready
//================
$(function() {
	// hover menu filtros
	$('.menu').mouseover(function() {
		$('a',this).each(function() {
			$(this).addClass('hover');
		});
	})
	.mouseout(function() {
		$('a',this).each(function() {
			$(this).removeClass('hover');
		});
	})
	.click(function() {
		$('a',this).trigger('click');
	});
	$('.menu a').click(function() {
		var index = $('.menu',$(this).parent().parent()).index($(this).parent());
		$(this).popUp({
				id: 'filtro'+index,
				style: 'popup-filter',
				posx: ($(this).offset().left-25)+'px',
				posy: '166px',
				width: 'auto',
				opacity: 0,
				viewbg: false,
				data: function(p) { 
					loadFilter(index,p);
				}
			});
		return false;
	});
	
	// Popup contactar
	$('#contactbtn, #clipcontact').click(function() {
		$(this).popUp({
			id: 'popupcontacto',
			data: '#contactform'
		});
	});
	$('#contactcancelar').click(function() {
		$('#popupcontacto .popup-bg').trigger('click');
	});
	// Popup enviar a un amigo
	$('#sendtofriendbtn').click(function() {
		$(this).popUp({
			id: 'popupsendtofriend',
			data: '#sendtofriend'
		});
	});
	$('#sendtofriendcancel').click(function() {
		$('#popupsendtofriend .popup-bg').trigger('click');
	});
	// Popup denunciar
	$('#denunciarbtn').click(function() {
		$(this).popUp({
			id: 'popupdenunciar',
			data: '#denunciaranuncio'
		});
	});
	$('#denunciarcancel').click(function() {
		$('#popupdenunciar .popup-bg').trigger('click');
	});
	// Popup recuperar codigo
	$('#recuperarcode').click(function() {
		$(this).popUp({
			id: 'popuprecuperar',
			data: '#recuperarcodigo'
		});
	});
	$('#recuperarcancel').click(function() {
		$('#popuprecuperar .popup-bg').trigger('click');
	});
	
	// Popup destacar anuncio
	$('a.btn_destacar').click(function() {
		var tipo = $(this).attr('id');
		var anuncio = $('#anuncioid').val();
		$(this).popUp({
			id: 'popupprepago'+tipo,
			data: function(p) { 
				destacarAnuncio(tipo,anuncio,p);
			}
		});
	});

	// Cargar cookie lista ampliada/reducida
	if (readCookie('formatolista') > 0) {
		$('#lista p').hide();
		$('#reducirampliar').html('<span></span>Ver lista ampliada').addClass('amp');
	}
	// Reducir/ampliar lista
	$('#reducirampliar').click(function() {
		if ($(this).hasClass('amp')) {
			$('#lista p').show();
			$(this).html('<span></span>Ver lista reducida').removeClass('amp');
			createCookie('formatolista','0',100);
		} else {
			$('#lista p').hide();
			$(this).html('<span></span>Ver lista ampliada').addClass('amp');
			createCookie('formatolista','1',100);
		}
		return false;
	});
	
	// Anuncios guardados
	$('.fav').click(function() {
		var thisid = $(this).parent().attr('id').replace(/a-/,'');
		var thisname = $(this).parent().children('.an').text();
		if (thisname.length == 0) {
			thisname = $('h1').text();
		}
		if ($(this).hasClass('favact')) {
			deleteSaved(thisid);
		} else {
			if (guardados.length < 10) {
				if (guardados.length == 0) {
					// si es el primer anuncio guardado, reproducir animacion
					var aleft = $(this).offset().left;
					var atop = $(this).offset().top;
					var favleft = $('#listafavs').offset().left;
					var favtop = $('#listafavs').offset().top+40;
					var aname = thisname;
					if (thisname.length > 15) {
						aname = thisname.substr(0,15) + '...';
					}
					$('body').append('<div id="_anim1" style="background:#fff url(/images/favoritos.gif) no-repeat 4px -14px;position:absolute;padding:3px 4px 3px 24px;border:1px solid #d1d1d1;color:#06c;">'+aname+'</div>');
					$('#_anim1').css({left: aleft, top: atop})
					.animate({
						left: favleft,
						top: favtop
					}, 500, function() {
						$('#_anim1').remove();
					});
				}
				var cookie = '';
				var exists = false;
				for (var k in guardados) {
					if (guardados[k].id == thisid) {
						exists = true;
					}
					cookie += guardados[k].id + '|' + guardados[k].name + '||';
				}
				if (!exists) {
					cookie += thisid + '|' + thisname;
					newFavorite(thisid,thisname);
					$(this).addClass('favact');
					createCookie('guardados',cookie,100);
					guardados.push(new anuncioGuardado(thisid,thisname));
				} else {
					alert('Este anuncio ya está en tu lista de guardados');
				}
			} else {
				alert('No puedes añadir más anuncios a tu lista de guardados');
			}
		}
		return false;
	});
	// Cargar lista anuncios guardados
	if (guardados.length) {
		for (var k in guardados) {
			newFavorite(guardados[k].id,guardados[k].name);
			$('#a-'+guardados[k].id + ' .fav').addClass('favact');
		}
	} else {
		noFavorites();
	}
	
	//===============
	// Nuevo anuncio
	//===============
	var catcurrent = $('#categoria option:selected').val();
	var subcurrent = $('#subcategoria option:selected').val();
	var tipocurrent = $('#tipo option:selected').val();
	var zonacurrent = $('#zona option:selected').val();
	if ($('#formextras input').length > 0) {
		var formextras = true;
	} else {
		var formextras = false;
	}
	$('#categoria').each(function() {
		if ($('option:selected',this).val() != '') {
			$('option:selected',this).remove();
		}
		for (var k in categorias) {
			var c = '<option value="'+categorias[k].name+'"';
			if (catcurrent == categorias[k].name) {
				c += ' selected="selected"';
				catcurrent = null;
			}
			c += '>'+categorias[k].name+'</option>';
			$(this).append(c);
		}
	}).change(function() {
		if (!formextras) { $('#formextras').empty(); }
		var remove = true;
		$('#subcategoria').each(function() {
			$('option',this).not(':first').remove();
			for (var k in categorias) {
				if (categorias[k].name == $('#categoria').val()) {
					if (categorias[k].sub != null) {
						for (var j in categorias[k].sub) {
							var c = '<option value="'+categorias[k].sub[j].name+'"';
							if (subcurrent == categorias[k].sub[j].name) {
								c += ' selected="selected"';
							}
							c += '>'+categorias[k].sub[j].name+'</option>';
							$(this).append(c);
						}
					} else {
						$(this).append('<option value="Otros">Otros</option>');
						$(this).val('Otros').change();
						remove = false;
					}
				}
			}
			subcurrent = null;
		});
		if (remove) { $('#tipo option').not(':first').remove(); }
	}).trigger('change');
	$('#subcategoria').change(function() {
		$('#tipo option').not(':first').remove();
		if (!formextras) { $('#formextras').empty(); }
		var t = '';
		function crearCampo(d,n) {
			var c = '<div class="th">';
			c+=			'<label for="extra'+n+'">'+d+' <span class="opcional">(Opcional)</span></label>';
			c+= 		'<input type="text" name="extra'+n+'" id="extra'+n+'" class="ac-'+d+'" style="width: 210px;" maxlength="35" value="';
			if (getextras[n] != '') {
				c+= getextras[n];
				getextras[n] = '';
			}
			c+= '" />';
			c+=		'</div>';
			return c;
		}
		for (var k in categorias) {
			if (categorias[k].name == $('#categoria').val()) {
				if (categorias[k].sub != null) {
					for (var j in categorias[k].sub) {
						if (categorias[k].sub[j].name == $('#subcategoria').val()) {
							for (var z in categorias[k].sub[j].tipo) {
								t += '<option value="'+categorias[k].sub[j].tipo[z]+'"';
								if (tipocurrent == categorias[k].sub[j].tipo[z]) {
									t += ' selected="selected"';
								}
								t += '>'+categorias[k].sub[j].tipo[z]+'</option>';
								
							}
							if ($('#formextras').length > 0) {
								for (var y in categorias[k].sub[j].extras) {
									if (!formextras) {
										$('#formextras').append(crearCampo(categorias[k].sub[j].extras[y],y));
									}
								}
								formextras = false;
								// Autocompletar formulario
								if ($('#formextras').length > 0) {}
								$('#formextras input[class=ac-Combustible]:first').autocomplete(combustible);
								$('#formextras input[class=ac-Género]:first').autocomplete(genero);
								$('#formextras input[class=ac-Tipo de trabajo]:first, #formextras input[name=Tipo de servicio]:first').autocomplete(trabajos);
								if ($('#subcategoria').val() == 'Coches') {
									$('#formextras input[class=ac-Marca]:first').autocomplete(coches_marcas);
								} else if ($('#subcategoria').val() == 'Motos') {
									$('#formextras input[class=ac-Marca]:first').autocomplete(motos_marcas);
								} else if ($('#subcategoria').val() == 'Barcos') {
									$('#formextras input[class=ac-Marca]:first').autocomplete(barcos_marcas);
								} else if ($('#subcategoria').val() == 'Perros') {
									$('#formextras input[class=ac-Raza]:first').autocomplete(raza_perros);
								} else if ($('#subcategoria').val() == 'Gatos') {
									$('#formextras input[class=ac-Raza]:first').autocomplete(raza_gatos);
								}
							}
						}
					}
				} else {
					for (var j in categorias[k].tipo) {
						t += '<option value="'+categorias[k].tipo[j]+'"';
						if (tipocurrent == categorias[k].tipo[j]) {
							t += ' selected="selected"';
						}
						t += '>'+categorias[k].tipo[j]+'</option>';
					}
				}
			}
		}
		$('#tipo').append(t).change();
		tipocurrent = null;
	}).trigger('change');
	
	$('#zona').each(function() {
		if ($('option:selected',this).val() != '') {
			$('option:selected',this).remove();
		}
		for (var k in zonas) {
			$(this).append('<optgroup label="'+zonas[k].name+'">');
			for (var j in zonas[k].sub) {
				if (zonas[k].name != 'Mallorca' || zonas[k].name == 'Mallorca' && j > 6) {
					var c = '<option value="'+zonas[k].sub[j].name+'"';
					if (zonacurrent == zonas[k].sub[j].name) {
						c += ' selected="selected"';
						zonacurrent = null;
					}
					c += '>'+zonas[k].sub[j].name+'</option>';
					$('optgroup:last',this).append(c);
				}
			}
			$(this).append('</optgroup>');
		}
	});
	$('#anyadirfoto').click(function() {
		var n = $('#formfotos > div').length + 2;
		if (n < 5) {
			var c = '<div class="th">\n';
			c+=			'<label for="foto'+n+'">Foto '+n+' <span class="opcional">(Opcional)</span></label>\n';
			c+=			'<input type="file" name="foto'+n+'" id="foto'+n+'" />\n';
			c+=			'<a href="#" class="borrarfoto"><img alt="X" src="/images/ico_borrar.gif" />Borrar foto</a>\n';
			c+=		'</div>\n';
			$('#formfotos').append(c);
		} else {
			alert('No puedes adjuntar más de 4 fotos al anuncio');
		}
		$('.th .borrarfoto').not(':first').unbind('click').click(function() {
			$(this).parent().remove();
			$('#formfotos > div').each(function(i) {
				var n = i+2;
				$('label',this).attr('for','foto'+n).html('Foto '+n+' <span class="opcional">(Opcional)</span>');
				$('input',this).attr('id','foto'+n).attr('name','foto'+n);
			});
			return false;
		});
		return false;
	});
	$('.th .borrarfoto:first').click(function() {
		$('#foto1').val('');
		return false;
	});
	// editar fotos
	function setChangeFoto() {
		$('#formfotosmod .file input').unbind('change').change(function() {
			if ($(this).val() != '') {
				var a = $(this).val();
				var b = a.replace(/^.*[\/\\]+/g,'');
				var oldid = $(this).attr('id').replace(/foto/,'').replace(/_file/,'');
				$('.filename',$(this).parent().parent()).remove();
				$(this).parent().parent().append('<div class="filename">'+b+'</div>');
				$('img:first',$(this).parent().parent()).attr('src','/images/newupload.gif');
				$(this).parent().parent()
				.removeClass('nofoto')
				.append('<a href="#" id="foto'+oldid+'" class="borrarfoto nocancel" title="Quitar esta foto del anuncio"><img alt="X" src="/images/ico_borrar.gif" />Quitar foto</a>');
				$(this).parent().hide();
				setBorrarFoto();
			}
		});
	}
	function borrarFoto(c) {
		var t = $('img:first',c.parent()).attr('alt');
		var f = $('img:first',c.parent()).attr('src');
		var fid = c.attr('id');
		$('img:first',c.parent()).attr('src','/images/nofoto.gif');
		c.parent().addClass('nofoto').append('<div class="file"><input type="file" name="'+fid+'_file" id="'+fid+'_file" /></div>');
		//$('.file, input',c.parent()).css({cursor: 'pointer'});
		setChangeFoto();
		c.remove();
		$('#fotosmod_options ul').append('<li><a id="d-'+fid+'" href="#"><img alt="" class="foto" src="'+f+'" />'+t+'</a></li>');
		$('#fotosmod_options p').show();
	}
	function cancelarFoto(myself) {
		if ($('#formfotosmod ul li').not('.nofoto').length < 4) {
			var oldid = myself.attr('id').replace(/d-foto/,'');
			var f = $('img',myself).attr('src');
			function crearFoto() {
				$('img',$('#foto'+oldid+'_file').parent().parent()).attr('src',f);
				if ($('#foto'+oldid).length > 0) {
					$('#foto'+oldid).remove();
				}
				$('#foto'+oldid+'_file').parent().parent().append('<a href="#" id="foto'+oldid+'" class="borrarfoto" title="Quitar esta foto del anuncio"><img alt="X" src="/images/ico_borrar.gif" />Quitar foto</a>').removeClass('nofoto');
				
				$('#formfotosmod .borrarfoto').unbind('click').click(function() {
					borrarFoto($(this));
					$('#fotosmod_options li a').unbind('click').click(function() {
						cancelarFoto($(this));
						return false;
					});
					return false;
				});
			}
			if ($('#foto'+oldid+'_file').val() == '') {
				crearFoto();
				$('#foto'+oldid+'_file').parent().remove();
				myself.parent().remove();
				if ($('#fotosmod_options ul li').length == 0) {
					$('#fotosmod_options p').hide();
				}
				setBorrarFoto();
			} else {
				var emptyslot = buscarSlot();
				if (emptyslot <= 4) {
					var p = $('#foto'+emptyslot+'_file').parent();
					crearFoto();
					$('#foto'+emptyslot+'_file').remove();
					p.append($('#foto'+oldid+'_file'));
					$('#foto'+oldid+'_file').attr('id','foto'+emptyslot+'_file').attr('name','foto'+emptyslot+'_file').parent().hide();
					$('.file',$('#foto'+oldid).parent()).remove();
					p.parent().append($('.filename',$('#foto'+oldid).parent()));
					p.parent().append('<a href="#" id="foto'+emptyslot+'" class="borrarfoto nocancel" title="Quitar esta foto del anuncio"><img alt="X" src="/images/ico_borrar.gif" />Quitar foto</a>');
					$('img:first',p.parent()).attr('src','/images/newupload.gif');
					p.parent().removeClass('nofoto');
					myself.parent().remove();
					if ($('#fotosmod_options ul li').length == 0) {
						$('#fotosmod_options p').hide();
					}
					setBorrarFoto();
				} else {
					alert('Ya tienes 4 fotos.\nBorra alguna para volver a dejar esta foto en el anuncio.');
				}
			}
		} else {
			alert('Ya tienes 4 fotos.\nBorra alguna para volver a dejar esta foto en el anuncio.');
		}
	}
	function buscarSlot() {
		var emptyslot;
		for (i=0;i<5;i++) {
			if ($('#foto'+(i+1)).length == 0 && $('#foto'+(i+1)+'_file').val() == '') {
				emptyslot = parseInt(i+1);
				break;
			}
		}
		return emptyslot;
	}
	function setBorrarFoto() {
		$('#formfotosmod .borrarfoto').not('.nocancel').unbind('click').click(function() {
			borrarFoto($(this));
			$('#fotosmod_options li a').unbind('click').click(function() {
				cancelarFoto($(this));
				return false;
			});
			return false;
		});
		$('#formfotosmod .borrarfoto.nocancel').unbind('click').click(function() {
			$('img:first',$(this).parent()).attr('src','/images/nofoto.gif');
			$('.file',$(this).parent()).show();
			//$('.file input',$(this).parent()).val('');
			/* --- hay que recrear el input para que funcione con ie --- */
			var n = $('.file input',$(this).parent()).attr('id');
			$('.file input',$(this).parent()).replaceWith('<input id="'+n+'" type="file" name="'+n+'" />');
			setChangeFoto();
			/* --- */
			$(this).parent().addClass('nofoto');
			$('.filename, a',$(this).parent()).remove();
			return false;
		});
	}
	setBorrarFoto();
	setChangeFoto();
	
	$('.btn_borraranuncio').click(function() {
		if (confirm('¿Estás seguro que deseas borrar tu anuncio por completo?')) {
			var thisid = $('#idanuncio').val();
			var thispass = $('#passwdanuncio').val();
			window.location='/modificar/'+thisid+'/borrar/?passwd='+thispass;
		}
	});
	$('.formulario').validarForm();
	
	
	//============================
	// Cargar nombre filtros menu
	//============================
	// categoria/subcategoria
	if ($('#ffiltro_subcat_name').val() == 'Todos') {
		$('.menu:eq(0) a').empty().append(substituirTitulo($('#ffiltro_cat_name').val(),102));
	} else {
		$('.menu:eq(0) a').empty().append(substituirTitulo($('#ffiltro_subcat_name').val(),102));
	}
	// tipo
	$('.menu:eq(1) a').empty().append(substituirTitulo($('#ffiltro_tipo_name').val(),102));
	// zona/subzona
	if ($('#ffiltro_subzona_name').val() == 'Toda la isla' || $('#ffiltro_subzona_name').val() == '') {
		$('.menu:eq(2) a').empty().append(substituirTitulo($('#ffiltro_zona_name').val(),137));
	} else {
		$('.menu:eq(2) a').empty().append(substituirTitulo($('#ffiltro_subzona_name').val(),137));
	}
	// precio
	if ($('#ffiltro_preciomin').val() == 0 && $('#ffiltro_preciomax').val() == 0) {
		$('.menu:eq(3) a').empty().append(substituirTitulo('Cualquier Precio',97));
	} else if ($('#ffiltro_preciomin').val() == $('#ffiltro_preciomax').val()) {
		$('.menu:eq(3) a').empty().append(substituirTitulo($('#ffiltro_preciomin').val()+' €',97));
	} else if ($('#ffiltro_preciomin').val() == 0 && $('#ffiltro_preciomax').val() > 0) {
		$('.menu:eq(3) a').empty().append(substituirTitulo('Hasta '+$('#ffiltro_preciomax').val()+' €',97));
	} else if ($('#ffiltro_preciomax').val() == 0 && $('#ffiltro_preciomin').val() > 0) {
		$('.menu:eq(3) a').empty().append(substituirTitulo('Superior a '+$('#ffiltro_preciomin').val()+' €',97));
	} else if ($('#ffiltro_preciomin').val() > 0 && $('#ffiltro_preciomax').val() > 0) {
		$('.menu:eq(3) a').empty().append(substituirTitulo($('#ffiltro_preciomin').val()+' - '+$('#ffiltro_preciomax').val()+' €',97));
	}
	
	//=================================
	// Menu derecha categorias / zonas 
	//=================================
	$('#listacat > li a').click(function() {
		if ($('ul',$(this).parent()).length > 0) {
			$('a:first', $('#listacat ul:visible').parent()).removeClass('selected');
			$('#listacat ul').hide();
			$(this).addClass('selected');
			$('ul',$(this).parent()).show();
			return false;
		}
	});
	$('#listazonas li a').click(function() {
		var t = $(this).attr('title');
		if (t=='Eivissa'||t=='Formentera'||t=='Menorca'||t=='Mallorca') {
			$('#ffiltro_zona_name').val(t);
			$('#ffiltro_subzona_name').val('');
		} else {
			$('#ffiltro_zona_name').val('Mallorca');
			$('#ffiltro_subzona_name').val(t);
		}
		if (typeof lastsearch != 'undefined') {
			$('#ffiltro_cat_name').val(lastsearch['cat']);
			$('#ffiltro_subcat_name').val(lastsearch['subcat']);
			$('#ffiltro_tipo_name').val(lastsearch['tipo']);
			$('#ffiltro_preciomin').val(lastsearch['preciomin']);
			$('#ffiltro_preciomax').val(lastsearch['preciomax']);
			$('#ffiltro_nombre').val(lastsearch['nombre']);
		}
		$('#searchfilter').submit();
		return false;
	});
	
	//=================================
	// Submit paginacion
	//=================================
	$('.paginacion li a').click(function() {
		var p = $(this).text();
		if (p == 'Siguiente »') {
			p = parseInt($('.activa:first',$(this).parent().parent()).text()) + 1;
		} else if (p == '« Anterior') {
			p = parseInt($('.activa:first',$(this).parent().parent()).text()) - 1;
		}
		$('#searchfilter').append('<input type="hidden" name="pag" value="'+p+'" />');
		if (typeof lastsearch != 'undefined') {
			$('#ffiltro_cat_name').val(lastsearch['cat']);
			$('#ffiltro_subcat_name').val(lastsearch['subcat']);
			$('#ffiltro_zona_name').val(lastsearch['zona']);
			$('#ffiltro_subzona_name').val(lastsearch['subzona']);
			$('#ffiltro_tipo_name').val(lastsearch['tipo']);
			$('#ffiltro_preciomin').val(lastsearch['preciomin']);
			$('#ffiltro_preciomax').val(lastsearch['preciomax']);
			$('#ffiltro_nombre').val(lastsearch['nombre']);
		}
		$('#searchfilter').submit();
		return false;
	});
	
	//=================================
	// Ocultar/mostrar codigo secreto
	//=================================
	$('.claveacceso span').each(function() {
		var c = $(this).text();
		var l = c.length;
		var e = '';
		for (var i=0;i<l;i++) {
			e += '*';
		}
		$(this).text(e).show();
		$(this).parent()
			.mouseover(function() {
				$('span',this).text(c);
			})
			.mouseout(function() {
				$('span',this).text(e);
			});
	});
	
	//==================
	// Filtrar por...
	//==================
	$('#filtrarpor a').click(function() {
		var enlace = getAnchor($(this));
		if (!/\//.test(enlace)) {
			enlace = enlace.replace(/\-/g,' ');
			$('#ffiltro_tipo_name').val(enlace);
			$('#searchfilter').submit();
			return false;
		} else {
			return;
		}
	});
	
	// botones 'pon tu anuncio' portada y listados
	$('.lista-portada h2.tit').each(function() {
		var c = $('a',this).text();
		$(this).prepend('<a class="destacar" href="/nuevo-anuncio-gratis/?cat='+c+'">+ <em>Pon tu anuncio</em></a>');
	});
	$('#lista h2.tit:first').each(function() {
		var c = $('#ffiltro_cat_name').val();
		if (c != 'Todas las categorías') {
			$(this).prepend('<a class="destacar" href="/nuevo-anuncio-gratis/?cat='+c+'">+ <em>Pon tu anuncio</em></a>');
		} else {
			$(this).prepend('<a class="destacar" href="/nuevo-anuncio-gratis/">+ <em>Pon tu anuncio</em></a>');
		}
	});
	
});
