var selects_buscador;
var valor_opcion_todos = "";

$(function() {
	selects_buscador = {
		piso: $("select[name='piso']").get(0),
		pest: $("select[name='pest']").get(0),
		pciu: $("select[name='pciu']").get(0),
		pzon: $("select[name='pzon']").get(0)
	}
});

function buscadorCambioPais() {
	buscadorConsultaAjax('piso');
}
function buscadorCambioEstado() {
	buscadorConsultaAjax('pest');
}
function buscadorCambioCiudad() {
	buscadorConsultaAjax('pciu');
}
function buscadorCargarDatosSelect(name, datos) {
	buscadorTodos(name);
	var select = selects_buscador[name];
	var index, texto, option;
	for(index in datos) {
		texto = datos[index];
		option = document.createElement("option");
		option.value = texto;
		option.innerHTML = texto;
		select.appendChild(option);
	}
}
function buscadorConsultaAjaxOK(name, data) {
	switch(name) {
		case 'piso':
			buscadorCargarDatosSelect('pest', data.pest);
		case 'pest':
			buscadorCargarDatosSelect('pciu', data.pciu);
		case 'pciu':
			buscadorCargarDatosSelect('pzon', data.pzon);
	}
}
function buscadorConsultaAjax(name, callback) {
	var data = "";
	var val;
	switch(name) {
		case 'pciu':
			data = buscadorConcatenarData(data, 'pciu');
			if(data === false) {
				break;
			}
		case 'pest':
			data = buscadorConcatenarData(data, 'pest');
			if(data === false) {
				break;
			}
		case 'piso':
			data = buscadorConcatenarData(data, 'piso');
			if(data === false) {
				break;
			}
		break;
	}
	if(data !== false) {
		var success = function(data) {
			buscadorConsultaAjaxOK(name, data);
			if($.isFunction(callback)) {
				callback(data);
			}
		};
		$.ajax({
			url: "modulos/propiedades/ajax/buscador.php?a="+name,
			dataType: 'json',
			data: data,
			success: success,
			type: "POST"
		});
	}
}
function buscadorConcatenarData(data, name) {
	var val = $(selects_buscador[name]).val();
	if(val.length > 0) {
		data += ((data != "") ? "&" : "")+name+"="+val;
	}
	else {
		buscadorTodosFrom(name);
		data = false;
	}
	return data;
}
function buscadorTodos(name) {
	$("option[value!='"+valor_opcion_todos+"']", selects_buscador[name]).remove();
}
function buscadorTodosFrom(name, form) {
	switch(name) {
		case 'piso':
			buscadorTodos('pest');
		case 'pest':
			buscadorTodos('pciu');
		case 'pciu':
			buscadorTodos('pzon');
		break;
	}
}
function buscadorSetValues(values) {
	$(function() {
		$(selects_buscador['piso']).val(values.piso);
		buscadorConsultaAjax('piso', function(){
			$(selects_buscador['pest']).val(values.pest);
			buscadorConsultaAjax('pest', function(){
				$(selects_buscador['pciu']).val(values.pciu);
				buscadorConsultaAjax('pciu', function(){
					$(selects_buscador['pzon']).val(values.pzon);
				});
			});
		});
	});
}
