PageSourceSearch

http://evrogazon.ru/bitrix/templates/aspro_max/js/main.js

js evrogazon.ru collected 2026-10-08 07:26:24 UTC 366,815 bytes, 10,147 lines download raw bytes

1var basketTimeoutSlide;
2var resizeEventTimer;
3
4var clicked_tab = 0;
5
6if (typeof arAsproOptions === "undefined") {
7  var arAsproOptions = {
8    SITE_DIR: "/",
9  };
10  if ($("body").data("site") !== undefined) arAsproOptions["SITE_DIR"] = $("body").data("site");
11}
12
13function readyDOM(callback) {
14  if (document.readyState !== "loading") callback();
15  else document.addEventListener("DOMContentLoaded", callback);
16}
17
18InitLazyLoad = function () {};
19
20$(document).on("change", ".uploader input[type=file]", function () {
21  if (!$(this).next().length || !$(this).next().hasClass("resetfile")) {
22    $(
23      '<span class="resetfile"><svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="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>'
24    ).insertAfter($(this));
25  }
26});
27
28$(document).on("click", ".uploader.files_add input[type=file] + .resetfile", function () {
29  var $input = $(this).prev();
30  $input.val("");
31  $.uniform.update($input);
32  $(this).remove();
33});
34
35$(document).on("click", ".top_block h3", function () {
36  if (window.matchMedia("(max-width: 550px)").matches) {
37    var $this = $(this);
38    var a = $this.siblings("a");
39    if (a.length) {
40      a[0].click();
41    }
42  }
43});
44
45$(document).on("click", ".bx-yandex-view-layout .yandex-map__mobile-opener", function () {
46  if ($(this).hasClass("closer")) {
47    closeYandexMap();
48  } else {
49    openYandexMap(this);
50  }
51});
52
53function openYandexMap(element) {
54  var $this = $(element);
55  if ($this.hasClass("closer")) return;
56  var currentMap = $this.parents(".bx-yandex-view-layout");
57  var mapId = currentMap.find(".bx-yandex-map").attr("id");
58  window.openedYandexMapFrame = mapId;
59  var mapContainer = $('<div data-mapId="' + mapId + '"></div>');
60  if (!$("div[data-mapId=" + mapId + "]").length) {
61    currentMap.after(mapContainer);
62  }
63  var yandexMapFrame = $('<div class="yandex-map__frame"></div>');
64  $("body .wrapper1").append(yandexMapFrame);
65  currentMap.appendTo(yandexMapFrame);
66  currentMap.find(".yandex-map__mobile-opener").addClass("closer");
67  window.map.container.fitToViewport();
68}
69
70function closeYandexMap() {
71  var yandexMapFrame = $(".yandex-map__frame");
72  if (yandexMapFrame.length) {
73    var currentMap = yandexMapFrame.find(".bx-yandex-view-layout");
74    var yandexMapContainer = $("div[data-mapId=" + window.openedYandexMapFrame + "]");
75
76    currentMap.appendTo(yandexMapContainer);
77    yandexMapFrame.remove();
78    currentMap.find(".yandex-map__mobile-opener").removeClass("closer");
79    if (window.map) {
80      window.map.container.fitToViewport();
81    }
82  }
83}
84
85function throttle(f, t) {
86  let throttled, saveThis, saveArgs;
87  const wrapper = function () {
88    if (throttled) {
89      saveThis = this;
90      saveArgs = arguments;
91      return;
92    }
93    throttled = true;
94    f.apply(this, arguments);
95    setTimeout(function () {
96      throttled = false;
97      if (saveArgs) {
98        wrapper.apply(saveThis, saveArgs);
99        saveThis = saveArgs = null;
100      }
101    }, t);
102  };
103  return wrapper;
104}
105
106function debounce(f, t) {
107  return function (args) {
108    var previousCall = this.lastCall;
109    this.lastCall = Date.now();
110    if (previousCall && this.lastCall - previousCall <= t) {
111      clearTimeout(this.lastCallTimer);
112    }
113    this.lastCallTimer = setTimeout(function () {
114      f(args);
115    }, t);
116  };
117}
118
119$(document).on("click", ".flex-control-nav.flex-control-js-click li a:not(.flex-active)", function (e) {
120  var _this = $(this);
121  var itemIndex = _this.data("index") ? _this.data("index") : _this.closest("li").index();
122
123  var block = "";
124  var blocks = _this.closest(".items").find("> .item");
125  var activeBlock = _this.closest(".items").find(".item.active");
126
127  var activeLi = _this.closest(".flex-control-nav").find(".flex-active");
128
129  activeBlock.fadeOut(function () {
130    activeBlock.removeClass("active");
131
132    block = blocks.eq(itemIndex);
133    if (block.length) {
134      block.fadeIn(function () {
135        block.addClass("active");
136      });
137    }
138
139    _this.addClass("flex-active");
140    activeLi.removeClass("flex-active");
141  });
142
143  e.preventDefault();
144});
145
146$(document).on("mouseenter", "#headerfixed .menu-item.wide_menu", function () {
147  var _this = $(this);
148  setTimeout(function () {
149    var dropdownMenu = _this.find(".wrap > .dropdown-menu");
150    var menuOffset = dropdownMenu[0].getBoundingClientRect();
151    var headerOffset = document.getElementById("headerfixed").getBoundingClientRect();
152    var windowHeight = document.documentElement.clientHeight;
153
154    if (menuOffset.height + headerOffset.height > windowHeight) {
155      var maxHeight = windowHeight - headerOffset.height;
156      dropdownMenu.css({
157        "max-height": maxHeight,
158      });
159      dropdownMenu.find(".menu-navigation").css({ "max-height": maxHeight });
160      dropdownMenu.find(".customScrollbar").css({ "max-height": maxHeight });
161      dropdownMenu.find(".menu-wrapper.menu-type-4 > li").css({ "min-height": "auto" });
162    } else {
163      dropdownMenu.css({
164        "max-height": "",
165      });
166      dropdownMenu.find(".menu-navigation").css({ "max-height": "" });
167      dropdownMenu.find(".customScrollbar").css({ "max-height": "" });
168      dropdownMenu.find(".menu-wrapper.menu-type-4 > li").css({ "min-height": "" });
169    }
170  }, 300);
171});
172
173BX.addCustomEvent("onAjaxSuccess", function (data) {
174  if (typeof data === "object" && data !== null) {
175    if (typeof data.BASKET_REFRESHED !== undefined && data.BASKET_REFRESHED === true) {
176      var basketCounts = data.BASKET_DATA.BASKET_ITEMS_COUNT;
177      reloadBasketCounters(basketCounts);
178    }
179  }
180});
181
182if (!funcDefined("parseUrlQuery")) {
183  parseUrlQuery = function () {
184    var data = {};
185    if (location.search) {
186      var pair = location.search.substr(1).split("&");
187      for (var i = 0; i < pair.length; i++) {
188        var param = pair[i].split("=");
189        data[param[0]] = param[1];
190      }
191    }
192    return data;
193  };
194}
195
196if (!funcDefined("setLocationSKU")) {
197  function setLocationSKU(ID, urlParam) {
198    if (urlParam === undefined) urlParam = "oid";
199
200    var objUrl = parseUrlQuery(),
201      j = 0,
202      prefix = "",
203      query_string = "",
204      url = "";
205
206    objUrl[urlParam] = ID;
207
208    for (var i in objUrl) {
209      if (parseInt(j) > 0) prefix = "&";
210      query_string = query_string + prefix + i + "=" + objUrl[i];
211      j++;
212    }
213    if (query_string) {
214      url = location.pathname + "?" + query_string + location.hash;
215    }
216    try {
217      //history.pushState(null, null, url);
218      history.replaceState(null, null, url);
219      return;
220    } catch (e) {}
221    location.hash = "#" + url.substr(1);
222  }
223}
224
225if (!funcDefined("ShowOverlay")) {
226  ShowOverlay = function () {
227    $('<div class="jqmOverlay waiting"></div>').appendTo("body");
228  };
229}
230
231if (!funcDefined("HideOverlay")) {
232  HideOverlay = function () {
233    $(".jqmOverlay").detach();
234  };
235}
236
237if (!funcDefined("trimPrice")) {
238  var trimPrice = function trimPrice(s) {
239    s = s.split(" ").join("");
240    s = s.split("&nbsp;").join("");
241    return s;
242  };
243}
244
245if (!funcDefined("pauseYmObserver")) {
246  // pause ya metrika webvisor MutationObserver callback (DOM indexer)
247  // use before insert html with some animation
248  pauseYmObserver = function () {
249    if (
250      typeof MutationObserver === "function" &&
251      typeof MutationObserver.observers === "object" &&
252      typeof MutationObserver.observers.ym === "object"
253    ) {
254      if (typeof pauseYmObserver.cnt === "undefined") {
255        pauseYmObserver.cnt = 0;
256      }
257
258      ++pauseYmObserver.cnt;
259
260      if (!MutationObserver.observers.ym.paused) {
261        MutationObserver.observers.ym.pause();
262      }
263    }
264  };
265}
266
267if (!funcDefined("resumeYmObserver")) {
268  // resume ya metrika webvisor MutationObserver callback
269  // use when animation finished
270  resumeYmObserver = function () {
271    if (
272      typeof MutationObserver === "function" &&
273      typeof MutationObserver.observers === "object" &&
274      typeof MutationObserver.observers.ym === "object"
275    ) {
276      if (typeof pauseYmObserver.cnt === "undefined") {
277        pauseYmObserver.cnt = 1;
278      }
279
280      pauseYmObserver.cnt -= pauseYmObserver.cnt > 0 ? 1 : 0;
281
282      if (!pauseYmObserver.cnt && MutationObserver.observers.ym.paused) {
283        MutationObserver.observers.ym.resume();
284      }
285    }
286  };
287}
288
289if (!funcDefined("markProductRemoveBasket")) {
290  var markProductRemoveBasket = function markProductRemoveBasket(id) {
291    $(".in-cart[data-item=" + id + "]").hide();
292    $(".to-cart[data-item=" + id + "]").show();
293    $(".to-cart[data-item=" + id + "]")
294      .closest(".button_block")
295      .removeClass("wide");
296    $(".to-cart[data-item=" + id + "]")
297      .closest(".counter_wrapp")
298      .find(".counter_block")
299      .show();
300    $(".counter_block[data-item=" + id + "]")
301      .closest(".counter_block_inner")
302      .show();
303    $(".counter_block[data-item=" + id + "]").show();
304    $(".in-subscribe[data-item=" + id + "]").hide();
305    $(".to-subscribe[data-item=" + id + "]").show();
306    //$('.wish_item[data-item='+id+']').removeClass("added");
307    $(".wish_item[data-item=" + id + "] .value:not(.added)").show();
308    $(".wish_item[data-item=" + id + "] .value.added").hide();
309    $(".wish_item.to[data-item=" + id + "]").show();
310    $(".wish_item.in[data-item=" + id + "]").hide();
311    $(".banner_buttons.with_actions .wraps_buttons[data-id=" + id + "] .basket_item_add").removeClass("added");
312    $(".banner_buttons.with_actions .wraps_buttons[data-id=" + id + "] .wish_item_add").removeClass("added");
313
314    if ($("#headerfixed .but-cell .type_block").length) {
315      $("#headerfixed .but-cell .type_block span").text(BX.message("MORE_INFO_SKU"));
316      $("#headerfixed .but-cell .type_block .svg-inline-fw").remove();
317    }
318  };
319}
320
321if (!funcDefined("markProductAddBasket")) {
322  var markProductAddBasket = function markProductAddBasket(id) {
323    $(".to-cart[data-item=" + id + "]").hide();
324    $(".to-cart[data-item=" + id + "]")
325      .closest(".counter_wrapp")
326      .find(".counter_block_inner")
327      .hide();
328    $(".to-cart[data-item=" + id + "]")
329      .closest(".counter_wrapp")
330      .find(".counter_block")
331      .hide();
332    $(".to-cart[data-item=" + id + "]")
333      .closest(".button_block")
334      .addClass("wide");
335    $(".in-cart[data-item=" + id + "]").show();
336    //$('.wish_item[data-item='+id+']').removeClass("added");
337    $(".wish_item[data-item=" + id + "] .value:not(.added)").show();
338    $(".wish_item[data-item=" + id + "] .value.added").hide();
339
340    $(".wish_item.to[data-item=" + id + "]").show();
341    $(".wish_item.in[data-item=" + id + "]").hide();
342    $(".banner_buttons.with_actions .wraps_buttons[data-id=" + id + "] .basket_item_add").addClass("added");
343
344    if ($("#headerfixed .but-cell .type_block").length) {
345      $("#headerfixed .but-cell .type_block").html($(".in-cart[data-item=" + id + "]").html());
346    }
347  };
348}
349
350if (!funcDefined("markProductDelay")) {
351  var markProductDelay = function markProductDelay(id) {
352    $(".in-cart[data-item=" + id + "]").hide();
353    $(".to-cart[data-item=" + id + "]").show();
354    $(".to-cart[data-item=" + id + "]")
355      .closest(".counter_wrapp")
356      .find(".counter_block_inner")
357      .show();
358    $(".to-cart[data-item=" + id + "]")
359      .closest(".counter_wrapp")
360      .find(".counter_block")
361      .show();
362    $(".to-cart[data-item=" + id + "]")
363      .closest(".button_block")
364      .removeClass("wide");
365    //$('.wish_item[data-item='+id+']').addClass("added");
366    $(".wish_item[data-item=" + id + "] .value:not(.added)").hide();
367    $(".wish_item[data-item=" + id + "] .value.added").css("display", "block");
368
369    $(".wish_item.to[data-item=" + id + "]").hide();
370    $(".wish_item.in[data-item=" + id + "]").show();
371
372    $(".banner_buttons.with_actions .wraps_buttons[data-id=" + id + "] .wish_item_add").addClass("added");
373
374    if ($("#headerfixed .but-cell .type_block").length) {
375      $("#headerfixed .but-cell .type_block span").text(BX.message("MORE_INFO_SKU"));
376      $("#headerfixed .but-cell .type_block .svg-inline-fw").remove();
377    }
378  };
379}
380
381if (!funcDefined("markProductSubscribe")) {
382  var markProductSubscribe = function markProductSubscribe(id) {
383    $(".to-subscribe[data-item=" + id + "]").hide();
384    $(".in-subscribe[data-item=" + id + "]").css("display", "block");
385  };
386}
387
388if (!funcDefined("updateBottomIconsPanel")) {
389  var updateBottomIconsPanel = function updateBottomIconsPanel(options) {
390    if (options && $(".bottom-icons-panel").length) {
391      var bBasketUpdate = "READY" in options || "BASKET_COUNT" in options;
392      var basketCount = "READY" in options ? options.READY.COUNT : "BASKET_COUNT" in options ? options.BASKET_COUNT : 0;
393      var basketTitle =
394        "READY" in options ? options.READY.TITLE : "BASKET_SUMM_TITLE" in options ? options.BASKET_SUMM_TITLE : "";
395      var bDelayUpdate = "DELAY" in options || "DELAY_COUNT" in options;
396      var delayCount = "DELAY" in options ? options.DELAY.COUNT : "DELAY_COUNT" in options ? options.DELAY_COUNT : 0;
397      var delayTitle =
398        "DELAY" in options ? options.DELAY.TITLE : "DELAY_SUMM_TITLE" in options ? options.DELAY_SUMM_TITLE : "";
399      var bCompareUpdate = "COMPARE" in options;
400      var compareCount =
401        "COMPARE" in options
402          ? typeof options.COMPARE === "object" && "COUNT" in options.COMPARE
403            ? options.COMPARE.COUNT
404            : Object.keys(options.COMPARE).length
405          : 0;
406
407      //basket
408      if (bBasketUpdate) {
409        if (+basketCount > 0) {
410          $(".bottom-icons-panel .basket.counter-state").removeClass("counter-state--empty");
411        } else {
412          $(".bottom-icons-panel .basket.counter-state").addClass("counter-state--empty");
413        }
414        $(".bottom-icons-panel .basket .counter-state__content-item-value").text(basketCount);
415        $(".bottom-icons-panel .basket")
416          .closest(".bottom-icons-panel__content-link")
417          .attr("title", $("<div/>").html(basketTitle).text());
418      }
419      //
420
421      //delay
422      if (bDelayUpdate && bBasketUpdate) {
423        if (+delayCount > 0) {
424          $(".bottom-icons-panel .delay.counter-state").removeClass("counter-state--empty");
425        } else {
426          $(".bottom-icons-panel .delay.counter-state").addClass("counter-state--empty");
427        }
428        $(".bottom-icons-panel .delay .counter-state__content-item-value").text(delayCount);
429        $(".bottom-icons-panel .delay")
430          .closest(".bottom-icons-panel__content-link")
431          .attr("title", $("<div/>").html(delayTitle).text());
432      }
433      //
434
435      //compare
436      if (bCompareUpdate) {
437        if (compareCount > 0) {
438          $(".bottom-icons-panel .compare.counter-state").removeClass("counter-state--empty");
439        } else {
440          $(".bottom-icons-panel .compare.counter-state").addClass("counter-state--empty");
441        }
442        $(".bottom-icons-panel .compare .counter-state__content-item-value").text(compareCount);
443      }
444    }
445  };
446}
447if (!funcDefined("basketFly")) {
448  var basketFly = function basketFly(action, opener) {
449    if (typeof obMaxPredictions === "object") {
450      obMaxPredictions.updateAll();
451    }
452
453    /*if(arAsproOptions['PAGES']['BASKET_PAGE'])
454			return;*/
455    $.post(
456      arAsproOptions["SITE_DIR"] + "ajax/basket_fly.php",
457      "PARAMS=" + $("#basket_form").find("input#fly_basket_params").val(),
458      $.proxy(function (data) {
459        var small = $(".opener .basket_count").hasClass("small"),
460          basket_count = $(data).find(".basket_count").find(".items div").text();
461        $("#basket_line .basket_fly").addClass("loaded").html(data);
462
463        if (action == "refresh") $("li[data-type=AnDelCanBuy]").trigger("click");
464
465        if (typeof opener == "undefined" || $("#basket_line .basket_fly").hasClass("loading")) {
466          if (window.matchMedia("(min-width: 769px)").matches) {
467            if (action == "open") {
468              if (small) {
469                if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
470                  $(".opener .basket_count").click();
471                }
472              } else {
473                $(".opener .basket_count").removeClass("small");
474                $('.tabs_content.basket li[item-section="AnDelCanBuy"]').addClass("cur");
475                $('#basket_line ul.tabs li[item-section="AnDelCanBuy"]').addClass("cur");
476
477                $("#basket_line .basket_fly .opener > div:eq(0)").addClass("cur");
478              }
479            } else if (action == "wish") {
480              if (small) {
481                if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") $(".opener .wish_count").click();
482              } else {
483                $(".opener .wish_count").removeClass("small");
484                $('.tabs_content.basket li[item-section="DelDelCanBuy"]').addClass("cur");
485                $('#basket_line ul.tabs li[item-section="DelDelCanBuy"]').addClass("cur");
486              }
487            } else {
488              if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
489                $(".opener .basket_count").click();
490              }
491            }
492          }
493        } else if (opener === "SHOW") {
494          if (window.matchMedia("(min-width: 769px)").matches) {
495            $(".opener .basket_count").removeClass("small");
496            $('.tabs_content.basket li[item-section="AnDelCanBuy"]').addClass("cur");
497            $('#basket_line ul.tabs li[item-section="AnDelCanBuy"]').addClass("cur");
498            $("#basket_line .basket_fly .opener > div:eq(0)").addClass("cur");
499          }
500        }
501      })
502    );
503  };
504}
505
506if (!funcDefined("basketTop")) {
507  var basketTop = function basketTop(action, hoverBlock) {
508    if (action == "reload") {
509      if ($(".basket_hover_block:hover").length) {
510        hoverBlock = $(".basket_hover_block:hover");
511      }
512    }
513
514    if (action == "open") {
515      if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
516        if ($("#headerfixed").hasClass("fixed")) {
517          hoverBlock = $("#headerfixed .basket_hover_block");
518        } else {
519          hoverBlock = $(".top_basket .basket_hover_block");
520        }
521      }
522    }
523
524    if (hoverBlock === undefined) {
525      console.log("Undefined hoverBlock");
526      console.trace();
527      return false;
528    }
529
530    if (action == "close") {
531      if (hoverBlock.length) {
532        hoverBlock.css({
533          opacity: "",
534          visibility: "",
535        });
536        return true;
537      }
538    }
539
540    hoverBlock.removeClass("loaded");
541    var firstTime = hoverBlock.find("div").length ? "false" : "true";
542    var params = $("#basket_form").find("input#fly_basket_params").val();
543    var postData = {
544      firstTime: firstTime,
545    };
546    if (params !== undefined) {
547      postData.PARAMS = params;
548    }
549
550    $.post(
551      arAsproOptions["SITE_DIR"] + "ajax/showBasketHover.php",
552      postData,
553      $.proxy(function (data) {
554        var ob = BX.processHTML(data);
555
556        // inject
557        $("#headerfixed .basket_hover_block, .top_basket .basket_hover_block").html(ob.HTML);
558        BX.ajax.processScripts(ob.SCRIPT);
559
560        if (window.matchMedia("(min-width: 992px)").matches) {
561          hoverBlock.addClass("loaded");
562
563          if (action == "open") {
564            if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
565              if ($("#headerfixed").hasClass("fixed")) {
566                hoverBlock = $("#headerfixed .basket_hover_block");
567              } else {
568                hoverBlock = $(".top_basket .basket_hover_block");
569              }
570
571              hoverBlock.css({
572                opacity: "1",
573                visibility: "visible",
574              });
575
576              setTimeout(function () {
577                hoverBlock.css({
578                  opacity: "",
579                  visibility: "",
580                });
581              }, 2000);
582            }
583          }
584        }
585      })
586    );
587  };
588}
589
590//work with hash start
591var lastHash = location.hash;
592if ("onhashchange" in window) {
593  $(window).bind("hashchange", function () {
594    var newHash = location.hash;
595    if (newHash == "#delayed") {
596      if ($("#basket_toolbar_button_delayed").length) $("#basket_toolbar_button_delayed").trigger("click");
597    } else {
598      if ($("#basket_toolbar_button").length) $("#basket_toolbar_button").trigger("click");
599    }
600    // Do something
601    var diff = compareHash(newHash, lastHash);
602    // alert("Difference between old and new hash:\n"+diff[0]+"\n\n"+diff[1]);
603    //At the end of the func:
604    lastHash = newHash;
605
606    if (lastHash) {
607      if ("scrollRestoration" in history) {
608        history.scrollRestoration = "manual";
609      }
610      if ($('.ordered-block .tabs .nav a[href="' + lastHash + '"]').length) {
611        $('.ordered-block .tabs .nav a[href="' + lastHash + '"]').trigger("click");
612        var content_offset = $(".ordered-block .tabs").offset();
613        $("html, body").animate({ scrollTop: content_offset.top - 90 }, 400);
614      }
615    }
616  });
617
618  function compareHash(current, previous) {
619    for (var i = 0, len = Math.min(current.length, previous.length); i < len; i++) {
620      if (current.charAt(0) != previous.charAt(0)) break;
621    }
622    current = current.substr(i);
623    previous = previous.substr(i);
624    for (var i = 0, len = Math.min(current.length, previous.length); i < len; i++) {
625      if (current.substr(-1) != previous.substr(-1)) break;
626    }
627
628    //Array: Current = New hash, previous = old hash
629    return [current, previous];
630  }
631}
632
633$(document).on("click", "#basket_toolbar_button", function () {
634  if (lastHash) location.hash = "cart";
635});
636$(document).on("click", "#basket_toolbar_button_delayed", function () {
637  if (lastHash) location.hash = "delayed";
638});
639if (location.hash) {
640  var hash = location.hash;
641}
642//work with hash end
643
644$(document).on("click", "#basket_line .basket_fly .opener > div.clicked", function () {
645  if (arAsproOptions["PAGES"]["BASKET_PAGE"]) return;
646  function onOpenFlyBasket(_this) {
647    $("#basket_line .basket_fly .tabs li").removeClass("cur");
648    $("#basket_line .basket_fly .tabs_content li").removeClass("cur");
649    // $("#basket_line .basket_fly .remove_all_basket").removeClass("cur");
650    if (!$(_this).is(".wish_count.empty")) {
651      $("#basket_line .basket_fly .tabs_content li[item-section=" + $(_this).data("type") + "]").addClass("cur");
652      $("#basket_line .basket_fly .tabs li:eq(" + $(_this).index() + ")").addClass("cur");
653      // $("#basket_line .basket_fly .remove_all_basket."+$(_this).data("type")).addClass("cur");
654    } else {
655      $("#basket_line .basket_fly .tabs li").first().addClass("cur").siblings().removeClass("cur");
656      $("#basket_line .basket_fly .tabs_content li").first().addClass("cur").siblings().removeClass("cur");
657      // $("#basket_line .basket_fly .remove_all_basket").first().addClass("cur");
658    }
659    $("#basket_line .basket_fly .opener > div.clicked").removeClass("small");
660
661    $("#basket_line .basket_fly .opener > div").siblings().removeClass("cur");
662    $("#basket_line .basket_fly .opener > div:eq(" + $(_this).index() + ")").addClass("cur");
663  }
664
665  if (window.matchMedia("(min-width: 769px)").matches) {
666    var _this = this;
667
668    $(_this).siblings().removeClass("cur");
669    $(_this).addClass("cur");
670
671    if (parseInt($("#basket_line .basket_fly").css("right")) < 0) {
672      $("#basket_line .basket_fly")
673        .stop()
674        .addClass("loading")
675        .animate({ right: "0" }, 333, function () {
676          if ($(_this).closest(".basket_fly.loaded").length) {
677            onOpenFlyBasket(_this);
678          } else {
679            $.ajax({
680              url: arAsproOptions["SITE_DIR"] + "ajax/basket_fly.php",
681              type: "post",
682              success: function (html) {
683                $("#basket_line .basket_fly").removeClass("loading").addClass("loaded").html(html);
684                onOpenFlyBasket(_this);
685              },
686            });
687          }
688        });
689      $("#basket_line .basket_fly").addClass("swiped");
690    } else if (
691      $(this).is(".wish_count:not(.empty)") &&
692      !$("#basket_line .basket_fly .basket_sort ul.tabs li.cur").is("[item-section=DelDelCanBuy]")
693    ) {
694      $("#basket_line .basket_fly .tabs li").removeClass("cur");
695      $("#basket_line .basket_fly .tabs_content li").removeClass("cur");
696      // $("#basket_line .basket_fly .remove_all_basket").removeClass("cur");
697      $("#basket_line .basket_fly .tabs_content li[item-section=" + $(this).data("type") + "]").addClass("cur");
698      $("#basket_line  .basket_fly .tabs li:eq(" + $(this).index() + ")")
699        .first()
700        .addClass("cur");
701      // $("#basket_line .basket_fly .remove_all_basket."+$(this).data("type")).first().addClass("cur");
702    } else if (
703      $(this).is(".basket_count") &&
704      $("#basket_line .basket_fly .basket_sort ul.tabs li.cur").length &&
705      !$("#basket_line .basket_fly .basket_sort ul.tabs li.cur").is("[item-section=AnDelCanBuy]")
706    ) {
707      $("#basket_line .basket_fly .tabs li").removeClass("cur");
708      $("#basket_line .basket_fly .tabs_content li").removeClass("cur");
709      // $("#basket_line .basket_fly .remove_all_basket").removeClass("cur");
710      $("#basket_line  .basket_fly .tabs_content li:eq(" + $(this).index() + ")").addClass("cur");
711      $("#basket_line  .basket_fly .tabs li:eq(" + $(this).index() + ")")
712        .first()
713        .addClass("cur");
714      // $("#basket_line .basket_fly .remove_all_basket."+$(this).data("type")).first().addClass("cur");
715    } else {
716      $("#basket_line .basket_fly")
717        .stop()
718        .animate({ right: -$("#basket_line .basket_fly").outerWidth() }, 150);
719      $("#basket_line .basket_fly .opener > div.clicked").addClass("small");
720      $("#basket_line .basket_fly").removeClass("swiped");
721      $("#basket_line .basket_fly .opener > div").removeClass("cur");
722    }
723  }
724});
725
726if (!funcDefined("clearViewedProduct")) {
727  function clearViewedProduct() {
728    try {
729      var siteID = arAsproOptions.SITE_ID;
730      var localKey = "MAX_VIEWED_ITEMS_" + siteID;
731      var cookieParams = { path: "/", expires: 30 };
732      if (typeof BX.localStorage !== "undefined") {
733        // remove local storage
734        BX.localStorage.set(localKey, {}, 0);
735      }
736      // remove cookie
737      $.removeCookie(localKey, cookieParams);
738    } catch (e) {
739      console.error(e);
740    }
741  }
742}
743
744if (!funcDefined("setViewedProduct")) {
745  function setViewedProduct(id, arData) {
746    try {
747      // save $.cookie option
748      var bCookieJson = $.cookie.json;
749      $.cookie.json = true;
750
751      var siteID = arAsproOptions.SITE_ID;
752      var localKey = "MAX_VIEWED_ITEMS_" + siteID;
753      var cookieParams = { path: "/", expires: 30 };
754
755      if (typeof BX.localStorage !== "undefined" && typeof id !== "undefined" && typeof arData !== "undefined") {
756        var PRODUCT_ID = typeof arData.PRODUCT_ID !== "undefined" ? arData.PRODUCT_ID : id;
757        var arViewedLocal = BX.localStorage.get(localKey) ? BX.localStorage.get(localKey) : {};
758        var arViewedCookie = $.cookie(localKey) ? $.cookie(localKey) : {};
759        var count = 0;
760
761        // delete some items (sync cookie & local storage)
762        for (var _id in arViewedLocal) {
763          arViewedLocal[_id].IS_LAST = false;
764          if (typeof arViewedCookie[_id] === "undefined") {
765            delete arViewedLocal[_id];
766          }
767        }
768        for (var _id in arViewedCookie) {
769          if (typeof arViewedLocal[_id] === "undefined") {
770            delete arViewedCookie[_id];
771          }
772        }
773
774        for (var _id in arViewedCookie) {
775          count++;
776        }
777
778        // delete item if other item (offer) of that PRODUCT_ID is exists
779        if (typeof arViewedLocal[PRODUCT_ID] !== "undefined") {
780          if (arViewedLocal[PRODUCT_ID].ID != id) {
781            delete arViewedLocal[PRODUCT_ID];
782            delete arViewedCookie[PRODUCT_ID];
783          }
784        }
785
786        var time = new Date().getTime();
787        arData.ID = id;
788        arData.ACTIVE_FROM = time;
789        arData.IS_LAST = true;
790        arViewedLocal[PRODUCT_ID] = arData;
791        arViewedCookie[PRODUCT_ID] = [time.toString(), arData.PICTURE_ID];
792
793        $.cookie(localKey, arViewedCookie, cookieParams);
794        BX.localStorage.set(localKey, arViewedLocal, 2592000); // 30 days
795      }
796    } catch (e) {
797      console.error(e);
798    } finally {
799      // restore $.cookie option
800      $.cookie.json = bCookieJson;
801    }
802  }
803}
804
805if (!funcDefined("initSelects")) {
806  function initSelects(target) {
807    var iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false;
808    if (iOS) return;
809    if ($("#bx-soa-order").length) return;
810    // SELECT STYLING
811    $(target)
812      .find(".wrapper1 select:visible")
813      .ikSelect({
814        syntax:
815          '<div class="ik_select_link"> \
816						<span class="ik_select_link_text"></span> \
817						<div class="trigger"></div> \
818					</div> \
819					<div class="ik_select_dropdown"> \
820						<div class="ik_select_list"> \
821						</div> \
822					</div>',
823        dynamicWidth: true,
824        ddMaxHeight: 112,
825        customClass: "common_select",
826        //equalWidths: true,
827        onShow: function (inst) {
828          inst.$dropdown.css("top", parseFloat(inst.$dropdown.css("top")) - 5 + "px");
829          if (inst.$dropdown.outerWidth() < inst.$link.outerWidth()) {
830            inst.$dropdown.css("width", inst.$link.outerWidth());
831          }
832          if (inst.$dropdown.outerWidth() > inst.$link.outerWidth()) {
833            inst.$dropdown.css("width", inst.$link.outerWidth());
834          }
835          var count = 0,
836            client_height = 0;
837          inst.$dropdown.css("left", inst.$link.offset().left);
838          $(inst.$listInnerUl)
839            .find("li")
840            .each(function () {
841              if (!$(this).hasClass("ik_select_option_disabled")) {
842                ++count;
843                client_height += $(this).outerHeight();
844              }
845            });
846          if (client_height < 112) {
847            inst.$listInner.css("height", "auto");
848          } else {
849            inst.$listInner.css("height", "112px");
850          }
851          inst.$link.addClass("opened");
852          inst.$listInner.addClass("scroller scrollblock");
853          if ($(".confirm_region").length) $(".confirm_region").remove();
854        },
855        onHide: function (inst) {
856          inst.$link.removeClass("opened");
857        },
858      });
859    // END OF SELECT STYLING
860
861    var timeout;
862    $(window).on("resize", function () {
863      ignoreResize.push(true);
864      clearTimeout(timeout);
865      timeout = setTimeout(function () {
866        //$('select:visible').ikSelect('redraw');
867        var inst = "";
868        if ((inst = $(".common_select-link.opened + select").ikSelect().data("plugin_ikSelect"))) {
869          inst.$dropdown.css("left", inst.$link.offset().left + "px");
870        }
871      }, 20);
872      ignoreResize.pop();
873    });
874  }
875}
876
877if (!funcDefined("CheckTopMenuFullCatalogSubmenu")) {
878  CheckTopMenuFullCatalogSubmenu = function () {
879    if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["MENU_TYPE_VIEW"] != "HOVER") return;
880
881    var $menu = $(".left_block .menu_top_block");
882    if ($menu.length) {
883      var $wrapmenu = $menu.parents(".wrap_menu");
884
885      var wrapMenuWidth = $menu.closest(".wrapper_inner").actual("width");
886      if (!wrapMenuWidth) wrapMenuWidth = $menu.closest(".wraps").actual("width");
887
888      var bCatalogFirst = $menu.hasClass("catalogfirst");
889      var findMenuLi = $(".left_block .menu_top_block:visible li.full");
890      var parentSubmenuWidth = $menu.actual("outerWidth");
891      var wrapMenuLeft = 0;
892      var wrapMenuRight = 0;
893
894      if ($wrapmenu.length) {
895        wrapMenuWidth = $wrapmenu.actual("outerWidth");
896        wrapMenuLeft = $wrapmenu.offset().left;
897        wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
898      }
899
900      if ($(".left_block .catalog_block.menu_top_block").length) {
901        if ($(".left_block .catalog_block.menu_top_block").is(":visible"))
902          findMenuLi = $(".left_block .menu_top_block.catalog_block li.full");
903      }
904      findMenuLi.each(function () {
905        var $this = $(this);
906        var $submenu = $this.find(">.dropdown");
907
908        if ($submenu.length) {
909          // $submenu.css({left: parentSubmenuWidth + 'px', width: (wrapMenuWidth - parentSubmenuWidth) + 'px', 'padding-left': '0px', 'padding-right': '0px', 'opacity': 1});
910          $submenu.css({ width: wrapMenuWidth - parentSubmenuWidth + "px" });
911
912          if (!isOnceInited && arAsproOptions["THEME"]["MENU_POSITION"] == "TOP") {
913            $this.on("mouseenter", function () {
914              $submenu.css("min-height", $this.closest(".dropdown").actual("outerHeight") + "px");
915            });
916          }
917        }
918      });
919    }
920  };
921}
922
923$.fn.getMaxHeights = function (outer, classNull, minHeight) {
924  var maxHeight = this.map(function (i, e) {
925    var calc_height = 0;
926    $(e).css("height", "");
927
928    if (outer == true) calc_height = $(e).actual("outerHeight");
929    else calc_height = $(e).actual("height");
930
931    return calc_height;
932  }).get();
933  for (var i = 0, c = maxHeight.length; i < c; ++i) {
934    if (maxHeight[i] % 2) --maxHeight[i];
935  }
936  return Math.max.apply(this, maxHeight);
937};
938
939$.fn.equalizeHeights = function (outer, classNull, options) {
940  var maxHeight = [];
941  var items = [];
942
943  for (var i = 0, itemKey = 0; i < this.length; itemKey++) {
944    var item = this[itemKey],
945      _item = $(item),
946      minus_height = 0,
947      calc_height = 0;
948
949    i++;
950
951    if (options.blockNull !== undefined) {
952      if (options.blockNull.class !== undefined) {
953        if (_item.hasClass(options.blockNull.class) || _item.closest("." + options.blockNull.class).length) {
954          continue;
955        }
956      }
957    }
958
959    items.push(this[itemKey]);
960
961    if (classNull !== false) {
962      if (!isMobile) {
963        var nulled = _item.find(classNull);
964        if (nulled.length) {
965          minus_height = parseInt(nulled[0].offsetHeight);
966          //minus_height=parseInt(_item.find(classNull).outerHeight(false));
967          //minus_height=parseInt(_item.find(classNull).actual('outerHeight'));
968        }
969      }
970    }
971
972    if (minus_height) minus_height += 12;
973
974    _item.css("height", "");
975
976    calc_height = item.offsetHeight - minus_height;
977
978    if (options.minHeight !== false) {
979      if (calc_height < options.minHeight) calc_height += options.minHeight - calc_height;
980
981      if (window.matchMedia("(max-width: 520px)").matches) calc_height = 300;
982
983      if (window.matchMedia("(max-width: 400px)").matches) calc_height = 200;
984    }
985
986    if (!calc_height) calc_height = 0;
987
988    maxHeight.push(calc_height);
989  }
990
991  for (var i = 0, c = maxHeight.length; i < c; ++i) {
992    if (maxHeight[i] % 2) {
993      --maxHeight[i];
994    }
995  }
996
997  var result = $(items).height(Math.max.apply(this, maxHeight));
998
999  return result;
1000};
1001
1002$.fn.getFloatWidth = function () {
1003  var width = 0;
1004  if ($(this).length) {
1005    var rect = $(this)[0].getBoundingClientRect();
1006    if (!(width = rect.width)) width = rect.right - rect.left;
1007  }
1008
1009  $(this).data("floatWidth", width);
1010
1011  return width;
1012};
1013
1014function extendDepthObject(target, FromObj) {
1015  var to = Object.assign({}, target);
1016  for (var key in FromObj) {
1017    if (typeof FromObj[key] == "object") {
1018      to[key] = extendDepthObject(to[key], FromObj[key]);
1019    } else {
1020      to[key] = FromObj[key];
1021    }
1022  }
1023
1024  return to;
1025}
1026
1027$.fn.sliceHeight = function (options) {
1028  function _slice(el) {
1029    var arBreakpoints = Object.keys(options.breakpoint);
1030    var resizeOptionsTmp = {};
1031    if (arBreakpoints.length) {
1032      for (var key in arBreakpoints) {
1033        if (window.matchMedia(arBreakpoints[key].toString()).matches) {
1034          resizeOptionsTmp = options.breakpoint[arBreakpoints[key]];
1035        }
1036      }
1037    }
1038
1039    var resizeOptions = extendDepthObject(options, resizeOptionsTmp);
1040
1041    var blockNullClass =
1042      resizeOptions.blockNull !== undefined && resizeOptions.blockNull.class !== undefined
1043        ? resizeOptions.blockNull.class
1044        : false;
1045    var parent =
1046      typeof resizeOptions.row !== "undefined" && resizeOptions.row.length
1047        ? el.first().parents(resizeOptions.row)
1048        : el.first().parents(".items");
1049    var item = "";
1050
1051    if (typeof resizeOptions.item !== "undefined" && resizeOptions.item.length) {
1052      if (blockNullClass) {
1053        $(resizeOptions.item).each(function (i, element) {
1054          _element = $(element);
1055          if (!_element.hasClass(blockNullClass)) {
1056            item = _element;
1057          }
1058        });
1059        if (!item)
1060          // if only ignored blocks
1061          return false;
1062      } else {
1063        item = $(resizeOptions.item).first();
1064      }
1065    } else {
1066      if (el.first().hasClass("item")) {
1067        item = el.first();
1068      } else {
1069        item = el.first().parents(".item");
1070      }
1071    }
1072
1073    if (typeof resizeOptions.autoslicecount == "undefined" || resizeOptions.autoslicecount !== false) {
1074      var elsw = parent.getFloatWidth(),
1075        elw = item.getFloatWidth();
1076      if (!elsw) {
1077        elsw = el.first().parents(".row").getFloatWidth();
1078      }
1079      if (!elw) {
1080        if (typeof resizeOptions.item !== "undefined" && resizeOptions.item.length)
1081          elw = $(resizeOptions.item + ":eq(1)").getFloatWidth()
1082            ? $(resizeOptions.item + ":eq(1)").getFloatWidth()
1083            : $(resizeOptions.item + ":eq(2)").getFloatWidth();
1084        else elw = $(el[1]).getFloatWidth() ? $(el[1]).getFloatWidth() : $(el[2]).getFloatWidth();
1085      }
1086      if (elw && resizeOptions.fixWidth) elw -= resizeOptions.fixWidth;
1087
1088      elw = parseInt(elw * 100) / 100;
1089
1090      if (elsw && elw) {
1091        resizeOptions.slice = Math.floor(elsw / elw);
1092      }
1093    }
1094
1095    if (resizeOptions.customSlice) {
1096      //manual slice count
1097      var bSliceNext = false;
1098      if (resizeOptions.length) {
1099        elw =
1100          typeof resizeOptions.item !== "undefined" && resizeOptions.item.length
1101            ? $(resizeOptions.item).last().getFloatWidth()
1102            : el.last().hasClass("item")
1103            ? el.last().getFloatWidth()
1104            : el.last().parents(".item").getFloatWidth();
1105        if (elw) resizeOptions.sliceNext = Math.floor(elsw / elw);
1106
1107        bSliceNext = true;
1108      }
1109    }
1110
1111    elements = [];
1112    if (resizeOptions.classes !== undefined && resizeOptions.classes.length) {
1113      for (var i = 0; i < resizeOptions.classes.length; i++) {
1114        var items = $(resizeOptions.item).find(resizeOptions.classes[i]);
1115        elements.push(items);
1116      }
1117    }
1118    var elIndex = elements.push(el) - 1;
1119
1120    if (resizeOptions.mobile == true) {
1121      if (window.matchMedia("(max-width: 500px)").matches) {
1122        for (var block = 0; block < elements.length; block++) {
1123          var items = $(elements[block]);
1124          items.css({
1125            "line-height": "",
1126            height: "",
1127          });
1128        }
1129        return;
1130      }
1131    }
1132
1133    if (typeof resizeOptions.typeResize == "undefined" || resizeOptions.typeResize == false) {
1134      if (resizeOptions.slice) {
1135        for (var block = 0; block < elements.length; block++) {
1136          if (resizeOptions.currentRow) {
1137            var itemNumber = el.index(resizeOptions.currentItem);
1138            var rowCount = resizeOptions.slice;
1139            var rowNumber = Math.floor(itemNumber / rowCount);
1140
1141            var items = $(elements[block].slice(rowNumber * rowCount, rowNumber * rowCount + rowCount));
1142            var classNull = block == elIndex ? resizeOptions.classNull : false;
1143            items.css({
1144              "line-height": "",
1145              height: "",
1146            });
1147            items.equalizeHeights(resizeOptions.outer, classNull, resizeOptions);
1148          } else {
1149            for (var i = 0; i < elements[block].length; ) {
1150              if (resizeOptions.customSlice && resizeOptions.sliceNext && bSliceNext && i)
1151                //manual slice count
1152                resizeOptions.slice = resizeOptions.sliceNext;
1153
1154              var slice = resizeOptions.slice;
1155              var items = $(elements[block].slice(i, i + slice));
1156              if (resizeOptions.blockNull !== undefined) {
1157                if (resizeOptions.blockNull.class !== undefined) {
1158                  var counts = 0;
1159                  items.each(function (i, item) {
1160                    var _item = $(item);
1161                    if (
1162                      _item.hasClass(resizeOptions.blockNull.class) ||
1163                      _item.closest("." + resizeOptions.blockNull.class).length
1164                    ) {
1165                      counts++;
1166                    }
1167                  });
1168                }
1169              }
1170              if (counts) {
1171                slice -= (resizeOptions.blockNull.width - 1) * counts;
1172              }
1173
1174              items = $(elements[block].slice(i, i + slice));
1175              if (items) {
1176                var classNull = block == elIndex ? resizeOptions.classNull : false;
1177
1178                items.css({
1179                  "line-height": "",
1180                  height: "",
1181                });
1182                items.equalizeHeights(resizeOptions.outer, classNull, resizeOptions);
1183              }
1184              i += slice || 1;
1185            }
1186          }
1187        }
1188      }
1189      if (resizeOptions.lineheight) {
1190        var lineheightAdd = parseInt(resizeOptions.lineheight);
1191        if (isNaN(lineheightAdd)) {
1192          lineheightAdd = 0;
1193        }
1194        el.each(function () {
1195          $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px");
1196        });
1197      }
1198    }
1199  }
1200  var options = $.extend(
1201    {
1202      slice: null,
1203      sliceNext: null,
1204      outer: false,
1205      lineheight: false,
1206      autoslicecount: true,
1207      classNull: false,
1208      minHeight: false,
1209      row: false,
1210      item: false,
1211      typeResize: false,
1212      typeValue: false,
1213      fixWidth: 0,
1214      resize: true,
1215      mobile: false,
1216      customSlice: false,
1217      breakpoint: {},
1218      classes: [],
1219    },
1220    options
1221  );
1222
1223  var el = $(this);
1224
1225  ignoreResize.push(true);
1226  _slice(el);
1227  ignoreResize.pop();
1228
1229  if (options.resize) {
1230    BX.addCustomEvent("onWindowResize", function (eventdata) {
1231      try {
1232        ignoreResize.push(true);
1233        _slice(el);
1234      } catch (e) {
1235      } finally {
1236        ignoreResize.pop();
1237      }
1238    });
1239  } else {
1240    if (!ignoreResize.length) {
1241      // ignoreResize.push(true);
1242      _slice(el);
1243      // ignoreResize.pop();
1244    }
1245  }
1246};
1247
1248$.fn.sliceHeightNoResize = function (options) {
1249  function _slice(el) {
1250    el.each(function () {
1251      $(this).css("line-height", "");
1252      $(this).css("height", "");
1253    });
1254    if (options.mobile == true) {
1255      if (window.matchMedia("(max-width: 550px)").matches) return;
1256    }
1257    if (typeof options.autoslicecount == "undefined" || options.autoslicecount !== false) {
1258      var elsw =
1259          typeof options.row !== "undefined" && options.row.length
1260            ? el.first().parents(options.row).getFloatWidth()
1261            : el.first().parents(".items").getFloatWidth(),
1262        elw =
1263          typeof options.item !== "undefined" && options.item.length
1264            ? $(options.item).first().getFloatWidth()
1265            : el.first().hasClass("item")
1266            ? el.first().getFloatWidth()
1267            : el.first().parents(".item").getFloatWidth();
1268
1269      if (!elsw) {
1270        elsw = el.first().parents(".row").getFloatWidth();
1271      }
1272      if (elw && options.fixWidth) elw -= options.fixWidth;
1273
1274      if (elsw && elw) {
1275        options.slice = Math.floor(elsw / elw);
1276      }
1277    }
1278    if (options.customSlice) {
1279      //manual slice count
1280      var arBreakpoints = Object.keys(options.breakpoint),
1281        bSliceNext = false;
1282      if (arBreakpoints.length) {
1283        elw =
1284          typeof options.item !== "undefined" && options.item.length
1285            ? $(options.item).last().getFloatWidth()
1286            : el.last().hasClass("item")
1287            ? el.last().getFloatWidth()
1288            : el.last().parents(".item").getFloatWidth();
1289        if (elw) options.sliceNext = Math.floor(elsw / elw);
1290        for (var key in arBreakpoints) {
1291          if (window.matchMedia(arBreakpoints[key].toString()).matches) {
1292            bSliceNext = true;
1293            options.slice = options.breakpoint[arBreakpoints[key]];
1294          }
1295        }
1296      }
1297    }
1298    if (typeof options.typeResize == "undefined" || options.typeResize == false) {
1299      if (options.slice) {
1300        for (var i = 0; i < el.length; i += options.slice) {
1301          if (options.customSlice && options.sliceNext && bSliceNext && i)
1302            //manual slice count
1303            options.slice = options.sliceNext;
1304          $(el.slice(i, i + options.slice)).equalizeHeights(
1305            options.outer,
1306            options.classNull,
1307            options.minHeight,
1308            options.typeResize,
1309            options.typeValue
1310          );
1311        }
1312      }
1313      if (options.lineheight) {
1314        var lineheightAdd = parseInt(options.lineheight);
1315        if (isNaN(lineheightAdd)) {
1316          lineheightAdd = 0;
1317        }
1318        el.each(function () {
1319          $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px");
1320        });
1321      }
1322    }
1323  }
1324  var options = $.extend(
1325    {
1326      slice: null,
1327      sliceNext: null,
1328      outer: false,
1329      lineheight: false,
1330      autoslicecount: true,
1331      classNull: false,
1332      minHeight: false,
1333      row: false,
1334      item: false,
1335      typeResize: false,
1336      typeValue: false,
1337      fixWidth: 0,
1338      resize: true,
1339      mobile: false,
1340      customSlice: false,
1341      breakpoint: {},
1342    },
1343    options
1344  );
1345
1346  var el = $(this);
1347
1348  ignoreResize.push(true);
1349  _slice(el);
1350  ignoreResize.pop();
1351};
1352
1353if (!funcDefined("initHoverBlock")) {
1354  function initHoverBlock(target) {
1355    /*$(target).find('.catalog_item.item_wrap').on('mouseenter', function(){
1356			$(this).addClass('hover');
1357		})
1358		$(target).find('.catalog_item.item_wrap').on('mouseleave', function(){
1359			$(this).removeClass('hover');
1360		})*/
1361  }
1362}
1363if (!funcDefined("setStatusButton")) {
1364  function setStatusButton() {
1365    if (!funcDefined("setItemButtonStatus")) {
1366      setItemButtonStatus = function (data) {
1367        if (data.BASKET) {
1368          for (var i in data.BASKET) {
1369            var id = data.BASKET[i];
1370            if (typeof id === "number" || typeof id === "string") {
1371              $(".to-cart[data-item=" + id + "]").hide();
1372              $(".counter_block[data-item=" + id + "]")
1373                .closest(".counter_block_inner")
1374                .hide();
1375              $(".counter_block[data-item=" + id + "]").hide();
1376              $(".in-cart[data-item=" + id + "]").show();
1377              $(".in-cart[data-item=" + id + "]")
1378                .closest(".button_block")
1379                .addClass("wide");
1380            }
1381          }
1382        }
1383        if (data.DELAY) {
1384          for (var i in data.DELAY) {
1385            var id = data.DELAY[i];
1386            if (typeof id === "number" || typeof id === "string") {
1387              $(".wish_item.to[data-item=" + id + "]").hide();
1388              $(".wish_item.in[data-item=" + id + "]").show();
1389              if ($(".wish_item[data-item=" + id + "]").find(".value.added").length) {
1390                //$('.wish_item[data-item='+id+']').addClass("added");
1391                $(".wish_item[data-item=" + id + "]")
1392                  .find(".value")
1393                  .hide();
1394                $(".wish_item[data-item=" + id + "]")
1395                  .find(".value.added")
1396                  .show();
1397              }
1398            }
1399          }
1400        }
1401        if (data.SUBSCRIBE) {
1402          for (var i in data.SUBSCRIBE) {
1403            var id = data.SUBSCRIBE[i];
1404            if (typeof id === "number" || typeof id === "string") {
1405              $(".to-subscribe[data-item=" + id + "]").hide();
1406              $(".in-subscribe[data-item=" + id + "]").show();
1407            }
1408          }
1409        }
1410        if (data.COMPARE) {
1411          for (var i in data.COMPARE) {
1412            var id = data.COMPARE[i];
1413            if (typeof id === "number" || typeof id === "string") {
1414              $(".compare_item.to[data-item=" + id + "]").hide();
1415              $(".compare_item.in[data-item=" + id + "]").show();
1416              if ($(".compare_item[data-item=" + id + "]").find(".value.added").length) {
1417                $(".compare_item[data-item=" + id + "]")
1418                  .find(".value")
1419                  .hide();
1420                $(".compare_item[data-item=" + id + "]")
1421                  .find(".value.added")
1422                  .show();
1423              }
1424            }
1425          }
1426        }
1427      };
1428    }
1429    if (!Object.keys(arStatusBasketAspro).length) {
1430      if (typeof arAsproOptions === "undefined") {
1431        var arAsproOptions = {
1432          SITE_DIR: "/",
1433        };
1434        if ($("body").data("site") !== undefined) arAsproOptions["SITE_DIR"] = $("body").data("site");
1435      }
1436      $.ajax({
1437        url: arAsproOptions["SITE_DIR"] + "ajax/getAjaxBasket.php",
1438        type: "POST",
1439        success: function (data) {
1440          arStatusBasketAspro = data;
1441          setItemButtonStatus(arStatusBasketAspro);
1442        },
1443      });
1444    } else setItemButtonStatus(arStatusBasketAspro);
1445  }
1446}
1447
1448if (!funcDefined("onLoadjqm")) {
1449  var onLoadjqm = function (name, hash, requestData, selector, requestTitle, isButton, thButton) {
1450    if (hash.c.noOverlay === undefined || (hash.c.noOverlay !== undefined && !hash.c.noOverlay)) {
1451      $("body").addClass("jqm-initied");
1452    }
1453    if (window.matchMedia("(min-width: 768px)").matches) {
1454      $("body").addClass("swipeignore");
1455    }
1456
1457    if (typeof $(hash.t).data("ls") !== " undefined" && $(hash.t).data("ls")) {
1458      var ls = $(hash.t).data("ls"),
1459        ls_timeout = 0,
1460        v = "";
1461
1462      if ($(hash.t).data("ls_timeout")) ls_timeout = $(hash.t).data("ls_timeout");
1463
1464      ls_timeout = ls_timeout ? Date.now() + ls_timeout * 1000 : "";
1465
1466      if (typeof localStorage !== "undefined") {
1467        var val = localStorage.getItem(ls);
1468        try {
1469          v = JSON.parse(val);
1470        } catch (e) {
1471          v = val;
1472        }
1473        if (v != null) {
1474          localStorage.removeItem(ls);
1475        }
1476        v = {};
1477        v["VALUE"] = "Y";
1478        v["TIMESTAMP"] = ls_timeout; // default: seconds for 1 day
1479
1480        localStorage.setItem(ls, JSON.stringify(v));
1481      } else {
1482        var val = $.cookie(ls);
1483        if (!val) $.cookie(ls, "Y", { expires: ls_timeout }); // default: seconds for 1 day
1484      }
1485
1486      var dopClasses = hash.w.find(".marketing-popup").data("classes");
1487      if (dopClasses) {
1488        hash.w.addClass(dopClasses);
1489      }
1490    }
1491
1492    $.each($(hash.t).get(0).attributes, function (index, attr) {
1493      if (/^data\-autoload\-(.+)$/.test(attr.nodeName)) {
1494        var key = attr.nodeName.match(/^data\-autoload\-(.+)$/)[1];
1495        var el = $('input[data-sid="' + key.toUpperCase() + '"]');
1496        el.val(BX.util.htmlspecialcharsback($(hash.t).data("autoload-" + key))).attr("readonly", "readonly");
1497        el.closest(".form-group").addClass("input-filed");
1498        el.attr("title", el.val());
1499      }
1500    });
1501
1502    //show gift block
1503    if (hash.w.hasClass("send_gift_frame")) {
1504      var imgHtml = (priceHtml = propsHtml = "");
1505      if ($(".offers_img a").length) imgHtml = $(".offers_img a").html();
1506      else if ($(".product-detail-gallery__container .first_sku_picture").length)
1507        imgHtml = "<img src=" + $(".product-detail-gallery__container link.first_sku_picture").attr("href") + " />";
1508      else if ($(".product-detail-gallery__container").length)
1509        imgHtml = "<img src=" + $('.product-detail-gallery__container link[itemprop="image"]').attr("href") + " />";
1510
1511      if ($('.product-container *[itemprop="offers"]').length) {
1512        //show price
1513        if ($(".sku-view").length) {
1514          if ($(".prices_block .price").length)
1515            priceHtml = $(".prices_block .cost.prices").html().replace("id", "data-id");
1516        } else {
1517          if ($(".prices_block .js_price_wrapper").length)
1518            priceHtml = '<div class="with_matrix">' + $(".prices_block .js_price_wrapper").html() + "</div>";
1519          else if ($(".prices_block .with_matrix").length)
1520            priceHtml = '<div class="with_matrix">' + $(".prices_block .with_matrix").html() + "</div>";
1521          else if ($(".prices_block .price_group.min").length) priceHtml = $(".prices_block .price_group.min").html();
1522          else if ($(".prices_block .price_matrix_wrapper").length)
1523            priceHtml = $(".prices_block .price_matrix_wrapper").html();
1524        }
1525      }
1526
1527      if ($(".buy_block .sku_props").length) {
1528        propsHtml = '<div class="props_item">';
1529        $(".buy_block .sku_props .bx_catalog_item_scu > div").each(function () {
1530          var title = $(this).find(".bx_item_section_name > span").html();
1531          var props = "";
1532          var ikSelect = $(this).find(".ik_select_link_text");
1533          if (ikSelect.length) {
1534            props = ikSelect.text();
1535          } else {
1536            var activeSku = $(this).find("ul li.active");
1537            var isPicture = activeSku.find(" > i");
1538            if (isPicture.length && isPicture.attr("title")) {
1539              var propTitle = isPicture.attr("title").split(":");
1540              if (propTitle.length) {
1541                propTitle = propTitle[1].trim();
1542              } else {
1543                propTitle = isPicture.attr("title");
1544              }
1545              props = propTitle;
1546            } else {
1547              props = activeSku.find(" > span").text();
1548            }
1549          }
1550
1551          propsHtml +=
1552            '<div class="prop_item">' +
1553            "<span>" +
1554            title +
1555            '<span class="val">' +
1556            props +
1557            "</span>" +
1558            "</span>" +
1559            "</div>";
1560        });
1561        propsHtml += "</div>";
1562      }
1563      $(
1564        '<div class="custom_block">' +
1565          '<div class="title">' +
1566          BX.message("POPUP_GIFT_TEXT") +
1567          "</div>" +
1568          '<div class="item_block">' +
1569          '<table class="item_list"><tr>' +
1570          '<td class="image">' +
1571          "<div>" +
1572          imgHtml +
1573          "</div>" +
1574          "</td>" +
1575          '<td class="text">' +
1576          '<div class="name">' +
1577          $("h1").text() +
1578          "</div>" +
1579          priceHtml +
1580          propsHtml +
1581          "</td>" +
1582          "</tr></table>" +
1583          "</div>" +
1584          "</div>"
1585      ).prependTo(hash.w.find(".form_body"));
1586    }
1587
1588    if (
1589      arAsproOptions["THEME"]["REGIONALITY_SEARCH_ROW"] == "Y" &&
1590      (hash.w.hasClass("city_chooser_frame ") || hash.w.hasClass("city_chooser_small_frame"))
1591    ) {
1592      hash.w.addClass("small_popup_regions");
1593      hash.w.addClass("no_scroll");
1594    }
1595
1596    /*if (hash.w.hasClass("city_chooser_frame ") || hash.w.hasClass("city_chooser_small_frame ")) {
1597      $(".popup_regions .items .items_block").mCustomScrollbar({
1598        mouseWheel: {
1599          scrollAmount: 150,
1600          preventDefault: true,
1601        },
1602      });
1603    }*/
1604
1605    if (name == "fast_view" && $(".smart-filter-filter").length) {
1606      var navButtons =
1607        '<div class="navigation-wrapper-fast-view">' +
1608        '<div class="fast-view-nav prev colored_theme_hover_bg" data-fast-nav="prev">' +
1609        '<i class="svg left">' +
1610        '<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>' +
1611        "</i>" +
1612        "</div>" +
1613        '<div class="fast-view-nav next colored_theme_hover_bg" data-fast-nav="next">' +
1614        '<i class="svg right">' +
1615        '<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>' +
1616        "</i>" +
1617        "</div>" +
1618        "</div>";
1619
1620      hash.w.closest("#popup_iframe_wrapper").append(navButtons);
1621    }
1622
1623    hash.w.addClass("scrollblock");
1624    hash.w.addClass("show").css({
1625      // 'top': (($(window).height() > hash.w.height()) ? Math.floor(($(window).height() - hash.w.height()) / 2) : 0) + 'px',
1626      // 'margin-left': ($(window).width() > hash.w.outerWidth() ? '-' + hash.w.outerWidth() / 2 + 'px' : '-' + $(window).width() / 2 + 'px'),
1627      opacity: 1,
1628    });
1629
1630    /*if (!hash.w.hasClass("no_custom_scroll")) {
1631      hash.w.mCustomScrollbar({
1632        mouseWheel: {
1633          scrollAmount: 150,
1634          preventDefault: true,
1635        },
1636      });
1637    }*/
1638
1639    if (hash.c.noOverlay === undefined || (hash.c.noOverlay !== undefined && !hash.c.noOverlay)) {
1640      $("body").css({ overflow: "hidden", height: "100vh" });
1641      hash.w.closest("#popup_iframe_wrapper").css({ "z-index": 3000, display: "flex" });
1642    }
1643
1644    var eventdata = { action: "loadForm" };
1645    BX.onCustomEvent("onCompleteAction", [eventdata, $(hash.t)[0]]);
1646
1647    if (typeof requestData == "undefined") {
1648      requestData = "";
1649    }
1650    if (typeof selector == "undefined") {
1651      selector = false;
1652    }
1653
1654    var width = $("." + name + "_frame").width();
1655    //$('.'+name+'_frame').css('margin-left', '-'+width/2+'px');
1656
1657    if (name == "order-popup-call") {
1658    } else if (name == "order-button") {
1659      $(".order-button_frame")
1660        .find("div[product_name]")
1661        .find("input")
1662        .val(hash.t.title)
1663        .attr("readonly", "readonly")
1664        .css({ overflow: "hidden", "text-overflow": "ellipsis" });
1665    } else if (name == "basket_error") {
1666      $(".basket_error_frame .pop-up-title").text(requestTitle);
1667      $(".basket_error_frame .ajax_text").html(requestData);
1668
1669      if (window.matchMedia("(max-width: 991px)").matches) {
1670        $("body").addClass("all_viewed");
1671      }
1672
1673      initSelects(document);
1674      if (isButton == "Y" && thButton)
1675        $(
1676          "<div class='popup_button_basket_wr'><span class='popup_button_basket big_btn button' data-item=" +
1677            thButton.data("item") +
1678            "><span class='btn btn-default'>" +
1679            BX.message("ERROR_BASKET_BUTTON") +
1680            "</span></span></div>"
1681        ).insertAfter($(".basket_error_frame .ajax_text"));
1682    }
1683
1684    $("." + name + "_frame").show();
1685  };
1686}
1687
1688if (!funcDefined("onHidejqm")) {
1689  var onHidejqm = function (name, hash) {
1690    if (hash.w.find(".one_click_buy_result_success").is(":visible") && name == "one_click_buy_basket") {
1691      window.location.href = window.location.href;
1692    }
1693
1694    if ($(".xzoom-source").length) $(".xzoom-source").remove();
1695    if ($(".xzoom-preview").length) $(".xzoom-preview").remove();
1696
1697    // hash.w.css('opacity', 0).hide();
1698    hash.w.animate({ opacity: 0 }, 200, function () {
1699      // hash.w.removeClass("scroll-init").mCustomScrollbar("destroy");
1700      hash.w.hide();
1701      hash.w.empty();
1702      hash.o.remove();
1703      hash.w.removeClass("show");
1704
1705      $("body").css({ overflow: "", height: "" });
1706
1707      if (!hash.w.closest("#popup_iframe_wrapper").find(".jqmOverlay").length) {
1708        hash.w.closest("#popup_iframe_wrapper").css({ "z-index": "", display: "" });
1709      }
1710
1711      if (window.matchMedia("(max-width: 991px)").matches) {
1712        $("body").removeClass("all_viewed");
1713      }
1714      if (!$(".jqmOverlay:not(.mobp)").length || $(".jqmOverlay.waiting").length) {
1715        $("body").removeClass("jqm-initied");
1716      }
1717
1718      if (window.matchMedia("(min-width: 768px)").matches) {
1719        $("body").removeClass("swipeignore");
1720      }
1721
1722      if (name == "fast_view") {
1723        $(".fast_view_popup").remove();
1724
1725        var navButtons = hash.w.closest("#popup_iframe_wrapper").find(".navigation-wrapper-fast-view");
1726        navButtons.remove();
1727      }
1728    });
1729
1730    window.b24form = false;
1731  };
1732}
1733
1734$.fn.jqmEx = function () {
1735  // $(this).each(function(){
1736  var _this = $(this);
1737  var name = _this.data("name");
1738
1739  if (name.length && _this.attr("disabled") != "disabled") {
1740    var extClass = "",
1741      paramsStr = "",
1742      trigger = "",
1743      arTriggerAttrs = {};
1744
1745    // call counter
1746    if (typeof $.fn.jqmEx.counter === "undefined") {
1747      $.fn.jqmEx.counter = 0;
1748    } else {
1749      ++$.fn.jqmEx.counter;
1750    }
1751
1752    // trigger attrs and params
1753    $.each(_this.get(0).attributes, function (index, attr) {
1754      var attrName = attr.nodeName;
1755      var attrValue = _this.attr(attrName);
1756      if (attrName !== "onclick") {
1757        trigger += "[" + attrName + '="' + attrValue + '"]';
1758        arTriggerAttrs[attrName] = attrValue;
1759      }
1760      if (/^data\-param\-(.+)$/.test(attrName)) {
1761        var key = attrName.match(/^data\-param\-(.+)$/)[1];
1762        paramsStr += key + "=" + attrValue + "&";
1763      }
1764    });
1765    var triggerAttrs = JSON.stringify(arTriggerAttrs);
1766    var encTriggerAttrs = encodeURIComponent(triggerAttrs);
1767
1768    // popup url
1769    var script = arAsproOptions["SITE_DIR"] + "ajax/form.php";
1770    if (name == "auth") {
1771      script += "?" + paramsStr + "auth=Y";
1772    } else {
1773      script += "?" + paramsStr + "data-trigger=" + encTriggerAttrs;
1774    }
1775
1776    // ext frame class
1777    if (_this.closest("#fast_view_item").length) {
1778      extClass = "fast_view_popup";
1779    }
1780
1781    // use overlay?
1782    var noOverlay = _this.data("noOverlay") == "Y";
1783
1784    // unique frame to each trigger
1785    if (noOverlay) {
1786      var frame = $(
1787        '<div class="' +
1788          name +
1789          "_frame " +
1790          extClass +
1791          ' jqmWindow popup" data-popup="' +
1792          $.fn.jqmEx.counter +
1793          '" data-trigger="' +
1794          encTriggerAttrs +
1795          '"></div>'
1796      ).appendTo("body");
1797    } else {
1798      var frame = $(
1799        '<div class="' +
1800          name +
1801          "_frame " +
1802          extClass +
1803          ' jqmWindow popup" data-popup="' +
1804          $.fn.jqmEx.counter +
1805          '" data-trigger="' +
1806          encTriggerAttrs +
1807          '"></div>'
1808      ).appendTo("#popup_iframe_wrapper");
1809    }
1810
1811    frame.jqm({
1812      ajax: script,
1813      trigger: trigger,
1814      noOverlay: noOverlay,
1815      onLoad: function (hash) {
1816        onLoadjqm(name, hash);
1817      },
1818      onHide: function (hash) {
1819        onHidejqm(name, hash);
1820      },
1821    });
1822  }
1823  // });
1824};
1825
1826window.addEventListener("keydown", function (e) {
1827  if (e.keyCode == 27) {
1828    $(".jqm-init.show").last().jqmHide();
1829
1830    if ($(".inline-search-block.show").length) {
1831      $(".inline-search-block").toggleClass("show");
1832      $(".jqmOverlay.search").detach();
1833    }
1834
1835    $(".mega_fixed_menu").fadeOut(animationTime);
1836  }
1837});
1838
1839if (!funcDefined("scroll_block")) {
1840  function scroll_block(block, clickedItem) {
1841    if (block.length) {
1842      if (clickedItem !== undefined && clickedItem.length) {
1843        clickedItem.trigger("click");
1844      } else {
1845        $(".prices_tab").addClass("active").siblings().removeClass("active");
1846        if ($(".prices_tab .opener").length && !$(".prices_tab .opener .opened").length) {
1847          var item = $(".prices_tab .opener").first();
1848          item.find(".opener_icon").addClass("opened");
1849          item.parents("tr").addClass("nb");
1850          item.parents("tr").next(".offer_stores").find(".stores_block_wrap").slideDown(200);
1851        }
1852      }
1853      var topPos = block.offset().top,
1854        headerH = $("header").outerHeight(true, true);
1855
1856      $("html,body").animate({ scrollTop: topPos - 88 }, 150);
1857    }
1858  }
1859}
1860
1861if (!funcDefined("jqmEd")) {
1862  var jqmEd = function (name, form_id, open_trigger, requestData, selector, requestTitle, isButton, thButton) {
1863    if (typeof requestData == "undefined") {
1864      requestData = "";
1865    }
1866    if (typeof selector == "undefined") {
1867      selector = false;
1868    }
1869    $("body #popup_iframe_wrapper")
1870      .find("." + name + "_frame")
1871      .remove();
1872    $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame jqmWindow popup"></div>');
1873    if (typeof open_trigger == "undefined") {
1874      $("." + name + "_frame").jqm({
1875        trigger: "." + name + "_frame.popup",
1876        onHide: function (hash) {
1877          onHidejqm(name, hash);
1878        },
1879        onLoad: function (hash) {
1880          onLoadjqm(name, hash, requestData, selector);
1881        },
1882        ajax:
1883          arAsproOptions["SITE_DIR"] +
1884          "ajax/form.php?form_id=" +
1885          form_id +
1886          (requestData.length ? "&" + requestData : ""),
1887      });
1888    } else {
1889      if (name == "enter") {
1890        $("." + name + "_frame").jqm({
1891          trigger: open_trigger,
1892          onHide: function (hash) {
1893            onHidejqm(name, hash);
1894          },
1895          onLoad: function (hash) {
1896            onLoadjqm(name, hash, requestData, selector);
1897          },
1898          ajax: arAsproOptions["SITE_DIR"] + "ajax/auth.php",
1899        });
1900      } else if (name == "basket_error") {
1901        $("." + name + "_frame").jqm({
1902          trigger: open_trigger,
1903          onHide: function (hash) {
1904            onHidejqm(name, hash);
1905          },
1906          onLoad: function (hash) {
1907            onLoadjqm(name, hash, requestData, selector, requestTitle, isButton, thButton);
1908          },
1909          ajax: arAsproOptions["SITE_DIR"] + "ajax/basket_error.php",
1910        });
1911      } else {
1912        $("." + name + "_frame").jqm({
1913          trigger: open_trigger,
1914          onHide: function (hash) {
1915            onHidejqm(name, hash);
1916          },
1917          onLoad: function (hash) {
1918            onLoadjqm(name, hash, requestData, selector);
1919          },
1920          ajax:
1921            arAsproOptions["SITE_DIR"] +
1922            "ajax/form.php?form_id=" +
1923            form_id +
1924            (requestData.length ? "&" + requestData : ""),
1925        });
1926      }
1927      $(open_trigger).dblclick(function () {
1928        return false;
1929      });
1930    }
1931    return true;
1932  };
1933}
1934
1935if (!funcDefined("replaceBasketPopup")) {
1936  function replaceBasketPopup(hash) {
1937    if (typeof hash != "undefined") {
1938      hash.w.hide();
1939      hash.o.hide();
1940    }
1941  }
1942}
1943
1944if (!funcDefined("waitLayer")) {
1945  function waitLayer(delay, callback) {
1946    if (typeof dataLayer !== "undefined" && typeof callback === "function") {
1947      callback();
1948    } else {
1949      setTimeout(function () {
1950        waitLayer(delay, callback);
1951      }, delay);
1952    }
1953  }
1954}
1955
1956if (!funcDefined("checkCounters")) {
1957  function checkCounters(name) {
1958    if (typeof name !== "undefined") {
1959      if (
1960        name == "google" &&
1961        arAsproOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" &&
1962        arAsproOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0
1963      ) {
1964        return true;
1965      } else if (
1966        name == "yandex" &&
1967        arAsproOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" &&
1968        arAsproOptions["COUNTERS"]["YANDEX_COUNTER"] > 0
1969      ) {
1970        return true;
1971      } else {
1972        return false;
1973      }
1974    } else if (
1975      (arAsproOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" && arAsproOptions["COUNTERS"]["YANDEX_COUNTER"] > 0) ||
1976      (arAsproOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" && arAsproOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0)
1977    ) {
1978      return true;
1979    } else {
1980      return false;
1981    }
1982  }
1983}
1984
1985if (!funcDefined("addBasketCounter")) {
1986  function addBasketCounter(id) {
1987    if (arAsproOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
1988      var eventdata = { goal: "goal_basket_add", params: { id: id } };
1989      BX.onCustomEvent("onCounterGoals", [eventdata]);
1990    }
1991    if (checkCounters()) {
1992      $.ajax({
1993        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
1994        dataType: "json",
1995        type: "POST",
1996        data: { ID: id },
1997        success: function (item) {
1998          if (!!item && !!item.ID) {
1999            waitLayer(100, function () {
2000              dataLayer.push({
2001                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["ADD2BASKET"],
2002                ecommerce: {
2003                  currencyCode: item.CURRENCY,
2004                  add: {
2005                    products: [
2006                      {
2007                        id: item.ID,
2008                        name: item.NAME,
2009                        price: item.PRICE,
2010                        brand: item.BRAND,
2011                        category: item.CATEGORY,
2012                        quantity: item.QUANTITY,
2013                      },
2014                    ],
2015                  },
2016                },
2017              });
2018            });
2019          }
2020        },
2021      });
2022    }
2023  }
2024}
2025
2026if (!funcDefined("purchaseCounter")) {
2027  function purchaseCounter(order_id, type, callback) {
2028    if (checkCounters()) {
2029      $.ajax({
2030        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2031        dataType: "json",
2032        type: "POST",
2033        data: { ORDER_ID: order_id, TYPE: type },
2034        success: function (order) {
2035          var products = [];
2036          if (order.ITEMS) {
2037            for (var i in order.ITEMS) {
2038              products.push({
2039                id: order.ITEMS[i].ID,
2040                sku: order.ITEMS[i].ID,
2041                name: order.ITEMS[i].NAME,
2042                price: order.ITEMS[i].PRICE,
2043                brand: order.ITEMS[i].BRAND,
2044                category: order.ITEMS[i].CATEGORY,
2045                quantity: order.ITEMS[i].QUANTITY,
2046              });
2047            }
2048          }
2049          if (order.ID) {
2050            waitLayer(100, function () {
2051              dataLayer.push({
2052                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"],
2053                ecommerce: (d = {
2054                  purchase: {
2055                    actionField: {
2056                      id: order.ACCOUNT_NUMBER,
2057                      shipping: order.PRICE_DELIVERY,
2058                      tax: order.TAX_VALUE,
2059                      list: type,
2060                      revenue: order.PRICE,
2061                    },
2062                    products: products,
2063                  },
2064                }),
2065              });
2066
2067              if (typeof callback !== "undefined") {
2068                callback(d);
2069              }
2070            });
2071          } else {
2072            if (typeof callback !== "undefined") {
2073              callback();
2074            }
2075          }
2076        },
2077        error: function () {
2078          if (typeof callback !== "undefined") {
2079            callback();
2080          }
2081        },
2082      });
2083    }
2084  }
2085}
2086
2087if (!funcDefined("viewItemCounter")) {
2088  function viewItemCounter(id, price_id) {
2089    if (checkCounters()) {
2090      $.ajax({
2091        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2092        dataType: "json",
2093        type: "POST",
2094        data: { PRODUCT_ID: id, PRICE_ID: price_id },
2095        success: function (item) {
2096          if (item.ID) {
2097            waitLayer(100, function () {
2098              dataLayer.push({
2099                //"event": "",
2100                ecommerce: {
2101                  detail: {
2102                    products: [
2103                      {
2104                        id: item.ID,
2105                        name: item.NAME,
2106                        price: item.PRICE,
2107                        brand: item.BRAND,
2108                        category: item.CATEGORY,
2109                      },
2110                    ],
2111                  },
2112                },
2113              });
2114            });
2115          }
2116        },
2117      });
2118    }
2119  }
2120}
2121
2122if (!funcDefined("checkoutCounter")) {
2123  function checkoutCounter(step, option, callback) {
2124    if (checkCounters("google")) {
2125      $.ajax({
2126        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2127        dataType: "json",
2128        type: "POST",
2129        data: { BASKET: "Y" },
2130        success: function (basket) {
2131          var products = [];
2132          if (basket.ITEMS) {
2133            for (var i in basket.ITEMS) {
2134              products.push({
2135                id: basket.ITEMS[i].ID,
2136                name: basket.ITEMS[i].NAME,
2137                price: basket.ITEMS[i].PRICE,
2138                brand: basket.ITEMS[i].BRAND,
2139                category: basket.ITEMS[i].CATEGORY,
2140                quantity: basket.ITEMS[i].QUANTITY,
2141              });
2142            }
2143          }
2144          if (products) {
2145            waitLayer(100, function () {
2146              dataLayer.push({
2147                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["CHECKOUT_ORDER"],
2148                ecommerce: {
2149                  checkout: {
2150                    actionField: {
2151                      step: step,
2152                      option: option,
2153                    },
2154                    products: products,
2155                  },
2156                },
2157                /*"eventCallback": function() {
2158							    	if((typeof callback !== 'undefined') && (typeof callback === 'function')){
2159							    		callback();
2160							    	}
2161							   }*/
2162              });
2163            });
2164          }
2165        },
2166      });
2167    }
2168  }
2169}
2170
2171if (!funcDefined("delFromBasketCounter")) {
2172  function delFromBasketCounter(id, callback) {
2173    if (checkCounters()) {
2174      $.ajax({
2175        url: arAsproOptions["SITE_DIR"] + "ajax/goals.php",
2176        dataType: "json",
2177        type: "POST",
2178        data: { ID: id },
2179        success: function (item) {
2180          if (item.ID) {
2181            waitLayer(100, function () {
2182              dataLayer.push({
2183                event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["REMOVE_BASKET"],
2184                ecommerce: {
2185                  remove: {
2186                    products: [
2187                      {
2188                        id: item.ID,
2189                        name: item.NAME,
2190                        category: item.CATEGORY,
2191                      },
2192                    ],
2193                  },
2194                },
2195              });
2196              if (typeof callback == "function") {
2197                callback();
2198              }
2199            });
2200          }
2201        },
2202      });
2203    }
2204  }
2205}
2206
2207if (!funcDefined("setHeightCompany")) {
2208  function setHeightCompany() {
2209    $(".md-50.img").height($(".md-50.big").outerHeight() - 35);
2210  }
2211}
2212
2213if (!funcDefined("initSly")) {
2214  function initSly() {
2215    /*var $frame  = $(document).find('.frame');
2216		var $slidee = $frame.children('ul').eq(0);
2217		var $wrap   = $frame.parent();
2218
2219		if(arAsproOptions["PAGES"]["CATALOG_PAGE"] && $frame.length){
2220			$frame.sly({
2221				horizontal: 1,
2222				itemNav: 'basic',
2223				smart: 1,
2224				mouseDragging: 0,
2225				touchDragging: 0,
2226				releaseSwing: 0,
2227				startAt: 0,
2228				scrollBar: $wrap.find('.scrollbar'),
2229				scrollBy: 1,
2230				speed: 300,
2231				elasticBounds: 0,
2232				easing: 'swing',
2233				dragHandle: 1,
2234				dynamicHandle: 1,
2235				clickBar: 1,
2236
2237				// Buttons
2238				forward: $wrap.find('.forward'),
2239				backward: $wrap.find('.backward'),
2240			});
2241			$frame.sly('reload');
2242		}*/
2243  }
2244}
2245
2246if (!funcDefined("createTableCompare")) {
2247  function createTableCompare(originalTable, appendDiv, cloneTable) {
2248    try {
2249      var clone = originalTable.clone().removeAttr("id").addClass("clone");
2250      if (cloneTable.length) {
2251        cloneTable.remove();
2252        appendDiv.html("");
2253        appendDiv.html(clone);
2254      } else {
2255        appendDiv.append(clone);
2256      }
2257    } catch (e) {
2258    } finally {
2259    }
2260  }
2261}
2262
2263if (!funcDefined("fillBasketPropsExt")) {
2264  fillBasketPropsExt = function (that, prop_code, basket_prop_div) {
2265    var i = 0,
2266      propCollection = null,
2267      foundValues = false,
2268      basketParams = {},
2269      obBasketProps = null;
2270
2271    obBasketProps = BX(basket_prop_div);
2272    if (!obBasketProps && that.closest(".item").find(".basket_props_block").length && that.data("offers") !== "Y")
2273      obBasketProps = that.closest(".item").find(".basket_props_block")[0];
2274
2275    if (!!obBasketProps) {
2276      propCollection = obBasketProps.getElementsByTagName("select");
2277      if (!!propCollection && !!propCollection.length) {
2278        for (i = 0; i < propCollection.length; i++) {
2279          if (!propCollection[i].disabled) {
2280            switch (propCollection[i].type.toLowerCase()) {
2281              case "select-one":
2282                basketParams[propCollection[i].name] = propCollection[i].value;
2283                foundValues = true;
2284                break;
2285              default:
2286                break;
2287            }
2288          }
2289        }
2290      }
2291      propCollection = obBasketProps.getElementsByTagName("input");
2292      if (!!propCollection && !!propCollection.length) {
2293        for (i = 0; i < propCollection.length; i++) {
2294          if (!propCollection[i].disabled) {
2295            switch (propCollection[i].type.toLowerCase()) {
2296              case "hidden":
2297                basketParams[propCollection[i].name] = propCollection[i].value;
2298                foundValues = true;
2299                break;
2300              case "radio":
2301                if (propCollection[i].checked) {
2302                  basketParams[propCollection[i].name] = propCollection[i].value;
2303                  foundValues = true;
2304                }
2305                break;
2306              default:
2307                break;
2308            }
2309          }
2310        }
2311      }
2312    }
2313    if (!foundValues) {
2314      basketParams[prop_code] = [];
2315      basketParams[prop_code][0] = 0;
2316    }
2317    return basketParams;
2318  };
2319}
2320if (!funcDefined("showBasketError")) {
2321  showBasketError = function (mess, title, addButton, th, callback) {
2322    var title_set = title ? title : BX.message("ERROR_BASKET_TITLE"),
2323      isButton = "N",
2324      thButton = "";
2325    if (typeof addButton !== undefined) {
2326      isButton = "Y";
2327    }
2328    if (typeof th !== undefined) {
2329      thButton = th;
2330    }
2331    $("body").append("<span class='add-error-bakset' style='display:none;'></span>");
2332    jqmEd("basket_error", "error-bakset", ".add-error-bakset", mess, this, title_set, isButton, thButton);
2333    $("body .add-error-bakset").click();
2334    $("body .add-error-bakset").remove();
2335
2336    if (typeof callback === "function") {
2337      callback();
2338    }
2339  };
2340}
2341
2342CheckTopVisibleMenu = function (that) {
2343  var dropdownMenu = $(".dropdown-menu:visible");
2344  if (that !== undefined) {
2345    dropdownMenu.push(that);
2346  }
2347
2348  if (dropdownMenu.length) {
2349    dropdownMenu.each(function (i, el) {
2350      var dropdownMenuCurrent = $(el);
2351      dropdownMenuCurrent.find("a").css("white-space", "");
2352      dropdownMenuCurrent.css("left", "");
2353      dropdownMenuCurrent.css("right", "");
2354      dropdownMenuCurrent.removeClass("toright");
2355
2356      var dropdownMenuCurrent_left = dropdownMenuCurrent.offset().left;
2357
2358      if (typeof dropdownMenuCurrent_left != "undefined") {
2359        var menu = dropdownMenuCurrent.parents(".mega-menu");
2360        if (!menu.length) menu = dropdownMenuCurrent.closest(".logo-row");
2361        var menu_width = menu.outerWidth();
2362        var menu_left = menu.offset().left;
2363        var menu_right = menu_left + menu_width;
2364        var isToRight = dropdownMenuCurrent.parents(".toright").length > 0;
2365        var parentsdropdownMenuCurrents = dropdownMenuCurrent.parents(".dropdown-menu");
2366        var isHasParentdropdownMenuCurrent = parentsdropdownMenuCurrents.length > 0;
2367        if (isHasParentdropdownMenuCurrent) {
2368          var parentdropdownMenuCurrent_width = parentsdropdownMenuCurrents.first().outerWidth();
2369          var parentdropdownMenuCurrent_left = parentsdropdownMenuCurrents.first().offset().left;
2370          var parentdropdownMenuCurrent_right = parentdropdownMenuCurrent_width + parentdropdownMenuCurrent_left;
2371        }
2372
2373        if (parentdropdownMenuCurrent_right + dropdownMenuCurrent.outerWidth() > menu_right) {
2374          dropdownMenuCurrent.find("a").css("white-space", "normal");
2375        }
2376
2377        var dropdownMenuCurrent_width = dropdownMenuCurrent.outerWidth();
2378        var dropdownMenuCurrent_right = dropdownMenuCurrent_left + dropdownMenuCurrent_width;
2379
2380        if (dropdownMenuCurrent_right > menu_right || isToRight) {
2381          var addleft = 0;
2382          addleft = menu_right - dropdownMenuCurrent_right;
2383          if (isHasParentdropdownMenuCurrent || isToRight) {
2384            dropdownMenuCurrent.css("left", "auto");
2385            dropdownMenuCurrent.css("right", "100%");
2386            dropdownMenuCurrent.addClass("toright");
2387          } else {
2388            var dropdownMenuCurrent_curLeft = parseInt(dropdownMenuCurrent.css("left"));
2389            dropdownMenuCurrent.css("left", dropdownMenuCurrent_curLeft + addleft + "px");
2390          }
2391        }
2392      }
2393    });
2394  }
2395};
2396
2397if (!funcDefined("isRealValue")) {
2398  function isRealValue(obj) {
2399    return obj && obj !== "null" && obj !== "undefined";
2400  }
2401}
2402
2403if (!funcDefined("rightScroll")) {
2404  function rightScroll(prop, id) {
2405    var el = BX("prop_" + prop + "_" + id);
2406    if (el) {
2407      var curVal = parseInt(el.style.marginLeft);
2408      if (curVal >= 0) el.style.marginLeft = curVal - 20 + "%";
2409    }
2410  }
2411}
2412
2413if (!funcDefined("leftScroll")) {
2414 
2414 function leftScroll(prop, id) {
2415    var el = BX("prop_" + prop + "_" + id);
2416    if (el) {
2417      var curVal = parseInt(el.style.marginLeft);
2418      if (curVal < 0) el.style.marginLeft = curVal + 20 + "%";
2419    }
2420  }
2421}
2422
2423if (!funcDefined("InitOrderCustom")) {
2424  InitOrderCustom = function () {
2425    $(".ps_logo img").wrap('<div class="image"></div>');
2426
2427    $("#bx-soa-order .radio-inline").each(function () {
2428      if ($(this).find("input").attr("checked") == "checked") {
2429        $(this).addClass("checked");
2430      }
2431    });
2432
2433    $("#bx-soa-order .checkbox input[type=checkbox]").each(function () {
2434      if ($(this).attr("checked") == "checked") $(this).parent().addClass("checked");
2435    });
2436
2437    $("#bx-soa-order .bx-authform-starrequired").each(function () {
2438      var html = $(this).html();
2439      $(this)
2440        .closest("label")
2441        .append('<span class="bx-authform-starrequired"> ' + html + "</span>");
2442      $(this).detach();
2443    });
2444    $(".bx_ordercart_coupon").each(function () {
2445      if ($(this).find(".bad").length) $(this).addClass("bad");
2446      else if ($(this).find(".good").length) $(this).addClass("good");
2447    });
2448    /*if (typeof(propsMap) !== 'undefined') {
2449			$(propsMap).on('click', function () {
2450				var value = $('#orderDescription').val();
2451				if ($('#orderDescription')) {
2452					if (value != '') {
2453						$('#orderDescription').closest('.form-group').addClass('value_y');
2454					}
2455				}
2456			});
2457		}*/
2458  };
2459}
2460
2461if (!funcDefined("InitLabelAnimation")) {
2462  InitLabelAnimation = function (className) {
2463    // Fix order labels
2464    if (!$(className).length) {
2465      return;
2466    }
2467    $(className)
2468      .find(".form-group")
2469      .each(function () {
2470        if (
2471          $(this).find("input[type=text], textarea").length &&
2472          !$(this).find(".dropdown-block").length &&
2473          $(this).find("input[type=text], textarea").val() != ""
2474        ) {
2475          $(this).addClass("value_y");
2476        }
2477      });
2478
2479    $(document).on("click", className + " .form-group:not(.bx-soa-pp-field) label", function () {
2480      $(this).parent().find("input, textarea").focus();
2481    });
2482
2483    $(document).on(
2484      "focusout",
2485      className +
2486        " .form-group:not(.bx-soa-pp-field) input, " +
2487        className +
2488        " .form-group:not(.bx-soa-pp-field) textarea",
2489      function () {
2490        var value = $(this).val();
2491        if (
2492          value != "" &&
2493          !$(this).closest(".form-group").find(".dropdown-block").length &&
2494          !$(this).closest(".form-group").find("#profile_change").length
2495        ) {
2496          $(this).closest(".form-group").addClass("value_y");
2497        } else {
2498          $(this).closest(".form-group").removeClass("value_y");
2499        }
2500      }
2501    );
2502
2503    $(document).on(
2504      "focus",
2505      className +
2506        " .form-group:not(.bx-soa-pp-field) input, " +
2507        className +
2508        " .form-group:not(.bx-soa-pp-field) textarea",
2509      function () {
2510        if (
2511          !$(this).closest(".form-group").find(".dropdown-block").length &&
2512          !$(this).closest(".form-group").find("#profile_change").length &&
2513          !$(this).closest(".form-group").find("[name=PERSON_TYPE_OLD]").length
2514        ) {
2515          $(this).closest(".form-group").addClass("value_y");
2516        }
2517      }
2518    );
2519  };
2520}
2521
2522checkPopupWidth = function () {
2523  $(".popup.show").each(function () {
2524    var width_form = $(this).actual("width");
2525    $(this).css({
2526      "margin-left": $(window).width() > width_form ? "-" + width_form / 2 + "px" : "-" + $(window).width() / 2 + "px",
2527    });
2528  });
2529};
2530
2531checkCaptchaWidth = function () {
2532  $(".captcha-row").each(function () {
2533    var width = $(this).actual("width");
2534    if ($(this).hasClass("b")) {
2535      if (width > 320) {
2536        $(this).removeClass("b");
2537      }
2538    } else {
2539      if (width <= 320) {
2540        $(this).addClass("b");
2541      }
2542    }
2543  });
2544};
2545
2546checkFormWidth = function () {
2547  $(".form .form_left").each(function () {
2548    var form = $(this).parents(".form");
2549    var width = form.actual("width");
2550    if (form.hasClass("b")) {
2551      if (width > 417) {
2552        form.removeClass("b");
2553      }
2554    } else {
2555      if (width <= 417) {
2556        form.addClass("b");
2557      }
2558    }
2559  });
2560};
2561
2562checkFormControlWidth = function () {
2563  $(".form-control").each(function () {
2564    var width = $(this).actual("width");
2565    var labelWidth = $(this).find("label:not(.error) > span").actual("width");
2566    var errorWidth = $(this).find("label.error").actual("width");
2567    if (errorWidth > 0) {
2568      if ($(this).hasClass("h")) {
2569        if (width > labelWidth + errorWidth + 5) {
2570          $(this).removeClass("h");
2571        }
2572      } else {
2573        if (width <= labelWidth + errorWidth + 5) {
2574          $(this).addClass("h");
2575        }
2576      }
2577    } else {
2578      $(this).removeClass("h");
2579    }
2580  });
2581};
2582
2583scrollToTop = function () {
2584  if (arAsproOptions["THEME"]["SCROLLTOTOP_TYPE"] !== "NONE") {
2585    var _isScrolling = false;
2586    // Append Button
2587    $("body").append(
2588      $("<a />")
2589        .addClass(
2590          "scroll-to-top " +
2591            arAsproOptions["THEME"]["SCROLLTOTOP_TYPE"] +
2592            " " +
2593            arAsproOptions["THEME"]["SCROLLTOTOP_POSITION"]
2594        )
2595        .attr({ href: "#", id: "scrollToTop" })
2596    );
2597
2598    if (arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"]) {
2599      $("#scrollToTop").css("bottom", +arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"] + "px");
2600    }
2601
2602    if (arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_RIGHT"]) {
2603      $("#scrollToTop").css("right", +arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_RIGHT"] + "px");
2604    }
2605
2606    $("#scrollToTop").click(function (e) {
2607      e.preventDefault();
2608      $("body, html").animate({ scrollTop: 0 }, 500);
2609      return false;
2610    });
2611    // Show/Hide Button on Window Scroll event.
2612    $(window).scroll(function () {
2613      if (!_isScrolling) {
2614        _isScrolling = true;
2615        if ($(window).scrollTop() > 150) {
2616          $("#scrollToTop").stop(true, true).addClass("visible");
2617          _isScrolling = false;
2618        } else {
2619          $("#scrollToTop").stop(true, true).removeClass("visible");
2620          _isScrolling = false;
2621        }
2622        checkScrollToTop();
2623      }
2624    });
2625  }
2626};
2627
2628checkScrollToTop = function () {
2629  if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"])
2630    var bottom = +arAsproOptions["THEME"]["SCROLLTOTOP_POSITION_BOTTOM"];
2631  else var bottom = 55;
2632
2633  var scrollVal = $(window).scrollTop(),
2634    windowHeight = $(window).height(),
2635    footerOffset = 0;
2636  if ($("footer").length) footerOffset = $("footer .footer-inner").offset().top;
2637
2638  if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["SCROLLTOTOP_POSITION"] == "CONTENT") {
2639    warpperWidth = $("body > .wrapper > .wrapper_inner").width();
2640    $("#scrollToTop").css("margin-left", Math.ceil(warpperWidth / 2) + 23);
2641  }
2642
2643  if (scrollVal + windowHeight > footerOffset) {
2644    $("#scrollToTop").css("bottom", Math.round(bottom + scrollVal + windowHeight - footerOffset) + "px");
2645  } else if (parseInt($("#scrollToTop").css("bottom")) > bottom) {
2646    $("#scrollToTop").css("bottom", Math.round(bottom));
2647  }
2648};
2649
2650CheckObjectsSizes = function () {
2651  $(".container iframe,.container object,.container video").each(function () {
2652    var height_attr = $(this).attr("height");
2653    var width_attr = $(this).attr("width");
2654    if (height_attr && width_attr) {
2655      $(this).css("height", ($(this).outerWidth() * height_attr) / width_attr);
2656    }
2657  });
2658};
2659
2660if (!funcDefined("reloadTopBasket")) {
2661  var reloadTopBasket = function reloadTopBasket(action, basketWindow, speed, delay, slideDown, item, sync) {
2662    var obj = {
2663      PARAMS: $("#top_basket_params").val(),
2664      ACTION: action,
2665    };
2666    if (typeof item !== "undefined" && item) {
2667      obj.delete_top_item = "Y";
2668      obj.delete_top_item_id = item.data("id");
2669    }
2670    // $.post( arAsproOptions['SITE_DIR']+"ajax/show_basket_popup.php", obj, $.proxy(function( data ){
2671    $.post(
2672      arAsproOptions["SITE_DIR"] + "ajax/show_basket_actual.php",
2673      obj,
2674      $.proxy(function (data) {
2675        $(basketWindow).html(data);
2676
2677        //getActualBasket('', '', sync);
2678
2679        getActualBasket("", "Compare", sync); //need for actual compare count when do opt action
2680
2681        var eventdata = { action: "loadBasket" };
2682        BX.onCustomEvent("onCompleteAction", [eventdata]);
2683
2684        /*if(arAsproOptions['THEME']['SHOW_BASKET_ONADDTOCART'] !== 'N'){
2685				if($(window).outerWidth() > 520){
2686					if(slideDown=="Y")
2687						$(basketWindow).find('.basket_popup_wrapp').stop(true,true).slideDown(speed);
2688					clearTimeout(basketTimeoutSlide);
2689					basketTimeoutSlide = setTimeout(function() {
2690						var _this = $('#basket_line').find('.basket_popup_wrapp');
2691						if (_this.is(':hover')) {
2692							_this.show();
2693						}else{
2694							$('#basket_line').find('.basket_popup_wrapp').slideUp(speed);
2695						}
2696					},delay);
2697				}
2698			}*/
2699      })
2700    );
2701  };
2702}
2703
2704CheckTabActive = function () {
2705  if (typeof clicked_tab && clicked_tab) {
2706    if (window.matchMedia("(min-width: 768px)").matches) {
2707      clicked_tab--;
2708      $(".nav.nav-tabs li").each(function () {
2709        if ($(this).index() == clicked_tab) $(this).addClass("active");
2710      });
2711      // $('.nav.nav-tabs li:eq('+clicked_tab+')').addClass('active');
2712      $(".catalog_detail .tab-content .tab-pane:eq(" + clicked_tab 
2712+ ")").addClass("active");
2713      $(".catalog_detail .tab-content .tab-pane .title-tab-heading").next().removeAttr("style");
2714      clicked_tab = 0;
2715    }
2716  }
2717};
2718
2719/*countdown start*/
2720if (!funcDefined("initCountdown")) {
2721  var initCountdown = function initCountdown() {
2722    if ($(".view_sale_block").length) {
2723      $(".view_sale_block").each(function () {
2724        var _this = $(this);
2725        if (_this.hasClass("init-if-visible") && !_this.is(":visible")) return;
2726
2727        var activeTo = _this.find(".active_to").text(),
2728          dateTo = new Date(activeTo.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2729        if (_this.hasClass("compact"))
2730          _this.find(".countdown").countdown(
2731            {
2732              until: dateTo,
2733              format: "dHMS",
2734              compact: true,
2735              padZeroes: true,
2736              layout:
2737                '{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>',
2738            },
2739            $.countdown.regionalOptions["ru"]
2740          );
2741        else
2742          _this.find(".countdown").countdown(
2743            {
2744              until: dateTo,
2745              format: "dHMS",
2746              padZeroes: true,
2747              layout:
2748                '{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>',
2749            },
2750            $.countdown.regionalOptions["ru"]
2751          );
2752      });
2753    }
2754  };
2755}
2756
2757if (!funcDefined("initCountdownTime")) {
2758  var initCountdownTime = function initCountdownTime(block, time) {
2759    if (time) {
2760      var dateTo = new Date(time.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2761      block.find(".countdown").countdown("destroy");
2762      if (block.hasClass("compact"))
2763        block.find(".countdown").countdown(
2764          {
2765            until: dateTo,
2766            format: "dHM",
2767            compact: true,
2768            padZeroes: true,
2769            layout:
2770              '{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>',
2771          },
2772          $.countdown.regionalOptions["ru"]
2773        );
2774      else
2775        block.find(".countdown").countdown(
2776          {
2777            until: dateTo,
2778            format: "dHMS",
2779            padZeroes: true,
2780            layout:
2781              '{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>',
2782          },
2783          $.countdown.regionalOptions["ru"]
2784        );
2785      block.find(".view_sale_block").show();
2786    } else {
2787      block.find(".view_sale_block").hide();
2788    }
2789  };
2790}
2791/*countdown end*/
2792
2793waitCounter = function (idCounter, delay, callback) {
2794  var obCounter = window["yaCounter" + idCounter];
2795  if (typeof obCounter == "object") {
2796    if (typeof callback == "function") callback();
2797  } else {
2798    setTimeout(function () {
2799      waitCounter(idCounter, delay, callback);
2800    }, delay);
2801  }
2802};
2803
2804var isOnceInited = (insertFilter = false);
2805var animationTime = 200;
2806var delayTime = 200;
2807var topMenuEnterTimer = false;
2808var previewMode = window != window.top;
2809var isMobile =
2810  ((jQuery.browser.mobile || previewMode) && window.matchMedia("(max-width:767px)").matches) ||
2811  window.matchMedia("(max-width:400px)").matches;
2812
2813if (isMobile) document.documentElement.className += " mobile";
2814if (previewMode) document.documentElement.className += " previewMode";
2815
2816if (navigator.userAgent.indexOf("Edge") != -1) document.documentElement.className += " bx-ie-edge";
2817
2818/*filter start*/
2819if (!funcDefined("checkVerticalMobileFilter")) {
2820  var checkVerticalMobileFilter = function checkVerticalMobileFilter() {
2821    /*if($('.right_block1.catalog.vertical').length && !$('.left_block.filter_aja
2821x').length)
2822		{
2823			if(typeof window['trackBarOptions'] !== 'undefined')
2824			{
2825				window['trackBarValues'] = {}
2826				for(key in window['trackBarOptions'])
2827				{
2828					window['trackBarValues'][key] = {
2829						'leftPercent': window['trackBar' + key].leftPercent,
2830						'leftValue': window['trackBar' + key].minInput.value,
2831						'rightPercent': window['trackBar' + key].rightPercent,
2832						'rightValue': window['trackBar' + key].maxInput.value,
2833					}
2834				}
2835			}
2836
2837			if(window.matchMedia('(max-width: 991px)').matches)
2838			{
2839				if(!insertFilter)
2840				{
2841					$('.js_filter .bx_filter.bx_filter_vertical').html($('.left_block .bx_filter.bx_filter_vertical').html());
2842					$('.left_block .bx_filter.bx_filter_vertical .bx_filter_section').remove();
2843					insertFilter=true;
2844				}
2845			}
2846			else
2847			{
2848				if(insertFilter)
2849				{
2850					$('.left_block .bx_filter.bx_filter_vertical').html($('.js_filter .bx_filter.bx_filter_vertical').html());
2851					$('.js_filter .bx_filter.bx_filter_vertical .bx_filter_section').remove();
2852					insertFilter=false;
2853				}
2854			}
2855
2856			if(typeof window['trackBarOptions'] !== 'undefined')
2857			{
2858				for(key in window['trackBarOptions'])
2859				{
2860					window['trackBarOptions'][key].leftPercent = window['trackBarValues'][key].leftPercent;
2861					window['trackBarOptions'][key].rightPercent = window['trackBarValues'][key].rightPercent;
2862					window['trackBarOptions'][key].curMinPrice = window['trackBarValues'][key].leftValue;
2863					window['trackBarOptions'][key].curMaxPrice = window['trackBarValues'][key].rightValue;
2864					window['trackBar' + key] = new BX.Iblock.SmartFilter(window['trackBarOptions'][key]);
2865					window['trackBar' + key].minInput.value = window['trackBarValues'][key].leftValue;
2866					window['trackBar' + key].maxInput.value = window['trackBarValues'][key].rightValue;
2867				}
2868			}
2869		}
2870		else if($('.visible_mobile_filter').length)
2871		{
2872			var posTopBlock = BX.pos($('.detail.partners')[0]),
2873				posBlock = $('.ajax_load').position();
2874			// $('.visible_mobile_filter').css('top', posBottomBlock.top-posTopBlock.top);
2875			$('.visible_mobile_filter').css('top', posBlock.top);
2876
2877		}*/
2878  };
2879}
2880/*filter end*/
2881
2882// ONE CLICK
2883if (!funcDefined("oneClickBuy")) {
2884  var oneClickBuy = function (elementID, iblockID, that) {
2885    var name = "one_click_buy";
2886    var elementQuantity = 1;
2887    var offerProps = false;
2888    var buy_btn = $(that).closest(".buy_block").find(".to-cart");
2889    var buy_btn2 = $(that).closest("tr").find(".to-cart");
2890
2891    if (typeof that !== "undefined") {
2892      elementQuantity = $(that).attr("data-quantity");
2893      offerProps = $(that).attr("data-props");
2894    }
2895
2896    if (elementQuantity < 0) {
2897      elementQuantity = 1;
2898    }
2899
2900    var tmp_props = buy_btn.data("props"),
2901      tmp_props2 = buy_btn2.data("props"),
2902      props = "",
2903      part_props = "",
2904      add_props = "N",
2905      fill_prop = {},
2906      iblockid = buy_btn.data("iblockid"),
2907      item = buy_btn.attr("data-item");
2908
2909    if (tmp_props) {
2910      props = tmp_props.split(";");
2911    } else if (tmp_props2) {
2912      props = tmp_props2.split(";");
2913    }
2914    if (buy_btn.data("part_props")) {
2915      part_props = buy_btn.data("part_props");
2916    }
2917    if (buy_btn.data("add_props")) {
2918      add_props = buy_btn.data("add_props");
2919    }
2920
2921    fill_prop = fillBasketPropsExt(buy_btn, "prop", buy_btn.data("bakset_div"));
2922    fill_prop.iblockID = iblockid;
2923    fill_prop.part_props = part_props;
2924    fill_prop.add_props = add_props;
2925    fill_prop.props = JSON.stringify(props);
2926    fill_prop.item = item;
2927    fill_prop.ocb_item = "Y";
2928
2929    if (!isMobile) {
2930      if (!$(that).hasClass("clicked")) {
2931        $(that).addClass("clicked");
2932        $("body")
2933          .find("." + name + "_frame")
2934          .remove();
2935        $("body")
2936          .find("." + name + "_trigger")
2937          .remove();
2938        $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame popup"></div>');
2939        $("body #popup_iframe_wrapper").append('<div class="' + name + '_trigger"></div>');
2940        $("." + name + "_frame").jqm({
2941          trigger: "." + name + "_trigger",
2942          onHide: function (hash) {
2943            onHidejqm(name, hash);
2944          },
2945          toTop: false,
2946          onLoad: function (hash) {
2947            onLoadjqm(name, hash);
2948          },
2949          ajax:
2950            arAsproOptions["SITE_DIR"] +
2951            "ajax/one_click_buy.php?ELEMENT_ID=" +
2952            elementID +
2953            "&IBLOCK_ID=" +
2954            iblockID +
2955            "&ELEMENT_QUANTITY=" +
2956            elementQuantity +
2957            "&OFFER_PROPS=" +
2958            fill_prop.props,
2959        });
2960        $("." + name + "_trigger").click();
2961      }
2962    } else {
2963      var script = arAsproOptions["SITE_DIR"] + "form/";
2964      script +=
2965        "?name=" +
2966        name +
2967        "&form_id=ocb&path=" +
2968        window.location.pathname +
2969        "&ELEMENT_ID=" +
2970        elementID +
2971        "&IBLOCK_ID=" +
2972        iblockID +
2973        "&ELEMENT_QUANTITY=" +
2974        elementQuantity +
2975        "&OFFER_PROPS=" +
2976        fill_prop.props;
2977      location.href = script;
2978    }
2979  };
2980}
2981
2982if (!funcDefined("oneClickBuyBasket")) {
2983  var oneClickBuyBasket = function () {
2984    name = "one_click_buy_basket";
2985    if (!isMobile) {
2986      if (!$(".fast_order").hasClass("clicked")) {
2987        $(".fast_order").addClass("clicked");
2988        $("body")
2989          .find("." + name + "_frame")
2990          .remove();
2991        $("body")
2992          .find("." + name + "_trigger")
2993          .remove();
2994        $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame popup"></div>');
2995        $("body #popup_iframe_wrapper").append('<div class="' + name + '_trigger"></div>');
2996        $("." + name + "_frame").jqm({
2997          trigger: "." + name + "_trigger",
2998          onHide: function (hash) {
2999            onHidejqm(name, hash);
3000          },
3001          onLoad: function (hash) {
3002            onLoadjqm(name, hash);
3003          },
3004          ajax: arAsproOptions["SITE_DIR"] + "ajax/one_click_buy_basket.php",
3005        });
3006        $("." + name + "_trigger").click();
3007      }
3008    } else {
3009      var script = arAsproOptions["SITE_DIR"] + "form/";
3010      script += "?name=" + name + "&form_id=ocb&path=" + window.location.pathname + "&buy_basket=y";
3011      location.href = script;
3012    }
3013  };
3014}
3015
3016// TOP MENU ANIMATION
3017$(document).on("click", ".menu_top_block>li .more a", function () {
3018  $this = $(this);
3019  $this.parents(".dropdown").first().find(">.hidden").removeClass("hidden");
3020  $this.parent().addClass("hidden");
3021  setTimeout(function () {
3022    $this.parent().remove();
3023  }, 500);
3024});
3025
3026$(document).on("mouseenter", ".menu_top_block.catalogfirst>li>.dropdown>li.full", function () {
3027  var $submenu = $(this).find(">.dropdown");
3028
3029  if ($submenu.length) {
3030    if (topMenuEnterTimer) {
3031      clearTimeout(topMenuEnterTimer);
3032      topMenuEnterTimer = false;
3033    }
3034  }
3035});
3036
3037$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () {
3038  var $submenu = $(this).find(">.dropdown");
3039
3040  if ($submenu.length && !$submenu.hasClass("visible")) {
3041    var $menu = $(this).parents(".menu");
3042    var $wrapmenu = $menu.parents(".wrap_menu");
3043    var wrapMenuWidth = $wrapmenu.actual("outerWidth");
3044    var wrapMenuLeft = $wrapmenu.offset().left;
3045    var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
3046    var left = wrapMenuRight - ($(this).offset().left + $submenu.actual("outerWidth"));
3047    if (
3048      window.matchMedia("(min-width: 951px)").matches &&
3049      $(this).hasClass("catalog") &&
3050      ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page"))
3051    ) {
3052      return;
3053    }
3054    if (left < 0) {
3055      $submenu.css({ left: left + "px" });
3056    }
3057    $submenu.stop().slideDown(animationTime, function () {
3058      $submenu.css({ height: "", overflow: "visible" });
3059    });
3060
3061    $(this).on("mouseleave", function () {
3062      var leaveTimer = setTimeout(function () {
3063        $submenu.stop().slideUp(animationTime, function () {
3064          $submenu.css({ left: "" });
3065        });
3066      }, delayTime);
3067
3068      $(this).on("mouseenter", function () {
3069        if (leaveTimer) {
3070          clearTimeout(leaveTimer);
3071          leaveTimer = false;
3072        }
3073      });
3074    });
3075  }
3076});
3077
3078$(document).on("mouseenter", ".menu_top_block>li .dropdown>li", function () {
3079  var $this = $(this);
3080  var $submenu = $this.find(">.dropdown");
3081
3082  if (
3083    $submenu.length &&
3084    ((!$this.parents(".full").length && !$this.hasClass("full")) || $this.parents(".more").length)
3085  ) {
3086    var $menu = $this.parents(".menu");
3087    var $wrapmenu = $menu.parents(".wrap_menu");
3088    var arParentSubmenuForOpacity = [];
3089    topMenuEnterTimer = setTimeout(function () {
3090      var wrapMenuWidth = $wrapmenu.actual("outerWidth");
3091      var wrapMenuLeft = $wrapmenu.offset().left;
3092      var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
3093      var $parentSubmenu = $this.parent();
3094      var bToLeft = $parentSubmenu.hasClass("toleft") ? true : false;
3095      if (!bToLeft) {
3096        bToLeft = $this.offset().left + $this.actual("outerWidth") + $submenu.actual("outerWidth") > wrapMenuRight;
3097      } else {
3098        bToLeft = $this.offset().left + $this.actual("outerWidth") - $submenu.actual("outerWidth") < wrapMenuLeft;
3099      }
3100
3101      if (bToLeft) {
3102        $this.find(">.dropdown").addClass("toleft").show();
3103      } else {
3104        $this.find(">.dropdown").removeClass("toleft").show();
3105      }
3106      var submenuLeft = $submenu.offset().left;
3107      var submenuRight = submenuLeft + $submenu.actual("outerWidth");
3108
3109      $this.parents(".dropdown").each(function () {
3110        var $this = $(this);
3111        var leftOffset = $this.offset().left;
3112        var rightOffset = leftOffset + $this.actual("outerWidth");
3113        if (
3114          (leftOffset >= submenuLeft && leftOffset < submenuRight - 1) ||
3115          (rightOffset > submenuLeft + 1 && rightOffset <= submenuRight)
3116        ) {
3117          arParentSubmenuForOpacity.push($this);
3118          $this.find(">li>a").css({ opacity: "0.1" });
3119        }
3120      });
3121    }, delayTime);
3122
3123    $this.unbind("mouseleave");
3124    $this.on("mouseleave", function () {
3125      var leaveTimer = setTimeout(function () {
3126        $this.find(".dropdown").removeClass("toleft").hide();
3127        if (arParentSubmenuForOpacity.length) {
3128          for (i in arParentSubmenuForOpacity) {
3129            arParentSubmenuForOpacity[i].find(">li>a").css({ opacity: "" });
3130          }
3131        }
3132      }, delayTime);
3133
3134      $this.unbind("mouseenter");
3135      $this.on("mouseenter", function () {
3136        if (leaveTimer) {
3137          clearTimeout(leaveTimer);
3138          leaveTimer = false;
3139        }
3140      });
3141    });
3142  }
3143});
3144
3145/*hover animate*/
3146//breadcrumbs
3147$(document).on("mouseenter", ".breadcrumbs .breadcrumbs__item, .hover-block .hover-block__item", function () {
3148  var _this = $(this),
3149    menu = _this.find("> .breadcrumbs__dropdown-wrapper, > .hover-block__item-wrapper");
3150
3151  menu.velocity("stop").velocity("transition.slideUpIn", {
3152    duration: 300,
3153    delay: 100,
3154  });
3155
3156  _this.one("mouseleave", function () {
3157    menu.velocity("stop").velocity("fadeOut", {
3158      duration: 100,
3159      // delay: 0
3160    });
3161  });
3162});
3163
3164//top menu
3165$(document).on("mouseenter", ".menu .mega-menu table td, .menu-row .mega-menu table td", function () {
3166  var _this = $(this),
3167    menu = _this.find("> .wrap > .dropdown-menu");
3168
3169  if (!_this.hasClass("wide_menu")) {
3170    menu.show();
3171    CheckTopVisibleMenu();
3172  }
3173
3174  var bDarkness = $(".wrapper1.dark-hover-overlay").length > 0;
3175
3176  menu.velocity("stop");
3177
3178  if (menu.css("opacity") != 0) {
3179    menu.css("opacity", "1");
3180    if (bDarkness) {
3181      $(".shadow-block").css("opacity", "1");
3182    }
3183  } else {
3184    // menu.velocity('stop').velocity('transition.perspectiveDownIn', {
3185    // menu.velocity('stop').velocity('transition.slideUpBigIn', {
3186    // menu.velocity('transition.expandIn', {
3187    menu.velocity("fadeIn", {
3188      begin: function (elements) {
3189        InitMenuNavigationAim();
3190        CheckTopVisibleMenu();
3191      },
3192      duration: 150,
3193      delay: 250,
3194      complete: function () {
3195        if (bDarkness) {
3196          $("body").addClass("menu-hovered");
3197          if (!$(".shadow-block").length) $('<div class="shadow-block"></div>').appendTo($("body"));
3198          $(".shadow-block").velocity("stop").velocity("fadeIn", 200);
3199        }
3200
3201        var bannerMenu = $(".dropdown-menu.with_right_block .owl-carousel-hover");
3202        if (bannerMenu.length) {
3203          bannerMenu.removeClass("owl-carousel-hover").addClass("owl-carousel");
3204          setTimeout(function () {
3205            InitOwlSlider();
3206            bannerMenu.removeClass("loader_circle");
3207          }, 1);
3208        }
3209      },
3210    });
3211  }
3212
3213  _this.one("mouseleave", function () {
3214    menu.velocity("stop").velocity("fadeOut", {
3215      duration: 50,
3216      delay: 300,
3217      complete: function () {
3218        if (bDarkness) {
3219          $(".shadow-block")
3220            .velocity("stop")
3221            .velocity("fadeOut", {
3222              duration: 200,
3223              // delay: 100,
3224              complete: function () {
3225                $("body").removeClass("menu-hovered");
3226              },
3227            });
3228        }
3229      },
3230    });
3231  });
3232});
3233/**/
3234
3235$(document).on("mouseenter", ".menu-item:not(.wide_menu) .dropdown-menu .dropdown-submenu", function () {
3236  var _this = $(this),
3237    menu = _this.find("> .dropdown-menu");
3238
3239  menu.velocity("stop");
3240
3241  if (menu.css("opacity") != 0) {
3242    menu.css("opacity", "1");
3243  } else {
3244    menu.velocity("transition.fadeIn", {
3245      begin: function (element) {
3246        $(element).css("display", "block");
3247        CheckTopVisibleMenu();
3248      },
3249      duration: 300,
3250      delay: 250,
3251    });
3252  }
3253
3254  _this.one("mouseleave", function () {
3255    menu.velocity("stop").velocity("fadeOut", {
3256      duration: 150,
3257      delay: 300,
3258    });
3259  });
3260});
3261
3262/*register custom velocity animate*/
3263if (typeof $.Velocity !== undefined && "RegisterEffect" in $.Velocity) {
3264  var effects = {
3265    "transition.slideDownFullIn": {
3266      defaultDuration: 900,
3267      calls: [[{ opacity: [1, 0], translateY: [0, "-100%"], translateZ: 0 }]],
3268    },
3269    "transition.slideDownFullOut": {
3270      defaultDuration: 900,
3271      calls: [[{ opacity: [0.4, 1], translateY: ["-100%", 0], translateZ: 0 }]],
3272    },
3273  };
3274
3275  for (var effectName in effects) {
3276    if (effects.hasOwnProperty(effectName)) {
3277      $.Velocity.RegisterEffect(effectName, effects[effectName]);
3278    }
3279  }
3280}
3281/**/
3282
3283getGridSize = function (counts, slider) {
3284  var counts_item = 1;
3285  //wide
3286  if (window.matchMedia("(min-width: 1200px)").matches) {
3287    counts_item = counts[0];
3288    if (typeof slider.data("lg_count") !== "undefined" && slider.data("lg_count") && $(".front.wide_page").length)
3289      counts_item = slider.data("lg_count");
3290  }
3291
3292  //large
3293  if (window.matchMedia("(max-width: 1200px)").matches) {
3294    counts_item = counts[1];
3295  }
3296
3297  //middle
3298  if (window.matchMedia("(max-width: 992px)").matches) {
3299    counts_item = counts[2];
3300  }
3301
3302  //small
3303  if (counts[3]) {
3304    if (window.matchMedia("(max-width: 600px)").matches) {
3305      counts_item = counts[3];
3306    }
3307  }
3308
3309  //exsmall
3310  if (counts[4]) {
3311    if (window.matchMedia("(max-width: 400px)").matches) {
3312      counts_item = counts[4];
3313    }
3314  }
3315  return counts_item;
3316};
3317
3318CheckFlexSlider = function () {
3319  $(".flexslider:not(.thmb)").each(function () {
3320    var slider = $(this);
3321    if (typeof slider.data("flexslider") != "undefined") {
3322      if ("vars" in slider.data("flexslider")) {
3323        slider.resize();
3324
3325        var counts = slider.data("flexslider").vars.counts;
3326        if (typeof counts != "undefined" && slider.is(":visible")) {
3327          var cnt = getGridSize(counts, slider);
3328          var to0 =
3329            cnt != slider.data("flexslider").vars.minItems ||
3330            cnt != slider.data("flexslider").vars.maxItems ||
3331            cnt != slider.data("flexslider").vars.move;
3332          if (to0) {
3333            slider.data("flexslider").vars.minItems = cnt;
3334            slider.data("flexslider").vars.maxItems = cnt;
3335            slider.data("flexslider").vars.move = cnt;
3336            slider.flexslider(0);
3337            slider.resize();
3338            slider.resize(); // twise!
3339          }
3340        }
3341      }
3342    }
3343  });
3344};
3345
3346$.fn.mCustomScrollbarDeferred = function (config) {
3347  $(this).addClass("scroll-init");
3348
3349  if ($(this).hasClass("destroyed")) {
3350    return;
3351  }
3352
3353  $(this).hover(
3354    function (e) {
3355      var $this = $(this);
3356      if (!$this.hasClass("mCustomScrollbar") && !$(this).hasClass("destroyed") && !$(this).hasClass("mobile-scroll")) {
3357        $this.data(
3358          "scrollTimer",
3359          setTimeout(function () {
3360            $this.mCustomScrollbar(config);
3361            $this.off("touchstart touchmove touchend mousewheel mouseenter mouseleave");
3362          }, 200)
3363        );
3364      }
3365    },
3366    function (e) {
3367      clearTimeout($(this).data("scrollTimer"));
3368    }
3369  );
3370
3371  $(this).on("touchstart touchmove", function (e) {
3372    var $this = $(this);
3373    if (!$this.hasClass("mCustomScrollbar") && !$(this).hasClass("destroyed") && !$(this).hasClass("mobile-scroll")) {
3374      $this.mCustomScrollbar(config);
3375    }
3376
3377    var $scrollContainer = $this.find(">.mCustomScrollBox>.mCSB_container");
3378    if ($scrollContainer.length) {
3379      var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
3380
3381      var newTouch = new Touch({
3382        identifier: 42,
3383        target: $scrollContainer[0],
3384        clientX: touch.clientX,
3385        clientY: touch.clientY,
3386        screenX: touch.screenX,
3387        screenY: touch.screenY,
3388        pageX: touch.pageX,
3389        pageY: touch.pageY,
3390        radiusX: 1,
3391        radiusY: 1,
3392      });
3393
3394      var newEvent = new TouchEvent(e.type, {
3395        cancelable: true,
3396        bubbles: false,
3397        composed: true,
3398        touches: [newTouch],
3399        targetTouches: [newTouch],
3400        changedTouches: [newTouch],
3401      });
3402
3403      $scrollContainer[0].dispatchEvent(newEvent);
3404    }
3405  });
3406
3407  $(this).on("touchend", function (e) {
3408    $(this).off("touchstart touchmove touchend mousewheel mouseenter mouseleave");
3409  });
3410
3411  if ($.event.special.mousewheel) {
3412    $(this).on("mousewheel", function (e) {
3413      var $this = $(this);
3414      if (!$this.hasClass("mCustomScrollbar") && !$(this).hasClass("destroyed") && !$(this).hasClass("mobile-scroll")) {
3415        $this.mCustomScrollbar(config);
3416        $this.off("touchstart touchmove touchend mousewheel mouseenter mouseleave");
3417      }
3418    });
3419  }
3420};
3421
3422InitScrollBar = function (el, initOptions) {
3423  var block;
3424  if (typeof el === "undefined") {
3425    block = $(".srollbar-custom:not(.mobile-scroll):not(.scroll-init)");
3426  } else {
3427    block = el.filter(":not(.scroll-init)");
3428  }
3429
3430  if (block.length) {
3431    block.addClass("scroll-init");
3432
3433    var options,
3434      defaults = {
3435        mouseWheel: {
3436          scrollAmount: 150,
3437          preventDefault: true,
3438        },
3439      };
3440    var config = $.extend({}, defaults, options, block.data("plugin-options"), initOptions);
3441
3442    config.callbacks = {
3443      onScroll: function () {
3444        if ($(this).find(".mCSB_buttonLeft").hasClass("disabled"))
3445          $(this).find(".mCSB_buttonLeft").removeClass("disabled");
3446        if ($(this).find(".mCSB_buttonRight").hasClass("disabled"))
3447          $(this).find(".mCSB_buttonRight").removeClass("disabled");
3448      },
3449      onTotalScrollBack: function () {
3450        $(this).find(".mCSB_buttonLeft").addClass("disabled");
3451      },
3452      onTotalScroll: function () {
3453        $(this).find(".mCSB_buttonRight").addClass("disabled");
3454      },
3455      onInit: function () {
3456        $(this).find(".mCSB_buttonLeft").addClass("disabled");
3457      },
3458    };
3459
3460    block.filter(":not(.scroll-deferred)").mCustomScrollbar(config);
3461    block.filter(".scroll-deferred").mCustomScrollbarDeferred(config);
3462  }
3463};
3464
3465InitCustomScrollBar = function (el) {
3466  var block;
3467  if (typeof el === "undefined") {
3468    block = $(".scrollbar:not(.mobile-scroll):not(.scroll-init)");
3469  } else {
3470    block = el.filter(":not(.scroll-init)");
3471  }
3472
3473  if (block.length) {
3474    block.addClass("scroll-init");
3475
3476    var options,
3477      defaults = {
3478        effect: "fadeIn",
3479        effectTime: 300,
3480        threshold: 0,
3481        // threshold: 30
3482      };
3483
3484    var config = $.extend({}, defaults, options, block.data("plugin-options"));
3485
3486    block.filter(":not(.scroll-deferred)").mCustomScrollbar(config);
3487    block.filter(".scroll-deferred").mCustomScrollbarDeferred(config);
3488  }
3489};
3490
3491InitFancyBox = function () {
3492  if (typeof $.fn.fancybox !== "function") {
3493    return;
3494  }
3495
3496  if (!$(".fancy").length) {
3497    return;
3498  }
3499  $(".fancy").fancybox({
3500    padding: [40, 40, 64, 40],
3501    openEffect: "fade",
3502    closeEffect: "fade",
3503    nextEffect: "fade",
3504    prevEffect: "fade",
3505    opacity: true,
3506    tpl: {
3507      closeBtn:
3508        '<span title="' +
3509        BX.message("FANCY_CLOSE") +
3510        '" 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>',
3511      next:
3512        '<a title="' +
3513        BX.message("FANCY_NEXT") +
3514        '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
3515      prev:
3516        '<a title="' +
3517        BX.message("FANCY_PREV") +
3518        '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
3519    },
3520    touch: "enabled",
3521    buttons: [
3522      // "zoom",
3523      //"share",
3524      // "slideShow",
3525      //"fullScreen",
3526      //"download",
3527      // "thumbs",
3528      "close",
3529    ],
3530    backFocus: false,
3531    beforeShow: function (event) {
3532      if (!$(".cd-modal-bg").hasClass("is-visible")) {
3533        BX.loadScript(arAsproOptions["SITE_TEMPLATE_PATH"] + "/js/aspro_animate_open_fancy.js", function () {
3534          var scaleValue = retrieveScale($(".cd-modal-bg"));
3535
3536          $(".cd-modal-bg")
3537            .show()
3538            .addClass("is-visible")
3539            .one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function () {
3540              animateLayer($(".cd-modal-bg"), scaleValue, true);
3541            });
3542        });
3543      }
3544      var video_block = $(".company-block source.video-block");
3545      if (video_block.length) {
3546        if (video_block.attr("src") == "#") {
3547          var video_block_wrapper = video_block.closest("video");
3548          var video_block_clone = video_block_wrapper.clone();
3549
3550          video_block_clone.find("source").attr("src", video_block_clone.find("source").data("src"));
3551          video_block.attr("src", video_block.data("src"));
3552          video_block_clone.insertAfter(video_block_wrapper);
3553          video_block_clone.siblings("video").remove();
3554        }
3555      }
3556      var video_block_frame = $(".company-block #company_video_iframe");
3557      if (video_block_frame.length) {
3558        var data_src_iframe = video_block_frame.attr("data-src");
3559        video_block_frame.attr("src", data_src_iframe);
3560        video_block_frame.attr("allow", "autoplay");
3561      }
3562      // $('.detail .galery .overlay_form').hide();
3563    },
3564    afterShow: function () {
3565      if ($(".fancybox-overlay").css("opacity") == 0) {
3566        setTimeout(function () {
3567          $(".fancybox-overlay").css("opacity", 1);
3568          $("html").addClass("overflow_html");
3569        }, 200);
3570      }
3571
3572      $(".fancybox-nav").css("opacity", 0);
3573      setTimeout(function () {
3574        $(".fancybox-nav").css("opacity", 1);
3575      }, 150);
3576      if ($(".fancybox-inner #company_video").length) {
3577        // var fancyHeight = $('.fancybox-wrap').height();
3578        // $('.fancybox-inner').height(fancyHeight);
3579        setTimeout(function () {
3580          $(".fancybox-wrap video").resize();
3581          setTimeout(function () {
3582            $(".fancybox-wrap").addClass("show_video");
3583            document.getElementById("company_video").currentTime = 0;
3584            document.getElementById("company_video").play();
3585          }, 300);
3586        }, 150);
3587      } else if ($(".fancybox-wrap iframe").length) {
3588        $(".fancybox-inner").height("100%");
3589      }
3590    },
3591    beforeClose: function () {
3592      BX.loadScript(arAsproOptions["SITE_TEMPLATE_PATH"] + "/js/aspro_animate_open_fancy.js", function () {
3593        closeModal();
3594        $(".fancybox-overlay").fadeOut();
3595        if ($("#company_video").length) {
3596          document.getElementById("company_video").currentTime = 0;
3597        }
3598        $("html").removeClass("overflow_html");
3599        var video_block_frame = $(".company-block .video-block");
3600        if (video_block_frame.length) {
3601          $("#company_video_iframe").attr("src", "");
3602        }
3603      });
3604    },
3605    onClosed: function () {
3606      if ($(".fancybox-wrap #company_video").length) {
3607        document.getElementById("company_video").pause();
3608      }
3609    },
3610  });
3611};
3612
3613InitFancyBoxVideo = function () {
3614  if (typeof $.fn.fancybox !== "function") {
3615    return;
3616  }
3617
3618  if (!$(".video_link").length) {
3619    return;
3620  }
3621  $(".video_link").fancybox({
3622    type: "iframe",
3623    maxWidth: 800,
3624    maxHeight: 600,
3625    fitToView: false,
3626    width: "70%",
3627    height: "70%",
3628    autoSize: false,
3629    closeClick: false,
3630    opacity: true,
3631    tpl: {
3632      closeBtn:
3633        '<span title="' +
3634        BX.message("FANCY_CLOSE") +
3635        '" 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>',
3636      next:
3637        '<a title="' +
3638        BX.message("FANCY_NEXT") +
3639        '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
3640      prev:
3641        '<a title="' +
3642        BX.message("FANCY_PREV") +
3643        '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
3644    },
3645    beforeShow: function (event) {
3646      if (!$(".cd-modal-bg").hasClass("is-visible")) {
3647        BX.loadScript(arAsproOptions["SITE_TEMPLATE_PATH"] + "/js/aspro_animate_open_fancy.js", function () {
3648          var scaleValue = retrieveScale($(".cd-modal-bg"));
3649
3650          $(".cd-modal-bg")
3651            .show()
3652            .addClass("is-visible")
3653            .one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend", function () {
3654              animateLayer($(".cd-modal-bg"), scaleValue, true);
3655            });
3656        });
3657      }
3658    },
3659    afterShow: function () {
3660      if ($(".fancybox-overlay").css("opacity") == 0) {
3661        setTimeout(function () {
3662          $(".fancybox-overlay").css("opacity", 1);
3663          $("html").addClass("overflow_html");
3664        }, 200);
3665      }
3666
3667      $(".fancybox-nav").css("opacity", 0);
3668      setTimeout(function () {
3669        $(".fancybox-nav").css("opacity", 1);
3670      }, 150);
3671      if ($(".fancybox-wrap iframe").length) {
3672        $(".fancybox-inner").height("100%");
3673      }
3674    },
3675    beforeClose: function () {
3676      BX.loadScript(arAsproOptions["SITE_TEMPLATE_PATH"] + "/js/aspro_animate_open_fancy.js", function () {
3677        closeModal();
3678        $(".fancybox-overlay").fadeOut();
3679        $("html").removeClass("overflow_html");
3680      });
3681    },
3682  });
3683};
3684
3685InitStickySideBar = function (el, container_el) {
3686  var block = ".sticky-sidebar",
3687    container_catalog = ".wraps .wrapper_inner .container_inner .main-catalog-wrapper",
3688    container = ".wraps .wrapper_inner .container_inner";
3689  if (typeof el !== "undefined") block = el;
3690
3691  if ($(container_catalog).length) container = container_catalog;
3692
3693  if (typeof container_el !== "undefined") container = container_el;
3694
3695  if ($(block).length && arAsproOptions["THEME"]["STICKY_SIDEBAR"] != "N") {
3696    if (typeof window["stickySidebar"] !== "undefined") {
3697      window["stickySidebar"].destroy();
3698    }
3699
3700    window["stickySidebar"] = new StickySidebar(block, {
3701      topSpacing: 60,
3702      bottomSpacing: 20,
3703      containerSelector: container,
3704      resizeSensor: true,
3705      innerWrapperSelector: ".sticky-sidebar__inner",
3706    });
3707
3708    if ($(".sticky-sidebar .sticky-sidebar__inner .banner img").length) {
3709      $(".sticky-sidebar .sticky-sidebar__inner .banner img").load(function () {
3710        if (typeof window["stickySidebar"] !== "undefined") {
3711          window["stickySidebar"].updateSticky();
3712        }
3713      });
3714    }
3715  }
3716};
3717
3718InitOwlSlider = function () {
3719  if (typeof $.fn.owlCarousel !== "function") {
3720    return;
3721  }
3722  $(".owl-carousel:not(.owl-loaded):not(.appear-block)").each(function () {
3723    var slider = $(this);
3724    var options;
3725    var svg =
3726      '<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>';
3727    var defaults = {
3728      navText: [
3729        '<i class="svg left colored_theme_hover_text">' + svg + "</i>",
3730        '<i class="svg right colored_theme_hover_text">' + svg + "</i>",
3731      ],
3732    };
3733    var config = $.extend({}, defaults, options, slider.data("plugin-options"));
3734
3735    slider.on("initialized.owl.carousel", function (event) {
3736      var eventdata = { slider: event };
3737      BX.onCustomEvent("onSliderInitialized", [eventdata]);
3738
3739      $(event.target).removeClass("loading-state");
3740      $(event.target).find(".owl-item:first").addClass("current");
3741
3742      if ($(event.target).hasClass("catalog_block")) {
3743        if (typeof sliceItemBlockSlide === "function") {
3744          sliceItemBlockSlide();
3745        }
3746      }
3747
3748      if (typeof window["stickySidebar"] !== "undefined") {
3749        window["stickySidebar"].updateSticky();
3750      }
3751    });
3752    slider.owlCarousel(config);
3753
3754    slider.on("change.owl.carousel", function (event) {
3755      var eventdata = { slider: event };
3756      BX.onCustomEvent("onSlideChange", [eventdata]);
3757    });
3758    slider.on("resized.owl.carousel", function (event) {
3759      if (typeof sliceItemBlockSlide === "function") {
3760        sliceItemBlockSlide({ resize: false });
3761      }
3762    });
3763
3764    slider.on("changed.owl.carousel", function (event) {
3765      var eventdata = { slider: event };
3766      BX.onCustomEvent("onSlideChanged", [eventdata]);
3767
3768      if ($(event.target).data("pluginOptions")) {
3769        if ("index" in $(event.target).data("pluginOptions")) {
3770          if ($(".switch-item-block").length) {
3771            $(".switch-item-block__count-wrapper--big .switch-item-block__count-value").text(
3772              event.item.index + 1 + "/" + event.item.count
3773            );
3774          }
3775        }
3776
3777        if ("relatedTo" in $(event.target).data("pluginOptions")) {
3778          var relatedClass = $(event.target).data("pluginOptions").relatedTo,
3779            relatedBlock = $(relatedClass);
3780
3781          if (relatedBlock.length && $(event.target).data("owl.carousel")) {
3782            if (!$(event.target).data("owl.carousel").loop) {
3783              var current = event.item.index;
3784            } else {
3785              var count = event.item.count - 1;
3786              var current = Math.round(event.item.index - event.item.count / 2 - 0.5);
3787
3788              if (current < 0) current = count;
3789
3790              if (current > count) current = 0;
3791            }
3792
3793            relatedBlock.find(".owl-item").removeClass("current").eq(current).addClass("current");
3794
3795            var onscreen = relatedBlock.find(".owl-item.active").length - 1;
3796            var start = relatedBlock.find(".owl-item.active").first().index();
3797            var end = relatedBlock.find(".owl-item.active").last().index();
3798
3799            if (current > end) relatedBlock.data("owl.carousel").to(current, 100, true);
3800
3801            if (current < start) relatedBlock.data("owl.carousel").to(current - onscreen, 100, true);
3802            // $(".owl-slider-"+id).trigger('to.owl.carousel', [itemCarousel])
3803          }
3804        }
3805      }
3806    });
3807
3808    slider.on("translated.owl.carousel", function (event) {});
3809
3810    if ("clickTo" in config) {
3811      var relatedClass = config.clickTo,
3812        magnifier = "magnifier" in config;
3813
3814      slider.on("click", ".owl-item", function (e) {
3815        e.preventDefault();
3816        var _this = $(this),
3817          number = _this.index();
3818
3819        if (magnifier) {
3820          const $parent = $(relatedClass).closest(".product-container");
3821          if ($parent.find(".zoom_picture").length) {
3822            const $zoomImg = $parent.find(".zoom_picture");
3823            $zoomImg.attr("data-large", _this.find(".product-detail-gallery__item").data("big"));
3824            $zoomImg.attr("xoriginal", _this.find(".product-detail-gallery__item").data("big"));
3825            $zoomImg.attr("src", _this.find(".product-detail-gallery__item img").attr("src"));
3826            $parent
3827              .find(".product-detail-gallery__link")
3828              .attr("href", _this.find(".product-detail-gallery__item img").attr("src"));
3829          }
3830          _this.siblings("").removeClass("current");
3831          _this.addClass("current");
3832        } else {
3833          $(relatedClass).data("owl.carousel").to(number, 300, true);
3834        }
3835      });
3836    }
3837  });
3838};
3839
3840InitFlexSlider = function () {
3841  if (typeof $.fn.flexslider !== "function") {
3842    return;
3843  }
3844  $(".flexslider:not(.thmb):not(.flexslider-init):not(.appear-block)").each(function () {
3845    var slider = $(this);
3846    var options;
3847    var defaults = {
3848      animationLoop: false,
3849      controlNav: false,
3850      keyboard: false,
3851      pauseOnAction: false,
3852      pauseInvisible: false,
3853      directionNav: true,
3854      useCSS: false,
3855      animation: "slide",
3856    };
3857    var config = $.extend({}, defaults, options, slider.data("plugin-options"));
3858    if (!slider.parent().hasClass("top_slider_wrapp") && slider.is(":visible")) {
3859      if (typeof config.counts != "undefined" && config.direction !== "vertical") {
3860        config.maxItems = getGridSize(config.counts, slider);
3861        config.minItems = getGridSize(config.counts, slider);
3862        config.itemWidth = 200;
3863      }
3864      if (typeof config.move == "undefined") config.move = 1;
3865
3866      config.start = function (slider) {
3867        var eventdata = { slider: slider };
3868        BX.onCustomEvent("onSlideInit", [eventdata]);
3869      };
3870
3871      config.after = function (slider) {
3872        var eventdata = { slider: slider };
3873        BX.onCustomEvent("onSlideComplete", [eventdata]);
3874      };
3875
3876      config.end = function (slider) {
3877        var eventdata = { slider: slider };
3878        BX.onCustomEvent("onSlideEnd", [eventdata]);
3879      };
3880      slider.flexslider(config).addClass("flexslider-init");
3881      if (config.controlNav) slider.addClass("flexslider-control-nav");
3882      if (config.directionNav) slider.addClass("flexslider-direction-nav");
3883    }
3884  });
3885};
3886
3887InitFlexSliderByClass = function ($class) {
3888  if ($class.hasClass("flexslider-init")) return;
3889  var slider = $class;
3890  var options;
3891  var defaults = {
3892    animationLoop: false,
3893    controlNav: false,
3894    keyboard: false,
3895    pauseOnAction: false,
3896    pauseInvisible: false,
3897    directionNav: true,
3898    useCSS: false,
3899    animation: "slide",
3900  };
3901  var config = $.extend({}, defaults, options, slider.data("plugin-options"));
3902  if (!slider.parent().hasClass("top_slider_wrapp") && slider.is(":visible")) {
3903    if (typeof config.counts != "undefined" && config.direction !== "vertical") {
3904      config.maxItems = getGridSize(config.counts, slider);
3905      config.minItems = getGridSize(config.counts, slider);
3906      config.itemWidth = 200;
3907    }
3908    if (typeof config.move == "undefined") config.move = 1;
3909
3910    config.start = function (slider) {
3911      var eventdata = { slider: slider };
3912      BX.onCustomEvent("onSlideInit", [eventdata]);
3913    };
3914
3915    config.after = function (slider) {
3916      var eventdata = { slider: slider };
3917      BX.onCustomEvent("onSlideComplete", [eventdata]);
3918    };
3919
3920    config.end = function (slider) {
3921      var eventdata = { slider: slider };
3922      BX.onCustomEvent("onSlideEnd", [eventdata]);
3923    };
3924
3925    slider.flexslider(config).addClass("flexslider-init");
3926    if (config.controlNav) slider.addClass("flexslider-control-nav");
3927    if (config.directionNav) slider.addClass("flexslider-direction-nav");
3928  }
3929};
3930
3931inIframe = function () {
3932  try {
3933    return window.self !== window.top;
3934  } catch (e) {
3935    return true;
3936  }
3937};
3938
3939InitZoomPict = function (el) {
3940  var block = $(".zoom_picture");
3941  if (typeof el !== "undefined") block = el;
3942  if (block.length) {
3943    var zoomer = block,
3944      options,
3945      defaults = {
3946        // zoomWidth: 600,
3947        // zoomHeight: 600,
3948        // adaptive: false,
3949        title: true,
3950        scroll: false,
3951        Xoffset: 15,
3952        tint: "#333",
3953        defaultScale: -1,
3954      };
3955    var config = $.extend({}, defaults, options, zoomer.data("plugin-options"));
3956    zoomer.xzoom(config);
3957
3958    block.on("mouseleave", function () {
3959      block.data("xzoom").movezoom(event);
3960    });
3961  }
3962};
3963
3964var arBasketAsproCounters = (arStatusBasketAspro = arBasketPrices = {});
3965SetActualBasketFlyCounters = function (sync) {
3966  if (arBasketAsproCounters.DEFAULT == true) {
3967    $.ajax({
3968      url: arAsproOptions["SITE_DIR"] + "ajax/basket_fly.php",
3969      type: "post",
3970      success: function (html) {
3971        $("#basket_line .basket_fly").removeClass("loaded").html(html);
3972
3973        if (typeof sync !== "undefined") {
3974          $.ajax({
3975            type: "GET",
3976            url: arAsproOptions["SITE_DIR"] + "ajax/actualBasket.php",
3977            // data:data,
3978            success: function (data) {
3979              if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
3980              $(".js_ajax").html(data);
3981
3982              setBasketStatusBtn(true);
3983            },
3984          });
3985        }
3986      },
3987    });
3988  } else {
3989    // insert currency &#8381; by this hack!: $('<div/>').html(arBasketAsproCounters.READY.TITLE).text()
3990    $(".basket_fly .opener .basket_count .count")
3991      .attr("class", "count" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty_items"))
3992      .find(".items span")
3993      .text(arBasketAsproCounters.READY.COUNT);
3994    $(".basket_fly .opener .basket_count + a").attr("href", arBasketAsproCounters["READY"]["HREF"]);
3995    $(".basket_fly .opener .basket_count")
3996      .attr("title", $("<div/>").html(arBasketAsproCounters.READY.TITLE).text())
3997      .attr(
3998        "class",
3999        "colored_theme_hover_text basket_count small clicked" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty")
4000      );
4001
4002    $(".basket_fly .opener .wish_count .count")
4003      .attr("class", "count" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty_items"))
4004      .find(".items span")
4005      .text(arBasketAsproCounters.DELAY.COUNT);
4006    $(".basket_fly .opener .wish_count + a").attr("href", arBasketAsproCounters.DELAY.HREF);
4007    $(".basket_fly .opener .wish_count")
4008      .attr("title", $("<div/>").html(arBasketAsproCounters.DELAY.TITLE).text())
4009      .attr(
4010        "class",
4011        "colored_theme_hover_text wish_count small clicked" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty")
4012      );
4013
4014    $(".basket_fly .opener .compare_count .wraps_icon_block").attr(
4015      "class",
4016      "wraps_icon_block compare" + (arBasketAsproCounters.COMPARE.COUNT > 0 ? "" : " empty_block")
4017    );
4018    $(".basket_fly .opener .compare_count .count")
4019      .attr("class", "count" + (arBasketAsproCounters.COMPARE.COUNT > 0 ? "" : " empty_items"))
4020      .find(".items span")
4021      .text(arBasketAsproCounters.COMPARE.COUNT);
4022    $(".basket_fly .opener .compare_count + a").attr("href", arBasketAsproCounters.COMPARE.HREF);
4023
4024    updateBottomIconsPanel(arBasketAsproCounters);
4025  }
4026};
4027
4028CheckHeaderFixed = function () {
4029  var header = $("header, body.simple_basket_mode #header").first(),
4030    header_fixed = $("#headerfixed, body.simple_basket_mode #header"),
4031    header_simple = $("body.simple_basket_mode #header");
4032
4033  if (header_fixed.length) {
4034    if (header.length) {
4035      var isHeaderFixed = false,
4036        isTabsFixed = false,
4037        headerCanFix = true,
4038        headerFixedHeight = header_fixed.actual("outerHeight"),
4039        headerNormalHeight = header.actual("outerHeight"),
4040        headerDiffHeight = headerNormalHeight - headerFixedHeight,
4041        mobileBtnMenu = $(".btn.btn-responsive-nav"),
4042        headerTop = $("#panel:visible").actual("outerHeight"),
4043        topBlock = $(".TOP_HEADER").first(),
4044        $headerFixedNlo = header_fixed.find("[data-nlo]"),
4045        isNloLoaded = !$headerFixedNlo.length,
4046        OnHeaderFixedScrollHandler;
4047
4048      if (headerDiffHeight <= 0) headerDiffHeight = 0;
4049
4050      if (topBlock.length) headerTop += topBlock.actual("outerHeight");
4051
4052      $(window).scroll(
4053        (OnHeaderFixedScrollHandler = function () {
4054          var tabs_fixed = $(".product-item-detail-tabs-container-fixed");
4055
4056          if (window.matchMedia("(min-width:992px)").matches) {
4057            var scrollTop = $(window).scrollTop(),
4058              current_is = $(".search-wrapper .search-input:visible"),
4059              tabs = $(".ordered-block .nav.nav-tabs"),
4060              headerCanFix = !mobileBtnMenu.is(":visible"); /* && !$('.dropdown-menu:visible').length*/
4061
4062            if (!isHeaderFixed) {
4063              if (headerCanFix && scrollTop > headerNormalHeight + headerTop) {
4064                if (!isNloLoaded) {
4065                  if (!$headerFixedNlo.hasClass("nlo-loadings")) {
4066                    $headerFixedNlo.addClass("nlo-loadings");
4067                    setTimeout(function () {
4068                      $.ajax({
4069                        data: { nlo: $headerFixedNlo.attr("data-nlo") },
4070                        success: function (response) {
4071                          // stop ya metrika webvisor DOM indexer
4072                          pauseYmObserver();
4073
4074                          isNloLoaded = true;
4075                          $headerFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
4076                          $headerFixedNlo.remove();
4077
4078                          InitMenuNavigationAim();
4079                          OnHeaderFixedScrollHandler();
4080
4081                          // init custom scroll
4082                          /*$("#headerfixed .mega-menu table td.wide_menu .customScrollbar").mCustomScrollbarDeferred({
4083                            mouseWheel: {
4084                              scrollAmount: 150,
4085                              preventDefault: true,
4086                            },
4087                          });*/
4088
4089                          // resume ya metrika webvisor
4090                          // (300ms transition) + (100ms scroll handler)
4091                          setTimeout(resumeYmObserver, 400);
4092                        },
4093                        error: function () {
4094                          $headerFixedNlo.removeClass("nlo-loadings");
4095                        },
4096                      });
4097                    }, 300);
4098                  }
4099                } else {
4100                  isHeaderFixed = true;
4101                  if (header_simple.length) {
4102                    headerSimpleHeight = header_simple.actual("outerHeight");
4103                    header_simple.closest(".header_wrap").css({ "margin-top": headerSimpleHeight });
4104                  }
4105                  header_fixed.addClass("fixed");
4106
4107                  $("nav.mega-menu.sliced.initied").removeClass("initied");
4108                  CheckTopMenuDotted();
4109                }
4110              }
4111            }
4112            if (isHeaderFixed || !headerCanFix) {
4113              if (!headerCanFix || scrollTop <= headerDiffHeight + headerTop) {
4114                isHeaderFixed = false;
4115                header_fixed.removeClass("fixed");
4116                if (header_simple.length) {
4117                  header_simple.closest(".header_wrap").css({ "margin-top": "" });
4118                }
4119              }
4120            }
4121
4122            //fixed tabs
4123            if (tabs_fixed.length && tabs.length) {
4124              var tabs_offset = $(".ordered-block .nav.nav-tabs").offset();
4125              if (scrollTop + headerFixedHeight > tabs_offset.top) {
4126                tabs_fixed.css({ top: header_fixed.actual("outerHeight") + 1 });
4127                tabs_fixed.addClass("fixed");
4128
4129                header_fixed.addClass("tabs-fixed");
4130              } else if (tabs_fixed.hasClass("fixed")) {
4131                tabs_fixed.removeAttr("style");
4132                tabs_fixed.removeClass("fixed");
4133
4134                header_fixed.removeClass("tabs-fixed");
4135              }
4136            }
4137          }
4138        })
4139      );
4140    }
4141  }
4142
4143  //mobile fixed
4144  var headerSimple = $("body.simple_basket_mode .wrapper1.mfixed_Y #header");
4145  var mfixed = headerSimple.length ? headerSimple : $(".wrapper1.mfixed_Y #mobileheader");
4146  if (mfixed.length && isMobile) {
4147    var isMHeaderFixed = false,
4148      mheaderCanFix = true,
4149      mheaderFixedHeight = mfixed.actual("outerHeight"),
4150      // mheaderFixedHeight = 0,
4151      mheaderTop = $("#panel:visible").actual("outerHeight"),
4152      mHeaderScrollTop = $(".wrapper1").hasClass("mfixed_view_scroll_top");
4153    $(window).scroll(function () {
4154      var scrollTop = $(window).scrollTop();
4155      if (window.matchMedia("(max-width:991px)").matches) {
4156        if (mHeaderScrollTop) {
4157          if (scrollTop > startScroll) {
4158            if (!$("#mobilePhone.show").length) {
4159              mfixed.removeClass("fixed");
4160              if (headerSimple.length) {
4161                headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4162              }
4163            }
4164          } else if (scrollTop > mheaderFixedHeight + mheaderTop) {
4165            mfixed.addClass("fixed");
4166            if (headerSimple.length) {
4167              headerSimple.closest(".header_wrap").css({ "margin-top": mheaderFixedHeight });
4168            }
4169          } else if (scrollTop <= mheaderFixedHeight + mheaderTop) {
4170            mfixed.removeClass("fixed");
4171            if (headerSimple.length) {
4172              headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4173            }
4174          }
4175          startScroll = scrollTop;
4176        } else {
4177          if (!isMHeaderFixed) {
4178            if (scrollTop > mheaderFixedHeight + mheaderTop) {
4179              isMHeaderFixed = true;
4180              mfixed.addClass("fixed");
4181              if (headerSimple.length) {
4182                headerSimple.closest(".header_wrap").css({ "margin-top": mheaderFixedHeight });
4183              }
4184            }
4185          } else if (isMHeaderFixed) {
4186            if (scrollTop <= mheaderFixedHeight + mheaderTop) {
4187              isMHeaderFixed = false;
4188              mfixed.removeClass("fixed");
4189              if (headerSimple.length) {
4190                headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4191              }
4192            }
4193          }
4194        }
4195      } else {
4196        mfixed.removeClass("fixed");
4197        if (headerSimple.length) {
4198          headerSimple.closest(".header_wrap").css({ "margin-top": "" });
4199        }
4200      }
4201    });
4202  }
4203};
4204
4205CheckHeaderFixedMenu = function () {
4206  if (
4207    arAsproOptions["THEME"] &&
4208    arAsproOptions["THEME"]["HEADER_FIXED"] == 2 &&
4209    $("#headerfixed .js-nav").length &&
4210    window.matchMedia("(min-width: 992px)").matches
4211  ) {
4212    $("#headerfixed .js-nav").css("width", "0");
4213    var all_width = 0,
4214      cont_width = $("#headerfixed .maxwidth-theme").actual("width"),
4215      padding_menu =
4216        $("#headerfixed .logo-row.v2 .menu-block").actual("outerWidth") -
4217        $("#headerfixed .logo-row.v2 .menu-block").actual("width");
4218    $("#headerfixed .logo-row.v2 > .inner-table-block").each(function () {
4219      if (!$(this).hasClass("menu-block")) all_width += $(this).actual("outerWidth");
4220    });
4221    $("#headerfixed .js-nav").width(cont_width - all_width - padding_menu);
4222  }
4223};
4224
4225CheckSearchWidth = function () {
4226  if ($(".logo_and_menu-row .search_wrap").length) {
4227    var searchPosition = $(".logo_and_menu-row .search_wrap").position().left,
4228      maxWidth = $(".logo_and_menu-row .maxwidth-theme").width() - 2;
4229    width = 0;
4230    if ($(".logo_and_menu-row .subtop .search_wrap").length) {
4231      maxWidth = $(".logo_and_menu-row .subtop").width() - 2;
4232      $(".logo_and_menu-row .subtop > .row >div >div")
4233        .each(function () {
4234          if (!$(this).hasClass("search_wrap")) {
4235            var elementWidth = $(this).outerWidth();
4236            if (!$(this).is(":visible") || !$(this).height()) elementWidth = 0;
4237            width = width ? width - elementWidth : maxWidth - elementWidth;
4238          }
4239        })
4240        .promise()
4241        .done(function () {
4242          if ($(".logo_and_menu-row .search_wrap.wide_search").length)
4243            $(".logo_and_menu-row .search_wrap .search-block").outerWidth(width);
4244          else $(".logo_and_menu-row .search_wrap").outerWidth(width);
4245          $(".logo_and_menu-row .search_wrap").css({ opacity: 1, visibility: "visible" });
4246        });
4247    } else {
4248      if ($(".logo_and_menu-row .subbottom .search_wrap").length) {
4249        maxWidth = $(".logo_and_menu-row .subbottom").width() - 2;
4250        $(".logo_and_menu-row .subbottom >div")
4251          .each(function () {
4252            if (!$(this).hasClass("search_wrap")) {
4253              var elementWidth = $(this).outerWidth();
4254              if (!$(this).is(":visible") || !$(this).height()) elementWidth = 0;
4255              width = width ? width - elementWidth : maxWidth - elementWidth;
4256            }
4257          })
4258          .promise()
4259          .done(function () {
4260            if ($(".logo_and_menu-row .search_wrap.wide_search").length)
4261              $(".logo_and_menu-row .search_wrap .search-block").outerWidth(width);
4262            else $(".logo_and_menu-row .search_wrap").outerWidth(width);
4263            $(".logo_and_menu-row .search_wrap").css({ opacity: 1, visibility: "visible" });
4264          });
4265      } else {
4266        $(".logo_and_menu-row .maxwidth-theme > .row >div >div")
4267          .each(function () {
4268            if (!$(this).hasClass("search_wrap")) {
4269              var elementWidth = $(this).outerWidth();
4270              if (!$(this).is(":visible") || !$(this).height()) elementWidth = 0;
4271              width = width ? width - elementWidth : maxWidth - elementWidth;
4272            }
4273          })
4274          .promise()
4275          .done(function () {
4276            if ($(".logo_and_menu-row .search_wrap.wide_search").length)
4277              $(".logo_and_menu-row .search_wrap .search-block").outerWidth(width);
4278            else $(".logo_and_menu-row .search_wrap").outerWidth(width);
4279            $(".logo_and_menu-row .search_wrap").css({ opacity: 1, visibility: "visible" });
4280          });
4281      }
4282    }
4283  }
4284};
4285
4286lazyLoadPagenBlock = function () {
4287  setTimeout(function () {
4288    if ($(".with-load-block .ajax_load_btn:not(.appear-block)").length) {
4289      $(".with-load-block .ajax_load_btn:not(.appear-block)").appear(
4290        function () {
4291          var $this = $(this);
4292          $this.addClass("appear-block").trigger("click");
4293        },
4294        { accX: 0, accY: 200 }
4295      );
4296    }
4297  }, 200);
4298};
4299
4300scrollPreviewBlock = function () {
4301  if (typeof $.cookie("scroll_block") != "undefined" && $.cookie("scroll_block")) {
4302    var scroll_block = $($.cookie("scroll_block"));
4303    if (scroll_block.length) {
4304      $("body, html").animate({ scrollTop: scroll_block.offset().top }, 500);
4305    }
4306    $.cookie("scroll_block", null);
4307  }
4308};
4309
4310scrollToBlock = function (block) {
4311  if ($(block).length) {
4312    var offset = $(block).offset().top;
4313    if (typeof $(block).data("toggle") != "undefined") $(block).click();
4314
4315    if (typeof $(block).data("offset") != "undefined") offset += $(block).data("offset");
4316
4317    $("body, html").animate({ scrollTop: offset }, 500);
4318  }
4319};
4320
4321checkMenuLines = function () {
4322  if ($(".front_page .menu-row .left_border").length || $(".front_page .menu-row .right_border").length) {
4323    var positionMenu = $(".centered .menu-row .mega-menu table").length
4324        ? $(".centered .menu-row .mega-menu table").offset().left
4325        : 0,
4326      varFixLineWidth =
4327        $("body").hasClass("with_decorate") && window.matchMedia("(min-width: 1100px)").matches ? 126 : 7;
4328
4329    $(".menu-row .left_border, .menu-row .right_border").css("width", positionMenu - varFixLineWidth);
4330  }
4331};
4332
4333SetFixedAskBlock = function () {
4334  if ($(".ask_a_question_wrapper").length) {
4335    var offset = $(".ask_a_question_wrapper").offset(),
4336      footer_offset = 0,
4337      block = $(".ask_a_question_wrapper").find(".ask_a_question"),
4338      block_offset = BX.pos(block[0]),
4339      block_height = block_offset.bottom - block_offset.top,
4340      diff_top_scroll = $("#headerfixed").height() + 20;
4341
4342    if ($("footer").length) footer_offset = $("footer").offset().top;
4343
4344    if ($(".banner.CONTENT_BOTTOM").length) footer_offset = $(".banner.CONTENT_BOTTOM").offset().top;
4345
4346    /* removed for ISSUE NEXT-414
4347		if(block_height+130 > block.closest('.fixed_wrapper').height())
4348			block.addClass('nonfixed');
4349		else
4350			block.removeClass('nonfixed');
4351		*/
4352
4353    if (block_height + diff_top_scroll + documentScrollTopLast + 130 > footer_offset) {
4354      block.removeClass("fixed").css({ top: "auto", width: "auto", bottom: 0 });
4355      block.parent().css("position", "static");
4356      block.parent().parent().css("position", "static");
4357    } else {
4358      block.parent().removeAttr("style");
4359      block.parent().parent().removeAttr("style");
4360
4361      if (documentScrollTopLast + diff_top_scroll > offset.top) {
4362        var fixed_width = $(".fixed_block_fix").width();
4363        block.addClass("fixed").css({ top: diff_top_scroll, bottom: "auto" });
4364        if (fixed_width) block.css({ width: $(".fixed_block_fix").width() });
4365      } else block.removeClass("fixed").css({ top: 0, width: "auto" });
4366    }
4367  }
4368};
4369
4370MegaMenuFixed = function () {
4371  var animationTime = 150,
4372    $megaFixedNlo = $(".mega_fixed_menu").find("[data-nlo]");
4373
4374  $("header .burger, #headerfixed .burger").on("click", function () {
4375    if ($megaFixedNlo.length) {
4376      if (!$megaFixedNlo.hasClass("nlo-loadings")) {
4377        $megaFixedNlo.addClass("nlo-loadings");
4378        setTimeout(function () {
4379          $.ajax({
4380            data: { nlo: $megaFixedNlo.attr("data-nlo") },
4381            success: function (response) {
4382              $megaFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
4383              $megaFixedNlo.remove();
4384            },
4385            error: function () {
4386              $megaFixedNlo.removeClass("nlo-loadings");
4387            },
4388          });
4389        }, 300);
4390      }
4391    }
4392
4393    $(".mega_fixed_menu").fadeIn(animationTime);
4394    //$('.header_wrap').toggleClass('zindexed');
4395    /*$(".mega_fixed_menu").mCustomScrollbarDeferred({
4396      mouseWheel: {
4397        scrollAmount: 150,
4398        preventDefault: true,
4399      },
4400    });*/
4401  });
4402
4403  $(".mega_fixed_menu .svg.svg-close").on("click", function () {
4404    $(this).closest(".mega_fixed_menu").fadeOut(animationTime);
4405    //$('.header_wrap').toggleClass('zindexed');
4406  });
4407
4408  $(".mega_fixed_menu .dropdown-menu .arrow").on("click", function (e) {
4409    e.preventDefault();
4410    e.stopPropagation();
4411    $(this).closest(".dropdown-submenu").find(".dropdown-menu").slideToggle(animationTime);
4412    $(this).closest(".dropdown-submenu").addClass("opened");
4413  });
4414};
4415
4416CheckPopupTop = function () {
4417  // var popup = $('.jqmWindow.show:last');
4418  // if(!popup.length)
4419  // 	popup = $('.jqmWindow.show');
4420  // if(!popup.length)
4421  // 	popup = $('.jqm-init.show');
4422  // if(popup.length){
4423  // 	var documentScollTop = $(document).scrollTop();
4424  // 	var windowHeight = $(window).height();
4425  // 	var popupTop = parseInt(popup.css('top'));
4426  // 	var popupHeight = popup.height();
4427  // 	if(windowHeight >= popupHeight){
4428  // 		// center
4429  // 		popupTop = (windowHeight - popupHeight) / 2;
4430  // 	}
4431  // 	else{
4432  // 		if(documentScollTop > documentScrollTopLast){
4433  // 			// up
4434  // 			popupTop -= documentScollTop - documentScrollTopLast;
4435  // 		}
4436  // 		else if(documentScollTop < documentScrollTopLast){
4437  // 			// down
4438  // 			popupTop += documentScrollTopLast - documentScollTop;
4439  // 		}
4440  // 		if(popupTop + popupHeight < windowHeight){
4441  // 			// bottom
4442  // 			popupTop = windowHeight - popupHeight;
4443  // 		}
4444  // 		else if(popupTop > 0){
4445  // 			// top
4446  // 			popupTop = 0;
4447  // 		}
4448  // 	}
4449  // 	popup.css('top', popupTop + 'px');
4450  // }
4451};
4452
4453AjaxClickLink = function (e) {
4454  var _this = "",
4455    container = $(".js-load-wrapper"),
4456    container_inner = $(".js-load-wrapper").find(".ajax_load"),
4457    dopAction = "";
4458  url = "";
4459  if ("preventDefault" in e) {
4460    e.preventDefault();
4461    _this = $(e.target).hasClass("js-load-link") ? $(e.target) : $(e.target).closest(".js-load-link");
4462  } else {
4463    _this = $(e);
4464    dopAction = "Y";
4465  }
4466
4467  if (container.length) {
4468    var objUrl = parseUrlQuery(),
4469      obGetData = { ajax_get_filter: "Y", control_ajax: "Y" };
4470
4471    obGetData.bitrix_include_areas = "N";
4472
4473    if ("clear_cache" in objUrl) {
4474      if (objUrl.clear_cache == "Y") {
4475        obGetData.clear_cache = "Y";
4476      }
4477    }
4478
4479    if (container_inner.length) {
4480      container_inner.addClass("loading-state");
4481    } else {
4482      container.addClass("loading-state");
4483    }
4484
4485    if (_this.data("url")) {
4486      url = _this.data("url");
4487    }
4488
4489    if (_this.data("click_block") && $(_this.data("click_block")).length) {
4490      if ($(_this.data("click_block")).data("url")) {
4491        url = $(_this.data("click_block")).data("url");
4492      }
4493    }
4494
4495    if (dopAction) {
4496      BX.PopupWindowManager.getCurrentPopup().close();
4497      $(".bx_filter_select_popup ul li .sort_btn").removeClass("current");
4498      _this.addClass("current");
4499      _this.closest(".bx_filter_block").find(".bx_filter_select_text").text(_this.text());
4500    }
4501
4502    $(".bx_filter .bx_sort_filter .bx_filter_select_text").text(_this.text());
4503    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li span.current").removeClass("current");
4504    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li")
4505      .eq(_this.parent().index())
4506      .find("span")
4507      .addClass("current");
4508
4509    $.ajax({
4510      url: url,
4511      data: obGetData,
4512      success: function (html) {
4513        container.html(html);
4514
4515        if (container_inner.length) container_inner.removeClass("loading-state");
4516        else container.removeClass("loading-state");
4517
4518        initAnimateLoad();
4519
4520        var eventdata = { action: "jsLoadBlock" };
4521        BX.onCustomEvent("onCompleteAction", [eventdata, _this]);
4522
4523        initSelects(document);
4524        InitCustomScrollBar();
4525        InitScrollBar();
4526
4527        if (window.FilterHelper !== undefined) {
4528          FilterHelper.resultDiv = $("#filter-helper");
4529          FilterHelper.show();
4530        }
4531      },
4532    });
4533  }
4534};
4535
4536initCalculatePreview = function () {
4537  $(".calculate-delivery.with_preview:not(.inited)").each(function () {
4538    var $this = $(this);
4539    var $calculateSpan = $this.find("span[data-event=jqm]");
4540    var $preview = $this.find(".calculate-delivery-preview");
4541
4542    $this.addClass("inited");
4543    $this.appear(
4544      function () {
4545        if ($calculateSpan.length) {
4546          if (typeof window["calculate-delivery-preview-index"] === "undefined") {
4547            window["calculate-delivery-preview-index"] = 1001;
4548          } else {
4549            ++window["calculate-delivery-preview-index"];
4550          }
4551
4552          var productId = $calculateSpan.attr("data-param-product_id") * 1;
4553          var quantity = $calculateSpan.attr("data-param-quantity") * 1;
4554
4555          if (productId > 0) {
4556            var areaIndexSended = window["calculate-delivery-preview-index"];
4557            $calculateSpan.data({ areaIndex: areaIndexSended });
4558
4559            $.ajax({
4560              url: arAsproOptions["SITE_DIR"] + "ajax/delivery.php",
4561              type: "POST",
4562              data: {
4563                is_preview: "Y",
4564                index: areaIndexSended,
4565                product_id: productId,
4566                quantity: quantity,
4567              },
4568              beforeSend: function () {
4569                $this.addClass("loadings");
4570              },
4571              success: function (response) {
4572                var areaIndex = $calculateSpan.data("areaIndex");
4573                if (typeof areaIndex !== "undefined" && areaIndex == areaIndexSended) {
4574                  $calculateSpan.hide();
4575                  $preview.html(response);
4576                  if (!$preview.find(".catalog-delivery-preview").length) {
4577                    $preview.empty();
4578                    $calculateSpan.show();
4579                  }
4580                }
4581              },
4582              error: function (xhr, ajaxOptions, thrownError) {},
4583              complete: function () {
4584                var areaIndex = $calculateSpan.data("areaIndex");
4585                if (typeof areaIndex !== "undefined" && areaIndex == areaIndexSended) {
4586                  $this.removeClass("loadings");
4587                }
4588              },
4589            });
4590          }
4591        }
4592      },
4593      { accX: 0, accY: 0 }
4594    );
4595  });
4596};
4597
4598/*set price item*/
4599if (!funcDefined("setPriceItem")) {
4600  var setPriceItem = function setPriceItem(
4601    main_block,
4602    quantity,
4603    rewrite_price,
4604    check_quantity,
4605    is_sku,
4606    show_percent,
4607    percent
4608  ) {
4609    var old_quantity = main_block.find(".to-cart").attr("data-ratio"),
4610      value =
4611        typeof rewrite_price !== "undefined" && rewrite_price
4612          ? rewrite_price
4613          : main_block.find(".to-cart").attr("data-value"),
4614      currency = main_block.find(".to-cart").attr("data-currency"),
4615      total_block =
4616        '<div class="total_summ" style="display:none;"><div>' +
4617        BX.message("TOTAL_SUMM_ITEM") +
4618        "<span></span></div></div>",
4619      price_block = main_block.find(".cost.prices"),
4620      use_percent = typeof show_percent !== "undefined" && show_percent == "Y",
4621      percent_number = typeof percent !== "undefined" && percent,
4622      sku_checked = main_block.find(".has_offer_prop").length ? "Y" : "N",
4623      check = typeof check_quantity !== "undefined" && check_quantity;
4624
4625    if (main_block.find(".counter_wrapp + .wrapp-one-click").length) {
4626      if (!main_block.find(".wrapp-one-click .total_summ").length && !is_sku)
4627        $(total_block).appendTo(main_block.find(".counter_wrapp + .wrapp-one-click"));
4628    } else if (main_block.find(".buy_block").length) {
4629      if (!main_block.find(".buy_block .total_summ").length && !is_sku)
4630        $(total_block).appendTo(main_block.find(".buy_block"));
4631    } else if (main_block.find(".counter_wrapp").length) {
4632      if (!main_block.find(".counter_wrapp .total_summ").length && !is_sku)
4633        $(total_block).appendTo(main_block.find(".counter_wrapp:first"));
4634    }
4635    if (main_block.find(".total_summ").length) {
4636      if (value && currency) {
4637        if ((1 == quantity && old_quantity == quantity) || (typeof is_sku !== "undefined" && is_sku && !check)) {
4638          main_block.find(".total_summ").slideUp(50);
4639        } else {
4640          main_block.find(".total_summ span").html(BX.Currency.currencyFormat(value * quantity, currency, true));
4641          if (main_block.find(".total_summ").is(":hidden") /* || sku_checked == 'Y'*/)
4642            main_block.find(".total_summ").slideDown(100);
4643        }
4644      } else {
4645        main_block.find(".total_summ").slideUp(100);
4646      }
4647    }
4648  };
4649}
4650
4651if (!funcDefined("getCurrentPrice")) {
4652  var getCurrentPrice = function getCurrentPrice(price, currency, print_price) {
4653    var val = "";
4654    var format_value = BX.Currency.currencyFormat(price, currency);
4655    if (print_price.indexOf(format_value) >= 0) {
4656      val = print_price.replace(
4657        format_value,
4658        '<span class="price_value">' + format_value + '</span><span class="price_currency">'
4659      );
4660      val += "</span>";
4661    } else {
4662      val = print_price;
4663    }
4664
4665    return val;
4666  };
4667}
4668
4669if (!funcDefined("initAnimateLoad")) {
4670  var initAnimateLoad = function initAnimateLoad() {
4671    $(".animate-load").click(function () {
4672      if (!jQuery.browser.mobile) {
4673        $(this).parent().addClass("loadings");
4674      }
4675    });
4676  };
4677}
4678
4679if (!funcDefined("showBasketShareBtn")) {
4680  var showBasketShareBtn = function () {
4681    if (arAsproOptions["THEME"]["SHOW_SHARE_BASKET"] === "Y") {
4682      if (!document.querySelector(".basket-checkout-block-btns")) {
4683        var checkout = document.querySelector(".basket-checkout-section-inner");
4684        if (checkout) {
4685          var btns = BX.create({
4686            tag: "div",
4687            attrs: {
4688              class: "basket-checkout-block basket-checkout-block-btns",
4689            },
4690            html: '<div class="basket-checkout-block-btns-wrap"></div>',
4691          });
4692
4693          BX.insertAfter(btns, BX.lastChild(checkout));
4694          var btnsWrap = btns.querySelector(".basket-checkout-block-btns-wrap");
4695
4696          var btnCheckout = checkout.querySelector(".basket-checkout-block-btn");
4697          if (btnCheckout) {
4698            btnsWrap.appendChild(btnCheckout);
4699          }
4700
4701          var btnFastOrder = checkout.querySelector(".fastorder");
4702          if (btnFastOrder) {
4703            btnsWrap.appendChild(btnFastOrder);
4704          }
4705
4706          if ($(".basket-btn-checkout").length && !$(".basket-btn-checkout").hasClass("disabled")) {
4707            var btnShareBasket = BX.create({
4708              tag: "div",
4709              attrs: {
4710                class: "basket-checkout-block basket-checkout-block-share colored_theme_hover_bg-block",
4711                title: arAsproOptions["THEME"]["EXPRESSION_FOR_SHARE_BASKET"],
4712              },
4713              html:
4714                '<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" viewB
4714ox="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">' +
4715                arAsproOptions["THEME"]["EXPRESSION_FOR_SHARE_BASKET"] +
4716                "</span></span>",
4717            });
4718
4719            btnsWrap.appendChild(btnShareBasket);
4720            initAnimateLoad();
4721          }
4722        }
4723      }
4724    }
4725  };
4726}
4727
4728if (!funcDefined("showBasketHeadingBtn")) {
4729  var showBasketHeadingBtn = function () {
4730    if (document.querySelector(".page-top h1")) {
4731      var topicHeading = document.querySelector(".page-top .topic .topic__heading");
4732      if (topicHeading) {
4733        if (arAsproOptions["THEME"]["SHOW_BASKET_PRINT"] === "Y") {
4734          if (!document.querySelector(".btn_basket_heading--print")) {
4735            var btnPrintBasket = BX.create({
4736              tag: "div",
4737              attrs: {
4738                class: "btn_basket_heading btn_basket_heading--print print-link colored_theme_hover_bg-block",
4739                title: arAsproOptions["THEME"]["EXPRESSION_FOR_PRINT_PAGE"],
4740              },
4741              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>',
4742            });
4743            BX.insertBefore(btnPrintBasket, topicHeading);
4744          }
4745        }
4746
4747        if ($(".basket-btn-checkout").length && !$(".basket-btn-checkout").hasClass("disabled")) {
4748          // if(arAsproOptions['THEME']['SHOW_SEND_BASKET_2EMAIL'] === 'Y'){
4749          // if(!document.querySelector('.btn_basket_heading--send2email')){
4750          // 	var btnSendBasket2Email = BX.create({
4751          // 		tag: 'div',
4752          // 		attrs: {
4753          // 			class: 'btn_basket_heading btn_basket_heading--with_title btn_basket_heading--send2email colored_theme_hover_bg-block',
4754          // 			title: arAsproOptions['THEME']["EXPRESSION_FOR_SEND_BASKET_2EMAIL"],
4755          // 		},
4756          // 		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>',
4757          // 	});
4758          // 	BX.insertBefore(btnSendBasket2Email, topicHeading);
4759          // }
4760          // }
4761
4762          if (arAsproOptions["THEME"]["SHOW_DOWNLOAD_BASKET"] === "Y") {
4763            if (!document.querySelector(".btn_basket_heading--download")) {
4764              var btnDownloadBasket = BX.create({
4765                tag: "div",
4766                attrs: {
4767                  class:
4768                    "btn_basket_heading btn_basket_heading--with_title btn_basket_heading--download colored_theme_hover_bg-block",
4769                  title: arAsproOptions["THEME"]["EXPRESSION_FOR_DOWNLOAD_BASKET"],
4770                },
4771                events: {
4772                  click: BX.proxy(function (e) {
4773                    if (!e) {
4774                      e = window.event;
4775                    }
4776
4777                    BX.PreventDefault(e);
4778
4779                    var button = e.target.closest(".btn_basket_heading");
4780                    if (button) {
4781                      if (BX.hasClass(button, "loadings")) {
4782                        return;
4783                      }
4784
4785                      BX.addClass(button, "loadings");
4786                      setTimeout(function () {
4787                        BX.removeClass(button, "loadings");
4788                      }, 2000);
4789                    }
4790
4791                    location.href =
4792                      "/ajax/download_basket.php?params[type]=" +
4793                      arAsproOptions["THEME"]["BASKET_FILE_DOWNLOAD_TEMPLATE"];
4794                  }, this),
4795                },
4796                html:
4797                  '<i class="svg colored_theme_hover_bg-el-svg">
4797<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">' +
4798                  arAsproOptions["THEME"]["EXPRESSION_FOR_DOWNLOAD_BASKET"] +
4799                  "</span>",
4800              });
4801              BX.insertBefore(btnDownloadBasket, topicHeading);
4802            }
4803          }
4804        } else {
4805          BX.remove(document.querySelector(".btn_basket_heading--send2email"));
4806          BX.remove(document.querySelector(".btn_basket_heading--download"));
4807        }
4808      }
4809    }
4810  };
4811}
4812
4813$(window).on("load", function () {
4814  //check width for menu and search
4815  CheckSearchWidth();
4816});
4817
4818$(document).ready(function () {
4819  MegaMenuFixed();
4820  InitScrollBar();
4821
4822  /*ripple effect for buttons*/
4823  $.ripple(".btn", {
4824    debug: false, // Turn Ripple.js logging on/off
4825    on: "mouseenter", // The event to trigger a ripple effect
4826
4827    opacity: 0.4, // The opacity of the ripple
4828    color: "auto", // Set the background color. If set to "auto", it will use the text color
4829    multi: true, // Allow multiple ripples per element
4830
4831    duration: 0.6, // The duration of the ripple
4832
4833    easing: "linear", // The CSS3 easing function of the ripple
4834  });
4835  /**/
4836
4837  //ecommerce order
4838  if (arAsproOptions["PAGES"]["ORDER_PAGE"]) {
4839    var arUrl = parseUrlQuery();
4840    if ("ORDER_ID" in arUrl) {
4841      var _id = arUrl["ORDER_ID"];
4842      if (arAsproOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
4843        var eventdata = { goal: "goal_order_success", result: _id };
4844        BX.onCustomEvent("onCounterGoals", [eventdata]);
4845      }
4846      if (checkCounters()) {
4847        if (typeof localStorage !== "undefined") {
4848          var val = localStorage.getItem("gtm_e_" + _id),
4849            d = "";
4850          try {
4851            d = JSON.parse(val);
4852          } catch (e) {
4853            d = val;
4854          }
4855          if (typeof d === "object") {
4856            window.dataLayer = window.dataLayer || [];
4857            dataLayer.push({ event: arAsproOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"], ecommerce: d });
4858          }
4859
4860          if (typeof localStorage !== "undefined") {
4861            localStorage.removeItem("gtm_e_" + _id);
4862          }
4863        }
4864      }
4865    }
4866  }
4867  var bSafary = false;
4868  if (typeof jQuery.browser == "object") bSafary = jQuery.browser.safari;
4869  else if (typeof browser == "object") bSafary = browser.safari;
4870  if (!bSafary) {
4871    CheckTopMenuPadding();
4872    CheckTopMenuOncePadding();
4873    CheckTopMenuDotted();
4874    CheckHeaderFixed();
4875    checkMenuLines();
4876    //setTimeout(function() {$(window).resize();}, 150); // need to check resize flexslider & menu
4877    //setTimeout(function() {$(window).scroll();}, 250); // need to check position fixed ask block
4878  } else {
4879    setTimeout(function () {
4880      $(window).resize(); // need to check resize flexslider & menu
4881      setTimeout(function () {
4882        CheckTopMenuPadding();
4883        CheckTopMenuOncePadding();
4884        CheckTopMenuDotted();
4885        CheckHeaderFixed();
4886        checkMenuLines();
4887
4888        setTimeout(function () {
4889          $(window).scroll();
4890        }, 50);
4891      }, 50);
4892    }, 350);
4893  }
4894
4895  /*for filter scrol in mobile*/
4896  if (window.matchMedia("(max-width: 767px)").matches) {
4897    $(".bx_filter .scrollbar").addClass("mobile-scroll").removeClass("scroll-init");
4898    $(".bx_filter .srollbar-custom").addClass("mobile-scroll").removeClass("scroll-init");
4899    $(".bx_filter .bx_filter_section form .bx_filter_parameters").addClass("mobile-scroll").removeClass("scroll-init");
4900    if ($(".bx_filter .mobile-scroll.scrollbar").length)
4901      $(".bx_filter .mobile-scroll.scrollbar").mCustomScrollbar("destroy");
4902    if ($(".bx_filter .mobile-scroll.srollbar-custom").length)
4903      $(".bx_filter .mobile-scroll.srollbar-custom").mCustomScrollbar("destroy");
4904  }
4905  /**/
4906
4907  if (arAsproOptions["THEME"]["USE_DEBUG_GOALS"] === "Y") $.cookie("_ym_debug", 1, { path: "/" });
4908  else $.cookie("_ym_debug", null, { path: "/" });
4909
4910  /* change type2 menu for fixed */
4911  if ($("#headerfixed .js-nav").length) {
4912    if (arAsproOptions["THEME"]["HEADER_FIXED"] == 2) CheckHeaderFixedMenu();
4913
4914    setTimeout(function () {
4915      $("#headerfixed .js-nav").addClass("opacity1");
4916    }, 350);
4917  }
4918
4919  // -- scroll after apply option
4920  if ($(".instagram_ajax").length) {
4921    BX.addCustomEvent("onCompleteAction", function (eventdata) {
4922      if (eventdata.action === "instagrammLoaded") scrollPreviewBlock();
4923    });
4924  } else scrollPreviewBlock();
4925
4926  scrollToTop();
4927  checkVerticalMobileFilter();
4928
4929  $("[data-scroll-block]").click(function () {
4930    var _this = $(this);
4931    if (_this.data("scrollBlock")) {
4932      var target = $(_this.data("scrollBlock"));
4933      if (target.length) {
4934        scroll_block(target);
4935      }
4936    }
4937  });
4938
4939  $.extend($.validator.messages, {
4940    required: BX.message("JS_REQUIRED"),
4941    email: BX.message("JS_FORMAT"),
4942    equalTo: BX.message("JS_PASSWORD_COPY"),
4943    minlength: BX.message("JS_PASSWORD_LENGTH"),
4944    remote: BX.message("JS_ERROR"),
4945  });
4946
4947  $.validator.addMethod(
4948    "regexp",
4949    function (value, element, regexp) {
4950      var re = new RegExp(regexp);
4951      return this.optional(element) || re.test(value);
4952    },
4953    BX.message("JS_FORMAT")
4954  );
4955
4956  $.validator.addMethod(
4957    "filesize",
4958    function (value, element, param) {
4959      return this.optional(element) || element.files[0].size <= param;
4960    },
4961    BX.message("JS_FILE_SIZE")
4962  );
4963
4964  $.validator.addMethod(
4965    "date",
4966    function (value, element, param) {
4967      var status = false;
4968      if (!value || value.length <= 0) {
4969        status = false;
4970      } else {
4971        // html5 date allways yyyy-mm-dd
4972        var re = new RegExp("^([0-9]{4})(.)([0-9]{2})(.)([0-9]{2})$");
4973        var matches = re.exec(value);
4974        if (matches) {
4975          var composedDate = new Date(matches[1], matches[3] - 1, matches[5]);
4976          status =
4977            composedDate.getMonth() == matches[3] - 1 &&
4978            composedDate.getDate() == matches[5] &&
4979            composedDate.getFullYear() == matches[1];
4980        } else {
4981          // firefox
4982          var re = new RegExp("^([0-9]{2})(.)([0-9]{2})(.)([0-9]{4})$");
4983          var matches = re.exec(value);
4984          if (matches) {
4985            var composedDate = new Date(matches[5], matches[3] - 1, matches[1]);
4986            status =
4987              composedDate.getMonth() == matches[3] - 1 &&
4988              composedDate.getDate() == matches[1] &&
4989              composedDate.getFullYear() == matches[5];
4990          }
4991        }
4992      }
4993      return status;
4994    },
4995    BX.message("JS_DATE")
4996  );
4997
4998  $.validator.addMethod(
4999    "extension",
5000    function (value, element, param) {
5001      param = typeof param === "string" ? param.replace(/,/g, "|") : "png|jpe?g|gif";
5002      return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
5003    },
5004    BX.message("JS_FILE_EXT")
5005  );
5006
5007  $.validator.addMethod(
5008    "captcha",
5009    function (value, element, params) {
5010      return $.validator.methods.remote.call(this, value, element, {
5011        url: arAsproOptions["SITE_DIR"] + "ajax/check-captcha.php",
5012        type: "post",
5013        data: {
5014          captcha_word: value,
5015          captcha_sid: function () {
5016            return $(element).closest("form").find('input[name="captcha_sid"]').val();
5017          },
5018        },
5019      });
5020    },
5021    BX.message("JS_ERROR")
5022  );
5023
5024  $.validator.addMethod(
5025    "recaptcha",
5026    function (value, element, param) {
5027      var id = $(element).closest("form").find(".g-recaptcha").attr("data-widgetid");
5028      if (typeof id !== "undefined") {
5029        return grecaptcha.getResponse(id) != "";
5030      } else {
5031        return true;
5032      }
5033    },
5034    BX.message("JS_RECAPTCHA_ERROR")
5035  );
5036
5037  $.validator.addClassRules({
5038    /*phone: {
5039      regexp: arAsproOptions["THEME"]["VALIDATE_PHONE_MASK"],
5040    },*/
5041    confirm_password: {
5042      equalTo: 'input[name="REGISTER[PASSWORD]"]',
5043      minlength: 6,
5044    },
5045    password: {
5046      minlength: 6,
5047    },
5048    inputfile: {
5049      extension: arAsproOptions["THEME"]["VALIDATE_FILE_EXT"],
5050      filesize: 5000000,
5051    },
5052    captcha: {
5053      captcha: "",
5054    },
5055    recaptcha: {
5056      recaptcha: "",
5057    },
5058  });
5059
5060  if (arAsproOptions["THEME"]["PHONE_MASK"]) {
5061    $("input.phone").inputmask("mask", { mask: arAsproOptions["THEME"]["PHONE_MASK"] });
5062  }
5063
5064  // init calculate delivery with preview
5065  initCalculatePreview();
5066
5067  /*city*/
5068  $("select.region").on("change", function () {
5069    var val = parseInt($(this).val());
5070    if ($("select.city").length) {
5071      if (val) {
5072        $("select.city option").hide();
5073        $("select.city option").prop("disabled", "disabled");
5074        $("select.city option[data-parent_section=" + val + "]").prop("disabled", "");
5075        $("select.city option:eq(0)").prop("disabled", "");
5076        $("select.city").ikSelect("reset");
5077        $("select.city option[data-parent_section=" + val + "]").show();
5078      } else $("select.city option").prop("disabled", "disabled");
5079      $("select.city option:eq(0)").prop("disabled", "");
5080      $("select.city").ikSelect("reset");
5081    }
5082  });
5083
5084  $("select.city, select.region").on("change", function () {
5085    var _this = $(this),
5086      val = parseInt(_this.val());
5087    if (_this.hasClass("region")) {
5088      $("select.city option:eq(0)").show();
5089      $("select.city").val(0);
5090    }
5091
5092    if ((_this.hasClass("region") && !val) || _this.hasClass("city")) {
5093      $.ajax({
5094        type: "POST",
5095        data: { ID: val },
5096      }).success(function (html) {
5097        var ob = BX.processHTML(html);
5098        $(".ajax_items")[0].innerHTML = ob.HTML;
5099        BX.ajax.processScripts(ob.SCRIPT);
5100      });
5101    }
5102  });
5103
5104  $(document).on("mouseenter", ".section-gallery-wrapper .section-gallery-wrapper__item", function () {
5105    $(this).siblings().removeClass("_active");
5106    $(this).addClass("_active");
5107  });
5108
5109  $(document).on("click", ".hint .icon", function (e) {
5110    var tooltipWrapp = $(this).closest(".hint");
5111
5112    if (tooltipWrapp.hasClass("active")) {
5113      tooltipWrapp.removeClass("active").find(".tooltip").slideUp(200);
5114    } else {
5115      tooltipWrapp.addClass("active");
5116      tooltipWrapp.find(".tooltip").slideDown(200);
5117      tooltipWrapp.find(".tooltip_close").click(function (e) {
5118        e.stopPropagation();
5119        tooltipWrapp.removeClass("active").find(".tooltip").slideUp(100);
5120      });
5121    }
5122    e.stopPropagation();
5123  });
5124
5125  $(".mobile_regions .city_item").on("click", function (e) {
5126    e.preventDefault();
5127    var _this = $(this);
5128    $.removeCookie("current_region");
5129    $.cookie("current_region", _this.data("id"), { path: "/", domain: arAsproOptions["SITE_ADDRESS"] });
5130    location.href = _this.attr("href");
5131  });
5132
5133  /* toggle */
5134  var $this = this,
5135    previewParClosedHeight = 25;
5136
5137  $("section.toggle > label").prepend($("<i />").addClass("fa fa-plus"));
5138  $("section.toggle > label").prepend($("<i />").addClass("fa fa-minus"));
5139  $("section.toggle.active > p").addClass("preview-active");
5140  $("section.toggle.active > div.toggle-content").slideDown(350, function () {});
5141
5142  $("section.toggle > label").click(function (e) {
5143    var parentSection = $(this).parent(),
5144      parentWrapper = $(this).parents("div.toogle"),
5145      previewPar = false,
5146      isAccordion = parentWrapper.hasClass("toogle-accordion");
5147
5148    if (isAccordion && typeof e.originalEvent != "undefined") {
5149      parentWrapper.find("section.toggle.active > label").trigger("click");
5150    }
5151
5152    parentSection.toggleClass("active");
5153
5154    // Preview Paragraph
5155    if (parentSection.find("> p").get(0)) {
5156      previewPar = parentSection.find("> p");
5157      var previewParCurrentHeight = previewPar.css("height");
5158      previewPar.css("height", "auto");
5159      var previewParAnimateHeight = previewPar.css("height");
5160      previewPar.css("height", previewParCurrentHeight);
5161    }
5162
5163    // Content
5164    var toggleContent = parentSection.find("> div.toggle-content");
5165
5166    if (parentSection.hasClass("active")) {
5167      $(previewPar).animate(
5168        {
5169          height: previewParAnimateHeight,
5170        },
5171        350,
5172        function () {
5173          $(this).addClass("preview-active");
5174        }
5175      );
5176      toggleContent.slideDown(350, function () {});
5177    } else {
5178      $(previewPar).animate(
5179        {
5180          height: previewParClosedHeight,
5181        },
5182        350,
5183        function () {
5184          $(this).removeClass("preview-active");
5185        }
5186      );
5187      toggleContent.slideUp(350, function () {});
5188    }
5189  });
5190
5191  if (typeof $.fn.footable == "function") {
5192    $(".tables-responsive .responsive").footable(); //responsive table
5193  }
5194
5195  $("a[rel=tooltip]").tooltip();
5196  $("span[data-toggle=tooltip]").tooltip();
5197
5198  $(".toggle .more_items").on("click", function () {
5199    $(this).closest(".toggle").find(".collapsed").css("display", "inline-block").removeClass("collapsed");
5200    $(this).remove();
5201    if (typeof $(this).data("resize") !== "undefined" && $(this).data("resize")) $(window).resize();
5202  });
5203  $(".toggle_menu .more_items").on("click", function () {
5204    $(this).closest(".toggle_menu").find(".collapsed").addClass("clicked_exp");
5205    $(this).remove();
5206  });
5207
5208  /* search sync */
5209  $(document).on("keyup", ".search-input-div input", function (e) {
5210    var inputValue = $(this).val();
5211    $(".search-input-div input:not(:focus").val(inputValue);
5212
5213    if ($(this).closest("#headerfixed").length) {
5214      if (e.keyCode == 13) $(".search form").submit();
5215    }
5216  });
5217  $(document).on("click", ".search-button-div button", function (e) {
5218    if ($(this).closest("#headerfixed").length) $(".search form").submit();
5219  });
5220
5221  $(".inline-search-show, .inline-search-hide").on("click", function (e) {
5222    CloseMobilePhone();
5223    // if(window.matchMedia('(min-width: 600px)').matches)
5224    // {
5225    if (typeof $(this).data("type_search") != "undefined" && $(this).data("type_search") == "fixed")
5226      $(".inline-search-block").addClass("fixed");
5227
5228    if (arAsproOptions["THEME"]["TYPE_SEARCH"] == "fixed") {
5229      /*setTimeout(function(){
5230					$('.inline-search-block.fixed.big .search-input').focus();
5231				}, 200);*/
5232      $(".inline-search-block.fixed.big .search-input").focus();
5233    }
5234    if (arAsproOptions["THEME"]["TYPE_SEARCH"] != "fixed") {
5235      $("#title-search-input").focus();
5236    }
5237
5238    $(".inline-search-block").toggleClass("show");
5239    if ($(".top-block").length) {
5240      if ($(".inline-search-block").hasClass("show"))
5241        $(".inline-search-block").css("background", $(".top-block").css("background-color"));
5242      else $(".inline-search-block").css("background", "#fff");
5243    }
5244    if (arAsproOptions["THEME"]["TYPE_SEARCH"] == "fixed") {
5245      if ($(".inline-search-block").hasClass("show")) $('<div class="jqmOverlay search"></div>').appendTo("body");
5246      else {
5247        $("#title-search-input").blur();
5248        $(".jqmOverlay").detach();
5249      }
5250    }
5251    // }
5252    // else
5253    // 	location.href = arAsproOptions['PAGES']['CATALOG_PAGE_URL']+'?q';
5254  });
5255
5256  /* close search block */
5257  $("html, body").on("mousedown", function (e) {
5258    if (typeof e.target.className == "string" && e.target.className.indexOf("adm") < 0) {
5259      e.stopPropagation();
5260      var search_target = $(e.target).closest(".title-search-result");
5261      if (!$(e.target).hasClass("inline-search-block") && !$(e.target).hasClass("svg") && !search_target.length) {
5262        $(".inline-search-block").removeClass("show");
5263        $(".title-search-result").hide();
5264        if (arAsproOptions["THEME"]["TYPE_SEARCH"] == "fixed") $(".jqmOverlay.search").detach();
5265      }
5266
5267      if ($("#mobilePhone").length) {
5268        CloseMobilePhone();
5269      }
5270
5271      if ($("#basket_line .basket_fly").length && parseInt($("#basket_line .basket_fly").css("right")) >= 0) {
5272        if (!$(e.target).closest(".basket_wrapp").length) {
5273          $("#basket_line .basket_fly")
5274            .stop()
5275            .animate({ right: -$("#basket_line .basket_fly").outerWidth() }, 150);
5276          $("#basket_line .basket_fly .opener > div").removeClass("cur");
5277          $("#basket_line .basket_fly").removeClass("swiped");
5278        }
5279      }
5280
5281      if (isMobile) {
5282        if (search_target.length) location.href = search_target.attr("href");
5283      }
5284
5285      if (!$(e.target).closest(".js-info-block").length && !$(e.target).closest(".js-show-info-block").length) {
5286        $(".js-show-info-block").removeClass("opened");
5287        $(".js-info-block").fadeOut();
5288      }
5289
5290      if (!$(e.target).closest(".hint.active").length) {
5291        $(".hint.active .icon").trigger("click");
5292      }
5293
5294      var class_name = $(e.target).attr("class");
5295      if (typeof class_name == "undefined" || class_name.indexOf("tooltip") < 0)
5296        //tooltip link
5297        $(".tooltip-link").tooltip("hide");
5298    }
5299  });
5300  $(".inline-search-block")
5301    .find("*")
5302    .on("mousedown", function (e) {
5303      e.stopPropagation();
5304    });
5305
5306  initAnimateLoad();
5307
5308  /*check all opt table items*/
5309  $(document).on("change", "input#select_all_items", function () {
5310    var _this = $(this);
5311    var notOfferCount = 0;
5312    var bComplect = _this.closest(".complect_main_wrap").length;
5313    if (bComplect) {
5314      notOfferCount = _this
5315        .closest(".complect_main_wrap")
5316        .find(".catalog-block-view__item .counter_wrapp:not(.ce_cmp_visible) .button_block .to-cart").length;
5317    } else {
5318      notOfferCount = $(".table-view__item:not([data-product_type=3])").find(".button_block .to-cart").length;
5319    }
5320    var wishCount = $(".table-view__item:not([data-product_type=3])").find(
5321      ".item-icons .wish_item_button .wish_item.to"
5322    ).length;
5323    var allGoodsCount = $(".table-view__item").length;
5324
5325    if (_this.is(":checked")) {
5326      //buy && wish
5327      if (notOfferCount != 0) {
5328        $(".opt_action:not([data-action=compare])").removeClass("no-action");
5329      }
5330
5331      //compare
5332      $(".opt_action[data-action=compare]").removeClass("no-action");
5333
5334      $(".opt_action").addClass("animate-load");
5335      $(".opt_action .text").remove();
5336
5337      //buy
5338      $('<div class="text">(<span>' + notOfferCount + "</span>)</div>").appendTo($(".opt_action[data-action=buy]"));
5339
5340      //wish
5341      $('<div class="text muted">(<span>' + wishCount + "</span>)</div>").appendTo($(".opt_action[data-action=wish]"));
5342
5343      //compare
5344      $('<div class="text muted">(<span>' + allGoodsCount + "</span>)</div>").appendTo(
5345        $(".opt_action[data-action=compare]")
5346      );
5347
5348      $('input[name="chec_item"]').prop("checked", "checked");
5349    } else {
5350      $(".opt_action").addClass("no-action");
5351      $(".opt_action").removeClass("animate-load");
5352      $(".opt_action .text").remove();
5353
5354      $('input[name="chec_item"]').removeAttr("checked");
5355    }
5356
5357    if (_this.closest(".complect_header_block").length && typeof setNewPriceComplect === "function") {
5358      setNewPriceComplect();
5359    }
5360  });
5361
5362  /*check opt table item*/
5363  $(document).on("change", "input[name='chec_item']", function () {
5364    var _this = $(this);
5365
5366    var canBuy =
5367      _this.closest(".table-view__item").find(".button_block .to-cart").length ||
5368      _this.closest(".catalog-block-view__item").find(".button_block .to-cart").length;
5369    var isOffer = _this.closest(".main_item_wrapper").attr("data-product_type") == "3";
5370
5371    if (_this.is(":checked")) {
5372      $(".opt_action").each(function () {
5373        var _this = $(this);
5374
5375        var isBuyAction = _this.attr("data-action") == "buy";
5376        var isWishAction = _this.attr("data-action") == "wish";
5377
5378        if (isOffer && (isBuyAction || isWishAction)) {
5379          return true;
5380        }
5381
5382        if (isBuyAction && !canBuy) {
5383          return true;
5384        }
5385
5386        if (_this.find(".text").length) {
5387          var count = parseInt(_this.find(".text span").text());
5388          _this.find(".text span").text(++count);
5389        } else {
5390          _this.removeClass("no-action");
5391          _this.addClass("animate-load");
5392          $('<div class="text muted">(<span>1</span>)</div>').appendTo(_this);
5393        }
5394      });
5395    } else {
5396      $(".opt_action").each(function () {
5397        var _this = $(this);
5398
5399        var isBuyAction = _this.attr("data-action") == "buy";
5400        var isWishAction = _this.attr("data-action") == "wish";
5401
5402        if (isOffer && (isBuyAction || isWishAction)) {
5403          return true;
5404        }
5405
5406        if (isBuyAction && !canBuy) {
5407          return true;
5408        }
5409
5410        if (_this.find(".text").length) {
5411          var count = parseInt(_this.find(".text span").text());
5412          --count;
5413          _this.find(".text span").text(count);
5414
5415          if (!count) {
5416            _this.addClass("no-action");
5417            _this.removeClass("animate-load");
5418            _this.find(".text").remove();
5419          }
5420        }
5421      });
5422    }
5423  });
5424
5425  /*buy|wish|compare opt table items*/
5426  $(document).on("click", ".opt_action", function () {
5427    var _this = $(this),
5428      action = _this.data("action"),
5429      basketParams = {
5430        type: "multiple",
5431        iblock_id: _this.data("iblock_id"),
5432        action: action,
5433        items: {},
5434      };
5435
5436    if (!_this.hasClass("no-action")) {
5437      $(".opt_action").addClass("no-action");
5438      _this.removeClass("no-action");
5439
5440      $(".table-view__item, .catalog-block-view__item").each(function () {
5441        var _this = $(this);
5442        var canBuy = _this.find(".button_block .to-cart").length;
5443        var add = _this.find('input[name="chec_item"]').is(":checked") && (canBuy || action != "buy");
5444        var addOffer = _this.data("product_type") == "3" && _this.find(".button_block .to-cart").length;
5445        if (add) {
5446          var itemId = addOffer ? _this.find(".button_block .to-cart").data("item") : _this.data("id");
5447          basketParams["items"][itemId] = {};
5448          basketParams["items"][itemId]["id"] = itemId;
5449          basketParams["items"][itemId]["product_type"] = _this.data("product_type");
5450          basketParams["items"][itemId]["quantity"] = _this.find('input[name="quantity"]').val();
5451          if (addOffer) {
5452            basketParams["items"][itemId]["add_offer"] = "Y";
5453          }
5454        }
5455      });
5456      $.ajax({
5457        type: "POST",
5458        url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
5459        data: basketParams,
5460        dataType: "json",
5461        success: function (data) {
5462          if ("STATUS" in data) {
5463            if (data.STATUS !== "OK") {
5464              showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT);
5465            }
5466            if ($(".header-cart.fly").length) {
5467              arBasketAsproCounters.DEFAULT = true;
5468              SetActualBasketFlyCounters(true);
5469            } else {
5470              if ($("#ajax_basket").length) {
5471                reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "N", "", true);
5472              } else {
5473                reloadBasketCounters("", true);
5474              }
5475            }
5476          }
5477          _this.parent().removeClass("loadings");
5478          $(".opt_action").removeClass("no-action");
5479        },
5480      });
5481    }
5482  });
5483
5484  //fix opt checked for back in browser
5485  setTimeout(function () {
5486    if ($('.with-opt-buy input[name="chec_item"], .with-opt-buy input[name="select_all_items"]').length) {
5487      $('.with-opt-buy input[name="chec_item"], .with-opt-buy input[name="select_all_items"]').prop("checked", false);
5488    }
5489  }, 1);
5490
5491  /*check mobile device*/
5492  if (isMobile) {
5493    $(document).on("click", '*[data-event="jqm"]', function (e) {
5494      e.preventDefault();
5495      e.stopPropagation();
5496      var _this = $(this);
5497      var name = _this.data("name");
5498
5499      if (
5500        window.matchMedia("(min-width:768px)").matches ||
5501        (typeof _this.data("no-mobile") !== "undefinde" && _this.data("no-mobile") == "Y")
5502      ) {
5503        if (!$(this).hasClass("clicked")) {
5504          $(this).addClass("clicked");
5505          $(this).jqmEx();
5506          $(this).trigger("click");
5507        }
5508        return false;
5509      } else if (name.length) {
5510        var script = arAsproOptions["SITE_DIR"] + "form/";
5511        var paramsStr = "";
5512        var arTriggerAttrs = {};
5513        $.each(_this.get(0).attributes, function (index, attr) {
5514          var attrName = attr.nodeName;
5515          var attrValue = _this.attr(attrName);
5516          arTriggerAttrs[attrName] = attrValue;
5517          if (/^data\-param\-(.+)$/.test(attrName)) {
5518            var key = attrName.match(/^data\-param\-(.+)$/)[1];
5519            paramsStr += key + "=" + attrValue + "&";
5520          }
5521        });
5522
5523        var triggerAttrs = JSON.stringify(arTriggerAttrs);
5524        var encTriggerAttrs = encodeURIComponent(triggerAttrs);
5525        script += "?name=" + name + "&" + paramsStr + "data-trigger=" + encTriggerAttrs;
5526
5527        if (previewMode && _this.attr("href") !== undefined) {
5528          script = _this.attr("href");
5529        }
5530
5531        location.href = script;
5532      }
5533    });
5534
5535    $(".fancybox").removeClass("fancybox");
5536  } else {
5537    $(document).on("click", '*[data-event="jqm"]', function (e) {
5538      e.preventDefault();
5539      e.stopPropagation();
5540
5541      var _this = $(this);
5542      var name = _this.data("name");
5543      if (previewMode && ((name.length && name == "auth") || window.matchMedia("(max-width:400px)").matches)) {
5544        var script = arAsproOptions["SITE_DIR"] + "form/";
5545        var paramsStr = "";
5546        var arTriggerAttrs = {};
5547        $.each(_this.get(0).attributes, function (index, attr) {
5548          var attrName = attr.nodeName;
5549          var attrValue = _this.attr(attrName);
5550          arTriggerAttrs[attrName] = attrValue;
5551          if (/^data\-param\-(.+)$/.test(attrName)) {
5552            var key = attrName.match(/^data\-param\-(.+)$/)[1];
5553            paramsStr += key + "=" + attrValue + "&";
5554          }
5555        });
5556
5557        var triggerAttrs = JSON.stringify(arTriggerAttrs);
5558        var encTriggerAttrs = encodeURIComponent(triggerAttrs);
5559        script += "?name=" + name + "&" + paramsStr + "data-trigger=" + encTriggerAttrs;
5560
5561        if (_this.attr("href") !== undefined) {
5562          script = _this.attr("href");
5563        }
5564
5565        location.href = script;
5566      } else {
5567        if (!$(this).hasClass("clicked")) {
5568          $(this).addClass("clicked");
5569          $(this).jqmEx();
5570          $(this).trigger("click");
5571        }
5572      }
5573
5574      return false;
5575    });
5576  }
5577
5578  BX.addCustomEvent("onCompleteAction", function (eventdata, _this) {
5579    try {
5580      if (eventdata.action === "loadForm") {
5581        $(_this).parent().removeClass("loadings");
5582        $(_this).removeClass("clicked");
5583
5584        if ($(_this).hasClass("one_click_buy_trigger")) {
5585          $(".wrapp_one_click > span").removeClass("clicked");
5586          $(".one_click").removeClass("clicked");
5587        } else if ($(_this).hasClass("one_click_buy_basket_trigger")) {
5588          $(".fast_order").removeClass("clicked");
5589        }
5590      } else if (eventdata.action === "loadBasket") {
5591        $(".basket-link.basket").attr("title", $("<div/>").html(arBasketPrices.BASKET_SUMM_TITLE).text());
5592        $(".basket-link.delay").attr("title", $("<div/>").html(arBasketPrices.DELAY_SUMM_TITLE).text());
5593
5594        if (arBasketPrices.BASKET_COUNT > 0) {
5595          $(".basket-link.basket").addClass("basket-count");
5596          $(".basket-link.basket .count").removeClass("empted");
5597          if ($(".basket-link.basket .prices").length)
5598            $(".basket-link.basket .prices").html(arBasketPrices.BASKET_SUMM);
5599        } else {
5600          $(".basket-link.basket").removeClass("basket-count");
5601          $(".basket-link.basket .count").addClass("empted");
5602          if ($(".basket-link.basket .prices").length)
5603            $(".basket-link.basket .prices").html(arBasketPrices.BASKET_SUMM_TITLE_SMALL);
5604        }
5605        $(".basket-link.basket .count").text(arBasketPrices.BASKET_COUNT);
5606        if (arBasketPrices.DELAY_COUNT > 0) {
5607          $(".basket-link.delay").addClass("basket-count");
5608          $(".basket-link.delay .count").removeClass("empted");
5609        } else {
5610          $(".basket-link.delay").removeClass("basket-count");
5611          $(".basket-link.delay .count").addClass("empted");
5612        }
5613        $(".basket-link.delay .count").text(arBasketPrices.DELAY_COUNT);
5614
5615        updateBottomIconsPanel(arBasketPrices);
5616      } else if (eventdata.action === "loadActualBasketCompare") {
5617        var compare_count = Object.keys(arBasketAspro.COMPARE).length;
5618        if (compare_count > 0) {
5619          $(".basket-link.compare").addClass("basket-count");
5620          $(".basket-link.compare .count").removeClass("empted");
5621          if ($("#compare_fly").length) $("#compare_fly").removeClass("empty_block");
5622        } else {
5623          $(".basket-link.compare").removeClass("basket-count");
5624          $(".basket-link.compare .count").addClass("empted");
5625          if ($("#compare_fly").length) $("#compare_fly").addClass("empty_block");
5626        }
5627        $(".basket-link.compare .count").text(compare_count);
5628
5629        updateBottomIconsPanel(arBasketAspro);
5630      } else if (eventdata.action === "loadRSS") {
5631      } else if (eventdata.action === "ajaxContentLoaded") {
5632      } else if (eventdata.action === "jsLoadBlock") {
5633        initCountdown();
5634        setStatusButton();
5635        InitFlexSlider();
5636        setTimeout(function () {
5637          InitOwlSlider();
5638        }, 200);
5639        InitFancyBox();
5640
5641        checkLinkedArticles();
5642        checkLinkedBlocks(".linked-banners-list");
5643        lazyLoadPagenBlock();
5644
5645        if (typeof window["stickySidebar"] !== "undefined") {
5646          window["stickySidebar"].updateSticky();
5647        }
5648      }
5649    } catch (e) {
5650      console.error(e);
5651    }
5652  });
5653
5654  /*slices*/
5655  if ($(".banners-small .item.normal-block").length) $(".banners-small .item.normal-block").sliceHeight();
5656  if ($(".teasers .item").length) $(".teasers .item").sliceHeight();
5657  if ($(".wrap-portfolio-front .row.items > div").length)
5658    $(".wrap-portfolio-front .row.items > div").sliceHeight({ row: ".row.items", item: ".item1" });
5659
5660  /* bug fix in ff*/
5661  $("img").removeAttr("draggable");
5662
5663  $(".title-tab-heading").on("click", function () {
5664    var container = $(this).parent(),
5665      slide_block = $(this).next(),
5666      bReviewTab = container.hasClass("media_review");
5667
5668    clicked_tab = container.index() + 1;
5669
5670    container.siblings().removeClass("active");
5671
5672    $(".nav.nav-tabs li").removeClass("active");
5673
5674    if (container.hasClass("active")) {
5675      if (bReviewTab) {
5676        $("#reviews_content").slideUp(200, function () {
5677          container.removeClass("active");
5678        });
5679      } else {
5680        slide_block.slideUp(200, function () {
5681          container.removeClass("active");
5682        });
5683      }
5684    } else {
5685      container.addClass("active");
5686      if (bReviewTab) {
5687        $("#reviews_content").slideDown();
5688      } else {
5689        if ($(".tabs_section + #reviews_content").length) $(".tabs_section + #reviews_content").slideUp();
5690        slide_block.slideDown();
5691        if (typeof container.attr("id") !== "undefined" && container.attr("id") == "descr") {
5692          var $gallery = $(".galerys-block");
5693          if ($gallery.length) {
5694            var bTypeBig = $gallery.find(".big_slider").length;
5695            var $slider = bTypeBig ? $gallery.find(".big_slider") : $gallery.find(".small_slider");
5696            InitFlexSlider();
5697            var interval = setInterval(function () {
5698              if ($slider.find(".slides .item").attr("style").indexOf("height") === -1) {
5699                $(window).resize();
5700              } else {
5701                clearInterval(interval);
5702              }
5703            }, 100);
5704          }
5705        }
5706      }
5707    }
5708  });
5709
5710  InitFlexSlider();
5711  InitOwlSlider();
5712  InitStickySideBar();
5713  InitFancyBox();
5714  InitFancyBoxVideo();
5715
5716  setTimeout(function () {
5717    InitTopestMenuGummi();
5718    isOnceInited = true;
5719  }, 50);
5720
5721  InitZoomPict();
5722
5723  $(document).on("click", ".captcha_reload", function (e) {
5724    var captcha = $(this).parents(".captcha-row");
5725    e.preventDefault();
5726    $.ajax({
5727      url: arAsproOptions["SITE_DIR"] + "ajax/captcha.php",
5728    }).done(function (text) {
5729      captcha.find("input[name=captcha_sid],input[name=captcha_code]").val(text);
5730      captcha.find("img").attr("src", "/bitrix/tools/captcha.php?captcha_sid=" + text);
5731      captcha.find("input[name=captcha_word]").val("").removeClass("error");
5732      captcha.find(".captcha_input").removeClass("error").find(".error").remove();
5733    });
5734  });
5735
5736  /* show print */
5737  if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
5738    showBasketHeadingBtn();
5739  } else {
5740    if (arAsproOptions["THEME"]["PRINT_BUTTON"] === "Y") {
5741      setTimeout(function () {
5742        var topicHeading = document.querySelector(".period_wrapper.in-detail-news1 .period_wrapper_inner")
5743          ? document.querySelector(".detail-news1 .period_wrapper .period_wrapper_inner")
5744          : document.querySelector(".page-top .topic .topic__heading")
5745          ? document.querySelector(".page-top .topic .topic__heading")
5746          : null;
5747        if (topicHeading) {
5748          var btnPrint = BX.create({
5749            tag: "div",
5750            attrs: {
5751              class: "print-link colored_theme_hover_bg-block",
5752              title: arAsproOptions["THEME"]["EXPRESSION_FOR_PRINT_PAGE"],
5753            },
5754            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>',
5755          });
5756          BX.insertBefore(btnPrint, topicHeading);
5757        }
5758      }, 150);
5759    }
5760  }
5761
5762  $(document).on("click", ".print-link", function () {
5763    window.print();
5764  });
5765
5766  $(".head-block .item-link").on("click", function () {
5767    var _this = $(this);
5768    _this.siblings().removeClass("active");
5769    _this.addClass("active");
5770  });
5771
5772  $("table.table").each(function () {
5773    var _this = $(this),
5774      first_td = _this.find("thead tr th");
5775    if (!first_td.length) first_td = _this.find("thead tr td");
5776    if (first_td.length) {
5777      var j = 0;
5778      _this.find("tbody tr td").each(function (i) {
5779        if (j > first_td.length - 1) j = 0;
5780        $('<div class="th-mobile">' + first_td[j].textContent + "</div>").appendTo($(this));
5781        j++;
5782      });
5783    }
5784  });
5785
5786  if (window.matchMedia("(min-width: 768px)").matches) $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
5787
5788  if (window.matchMedia("(max-width: 767px)").matches) $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
5789
5790  $(".menu_top_block .v_bottom a").on("click", function (e) {
5791    if ($(e.target).hasClass("toggle_block")) e.preventDefault();
5792  });
5793  $(".menu_top_block .v_bottom a .toggle_block").click(function (e) {
5794    var _this = $(this),
5795      menu = _this.closest(".has-child").find("> .dropdown"),
5796      bVisibleMeu = menu.is(":visible"),
5797      animate = bVisibleMeu ? "slideUp" : "slideDown";
5798
5799    if (!_this.hasClass("clicked")) {
5800      _this.addClass("clicked");
5801
5802      menu.velocity("stop").velocity(animate, {
5803        duration: 150,
5804        // delay: 250,
5805        begin: function () {
5806          _this.toggleClass("closed");
5807        },
5808        complete: function () {
5809          _this.removeClass("clicked");
5810
5811          if (typeof window["stickySidebar"] !== "undefined") window["stickySidebar"].updateSticky();
5812        },
5813      });
5814    }
5815
5816    $(this).closest(".has-child").toggleClass("opened");
5817  });
5818
5819  $(document).on("click", ".show_props", function () {
5820    $(this).prev().stop().slideToggle(333);
5821    $(this).find(".char_title").toggleClass("opened");
5822  });
5823
5824  $(".see_more").on("click", function (e) {
5825    e.preventDefault();
5826    var see_more = $(this).is(".see_more") ? $(this) : $(this).parents(".see_more").first();
5827    var see_moreText = see_more.find("> a").length ? see_more.find("> a") : see_more;
5828    var see_moreHiden = see_more.parent().find("> .d");
5829    if (see_more.hasClass("open")) {
5830      see_moreText.text(BX.message("CATALOG_VIEW_MORE"));
5831      see_more.removeClass("open");
5832      see_moreHiden.hide();
5833    } else {
5834      see_moreText.text(BX.message("CATALOG_VIEW_LESS"));
5835      see_more.addClass("open");
5836      see_moreHiden.show();
5837    }
5838    return false;
5839  });
5840
5841  $(".button.faq_button").click(function (e) {
5842    e.preventDefault();
5843    $(this).toggleClass("opened");
5844    $(".faq_ask .form").slideToggle();
5845  });
5846
5847  $(".staff.list .staff_section .staff_section_title a").click(function (e) {
5848    e.preventDefault();
5849    $(this).parents(".staff_section").toggleClass("opened");
5850    $(this).parents(".staff_section").find(".staff_section_items").stop().slideToggle(600);
5851    $(this).parents(".staff_section_title").find(".opener_icon").toggleClass("opened");
5852  });
5853
5854  $(".jobs_wrapp .item .name").click(function (e) {
5855    $(this).closest(".item").toggleClass("opened");
5856    $(this).closest(".item").find(".description_wrapp").stop().slideToggle(600);
5857    $(this).closest(".item").find(".opener_icon").toggleClass("opened");
5858  });
5859
5860  $(".faq.list .item .q a").on("click", function (e) {
5861    e.preventDefault();
5862    $(this).parents(".item").toggleClass("opened");
5863    $(this).parents(".item").find(".a").stop().slideToggle();
5864    $(this).parents(".item").find(".q .opener_icon").toggleClass("opened");
5865  });
5866
5867  $(".opener_icon").click(function (e) {
5868    e.preventDefault();
5869    $(this).parent().find("a").trigger("click");
5870  });
5871
5872  $(".dotdot").dotdotdot();
5873
5874  $(".more_block span").on("click", function () {
5875    var content_offset = $(".catalog_detail .tabs_section").offset();
5876    $("html, body").animate({ scrollTop: content_offset.top - 43 }, 400);
5877  });
5878
5879  $(document).on("click", ".counter_block:not(.basket) .plus", function () {
5880    if (!$(this).parents(".basket_wrapp").length || $(this).parents(".services_in_basket").length) {
5881      if ($(this).parent().data("offers") != "Y") {
5882        var isDetailSKU2 = $(this).parents(".counter_block_wr").length;
5883        input = $(this).parents(".counter_block").find("input[type=text]");
5884        (tmp_ratio = !isDetailSKU2
5885          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5886          : $(this).parents("tr").first().find("td.buy .to-cart").data("ratio")),
5887          (isDblQuantity = !isDetailSKU2
5888            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5889            : $(this).parents("tr").first().find("td.buy .to-cart").data("float_ratio")),
5890          (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)),
5891          (max_value = "");
5892        currentValue = input.val();
5893
5894        if (isDblQuantity)
5895          ratio =
5896            Math.round(ratio * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5897            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5898
5899        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
5900
5901        curValue += ratio;
5902        if (isDblQuantity) {
5903          curValue =
5904            Math.round(curValue * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5905            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5906        }
5907
5908        if (parseFloat($(this).data("max")) > 0) {
5909          if (input.val() < $(this).data("max")) {
5910            if (curValue <= $(this).data("max")) input.val(curValue);
5911
5912            input.change();
5913          }
5914        } else {
5915          input.val(curValue);
5916          input.change();
5917        }
5918      }
5919    }
5920  });
5921  $(document).on("click", ".counter_block:not(.basket) .minus", function () {
5922    if (!$(this).parents(".basket_wrapp").length || $(this).parents(".services_in_basket").length) {
5923      if ($(this).parent().data("offers") != "Y") {
5924        var isDetailSKU2 = $(this).parents(".counter_block_wr").length;
5925        input = $(this).parents(".counter_block").find("input[type=text]");
5926        (tmp_ratio = !isDetailSKU2
5927          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5928          : $(this).parents("tr").first().find("td.buy .to-cart").data("ratio")),
5929          (isDblQuantity = !isDetailSKU2
5930            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5931            : $(this).parents("tr").first().find("td.buy .to-cart").data("float_ratio")),
5932          (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)),
5933          (max_value = "");
5934        currentValue = input.val();
5935
5936        if (isDblQuantity)
5937          ratio =
5938            Math.round(ratio * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5939            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5940
5941        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
5942
5943        curValue -= ratio;
5944        if (isDblQuantity) {
5945          curValue =
5946            Math.round(curValue * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
5947            arAsproOptions.JS_ITEM_CLICK.precisionFactor;
5948        }
5949        const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
5950        if (minValue) {
5951          ratio = minValue;
5952        }
5953
5954        if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
5955          if (currentValue > ratio) {
5956            if (curValue < ratio) {
5957              input.val(ratio);
5958            } else {
5959              input.val(curValue);
5960            }
5961            input.change();
5962          }
5963        } else {
5964          if (curValue > ratio) {
5965            input.val(curValue);
5966          } else {
5967            if (ratio) {
5968              input.val(ratio);
5969            } else if (currentValue > 1) {
5970              input.val(curValue);
5971            }
5972          }
5973          input.change();
5974        }
5975      }
5976    }
5977  });
5978
5979  $(".counter_block input[type=text]").numeric({ allow: "." });
5980
5981  $(document).on("focus", ".counter_block input[type=text]", function (e) {
5982    $(this).addClass("focus");
5983  });
5984
5985  $(document).on("blur", ".counter_block input[type=text]", function (e) {
5986    $(this).removeClass("focus");
5987  });
5988
5989  var timerInitCalculateDelivery = false;
5990  $(document).on("change", ".counter_block input[type=text]", function (e) {
5991    if (!$(this).parents(".basket_wrapp").length) {
5992      var val = $(this).val(),
5993        tmp_ratio = $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5994          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
5995          : $(this).parents("tr").first().find("td.buy .to-cart").data("ratio"),
5996        isDblQuantity = $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5997          ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
5998          : $(this).parents("tr").first().find("td.buy .to-cart").data("float_ratio"),
5999        ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10),
6000        diff = val % ratio;
6001
6002      if (isDblQuantity) {
6003        ratio =
6004          Math.round(ratio * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
6005          arAsproOptions.JS_ITEM_CLICK.precisionFactor;
6006        if (
6007          Math.round(diff * arAsproOptions.JS_ITEM_CLICK.precisionFactor) /
6008            arAsproOptions.JS_ITEM_CLICK.precisionFactor ==
6009          ratio
6010        )
6011          diff = 0;
6012      }
6013
6014      if ($(this).hasClass("focus")) {
6015        intCount =
6016          Math.round(
6017            Math.round((val * arAsproOptions.JS_ITEM_CLICK.precisionFactor) / ratio) /
6018              arAsproOptions.JS_ITEM_CLICK.precisionFactor
6019          ) || 1;
6020        val = intCount <= 1 ? ratio : intCount * ratio;
6021        // val -= diff;
6022        val =
6023          Math.round(val * arAsproOptions.JS_ITEM_CLICK.precisionFactor) / arAsproOptions.JS_ITEM_CLICK.precisionFactor;
6024      }
6025
6026      if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
6027        if (val > parseFloat($(this).parents(".counter_block").find(".plus").data("max"))) {
6028          val = parseFloat($(this).parents(".counter_block").find(".plus").data("max"));
6029          // val -= (val % ratio);
6030        }
6031      }
6032      if (parseFloat($(this).parents(".counter_block").find(".minus").data("min")) > 0) {
6033        if (val < parseFloat($(this).parents(".counter_block").find(".minus").data("min"))) {
6034          val = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
6035          // val -= (val % ratio);
6036        }
6037      }
6038      if (val < ratio) {
6039        val = ratio;
6040      } else if (!parseFloat(val)) {
6041        val = 1;
6042      }
6043
6044      $(this).parents(".counter_block").parent().parent().find(".to-cart").attr("data-quantity", val);
6045      $(this).parents(".counter_block").parent().parent().parent().find(".one_click").attr("data-quantity", val);
6046      $(this)
6047        .parents(".counter_block")
6048        .parent()
6049        .parent()
6050        .parent()
6051        .parent()
6052        .find(".one_click")
6053        .attr("data-quantity", val); //for offers in list
6054      $(this).parents(".catalog_item_wrapp").find(".inner_wrap.TYPE_1 .one_click").attr("data-quantity", val); //for first type buttons in catalog_block
6055
6056      $(this).val(val);
6057
6058      var $calculate = $(this).closest(".item").length
6059        ? $(this).closest(".item").find(".calculate-delivery")
6060        : $(this).closest(".catalog_detail").find(".calculate-delivery");
6061      if ($calculate.length) {
6062        $calculate.each(function () {
6063          var $calculateSpan = $(this).find("span[data-event=jqm]").first();
6064
6065          if ($calculateSpan.length) {
6066            var $clone = $calculateSpan.clone();
6067            $clone.attr("data-param-quantity", val).removeClass("clicked");
6068            $clone.insertAfter($calculateSpan).on("click", function () {
6069              if (!jQuery.browser.mobile) {
6070                $(this).parent().addClass("loadings");
6071              }
6072            });
6073            $calculateSpan.remove();
6074          }
6075
6076          if ($(this).hasClass("with_preview")) {
6077            $(this).removeClass("inited");
6078
6079            if (timerInitCalculateDelivery) {
6080              clearTimeout(timerInitCalculateDelivery);
6081            }
6082
6083            timerInitCalculateDelivery = setTimeout(function () {
6084              initCalculatePreview();
6085              timerInitCalculateDelivery = false;
6086            }, 1000);
6087          }
6088        });
6089      }
6090
6091      var eventdata = { type: "change", params: { id: $(this), value: val } };
6092      BX.onCustomEvent("onCounterProductAction", [eventdata]);
6093
6094      if ($(this).closest(".complect-block").length && typeof setNewPriceComplect === "function") {
6095        setNewPriceComplect();
6096      }
6097    }
6098  });
6099
6100  BX.addCustomEvent("onCounterProductAction", function (eventdata) {
6101    if (typeof eventdata != "object") {
6102      eventdata = { type: "undefined" };
6103    }
6104    try {
6105      if (typeof eventdata.type != "undefined") {
6106        if (!eventdata.params.id.closest(".gifts").length) {
6107          // no gift
6108          var obProduct = eventdata.params.id.data("product");
6109          if (eventdata.params.id.closest(".has_offer_prop").length) {
6110            // type1 for offers in element list
6111            if (typeof window["obSkuQuantys"] === "undefined") window["obSkuQuantys"] = {};
6112
6113            // if(typeof window['obOffers'] === 'undefined')
6114            window["obSkuQuantys"][eventdata.params.id.closest(".offer_buy_block").find(".to-cart").data("item")] =
6115              eventdata.params.value;
6116          }
6117          if (typeof window[obProduct] == "object") {
6118            if (obProduct == "obOffers") setPriceAction("", "", "Y");
6119            else window[obProduct].setPriceAction("Y");
6120            if ($(".detail_page").length) {
6121              setNewHeader();
6122            }
6123          } else if (eventdata.params.id.length) {
6124            if (
6125              eventdata.params.id.closest(".main_item_wrapper").length &&
6126              arAsproOptions["THEME"]["SHOW_TOTAL_SUMM"] == "Y"
6127            ) {
6128              setPriceItem(eventdata.params.id.closest(".main_item_wrapper"), eventdata.params.value);
6129            }
6130          }
6131          BX.onCustomEvent("onCounterProductActionResize");
6132        }
6133      }
6134    } catch (e) {
6135      console.error(e);
6136    }
6137  });
6138
6139  /*show basket on hover */
6140  $(document).on("mouseenter", ".wrap_icon.top_basket, #headerfixed .basket-link.basket", function () {
6141    var _this = $(this);
6142    var parent = _this.closest("header, #headerfixed");
6143    var hover_block = parent.find(".basket_hover_block");
6144
6145    if (!hover_block.hasClass("loaded")) {
6146      basketTop("", hover_block);
6147    }
6148  });
6149
6150  /*show basket on click mobile */
6151  $(document).on("click", ".wrap_icon.wrap_basket.top_basket, #headerfixed .basket-link.basket", function (e) {
6152    var _this = $(this);
6153    if (isMobile) {
6154      if (!_this.hasClass("clicked")) {
6155        e.preventDefault();
6156        _this.addClass("clicked");
6157        setTimeout(function () {
6158          _this.removeClass("clicked");
6159        }, 3000);
6160      }
6161    }
6162  });
6163
6164  /*slide cart*/
6165  $(document).on("mouseenter", "#basket_line .basket_normal:not(.empty_cart):not(.bcart) .basket_block ", function () {
6166    $(this).closest(".basket_normal").find(".popup").addClass("block");
6167    $(this).closest(".basket_normal").find(".basket_popup_wrapp").stop(true, true).slideDown(150);
6168  });
6169  $(document).on("mouseleave", "#basket_line .basket_normal .basket_block ", function () {
6170    var th = $(this);
6171    $(this)
6172      .closest(".basket_normal")
6173      .find(".basket_popup_wrapp")
6174      .stop(true, true)
6175      .slideUp(150, function () {
6176        th.closest(".basket_normal").find(".popup").removeClass("block");
6177      });
6178  });
6179
6180  $(document).on("click", ".popup_button_basket", function () {
6181    var th = $(".to-cart[data-item=" + $(this).data("item") + "]");
6182
6183    var val = th.attr("data-quantity");
6184
6185    if (!val) $val = 1;
6186
6187    var tmp_props = th.data("props"),
6188      props = "",
6189      part_props = "",
6190      add_props = "N",
6191      fill_prop = {},
6192      iblockid = th.data("iblockid"),
6193      offer = th.data("offers"),
6194      rid = "",
6195      basket_props = "",
6196      item = th.attr("data-item");
6197
6198    if (offer != "Y") {
6199      offer = "N";
6200    } else {
6201      basket_props = th.closest(".prices_tab").find(".bx_sku_props input").val();
6202    }
6203    if (tmp_props) {
6204      props = tmp_props.split(";");
6205    }
6206    if (th.data("part_props")) {
6207      part_props = th.data("part_props");
6208    }
6209    if (th.data("add_props")) {
6210      add_props = th.data("add_props");
6211    }
6212    if ($(".rid_item").length) {
6213      rid = $(".rid_item").data("rid");
6214    } else if (th.data("rid")) {
6215      rid = th.data("rid");
6216    }
6217
6218    fill_prop = fillBasketPropsExt(th, "prop", "bx_ajax_text");
6219
6220    fill_prop.quantity = val;
6221    fill_prop.add_item = "Y";
6222    fill_prop.rid = rid;
6223    fill_prop.offers = offer;
6224    fill_prop.iblockID = iblockid;
6225    fill_prop.part_props = part_props;
6226    fill_prop.add_props = add_props;
6227    fill_prop.props = JSON.stringify(props);
6228    fill_prop.item = item;
6229    fill_prop.basket_props = basket_props;
6230
6231    var isDetail = th.closest(".product-action").length || th.closest("#headerfixed.with-product");
6232    var isSku2 = th.closest(".list-offers").length;
6233    var bIsService = th.closest(".buy_services_wrap").length;
6234
6235    if (!bIsService && (isDetail || isSku2)) {
6236      //var allServicesOn = th.closest('.product-container').find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
6237      var allServicesOn = [];
6238      if (isSku2) {
6239        allServicesOn = th
6240          .closest(".product-container")
6241          .find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
6242      } else {
6243        allServicesOn = $(".product-container").find(
6244          '.buy_services_wrap[data-parent_product="' + item + '"] .services-item [name="buy_switch_services"]:checked'
6245        );
6246      }
6247      var servicesNeedAdd = [];
6248      allServicesOn.each(function () {
6249        var _this = $(this);
6250        var buttonCart = _this.closest(".services-item").find(".to-cart");
6251
6252        servicesNeedAdd[buttonCart.data("item")] = {};
6253        servicesNeedAdd[buttonCart.data("item")]["id"] = buttonCart.data("item");
6254        servicesNeedAdd[buttonCart.data("item")]["quantity"] = buttonCart.attr("data-quantity");
6255        servicesNeedAdd[buttonCart.data("item")]["iblock_id"] = buttonCart.data("iblockid");
6256      });
6257      servicesNeedAdd = array_values_js(servicesNeedAdd);
6258      fill_prop.services = servicesNeedAdd;
6259    }
6260
6261    $.ajax({
6262      type: "POST",
6263      url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
6264      data: fill_prop,
6265      dataType: "json",
6266      success: function (data) {
6267        $(".basket_error_frame").jqmHide();
6268        if ("STATUS" in data) {
6269          getActualBasket(fill_prop.iblockID);
6270          if (data.STATUS === "OK") {
6271            th.hide();
6272            th.closest(".counter_wrapp").find(".counter_block_inner").hide();
6273            th.closest(".counter_wrapp").find(".counter_block").hide();
6274            th.parents("tr").find(".counter_block_wr .counter_block").hide();
6275            th.closest(".button_block").addClass("wide");
6276            th.parent().find(".in-cart").show();
6277
6278            addBasketCounter(item);
6279            //$('.wish_item[data-item='+item+']').removeClass("added");
6280            $(".wish_item[data-item=" + item + "]")
6281              .find(".value")
6282              .show();
6283            $(".wish_item[data-item=" + item + "]")
6284              .find(".value.added")
6285              .hide();
6286
6287            if ($("#ajax_basket").length) reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
6288
6289            if ($("#basket_line .basket_fly").length) {
6290              if (th.closest(".fast_view_frame").length || window.matchMedia("(max-width: 767px)").matches)
6291                basketFly("open", "N");
6292              else basketFly("open");
6293            }
6294          } else {
6295            showBasketError(BX.message(data.MESSAGE));
6296          }
6297        } else {
6298          showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
6299        }
6300      },
6301    });
6302  });
6303
6304  $(document).on("click", ".to-cart:not(.read_more), .basket_item_add", function (e) {
6305    e.preventDefault();
6306    var th = $(this);
6307    if (!th.hasClass("clicked")) {
6308      th.addClass("clicked");
6309      var val = $(this).attr("data-quantity");
6310      var tmp_props = $(this).data("props"),
6311        props = "",
6312        part_props = "",
6313        add_props = "N",
6314        fill_prop = {},
6315        iblockid = $(this).data("iblockid"),
6316        offer = $(this).data("offers"),
6317        rid = "",
6318        bBannerAction = false,
6319        basket_props = "",
6320        item = $(this).attr("data-item");
6321      if (th.closest(".but-cell").length) {
6322        if ($('.counter_block[data-item="' + item + '"]').length)
6323          val = $('.counter_block[data-item="' + item + '"] input').val();
6324      }
6325
6326      if (th.closest(".banner_buttons.with_actions").length) {
6327        //banner action
6328        var wrapper_btns = th.closest(".wraps_buttons");
6329        item = wrapper_btns.data("id");
6330        bBannerAction = true;
6331      }
6332
6333      if (!val) val = 1;
6334      if (offer != "Y") {
6335        offer = "N";
6336      } else {
6337        basket_props = $(this).closest(".prices_tab").find(".bx_sku_props input").val();
6338      }
6339      if (tmp_props) {
6340        props = tmp_props.split(";");
6341      }
6342      if ($(this).data("part_props")) {
6343        part_props = $(this).data("part_props");
6344      }
6345      if ($(this).data("add_props")) {
6346        add_props = $(this).data("add_props");
6347      }
6348      if ($(".rid_item").length) {
6349        rid = $(".rid_item").data("rid");
6350      } else if ($(this).data("rid")) {
6351        rid = $(this).data("rid");
6352      }
6353
6354      fill_prop = fillBasketPropsExt(th, "prop", th.data("bakset_div"));
6355
6356      fill_prop.quantity = val;
6357      fill_prop.add_item = "Y";
6358      fill_prop.rid = rid;
6359      fill_prop.offers = offer;
6360      fill_prop.iblockID = iblockid;
6361      fill_prop.part_props = part_props;
6362      fill_prop.add_props = add_props;
6363      fill_prop.props = JSON.stringify(props);
6364      fill_prop.item = item;
6365      fill_prop.basket_props = basket_props;
6366
6367      var isDetail = th.closest(".product-action").length || th.closest("#headerfixed.with-product");
6368      var isSku2 = th.closest(".list-offers").length;
6369      var bIsService = th.closest(".buy_services_wrap").length;
6370
6371      if (!bIsService && (isDetail || isSku2)) {
6372        //var allServicesOn = th.closest('.product-container').find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
6373        var allServicesOn = [];
6374        if (isSku2) {
6375          allServicesOn = th
6376            .closest(".product-container")
6377            .find('.buy_services_wrap .services-item [name="buy_switch_services"]:checked');
6378        } else {
6379          allServicesOn = $(".product-container").find(
6380            '.buy_services_wrap[data-parent_product="' + item + '"] .services-item [name="buy_switch_services"]:checked'
6381          );
6382        }
6383        var servicesNeedAdd = [];
6384        allServicesOn.each(function () {
6385          var _this = $(this);
6386          var buttonCart = _this.closest(".services-item").find(".to-cart");
6387
6388          servicesNeedAdd[buttonCart.data("item")] = {};
6389          servicesNeedAdd[buttonCart.data("item")]["id"] = buttonCart.data("item");
6390          servicesNeedAdd[buttonCart.data("item")]["quantity"] = buttonCart.attr("data-quantity");
6391          servicesNeedAdd[buttonCart.data("item")]["iblock_id"] = buttonCart.data("iblockid");
6392        });
6393        servicesNeedAdd = array_values_js(servicesNeedAdd);
6394        fill_prop.services = servicesNeedAdd;
6395      }
6396
6397      var servicesWrap = $(this).closest(".buy_services_wrap");
6398      if (bIsService) {
6399        var parent_product = servicesWrap.attr("data-parent_product");
6400        fill_prop["prop[BUY_PRODUCT_PROP]"] = parent_product;
6401        fill_prop["prop[ASPRO_BUY_PRODUCT_ID]"] = parent_product;
6402      }
6403
6404      if (bBannerAction) {
6405        if (th.hasClass("added")) {
6406          location.href = th.data("href");
6407          return false;
6408        } else {
6409          th.attr("title", th.data("title2"));
6410          th.toggleClass("added");
6411        }
6412
6413        if (wrapper_btns.find(".wish_item_add").length) wrapper_btns.find(".wish_item_add").removeClass("added");
6414      }
6415
6416      if (th.data("empty_props") == "N" /* && fill_prop.part_props != 'Y'*/) {
6417        var basket_popup_html = $("#" + th.data("bakset_div")).html();
6418        if (!basket_popup_html && th.closest(".item").find(".basket_props_block").length)
6419          basket_popup_html = th.closest(".item").find(".basket_props_block").html();
6420
6421        showBasketError(basket_popup_html, BX.message("ERROR_BASKET_PROP_TITLE"), "Y", th);
6422        BX.addCustomEvent("onCompleteAction", function (e) {
6423          if (!e.ignoreSelf) {
6424            var eventdata = { action: "loadForm", ignoreSelf: true };
6425            BX.onCustomEvent("onCompleteAction", [eventdata, th[0]]);
6426          }
6427        });
6428      } else {
6429        $.ajax({
6430          type: "POST",
6431          url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
6432          data: fill_prop,
6433          dataType: "json",
6434          success: function (data) {
6435            getActualBasket(fill_prop.iblockID);
6436
6437            var eventdata = { action: "loadForm" };
6438            BX.onCustomEvent("onCompleteAction", [eventdata, th[0]]);
6439            arStatusBasketAspro = {};
6440
6441            if (data !== null) {
6442              if ("STATUS" in data) {
6443                if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
6444                if (data.STATUS === "OK") {
6445                  // th.hide();
6446                  $(".to-cart[data-item=" + item + "]").hide();
6447                  $(".to-cart[data-item=" + item + "]")
6448                    .closest(".counter_wrapp")
6449                    .find(".counter_block_inner")
6450                    .hide();
6451                  $(".to-cart[data-item=" + item + "]")
6452                    .closest(".counter_wrapp")
6453                    .find(".counter_block")
6454                    .hide();
6455                  $(".to-cart[data-item=" + item + "]")
6456                    .parents("tr")
6457                    .find(".counter_block_wr .counter_block")
6458                    .hide();
6459                  $(".to-cart[data-item=" + item + "]")
6460                    .closest(".button_block")
6461                    .addClass("wide");
6462                  // th.parent().find('.in-cart').show();
6463                  $(".in-cart[data-item=" + item + "]").show();
6464
6465                  addBasketCounter(item);
6466                  //$('.wish_item[data-item='+item+']').removeClass("added");
6467                  $(".wish_item[data-item=" + item + "]")
6468                    .find(".value")
6469                    .show();
6470                  $(".wish_item[data-item=" + item + "]")
6471                    .find(".value.added")
6472                    .hide();
6473                  $(".wish_item.to[data-item=" + item + "]").show();
6474                  $(".wish_item.in[data-item=" + item + "]").hide();
6475
6476                  if ($("#ajax_basket").length) reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
6477
6478                  if ($("#basket_line .basket_fly").length) {
6479                    if (th.closest(".services_in_basket").length && !window.matchMedia("(max-width: 767px)").matches) {
6480                      basketFly("open", "SHOW"); //need for buy services in basket_fly
6481                    } else if (
6482                      th.closest(".fast_view_frame").length ||
6483                      window.matchMedia("(max-width: 767px)").matches ||
6484                      $("#basket_line .basket_fly.loaded").length
6485                    )
6486                      basketFly("open", "N");
6487                    else {
6488                      basketFly("open");
6489                    }
6490                  }
6491
6492                  //need for services on basket_page
6493                  if (th.closest(".services_in_basket_page").length) {
6494                    BX.Sale.BasketComponent.sendRequest("refreshAjax", {
6495                      fullRecalculation: "Y",
6496                      otherParams: {
6497                        param: "N",
6498                      },
6499                    });
6500                  }
6501
6502                  if ($(".top_basket").length) {
6503                    basketTop("open", $(".top_basket").find(".basket_hover_block"));
6504                  }
6505
6506                  if (
6507                    $("#headerfixed .wproducts .ajax_load .btn").length &&
6508                    th.closest(".product-action").length &&
6509                    th.next(".in-cart").length
6510                  ) {
6511                    var buttonHtml =
6512                      '<span class="buy_block"><span class="btn btn-default btn-sm slide_offer more type_block">' +
6513                      th.next(".in-cart").html() +
6514                      "</span></span>";
6515                    $("#headerfixed .wproducts .ajax_load .item-buttons .but-cell").html(buttonHtml);
6516                  }
6517                } else {
6518                  showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT);
6519                }
6520              } else {
6521                showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
6522              }
6523            } else {
6524              // th.hide();
6525              $(".to-cart[data-item=" + item + "]").hide();
6526              $(".to-cart[data-item=" + item + "]")
6527                .closest(".counter_wrapp")
6528                .find(".counter_block_inner")
6529                .hide();
6530              $(".to-cart[data-item=" + item + "]")
6531                .closest(".counter_wrapp")
6532                .find(".counter_block")
6533                .hide();
6534              $(".to-cart[data-item=" + item + "]")
6535                .parents("tr")
6536                .find(".counter_block_wr .counter_block")
6537                .hide();
6538              $(".to-cart[data-item=" + item + "]")
6539                .closest(".button_block")
6540                .addClass("wide");
6541              // th.parent().find('.in-cart').show();
6542              $(".in-cart[data-item=" + item + "]").show();
6543
6544              addBasketCounter(item);
6545              //$('.wish_item[data-item='+item+']').removeClass("added");
6546              $(".wish_item[data-item=" + item + "]")
6547                .find(".value")
6548                .show();
6549              $(".wish_item[data-item=" + item + "]")
6550                .find(".value.added")
6551                .hide();
6552
6553              if ($("#ajax_basket").length) reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
6554
6555              if ($("#basket_line .basket_fly").length) {
6556                if (
6557                  th.closest(".fast_view_frame").length ||
6558                  window.matchMedia("(max-width: 767px)").matches ||
6559                  $("#basket_line .basket_fly.loaded").length
6560                )
6561                  basketFly("open", "N");
6562                else basketFly("open");
6563              }
6564            }
6565          },
6566        });
6567      }
6568    }
6569  });
6570
6571  $(document).on("click", ".to-subscribe", function (e) {
6572    e.preventDefault();
6573    var th = $(this);
6574    if (!th.hasClass("clicked")) {
6575      th.addClass("clicked");
6576      if ($(this).is(".auth")) {
6577        if ($(this).hasClass("nsubsc")) {
6578          $(this).jqmEx();
6579          $(this).trigger("click");
6580        } else {
6581          location.href = arAsproOptions["SITE_DIR"] + "auth/?backurl=" + location.pathname;
6582        }
6583      } else {
6584        var item = $(this).attr("data-item"),
6585          iblockid = $(this).attr("data-iblockid");
6586        // $(this).hide();
6587        $(".to-subscribe[data-item=" + item + "]").hide();
6588        $(".to-subscribe[data-item=" + item + "]")
6589          .parent()
6590          .find(".in-subscribe")
6591          .show();
6592        $.get(
6593          arAsproOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
6594          $.proxy(function (data) {
6595            arStatusBasketAspro = {};
6596            getActualBasket(iblockid);
6597          })
6598        );
6599        th.removeClass("clicked");
6600      }
6601    }
6602  });
6603
6604  $(document).on("click", ".in-subscribe", function (e) {
6605    e.preventDefault();
6606    var item = $(this).attr("data-item"),
6607      iblockid = $(this).attr("data-iblockid");
6608    // $(this).hide();
6609    $(".in-subscribe[data-item=" + item + "]").hide();
6610    $(".in-subscribe[data-item=" + item + "]")
6611      .parent()
6612      .find(".to-subscribe")
6613      .removeClass("clicked");
6614    $(".in-subscribe[data-item=" + item + "]")
6615      .parent()
6616      .find(".to-subscribe")
6617      .show();
6618    $.get(
6619      arAsproOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
6620      $.proxy(function (data) {
6621        getActualBasket(iblockid);
6622        arStatusBasketAspro = {};
6623      })
6624    );
6625  });
6626
6627  $(document).on("click", ".wish_item, .wish_item_add", function (e) {
6628    e.preventDefault();
6629    var val = $(this).attr("data-quantity"),
6630      _this = $(this),
6631      offer = $(this).data("offers"),
6632      iblockid = $(this).data("iblock"),
6633      tmp_props = $(this).data("props"),
6634      props = "",
6635      bBannerAction = false,
6636      item = $(this).attr("data-item"),
6637      item2 = $(this).attr("data-item");
6638
6639    if (_this.closest(".banner_buttons.with_actions").length) {
6640      //banner action
6641      var wrapper_btns = _this.closest(".wraps_buttons");
6642      item = item2 = wrapper_btns.data("id");
6643      bBannerAction = true;
6644    }
6645
6646    if (!_this.hasClass("clicked")) {
6647      _this.addClass("clicked");
6648      if (!val) val = 1;
6649      if (offer != "Y") offer = "N";
6650      if (tmp_props) {
6651        props = tmp_props.split(";");
6652      }
6653      if (!$(this).hasClass("text")) {
6654        if ($(this).hasClass("added")) {
6655          if (!bBannerAction) {
6656            $(this).hide();
6657            $(this).closest(".wish_item_button").find(".to").show();
6658          }
6659          $(".like_icons").each(function () {
6660            if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) {
6661              $(this)
6662                .find('.wish_item.text[data-item="' + item + '"]')
6663                .removeClass("added");
6664              $(this)
6665                .find('.wish_item.text[data-item="' + item + '"]')
6666                .find(".value")
6667                .show();
6668              $(this)
6669                .find('.wish_item.text[data-item="' + item + '"]')
6670                .find(".value.added")
6671                .hide();
6672            }
6673            if ($(this).find(".wish_item_button").length) {
6674              /*$(this).find('.wish_item_button').find('.wish_item[data-item="'+item+'"]').removeClass('added');
6675							$(this).find('.wish_item_button').find('.wish_item[data-item="'+item+'"]').find('.value').show();
6676							$(this).find('.wish_item_button').find('.wish_item[data-item="'+item+'"]').find('.value.added').hide();*/
6677              $(this)
6678                .find(".wish_item_button")
6679                .find('.wish_item[data-item="' + item + '"].to')
6680                .show();
6681              $(this)
6682                .find(".wish_item_button")
6683                .find('.wish_item[data-item="' + item + '"].in')
6684                .hide();
6685            }
6686          });
6687        } else {
6688          if (!bBannerAction) {
6689            $(this).hide();
6690            $(this).closest(".wish_item_button").find(".in").addClass("added").show();
6691          }
6692
6693          $(".like_icons").each(function () {
6694            if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) {
6695              $(this)
6696                .find('.wish_item.text[data-item="' + item + '"]')
6697                .addClass("added");
6698              $(this)
6699                .find('.wish_item.text[data-item="' + item + '"]')
6700                .find(".value")
6701                .hide();
6702              $(this)
6703                .find('.wish_item.text[data-item="' + item + '"]')
6704                .find(".value.added")
6705                .css({ display: "block" });
6706            }
6707            if ($(this).find(".wish_item_button").length) {
6708              /*$(this).find('.wish_item_button').find('.wish_item[data-item="'+item+'"]').addClass('added');
6709							$(this).find('.wish_item_button').find('.wish_item[data-item="'+item+'"]').find('.value').hide();
6710							$(this).find('.wish_item_button').find('.wish_item[data-item="'+item+'"]').find('.value.added').show();*/
6711              $(this)
6712                .find(".wish_item_button")
6713                .find('.wish_item[data-item="' + item + '"].to')
6714                .hide();
6715              $(this)
6716                .find(".wish_item_button")
6717                .find('.wish_item[data-item="' + item + '"].in')
6718                .show();
6719            }
6720          });
6721        }
6722      } else {
6723        if (!$(this).hasClass("added")) {
6724          $(".wish_item[data-item=" + item + "]").addClass("added");
6725          $(".wish_item[data-item=" + item + "]")
6726            .find(".value")
6727            .hide();
6728          $(".wish_item[data-item=" + item + "]")
6729            .find(".value.added")
6730            .css("display", "block");
6731
6732          $(".wish_item.to[data-item=" + item + "]").hide();
6733          $(".wish_item.in[data-item=" + item + "]").show();
6734
6735          $(".like_icons").each(function () {
6736            if ($(this).find(".wish_item_button").length) {
6737              $(this)
6738                .find(".wish_item_button")
6739                .find('.wish_item[data-item="' + item + '"]')
6740                .addClass("added");
6741              $(this)
6742                .find(".wish_item_button")
6743                .find('.wish_item[data-item="' + item + '"]')
6744                .find(".value")
6745                .hide();
6746              $(this)
6747                .find(".wish_item_button")
6748                .find('.wish_item[data-item="' + item + '"]')
6749                .find(".value.added")
6750                .show();
6751            }
6752          });
6753        } else {
6754          $(".wish_item[data-item=" + item + "]").removeClass("added");
6755          $(".wish_item[data-item=" + item + "]")
6756            .find(".value")
6757            .show();
6758          $(".wish_item[data-item=" + item + "]")
6759            .find(".value.added")
6760            .hide();
6761
6762          $(".wish_item.to[data-item=" + item + "]").show();
6763          $(".wish_item.in[data-item=" + item + "]").hide();
6764
6765          $(".like_icons").each(function () {
6766            if ($(this).find(".wish_item_button").length) {
6767              $(this)
6768                .find(".wish_item_button")
6769                .find('.wish_item[data-item="' + item + '"]')
6770                .removeClass("added");
6771              $(this)
6772                .find(".wish_item_button")
6773                .find('.wish_item[data-item="' + item + '"]')
6774                .find(".value")
6775                .show();
6776              $(this)
6777                .find(".wish_item_button")
6778                .find('.wish_item[data-item="' + item + '"]')
6779                .find(".value.added")
6780                .hide();
6781            }
6782          });
6783        }
6784      }
6785
6786      $(".in-cart[data-item=" + item + "]").hide();
6787      $(".to-cart[data-item=" + item + "]").removeClass("clicked");
6788      $(".to-cart[data-item=" + item + "]")
6789        .parent()
6790        .removeClass("wide");
6791      if (
6792        !$(".counter_block[data-item=" + item + "]")
6793          .closest(".counter_wrapp")
6794          .find(".to-order").length
6795      ) {
6796        $(".to-cart[data-item=" + item + "]").show();
6797        $(".counter_block[data-item=" + item + "]")
6798          .closest(".counter_block_inner")
6799          .show();
6800        $(".counter_block[data-item=" + item + "]").show();
6801      }
6802
6803      if (bBannerAction) {
6804        _this.toggleClass("added");
6805
6806        if (_this.hasClass("added")) _this.attr("title", _this.data("title2"));
6807        else _this.attr("title", _this.data("title"));
6808
6809        if (wrapper_btns.find(".basket_item_add").length) wrapper_btns.find(".basket_item_add").removeClass("added");
6810      }
6811
6812      if (!$(this).closest(".module-cart").size()) {
6813        $.ajax({
6814          type: "GET",
6815          url: arAsproOptions["SITE_DIR"] + "ajax/item.php",
6816          data:
6817            "item=" +
6818            item2 +
6819            "&quantity=" +
6820            val +
6821            "&wish_item=Y" +
6822            "&offers=" +
6823            offer +
6824            "&iblockID=" +
6825            iblockid +
6826            "&props=" +
6827            JSON.stringify(props),
6828          dataType: "json",
6829          success: function (data) {
6830            getActualBasket(iblockid);
6831            arStatusBasketAspro = {};
6832            if (data !== null) {
6833              if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
6834              if ("STATUS" in data) {
6835                if (data.STATUS === "OK") {
6836                  if (arAsproOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
6837                    var eventdata = { goal: "goal_wish_add", params: { id: item2 } };
6838                    BX.onCustomEvent("onCounterGoals", [eventdata]);
6839                  }
6840                  if ($("#ajax_basket").length) reloadTopBasket("wish", $("#ajax_basket"), 200, 5000, "N");
6841
6842                  if ($("#basket_line .basket_fly").length) {
6843                    if (
6844                      _this.closest(".fast_view_frame").length ||
6845                      window.matchMedia("(max-width: 767px)").matches ||
6846                      $("#basket_line .basket_fly.loaded").length
6847                    )
6848                      basketFly("wish", "N");
6849                    else basketFly("wish");
6850                  }
6851                } else {
6852                  showBasketError(
6853                    BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT,
6854                    BX.message("ERROR_ADD_DELAY_ITEM")
6855                  );
6856                }
6857              } else {
6858                showBasketError(
6859                  BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT,
6860                  BX.message("ERROR_ADD_DELAY_ITEM")
6861                );
6862              }
6863            } else {
6864              if ($("#ajax_basket").length) reloadTopBasket("wish", $("#ajax_basket"), 200, 5000, "N");
6865
6866              if ($("#basket_line .basket_fly").length) {
6867                if (
6868                  _this.closest(".fast_view_frame").length ||
6869                  window.matchMedia("(max-width: 767px)").matches ||
6870                  $("#basket_line .basket_fly.loaded").length
6871                )
6872                  basketFly("wish", "N");
6873                else basketFly("wish");
6874              }
6875            }
6876            _this.removeClass("clicked");
6877          },
6878        });
6879      }
6880    }
6881  });
6882
6883  $(document).on("click", ".item_main_info .item_slider .flex-direction-nav li span", function (e) {
6884    if ($(".inner_slider .slides_block").length) {
6885      if ($(this).parent().hasClass("flex-nav-next")) $(".inner_slider .slides_block li.current").next().click();
6886      else $(".inner_slider .slides_block li.current").prev().click();
6887    }
6888  });
6889
6890  $(document).on("click", ".compare_item, .compare_item_add", function (e) {
6891    e.preventDefault();
6892    var item = $(this).attr("data-item");
6893    var iblockID = $(this).attr("data-iblock"),
6894      bBannerAction = false,
6895      th = $(this);
6896
6897    if (th.closest(".banner_buttons.with_actions").length) {
6898      //banner action
6899      var wrapper_btns = th.closest(".wraps_buttons");
6900      item = wrapper_btns.data("id");
6901      iblockID = wrapper_btns.data("iblockid");
6902      bBannerAction = true;
6903
6904      th.toggleClass("added");
6905
6906      if (th.hasClass("added")) th.attr("title", th.data("title2"));
6907      else th.attr("title", th.data("title"));
6908    }
6909
6910    if (!th.hasClass("clicked")) {
6911      th.addClass("clicked");
6912      if (!$(this).hasClass("text")) {
6913        if ($(this).hasClass("added")) {
6914          if (!bBannerAction) {
6915            $(this).hide();
6916            $(this).closest(".compare_item_button").find(".to").show();
6917          }
6918
6919          /*sync other button*/
6920          $(".like_icons").each(function () {
6921            if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) {
6922              $(this)
6923                .find('.compare_item.text[data-item="' + item + '"]')
6924                .removeClass("added");
6925              $(this)
6926                .find('.compare_item.text[data-item="' + item + '"]')
6927                .find(".value")
6928                .show();
6929              $(this)
6930                .find('.compare_item.text[data-item="' + item + '"]')
6931                .find(".value.added")
6932                .hide();
6933            }
6934            if ($(this).find(".compare_item_button").length) {
6935              /*$(this).find('.compare_item_button').find('.compare_item[data-item="'+item+'"]').removeClass('added');
6936							$(this).find('.compare_item_button').find('.compare_item[data-item="'+item+'"]').find('.value').show();
6937							$(this).find('.compare_item_button').find('.compare_item[data-item="'+item+'"]').find('.value.added').hide();*/
6938              $(this)
6939                .find(".compare_item_button")
6940                .find('.compare_item[data-item="' + item + '"].in')
6941                .hide();
6942              $(this)
6943                .find(".compare_item_button")
6944                .find('.compare_item[data-item="' + item + '"].to')
6945                .show();
6946            }
6947          });
6948        } else {
6949          if (!bBannerAction) {
6950            $(this).hide();
6951            $(this).closest(".compare_item_button").find(".in").show();
6952          }
6953
6954          /*sync other button*/
6955          $(".like_icons").each(function () {
6956            if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) {
6957              $(this)
6958                .find('.compare_item.text[data-item="' + item + '"]')
6959                .addClass("added");
6960              $(this)
6961                .find('.compare_item.text[data-item="' + item + '"]')
6962                .find(".value")
6963                .hide();
6964              $(this)
6965                .find('.compare_item.text[data-item="' + item + '"]')
6966                .find(".value.added")
6967                .css({ display: "block" });
6968            }
6969            if ($(this).find(".compare_item_button").length) {
6970              /*$(this).find('.compare_item_button').find('.compare_item[data-item="'+item+'"]').addClass('added');
6971							$(this).find('.compare_item_button').find('.compare_item[data-item="'+item+'"]').find('.value.added').show();
6972							$(this).find('.compare_item_button').find('.compare_item[data-item="'+item+'"]').find('.value').hide();*/
6973              $(this)
6974                .find(".compare_item_button")
6975                .find('.compare_item[data-item="' + item + '"].to')
6976                .hide();
6977              $(this)
6978                .find(".compare_item_button")
6979                .find('.compare_item[data-item="' + item + '"].in')
6980                .show();
6981            }
6982          });
6983        }
6984      } else {
6985        if (!$(this).hasClass("added")) {
6986          $(".compare_item[data-item=" + item + "]").addClass("added");
6987          $(".compare_item[data-item=" + item + "]")
6988            .find(".value")
6989            .hide();
6990          $(".compare_item[data-item=" + item + "]")
6991            .find(".value.added")
6992            .css("display", "block");
6993
6994          /*sync other button*/
6995          $(".like_icons").each(function () {
6996            if ($(this).find(".compare_item_button").length) {
6997              $(this)
6998                .find(".compare_item_button")
6999                .find('.compare_item[data-item="' + item + '"]')
7000                .addClass("added");
7001              $(this)
7002                .find(".compare_item_button")
7003                .find('.compare_item[data-item="' + item + '"]')
7004                .find(".value.added")
7005                .show();
7006              $(this)
7007                .find(".compare_item_button")
7008                .find('.compare_item[data-item="' + item + '"]')
7009                .find(".value")
7010                .hide();
7011            }
7012          });
7013        } else {
7014          $(".compare_item[data-item=" + item + "]").removeClass("added");
7015          $(".compare_item[data-item=" + item + "]")
7016            .find(".value")
7017            .show();
7018          $(".compare_item[data-item=" + item + "]")
7019            .find(".value.added")
7020            .hide();
7021
7022          /*sync other button*/
7023          $(".like_icons").each(function () {
7024            if ($(this).find(".compare_item_button").length) {
7025              $(this)
7026                .find(".compare_item_button")
7027                .find('.compare_item[data-item="' + item + '"]')
7028                .removeClass("added");
7029              $(this)
7030                .find(".compare_item_button")
7031                .find('.compare_item[data-item="' + item + '"]')
7032                .find(".value")
7033                .show();
7034              $(this)
7035                .find(".compare_item_button")
7036                .find('.compare_item[data-item="' + item + '"]')
7037                .find(".value.added")
7038                .hide();
7039            }
7040          });
7041        }
7042      }
7043
7044      $.get(
7045        arAsproOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&compare_item=Y&iblock_id=" + iblockID,
7046        $.proxy(function (data) {
7047          getActualBasket(iblockID, "Compare");
7048          arStatusBasketAspro = {};
7049          if ($("#compare_fly").length) {
7050            jsAjaxUtil.InsertDataToNode(
7051              arAsproOptions["SITE_DIR"] + "ajax/show_compare_preview_fly.php",
7052              "compare_fly",
7053              false
7054            );
7055          }
7056          th.removeClass("clicked");
7057        })
7058      );
7059    }
7060  });
7061
7062  /*
7063  $(".fancybox").fancybox({
7064    backFocus: false,
7065  });
7066  */
7067
7068  $(document).on("click", ".tabs>li", function () {
7069    var parent = $(this).parent();
7070    if (!$(this).hasClass("active")) {
7071      var sliderIndex = $(this).index(),
7072        curLiNav = $(this)
7073          .closest(".top_block")
7074          .find(".slider_navigation")
7075          .find(">li:eq(" + sliderIndex + ")"),
7076        curLi = $(this)
7077          .closest(".top_block")
7078          .siblings(".tabs_content")
7079          .find(">li:eq(" + sliderIndex + ")");
7080      $(this).addClass("active").addClass("cur").siblings().removeClass("active").removeClass("cur");
7081      curLi.addClass("cur").siblings().removeClass("cur");
7082      curLiNav.addClass("cur").siblings().removeClass("cur");
7083
7084      if (parent.hasClass("ajax")) {
7085        // front tabs
7086        if (!$(this).hasClass("clicked")) {
7087          $.ajax({
7088            url: arAsproOptions["SITE_DIR"] + "include/mainpage/comp_catalog_ajax.php",
7089            type: "POST",
7090            data: {
7091              AJAX_POST: "Y",
7092              FILTER_HIT_PROP: $(this).data("code"),
7093              AJAX_PARAMS: $(this).closest(".tab_slider_wrapp").find(".request-data").data("value"),
7094              GLOBAL_FILTER: curLi.data("filter"),
7095            },
7096          }).success(function (html) {
7097            curLi.find(".tabs_slider").html(html);
7098            var container = curLi.closest(".content_wrapper_block");
7099            if (container.length) {
7100              var bNav = curLi.find(".bottom_nav .module-pagination").length > 0;
7101              if (bNav) {
7102                container.removeClass("without-border");
7103              } else {
7104                container.addClass("without-borded");
7105              }
7106            }
7107            setTimeout(function () {
7108              curLi.addClass("opacity1");
7109            }, 100);
7110
7111            /*equal height*/
7112            // curLi.find('.catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title').sliceHeight({item:'.catalog_item:visible', mobile: true});
7113            // curLi.find('.catalog_block .catalog_item_wrapp .catalog_item .item_info:visible').sliceHeight({item:'.catalog_item:visible', mobile: true});
7114            // curLi.find('.catalog_block .catalog_item_wrapp .catalog_item:visible').sliceHeight({classNull: '.footer_button', item:'.catalog_item:visible', mobile: true});
7115
7116            initCountdown();
7117          });
7118          $(this).addClass("clicked");
7119        } else {
7120          var container = curLi.closest(".content_wrapper_block");
7121          if (container.length) {
7122            var bNav = curLi.find(".bottom_nav .module-pagination").length > 0;
7123            if (bNav) {
7124              container.removeClass("without-border");
7125            } else {
7126              container.addClass("without-borded");
7127            }
7128          }
7129          /*$('.cur .catalog_block .catalog_item_wrapp.catalog_item:not(.big):visible').sliceHeight({
7130						classNull: '.footer_button',
7131						item:'.cur .catalog_block .catalog_item_wrapp.catalog_item:not(.big):visible',
7132						classes: [
7133							'.item_info .item-title',
7134							'.item_info .sa_block',
7135							'.item_info .cost.prices',
7136						],
7137						mobile: true,
7138					});*/
7139        }
7140      }
7141
7142      var eventdata = { index: sliderIndex, target: $(this) };
7143      BX.onCustomEvent("clickedTabsLi", [eventdata]);
7144    }
7145  });
7146
7147  /*search click*/
7148  $(".search_block .icon").on("click", function () {
7149    var th = $(this);
7150    if ($(this).hasClass("open")) {
7151      $(this).closest(".center_block").find(".search_middle_block").removeClass("active");
7152      $(this).removeClass("open");
7153      $(this).closest(".center_block").find(".search_middle_block").find(".noborder").hide();
7154    } else {
7155      setTimeout(function () {
7156        th.closest(".center_block").find(".search_middle_block").find(".noborder").show();
7157      }, 100);
7158      $(this).closest(".center_block").find(".search_middle_block").addClass("active");
7159      $(this).addClass("open");
7160    }
7161  });
7162
7163  $(document).on("click", ".no_goods .button", function () {
7164    $(".bx_filter .smartfilter .bx_filter_search_reset").trigger("click");
7165  });
7166
7167  $(document).on("click", ".js-load-link", function (e) {
7168    AjaxClickLink(e);
7169  });
7170
7171  $(document).on("click", ".svg-inline-bottom_nav-icon", function () {
7172    $(this).next().trigger("click");
7173  });
7174  $(document).on("click", ".ajax_load_btn", function () {
7175    var _this = $(this),
7176      url = _this.closest(".container").find(".module-pagination .flex-direction-nav .flex-next").attr("href"),
7177      th = _this.find(".more_text_ajax"),
7178      bottom_nav = _this.closest(".bottom_nav"),
7179      mobileBottomNav = bottom_nav.hasClass("mobile_slider"),
7180      bLoadingState = _this.closest(".animate-load-state").length;
7181
7182    if (!th.hasClass("loading")) {
7183      th.addClass("loading");
7184      if (mobileBottomNav) {
7185        var icon = bottom_nav.find(".svg-inline-bottom_nav-icon");
7186        icon.css("display", "none");
7187      }
7188      if (bLoadingState) _this.addClass("loadings");
7189
7190      var objUrl = parseUrlQuery(),
7191        add_url = "";
7192      obGetData = { ajax_get: "Y", AJAX_REQUEST: "Y" };
7193
7194      if (_this.closest(".wrapper_inner.front").length) {
7195        //index page
7196        var class_block = th.closest(".drag-block").data("class").replace("_drag", "");
7197        class_block = class_block.replace(/\s/g, "");
7198        obGetData.BLOCK = class_block;
7199      }
7200
7201      if (_this.closest(".tab").length) {
7202        //tabs block
7203        var parentTab = th.closest(".tab");
7204        obGetData.FILTER_HIT_PROP = parentTab.data("code");
7205        obGetData.GLOBAL_FILTER = parentTab.data("filter");
7206        url = _this.closest(".bottom_nav").find(".module-pagination .flex-direction-nav .flex-next").attr("href");
7207      }
7208
7209      if (_this.closest(".content_linked_goods").length) {
7210        //linked_goods block in content
7211        var filterSections = th.closest(".content_linked_goods").attr("data-sections-ids");
7212        obGetData.ajax_section_id = decodeURIComponent(filterSections);
7213
7214        url = _this.closest(".bottom_nav").find(".module-pagination .flex-direction-nav .flex-next").attr("href");
7215      }
7216
7217      if ("clear_cache" in objUrl) {
7218        if (objUrl.clear_cache == "Y") add_url = "&clear_cache=Y";
7219      }
7220      if (_this.hasClass("ajax")) obGetData.ajax = "y";
7221
7222      if (th.closest(".goods-block.ajax_load")) obGetData.bitrix_include_areas = "N";
7223
7224      if (_this.closest(".nav-data_block").length) {
7225        //need data-block
7226        obGetData.data_block = _this.closest(".nav-data_block").attr("data-block");
7227        obGetData.pagen_data_block = "Y";
7228        url = _this.closest(".bottom_nav").find(".module-pagination .flex-direction-nav .flex-next").attr("href");
7229      }
7230
7231      $.ajax({
7232        url: url + add_url,
7233        data: obGetData,
7234        success: function (html) {
7235          pasteAjaxPagination(html, th, bottom_nav, bLoadingState, _this);
7236        },
7237        error: function (html) {
7238          pasteAjaxPagination(html.responseText, th, bottom_nav, bLoadingState, _this);
7239        },
7240      });
7241    }
7242  });
7243
7244  function pasteAjaxPagination(html, th, bottom_nav, bLoadingState, _this) {
7245    var mobileBottomClicked = bottom_nav.hasClass("mobile_slider");
7246    var hasMobileBottomNav = $(html).find(".bottom_nav.mobile_slider");
7247    var bottomNav = hasMobileBottomNav.length ? hasMobileBottomNav : $(html).find(".bottom_nav");
7248    var bottomNavHtml = bottomNav.html();
7249    var bottomNavScrollClass = bottomNav.data("scroll-class");
7250    var hasBottomNav = $(html).find(".ajax_load_btn").length;
7251
7252    if (th.closest(".ajax_load").length && !mobileBottomClicked) {
7253      th.removeClass("loading");
7254      if (th.closest(".ajax_load").find(".js_append").length) {
7255        if (_this.closest(".catalog_in_content").length) {
7256          th.closest(".ajax_load").find(".js_append").append($(".inner_wrapper .js_wrapper_items>", html)); //need for brands & landings
7257        } else {
7258          th.closest(".ajax_load").find(".js_append").append(html);
7259        }
7260        th.closest(".ajax_load").find(".bottom_nav_wrapper").remove();
7261      } else {
7262        if ($(".display_list").length) {
7263          $(".display_list").append(html);
7264          th.closest(".display_list").find(".bottom_nav_wrapper").remove();
7265        } else if ($(".block_list").length) {
7266          $(".block_list").append(html);
7267          touchItemBlock(".catalog_item a");
7268          th.closest(".block_list").find(".bottom_nav_wrapper").remove();
7269        } else if ($(".module_products_list").length) {
7270          $(".module_products_list > tbody").append(html);
7271          th.closest(".module_products_list > tbody").find(".bottom_nav_wrapper").remove();
7272        }
7273      }
7274
7275      setStatusButton();
7276      checkLinkedArticles();
7277      checkLinkedBlocks(".linked-banners-list");
7278
7279      var eventdata = { action: "ajaxContentLoadedTab" };
7280      BX.onCustomEvent("onAjaxSuccess", [eventdata]);
7281      _this.closest(".bottom_nav").html(bottomNavHtml);
7282    } else {
7283      var eventdata = { action: "ajaxContentLoaded" };
7284
7285      if ($(".banners-small.front").length) {
7286        $(".banners-small .items.row").append(html);
7287        $(".bottom_nav").html($(".banners-small .items.row .bottom_nav").html());
7288        $(".banners-small .items.row .bottom_nav").remove();
7289        if (hasBottomNav) {
7290          $(".banners-small .items.row").addClass("has-bottom-nav");
7291        } else {
7292          $(".banners-small .items.row").removeClass("has-bottom-nav");
7293        }
7294      } else {
7295        if (bottom_nav.data("append") !== undefined && bottom_nav.data("parent") !== undefined) {
7296          var target = html;
7297          if (bottom_nav.data("target") !== undefined) {
7298            target = $(html).find(bottom_nav.data("target"));
7299          }
7300          if (mobileBottomClicked || hasMobileBottomNav.length) {
7301            var mobileSliderNav = th.closest(bottom_nav.data("parent")).find(".bottom_nav.mobile_slider");
7302            if (mobileSliderNav.length) {
7303              mobileSliderNav.before(target);
7304            } else {
7305              bottom_nav.before(target);
7306            }
7307          } else {
7308            th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).append(target);
7309          }
7310          th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).find(".bottom_nav_wrapper").remove();
7311
7312          if (hasBottomNav) {
7313            if (bottomNavScrollClass !== undefined) {
7314              th.closest(bottom_nav.data("parent")).find(bottomNavScrollClass).addClass("has-bottom-nav");
7315            }
7316            th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).addClass("has-bottom-nav");
7317          } else {
7318            if (bottomNavScrollClass !== undefined) {
7319              th.closest(bottom_nav.data("parent")).find(bottomNavScrollClass).removeClass("has-bottom-nav");
7320            }
7321            th.closest(bottom_nav.data("parent")).find(bottom_nav.data("append")).removeClass("has-bottom-nav");
7322          }
7323
7324          bottom_nav = th.closest(bottom_nav.data("parent")).find(".bottom_nav");
7325          bottom_nav.html(bottomNavHtml);
7326          var icon = bottom_nav.find(".svg-inline-bottom_nav-icon");
7327          icon.css("display", "");
7328
7329          eventdata.container = th.closest(bottom_nav.data("parent"));
7330        } else {
7331          if (th.closest(".item-views").find(".items").length) {
7332            th.closest(".item-views").find(".items").append(html);
7333          } else {
7334            $(html).insertBefore($(".blog .bottom_nav"));
7335          }
7336
7337          bottom_nav.html($(".bottom_nav:hidden").html());
7338          if (hasBottomNav) {
7339            th.closest(".item-views").find(".items").addClass("has-bottom-nav");
7340          } else {
7341            th.closest(".item-views").find(".items").removeClass("has-bottom-nav");
7342          }
7343          _this.closest(".item-views").find(".bottom_nav:hidden").remove();
7344        }
7345      }
7346
7347      eventdata.content = html;
7348      eventdata.container = th;
7349      BX.onCustomEvent("onCompleteAction", [eventdata, th[0]]);
7350
7351      setTimeout(function () {
7352        $(".banners-small .item.normal-block").sliceHeight({ resize: false });
7353        if ($(".item.slice-item").length) {
7354          $(".item.slice-item .title").sliceHeight({ resize: false });
7355          $(".item.slice-item").sliceHeight({ resize: false });
7356        }
7357        th.removeClass("loading");
7358        if (bLoadingState) _this.removeClass("loadings");
7359      }, 100);
7360    }
7361    initCountdown();
7362  }
7363
7364  // form rating
7365  $(document).on("mouseenter", ".form .votes_block.with-text .item-rating", function () {
7366    var $this = $(this),
7367      index = $this.index(),
7368      ratingValue = $this.data("rating_value"),
7369      ratingMessage = $this.data("message");
7370
7371    $(this).addClass("filed");
7372    $this.siblings().each(function () {
7373      if ($(this).index() <= index) $(this).addClass("filed");
7374      else $(this).removeClass("filed");
7375    });
7376    $this.closest(".votes_block").find(".rating_message").text(ratingMessage);
7377  });
7378
7379  $(document).on("mouseleave", ".form .votes_block.with-text", function () {
7380    var $this = $(this),
7381      index = $this.data("rating"),
7382      ratingMessage = $this.closest(".votes_block").find(".rating_message").data("message");
7383
7384    $this.find(".item-rating").each(function () {
7385      if ($(this).index() < index && index !== undefined) $(this).addClass("filed");
7386      else $(this).removeClass("filed");
7387    });
7388    $this.closest(".votes_block").find(".rating_message").text(ratingMessage);
7389  });
7390
7391  $(document).on("click", ".form .votes_block.with-text .item-rating", function () {
7392    var $this = $(this),
7393      rating = $this.closest(".votes_block").data("rating"),
7394      index = $this.index() + 1,
7395      ratingMessage = $this.data("message");
7396
7397    $this.closest(".votes_block").data("rating", index);
7398    if ($this.closest(".form-control").find("input[name=RATING]").length) {
7399      $this.closest(".form-control").find("input[name=RATING]").val(index);
7400    } else {
7401      $this.closest(".form-control").find("input[data-sid=RATING]").val(index);
7402    }
7403    $this.closest(".votes_block").find(".rating_message").data("message", ratingMessage);
7404  });
7405
7406  //set cookie for basket link click
7407  $(document).on(
7408    "click",
7409    ".bx_ordercart_order_table_container .control > a, .basket-item-actions-remove, a[data-entity=basket-item-remove-delayed]",
7410    function (e) {
7411      $.removeCookie("click_basket", { path: "/" });
7412      $.cookie("click_basket", "Y", { path: "/" });
7413    }
7414  );
7415
7416  $(document).on("click", ".bx_compare .tabs-head li", function () {
7417    var url = $(this).find(".sortbutton").data("href");
7418    BX.showWait(BX("bx_catalog_compare_block"));
7419    $.ajax({
7420      url: url,
7421      data: { ajax_action: "Y" },
7422      success: function (html) {
7423        history.pushState(null, null, url);
7424        $("#bx_catalog_compare_block").html(html);
7425        BX.closeWait();
7426      },
7427    });
7428  });
7429  var hoveredTrs;
7430  $(document).on(
7431    {
7432      mouseover: function (e) {
7433        var _ = $(this);
7434        var tbodyIndex = _.closest("tbody").index() + 1; //+1 for nth-child
7435        var trIndex = _.index() + 1; // +1 for nth-child
7436        hoveredTrs = $(e.delegateTarget)
7437          .find(".data_table_props")
7438          .children(":nth-child(" + tbodyIndex + ")")
7439          .children(":nth-child(" + trIndex + ")")
7440          .addClass("hovered");
7441      },
7442      mouseleave: function (e) {
7443        if (hoveredTrs) hoveredTrs.removeClass("hovered");
7444      },
7445    },
7446    ".bx_compare .data_table_props tbody>tr"
7447  );
7448  $(document).on("click", ".fancy_zoom", function (e) {
7449    e.preventDefault();
7450    var arPict = [],
7451      index = 0;
7452    $(this)
7453      .closest(".product-detail-gallery__container")
7454      .find(".product-detail-gallery__thmb-container .product-detail-gallery__item")
7455      .each(function () {
7456        var obImg = {};
7457        obImg = {
7458          src: $(this).data("big"),
7459          // opts: {
7460          //   caption: $(this).find("img").attr("alt"),
7461          // },
7462        };
7463        if ($(this).parent().hasClass("current")) {
7464          index = $(this).parent().index();
7465        }
7466        arPict.push(obImg);
7467      });
7468    if (!arPict.length) {
7469      arPict.push({
7470        src: $(this).closest(".product-detail-gallery__container").find(".zoom_picture").data("xoriginal"),
7471      });
7472    }
7473    if (typeof $.fn.fancybox !== "function") {
7474      return;
7475    }
7476    $.fancybox.open(
7477      arPict,
7478      {
7479        loop: false,
7480        buttons: [
7481          // "zoom",
7482          //"share",
7483          // "slideShow",
7484          //"fullScreen",
7485          //"download",
7486          // "thumbs",
7487          "close",
7488        ],
7489      },
7490      index
7491    );
7492  });
7493
7494  /*tabs*/
7495  $(".tabs_section .tabs-head li").on("click", function () {
7496    if (!$(this).is(".current")) {
7497      $(".tabs_section .tabs-head li").removeClass("current");
7498      $(this).addClass("current");
7499      $(".tabs_section ul.tabs_content li").removeClass("current");
7500      if ($(this).attr("id") == "product_reviews_tab") {
7501        $(".shadow.common").hide();
7502        $("#reviews_content").show();
7503      } else {
7504        $(".shadow.common").show();
7505        $("#reviews_content").hide();
7506        $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")").addClass("current");
7507      }
7508    }
7509  });
7510
7511  /*open first section slide*/
7512  setTimeout(function () {
7513    $(".jobs_wrapp .item:first .name tr").trigger("click");
7514  }, 300);
7515
7516  $(".choise").on("click", function () {
7517    var _this = $(this);
7518    if (typeof _this.attr("data-block") != "undefined") {
7519      if ($(_this.attr("data-block")).closest(".tab-pane").length) {
7520        $('.ordered-block a[href="#' + $(_this.attr("data-block")).closest(".tab-pane").attr("id") + '"]').click();
7521        _this.data("block", ".ordered-block.tabs-block");
7522        $(_this.data("block")).data("offset", -100);
7523      } else {
7524        $(_this.data("block")).data("offset", -100);
7525      }
7526      scrollToBlock(_this.data("block"));
7527    }
7528  });
7529
7530  $(document).on("click", ".buy_block .slide_offer", function () {
7531    scroll_block($(".js-offers-scroll"));
7532  });
7533  $(".share  > .share_wrapp .text").on("click", function () {
7534    var block = $(this).parent().find(".shares");
7535    if (!block.is(":visible") && !$(this).closest(".share.top").length) $("#content").css("z-index", 3);
7536    block.fadeToggle(100, function () {
7537      if (!block.is(":visible")) $("#content").css("z-index", 2);
7538    });
7539  });
7540  $("html, body").on("mousedown", function (e) {
7541    if (typeof e.target.className == "string" && e.target.className.indexOf("adm") < 0) {
7542      e.stopPropagation();
7543      $("div.shares").fadeOut(100, function () {
7544        $("#content").css("z-index", 2);
7545        $(".price_txt .share_wrapp").removeClass("opened");
7546      });
7547      $(".search_middle_block").removeClass("active_wide");
7548    }
7549  });
7550  $(".share_wrapp")
7551    .find("*")
7552    .on("mousedown", function (e) {
7553      e.stopPropagation();
7554    });
7555
7556  $(".price_txt .share_wrapp .text").click(function () {
7557    $(this).parent().toggleClass("opened");
7558    $(this).parent().find(".shares").fadeToggle();
7559  });
7560
7561  $(document).on("click", ".reviews-collapse-link", function () {
7562    $(".reviews-reply-form").slideToggle();
7563  });
7564
7565  /* accordion action*/
7566  $(".panel-collapse").on("hidden.bs.collapse", function () {
7567    $(this).parent().toggleClass("opened");
7568  });
7569  $(".panel-collapse").on("show.bs.collapse", function () {
7570    $(this).parent().toggleClass("opened");
7571  });
7572
7573  /* accordion */
7574  $(".accordion-head").on("click", function (e) {
7575    e.preventDefault();
7576    if (!$(this).next().hasClass("collapsing")) {
7577      $(this).toggleClass("accordion-open");
7578      $(this).toggleClass("accordion-close");
7579    }
7580  });
7581
7582  /* progress bar */
7583  $("[data-appear-progress-animation]").each(function () {
7584    var $this = $(this);
7585    $this.appear(
7586      function () {
7587        var delay = $this.attr("data-appear-animation-delay") ? $this.attr("data-appear-animation-delay") : 1;
7588        if (delay > 1) $this.css("animation-delay", delay + "ms");
7589        $this.addClass($this.attr("data-appear-animation"));
7590
7591        setTimeout(function () {
7592          $this.animate(
7593            {
7594              width: $this.attr("data-appear-progress-animation"),
7595            },
7596            1500,
7597            "easeOutQuad",
7598            function () {
7599              $this.find(".progress-bar-tooltip").animate(
7600                {
7601                  opacity: 1,
7602                },
7603                500,
7604                "easeOutQuad"
7605              );
7606            }
7607          );
7608        }, delay);
7609      },
7610      { accX: 0, accY: -50 }
7611    );
7612  });
7613
7614  initCountdown();
7615
7616  /* portfolio item */
7617  if ($(".item.animated-block").length) {
7618    $(".item.animated-block").appear(
7619      function () {
7620        var $this = $(this);
7621
7622        $this.addClass($this.data("animation")).addClass("visible");
7623      },
7624      { accX: 0, accY: 150 }
7625    );
7626  }
7627
7628  /* flexslider appear */
7629  if ($(".appear-block").length) {
7630    $(".appear-block").appear(
7631      function () {
7632        var $this = $(this);
7633        $this.removeClass("appear-block");
7634
7635        CheckFlexSlider();
7636        InitFlexSlider();
7637        InitOwlSlider();
7638      },
7639      { accX: 0, accY: 150 }
7640    );
7641  }
7642
7643  /* js-load-block appear */
7644  if ($(".js-load-block").length) {
7645    var objUrl = parseUrlQuery();
7646    var bClearCache = false;
7647    if ("clear_cache" in objUrl) {
7648      if (objUrl.clear_cache == "Y") {
7649        bClearCache = true;
7650      }
7651    }
7652
7653    var items = [];
7654    var bIdle = true;
7655    var insertNextBlockContent = function () {
7656      if (bIdle) {
7657        if (items.length) {
7658          bIdle = false;
7659          var item = items.pop();
7660
7661          item.content = $.trim(item.content);
7662
7663          // remove /bitrix/js/main/core/core_window.js if it was loaded already
7664          if (item.content.indexOf("/bitrix/js/main/core/core_window.") !== -1 && BX.WindowManager) {
7665            item.content = item.content.replace(
7666              /<script src="\/bitrix\/js\/main\/core\/core_window\.[^>]*><\/script>/gm,
7667              ""
7668            );
7669          }
7670
7671          // remove /bitrix/js/currency/core_currency.js if it was loaded already
7672          if (
7673            item.content.indexOf("/bitrix/js/currency/core_currency.") !== -1 &&
7674            typeof BX.Currency === "object" &&
7675            BX.Currency.defaultFormat
7676          ) {
7677            item.content = item.content.replace(
7678              /<script src="\/bitrix\/js\/currency\/core_currency\.[^>]*><\/script>/gm,
7679              ""
7680            );
7681          }
7682
7683          // remove /bitrix/js/main/pageobject/pageobject.js if it was loaded already
7684          if (item.content.indexOf("/bitrix/js/main/pageobject/pageobject.") !== -1 && BX.PageObject) {
7685            item.content = item.content.replace(
7686              /<script src="\/bitrix\/js\/main\/pageobject\/pageobject\.[^>]*><\/script>/gm,
7687              ""
7688            );
7689          }
7690
7691          // remove /bitrix/js/main/polyfill/promise/js/promise.js if it not need
7692          if (
7693            item.content.indexOf("/bitrix/js/main/polyfill/promise/js/promise.") !== -1 &&
7694            typeof window.Promise !== "undefined" &&
7695            window.Promise.toString().indexOf("[native code]") !== -1
7696          ) {
7697            item.content = item.content.replace(
7698              /<script src="\/bitrix\/js\/main\/polyfill\/promise\/js\/promise\.[^>]*><\/script>/gm,
7699              ""
7700            );
7701          }
7702
7703          var ob = BX.processHTML(item.content);
7704
7705          // stop ya metrika webvisor DOM indexer
7706          pauseYmObserver();
7707
7708          item.block.removeAttr("data-file").removeClass("loader_circle");
7709
7710          if (item.block.data("appendTo")) {
7711            item.block.find(item.block.data("appendTo"))[0].innerHTML = ob.HTML;
7712          } else {
7713            if (item.block.find('> div[id*="bx_incl_"]').length) {
7714              item.block.find('> div[id*="bx_incl_"]')[0].innerHTML = ob.HTML;
7715            } else {
7716              item.block[0].innerHTML = ob.HTML;
7717            }
7718          }
7719
7720          BX.ajax.processScripts(ob.SCRIPT);
7721
7722          var eventdata = { action: "jsLoadBlock" };
7723          BX.onCustomEvent("onCompleteAction", [eventdata, item.block]);
7724
7725          // resume ya metrika webvisor
7726          // 500ms
7727          setTimeout(resumeYmObserver, 500);
7728
7729          bIdle = true;
7730          insertNextBlockContent();
7731        }
7732      }
7733    };
7734
7735    $(".js-load-block").appear(
7736      function () {
7737        var $this = $(this);
7738
7739        if ($this.data("file")) {
7740          var add_url = bClearCache ? "?clear_cache=Y" : "";
7741          if ($this.data("block")) {
7742            if ($this.data("file").indexOf("?") !== -1) {
7743              if (bClearCache) {
7744                add_url = add_url.slice(1);
7745              }
7746              add_url += "&BLOCK=" + $this.data("block");
7747            } else {
7748              add_url += (bClearCache ? "&" : "?") + "BLOCK=" + $this.data("block");
7749            }
7750          }
7751
7752          // get content
7753          $.get($this.data("file") + add_url).done(function (html) {
7754            items.push({
7755              block: $this,
7756              content: html,
7757            });
7758
7759            if (items.length == 1) {
7760              setTimeout(insertNextBlockContent, 100);
7761            }
7762          });
7763        }
7764      },
7765      { accX: 0, accY: isMobile ? 300 : 150 }
7766    );
7767  }
7768
7769  /*show ajax store amount product*/
7770  $(document).on("click", ".js-show-info-block", function (e) {
7771    if (window.matchMedia("(max-width: 500px)").matches) {
7772      return;
7773    }
7774    var $this = $(this);
7775    e.stopPropagation();
7776    $(".js-info-block").fadeOut();
7777
7778    if ($this.hasClass("opened")) {
7779      $(".js-show-info-block").removeClass("opened");
7780    } else {
7781      $(".js-show-info-block").removeClass("opened");
7782      $this.addClass("opened");
7783    }
7784
7785    if (!$this.siblings(".js-info-block").length) {
7786      var dataFields = $this.closest(".sa_block").data("fields");
7787      dataFields = dataFields == "null" || dataFields === undefined ? "" : dataFields;
7788      var dataUserFields = $this.closest(".sa_block").data("user-fields");
7789      dataUserFields = dataUserFields == "null" || dataUserFields === undefined ? "" : dataUserFields;
7790      var objUrl = parseUrlQuery(),
7791        add_url = "";
7792      if ("clear_cache" in objUrl) {
7793        if (objUrl.clear_cache == "Y") add_url += "?clear_cache=Y";
7794      }
7795
7796      var obPostParams = {
7797        ajax: "Y",
7798        ELEMENT_ID: $this.data("id"),
7799        FIELDS: dataFields,
7800        USER_FIELDS: dataUserFields,
7801        STORES: $this.closest(".sa_block").data("stores") || "",
7802      };
7803
7804      $this.addClass("loadings");
7805      $.post(arAsproOptions["SITE_DIR"] + "ajax/productStoreAmountCompact.php" + add_url, obPostParams).done(function (
7806        html
7807      ) {
7808        $this.removeClass("loadings");
7809        $(html).appendTo($this.closest(".sa_block"));
7810
7811        $this
7812          .siblings(".js-info-block")
7813          .find(".more-btn a")
7814          .attr("href", $this.closest(".item_info").find("a").attr("href"));
7815        InitScrollBar();
7816
7817        var eventdata = { action: "jsShowStores" };
7818        BX.onCustomEvent("onCompleteAction", [eventdata, $this]);
7819      });
7820    } else {
7821      if ($this.hasClass("opened")) {
7822        $this
7823          .siblings(".js-info-block")
7824          .find(".more-btn a")
7825          .attr("href", $this.closest(".item_info").find("a").attr("href"));
7826        $this.siblings(".js-info-block").fadeIn();
7827        InitScrollBar();
7828      } else {
7829        $this.siblings(".js-info-block").fadeOut();
7830      }
7831    }
7832  });
7833  $(document).on("click", ".js-info-block .svg-inline-close", function () {
7834    $(".js-show-info-block").removeClass("opened");
7835    $(this).closest(".js-info-block").fadeOut();
7836  });
7837  /**/
7838
7839  /*adaptive menu start*/
7840  $(".menu.adaptive").on("click", function () {
7841    $(this).toggleClass("opened");
7842    if ($(this).hasClass("opened")) {
7843      $(".mobile_menu").toggleClass("opened").slideDown();
7844    } else {
7845      $(".mobile_menu").toggleClass("opened").slideUp();
7846    }
7847  });
7848  $(".mobile_menu .has-child >a").on("click", function (e) {
7849    var parentLi = $(this).parent();
7850    e.preventDefault();
7851    parentLi.toggleClass("opened");
7852    parentLi.find(".dropdown").slideToggle();
7853  });
7854
7855  $(".mobile_menu .search-input-div input").on("keyup", function (e) {
7856    var inputValue = $(this).val();
7857    $(".center_block .stitle_form input").val(inputValue);
7858    if (e.keyCode == 13) {
7859      $(".center_block .stitle_form form").submit();
7860    }
7861  });
7862
7863  $(".center_block .stitle_form input").on("keyup", function (e) {
7864    var inputValue = $(this).val();
7865    $(".mobile_menu .search-input-div input").val(inputValue);
7866    if (e.keyCode == 13) {
7867      $(".center_block .stitle_form form").submit();
7868    }
7869  });
7870
7871  $(".mobile_menu .search-button-div button").on("click", function (e) {
7872    e.preventDefault();
7873    var inputValue = $(this).parents().find("input").val();
7874    $(".center_block .stitle_form input").val(inputValue);
7875    $(".center_block .stitle_form form").submit();
7876  });
7877  /*adaptive menu end*/
7878
7879  $(document).on("click", ".mega-menu .dropdown-menu", function (e) {
7880    e.stopPropagation();
7881  });
7882
7883  $(document).on("click", ".mega-menu .dropdown-toggle.more-items", function (e) {
7884    e.preventDefault();
7885  });
7886
7887  $(document).on(
7888    "mouseenter",
7889    ".table-menu .dropdown,.table-menu .dropdown-submenu,.table-menu .dropdown-toggle",
7890    function () {
7891      // setTimeout(
7892      // 	function() {
7893      // 		CheckTopVisibleMenu();
7894      // 	}, 275);
7895    }
7896  );
7897  $(document).on("mouseenter", "#headerfixed .table-menu .dropdown-menu .dropdown-submenu", function () {
7898    setTimeout(function () {
7899      CheckTopVisibleMenu();
7900    }, 275);
7901  });
7902
7903  $(".mega-menu .search-item .search-icon, .menu-row #title-search .fa-close").on("click", function (e) {
7904    e.preventDefault();
7905    $(".menu-row #title-search").toggleClass("hide");
7906  });
7907
7908  $(".mega-menu ul.nav .search input").on("keyup", function (e) {
7909    var inputValue = $(this).val();
7910    $(".menu-row > .search input").val(inputValue);
7911    if (e.keyCode == 13) {
7912      $(".menu-row > .search form").submit();
7913    }
7914  });
7915
7916  $(".menu-row > .search input").on("keyup", function (e) {
7917    var inputValue = $(this).val();
7918    $(".mega-menu ul.nav .search input").val(inputValue);
7919    if (e.keyCode == 13) {
7920      $(".menu-row > .search form").submit();
7921    }
7922  });
7923
7924  $(".mega-menu ul.nav .search button").on("click", function (e) {
7925    e.preventDefault();
7926    var inputValue = $(this).parents(".search").find("input").val();
7927    $(".menu-and-search .search input").val(inputValue);
7928    $(".menu-row > .search form").submit();
7929  });
7930
7931  $(".btn.btn-add").on("click", function () {
7932    $.ajax({
7933      type: "GET",
7934      url: arAsproOptions["SITE_DIR"] + "ajax/clearBasket.php",
7935      success: function (data) {},
7936    });
7937  });
7938
7939  $(".sort_display a").on("click", function () {
7940    $(this).siblings().removeClass("current");
7941    $(this).addClass("current");
7942  });
7943
7944  /*detail order show payments*/
7945  $(".sale-order-detail-payment-options-methods-info-change-link").on("click", function () {
7946    $(this).closest(".sale-order-detail-payment-options-methods-info").addClass("opened").siblings().addClass("opened");
7947  });
7948
7949  /*expand/hide filter values*/
7950  $(document).on("click", ".expand_block", function () {
7951    togglePropBlock($(this));
7952  });
7953
7954  /*touch event*/
7955  document.addEventListener(
7956    "touchend",
7957    function (event) {
7958      if (!$(event.target).closest(".menu-item").length && !$(event.target).hasClass("menu-item")) {
7959        $(".menu-row .dropdown-menu").css({ display: "none", opacity: 0 });
7960        $(".menu-item").removeClass("hover");
7961        $(".bx-breadcrumb-item.drop").removeClass("hover");
7962      }
7963      if (!$(event.target).closest(".menu.topest").length) {
7964        $(".menu.topest").css({ overflow: "hidden" });
7965        $(".menu.topest > li").removeClass("hover");
7966      }
7967      if (!$(event.target).closest(".full.has-child").length) {
7968        $(".menu_top_block.catalog_block li").removeClass("hover");
7969      }
7970      if (!$(event.target).closest(".basket_block").length) {
7971        $(".basket_block .link").removeClass("hover");
7972        $(".basket_block .basket_popup_wrapp").slideUp();
7973      }
7974      if (!$(event.target).closest(".catalog_item").length) {
7975        var tabsContentUnhoverHover = $(".tab:visible").attr("data-unhover") * 1;
7976        $(".tab:visible").stop().animate({ height: tabsContentUnhoverHover }, 100);
7977        $(".tab:visible").find(".catalog_item").removeClass("hover");
7978        $(".tab:visible").find(".catalog_item .buttons_block").stop().fadeOut(233);
7979        if ($(".catalog_block").length) {
7980          $(".catalog_block").find(".catalog_item_wrapp").removeClass("hover");
7981          $(".catalog_block").find(".catalog_item").removeClass("hover");
7982        }
7983      }
7984      //togglePropBlock($(event.target));
7985    },
7986    false
7987  );
7988
7989  touchMenu(".menu-row .menu-item");
7990  touchTopMenu(".menu.topest li");
7991  touchLeftMenu(".menu_top_block:not(.in-search) li.full");
7992  touchBreadcrumbs(".bx-breadcrumb-item.drop");
7993
7994  $(document).on("keyup", ".coupon .input_coupon input", function () {
7995    if ($(this).val().length) {
7996      $(this).removeClass("error");
7997      $(this).closest(".input_coupon").find(".error").remove();
7998    } else {
7999      $(this).addClass("error");
8000      $("<label class='error'>" + BX.message("INPUT_COUPON") + "</label>").insertBefore($(this));
8001    }
8002  });
8003  showPhoneMask("input[autocomplete=tel]");
8004  BX.addCustomEvent(window, "onAjaxSuccessFilter", function (e) {
8005    setBasketStatusBtn();
8006    checkLinkedArticles();
8007    checkLinkedBlocks(".linked-banners-list");
8008  });
8009
8010  $(document).on("click", ".block_container .items .item.initied", function () {
8011    var _this = $(this),
8012      itemID = _this.data("id"),
8013      animationTime = 200;
8014
8015    _this.closest(".items").fadeOut(animationTime, function () {
8016      _this.closest(".block_container").find(".detail_items").fadeIn(animationTime);
8017      _this
8018        .closest(".block_container")
8019        .find(".detail_items .item[data-id=" + itemID + "]")
8020        .fadeIn(animationTime);
8021
8022      var arCoordinates = _this.data("coordinates").split(",");
8023
8024      if (typeof map !== "undefined") map.setCenter([arCoordinates[0], arCoordinates[1]], 15);
8025    });
8026  });
8027
8028  $(document).on("click", ".block_container .top-close", function () {
8029    var _this = $(this).closest(".block_container").find(".detail_items .item:visible"),
8030      animationTime = 200;
8031    _this.fadeOut(animationTime);
8032    _this
8033      .closest(".block_container")
8034      .find(".detail_items")
8035      .fadeOut(animationTime, function () {
8036        _this.closest(".block_container").find(".items").fadeIn(animationTime);
8037
8038        if (typeof map !== "undefined" && typeof clusterer !== "undefined") {
8039          map.setBounds(clusterer.getBounds(), {
8040            zoomMargin: 40,
8041            // checkZoomRange: true
8042          });
8043        }
8044      });
8045  });
8046
8047  BX.addCustomEvent(window, "onAjaxSuccess", function (e) {
8048    if (e != "OK") {
8049      initSelects(document);
8050      InitOrderCustom();
8051      showPhoneMask("input[autocomplete=tel]");
8052
8053      /*scroll in mobile for filter*/
8054      if ($(".bx_filter").length) {
8055        if (window.matchMedia("(min-width: 768px)").matches) {
8056          // min-width: 768px
8057          $(".bx_filter .scrollbar").removeClass("mobile-scroll");
8058          $(".bx_filter .srollbar-custom").removeClass("mobile-scroll");
8059          $(".bx_filter .bx_filter_section form .bx_filter_parameters").removeClass("mobile-scroll");
8060          InitScrollBar();
8061          InitCustomScrollBar();
8062        } else {
8063          // max-width: 767px
8064          $(".bx_filter .scrollbar").addClass("mobile-scroll").removeClass("scroll-init");
8065          $(".bx_filter .srollbar-custom").addClass("mobile-scroll").removeClass("scroll-init");
8066          $(".bx_filter .bx_filter_section form .bx_filter_parameters")
8067            .addClass("mobile-scroll")
8068            .removeClass("scroll-init");
8069          if ($(".bx_filter .mobile-scroll.scrollbar").length)
8070            $(".bx_filter .mobile-scroll.scrollbar").mCustomScrollbar("destroy");
8071          if ($(".bx_filter .mobile-scroll.srollbar-custom").length)
8072            $(".bx_filter .mobile-scroll.srollbar-custom").mCustomScrollbar("destroy");
8073        }
8074      }
8075      /*end*/
8076
8077      if ($(".catalog_detail").length && !$(".fast_view_frame").length) {
8078        $(".bx_filter").remove();
8079        InitFlexSlider();
8080        InitOwlSlider();
8081      }
8082
8083      if (arAsproOptions["PAGES"]["CATALOG_PAGE"]) {
8084        initCountdown();
8085
8086        if (typeof window["stickySidebar"] !== "undefined") window["stickySidebar"].updateSticky();
8087      }
8088
8089      if (arAsproOptions["PAGES"]["ORDER_PAGE"]) {
8090        orderActions(e);
8091      }
8092
8093      if (e && typeof e === "object" && "action" in e && e.action === "ajaxContentLoadedTab") {
8094        lazyLoadPagenBlock();
8095      }
8096
8097      InitStickySideBar();
8098    }
8099  });
8100
8101  //event for default basket quantity change
8102  BX.addCustomEvent(window, "OnBasketChange", function (e) {
8103    if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
8104      var summ = 0,
8105        title = "";
8106
8107      if (typeof BX.Sale !== "undefined") {
8108        if (typeof BX.Sale.BasketComponent !== "undefined") {
8109          summ = BX.Sale.BasketComponent.result.allSum;
8110          title = BX.message("JS_BASKET_COUNT_TITLE").replace("SUMM", summ);
8111        }
8112      } else {
8113        summ = $("#allSum_FORMATED")
8114          .html()
8115          .replace(/&nbsp;/g, " ");
8116        title = BX.message("JS_BASKET_COUNT_TITLE").replace("SUMM", summ);
8117      }
8118
8119      if ($(".js-basket-block .wrap .prices").length) $(".js-basket-block .wrap .prices").html(summ);
8120      if ($("a.basket-link.basket").length) $("a.basket-link.basket").attr("title", title);
8121      if ($(".basket_fly .opener .basket_count").length) $(".basket_fly .opener .basket_count").attr("title", title);
8122    }
8123  });
8124});
8125
8126if (!funcDefined("setBasketStatusBtn")) {
8127  setBasketStatusBtn = function (type) {
8128    var bSync = typeof type !== undefined;
8129    if (typeof arBasketAspro !== "undefined") {
8130      if ("BASKET" in arBasketAspro) {
8131        // basket items
8132        if (arBasketAspro.BASKET) {
8133          for (var i in arBasketAspro.BASKET) {
8134            $(".to-cart[data-item=" + i + "]").hide();
8135            $(".counter_block[data-item=" + i + "]")
8136              .closest(".counter_block_inner")
8137              .hide();
8138            $(".counter_block[data-item=" + i + "]").hide();
8139            $(".in-cart[data-item=" + i + "]").show();
8140            $(".in-cart[data-item=" + i + "]")
8141              .closest(".button_block")
8142              .addClass("wide");
8143
8144            $(".wish_item.to[data-item=" + i + "]").show();
8145            $(".wish_item.in[data-item=" + i + "]").hide();
8146
8147            if ($(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").length) {
8148              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").addClass("added");
8149              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").attr(
8150                "title",
8151                $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .basket_item_add").data("title2")
8152              );
8153            }
8154          }
8155        }
8156      }
8157
8158      /*services*/
8159      if ("SERVICES" in arBasketAspro) {
8160        // services items
8161        $needFillServices = $(".buy_services_wrap[data-parent_product]").length;
8162        if (arBasketAspro.SERVICES && $needFillServices) {
8163          for (var i in arBasketAspro.SERVICES) {
8164            var serviceItem = $(
8165              ".buy_services_wrap[data-parent_product=" +
8166                arBasketAspro.SERVICES[i].link_id +
8167                "] .services-item[data-item_id=" +
8168                arBasketAspro.SERVICES[i].item_id +
8169                "]"
8170            );
8171            serviceItem.find('input[name="buy_switch_services"]').prop("checked", true);
8172            serviceItem.find('.counter_block input[name="quantity"]').val(arBasketAspro.SERVICES[i].quantity);
8173            serviceItem.addClass("services_on");
8174          }
8175        }
8176      }
8177      /**/
8178
8179      if ("DELAY" in arBasketAspro) {
8180        // delay items
8181        if (arBasketAspro.DELAY) {
8182          for (var i in arBasketAspro.DELAY) {
8183            $(".wish_item.to[data-item=" + i + "]").hide();
8184            $(".wish_item.in[data-item=" + i + "]").show();
8185            if ($(".wish_item[data-item=" + i + "]").find(".value.added").length) {
8186              //$('.wish_item[data-item='+i+']').addClass("added");
8187              $(".wish_item[data-item=" + i + "]")
8188                .find(".value")
8189                .hide();
8190              $(".wish_item[data-item=" + i + "]")
8191                .find(".value.added")
8192                .css("display", "block");
8193            }
8194
8195            $(".in-cart[data-item=" + i + "]").hide();
8196            $(".to-cart[data-item=" + i + "]").show();
8197            $(".to-cart[data-item=" + i + "]")
8198              .closest(".counter_wrapp")
8199              .find(".counter_block_inner")
8200              .show();
8201            $(".to-cart[data-item=" + i + "]")
8202              .closest(".counter_wrapp")
8203              .find(".counter_block")
8204              .show();
8205            $(".to-cart[data-item=" + i + "]")
8206              .closest(".button_block")
8207              .removeClass("wide");
8208
8209            if ($(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .wish_item_add").length) {
8210              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .wish_item_add").addClass("added");
8211              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .wish_item_add").attr(
8212                "title",
8213                $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .wish_item_add").data("title2")
8214              );
8215            }
8216          }
8217        }
8218      }
8219
8220      if ("SUBSCRIBE" in arBasketAspro) {
8221        // subscribe items
8222        if (arBasketAspro.SUBSCRIBE) {
8223          for (var i in arBasketAspro.SUBSCRIBE) {
8224            $(".to-subscribe[data-item=" + i + "]").hide();
8225            $(".in-subscribe[data-item=" + i + "]").show();
8226          }
8227        }
8228      }
8229
8230      if ("COMPARE" in arBasketAspro) {
8231        // compare items
8232        if (arBasketAspro.COMPARE) {
8233          for (var i in arBasketAspro.COMPARE) {
8234            $(".compare_item.to[data-item=" + i + "]").hide();
8235            $(".compare_item.in[data-item=" + i + "]").show();
8236            if ($(".compare_item[data-item=" + i + "]").find(".value.added").length) {
8237              //$('.compare_item[data-item='+i+']').addClass("added");
8238              $(".compare_item[data-item=" + i + "]")
8239                .find(".value")
8240                .hide();
8241              $(".compare_item[data-item=" + i + "]")
8242                .find(".value.added")
8243                .css("display", "block");
8244            }
8245
8246            if ($(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .compare_item_add").length) {
8247              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .compare_item_add").addClass("added");
8248              $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .compare_item_add").attr(
8249                "title",
8250                $(".banner_buttons.with_actions .wraps_buttons[data-id=" + i + "] .compare_item_add").data("title2")
8251              );
8252            }
8253          }
8254        }
8255      }
8256    }
8257  };
8258}
8259
8260if (!funcDefined("togglePropBlock")) {
8261  togglePropBlock = function (className) {
8262    var all_props_block = className.closest(".bx_filter_parameters_box_container").find(".hidden_values");
8263    if (all_props_block.length && (className.hasClass("inner_text") || className.hasClass("expand_block"))) {
8264      if (all_props_block.is(":visible")) {
8265        className.text(BX.message("FILTER_EXPAND_VALUES"));
8266        all_props_block.hide();
8267      } else {
8268        className.text(BX.message("FILTER_HIDE_VALUES"));
8269        all_props_block.show();
8270      }
8271    }
8272  };
8273}
8274
8275if (!funcDefined("showPhoneMask")) {
8276  showPhoneMask = function (className) {
8277    $(className).inputmask("mask", { mask: arAsproOptions["THEME"]["PHONE_MASK"], showMaskOnHover: false });
8278  };
8279}
8280
8281if (!funcDefined("getActualBasket")) {
8282  getActualBasket = function (iblockID, type, sync) {
8283    var data = "";
8284    if (typeof iblockID !== "undefined" && iblockID) {
8285      data = { iblockID: iblockID };
8286    }
8287    $.ajax({
8288      type: "GET",
8289      url: arAsproOptions["SITE_DIR"] + "ajax/actualBasket.php",
8290      data: data,
8291      success: function (data) {
8292        if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
8293        $(".js_ajax").html(data);
8294
8295        if (typeof sync !== "undefined") {
8296          setBasketStatusBtn(true);
8297        }
8298
8299        if (typeof type !== undefined) {
8300          var eventdata = { action: "loadActualBasket" + type };
8301          BX.onCustomEvent("onCompleteAction", [eventdata]);
8302        }
8303      },
8304    });
8305  };
8306}
8307
8308if (!funcDefined("reloadBasketCounters")) {
8309  reloadBasketCounters = function (count, sync) {
8310    var data = "";
8311    if (count) {
8312      $(".basket-link.basket .count, .wraps_icon_block.basket .count .items > span").text(count);
8313    } else {
8314      $.ajax({
8315        type: "GET",
8316        url: arAsproOptions["SITE_DIR"] + "ajax/actualBasket.php",
8317        data: data,
8318        success: function (data) {
8319          if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
8320          $(".js_ajax").html(data);
8321          var countServices =
8322            typeof arBasketAspro.SERVICES !== "undefined" ? Object.keys(arBasketAspro.SERVICES).length : 0;
8323          $(".basket-link.basket .count, .wraps_icon_block.basket .count .items > span").text(
8324            Object.keys(arBasketAspro.BASKET).length + countServices
8325          );
8326          $(".basket-link.delay .count, .wraps_icon_block.delay .count .items > span").text(
8327            Object.keys(arBasketAspro.DELAY).length
8328          );
8329          $(".basket-link.compare .count, .wraps_icon_block.compare .count .items > span").text(
8330            Object.keys(arBasketAspro.COMPARE).length
8331          );
8332
8333          if (typeof sync !== "undefined") {
8334            setBasketStatusBtn(true);
8335          }
8336        },
8337      });
8338    }
8339  };
8340}
8341
8342function touchMenu(selector) {
8343  if (isMobile) {
8344    if ($(selector).length) {
8345      $(selector).each(function () {
8346        var th = $(this);
8347        th.on("touchend", function (e) {
8348          var _th = $(e.target).closest(".menu-item");
8349
8350          $(".menu.topest > li").removeClass("hover");
8351          $(".menu_top_block.catalog_block li").removeClass("hover");
8352          $(".bx-breadcrumb-item.drop").removeClass("hover");
8353
8354          if (_th.find(".dropdown-menu").length && !_th.hasClass("hover")) {
8355            e.preventDefault();
8356            e.stopPropagation();
8357            _th.siblings().removeClass("hover");
8358            _th.addClass("hover");
8359            $(".menu-row .dropdown-menu").css({ display: "none", opacity: 0 });
8360            if (_th.hasClass("menu-item")) {
8361              _th.closest(".dropdown-menu").css({ display: "block", opacity: 1 });
8362            }
8363            if (_th.find("> .wrap > .dropdown-menu")) {
8364              _th.find("> .wrap > .dropdown-menu").css({ display: "block", opacity: 1 });
8365            } else if (_th.find("> .dropdown-menu")) {
8366              _th.find("> .dropdown-menu").css({ display: "block", opacity: 1 });
8367            }
8368            CheckTopVisibleMenu();
8369          } else {
8370            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
8371            if (href && href !== "undefined") location.href = href;
8372          }
8373        });
8374      });
8375    }
8376  } else {
8377    $(selector).off();
8378  }
8379}
8380
8381function touchTopMenu(selector) {
8382  if (isMobile) {
8383    if ($(selector).length) {
8384      $(selector).each(function () {
8385        var th = $(this);
8386        th.on("touchend", function (e) {
8387          var _th = $(e.target).closest("li");
8388
8389          $(".menu-item").removeClass("hover");
8390          $(".menu_top_block.catalog_block li").removeClass("hover");
8391          $(".bx-breadcrumb-item.drop").removeClass("hover");
8392
8393          if (_th.hasClass("more") && !_th.hasClass("hover")) {
8394            e.preventDefault();
8395            e.stopPropagation();
8396            _th.siblings().removeClass("hover");
8397            _th.addClass("hover");
8398            $(".menu.topest").css({ overflow: "visible" });
8399          } else {
8400            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr(
8400"href");
8401            if (href && href !== "undefined") location.href = href;
8402          }
8403        });
8404      });
8405    }
8406  } else {
8407    $(selector).off();
8408  }
8409}
8410
8411function touchLeftMenu(selector) {
8412  if (isMobile) {
8413    if ($(selector).length) {
8414      $(selector).each(function () {
8415        var th = $(this);
8416        th.on("touchend", function (e) {
8417          var _th = $(e.target).closest("li");
8418
8419          $(".menu-item").removeClass("hover");
8420          $(".bx-breadcrumb-item.drop").removeClass("hover");
8421          $(".menu.topest > li").removeClass("hover");
8422
8423          if (_th.hasClass("has-child") && !_th.hasClass("hover")) {
8424            e.preventDefault();
8425            e.stopPropagation();
8426            _th.siblings().removeClass("hover");
8427            _th.addClass("hover");
8428          } else {
8429            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
8430            if (href && href !== "undefined") location.href = href;
8431          }
8432        });
8433      });
8434    }
8435  } else {
8436    $(selector).off();
8437  }
8438}
8439
8440function touchBreadcrumbs(selector) {
8441  if (isMobile) {
8442    if ($(selector).length) {
8443      $(selector).each(function () {
8444        var th = $(this);
8445        th.on("touchend", function (e) {
8446          var _th = $(e.target).closest(".bx-breadcrumb-item");
8447
8448          $(".menu-item").removeClass("hover");
8449          $(".menu.topest > li").removeClass("hover");
8450          $(".menu_top_block.catalog_block li").removeClass("hover");
8451
8452          if (!_th.hasClass("hover")) {
8453            e.preventDefault();
8454            e.stopPropagation();
8455            _th.siblings().removeClass("hover");
8456            _th.addClass("hover");
8457          } else {
8458            _th.removeClass("hover");
8459            var href = $(e.target).attr("href") ? $(e.target).attr("href") : $(e.target).closest("a").attr("href");
8460            if (href && href !== "undefined") location.href = href;
8461          }
8462        });
8463      });
8464    }
8465  } else {
8466    $(selector).off();
8467  }
8468}
8469
8470function touchItemBlock(selector) {
8471  /*if(isMobile){
8472		if($(selector).length)
8473		{
8474			$(selector).each(function(){
8475				var th=$(this),
8476					item=th.closest('.catalog_item');
8477				th.on('touchend', function(e) {
8478					if (!item.hasClass('hover')) {
8479						e.preventDefault();
8480						// e.stopPropagation();
8481						item.siblings().removeClass('hover');
8482						item.siblings().blur();
8483						item.closest('.catalog_block').find('.catalog_item').removeClass('hover');
8484						item.addClass('hover');
8485						item.addClass('touch');
8486
8487						var tabsContentHover = th.closest('.tab').attr('data-hover') * 1,
8488							tabsContentUnhoverHover = th.closest('.tab').attr('data-unhover') * 1;
8489
8490						th.closest('.tab').stop().animate({'height': tabsContentUnhoverHover}, 100);
8491						th.closest('.catalog_item').siblings().find('.buttons_block').stop().fadeOut(233)
8492
8493						th.closest('.tab').fadeTo(100, 1);
8494						th.closest('.tab').stop().css({'height': tabsContentHover});
8495						th.closest('.catalog_item').find('.buttons_block').fadeIn(450, 'easeOutCirc');
8496					}
8497				})
8498			})
8499		}
8500	}else{
8501		$(selector).off();
8502	}*/
8503}
8504function touchBasket(selector) {
8505  if (arAsproOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
8506    if ($(window).outerWidth() > 600) {
8507      $(document)
8508        .find(selector)
8509        .on("touchend", function (e) {
8510          if ($(this).parent().find(".basket_popup_wrapp").length && !$(this).hasClass("hover")) {
8511            e.preventDefault();
8512            e.stopPropagation();
8513            $(this).addClass("hover");
8514            $(this).parent().find(".basket_popup_wrapp").slideDown();
8515          }
8516        });
8517    } else {
8518      $(selector).off();
8519    }
8520  }
8521}
8522
8523function showTotalSummItem(popup) {
8524  //show total summ
8525  if (
8526    arAsproOptions["THEME"]["SHOW_TOTAL_SUMM_TYPE"] == "ALWAYS" &&
8527    arAsproOptions["THEME"]["SHOW_TOTAL_SUMM"] == "Y"
8528  ) {
8529    var parent = "body ";
8530    if (typeof popup === "string" && popup == "Y") parent = ".popup ";
8531    $(parent + ".counter_wrapp .counter_block input.text").each(function () {
8532      var _th = $(this);
8533      if (_th.data("product")) {
8534        var obProduct = _th.data("product");
8535        if (typeof window[obProduct] == "object") window[obProduct].setPriceAction("Y");
8536        else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
8537      } else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
8538    });
8539  }
8540}
8541
8542function initFull() {
8543  initSelects(document);
8544  initHoverBlock(document);
8545  touchItemBlock(".catalog_item a");
8546  InitOrderCustom();
8547  showTotalSummItem();
8548  basketActions();
8549  orderActions();
8550
8551  checkMobileRegion();
8552}
8553
8554checkMobileRegion = function () {
8555  if ($(".confirm_region").length) {
8556    if (!$(".top_mobile_region").length)
8557      $(
8558        '<div class="top_mobile_region"><div class="confirm_wrapper"><div class="confirm_region"></div></div></div>'
8559      ).insertBefore($("#mobileheader"));
8560    $(".top_mobile_region .confirm_region").html($(".confirm_region").html());
8561
8562    /*$('.top_mobile_region .close_popup').click(function(){
8563			$(this).remove();
8564			$('.confirm_region').remove();
8565		})*/
8566  }
8567};
8568if (!funcDefined("orderActions")) {
8569  orderActions = function (e) {
8570    if (arAsproOptions["PAGES"]["ORDER_PAGE"]) {
8571      //phone
8572      if ($("#bx-soa-order input[autocomplete=tel]").length) {
8573        // get property phone
8574        for (var i = 0; i < BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties.length; ++i) {
8575          if (BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i].IS_PHONE == "Y") {
8576            var arPropertyPhone = BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i];
8577          }
8578        }
8579
8580        // validate input type=tel
8581        if (
8582          typeof BX.Sale.OrderAjaxComponent !== "undefined" &&
8583          typeof BX.Sale.OrderAjaxComponent === "object" &&
8584          typeof arPropertyPhone == "object" &&
8585          arPropertyPhone
8586        ) {
8587          BX.Sale.OrderAjaxComponent.validatePhone = function (input, arProperty, fieldName) {
8588            if (!input || !arProperty) return [];
8589
8590            var value = input.value,
8591              errors = [],
8592              name = BX.util.htmlspecialchars(arProperty.NAME),
8593              field = BX.message("SOA_FIELD") + ' "' + name + '"',
8594              re;
8595
8596            if (arProperty.REQUIRED == "Y" && value.length == 0) {
8597              errors.push(field + " " + BX.message("SOA_REQUIRED"));
8598            }
8599
8600            if (arProperty.IS_PHONE == "Y" && value.length > 0) {
8601              function regexpPhone(value, element, regexp) {
8602                var re = new RegExp(regexp);
8603                return re.test(value);
8604              }
8605
8606              var validPhone = regexpPhone($(input).val(), $(input), arAsproOptions["THEME"]["VALIDATE_PHONE_MASK"]);
8607
8608              if (!validPhone) {
8609                errors.push(field + " " + BX.message("JS_FORMAT_ORDER"));
8610              }
8611            }
8612
8613            return errors;
8614          };
8615
8616          BX.Sale.OrderAjaxComponent.getValidationDataPhone = function (arProperty, propContainer) {
8617            var data = {},
8618              inputs;
8619            switch (arProperty.TYPE) {
8620              case "STRING":
8621                data.action = "blur";
8622                data.func = BX.delegate(function (input, fieldName) {
8623                  return this.validatePhone(input, arProperty, fieldName);
8624                }, this);
8625
8626                inputs = propContainer.querySelectorAll("input[type=tel]");
8627                if ($(inputs).length) {
8628                  data.inputs = inputs;
8629                  break;
8630                }
8631            }
8632
8633            return data;
8634          };
8635
8636          BX.Sale.OrderAjaxComponent.bindValidationPhone = function (id, propContainer) {
8637            if (!this.validation.properties || !this.validation.properties[id]) return;
8638
8639            var arProperty = this.validation.properties[id],
8640              data = this.getValidationDataPhone(arProperty, propContainer),
8641              i,
8642              k;
8643
8644            if (data && data.inputs && data.action) {
8645              for (i = 0; i < $(data.inputs).length; i++) {
8646                if (BX.type.isElementNode(data.inputs[i])) {
8647                  BX.bind(
8648                    data.inputs[i],
8649                    data.action,
8650                    BX.delegate(function () {
8651                      this.isValidProperty(data);
8652                    }, this)
8653                  );
8654                } else {
8655                  for (k = 0; k < $(data.inputs[i]).length; k++)
8656                    BX.bind(
8657                      data.inputs[i][k],
8658                      data.action,
8659                      BX.delegate(function () {
8660                        this.isValidProperty(data);
8661                      }, this)
8662                    );
8663                }
8664              }
8665            }
8666          };
8667
8668          BX.Sale.OrderAjaxComponent.isValidPropertiesBlock = function (excludeLocation) {
8669            if (!this.options.propertyValidation) return [];
8670
8671            var props = this.orderBlockNode.querySelectorAll(".bx-soa-customer-field[data-property-id-row]"),
8672              propsErrors = [],
8673              id,
8674              propContainer,
8675              arProperty,
8676              data,
8677              i;
8678
8679            for (i = 0; i < props.length; i++) {
8680              id = props[i].getAttribute("data-property-id-row");
8681
8682              if (!!excludeLocation && this.locations[id]) continue;
8683
8684              propContainer = props[i].querySelector(".soa-property-container");
8685              if (propContainer) {
8686                arProperty = this.validation.properties[id];
8687                data = this.getValidationData(arProperty, propContainer);
8688                dataPhone = this.getValidationDataPhone(arProperty, propContainer);
8689                data = $.extend({}, data, dataPhone);
8690
8691                propsErrors = propsErrors.concat(this.isValidProperty(data, true));
8692              }
8693            }
8694
8695            return propsErrors;
8696          };
8697
8698          // create input type=tel
8699          var input = $("input[autocomplete=tel]"),
8700            inputHTML = input[0].outerHTML,
8701            value = input.val(),
8702            newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"');
8703
8704          if ($(input).length < 2) {
8705            input.hide();
8706            $(newInput).insertAfter(input);
8707          }
8708          showPhoneMask("input[autocomplete=tel][type=tel]");
8709
8710          // change value input type=text when change input type=tel
8711          $("input[autocomplete=tel][type=tel]").on("blur", function () {
8712            var $this = $(this);
8713
8714            var value = $this.val();
8715            $this.parent().find("input[autocomplete=tel][type=text]").val(value);
8716          });
8717
8718          BX.Sale.OrderAjaxComponent.bindValidationPhone(arPropertyPhone.ID, $("input[autocomplete=tel]").parent()[0]);
8719        }
8720      }
8721
8722      if ($(".bx-soa-cart-total").length) {
8723        if (!$(".change_basket").length)
8724          $(".bx-soa-cart-total").prepend(
8725            '<div class="change_basket">
8725' +
8726              BX.message("BASKET_CHANGE_TITLE") +
8727              '<a href="' +
8728              arAsproOptions["SITE_DIR"] +
8729              'basket/" class="change_link">' +
8730              BX.message("BASKET_CHANGE_LINK") +
8731              "</a></div>"
8732          );
8733
8734        if (typeof BX.Sale.OrderAjaxComponent == "object") {
8735          if (arAsproOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
8736            if (typeof BX.Sale.OrderAjaxComponent.reachgoalbegin === "undefined") {
8737              BX.Sale.OrderAjaxComponent.reachgoalbegin = true;
8738              var eventdata = { goal: "goal_order_begin" };
8739              BX.onCustomEvent("onCounterGoals", [eventdata]);
8740            }
8741          }
8742
8743          if (BX.Sale.OrderAjaxComponent.hasOwnProperty("params")) {
8744            $(".bx-soa-cart-total .change_link").attr("href", BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET);
8745            if (arAsproOptions["PRICES"]["MIN_PRICE"]) {
8746              if (arAsproOptions["PRICES"]["MIN_PRICE"] > Number(BX.Sale.OrderAjaxComponent.result.TOTAL.ORDER_PRICE)) {
8747                $('<div class="fademask_ext"></div>').appendTo($("body"));
8748                location.href = BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET;
8749              }
8750            }
8751          }
8752
8753          // update oreder auth form
8754          if ($("#bx-soa-auth").length && !$("#bx-soa-auth .redisigned").length) {
8755            // update input USER_LOGIN
8756            if ($('input[name="USER_LOGIN"]').length) {
8757              var $label = $('input[name="USER_LOGIN"]')
8758                .closest(".bx-authform-formgroup-container")
8759                .find(".bx-authform-label-container");
8760              if (!$label.find(".bx-authform-starrequired").length) {
8761                $label.html($label.html() + '<span class="bx-authform-starrequired"> *</span>');
8762              }
8763            }
8764
8765            // update input USER_PASSWORD
8766            if ($('input[name="USER_PASSWORD"]').length) {
8767              var $label = $('input[name="USER_PASSWORD"]')
8768                .closest(".bx-authform-formgroup-container")
8769                .find(".bx-authform-label-container");
8770              if (!$label.find(".bx-authform-starrequired").length) {
8771                $label.html($label.html() + '<span class="bx-authform-starrequired"> *</span>');
8772              }
8773            }
8774
8775            if ($('input[name="USER_REMEMBER"]').length) {
8776              var $label = $('input[name="USER_REMEMBER"]')
8777                .attr("id", "ORDER_AUTH_USER_REMEMBER")
8778                .closest("label")
8779                .attr("for", "ORDER_AUTH_USER_REMEMBER");
8780              var html = $('input[name="USER_REMEMBER"]')
8781                .attr("id", "ORDER_AUTH_USER_REMEMBER")
8782                .wrap('<div id="trem_"></div>')
8783                .parent()
8784                .html();
8785              $("#trem_").remove();
8786              $label.html($label.text());
8787              $(html).insertBefore($label).closest(".bx-authform-formgroup-container").addClass("filter");
8788              var html = $("#bx-soa-auth .bx-authform>a")
8789                .addClass("pull-right")
8790                .addClass("forgot")
8791                .wrap('<div id="trem_"></div>')
8792                .parent()
8793                .html();
8794              $("#trem_").remove();
8795              $(html).insertAfter($label.closest(".checkbox"));
8796            }
8797
8798            $("#bx-soa-auth .bx-soa-reg-block .btn")
8799              .removeClass("btn-default")
8800              .removeClass("btn-lg")
8801              .addClass("transparent")
8802              .addClass("btn-lg")
8803              .text(BX.message("ORDER_REGISTER_BUTTON"));
8804
8805            $("#bx-soa-auth").append('<div class="redisigned hidden></div>');
8806          }
8807
8808          // update oreder register form
8809          if ($(".bx-soa-section-content.reg").length && !$(".bx-soa-section-content.reg .redisigned").length) {
8810            var bRebindRegSubmit = false;
8811
8812            if (arAsproOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") {
8813              bRebindRegSubmit = true;
8814
8815              // update input NEW_LOGIN
8816              if ($('input[name="NEW_LOGIN"]').length) {
8817                $('input[name="NEW_LOGIN"]').closest(".bx-authform-formgroup-container").hide();
8818              }
8819            }
8820
8821            if (arAsproOptions.THEME.PERSONAL_ONEFIO === "Y") {
8822              bRebindRegSubmit = true;
8823
8824              // update input NEW_NAME
8825              if ($('input[name="NEW_NAME"]').length) {
8826                $('input[name="NEW_NAME"]')
8827                  .closest(".bx-authform-formgroup-container")
8828                  .find(".bx-authform-label-container")
8829                  .html(BX.message("ORDER_FIO_LABEL") + '<span class="bx-authform-starrequired"> *</span>');
8830              }
8831
8832              // update input NEW_LAST_NAME
8833              if ($('input[name="NEW_LAST_NAME"]').length) {
8834                $('input[name="NEW_LAST_NAME"]').closest(".bx-authform-formgroup-container").hide();
8835                $('input[name="NEW_LAST_NAME"]').val(" ");
8836              }
8837            }
8838
8839            if (bRebindRegSubmit) {
8840              // bind new handler for submit button
8841              var $regSubmit = $("#do_register~input[type=submit]");
8842              if ($regSubmit.length) {
8843                BX.unbindAll($regSubmit[0]);
8844                $(document).on("click", "#do_register~input[type=submit]", function (e) {
8845                  e.preventDefault();
8846                  e.stopImmediatePropagation();
8847
8848                  if (arAsproOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") {
8849                    var email = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_EMAIL" } }, true, false);
8850                    var login = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_LOGIN" } }, true, false);
8851
8852                    if (login && email) {
8853                      login.value = email.value;
8854                    }
8855                  }
8856
8857                  BX("do_register").value = "Y";
8858                  BX.Sale.OrderAjaxComponent.sendRequest("showAuthForm");
8859                });
8860              }
8861            }
8862
8863            // update captcha
8864            var $captcha = $(".bx-soa-section-content.reg").find(".bx-captcha");
8865            if ($captcha.length) {
8866              $captcha.addClass("captcha_image");
8867              $captcha.append('<div class="captcha_reload"></div>');
8868              $captcha
8869                .closest(".bx-authform-formgroup-container")
8870                .addClass("captcha-row")
8871                .find("input[name=captcha_word]")
8872                .closest(".bx-authform-input-container")
8873                .addClass("captcha_input");
8874            }
8875
8876            // update input NEW_NAME && NEW_LAST_NAME
8877            if (
8878              $("input[name=NEW_NAME]").length &&
8879              $("input[name=NEW_LAST_NAME]").length &&
8880              arAsproOptions.THEME.PERSONAL_ONEFIO !== "Y"
8881            ) {
8882              if (!$("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container.col-md-6").length) {
8883                $("input[name=NEW_NAME],input[name=NEW_LAST_NAME]")
8884                  .closest(".bx-authform-formgroup-container")
8885                  .addClass("col-md-6");
8886                var html = $("input[name=NEW_LAST_NAME]")
8887                  .closest(".bx-authform-formgroup-container")
8888                  .wrap('<div id="trem_"></div>')
8889                  .parent()
8890                  .html();
8891                $("#trem_").remove();
8892                $(html).insertAfter(
8893                  $("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>')
8894                );
8895              }
8896            }
8897
8898            // update input NEW_EMAIL && PHONE_NUMBER
8899            if ($("input[name=NEW_EMAIL]").length && $("input[name=PHONE_NUMBER]").length) {
8900              if (!$("input[name=PHONE_NUMBER]").closest(".bx-authform-formgroup-container.col
8900-md-6").length) {
8901                $("input[name=NEW_EMAIL],input[name=PHONE_NUMBER]")
8902                  .closest(".bx-authform-formgroup-container")
8903                  .addClass("col-md-6");
8904                var html = $("input[name=PHONE_NUMBER]")
8905                  .closest(".bx-authform-formgroup-container")
8906                  .wrap('<div id="trem_"></div>')
8907                  .parent()
8908                  .html();
8909                $("#trem_").remove();
8910                $(html).insertAfter(
8911                  $("input[name=NEW_EMAIL]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>')
8912                );
8913              }
8914            }
8915
8916            // update input NEW_PASSWORD && NEW_PASSWORD_CONFIRM
8917            if ($("input[name=NEW_PASSWORD]").length && $("input[name=NEW_PASSWORD_CONFIRM]").length) {
8918              if (!$("input[name=NEW_PASSWORD]").closest(".bx-authform-formgroup-container.col-md-6").length) {
8919                $("input[name=NEW_PASSWORD],input[name=NEW_PASSWORD_CONFIRM]")
8920                  .closest(".bx-authform-formgroup-container")
8921                  .addClass("col-md-6");
8922                var html = $("input[name=NEW_PASSWORD_CONFIRM]")
8923                  .closest(".bx-authform-formgroup-container")
8924                  .wrap('<div id="trem_"></div>')
8925                  .parent()
8926                  .html();
8927                $("#trem_").remove();
8928                $(html).insertAfter(
8929                  $("input[name=NEW_PASSWORD]")
8930                    .closest(".bx-authform-formgroup-container")
8931                    .wrap('<div class="row"></div>')
8932                );
8933              }
8934            }
8935
8936            // update input PHONE_NUMBER
8937            if ($("input[name=PHONE_NUMBER]").length) {
8938              var input = $("input[name=PHONE_NUMBER]"),
8939                inputHTML = input[0].outerHTML,
8940                value = input.val(),
8941                newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"');
8942
8943              if ($(input).length < 2) {
8944                input.hide();
8945                $(newInput).insertAfter(input);
8946
8947                showPhoneMask("input[name=PHONE_NUMBER][type=tel]");
8948
8949                $("input[name=PHONE_NUMBER][type=tel]").on("blur", function () {
8950                  var $this = $(this);
8951                  var value = $this.val();
8952                  $this.parent().find("input[name=PHONE_NUMBER][type=text]").val(value);
8953                });
8954
8955                var $label = $("input[name=PHONE_NUMBER][type=tel]")
8956                  .closest(".bx-authform-formgroup-container")
8957                  .find(".bx-authform-label-container");
8958                $label.html(
8959                  BX.message("ORDER_PHONE_LABEL") +
8960                    ($label.find(".bx-authform-starrequired").length
8961                      ? '<span class="bx-authform-starrequired"> *</span>'
8962                      : "")
8963                );
8964              }
8965            }
8966
8967            $(".bx-soa-section-content.reg").append('<div class="redisigned hidden></div>');
8968          }
8969
8970          var asproShowLicence = arAsproOptions["THEME"]["SHOW_LICENCE"] == "Y";
8971          var asproShowOffer = arAsproOptions["THEME"]["SHOW_OFFER"] == "Y";
8972
8973          if ($(".bx-soa-cart-total-line-total").length && (asproShowLicence || asproShowOffer)) {
8974            if (typeof e === "undefined") {
8975              BX.Sale.OrderAjaxComponent.state_licence =
8976                arAsproOptions["THEME"]["LICENCE_CHECKED"] == "Y" ? "checked" : "";
8977              BX.Sale.OrderAjaxComponent.state_offer = arAsproOptions["THEME"]["OFFER_CHECKED"] == "Y" ? "checked" : "";
8978            }
8979
8980            if (
8981              (!$(".licence_block.filter").length && asproShowLicence) ||
8982              (!$(".offer_block.filter").length && asproShowOffer)
8983            ) {
8984              $('<div class="form"><div class="license_order_wrap"></div></div>').insertBefore($("#bx-soa-orderSave"));
8985
8986              if (!$(".licence_block.filter").length && asproShowLicence)
8987                $(
8988                  '<div class="licence_block filter label_block onoff"><label data-for="licenses_order" class="hidden error">' +
8989                    BX.message("JS_REQUIRED_LICENSES") +
8990                    '</label><input type="checkbox" name="licenses_order" required ' +
8991                    BX.Sale.OrderAjaxComponent.state_licence +
8992                    ' value="Y"><label data-for="licenses_order" class="license">' +
8993                    BX.message("LICENSES_TEXT") +
8994                    "</label></div>"
8995                ).appendTo($(".license_order_wrap"));
8996
8997              if (!$(".offer_block.filter").length && asproShowOffer)
8998                $(
8999                  '<div class="offer_block filter label_block onoff"><label data-for="offer_order" class="hidden error">' +
9000                    BX.message("JS_REQUIRED_OFFER") +
9001                    '</label><input type="checkbox" name="offer_order" required ' +
9002                    BX.Sale.OrderAjaxComponent.state_offer +
9003                    ' value="Y"><label data-for="offer_order" class="offer_pub">' +
9004                    BX.message("OFFER_TEXT") +
9005                    "</label></div>"
9006                ).appendTo($(".license_order_wrap"));
9007
9008              if (asproShowLicence) {
9009                $(document).on("click", ".bx-soa .licence_block label.license", function () {
9010                  var id = $(this).data("for");
9011                  $(".bx-soa .licence_block label.error").addClass("hidden");
9012                  if (!$("input[name=" + id + "]").prop("checked")) {
9013                    $("input[name=" + id + "]").prop("checked", "checked");
9014                    BX.Sale.OrderAjaxComponent.state_licence = "checked";
9015                  } else {
9016                    $("input[name=" + id + "]").prop("checked", "");
9017                    BX.Sale.OrderAjaxComponent.state_licence = "";
9018                  }
9019                });
9020              }
9021
9022              if (asproShowOffer) {
9023                $(document).on("click", ".bx-soa .offer_block label.offer_pub", function () {
9024                  var id = $(this).data("for");
9025                  $(".bx-soa .offer_block label.error").addClass("hidden");
9026                  if (!$("input[name=" + id + "]").prop("checked")) {
9027                    $("input[name=" + id + "]").prop("checked", "checked");
9028                    BX.Sale.OrderAjaxComponent.state_offer = "checked";
9029                  } else {
9030                    $("input[name=" + id + "]").prop("checked", "");
9031                    BX.Sale.OrderAjaxComponent.state_offer = "";
9032                  }
9033                });
9034              }
9035
9036              $(document).on("click", ".lic_condition a", function () {
9037                if (BX.hasClass(BX("bx-soa-order"), "orderform--v1")) {
9038                  if (BX.Sale.OrderAjaxComponent.isValidForm()) {
9039                    BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50);
9040                  }
9041                } else {
9042                  var iCountErrors = BX.Sale.OrderAjaxComponent.isValidPropertiesBlock().length;
9043                  if (!BX.Sale.OrderAjaxComponent.activeSectionId || !iCountErrors) {
9044                    BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50);
9045                  }
9046                }
9047              });
9048            }
9049
9050            $("#bx-soa-orderSave, .bx-soa-cart-total-button-container").addClass("lic_condition");
9051
9052            if (
9053              typeof BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction === "undefined" &&
9054              typeof BX.Sale.OrderAjaxComponent.clickOrderSaveAction !== "undefined"
9055            ) {
9056              BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction = BX.Sale.OrderAjaxComponent.clickOrderSaveAction;
9057              BX.Sale.OrderAjaxComponent.clickOrderSaveAction = function (event) {
9058                if (
9059                  ($('input[name="licenses_order"]').prop("checked") || !asproShowLicence) &&
9060                  ($('input[name="offer_order"]').prop("checked") || !asproShowOffer)
9061                ) {
9062                  $(".bx-soa .licence_block label.error").addClass("hidden");
9063                  $(".bx-soa .offer_block label.error").addClass("hidden");
9064
9065                  if (BX.Sale.OrderAjaxComponent.isValidForm()) {
9066                    if (typeof BX.Sale.OrderAjaxComponent.allowOrderSave == "function")
9067                      BX.Sale.OrderAjaxComponent.allowOrderSave();
9068                    if (typeof BX.Sale.OrderAjaxComponent.doSaveAction == "function")
9069                      BX.Sale.OrderAjaxComponent.doSaveAction();
9070                    else BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction(event);
9071                  }
9072                } else {
9073                  if (!$('input[name="licenses_order"]').prop("checked"))
9074                    $(".bx-soa .licence_block label.error").removeClass("hidden");
9075
9076                  if (!$('input[name="offer_order"]').prop("checked"))
9077                    $(".bx-soa .offer_block label.error").removeClass("hidden");
9078                }
9079              };
9080              if (BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")) {
9081                if (typeof browser == "object") {
9082                  if ("msie" in browser && browser.msie)
9083                    $(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")).remove();
9084                  else BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox").remove();
9085                }
9086              }
9087              BX.unbindAll(BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"));
9088              BX.unbindAll(BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"));
9089              BX.unbindAll(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"));
9090              BX.bind(
9091                BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"),
9092                "click",
9093                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
9094              );
9095              BX.bind(
9096                BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"),
9097                "click",
9098                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
9099              );
9100              BX.bind(
9101                BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"),
9102                "click",
9103                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
9104              );
9105            }
9106          }
9107
9108          // fix hide total block
9109          $(window).scroll();
9110
9111          if (checkCounters() && typeof BX.Sale.OrderAjaxComponent.oldSaveOrder === "undefined") {
9112            var saveFunc =
9113              typeof BX.Sale.OrderAjaxComponent.saveOrder !== "undefined" ? "saveOrder" : "saveOrderWithJson";
9114            if (typeof BX.Sale.OrderAjaxComponent[saveFunc] !== "undefined") {
9115              BX.Sale.OrderAjaxComponent.oldSaveOrder = BX.Sale.OrderAjaxComponent[saveFunc];
9116              BX.Sale.OrderAjaxComponent[saveFunc] = function (result) {
9117                var res = BX.parseJSON(result);
9118                if (res && res.order) {
9119                  if (!res.order.SHOW_AUTH) {
9120                    if (
9121                      res.order.REDIRECT_URL &&
9122                      res.order.REDIRECT_URL.length &&
9123                      (!res.order.ERROR || BX.util.object_keys(res.order.ERROR).length < 1)
9124                    ) {
9125                      if (
9126                        (arMatch = res.order.REDIRECT_URL.match(/ORDER_ID\=[^&=]*/g)) &&
9127                        arMatch.length &&
9128                        (_id = arMatch[0].replace(/ORDER_ID\=/g, "", arMatch[0]))
9129                      ) {
9130                        $.ajax({
9131                          url: arAsproOptions["SITE_DIR"] + "ajax/check_order.php",
9132                          dataType: "json",
9133                          type: "POST",
9134                          data: { ID: _id },
9135                          success: function (id) {
9136                            if (parseInt(id)) {
9137                              purchaseCounter(parseInt(id), BX.message("FULL_ORDER"), function (d) {
9138                                if (typeof localStorage !== "undefined" && typeof d === "object") {
9139                                  localStorage.setItem("gtm_e_" + _id, JSON.stringify(d));
9140                                }
9141                                BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9142                              });
9143                            } else {
9144                              BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9145                            }
9146                          },
9147                          error: function () {
9148                            BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9149                          },
9150                        });
9151                      } else {
9152                        BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9153                      }
9154                    } else {
9155                      BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9156                    }
9157                  } else {
9158                    BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9159                  }
9160                } else {
9161                  BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
9162                }
9163              };
9164            }
9165          }
9166
9167          if ($("#bx-soa-order-form .captcha-row").length) {
9168            if (
9169              window.asproRecaptcha &&
9170              window.asproRecaptcha.key &&
9171              window.asproRecaptcha.params.recaptchaSize == "invisible"
9172            ) {
9173              $("#bx-soa-order-form .captcha-row").addClass("invisible");
9174              if (asproRecaptcha.params.recaptchaLogoShow === "n") {
9175                $("#bx-soa-order-form .captcha-row").addClass("logo_captcha_n");
9176              }
9177            }
9178          }
9179
9180          if ($("#bx-soa-order-form .captcha-row.invisible").length) {
9181            if (
9182              typeof BX.Sale.OrderAjaxComponent.oldSendRequest === "undefined" &&
9183              typeof BX.Sale.OrderAjaxComponent.sendRequest !== "undefined"
9184            ) {
9185              var tmpAction, tmpActionData;
9186              BX.Sale.OrderAjaxComponent.oldSendRequest = BX.Sale.OrderAjaxComponent.sendRequest;
9187              BX.Sale.OrderAjaxComponent.sendRequest = function (action, actionData) {
9188                var bSend = true;
9189
9190                if ($("#bx-soa-order-form .captcha-row.invisible").length) {
9191                  if (window.renderRecaptchaById && window.asproRecaptcha && window.asproRecaptcha.key) {
9192                    if (window.asproRecaptcha.params.recaptchaSize == "invisible") {
9193                      var form = BX("bx-soa-order-form");
9194                      if ($(form).find(".g-recaptcha").length) {
9195                        if ($(form).find(".g-recaptcha-response").val()) {
9196                          bSend = true;
9197                        } else {
9198                          if (typeof grecaptcha != "undefined") {
9199                            grecaptcha.execute($(form).find(".g-recaptcha").data("widgetid"));
9200                            bSend = false;
9201                          } else {
9202                            bSend = false;
9203                          }
9204                        }
9205                      }
9206                    }
9207                  }
9208                }
9209
9210                if (bSend) {
9211                  BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData);
9212                } else {
9213                  tmpAction = action;
9214                  tmpActionData = actionData;
9215                }
9216              };
9217
9218              $(document).on("submit", "#bx-soa-order-form", function (e) {
9219                e.preventDefault();
9220
9221                if (typeof tmpAction !== "undefined" || typeof tmpActionData !== "undefined") {
9222                  BX.Sale.OrderAjaxComponent.sendRequest(tmpAction, tmpActionData);
9223                  tmpAction = undefined;
9224                  tmpActionData = undefined;
9225                }
9226              });
9227            }
9228          }
9229        }
9230
9231        $(".bx-ui-sls-quick-locations.quick-locations").on("click", function () {
9232          $(this).siblings().removeClass("active");
9233          $(this).addClass("active");
9234        });
9235      }
9236    }
9237  };
9238}
9239
9240if (!funcDefined("basketActions")) {
9241  basketActions = function () {
9242    if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
9243      checkMinPrice();
9244
9245      //remove4Cart
9246      if (typeof BX.Sale !== "undefined" && typeof BX.Sale === "object") {
9247        if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent === "object") {
9248          $(document).on("click", ".basket-item-actions-remove", function () {
9249            var basketID = $(this).closest(".basket-items-list-item-container").data("id");
9250            delFromBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID);
9251          });
9252        }
9253      }
9254
9255      if (location.hash) {
9256        var hash = location.hash.substring(1);
9257        if ($("#basket_toolbar_button_" + hash).length) $("#basket_toolbar_button_" + hash).trigger("click");
9258
9259        if ($('.basket-items-list-header-filter a[data-filter="' + hash + '"]').length)
9260          $('.basket-items-list-header-filter a[data-filter="' + hash + '"]')[0].click();
9261      }
9262      var svg_cross =
9263        '<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>';
9264
9265      $(".bx_sort_container").append(
9266        '<div class="top_control basket_action"><span style="opacity:0;" class="delete_all colored_theme_hover_text remove_all_basket">' +
9267          svg_cross +
9268          BX.message("BASKET_CLEAR_ALL_BUTTON") +
9269          "</span></div>"
9270      );
9271      if ($(".basket-items-list-header-filter").length) {
9272        $(".basket-items-list-header-filter").append(
9273          '<div class="top_control basket_action"><span style="opacity:1;" class="delete_all colored_theme_hover_text remove_all_basket">' +
9274            svg_cross +
9275            BX.message("BASKET_CLEAR_ALL_BUTTON") +
9276            "</span></div>"
9277        );
9278
9279        var cur_index = $(".basket-items-list-header-filter > a.active").index();
9280        //fix delayed
9281        if (cur_index == 3) cur_index = 2;
9282
9283        if ($(".basket-items-list-header-filter > a.active").data("filter") == "all") cur_index = "all";
9284
9285        $(".basket-items-list-header-filter .top_control .delete_all").data("type", cur_index);
9286
9287        $(".basket-items-list-header-filter > a").on("click", function () {
9288          var index = $(this).index();
9289
9290          //fix delayed
9291          if (index == 3) index = 2;
9292
9293          if ($(this).data("filter") == "all") index = "all";
9294
9295          $(".basket-items-list-header-filter .top_control .delete_all").data("type", index);
9296        });
9297      } else {
9298        var cur_index = $(".bx_sort_container a.current").index();
9299        $(".bx_sort_container .top_control .delete_all").data("type", cur_index);
9300        if ($(".bx_ordercart > div:eq(" + cur_index + ") table tbody tr td.item").length)
9301          $(".bx_sort_container .top_control .delete_all").css("opacity", 1);
9302
9303        $(".bx_ordercart .bx_ordercart_coupon #coupon").wrap('<div class="input"></div>');
9304
9305        $(".bx_sort_container > a").on("click", function () {
9306          var index = $(this).index();
9307          $(".bx_sort_container .top_control .delete_all").data("type", index);
9308
9309          if ($(".bx_ordercart > div:eq(" + index + ") table tbody tr td.item").length)
9310            $(".bx_sort_container .top_control .delete_all").css("opacity", 1);
9311          else $(".bx_sort_container .top_control .delete_all").css("opacity", 0);
9312        });
9313      }
9314
9315      $(".basket_print").on("click", function () {
9316        // window.open(location.pathname+"?print=Y",'_blank');
9317        window.print();
9318      });
9319
9320      $(".delete_all").on("click", function () {
9321        if (arAsproOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
9322          var eventdata = { goal: "goal_basket_clear", params: { type: $(this).data("type") } };
9323          BX.onCustomEvent("onCounterGoals", [eventdata]);
9324        }
9325        $.post(
9326          arAsproOptions["SITE_DIR"] + "ajax/action_basket.php",
9327          "TYPE=" + $(this).data("type") + "&CLEAR_ALL=Y",
9328          $.proxy(function (data) {
9329            location.reload();
9330          })
9331        );
9332      });
9333
9334      $(".bx_item_list_section .bx_catalog_item").sliceHeight({ row: ".bx_item_list_slide", item: ".bx_catalog_item" });
9335
9336      BX.addCustomEvent("onAjaxSuccess", function (e) {
9337        checkMinPrice();
9338
9339        var errorText = $.trim($("#warning_message").text());
9340        $("#basket_items_list .error_text").detach();
9341        if (errorText != "") {
9342          $("#warning_message").hide().text("");
9343          $("#basket_items_list").prepend('<div class="error_text">' + errorText + "</div>");
9344        }
9345
9346        if (typeof e === "object" && "BASKET_DATA" in e) {
9347          if ($("#ajax_basket").length) {
9348            reloadTopBasket("add", $("#ajax_basket"), 200, 5000, "Y");
9349          }
9350          if ($("#basket_line .basket_fly").length) {
9351            basketFly("open", "N");
9352          }
9353        }
9354      });
9355      $(document).on(
9356        "click",
9357        ".bx_ordercart_order_pay_center .checkout, .basket-checkout-section-inner .basket-btn-checkout",
9358        function () {
9359          if (checkCounters("google")) {
9360            checkoutCounter(1, "start order");
9361          }
9362        }
9363      );
9364    }
9365  };
9366}
9367
9368if (!funcDefined("checkMinPrice")) {
9369  checkMinPrice = function () {
9370    if (arAsproOptions["PAGES"]["BASKET_PAGE"]) {
9371      var summ_raw = 0,
9372        summ = 0;
9373      if ($("#allSum_FORMATED").length) {
9374        summ_raw = $("#allSum_FORMATED")
9375          .text()
9376          .replace(/[^0-9\.,]/g, "");
9377        summ = parseFloat(summ_raw);
9378        if ($("#basket_items").length) {
9379          var summ = 0;
9380          $("#basket_items tr").each(function () {
9381            if (typeof $(this).data("item-price") !== "undefined" && $(this).data("item-price"))
9382              summ +=
9383                $(this).data("item-price") *
9384                $(this)
9385                  .find("#QUANTITY_INPUT_" + $(this).attr("id"))
9386                  .val();
9387          });
9388        }
9389        if (!$(".catalog_back").length)
9390          $(".bx_ordercart_order_pay_center").prepend(
9391            '<a href="' +
9392              arAsproOptions["PAGES"]["CATALOG_PAGE_URL"] +
9393              '" class="catalog_back btn btn-default btn-lg white grey">' +
9394              BX.message("BASKET_CONTINUE_BUTTON") +
9395              "</a>"
9396          );
9397      }
9398
9399      if (arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y")
9400        $(".basket-coupon-section").addClass("smallest");
9401
9402      if (typeof BX.Sale !== "undefined") {
9403        if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent.result !== "undefined")
9404          summ = BX.Sale.BasketComponent.result.allSum;
9405      }
9406
9407      if (arAsproOptions["PRICES"]["MIN_PRICE"]) {
9408        if (arAsproOptions["PRICES"]["MIN_PRICE"] > summ) {
9409          var svgMinPrice =
9410            '<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-.
9410125-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>';
9411          if ($(".oneclickbuy.fast_order").length) $(".oneclickbuy.fast_order").remove();
9412
9413          if ($(".basket-checkout-container").length) {
9414            if (!$(".icon_error_wrapper").length) {
9415              $(".basket-checkout-block.basket-checkout-block-btn").html(
9416                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
9417                  svgMinPrice +
9418                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
9419                    "#PRICE#",
9420                    jsPriceFormat(arAsproOptions["PRICES"]["MIN_PRICE"])
9421                  ) +
9422                  "</div></div>"
9423              );
9424            }
9425          } else {
9426            if (!$(".icon_error_wrapper").length && typeof jsPriceFormat !== "undefined") {
9427              $(".bx_ordercart_order_pay_center").prepend(
9428                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
9429                  svgMinPrice +
9430                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
9431                    "#PRICE#",
9432                    jsPriceFormat(arAsproOptions["PRICES"]["MIN_PRICE"])
9433                  ) +
9434                  "</div></div>"
9435              );
9436            }
9437            if ($(".bx_ordercart_order_pay .checkout").length) $(".bx_ordercart_order_pay .checkout").remove();
9438          }
9439        } else {
9440          if ($(".icon_error_wrapper").length) $(".icon_error_wrapper").remove();
9441
9442          if ($(".basket-checkout-container").length) {
9443            if (
9444              !$(".oneclickbuy.fast_order").length &&
9445              arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
9446              !$(".basket-btn-checkout.disabled").length
9447            )
9448              $(".basket-checkout-section-inner").append(
9449                '<div class="fastorder"><span class="oneclickbuy btn btn-lg fast_order btn-transparent-border-color" onclick="oneClickBuyBasket()">' +
9450                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
9451                  "</span></div>"
9452              );
9453          } else {
9454            if ($(".bx_ordercart_order_pay .checkout").length)
9455              $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
9456            else
9457              $(".bx_ordercart_order_pay_center").append(
9458                '<a href="javascript:void(0)" onclick="checkOut();" class="checkout" style="opacity: 1;">' +
9459                  BX.message("BASKET_ORDER_BUTTON") +
9460                  "</a>"
9461              );
9462            if (
9463              !$(".oneclickbuy.fast_order").length &&
9464              arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y"
9465            )
9466              $(".bx_ordercart_order_pay_center").append(
9467                '<span class="oneclickbuy btn btn-lg fast_order btn-transparent-border-color" onclick="oneClickBuyBasket()">' +
9468                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
9469                  "</span>"
9470              );
9471          }
9472        }
9473      } else {
9474        if ($(".basket-checkout-container").length) {
9475          if (
9476            !$(".oneclickbuy.fast_order").length &&
9477            arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
9478            !$(".basket-btn-checkout.disabled").length
9479          )
9480            $(".basket-checkout-section-inner").append(
9481              '<div class="fastorder"><span class="oneclickbuy btn btn-lg fast_order btn-transparent-border-color" onclick="oneClickBuyBasket()">' +
9482                BX.message("BASKET_QUICK_ORDER_BUTTON") +
9483                "</span></div>"
9484            );
9485        } else {
9486          $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
9487          if (!$(".oneclickbuy.fast_order").length && arAsproOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y")
9488            $(".bx_ordercart_order_pay_center").append(
9489              '<span class="oneclickbuy btn btn-lg fast_order btn-trans
9489parent-border-color" onclick="oneClickBuyBasket()">' +
9490                BX.message("BASKET_QUICK_ORDER_BUTTON") +
9491                "</span>"
9492            );
9493        }
9494      }
9495
9496      showBasketShareBtn();
9497      showBasketHeadingBtn();
9498
9499      $("#basket-root .basket-checkout-container .basket-checkout-section .basket-checkout-block .basket-btn-checkout");
9500      $("#basket-root .basket-checkout-container").addClass("visible");
9501    }
9502  };
9503}
9504
9505var isFrameDataReceived = false;
9506if (typeof window.frameCacheVars !== "undefined") {
9507  BX.addCustomEvent(window, "onFrameDataRequestFail", function (response) {
9508    console.log(response);
9509  });
9510
9511  BX.addCustomEvent("onFrameDataReceivedBefore", function () {
9512    // stop ya metrika webvisor DOM indexer
9513    pauseYmObserver();
9514  });
9515
9516  BX.addCustomEvent("onFrameDataReceived", function (json) {
9517    initFull();
9518
9519    CheckTopMenuPadding();
9520    CheckTopMenuOncePadding();
9521    CheckTopMenuDotted();
9522
9523    CheckSearchWidth();
9524
9525    checkLinkedArticles();
9526    checkLinkedBlocks(".linked-banners-list");
9527
9528    if ($(".logo-row.v2").length) {
9529      $(window).resize(); // need to check resize flexslider & menu
9530      setTimeout(function () {
9531        CheckTopMenuDotted();
9532      }, 100);
9533    }
9534
9535    if (funcDefined("setNewHeader")) {
9536      if (typeof BX === "object" && (BX.message("TYPE_SKU") != "TYPE_1" || BX.message("HAS_SKU_PROPS") != "Y")) {
9537        setNewHeader();
9538      } else {
9539        var objNameWrapper = $(".bx_catalog_item_scu[id]");
9540        if (objNameWrapper.length) {
9541          var id = "ob" + objNameWrapper.attr("id").replace("_skudiv", "");
9542          if (id && window[id] !== undefined) {
9543            var obj = window[id].offers[window[id].offerNum];
9544            if (obj !== undefined) {
9545              setNewHeader(obj);
9546            }
9547          }
9548        }
9549      }
9550    }
9551
9552    // resume ya metrika webvisor
9553    // (100ms sliceHeight) + (200ms mCustomScroll) + (100ms lazyload)
9554    setTimeout(resumeYmObserver, 400);
9555
9556    isFrameDataReceived = true;
9557  });
9558} else {
9559  $(document).ready(initFull);
9560}
9561
9562if (!funcDefined("setHeightBlockSlider")) {
9563  setHeightBlockSlider = function () {
9564    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item-title" });
9565    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item_info" });
9566    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".catalog_item" });
9567
9568    var sliderWidth = $(document).find(".specials.tab_slider_wrapp").outerWidth();
9569
9570    var iCountTabs = $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").length;
9571
9572    if (iCountTabs <= 1) {
9573      $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").css("height", "");
9574
9575      var itemsButtonsHeight = 0;
9576      if ($(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button").length) {
9577        $(document)
9578          .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button")
9579          .css("height", "auto");
9580        itemsButtonsHeight = $(document)
9581          .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button")
9582          .height();
9583        $(document)
9584          .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .footer_button")
9585          .css("height", "");
9586      }
9587      var tabsContentUnhover = $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").height() * 1;
9588      var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50;
9589      $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-unhover", tabsContentUnhover);
9590      $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-hover", tabsContentHover);
9591      $(document).find(".specials.tab_slider_wrapp .tabs_content").height(tabsContentUnhover);
9592      $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .flex-viewport").height(tabsContentUnhover);
9593    } else {
9594      $(document)
9595        .find(".specials.tab_slider_wrapp .tabs_content > li.cur")
9596        .each(function () {
9597          var _th = $(this);
9598          _th.css("height", "");
9599
9600          var itemsButtonsHeight = 0;
9601          if (_th.find(".tabs_slider li .footer_button").length) {
9602            _th.find(".tabs_slider li .footer_button").css("height", "auto");
9603            itemsButtonsHeight = _th.find(".tabs_slider li .footer_button").height();
9604            _th.find(".tabs_slider li .footer_button").css("height", "");
9605          }
9606
9607          var tabsContentUnhover = _th.height() * 1;
9608          var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50;
9609          _th.attr("data-unhover", tabsContentUnhover);
9610          _th.attr("data-hover", tabsContentHover);
9611          _th.parent().height(tabsContentUnhover);
9612          _th.find(".flex-viewport").height(tabsContentUnhover);
9613        });
9614    }
9615  };
9616}
9617
9618if (!funcDefined("checkTopFilter")) {
9619  checkTopFilter = function () {
9620    /*if(window.matchMedia('(max-width: 991px)').matches){
9621			//if($('.group_description_block.top').length){
9622				var top_pos=$('.adaptive_filter').position().top;
9623				$('.bx_filter.bx_filter_vertical').css({'top':top_pos+43});
9624			//}
9625		}*/
9626  };
9627}
9628
9629if (!funcDefined("checkStickyFooter")) {
9630  checkStickyFooter = function () {
9631    try {
9632      ignoreResize.push(true);
9633      $("#content").css("min-height", "");
9634      var contentTop = $("#content").offset().top;
9635      var contentBottom = contentTop + $("#content").outerHeight();
9636      var footerTop = 0;
9637      if ($("footer").length) footerOffset = $("footer").offset().top;
9638
9639      $("#content").css(
9640        "min-height",
9641        $(window).height() - contentTop - (footerTop - contentBottom) - $("footer").outerHeight() + "px"
9642      );
9643      ignoreResize.pop();
9644    } catch (e) {
9645      console.error(e);
9646    }
9647  };
9648}
9649
9650if (!funcDefined("checkLinkedArticles")) {
9651  checkLinkedArticles = function () {
9652    try {
9653      if ($(".linked-blog-list.content .item-views").length) {
9654        var mobileRow = $(".linked-blog-list").data("mobile_row"),
9655          desktopRow = $(".linked-blog-list").data("desktop_row"),
9656          parentBlock = $(".ajax_load .js_append"),
9657          widthRow = parentBlock.getFloatWidth(),
9658          elementWidthRow = parentBlock.find("> .item:eq(0)").getFloatWidth(),
9659          elementsCount = parentBlock.find("> .item").length,
9660          slice = Math.floor(widthRow / elementWidthRow),
9661          rowInsertCount = Math.floor(elementsCount / slice),
9662          bCalculateRows = false;
9663        if (window.matchMedia("(max-width: 767px)").matches) {
9664          if (!mobileRow && desktopRow) {
9665            mobileRow = desktopRow;
9666          }
9667          if (mobileRow && mobileRow <= rowInsertCount) {
9668            rowInsertCount = slice * mobileRow;
9669            bCalculateRows = true;
9670          }
9671        } else {
9672          if (desktopRow && desktopRow <= rowInsertCount) {
9673            rowInsertCount = slice * desktopRow;
9674            bCalculateRows = true;
9675          }
9676        }
9677        if (!bCalculateRows) {
9678          rowInsertCount = elementsCount;
9679        }
9680
9681        var linkedBlock = ".linked-blog-list";
9682        var blockInItems = parentBlock.find(linkedBlock);
9683        if (blockInItems.length) {
9684          $(blockInItems).insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
9685          setTimeout(function () {
9686            $(blockInItems).addClass("visible");
9687          }, 0);
9688        } else {
9689          var cloneBlock = $(linkedBlock).clone();
9690          var owlBlock = cloneBlock.find(".owl-carousel-wait");
9691          cloneBlock.insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
9692          owlBlock.removeClass("owl-carousel-wait").addClass("owl-carousel");
9693          setTimeout(function () {
9694            cloneBlock.addClass("visible");
9695            InitOwlSlider();
9696            owlBlock.removeClass("loader_circle");
9697          }, 1);
9698        }
9699
9700        // $('.linked-blog-list').insertAfter(parentBlock.find('> .item:eq('+(rowInsertCount-1)+')'));
9701        // setTimeout(function(){
9702        // 	$('.linked-blog-list').addClass('visible');
9703        // }, 0);
9704      }
9705    } catch (e) {
9706      console.error(e);
9707    }
9708  };
9709}
9710
9711if (!funcDefined("checkLinkedBlocks")) {
9712  checkLinkedBlocks = function (linkedBlock) {
9713    if (!linkedBlock) linkedBlock = ".linked-banners-list";
9714
9715    try {
9716      if ($(linkedBlock + ".content" + " div").length) {
9717        var mobileRow = $(linkedBlock).data("mobile_row"),
9718          desktopRow = $(linkedBlock).data("desktop_row"),
9719          parentBlock = $(".ajax_load .js_append"),
9720          widthRow = parentBlock.getFloatWidth(),
9721          elementWidthRow = parentBlock.find("> .item:eq(0)").getFloatWidth(),
9722          elementsCount = parentBlock.find("> .item").length,
9723          slice = Math.floor(widthRow / elementWidthRow),
9724          rowInsertCount = Math.floor(elementsCount / slice),
9725          bCalculateRows = false;
9726        if (window.matchMedia("(max-width: 767px)").matches) {
9727          if (!mobileRow && desktopRow) {
9728            mobileRow = desktopRow;
9729          }
9730          if (mobileRow && mobileRow <= rowInsertCount) {
9731            rowInsertCount = slice * mobileRow;
9732            bCalculateRows = true;
9733          }
9734        } else {
9735          if (desktopRow && desktopRow <= rowInsertCount) {
9736            rowInsertCount = slice * desktopRow;
9737            bCalculateRows = true;
9738          }
9739        }
9740        if (!bCalculateRows) {
9741          rowInsertCount = elementsCount;
9742        }
9743        var blockInItems = parentBlock.find(linkedBlock);
9744        if (blockInItems.length) {
9745          $(blockInItems).insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
9746          setTimeout(function () {
9747            $(blockInItems).addClass("visible");
9748          }, 0);
9749        } else {
9750          var cloneBlock = $(linkedBlock).clone();
9751          var owlBlock = cloneBlock.find(".owl-carousel-wait");
9752          cloneBlock.insertAfter(parentBlock.find("> .item:eq(" + (rowInsertCount - 1) + ")"));
9753          owlBlock.removeClass("owl-carousel-wait").addClass("owl-carousel");
9754          setTimeout(function () {
9755            cloneBlock.addClass("visible");
9756            InitOwlSlider();
9757            owlBlock.removeClass("loader_circle");
9758          }, 1);
9759        }
9760
9761        // $(linkedBlock).insertAfter(parentBlock.find('> .item:eq('+(rowInsertCount-1)+')'));
9762        // setTimeout(function(){
9763        // 	$(linkedBlock).addClass('visible');
9764        // }, 0);
9765      }
9766    } catch (e) {
9767      console.error(e);
9768    }
9769  };
9770}
9771
9772/* EVENTS */
9773var timerResize = false,
9774  ignoreResize = [];
9775$(window).resize(function () {
9776  CheckPopupTop();
9777  checkLinkedArticles();
9778  checkLinkedBlocks(".linked-banners-list");
9779
9780  // here immediate functions
9781  if (!ignoreResize.length) {
9782    if (timerResize) {
9783      clearTimeout(timerResize);
9784      timerResize = false;
9785    }
9786    timerResize = setTimeout(function () {
9787      // here delayed functions in event
9788      BX.onCustomEvent("onWindowResize", false);
9789    }, 50);
9790  }
9791});
9792
9793var timerScroll = false,
9794  ignoreScroll = [],
9795  documentScrollTopLast = $(document).scrollTop(),
9796  startScroll = 0;
9797$(window).scroll(function () {
9798  CheckPopupTop();
9799  // here immediate functions
9800  documentScrollTopLast = $(document).scrollTop();
9801  SetFixedAskBlock();
9802
9803  if (!ignoreScroll.length) {
9804    if (timerScroll) {
9805      clearTimeout(timerScroll);
9806      timerScroll = false;
9807    }
9808    timerScroll = setTimeout(function () {
9809      // here delayed functions in event
9810      BX.onCustomEvent("onWindowScroll", false);
9811    }, 50);
9812  }
9813});
9814
9815BX.addCustomEvent("onWindowResize", function (eventdata) {
9816  try {
9817    ignoreResize.push(true);
9818
9819    CheckTopMenuPadding();
9820    CheckTopMenuOncePadding();
9821    CheckSearchWidth();
9822
9823    CheckTabActive();
9824    CheckTopMenuFullCatalogSubmenu();
9825    CheckHeaderFixedMenu();
9826
9827    if (window.matchMedia("(min-width:768px)").matches) {
9828      closeYandexMap();
9829    }
9830
9831    CheckTopMenuDotted();
9832    if ($("nav.mega-menu.sliced").length) $("nav.mega-menu.sliced").removeClass("initied");
9833
9834    CheckTopVisibleMenu();
9835
9836    checkScrollToTop();
9837    CheckObjectsSizes();
9838
9839    CheckFlexSlider();
9840    initSly();
9841
9842    // checkVerticalMobileFilter();
9843    if (typeof checkMobilePhone === "function") {
9844      checkMobilePhone();
9845    }
9846    checkTopFilter();
9847    if (typeof checkMobileFilter === "function") {
9848      checkMobileFilter();
9849    }
9850
9851    if (arAsproOptions["THEME"] && arAsproOptions["THEME"]["COMPACT_FOOTER_MOBILE"] == "Y") {
9852      if (window.matchMedia("(max-width:767px)").matches) {
9853        $("footer").addClass("mobile");
9854        $(".bottom-menu .items>.wrap_compact_mobile").addClass("accordion-body collapse");
9855        $(".bottom-menu .items>.item.childs").attr("data-toggle", "collapse");
9856      } else {
9857        $("footer").removeClass("mobile");
9858        $(".bottom-menu .items>.wrap_compact_mobile").removeClass("accordion-body collapse");
9859        $(".bottom-menu .items>.item.childs").removeAttr("data-toggle");
9860      }
9861    }
9862
9863    if (typeof window["stickySidebar"] !== "undefined") {
9864      if (window.matchMedia("(max-width: 991px)").matches) {
9865        window["stickySidebar"].destroy();
9866      } else {
9867        window["stickySidebar"].bindEvents();
9868      }
9869    }
9870
9871    if ($(".flexslider.wsmooth").length) {
9872      $(".flexslider.wsmooth").each(function () {
9873        $(this).data("flexslider").smoothHeight();
9874      });
9875    }
9876
9877    if (window.matchMedia("(min-width: 767px)").matches) $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
9878
9879    if (window.matchMedia("(max-width: 767px)").matches) $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
9880
9881    if ($("#basket_form").length && $(window).outerWidth() <= 600) {
9882      $("#basket_form .tabs_content.basket > li.cur td").each(function () {
9883        $(this).css("width", "");
9884      });
9885    }
9886
9887    $(".bx_filter_section .bx_filter_select_container").each(function () {
9888      var prop_id = $(this).closest(".bx_filter_parameters_box").attr("property_id");
9889      if ($("#smartFilterDropDown" + prop_id).length) {
9890        $("#smartFilterDropDown" + prop_id).css("max-width", $(this).width());
9891      }
9892    });
9893
9894    if (window.matchMedia("(min-width: 768px)").matches) {
9895      // min-width: 768px
9896      $(".bx_filter .scrollbar").removeClass("mobile-scroll");
9897      $(".bx_filter .srollbar-custom").removeClass("mobile-scroll");
9898      $(".bx_filter .bx_filter_section form .bx_filter_parameters").removeClass("mobile-scroll");
9899      InitScrollBar();
9900      InitCustomScrollBar();
9901    } else {
9902      // max-width: 767px
9903      $(".bx_filter .scrollbar").addClass("mobile-scroll").removeClass("scroll-init");
9904      $(".bx_filter .srollbar-custom").addClass("mobile-scroll").removeClass("scroll-init");
9905      $(".bx_filter .bx_filter_section form .bx_filter_parameters")
9906        .addClass("mobile-scroll")
9907        .removeClass("scroll-init");
9908      if ($(".bx_filter .mobile-scroll.scrollbar").length)
9909        $(".bx_filter .mobile-scroll.scrollbar").mCustomScrollbar("destroy");
9910      if ($(".bx_filter .mobile-scroll.srollbar-custom").length)
9911        $(".bx_filter .mobile-scroll.srollbar-custom").mCustomScrollbar("destroy");
9912    }
9913  } catch (e) {
9914    console.log(e);
9915  } finally {
9916    ignoreResize.pop();
9917  }
9918});
9919
9920BX.addCustomEvent("onWindowScroll", function (eventdata) {
9921  try {
9922    ignoreScroll.push(true);
9923  } catch (e) {
9924  } finally {
9925    ignoreScroll.pop();
9926  }
9927});
9928
9929BX.addCustomEvent("onSlideInit", function (eventdata) {
9930  try {
9931    ignoreResize.push(true);
9932    if (eventdata) {
9933      var slider = eventdata.slider;
9934      if (slider) {
9935        if (slider.hasClass("small-gallery")) $(window).resize();
9936        // add classes .curent & .shown to slide
9937        slider.find(".item").removeClass("current");
9938        var curSlide = slider.find(".item.flex-active-slide"),
9939          curSlideId = curSlide.attr("id"),
9940          nav = slider.find(".flex-direction-nav");
9941
9942        curSlide.addClass("current");
9943
9944        slider.find(".visible").css("opacity", "1");
9945        slider.find(".height0").css("height", "auto");
9946
9947        if (curSlide.hasClass("shown")) {
9948          slider.find(".item.clone[id=" + curSlideId + "_clone]").addClass("shown");
9949        }
9950
9951        curSlide.addClass("shown");
9952      }
9953    }
9954  } catch (e) {
9955  } finally {
9956    ignoreResize.pop();
9957  }
9958});
9959
9960BX.addCustomEvent("onCounterGoals", function (eventdata) {
9961  if (arAsproOptions["THEME"]["YA_GOALS"] == "Y" && arAsproOptions["THEME"]["YA_COUNTER_ID"]) {
9962    var idCounter = arAsproOptions["THEME"]["YA_COUNTER_ID"];
9963    idCounter = parseInt(idCounter);
9964
9965    if (typeof eventdata != "object") eventdata = { goal: "undefined" };
9966
9967    if (typeof eventdata.goal != "string") eventdata.goal = "undefined";
9968
9969    if (idCounter) {
9970      try {
9971        waitCounter(idCounter, 50, function () {
9972          var obCounter = window["yaCounter" + idCounter];
9973          if (typeof obCounter == "object") {
9974            obCounter.reachGoal(eventdata.goal);
9975          }
9976        });
9977      } catch (e) {
9978        console.error(e);
9979      }
9980    } else {
9981      console.info("Bad counter id!", idCounter);
9982    }
9983  }
9984});
9985
9986var onCaptchaVerifyinvisible = function (response) {
9987  $(".g-recaptcha:last").each(function () {
9988    var id = $(this).attr("data-widgetid");
9989    if (typeof id !== "undefined" && response) {
9990      if (!$(this).closest("form").find(".g-recaptcha-response").val())
9991        $(this).closest("form").find(".g-recaptcha-response").val(response);
9992      if ($("iframe[src*=recaptcha]").length) {
9993        $("iframe[src*=recaptcha]").each(function () {
9994          var block = $(this).parent().parent();
9995          if (!block.hasClass("grecaptcha-badge")) block.css("width", "100%");
9996        });
9997      }
9998      $(this).closest("form").submit();
9999    }
10000  });
10001};
10002
10003var onCaptchaVerifynormal = function (response) {
10004  $(".g-recaptcha").each(function () {
10005    var id = $(this).attr("data-widgetid");
10006    if (typeof id !== "undefined") {
10007      if (grecaptcha.getResponse(id) != "") {
10008        $(this).closest("form").find(".recaptcha").valid();
10009      }
10010    }
10011  });
10012};
10013
10014BX.addCustomEvent("onSubmitForm", function (eventdata) {
10015  try {
10016    if (!window.renderRecaptchaById || !window.asproRecaptcha || !window.asproRecaptcha.key) {
10017      eventdata.form.submit();
10018      $(eventdata.form).closest(".form").addClass("sending");
10019      return true;
10020    }
10021
10022    if (window.asproRecaptcha.params.recaptchaSize == "invisible" && $(eventdata.form).find(".g-recaptcha").length) {
10023      if ($(eventdata.form).find(".g-recaptcha-response").val()) {
10024        eventdata.form.submit();
10025        $(eventdata.form).closest(".form").addClass("sending");
10026        return true;
10027      } else {
10028        if (typeof grecaptcha != "undefined") {
10029          grecaptcha.execute($(eventdata.form).find(".g-recaptcha").data("widgetid"));
10030        } else {
10031          return false;
10032        }
10033      }
10034    } else {
10035      eventdata.form.submit();
10036      $(eventdata.form).closest(".form").addClass("sending");
10037      return true;
10038    }
10039  } catch (e) {
10040    console.error(e);
10041    return true;
10042  }
10043});
10044
10045$(document).on("click", ".catalog_reviews_extended span.dropdown-select__list-link", function () {
10046  var _this = $(this);
10047  var ajaxData = _this.data("review_sort_ajax");
10048  var container = _this.closest("[id^=comp_]");
10049  containerId = container.attr("id");
10050  if (containerId !== undefined && containerId) {
10051    ajaxData.containerId = containerId;
10052  }
10053  if (ajaxData !== undefined) {
10054    container.addClass("blur");
10055    $.ajax({
10056      type: "post",
10057      data: ajaxData,
10058      success: function (html) {
10059        $("#reviews_sort_continer").html(html);
10060      },
10061    });
10062  }
10063});
10064
10065$(document).on("click", ".rating_vote:not(.disable)", function () {
10066  var _this = $(this);
10067  var action = _this.data("action");
10068  var parent = _this.closest(".rating-vote");
10069  var commentId = parent.data("comment_id");
10070  var userId = parent.data("user_id");
10071  var ajaxUrl = parent.data("ajax_url");
10072  $.ajax({
10073    url: ajaxUrl,
10074    dataType: "json",
10075    data: { commentId: commentId, action: action, userId: userId },
10076    success: function (data) {
10077      if (data.LIKE !== undefined) {
10078        _this.siblings(".rating-vote-result.like").text(data.LIKE);
10079      }
10080      if (data.DISLIKE !== undefined) {
10081        _this.siblings(".rating-vote-result.dislike").text(data.DISLIKE);
10082      }
10083      if (data.SET_ACTIVE_LIKE !== undefined) {
10084        parent.find(".rating_vote.plus").toggleClass("active");
10085      }
10086      if (data.SET_ACTIVE_DISLIKE !== undefined) {
10087        parent.find(".rating_vote.minus").toggleClass("active");
10088      }
10089    },
10090  });
10091});
10092
10093function fileInputInit(message) {
10094  $("input[type=file]").uniform({ fileButtonHtml: BX.message("JS_FILE_BUTTON_NAME"), fileDefaultHtml: message });
10095  $(document).on("change", "input[type=file]", function () {
10096    if ($(this).val()) {
10097      $(this).closest(".uploader").addClass("files_add");
10098    } else {
10099      $(this).closest(".uploader").removeClass("files_add");
10100    }
10101  });
10102  $(".form .add_file").on("click", function () {
10103    var index = $(this).closest(".input").find("input[type=file]").length + 1;
10104
10105    $(this)
10106      .closest(".form-group")
10107      .find(".input")
10108      .append('<input type="file" id="POPUP_FILE" name="FILE_n' + index + '"   class="inputfile" value="" />');
10109    $("input[type=file]").uniform({ fileButtonHtml: BX.message("JS_FILE_BUTTON_NAME"), fileDefaultHtml: message });
10110  });
10111
10112  $(".form .add_file").on("click", function () {
10113    var index = $(this).closest(".input").find("input[type=file]").length + 1;
10114
10115    $(this)
10116      .closest(".form-group")
10117      .find(".input")
10118      .append('<input type="file" id="POPUP_FILE" name="FILE_n' + index + '"   class="inputfile" value="" />');
10119    $("input[type=file]").uniform({ fileButtonHtml: BX.message("JS_FILE_BUTTON_NAME"), fileDefaultHtml: message });
10120  });
10121}
10122
10123/*custom event for sku prices*/
10124
10125/*BX.addCustomEvent('onAsproSkuSetPrice', function(eventdata){
10126	console.log(eventdata);
10127})*/
10128
10129/*BX.addCustomEvent('onAsproSkuSetPriceMatrix', function(eventdata){
10130	console.log(eventdata);
10131})*/
10132
10133function declOfNum(number, titles) {
10134  var cases = [2, 0, 1, 1, 1, 2];
10135  return number + " " + titles[number % 100 > 4 && number % 100 < 20 ? 2 : cases[Math.min(number % 10, 5)]];
10136}
10137
10138function array_values_js(input) {
10139  var tmp_arr = new Array(),
10140    cnt = 0;
10141  for (key in input) {
10142    tmp_arr[cnt] = input[key];
10143    cnt++;
10144  }
10145
10146  return tmp_arr;
10147}

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.