function filterAndSubmit(form) {
  //clearNotVisibleSimpleSearchProperties();
  var output = document.createElement("form");
  document.body.appendChild(output);
  output.action = form.action;
  output.method = form.method;
  output.name = form.name;
  
  for (var i = 0; i < form.length; ++i) {
    var element = form.elements[i];
    
    if (element.name[0] != '_') { // Ignore fields set by String tab library
	  if (element.nodeName.toLowerCase() == 'select') {
	    for (var j = 0; j < element.length; ++j) {
	  	  if (element.options[j].selected == true) {
	  	    addIfNotEmpty(output, element.name, element.options[j].value);
	  	  }
	  	}
	  } else if (element.type.toLowerCase() == 'radio'
	             || element.type.toLowerCase() == 'checkbox') {
	    if (element.checked == true) {
	      addIfNotEmpty(output, element.name, element.value);
	    }
      } else {
	    addIfNotEmpty(output, element.name, element.value);
	  }
	}
  }
  
  output.submit();
}

function clearNotVisibleSimpleSearchProperties() {
	var carDiv = document.getElementById("CAR");
	clearElementsInInvisibleDivRecursive(carDiv, carDiv.style.display != "none");
	
	var apartmentDiv = document.getElementById("APARTMENT");
	clearElementsInInvisibleDivRecursive(apartmentDiv, apartmentDiv.style.display != "none");
}

function addIfNotEmpty(form, name, value) {
  if (value != null && value.length > 0 && name.length > 0) {
    var field = document.createElement("input");
    field.type = "hidden";
    field.name = name;
    field.value = value;
    form.appendChild(field);
  }
}

function clearNotVissibleProperties() {
    var form = document.getElementById("advancedSearcher");
    var divs = form.getElementsByTagName("div");
    for(var i = 0;i < divs.length;++i) {
      clearElementsInInvisibleDivRecursive(divs[i], divs[i].style.display != "none");
    }
  }
  
function clearElementsInInvisibleDivRecursive(div, visible) { 
    if(!visible) {
      var selects = div.getElementsByTagName("select");
      for(var i = 0;i < selects.length;++i) {
        // Something of a hack for Chrome, just setting selectedIndex to -1 doesn't seem to cut it.
        if(jQuery) {
          jQuery(selects[i]).empty();
        }
        selects[i].selectedIndex = -1;
      }
      
      var inputs = div.getElementsByTagName("input");
      for(var i = 0;i < inputs.length;++i) {        
        if(inputs[i].type == 'text') {
          inputs[i].value = "";
        } else if(inputs[i].type == "checkbox" || inputs[i].type == "radio") {
          inputs[i].checked = inputs[i].defaultChecked;
        }
      }
    }
    
    var subDivs = div.getElementsByTagName("div");
    for(var i = 0;i < subDivs.length;++i) {
      clearElementsInInvisibleDivRecursive(subDivs[i], visible && subDivs[i].style.display != 'none');
    }  
  }