// Функция добавляет товар в корзину.
function basket_add(id)
{
  var price_type = 0;
  var cb_price_types = get_object("cb_price_types_" + id);
  if (is_object(cb_price_types))
    price_type = cb_price_types.value;
  var count_value = "1";
  var ed_count = get_object("ed_basket_add_count_" + id);
  if (is_object(ed_count))
  {
    if (!ed_count.value)
      ed_count.value = "1";
    count_value = ed_count.value;
  }
  if (count_value == 0)
    return;
  var value = id + "_" + price_type + "_" + count_value;
  var count = cookie_get_count("shop");
  for (var i = 0; i < count; i++)
    if (is_substring(id + "_" + price_type + "_", cookie_get_value_by_index("shop", i)))
    {
      cookie_set_value_by_index("shop", i, value);
      basket_show();
      return;
    }
  cookie_add_value("shop", value, true);
  basket_show();
}

// Функция показывает корзину.
function basket_show()
{
  var url = "/action/basket/" +
    basket_template_name + "/" + basket_catalog_template_name +
    "/" + basket_catalog_redirect;
  order_delivery = get_object('cb_order_delivery');
  if (is_object(order_delivery))
    url += "/" + order_delivery.value;
  url += "&lang=" + basket_catalog_lang + get_random_param();
  make_request(url);
}

// Функция показывает корзину.
function set_request_result(http_request)
{
  try
  {
    if (http_request.readyState == 4 && http_request.status == 200)
    {
      var basket_div = get_object("basket_div");
      var result = http_request.responseText;
      basket_div.innerHTML = result;
    }
  }
  catch (e) {}
}

// Функция очищает корзину.
function basket_clean()
{
  cookie_clean("shop");
  basket_show();
}

// Функция очищает корзину и перенаправляет на главную страницу.
function basket_order_clean(url)
{
  basket_clean();
  redirect(url);
}

// Функция удаляет товар из корзины.
function basket_delete(value)
{
  cookie_delete_value_by_name("shop", value);
  basket_show();
}

// Функция обновляет корзину.
function basket_update()
{
  var count = cookie_get_count("shop");
  var values_del = Array();
  var values_del_count = 0;
  for (var i = 0; i < count; i++)
  {
    var value = cookie_get_value_by_index("shop", i);
    var values = value.split("_");
    var id = values[0];
    var price_type = values[1];
    var ed_count = get_object("ed_basket_count_field_" + id + '_' + price_type);
    if (is_object(ed_count))
    {
      if (ed_count.value != 0)
        cookie_set_value_by_index("shop", i, id + "_" +
          price_type + "_" + ed_count.value);
      else
        values_del[values_del_count++] = value;
    }
  }
  for (var i = 0; i < values_del_count; i++)
    cookie_delete_value_by_name("shop", values_del[i]);
  basket_show();
}

// Функция добавляет товар в корзину для сравнения.
function compare_add(id)
{
  cookie_add_value("compare", id, true);
  compare_show();
}

// Функция показывает корзину сравнения.
function compare_show()
{
  make_request("/action/compare/" +
    compare_template_name + "/" + compare_catalog_template_name + "/" +
    compare_catalog_redirect + "&lang=" + compare_catalog_lang + get_random_param(),
    "set_request_result_compare");
}

// Функция показывает корзину сравнения.
function set_request_result_compare(http_request)
{
  try
  {
    if (http_request.readyState == 4 && http_request.status == 200)
    {
      var compare_div = get_object("compare_div");
      var result = http_request.responseText;
      compare_div.innerHTML = result;
    }
  }
  catch (e) {}
}

// Функция очищает корзину сравнения.
function compare_clean()
{
  cookie_clean("compare");
  compare_show();
}

// Функция удаляет товар из корзины сравнения.
function compare_delete(id)
{
  cookie_delete_value_by_name("compare", id);
  compare_show();
}

// Функция осуществляет отбор товаров.
function catalog_select_search(url)
{
  var weight_from = 0;
  var ed_weight_from = get_object("ed_weight_from");
  if (is_object(ed_weight_from))
    weight_from = ed_weight_from.value;
  var weight_till = 0;
  var ed_weight_till = get_object("ed_weight_till");
  if (is_object(ed_weight_till))
    weight_till = ed_weight_till.value;
  redirect(url +
    get_url_param("id_category", get_url_text(get_object("cb_category").value)) +
    get_url_param("caption", get_url_text(get_object("ed_caption").value)) +
    get_url_param("price_from", get_url_text(get_object("ed_price_from").value)) +
    get_url_param("price_till", get_url_text(get_object("ed_price_till").value)) +
    get_url_param("weight_from", get_url_text(weight_from)) +
    get_url_param("weight_till", get_url_text(weight_till)));
}

// Функция возвращает url заказа.
function get_catalog_order_add_url(url)
{
  var id_order_delivery = 0;
  var order_delivery = get_object("cb_order_delivery");
  if (is_object(order_delivery))
    id_order_delivery = order_delivery.value;
  var id_order_payment = 0;
  var order_payment = get_object("cb_order_payment");
  if (is_object(order_payment))
    id_order_payment = order_payment.value;
  return url + "/order_add/" + id_order_delivery + '/' + id_order_payment;
}

// Функция добавляет заказ.
function catalog_order_add(url)
{
  redirect(get_catalog_order_add_url(url));
}

// Функция добавляет заказ.
function catalog_order_add_submit(url)
{
  var form_obj = get_object('form_order');
  form_obj.action = get_catalog_order_add_url(url);
}

// Функция обрабатывает выбор элемента корневой категории.
function catalog_root_list_select(url)
{
  var obj = get_object("cb_root_list");
  if (is_object(obj))
  {
    cookie_set_value("root_list", obj.value);
    cookie_clean("shop");
    cookie_clean("compare");
    redirect(url);
  }
}
