PageSourceSearch

https://komplektadr.ru/bitrix/templates/aspro_max/js/main.js

js komplektadr.ru collected 2026-10-08 15:20:06 UTC 302,120 bytes, 8,479 lines download raw bytes

1BX?.Aspro?.Utils?.Ajax?.appendSessid?.();
2
3var basketTimeoutSlide;
4var resizeEventTimer;
5
6var clicked_tab = 0;
7
8if (typeof arAsproOptions === "undefined") {
9  var arAsproOptions = {
10    SITE_DIR: "/",
11  };
12  if ($("body").data("site") !== undefined) arAsproOptions["SITE_DIR"] = $("body").data("site");
13}
14
15function readyDOM(callback) {
16  if (document.readyState !== "loading") callback();
17  else document.addEventListener("DOMContentLoaded", callback);
18}
19
20var typeofExt = function (item) {
21  const _toString = Object.prototype.toString;
22  return _toString.call(item).slice(8, -1).toLowerCase();
23};
24
25function loadScripts(scripts, cb) {
26  function addVersionToScripts(scripts) {
27    const version = "?v=" + arAsproOptions["MODULE_VERSION"];
28    if (Array.isArray(scripts)) {
29      scripts.forEach(function (item, i, arr) {
30        arr[i] += version;
31      });
32    } else if (typeof scripts === "string") {
33      scripts += version;
34    }
35    return scripts;
36  }
37
38  scripts = addVersionToScripts(scripts);
39  BX.loadScript(scripts, function () {
40    if (typeof cb === "function") {
41      cb();
42    }
43  });
44}
45
46function loadJQM(cb) {
47  if (typeof $.fn.jqm === "function") {
48    cb();
49  } else {
50    BX.loadScript(arAsproOptions["SITE_TEMPLATE_PATH"] + "/js/jqModal.js?v=2.2.5", () => cb());
51  }
52}
53
54var InitLazyLoad = function () {};
55
56$(document).on("change", ".uploader input[type=file]", function () {
57  if (!$(this).next().length || !$(this).next().hasClass("resetfile")) {
58    $(
59      '<span class="resetfile"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewB
59ox="0 0 11 11"><path d="M1345.19,376.484l4.66,4.659a0.492,0.492,0,0,1,0,.707,0.5,0.5,0,0,1-.71,0l-4.66-4.659-4.65,4.659a0.5,0.5,0,0,1-.71,0,0.492,0.492,0,0,1,0-.707l4.66-4.659-4.66-4.659a0.492,0.492,0,0,1,0-.707,0.5,0.5,0,0,1,.71,0l4.65,4.659,4.66-4.659a0.5,0.5,0,0,1,.71,0,0.492,0.492,0,0,1,0,.707Z" transform="translate(-1339 -371)"/></svg></span>'
60    ).insertAfter($(this));
61  }
62});
63
64$(document).on("click", ".uploader.files_add input[type=file] + .resetfile", function () {
65  var $input = $(this).prev();
66  $input.val("");
67  $.uniform.update($input);
68  $(this).remove();
69});
70
71$(document).on("click", ".top_block h3", function () {
72  if (window.matchMedia("(max-width: 550px)").matches) {
73    var $this = $(this);
74    var a = $this.siblings("a");
75    if (a.length) {
76      a[0].click();
77    }
78  }
79});
80
81$(document).on("click", ".bx-yandex-view-layout .yandex-map__mobile-opener", function () {
82  if ($(this).hasClass("closer")) {
83    closeYandexMap();
84  } else {
85    openYandexMap(this);
86  }
87});
88
89function openYandexMap(element) {
90  var $this = $(element);
91  if ($this.hasClass("closer")) return;
92  var currentMap = $this.parents(".bx-yandex-view-layout");
93  var mapId = currentMap.find(".bx-yandex-map").attr("id");
94  window.openedYandexMapFrame = mapId;
95  var mapContainer = $('<div data-mapId="' + mapId + '"></div>');
96  if (!$("div[data-mapId=" + mapId + "]").length) {
97    currentMap.after(mapContainer);
98  }
99  var yandexMapFrame = $('<div class="yandex-map__frame"></div>');
100  $("body .wrapper1").append(yandexMapFrame);
101  currentMap.appendTo(yandexMapFrame);
102  currentMap.find(".yandex-map__mobile-opener").addClass("closer");
103  window.map.container.fitToViewport();
104}
105
106function closeYandexMap() {
107  var yandexMapFrame = $(".yandex-map__frame");
108  if (yandexMapFrame.length) {
109    var currentMap = yandexMapFrame.find(".bx-yandex-view-layout");
110    var yandexMapContainer = $("div[data-mapId=" + window.openedYandexMapFrame + "]");
111
112    currentMap.appendTo(yandexMapContainer);
113    yandexMapFrame.remove();
114    currentMap.find(".yandex-map__mobile-opener").removeClass("closer");
115    if (window.map) {
116      window.map.container.fitToViewport();
117    }
118  }
119}
120
121function throttle(f, t) {
122  let throttled, saveThis, saveArgs;
123  const wrapper = function () {
124    if (throttled) {
125      saveThis = this;
126      saveArgs = arguments;
127      return;
128    }
129    throttled = true;
130    f.apply(this, arguments);
131    setTimeout(function () {
132      throttled = false;
133      if (saveArgs) {
134        wrapper.apply(saveThis, saveArgs);
135        saveThis = saveArgs = null;
136      }
137    }, t);
138  };
139  return wrapper;
140}
141
142function debounce(f, t) {
143  return function (args) {
144    var previousCall = this.lastCall;
145    this.lastCall = Date.now();
146    if (previousCall && this.lastCall - previousCall <= t) {
147      clearTimeout(this.lastCallTimer);
148    }
149    this.lastCallTimer = setTimeout(function () {
150      f(args);
151    }, t);
152  };
153}
154
155$.fn.iAppear = function (callback, options) {
156  if (typeof $.fn.iAppear.useObserver === "undefined") {
157    $.fn.iAppear.useObserver = typeof window["IntersectionObserver"] === "function";
158
159    if (!$.fn.iAppear.useObserver && typeof $.fn.appear !== "function") {
160      $.fn.iAppear.queue = [];
161      BX.loadScript(arAsproOptions.SITE_TEMPLATE_PATH + "/vendor/js/jquery.appear.js", function () {
162        if (typeof $.fn.iAppear.queue === "object") {
163          $.fn.iAppear.queue.forEach(function (queueItem) {
164            $(queueItem.items).iAppear(queueItem.callback, queueItem.options);
165          });
166        }
167      });
168
169      return;
170    }
171  }
172
173  if ($.fn.iAppear.useObserver) {
174    var options = $.extend(
175      {
176        root: null,
177        rootMargin: "150px 0px 150px 0px",
178        threshold: 0.0,
179      },
180      options
181    );
182
183    $(this).each(function (i, appearBlock) {
184      var observer = new IntersectionObserver(function (entries, observer) {
185        entries.forEach(function (element) {
186          if (element.intersectionRatio > 0 && !element.target.dataset.iAppeared) {
187            element.target.dataset.iAppeared = true;
188
189            if (typeof callback === "function") {
190              callback.call(element.target);
191            }
192          }
193        });
194      }, options);
195
196      observer.observe(appearBlock);
197    });
198  } else {
199    if (typeof $.fn.appear !== "function") {
200      if ($(this).length) {
201        $.fn.iAppear.queue.push({
202          items: this,
203          callback: callback,
204          options: options,
205        });
206      }
207
208      return;
209    } else {
210      if ($(this).length) {
211        $(this).each(function (i, appearBlock) {
212          $(appearBlock).appear(function () {
213            if (typeof callback === "function") {
214              callback.call(appearBlock);
215            }
216          }, options);
217        });
218      }
219    }
220  }
221};
222
223$(document).on("click", ".flex-control-nav.flex-control-js-click li a:not(.flex-active)", function (e) {
224  var _this = $(this);
225  var itemIndex = _this.data("index") ? _this.data("index") : _this.closest("li").index();
226
227  var block = "";
228  var blocks = _this.closest(".items").find("> .item");
229  var activeBlock = _this.closest(".items").find(".item.active");
230
231  var activeLi = _this.closest(".flex-control-nav").find(".flex-active");
232
233  activeBlock.fadeOut(function () {
234    activeBlock.removeClass("active");
235
236    block = blocks.eq(itemIndex);
237    if (block.length) {
238      block.fadeIn(function () {
239        block.addClass("active");
240      });
241    }
242
243    _this.addClass("flex-active");
244    activeLi.removeClass("flex-active");
245  });
246
247  e.preventDefault();
248});
249
250$(document).on("mouseenter", "#headerfixed .menu-item.wide_menu", function () {
251  var _this = $(this);
252  setTimeout(function () {
253    var dropdownMenu = _this.find(".wrap > .dropdown-menu");
254    var menuOffset = dropdownMenu[0].getBoundingClientRect();
255    var headerOffset = document.getElementById("headerfixed").getBoundingClientRect();
256    var windowHeight = document.documentElement.clientHeight;
257
258    if (menuOffset.height + headerOffset.height > windowHeight) {
259      var maxHeight = windowHeight - headerOffset.height;
260      dropdownMenu.css({
261        "max-height": maxHeight,
262      });
263      dropdownMenu.find(".menu-navigation").css({ "max-height": maxHeight });
264      dropdownMenu.find(".customScrollbar").css({ "max-height": maxHeight });
265      dropdownMenu.find(".menu-wrapper.menu-type-4 > li").css({ "min-height": "auto" });
266    } else {
267      dropdownMenu.css({
268        "max-height": "",
269      });
270      dropdownMenu.find(".menu-navigation").css({ "max-height": "" });
271      dropdownMenu.find(".customScrollbar").css({ "max-height": "" });
272      dropdownMenu.find(".menu-wrapper.menu-type-4 > li").css({ "min-height": "" });
273    }
274  }, 300);
275});
276
277BX.addCustomEvent("onAjaxSuccess", function (data) {
278  if (typeof data !== "object" || data === null) {
279    return;
280  }
281
282  if (typeof data.BASKET_REFRESHED === undefined) {
283    return;
284  }
285
286  if (data.BASKET_REFRESHED) {
287    if (
288      typeof data.BASKET_DATA === "object" &&
289      data.BASKET_DATA
290    ) {
291      var basketCounts = data.BASKET_DATA.BASKET_ITEMS_COUNT;
292      reloadBasketCounters(basketCounts);
293    }
294  }
295
296  const resoredBasketItems = data.RESTORED_BASKET_ITEMS;
297  if (
298    resoredBasketItems &&
299    typeof resoredBasketItems === 'object' &&
300    !Array.isArray(resoredBasketItems)
301  ) {
302    for (const basketID in resoredBasketItems) {
303      if (resoredBasketItems.hasOwnProperty(basketID) && BX.Sale?.BasketComponent?.items?.[basketID]) {
304        addBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID);
305      }
306    }
307  }
308});
309
310BX.addCustomEvent("onHeaderProgressBarChange", function (data) {
311  if (typeof updateProgressBar === "function") {
312    updateProgressBar();
313  }
314});
315
316if (!funcDefined("parseUrlQuery")) {
317  parseUrlQuery = function () {
318    var data = {};
319    if (location.search) {
320      var pair = location.search.substr(1).split("&");
321      for (var i = 0; i < pair.length; i++) {
322        var param = pair[i].split("=");
323        data[param[0]] = param[1];
324      }
325    }
326    return data;
327  };
328}
329
330if (!funcDefined("setLocationSKU")) {
331  function setLocationSKU(ID, urlParam) {
332    if (urlParam === undefined) urlParam = "oid";
333
334    var objUrl = parseUrlQuery(),
335      j = 0,
336      prefix = "",
337      query_string = "",
338      url = "";
339
340    objUrl[urlParam] = ID;
341
342    for (var i in objUrl) {
343      if (parseInt(j) > 0) prefix = "&";
344      query_string = query_string + prefix + i + "=" + objUrl[i];
345      j++;
346    }
347    if (query_string) {
348      url = location.pathname + "?" + query_string + location.hash;
349    }
350    try {
351      //history.pushState(null, null, url);
352      history.replaceState(null, null, url);
353      return;
354    } catch (e) {}
355    location.hash = "#" + url.substr(1);
356  }
357}
358
359if (!funcDefined("ShowOverlay")) {
360  ShowOverlay = function () {
361    $('<div class="jqmOverlay waiting"></div>').appendTo("body");
362  };
363}
364
365if (!funcDefined("HideOverlay")) {
366  HideOverlay = function () {
367    $(".jqmOverlay").detach();
368  };
369}
370
371if (!funcDefined("trimPrice")) {
372  var trimPrice = function trimPrice(s) {
373    s = s.split(" ").join("");
374    s = s.split("&nbsp;").join("");
375    return s;
376  };
377}
378
379if (!funcDefined("pauseYmObserver")) {
380  // pause ya metrika webvisor MutationObserver callback (DOM indexer)
381  // use before insert html with some animation
382  pauseYmObserver = function () {
383    if (
384      typeof MutationObserver === "function" &&
385      typeof MutationObserver.observers === "object" &&
386      typeof MutationObserver.observers.ym === "object"
387    ) {
388      if (typeof pauseYmObserver.cnt === "undefined") {
389        pauseYmObserver.cnt = 0;
390      }
391
392      ++pauseYmObserver.cnt;
393
394      if (!MutationObserver.observers.ym.paused) {
395        MutationObserver.observers.ym.pause();
396      }
397    }
398  };
399}
400
401if (!funcDefined("resumeYmObserver")) {
402  // resume ya metrika webvisor MutationObserver callback
403  // use when animation finished
404  resumeYmObserver = function () {
405    if (
406      typeof MutationObserver === "function" &&
407      typeof MutationObserver.observers === "object" &&
408      typeof MutationObserver.observers.ym === "object"
409    ) {
410      if (typeof pauseYmObserver.cnt === "undefined") {
411        pauseYmObserver.cnt = 1;
412      }
413
414      pauseYmObserver.cnt -= pauseYmObserver.cnt > 0 ? 1 : 0;
415
416      if (!pauseYmObserver.cnt && MutationObserver.observers.ym.paused) {
417        MutationObserver.observers.ym.resume();
418      }
419    }
420  };
421}
422
423if (!funcDefined("markProductRemoveBasket")) {
424  var markProductRemoveBasket = function markProductRemoveBasket(id) {
425    $(".in-cart[data-item=" + id + "]").hide();
426    $(".to-cart[data-item=" + id + "]").show();
427    if (
428      $(".to-cart[data-item=" + id + "]")
429        .closest(".counter_wrapp")
430        .find(".counter_block").length
431    ) {
432      $(".to-cart[data-item=" + id + "]")
433        .closest(".button_block")
434        .removeClass("wide");
435    }
436    $(".to-cart[data-item=" + id + "]")
437      .closest(".counter_wrapp")
438      .find(".counter_block")
439      .show();
440    $(".counter_block[data-item=" + id + "]")
441      .closest(".counter_block_inner")
442      .show();
443    $(".counter_block[data-item=" + id + "]").show();
444    $(".in-subscribe[data-item=" + id + "]").hide();
445    $(".to-subscribe[data-item=" + id + "]").show();
446
447    $(".banner_buttons.with_actions .wraps_buttons[data-id=" + id + "] .basket_item_add").removeClass("added");
448
449    if ($("#headerfixed .but-cell .type_block").length) {
450      $("#headerfixed .but-cell .type_block span").text(BX.message("MORE_INFO_SKU"));
451      $("#headerfixed .but-cell .type_block .svg-inline-fw").remove();
452    }
453  };
454}
455
456if (!funcDefined("markProductAddBasket")) {
457  var markProductAddBasket = function markProductAddBasket(id) {
458    $(".to-cart[data-item=" + id + "]").hide();
459    $(".to-cart[data-item=" + id + "]")
460      .closest(".counter_wrapp")
461      .find(".counter_block_inner")
462      .hide();
463    $(".to-cart[data-item=" + id + "]")
464      .closest(".counter_wrapp")
465      .find(".counter_block")
466      .hide();
467    $(".to-cart[data-item=" + id + "]")
468      .closest(".button_block")
469      .addClass("wide");
470    $(".in-cart[data-item=" + id + "]").show();
471
472    $(".banner_buttons.with_actions .wraps_buttons[data-id=" + id + "] .basket_item_add").addClass("added");
473
474    if ($("#headerfixed .but-cell .type_block").length) {
475      $("#headerfixed .but-cell .type_block").html($(".in-cart[data-item=" + id + "]").html());
476    }
477  };
478}
479
480if (!funcDefined("markProductDelay")) {
481  var markProductDelay = function markProductDelay(id) {
482    $(".in-cart[data-item=" + id + "]").hide();
483    $(".to-cart[data-item=" + id + "]").show();
484    $(".to-cart[data-item=" + id + "]")
485      .closest(".counter_wrapp")
486      .find(".counter_block_inner")
487      .show();
488    $(".to-cart[data-item=" + id + "]")
489      .closest(".counter_wrapp")
490      .find(".counter_block")
491      .show();
492    if (
493      $(".to-cart[data-item=" + id + "]")
494        .closest(".counter_wrapp")
495        .find(".counter_block").length
496    ) {
497      $(".to-cart[data-item=" + id + "]")
498        .closest(".button_block")
499        .removeClass("wide");
500    }
501
502    if ($("#headerfixed .but-cell .type_block").length) {
503      $("#headerfixed .but-cell .type_block span").text(BX.message("MORE_INFO_SKU"));
504      $("#headerfixed .but-cell .type_block .svg-inline-fw").remove();
505    }
506  };
507}
508
509if (!funcDefined("markProductSubscribe")) {
510  var markProductSubscribe = function markProductSubscribe(id) {
511    $(".to-subscribe[data-item=" + id + "]").hide();
512    $(".in-subscribe[data-item=" + id + "]").css("display", "block");
513  };
514}
515
516if (!funcDefined("updateBottomIconsPanel")) {
517  var updateBottomIconsPanel = function updateBottomIconsPanel(options) {
518    if (options && $(".bottom-icons-panel").length) {
519      var bBasketUpdate = "READY" in options || "BASKET_COUNT" in options;
520      var basketCount = "READY" in options ? options.READY.COUNT : "BASKET_COUNT" in options ? options.BASKET_COUNT : 0;
521      var basketTitle =
522        "READY" in options ? options.READY.TITLE : "BASKET_SUMM_TITLE" in options ? options.BASKET_SUMM_TITLE : "";
523
524      //basket
525      if (bBasketUpdate) {
526        if (+basketCount > 0) {
527          $(".bottom-icons-panel .basket.counter-state").removeClass("counter-state--empty");
528        } else {
529          $(".bottom-icons-panel .basket.counter-state").addClass("counter-state--empty");
530        }
531        $(".bottom-icons-panel .basket .counter-state__content-item-value").text(basketCount);
532        $(".bottom-icons-panel .basket")
533          .closest(".bottom-icons-panel__content-link")
534          .attr("title", $("<div/>").html(basketTitle).text());
535      }
536      //
537    }
538  };
539}
540if (!funcDefined("basketFly")) {
541  var basketFly = function basketFly(action, opener) {
542    if (typeof obMaxPredictions === "object") {
543      obMaxPredictions.updateAll();
544    }
545
546    $.post(
547      arAsproOptions["SITE_DIR"] + "ajax/basket_fly.php",
548      "PARAMS=" + $("#basket_form").find("input#fly_basket_params").val(),
549      $.proxy(function (data) {
550        var small = $(".opener .basket_count").hasClass("small"),
551          basket_count = $(data).find(".basket_count").find(".items div").text();
552        $("#basket_line .basket_fly").addClass("loaded").html(data);
553
554        if (action == "refresh") $("li[data-type=AnDelCanBuy]").trigger("click");
555
556        if (typeof opener == "undefined" || $("#basket_line .basket_fly").hasClass("loading")) {
557          if (window.matchMedia("(min-width: 769px)").matches) {
558            if (action == "open") {
559              if (small) {
560                if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
561                  $(".opener .basket_count").click();
562                }
563              } else {
564                $(".opener .basket_count").removeClass("small");
565                $('.tabs_content.basket li[item-section="AnDelCanBuy"]').addClass("cur");
566                $('#basket_line ul.tabs li[item-section="AnDelCanBuy"]').addClass("cur");
567
568                $("#basket_line .basket_fly .opener > div:eq(0)").addClass("cur");
569              }
570            } else {
571              if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
572                $(".opener .basket_count").click();
573              }
574            }
575          }
576        } else if (opener === "SHOW") {
577          if (window.matchMedia("(min-width: 769px)").matches) {
578            $(".opener .basket_count").removeClass("small");
579            $('.tabs_content.basket li[item-section="AnDelCanBuy"]').addClass("cur");
580            $('#basket_line ul.tabs li[item-section="AnDelCanBuy"]').addClass("cur");
581            $("#basket_line .basket_fly .opener > div:eq(0)").addClass("cur");
582          }
583        }
584      })
585    );
586  };
587}
588
589if (!funcDefined("basketTop")) {
590  var basketTop = function basketTop(action, hoverBlock) {
591    if (action == "reload") {
592      if ($(".basket_hover_block:hover").length) {
593        hoverBlock = $(".basket_hover_block:hover");
594      }
595    }
596
597    if (action == "open") {
598      if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
599        if ($("#headerfixed").hasClass("fixed")) {
600          hoverBlock = $("#headerfixed .basket_hover_block");
601        } else {
602          hoverBlock = $(".top_basket .basket_hover_block");
603        }
604      }
605    }
606
607    if (hoverBlock === undefined) {
608      console.log("Undefined hoverBlock");
609      console.trace();
610      return false;
611    }
612
613    if (action == "close") {
614      if (hoverBlock.length) {
615        hoverBlock.css({
616          opacity: "",
617          visibility: "",
618        });
619        return true;
620      }
621    }
622
623    hoverBlock.removeClass("loaded");
624    var firstTime = hoverBlock.find("div").length ? "false" : "true";
625    var params = $("#basket_form").find("input#fly_basket_params").val();
626    var postData = {
627      firstTime: firstTime,
628    };
629    if (params !== undefined) {
630      postData.PARAMS = params;
631    }
632
633    $.post(
634      arAsproOptions["SITE_DIR"] + "ajax/showBasketHover.php",
635      postData,
636      $.proxy(function (data) {
637        var ob = BX.processHTML(data);
638        // inject
639        $("#headerfixed .basket .basket_hover_block, .top_basket .basket_hover_block").html(ob.HTML);
640        BX.ajax.processScripts(ob.SCRIPT);
641        if (window.matchMedia("(min-width: 992px)").matches) {
642          hoverBlock.addClass("loaded");
643
644          if (action == "open") {
645            if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
646              if ($("#headerfixed").hasClass("fixed")) {
647                hoverBlock = $("#headerfixed .basket + .basket_hover_block");
648              } else {
649                hoverBlock = $(".top_basket .basket_hover_block");
650              }
651
652              hoverBlock.css({
653                opacity: "1",
654                visibility: "visible",
655              });
656
657              setTimeout(function () {
658                hoverBlock.css({
659                  opacity: "",
660                  visibility: "",
661                });
662              }, 2000);
663            }
664          }
665        }
666      })
667    );
668  };
669}
670
671$(document).on("click", "#basket_toolbar_button", function () {
672  if (lastHash) location.hash = "cart";
673});
674$(document).on("click", "#basket_toolbar_button_delayed", function () {
675  if (lastHash) location.hash = "delayed";
676});
677if (location.hash) {
678  var hash = location.hash;
679}
680//work with hash end
681
682$(document).on("click", "#basket_line .basket_fly .opener > div.clicked", function () {
683  if (arAsproOptions["PAGES"]["BASKET_PAGE"]) return;
684  function onOpenFlyBasket(_this) {
685    $("#basket_line .basket_fly .tabs li").removeClass("cur");
686    $("#basket_line .basket_fly .tabs_content li").removeClass("cur");
687    // $("#basket_line .basket_fly .remove_all_basket").removeClass("cur");
688    if (!$(_this).is(".wish_count.empty")) {
689      $("#basket_line .basket_fly .tabs_content li[item-section=" + $(_this).data("type") + "]").addClass("cur");
690      $("#basket_line .basket_fly .tabs li:eq(" + $(_this).index() + ")").addClass("cur");
691      // $("#basket_line .basket_fly .remove_all_basket."+$(_this).data("type")).addClass("cur");
692    } else {
693      $("#basket_line .basket_fly .tabs li").first().addClass("cur").siblings().removeClass("cur");
694      $("#basket_line .basket_fly .tabs_content li").first().addClass("cur").siblings().removeClass("cur");
695      // $("#basket_line .basket_fly .remove_all_basket").first().addClass("cur");
696    }
697    $("#basket_line .basket_fly .opener > div.clicked").removeClass("small");
698
699    $("#basket_line .basket_fly .opener > div").siblings().removeClass("cur");
700    $("#basket_line .basket_fly .opener > div:eq(" + $(_this).index() + ")").addClass("cur");
701  }
702
703  if (window.matchMedia("(min-width: 769px)").matches) {
704    var _this = this;
705
706    $(_this).siblings().removeClass("cur");
707    $(_this).addClass("cur");
708
709    if (parseInt($("#basket_line .basket_fly").css("right")) < 0) {
710      $("#basket_line .basket_fly")
711        .stop()
712        .addClass("loading")
713        .animate({ right: "0" }, 333, function () {
714          if ($(_this).closest(".basket_fly.loaded").length) {
715            onOpenFlyBasket(_this);
716          } else {
717            $.ajax({
718              url: arAsproOptions["SITE_DIR"] + "ajax/basket_fly.php",
719              type: "post",
720              success: function (html) {
721                $("#basket_line .basket_fly").removeClass("loading").addClass("loaded").html(html);
722                onOpenFlyBasket(_this);
723              },
724            });
725          }
726        });
727      $("#basket_line .basket_fly").addClass("swiped");
728    } else if (
729      $(this).is(".wish_count:not(.empty)") &&
730      !$("#basket_line .basket_fly .basket_sort ul.tabs li.cur").is("[item-section=DelDelCanBuy]")
731    ) {
732      $("#basket_line .basket_fly .tabs li").removeClass("cur");
733      $("#basket_line .basket_fly .tabs_content li").removeClass("cur");
734      // $("#basket_line .basket_fly .remove_all_basket").removeClass("cur");
735      $("#basket_line .basket_fly .tabs_content li[item-section=" + $(this).data("type") + "]").addClass("cur");
736      $("#basket_line  .basket_fly .tabs li:eq(" + $(this).index() + ")")
737        .first()
738        .addClass("cur");
739      // $("#basket_line .basket_fly .remove_all_basket."+$(this).data("type")).first().addClass("cur");
740    } else if (
741      $(this).is(".basket_count") &&
742      $("#basket_line .basket_fly .basket_sort ul.tabs li.cur").length &&
743      !$("#basket_line .basket_fly .basket_sort ul.tabs li.cur").is("[item-section=AnDelCanBuy]")
744    ) {
745      $("#basket_line .basket_fly .tabs li").removeClass("cur");
746      $("#basket_line .basket_fly .tabs_content li").removeClass("cur");
747      // $("#basket_line .basket_fly .remove_all_basket").removeClass("cur");
748      $("#basket_line  .basket_fly .tabs_content li:eq(" + $(this).index() + ")").addClass("cur");
749      $("#basket_line  .basket_fly .tabs li:eq(" + $(this).index() + ")")
750        .first()
751        .addClass("cur");
752      // $("#basket_line .basket_fly .remove_all_basket."+$(this).data("type")).first().addClass("cur");
753    } else {
754      $("#basket_line .basket_fly")
755        .stop()
756        .animate({ right: -$("#basket_line .basket_fly").outerWidth() }, 150);
757      $("#basket_line .basket_fly .opener > div.clicked").addClass("small");
758      $("#basket_line .basket_fly").removeClass("swiped");
759      $("#basket_line .basket_fly .opener > div").removeClass("cur");
760    }
761  }
762});
763
764if (!funcDefined("clearViewedProduct")) {
765  function clearViewedProduct() {
766    try {
767      var siteID = arAsproOptions.SITE_ID;
768      var localKey = "MAX_VIEWED_ITEMS_" + siteID;
769      var cookieParams = { path: "/", expires: 30 };
770      if (typeof BX.localStorage !== "undefined") {
771        // remove local storage
772        BX.localStorage.set(localKey, {}, 0);
773      }
774      // remove cookie
775      $.removeCookie(localKey, cookieParams);
776    } catch (e) {
777      console.error(e);
778    }
779  }
780}
781
782if (!funcDefined("setViewedProduct")) {
783  function setViewedProduct(id, arData) {
784    try {
785      // save $.cookie option
786      var bCookieJson = $.cookie.json;
787      $.cookie.json = true;
788
789      var siteID = arAsproOptions.SITE_ID;
790      var localKey = "MAX_VIEWED_ITEMS_" + siteID;
791      var cookieParams = { path: "/", expires: 30 };
792
793      if (typeof BX.localStorage !== "undefined" && typeof id !== "undefined" && typeof arData !== "undefined") {
794        var PRODUCT_ID = typeof arData.PRODUCT_ID !== "undefined" ? arData.PRODUCT_ID : id;
795        var arViewedLocal = BX.localStorage.get(localKey) ? BX.localStorage.get(localKey) : {};
796        var arViewedCookie = $.cookie(localKey) ? $.cookie(localKey) : {};
797        var count = 0;
798
799        // delete some items (sync cookie & local storage)
800        for (var _id in arViewedLocal) {
801          arViewedLocal[_id].IS_LAST = false;
802          if (typeof arViewedCookie[_id] === "undefined") {
803            delete arViewedLocal[_id];
804          }
805        }
806        for (var _id in arViewedCookie) {
807          if (typeof arViewedLocal[_id] === "undefined") {
808            delete arViewedCookie[_id];
809          }
810        }
811
812        for (var _id in arViewedCookie) {
813          count++;
814        }
815
816        // delete item if other item (offer) of that PRODUCT_ID is exists
817        if (typeof arViewedLocal[PRODUCT_ID] !== "undefined") {
818          if (arViewedLocal[PRODUCT_ID].ID != id) {
819            delete arViewedLocal[PRODUCT_ID];
820            delete arViewedCookie[PRODUCT_ID];
821          }
822        }
823
824        var time = new Date().getTime();
825        arData.ID = id;
826        arData.ACTIVE_FROM = time;
827        arData.IS_LAST = true;
828        arViewedLocal[PRODUCT_ID] = arData;
829        arViewedCookie[PRODUCT_ID] = [time.toString(), arData.PICTURE_ID];
830
831        $.cookie(localKey, arViewedCookie, cookieParams);
832        BX.localStorage.set(localKey, arViewedLocal, 2592000); // 30 days
833      }
834    } catch (e) {
835      console.error(e);
836    } finally {
837      // restore $.cookie option
838      $.cookie.json = bCookieJson;
839    }
840  }
841}
842
843if (!funcDefined("initSelects")) {
844  function initSelects(target) {
845    if (!$.fn.ikSelect) return;
846    var iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false;
847    if (iOS && !$(".wrapper1.iks-on-ios").length) return;
848    if ($("#bx-soa-order").length || $("#bx-soa-order-main").length) return;
849
850    if (!$(".wrapper1.iks-ignore").length) {
851      const $target = $(target).find(
852        ".wrapper1 select:visible:not(.iks-ignore), .jqmWindow select:visible:not(.iks-ignore)"
853      );
854
855      if ($target.length) {
856        // SELECT STYLING
857        $target.ikSelect({
858          syntax:
859            '<div class="ik_select_link"> \
860              <span class="ik_select_link_text"></span> \
861              <div class="trigger"></div> \
862            </div> \
863            <div class="ik_select_dropdown"> \
864              <div class="ik_select_list"> \
865              </div> \
866            </div>',
867          dynamicWidth: true,
868          ddMaxHeight: 112,
869          customClass: "common_select",
870          //equalWidths: true,
871          onShow: function (inst) {
872            inst.$dropdown.css("top", parseFloat(inst.$dropdown.css("top")) - 5 + "px");
873            if (inst.$dropdown.outerWidth() < inst.$link.outerWidth()) {
874              inst.$dropdown.css("width", inst.$link.outerWidth());
875            }
876            if (inst.$dropdown.outerWidth() > inst.$link.outerWidth()) {
877              inst.$dropdown.css("width", inst.$link.outerWidth());
878            }
879            var count = 0,
880              client_height = 0;
881            inst.$dropdown.css("left", inst.$link.offset().left);
882            $(inst.$listInnerUl)
883              .find("li")
884              .each(function () {
885                if (!$(this).hasClass("ik_select_option_disabled")) {
886                  ++count;
887                  client_height += $(this).outerHeight();
888                }
889              });
890            if (client_height < 112) {
891              inst.$listInner.css("height", "auto");
892            } else {
893              inst.$listInner.css("height", "112px");
894            }
895            inst.$link.addClass("opened");
896            inst.$listInner.addClass("scroller scrollblock");
897            if ($(".confirm_region").length) $(".confirm_region").remove();
898          },
899          onHide: function (inst) {
900            inst.$link.removeClass("opened");
901          },
902        });
903        // END OF SELECT STYLING
904
905        var timeout;
906        $(window).on("resize", function () {
907          ignoreResize.push(true);
908          clearTimeout(timeout);
909          timeout = setTimeout(function () {
910            //$('select:visible').ikSelect('redraw');
911            var inst = "";
912            if ((inst = $(".common_select-link.opened + select").ikSelect().data("plugin_ikSelect"))) {
913              inst.$dropdown.css("left", inst.$link.offset().left + "px");
914            }
915          }, 20);
916          ignoreResize.pop();
917        });
918      }
919    }
920  }
921}
922
923if (!funcDefined("CheckTopMenuFullCatalogSubmenu")) {
924  CheckTopMenuFullCatalogSubmenu = function () {
925    if (window.matchMedia("(max-width: 991px)").matches) return;
926
927    if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["MENU_TYPE_VIEW"] != "HOVER") return;
928
929    var $menu = $(".left_block .menu_top_block");
930    if ($menu.length) {
931      var $wrapmenu = $menu.parents(".wrap_menu");
932
933      var wrapMenuWidth = $menu.closest(".wrapper_inner").actual("width");
934      if (!wrapMenuWidth) wrapMenuWidth = $menu.closest(".wraps").actual("width");
935
936      var bCatalogFirst = $menu.hasClass("catalogfirst");
937      var findMenuLi = $(".left_block .menu_top_block:visible li.full");
938      var parentSubmenuWidth = $menu.actual("outerWidth");
939      var wrapMenuLeft = 0;
940      var wrapMenuRight = 0;
941
942      if ($wrapmenu.length) {
943        wrapMenuWidth = $wrapmenu.actual("outerWidth");
944        wrapMenuLeft = $wrapmenu.offset().left;
945        wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
946      }
947
948      if ($(".left_block .catalog_block.menu_top_block").length) {
949        if ($(".left_block .catalog_block.menu_top_block").is(":visible"))
950          findMenuLi = $(".left_block .menu_top_block.catalog_block li.full");
951      }
952      findMenuLi.each(function () {
953        var $this = $(this);
954        var $submenu = $this.find(">.dropdown");
955
956        if ($submenu.length) {
957          // $submenu.css({left: parentSubmenuWidth + 'px', width: (wrapMenuWidth - parentSubmenuWidth) + 'px', 'padding-left': '0px', 'padding-right': '0px', 'opacity': 1});
958          //$submenu.css({ width: wrapMenuWidth - parentSubmenuWidth + "px" });
959
960          if (!isOnceInited && arAsproOptions["THEME"]["MENU_POSITION"] == "TOP") {
961            $this.on("mouseenter", function () {
962              $submenu.css("min-height", $this.closest(".dropdown").actual("outerHeight") + "px");
963            });
964          }
965        }
966      });
967    }
968  };
969}
970
971$.fn.getMaxHeights = function (outer, classNull, minHeight) {
972  var maxHeight = this.map(function (i, e) {
973    var calc_height = 0;
974    $(e).css("height", "");
975
976    if (outer == true) calc_height = $(e).actual("outerHeight");
977    else calc_height = $(e).actual("height");
978
979    return calc_height;
980  }).get();
981  for (var i = 0, c = maxHeight.length; i < c; ++i) {
982    if (maxHeight[i] % 2) --maxHeight[i];
983  }
984  return Math.max.apply(this, maxHeight);
985};
986
987$.fn.equalizeHeights = function (outer, classNull, options) {
988  var maxHeight = [];
989  var items = [];
990
991  for (var i = 0, itemKey = 0; i < this.length; itemKey++) {
992    var item = this[itemKey],
993      _item = $(item),
994      minus_height = 0,
995      calc_height = 0;
996
997    i++;
998
999    if (options.blockNull !== undefined) {
1000      if (options.blockNull.class !== undefined) {
1001        if (_item.hasClass(options.blockNull.class) || _item.closest("." + options.blockNull.class).length) {
1002          continue;
1003        }
1004      }
1005    }
1006
1007    items.push(this[itemKey]);
1008
1009    if (classNull !== false) {
1010      if (!isMobile) {
1011        var nulled = _item.find(classNull);
1012        if (nulled.length) {
1013          minus_height = parseInt(nulled[0].offsetHeight);
1014          //minus_height=parseInt(_item.find(classNull).outerHeight(false));
1015          //minus_height=parseInt(_item.find(classNull).actual('outerHeight'));
1016        }
1017      }
1018    }
1019
1020    if (minus_height) minus_height += 12;
1021
1022    _item.css("height", "");
1023
1024    calc_height = item.offsetHeight - minus_height;
1025
1026    if (options.minHeight !== false) {
1027      if (calc_height < options.minHeight) calc_height += options.minHeight - calc_height;
1028
1029      if (window.matchMedia("(max-width: 520px)").matches) calc_height = 300;
1030
1031      if (window.matchMedia("(max-width: 400px)").matches) calc_height = 200;
1032    }
1033
1034    if (!calc_height) calc_height = 0;
1035
1036    maxHeight.push(calc_height);
1037  }
1038
1039  for (var i = 0, c = maxHeight.length; i < c; ++i) {
1040    if (maxHeight[i] % 2) {
1041      --maxHeight[i];
1042    }
1043  }
1044
1045  var result = $(items).height(Math.max.apply(this, maxHeight));
1046
1047  return result;
1048};
1049
1050$.fn.getFloatWidth = function () {
1051  var width = 0;
1052  if ($(this).length) {
1053    var rect = $(this)[0].getBoundingClientRect();
1054    if (!(width = rect.width)) width = rect.right - rect.left;
1055  }
1056
1057  $(this).data("floatWidth", width);
1058
1059  return width;
1060};
1061
1062function extendDepthObject(target, FromObj) {
1063  var to = Object.assign({}, target);
1064  for (var key in FromObj) {
1065    if (typeof FromObj[key] == "object") {
1066      to[key] = extendDepthObject(to[key], FromObj[key]);
1067    } else {
1068      to[key] = FromObj[key];
1069    }
1070  }
1071
1072  return to;
1073}
1074
1075$.fn.sliceHeight = function (options) {
1076  function _slice(el) {
1077    var arBreakpoints = Object.keys(options.breakpoint);
1078    var resizeOptionsTmp = {};
1079    if (arBreakpoints.length) {
1080      for (var key in arBreakpoints) {
1081        if (window.matchMedia(arBreakpoints[key].toString()).matches) {
1082          resizeOptionsTmp = options.breakpoint[arBreakpoints[key]];
1083        }
1084      }
1085    }
1086
1087    var resizeOptions = extendDepthObject(options, resizeOptionsTmp);
1088
1089    var blockNullClass =
1090      resizeOptions.blockNull !== undefined && resizeOptions.blockNull.class !== undefined
1091        ? resizeOptions.blockNull.class
1092        : false;
1093    var parent =
1094      typeof resizeOptions.row !== "undefined" && resizeOptions.row.length
1095        ? el.first().parents(resizeOptions.row)
1096        : el.first().parents(".items");
1097    var item = "";
1098
1099    if (typeof resizeOptions.item !== "undefined" && resizeOptions.item.length) {
1100      if (blockNullClass) {
1101        $(resizeOptions.item).each(function (i, element) {
1102          _element = $(element);
1103          if (!_element.hasClass(blockNullClass)) {
1104            item = _element;
1105          }
1106        });
1107        if (!item)
1108          // if only ignored blocks
1109          return false;
1110      } else {
1111        item = $(resizeOptions.item).first();
1112      }
1113    } else {
1114      if (el.first().hasClass("item")) {
1115        item = el.first();
1116      } else {
1117        item = el.first().parents(".item");
1118      }
1119    }
1120
1121    if (typeof resizeOptions.autoslicecount == "undefined" || resizeOptions.autoslicecount !== false) {
1122      var elsw = parent.getFloatWidth(),
1123        elw = item.getFloatWidth();
1124      if (!elsw) {
1125        elsw = el.first().parents(".row").getFloatWidth();
1126      }
1127      if (!elw) {
1128        if (typeof resizeOptions.item !== "undefined" && resizeOptions.item.length)
1129          elw = $(resizeOptions.item + ":eq(1)").getFloatWidth()
1130            ? $(resizeOptions.item + ":eq(1)").getFloatWidth()
1131            : $(resizeOptions.item + ":eq(2)").getFloatWidth();
1132        else elw = $(el[1]).getFloatWidth() ? $(el[1]).getFloatWidth() : $(el[2]).getFloatWidth();
1133      }
1134      if (elw && resizeOptions.fixWidth) elw -= resizeOptions.fixWidth;
1135
1136      elw = parseInt(elw * 100) / 100;
1137
1138      if (elsw && elw) {
1139        resizeOptions.slice = Math.floor(elsw / elw);
1140      }
1141    }
1142
1143    if (resizeOptions.customSlice) {
1144      //manual slice count
1145      var bSliceNext = false;
1146      if (resizeOptions.length) {
1147        elw =
1148          typeof resizeOptions.item !== "undefined" && resizeOptions.item.length
1149            ? $(resizeOptions.item).last().getFloatWidth()
1150            : el.last().hasClass("item")
1151            ? el.last().getFloatWidth()
1152            : el.last().parents(".item").getFloatWidth();
1153        if (elw) resizeOptions.sliceNext = Math.floor(elsw / elw);
1154
1155        bSliceNext = true;
1156      }
1157    }
1158
1159    elements = [];
1160    if (resizeOptions.classes !== undefined && resizeOptions.classes.length) {
1161      for (var i = 0; i < resizeOptions.classes.length; i++) {
1162        var items = $(resizeOptions.item).find(resizeOptions.classes[i]);
1163        elements.push(items);
1164      }
1165    }
1166    var elIndex = elements.push(el) - 1;
1167
1168    if (resizeOptions.mobile == true) {
1169      if (window.matchMedia("(max-width: 500px)").matches) {
1170        for (var block = 0; block < elements.length; block++) {
1171          var items = $(elements[block]);
1172          items.css({
1173            "line-height": "",
1174            height: "",
1175          });
1176        }
1177        return;
1178      }
1179    }
1180
1181    if (typeof resizeOptions.typeResize == "undefined" || resizeOptions.typeResize == false) {
1182      if (resizeOptions.slice) {
1183        for (var block = 0; block < elements.length; block++) {
1184          if (resizeOptions.currentRow) {
1185            var itemNumber = el.index(resizeOptions.currentItem);
1186            var rowCount = resizeOptions.slice;
1187            var rowNumber = Math.floor(itemNumber / rowCount);
1188
1189            var items = $(elements[block].slice(rowNumber * rowCount, rowNumber * rowCount + rowCount));
1190            var classNull = block == elIndex ? resizeOptions.classNull : false;
1191            items.css({
1192              "line-height": "",
1193              height: "",
1194            });
1195            items.equalizeHeights(resizeOptions.outer, classNull, resizeOptions);
1196          } else {
1197            for (var i = 0; i < elements[block].length; ) {
1198              if (resizeOptions.customSlice && resizeOptions.sliceNext && bSliceNext && i)
1199                //manual slice count
1200                resizeOptions.slice = resizeOptions.sliceNext;
1201
1202              var slice = resizeOptions.slice;
1203              var items = $(elements[block].slice(i, i + slice));
1204              if (resizeOptions.blockNull !== undefined) {
1205                if (resizeOptions.blockNull.class !== undefined) {
1206                  var counts = 0;
1207                  items.each(function (i, item) {
1208                    var _item = $(item);
1209                    if (
1210                      _item.hasClass(resizeOptions.blockNull.class) ||
1211                      _item.closest("." + resizeOptions.blockNull.class).length
1212                    ) {
1213                      counts++;
1214                    }
1215                  });
1216                }
1217              }
1218              if (counts) {
1219                slice -= (resizeOptions.blockNull.width - 1) * counts;
1220              }
1221
1222              items = $(elements[block].slice(i, i + slice));
1223              if (items) {
1224                var classNull = block == elIndex ? resizeOptions.classNull : false;
1225
1226                items.css({
1227                  "line-height": "",
1228                  height: "",
1229                });
1230                items.equalizeHeights(resizeOptions.outer, classNull, resizeOptions);
1231              }
1232              i += slice || 1;
1233            }
1234          }
1235        }
1236      }
1237      if (resizeOptions.lineheight) {
1238        var lineheightAdd = parseInt(resizeOptions.lineheight);
1239        if (isNaN(lineheightAdd)) {
1240          lineheightAdd = 0;
1241        }
1242        el.each(function () {
1243          $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px");
1244        });
1245      }
1246    }
1247  }
1248  var options = $.extend(
1249    {
1250      slice: null,
1251      sliceNext: null,
1252      outer: false,
1253      lineheight: false,
1254      autoslicecount: true,
1255      classNull: false,
1256      minHeight: false,
1257      row: false,
1258      item: false,
1259      typeResize: false,
1260      typeValue: false,
1261      fixWidth: 0,
1262      resize: true,
1263      mobile: false,
1264      customSlice: false,
1265      breakpoint: {},
1266      classes: [],
1267    },
1268    options
1269  );
1270
1271  var el = $(this);
1272
1273  ignoreResize.push(true);
1274  _slice(el);
1275  ignoreResize.pop();
1276
1277  if (options.resize) {
1278    BX.addCustomEvent("onWindowResize", function (eventdata) {
1279      try {
1280        ignoreResize.push(true);
1281        _slice(el);
1282      } catch (e) {
1283      } finally {
1284        ignoreResize.pop();
1285      }
1286    });
1287  } else {
1288    if (!ignoreResize.length) {
1289      // ignoreResize.push(true);
1290      _slice(el);
1291      // ignoreResize.pop();
1292    }
1293  }
1294};
1295
1296$.fn.sliceHeightNoResize = function (options) {
1297  function _slice(el) {
1298    el.each(function () {
1299      $(this).css("line-height", "");
1300      $(this).css("height", "");
1301    });
1302    if (options.mobile == true) {
1303      if (window.matchMedia("(max-width: 550px)").matches) return;
1304    }
1305    if (typeof options.autoslicecount == "undefined" || options.autoslicecount !== false) {
1306      var elsw =
1307          typeof options.row !== "undefined" && options.row.length
1308            ? el.first().parents(options.row).getFloatWidth()
1309            : el.first().parents(".items").getFloatWidth(),
1310        elw =
1311          typeof options.item !== "undefined" && options.item.length
1312            ? $(options.item).first().getFloatWidth()
1313            : el.first().hasClass("item")
1314            ? el.first().getFloatWidth()
1315            : el.first().parents(".item").getFloatWidth();
1316
1317      if (!elsw) {
1318        elsw = el.first().parents(".row").getFloatWidth();
1319      }
1320      if (elw && options.fixWidth) elw -= options.fixWidth;
1321
1322      if (elsw && elw) {
1323        options.slice = Math.floor(elsw / elw);
1324      }
1325    }
1326    if (options.customSlice) {
1327      //manual slice count
1328      var arBreakpoints = Object.keys(options.breakpoint),
1329        bSliceNext = false;
1330      if (arBreakpoints.length) {
1331        elw =
1332          typeof options.item !== "undefined" && options.item.length
1333            ? $(options.item).last().getFloatWidth()
1334            : el.last().hasClass("item")
1335            ? el.last().getFloatWidth()
1336            : el.last().parents(".item").getFloatWidth();
1337        if (elw) options.sliceNext = Math.floor(elsw / elw);
1338        for (var key in arBreakpoints) {
1339          if (window.matchMedia(arBreakpoints[key].toString()).matches) {
1340            bSliceNext = true;
1341            options.slice = options.breakpoint[arBreakpoints[key]];
1342          }
1343        }
1344      }
1345    }
1346    if (typeof options.typeResize == "undefined" || options.typeResize == false) {
1347      if (options.slice) {
1348        for (var i = 0; i < el.length; i += options.slice) {
1349          if (options.customSlice && options.sliceNext && bSliceNext && i)
1350            //manual slice count
1351            options.slice = options.sliceNext;
1352          $(el.slice(i, i + options.slice)).equalizeHeights(
1353            options.outer,
1354            options.classNull,
1355            options.minHeight,
1356            options.typeResize,
1357            options.typeValue
1358          );
1359        }
1360      }
1361      if (options.lineheight) {
1362        var lineheightAdd = parseInt(options.lineheight);
1363        if (isNaN(lineheightAdd)) {
1364          lineheightAdd = 0;
1365        }
1366        el.each(function () {
1367          $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px");
1368        });
1369      }
1370    }
1371  }
1372  var options = $.extend(
1373    {
1374      slice: null,
1375      sliceNext: null,
1376      outer: false,
1377      lineheight: false,
1378      autoslicecount: true,
1379      classNull: false,
1380      minHeight: false,
1381      row: false,
1382      item: false,
1383      typeResize: false,
1384      typeValue: false,
1385      fixWidth: 0,
1386      resize: true,
1387      mobile: false,
1388      customSlice: false,
1389      breakpoint: {},
1390    },
1391    options
1392  );
1393
1394  var el = $(this);
1395
1396  ignoreResize.push(true);
1397  _slice(el);
1398  ignoreResize.pop();
1399};
1400
1401if (!funcDefined("initHoverBlock")) {
1402  function initHoverBlock(target) {}
1403}
1404if (!funcDefined("setStatusButton")) {
1405  function setStatusButton() {
1406    if (!funcDefined("setItemButtonStatus")) {
1407      setItemButtonStatus = function (data) {
1408        if (data.BASKET) {
1409          for (var i in data.BASKET) {
1410            var id = data.BASKET[i];
1411            if (typeof id === "number" || typeof id === "string") {
1412              $(".to-cart[data-item=" + id + "]").hide();
1413              $(".counter_block[data-item=" + id + "]")
1414                .closest(".counter_block_inner")
1415                .hide();
1416              $(".counter_block[data-item=" + id + "]").hide();
1417              $(".in-cart[data-item=" + id + "]").show();
1418              $(".in-cart[data-item=" + id + "]")
1419                .closest(".button_block")
1420                .addClass("wide");
1421            }
1422          }
1423        }
1424        if (data.SUBSCRIBE) {
1425          for (var i in data.SUBSCRIBE) {
1426            var id = data.SUBSCRIBE[i];
1427            if (typeof id === "number" || typeof id === "string") {
1428              $(".to-subscribe[data-item=" + id + "]").hide();
1429              $(".in-subscribe[data-item=" + id + "]").show();
1430            }
1431          }
1432        }
1433
1434        BX.onCustomEvent("onSetItemButtonStatus", []);
1435      };
1436    }
1437    if (!Object.keys(arStatusBasketAspro).length) {
1438      if (typeof arAsproOptions === "undefined") {
1439        var arAsproOptions = {
1440          SITE_DIR: "/",
1441        };
1442        if ($("body").data("site") !== undefined) arAsproOptions["SITE_DIR"] = $("body").data("site");
1443      }
1444      $.ajax({
1445        url: arAsproOptions["SITE_DIR"] + "ajax/getAjaxBasket.php",
1446        type: "POST",
1447        success: function (data) {
1448          arStatusBasketAspro = data;
1449          setItemButtonStatus(arStatusBasketAspro);
1450        },
1451      });
1452    } else setItemButtonStatus(arStatusBasketAspro);
1453  }
1454}
1455
1456if (!funcDefined("onLoadjqm")) {
1457  var onLoadjqm = function (name, hash, requestData, selector, requestTitle, isButton, thButton) {
1458    hash.w.attr("data-jqm-loaded", "1");
1459
1460    if (hash.c.noOverlay === undefined || (hash.c.noOverlay !== undefined && !hash.c.noOverlay)) {
1461      $("body").addClass("jqm-initied");
1462    }
1463    if (window.matchMedia("(min-width: 768px)").matches) {
1464      $("body").addClass("swipeignore");
1465    }
1466
1467    //show password eye
1468    if (hash.w.hasClass("auth_frame")) {
1469      hash.w.find(".form-control:not(.eye-password-ignore) [type=password]").each(function (item) {
1470        $(this).closest(".form-control").addClass("eye-password");
1471      });
1472    }
1473
1474    $.each($(hash.t).get(0).attributes, function (index, attr) {
1475      if (/^data\-autoload\-(.+)$/.test(attr.nodeName)) {
1476        var key = attr.nodeName.match(/^data\-autoload\-(.+)$/)[1];
1477        var el = $('input[data-sid="' + key.toUpperCase() + '"]');
1478        var value = $(hash.t).data("autoload-" + key);
1479        value = String(value).replace(/%99/g, "\\"); // replace symbol \
1480        el.val(BX.util.htmlspecialcharsback(value)).attr("readonly", "readonly");
1481        el.closest(".form-group").addClass("input-filed");
1482        el.attr("title", el.val());
1483      }
1484    });
1485
1486    //show gift block
1487    if (hash.w.hasClass("send_gift_frame")) {
1488      var imgHtml = (priceHtml = propsHtml = "");
1489      if ($(".offers_img a").length) imgHtml = $(".offers_img a").html();
1490      else if ($(".product-detail-gallery__container .first_sku_picture").length)
1491        imgHtml = "<img src=" + $(".product-detail-gallery__container link.first_sku_picture").attr("href") + " />";
1492      else if ($(".product-detail-gallery__container").length)
1493        imgHtml = "<img src=" + $('.product-detail-gallery__container link[itemprop="image"]').attr("href") + " />";
1494
1495      if ($('.product-container *[itemprop="offers"]').length) {
1496        //show price
1497        if ($(".sku-view").length) {
1498          if ($(".prices_block .price").length)
1499            priceHtml = $(".prices_block .cost.prices").html().replace("id", "data-id");
1500        } else {
1501          var mainContainer = $(hash.t).closest(".product-main");
1502          if (mainContainer.find(".prices_block .js_price_wrapper").length) {
1503            if (mainContainer.find(".prices_block .js_price_wrapper .with_matrix").length) {
1504              priceHtml =
1505                '<div class="with_matrix">' +
1506                mainContainer.find(".prices_block .js_price_wrapper .with_matrix").html() +
1507                "</div>";
1508            } else if (mainContainer.find(".prices_block .with_matrix:visible").length) {
1509              priceHtml =
1510                '<div class="with_matrix">' + mainContainer.find(".prices_block .with_matrix").html() + "</div>";
1511            } else if (mainContainer.find(".prices_block .price_group.min").length) {
1512              priceHtml =
1513                '<div class="with_matrix">' + mainContainer.find(".prices_block .price_group.min").html() + "</div>";
1514            } else {
1515              priceHtml =
1516                '<div class="with_matrix">' + mainContainer.find(".prices_block .js_price_wrapper").html() + "</div>";
1517            }
1518          } else if (mainContainer.find(".prices_block .with_matrix").length)
1519            priceHtml =
1520              '<div class="with_matrix">' + mainContainer.find(".prices_block .with_matrix").html() + "</div>";
1521          else if (mainContainer.find(".prices_block .price_group.min").length)
1522            priceHtml = mainContainer.find(".prices_block .price_group.min").html();
1523          else if (mainContainer.find(".prices_block .price_matrix_wrapper").length)
1524            priceHtml = mainContainer.find(".prices_block .price_matrix_wrapper").html();
1525        }
1526      }
1527
1528      if ($(".buy_block .sku_props").length) {
1529        propsHtml = '<div class="props_item">';
1530        $(".buy_block .sku_props .bx_catalog_item_scu > div").each(function () {
1531          var title = $(this).find(".bx_item_section_name > span").html();
1532          var props = "";
1533          var ikSelect = $(this).find(".ik_select_link_text");
1534          if (ikSelect.length) {
1535            props = ikSelect.text();
1536          } else {
1537            var activeSku = $(this).find("ul li.active");
1538            var isPicture = activeSku.find(" > i");
1539            if (isPicture.length && isPicture.attr("title")) {
1540              var propTitle = isPicture.attr("title").split(":");
1541              if (propTitle.length) {
1542                propTitle = propTitle[1].trim();
1543              } else {
1544                propTitle = isPicture.attr("title");
1545              }
1546              props = propTitle;
1547            } else {
1548              props = activeSku.find(" > span").text();
1549            }
1550          }
1551
1552          propsHtml +=
1553            '<div class="prop_item">' +
1554            "<span>" +
1555            title +
1556            // '<span class="val">' +
1557            // props +
1558            // "</span>" +
1559            "</span>" +
1560            "</div>";
1561        });
1562        propsHtml += "</div>";
1563      }
1564      $(
1565        '<div class="custom_block">' +
1566          '<div class="title">' +
1567          BX.message("POPUP_GIFT_TEXT") +
1568          "</div>" +
1569          '<div class="item_block">' +
1570          '<table class="item_list"><tr>' +
1571          '<td class="image">' +
1572          "<div>" +
1573          imgHtml +
1574          "</div>" +
1575          "</td>" +
1576          '<td class="text">' +
1577          '<div class="name">' +
1578          $("h1").text() +
1579          "</div>" +
1580          priceHtml +
1581          propsHtml +
1582          "</td>" +
1583          "</tr></table>" +
1584          "</div>" +
1585          "</div>"
1586      ).prependTo(hash.w.find(".form_body"));
1587    }
1588
1589    if (
1590      arAsproOptions["THEME"]["REGIONALITY_SEARCH_ROW"] == "Y" &&
1591      (hash.w.hasClass("city_chooser_frame") || hash.w.hasClass("city_chooser_small_frame"))
1592    ) {
1593      hash.w.addClass("small_popup_regions");
1594      hash.w.addClass("no_scroll");
1595    }
1596
1597    if (name == "fast_view" && $(".smart-filter-filter").length) {
1598      var navButtons =
1599        '<div class="navigation-wrapper-fast-view">' +
1600        '<div class="fast-view-nav prev colored_theme_hover_bg" data-fast-nav="prev">' +
1601        '<i class="svg left">' +
1602        '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.969" viewBox="0 0 12 6.969"><path id="Rounded_Rectangle_702_copy_24" data-name="Rounded Rectangle 702 copy 24" class="cls-1" d="M361.691,401.707a1,1,0,0,1-1.414,0L356,397.416l-4.306,4.291a1,1,0,0,1-1.414,0,0.991,0.991,0,0,1,0-1.406l5.016-5a1.006,1.006,0,0,1,1.415,0l4.984,5A0.989,0.989,0,0,1,361.691,401.707Z" transform="translate(-350 -395.031)"/></svg>' +
1603        "</i>" +
1604        "</div>" +
1605        '<div class="fast-view-nav next colored_theme_hover_bg" data-fast-nav="next">' +
1606        '<i class="svg right">' +
1607        '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.969" viewBox="0 0 12 6.969"><path id="Rounded_Rectangle_702_copy_24" data-name="Rounded Rectangle 702 copy 24" class="cls-1" d="M361.691,401.707a1,1,0,0,1-1.414,0L356,397.416l-4.306,4.291a1,1,0,0,1-1.414,0,0.991,0.991,0,0,1,0-1.406l5.016-5a1.006,1.006,0,0,1,1.415,0l4.984,5A0.989,0.989,0,0,1,361.691,401.707Z" transform="translate(-350 -395.031)"/></svg>' +
1608        "</i>" +
1609        "</div>" +
1610        "</div>";
1611
1612      hash.w.closest("#popup_iframe_wrapper").append(navButtons);
1613    }
1614
1615    hash.w.addClass("scrollblock");
1616    hash.w.addClass("show").css({
1617      // 'top': (($(window).height() > hash.w.height()) ? Math.floor(($(window).height() - hash.w.height()) / 2) : 0) + 'px',
1618      // 'margin-left': ($(window).width() > hash.w.outerWidth() ? '-' + hash.w.outerWidth() / 2 + 'px' : '-' + $(window).width() / 2 + 'px'),
1619      opacity: 1,
1620    });
1621
1622    if (hash.c.noOverlay === undefined || (hash.c.noOverlay !== undefined && !hash.c.noOverlay)) {
1623      let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth + "px";
1624      $("body").css({
1625        "padding-right": scrollbarWidth,
1626        overflow: "hidden",
1627        height: "100vh",
1628      });
1629      hash.w.closest("#popup_iframe_wrapper").css({ "z-index": 3000, display: "flex" });
1630    }
1631
1632    if (hash.c.noOverlay !== undefined && hash.c.noOverlay) {
1633      hash.w.closest("#body_iframe_wrapper").css({ "z-index": 2999, display: "flex" });
1634    }
1635
1636    var eventdata = { action: "loadForm" };
1637    let _this = $(hash.t)[0];
1638    if (thButton) {
1639      _this = thButton;
1640    }
1641    BX.onCustomEvent("onCompleteAction", [eventdata, _this]);
1642
1643    if (typeof requestData == "undefined") {
1644      requestData = "";
1645    }
1646    if (typeof selector == "undefined") {
1647      selector = false;
1648    }
1649
1650    // var width = $("." + name + "_frame").width();
1651    //$('.'+name+'_frame').css('margin-left', '-'+width/2+'px');
1652
1653    if (name == "order-popup-call") {
1654    } else if (name == "order-button") {
1655      $(".order-button_frame")
1656        .find("div[product_name]")
1657        .find("input")
1658        .val(hash.t.title)
1659        .attr("readonly", "readonly")
1660        .css({ overflow: "hidden", "text-overflow": "ellipsis" });
1661    } else if (name == "basket_error") {
1662      $(".basket_error_frame .pop-up-title").text(requestTitle);
1663      $(".basket_error_frame .ajax_text").html(requestData);
1664
1665      if (window.matchMedia("(max-width: 991px)").matches) {
1666        $("body").addClass("all_viewed");
1667      }
1668
1669      initSelects(document);
1670      if (isButton == "Y" && thButton)
1671        $(
1672          "<div class='popup_button_basket_wr'><span class='popup_button_basket big_btn button' data-item=" +
1673            thButton.data("item") +
1674            "><span class='btn btn-default'>" +
1675            BX.message("ERROR_BASKET_BUTTON") +
1676            "</span></span></div>"
1677        ).insertAfter($(".basket_error_frame .ajax_text"));
1678    } else if (name === "fast_view") {
1679      initSelects(document);
1680    }
1681
1682    $("." + name + "_frame").show();
1683  };
1684}
1685
1686if (!funcDefined("onHidejqm")) {
1687  var onHidejqm = function (name, hash) {
1688    if (hash.w.find(".one_click_buy_result_success").is(":visible") && name == "one_click_buy_basket") {
1689      window.location.href = window.location.href;
1690    }
1691
1692    if ($(".xzoom-source").length) $(".xzoom-source").remove();
1693    if ($(".xzoom-preview").length) $(".xzoom-preview").remove();
1694
1695    // hash.w.css('opacity', 0).hide();
1696    hash.w.animate({ opacity: 0 }, 200, function () {
1697      hash.w.hide();
1698      hash.w.empty();
1699      hash.o.remove();
1700      hash.w.removeClass("show");
1701
1702      if (!hash.w.closest("#popup_iframe_wrapper").find(".jqmOverlay").length) {
1703        $("body").css({
1704          "padding-right": "",
1705          overflow: "",
1706          height: "",
1707        });
1708        hash.w.closest("#popup_iframe_wrapper").css({ "z-index": "", display: "" });
1709      }
1710
1711      if (!hash.w.closest("#body_iframe_wrapper").find(".jqmWindow.show").length) {
1712        hash.w.closest("#body_iframe_wrapper").css({ "z-index": "", display: "" });
1713      }
1714
1715      if (window.matchMedia("(max-width: 991px)").matches) {
1716        $("body").removeClass("all_viewed");
1717      }
1718      if (!$(".jqmOverlay:not(.mobp)").length || $(".jqmOverlay.waiting").length) {
1719        $("body").removeClass("jqm-initied");
1720      }
1721
1722      if (window.matchMedia("(min-width: 768px)").matches) {
1723        $("body").removeClass("swipeignore");
1724      }
1725
1726      if (name == "fast_view") {
1727        $(".fast_view_popup").remove();
1728
1729        var navButtons = hash.w.closest("#popup_iframe_wrapper").find(".navigation-wrapper-fast-view");
1730        navButtons.remove();
1731      }
1732    });
1733
1734    // window.b24form = false;
1735
1736    // hide bx calc
1737    let items = document.querySelectorAll('[id^=calendar_popup]');
1738    if (items) {
1739      items.forEach((item) => {
1740        item.closest(".popup-window").style.display = "none";
1741      });
1742    }
1743  };
1744}
1745
1746$.fn.jqmEx = function () {
1747  // $(this).each(function(){
1748  var _this = $(this);
1749  var name = _this.data("name");
1750
1751  if (name.length && _this.attr("disabled") != "disabled") {
1752    var extClass = "",
1753      paramsStr = "",
1754      trigger = _this;
1755
1756    // call counter
1757    if (typeof $.fn.jqmEx.counter === "undefined") {
1758      $.fn.jqmEx.counter = 0;
1759    } else {
1760      ++$.fn.jqmEx.counter;
1761    }
1762
1763    // trigger attrs and params
1764    $.each(_this.get(0).attributes, function (index, attr) {
1765      var attrName = attr.nodeName;
1766      var attrValue = _this.attr(attrName);
1767
1768      if (/^data\-param\-(.+)$/.test(attrName)) {
1769        var key = attrName.match(/^data\-param\-(.+)$/)[1];
1770        if (key === "href") {
1771          paramsStr += key + "=" + encodeURIComponent(location.href.replace(location.origin, "")) + "&";
1772        } else {
1773          paramsStr += key + "=" + attrValue.replace(/ /g, "+") + "&";
1774        }
1775      }
1776    });
1777
1778    // popup url
1779    var script = arAsproOptions["SITE_DIR"] + "ajax/form.php";
1780    if (name == "auth") {
1781      script += "?" + paramsStr + "auth=Y";
1782    } else {
1783      script += "?" + paramsStr;
1784    }
1785
1786    // ext frame class
1787    if (_this.closest("#fast_view_item").length) {
1788      extClass = "fast_view_popup";
1789    }
1790
1791    // use overlay?
1792    var noOverlay = _this.data("noOverlay") == "Y";
1793
1794    // unique frame to each trigger
1795    if (noOverlay) {
1796      var frame = $(
1797        '<div class="' +
1798          name +
1799          "_frame " +
1800          extClass +
1801          ' jqmWindow popup" data-popup="' +
1802          $.fn.jqmEx.counter +
1803          '"></div>'
1804      ).appendTo("#body_iframe_wrapper");
1805    } else {
1806      var frame = $(
1807        '<div class="' +
1808          name +
1809          "_frame " +
1810          extClass +
1811          ' jqmWindow popup" data-popup="' +
1812          $.fn.jqmEx.counter +
1813          '"></div>'
1814      ).appendTo("#popup_iframe_wrapper");
1815    }
1816
1817    let overlayClass = "jqmOverlay";
1818    if (_this.data("jqm-overlay-class")) {
1819      overlayClass += " " + _this.data("jqm-overlay-class");
1820    }
1821
1822    loadJQM(() => {
1823      if (frame.attr("data-jqm-loaded") === "1") {
1824        return;
1825      }
1826      frame.jqm({
1827        ajax: script,
1828        trigger: trigger,
1829        noOverlay: noOverlay,
1830        overlayClass: overlayClass,
1831        onLoad: function (hash) {
1832          onLoadjqm(name, hash);
1833        },
1834        onHide: function (hash) {
1835          if (hash.w.hasClass("jqm-lock-close")) {
1836            return false;
1837          }
1838          onHidejqm(name, hash);
1839        },
1840      });
1841      _this.trigger("click");
1842    });
1843  }
1844  // });
1845};
1846
1847window.addEventListener("keydown", function (e) {
1848  if (e.keyCode == 27) {
1849
1850    if ($(".main-user-consent-request-popup:visible").length) {
1851      BX.onCustomEvent("onUserConsentHide");
1852      return;
1853  }
1854
1855    let jqmPopup = $(".jqm-init.show").last();
1856    if (!jqmPopup.hasClass("jqm-lock-close")) {
1857      jqmPopup?.jqmHide?.();
1858    }
1859
1860    // hide fixed search panel with overlay
1861    if ($(".inline-search-block.show").length) {
1862      $(".inline-search-block").toggleClass("show");
1863      $(".jqmOverlay.search").detach();
1864    }
1865
1866    // hide already visible search results
1867    $(".title-search-result").hide();
1868
1869    // unfocus title.search input
1870    $(".search .search-input").trigger("blur");
1871
1872    $(".mega_fixed_menu").fadeOut(animationTime);
1873  }
1874});
1875
1876if (!funcDefined("scroll_block")) {
1877  function scroll_block(block, clickedItem) {
1878    if (block.length) {
1879      if (clickedItem !== undefined && clickedItem.length) {
1880        clickedItem.trigger("click");
1881      } else {
1882        $(".prices_tab").addClass("active").siblings().removeClass("active");
1883        if ($(".prices_tab .opener").length && !$(".prices_tab .opener .opened").length) {
1884          let item = $(".prices_tab .opener").first();
1885          item.find(".opener_icon").addClass("opened");
1886          item.parents("tr").addClass("nb");
1887          item.parents("tr").next(".offer_stores").find(".stores_block_wrap").slideDown(200);
1888        }
1889      }
1890      let topPos = block.offset().top,
1891        headerOffsetTop = $("#headerfixed").lenght ? $("#headerfixed").outerHeight(true, true) : 0;
1892
1893      let $tabFixed = document.querySelector(".product-item-detail-tabs-container-fixed");
1894      if ($tabFixed) {
1895        topPos -= $tabFixed.offsetHeight;
1896      }
1897      $("html,body").animate({ scrollTop: topPos - headerOffsetTop }, 150);
1898    }
1899  }
1900}
1901
1902if (!funcDefined("jqmEd")) {
1903  var jqmEd = function (name, form_id, open_trigger, requestData, selector, requestTitle, isButton, thButton) {
1904    if (typeof requestData == "undefined") {
1905      requestData = "";
1906    }
1907    if (typeof selector == "undefined") {
1908      selector = false;
1909    }
1910    $("body #popup_iframe_wrapper")
1911      .find("." + name + "_frame")
1912      .remove();
1913    $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame jqmWindow popup"></div>');
1914
1915    loadJQM(() => {
1916      if (typeof open_trigger == "undefined") {
1917        $("." + name + "_frame").jqm({
1918          trigger: "." + name + "_frame.popup",
1919          onHide: function (hash) {
1920            onHidejqm(name, hash);
1921          },
1922          onLoad: function (hash) {
1923            onLoadjqm(name, hash, requestData, selector);
1924          },
1925          ajax:
1926            arAsproOptions["SITE_DIR"] +
1927            "ajax/form.php?form_id=" +
1928            form_id +
1929            (requestData.length ? "&" + requestData : ""),
1930        });
1931      } else {
1932        if (name == "enter") {
1933          $("." + name + "_frame").jqm({
1934            trigger: open_trigger,
1935            onHide: function (hash) {
1936              onHidejqm(name, hash);
1937            },
1938            onLoad: function (hash) {
1939              onLoadjqm(name, hash, requestData, selector);
1940            },
1941            ajax: arAsproOptions["SITE_DIR"] + "ajax/auth.php",
1942          });
1943        } else if (name == "basket_error") {
1944          $("." + name + "_frame").jqm({
1945            trigger: open_trigger,
1946            onHide: function (hash) {
1947              onHidejqm(name, hash);
1948            },
1949            onLoad: function (hash) {
1950              onLoadjqm(name, hash, requestData, selector, requestTitle, isButton, thButton);
1951            },
1952            ajax: arAsproOptions["SITE_DIR"] + "ajax/basket_error.php",
1953          });
1954        } else {
1955          $("." + name + "_frame").jqm({
1956            trigger: open_trigger,
1957            onHide: function (hash) {
1958              onHidejqm(name, hash);
1959            },
1960            onLoad: function (hash) {
1961              onLoadjqm(name, hash, requestData, selector);
1962            },
1963            ajax:
1964              arAsproOptions["SITE_DIR"] +
1965              "ajax/form.php?form_id=" +
1966              form_id +
1967              (requestData.length ? "&" + requestData : ""),
1968          });
1969        }
1970        $(open_trigger).dblclick(function () {
1971          return false;
1972        });
1973      }
1974
1975      $(open_trigger).click();
1976      $(open_trigger).remove();
1977    });
1978    return true;
1979  };
1980}
1981
1982if (!funcDefined("replaceBasketPopup")) {
1983  function replaceBasketPopup(hash) {
1984    if (typeof hash != "undefined") {
1985      hash.w.hide();
1986      hash.o.hide();
1987    }
1988  }
1989}
1990
1991if (!funcDefined("waitLayer")) {
1992  function waitLayer(delay, callback) {
1993    if (typeof dataLayer !== "undefined" && typeof callback === "function") {
1994      callback();
1995    } else {
1996      setTimeout(function () {
1997        waitLayer(delay, callback);
1998      }, delay);
1999    }
2000  }
2001}
2002
2003if (!funcDefined("checkCounters")) {
2004  function checkCounters(name) {
2005    if (typeof name !== "undefined") {
2006      if (
2007        name == "google" &&
2008        arAsproOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" &&
2009        arAsproOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0
2010      ) {
2011        return true;
2012      } else if (
2013        name == "yandex" &&
2014        arAsproOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" &&
2015        arAsproOptions["COUNTERS"]["YANDEX_COUNTER"] > 0
2016      ) {
2017        return true;
2018      } else {
2019        return false;
2020      }
2021    } else if (
2022      (arAsproOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" && arAsproOptions["COUNTERS"]["YANDEX_COUNTER"] > 0) ||
2023      (arAsproOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" && arAsproOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0)
2024    ) {
2025      return true;
2026    } else {
2027      return false;
2028    }
2029  }
2030}
2031
2032if (!funcDefined("addBasketCounter")) {
2033  function addBasketCounter(id) {
2034    if (arAsproOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
2035      var eventdata = { goal: "goal_basket_add", params: { id: id } };
2036      BX.onCustomEvent("onCounterGoals", [eventdata]);
2037    }
2038    if (checkCounters()) {
2039      $.ajax({
2040        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2041        dataType: "json",
2042        type: "POST",
2043        data: { ID: id },
2044        success: function (item) {
2045          if (!!item && !!item.ID) {
2046            let ecommerce = {
2047              items: [
2048                {
2049                  item_name: item.NAME, // Name or ID is required.
2050                  item_id: item.ID,
2051                  price: parseFloat(item.PRICE),
2052                  item_brand: item.BRAND,
2053                  item_category: item.CATEGORY,
2054                  item_list_name: "List Results",
2055                  item_list_id: item.IBLOCK_SECTION_ID,
2056                  affiliation: item.SHOP_NAME,
2057                  index: 1,
2058                  quantity: parseFloat(item.QUANTITY),
2059                },
2060              ],
2061            };
2062            if (arAsproOptions["COUNTERS"]["GA_VERSION"] === "v3") {
2063              ecommerce = {
2064                currencyCode: item.CURRENCY,
2065                add: {
2066                  products: [
2067                    {
2068                      id: item.ID,
2069                      name: item.NAME,
2070                      price: parseFloat(item.PRICE),
2071                      brand: item.BRAND,
2072                      category: item.CATEGORY,
2073                      quantity: parseFloat(item.QUANTITY),
2074                    },
2075                  ],
2076                },
2077              };
2078            }
2079            waitLayer(100, function () {
2080              dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
2081              dataLayer.push({
2082                // event: 'add_to_cart',
2083                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["ADD2BASKET"],
2084                currency: item.CURRENCY,
2085                value: parseFloat(item.PRICE),
2086                ecommerce: ecommerce,
2087              });
2088            });
2089          }
2090        },
2091      });
2092    }
2093  }
2094}
2095
2096if (!funcDefined("purchaseCounter")) {
2097  function purchaseCounter(order_id, type, callback) {
2098    if (checkCounters()) {
2099      $.ajax({
2100        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2101        dataType: "json",
2102        type: "POST",
2103        data: { ORDER_ID: order_id, TYPE: type },
2104        success: function (order) {
2105          var products = [];
2106          const items = [];
2107          if (order.ITEMS) {
2108            for (var i in order.ITEMS) {
2109              products.push({
2110                id: order.ITEMS[i].ID,
2111                sku: order.ITEMS[i].ID,
2112                name: order.ITEMS[i].NAME,
2113                price: order.ITEMS[i].PRICE,
2114                brand: order.ITEMS[i].BRAND,
2115                category: order.ITEMS[i].CATEGORY,
2116                quantity: order.ITEMS[i].QUANTITY,
2117              });
2118              items.push({
2119                item_id: order.ITEMS[i].ID,
2120                item_name: order.ITEMS[i].NAME,
2121                price: parseFloat(order.ITEMS[i].PRICE),
2122                item_brand: order.ITEMS[i].BRAND,
2123                item_category: order.ITEMS[i].CATEGORY,
2124                affiliation: order.SHOP_NAME,
2125                quantity: parseFloat(order.ITEMS[i].QUANTITY),
2126              });
2127            }
2128          }
2129          if (order.ID) {
2130            let ecommerce = {
2131              transaction_id: order.ACCOUNT_NUMBER,
2132              affiliation: order.SHOP_NAME,
2133              value: order.PRICE,
2134              tax: order.TAX_VALUE,
2135              shipping: order.PRICE_DELIVERY,
2136              currency: order.CURRENCY,
2137              items: items,
2138            };
2139            if (arAsproOptions["COUNTERS"]["GA_VERSION"] === "v3") {
2140              ecommerce = {
2141                purchase: {
2142                  actionField: {
2143                    id: order.ACCOUNT_NUMBER,
2144                    shipping: order.PRICE_DELIVERY,
2145                    tax: order.TAX_VALUE,
2146                    list: type,
2147                    revenue: order.PRICE,
2148                  },
2149                  products: products,
2150                },
2151              };
2152            }
2153            waitLayer(100, function () {
2154              dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
2155              dataLayer.push({
2156                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"],
2157                ecommerce: ecommerce,
2158              });
2159
2160              if (typeof callback !== "undefined") {
2161                callback(ecommerce);
2162              }
2163            });
2164          } else {
2165            if (typeof callback !== "undefined") {
2166              callback();
2167            }
2168          }
2169        },
2170        error: function () {
2171          if (typeof callback !== "undefined") {
2172            callback();
2173          }
2174        },
2175      });
2176    }
2177  }
2178}
2179
2180if (!funcDefined("viewItemCounter")) {
2181  function viewItemCounter(id, price_id) {
2182    if (checkCounters()) {
2183      $.ajax({
2184        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2185        dataType: "json",
2186        type: "POST",
2187        data: { PRODUCT_ID: id, PRICE_ID: price_id },
2188        success: function (item) {
2189          if (item.ID) {
2190            let ecommerce = {
2191              items: [
2192                {
2193                  item_name: item.NAME, // Name or ID is required.
2194                  item_id: item.ID,
2195                  price: parseFloat(item.PRICE),
2196                  item_brand: item.BRAND,
2197                  item_category: item.CATEGORY,
2198                  item_list_name: "List Results",
2199                  item_list_id: item.IBLOCK_SECTION_ID,
2200                  affiliation: item.SHOP_NAME,
2201                  index: 1,
2202                  quantity: parseFloat(item.QUANTITY),
2203                },
2204              ],
2205            };
2206            if (arAsproOptions["COUNTERS"]["GA_VERSION"] === "v3") {
2207              ecommerce = {
2208                detail: {
2209                  products: [
2210                    {
2211                      id: item.ID,
2212                      name: item.NAME,
2213                      price: parseFloat(item.PRICE),
2214                      brand: item.BRAND,
2215                      category: item.CATEGORY,
2216                    },
2217                  ],
2218                },
2219              };
2220            }
2221            waitLayer(100, function () {
2222              dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
2223              dataLayer.push({
2224                event: "view_item",
2225                currency: item.CURRENCY,
2226                value: parseFloat(item.PRICE),
2227                ecommerce: ecommerce,
2228              });
2229            });
2230          }
2231        },
2232      });
2233    }
2234  }
2235}
2236
2237if (!funcDefined("checkoutCounter")) {
2238  function checkoutCounter(step, option, callback) {
2239    if (checkCounters("google")) {
2240      $.ajax({
2241        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2242        dataType: "json",
2243        type: "POST",
2244        data: { BASKET: "Y" },
2245        success: function (basket) {
2246          var products = [];
2247          const items = [];
2248          let summ = 0;
2249          let currency = "RUB";
2250          if (basket.ITEMS) {
2251            for (var i in basket.ITEMS) {
2252              products.push({
2253                id: basket.ITEMS[i].ID,
2254                name: basket.ITEMS[i].NAME,
2255                price: basket.ITEMS[i].PRICE,
2256                brand: basket.ITEMS[i].BRAND,
2257                category: basket.ITEMS[i].CATEGORY,
2258                quantity: basket.ITEMS[i].QUANTITY,
2259              });
2260              items.push({
2261                item_id: basket.ITEMS[i].ID,
2262                item_name: basket.ITEMS[i].NAME,
2263                price: parseFloat(basket.ITEMS[i].PRICE),
2264                item_brand: basket.ITEMS[i].BRAND,
2265                item_category: basket.ITEMS[i].CATEGORY,
2266                affiliation: basket.SHOP_NAME,
2267                quantity: parseFloat(basket.ITEMS[i].QUANTITY),
2268              });
2269              summ += basket.ITEMS[i].PRICE;
2270              currency = basket.ITEMS[i].CURRENCY;
2271            }
2272          }
2273          if (products) {
2274            let ecommerce = {
2275              items: items,
2276            };
2277            if (arAsproOptions["COUNTERS"]["GA_VERSION"] === "v3") {
2278              ecommerce = {
2279                checkout: {
2280                  actionField: {
2281                    step: step,
2282                    option: option,
2283                  },
2284                  products: products,
2285                },
2286              };
2287            }
2288            waitLayer(100, function () {
2289              dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
2290              dataLayer.push({
2291                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["CHECKOUT_ORDER"],
2292                currency: currency,
2293                value: parseFloat(summ),
2294                ecommerce: ecommerce,
2295              });
2296              if (typeof callback !== "undefined" && typeof callback === "function") {
2297                callback();
2298              }
2299            });
2300          }
2301        },
2302      });
2303    }
2304  }
2305}
2306
2307if (!funcDefined("delFromBasketCounter")) {
2308  function delFromBasketCounter(id, callback) {
2309    if (checkCounters()) {
2310      $.ajax({
2311        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2312        dataType: "json",
2313        type: "POST",
2314        data: { ID: id },
2315        success: function (item) {
2316          if (item.ID) {
2317            let ecommerce = {
2318              items: [
2319                {
2320                  item_name: item.NAME, // Name or ID is required.
2321                  item_id: item.ID,
2322                  price: parseFloat(item.PRICE),
2323                  item_brand: item.BRAND,
2324                  item_category: item.CATEGORY,
2325                  affiliation: item.SHOP_NAME,
2326                  item_list_name: "List Results",
2327                },
2328              ],
2329            };
2330            if (arAsproOptions["COUNTERS"]["GA_VERSION"] === "v3") {
2331              ecommerce = {
2332                remove: {
2333                  products: [
2334                    {
2335                      id: item.ID,
2336                      name: item.NAME,
2337                      category: item.CATEGORY,
2338                      quantity: parseFloat(item.QUANTITY),
2339                    },
2340                  ],
2341                },
2342              };
2343            }
2344            waitLayer(100, function () {
2345              dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.
2346              dataLayer.push({
2347                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["REMOVE_BASKET"],
2348                currency: item.CURRENCY,
2349                value: parseFloat(item.PRICE),
2350                ecommerce: ecommerce,
2351              });
2352              if (typeof callback == "function") {
2353                callback();
2354              }
2355            });
2356          }
2357        },
2358      });
2359    }
2360  }
2361}
2362
2363if (!funcDefined("setHeightCompany")) {
2364  function setHeightCompany() {
2365    $(".md-50.img").height($(".md-50.big").outerHeight() - 35);
2366  }
2367}
2368
2369if (!funcDefined("initSly")) {
2370  function initSly() {}
2371}
2372
2373if (!funcDefined("createTableCompare")) {
2374  function createTableCompare(originalTable, appendDiv, cloneTable) {
2375    try {
2376      var clone = originalTable.clone().removeAttr("id").addClass("clone");
2377      if (cloneTable.length) {
2378        cloneTable.remove();
2379        appendDiv.html("");
2380        appendDiv.html(clone);
2381      } else {
2382        appendDiv.append(clone);
2383      }
2384    } catch (e) {
2385    } finally {
2386    }
2387  }
2388}
2389
2390if (!funcDefined("fillBasketPropsExt")) {
2391  fillBasketPropsExt = function (that, prop_code, basket_prop_div) {
2392    var i = 0,
2393      propCollection = null,
2394      foundValues = false,
2395      basketParams = {},
2396      obBasketProps = null;
2397
2398    obBasketProps = BX(basket_prop_div);
2399    if (!obBasketProps && that.closest(".item").find(".basket_props_block").length && that.data("offers") !== "Y")
2400      obBasketProps = that.closest(".item").find(".basket_props_block")[0];
2401
2402    if (!!obBasketProps) {
2403      propCollection = obBasketProps.getElementsByTagName("select");
2404      if (!!propCollection && !!propCollection.length) {
2405        for (i = 0; i < propCollection.length; i++) {
2406          if (!propCollection[i].disabled) {
2407            switch (propCollection[i].type.toLowerCase()) {
2408              case "select-one":
2409                basketParams[propCollection[i].name] = propCollection[i].value;
2410                foundValues = true;
2411                break;
2412              default:
2413                break;
2414            }
2415          }
2416        }
2417      }
2418      propCollection = obBasketProps.getElementsByTagName("input");
2419      if (!!propCollection && !!propCollection.length) {
2420        for (i = 0; i 
2420< propCollection.length; i++) {
2421          if (!propCollection[i].disabled) {
2422            switch (propCollection[i].type.toLowerCase()) {
2423              case "hidden":
2424                basketParams[propCollection[i].name] = propCollection[i].value;
2425                foundValues = true;
2426                break;
2427              case "radio":
2428                if (propCollection[i].checked) {
2429                  basketParams[propCollection[i].name] = propCollection[i].value;
2430                  foundValues = true;
2431                }
2432                break;
2433              default:
2434                break;
2435            }
2436          }
2437        }
2438      }
2439    }
2440    if (!foundValues) {
2441      basketParams[prop_code] = [];
2442      basketParams[prop_code][0] = 0;
2443    }
2444    return basketParams;
2445  };
2446}
2447if (!funcDefined("showBasketError")) {
2448  showBasketError = function (mess, title, addButton, th, callback) {
2449    var title_set = title ? title : BX.message("ERROR_BASKET_TITLE"),
2450      isButton = "N",
2451      thButton = "";
2452    if (typeof addButton !== undefined) {
2453      isButton = "Y";
2454    }
2455    if (typeof th !== undefined) {
2456      thButton = th;
2457    }
2458    $("body").append("<span class='add-error-bakset' style='display:none;'></span>");
2459    jqmEd("basket_error", "error-bakset", ".add-error-bakset", mess, this, title_set, isButton, thButton);
2460
2461    if (typeof callback === "function") {
2462      callback();
2463    }
2464  };
2465}
2466
2467CheckTopVisibleMenu = function (that) {
2468  var dropdownMenu = $(".dropdown-menu:visible");
2469  if (that !== undefined) {
2470    dropdownMenu.push(that);
2471  }
2472
2473  if (dropdownMenu.length) {
2474    dropdownMenu.each(function (i, el) {
2475      var dropdownMenuCurrent = $(el);
2476      dropdownMenuCurrent.find("a").css("white-space", "");
2477      dropdownMenuCurrent.css("left", "");
2478      dropdownMenuCurrent.css("right", "");
2479      dropdownMenuCurrent.removeClass("toright");
2480
2481      var dropdownMenuCurrent_left = dropdownMenuCurrent.offset().left;
2482
2483      if (typeof dropdownMenuCurrent_left != "undefined") {
2484        var menu = dropdownMenuCurrent.parents(".mega-menu");
2485        if (!menu.length) menu = dropdownMenuCurrent.closest(".logo-row");
2486        var menu_width = menu.outerWidth();
2487        var menu_left = menu.offset().left;
2488        var menu_right = menu_left + menu_width;
2489        var isToRight = dropdownMenuCurrent.parents(".toright").length > 0;
2490        var parentsdropdownMenuCurrents = dropdownMenuCurrent.parents(".dropdown-menu");
2491        var isHasParentdropdownMenuCurrent = parentsdropdownMenuCurrents.length > 0;
2492        if (isHasParentdropdownMenuCurrent) {
2493          var parentdropdownMenuCurrent_width = parentsdropdownMenuCurrents.first().outerWidth();
2494          var parentdropdownMenuCurrent_left = parentsdropdownMenuCurrents.first().offset().left;
2495          var parentdropdownMenuCurrent_right = parentdropdownMenuCurrent_width + parentdropdownMenuCurrent_left;
2496        }
2497
2498        if (parentdropdownMenuCurrent_right + dropdownMenuCurrent.outerWidth() > menu_right) {
2499          dropdownMenuCurrent.find("a").css("white-space", "normal");
2500        }
2501
2502        var dropdownMenuCurrent_width = dropdownMenuCurrent.outerWidth();
2503        var dropdownMenuCurrent_right = dropdownMenuCurrent_left + dropdownMenuCurrent_width;
2504
2505        if (dropdownMenuCurrent_right > menu_right || isToRight) {
2506          var addleft = 0;
2507          addleft = menu_right - dropdownMenuCurrent_right;
2508          if (isHasParentdropdownMenuCurrent || isToRight) {
2509            dropdownMenuCurrent.css("left", "auto");
2510            dropdownMenuCurrent.css("right", "100%");
2511            dropdownMenuCurrent.addClass("toright");
2512          } else {
2513            var dropdownMenuCurrent_curLeft = parseInt(dropdownMenuCurrent.css("left"));
2514            dropdownMenuCurrent.css("left", dropdownMenuCurrent_curLeft + addleft + "px");
2515          }
2516        }
2517      }
2518    });
2519  }
2520};
2521
2522if (!funcDefined("isRealValue")) {
2523  function isRealValue(obj) {
2524    return obj && obj !== "null" && obj !== "undefined";
2525  }
2526}
2527
2528if (!funcDefined("rightScroll")) {
2529  function rightScroll(prop, id) {
2530    var el = BX("prop_" + prop + "_" + id);
2531    if (el) {
2532      var curVal = parseInt(el.style.marginLeft);
2533      if (curVal >= 0) el.style.marginLeft = curVal - 20 + "%";
2534    }
2535  }
2536}
2537
2538if (!funcDefined("leftScroll")) {
2539  function leftScroll(prop, id) {
2540    var el = BX("prop_" + prop + "_" + id);
2541    if (el) {
2542      var curVal = parseInt(el.style.marginLeft);
2543      if (curVal < 0) el.style.marginLeft = curVal + 20 + "%";
2544    }
2545  }
2546}
2547
2548if (!funcDefined("InitOrderCustom")) {
2549  InitOrderCustom = function () {
2550    $(".ps_logo img").wrap('<div class="image"></div>');
2551
2552    $("#bx-soa-order .radio-inline").each(function () {
2553      if ($(this).find("input").attr("checked") == "checked") {
2554        $(this).addClass("checked");
2555      }
2556    });
2557
2558    $("#bx-soa-order .checkbox input[type=checkbox]").each(function () {
2559      if ($(this).attr("checked") == "checked") $(this).parent().addClass("checked");
2560    });
2561
2562    $("#bx-soa-order .bx-authform-starrequired").each(function () {
2563      var html = $(this).html();
2564      $(this)
2565        .closest("label")
2566        .append('<span class="bx-authform-starrequired"> ' + html + "</span>");
2567      $(this).detach();
2568    });
2569    $(".bx_ordercart_coupon").each(function () {
2570      if ($(this).find(".bad").length) $(this).addClass("bad");
2571      else if ($(this).find(".good").length) $(this).addClass("good");
2572    });
2573  };
2574}
2575
2576if (!funcDefined("InitLabelAnimation")) {
2577  InitLabelAnimation = function (className) {
2578    // Fix order labels
2579    if (!$(className).length) {
2580      return;
2581    }
2582    $(className)
2583      .find(".form-group")
2584      .each(function () {
2585        if (
2586          $(this).find("input[type=text], textarea").length &&
2587          !$(this).find(".dropdown-block").length &&
2588          $(this).find("input[type=text], textarea").val() != ""
2589        ) {
2590          $(this).addClass("value_y");
2591        }
2592      });
2593
2594    $(document).on("click", className + " .form-group:not(.bx-soa-pp-field) label", function () {
2595      $(this).parent().find("input, textarea").focus();
2596    });
2597
2598    $(document).on(
2599      "focusout",
2600      className +
2601        " .form-group:not(.bx-soa-pp-field) input, " +
2602        className +
2603        " .form-group:not(.bx-soa-pp-field) textarea",
2604      function () {
2605        var value = $(this).val();
2606        if (
2607          value != "" &&
2608          !$(this).closest(".form-group").find(".dropdown-block").length &&
2609          !$(this).closest(".form-group").find("#profile_change").length
2610        ) {
2611          $(this).closest(".form-group").addClass("value_y");
2612        } else {
2613          $(this).closest(".form-group").removeClass("value_y");
2614        }
2615      }
2616    );
2617
2618    $(document).on(
2619      "focus",
2620      className +
2621        " .form-group:not(.bx-soa-pp-field) input, " +
2622        className +
2623        " .form-group:not(.bx-soa-pp-field) textarea",
2624      function () {
2625        if (
2626          !$(this).closest(".form-group").find(".dropdown-block").length &&
2627          !$(this).closest(".form-group").find("#profile_change").length &&
2628          !$(this).closest(".form-group").find("[name=PERSON_TYPE_OLD]").length
2629        ) {
2630          $(this).closest(".form-group").addClass("value_y");
2631        }
2632      }
2633    );
2634  };
2635}
2636
2637function loadScrollTabs(selector, callback = () => {}) {
2638  $(selector).iAppear(() => {
2639    BX.loadScript([arAsproOptions["SITE_TEMPLATE_PATH"] + "/js/scrollTabs.js?v=1"], function () {
2640        callback();
2641    });
2642  });
2643}
2644
2645checkCaptchaWidth = function () {
2646  $(".captcha-row").each(function () {
2647    var width = $(this).actual("width");
2648    if ($(this).hasClass("b")) {
2649      if (width > 320) {
2650        $(this).removeClass("b");
2651      }
2652    } else {
2653      if (width <= 320) {
2654        $(this).addClass("b");
2655      }
2656    }
2657  });
2658};
2659
2660checkFormWidth = function () {
2661  $(".form .form_left").each(function () {
2662    var form = $(this).parents(".form");
2663    var width = form.actual("width");
2664    if (form.hasClass("b")) {
2665      if (width > 417) {
2666        form.removeClass("b");
2667      }
2668    } else {
2669      if (width <= 417) {
2670        form.addClass("b");
2671      }
2672    }
2673  });
2674};
2675
2676checkFormControlWidth = function () {
2677  $(".form-control").each(function () {
2678    var width = $(this).actual("width");
2679    var labelWidth = $(this).find("label:not(.error) > span").actual("width");
2680    var errorWidth = $(this).find("label.error").actual("width");
2681    if (errorWidth > 0) {
2682      if ($(this).hasClass("h")) {
2683        if (width > labelWidth + errorWidth + 5) {
2684          $(this).removeClass("h");
2685        }
2686      } else {
2687        if (width <= labelWidth + errorWidth + 5) {
2688          $(this).addClass("h");
2689        }
2690      }
2691    } else {
2692      $(this).removeClass("h");
2693    }
2694  });
2695};
2696
2697scrollToTop = function () {
2698  if (arAsproOptions["THEME"]["SCROLLTOTOP_TYPE"] !== "NONE") {
2699    var _isScrolling = false;
2700    // Append Button
2701    $("body").append(
2702      $("<a />")
2703        .addClass(
2704          "scroll-to-top " +
2705            arAsproOptions["THEME"]["SCROLLTOTOP_TYPE"] +
2706            " " +
2707            arAsproOptions["THEME"]["SCROLLTOTOP_POSITION"]
2708        )
2709        .attr({ href: "#", id: "scrollToTop" })
2710    );
2711
2712    if (arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"]) {
2713      $("#scrollToTop").css("bottom", +arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"] + "px");
2714    }
2715
2716    if (arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_RIGHT"]) {
2717      $("#scrollToTop").css("right", +arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_RIGHT"] + "px");
2718    }
2719
2720    $("#scrollToTop").click(function (e) {
2721      e.preventDefault();
2722      $("body, html").animate({ scrollTop: 0 }, 500);
2723      return false;
2724    });
2725    // Show/Hide Button on Window Scroll event.
2726    $(window).scroll(function () {
2727      if (!_isScrolling) {
2728        _isScrolling = true;
2729        if (documentScrollTopLast > 150) {
2730          $("#scrollToTop").stop(true, true).addClass("visible");
2731          _isScrolling = false;
2732        } else {
2733          $("#scrollToTop").stop(true, true).removeClass("visible");
2734          _isScrolling = false;
2735        }
2736        checkScrollToTop();
2737      }
2738    });
2739  }
2740};
2741
2742checkScrollToTop = function () {
2743  if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"])
2744    var bottom = +arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"];
2745  else var bottom = 55;
2746
2747  var scrollVal = documentScrollTopLast,
2748    windowHeight = document.documentElement.offsetHeight,
2749    footerOffset = 0;
2750  if ($("footer").length) footerOffset = $("footer .footer-inner").offset().top;
2751
2752  if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["SCROLLTOTOP_POSITION"] == "CONTENT") {
2753    warpperWidth = $("body > .wrapper > .wrapper_inner").width();
2754    $("#scrollToTop").css("margin-left", Math.ceil(warpperWidth / 2) + 23);
2755  }
2756
2757  if (scrollVal + windowHeight > footerOffset) {
2758    $("#scrollToTop").css("bottom", Math.round(bottom + scrollVal + windowHeight - footerOffset) + "px");
2759  } else if (parseInt($("#scrollToTop").css("bottom")) > bottom) {
2760    $("#scrollToTop").css("bottom", Math.round(bottom));
2761  }
2762};
2763
2764$(document).on("click", '.front_page .logo-row .logo', function (e) {
2765  e.preventDefault();
2766  $("body, html").stop(true, true).animate({ scrollTop: 0 }, 500);
2767});
2768
2769CheckObjectsSizes = function () {
2770  $(".container iframe,.container object,.container video").each(function () {
2771    var height_attr = $(this).attr("height");
2772    var width_attr = $(this).attr("width");
2773    if (height_attr && width_attr) {
2774      $(this).css("height", ($(this).outerWidth() * height_attr) / width_attr);
2775    }
2776  });
2777};
2778
2779if (!funcDefined("reloadTopBasket")) {
2780  var reloadTopBasket = function reloadTopBasket(action, basketWindow, speed, delay, slideDown, item, sync) {
2781    var obj = {
2782      PARAMS: $("#top_basket_params").val(),
2783      ACTION: action,
2784    };
2785    if (typeof item !== "undefined" && item) {
2786      obj.delete_top_item = "Y";
2787      obj.delete_top_item_id = item.data("id");
2788    }
2789    // $.post( arAsproOptions['SITE_DIR']+"ajax/show_basket_popup.php", obj, $.proxy(function( data ){
2790    $.post(
2791      arAsproOptions["SITE_DIR"] + "ajax/show_basket_actual.php",
2792      obj,
2793      $.proxy(function (data) {
2794        $(basketWindow).html(data);
2795
2796        var eventdata = { action: "loadBasket" };
2797        BX.onCustomEvent("onCompleteAction", [eventdata]);
2798      })
2799    );
2800  };
2801}
2802
2803CheckTabActive = function () {
2804  if (typeof clicked_tab && clicked_tab) {
2805    if (window.matchMedia("(min-width: 768px)").matches) {
2806      clicked_tab--;
2807      $(".nav.nav-tabs li").each(function () {
2808        if ($(this).index() == clicked_tab) $(this).addClass("active");
2809      });
2810      // $('.nav.nav-tabs li:eq('+clicked_tab+')').addClass('active');
2811      $(".catalog_detail .tab-content .tab-pane:eq(" + clicked_tab + ")").addClass("active");
2812      $(".catalog_detail .tab-content .tab-pane .title-tab-heading").next().removeAttr("style");
2813      clicked_tab = 0;
2814    }
2815  }
2816};
2817
2818/* countdown start */
2819if (!funcDefined("initCountdown")) {
2820  var initCountdown = function initCountdown() {
2821    if (typeof $.fn.countdown !== "function") return;
2822    if ($(".view_sale_block").length) {
2823      $(".view_sale_block").each(function () {
2824        var _this = $(this);
2825        if (_this.hasClass("init-if-visible") && !_this.is(":visible")) return;
2826
2827        var activeTo = _this.find(".active_to").text(),
2828          dateTo = new Date(activeTo.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2829        if (_this.hasClass("compact"))
2830          _this.find(".countdown").countdown(
2831            {
2832              until: dateTo,
2833              format: "dHMS",
2834              compact: true,
2835              padZeroes: true,
2836              layout:
2837                '{d<}<span class="days item">{dn}<div class="text">{dl}</div></span>{d>} <span class="hours item">{hn}<div class="text">{hl}</div></span> <span class="minutes item">{mn}<div class="text">{ml}</div></span> <span class="sec item">{sn}<div class="text">{sl}</div></span>',
2838            },
2839            $.countdown.regionalOptions["ru"]
2840          );
2841        else
2842          _this.find(".countdown").countdown(
2843            {
2844              until: dateTo,
2845              format: "dHMS",
2846              padZeroes: true,
2847              layout:
2848                '{d<}<span class="days item">{dnn}<div class="text">{dl}</div></span>{d>} <span class="hours item">{hnn}<div class="text">{hl}</div></span> <span class="minutes item">{mnn}<div class="text">{ml}</div></span> <span class="sec item">{snn}<div class="text">{sl}</div></span>',
2849            },
2850            $.countdown.regionalOptions["ru"]
2851          );
2852      });
2853    }
2854  };
2855}
2856
2857if (!funcDefined("initCountdownTime")) {
2858  var initCountdownTime = function initCountdownTime(block, time) {
2859    if (typeof $.fn.countdown !== "function") return;
2860    if (time) {
2861      var dateTo = new Date(time.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2862      block.find(".countdown").countdown("destroy");
2863      if (block.hasClass("compact"))
2864        block.find(".countdown").countdown(
2865          {
2866            until: dateTo,
2867            format: "dHM",
2868            compact: true,
2869            padZeroes: true,
2870            layout:
2871              '{d<}<span class="days item">{dn}<div class="text">{dl}</div></span>{d>} <span class="hours item">{hn}<div class="text">{hl}</div></span> <span class="minutes item">{mn}<div class="text">{ml}</div></span> <span class="sec item">{sn}<div class="text">{sl}</div></span>',
2872          },
2873          $.countdown.regionalOptions["ru"]
2874        );
2875      else
2876        block.find(".countdown").countdown(
2877          {
2878            until: dateTo,
2879            format: "dHMS",
2880            padZeroes: true,
2881            layout:
2882              '{d<}<span class="days item">{dnn}<div class="text">{dl}</div></span>{d>} <span class="hours item">{hnn}<div class="text">{hl}</div></span> <span class="minutes item">{mnn}<div class="text">{ml}</div></span> <span class="sec item">{snn}<div class="text">{sl}</div></span>',
2883          },
2884          $.countdown.regionalOptions["ru"]
2885        );
2886      block.find(".view_sale_block").show();
2887    } else {
2888      block.find(".view_sale_block").hide();
2889    }
2890  };
2891}
2892/* countdown end */
2893
2894waitCounter = function (idCounter, delay, callback) {
2895  var obCounter = window["yaCounter" + idCounter];
2896  if (typeof obCounter == "object") {
2897    if (typeof callback == "function") callback();
2898  } else {
2899    setTimeout(function () {
2900      waitCounter(idCounter, delay, callback);
2901    }, delay);
2902  }
2903};
2904
2905var isOnceInited = (insertFilter = false);
2906var animationTime = 200;
2907var delayTime = 200;
2908var topMenuEnterTimer = false;
2909var previewMode = window != window.top;
2910var isMobile = window.matchMedia("(max-width:991px)").matches;
2911if (isMobile) document.documentElement.className += " mobile";
2912if (previewMode) document.documentElement.className += " previewMode";
2913
2914if (navigator.userAgent.indexOf("Edge") != -1) document.documentElement.className += " bx-ie-edge";
2915
2916/* filter start */
2917if (!funcDefined("checkVerticalMobileFilter")) {
2918  var checkVerticalMobileFilter = function checkVerticalMobileFilter() {};
2919}
2920/* filter end */
2921
2922// ONE CLICK
2923if (!funcDefined("oneClickBuy")) {
2924  var oneClickBuy = function (elementID, iblockID, that) {
2925    var name = "one_click_buy";
2926    var elementQuantity = 1;
2927    var offerProps = false;
2928    var buy_btn = $(that).closest(".buy_block").find(".to-cart");
2929    var buy_btn2 = $(that).closest("tr").find(".to-cart");
2930    var buy_btn3 = $(that).closest(".item").find(".to-cart");
2931
2932    if (typeof that !== "undefined") {
2933      elementQuantity = $(that).attr("data-quantity");
2934      offerProps = $(that).attr("data-props");
2935    }
2936
2937    if (elementQuantity < 0) {
2938      elementQuantity = 1;
2939    }
2940
2941    var tmp_props = buy_btn.data("props") || buy_btn2.data("props") || buy_btn3.data("props"),
2942      props = "",
2943      part_props = "",
2944      add_props = "N",
2945      fill_prop = {},
2946      iblockid = buy_btn.data("iblockid"),
2947      item = buy_btn.attr("data-item");
2948
2949    if (tmp_props) {
2950      props = tmp_props.split(";");
2951    }
2952    if (buy_btn.data("part_props")) {
2953      part_props = buy_btn.data("part_props");
2954    }
2955    if (buy_btn.data("add_props")) {
2956      add_props = buy_btn.data("add_props");
2957    }
2958
2959    fill_prop = fillBasketPropsExt(buy_btn, "prop", buy_btn.data("bakset_div"));
2960    fill_prop.iblockID = iblockid;
2961    fill_prop.part_props = part_props;
2962    fill_prop.add_props = add_props;
2963    fill_prop.props = JSON.stringify(props);
2964    fill_prop.item = item;
2965    fill_prop.ocb_item = "Y";
2966
2967    // if (!isMobile) {
2968    if (!$(that).hasClass("clicked")) {
2969      $(that).addClass("clicked");
2970      $("body")
2971        .find("." + name + "_frame")
2972        .remove();
2973      $("body")
2974        .find("." + name + "_trigger")
2975        .remove();
2976      $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame popup"></div>');
2977      $("body #popup_iframe_wrapper").append('<div class="' + name + '_trigger"></div>');
2978
2979      loadJQM(() => {
2980        $("." + name + "_frame").jqm({
2981          trigger: "." + name + "_trigger",
2982          onHide: function (hash) {
2983            onHidejqm(name, hash);
2984          },
2985          toTop: false,
2986          onLoad: function (hash) {
2987            onLoadjqm(name, hash, "", false, false, false, that);
2988          },
2989          ajax:
2990            arAsproOptions["SITE_DIR"] +
2991            "ajax/one_click_buy.php?ELEMENT_ID=" +
2992            elementID +
2993            "&IBLOCK_ID=" +
2994            iblockID +
2995            "&ELEMENT_QUANTITY=" +
2996            elementQuantity +
2997            "&OFFER_PROPS=" +
2998            fill_prop.props,
2999        });
3000
3001        $("." + name + "_trigger").click();
3002      });
3003    }
3004  };
3005}
3006
3007if (!funcDefined("oneClickBuyBasket")) {
3008  var oneClickBuyBasket = function () {
3009    const name = "one_click_buy_basket";
3010    if (!$(".fast_order").hasClass("clicked")) {
3011      $(".fast_order").addClass("clicked");
3012      $("body ." + name + "_frame").remove();
3013      $("body ." + name + "_trigger").remove();
3014      $("body #popup_iframe_wrapper").append(
3015        '<div class="' + name + '_frame popup"></div>',
3016        '<div class="' + name + '_trigger"></div>'
3017      );
3018
3019      loadJQM(() => {
3020        $("." + name + "_frame").jqm({
3021          trigger: "." + name + "_trigger",
3022          onHide: function (hash) {
3023            onHidejqm(name, hash);
3024          },
3025          onLoad: function (hash) {
3026            onLoadjqm(name, hash);
3027          },
3028          ajax: arAsproOptions["SITE_DIR"] + "ajax/one_click_buy_basket.php",
3029        });
3030
3031        $("." + name + "_trigger").click();
3032      });
3033    }
3034  };
3035}
3036
3037// TOP MENU ANIMATION
3038$(document).on("click", ".menu_top_block>li .more a", function () {
3039  $this = $(this);
3040  $this.parents(".dropdown").first().find(">.hidden").removeClass("hidden");
3041  $this.parent().addClass("hidden");
3042  setTimeout(function () {
3043    $this.parent().remove();
3044  }, 500);
3045});
3046
3047$(document).on("mouseenter", ".menu_top_block.catalogfirst>li>.dropdown>li.full", function () {
3048  var $submenu = $(this).find(">.dropdown");
3049
3050  if ($submenu.length) {
3051    if (topMenuEnterTimer) {
3052      clearTimeout(topMenuEnterTimer);
3053      topMenuEnterTimer = false;
3054    }
3055  }
3056});
3057
3058$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () {
3059  var $submenu = $(this).find(">.dropdown");
3060
3061  if ($submenu.length && !$submenu.hasClass("visible")) {
3062    var $menu = $(this).parents(".menu");
3063    var $wrapmenu = $menu.parents(".wrap_menu");
3064    var wrapMenuWidth = $wrapmenu.actual("outerWidth");
3065    var wrapMenuLeft = $wrapmenu.offset().left;
3066    var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
3067    var left = wrapMenuRight - ($(this).offset().left + $submenu.actual("outerWidth"));
3068    if (
3069      window.matchMedia("(min-width: 951px)").matches &&
3070      $(this).hasClass("catalog") &&
3071      ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page"))
3072    ) {
3073      return;
3074    }
3075    if (left < 0) {
3076      $submenu.css({ left: left + "px" });
3077    }
3078    $submenu.stop().slideDown(animationTime, function () {
3079      $submenu.css({ height: "", overflow: "visible" });
3080    });
3081
3082    $(this).on("mouseleave", function () {
3083      var leaveTimer = setTimeout(function () {
3084        $submenu.stop().slideUp(animationTime, function () {
3085          $submenu.css({ left: "" });
3086        });
3087      }, delayTime);
3088
3089      $(this).on("mouseenter", function () {
3090        if (leaveTimer) {
3091          clearTimeout(leaveTimer);
3092          leaveTimer = false;
3093        }
3094      });
3095    });
3096  }
3097});
3098
3099$(document).on("mouseenter", ".menu_top_block>li .dropdown>li", function () {
3100  var $this = $(this);
3101  var $submenu = $this.find(">.dropdown");
3102
3103  if (
3104    $submenu.length &&
3105    ((!$this.parents(".full").length && !$this.hasClass("full")) || $this.parents(".more").length)
3106  ) {
3107    var $menu = $this.parents(".menu");
3108    var $wrapmenu = $menu.parents(".wrap_menu");
3109    var arParentSubmenuForOpacity = [];
3110    topMenuEnterTimer = setTimeout(function () {
3111      var wrapMenuWidth = $wrapmenu.actual("outerWidth");
3112      var wrapMenuLeft = $wrapmenu.offset().left;
3113      var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
3114      var $parentSubmenu = $this.parent();
3115      var bToLeft = $parentSubmenu.hasClass("toleft") ? true : false;
3116      if (!bToLeft) {
3117        bToLeft = $this.offset().left + $this.actual("outerWidth") + $submenu.actual("outerWidth") > wrapMenuRight;
3118      } else {
3119        bToLeft = $this.offset().left + $this.actual("outerWidth") - $submenu.actual("outerWidth") < wrapMenuLeft;
3120      }
3121
3122      if (bToLeft) {
3123        $this.find(">.dropdown").addClass("toleft").show();
3124      } else {
3125        $this.find(">.dropdown").removeClass("toleft").show();
3126      }
3127      var submenuLeft = $submenu.offset().left;
3128      var submenuRight = submenuLeft + $submenu.actual("outerWidth");
3129
3130      $this.parents(".dropdown").each(function () {
3131        var $this = $(this);
3132        var leftOffset = $this.offset().left;
3133        var rightOffset = leftOffset + $this.actual("outerWidth");
3134        if (
3135          (leftOffset >= submenuLeft && leftOffset < submenuRight - 1) ||
3136          (rightOffset > submenuLeft + 1 && rightOffset <= submenuRight)
3137        ) {
3138          arParentSubmenuForOpacity.push($this);
3139          $this.find(">li>a").css({ opacity: "0.1" });
3140        }
3141      });
3142    }, delayTime);
3143
3144    $this.unbind("mouseleave");
3145    $this.on("mouseleave", function () {
3146      var leaveTimer = setTimeout(function () {
3147        $this.find(".dropdown").removeClass("toleft").hide();
3148        if (arParentSubmenuForOpacity.length) {
3149          for (i in arParentSubmenuForOpacity) {
3150            arParentSubmenuForOpacity[i].find(">li>a").css({ opacity: "" });
3151          }
3152        }
3153      }, delayTime);
3154
3155      $this.unbind("mouseenter");
3156      $this.on("mouseenter", function () {
3157        if (leaveTimer) {
3158          clearTimeout(leaveTimer);
3159          leaveTimer = false;
3160        }
3161      });
3162    });
3163  }
3164});
3165CheckFlexSlider = function () {};
3166
3167InitScrollBar = function (el, initOptions) {};
3168InitCustomScrollBar = function (el) {};
3169
3170/* slider gallery for fancybox */
3171const InitFancyboxThumbnailsGallery = function (instance) {
3172  if (
3173    $(".fancybox-thumbs") &&
3174    $(".fancybox-thumbs__list a").length > 1 &&
3175    !$(".fancybox-thumbs .swiper").length &&
3176    typeof initSwiperSlider === "function"
3177  ) {
3178
3179    // update preview when lazyloaded
3180    instance.Thumbs.$grid.find(".fancybox-thumbs__list a").each(function (i, el) {
3181      $(el).css("background-image", "url('" + encodeURI(instance.group[i].src) + "')");
3182    });
3183
3184    const SLIDER_RESIZE_BREAKPOINT = 600;
3185    const $swiperSlides = $(".fancybox-thumbs__list a");
3186    const $swiperWrapper = $(".fancybox-thumbs__list");
3187    const sliderDirection = window.innerWidth >= SLIDER_RESIZE_BREAKPOINT ? "vertical" : "horizontal";
3188
3189    const options = {
3190      centerInsufficientSlides: true,
3191      direction: sliderDirection,
3192      mousewheelControl: true,
3193      setWrapperSize: true,
3194      slidesPerView: 3,
3195      spaceBetween: 16,
3196      breakpoints: {
3197        400: {
3198          slidesPerView: 5,
3199        },
3200      },
3201    };
3202
3203    if ($swiperSlides.length > 5) {
3204      options.navigation = {
3205        nextEl: ".fancybox-thumbs__wrapper .swiper-button-next",
3206        prevEl: ".fancybox-thumbs__wrapper .swiper-button-prev",
3207      };
3208    }
3209
3210    $(".fancybox-thumbs").wrapInner(
3211      "<div class='fancybox-thumbs__wrapper'><div class='swiper' data-plugin-options='" +
3212        JSON.stringify(options) +
3213        "' /></div>"
3214    );
3215    const $swiperContainerWrapper = $(".fancybox-thumbs__wrapper");
3216
3217    if ($swiperSlides.length > 5) {
3218      $swiperContainerWrapper.append(
3219        "<div class='swiper-button-next'><i class='svg right'><svg xmlns='http://www.w3.org/2000/svg' width='12' height='6.969' viewBox='0 0 12 6.969'><path id='Rounded_Rectangle_702_copy_24' data-name='Rounded Rectangle 702 copy 24' class='cls-1' d='M361.691,401.707a1,1,0,0,1-1.414,0L356,397.416l-4.306,4.291a1,1,0,0,1-1.414,0,0.991,0.991,0,0,1,0-1.406l5.016-5a1.006,1.006,0,0,1,1.415,0l4.984,5A0.989,0.989,0,0,1,361.691,401.707Z' transform='translate(-350 -395.031)'></path></svg></i></div>"
3220      );
3221      $swiperContainerWrapper.prepend(
3222        "<div class='swiper-button-prev'><i class='svg left'><svg xmlns='http://www.w3.org/2000/svg' width='12' height='6.969' viewBox='0 0 12 6.969'><path id='Rounded_Rectangle_702_copy_24' data-name='Rounded Rectangle 702 copy 24' class='cls-1' d='M361.691,401.707a1,1,0,0,1-1.414,0L356,397.416l-4.306,4.291a1,1,0,0,1-1.414,0,0.991,0.991,0,0,1,0-1.406l5.016-5a1.006,1.006,0,0,1,1.415,0l4.984,5A0.989,0.989,0,0,1,361.691,401.707Z' transform='translate(-350 -395.031)'></path></svg></i></div>"
3223      );
3224    }
3225    $swiperWrapper.addClass("swiper-wrapper");
3226    $swiperSlides.addClass("swiper-slide");
3227
3228    initSwiperSlider(".fancybox-thumbs .swiper");
3229
3230    const swiper = $(".fancybox-thumbs .swiper").data("swiper");
3231
3232    swiper.slideTo(instance.curPos, 10);
3233    swiper.on("resize", function () {
3234      if (window.innerWidth >= SLIDER_RESIZE_BREAKPOINT && options.direction === "horizontal") {
3235        options.direction = "vertical";
3236        swiper.changeDirection(options.direction, false);
3237        $swiperWrapper.css("width", "auto");
3238        swiper.update();
3239      } else if (window.innerWidth < SLIDER_RESIZE_BREAKPOINT && options.direction === "vertical") {
3240        options.direction = "horizontal";
3241        swiper.changeDirection(options.direction, false);
3242        $swiperWrapper.css("height", "auto");
3243        swiper.update();
3244      }
3245    });
3246  }
3247};
3248
3249fancyBoxOpts = {
3250  padding: [40, 40, 64, 40],
3251  openEffect: "fade",
3252  closeEffect: "fade",
3253  nextEffect: "fade",
3254  prevEffect: "fade",
3255  opacity: true,
3256  tpl: {
3257    closeBtn:
3258      '<span title="' +
3259      BX.message("FANCY_CLOSE") +
3260      '" class="fancybox-item fancybox-close inline svg"><svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 24L24 2M2 2L24 24" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></span>',
3261    next:
3262      '<a title="' +
3263      BX.message("FANCY_NEXT") +
3264      '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
3265    prev:
3266      '<a title="' +
3267      BX.message("FANCY_PREV") +
3268      '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
3269  },
3270  btnTpl: {
3271    close:
3272      '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}">' +
3273      '<i class="svg"><svg width="26" height="26" viewBox="0 0 26 26" xmlns="http://www.w3.org/2000/svg"><path d="M2 24L24 2M2 2L24 24" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" /></svg></i>' +
3274      "</button>",
3275
3276    arrowLeft:
3277      '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}">' +
3278      '<div><i class="svg left"><svg width="16" height="26" viewBox="0 0 15 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 13L0.585787 14.4142C-0.195262 13.6332 -0.195262 12.3668 0.585787 11.5858L2 13ZM11.5858 0.585786C12.3668 -0.195262 13.6332 -0.195262 14.4142 0.585786C15.1953 1.36683 15.1953 2.63317 14.4142 3.41421L11.5858 0.585786ZM14.4142 22.5858C15.1953 23.3668 15.1953 24.6332 14.4142 25.4142C13.6332 26.1953 12.3668 26.1953 11.5858 25.4142L14.4142 22.5858ZM0.585787 11.5858L11.5858 0.585786L14.4142 3.41421L3.41421 14.4142L0.585787 11.5858ZM3.41421 11.5858L14.4142 22.5858L11.5858 25.4142L0.585787 14.4142L3.41421 11.5858Z" fill="#999999"/></svg></i></div>' +
3279      "</button>",
3280
3281    arrowRight:
3282      '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}">' +
3283      '<div><i class="svg right"><svg width="16" height="26" viewBox="0 0 15 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 13L14.4142 14.4142C15.1953 13.6332 15.1953 12.3668 14.4142 11.5858L13 13ZM3.41421 0.585786C2.63317 -0.195262 1.36683 -0.195262 0.585786 0.585786C-0.195262 1.36683 -0.195262 2.63317 0.585786 3.41421L3.41421 0.585786ZM0.585786 22.5858C-0.195262 23.3668 -0.195262 24.6332 0.585786 25.4142C1.36683 26.1953 2.63317 26.1953 3.41421 25.4142L0.585786 22.5858ZM14.4142 11.5858L3.41421 0.585786L0.585786 3.41421L11.5858 14.4142L14.4142 11.5858ZM11.5858 11.5858L0.585786 22.5858L3.41421 25.4142L14.4142 14.4142L11.5858 11.5858Z" fill="white"/></svg></i></div>' +
3284      "</button>",
3285  },
3286  touch: "enabled",
3287  buttons: ["close"],
3288  thumbs: {
3289    autoStart: true,
3290  },
3291  backFocus: false,
3292  onActivate: function (instance) {
3293    InitFancyboxThumbnailsGallery(instance);
3294  },
3295  beforeShow: function (instance, current) {
3296    if ($(".fancybox-thumbs .swiper").length) {
3297      const swiper = $(".fancybox-thumbs .swiper").data("swiper");
3298
3299      swiper.slideTo(current.index);
3300    }
3301    let bCurrentSrc = typeof current !== "undefined" && current.contentType == "html" && $(current.src).length;
3302
3303    if (bCurrentSrc) {
3304      let $companyBlock = current.src.closest(".company-block");
3305      if ($companyBlock.length) {
3306        var $video_block = $companyBlock.find(".video")[0];
3307        if ($video_block && !$video_block.nextElementSibling) {
3308          $videoContent = $video_block.content.cloneNode(true);
3309          $source = $videoContent.querySelector(".video-block");
3310          $source.setAttribute("src", $source.dataset["src"]);
3311          $video_block.parentNode.insertBefore($videoContent, $video_block.nextSibling);
3312        }
3313
3314        var video_block_frame = $companyBlock.find(".video-block__iframe");
3315        if (video_block_frame.length) {
3316          var data_src_iframe = video_block_frame.attr("data-src");
3317          video_block_frame.attr("src", data_src_iframe);
3318          video_block_frame.attr("allow", "autoplay");
3319        }
3320      }
3321    }
3322  },
3323  afterShow: function (instance, current) {
3324    if ($(".fancybox-overlay").css("opacity") == 0) {
3325      setTimeout(function () {
3326        $(".fancybox-overlay").css("opacity", 1);
3327        $("html").addClass("overflow_html");
3328      }, 200);
3329    }
3330
3331    $(".fancybox-nav").css("opacity", 0);
3332    setTimeout(function () {
3333      $(".fancybox-nav").css("opacity", 1);
3334    }, 150);
3335
3336    if ($(".fancybox-inner .video-block").length) {
3337      // var fancyHeight = $('.fancybox-wrap').height();
3338      // $('.fancybox-inner').height(fancyHeight);
3339      setTimeout(function () {
3340        $(".fancybox-wrap video").resize();
3341        setTimeout(function () {
3342          $(".fancybox-wrap").addClass("show_video");
3343          document.getElementById("company_video").currentTime = 0;
3344          document.getElementById("company_video").play();
3345        }, 300);
3346      }, 150);
3347    } else if ($(".fancybox-wrap iframe").length) {
3348      $(".fancybox-inner").height("100%");
3349    }
3350  },
3351  beforeClose: function () {
3352    $(".fancybox-overlay").fadeOut();
3353    $("html").removeClass("overflow_html");
3354
3355    if ($("#company_video").length) {
3356      document.getElementById("company_video").currentTime = 0;
3357    }
3358
3359    var video_block_frame = $(".company-block .video-block");
3360    if (video_block_frame.length) {
3361      $(".video-block__iframe").attr("src", "");
3362    }
3363  },
3364  onClosed: function () {
3365    if ($(".fancybox-wrap #company_video").length) {
3366      document.getElementById("company_video").pause();
3367    }
3368  },
3369};
3370
3371InitFancyBox = function () {
3372  if (typeof $.fn.fancybox !== "function") {
3373    return;
3374  }
3375
3376  if (!$(".fancy").length) {
3377    return;
3378  }
3379
3380  $(".fancy").fancybox(fancyBoxOpts);
3381};
3382
3383InitFancyBoxVideo = function () {
3384  if (typeof $.fn.fancybox !== "function") {
3385    return;
3386  }
3387
3388  if (!$(".video_link").length) {
3389    return;
3390  }
3391  $(".video_link").fancybox({
3392    type: "iframe",
3393    iframe: {
3394      preload: false,
3395    },
3396    maxWidth: 800,
3397    maxHeight: 600,
3398    fitToView: false,
3399    width: "70%",
3400    height: "70%",
3401    autoSize: false,
3402    closeClick: false,
3403    opacity: true,
3404    tpl: {
3405      closeBtn:
3406        '<span title="' +
3407        BX.message("FANCY_CLOSE") +
3408        '" class="fancybox-item fancybox-close inline svg"><svg class="svg svg-close" width="14" height="14" viewBox="0 0 14 14"><path data-name="Rounded Rectangle 568 copy 16" d="M1009.4,953l5.32,5.315a0.987,0.987,0,0,1,0,1.4,1,1,0,0,1-1.41,0L1008,954.4l-5.32,5.315a0.991,0.991,0,0,1-1.4-1.4L1006.6,953l-5.32-5.315a0.991,0.991,0,0,1,1.4-1.4l5.32,5.315,5.31-5.315a1,1,0,0,1,1.41,0,0.987,0.987,0,0,1,0,1.4Z" transform="translate(-1001 -946)"></path></svg></span>',
3409      next:
3410        '<a title="' +
3411        BX.message("FANCY_NEXT") +
3412        '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
3413      prev:
3414        '<a title="' +
3415        BX.message("FANCY_PREV") +
3416        '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
3417    },
3418    afterShow: function () {
3419      if ($(".fancybox-overlay").css("opacity") == 0) {
3420        setTimeout(function () {
3421          $(".fancybox-overlay").css("opacity", 1);
3422          $("html").addClass("overflow_html");
3423        }, 200);
3424      }
3425
3426      $(".fancybox-nav").css("opacity", 0);
3427      setTimeout(function () {
3428        $(".fancybox-nav").css("opacity", 1);
3429      }, 150);
3430      if ($(".fancybox-wrap iframe").length) {
3431        $(".fancybox-inner").height("100%");
3432      }
3433    },
3434    beforeClose: function () {
3435      $(".fancybox-overlay").fadeOut();
3436      $("html").removeClass("overflow_html");
3437    },
3438  });
3439};
3440
3441InitStickySideBar = function (el, container_el) {
3442  var block = ".sticky-sidebar",
3443    container_catalog = ".wraps .wrapper_inner .container_inner .main-catalog-wrapper",
3444    container = ".wraps .wrapper_inner .container_inner";
3445  if (typeof el !== "undefined") block = el;
3446
3447  if ($(container_catalog).length) container = container_catalog;
3448
3449  if (typeof container_el !== "undefined") container = container_el;
3450
3451  if ($(block).length && arAsproOptions["THEME"]["STICKY_SIDEBAR"] != "N") {
3452    if (typeof window["stickySidebar"] !== "undefined") {
3453      window["stickySidebar"].destroy();
3454    }
3455
3456    window["stickySidebar"] = new StickySidebar(block, {
3457      topSpacing: 60,
3458      bottomSpacing: 20,
3459      containerSelector: container,
3460      resizeSensor: true,
3461      innerWrapperSelector: ".sticky-sidebar__inner",
3462    });
3463
3464    if ($(".sticky-sidebar .sticky-sidebar__inner .banner img").length) {
3465      $(".sticky-sidebar .sticky-sidebar__inner .banner img")[0].onload = function () {
3466        if (typeof window["stickySidebar"] !== "undefined") {
3467          window["stickySidebar"].updateSticky();
3468        }
3469      };
3470    }
3471  }
3472};
3473
3474InitOwlSlider = function () {
3475  if (typeof $.fn.owlCarousel !== "function") {
3476    return;
3477  }
3478  $(".owl-carousel:not(.owl-loaded):not(.appear-block)").each(function () {
3479    var slider = $(this);
3480    var options;
3481    var svg =
3482      '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="6.969" viewBox="0 0 12 6.969"><path id="Rounded_Rectangle_702_copy_24" data-name="Rounded Rectangle 702 copy 24" class="cls-1" d="M361.691,401.707a1,1,0,0,1-1.414,0L356,397.416l-4.306,4.291a1,1,0,0,1-1.414,0,0.991,0.991,0,0,1,0-1.406l5.016-5a1.006,1.006,0,0,1,1.415,0l4.984,5A0.989,0.989,0,0,1,361.691,401.707Z" transform="translate(-350 -395.031)"/></svg>';
3483    var defaults = {
3484      navText: [
3485        '<i class="svg left colored_theme_hover_text">' + svg + "</i>",
3486        '<i class="svg right colored_theme_hover_text">' + svg + "</i>",
3487      ],
3488    };
3489    var config = $.extend({}, defaults, options, slider.data("plugin-options"));
3490
3491    slider.on("initialized.owl.carousel", function (event) {
3492      var eventdata = { slider: event };
3493      BX.onCustomEvent("onSliderInitialized", [eventdata]);
3494      BX.onCustomEvent("onSlide", [eventdata]);
3495
3496      $(event.target).removeClass("loading-state");
3497      $(event.target).find(".owl-item:first").addClass("current");
3498
3499      if ($(event.target).hasClass("catalog_block")) {
3500        if (typeof sliceItemBlockSlide === "function") {
3501          sliceItemBlockSlide();
3502        }
3503      }
3504
3505      if (typeof window["stickySidebar"] !== "undefined") {
3506        window["stickySidebar"].updateSticky();
3507      }
3508    });
3509    // if slider was inited on animated scrolling to block, than need rescroll
3510    if ($("body.scrolling-state").length) {
3511      slider.on("initialized.owl.carousel", function (event) {
3512        setTimeout(function () {
3513          scrollToBlock.rescroll();
3514        }, 100);
3515      });
3516    }
3517
3518    slider.on("change.owl.carousel", function (event) {
3519      // var eventdata = {slider: $(event.target)};
3520      // BX.onCustomEvent('onSlide', [eventdata]);
3521    });
3522
3523    slider.owlCarousel(config);
3524
3525    slider.on("resized.owl.carousel", function (event) {
3526      if (typeof sliceItemBlockSlide === "function") {
3527        sliceItemBlockSlide({ resize: false });
3528      }
3529    });
3530
3531    slider.on("changed.owl.carousel", function (event) {
3532      var $slider = $(event.target);
3533      var sliderData = $slider.data("owl.carousel");
3534      var pluginOptions = $slider.data("pluginOptions");
3535
3536      var eventdata = { slider: $slider, data: event };
3537      BX.onCustomEvent("onSlide", [eventdata]);
3538
3539      if (pluginOptions) {
3540        // click .ajax_load_btn
3541        if ($slider.parent().find(".ajax_load_btn").length) {
3542          if (sliderData._current + 1 + sliderData.settings.items >= sliderData._items.length) {
3543            $slider.parent().find(".ajax_load_btn").trigger("click");
3544          }
3545        }
3546        if (typeofExt(pluginOptions) === "object") {
3547          if ("index" in pluginOptions) {
3548            if ($(".gallery-view_switch").length) {
3549              $(".gallery-view_switch__count-wrapper--big .gallery-view_switch__count-value").text(
3550                event.item.index + 1 + "/" + event.item.count
3551              );
3552            }
3553          }
3554
3555          if ("relatedTo" in $(event.target).data("pluginOptions")) {
3556            var relatedClass = $(event.target).data("pluginOptions").relatedTo,
3557              relatedBlock = $(relatedClass);
3558
3559            if (relatedBlock.length && $(event.target).data("owl.carousel")) {
3560              if (!$(event.target).data("owl.carousel").loop) {
3561                var current = event.item.index;
3562              } else {
3563                var count = event.item.count - 1;
3564                var current = Math.round(event.item.index - event.item.count / 2 - 0.5);
3565
3566                if (current < 0) current = count;
3567
3568                if (current > count) current = 0;
3569              }
3570
3571              relatedBlock.find(".owl-item").removeClass("current").eq(current).addClass("current");
3572
3573              var onscreen = relatedBlock.find(".owl-item.active").length - 1;
3574              var start = relatedBlock.find(".owl-item.active").first().index();
3575              var end = relatedBlock.find(".owl-item.active").last().index();
3576
3577              if (current > end) relatedBlock.data("owl.carousel").to(current, 100, true);
3578
3579              if (current < start) relatedBlock.data("owl.carousel").to(current - onscreen, 100, true);
3580              // $(".owl-slider-"+id).trigger('to.owl.carousel', [itemCarousel])
3581            }
3582          }
3583        }
3584      }
3585    });
3586
3587    slider.on("translated.owl.carousel", function (event) {});
3588
3589    if ("clickTo" in config) {
3590      var relatedClass = config.clickTo,
3591        magnifier = "magnifier" in config;
3592
3593      slider.on("click", ".owl-item", function (e) {
3594        e.preventDefault();
3595        var _this = $(this),
3596          number = _this.index();
3597
3598        if (magnifier) {
3599          if ($(relatedClass).closest(".product-container").find(".zoom_picture").length) {
3600            $(relatedClass)
3601              .closest(".product-container")
3602              .find(".zoom_picture")
3603              .attr("data-large", _this.find(".product-detail-gallery__item").data("big"));
3604            $(relatedClass)
3605              .closest(".product-container")
3606              .find(".zoom_picture")
3607              .attr("xoriginal", _this.find(".product-detail-gallery__item").data("big"));
3608            $(relatedClass)
3609              .closest(".product-container")
3610              .find(".zoom_picture")
3611              .attr("src", _this.find(".product-detail-gallery__item img").attr("src"));
3612          }
3613          _this.siblings("").removeClass("current");
3614          _this.addClass("current");
3615        } else {
3616          $(relatedClass).data("owl.carousel").to(number, 300, true);
3617        }
3618      });
3619    }
3620  });
3621};
3622
3623InitFlexSlider = function () {
3624  //todo need remove
3625};
3626
3627inIframe = function () {
3628  try {
3629    return window.self !== window.top;
3630  } catch (e) {
3631    return true;
3632  }
3633};
3634
3635InitZoomPict = function (el) {
3636  const zoomer = typeof el !== "undefined" ? el : $(".zoom_picture");
3637
3638  if (zoomer.length) {
3639    var options;
3640    const defaults = {
3641      title: false,
3642      scroll: false,
3643      Xoffset: 15,
3644      tint: "#333",
3645      defaultScale: -1,
3646    };
3647
3648    const config = $.extend({}, defaults, options, zoomer.data("plugin-options"));
3649    zoomer.xzoom(config);
3650
3651    // checks if zoomer doesn't have the event listenners
3652    const zoomerEventsListeners = $._data(zoomer.get(0), "events");
3653
3654    if (!zoomerEventsListeners.mouseout && !zoomerEventsListeners.load) {
3655      zoomer.on("mouseleave", function () {
3656        zoomer.data("xzoom").movezoom;
3657        let mObjWidth = parseInt(zoomer.attr("data-xoriginalwidth"));
3658        let mObHeight = parseInt(zoomer.attr("data-xoriginalheight"));
3659        let imgObjWidth = Math.round(zoomer.width());
3660        let imgObjheight = Math.round(zoomer.height());
3661        if (mObjWidth === imgObjWidth && imgObjheight === mObHeight) {
3662          $(".xzoom-preview").addClass("hidden");
3663          $(".xzoom-source > div").addClass("hidden");
3664        } else {
3665          $(".xzoom-preview").removeClass("hidden");
3666          $(".xzoom-source > div").removeClass("hidden");
3667        }
3668      });
3669
3670      zoomer.on("load", function () {
3671        const zoomerParentWidth = Math.round(zoomer.parent().width());
3672        const zoomerHeight = Math.round(zoomer.height());
3673        const zoomerWidth = Math.round(zoomer.width());
3674        const sizeMultiplier = 1.5;
3675
3676        const zoomWidth =
3677          zoomerWidth < zoomerParentWidth / 2 && zoomerHeight > zoomerWidth ? zoomerWidth * sizeMultiplier : "auto";
3678
3679        zoomer.data("xzoom").destroy();
3680        zoomer.removeData("xzoom");
3681        zoomer.width("auto");
3682
3683        config.zoomWidth = zoomWidth;
3684        zoomer.xzoom(config);
3685      });
3686    }
3687  }
3688};
3689
3690InitAppear = function() {
3691  const $nodeListAppearBlock = $(".appear-block");
3692  if ($nodeListAppearBlock.length) {
3693    $nodeListAppearBlock.iAppear(
3694      function () {
3695        const eventdata = {
3696          target: this
3697        };
3698        BX.onCustomEvent("onAppearVideoBlockShow", [eventdata]);
3699
3700        const $nodeAppearBlock = $(this);
3701        $nodeAppearBlock.removeClass("appear-block");
3702        $nodeAppearBlock.find(".appear-block").removeClass("appear-block");
3703
3704        typeof InitOwlSlider === "function" && InitOwlSlider();
3705        typeof initSwiperSlider === "function" && initSwiperSlider();
3706      },
3707      {
3708        rootMargin: "150px 0px 150px 0px",
3709        accX: 0,
3710        accY: 150,
3711      }
3712    );
3713  }
3714}
3715
3716/* js-load-block appear */
3717function InitJsLoadBlock(){
3718  if ($(".js-load-block").length) {
3719    var objUrl = parseUrlQuery();
3720    var bClearCache = false;
3721    if ("clear_cache" in objUrl) {
3722      if (objUrl.clear_cache == "Y") {
3723        bClearCache = true;
3724      }
3725    }
3726
3727    var items = [];
3728    var bIdle = true;
3729    var insertNextBlockContent = function () {
3730      if (bIdle && items.length) {
3731        bIdle = false;
3732        const item = items.pop();
3733
3734        // get content
3735        $.get(item.url).done(function (html) {
3736          item.content = html;
3737          item.content = $.trim(item.content);
3738
3739          // remove /bitrix/js/main/core/core_window.js if it was loaded already
3740          if (item.content.indexOf("/bitrix/js/main/core/core_window.") !== -1 && BX.WindowManager) {
3741            item.content = item.content.replace(
3742              /<script src="\/bitrix\/js\/main\/core\/core_window\.[^>]*><\/script>/gm,
3743              ""
3744            );
3745          }
3746
3747          // remove /bitrix/js/currency/core_currency.js if it was loaded already
3748          if (
3749            item.content.indexOf("/bitrix/js/currency/core_currency.") !== -1 &&
3750            typeof BX.Currency === "object" &&
3751            BX.Currency.defaultFormat
3752          ) {
3753            item.content = item.content.replace(
3754              /<script src="\/bitrix\/js\/currency\/core_currency\.[^>]*><\/script>/gm,
3755              ""
3756            );
3757          }
3758
3759          // remove /bitrix/js/main/pageobject/pageobject.js if it was loaded already
3760          if (item.content.indexOf("/bitrix/js/main/pageobject/pageobject.") !== -1 && BX.PageObject) {
3761            item.content = item.content.replace(
3762              /<script src="\/bitrix\/js\/main\/pageobject\/pageobject\.[^>]*><\/script>/gm,
3763              ""
3764            );
3765          }
3766
3767          // remove /bitrix/js/main/polyfill/promise/js/promise.js if it not need
3768          if (
3769            item.content.indexOf("/bitrix/js/main/polyfill/promise/js/promise.") !== -1 &&
3770            typeof window.Promise !== "undefined" &&
3771            window.Promise.toString().indexOf("[native code]") !== -1
3772          ) {
3773            item.content = item.content.replace(
3774              /<script src="\/bitrix\/js\/main\/polyfill\/promise\/js\/promise\.[^>]*><\/script>/gm,
3775              ""
3776            );
3777          }
3778
3779          if (
3780            typeof MutationObserver === "function" &&
3781            document.querySelector("body").classList.contains("detail_page")
3782          ) {
3783            const observer = new MutationObserver(function (list, observer) {
3784              const $curBlock = list[0].target;
3785              const curBlockBounds = $curBlock.getBoundingClientRect();
3786
3787              if ($curBlock.parentElement.classList.contains("complect-block")) {
3788                $curBlock.parentElement.classList.add("loaded");
3789              }
3790
3791              if (curBlockBounds.top < 0 && curBlockBounds.bottom >= 0) {
3792                const offsetTop = window.scrollY + Math.round($curBlock.offsetHeight) - 100;
3793                window.scrollTo(0, offsetTop);
3794              }
3795
3796              observer.disconnect();
3797            });
3798
3799            observer.observe(item.$context[0], {
3800              childList: true,
3801            });
3802          }
3803
3804          const ob = BX.processHTML(item.content);
3805
3806          // stop ya metrika webvisor DOM indexer
3807          pauseYmObserver();
3808
3809          item.$context.removeAttr("data-file").removeClass("loader_circle");
3810          item.$target.innerHTML = ob.HTML;
3811
3812          BX.ajax.processScripts(ob.SCRIPT);
3813
3814          var eventdata = { action: "jsLoadBlock" };
3815          BX.onCustomEvent("onCompleteAction", [eventdata, item.$context]);
3816
3817          BX.onCustomEvent("onHeaderProgressBarChange", [{}]);
3818
3819          // resume ya metrika webvisor
3820          // 500ms
3821          setTimeout(resumeYmObserver, 500);
3822
3823          bIdle = true;
3824          insertNextBlockContent();
3825        });
3826      }
3827    };
3828
3829    $(".js-load-block").iAppear(
3830      function () {
3831        var $this = $(this);
3832
3833        if ($this.data("file")) {
3834          const add_url = new URL(location.origin + $this.data("file"));
3835
3836          if (bClearCache) add_url.searchParams.set("clear_cache", "Y");
3837          if ($this.data("block")) add_url.searchParams.set("BLOCK", $this.data("block"));
3838          if ($this.data("show_all")) add_url.searchParams.set("SHOW_ALL", "Y");
3839
3840          const $target = $this.data("appendTo")
3841            ? $this.find($this.data("appendTo"))[0]
3842            : $this.find('> div[id*="bx_incl_"]').length
3843            ? $this.find('> div[id*="bx_incl_"]')[0]
3844            : $this[0];
3845
3846          items.unshift({
3847            $target: $target,
3848            $context: $this,
3849            url: add_url,
3850          });
3851          insertNextBlockContent();
3852        }
3853      },
3854      {
3855        rootMargin: isMobile ? "300px 0px 300px 0px" : "150px 0px 150px 0px",
3856        accX: 0,
3857        accY: isMobile ? 300 : 150,
3858      }
3859    );
3860  }
3861}
3862
3863var arBasketAsproCounters = (arStatusBasketAspro = arBasketPrices = {});
3864SetActualBasketFlyCounters = function (sync) {
3865  if (arBasketAsproCounters.DEFAULT == true) {
3866    $.ajax({
3867      url: arAsproOptions["SITE_DIR"] + "ajax/basket_fly.php",
3868      type: "post",
3869      success: function (html) {
3870        $("#basket_line .basket_fly").removeClass("loaded").html(html);
3871
3872        if (typeof sync !== "undefined") {
3873          $.ajax({
3874            type: "GET",
3875            url: arAsproOptions["SITE_DIR"] + "ajax/actualBasket.php",
3876            // data:data,
3877            success: function (data) {
3878              if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
3879              $(".js_ajax").html(data);
3880
3881              setBasketStatusBtn(true);
3882            },
3883          });
3884        }
3885      },
3886    });
3887  } else {
3888    // insert currency &#8381; by this hack!: $('<div/>').html(arBasketAsproCounters.READY.TITLE).text()
3889    $(".basket_fly .opener .basket_count .count")
3890      .attr("class", "count" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty_items"))
3891      .find(".items span")
3892      .text(arBasketAsproCounters.READY.COUNT);
3893    $(".basket_fly .opener .basket_count + a").attr("href", arBasketAsproCounters["READY"]["HREF"]);
3894    $(".basket_fly .opener .basket_count")
3895      .attr("title", $("<div/>").html(arBasketAsproCounters.READY.TITLE).text())
3896      .attr(
3897        "class",
3898        "colored_theme_hover_text basket_count small clicked" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty")
3899      );
3900
3901    updateBottomIconsPanel(arBasketAsproCounters);
3902  }
3903};
3904
3905CheckHeaderFixed = function () {
3906  var header = $("header, body.simple_basket_mode #header").first(),
3907    header_fixed = $("#headerfixed, body.simple_basket_mode #header"),
3908    header_simple = $("body.simple_basket_mode #header");
3909
3910  if (header_fixed.length) {
3911    if (header.length) {
3912      var isHeaderFixed = false,
3913        isTabsFixed = false,
3914        headerCanFix = true,
3915        headerFixedHeight = header_fixed.actual("outerHeight"),
3916        headerNormalHeight = header.actual("outerHeight"),
3917        headerDiffHeight = headerNormalHeight - headerFixedHeight,
3918        mobileBtnMenu = $(".btn.btn-responsive-nav"),
3919        headerTop = $("#panel:visible").actual("outerHeight"),
3920        topBlock = $(".TOP_HEADER").first(),
3921        $headerFixedNlo = header_fixed.find("[data-nlo]"),
3922        isNloLoaded = !$headerFixedNlo.length,
3923        OnHeaderFixedScrollHandler;
3924
3925      if (headerDiffHeight <= 0) headerDiffHeight = 0;
3926
3927      if (topBlock.length) headerTop += topBlock.actual("outerHeight");
3928
3929      $(window).scroll(
3930        (OnHeaderFixedScrollHandler = function () {
3931          var tabs_fixed = $(".product-item-detail-tabs-container-fixed");
3932
3933          if (window.matchMedia("(min-width:992px)").matches) {
3934            var scrollTop = documentScrollTopLast,
3935              current_is = $(".search-wrapper .search-input:visible"),
3936              tabs = $(".ordered-block .nav.nav-tabs"),
3937              headerCanFix = !mobileBtnMenu.is(":visible");
3938
3939            if (!isHeaderFixed) {
3940              if (headerCanFix && scrollTop > headerNormalHeight + headerTop) {
3941                if (!isNloLoaded) {
3942                  if (!$headerFixedNlo.hasClass("nlo-loadings")) {
3943                    $headerFixedNlo.addClass("nlo-loadings");
3944                    setTimeout(function () {
3945                      $.ajax({
3946                        data: {
3947                          nlo: $headerFixedNlo.attr("data-nlo"),
3948                        },
3949                        success: function (response) {
3950                          // stop ya metrika webvisor DOM indexer
3951                          pauseYmObserver();
3952
3953                          isNloLoaded = true;
3954                          $headerFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
3955                          $headerFixedNlo.remove();
3956
3957                          InitMenuNavigationAim();
3958                          OnHeaderFixedScrollHandler();
3959
3960                          // resume ya metrika webvisor
3961                          // (300ms transition) + (100ms scroll handler)
3962                          setTimeout(resumeYmObserver, 400);
3963                        },
3964                        error: function () {
3965                          $headerFixedNlo.removeClass("nlo-loadings");
3966                        },
3967                      });
3968                    }, 300);
3969                  }
3970                } else {
3971                  isHeaderFixed = true;
3972                  if (header_simple.length) {
3973                    headerSimpleHeight = header_simple.actual("outerHeight");
3974                    header_simple.closest(".header_wrap").css({
3975                      "margin-top": headerSimpleHeight,
3976                    });
3977                  }
3978                  header_fixed.addClass("fixed");
3979
3980                  $("nav.mega-menu.sliced.initied").removeClass("initied");
3981                  CheckTopMenuDotted();
3982                }
3983              }
3984            }
3985            if (isHeaderFixed || !headerCanFix) {
3986              if (!headerCanFix || scrollTop <= headerDiffHeight + headerTop) {
3987                isHeaderFixed = false;
3988                header_fixed.removeClass("fixed");
3989                $("#headerfixed .region_wrapper .dropdown").hide().removeClass("opened show active");
3990                $("#headerfixed .dropdown-select .dropdown-select__list").hide();
3991                $(".inline-search-block.show").hide().removeClass("show opened");
3992                $(".jqmOverlay.search").remove();
3993                if (header_simple.length) {
3994                  header_simple.closest(".header_wrap").css({ "margin-top": "" });
3995                }
3996              }
3997            }
3998
3999            //fixed tabs
4000            if (tabs_fixed.length && tabs.length) {
4001              var tabs_offset = $(".ordered-block .nav.nav-tabs").offset();
4002              if (scrollTop + headerFixedHeight > tabs_offset.top) {
4003                tabs_fixed.css({
4004                  top: header_fixed.actual("outerHeight"),
4005                });
4006                tabs_fixed.addClass("fixed");
4007
4008                header_fixed.addClass("tabs-fixed");
4009              } else if (tabs_fixed.hasClass("fixed")) {
4010                tabs_fixed.removeAttr("style");
4011                tabs_fixed.removeClass("fixed");
4012
4013                header_fixed.removeClass("tabs-fixed");
4014              }
4015            }
4016          }
4017        })
4018      );
4019    }
4020  }
4021
4022  //mobile fixed
4023  var headerSimple = $("body.simple_basket_mode .wrapper1.mfixed_Y #header");
4024  var mfixed = headerSimple.length ? headerSimple : $(".wrapper1.mfixed_Y #mobileheader");
4025  if (mfixed.length && isMobile) {
4026    var isMHeaderFixed = false,
4027      mheaderCanFix = true,
4028      mheaderFixedHeight = mfixed.actual("outerHeight"),
4029      // mheaderFixedHeight = 0,
4030      mheaderTop = $("#panel:visible").actual("outerHeight"),
4031      mHeaderScrollTop = $(".wrapper1").hasClass("mfixed_view_scroll_top");
4032    $(window).scroll(function () {
4033      var scrollTop = documentScrollTopLast;
4034      if (window.matchMedia("(max-width:991px)").matches) {
4035        if (mHeaderScrollTop) {
4036          if (scrollTop > startScroll) {
4037            if (!$("#mobilePhone.show").length) {
4038              mfixed.removeClass("fixed");
4039              if (headerSimple.length) {
4040                headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4041              }
4042            }
4043          } else if (scrollTop > mheaderFixedHeight + mheaderTop) {
4044            mfixed.addClass("fixed");
4045            if (headerSimple.length) {
4046              headerSimple.closest(".header_wrap").css({ "margin-top": mheaderFixedHeight });
4047            }
4048          } else if (scrollTop <= mheaderFixedHeight + mheaderTop) {
4049            mfixed.removeClass("fixed");
4050            if (headerSimple.length) {
4051              headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4052            }
4053          }
4054          startScroll = scrollTop;
4055        } else {
4056          if (!isMHeaderFixed) {
4057            if (scrollTop > mheaderFixedHeight + mheaderTop) {
4058              isMHeaderFixed = true;
4059              mfixed.addClass("fixed");
4060              if (headerSimple.length) {
4061                headerSimple.closest(".header_wrap").css({ "margin-top": mheaderFixedHeight });
4062              }
4063            }
4064          } else if (isMHeaderFixed) {
4065            if (scrollTop <= mheaderFixedHeight + mheaderTop) {
4066              isMHeaderFixed = false;
4067              mfixed.removeClass("fixed");
4068              if (headerSimple.length) {
4069                headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4070              }
4071            }
4072          }
4073        }
4074      } else {
4075        mfixed.removeClass("fixed");
4076        if (headerSimple.length) {
4077          headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4078        }
4079      }
4080    });
4081  }
4082};
4083
4084CheckHeaderFixedMenu = function () {
4085  if (
4086    arAsproOptions["THEME"] &&
4087    arAsproOptions["THEME"]["HEADER_FIXED"] == 2 &&
4088    $("#headerfixed .js-nav").length &&
4089    window.matchMedia("(min-width: 992px)").matches
4090  ) {
4091    $("#headerfixed .js-nav").css("width", "0");
4092    var all_width = 0,
4093      cont_width = $("#headerfixed .maxwidth-theme").actual("width"),
4094      padding_menu =
4095        $("#headerfixed .logo-row.v2 .menu-block").actual("outerWidth") -
4096        $("#headerfixed .logo-row.v2 .menu-block").actual("width");
4097    $("#headerfixed .logo-row.v2 > .inner-table-block").each(function () {
4098      if (!$(this).hasClass("menu-block")) all_width += $(this).actual("outerWidth");
4099    });
4100    $("#headerfixed .js-nav").width(cont_width - all_width - padding_menu);
4101  }
4102};
4103
4104CheckSearchWidth = function () {
4105  if ($(".logo_and_menu-row .search_wrap").length) {
4106    var searchPosition = $(".logo_and_menu-row .search_wrap").position().left,
4107      maxWidth = $(".logo_and_menu-row .maxwidth-theme").width() - 2;
4108    width = 0;
4109    if ($(".logo_and_menu-row .subtop .search_wrap").length) {
4110      maxWidth = $(".logo_and_menu-row .subtop").width() - 2;
4111      $(".logo_and_menu-row .subtop > .row >div >div")
4112        .each(function () {
4113          if (!$(this).hasClass("search_wrap")) {
4114            var elementWidth = $(this).outerWidth();
4115            if (!$(this).is(":visible") || !$(this).height()) elementWidth = 0;
4116            width = width ? width - elementWidth : maxWidth - elementWidth;
4117          }
4118        })
4119        .promise()
4120        .done(function () {
4121          if ($(".logo_and_menu-row .search_wrap.wide_search").length)
4122            $(".logo_and_menu-row .search_wrap .search-block").outerWidth(width);
4123          else $(".logo_and_menu-row .search_wrap").outerWidth(width);
4124          $(".logo_and_menu-row .search_wrap").css({
4125            opacity: 1,
4126            visibility: "visible",
4127          });
4128        });
4129    } else {
4130      if ($(".logo_and_menu-row .subbottom .search_wrap").length) {
4131        maxWidth = $(".logo_and_menu-row .subbottom").width() - 2;
4132        $(".logo_and_menu-row .subbottom >div")
4133          .each(function () {
4134            if (!$(this).hasClass("search_wrap")) {
4135              var elementWidth = $(this).outerWidth();
4136              if (!$(this).is(":visible") || !$(this).height()) elementWidth = 0;
4137              width = width ? width - elementWidth : maxWidth - elementWidth;
4138            }
4139          })
4140          .promise()
4141          .done(function () {
4142            if ($(".logo_and_menu-row .search_wrap.wide_search").length)
4143              $(".logo_and_menu-row .search_wrap .search-block").outerWidth(width);
4144            else $(".logo_and_menu-row .search_wrap").outerWidth(width);
4145            $(".logo_and_menu-row .search_wrap").css({
4146              opacity: 1,
4147              visibility: "visible",
4148            });
4149          });
4150      } else {
4151        $(".logo_and_menu-row .maxwidth-theme > .row >div >div")
4152          .each(function () {
4153            if (!$(this).hasClass("search_wrap")) {
4154              var elementWidth = $(this).outerWidth();
4155              if (!$(this).is(":visible") || !$(this).height()) elementWidth = 0;
4156              width = width ? width - elementWidth : maxWidth - elementWidth;
4157            }
4158          })
4159          .promise()
4160          .done(function () {
4161            if ($(".logo_and_menu-row .search_wrap.wide_search").length)
4162              $(".logo_and_menu-row .search_wrap .search-block").outerWidth(width);
4163            else $(".logo_and_menu-row .search_wrap").outerWidth(width);
4164            $(".logo_and_menu-row .search_wrap").css({
4165              opacity: 1,
4166              visibility: "visible",
4167            });
4168          });
4169      }
4170    }
4171  }
4172};
4173
4174if (!funcDefined("showItemStoresAmount")) {
4175  var showItemStoresAmount = function () {
4176    let blocks = $(".item-stock .status-amount--stores:not(.status-amount--loaded)");
4177    if (blocks.length) {
4178      let stores = [];
4179      let ids = [];
4180
4181      for (let i = 0, cnt = blocks.length; i < cnt; ++i) {
4182        $(blocks[i]).addClass("status-amount--loaded");
4183
4184        var data = $(blocks[i]).data("param-amount");
4185        if (typeof data === "object" && data) {
4186          ids.push(data.ID);
4187          stores = data.STORES;
4188        }
4189      }
4190
4191      if (ids) {
4192        let data = {
4193          ids: ids,
4194          stores: stores,
4195        };
4196
4197        $.ajax({
4198          url: arAsproOptions.SITE_DIR + "ajax/amount.php",
4199          type: "POST",
4200          data: data,
4201          dataType: "json",
4202          success: function (result) {
4203            if (typeof result === "object" && result && result.success && result.amount) {
4204              for (let i = 0, cnt = blocks.length; i < cnt; ++i) {
4205                var data = $(blocks[i]).data("param-amount");
4206                if (typeof data === "object" && data) {
4207                  if (result.amount[data.ID]) {
4208                    $(blocks[i]).html(result.amount[data.ID]);
4209                  }
4210
4211                  $(blocks[i]).addClass("status-amount--visible");
4212                }
4213              }
4214            }
4215          },
4216        });
4217      }
4218    }
4219  };
4220}
4221
4222lazyLoadPagenBlock = function () {
4223  setTimeout(function () {
4224    if ($(".with-load-block .ajax_load_btn:not(.appear-block)").length) {
4225      $(".with-load-block .ajax_load_btn:not(.appear-block)").iAppear(
4226        function () {
4227          var $this = $(this);
4228          $this.addClass("appear-block").trigger("click");
4229        },
4230        { rootMargin: "200px 0px 200px 0px", accX: 0, accY: 200 }
4231      );
4232    }
4233  }, 200);
4234};
4235
4236scrollPreviewBlock = function () {
4237  if (typeof $.cookie("scroll_block") != "undefined" && $.cookie("scroll_block")) {
4238    var scroll_block = $($.cookie("scroll_block"));
4239    if (scroll_block.length) {
4240      let position = scroll_block.offset().top;
4241      let $fixedHeader = null;
4242      if (($fixedHeader = document.getElementById("headerfixed"))) {
4243        position -= $fixedHeader.clientHeight;
4244      }
4245      $("body, html").animate({ scrollTop: position }, 500);
4246    }
4247    $.cookie("scroll_block", null);
4248  }
4249};
4250
4251scrollToBlock = function (block) {
4252  if ($(block).length) {
4253    var offset = $(block).offset().top;
4254    if (typeof $(block).data("toggle") != "undefined") $(block).click();
4255
4256    if (typeof $(block).data("offset") != "undefined") offset += $(block).data("offset");
4257
4258    $("body, html").animate({ scrollTop: offset }, 500);
4259  }
4260};
4261
4262checkMenuLines = function () {
4263  if ($(".front_page .menu-row .left_border").length || $(".front_page .menu-row .right_border").length) {
4264    var positionMenu = $(".centered .menu-row .mega-menu table").length
4265        ? $(".centered .menu-row .mega-menu table").offset().left
4266        : 0,
4267      varFixLineWidth =
4268        $("body").hasClass("with_decorate") && window.matchMedia("(min-width: 1100px)").matches ? 126 : 7;
4269
4270    $(".menu-row .left_border, .menu-row .right_border").css("width", positionMenu - varFixLineWidth);
4271  }
4272};
4273
4274SetFixedAskBlock = function () {
4275  if ($(".ask_a_question_wrapper").length) {
4276    var offset = $(".ask_a_question_wrapper").offset(),
4277      footer_offset = 0,
4278      block = $(".ask_a_question_wrapper").find(".ask_a_question"),
4279      block_offset = BX.pos(block[0]),
4280      block_height = block_offset.bottom - block_offset.top,
4281      diff_top_scroll = $("#headerfixed").height() + 20;
4282
4283    if ($("footer").length) footer_offset = $("footer").offset().top;
4284
4285    if ($(".banner.CONTENT_BOTTOM").length) footer_offset = $(".banner.CONTENT_BOTTOM").offset().top;
4286
4287    if (block_height + diff_top_scroll + documentScrollTopLast + 130 > footer_offset) {
4288      block.removeClass("fixed").css({ top: "auto", width: "auto", bottom: 0 });
4289      block.parent().css("position", "static");
4290      block.parent().parent().css("position", "static");
4291    } else {
4292      block.parent().removeAttr("style");
4293      block.parent().parent().removeAttr("style");
4294
4295      if (documentScrollTopLast + diff_top_scroll > offset.top) {
4296        var fixed_width = $(".fixed_block_fix").width();
4297        block.addClass("fixed").css({ top: diff_top_scroll, bottom: "auto" });
4298        if (fixed_width) block.css({ width: $(".fixed_block_fix").width() });
4299      } else block.removeClass("fixed").css({ top: 0, width: "auto" });
4300    }
4301  }
4302};
4303
4304MegaMenuFixed = function () {
4305  var animationTime = 150,
4306    $megaFixedNlo = $(".mega_fixed_menu").find("[data-nlo]");
4307
4308  $("header .burger, #headerfixed .burger").on("click", function () {
4309    if ($megaFixedNlo.length) {
4310      if (!$megaFixedNlo.hasClass("nlo-loadings")) {
4311        $megaFixedNlo.addClass("nlo-loadings");
4312        setTimeout(function () {
4313          $.ajax({
4314            data: { nlo: $megaFixedNlo.attr("data-nlo") },
4315            success: function (response) {
4316              $megaFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
4317              $megaFixedNlo.remove();
4318            },
4319            error: function () {
4320              $megaFixedNlo.removeClass("nlo-loadings");
4321            },
4322          });
4323        }, 300);
4324      }
4325    }
4326
4327    $(".mega_fixed_menu").fadeIn(animationTime);
4328  });
4329
4330  $(".mega_fixed_menu .svg.svg-close").on("click", function () {
4331    $(this).closest(".mega_fixed_menu").fadeOut(animationTime);
4332    //$('.header_wrap').toggleClass('zindexed');
4333  });
4334
4335  $(".mega_fixed_menu .dropdown-menu .arrow").on("click", function (e) {
4336    e.preventDefault();
4337    e.stopPropagation();
4338    $(this).closest(".dropdown-submenu").find(".dropdown-menu").slideToggle(animationTime);
4339    $(this).closest(".dropdown-submenu").addClass("opened");
4340  });
4341};
4342
4343CheckPopupTop = function () {};
4344
4345AjaxClickLink = function (e) {
4346  var _this = "",
4347    container = $(".js-load-wrapper"),
4348    container_inner = $(".js-load-wrapper").find(".ajax_load"),
4349    dopAction = "";
4350  url = "";
4351  if ("preventDefault" in e) {
4352    e.preventDefault();
4353    _this = $(e.target).hasClass("js-load-link") ? $(e.target) : $(e.target).closest(".js-load-link");
4354  } else {
4355    _this = $(e);
4356    dopAction = "Y";
4357  }
4358
4359  if (container.length) {
4360    var objUrl = parseUrlQuery(),
4361      obGetData = { ajax_get_filter: "Y", control_ajax: "Y" };
4362
4363    obGetData.bitrix_include_areas = "N";
4364
4365    if ("clear_cache" in objUrl) {
4366      if (objUrl.clear_cache == "Y") {
4367        obGetData.clear_cache = "Y";
4368      }
4369    }
4370
4371    if (container_inner.length) {
4372      container_inner.addClass("loading-state");
4373    } else {
4374      container.addClass("loading-state");
4375    }
4376
4377    if (_this.data("url")) {
4378      url = _this.data("url");
4379    }
4380
4381    if (_this.data("click_block") && $(_this.data("click_block")).length) {
4382      if ($(_this.data("click_block")).data("url")) {
4383        url = $(_this.data("click_block")).data("url");
4384      }
4385    }
4386
4387    if (dopAction) {
4388      BX.PopupWindowManager.getCurrentPopup().close();
4389      $(".bx_filter_select_popup ul li .sort_btn").removeClass("current");
4390      _this.addClass("current");
4391      _this.closest(".bx_filter_block").find(".bx_filter_select_text").text(_this.text());
4392    }
4393
4394    $(".bx_filter .bx_sort_filter .bx_filter_select_text").text(_this.text());
4395    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li span.current").removeClass("current");
4396    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li")
4397      .eq(_this.parent().index())
4398      .find("span")
4399      .addClass("current");
4400
4401    $.ajax({
4402      url: url,
4403      data: obGetData,
4404      success: function (html) {
4405        container.html(html);
4406
4407        if (container_inner.length) container_inner.removeClass("loading-state");
4408        else container.removeClass("loading-state");
4409
4410        initAnimateLoad();
4411
4412        var eventdata = { action: "jsLoadBlock" };
4413        BX.onCustomEvent("onCompleteAction", [eventdata, _this]);
4414
4415        BX.onCustomEvent("onHeaderProgressBarChange", [{}]);
4416
4417        initSelects(document);
4418        // InitCustomScrollBar();
4419        // InitScrollBar();
4420
4421        if (window.FilterHelper !== undefined) {
4422          FilterHelper.resultDiv = $("#filter-helper");
4423          FilterHelper.show();
4424        }
4425      },
4426    });
4427  }
4428};
4429
4430initCalculatePreview = function (removeAppearAttr) {
4431  $(".calculate-delivery.with_preview:not(.inited)").each(function () {
4432    if (removeAppearAttr) {
4433      $(this).attr("data-i-appeared", "");
4434    }
4435    var $this = $(this);
4436    var $calculateSpan = $this.find("span[data-event=jqm]");
4437    var $preview = $this.find(".calculate-delivery-preview");
4438
4439    $this.addClass("inited");
4440    $this.iAppear(
4441      function () {
4442        if ($calculateSpan.length) {
4443          if (typeof window["calculate-delivery-preview-index"] === "undefined") {
4444            window["calculate-delivery-preview-index"] = 1001;
4445          } else {
4446            ++window["calculate-delivery-preview-index"];
4447          }
4448
4449          var productId = $calculateSpan.attr("data-param-product_id") * 1;
4450          var quantity = $calculateSpan.attr("data-param-quantity") * 1;
4451
4452          if (productId > 0) {
4453            var areaIndexSended = window["calculate-delivery-preview-index"];
4454            $calculateSpan.data({ areaIndex: areaIndexSended });
4455
4456            $.ajax({
4457              url: arAsproOptions["SITE_DIR"] + "ajax/delivery.php",
4458              type: "POST",
4459              data: {
4460                is_preview: "Y",
4461                index: areaIndexSended,
4462                product_id: productId,
4463                quantity: quantity,
4464              },
4465              beforeSend: function () {
4466                $this.addClass("loadings");
4467              },
4468              success: function (response) {
4469                var areaIndex = $calculateSpan.data("areaIndex");
4470                if (typeof areaIndex !== "undefined" && areaIndex == areaIndexSended) {
4471                  $calculateSpan.hide();
4472                  $preview.html(response);
4473                  if (!$preview.find(".catalog-delivery-preview").length) {
4474                    $preview.empty();
4475                    $calculateSpan.show();
4476                  }
4477                }
4478              },
4479              error: function (xhr, ajaxOptions, thrownError) {},
4480              complete: function () {
4481                var areaIndex = $calculateSpan.data("areaIndex");
4482                if (typeof areaIndex !== "undefined" && areaIndex == areaIndexSended) {
4483                  $this.removeClass("loadings");
4484                }
4485              },
4486            });
4487          }
4488        }
4489      },
4490      { accX: 0, accY: 0 }
4491    );
4492  });
4493};
4494
4495/* set price item */
4496if (!funcDefined("setPriceItem")) {
4497  var setPriceItem = function setPriceItem(
4498    main_block,
4499    quantity,
4500    rewrite_price,
4501    check_quantity,
4502    is_sku,
4503    show_percent,
4504    percent
4505  ) {
4506    var old_quantity = main_block.find(".to-cart").attr("data-ratio"),
4507      value =
4508        typeof rewrite_price !== "undefined" && rewrite_price
4509          ? rewrite_price
4510          : main_block.find(".to-cart").attr("data-value"),
4511      currency = main_block.find(".to-cart").attr("data-currency"),
4512      total_block =
4513        '<div class="total_summ" style="display:none;"><div>' +
4514        BX.message("TOTAL_SUMM_ITEM") +
4515        "<span></span></div></div>",
4516      price_block = main_block.find(".cost.prices"),
4517      use_percent = typeof show_percent !== "undefined" && show_percent == "Y",
4518      percent_number = typeof percent !== "undefined" && percent,
4519      sku_checked = main_block.find(".has_offer_prop").length ? "Y" : "N",
4520      check = typeof check_quantity !== "undefined" && check_quantity;
4521
4522    if (main_block.find(".wrapp-one-click").length) {
4523      if (!main_block.find(".total_summ").length && !is_sku)
4524        $(total_block).insertAfter(main_block.find(".wrapp-one-click"));
4525    } else if (main_block.find(".buy_block").length) {
4526      if (!main_block.find(".buy_block .total_summ").length && !is_sku)
4527        $(total_block).appendTo(main_block.find(".buy_block"));
4528    } else if (main_block.find(".counter_wrapp").length) {
4529      if (!main_block.find(".total_summ").length && !is_sku)
4530        $(total_block).appendTo(main_block.find(".counter_wrapp:first"));
4531    }
4532    if (main_block.find(".total_summ").length) {
4533      if (value && currency) {
4534        if ((1 == quantity && old_quantity == quantity) || (typeof is_sku !== "undefined" && is_sku && !check)) {
4535          main_block.find(".total_summ").slideUp(50);
4536        } else {
4537          main_block.find(".total_summ span").html(BX.Currency.currencyFormat(value * quantity, currency, true));
4538          if (main_block.find(".total_summ").is(":hidden")) main_block.find(".total_summ").slideDown(100);
4539        }
4540      } else {
4541        main_block.find(".total_summ").slideUp(100);
4542      }
4543    }
4544  };
4545}
4546
4547if (!funcDefined("getCurrentPrice")) {
4548  var getCurrentPrice = function getCurrentPrice(price, currency, print_price) {
4549    var val = "";
4550    var format_value = BX.Currency.currencyFormat(price, currency);
4551    if (print_price.indexOf(format_value) >= 0) {
4552      val = print_price.replace(
4553        format_value,
4554        '<span class="price_value">' + format_value + '</span><span class="price_currency">'
4555      );
4556      val += "</span>";
4557    } else {
4558      val = print_price;
4559    }
4560
4561    return val;
4562  };
4563}
4564
4565if (!funcDefined("initAnimateLoad")) {
4566  var initAnimateLoad = function initAnimateLoad() {
4567    $(".animate-load").click(function () {
4568      if (!jQuery.browser.mobile) {
4569        $(this).parent().addClass("loadings");
4570      }
4571    });
4572  };
4573}
4574
4575if (!funcDefined("showBasketShareBtn")) {
4576  var showBasketShareBtn = function () {
4577    if (arAsproOptions["THEME"]["SHOW_SHARE_BASKET"] === "Y") {
4578      if (!document.querySelector(".basket-checkout-block-btns")) {
4579        var checkout = document.querySelector(".basket-checkout-section-inner");
4580        if (checkout) {
4581          var btns = BX.create({
4582            tag: "div",
4583            attrs: {
4584              class: "basket-checkout-block basket-checkout-block-btns",
4585            },
4586            html: '<div class="basket-checkout-block-btns-wrap"></div>',
4587          });
4588
4589          BX.insertAfter(btns, BX.lastChild(checkout));
4590          var btnsWrap = btns.querySelector(".basket-checkout-block-btns-wrap");
4591
4592          var btnCheckout = checkout.querySelector(".basket-checkout-block-btn");
4593          if (btnCheckout) {
4594            btnsWrap.appendChild(btnCheckout);
4595          }
4596
4597          var btnFastOrder = checkout.querySelector(".fastorder");
4598          if (btnFastOrder) {
4599            btnsWrap.appendChild(btnFastOrder);
4600          }
4601
4602          if ($(".basket-btn-checkout").length && !$(".basket-btn-checkout").hasClass("disabled")) {
4603            var btnShareBasket = BX.create({
4604              tag: "div",
4605              attrs: {
4606                class: "basket-checkout-block basket-checkout-block-share colored_theme_hover_bg-block",
4607                title: arAsproOptions["THEME"]["EXPRESSION_FOR_SHARE_BASKET"],
4608              },
4609              html:
4610                '<span class="animate-load" data-event="jqm" data-param-form_id="share_basket" data-name="share_basket"><i class="svg colored_theme_hover_bg-el-svg"><svg class="svg svg-share" xmlns="http://www.w3.org/2000/svg" width="14" height="16" viewBox="0 0 14 16"><path data-name="Ellipse 223 copy 8" d="M1613,203a2.967,2.967,0,0,1-1.86-.661l-3.22,2.01a2.689,2.689,0,0,1,0,1.3l3.22,2.01A2.961,2.961,0,0,1,1613,207a3,3,0,1,1-3,3,3.47,3.47,0,0,1,.07-0.651l-3.21-2.01a3,3,0,1,1,0-4.678l3.21-2.01A3.472,3.472,0,0,1,1610,200,3,3,0,1,1,1613,203Zm0,8a1,1,0,1,0-1-1A1,1,0,0,0,1613,211Zm-8-7a1,1,0,1,0,1,1A1,1,0,0,0,1605,204Zm8-5a1,1,0,1,0,1,1A1,1,0,0,0,1613,199Z" transform="translate(-1602 -197)" fill="#B8B8B8"></path></svg></i><span class="title">' +
4611                arAsproOptions["THEME"]["EXPRESSION_FOR_SHARE_BASKET"] +
4612                "</span></span>",
4613            });
4614
4615            btnsWrap.appendChild(btnShareBasket);
4616            initAnimateLoad();
4617          }
4618        }
4619      }
4620    }
4621  };
4622}
4623
4624if (!funcDefined("showBasketHeadingBtn")) {
4625  var showBasketHeadingBtn = function () {
4626    if (document.querySelector(".page-top h1")) {
4627      var topicHeading = document.querySelector(".page-top .topic .topic__heading");
4628      if (topicHeading) {
4629        if (arAsproOptions["THEME"]["SHOW_BASKET_PRINT"] === "Y") {
4630          if (!document.querySelector(".btn_basket_heading--print")) {
4631            var btnPrintBasket = BX.create({
4632              tag: "div",
4633              attrs: {
4634                class: "btn_basket_heading btn_basket_heading--print print-link colored_theme_hover_bg-block",
4635                title: arAsproOptions["THEME"]["EXPRESSION_FOR_PRINT_PAGE"],
4636              },
4637              html: '<i class="svg colored_theme_hover_bg-el-svg"><svg class="svg svg-print" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewB
4637ox="0 0 16 16"><path id="Rectangle_665_copy_4" data-name="Rectangle 665 copy 4" class="cls-print" d="M1570,210h-2v3h-8v-3h-2a2,2,0,0,1-2-2v-5a2,2,0,0,1,2-2h2v-4h8v4h2a2,2,0,0,1,2,2v5A2,2,0,0,1,1570,210Zm-8,1h4v-4h-4v4Zm4-12h-4v2h4v-2Zm4,4h-12v5h2v-3h8v3h2v-5Z" transform="translate(-1556 -197)"></path></svg></i>',
4638            });
4639            BX.insertBefore(btnPrintBasket, topicHeading);
4640          }
4641        }
4642
4643        if ($(".basket-btn-checkout").length && !$(".basket-btn-checkout").hasClass("disabled")) {
4644          // if(arAsproOptions['THEME']['SHOW_SEND_BASKET_2EMAIL'] === 'Y'){
4645          // if(!document.querySelector('.btn_basket_heading--send2email')){
4646          // 	var btnSendBasket2Email = BX.create({
4647          // 		tag: 'div',
4648          // 		attrs: {
4649          // 			class: 'btn_basket_heading btn_basket_heading--with_title btn_basket_heading--send2email colored_theme_hover_bg-block',
4650          // 			title: arAsproOptions['THEME']["EXPRESSION_FOR_SEND_BASKET_2EMAIL"],
4651          // 		},
4652          // 		html: '<i class="svg colored_theme_hover_bg-el-svg"><svg class="svg" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M3 0H4H12H13V1V3.125L15.06 4.4125C15.6448 4.77798 16 5.41892 16 6.1085V6.98162C16.0002 6.99325 16.0002 7.00488 16 7.01649V14C16 15.1046 15.1046 16 14 16H2C0.895429 16 -1.43918e-06 15.1046 -1.43918e-06 14V7.01644C-0.000202747 7.00486 -0.000203195 6.99327 -1.43918e-06 6.98167V6.1085C-1.43918e-06 5.41892 0.355238 4.77798 0.940001 4.4125L3 3.125V1V0ZM5 4.2335L5 2H11V7L11 8.23381L9.62943 9.05615L8.64018 8.23178C8.26934 7.92274 7.73066 7.92274 7.35981 8.23178L6.37057 9.05615L5 8.23381V4.2335ZM2 6.1085L3 5.4835V7.03381L2 6.43381V6.1085ZM14 6.1085L13 5.4835V7.03381L14 6.43381V6.1085ZM12.4379 14L8 10.3017L3.56205 14H12.4379ZM14 12.6983V8.76619L11.2567 10.4122L14 12.6983ZM2 8.76619V12.6983L4.74333 10.4122L2 8.76619Z" fill="#B8B8B8"/></svg></i><span class="title">' + arAsproOptions['THEME']["EXPRESSION_FOR_SEND_BASKET_2EMAIL"] + '</span>',
4653          // 	});
4654          // 	BX.insertBefore(btnSendBasket2Email, topicHeading);
4655          // }
4656          // }
4657
4658          if (arAsproOptions["THEME"]["SHOW_DOWNLOAD_BASKET"] === "Y") {
4659            if (!document.querySelector(".btn_basket_heading--download")) {
4660              var btnDownloadBasket = BX.create({
4661                tag: "div",
4662                attrs: {
4663                  class:
4664                    "btn_basket_heading btn_basket_heading--with_title btn_basket_heading--download colored_theme_hover_bg-block",
4665                  title: arAsproOptions["THEME"]["EXPRESSION_FOR_DOWNLOAD_BASKET"],
4666                },
4667                events: {
4668                  click: BX.proxy(function (e) {
4669                    if (!e) {
4670                      e = window.event;
4671                    }
4672
4673                    BX.PreventDefault(e);
4674
4675                    var button = e.target.closest(".btn_basket_heading");
4676                    if (button) {
4677                      if (BX.hasClass(button, "loadings")) {
4678                        return;
4679                      }
4680
4681                      BX.addClass(button, "loadings");
4682                      setTimeout(function () {
4683                        BX.removeClass(button, "loadings");
4684                      }, 2000);
4685                    }
4686
4687                    location.href =
4688                      arAsproOptions["SITE_DIR"] +
4689                      "ajax/download_basket.php?params[type]=" +
4690                      arAsproOptions["THEME"]["BASKET_FILE_DOWNLOAD_TEMPLATE"];
4691                  }, this),
4692                },
4693                html:
4694                  '<i class="svg colored_theme_hover_bg-el-svg"><svg class="svg" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M5 14H14L14 6H11H10V5V2H5V6H7H9V8V10V12H7H5V14ZM13.6716 4L12 2.32843V4H13.6716ZM6 8H7V10H6H5H3H2V8H3H5H6ZM3 6H2H0V8V10V12H2H3V14V16H5H14H16V14V4.32843C16 3.79799 15.7893 3.28929 15.4142 2.91421L13.0858 0.585786C12.7107 0.210714 12.202 0 11.6716 0H5H3V2V6Z" fill="#B8B8B8"/></svg></i><span class="title">' +
4695                  arAsproOptions["THEME"]["EXPRESSION_FOR_DOWNLOAD_BASKET"] +
4696                  "</span>",
4697              });
4698              BX.insertBefore(btnDownloadBasket, topicHeading);
4699            }
4700          }
4701        } else {
4702          BX.remove(document.querySelector(".btn_basket_heading--send2email"));
4703          BX.remove(document.querySelector(".btn_basket_heading--download"));
4704        }
4705
4706        var eventdata = { parent: topicHeading };
4707        BX.onCustomEvent("onShowBasketHeadingBtn", [eventdata]);
4708      }
4709    }
4710  };
4711}
4712
4713$(window).on("load", function () {
4714  //check width for menu and search
4715  //CheckSearchWidth();
4716});
4717
4718$(document).ready(function () {
4719  MegaMenuFixed();
4720  // InitScrollBar();
4721
4722  /* ripple effect for buttons */
4723  $.ripple(".btn", {
4724    debug: false, // Turn Ripple.js logging on/off
4725    on: "mouseenter", // The event to trigger a ripple effect
4726
4727    opacity: 0.4, // The opacity of the ripple
4728    color: "auto", // Set the background color. If set to "auto", it will use the text color
4729    multi: true, // Allow multiple ripples per element
4730
4731    duration: 0.6, // The duration of the ripple
4732
4733    easing: "linear", // The CSS3 easing function of the ripple
4734  });
4735  /* ripple end */
4736
4737  //ecommerce order
4738  if (arAsproOptions["PAGES"]["ORDER_PAGE"]) {
4739    var arUrl = parseUrlQuery();
4740    if ("ORDER_ID" in arUrl) {
4741      var _id = arUrl["ORDER_ID"];
4742      if (arAsproOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
4743        var eventdata = { goal: "goal_order_success", result: _id };
4744        BX.onCustomEvent("onCounterGoals", [eventdata]);
4745      }
4746      if (checkCounters()) {
4747        if (typeof localStorage !== "undefined") {
4748          var val = localStorage.getItem("gtm_e_" + _id),
4749            d = "";
4750          try {
4751            d = JSON.parse(val);
4752          } catch (e) {
4753            d = val;
4754          }
4755          if (typeof d === "object") {
4756            window.dataLayer = window.dataLayer || [];
4757            dataLayer.push({
4758              event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"],
4759              ecommerce: d,
4760            });
4761          }
4762
4763          if (typeof localStorage !== "undefined") {
4764            localStorage.removeItem("gtm_e_" + _id);
4765          }
4766        }
4767      }
4768    }
4769  }
4770  var bSafary = false;
4771  if (typeof jQuery.browser == "object") bSafary = jQuery.browser.safari;
4772  else if (typeof browser == "object") bSafary = browser.safari;
4773  if (!bSafary) {
4774    CheckTopMenuDotted();
4775    CheckHeaderFixed();
4776    checkMenuLines();
4777  } else {
4778    setTimeout(function () {
4779      $(window).resize(); // need to check resize flexslider & menu
4780      setTimeout(function () {
4781        CheckTopMenuDotted();
4782        CheckHeaderFixed();
4783        checkMenuLines();
4784
4785        setTimeout(function () {
4786          $(window).scroll();
4787        }, 50);
4788      }, 50);
4789    }, 350);
4790  }
4791
4792  showItemStoresAmount();
4793
4794  if (arAsproOptions["THEME"]["USE_DEBUG_GOALS"] === "Y") $.cookie("_ym_debug", 1, { path: "/" });
4795  else $.cookie("_ym_debug", null, { path: "/" });
4796
4797  /* change type2 menu for fixed */
4798  if ($("#headerfixed .js-nav").length) {
4799    setTimeout(function () {
4800      $("#headerfixed .js-nav").addClass("opacity1");
4801    }, 350);
4802  }
4803
4804  // -- scroll after apply option
4805  if ($(".instagram_ajax").length) {
4806    BX.addCustomEvent("onCompleteAction", function (eventdata) {
4807      if (eventdata.action === "instagrammLoaded") scrollPreviewBlock();
4808    });
4809  } else scrollPreviewBlock();
4810
4811  scrollToTop();
4812  checkVerticalMobileFilter();
4813
4814  $("[data-scroll-block]").click(function () {
4815    var _this = $(this);
4816    if (_this.data("scrollBlock")) {
4817      var target = $(_this.data("scrollBlock"));
4818      if (target.length) {
4819        scroll_block(target);
4820      }
4821    }
4822  });
4823
4824  // init calculate delivery with preview
4825  initCalculatePreview();
4826
4827  // fix calendar popup zIndex
4828  BX.addCustomEvent("onPopupShow", function (popup) {
4829    if (
4830      typeof popup !== "undefined" &&
4831      popup &&
4832      popup.zIndexComponent &&
4833      popup.popupContainer &&
4834      popup.popupContainer.querySelector(".bx-calendar")
4835    ) {
4836      popup.zIndexComponent.setZIndex(3000);
4837    }
4838  });
4839
4840  /* city */
4841  $("select.region").on("change", function () {
4842    var val = parseInt($(this).val());
4843    if ($("select.city").length) {
4844      if (val) {
4845        $("select.city option").hide();
4846        $("select.city option").prop("disabled", "disabled");
4847        $("select.city option[data-parent_section=" + val + "]").prop("disabled", "");
4848        $("select.city option:eq(0)").prop("disabled", "");
4849        $("select.city").ikSelect("reset");
4850        $("select.city option[data-parent_section=" + val + "]").show();
4851      } else $("select.city option").prop("disabled", "disabled");
4852      $("select.city option:eq(0)").prop("disabled", "");
4853      $("select.city").ikSelect("reset");
4854    }
4855  });
4856
4857  $("select.city, select.region").on("change", function () {
4858    var _this = $(this),
4859      val = parseInt(_this.val());
4860    if (_this.hasClass("region")) {
4861      $("select.city option:eq(0)").show();
4862      $("select.city").val(0);
4863    }
4864
4865    if ((_this.hasClass("region") && !val) || _this.hasClass("city")) {
4866      $.ajax({
4867        type: "POST",
4868        data: { ID: val },
4869        success: function (html) {
4870          var ob = BX.processHTML(html);
4871          $(".ajax_items")[0].innerHTML = ob.HTML;
4872          BX.ajax.processScripts(ob.SCRIPT);
4873        },
4874      });
4875    }
4876  });
4877
4878  $(document).on("mouseenter", ".section-gallery-wrapper .section-gallery-wrapper__item", function () {
4879    $(this).siblings().removeClass("_active");
4880    $(this).addClass("_active");
4881  });
4882
4883  $(document).on("mouseleave", ".image_wrapper_block", function () {
4884    const $elements = $(this).find(".section-gallery-wrapper .section-gallery-wrapper__item");
4885    if ($elements.length) {
4886      $elements.removeClass("_active");
4887      $($elements[0]).addClass("_active");
4888    }
4889  });
4890
4891  $(document).on("click", ".hint .icon", function (e) {
4892    var tooltipWrapp = $(this).closest(".hint");
4893
4894    if (tooltipWrapp.hasClass("active")) {
4895      tooltipWrapp.removeClass("active").find(".tooltip").slideUp(200);
4896    } else {
4897      tooltipWrapp.addClass("active");
4898      tooltipWrapp.find(".tooltip").slideDown(200);
4899      tooltipWrapp.find(".tooltip_close").click(function (e) {
4900        e.stopPropagation();
4901        tooltipWrapp.removeClass("active").find(".tooltip").slideUp(100);
4902      });
4903    }
4904    e.stopPropagation();
4905  });
4906
4907  /* toggle */
4908  var $this = this,
4909    previewParClosedHeight = 25;
4910
4911  $("section.toggle > label").prepend($("<i />").addClass("fa fa-plus"));
4912  $("section.toggle > label").prepend($("<i />").addClass("fa fa-minus"));
4913  $("section.toggle.active > p").addClass("preview-active");
4914  $("section.toggle.active > div.toggle-content").slideDown(350, function () {});
4915
4916  $("section.toggle > label").click(function (e) {
4917    var parentSection = $(this).parent(),
4918      parentWrapper = $(this).parents("div.toogle"),
4919      previewPar = false,
4920      isAccordion = parentWrapper.hasClass("toogle-accordion");
4921
4922    if (isAccordion && typeof e.originalEvent != "undefined") {
4923      parentWrapper.find("section.toggle.active > label").trigger("click");
4924    }
4925
4926    parentSection.toggleClass("active");
4927
4928    // Preview Paragraph
4929    if (parentSection.find("> p").get(0)) {
4930      previewPar = parentSection.find("> p");
4931      var previewParCurrentHeight = previewPar.css("height");
4932      previewPar.css("height", "auto");
4933      var previewParAnimateHeight = previewPar.css("height");
4934      previewPar.css("height", previewParCurrentHeight);
4935    }
4936
4937    // Content
4938    var toggleContent = parentSection.find("> div.toggle-content");
4939
4940    if (parentSection.hasClass("active")) {
4941      $(previewPar).animate(
4942        {
4943          height: previewParAnimateHeight,
4944        },
4945        350,
4946        function () {
4947          $(this).addClass("preview-active");
4948        }
4949      );
4950      toggleContent.slideDown(350, function () {});
4951    } else {
4952      $(previewPar).animate(
4953        {
4954          height: previewParClosedHeight,
4955        },
4956        350,
4957        function () {
4958          $(this).removeClass("preview-active");
4959        }
4960      );
4961      toggleContent.slideUp(350, function () {});
4962    }
4963  });
4964
4965  if (typeof $.fn.footable == "function") {
4966    $(".tables-responsive .responsive").footable(); //responsive table
4967  }
4968
4969  $("a[rel=tooltip]").tooltip();
4970  $("span[data-toggle=tooltip]").tooltip();
4971
4972  $(document).on("click", ".toggle .more_items", function () {
4973    $(this).closest(".toggle").find(".collapsed").removeClass("collapsed");
4974    $(this).remove();
4975    if (typeof $(this).data("resize") !== "undefined" && $(this).data("resize")) $(window).resize();
4976  });
4977  $(document).on("click", ".toggle_menu .more_items", function () {
4978    $(this).closest(".toggle_menu").find(".collapsed").addClass("clicked_exp");
4979    $(this).remove();
4980  });
4981
4982  /* search sync */
4983  $(document).on("keyup", ".search-input-div input", function (e) {
4984    var inputValue = $(this).val();
4985    $(".search-input-div input:not(:focus").val(inputValue);
4986
4987    if ($(this).closest("#headerfixed").length) {
4988      if (e.keyCode == 13) $(".search form").submit();
4989    }
4990  });
4991  $(document).on("click", ".search-button-div button", function (e) {
4992    if ($(this).closest("#headerfixed").length) $(".search form").submit();
4993  });
4994
4995  $(".inline-search-show, .inline-search-hide").on("click", function (e) {
4996    CloseMobilePhone();
4997    // Closing hint list of items after search input loses focus
4998    if (e.target.closest(".inline-search-hide")) {
4999      if (typeof jsControl === "object" && jsControl && "onFocusLost" in jsControl) {
5000        jsControl.onFocusLost();
5001      }
5002    }
5003    if (typeof $(this).data("type_search") != "undefined" && $(this).data("type_search") == "fixed")
5004      $(".inline-search-block").addClass("fixed");
5005
5006    if (arAsproOptions["THEME"]["TYPE_SEARCH"] == "fixed") {
5007      $(".inline-search-block.fixed.big .search-input").focus();
5008    }
5009    if (arAsproOptions["THEME"]["TYPE_SEARCH"] != "fixed") {
5010      $("#title-search-input").focus();
5011    }
5012
5013    $(".inline-search-block").toggleClass("show");
5014    if ($(".top-block").length) {
5015      if ($(".inline-search-block").hasClass("show"))
5016        $(".inline-search-block").css("background", $(".top-block").css("background-color"));
5017      else $(".inline-search-block").css("background", "#fff");
5018    }
5019    if (arAsproOptions["THEME"]["TYPE_SEARCH"] == "fixed") {
5020      if ($(".inline-search-block").hasClass("show")) $('<div class="jqmOverlay search"></div>').appendTo("body");
5021      else {
5022        $("#title-search-input").blur();
5023        $(".jqmOverlay").detach();
5024      }
5025    }
5026    // }
5027    // else
5028    // 	location.href = arAsproOptions['PAGES']['CATALOG_PAGE_URL']+'?q';
5029  });
5030
5031  /* close search block */
5032  $("html, body").on("mousedown", function (e) {
5033    if (typeof e.target.className == "string" && e.target.className.indexOf("adm") < 0) {
5034      e.stopPropagation();
5035      var search_target = $(e.target).closest(".title-search-result");
5036      if (
5037        !$(e.target).closest(".inline-search-block").length &&
5038        !$(e.target).closest(".dropdown-select.searchtype").length &&
5039        !$(e.target).hasClass("svg") &&
5040        !search_target.length
5041      ) {
5042        $(".inline-search-block").removeClass("show");
5043        $(".title-search-result").hide();
5044        if (arAsproOptions["THEME"]["TYPE_SEARCH"] == "fixed") $(".jqmOverlay.search").detach();
5045      }
5046
5047      if ($("#mobilePhone").length) {
5048        CloseMobilePhone();
5049      }
5050
5051      if ($("#basket_line .basket_fly").length && parseInt($("#basket_line .basket_fly").css("right")) >= 0) {
5052        if (!$(e.target).closest(".basket_wrapp").length) {
5053          $("#basket_line .basket_fly")
5054            .stop()
5055            .animate(
5056              {
5057                right: -$("#basket_line .basket_fly").outerWidth(),
5058              },
5059              150
5060            );
5061          $("#basket_line .basket_fly .opener > div").removeClass("cur");
5062          $("#basket_line .basket_fly").removeClass("swiped");
5063        }
5064      }
5065
5066      if (isMobile) {
5067        if (search_target.length) location.href = search_target.attr("href");
5068      }
5069
5070      if (!$(e.target).closest(".js-info-block").length && !$(e.target).closest(".js-show-info-block").length) {
5071        $(".js-show-info-block").removeClass("opened");
5072        $(".js-info-block").fadeOut();
5073      }
5074
5075      if (!$(e.target).closest(".hint.active").length) {
5076        $(".hint.active .icon").trigger("click");
5077      }
5078
5079      var class_name = $(e.target).attr("class");
5080      if (typeof class_name == "undefined" || class_name.indexOf("tooltip") < 0)
5081        //tooltip link
5082        $(".tooltip-link").tooltip("hide");
5083    }
5084  });
5085
5086  initAnimateLoad();
5087
5088  /* check all opt table items */
5089  $(document).on("change", "input#select_all_items", function () {
5090    var _this = $(this);
5091    var notOfferCount = 0;
5092    var bComplect = _this.closest(".complect_main_wrap").length;
5093    if (bComplect) {
5094      notOfferCount = _this
5095        .closest(".complect_main_wrap")
5096        .find(".catalog-block-view__item .counter_wrapp:not(.ce_cmp_visible) .button_block .to-cart").length;
5097    } else {
5098      notOfferCount = $(
5099        ".table-view__item:not([data-product_type=3]), .table-view-offer-tree .table-view__item[data-product_type=3] .counter_wrapp:not(.ce_cmp_visible)"
5100      ).find(".button_block .to-cart").length;
5101    }
5102    var wishCount = $(
5103      ".table-view__item:not([data-product_type=3]), .table-view-offer-tree .table-view__item[data-product_type=3]"
5104    ).find(".item-icons .wish_item_button .wish_item.to").length;
5105    var allGoodsCount = $(".table-view__item").length;
5106
5107    if (_this.is(":checked")) {
5108      //buy && wish
5109      if (notOfferCount != 0) {
5110        $(".opt_action:not([data-action=compare])").removeClass("no-action");
5111      }
5112
5113      //compare
5114      $(".opt_action[data-action=compare]").removeClass("no-action");
5115
5116      $(".opt_action").addClass("animate-load");
5117      $(".opt_action .text").remove();
5118
5119      //buy
5120      $('<div class="text">(<span>' + notOfferCount + "</span>)</div>").appendTo($(".opt_action[data-action=buy]"));
5121
5122      //wish
5123      $('<div class="text muted">(<span>' + wishCount + "</span>)</div>").appendTo($(".opt_action[data-action=wish]"));
5124
5125      //compare
5126      $('<div class="text muted">(<span>' + allGoodsCount + "</span>)</div>").appendTo(
5127        $(".opt_action[data-action=compare]")
5128      );
5129
5130      $('input[name="chec_item"]').prop("checked", true);
5131    } else {
5132      $(".opt_action").addClass("no-action");
5133      $(".opt_action").removeClass("animate-load");
5134      $(".opt_action .text").remove();
5135
5136      $('input[name="chec_item"]').prop("checked", false);
5137    }
5138
5139    if (_this.closest(".complect_header_block").length && typeof setNewPriceComplect === "function") {
5140      setNewPriceComplect();
5141    }
5142  });
5143
5144  /* check opt table item */
5145  $(document).on("change", "input[name='chec_item']", function () {
5146    var _this = $(this);
5147
5148    var canBuy =
5149      _this.closest(".table-view__item").find(".button_block .to-cart").length ||
5150      _this.closest(".catalog-block-view__item").find(".button_block .to-cart").length;
5151    var isOffer = _this.closest(".main_item_wrapper").attr("data-product_type") == "3" && !canBuy;
5152
5153    if (_this.is(":checked")) {
5154      $(".opt_action").each(function () {
5155        var _this = $(this);
5156
5157        var isBuyAction = _this.attr("data-action") == "buy";
5158        var isFavoriteAction = _this.attr("data-action") == "favorite";
5159
5160        if (isOffer && (isBuyAction || isFavoriteAction)) {
5161          return true;
5162        }
5163
5164        if (isBuyAction && !canBuy) {
5165          return true;
5166        }
5167
5168        if (_this.find(".text").length) {
5169          var count = parseInt(_this.find(".text span").text());
5170          _this.find(".text span").text(++count);
5171        } else {
5172          _this.removeClass("no-action");
5173          _this.addClass("animate-load");
5174          $('<div class="text muted">(<span>1</span>)</div>').appendTo(_this);
5175        }
5176      });
5177    } else {
5178      $(".opt_action").each(function () {
5179        var _this = $(this);
5180
5181        var isBuyAction = _this.attr("data-action") == "buy";
5182        var isFavoriteAction = _this.attr("data-action") == "favorite";
5183
5184        if (isOffer && (isBuyAction || isFavoriteAction)) {
5185          return true;
5186        }
5187
5188        if (isBuyAction && !canBuy) {
5189          return true;
5190        }
5191
5192        if (_this.find(".text").length) {
5193          var count = parseInt(_this.find(".text span").text());
5194          --count;
5195          _this.find(".text span").text(count);
5196
5197          if (!count) {
5198            _this.addClass("no-action");
5199            _this.removeClass("animate-load");
5200            _this.find(".text").remove();
5201          }
5202        }
5203      });
5204    }
5205  });
5206
5207  /* buy|wish|compare opt table items */
5208  $(document).on("click", ".opt_action", function (event) {
5209    var _this = $(this),
5210      action = _this.data("action"),
5211      itemsAll = [],
5212      basketParams = {
5213        type: "multiple",
5214        iblock_id: _this.data("iblock_id"),
5215        action: action,
5216        items: {},
5217      };
5218
5219    if (!_this.hasClass("no-action")) {
5220      $(".opt_action").addClass("no-action");
5221      _this.removeClass("no-action");
5222
5223      $(".table-view__item, .catalog-block-view__item").each(function () {
5224        var _this = $(this);
5225        var canBuy = _this.find(".button_block .to-cart").length;
5226        var add = _this.find('input[name="chec_item"]').is(":checked") && (canBuy || action != "buy");
5227        var addOffer = _this.data("product_type") == "3" && _this.find(".button_block .to-cart").length;
5228        if (add) {
5229          var itemId = addOffer ? _this.find(".button_block .to-cart").data("item") : _this.data("id");
5230          itemsAll.push(_this[0]);
5231          basketParams["items"][itemId] = {};
5232          basketParams["items"][itemId]["id"] = itemId;
5233          basketParams["items"][itemId]["product_type"] = _this.data("product_type");
5234          basketParams["items"][itemId]["quantity"] = _this.find('input[name="quantity"]').val();
5235          if (addOffer) {
5236            basketParams["items"][itemId]["add_offer"] = "Y";
5237          }
5238        }
5239      });
5240
5241      if (basketParams.action !== "buy") {
5242        let itemAction = JItemAction.factory(this, {
5243          bindEvents: false,
5244          changeState: false,
5245          fireGoals: false,
5246        });
5247        itemAction.data = basketParams;
5248        itemAction.onCompleteEvent = () => {
5249          itemAction.showNotice(itemsAll);
5250          itemAction.finalAction();
5251        };
5252
5253        itemAction.fireEvent(event);
5254
5255        $(".opt_action").removeClass("no-action");
5256
5257        return;
5258      }
5259
5260      $.ajax({
5261        type: "POST",
5262        url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
5263        data: basketParams,
5264        dataType: "json",
5265        success: function (data) {
5266          if ("STATUS" in data) {
5267            if (data.STATUS !== "OK") {
5268              showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT);
5269            }
5270
5271            //js notice
5272            if (typeof JNoticeSurface !== "undefined") {
5273              switch (action) {
5274                case "buy":
5275                  JNoticeSurface.get().onAdd2cart(itemsAll);
5276                  break;
5277                default:
5278                  console.log("nothing");
5279              }
5280            }
5281            //
5282
5283            if ($(".header-cart.fly").length) {
5284              arBasketAsproCounters.DEFAULT = true;
5285              SetActualBasketFlyCounters(true);
5286            } else {
5287              if ($("#ajax_basket").length) {
5288                reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "N", "", true);
5289              } else {
5290                reloadBasketCounters("", true);
5291              }
5292            }
5293          }
5294          _this.parent().removeClass("loadings");
5295          $(".opt_action").removeClass("no-action");
5296        },
5297      });
5298    }
5299  });
5300
5301  //fix opt checked for back in browser
5302  setTimeout(function () {
5303    if ($('.with-opt-buy input[name="chec_item"], .with-opt-buy input[name="select_all_items"]').length) {
5304      $('.with-opt-buy input[name="chec_item"], .with-opt-buy input[name="select_all_items"]').prop("checked", false);
5305    }
5306  }, 1);
5307
5308  $(document).on("click", '*[data-event="jqm"]', function (e) {
5309    e.preventDefault();
5310    e.stopPropagation();
5311
5312    var _this = $(this);
5313    var name = _this.data("name");
5314    if (previewMode && ((name.length && name == "auth") || window.matchMedia("(max-width:400px)").matches)) {
5315      var script = arAsproOptions["SITE_DIR"] + "form/";
5316      var paramsStr = "";
5317      $.each(_this.get(0).attributes, function (index, attr) {
5318        var attrName = attr.nodeName;
5319        var attrValue = _this.attr(attrName);
5320        if (/^data\-param\-(.+)$/.test(attrName)) {
5321          var key = attrName.match(/^data\-param\-(.+)$/)[1];
5322          paramsStr += key + "=" + attrValue + "&";
5323        }
5324      });
5325
5326      script += "?name=" + name + "&" + paramsStr;
5327
5328      if (_this.attr("href") !== undefined) {
5329        script = _this.attr("href");
5330      }
5331
5332      location.href = script;
5333    } else {
5334      if (!$(this).hasClass("clicked")) {
5335        $(this).addClass("clicked");
5336        $(this).jqmEx();
5337        // $(this).trigger("click");
5338      }
5339    }
5340
5341    return false;
5342  });
5343  // }
5344
5345  BX.addCustomEvent("onCompleteAction", function (eventdata, _this) {
5346    try {
5347      if (eventdata.action === "loadForm") {
5348        $(_this).parent().removeClass("loadings");
5349        $(_this).removeClass("clicked");
5350
5351        if ($(_this).hasClass("one_click_buy_trigger")) {
5352          $(".wrapp_one_click > span").removeClass("clicked");
5353          $(".one_click").removeClass("clicked");
5354        } else if ($(_this).hasClass("one_click_buy_basket_trigger")) {
5355          $(".fast_order").removeClass("clicked");
5356        }
5357      } else if (eventdata.action === "loadBasket") {
5358        $(".basket-link.basket").attr("title", $("<div/>").html(arBasketPrices.BASKET_SUMM_TITLE).text());
5359
5360        if (arBasketPrices.BASKET_COUNT > 0) {
5361          $(".basket-link.basket").addClass("basket-count");
5362          $(".basket-link.basket .count").removeClass("empted");
5363          if ($(".basket-link.basket .prices").length)
5364            $(".basket-link.basket .prices").html(arBasketPrices.BASKET_SUMM);
5365        } else {
5366          $(".basket-link.basket").removeClass("basket-count");
5367          $(".basket-link.basket .count").addClass("empted");
5368          if ($(".basket-link.basket .prices").length)
5369            $(".basket-link.basket .prices").html(arBasketPrices.BASKET_SUMM_TITLE_SMALL);
5370        }
5371        $(".basket-link.basket .count").text(arBasketPrices.BASKET_COUNT);
5372
5373        updateBottomIconsPanel(arBasketPrices);
5374      } else if (eventdata.action === "loadRSS") {
5375      } else if (eventdata.action === "ajaxContentLoaded") {
5376      } else if (eventdata.action === "jsLoadBlock") {
5377        // initCountdown();
5378        setStatusButton();
5379        setTimeout(function () {
5380          InitOwlSlider();
5381        }, 200);
5382        if (typeof initSwiperSlider === "function") {
5383          initSwiperSlider();
5384        }
5385        InitFancyBox();
5386
5387        checkLinkedArticles();
5388        checkLinkedBlocks(".linked-banners-list");
5389        lazyLoadPagenBlock();
5390
5391        if (typeof window["stickySidebar"] !== "undefined") {
5392          window["stickySidebar"].updateSticky();
5393        }
5394      }
5395    } catch (e) {
5396      console.error(e);
5397    }
5398  });
5399
5400  /* slices */
5401  if ($(".banners-small .item.normal-block").length) $(".banners-small .item.normal-block").sliceHeight();
5402  if ($(".teasers .item").length) $(".teasers .item").sliceHeight();
5403  if ($(".wrap-portfolio-front .row.items > div").length)
5404    $(".wrap-portfolio-front .row.items > div").sliceHeight({
5405      row: ".row.items",
5406      item: ".item1",
5407    });
5408
5409  /* bug fix in ff */
5410  $("img").removeAttr("draggable");
5411
5412  $(".title-tab-heading").on("click", function () {
5413    var container = $(this).parent(),
5414      slide_block = $(this).next(),
5415      bReviewTab = container.hasClass("media_review");
5416
5417    clicked_tab = container.index() + 1;
5418
5419    container.siblings().removeClass("active");
5420
5421    $(".nav.nav-tabs li").removeClass("active");
5422
5423    if (container.hasClass("active")) {
5424      if (bReviewTab) {
5425        $("#reviews_content").slideUp(200, function () {
5426          container.removeClass("active");
5427        });
5428      } else {
5429        slide_block.slideUp(200, function () {
5430          container.removeClass("active");
5431        });
5432      }
5433    } else {
5434      container.addClass("active");
5435      if (bReviewTab) {
5436        $("#reviews_content").slideDown();
5437      } else {
5438        if ($(".tabs_section + #reviews_content").length) $(".tabs_section + #reviews_content").slideUp();
5439        slide_block.slideDown();
5440        if (typeof container.attr("id") !== "undefined" && container.attr("id") == "de
5440scr") {
5441          var $gallery = $(".galerys-block");
5442          if ($gallery.length) {
5443            var bTypeBig = $gallery.find(".big_slider").length;
5444            var $slider = bTypeBig ? $gallery.find(".big_slider") : $gallery.find(".small_slider");
5445            var interval = setInterval(function () {
5446              if ($slider.find(".slides .item").attr("style").indexOf("height") === -1) {
5447                $(window).resize();
5448              } else {
5449                clearInterval(interval);
5450              }
5451            }, 100);
5452          }
5453        }
5454      }
5455    }
5456  });
5457
5458  InitOwlSlider();
5459  InitStickySideBar();
5460  InitFancyBox();
5461  InitFancyBoxVideo();
5462
5463  setTimeout(function () {
5464    InitTopestMenuGummi();
5465    isOnceInited = true;
5466    $(".menu.topest").closest(".dotted-flex-1").addClass("dotted-complete");
5467  }, 50);
5468
5469  InitZoomPict();
5470
5471  /* show print */
5472  if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
5473    showBasketHeadingBtn();
5474  } else {
5475    if (arAsproOptions["THEME"]["PRINT_BUTTON"] === "Y") {
5476      setTimeout(function () {
5477        var topicHeading = document.querySelector(".period_wrapper.in-detail-news1 .period_wrapper_inner")
5478          ? document.querySelector(".detail-news1 .period_wrapper .period_wrapper_inner")
5479          : document.querySelector(".page-top .topic .topic__heading")
5480          ? document.querySelector(".page-top .topic .topic__heading")
5481          : null;
5482        if (topicHeading) {
5483          var btnPrint = BX.create({
5484            tag: "div",
5485            attrs: {
5486              class: "print-link colored_theme_hover_bg-block",
5487              title: arAsproOptions["THEME"]["EXPRESSION_FOR_PRINT_PAGE"],
5488            },
5489            html: '<i class="svg colored_theme_hover_bg-el-svg"><svg class="svg svg-print" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path id="Rectangle_665_copy_4" data-name="Rectangle 665 copy 4" class="cls-print" d="M1570,210h-2v3h-8v-3h-2a2,2,0,0,1-2-2v-5a2,2,0,0,1,2-2h2v-4h8v4h2a2,2,0,0,1,2,2v5A2,2,0,0,1,1570,210Zm-8,1h4v-4h-4v4Zm4-12h-4v2h4v-2Zm4,4h-12v5h2v-3h8v3h2v-5Z" transform="translate(-1556 -197)"></path></svg></i>',
5490          });
5491          BX.insertBefore(btnPrint, topicHeading);
5492        }
5493      }, 150);
5494    }
5495  }
5496
5497  $(document).on("click", ".print-link", function () {
5498    window.print();
5499  });
5500
5501  $(".head-block .item-link").on("click", function () {
5502    var _this = $(this);
5503    _this.siblings().removeClass("active");
5504    _this.addClass("active");
5505  });
5506
5507  $("table.table").each(function () {
5508    var _this = $(this),
5509      first_td = _this.find("thead tr th");
5510    if (!first_td.length) first_td = _this.find("thead tr td");
5511    if (first_td.length) {
5512      var j = 0;
5513      _this.find("tbody tr td").each(function (i) {
5514        if (j > first_td.length - 1) j = 0;
5515        $('<div class="th-mobile">' + first_td[j].textContent + "</div>").appendTo($(this));
5516        j++;
5517      });
5518    }
5519  });
5520
5521  if (window.matchMedia("(min-width: 768px)").matches) $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
5522
5523  if (window.matchMedia("(max-width: 767px)").matches) $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
5524
5525  $(document).on("click", ".menu_top_block .v_bottom a", function (e) {
5526    if ($(e.target).hasClass("toggle_block")) e.preventDefault();
5527  });
5528  $(document).on("click", ".menu_top_block .v_bottom a .toggle_block", function (e) {
5529    var _this = $(this),
5530      menu = _this.closest(".has-child").find("> .dropdown"),
5531      bVisibleMeu = menu.is(":visible"),
5532      animate = bVisibleMeu ? "slideUp" : "slideDown";
5533
5534    if (!_this.hasClass("clicked")) {
5535      _this.addClass("clicked");
5536
5537      menu.stop().slideToggle({
5538        duration: 150,
5539        start: function () {
5540          _this.toggleClass("closed");
5541        },
5542        complete: function () {
5543          _this.removeClass("clicked");
5544
5545          if (typeof window["stickySidebar"] !== "undefined") {
5546            window["stickySidebar"].updateSticky();
5547          }
5548        },
5549      });
5550    }
5551
5552    $(this).closest(".has-child").toggleClass("opened");
5553  });
5554
5555  $(document).on("click", ".show_props", function () {
5556    $(this).prev().stop().slideToggle(333);
5557    $(this).find(".char_title").toggleClass("opened");
5558  });
5559
5560  $(".see_more").on("click", function (e) {
5561    e.preventDefault();
5562    var see_more = $(this).is(".see_more") ? $(this) : $(this).parents(".see_more").first();
5563    var see_moreText = see_more.find("> a").length ? see_more.find("> a") : see_more;
5564    var see_moreHiden = see_more.parent().find("> .d");
5565    if (see_more.hasClass("open")) {
5566      see_moreText.text(BX.message("CATALOG_VIEW_MORE"));
5567      see_more.removeClass("open");
5568      see_moreHiden.hide();
5569    } else {
5570      see_moreText.text(BX.message("CATALOG_VIEW_LESS"));
5571      see_more.addClass("open");
5572      see_moreHiden.show();
5573    }
5574    return false;
5575  });
5576
5577  $(".button.faq_button").click(function (e) {
5578    e.preventDefault();
5579    $(this).toggleClass("opened");
5580    $(".faq_ask .form").slideToggle();
5581  });
5582
5583  $(".staff.list .staff_section .staff_section_title a").click(function (e) {
5584    e.preventDefault();
5585    $(this).parents(".staff_section").toggleClass("opened");
5586    $(this).parents(".staff_section").find(".staff_section_items").stop().slideToggle(600);
5587    $(this).parents(".staff_section_title").find(".opener_icon").toggleClass("opened");
5588  });
5589
5590  $(".jobs_wrapp .item .name").click(function (e) {
5591    $(this).closest(".item").toggleClass("opened");
5592    $(this).closest(".item").find(".description_wrapp").stop().slideToggle(600);
5593    $(this).closest(".item").find(".opener_icon").toggleClass("opened");
5594  });
5595
5596  $(".faq.list .item .q a").on("click", function (e) {
5597    e.preventDefault();
5598    $(this).parents(".item").toggleClass("opened");
5599    $(this).parents(".item").find(".a").stop().slideToggle();
5600    $(this).parents(".item").find(".q .opener_icon").toggleClass("opened");
5601  });
5602
5603  $(".opener_icon").click(function (e) {
5604    e.preventDefault();
5605    $(this).parent().find("a").trigger("click");
5606  });
5607
5608  $(".more_block span").on("click", function () {
5609    var content_offset = $(".catalog_detail .tabs_section").offset();
5610    $("html, body").animate({ scrollTop: content_offset.top - 43 }, 400);
5611  });
5612
5613  $(document).on("click", ".counter_block:not(.basket) .plus", function () {
5614    if (!$(this).parents(".basket_wrapp").length || $(this).parents(".services_in_basket").length) {
5615      if ($(this).parent().data("offers") != "Y") {
5616        var isDetailSKU2 = $(this).parents(".counter_block_wr").length;
5617        input = $(this).parents(".counter_block").find("input[type=text]");
5618        (tmp_ratio = !isDetailSKU2
5619          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5620          : $(this).parents("tr").first().find("td.buy .to-cart").data("ratio")),
5621          (isDblQuantity = !isDetailSKU2
5622            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5623            : $(this).parents("tr").first().find("td.buy .to-cart").data("float_ratio")),
5624          (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)),
5625          (max_value = "");
5626        currentValue = input.val();
5627
5628        if (isDblQuantity)
5629          ratio =
5630            Math.round(ratio * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5631            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5632
5633        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
5634
5635        curValue += ratio;
5636        if (isDblQuantity) {
5637          curValue =
5638            Math.round(curValue * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5639            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5640        }
5641
5642        if (parseFloat($(this).data("max")) > 0) {
5643          if (input.val() < $(this).data("max")) {
5644            if (curValue <= $(this).data("max")) input.val(curValue);
5645
5646            input.change();
5647          }
5648        } else {
5649          input.val(curValue);
5650          input.change();
5651        }
5652      }
5653    }
5654  });
5655  $(document).on("click", ".counter_block:not(.basket) .minus", function () {
5656    if (!$(this).parents(".basket_wrapp").length || $(this).parents(".services_in_basket").length) {
5657      if ($(this).parent().data("offers") != "Y") {
5658        var isDetailSKU2 = $(this).parents(".counter_block_wr").length;
5659        input = $(this).parents(".counter_block").find("input[type=text]");
5660        (tmp_ratio = !isDetailSKU2
5661          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5662          : $(this).parents("tr").first().find("td.buy .to-cart").data("ratio")),
5663          (isDblQuantity = !isDetailSKU2
5664            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5665            : $(this).parents("tr").first().find("td.buy .to-cart").data("float_ratio")),
5666          (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)),
5667          (max_value = "");
5668        currentValue = input.val();
5669
5670        if (isDblQuantity)
5671          ratio =
5672            Math.round(ratio * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5673            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5674
5675        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
5676
5677        curValue -= ratio;
5678        if (isDblQuantity) {
5679          curValue =
5680            Math.round(curValue * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5681            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5682        }
5683        const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
5684        if (minValue) {
5685          ratio = minValue;
5686        }
5687
5688        if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
5689          if (currentValue > ratio) {
5690            if (curValue < ratio) {
5691              input.val(ratio);
5692            } else {
5693              input.val(curValue);
5694            }
5695            input.change();
5696          }
5697        } else {
5698          if (curValue > ratio) {
5699            input.val(curValue);
5700          } else {
5701            if (ratio) {
5702              input.val(ratio);
5703            } else if (currentValue > 1) {
5704              input.val(curValue);
5705            }
5706          }
5707          input.change();
5708        }
5709      }
5710    }
5711  });
5712
5713  $(".counter_block input[type=text]").numeric({ allow: "." });
5714
5715  $(document).on("focus", ".counter_block input[type=text]", function (e) {
5716    $(this).addClass("focus");
5717  });
5718
5719  $(document).on("blur", ".counter_block input[type=text]", function (e) {
5720    $(this).removeClass("focus");
5721  });
5722
5723  var timerInitCalculateDelivery = false;
5724  $(document).on("change", ".counter_block input[type=text]", function (e) {
5725    if (!$(this).parents(".basket_wrapp").length) {
5726      var val = $(this).val(),
5727        tmp_ratio = $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5728          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5729          : $(this).parents("tr").first().find("td.buy .to-cart").data("ratio"),
5730        isDblQuantity = $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5731          ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5732          : $(this).parents("tr").first().find("td.buy .to-cart").data("float_ratio"),
5733        ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10),
5734        diff = val % ratio;
5735
5736      if (isDblQuantity) {
5737        ratio =
5738          Math.round(ratio * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5739          arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5740        if (
5741          Math.round(diff * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5742            arAsproOptions.JS_ITEM_CLICK.precisionFactor ==
5743          ratio
5744        )
5745          diff = 0;
5746      }
5747
5748      if ($(this).hasClass("focus")) {
5749        intCount =
5750          Math.round(
5751            Math.round((val * arAsproOptions.JS_ITEM_CLICK.precisionFactor) / ratio) /
5752              arAsproOptions.JS_ITEM_CLICK.precisionFactor
5753          ) || 1;
5754        val = intCount <= 1 ? ratio : intCount * ratio;
5755        // val -= diff;
5756        val =
5757          Math.round(val * arAsproOptions.JS_ITEM_CLICK.precisionFactor) / arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5758      }
5759
5760      if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
5761        if (val > parseFloat($(this).parents(".counter_block").find(".plus").data("max"))) {
5762          val = parseFloat($(this).parents(".counter_block").find(".plus").data("max"));
5763          // val -= (val % ratio);
5764        }
5765      }
5766      if (parseFloat($(this).parents(".counter_block").find(".minus").data("min")) > 0) {
5767        if (val < parseFloat($(this).parents(".counter_block").find(".minus").data("min"))) {
5768          val = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
5769          // val -= (val % ratio);
5770        }
5771      }
5772      if (val < ratio) {
5773        val = ratio;
5774      } else if (!parseFloat(val)) {
5775        val = 1;
5776      }
5777
5778      $(this).parents(".counter_block").parent().parent().find(".to-cart").attr("data-quantity", val);
5779      $(this).parents(".counter_block").parent().parent().parent().find(".one_click").attr("data-quantity", val);
5780      $(this)
5781        .parents(".counter_block")
5782        .parent()
5783        .parent()
5784        .parent()
5785        .parent()
5786        .find(".one_click")
5787        .attr("data-quantity", val); //for offers in list
5788      $(this).parents(".catalog_item_wrapp").find(".inner_wrap.TYPE_1 .one_click").attr("data-quantity", val); //for first type buttons in catalog_block
5789
5790      $(this).val(val);
5791
5792      var $calculate = $(this).closest(".item").length
5793        ? $(this).closest(".item").find(".calculate-delivery")
5794        : $(this).closest(".catalog_detail").find(".calculate-delivery");
5795      if ($calculate.length && !$(this).closest(".buy_services_wrap").length) {
5796        $calculate.each(function () {
5797          var $calculateSpan = $(this).find("span[data-event=jqm]").first();
5798
5799          if ($calculateSpan.length) {
5800            var $clone = $calculateSpan.clone();
5801            $clone.attr("data-param-quantity", val).removeClass("clicked");
5802            $clone.insertAfter($calculateSpan).on("click", function () {
5803              if (!jQuery.browser.mobile) {
5804                $(this).parent().addClass("loadings");
5805              }
5806            });
5807            $calculateSpan.remove();
5808          }
5809
5810          if ($(this).hasClass("with_preview")) {
5811            $(this).removeClass("inited");
5812
5813            if (timerInitCalculateDelivery) {
5814              clearTimeout(timerInitCalculateDelivery);
5815            }
5816
5817            timerInitCalculateDelivery = setTimeout(function () {
5818              initCalculatePreview(true);
5819              timerInitCalculateDelivery = false;
5820            }, 1000);
5821          }
5822        });
5823      }
5824
5825      var eventdata = {
5826        type: "change",
5827        params: { id: $(this), value: val },
5828      };
5829      BX.onCustomEvent("onCounterProductAction", [eventdata]);
5830
5831      if ($(this).closest(".complect-block").length && typeof setNewPriceComplect === "function") {
5832        setNewPriceComplect();
5833      }
5834    }
5835  });
5836
5837  BX.addCustomEvent("onCounterProductAction", function (eventdata) {
5838    if (typeof eventdata != "object") {
5839      eventdata = { type: "undefined" };
5840    }
5841    try {
5842      if (typeof eventdata.type != "undefined") {
5843        if (!eventdata.params.id.closest(".gifts").length) {
5844          // no gift
5845          var obProduct = eventdata.params.id.data("product");
5846          if (eventdata.params.id.closest(".has_offer_prop").length) {
5847            // type1 for offers in element list
5848            if (typeof window["obSkuQuantys"] === "undefined") window["obSkuQuantys"] = {};
5849
5850            window["obSkuQuantys"][eventdata.params.id.closest(".offer_buy_block").find(".to-cart").data("item")] =
5851              eventdata.params.value;
5852          }
5853
5854          if (typeof window[obProduct] == "object") {
5855            if (obProduct == "offersTree") {
5856              let curOffer = eventdata.params.id.closest(".offer_buy_block").find(".to-cart").data("item");
5857              if (curOffer && appAspro.sku.obOffers[curOffer]) {
5858                appAspro.sku.setPriceAction(
5859                  appAspro.sku.obOffers[curOffer],
5860                  "",
5861                  "",
5862                  appAspro.sku.obOffers[curOffer].item
5863                );
5864              }
5865            } else window[obProduct].setPriceAction("Y");
5866            if ($(".detail_page").length) {
5867              setNewHeader();
5868            }
5869          } else if (eventdata.params.id.length) {
5870            if (
5871              eventdata.params.id.closest(".main_item_wrapper").length &&
5872              !eventdata.params.id.closest(".services-item__buy").length &&
5873              arAsproOptions["THEME"]["SHOW_TOTAL_SUMM"] == "Y"
5874            ) {
5875              setPriceItem(eventdata.params.id.closest(".main_item_wrapper"), eventdata.params.value);
5876            }
5877          }
5878          BX.onCustomEvent("onCounterProductActionResize");
5879        }
5880      }
5881    } catch (e) {
5882      console.error(e);
5883    }
5884  });
5885
5886  /* show basket on hover */
5887  $(document).on("mouseenter", ".wrap_icon.top_basket, #headerfixed .basket-link.basket", function () {
5888    const _this = $(this);
5889    const isHeaderFixed = _this.closest("#headerfixed").length;
5890    const hover_block = isHeaderFixed ? _this.next(".basket_hover_block") : _this.find(".basket_hover_block");
5891
5892    if (!hover_block.hasClass("loaded")) {
5893      basketTop("", hover_block);
5894    }
5895  });
5896
5897  /* show basket on click mobile */
5898  $(document).on("click", ".wrap_icon.wrap_basket.top_basket, #headerfixed .basket-link.basket", function (e) {
5899    var _this = $(this);
5900    if (isMobile) {
5901      if (!_this.hasClass("clicked")) {
5902        e.preventDefault();
5903        _this.addClass("clicked");
5904        setTimeout(function () {
5905          _this.removeClass("clicked");
5906        }, 3000);
5907      }
5908    }
5909  });
5910
5911  /* slide cart */
5912  $(document).on("mouseenter", "#basket_line .basket_normal:not(.empty_cart):not(.bcart) .basket_block ", function () {
5913    $(this).closest(".basket_normal").find(".popup").addClass("block");
5914    $(this).closest(".basket_normal").find(".basket_popup_wrapp").stop(true, true).slideDown(150);
5915  });
5916  $(document).on("mouseleave", "#basket_line .basket_normal .basket_block ", function () {
5917    var th = $(this);
5918    $(this)
5919      .closest(".basket_normal")
5920      .find(".basket_popup_wrapp")
5921      .stop(true, true)
5922      .slideUp(150, function () {
5923        th.closest(".basket_normal").find(".popup").removeClass("block");
5924      });
5925  });
5926
5927  $(document).on("click", ".popup_button_basket", function () {
5928    var th = $(".to-cart[data-item=" + $(this).data("item") + "]");
5929
5930    var val = th.attr("data-quantity");
5931
5932    if (!val) $val = 1;
5933
5934    var tmp_props = th.data("props"),
5935      props = "",
5936      part_props = "",
5937      add_props = "N",
5938      fill_prop = {},
5939      iblockid = th.data("iblockid"),
5940      offer = th.data("offers"),
5941      rid = "",
5942      basket_props = "",
5943      item = th.attr("data-item");
5944
5945    if (offer != "Y") {
5946      offer = "N";
5947    } else {
5948      basket_props = th.closest(".prices_tab").find(".bx_sku_props input").val();
5949    }
5950    if (tmp_props) {
5951      props = tmp_props.split(";");
5952    }
5953    if (th.data("part_props")) {
5954      part_props = th.data("part_props");
5955    }
5956    if (th.data("add_props")) {
5957      add_props = th.data("add_props");
5958    }
5959    if ($(".rid_item").length) {
5960      rid = $(".rid_item").data("rid");
5961    } else if (th.data("rid")) {
5962      rid = th.data("rid");
5963    }
5964
5965    fill_prop = fillBasketPropsExt(th, "prop", "bx_ajax_text");
5966
5967    fill_prop.quantity = val;
5968    fill_prop.add_item = "Y";
5969    fill_prop.rid = rid;
5970    fill_prop.offers = offer;
5971    fill_prop.iblockID = iblockid;
5972    fill_prop.part_props = part_props;
5973    fill_prop.add_props = add_props;
5974    fill_prop.props = JSON.stringify(props);
5975    fill_prop.item = item;
5976    fill_prop.basket_props = basket_props;
5977
5978    var isDetail = th.closest(".product-action").length || th.closest("#headerfixed.with-product");
5979    var isSku2 = th.closest(".list-offers").length;
5980    var bIsService = th.closest(".buy_services_wrap").length;
5981
5982    if (!bIsService && (isDetail || isSku2)) {
5983      //var allServicesOn = th.closest('.product-container').find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
5984      var allServicesOn = [];
5985      if (isSku2) {
5986        allServicesOn = th
5987          .closest(".product-container")
5988          .find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
5989      } else {
5990        allServicesOn = $(".product-container").find(
5991          '.buy_services_wrap[data-parent_product="' + item + '"] .services-item [name="buy_switch_services"]:checked'
5992        );
5993      }
5994      var servicesNeedAdd = [];
5995      allServicesOn.each(function () {
5996        var _this = $(this);
5997        var buttonCart = _this.closest(".services-item").find(".to-cart");
5998
5999        servicesNeedAdd[buttonCart.data("item")] = {};
6000        servicesNeedAdd[buttonCart.data("item")]["id"] = buttonCart.data("item");
6001        servicesNeedAdd[buttonCart.data("item")]["quantity"] = buttonCart.attr("data-quantity");
6002        servicesNeedAdd[buttonCart.data("item")]["iblock_id"] = buttonCart.data("iblockid");
6003      });
6004      servicesNeedAdd = array_values_js(servicesNeedAdd);
6005      fill_prop.services = servicesNeedAdd;
6006    }
6007
6008    $.ajax({
6009      type: "POST",
6010      url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
6011      data: fill_prop,
6012      dataType: "json",
6013      success: function (data) {
6014        $(".basket_error_frame").jqmHide();
6015        if ("STATUS" in data) {
6016          getActualBasket(fill_prop.iblockID);
6017          if (data.STATUS === "OK") {
6018            th.hide();
6019            th.closest(".counter_wrapp").find(".counter_block_inner").hide();
6020            th.closest(".counter_wrapp").find(".counter_block").hide();
6021            th.parents("tr").find(".counter_block_wr .counter_block").hide();
6022            th.closest(".button_block").addClass("wide");
6023            th.parent().find(".in-cart").show();
6024
6025            addBasketCounter(item);
6026
6027            if ($("#ajax_basket").length) reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
6028
6029            if ($("#basket_line .basket_fly").length) {
6030              if (th.closest(".fast_view_frame").length || window.matchMedia("(max-width: 767px)").matches)
6031                basketFly("open", "N");
6032              else basketFly("open");
6033            }
6034          } else {
6035            showBasketError(BX.message(data.MESSAGE));
6036          }
6037        } else {
6038          showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
6039        }
6040      },
6041    });
6042  });
6043
6044  $(document).on("click", ".to-cart:not(.read_more), .basket_item_add", function (e) {
6045    e.preventDefault();
6046    var th = $(this);
6047    if (!th.hasClass("clicked")) {
6048      th.addClass("clicked");
6049      var val = $(this).attr("data-quantity");
6050      var tmp_props = $(this).data("props"),
6051        props = "",
6052        part_props = "",
6053        add_props = "N",
6054        fill_prop = {},
6055        iblockid = $(this).data("iblockid"),
6056        offer = $(this).data("offers"),
6057        rid = "",
6058        bBannerAction = false,
6059        basket_props = "",
6060        item = $(this).attr("data-item");
6061      if (th.closest(".but-cell").length) {
6062        if ($('.counter_block[data-item="' + item + '"]').length)
6063          val = $('.counter_block[data-item="' + item + '"] input').val();
6064      }
6065
6066      if (th.closest(".banner_buttons.with_actions").length) {
6067        //banner action
6068        var wrapper_btns = th.closest(".wraps_buttons");
6069        item = wrapper_btns.data("id");
6070        bBannerAction = true;
6071      }
6072
6073      if (!val) val = 1;
6074      if (offer != "Y") {
6075        offer = "N";
6076      } else {
6077        basket_props = $(this).closest(".prices_tab").find(".bx_sku_props input").val();
6078      }
6079      if (tmp_props) {
6080        props = tmp_props.split(";");
6081      }
6082      if ($(this).data("part_props")) {
6083        part_props = $(this).data("part_props");
6084      }
6085      if ($(this).data("add_props")) {
6086        add_props = $(this).data("add_props");
6087      }
6088      if ($(".rid_item").length) {
6089        rid = $(".rid_item").data("rid");
6090      } else if ($(this).data("rid")) {
6091        rid = $(this).data("rid");
6092      }
6093
6094      fill_prop = fillBasketPropsExt(th, "prop", th.data("bakset_div"));
6095
6096      fill_prop.quantity = val;
6097      fill_prop.add_item = "Y";
6098      fill_prop.rid = rid;
6099      fill_prop.offers = offer;
6100      fill_prop.iblockID = iblockid;
6101      fill_prop.part_props = part_props;
6102      fill_prop.add_props = add_props;
6103      fill_prop.props = JSON.stringify(props);
6104      fill_prop.item = item;
6105      fill_prop.basket_props = basket_props;
6106
6107      var isDetail = th.closest(".product-action").length || th.closest("#headerfixed.with-product");
6108      var isSku2 = th.closest(".list-offers").length;
6109      var bIsService = th.closest(".buy_services_wrap").length;
6110
6111      if (!bIsService && (isDetail || isSku2)) {
6112        var allServicesOn = [];
6113        if (isSku2) {
6114          allServicesOn = th
6115            .closest(".product-container")
6116            .find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
6117        } else {
6118          allServicesOn = $(".product-container").find(
6119            '.buy_services_wrap[data-parent_product="' + item + '"] .services-item [name="buy_switch_services"]:checked'
6120          );
6121        }
6122        var servicesNeedAdd = [];
6123        allServicesOn.each(function () {
6124          var _this = $(this);
6125          var buttonCart = _this.closest(".services-item").find(".to-cart");
6126          servicesNeedAdd[buttonCart.data("item")] = {};
6127          servicesNeedAdd[buttonCart.data("item")]["id"] = buttonCart.data("item");
6128          servicesNeedAdd[buttonCart.data("item")]["quantity"] = buttonCart.attr("data-quantity");
6129          servicesNeedAdd[buttonCart.data("item")]["iblock_id"] = buttonCart.data("iblockid");
6130        });
6131        servicesNeedAdd = array_values_js(servicesNeedAdd);
6132        fill_prop.services = servicesNeedAdd;
6133      }
6134
6135      var servicesWrap = $(this).closest(".buy_services_wrap");
6136      if (bIsService) {
6137        var parent_product = servicesWrap.attr("data-parent_product");
6138        fill_prop["prop[BUY_PRODUCT_PROP]"] = parent_product;
6139        fill_prop["prop[ASPRO_BUY_PRODUCT_ID]"] = parent_product;
6140      }
6141
6142      if (bBannerAction) {
6143        if (th.hasClass("added")) {
6144          location.href = th.data("href");
6145          return false;
6146        } else {
6147          th.attr("title", th.data("title2"));
6148          th.toggleClass("added");
6149        }
6150      }
6151
6152      if (th.data("empty_props") == "N") {
6153        var basket_popup_html = $("#" + th.data("bakset_div")).html();
6154        if (!basket_popup_html && th.closest(".item").find(".basket_props_block").length)
6155          basket_popup_html = th.closest(".item").find(".basket_props_block").html();
6156
6157        showBasketError(basket_popup_html, BX.message("ERROR_BASKET_PROP_TITLE"), "Y", th);
6158        BX.addCustomEvent("onCompleteAction", function (e) {
6159          if (!e.ignoreSelf) {
6160            var eventdata = {
6161              action: "loadForm",
6162              ignoreSelf: true,
6163            };
6164            BX.onCustomEvent("onCompleteAction", [eventdata, th[0]]);
6165          }
6166        });
6167      } else {
6168        $.ajax({
6169          type: "POST",
6170          url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
6171          data: fill_prop,
6172          dataType: "json",
6173          success: function (data) {
6174            getActualBasket(fill_prop.iblockID);
6175
6176            var eventdata = { action: "loadForm" };
6177            BX.onCustomEvent("onCompleteAction", [eventdata, th[0]]);
6178            arStatusBasketAspro = {};
6179
6180            if (data !== null) {
6181              if ("STATUS" in data) {
6182                if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
6183                if (data.STATUS === "OK") {
6184                  // th.hide();
6185                  $(".to-cart[data-item=" + item + "]").hide();
6186                  $(".to-cart[data-item=" + item + "]")
6187                    .closest(".counter_wrapp")
6188                    .find(".counter_block_inner")
6189                    .hide();
6190                  $(".to-cart[data-item=" + item + "]")
6191                    .closest(".counter_wrapp")
6192                    .find(".counter_block")
6193                    .hide();
6194                  $(".to-cart[data-item=" + item + "]")
6195                    .parents("tr")
6196                    .find(".counter_block_wr .counter_block")
6197                    .hide();
6198                  $(".to-cart[data-item=" + item + "]")
6199                    .closest(".button_block")
6200                    .addClass("wide");
6201                  // th.parent().find('.in-cart').show();
6202                  $(".in-cart[data-item=" + item + "]").show();
6203
6204                  addBasketCounter(item);
6205
6206                  //js notice
6207                  $bDontOpenBasket = false;
6208                  if (typeof JNoticeSurface !== "undefined") {
6209                    JNoticeSurface.get().onAdd2cart([th[0]]);
6210                    $bDontOpenBasket = true;
6211                  }
6212                  //
6213
6214                  if ($("#ajax_basket").length) reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
6215
6216                  if ($("#basket_line .basket_fly").length) {
6217                    if (th.closest(".services_in_basket").length && !window.matchMedia("(max-width: 767px)").matches) {
6218                      basketFly("open", "SHOW"); //need for buy services in basket_fly
6219                    } else if (
6220                      th.closest(".fast_view_frame").length ||
6221                      window.matchMedia("(max-width: 767px)").matches ||
6222                      $("#basket_line .basket_fly.loaded").length
6223                    )
6224                      basketFly("open", "N");
6225                    else {
6226                      if ($bDontOpenBasket) basketFly("open", "N");
6227                      else basketFly("open");
6228                    }
6229                  }
6230
6231                  //need for services on basket_page
6232                  if (th.closest(".services_in_basket_page").length) {
6233                    BX.Sale.BasketComponent.sendRequest("refreshAjax", {
6234                      fullRecalculation: "Y",
6235                      otherParams: {
6236                        param: "N",
6237                      },
6238                    });
6239                  }
6240
6241                  if ($(".top_basket").length) {
6242                    basketTop($bDontOpenBasket ? "" : "open", $(".top_basket").find(".basket_hover_block"));
6243                  }
6244
6245                  if (
6246                    $("#headerfixed .wproducts .ajax_load .btn").length &&
6247                    th.closest(".product-action").length &&
6248                    !th.closest(".js-item-analog").length &&
6249                    th.next(".in-cart").length
6250                  ) {
6251                    var buttonHtml =
6252                      //'<span class="buy_block"><span class="btn btn-default btn-sm slide_offer more type_block">' +
6253                      '<span class="buy_block"><span class="btn btn-default btn-sm more type_block">' +
6254                      th.next(".in-cart").html() +
6255                      "</span></span>";
6256                    $("#headerfixed .wproducts .ajax_load .item-buttons .but-cell").html(buttonHtml);
6257                  }
6258                } else {
6259                  showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT);
6260                }
6261              } else {
6262                showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
6263              }
6264            } else {
6265              // th.hide();
6266              $(".to-cart[data-item=" + item + "]").hide();
6267              $(".to-cart[data-item=" + item + "]")
6268                .closest(".counter_wrapp")
6269                .find(".counter_block_inner")
6270                .hide();
6271              $(".to-cart[data-item=" + item + "]")
6272                .closest(".counter_wrapp")
6273                .find(".counter_block")
6274                .hide();
6275              $(".to-cart[data-item=" + item + "]")
6276                .parents("tr")
6277                .find(".counter_block_wr .counter_block")
6278                .hide();
6279              $(".to-cart[data-item=" + item + "]")
6280                .closest(".button_block")
6281                .addClass("wide");
6282              // th.parent().find('.in-cart').show();
6283              $(".in-cart[data-item=" + item + "]").show();
6284
6285              addBasketCounter(item);
6286
6287              if ($("#ajax_basket").length) reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
6288
6289              if ($("#basket_line .basket_fly").length) {
6290                if (
6291                  th.closest(".fast_view_frame").length ||
6292                  window.matchMedia("(max-width: 767px)").matches ||
6293                  $("#basket_line .basket_fly.loaded").length
6294                )
6295                  basketFly("open", "N");
6296                else basketFly("open");
6297              }
6298            }
6299          },
6300        });
6301      }
6302    }
6303  });
6304
6305  $(document).on("click", ".to-subscribe", function (e) {
6306    e.preventDefault();
6307    var th = $(this);
6308    if (!th.hasClass("clicked")) {
6309      th.addClass("clicked");
6310      if ($(this).is(".auth")) {
6311        if ($(this).hasClass("nsubsc")) {
6312          $(this).jqmEx();
6313          // $(this).trigger("click");
6314        } else {
6315          location.href = arAsproOptions["SITE_DIR"] + "auth/?backurl=" + location.pathname;
6316        }
6317      } else {
6318        var item = $(this).attr("data-item"),
6319          iblockid = $(this).attr("data-iblockid");
6320        // $(this).hide();
6321        $(".to-subscribe[data-item=" + item + "]").hide();
6322        $(".to-subscribe[data-item=" + item + "]")
6323          .parent()
6324          .find(".in-subscribe")
6325          .show();
6326        $.get(
6327          arAsproOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
6328          $.proxy(function (data) {
6329            arStatusBasketAspro = {};
6330            getActualBasket(iblockid);
6331          })
6332        );
6333        th.removeClass("clicked");
6334      }
6335    }
6336  });
6337
6338  $(document).on("click", ".in-subscribe", function (e) {
6339    e.preventDefault();
6340    var item = $(this).attr("data-item"),
6341      iblockid = $(this).attr("data-iblockid");
6342    // $(this).hide();
6343    $(".in-subscribe[data-item=" + item + "]").hide();
6344    $(".in-subscribe[data-item=" + item + "]")
6345      .parent()
6346      .find(".to-subscribe")
6347      .removeClass("clicked");
6348    $(".in-subscribe[data-item=" + item + "]")
6349      .parent()
6350      .find(".to-subscribe")
6351      .show();
6352    $.get(
6353      arAsproOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
6354      $.proxy(function (data) {
6355        getActualBasket(iblockid);
6356        arStatusBasketAspro = {};
6357      })
6358    );
6359  });
6360
6361  $(document).on("click", ".item_main_info .item_slider .flex-direction-nav li span", function (e) {
6362    if ($(".inner_slider .slides_block").length) {
6363      if ($(this).parent().hasClass("flex-nav-next")) $(".inner_slider .slides_block li.current").next().click();
6364      else $(".inner_slider .slides_block li.current").prev().click();
6365    }
6366  });
6367
6368  $(document).on("click", ".tabs>li", function () {
6369    var parent = $(this).parent();
6370    if (!$(this).hasClass("active")) {
6371      var sliderIndex = $(this).index(),
6372        curLiNav = $(this)
6373          .closest(".top_block")
6374          .find(".slider_navigation")
6375          .find(">li:eq(" + sliderIndex + ")"),
6376        curLi = $(this)
6377          .closest(".top_block")
6378          .siblings(".tabs_content")
6379          .find(">li:eq(" + sliderIndex + ")");
6380      $(this).addClass("active").addClass("cur").siblings().removeClass("active").removeClass("cur");
6381      curLi.addClass("cur").siblings().removeClass("cur");
6382      curLiNav.addClass("cur").siblings().removeClass("cur");
6383
6384      if (parent.hasClass("ajax")) {
6385        // front tabs
6386        if (!$(this).hasClass("clicked")) {
6387          $.ajax({
6388            url: arAsproOptions["SITE_DIR"] + "include/mainpage/comp_catalog_ajax.php",
6389            type: "POST",
6390            data: {
6391              AJAX_POST: "Y",
6392              FILTER_HIT_PROP: $(this).data("code"),
6393              AJAX_PARAMS: $(this).closest(".tab_slider_wrapp").find(".request-data").data("value"),
6394              GLOBAL_FILTER: curLi.data("filter"),
6395            },
6396            success: function (html) {
6397              curLi.find(".tabs_slider").html(html);
6398              var container = curLi.closest(".content_wrapper_block");
6399              if (container.length) {
6400                var bNav = curLi.find(".bottom_nav .module-pagination").length > 0;
6401                if (bNav) {
6402                  container.removeClass("without-border");
6403                } else {
6404                  container.addClass("without-borded");
6405                }
6406              }
6407              setTimeout(function () {
6408                curLi.addClass("opacity1");
6409              }, 100);
6410
6411              BX.onCustomEvent("onAjaxResponesTabs", [eventdata]);
6412            },
6413          });
6414          $(this).addClass("clicked");
6415        } else {
6416          var container = curLi.closest(".content_wrapper_block");
6417          if (container.length) {
6418            var bNav = curLi.find(".bottom_nav .module-pagination").length > 0;
6419            if (bNav) {
6420              container.removeClass("without-border");
6421            } else {
6422              container.addClass("without-borded");
6423            }
6424          }
6425        }
6426      }
6427
6428      var eventdata = { index: sliderIndex, target: $(this) };
6429      BX.onCustomEvent("clickedTabsLi", [eventdata]);
6430    }
6431  });
6432
6433  /* search click */
6434  $(".search_block .icon").on("click", function () {
6435    var th = $(this);
6436    if ($(this).hasClass("open")) {
6437      $(this).closest(".center_block").find(".search_middle_block").removeClass("active");
6438      $(this).removeClass("open");
6439      $(this).closest(".center_block").find(".search_middle_block").find(".noborder").hide();
6440    } else {
6441      setTimeout(function () {
6442        th.closest(".center_block").find(".search_middle_block").find(".noborder").show();
6443      }, 100);
6444      $(this).closest(".center_block").find(".search_middle_block").addClass("active");
6445      $(this).addClass("open");
6446    }
6447  });
6448
6449  $(document).on("click", ".no_goods .button", function () {
6450    $(".bx_filter .smartfilter .bx_filter_search_reset").trigger("click");
6451  });
6452
6453  $(document).on("click", ".js-load-link", function (e) {
6454    AjaxClickLink(e);
6455  });
6456
6457  $(document).on("click", ".svg-inline-bottom_nav-icon", function () {
6458    $(this).next().trigger("click");
6459  });
6460  $(document).on("click", ".ajax_load_btn", function () {
6461    var _this = $(this),
6462      url = _this.closest(".container").find(".module-pagination .flex-direction-nav .flex-next").attr("href"),
6463      th = _this.find(".more_text_ajax"),
6464      bottom_nav = _this.closest(".bottom_nav"),
6465      mobileBottomNav = bottom_nav.hasClass("mobile_slider"),
6466      bLoadingState = _this.closest(".animate-load-state").length;
6467
6468    if (!th.hasClass("loading")) {
6469      th.addClass("loading");
6470      if (mobileBottomNav) {
6471        var icon = bottom_nav.find(".svg-inline-bottom_nav-icon");
6472        icon.css("display", "none");
6473      }
6474      if (bLoadingState) _this.addClass("loadings");
6475
6476      var objUrl = parseUrlQuery(),
6477        add_url = "";
6478      obGetData = { ajax_get: "Y", AJAX_REQUEST: "Y" };
6479
6480      if (_this.closest(".wrapper_inner.front").length) {
6481        //index page
6482        var class_block = th.closest(".drag-block").data("class").replace("_drag", "");
6483        class_block = class_block.replace(/\s/g, "");
6484        obGetData.BLOCK = class_block;
6485      }
6486
6487      if (_this.closest(".tab").length) {
6488        //tabs block
6489        var parentTab = th.closest(".tab");
6490        obGetData.FILTER_HIT_PROP = parentTab.data("code");
6491        obGetData.GLOBAL_FILTER = parentTab.data("filter");
6492        url = _this.closest(".bottom_nav").find(".module-pagination .flex-direction-nav .flex-next").attr("href");
6493      }
6494
6495      if (_this.closest(".content_linked_goods").length) {
6496        //linked_goods block in content
6497        var filterSections = th.closest(".content_linked_goods").attr("data-sections-ids");
6498        obGetData.ajax_section_id = decodeURIComponent(filterSections);
6499
6500        url = _this.closest(".bottom_nav").find(".module-pagination .flex-direction-nav .flex-next").attr("href");
6501      }
6502
6503      if ("clear_cache" in objUrl) {
6504        if (objUrl.clear_cache == "Y") add_url = "&clear_cache=Y";
6505      }
6506      if (_this.hasClass("ajax")) obGetData.ajax = "y";
6507
6508      if (th.closest(".goods-block.ajax_load")) obGetData.bitrix_include_areas = "N";
6509
6510      if (_this.closest(".nav-data_block").length) {
6511        //need data-block
6512        obGetData.data_block = _this.closest(".nav-data_block").attr("data-block");
6513        obGetData.pagen_data_block = "Y";
6514        url = _this.closest(".bottom_nav").find(".module-pagination .flex-direction-nav .flex-next").attr("href");
6515      }
6516
6517      $.ajax({
6518        url: url + add_url,
6519        data: obGetData,
6520        success: function (html) {
6521          pasteAjaxPagination(html, th, bottom_nav, bLoadingState, _this);
6522        },
6523        error: function (html) {
6524          pasteAjaxPagination(html.responseText, th, bottom_nav, bLoadingState, _this);
6525        },
6526      });
6527    }
6528  });
6529
6530  function pasteAjaxPagination(html, th, bottom_nav, bLoadingState, _this) {
6531    var mobileBottomClicked = bottom_nav.hasClass("mobile_slider");
6532    var hasMobileBottomNav = $(html).find(".bottom_nav.mobile_slider");
6533    var bottomNav = hasMobileBottomNav.length ? hasMobileBottomNav : $(html).find(".bottom_nav");
6534    var bottomNavHtml = bottomNav.html();
6535    var bottomNavScrollClass = bottomNav.data("scroll-class");
6536    var hasBottomNav = $(html).find(".ajax_load_btn").length;
6537
6538    const ajaxUrl = bottom_nav.find('.flex-next').attr('href');
6539
6540    if (th.closest(".ajax_load").length && !mobileBottomClicked) {
6541      th.removeClass("loading");
6542      if (th.closest(".ajax_load").find(".js_append").length) {
6543        if (_this.closest(".catalog_in_content").length) {
6544          th.closest(".ajax_load").find(".js_append").append($(".inner_wrapper .js_wrapper_items>", html)); //need for brands & landings
6545        } else if (_this.closest(".catalog.search").length) {
6546          th.closest(".ajax_load").find(".js_append").append($(".js_append>", html));
6547        } else {
6548          th.closest(".ajax_load").find(".js_append").append(html);
6549        }
6550        th.closest(".ajax_load").find(".bottom_nav_wrapper").remove();
6551      } else {
6552        if ($(".display_list").length) {
6553          $(".display_list").append(html);
6554          th.closest(".display_list").find(".bottom_nav_wrapper").remove();
6555        } else if ($(".block_list").length) {
6556          $(".block_list").append(html);
6557          touchItemBlock(".catalog_item a");
6558          th.closest(".block_list").find(".bottom_nav_wrapper").remove();
6559        } else if ($(".module_products_list").length) {
6560          $(".module_products_list > tbody").append(html);
6561          th.closest(".module_products_list > tbody").find(".bottom_nav_wrapper").remove();
6562        }
6563      }
6564
6565      setStatusButton();
6566      checkLinkedArticles();
6567      checkLinkedBlocks(".linked-banners-list");
6568
6569      BX.onCustomEvent('onAsproAjaxPagination', [{ url: ajaxUrl }]);
6570
6571      var eventdata = { action: "ajaxContentLoadedTab" };
6572      BX.onCustomEvent("onAjaxSuccess", [eventdata]);
6573      _this.closest(".bottom_nav").html(bottomNavHtml);
6574    } else {
6575      var eventdata = { action: "ajaxContentLoaded" };
6576
6577      if ($(".banners-small.front").length) {
6578        $(".banners-small .items.row").append(html);
6579        $(".bottom_nav").html($(".banners-small .items.row .bottom_nav").html());
6580        $(".banners-small .items.row .bottom_nav").remove();
6581        if (hasBottomNav) {
6582          $(".banners-small .items.row").addClass("has-bottom-nav");
6583        } else {
6584          $(".banners-small .items.row").removeClass("has-bottom-nav");
6585        }
6586      } else {
6587        if (bottom_nav.data("append") !== undefined && bottom_nav.data("parent") !== undefined) {
6588          var target = html;
6589          if (bottom_nav.data("target") !== undefined) {
6590            target = $(html).find(bottom_nav.data("target"));
6591          }
6592          if (mobileBottomClicked || hasMobileBottomNav.length) {
6593            var mobileSliderNav = th.closest(bottom_nav.data("parent")).find(".bottom_nav.mobile_slider");
6594            if (mobileSliderNav.length) {
6595              mobileSliderNav.before(target);
6596            } else {
6597              bottom_nav.before(target);
6598            }
6599          } else {
6600            th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).append(target);
6601          }
6602          th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).find(".bottom_nav_wrapper").remove();
6603
6604          if (hasBottomNav) {
6605            if (bottomNavScrollClass !== undefined) {
6606              th.closest(bottom_nav.data("parent")).find(bottomNavScrollClass).addClass("has-bottom-nav");
6607            }
6608            th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).addClass("has-bottom-nav");
6609          } else {
6610            if (bottomNavScrollClass !== undefined) {
6611              th.closest(bottom_nav.data("parent")).find(bottomNavScrollClass).removeClass("has-bottom-nav");
6612            }
6613            th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).removeClass("has-bottom-nav");
6614          }
6615
6616          bottom_nav = th.closest(bottom_nav.data("parent")).find(".bottom_nav");
6617          bottom_nav.html(bottomNavHtml);
6618          var icon = bottom_nav.find(".svg-inline-bottom_nav-icon");
6619          icon.css("display", "");
6620
6621          eventdata.container = th.closest(bottom_nav.data("parent"));
6622        } else {
6623          if (th.closest(".item-views").find(".items").length) {
6624            th.closest(".item-views").find(".items").append(html);
6625          } else {
6626            $(html).insertBefore($(".blog .bottom_nav"));
6627          }
6628
6629          bottom_nav.html($(".bottom_nav:hidden").html());
6630          if (hasBottomNav) {
6631            th.closest(".item-views").find(".items").addClass("has-bottom-nav");
6632          } else {
6633            th.closest(".item-views").find(".items").removeClass("has-bottom-nav");
6634          }
6635          _this.closest(".item-views").find(".bottom_nav:hidden").remove();
6636        }
6637      }
6638
6639      eventdata.content = html;
6640      eventdata.container = th;
6641      BX.onCustomEvent("onCompleteAction", [eventdata, th[0]]);
6642
6643      setTimeout(function () {
6644        $(".banners-small .item.normal-block").sliceHeight({
6645          resize: false,
6646        });
6647        if ($(".item.slice-item").length) {
6648          $(".item.slice-item .title").sliceHeight({ resize: false });
6649          $(".item.slice-item").sliceHeight({ resize: false });
6650        }
6651        th.removeClass("loading");
6652        if (bLoadingState) _this.removeClass("loadings");
6653      }, 100);
6654    }
6655    BX.onCustomEvent("onHeaderProgressBarChange", [{}]);
6656    // initCountdown();
6657  }
6658
6659  // form rating
6660  $(document).on("mouseenter", ".form .votes_block.with-text .item-rating", function () {
6661    var $this = $(this),
6662      index = $this.index(),
6663      ratingValue = $this.data("rating_value"),
6664      ratingMessage = $this.data("message");
6665
6666    $(this).addClass("filed");
6667    $this.siblings().each(function () {
6668      if ($(this).index() <= index) $(this).addClass("filed");
6669      else $(this).removeClass("filed");
6670    });
6671    $this.closest(".votes_block").find(".rating_message").text(ratingMessage);
6672  });
6673
6674  $(document).on("mouseleave", ".form .votes_block.with-text", function () {
6675    var $this = $(this),
6676      index = $this.data("rating"),
6677      ratingMessage = $this.closest(".votes_block").find(".rating_message").data("message");
6678
6679    $this.find(".item-rating").each(function () {
6680      if ($(this).index() < index && index !== undefined) $(this).addClass("filed");
6681      else $(this).removeClass("filed");
6682    });
6683    $this.closest(".votes_block").find(".rating_message").text(ratingMessage);
6684  });
6685
6686  $(document).on("click", ".form .votes_block.with-text .item-rating", function () {
6687    const $this = $(this);
6688    const index = $this.index() + 1;
6689    const ratingMessage = $this.data("message");
6690    const $votesBlock = $this.closest(".votes_block");
6691    const $formControl = $this.closest(".form-control")
6692    const $ratingInput = $formControl.find("input[name=RATING], input[data-sid=RATING]");
6693
6694    if ($votesBlock.length){
6695      $votesBlock.data("rating", index);
6696      $votesBlock.find(".rating_message").data("message", ratingMessage);
6697    }
6698
6699    if ($ratingInput.length) {
6700      $ratingInput.val(index);
6701      $ratingInput.blur();
6702    }
6703});
6704
6705  $(document).on("paste, change, keyup", ".form.blog-comment-fields input[required]", function () {
6706    let value = $(this).val();
6707
6708    if (value.length) {
6709      $(this).closest(".form-group").find("label.error").remove();
6710    }
6711  });
6712
6713  //set cookie for basket link click
6714  $(document).on(
6715    "click",
6716    ".bx_ordercart_order_table_container .control > a, .basket-item-actions-remove, a[data-entity=basket-item-remove-delayed]",
6717    function (e) {
6718      $.removeCookie("click_basket", { path: "/" });
6719      $.cookie("click_basket", "Y", { path: "/" });
6720    }
6721  );
6722
6723  $(document).on("click", ".bx_compare .tabs-head li", function () {
6724    var url = $(this).find(".sortbutton").data("href");
6725    BX.showWait(BX("bx_catalog_compare_block"));
6726    $.ajax({
6727      url: url,
6728      data: { ajax_action: "Y" },
6729      success: function (html) {
6730        history.pushState(null, null, url);
6731        $("#bx_catalog_compare_block").html(html);
6732        BX.closeWait();
6733      },
6734    });
6735  });
6736  var hoveredTrs;
6737  $(document).on(
6738    {
6739      mouseover: function (e) {
6740        var _ = $(this);
6741        var tbodyIndex = _.closest("tbody").index() + 1; //+1 for nth-child
6742        var trIndex = _.index() + 1; // +1 for nth-child
6743        hoveredTrs = $(e.delegateTarget)
6744          .find(".data_table_props")
6745          .children(":nth-child(" + tbodyIndex + ")")
6746          .children(":nth-child(" + trIndex + ")")
6747          .addClass("hovered");
6748      },
6749      mouseleave: function (e) {
6750        if (hoveredTrs) hoveredTrs.removeClass("hovered");
6751      },
6752    },
6753    ".bx_compare .data_table_props tbody>tr"
6754  );
6755  $(document).on("click", ".fancy_zoom", function (e) {
6756    e.preventDefault();
6757    var arPict = [],
6758      index = 0;
6759    $(this)
6760      .closest(".product-detail-gallery__container")
6761      .find(".gallery-slider-thumb__container .gallery__item--thumb")
6762      .each(function () {
6763        var obImg = {};
6764        obImg = {
6765          src: $(this).data("big"),
6766          thumb: $(this).find("img").data("src") || $(this).find("img").attr("src"),
6767          // opts: {
6768          //   caption: $(this).find("img").attr("alt"),
6769          // },
6770        };
6771        if ($(this).hasClass("swiper-slide-thumb-active")) {
6772          index = $(this).index();
6773        }
6774        arPict.push(obImg);
6775      });
6776    if (!arPict.length) {
6777      arPict.push({
6778        src: $(this).closest(".product-detail-gallery__container").find(".zoom_picture").data("xoriginal"),
6779      });
6780    }
6781    if (typeof $.fn.fancybox !== "function") {
6782      return;
6783    }
6784    $.fancybox.open(
6785      arPict,
6786      {
6787        tpl: {
6788          closeBtn:
6789            '<span title="' +
6790            BX.message("FANCY_CLOSE") +
6791            '" class="fancybox-item fancybox-close inline svg"><svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 24L24 2M2 2L24 24" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></span>',
6792          next:
6793            '<a title="' +
6794            BX.message("FANCY_NEXT") +
6795            '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
6796          prev:
6797            '<a title="' +
6798            BX.message("FANCY_PREV") +
6799            '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
6800        },
6801        btnTpl: {
6802          close:
6803            '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}">' +
6804            '<i class="svg"><svg width="26" height="26" viewBox="0 0 26 26" xmlns="http://www.w3.org/2000/svg"><path d="M2 24L24 2M2 2L24 24" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" /></svg></i>' +
6805            "</button>",
6806
6807          arrowLeft:
6808            '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}">' +
6809            '<div><i class="svg left"><svg width="16" height="26" viewBox="0 0 15 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 13L0.585787 14.4142C-0.195262 13.6332 -0.195262 12.3668 0.585787 11.5858L2 13ZM11.5858 0.585786C12.3668 -0.195262 13.6332 -0.195262 14.4142 0.585786C15.1953 1.36683 15.1953 2.63317 14.4142 3.41421L11.5858 0.585786ZM14.4142 22.5858C15.1953 23.3668 15.1953 24.6332 14.4142 25.4142C13.6332 26.1953 12.3668 26.1953 11.5858 25.4142L14.4142 22.5858ZM0.585787 11.5858L11.5858 0.585786L14.4142 3.41421L3.41421 14.4142L0.585787 11.5858ZM3.41421 11.5858L14.4142 22.5858L11.5858 25.4142L0.585787 14.4142L3.41421 11.5858Z" fill="#999999"/></svg></i></div>' +
6810            "</button>",
6811
6812          arrowRight:
6813            '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}">' +
6814            '<div><i class="svg right"><svg width="16" height="26" viewBox="0 0 15 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 13L14.4142 14.4142C15.1953 13.6332 15.1953 12.3668 14.4142 11.5858L13 13ZM3.41421 0.585786C2.63317 -0.195262 1.36683 -0.195262 0.585786 0.585786C-0.195262 1.36683 -0.195262 2.63317 0.585786 3.41421L3.41421 0.585786ZM0.585786 22.5858C-0.195262 23.3668 -0.195262 24.6332 0.585786 25.4142C1.36683 26.1953 2.63317 26.1953 3.41421 25.4142L0.585786 22.5858ZM14.4142 11.5858L3.41421 0.585786L0.585786 3.41421L11.5858 14.4142L14.4142 11.5858ZM11.5858 11.5858L0.585786 22.5858L3.41421 25.4142L14.4142 14.4142L11.5858 11.5858Z" fill="white"/></svg></i></div>' +
6815            "</button>",
6816        },
6817        touch: "enabled",
6818        loop: false,
6819        buttons: [
6820          // "zoom",
6821          //"share",
6822          // "slideShow",
6823          //"fullScreen",
6824          //"download",
6825          // "thumbs",
6826          "close",
6827        ],
6828        thumbs: {
6829          autoStart: true,
6830        },
6831        onActivate: function (instance) {
6832          InitFancyboxThumbnailsGallery(instance);
6833        },
6834        beforeShow: function (instance, current) {
6835          if ($(".fancybox-thumbs .swiper").length) {
6836            const swiper = $(".fancybox-thumbs .swiper").data("swiper");
6837            swiper.slideTo(current.index);
6838          }
6839        },
6840      },
6841      index
6842    );
6843  });
6844
6845  /* tabs */
6846  $(".tabs_section .tabs-head li").on("click", function () {
6847    if (!$(this).is(".current")) {
6848      $(".tabs_section .tabs-head li").removeClass("current");
6849      $(this).addClass("current");
6850      $(".tabs_section ul.tabs_content li").removeClass("current");
6851      if ($(this).attr("id") == "product_reviews_tab") {
6852        $(".shadow.common").hide();
6853        $("#reviews_content").show();
6854      } else {
6855        $(".shadow.common").show();
6856        $("#reviews_content").hide();
6857        $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")").addClass("current");
6858      }
6859    }
6860  });
6861
6862  /* open first section slide */
6863  setTimeout(function () {
6864    $(".jobs_wrapp .item:first .name tr").trigger("click");
6865  }, 300);
6866
6867  $(".choise").on("click", function () {
6868    var _this = $(this);
6869    if (typeof _this.attr("data-block") != "undefined") {
6870      if ($(_this.attr("data-block")).closest(".tab-pane").length) {
6871        $('.ordered-block a[href="#' + $(_this.attr("data-block")).closest(".tab-pane").attr("id") + '"]').click();
6872        _this.data("block", ".ordered-block.tabs-block");
6873        $(_this.data("block")).data("offset", -100);
6874      } else {
6875        $(_this.data("block")).data("offset", -100);
6876      }
6877      scrollToBlock(_this.data("block"));
6878    }
6879  });
6880
6881  $(document).on("click", ".buy_block .slide_offer", function () {
6882    scroll_block($(".js-offers-scroll"));
6883  });
6884  $(".share  > .share_wrapp .text").on("click", function () {
6885    var block = $(this).parent().find(".shares");
6886    if (!block.is(":visible") && !$(this).closest(".share.top").length) $("#content").css("z-index", 3);
6887    block.fadeToggle(100, function () {
6888      if (!block.is(":visible")) $("#content").css("z-index", 2);
6889    });
6890  });
6891  $("html, body").on("mousedown", function (e) {
6892    if (typeof e.target.className == "string" && e.target.className.indexOf("adm") < 0) {
6893      e.stopPropagation();
6894      $("div.shares").fadeOut(100, function () {
6895        $("#content").css("z-index", 2);
6896        $(".price_txt .share_wrapp").removeClass("opened");
6897      });
6898      $(".search_middle_block").removeClass("active_wide");
6899    }
6900  });
6901  $(".share_wrapp")
6902    .find("*")
6903    .on("mousedown", function (e) {
6904      e.stopPropagation();
6905    });
6906
6907  $(".price_txt .share_wrapp .text").click(function () {
6908    $(this).parent().toggleClass("opened");
6909    $(this).parent().find(".shares").fadeToggle();
6910  });
6911
6912  $(document).on("click", ".reviews-collapse-link", function () {
6913    $(".reviews-reply-form").slideToggle();
6914  });
6915
6916  /* accordion action*/
6917  $(".panel-collapse").on("hidden.bs.collapse", function () {
6918    $(this).parent().toggleClass("opened");
6919  });
6920  $(".panel-collapse").on("show.bs.collapse", function () {
6921    $(this).parent().toggleClass("opened");
6922  });
6923
6924  /* accordion */
6925  $(".accordion-head").on("click", function (e) {
6926    e.preventDefault();
6927    if (!$(this).next().hasClass("collapsing")) {
6928      $(this).toggleClass("accordion-open");
6929      $(this).toggleClass("accordion-close");
6930    }
6931  });
6932
6933  /* progress bar */
6934  $("[data-appear-progress-animation]").iAppear(
6935    function () {
6936      var $this = $(this);
6937      var delay = $this.attr("data-appear-animation-delay") ? $this.attr("data-appear-animation-delay") : 1;
6938      if (delay > 1) $this.css("animation-delay", delay + "ms");
6939      $this.addClass($this.attr("data-appear-animation"));
6940
6941      setTimeout(function () {
6942        $this.animate(
6943          {
6944            width: $this.attr("data-appear-progress-animation"),
6945          },
6946          1500,
6947          "easeOutQuad",
6948          function () {
6949            $this.find(".progress-bar-tooltip").animate(
6950              {
6951                opacity: 1,
6952              },
6953              500,
6954              "easeOutQuad"
6955            );
6956          }
6957        );
6958      }, delay);
6959    },
6960    {
6961      rootMargin: "-50px 0px -50px 0px",
6962      accX: 0,
6963      accY: -50,
6964    }
6965  );
6966
6967  // initCountdown();
6968
6969  /* portfolio item */
6970  if ($(".item.animated-block").length) {
6971    $(".item.animated-block").iAppear(
6972      function () {
6973        var $this = $(this);
6974
6975        $this.addClass($this.data("animation")).addClass("visible");
6976      },
6977      { accX: 0, accY: 150 }
6978    );
6979  }
6980
6981  typeof InitAppear === 'function' && InitAppear();
6982
6983  /* js-load-block appear */
6984  typeof InitJsLoadBlock === 'function' && InitJsLoadBlock();
6985
6986  /* show ajax store amount product */
6987  $(document).on("click", ".js-show-info-block", function (e) {
6988    var $this = $(this);
6989
6990    //check on ".cost.prices" need for popup price in mobile
6991    if (window.matchMedia("(max-width: 500px)").matches && !$this.closest(".cost.prices").length) {
6992      return;
6993    }
6994
6995    e.stopPropagation();
6996    $(".js-info-block").fadeOut();
6997
6998    if ($this.hasClass("opened")) {
6999      $(".js-show-info-block").removeClass("opened");
7000    } else {
7001      $(".js-show-info-block").removeClass("opened");
7002      $this.addClass("opened");
7003    }
7004
7005    if (!$this.siblings(".js-info-block").length) {
7006      var dataFields = $this.closest(".sa_block").data("fields");
7007      dataFields = dataFields == "null" || dataFields === undefined ? "" : dataFields;
7008      var dataUserFields = $this.closest(".sa_block").data("user-fields");
7009      dataUserFields = dataUserFields == "null" || dataUserFields === undefined ? "" : dataUserFields;
7010      var objUrl = parseUrlQuery(),
7011        add_url = "";
7012      if ("clear_cache" in objUrl) {
7013        if (objUrl.clear_cache == "Y") add_url += "?clear_cache=Y";
7014      }
7015
7016      var obPostParams = {
7017        ajax: "Y",
7018        ELEMENT_ID: $this.data("id"),
7019        FIELDS: dataFields,
7020        USER_FIELDS: dataUserFields,
7021        STORES: $this.closest(".sa_block").data("stores") || "",
7022      };
7023
7024      $this.addClass("loadings");
7025      $.post(arAsproOptions["SITE_DIR"] + "ajax/productStoreAmountCompact.php" + add_url, obPostParams).done(function (
7026        html
7027      ) {
7028        $this.removeClass("loadings");
7029        $(html).appendTo($this.closest(".sa_block"));
7030
7031        $this
7032          .siblings(".js-info-block")
7033          .find(".more-btn a")
7034          .attr("href", $this.closest(".item_info").find("a").attr("href"));
7035        // InitScrollBar();
7036
7037        var eventdata = { action: "jsShowStores" };
7038        BX.onCustomEvent("onCompleteAction", [eventdata, $this]);
7039      });
7040    } else {
7041      if ($this.hasClass("opened")) {
7042        $this
7043          .siblings(".js-info-block")
7044          .find(".more-btn a")
7045          .attr("href", $this.closest(".item_info").find("a").attr("href"));
7046        $this.siblings(".js-info-block").fadeIn();
7047        // InitScrollBar();
7048      } else {
7049        $this.siblings(".js-info-block").fadeOut();
7050      }
7051    }
7052  });
7053  $(document).on("click", ".js-info-block .svg-inline-close", function () {
7054    $(".js-show-info-block").removeClass("opened");
7055    $(this).closest(".js-info-block").fadeOut();
7056  });
7057
7058  /* adaptive menu start */
7059  $(".menu.adaptive").on("click", function () {
7060    $(this).toggleClass("opened");
7061    if ($(this).hasClass("opened")) {
7062      $(".mobile_menu").toggleClass("opened").slideDown();
7063    } else {
7064      $(".mobile_menu").toggleClass("opened").slideUp();
7065    }
7066  });
7067  $(".mobile_menu .has-child >a").on("click", function (e) {
7068    var parentLi = $(this).parent();
7069    e.preventDefault();
7070    parentLi.toggleClass("opened");
7071    parentLi.find(".dropdown").slideToggle();
7072  });
7073
7074  $(".mobile_menu .search-input-div input").on("keyup", function (e) {
7075    var inputValue = $(this).val();
7076    $(".center_block .stitle_form input").val(inputValue);
7077    if (e.keyCode == 13) {
7078      $(".center_block .stitle_form form").submit();
7079    }
7080  });
7081
7082  $(".center_block .stitle_form input").on("keyup", function (e) {
7083    var inputValue = $(this).val();
7084    $(".mobile_menu .search-input-div input").val(inputValue);
7085    if (e.keyCode == 13) {
7086      $(".center_block .stitle_form form").submit();
7087    }
7088  });
7089
7090  $(".mobile_menu .search-button-div button").on("click", function (e) {
7091    e.preventDefault();
7092    var inputValue = $(this).parents().find("input").val();
7093    $(".center_block .stitle_form input").val(inputValue);
7094    $(".center_block .stitle_form form").submit();
7095  });
7096  /* adaptive menu end */
7097
7098  $(document).on("click", ".mega-menu .dropdown-menu", function (e) {
7099    e.stopPropagation();
7100  });
7101
7102  $(document).on("click", ".mega-menu .dropdown-toggle.more-items", function (e) {
7103    e.preventDefault();
7104  });
7105
7106  $(document).on("mouseenter", "#headerfixed .table-menu .dropdown-menu .dropdown-submenu", function () {
7107    setTimeout(function () {
7108      CheckTopVisibleMenu();
7109    }, 275);
7110  });
7111
7112  $(".mega-menu .search-item .search-icon, .menu-row #title-search .fa-close").on("click", function (e) {
7113    e.preventDefault();
7114    $(".menu-row #title-search").toggleClass("hide");
7115  });
7116
7117  $(".mega-menu ul.nav .search input").on("keyup", function (e) {
7118    var inputValue = $(this).val();
7119    $(".menu-row > .search input").val(inputValue);
7120    if (e.keyCode == 13) {
7121      $(".menu-row > .search form").submit();
7122    }
7123  });
7124
7125  $(".menu-row > .search input").on("keyup", function (e) {
7126    var inputValue = $(this).val();
7127    $(".mega-menu ul.nav .search input").val(inputValue);
7128    if (e.keyCode == 13) {
7129      $(".menu-row > .search form").submit();
7130    }
7131  });
7132
7133  $(".mega-menu ul.nav .search button").on("click", function (e) {
7134    e.preventDefault();
7135    var inputValue = $(this).parents(".search").find("input").val();
7136    $(".menu-and-search .search input").val(inputValue);
7137    $(".menu-row > .search form").submit();
7138  });
7139
7140  $(".btn.btn-add").on("click", function () {
7141    $.ajax({
7142      type: "GET",
7143      url: arAsproOptions["SITE_DIR"] + "ajax/clearBasket.php",
7144      success: function (data) {},
7145    });
7146  });
7147
7148  $(".sort_display a").on("click", function () {
7149    $(this).siblings().removeClass("current");
7150    $(this).addClass("current");
7151  });
7152
7153  /* detail order show payments */
7154  $(".sale-order-detail-payment-options-methods-info-change-link").on("click", function () {
7155    $(this).closest(".sale-order-detail-payment-options-methods-info").addClass("opened").siblings().addClass("opened");
7156  });
7157
7158  /* expand/hide filter values */
7159  $(document).on("click", ".expand_block", function () {
7160    togglePropBlock($(this));
7161  });
7162
7163  /* touch event */
7164  document.addEventListener(
7165    "touchend",
7166    function (event) {
7167      if (!$(event.target).closest(".menu-item").length && !$(event.target).hasClass("menu-item")) {
7168        $(".menu-row .dropdown-menu").css({
7169          display: "none",
7170          opacity: 0,
7171        });
7172        $(".menu-item").removeClass("hover");
7173        $(".bx-breadcrumb-item.drop").removeClass("hover");
7174      }
7175      if (!$(event.target).closest(".menu.topest").length) {
7176        if (window.matchMedia("(max-width: 991px)").matches) {
7177          $(".menu.topest").css({ overflow: "hidden" });
7178        }
7179        $(".menu.topest > li").removeClass("hover");
7180      }
7181      if (!$(event.target).closest(".full.has-child").length) {
7182        $(".menu_top_block.catalog_block li").removeClass("hover");
7183      }
7184      if (!$(event.target).closest(".basket_block").length) {
7185        $(".basket_block .link").removeClass("hover");
7186        $(".basket_block .basket_popup_wrapp").slideUp();
7187      }
7188      if (!$(event.target).closest(".catalog_item").length) {
7189        var tabsContentUnhoverHover = $(".tab:visible").attr("data-unhover") * 1;
7190        $(".tab:visible").stop().animate({ height: tabsContentUnhoverHover }, 100);
7191        $(".tab:visible").find(".catalog_item").removeClass("hover");
7192        $(".tab:visible").find(".catalog_item .buttons_block").stop().fadeOut(233);
7193        if ($(".catalog_block").length) {
7194          $(".catalog_block").find(".catalog_item_wrapp").removeClass("hover");
7195          $(".catalog_block").find(".catalog_item").removeClass("hover");
7196        }
7197      }
7198      //togglePropBlock($(event.target));
7199    },
7200    false
7201  );
7202
7203  touchMenu(".menu-row .menu-item");
7204  touchTopMenu(".menu.topest li");
7205  touchLeftMenu(".menu_top_block:not(.in-search) li.full");
7206  touchBreadcrumbs(".bx-breadcrumb-item.drop");
7207
7208  $(document).on("keyup", ".coupon .input_coupon input", function () {
7209    if ($(this).val().length) {
7210      $(this).removeClass("error");
7211      $(this).closest(".input_coupon").find(".error").remove();
7212    } else {
7213      $(this).addClass("error");
7214      $("<label class='error'>" + BX.message("INPUT_COUPON") + "</label>").insertBefore($(this));
7215    }
7216  });
7217  // showPhoneMask("input[autocomplete=tel]");
7218  BX.addCustomEvent(window, "onAjaxSuccessFilter", function (e) {
7219    setBasketStatusBtn();
7220    checkLinkedArticles();
7221    checkLinkedBlocks(".linked-banners-list");
7222  });
7223
7224  $(document).on("click", ".block_container .items .item.initied", function () {
7225    var _this = $(this),
7226      itemID = _this.data("id"),
7227      animationTime = 200;
7228
7229    _this.closest(".items").fadeOut(animationTime, function () {
7230      _this.closest(".block_container").find(".detail_items").fadeIn(animationTime);
7231      _this
7232        .closest(".block_container")
7233        .find(".detail_items .item[data-id=" + itemID + "]")
7234        .fadeIn(animationTime);
7235
7236      var arCoordinates = _this.data("coordinates").split(",");
7237
7238      if (typeof map !== "undefined") map.setCenter([arCoordinates[0], arCoordinates[1]], 15);
7239    });
7240  });
7241
7242  $(document).on("click", ".block_container .top-close", function () {
7243    var _this = $(this).closest(".block_container").find(".detail_items .item:visible"),
7244      animationTime = 200;
7245    _this.fadeOut(animationTime);
7246    _this
7247      .closest(".block_container")
7248      .find(".detail_items")
7249      .fadeOut(animationTime, function () {
7250        _this.closest(".block_container").find(".items").fadeIn(animationTime);
7251
7252        if (typeof map !== "undefined" && typeof clusterer !== "undefined") {
7253          map.setBounds(clusterer.getBounds(), {
7254            zoomMargin: 40,
7255            // checkZoomRange: true
7256          });
7257        }
7258      });
7259  });
7260
7261  BX.addCustomEvent(window, "onAjaxSuccess", function (e) {
7262    if (e != "OK") {
7263      initSelects(document);
7264      InitOrderCustom();
7265      // showPhoneMask("input[autocomplete=tel]");
7266
7267      if (arAsproOptions["PAGES"]["CATALOG_PAGE"] && $(".catalog_detail").length && !$(".fast_view_frame").length) {
7268        const leftBlock = $(".main-catalog-wrapper > .left_block");
7269        const rightBlock = $(".right_block");
7270
7271        if (!leftBlock.length && rightBlock.hasClass("wide_N")) {
7272          rightBlock.removeClass("wide_N").addClass("wide_Y");
7273        } else if (leftBlock.length && rightBlock.hasClass("wide_Y")) {
7274          rightBlock.removeClass("wide_Y").addClass("wide_N");
7275        }
7276
7277        $(".bx_filter").remove();
7278        InitOwlSlider();
7279        typeof InitJsLoadBlock === 'function' && InitJsLoadBlock();
7280      }
7281
7282      if (arAsproOptions["PAGES"]["CATALOG_PAGE"]) {
7283        // initCountdown();
7284
7285        if (typeof window["stickySidebar"] !== "undefined") window["stickySidebar"].updateSticky();
7286      }
7287
7288      if (typeof orderActions === "function") {
7289        orderActions(e);
7290      }
7291
7292      if (e && typeof e === "object" && "action" in e && e.action === "ajaxContentLoadedTab") {
7293        lazyLoadPagenBlock();
7294      }
7295
7296      InitStickySideBar();
7297    }
7298  });
7299
7300  //event for default basket quantity change
7301  BX.addCustomEvent(window, "OnBasketChange", function (e) {
7302    if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
7303      var summ = 0,
7304        title = "";
7305
7306      if (typeof BX.Sale !== "undefined") {
7307        if (typeof BX.Sale.BasketComponent !== "undefined") {
7308          summ = BX.Sale.BasketComponent.result.allSum;
7309          title = BX.message("JS_BASKET_COUNT_TITLE").replace("SUMM", summ);
7310        }
7311      } else {
7312        summ = $("#allSum_FORMATED")
7313          .html()
7314          .replace(/&nbsp;/g, " ");
7315        title = BX.message("JS_BASKET_COUNT_TITLE").replace("SUMM", summ);
7316      }
7317
7318      if ($(".js-basket-block .wrap .prices").length) $(".js-basket-block .wrap .prices").html(summ);
7319      if ($("a.basket-link.basket").length) $("a.basket-link.basket").attr("title", title);
7320      if ($(".basket_fly .opener .basket_count").length) $(".basket_fly .opener .basket_count").attr("title", title);
7321    }
7322  });
7323});
7324
7325if (!funcDefined("setBasketStatusBtn")) {
7326  setBasketStatusBtn = function (type) {
7327    var bSync = typeof type !== undefined;
7328    if (typeof arBasketAspro !== "undefined") {
7329      if ("BASKET" in arBasketAspro) {
7330        // basket items
7331        if (arBasketAspro.BASKET) {
7332          for (var i in arBasketAspro.BASKET) {
7333            $(".to-cart[data-item=" + i + "]").hide();
7334            $(".counter_block[data-item=" + i + "]")
7335              .closest(".counter_block_inner")
7336              .hide();
7337            $(".counter_block[data-item=" + i + "]").hide();
7338            $(".in-cart[data-item=" + i + "]").show();
7339            $(".in-cart[data-item=" + i + "]")
7340              .closest(".button_block")
7341              .addClass("wide");
7342
7343            if ($(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").length) {
7344              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").addClass("added");
7345              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").attr(
7346                "title",
7347                $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").data("title2")
7348              );
7349            }
7350          }
7351        }
7352      }
7353
7354      /* services */
7355      if ("SERVICES" in arBasketAspro) {
7356        // services items
7357        $needFillServices = $(".buy_services_wrap[data-parent_product]").length;
7358        if (arBasketAspro.SERVICES && $needFillServices) {
7359          for (var i in arBasketAspro.SERVICES) {
7360            var serviceItem = $(
7361              ".buy_services_wrap[data-parent_product=" +
7362                arBasketAspro.SERVICES[i].link_id +
7363                "] .services-item[data-item_id=" +
7364                arBasketAspro.SERVICES[i].item_id +
7365                "]"
7366            );
7367            serviceItem.find('input[name="buy_switch_services"]').prop("checked", true);
7368            serviceItem.find('.counter_block input[name="quantity"]').val(arBasketAspro.SERVICES[i].quantity);
7369            serviceItem.addClass("services_on");
7370          }
7371        }
7372      }
7373
7374      if ("SUBSCRIBE" in arBasketAspro) {
7375        // subscribe items
7376        if (arBasketAspro.SUBSCRIBE) {
7377          for (var i in arBasketAspro.SUBSCRIBE) {
7378            $(".to-subscribe[data-item=" + i + "]").hide();
7379            $(".in-subscribe[data-item=" + i + "]").show();
7380          }
7381        }
7382      }
7383    }
7384
7385    BX.onCustomEvent("onSetBasketStatusBtn", []);
7386  };
7387}
7388
7389if (!funcDefined("togglePropBlock")) {
7390  togglePropBlock = function (className) {
7391    var all_props_block = className.closest(".bx_filter_parameters_box_container").find(".hidden_values");
7392    if (all_props_block.length && (className.hasClass("inner_text") || className.hasClass("expand_block"))) {
7393      if (all_props_block.is(":visible")) {
7394        className.text(BX.message("FILTER_EXPAND_VALUES"));
7395        all_props_block.hide();
7396        className.removeClass('expand_block--opened');
7397      } else {
7398        className.text(BX.message("FILTER_HIDE_VALUES"));
7399        all_props_block.show();
7400        className.addClass('expand_block--opened');
7401      }
7402    }
7403  };
7404}
7405
7406if (!funcDefined("showPhoneMask")) {
7407  showPhoneMask = function (className) {
7408    if (typeof appAspro === "object" && appAspro && appAspro.phone) {
7409      appAspro.phone.init($(className));
7410    }
7411  };
7412}
7413
7414if (!funcDefined("getActualBasket")) {
7415  getActualBasket = function (iblockID, type, sync) {
7416    var data = "";
7417    if (typeof iblockID !== "undefined" && iblockID) {
7418      data = { iblockID: iblockID };
7419    }
7420    $.ajax({
7421      type: "GET",
7422      url: arAsproOptions["SITE_DIR"] + "ajax/actualBasket.php",
7423      data: data,
7424      success: function (data) {
7425        if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
7426        $(".js_ajax").html(data);
7427
7428        if (typeof sync !== "undefined") {
7429          setBasketStatusBtn(true);
7430        }
7431
7432        if (typeof type !== undefined) {
7433          var eventdata = { action: "loadActualBasket" + type };
7434          BX.onCustomEvent("onCompleteAction", [eventdata]);
7435        }
7436      },
7437    });
7438  };
7439}
7440
7441if (!funcDefined("reloadBasketCounters")) {
7442  reloadBasketCounters = function (count, sync) {
7443    var data = "";
7444    if (count) {
7445      $(".basket-link.basket .count, .wraps_icon_block.basket .count .items > span").text(count);
7446    } else {
7447      $.ajax({
7448        type: "GET",
7449        url: arAsproOptions["SITE_DIR"] + "ajax/actualBasket.php",
7450        data: data,
7451        success: function (data) {
7452          if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
7453          $(".js_ajax").html(data);
7454          var countServices =
7455            typeof arBasketAspro.SERVICES !== "undefined" ? Object.keys(arBasketAspro.SERVICES).length : 0;
7456          $(".basket-link.basket .count, .wraps_icon_block.basket .count .items > span").text(
7457            Object.keys(arBasketAspro.BASKET).length + countServices
7458          );
7459          $(".basket-link.delay .count, .wraps_icon_block.delay .count .items > span").text(
7460            arBasketAspro.FAVORITE.COUNT
7461          );
7462          $(".basket-link.compare .count, .wraps_icon_block.compare .count .items > span").text(
7463            arBasketAspro.COMPARE.COUNT
7464          );
7465
7466          if (typeof sync !== "undefined") {
7467            setBasketStatusBtn(true);
7468          }
7469        },
7470      });
7471    }
7472  };
7473}
7474
7475function touchMenu(selector) {
7476  if (isMobile) {
7477    if ($(selector).length) {
7478      $(selector).each(function () {
7479        var th = $(this);
7480        th.on("touchend", function (e) {
7481          var _th = $(e.target).closest(".menu-item");
7482
7483          $(".menu.topest > li").removeClass("hover");
7484          $(".menu_top_block.catalog_block li").removeClass("hover");
7485          $(".bx-breadcrumb-item.drop").removeClass("hover");
7486
7487          if (_th.find(".dropdown-menu").length && !_th.hasClass("hover")) {
7488            e.preventDefault();
7489            e.stopPropagation();
7490            _th.siblings().removeClass("hover");
7491            _th.addClass("hover");
7492            $(".menu-row .dropdown-menu").css({
7493              display: "none",
7494              opacity: 0,
7495            });
7496            if (_th.hasClass("menu-item")) {
7497              _th.closest(".dropdown-menu").css({
7498                display: "block",
7499                opacity: 1,
7500              });
7501            }
7502            if (_th.find("> .wrap > .dropdown-menu")) {
7503              _th.find("> .wrap > .dropdown-menu").css({
7504                display: "block",
7505                opacity: 1,
7506              });
7507            } else if (_th.find("> .dropdown-menu")) {
7508              _th.find("> .dropdown-menu").css({
7509                display: "block",
7510                opacity: 1,
7511              });
7512            }
7513            CheckTopVisibleMenu();
7514          } else {
7515            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
7516            if (href && href !== "undefined") location.href = href;
7517          }
7518        });
7519      });
7520    }
7521  } else {
7522    $(selector).off();
7523  }
7524}
7525
7526function touchTopMenu(selector) {
7527  if (isMobile) {
7528    if ($(selector).length) {
7529      $(selector).each(function () {
7530        var th = $(this);
7531        th.on("touchend", function (e) {
7532          var _th = $(e.target).closest("li");
7533
7534          $(".menu-item").removeClass("hover");
7535          $(".menu_top_block.catalog_block li").removeClass("hover");
7536          $(".bx-breadcrumb-item.drop").removeClass("hover");
7537
7538          if (_th.hasClass("more") && !_th.hasClass("hover")) {
7539            e.preventDefault();
7540            e.stopPropagation();
7541            _th.siblings().removeClass("hover");
7542            _th.addClass("hover");
7543            $(".menu.topest").css({ overflow: "visible" });
7544          } else {
7545            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
7546            if (href && href !== "undefined") location.href = href;
7547          }
7548        });
7549      });
7550    }
7551  } else {
7552    $(selector).off();
7553  }
7554}
7555
7556function touchLeftMenu(selector) {
7557  if (isMobile) {
7558    if ($(selector).length) {
7559      $(selector).each(function () {
7560        var th = $(this);
7561        th.on("touchend", function (e) {
7562          var _th = $(e.target).closest("li");
7563
7564          $(".menu-item").removeClass("hover");
7565          $(".bx-breadcrumb-item.drop").removeClass("hover");
7566          $(".menu.topest > li").removeClass("hover");
7567
7568          if (_th.hasClass("has-child") && !_th.hasClass("hover")) {
7569            e.preventDefault();
7570            e.stopPropagation();
7571            _th.siblings().removeClass("hover");
7572            _th.addClass("hover");
7573          } else {
7574            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
7575            if (href && href !== "undefined") location.href = href;
7576          }
7577        });
7578      });
7579    }
7580  } else {
7581    $(selector).off();
7582  }
7583}
7584
7585function touchBreadcrumbs(selector) {
7586  if (isMobile) {
7587    if ($(selector).length) {
7588      $(selector).each(function () {
7589        var th = $(this);
7590        th.on("touchend", function (e) {
7591          var _th = $(e.target).closest(".bx-breadcrumb-item");
7592
7593          $(".menu-item").removeClass("hover");
7594          $(".menu.topest > li").removeClass("hover");
7595          $(".menu_top_block.catalog_block li").removeClass("hover");
7596
7597          if (!_th.hasClass("hover")) {
7598            e.preventDefault();
7599            e.stopPropagation();
7600            _th.siblings().removeClass("hover");
7601            _th.addClass("hover");
7602          } else {
7603            _th.removeClass("hover");
7604            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
7605            if (href && href !== "undefined") location.href = href;
7606          }
7607        });
7608      });
7609    }
7610  } else {
7611    $(selector).off();
7612  }
7613}
7614
7615function touchItemBlock(selector) {}
7616function touchBasket(selector) {
7617  if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
7618    if ($(window).outerWidth() > 600) {
7619      $(document)
7620        .find(selector)
7621        .on("touchend", function (e) {
7622          if ($(this).parent().find(".basket_popup_wrapp").length && !$(this).hasClass("hover")) {
7623            e.preventDefault();
7624            e.stopPropagation();
7625            $(this).addClass("hover");
7626            $(this).parent().find(".basket_popup_wrapp").slideDown();
7627          }
7628        });
7629    } else {
7630      $(selector).off();
7631    }
7632  }
7633}
7634
7635function showTotalSummItem(popup) {
7636  //show total summ
7637  if (
7638    arAsproOptions["THEME"]["SHOW_TOTAL_SUMM_TYPE"] == "ALWAYS" &&
7639    arAsproOptions["THEME"]["SHOW_TOTAL_SUMM"] == "Y"
7640  ) {
7641    var parent = "body ";
7642    if (typeof popup === "string" && popup == "Y") parent = ".popup ";
7643    $(parent + ".counter_wrapp .counter_block input.text").each(function () {
7644      var _th = $(this);
7645      if (_th.data("product")) {
7646        var obProduct = _th.data("product");
7647        if (typeof window[obProduct] == "object") window[obProduct].setPriceAction("Y");
7648        else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
7649      } else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
7650    });
7651  }
7652}
7653
7654function initFull() {
7655  initSelects(document);
7656  initHoverBlock(document);
7657  touchItemBlock(".catalog_item a");
7658  InitOrderCustom();
7659  showTotalSummItem();
7660  baske
7660tActions();
7661
7662  if (typeof orderActions === "function") {
7663    orderActions();
7664  }
7665
7666  checkMobileRegion();
7667}
7668
7669checkMobileRegion = function () {
7670  if ($(".confirm_region").length) {
7671    if (!$(".top_mobile_region").length)
7672      $(
7673        '<div class="top_mobile_region"><div class="confirm_wrapper"><div class="confirm_region"></div></div></div>'
7674      ).insertBefore($("#mobileheader"));
7675    $(".top_mobile_region .confirm_region").html($(".confirm_region").html());
7676  }
7677};
7678
7679if (!funcDefined("basketActions")) {
7680  basketActions = function () {
7681    if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
7682      checkMinPrice();
7683
7684      //remove4Cart
7685      if (typeof BX.Sale !== "undefined" && typeof BX.Sale === "object") {
7686        if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent === "object") {
7687          $(document).on("click", ".basket-item-actions-remove", function () {
7688            var basketID = $(this).closest(".basket-items-list-item-container, .basket-items-list-item-wrapper").data("id");
7689            if (BX.Sale.BasketComponent.items && BX.Sale.BasketComponent.items[basketID]) {
7690              delFromBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID);
7691            }
7692          });
7693        }
7694      }
7695
7696      if (location.hash) {
7697        var hash = location.hash.substring(1);
7698        if ($("#basket_toolbar_button_" + hash).length) $("#basket_toolbar_button_" + hash).trigger("click");
7699
7700        if ($('.basket-items-list-header-filter a[data-filter="' + hash + '"]').length)
7701          $('.basket-items-list-header-filter a[data-filter="' + hash + '"]')[0].click();
7702      }
7703      var svg_cross =
7704        '<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path id="Rounded_Rectangle_568_copy_13" data-name="Rounded Rectangle 568 copy 13" class="cls-1" d="M1615.4,589l2.32,2.315a0.987,0.987,0,0,1,0,1.4,1,1,0,0,1-1.41,0L1614,590.4l-2.31,2.315a1,1,0,0,1-1.41,0,0.987,0.987,0,0,1,0-1.4L1612.6,589l-2.32-2.314a0.989,0.989,0,0,1,0-1.4,1,1,0,0,1,1.41,0l2.31,2.315,2.31-2.315a1,1,0,0,1,1.41,0,0.989,0.989,0,0,1,0,1.4Z" transform="translate(-1610 -585)"/></svg>';
7705
7706      $(".bx_sort_container").append(
7707        '<div class="top_control basket_action"><span style="opacity:0;" class="delete_all colored_theme_hover_text remove_all_basket">' +
7708          svg_cross +
7709          BX.message("BASKET_CLEAR_ALL_BUTTON") +
7710          "</span></div>"
7711      );
7712      if ($(".basket-items-list-header-filter").length) {
7713        $(".basket-items-list-header-filter").append(
7714          '<div class="top_control basket_action"><span style="opacity:1;" class="delete_all colored_theme_hover_text remove_all_basket">' +
7715            svg_cross +
7716            BX.message("BASKET_CLEAR_ALL_BUTTON") +
7717            "</span></div>"
7718        );
7719
7720        var cur_index = $(".basket-items-list-header-filter > a.active").index();
7721        //fix delayed
7722        if (cur_index == 3) cur_index = 2;
7723
7724        if ($(".basket-items-list-header-filter > a.active").data("filter") == "all") cur_index = "all";
7725
7726        $(".basket-items-list-header-filter .top_control .delete_all").data("type", cur_index);
7727
7728        $(".basket-items-list-header-filter > a").on("click", function () {
7729          var index = $(this).index();
7730
7731          //fix delayed
7732          if (index == 3) index = 2;
7733
7734          if ($(this).data("filter") == "all") index = "all";
7735
7736          $(".basket-items-list-header-filter .top_control .delete_all").data("type", index);
7737        });
7738      } else {
7739        var cur_index = $(".bx_sort_container a.current").index();
7740        $(".bx_sort_container .top_control .delete_all").data("type", cur_index);
7741        if ($(".bx_ordercart > div:eq(" + cur_index + ") table tbody tr td.item").length)
7742          $(".bx_sort_container .top_control .delete_all").css("opacity", 1);
7743
7744        $(".bx_ordercart .bx_ordercart_coupon #coupon").wrap('<div class="input"></div>');
7745
7746        $(".bx_sort_container > a").on("click", function () {
7747          var index = $(this).index();
7748          $(".bx_sort_container .top_control .delete_all").data("type", index);
7749
7750          if ($(".bx_ordercart > div:eq(" + index + ") table tbody tr td.item").length)
7751            $(".bx_sort_container .top_control .delete_all").css("opacity", 1);
7752          else $(".bx_sort_container .top_control .delete_all").css("opacity", 0);
7753        });
7754      }
7755
7756      $(".basket_print").on("click", function () {
7757        // window.open(location.pathname+"?print=Y",'_blank');
7758        window.print();
7759      });
7760
7761      $(".delete_all").on("click", function () {
7762        if (arAsproOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
7763          var eventdata = {
7764            goal: "goal_basket_clear",
7765            params: { type: $(this).data("type") },
7766          };
7767          BX.onCustomEvent("onCounterGoals", [eventdata]);
7768        }
7769        $.post(
7770          arAsproOptions["SITE_DIR"] + "ajax/action_basket.php",
7771          "TYPE=" + $(this).data("type") + "&CLEAR_ALL=Y",
7772          $.proxy(function (data) {
7773            location.reload();
7774          })
7775        );
7776      });
7777
7778      $(".bx_item_list_section .bx_catalog_item").sliceHeight({
7779        row: ".bx_item_list_slide",
7780        item: ".bx_catalog_item",
7781      });
7782
7783      BX.addCustomEvent("onAjaxSuccess", function (e) {
7784        checkMinPrice();
7785
7786        var errorText = $.trim($("#warning_message").text());
7787        $("#basket_items_list .error_text").detach();
7788        if (errorText != "") {
7789          $("#warning_message").hide().text("");
7790          $("#basket_items_list").prepend('<div class="error_text">' + errorText + "</div>");
7791        }
7792
7793        if (typeof e === "object" && e && "BASKET_DATA" in e) {
7794          if ($("#ajax_basket").length) {
7795            reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
7796          }
7797          if ($("#basket_line .basket_fly").length) {
7798            basketFly("open", "N");
7799          }
7800        }
7801        if (checkCounters("google")) {
7802          BX.unbindAll(
7803            BX.Sale.BasketComponent.getEntity(
7804              BX.Sale.BasketComponent.getCacheNode(BX.Sale.BasketComponent.ids.basketRoot),
7805              "basket-checkout-button"
7806            )
7807          );
7808        }
7809      });
7810      if (checkCounters("google")) {
7811        BX.unbindAll(
7812          BX.Sale.BasketComponent.getEntity(
7813            BX.Sale.BasketComponent.getCacheNode(BX.Sale.BasketComponent.ids.basketRoot),
7814            "basket-checkout-button"
7815          )
7816        );
7817      }
7818      $(document).on(
7819        "click",
7820        ".bx_ordercart_order_pay_center .checkout, .basket-checkout-section-inner .basket-btn-checkout",
7821        function () {
7822          if (checkCounters("google")) {
7823            const gotoOrder = function () {
7824              BX.Sale.BasketComponent.checkOutAction();
7825            };
7826            checkoutCounter(1, "start order", gotoOrder);
7827          }
7828        }
7829      );
7830    }
7831  };
7832}
7833
7834if (!funcDefined("checkMinPrice")) {
7835  checkMinPrice = function () {
7836    if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
7837      var summ_raw = 0,
7838        summ = 0;
7839      if ($("#allSum_FORMATED").length) {
7840        summ_raw = $("#allSum_FORMATED")
7841          .text()
7842          .replace(/[^0-9\.,]/g, "");
7843        summ = parseFloat(summ_raw);
7844        if ($("#basket_items").length) {
7845          var summ = 0;
7846          $("#basket_items tr").each(function () {
7847            if (typeof $(this).data("item-price") !== "undefined" && $(this).data("item-price"))
7848              summ +=
7849                $(this).data("item-price") *
7850                $(this)
7851                  .find("#QUANTITY_INPUT_" + $(this).attr("id"))
7852                  .val();
7853          });
7854        }
7855        if (!$(".catalog_back").length)
7856          $(".bx_ordercart_order_pay_center").prepend(
7857            '<a href="' +
7858              arAsproOptions["PAGES"]["CATALOG_PAGE_URL"] +
7859              '" class="catalog_back btn btn-default btn-lg white grey">' +
7860              BX.message("BASKET_CONTINUE_BUTTON") +
7861              "</a>"
7862          );
7863      }
7864
7865      if (arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y")
7866        $(".basket-coupon-section").addClass("smallest");
7867
7868      if (typeof BX.Sale !== "undefined") {
7869        if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent.result !== "undefined")
7870          summ = BX.Sale.BasketComponent.result.allSum;
7871      }
7872
7873      if (arAsproOptions["PRICES"]["MIN_PRICE"]) {
7874        if (arAsproOptions["PRICES"]["MIN_PRICE"] > summ) {
7875          var svgMinPrice =
7876            '<i class="svg  svg-inline-price colored_theme_svg" aria-hidden="true"><svg id="Group_278_copy" data-name="Group 278 copy" xmlns="http://www.w3.org/2000/svg" width="38" height="38" viewBox="0 0 38 38"><path id="Ellipse_305_copy_2" data-name="Ellipse 305 copy 2" class="clswm-1" d="M1851,561a19,19,0,1,1,19-19A19,19,0,0,1,1851,561Zm0-36a17,17,0,1,0,17,17A17,17,0,0,0,1851,525Zm3.97,10.375-0.03.266c-0.01.062-.02,0.127-0.03,0.188l-0.94,7.515h0a2.988,2.988,0,0,1-5.94,0H1848l-0.91-7.525c-0.01-.041-0.01-0.086-0.02-0.128l-0.04-.316h0.01c-0.01-.
7876125-0.04-0.246-0.04-0.375a4,4,0,0,1,8,0c0,0.129-.03.25-0.04,0.375h0.01ZM1851,533a2,2,0,0,0-2,2,1.723,1.723,0,0,0,.06.456L1850,543a1,1,0,0,0,2,0l0.94-7.544A1.723,1.723,0,0,0,1853,535,2,2,0,0,0,1851,533Zm0,14a3,3,0,1,1-3,3A3,3,0,0,1,1851,547Zm0,4a1,1,0,1,0-1-1A1,1,0,0,0,1851,551Z" transform="translate(-1832 -523)"></path>  <path class="clswm-2 op-cls" d="M1853,543l-1,1h-2l-1-1-1-8,1-2,1-1h2l1,1,1,2Zm-1,5,1,1v2l-1,1h-2l-1-1v-2l1-1h2Z" transform="translate(-1832 -523)"></path></svg></i>';
7877          if ($(".oneclickbuy.fast_order").length) $(".oneclickbuy.fast_order").remove();
7878
7879          if ($(".basket-checkout-container").length) {
7880            if (!$(".icon_error_wrapper").length) {
7881              $(".basket-checkout-block.basket-checkout-block-btn").html(
7882                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
7883                  svgMinPrice +
7884                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
7885                    "#PRICE#",
7886                    jsPriceFormat(arAsproOptions["PRICES"]["MIN_PRICE"])
7887                  ) +
7888                  "</div></div>"
7889              );
7890            }
7891          } else {
7892            if (!$(".icon_error_wrapper").length && typeof jsPriceFormat !== "undefined") {
7893              $(".bx_ordercart_order_pay_center").prepend(
7894                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
7895                  svgMinPrice +
7896                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
7897                    "#PRICE#",
7898                    jsPriceFormat(arAsproOptions["PRICES"]["MIN_PRICE"])
7899                  ) +
7900                  "</div></div>"
7901              );
7902            }
7903            if ($(".bx_ordercart_order_pay .checkout").length) $(".bx_ordercart_order_pay .checkout").remove();
7904          }
7905        } else {
7906          if ($(".icon_error_wrapper").length) $(".icon_error_wrapper").remove();
7907
7908          if ($(".basket-checkout-container").length) {
7909            if (
7910              !$(".oneclickbuy.fast_order").length &&
7911              arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
7912              !$(".basket-btn-checkout.disabled").length
7913            )
7914              $(".basket-checkout-section-inner").append(
7915                '<div class="fastorder"><span class="oneclickbuy btn btn-lg fast_order btn-transparent-border-color" onclick="oneClickBuyBasket()">' +
7916                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
7917                  "</span></div>"
7918              );
7919          } else {
7920            if ($(".bx_ordercart_order_pay .checkout").length)
7921              $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
7922            else
7923              $(".bx_ordercart_order_pay_center").append(
7924                '<a href="javascript:void(0)" onclick="checkOut();" class="checkout" style="opacity: 1;">' +
7925                  BX.message("BASKET_ORDER_BUTTON") +
7926                  "</a>"
7927              );
7928            if (
7929              !$(".oneclickbuy.fast_order").length &&
7930              arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y"
7931            )
7932              $(".bx_ordercart_order_pay_center").append(
7933                '<span class="oneclickbuy btn btn-lg fast_order btn-transparent-border-color" onclick="oneClickBuyBasket()">' +
7934                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
7935                  "</span>"
7936              );
7937          }
7938        }
7939      } else {
7940        if ($(".basket-checkout-container").length) {
7941          if (
7942            !$(".oneclickbuy.fast_order").length &&
7943            arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
7944            !$(".basket-btn-checkout.disabled").length
7945          )
7946            $(".basket-checkout-section-inner").append(
7947              '<div class="fastorder"><span class="oneclickbuy btn btn-lg fast_order btn-transparent-border-color" onclick="oneClickBuyBasket()">' +
7948                BX.message("BASKET_QUICK_ORDER_BUTTON") +
7949                "</span></div>"
7950            );
7951        } else {
7952          $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
7953          if (!$(".oneclickbuy.fast_order").length && arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y")
7954            $(".bx_ordercart_order_pay_center").append(
7955              '<span class="oneclickbuy btn btn-lg fast_order btn-trans
7955parent-border-color" onclick="oneClickBuyBasket()">' +
7956                BX.message("BASKET_QUICK_ORDER_BUTTON") +
7957                "</span>"
7958            );
7959        }
7960      }
7961
7962      showBasketShareBtn();
7963      showBasketHeadingBtn();
7964
7965      $("#basket-root .basket-checkout-container .basket-checkout-section .basket-checkout-block .basket-btn-checkout");
7966      $("#basket-root .basket-checkout-container").addClass("visible");
7967    }
7968  };
7969}
7970
7971var isFrameDataReceived = false;
7972if (typeof window.frameCacheVars !== "undefined") {
7973  BX.addCustomEvent(window, "onFrameDataRequestFail", function (response) {
7974    console.log(response);
7975  });
7976
7977  BX.addCustomEvent("onFrameDataReceivedBefore", function () {
7978    // stop ya metrika webvisor DOM indexer
7979    pauseYmObserver();
7980  });
7981
7982  BX.addCustomEvent("onFrameDataReceived", function (json) {
7983    initFull();
7984
7985    CheckTopMenuDotted();
7986
7987    checkLinkedArticles();
7988    checkLinkedBlocks(".linked-banners-list");
7989
7990    if ($(".logo-row.v2").length) {
7991      $(window).resize(); // need to check resize flexslider & menu
7992      setTimeout(function () {
7993        CheckTopMenuDotted();
7994      }, 100);
7995    }
7996
7997    if (funcDefined("setNewHeader")) {
7998      if (typeof BX === "object" && (BX.message("TYPE_SKU") != "TYPE_1" || BX.message("HAS_SKU_PROPS") != "Y")) {
7999        setNewHeader();
8000      } else {
8001        var objNameWrapper = $(".bx_catalog_item_scu[id]");
8002        if (objNameWrapper.length) {
8003          var id = "ob" + objNameWrapper.attr("id").replace("_skudiv", "");
8004          if (id && window[id] !== undefined) {
8005            var obj = window[id].offers[window[id].offerNum];
8006            if (obj !== undefined) {
8007              setNewHeader(obj);
8008            }
8009          }
8010        }
8011      }
8012    }
8013
8014    typeof InitAppear === 'function' && InitAppear();
8015
8016    // resume ya metrika webvisor
8017    // (100ms sliceHeight) + (200ms mCustomScroll) + (100ms lazyload)
8018    setTimeout(resumeYmObserver, 400);
8019
8020    isFrameDataReceived = true;
8021  });
8022} else {
8023  $(document).ready(initFull);
8024}
8025
8026if (!funcDefined("setHeightBlockSlider")) {
8027  setHeightBlockSlider = function () {
8028    /*$(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item-title" });
8029    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item_info" });
8030    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".catalog_item" });
8031
8032    var sliderWidth = $(document).find(".specials.tab_slider_wrapp").outerWidth();
8033
8034    var iCountTabs = $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").length;
8035
8036    if (iCountTabs <= 1) {
8037      $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").css("height", "");
8038
8039      var itemsButtonsHeight = 0;
8040      if ($(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button").length) {
8041        $(document)
8042          .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button")
8043          .css("height", "auto");
8044        itemsButtonsHeight = $(document)
8045          .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button")
8046          .height();
8047        $(document)
8048          .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button")
8049          .css("height", "");
8050      }
8051      var tabsContentUnhover = $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").height() * 1;
8052      var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50;
8053      $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-unhover", tabsContentUnhover);
8054      $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-hover", tabsContentHover);
8055      $(document).find(".specials.tab_slider_wrapp .tabs_content").height(tabsContentUnhover);
8056      $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .flex-viewport").height(tabsContentUnhover);
8057    } else {
8058      $(document)
8059        .find(".specials.tab_slider_wrapp .tabs_content > li.cur")
8060        .each(function () {
8061          var _th = $(this);
8062          _th.css("height", "");
8063
8064          var itemsButtonsHeight = 0;
8065          if (_th.find(".tabs_slider li .footer_button").length) {
8066            _th.find(".tabs_slider li .footer_button").css("height", "auto");
8067            itemsButtonsHeight = _th.find(".tabs_slider li .footer_button").height();
8068            _th.find(".tabs_slider li .footer_button").css("height", "");
8069          }
8070
8071          var tabsContentUnhover = _th.height() * 1;
8072          var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50;
8073          _th.attr("data-unhover", tabsContentUnhover);
8074          _th.attr("data-hover", tabsContentHover);
8075          _th.parent().height(tabsContentUnhover);
8076          _th.find(".flex-viewport").height(tabsContentUnhover);
8077        });
8078    }*/
8079  };
8080}
8081
8082if (!funcDefined("checkTopFilter")) {
8083  checkTopFilter = function () {};
8084}
8085
8086if (!funcDefined("checkStickyFooter")) {
8087  checkStickyFooter = function () {};
8088}
8089
8090if (!funcDefined("checkLinkedArticles")) {
8091  checkLinkedArticles = function () {
8092    try {
8093      if ($(".linked-blog-list.content .item-views").length) {
8094        var mobileRow = $(".linked-blog-list").data("mobile_row"),
8095          desktopRow = $(".linked-blog-list").data("desktop_row"),
8096          parentBlock = $(".ajax_load .js_append"),
8097          widthRow = parentBlock.getFloatWidth(),
8098          elementWidthRow = parentBlock.find("> .item:eq(0)").getFloatWidth(),
8099          elementsCount = parentBlock.find("> .item").length,
8100          slice = Math.floor(widthRow / elementWidthRow),
8101          rowInsertCount = Math.floor(elementsCount / slice),
8102          bCalculateRows = false;
8103        if (window.matchMedia("(max-width: 767px)").matches) {
8104          if (!mobileRow && desktopRow) {
8105            mobileRow = desktopRow;
8106          }
8107          if (mobileRow && mobileRow <= rowInsertCount) {
8108            rowInsertCount = slice * mobileRow;
8109            bCalculateRows = true;
8110          }
8111        } else {
8112          if (desktopRow && desktopRow <= rowInsertCount) {
8113            rowInsertCount = slice * desktopRow;
8114            bCalculateRows = true;
8115          }
8116        }
8117        if (!bCalculateRows) {
8118          rowInsertCount = elementsCount;
8119        }
8120
8121        var linkedBlock = ".linked-blog-list";
8122        var blockInItems = parentBlock.find(linkedBlock);
8123        if (blockInItems.length) {
8124          $(blockInItems).insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
8125          setTimeout(function () {
8126            $(blockInItems).addClass("visible");
8127          }, 0);
8128        } else {
8129          var cloneBlock = $(linkedBlock).clone();
8130          var owlBlock = cloneBlock.find(".owl-carousel-wait");
8131          cloneBlock.insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
8132          owlBlock.removeClass("owl-carousel-wait").addClass("swiper");
8133          setTimeout(function () {
8134            cloneBlock.addClass("visible");
8135            initSwiperSlider();
8136            owlBlock.removeClass("loader_circle");
8137          }, 1);
8138        }
8139      }
8140    } catch (e) {
8141      console.error(e);
8142    }
8143  };
8144}
8145
8146if (!funcDefined("checkLinkedBlocks")) {
8147  checkLinkedBlocks = function (linkedBlock) {
8148    if (!linkedBlock) linkedBlock = ".linked-banners-list";
8149
8150    try {
8151      if ($(linkedBlock + ".content" + " div").length) {
8152        var mobileRow = $(linkedBlock).data("mobile_row"),
8153          desktopRow = $(linkedBlock).data("desktop_row"),
8154          wrapperBlock = $(".ajax_load .js_wrapper_items"),
8155          parentBlock = $(".ajax_load .js_append"),
8156          widthRow = wrapperBlock.getFloatWidth(),
8157          elementWidthRow = parentBlock.find("> .item:eq(0)").getFloatWidth(),
8158          elementsCount = parentBlock.find("> .item").length,
8159          slice = Math.floor(widthRow / elementWidthRow),
8160          rowInsertCount = Math.floor(elementsCount / slice),
8161          bCalculateRows = false;
8162        if (window.matchMedia("(max-width: 767px)").matches) {
8163          if (!mobileRow && desktopRow) {
8164            mobileRow = desktopRow;
8165          }
8166          if (mobileRow && mobileRow <= rowInsertCount) {
8167            rowInsertCount = slice * mobileRow;
8168            bCalculateRows = true;
8169          }
8170        } else {
8171          if (desktopRow && desktopRow <= rowInsertCount) {
8172            rowInsertCount = slice * desktopRow;
8173            bCalculateRows = true;
8174          }
8175        }
8176        if (!bCalculateRows) {
8177          rowInsertCount = elementsCount;
8178        }
8179        var blockInItems = parentBlock.find(linkedBlock);
8180        if (blockInItems.length) {
8181          $(blockInItems).insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
8182          setTimeout(function () {
8183            $(blockInItems).addClass("visible");
8184          }, 0);
8185        } else {
8186          var cloneBlock = $(linkedBlock).clone();
8187          var owlBlock = cloneBlock.find(".owl-carousel-wait");
8188          cloneBlock.insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
8189          owlBlock.removeClass("owl-carousel-wait").addClass("swiper");
8190          setTimeout(function () {
8191            cloneBlock.addClass("visible");
8192            initSwiperSlider();
8193            owlBlock.removeClass("loader_circle");
8194          }, 1);
8195        }
8196      }
8197    } catch (e) {
8198      console.error(e);
8199    }
8200  };
8201}
8202
8203/* EVENTS */
8204var timerResize = false,
8205  ignoreResize = [];
8206$(window).resize(function () {
8207  checkLinkedArticles();
8208  checkLinkedBlocks(".linked-banners-list");
8209
8210  // here immediate functions
8211  if (!ignoreResize.length) {
8212    if (timerResize) {
8213      clearTimeout(timerResize);
8214      timerResize = false;
8215    }
8216    timerResize = setTimeout(function () {
8217      // here delayed functions in event
8218      BX.onCustomEvent("onWindowResize", false);
8219    }, 50);
8220  }
8221});
8222
8223var timerScroll = false,
8224  ignoreScroll = [],
8225  documentScrollTopLast = window.pageYOffset,
8226  startScroll = 0;
8227$(window).scroll(function () {
8228  // here immediate functions
8229  documentScrollTopLast = window.pageYOffset;
8230  SetFixedAskBlock();
8231
8232  if (!ignoreScroll.length) {
8233    if (timerScroll) {
8234      clearTimeout(timerScroll);
8235      timerScroll = false;
8236    }
8237    timerScroll = setTimeout(function () {
8238      // here delayed functions in event
8239      BX.onCustomEvent("onWindowScroll", false);
8240    }, 50);
8241  }
8242});
8243
8244BX.addCustomEvent("onWindowResize", function (eventdata) {
8245  try {
8246    ignoreResize.push(true);
8247
8248    CheckTabActive();
8249    CheckTopMenuFullCatalogSubmenu();
8250
8251    if (window.matchMedia("(min-width:768px)").matches) {
8252      closeYandexMap();
8253    }
8254
8255    if ($("nav.mega-menu.sliced").length) $("nav.mega-menu.sliced").removeClass("initied");
8256    CheckTopMenuDotted();
8257
8258    CheckTopVisibleMenu();
8259
8260    checkScrollToTop();
8261    CheckObjectsSizes();
8262
8263    initSly();
8264
8265    // checkVerticalMobileFilter();
8266    if (typeof checkMobilePhone === "function") {
8267      checkMobilePhone();
8268    }
8269    checkTopFilter();
8270    if (typeof checkMobileFilter === "function") {
8271      checkMobileFilter();
8272    }
8273
8274    if (typeof window["stickySidebar"] !== "undefined") {
8275      if (window.matchMedia("(max-width: 991px)").matches) {
8276        window["stickySidebar"].destroy();
8277      } else {
8278        window["stickySidebar"].bindEvents();
8279      }
8280    }
8281
8282    if ($(".flexslider.wsmooth").length) {
8283      $(".flexslider.wsmooth").each(function () {
8284        $(this).data("flexslider").smoothHeight();
8285      });
8286    }
8287
8288    if (window.matchMedia("(min-width: 767px)").matches) $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
8289
8290    if (window.matchMedia("(max-width: 767px)").matches) $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
8291
8292    if ($("#basket_form").length && $(window).outerWidth() <= 600) {
8293      $("#basket_form .tabs_content.basket > li.cur td").each(function () {
8294        $(this).css("width", "");
8295      });
8296    }
8297
8298    $(".bx_filter_section .bx_filter_select_container").each(function () {
8299      var prop_id = $(this).closest(".bx_filter_parameters_box").attr("property_id");
8300      if ($("#smartFilterDropDown" + prop_id).length) {
8301        $("#smartFilterDropDown" + prop_id).css("max-width", $(this).width());
8302      }
8303    });
8304  } catch (e) {
8305    console.log(e);
8306  } finally {
8307    ignoreResize.pop();
8308  }
8309});
8310
8311BX.addCustomEvent("onWindowScroll", function (eventdata) {
8312  try {
8313    ignoreScroll.push(true);
8314  } catch (e) {
8315  } finally {
8316    ignoreScroll.pop();
8317  }
8318});
8319
8320BX.addCustomEvent("onSlideInit", function (eventdata) {
8321  try {
8322    ignoreResize.push(true);
8323    if (eventdata) {
8324      var slider = eventdata.slider;
8325      if (slider) {
8326        if (slider.hasClass("small-gallery")) $(window).resize();
8327        // add classes .curent & .shown to slide
8328        slider.find(".item").removeClass("current");
8329        var curSlide = slider.find(".item.flex-active-slide"),
8330          curSlideId = curSlide.attr("id"),
8331          nav = slider.find(".flex-direction-nav");
8332
8333        curSlide.addClass("current");
8334
8335        slider.find(".visible").css("opacity", "1");
8336        slider.find(".height0").css("height", "auto");
8337
8338        if (curSlide.hasClass("shown")) {
8339          slider.find(".item.clone[id=" + curSlideId + "_clone]").addClass("shown");
8340        }
8341
8342        curSlide.addClass("shown");
8343      }
8344    }
8345  } catch (e) {
8346  } finally {
8347    ignoreResize.pop();
8348  }
8349});
8350
8351BX.addCustomEvent("onCounterGoals", function (eventdata) {
8352  if (arAsproOptions["THEME"]["YA_GOALS"] == "Y" && arAsproOptions["THEME"]["YA_COUNTER_ID"]) {
8353    var idCounter = arAsproOptions["THEME"]["YA_COUNTER_ID"];
8354    idCounter = parseInt(idCounter);
8355
8356    if (typeof eventdata != "object") eventdata = { goal: "undefined" };
8357
8358    if (typeof eventdata.goal != "string") eventdata.goal = "undefined";
8359
8360    if (idCounter) {
8361      try {
8362        waitCounter(idCounter, 50, function () {
8363          var obCounter = window["yaCounter" + idCounter];
8364          if (typeof obCounter == "object") {
8365            obCounter.reachGoal(eventdata.goal);
8366          }
8367        });
8368      } catch (e) {
8369        console.error(e);
8370      }
8371    } else {
8372      console.info("Bad counter id!", idCounter);
8373    }
8374  }
8375});
8376
8377$(document).on("click", ".catalog_reviews_extended span.dropdown-select__list-link", function () {
8378  var _this = $(this);
8379  var ajaxData = _this.data("review_sort_ajax");
8380  var container = _this.closest(".blog-comments");
8381  containerId = container.attr("id");
8382  if (containerId !== undefined && containerId) {
8383    ajaxData.containerId = containerId;
8384  }
8385  if (ajaxData !== undefined) {
8386    container.addClass("blur");
8387    $.ajax({
8388      type: "post",
8389      data: ajaxData,
8390      success: function (html) {
8391        $("#reviews_sort_continer").html(html);
8392        container.removeClass("blur");
8393      },
8394    });
8395  }
8396});
8397
8398$(document).on("change", ".filter-panel__sort-form input", function () {
8399  const _this = $(this);
8400  const $form = _this.closest("form")[0];
8401  const $container = _this.closest(".blog-comments");
8402  const method = $form.method;
8403  const formData = new FormData($form);
8404
8405  if ($container.length) {
8406    $container.addClass("blur");
8407    formData.append("containerId", $container.attr("id"));
8408  }
8409
8410  $.ajax({
8411    data: formData,
8412    type: method,
8413    processData: false,
8414    contentType: false,
8415    success: function (html) {
8416      $("#reviews_sort_continer").html(html);
8417      $container.removeClass("blur");
8418    },
8419  });
8420});
8421
8422
8423function fileInputInit(message, reviews = "N") {
8424  $('input[type=file]:not(".uniform-ignore")').uniform({
8425    fileButtonHtml: BX.message("JS_FILE_BUTTON_NAME"),
8426    fileDefaultHtml: message,
8427  });
8428  $(document).on("change", "input[type=file]", function () {
8429    if ($(this).val()) {
8430      $(this).closest(".uploader").addClass("files_add");
8431    } else {
8432      $(this).closest(".uploader").removeClass("files_add");
8433    }
8434  });
8435  $(".form .add_file").on("click", function () {
8436    var index = $(this).closest(".form-group").find("input[type=file]").length;
8437    let inputFormGroup = $(this).closest(".form-group").find(".input");
8438    if (reviews === "Y") {
8439      inputFormGroup.append(
8440        '<input type="file" class="form-control" tabindex="3" id="comment_images" name="comment_images[]" value=""  />'
8441      );
8442    } else {
8443      inputFormGroup.append(
8444        '<input type="file" id="POPUP_FILE' + index + '" name="FILE_n' + index + '"   class="inputfile" value="" />'
8445      );
8446    }
8447
8448    $('input[type=file]:not(".uniform-ignore")').uniform({
8449      fileButtonHtml: BX.message("JS_FILE_BUTTON_NAME"),
8450      fileDefaultHtml: message,
8451    });
8452  });
8453}
8454
8455function declOfNum(number, titles) {
8456  var cases = [2, 0, 1, 1, 1, 2];
8457  return number + " " + titles[number % 100 > 4 && number % 100 < 20 ? 2 : cases[Math.min(number % 10, 5)]];
8458}
8459
8460function array_values_js(input) {
8461  var tmp_arr = new Array(),
8462    cnt = 0;
8463  for (key in input) {
8464    tmp_arr[cnt] = input[key];
8465    cnt++;
8466  }
8467
8468  return tmp_arr;
8469}
8470
8471$(document).on("input", ".bx_filter_parameters_box_container input[type=text]:not([data-text-input]), .inputdecimal", function () {
8472  this.value = this.value.replace(/[^\d\.\-]/g, "");
8473});
8474
8475BX.addCustomEvent('onAfterPopupShow', (popup) => {
8476  document.querySelectorAll('[id^=calendar_popup]').forEach((node) => {
8477    node.style.zIndex = '3600';
8478  })
8479});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.