// JavaScript Document
// seteamos los nombres de los filtros y las variables de BUSQUEDA AVANZADA
var nombreFiltro = new Array('datos.tipo', 'datos.venta');
var variableFiltro = new Array(
							   new Array('Casa', 'Departamento', 'Chalet', 'Terreno', 'Local', 'Oficina', 'Quinta', 'Campo', 'Galpon', 'NegocioEspecial'),								
							   new Array('Venta', 'Alquiler', 'Permutacion', 'Alquiler Temporal', 'Tiempo Compartido')
							   );
var condicion = ''; 
var filtro = new Array();

// iniciamos los filtros
function iniciarFiltros() {
	for (var i = 0; i < nombreFiltro.length; i++) {
		filtro[i] = new Array();
		
		for (var j = 0; j < variableFiltro[i].length; j++) {
			// obtenemos las cadenas de texto
			nombre   = nombreFiltro[i];
			variable = variableFiltro[i][j];
			
			// seteamos el filtro en true
			filtro[i][j] = true;
			
			// alert ("creando: filtro[" + i + "][" + j + "] = " + filtro[i][j]);
		}
	}
}

/*
	Cambiamos el display de un DIV
*/
function toogle(div) {
	if (document.getElementById(div).style.visibility == 'visible') {
		document.getElementById(div).style.visibility = 'hidden';
		document.getElementById(div).style.display = 'none';
	}
	else {
		document.getElementById(div).style.visibility = 'visible';
		document.getElementById(div).style.display = 'inline';
	}
}

/*
	Seteamos la condicion
*/
function actualizarCondicion() {
	// reseteamos la condicion
	condicion = '';
	algunaCondicion = false;
	
	// recorremos los valores de filtros
	for (var i = 0; i < nombreFiltro.length; i++) {
		
		// si hay condiciones del bucle anterior ponemos un AND
		if (i>0) {
			condicion += '+AND+';
			algunaCondicion = false;
		}
		
		// parentesis para iniciar la condicion
		condicion += '(';
					   
		for (var j = 0; j < variableFiltro[i].length; j++) {
			
			// si el filtro es verdadero seteamos la condicion
			if (filtro[i][j]) {
				// si ya tenemos alguna condicion agregamos el OR
				if (algunaCondicion) condicion += '+OR+';
				
				// agregamos la variable a la condicion
				condicion += nombreFiltro[i] + ":'" + variableFiltro[i][j] + "'";
				
				// seteamos la existencia de una condicion
				algunaCondicion = true;
			}
				
			// control de estados limite
			
			// para la traza
			// alert ("analizando: (" + i + ',' + j + ') -> ' + filtro[i][j]);
		}
		
		// si tenemos que cerrar el parentesis
		condicion += algunaCondicion?')':'1)';
		
	}
	
	// ahora comprobamos el barrio
	if (document.getElementById('selBarrio').selectedIndex != 0)
		condicion += "+AND+datos.barrio:'"+document.getElementById('selBarrio').value+"'";
		
	// obtenemos el minimo [0] y el maximo [1] del intervalo de busqueda de precio
	var precio = document.getElementById('precio').value.split('-');
	
	// si tenemos valores de precios seleccionados
	if (precio.length > 1) {
		// si ya tenemos algun filtro para aplicar
		if (condicion != '')
			condicion += '+AND+';
		
		// seteamos el rango de precios
		condicion += "datos.precio>" + precio[0] + '+AND+' + "datos.precio<" + precio[1];
	}
	
	// filtramos por moneda
	var valorMoneda = document.getElementById('selMoneda').value;
	if (valorMoneda != 'Todas') {
		if (condicion != '')
			condicion += '+AND+';
		
		// seteamos la moneda
		condicion += "datos.moneda:'" + valorMoneda + "'";
	}
	
	// para la traza
	// document.getElementById('condicion').innerHTML = condicion;
	
	// buscamos los valores segun la condicion
	buscar(condicion);
}

/* 
	Aplicamos un filtro
	@param Filtro Valor
*/
function aplicarFiltro(i, j) {
	// cambiamos el valor del filtro
	filtro[i][j] = !filtro[i][j];
	
	// mostramos/ocultamos la cruz de quitar filtro aplicado
	toogle('img'+i+''+j);
	
	// actualizamos la condicion
	actualizarCondicion();
}

/* 
	Aplicamos un único filtro
	@param Filtro Valor
*/
function aplicarUnicoFiltro(i, j) {	
	// Si aplicamos el Filtro 'Todos' activamos todos los valores
	if (j == 'Todos') {
		for (var b=0; b<filtro[i].length; b++)
		if(!filtro[i][b]) {
			filtro[i][b] = true;
			toogle('img'+i+''+b);
		}
		actualizarCondicion();
		return;
	}

	// recorremos todos los filtros para ir poniendolos en NO aplicado salteando al seleccionado
	for (var b=0; b<filtro[i].length; b++) {
		
		// si el filtro actual es el seleccionado lo ponemos en APLICADO
		if (b == j) {
			if(!filtro[i][b]) {
				filtro[i][b] = true;
				toogle('img'+i+''+b);
			}
		}
		// si no es el actual comprobamos q este aplicado para DESACTIVARLO
		else {
			if (filtro[i][b]) { // está APLICADO??
				filtro[i][b] = false;
				toogle('img'+i+''+b);
			} 
		}
	}
	
	// una vez aplicado el único filtro procedemos a actualizar el valor de la condicion de busqueda
	actualizarCondicion();
}
