/**
 * checkGrupo.
 * Cuando se clicka en el filtro de grupo, se desmarcan el resto de checkboxes
 * relacionado con el grupo.
 */
function checkGrupo(id, field) {

  var idx = new String(field + '_parent_' + id);
  check_grupo = document.getElementById(idx);
  var act = new Boolean();
  if (!check_grupo.checked) {
    act = false;
  } else {
    act = true;
  }
  var idx = new String(field + '_grupo_' + id);
  tipos_grupo = document.getElementById(idx);
  if (tipos_grupo){
    elems = tipos_grupo.getElementsByTagName("input");
    for (i=0 ; i < elems.length ; i++) {
      elems[i].checked = act;
    }
  }
  $('all_' + field).checked = false;
}

function unCheckGrupo(id, field) {
  $(field + '_parent_' + id).checked = false;
}

function displayGrupo(id) {

  var link_top = new String('link_top_' + id);
  var link_down = new String('link_down_' + id);
  list_tipos = $(id);
  if (list_tipos.className == 'hidden') {
    list_tipos.className = 'grupo_tipo';
    document.getElementById(link_top).className = '';
    document.getElementById(link_down).className = 'hidden';
  } else {
    list_tipos.className = 'hidden';
    document.getElementById(link_top).className = 'hidden';
    document.getElementById(link_down).className = '';
  }
}

/**
 * Quita los filtros y recarga la búsqueda
*/
function clearFilters() {
	
  showLoadingPage();
  if ($('r')) $('r').value = ''; // radio
  if ($('p')) $('p').value = '';
  if ($('m')) $('m').value = '';
  if ($('num_hab')) $('num_hab').value = '';
  if ($('num_ban')) $('num_ban').value = '';
  if ($('bajado')) $('bajado').value = '';
  if ($('tiempo')) $('tiempo').value = '';
  if ($('inmo')) $('inmo').value = '';
  if ($('uv')) $('uv').value = ''; // urge vender
  if ($('tv')) $('tv').value = ''; // tour virtual
  if ($('pb')) $('pb').value = ''; // pisos bancos
  if ($('foto')) $('foto').value = ''; // con foto
  if ($('video')) $('video').value = ''; // con video
  if ($('a')) $('a').value = ''; // tipo anunciante
  if ($('cmp_g')) $('cmp_g').value = ''; // genero (compartir)
  if ($('cmp_o')) $('cmp_o').value = ''; // ocupacion (compartir)
  if ($('cmp_f')) $('cmp_f').value = ''; // fumador (compartir)
  if ($('cmp_m')) $('cmp_m').value = ''; // mascotas (compartir)
  
  
  if ($('all_tipo')) $('all_tipo').checked = true;
  if ($('all_extra')) $('all_extra').checked = true;
  if ($('all_zonas')) $('all_zonas').checked = true;
  if ($('all_e')) $('all_e').checked = true;
  if ($('all_s')) $('all_s').checked = true;
  
  checkAll('tipo'); // tipos
  checkAll('zonas'); // zonas
  checkAll('extra'); // extras
  checkAll('e'); // entorno
  checkAll('s'); // servicios
  
  search();
}

/**
 * Al marcar la opción Todos de una lista de checkbox
 */
function checkAll(field) {

  if ($('all_' + field) && !$('all_' + field).checked) {
    return 0; // si lo desmarcamos no hacemos nada
  }

  var f = $('buscar');
  var lista = f.getInputs('checkbox');
  s = lista.size();

  for (var i=0; i<s; i++) {
    var elem = lista[i];
    var elemId = new String(elem.id);
    /* Ponemos a false los checkboxes de la array del id especificado */
    if (elemId.substr(0, field.length+1) == field + '_') {
      elem.checked = false;
    }
  }  
}

/**
 * Al marcar una opción de una lista de checkbox
 * desmarcamos el todos
 */
function checkOne(field) {

  $('all_' + field).checked = false;  
}

/**
 * refreshNumHab.
 * Activar o desactivar el select de habitaciones dependiendo si el tipo 
 * seleccionado es vivienda (1) o no.
 */
function refreshNumHab(tipo) {
  if (tipo == 1 || tipo == 'promo') {
    $('num_hab').enable();
  } else {
    $('num_hab').disable();
  }
}

/**
 * replegar.
 * Esconder el div de selección múltiple.
 */
function replegar(event) {
  var msContainers = $('crearAlerta').getElementsByClassName('desplegado');
  if (msContainers.length > 0) {
    var el = Event.element(event);
    
    for (i=0; i < msContainers.length; i++) {
      var msContainer_id = msContainers[i].id;
      if(!(el.id == msContainer_id || el.descendantOf(msContainer_id))) {
    	  	
        if ($(msContainer_id).className == 'desplegado') {
	      $(msContainer_id).className = '';
	    }
	    if (navigatorIsIE6()) {
	      $('radio').style.visibility = "visible";
	      $('precio').style.visibility = "visible";
	      $('num_hab').style.visibility = "visible";
	    }
      }
    }
  } else {
    $('crearAlerta').stopObserving('click', replegar);
  }
}

/**
 * preSubmit.
 * Si algunos campos estan desactivados para evitar las ediciones desde los 
 * resultados, los activamos antes de enviar el formulario.
 */
function preSubmit() {
  $('operacion').enable();
  $('familia').enable();
  $('d').enable();
  return true;
}

/**
 * redesplegar.
 * Mostrar desplegable con opciones extendidas, y además ocultar los elementos 
 * que quedan debajo del div que desplegamos para que no se vean con IE6.
 */ 
function redesplegar(container) {
  $(container).className='desplegado';
  $('crearAlerta').observe('click', replegar); //observer en el container global
  if (navigatorIsIE6()) { // Amagar els selects que es solapen (trick IE6)
    $('radio').style.visibility = "hidden";
    $('precio').style.visibility = "hidden";
    $('num_hab').style.visibility = "hidden";
  }
}

/**
* Si la operaci� que rebem �s compartir, mostrem
* els filtres propis de compartir.
*/
function filtrosCompartir($op, $op_id) {

  if($op_id == $op) {
    $('filtros-compartir').style.display = 'block';
  } else {
    $('filtros-compartir').style.display = 'none';
  }
}

/**
 * refreshNumHabAlertas.
 * Activar o desactivar el select de habitaciones dependiendo si la 
 * operacion seleccionada es compartir (9) o no.
 */
function refreshNumHabAlertas(tipo, op) {
  if (op == 9) {
    $('num_hab').disable();
  } else {
    if (tipo == 1 || tipo == 'promo') {
	  $('num_hab').enable();
	} else {
	  $('num_hab').disable();
	}
  }
}
