// Функция возвращает массив выбранных категорий поиска.
function get_search_chb_values(blocks_id)
{
  var chb_values = Array();
  if (blocks_id.length)
    for (var i = 0; i < blocks_id.length; i++)
    {
      var ed_search_chb = get_object("ed_search_chb_" + blocks_id[i]);
      if (ed_search_chb.checked)
        chb_values[i] = 1;
      else
        chb_values[i] = 0;
    }
  return chb_values;
}

// Функция начала поиска.
function search_button(name, url, blocks_id, search_init)
{
  var ed_search = get_object(name);
  if (!is_object(ed_search) ||
    ed_search.value.length < 2 ||
    ed_search.value == search_init)
    return;
  var search = get_url_text(ed_search.value);
  var chb_values = get_search_chb_values(blocks_id);
  var url_result = url + get_url_param("search", search);
  if (chb_values.length)
    url_result += get_url_param("chb_values", chb_values.toString());
  redirect(url_result);
}

// Функция обработки события клика по строке поиска.
function search_click(ed_search, search_init)
{
  if (ed_search.value == search_init)
    ed_search.value = "";
}

// Функция обработки события потери фокуса строки поиска.
function search_blur(ed_search, search_init)
{
  if (ed_search.value == "")
    ed_search.value = search_init;
}

// Функция ввода строки поиска.
function search_key(event, name, url, blocks_id, id_category, book_url, action_url)
{
  var ed_search = get_object(name);
  var search_div = get_object(name + '_div');
  if (event.keyCode == 13)
  {
    search_button(name, url, blocks_id, '');
    return;
  }
  else if (event.keyCode == 27)
  {
    search_div.style.visibility = "hidden";
    ed_search.focus();
    return;
  }
  if (!is_object(ed_search) ||
    ed_search.value.length < 2)
  {
    if (is_object(search_div))
      search_div.style.visibility = "hidden";
    return;
  }
  var search = get_url_text(ed_search.value);
  var chb_values = get_search_chb_values(blocks_id);
  var url_result = action_url + "/" +
    id_category + "/" + search + "&book_url=" + book_url;
  if (chb_values.length)
    url_result += get_url_param("chb_values", chb_values.toString());
  make_request(url_result, "set_request_result_" + name);
}

// Функция устанавливает значения чек-боксов категорий поиска.
function set_search_chb_values(blocks_id, value)
{
  for (var i = 0; i < blocks_id.length; i++)
  {
    var ed_search_chb = get_object("ed_search_chb_" + blocks_id[i]);
    ed_search_chb.checked = value;
  }
}
