function check_form() {
  var error_message = "<? echo JS_ERROR; ?>";
  var error_found = false;
  var error_field;
  var keywords = document.advanced_search.keywords.value;
  var pfrom = document.advanced_search.pfrom.value;
  var pto = document.advanced_search.pto.value;
  var pfrom_float;
  var pto_float;

  if ( (keywords == "" || keywords.length < 1) &&
       (pfrom == ""    || pfrom.length < 1) &&
       (pto == ""      || pto.length < 1) ) {
    error_message = error_message + "<? echo JS_AT_LEAST_ONE_INPUT; ?>";
    error_field = document.advanced_search.keywords;
    error_found = true;
  }
  
  if (pfrom.length > 0) {
    pfrom_float = parseFloat(pfrom);
    if (isNaN(pfrom_float)) {
      error_message = error_message + "<? echo JS_PRICE_FROM_MUST_BE_NUM; ?>";
      error_field = document.advanced_search.pfrom;
      error_found = true;
    }
  }
  else {
    pfrom_float = 0;
  }

  if (pto.length > 0) {
    pto_float = parseFloat(pto);
    if (isNaN(pto_float)) {
      error_message = error_message + "<? echo JS_PRICE_TO_MUST_BE_NUM; ?>";
      error_field = document.advanced_search.pto;
      error_found = true;
    }
  }
  else {
    pto_float = 0;
  }

  if (pfrom.length > 0 && pto.length > 0) {
    if (!isNaN(pfrom_float) && !isNaN(pto_float) && pto_float < pfrom_float) {
      error_message = error_message + "<? echo JS_PRICE_TO_LESS_THAN_PRICE_FROM; ?>";
      error_field = document.advanced_search.pto;
      error_found = true;
    }
  }

  if (error_found) {
    alert(error_message);
    error_field.focus();
    return false;
  } else {
    return true;
  }
}
