PageSourceSearch

https://xn--80aahhrmritp2ag.xn--p1ai/bitrix/templates/aspro_optimus/js/main.js

js xn--80aahhrmritp2ag.xn--p1ai collected 2026-10-05 21:33:18 UTC 224,382 bytes, 6,468 lines download raw bytes

1var basketTimeoutSlide;
2var resizeEventTimer;
3
4var funcDefined = function (func) {
5  try {
6    if (typeof func == "function") {
7      return true;
8    } else {
9      return typeof window[func] === "function";
10    }
11  } catch (e) {
12    return false;
13  }
14};
15
16if (!funcDefined("setLocationSKU")) {
17  function setLocationSKU(ID, offerID) {
18    if (offerID === undefined) offerID = "oid";
19    if (offerID) {
20      var objUrl = parseUrlQuery(),
21        j = 0,
22        prefix = "",
23        query_string = "",
24        url = "";
25      objUrl[offerID] = ID;
26      for (var i in objUrl) {
27        if (parseInt(j) > 0) {
28          prefix = "&";
29        }
30        query_string += prefix + i + "=" + objUrl[i];
31        j++;
32      }
33      if (query_string) {
34        url = location.pathname + "?" + query_string;
35      }
36      try {
37        history.replaceState(null, null, url);
38        return;
39      } catch (e) {}
40      location.hash = "#" + url.substr(1);
41    }
42  }
43}
44
45/*sku change props*/
46if (!("SelectOfferProp" in window) && typeof window.SelectOfferProp != "function") {
47  SelectOfferProp = function () {
48    // return false;
49    var _this = $(this),
50      obParams = {},
51      obSelect = {},
52      objUrl = parseUrlQuery(),
53      add_url = "",
54      selectMode = !_this.hasClass("item") ? true : false,
55      container = _this.closest(".bx_catalog_item_scu"),
56      img = _this.closest(".item-parent").find(".thumb img");
57
58    /* request params */
59    obParams = {
60      PARAMS: _this.closest(".js-wrapper-block").data("params"),
61      ID: container.data("offer_id"),
62      SITE_ID: container.data("site_id"),
63      LINK_ID: container.data("id") + "_" + _this.closest(".cur").data("code"),
64      IBLOCK_ID: container.data("offer_iblockid"),
65      PROPERTY_ID: container.data("propertyid"),
66      DEPTH: _this.closest(".item_wrapper").index(),
67      VALUE: selectMode ? _this.find("option:selected").data("onevalue") : _this.data("onevalue"),
68      CLASS: "inner_content",
69      PICTURE: img.data("src") ? img.data("src") : img.attr("src"),
70      ARTICLE_NAME: _this.closest(".item_wrapper").find(".article_block").data("name"),
71      ARTICLE_VALUE: _this.closest(".item_wrapper").find(".article_block").data("value"),
72    };
73    /**/
74
75    if ("clear_cache" in objUrl) {
76      if (objUrl.clear_cache == "Y") add_url += "?clear_cache=Y";
77    }
78
79    /* save selected values */
80    for (i = 0; i < obParams.DEPTH + 1; i++) {
81      strName = "PROP_" + container.find(".item_wrapper:eq(" + i + ") > div").data("id");
82      if (container.find(".item_wrapper:eq(" + i + ") select").length) {
83        obSelect[strName] = container.find(".item_wrapper:eq(" + i + ") select option:selected").data("onevalue");
84        obParams[strName] = container.find(".item_wrapper:eq(" + i + ") select option:selected").data("onevalue");
85
86        if (container.find(".item_wrapper:eq(" + i + ") select option:selected").attr("title")) {
87          _this
88            .closest(".item_wrapper")
89            .find(".show_class")
90            .text(container.find(".item_wrapper:eq(" + i + ") select option:selected").attr("title"));
91        }
92      } else {
93        obSelect[strName] = container.find(".item_wrapper:eq(" + i + ") li.item.active").data("onevalue");
94        obParams[strName] = container.find(".item_wrapper:eq(" + i + ") li.item.active").data("onevalue");
95      }
96    }
97    // obParams.SELECTED = JSON.stringify(obSelect);
98    /**/
99
100    if (!selectMode) {
101      _this.siblings().removeClass("active");
102      _this.addClass("active");
103    }
104
105    setPropertyTitle(_this);
106
107    /* get sku */
108    $.ajax({
109      url: arOptimusOptions["SITE_DIR"] + "ajax/js_item_detail.php" + add_url,
110      type: "POST",
111      data: obParams,
112    }).done(function (html) {
113      var ob = BX.processHTML(html);
114      BX.ajax.processScripts(ob.SCRIPT);
115      // if (funcDefined("sliceItemBlock")) {
116      //   sliceItemBlock({ resize: false });
117      // }
118
119      if ($(".counter_wrapp.list")) {
120        $(".counter_wrapp.list .counter_block.big").removeClass("big");
121      }
122    });
123  };
124  $(document).on("click", ".ajax_load .bx_catalog_item_scu li.item:not(.active)", SelectOfferProp);
125  $(document).on("change", ".ajax_load .bx_catalog_item_scu select", SelectOfferProp);
126}
127
128if (!funcDefined("setPropertyTitle")) {
129  var setPropertyTitle = function(ctx) {
130    if (ctx.attr("title")) {
131      const skuVal = ctx.attr("title");
132      ctx.closest(".item_wrapper").find(".show_class").text(skuVal);
133    } else {
134      const img_row = ctx.find(" > i");
135
136      if (img_row.length && img_row.attr("title")) {
137        const skuVal = img_row.attr("title");
138        ctx.closest(".item_wrapper").find(".show_class").text(skuVal);
139      }
140    }
141  }
142}
143
144if (!funcDefined("trimPrice")) {
145  var trimPrice = function trimPrice(s) {
146    s = s.split(" ").join("");
147    s = s.split("&nbsp;").join("");
148    return s;
149  };
150}
151
152if (!funcDefined("markProductRemoveBasket")) {
153  var markProductRemoveBasket = function markProductRemoveBasket(id) {
154    $(".in-cart[data-item=" + id + "]").hide();
155    $(".to-cart[data-item=" + id + "]").show();
156    $(".to-cart[data-item=" + id + "]")
157      .closest(".button_block")
158      .removeClass("wide");
159    $(".to-cart[data-item=" + id + "]")
160      .closest(".counter_wrapp")
161      .find(".counter_block")
162      .show();
163    $(".counter_block[data-item=" + id + "]").show();
164    $(".in-subscribe[data-item=" + id + "]").hide();
165    $(".to-subscribe[data-item=" + id + "]").show();
166    $(".wish_item[data-item=" + id + "]").removeClass("added");
167    $(".wish_item[data-item=" + id + "] .value:not(.added)").show();
168    $(".wish_item[data-item=" + id + "] .value.added").hide();
169  };
170}
171
172if (!funcDefined("markProductAddBasket")) {
173  var markProductAddBasket = function markProductAddBasket(id) {
174    $(".to-cart[data-item=" + id + "]").hide();
175    $(".to-cart[data-item=" + id + "]")
176      .closest(".counter_wrapp")
177      .find(".counter_block")
178      .hide();
179    $(".to-cart[data-item=" + id + "]")
180      .closest(".button_block")
181      .addClass("wide");
182    $(".in-cart[data-item=" + id + "]").show();
183    $(".wish_item[data-item=" + id + "]").removeClass("added");
184    $(".wish_item[data-item=" + id + "] .value:not(.added)").show();
185    $(".wish_item[data-item=" + id + "] .value.added").hide();
186  };
187}
188
189if (!funcDefined("markProductDelay")) {
190  var markProductDelay = function markProductDelay(id) {
191    $(".in-cart[data-item=" + id + "]").hide();
192    $(".to-cart[data-item=" + id + "]").show();
193    $(".to-cart[data-item=" + id + "]")
194      .closest(".counter_wrapp")
195      .find(".counter_block")
196      .show();
197    $(".to-cart[data-item=" + id + "]")
198      .closest(".button_block")
199      .removeClass("wide");
200    $(".wish_item[data-item=" + id + "]").addClass("added");
201    $(".wish_item[data-item=" + id + "] .value:not(.added)").hide();
202    // $('.wish_item[data-item='+id+'] .value.added').show();
203    $(".wish_item[data-item=" + id + "] .value.added").css("display", "block");
204  };
205}
206
207if (!funcDefined("markProductSubscribe")) {
208  var markProductSubscribe = function markProductSubscribe(id) {
209    $(".to-subscribe[data-item=" + id + "]").hide();
210    $(".in-subscribe[data-item=" + id + "]").css("display", "block");
211  };
212}
213
214if (!funcDefined("basketFly")) {
215  var basketFly = function basketFly(action) {
216    if (typeof obOptimusPredictions === "object") {
217      obOptimusPredictions.updateAll();
218    }
219
220    $.post(
221      arOptimusOptions["SITE_DIR"] + "ajax/basket_fly.php",
222      "PARAMS=" + $("#basket_form").find("input#fly_basket_params").val(),
223      $.proxy(function (data) {
224        var small = $(".opener .basket_count").hasClass("small"),
225          basket_count = $(data).find(".basket_count").find(".items div").text();
226        $("#basket_line .basket_fly").addClass("loaded").html(data);
227
228        if (action == "refresh") {
229          $("li[data-type=AnDelCanBuy]").trigger("click");
230        }
231
232        if (window.matchMedia("(min-width: 769px)").matches) {
233          if (action == "open") {
234            if (small) {
235              if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
236                if (!$('.basket_fly').hasClass('opened-once')) {
237                  $(".opener .basket_count").click();
238                  $('.basket_fly').addClass('opened-once');
239                }
240              }
241            } else {
242              $(".opener .basket_count").removeClass("small");
243              $('.tabs_content.basket li[item-section="AnDelCanBuy"]').addClass("cur");
244              $('#basket_line ul.tabs li[item-section="AnDelCanBuy"]').addClass("cur");
245            }
246          } else if (action == "wish") {
247            if (small) {
248              if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
249                $(".opener .wish_count").click();
250              }
251            } else {
252              $(".opener .wish_count").removeClass("small");
253              $('.tabs_content.basket li[item-section="DelDelCanBuy"]').addClass("cur");
254              $('#basket_line ul.tabs li[item-section="DelDelCanBuy"]').addClass("cur");
255            }
256          } else {
257            if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
258              $(".opener .basket_count").click();
259            }
260          }
261        }
262      })
263    );
264  };
265}
266
267if (!funcDefined("clearViewedProduct")) {
268  function clearViewedProduct() {
269    try {
270      var siteID = arOptimusOptions.SITE_ID;
271      var localKey = "OPTIMUS_VIEWED_ITEMS_" + siteID;
272      var cookieParams = { path: "/", expires: 30 };
273      if (typeof BX.localStorage !== "undefined") {
274        // remove local storage
275        BX.localStorage.set(localKey, {}, 0);
276      }
277      // remove cookie
278      $.removeCookie(localKey, cookieParams);
279    } catch (e) {
280      console.error(e);
281    }
282  }
283}
284
285if (!funcDefined("setViewedProduct")) {
286  function setViewedProduct(id, arData) {
287    try {
288      // save $.cookie option
289      var bCookieJson = $.cookie.json;
290      $.cookie.json = true;
291
292      var siteID = arOptimusOptions.SITE_ID;
293      var localKey = "OPTIMUS_VIEWED_ITEMS_" + siteID;
294      var cookieParams = { path: "/", expires: 30 };
295
296      if (typeof BX.localStorage !== "undefined" && typeof id !== "undefined" && typeof arData !== "undefined") {
297        var PRODUCT_ID = typeof arData.PRODUCT_ID !== "undefined" ? arData.PRODUCT_ID : id;
298        var arViewedLocal = BX.localStorage.get(localKey) ? BX.localStorage.get(localKey) : {};
299        var arViewedCookie = $.cookie(localKey) ? $.cookie(localKey) : {};
300        var count = 0;
301
302        // delete some items (sync cookie & local storage)
303        for (var _id in arViewedLocal) {
304          arViewedLocal[_id].IS_LAST = false;
305          if (typeof arViewedCookie[_id] === "undefined") {
306            delete arViewedLocal[_id];
307          }
308        }
309        for (var _id in arViewedCookie) {
310          if (typeof arViewedLocal[_id] === "undefined") {
311            delete arViewedCookie[_id];
312          }
313        }
314
315        for (var _id in arViewedCookie) {
316          count++;
317        }
318
319        // delete item if other item (offer) of that PRODUCT_ID is exists
320        if (typeof arViewedLocal[PRODUCT_ID] !== "undefined") {
321          if (arViewedLocal[PRODUCT_ID].ID != id) {
322            delete arViewedLocal[PRODUCT_ID];
323            delete arViewedCookie[PRODUCT_ID];
324          }
325        }
326
327        delete arViewedLocal[2243];
328        delete arViewedCookie[2243];
329
330        var time = new Date().getTime();
331        arData.ID = id;
332        arData.ACTIVE_FROM = time;
333        arData.IS_LAST = true;
334        arViewedLocal[PRODUCT_ID] = arData;
335        arViewedCookie[PRODUCT_ID] = [time.toString(), arData.PICTURE_ID];
336
337        $.cookie(localKey, arViewedCookie, cookieParams);
338        BX.localStorage.set(localKey, arViewedLocal, 2592000); // 30 days
339      }
340    } catch (e) {
341      console.error(e);
342    } finally {
343      // restore $.cookie option
344      $.cookie.json = bCookieJson;
345    }
346  }
347}
348
349if (!funcDefined("initSelects")) {
350  function initSelects(target) {
351    var iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false;
352    if (iOS) return;
353    if ($("#bx-soa-order").length) return;
354    // SELECT STYLING
355    $(target)
356      .find(".wrapper select:visible")
357      .ikSelect({
358        syntax:
359          '<div class="ik_select_link"> \
360						<span class="ik_select_link_text"></span> \
361						<div class="trigger"></div> \
362					</div> \
363					<div class="ik_select_dropdown"> \
364						<div class="ik_select_list"> \
365						</div> \
366					</div>',
367        dynamicWidth: true,
368        ddMaxHeight: 112,
369        customClass: "common_select",
370        //equalWidths: true,
371        onShow: function (inst) {
372          inst.$dropdown.css("top", parseFloat(inst.$dropdown.css("top")) - 5 + "px");
373          if (inst.$dropdown.outerWidth() < inst.$link.outerWidth()) {
374            inst.$dropdown.css("width", inst.$link.outerWidth());
375          }
376          if (inst.$dropdown.outerWidth() > inst.$link.outerWidth()) {
377            inst.$dropdown.css("width", inst.$link.outerWidth());
378          }
379          var count = 0,
380            client_height = 0;
381          inst.$dropdown.css("left", inst.$link.offset().left);
382          $(inst.$listInnerUl)
383            .find("li")
384            .each(function () {
385              if (!$(this).hasClass("ik_select_option_disabled")) {
386                ++count;
387                client_height += $(this).outerHeight();
388              }
389            });
390          if (client_height < 112) {
391            inst.$listInner.css("height", "auto");
392          } else {
393            inst.$listInner.css("height", "112px");
394          }
395          inst.$link.addClass("opened");
396          inst.$listInner.addClass("scroller");
397        },
398        onHide: function (inst) {
399          inst.$link.removeClass("opened");
400        },
401      });
402    // END OF SELECT STYLING
403
404    var timeout;
405    $(window).on("resize", function () {
406      clearTimeout(timeout);
407      timeout = setTimeout(function () {
408        //$('select:visible').ikSelect('redraw');
409        var inst = "";
410        if ((inst = $(".common_select-link.opened + select").ikSelect().data("plugin_ikSelect"))) {
411          inst.$dropdown.css("left", inst.$link.offset().left + "px");
412        }
413      }, 20);
414    });
415  }
416}
417
418if (!funcDefined("CheckTopMenuFullCatalogSubmenu")) {
419  CheckTopMenuFullCatalogSubmenu = function () {
420    if (arOptimusOptions["THEME"]["MENU_TYPE_VIEW"] != "hover") return;
421    var $menu = $(".menu_top_block");
422    var $wrapmenu = $menu.parents(".wrap_menu");
423    var wrapMenuWidth = $wrapmenu.actual("outerWidth");
424    var wrapMenuLeft = $wrapmenu.offset().left;
425    var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
426    var bCatalogFirst = $menu.hasClass("catalogfirst");
427    var findMenuLi = $(".menu_top_block:visible li.full");
428    var parentSubmenuWidth = $menu.actual("outerWidth");
429
430    if ($(".catalog_block.menu_top_block").length) {
431      if ($(".catalog_block.menu_top_block").is(":visible")) findMenuLi = $(".menu_top_block.catalog_block li.full");
432    }
433
434    findMenuLi.each(function () {
435      var $this = $(this);
436      var $submenu = $this.find(">.dropdown");
437
438      if ($submenu.length) {
439        if (bCatalogFirst) {
440          $submenu.css({
441            left: parentSubmenuWidth + "px",
442            width: wrapMenuWidth - parentSubmenuWidth + "px",
443            "padding-left": "0px",
444            "padding-right": "0px",
445          });
446        } else {
447          $submenu.css({
448            left: $this.offset().left * -1 + "px",
449            width: $(window).width() - 1 + "px",
450            "padding-left": wrapMenuLeft + "px",
451            "padding-right": $(window).width() - wrapMenuRight + "px",
452          });
453        }
454        if (!isOnceInited && bCatalogFirst && arOptimusOptions["THEME"]["MENU_POSITION"] == "top") {
455          $this.on("mouseenter", function () {
456            $submenu.css("min-height", $this.closest(".dropdown").actual("outerHeight") + "px");
457          });
458        }
459      }
460    });
461  };
462}
463
464$.fn.getMaxHeights = function (outer, classNull, minHeight) {
465  var maxHeight = this.map(function (i, e) {
466    var calc_height = 0;
467
468    $(e).css("height", "");
469
470    if (outer == true) {
471      calc_height = $(e).actual("outerHeight");
472    } else {
473      calc_height = $(e).actual("height");
474    }
475    return calc_height;
476  }).get();
477  for (var i = 0, c = maxHeight.length; i < c; ++i) {
478    if (maxHeight[i] % 2) {
479      --maxHeight[i];
480    }
481  }
482  return Math.max.apply(this, maxHeight);
483};
484
485$.fn.equalizeHeights = function (outer, classNull, minHeight) {
486  var maxHeight = this.map(function (i, e) {
487    var minus_height = 0,
488      calc_height = 0;
489    if (classNull !== false) {
490      if (!isMobile) {
491        minus_height = parseInt($(e).find(classNull).actual("outerHeight"));
492      }
493    }
494    if (minus_height) minus_height += 12;
495    $(e).css("height", "");
496    if (outer == true) {
497      calc_height = $(e).actual("outerHeight") - minus_height;
498    } else {
499      calc_height = $(e).actual("height") - minus_height;
500    }
501    if (minHeight !== false) {
502      if (calc_height < minHeight) {
503        calc_height += minHeight - calc_height;
504      }
505      if (window.matchMedia("(max-width: 520px)").matches) {
506        calc_height = 300;
507      }
508      if (window.matchMedia("(max-width: 400px)").matches) {
509        calc_height = 200;
510      }
511    }
512    return calc_height;
513  }).get();
514
515  for (var i = 0, c = maxHeight.length; i < c; ++i) {
516    if (maxHeight[i] % 2) {
517      --maxHeight[i];
518    }
519  }
520  return this.height(Math.max.apply(this, maxHeight));
521};
522
523$.fn.getFloatWidth = function () {
524  var width = 0;
525
526  if ($(this).length) {
527    var rect = $(this)[0].getBoundingClientRect();
528    if (!(width = rect.width)) {
529      width = rect.right - rect.left;
530    }
531  }
532
533  return width;
534};
535
536$.fn.sliceHeight = function (options) {
537  function _slice(el) {
538    el.each(function () {
539      $(this).css("line-height", "");
540      $(this).css("height", "");
541    });
542
543    if (options.mobile == true) {
544      if (window.matchMedia("(max-width: 520px)").matches) {
545        return;
546      }
547    }
548
549    if (typeof options.autoslicecount == "undefined" || options.autoslicecount !== false) {
550      var row =
551          typeof options.row !== "undefined" && options.row.length
552            ? el.first().parents(options.row).getFloatWidth()
553            : el.first().parents(".items").getFloatWidth(),
554        elw =
555          typeof options.item !== "undefined" && options.item.length
556            ? $(options.item).first().getFloatWidth()
557            : el.first().hasClass("item")
558            ? el.first().getFloatWidth()
559            : el.first().parents(".item").getFloatWidth();
560      if (!row) {
561        row = el.first().parents(".row").getFloatWidth();
562      }
563      if (row && elw) {
564        options.slice = Math.floor(row / elw);
565      }
566    }
567    if (options.slice) {
568      for (var i = 0; i < el.length; i += options.slice) {
569        $(el.slice(i, i + options.slice)).equalizeHeights(options.outer, options.classNull, options.minHeight);
570      }
571    }
572    if (options.lineheight) {
573      var lineheightAdd = parseInt(options.lineheight);
574      if (isNaN(lineheightAdd)) {
575        lineheightAdd = 0;
576      }
577      el.each(function () {
578        $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px");
579      });
580    }
581  }
582
583  var options = $.extend(
584    {
585      slice: null,
586      outer: false,
587      lineheight: false,
588      autoslicecount: true,
589      classNull: false,
590      minHeight: false,
591      options: false,
592      resize: true,
593      row: false,
594      item: false,
595      mobile: false,
596    },
597    options
598  );
599
600  var el = $(this);
601
602  if (options.mobile == true) {
603    if (
604      typeof arOptimusOptions === "object" &&
605      typeof arOptimusOptions.THEME.MOBILE_CATALOG_BLOCK_COMPACT === "string" &&
606      arOptimusOptions.THEME.MOBILE_CATALOG_BLOCK_COMPACT.toUpperCase() === "Y" &&
607      el.first().parents(".catalog_block.items").length
608    ) {
609      options.mobile = false;
610    }
611  }
612  _slice(el);
613
614  if (options.resize) {
615    if (!window.sliceResizeElements) {
616      window.sliceResizeElements = [];
617      BX.addCustomEvent("onWindowResize", function () {
618        ignoreResize.push(true);
619        window.sliceResizeElements.forEach(function (el) {
620          _slice(el);
621        });
622        ignoreResize.pop();
623      });
624    }
625
626    window.sliceResizeElements.push(el);
627  } else {
628    if (!ignoreResize.length) {
629      // ignoreResize.push(true);
630      _slice(el);
631      // ignoreResize.pop();
632    }
633  }
634};
635
636$.fn.sliceHeightNoResize = function (options) {
637  function _slice(el) {
638    el.each(function () {
639      $(this).css("line-height", "");
640      $(this).css("height", "");
641    });
642    if (typeof options.autoslicecount == "undefined" || options.autoslicecount !== false) {
643      var elw = el.first().hasClass("item") ? el.first().getFloatWidth() : el.first().parents(".item").getFloatWidth();
644      var elsw = el.first().parents(".items").getFloatWidth();
645      if (!elsw) {
646        elsw = el.first().parents(".row").getFloatWidth();
647      }
648      if (elsw && elw) {
649        options.slice = Math.floor(elsw / elw);
650      }
651    }
652
653    if (options.slice) {
654      for (var i = 0; i < el.length; i += options.slice) {
655        $(el.slice(i, i + options.slice)).equalizeHeights(options.outer, options.classNull, options.minHeight);
656      }
657    }
658    if (options.lineheight) {
659      var lineheightAdd = parseInt(options.lineheight);
660      if (isNaN(lineheightAdd)) {
661        lineheightAdd = 0;
662      }
663      el.each(function () {
664        $(this).css("line-height", $(this).actual("height") + lineheightAdd + "px");
665      });
666    }
667  }
668
669  var options = $.extend(
670    {
671      slice: null,
672      outer: false,
673      lineheight: false,
674      autoslicecount: true,
675      classNull: false,
676      minHeight: false,
677      options: false,
678      resize: true,
679    },
680    options
681  );
682
683  var el = $(this);
684  _slice(el);
685};
686
687if (!funcDefined("initHoverBlock")) {
688  function initHoverBlock(target) {
689    /*$(target).find('.catalog_item.item_wrap').on('mouseenter', function(){
690			$(this).addClass('hover');
691		})
692		$(target).find('.catalog_item.item_wrap').on('mouseleave', function(){
693			$(this).removeClass('hover');
694		})*/
695  }
696}
697
698if (!funcDefined("setStatusButton")) {
699  function setStatusButton() {
700    $.ajax({
701      url: arOptimusOptions["SITE_DIR"] + "ajax/getAjaxBasket.php",
702      type: "POST",
703      success: function (data) {
704        if (data.BASKET) {
705          for (var i in data.BASKET) {
706            $(".to-cart[data-item=" + data.BASKET[i] + "]").hide();
707            $(".counter_block[data-item=" + data.BASKET[i] + "]").hide();
708            $(".in-cart[data-item=" + data.BASKET[i] + "]").show();
709            $(".in-cart[data-item=" + data.BASKET[i] + "]")
710              .closest(".button_block")
711              .addClass("wide");
712          }
713        }
714        if (data.DELAY) {
715          for (var i in data.DELAY) {
716            $(".wish_item.to[data-item=" + data.DELAY[i] + "]").hide();
717            $(".wish_item.in[data-item=" + data.DELAY[i] + "]").show();
718            if ($(".wish_item[data-item=" + data.DELAY[i] + "]").find(".value.added").length) {
719              $(".wish_item[data-item=" + data.DELAY[i] + "]").addClass("added");
720              $(".wish_item[data-item=" + data.DELAY[i] + "]")
721                .find(".value")
722                .hide();
723              $(".wish_item[data-item=" + data.DELAY[i] + "]")
724                .find(".value.added")
725                .show();
726            }
727          }
728        }
729        if (data.SUBSCRIBE) {
730          for (var i in data.SUBSCRIBE) {
731            $(".to-subscribe[data-item=" + data.SUBSCRIBE[i] + "]").hide();
732            $(".in-subscribe[data-item=" + data.SUBSCRIBE[i] + "]").show();
733          }
734        }
735        if (data.COMPARE) {
736          for (var i in data.COMPARE) {
737            $(".compare_item.to[data-item=" + data.COMPARE[i] + "]").hide();
738            $(".compare_item.in[data-item=" + data.COMPARE[i] + "]").show();
739            if ($(".compare_item[data-item=" + data.COMPARE[i] + "]").find(".value.added").length) {
740              $(".compare_item[data-item=" + data.COMPARE[i] + "]")
741                .find(".value")
742                .hide();
743              $(".compare_item[data-item=" + data.COMPARE[i] + "]")
744                .find(".value.added")
745                .show();
746            }
747          }
748        }
749      },
750    });
751  }
752}
753
754window.onload = function () {
755  window.dataLayer = window.dataLayer || [];
756};
757
758if (!funcDefined("onLoadjqm")) {
759  var onLoadjqm = function (name, hash, requestData, selector, requestTitle, isButton, thButton) {
760
761    if ( hash.c.noOverlay === undefined || (hash.c.noOverlay !== undefined && !hash.c.noOverlay) ) {
762      let diffWidth;
763      $("body").addClass("jqm-initied");
764
765      if ((diffWidth = window.innerWidth - document.documentElement.clientWidth)) {
766        $("body").css({ "padding-right": diffWidth + "px", "box-sizing": "border-box"});
767      }
768
769      hash.w
770        .closest("#popup_iframe_wrapper")
771        .css({ "z-index": 3000, display: "flex" });
772    }
773
774    hash.w.addClass("show").css({
775      opacity: 1,
776    });
777
778    hash.w.addClass("scrollbar scrollbar--overflow");
779
780    $("body").css({ overflow: "hidden", /*height: "100vh"*/});
781
782    if(!$("body").hasClass("fast_view") && name === "fast_view") {
783      $("body").addClass(name);
784    }
785
786    if (typeof requestData == "undefined") {
787      requestData = "";
788    }
789    if (typeof selector == "undefined") {
790      selector = false;
791    }
792    //var width = $("." + name + "_frame").width();
793    //$("." + name + "_frame").css("margin-left", "-" + width / 2 + "px");
794
795    if (name == "order-popup-call") {
796    } else if (name == "order-button") {
797      $(".order-button_frame")
798        .find("div[product_name]")
799        .find("input")
800        .val(hash.t.title)
801        .attr("readonly", "readonly")
802        .css({ overflow: "hidden", "text-overflow": "ellipsis" });
803    } else if ((name == "to-order" || name == "cheaper") && selector) {
804      $(".to-order_frame")
805        .find('[data-sid="PRODUCT_NAME"]')
806        .val($(selector).data("name"))
807        .attr("readonly", "readonly")
808        .css({ overflow: "hidden", "text-overflow": "ellipsis" });
809      $(".to-order_frame").find('[data-sid="PRODUCT_ID"]').val($(selector).attr("data-item"));
810      $(".cheaper_frame")
811        .find('[data-sid="PRODUCT_NAME"]')
812        .val($(selector).data("name"))
813        .attr("readonly", "readonly")
814        .css({ overflow: "hidden", "text-overflow": "ellipsis" });
815      $(".cheaper_frame").find('[data-sid="PRODUCT_ID"]').val($(selector).attr("data-item"));
816    } else if (name == "services" && selector) {
817      $(".services_frame").find('[data-sid="SERVICE"]').val($(selector).attr("data-title"));
818    } else if (name == "resume" && selector) {
819      if ($(selector).attr("data-jobs")) {
820        $(".resume_frame").find('[data-sid="POST"]').attr("readonly", "readonly").val($(selector).attr("data-jobs"));
821      }
822    } else if (name == "basket_error") {
823      /*else if(name == "subscribe" && selector) {
824			if($(selector).attr('data-item')){
825				$(".subscribe_frame").find('[data-sid="POST"]').attr("readonly", "readonly").val($(selector).attr('data-jobs'));
826			}
827		}*/
828      $(".basket_error_frame .pop-up-title").text(requestTitle);
829      $(".basket_error_frame .ajax_text").html(requestData);
830      // $('.basket_error_frame .ajax_text select').ikSelect('redraw');
831      initSelects(document);
832      if (isButton == "Y" && thButton) {
833        $(
834          "<div class='popup_button_basket_wr'><span class='popup_button_basket big_btn button' data-item=" +
835            thButton.data("item") +
836            "><span>" +
837            BX.message("ERROR_BASKET_BUTTON") +
838            "</span></span></div>"
839        ).insertAfter($(".basket_error_frame .ajax_text"));
840      }
841    }
842
843    var eventdata = { action: "loadForm" };
844
845		if(typeof selector !== 'undefined' && selector !== false ){
846			BX.onCustomEvent("onCompleteAction", [eventdata, $(selector)[0]]);
847		} else {
848			BX.onCustomEvent("onCompleteAction", [eventdata, $(hash.t)[0]]);
849		}
850
851    $("." + name + "_frame").show();
852  };
853}
854
855if (!funcDefined("onHidejqm")) {
856  var onHidejqm = function (name, hash) {
857
858    if (hash.w.find(".one_click_buy_result_success").is(":visible") && name == "one_click_buy_basket") {
859      window.location.href = window.location.href;
860    }
861
862    hash.w.animate({ opacity: 0 }, 200, function () {
863      hash.w.hide();
864      hash.w.empty();
865      hash.o.remove();
866      hash.w.removeClass("show");
867      hash.w.removeClass("scrollbar");
868      hash.w.removeClass("scrollbar--overflow");
869      $("html").removeClass("overflow_hidden_popup_forms");
870
871      if (!hash.w.closest("#popup_iframe_wrapper").find(".jqmOverlay").length) {
872        hash.w
873          .closest("#popup_iframe_wrapper")
874          .css({ "z-index": "", display: "" });
875      }
876
877      if (
878        !$(".jqmOverlay:not(.mobp)").length ||
879        $(".jqmOverlay.waiting").length
880      ) {
881        $("body").removeClass("jqm-initied");
882        $("body").removeClass("fast_view");
883      }
884
885      if (!$("body").hasClass("fast_view")) {
886        $("body").css({ overflow: "", height: "", "padding-right": "", "box-sizing": "content-box" });
887      }
888    });
889  };
890}
891
892if (!funcDefined("oneClickBuy")) {
893  var oneClickBuy = function (elementID, iblockID, that) {
894    var name = "one_click_buy";
895    var elementQuantity = 1;
896    var offerProps = false;
897    var buy_btn = $(that).closest(".buy_block").find(".to-cart");
898    var buy_btn2 = $(that).closest("tr").find(".to-cart");
899
900    if (typeof that !== "undefined") {
901      elementQuantity = $(that).attr("data-quantity");
902      offerProps = $(that).attr("data-props");
903    }
904
905    if (elementQuantity < 0) {
906      elementQuantity = 1;
907    }
908
909    var tmp_props = buy_btn.data("props"),
910      tmp_props2 = buy_btn2.data("props"),
911      props = "",
912      part_props = "",
913      add_props = "N",
914      fill_prop = {},
915      iblockid = buy_btn.data("iblockid"),
916      item = buy_btn.attr("data-item");
917
918    if (tmp_props) {
919      props = tmp_props.split(";");
920    } else if (tmp_props2) {
921      props = tmp_props2.split(";");
922    }
923    if (buy_btn.data("part_props")) {
924      part_props = buy_btn.data("part_props");
925    }
926    if (buy_btn.data("add_props")) {
927      add_props = buy_btn.data("add_props");
928    }
929
930    fill_prop = fillBasketPropsExt(buy_btn, "prop", buy_btn.data("bakset_div"));
931    fill_prop.iblockID = iblockid;
932    fill_prop.part_props = part_props;
933    fill_prop.add_props = add_props;
934    fill_prop.props = JSON.stringify(props);
935    fill_prop.item = item;
936    fill_prop.ocb_item = "Y";
937
938    if (!$(that).hasClass("clicked")) {
939      $(that).addClass("clicked");
940      $("body")
941        .find("." + name + "_frame")
942        .remove();
943      $("body")
944        .find("." + name + "_trigger")
945        .remove();
946      $("body #popup_iframe_wrapper").append(
947        '<div class="' + name + '_frame popup"></div>'
948      );
949      $("body #popup_iframe_wrapper").append(
950        '<div class="' + name + '_trigger"></div>'
951      );
952      $("." + name + "_frame").jqm({
953        trigger: "." + name + "_trigger",
954        onHide: function (hash) {
955          onHidejqm(name, hash);
956        },
957        toTop: false,
958        onLoad: function (hash) {
959          onLoadjqm(name, hash);
960        },
961        ajax:
962        arOptimusOptions["SITE_DIR"] +
963          "ajax/one_click_buy.php?ELEMENT_ID=" +
964          elementID +
965          "&IBLOCK_ID=" +
966          iblockID +
967          "&ELEMENT_QUANTITY=" +
968          elementQuantity +
969          "&OFFER_PROPS=" +
970          fill_prop.props,
971      });
972      $("." + name + "_trigger").click();
973    }
974  };
975}
976
977if (!funcDefined("oneClickBuyBasket")) {
978  var oneClickBuyBasket = function () {
979    name = "one_click_buy_basket";
980    $("body")
981      .find("." + name + "_frame")
982      .remove();
983    $("body")
984      .find("." + name + "_trigger")
985      .remove();
986    // $("body").append('<div class="' + name + '_frame popup"></div>');
987    // $("body").append('<div class="' + name + '_trigger"></div>');
988
989    $("body #popup_iframe_wrapper").append(
990      '<div class="' + name + '_frame popup"></div>'
991    );
992    $("body #popup_iframe_wrapper").append(
993      '<div class="' + name + '_trigger"></div>'
994    );
995
996    $("." + name + "_frame").jqm({
997      trigger: "." + name + "_trigger",
998      onHide: function (hash) {
999        onHidejqm(name, hash);
1000      },
1001      onLoad: function (hash) {
1002        onLoadjqm(name, hash);
1003      },
1004      ajax: arOptimusOptions["SITE_DIR"] + "ajax/one_click_buy_basket.php",
1005    });
1006    $("." + name + "_trigger").click();
1007  };
1008}
1009
1010if (!funcDefined("scroll_block")) {
1011  function scroll_block(block) {
1012    const topPos = block.offset().top;
1013    // const headerH = $('header').outerHeight(true,true);
1014
1015    if ($(".stores_tab").length) {
1016      $("li.stores_tab").trigger("click");
1017    } else if ($(".prices_tab").length) {
1018      $("li.prices_tab").trigger("click");
1019      const pricesTab = $(".prices_tab.current .opener");
1020
1021      if (pricesTab[0] && !pricesTab[0].querySelector(".opener_icon.opened")) {
1022        pricesTab[0].click();
1023
1024        $(pricesTab[0]).parents("tr").next(".offer_stores").find(".stores_block_wrap").slideDown(200);
1025      }
1026    }
1027    $("html,body").animate({ scrollTop: topPos - 30 }, 150);
1028  }
1029}
1030
1031if (!funcDefined("jqmEd")) {
1032  var jqmEd = function (
1033    name,
1034    form_id,
1035    open_trigger,
1036    requestData,
1037    selector,
1038    requestTitle,
1039    isButton,
1040    thButton
1041  ) {
1042    if (typeof requestData == "undefined") {
1043      requestData = "";
1044    }
1045
1046    if (typeof selector == "undefined") {
1047      selector = false;
1048    }
1049
1050    // $("body")
1051    //   .find("." + name + "_frame")
1052    //   .remove();
1053    // $("body").append('<div class="' + name + '_frame popup"></div>');
1054
1055    $("body #popup_iframe_wrapper")
1056      .find("." + name + "_frame")
1057      .remove();
1058    $("body #popup_iframe_wrapper").append(
1059      '<div class="' + name + '_frame jqmWindow popup"></div>'
1060    );
1061
1062    if (typeof open_trigger == "undefined") {
1063      $("." + name + "_frame").jqm({
1064        trigger: "." + name + "_frame.popup",
1065        onHide: function (hash) {
1066          onHidejqm(name, hash);
1067        },
1068        onLoad: function (hash) {
1069          onLoadjqm(name, hash, requestData, selector);
1070        },
1071        ajax:
1072          arOptimusOptions["SITE_DIR"] +
1073          "ajax/form.php?form_id=" +
1074          form_id +
1075          (requestData.length ? "&" + requestData : ""),
1076      });
1077    } else {
1078      if (name == "enter") {
1079        $("." + name + "_frame").jqm({
1080          trigger: open_trigger,
1081          onHide: function (hash) {
1082            onHidejqm(name, hash);
1083          },
1084          onLoad: function (hash) {
1085            onLoadjqm(name, hash, requestData, selector);
1086          },
1087          ajax: arOptimusOptions["SITE_DIR"] + "ajax/auth.php",
1088        });
1089      } else if (name == "basket_error") {
1090        $("." + name + "_frame").jqm({
1091          trigger: open_trigger,
1092          onHide: function (hash) {
1093            onHidejqm(name, hash);
1094          },
1095          onLoad: function (hash) {
1096            onLoadjqm(name, hash, requestData, selector, requestTitle, isButton, thButton);
1097          },
1098          ajax: arOptimusOptions["SITE_DIR"] + "ajax/basket_error.php",
1099        });
1100      } else {
1101        $("." + name + "_frame").jqm({
1102          trigger: open_trigger,
1103          onHide: function (hash) {
1104            onHidejqm(name, hash);
1105          },
1106          onLoad: function (hash) {
1107            onLoadjqm(name, hash, requestData, selector);
1108          },
1109          ajax:
1110            arOptimusOptions["SITE_DIR"] +
1111            "ajax/form.php?form_id=" +
1112            form_id +
1113            (requestData.length ? "&" + requestData : ""),
1114        });
1115
1116      }
1117
1118      $(open_trigger).dblclick(function () {
1119        return false;
1120      });
1121    }
1122    return true;
1123  };
1124}
1125
1126initCalculatePreview = function () {
1127	$(".calculate-delivery.with_preview:not(.inited)").each(function () {
1128	  var $this = $(this);
1129	  var $calculateSpan = $this.find("span[data-event=jqm]");
1130	  var $preview = $this.find(".calculate-delivery-preview");
1131
1132	  $this.addClass("inited");
1133	  $this.appear(
1134		function () {
1135		  if ($calculateSpan.length) {
1136			if (
1137			  typeof window["calculate-delivery-preview-index"] === "undefined"
1138			) {
1139			  window["calculate-delivery-preview-index"] = 1001;
1140			} else {
1141			  ++window["calculate-delivery-preview-index"];
1142			}
1143
1144			var productId = $calculateSpan.attr("data-param-product_id") * 1;
1145			var quantity = $calculateSpan.attr("data-param-quantity") * 1;
1146
1147			if (productId > 0) {
1148			  var areaIndexSended = window["calculate-delivery-preview-index"];
1149			  $calculateSpan.data({ areaIndex: areaIndexSended });
1150
1151			  $.ajax({
1152				url: arOptimusOptions["SITE_DIR"] + "ajax/delivery.php",
1153				type: "POST",
1154				data: {
1155				  is_preview: "Y",
1156				  index: areaIndexSended,
1157				  product_id: productId,
1158				  quantity: quantity,
1159				},
1160				beforeSend: function () {
1161				  $this.addClass("loadings");
1162				},
1163				success: function (response) {
1164				  var areaIndex = $calculateSpan.data("areaIndex");
1165				  if (
1166					typeof areaIndex !== "undefined" &&
1167					areaIndex == areaIndexSended
1168				  ) {
1169					$calculateSpan.hide();
1170					$preview.html(response);
1171					if (!$preview.find(".catalog-delivery-preview").length) {
1172					  $preview.empty();
1173					  $calculateSpan.show();
1174					}
1175				  }
1176				},
1177				error: function (xhr, ajaxOptions, thrownError) {},
1178				complete: function () {
1179				  var areaIndex = $calculateSpan.data("areaIndex");
1180				  if (
1181					typeof areaIndex !== "undefined" &&
1182					areaIndex == areaIndexSended
1183				  ) {
1184					$this.removeClass("loadings");
1185				  }
1186				},
1187			  });
1188			}
1189		  }
1190		},
1191		{ accX: 0, accY: 0 }
1192	  );
1193	});
1194};
1195
1196if (!funcDefined("replaceBasketPopup")) {
1197  function replaceBasketPopup(hash) {
1198    if (typeof hash != "undefined") {
1199      hash.w.hide();
1200      hash.o.hide();
1201    }
1202  }
1203}
1204
1205if (!funcDefined("waitLayer")) {
1206  function waitLayer(delay, callback) {
1207    if (typeof dataLayer != "undefined") {
1208      if (typeof callback == "function") {
1209        callback();
1210      }
1211    } else {
1212      setTimeout(function () {
1213        waitLayer(delay, callback);
1214      }, delay);
1215    }
1216  }
1217}
1218
1219if (!funcDefined("waitCounter")) {
1220  waitCounter = function (idCounter, delay, callback) {
1221    var obCounter = window["yaCounter" + idCounter];
1222    if (typeof obCounter == "object") {
1223      if (typeof callback == "function") {
1224        callback();
1225      }
1226    } else {
1227      setTimeout(function () {
1228        waitCounter(idCounter, delay, callback);
1229      }, delay);
1230    }
1231  };
1232}
1233
1234if (!funcDefined("InitTopestMenuGummi")) {
1235  InitTopestMenuGummi = function () {
1236    if (!isOnceInited) {
1237      function _init() {
1238        var arItems = $menuTopest.find(">li:not(.more)");
1239        var cntItems = arItems.length;
1240        if (cntItems) {
1241          var itemsWidth = 0;
1242          for (var i = 0; i < cntItems; ++i) {
1243            var item = arItems.eq(i);
1244            var itemWidth = item.actual("outerWidth", { includeMargin: true });
1245            arItemsHideWidth[i] = (itemsWidth += itemWidth) + (i !== cntItems - 1 ? moreWidth : 0);
1246          }
1247        }
1248      }
1249
1250      function _gummi() {
1251        var rowWidth = $menuTopest.actual("innerWidth");
1252        var arItems = $menuTopest.find(">li:not(.more),li.more>.dropdown>li");
1253        var cntItems = arItems.length;
1254        if (cntItems) {
1255          var bMore = false;
1256          for (var i = cntItems - 1; i >= 0; --i) {
1257            var item = arItems.eq(i);
1258            var bInMore = item.parents(".more").length > 0;
1259            if (!bInMore) {
1260              if (arItemsHideWidth[i] > rowWidth) {
1261                if (!bMore) {
1262                  bMore = true;
1263                  more.removeClass("hidden");
1264                }
1265                var clone = item.clone();
1266                clone.find(">a").addClass("dark_font");
1267                clone.prependTo(moreDropdown);
1268                item.addClass("cloned");
1269              }
1270            }
1271          }
1272          for (var i = 0; i < cntItems; ++i) {
1273            var item = arItems.eq(i);
1274            var bInMore = item.parents(".more").length > 0;
1275            if (bInMore) {
1276              if (arItemsHideWidth[i] <= rowWidth) {
1277                if (i === cntItems - 1) {
1278                  bMore = false;
1279                  more.addClass("hidden");
1280                }
1281                var clone = item.clone();
1282                clone.find(">a").removeClass("dark_font");
1283                clone.insertBefore(more);
1284                item.addClass("cloned");
1285              }
1286            }
1287          }
1288          $menuTopest.find("li.cloned").remove();
1289        }
1290      }
1291
1292      var $menuTopest = $(".menu.topest");
1293      var more = $menuTopest.find(">.more");
1294      var moreDropdown = more.find(">.dropdown");
1295      var moreWidth = more.actual("outerWidth", { includeMargin: true });
1296      var arItemsHideWidth = [];
1297      ignoreResize.push(true);
1298      _init();
1299      _gummi();
1300      ignoreResize.pop();
1301
1302      $(window).resize(function () {
1303        ignoreResize.push(true);
1304        _gummi();
1305        ignoreResize.pop();
1306      });
1307    }
1308  };
1309}
1310
1311if (!funcDefined("InitTopMenuGummi")) {
1312  InitTopMenuGummi = function () {
1313    function _init() {
1314      var arItems = $topMenu.closest(".wrap_menu").find(".inc_menu .menu_top_block >li:not(.more)");
1315      var cntItems = arItems.length;
1316      if (cntItems) {
1317        var itemsWidth = 0;
1318        for (var i = 0; i < cntItems; ++i) {
1319          var item = arItems.eq(i);
1320          var itemWidth = item.actual("outerWidth");
1321          arItemsHideWidth[i] = (itemsWidth += itemWidth) + (i !== cntItems - 1 ? moreWidth : 0);
1322        }
1323      }
1324    }
1325
1326    function _gummi() {
1327      var rowWidth = $wrapMenu.actual("innerWidth") - $wrapMenuLeft.actual("innerWidth");
1328      var arItems = $topMenu.find(">li:not(.more):not(.catalog),li.more>.dropdown>li");
1329      var cntItems = arItems.length;
1330
1331      if (cntItems) {
1332        var bMore = false;
1333        for (var i = cntItems - 1; i >= 0; --i) {
1334          var item = arItems.eq(i);
1335          var bInMore = item.parents(".more").length > 0;
1336          if (!bInMore) {
1337            if (arItemsHideWidth[i] > rowWidth) {
1338              if (!bMore) {
1339                bMore = true;
1340                more.removeClass("hidden");
1341              }
1342              var clone = item.clone();
1343              clone.find(">.dropdown").removeAttr("style").removeClass("toleft");
1344              clone.find(">a").addClass("dark_font").removeAttr("style");
1345              clone.prependTo(moreDropdown);
1346              item.addClass("cloned");
1347            }
1348          }
1349        }
1350        for (var i = 0; i < cntItems; ++i) {
1351          var item = arItems.eq(i);
1352          var bInMore = item.parents(".more").length > 0;
1353          if (bInMore) {
1354            if (arItemsHideWidth[i] <= rowWidth) {
1355              if (i === cntItems - 1) {
1356                bMore = false;
1357                more.addClass("hidden");
1358              }
1359              var clone = item.clone();
1360              clone.find(">a").removeClass("dark_font");
1361              clone.insertBefore(more);
1362              item.addClass("cloned");
1363            }
1364          }
1365        }
1366        $topMenu.find("li.cloned").remove();
1367
1368        var cntItemsVisible = $topMenu.find(">li:not(.more):not(.catalog)").length;
1369        var o = rowWidth - arItemsHideWidth[cntItemsVisible - 1];
1370        var itemsPaddingAdd = Math.floor(o / (cntItemsVisible + (more.hasClass("hidden") ? 0 : 1)));
1371        var itemsPadding_new = itemsPadding_min + itemsPaddingAdd;
1372        var itemsPadding_new_l = Math.floor(itemsPadding_new / 2);
1373        var itemsPadding_new_r = itemsPadding_new - itemsPadding_new_l;
1374
1375        $topMenu.find(">li:not(.catalog):visible>a").each(function () {
1376          $(this).css({ "padding-left": itemsPadding_new_l + "px" });
1377          $(this).css({ "padding-right": itemsPadding_new_r + "px" });
1378        });
1379
1380        var lastItemPadding_new =
1381          itemsPadding_new + o - (cntItemsVisible + (more.is(":visible") ? 1 : 0)) * itemsPaddingAdd;
1382        var lastItemPadding_new_l = Math.floor(lastItemPadding_new / 2);
1383        var lastItemPadding_new_r = lastItemPadding_new - lastItemPadding_new_l;
1384        $topMenu
1385          .find(">li:visible")
1386          .last()
1387          .find(">a")
1388          .css({ "padding-left": lastItemPadding_new_l + "px" });
1389        $topMenu
1390          .find(">li:visible")
1391          .last()
1392          .find(">a")
1393          .css({ "padding-right": lastItemPadding_new_r + "px" });
1394        CheckTopMenuFullCatalogSubmenu();
1395      }
1396    }
1397
1398    var $topMenu = $(".menu_top_block");
1399    var $wrapMenu = $topMenu.parents(".wrap_menu");
1400    var $wrapMenuLeft = $wrapMenu.find(".catalog_menu_ext");
1401    var more = $topMenu.find(">.more");
1402    var moreWidth = more.actual("outerWidth", { includeMargin: true });
1403    more.addClass("hidden");
1404    var arItemsHideWidth = [];
1405    var moreDropdown = more.find(">.dropdown");
1406    var itemsPadding = parseInt(more.find(">a").css("padding-left")) * 2;
1407    var itemsPadding_min = itemsPadding;
1408
1409    // setTimeout(function(){
1410    ignoreResize.push(true);
1411    _init();
1412    _gummi();
1413    ignoreResize.pop();
1414    // }, 100)
1415
1416    $(window).resize(function () {
1417      ignoreResize.push(true);
1418      _gummi();
1419      ignoreResize.pop();
1420    });
1421
1422    /*BX.addCustomEvent('onTopPanelFixUnfix', function(eventdata) {
1423			ignoreResize.push(true);
1424			_gummi();
1425			ignoreResize.pop();
1426		});*/
1427  };
1428}
1429
1430if (!funcDefined("checkCounters")) {
1431  function checkCounters(name) {
1432    if (typeof name !== "undefined") {
1433      if (
1434        name == "google" &&
1435        arOptimusOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" &&
1436        arOptimusOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0
1437      ) {
1438        return true;
1439      } else if (
1440        name == "yandex" &&
1441        arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] == "Y" &&
1442        arOptimusOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" &&
1443        arOptimusOptions["COUNTERS"]["YANDEX_COUNTER"] > 0
1444      ) {
1445        return true;
1446      } else {
1447        return false;
1448      }
1449    } else if (
1450      (arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] == "Y" &&
1451        arOptimusOptions["COUNTERS"]["YANDEX_ECOMERCE"] == "Y" &&
1452        arOptimusOptions["COUNTERS"]["YANDEX_COUNTER"] > 0) ||
1453      (arOptimusOptions["COUNTERS"]["GOOGLE_ECOMERCE"] == "Y" && arOptimusOptions["COUNTERS"]["GOOGLE_COUNTER"] > 0)
1454    ) {
1455      return true;
1456    } else {
1457      return false;
1458    }
1459  }
1460}
1461
1462if (!funcDefined("addBasketCounter")) {
1463  function addBasketCounter(id) {
1464    if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
1465      var eventdata = { goal: "goal_basket_add", params: { id: id } };
1466      BX.onCustomEvent("onCounterGoals", [eventdata]);
1467    }
1468    if (checkCounters()) {
1469      $.ajax({
1470        url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php",
1471        dataType: "json",
1472        type: "POST",
1473        data: { ID: id },
1474        success: function (item) {
1475          if (!!item && !!item.ID) {
1476            waitLayer(100, function () {
1477              dataLayer.push({
1478                event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["ADD2BASKET"],
1479                ecommerce: {
1480                  currencyCode: item.CURRENCY,
1481                  add: {
1482                    products: [
1483                      {
1484                        id: item.ID,
1485                        name: item.NAME,
1486                        price: item.PRICE,
1487                        brand: item.BRAND,
1488                        category: item.CATEGORY,
1489                        quantity: item.QUANTITY,
1490                      },
1491                    ],
1492                  },
1493                },
1494              });
1495            });
1496          }
1497        },
1498      });
1499    }
1500  }
1501}
1502
1503if (!funcDefined("purchaseCounter")) {
1504  function purchaseCounter(order_id, type, callback) {
1505    if (checkCounters()) {
1506      $.ajax({
1507        url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php",
1508        dataType: "json",
1509        type: "POST",
1510        data: { ORDER_ID: order_id, TYPE: type },
1511        success: function (order) {
1512          var products = [];
1513          if (order.ITEMS) {
1514            for (var i in order.ITEMS) {
1515              products.push({
1516                id: order.ITEMS[i].ID,
1517                sku: order.ITEMS[i].ID,
1518                name: order.ITEMS[i].NAME,
1519                price: order.ITEMS[i].PRICE,
1520                brand: order.ITEMS[i].BRAND,
1521                category: order.ITEMS[i].CATEGORY,
1522                quantity: order.ITEMS[i].QUANTITY,
1523              });
1524            }
1525          }
1526          if (order.ID) {
1527            waitLayer(100, function () {
1528              dataLayer.push({
1529                event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"],
1530                ecommerce: (d = {
1531                  purchase: {
1532                    actionField: {
1533                      id: order.ACCOUNT_NUMBER,
1534                      shipping: order.PRICE_DELIVERY,
1535                      tax: order.TAX_VALUE,
1536                      list: type,
1537                      revenue: order.PRICE,
1538                    },
1539                    products: products,
1540                  },
1541                }),
1542              });
1543
1544              if (typeof callback !== "undefined") {
1545                callback(d);
1546              }
1547            });
1548          } else {
1549            if (typeof callback !== "undefined") {
1550              callback(false);
1551            }
1552          }
1553        },
1554        error: function () {
1555          if (typeof callback !== "undefined") {
1556            callback(false);
1557          }
1558        },
1559      });
1560    } else {
1561      if (typeof callback !== "undefined") {
1562        callback(false);
1563      }
1564    }
1565  }
1566}
1567
1568if (!funcDefined("viewItemCounter")) {
1569  function viewItemCounter(id, price_id) {
1570    if (checkCounters()) {
1571      $.ajax({
1572        url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php",
1573        dataType: "json",
1574        type: "POST",
1575        data: { PRODUCT_ID: id, PRICE_ID: price_id },
1576        success: function (item) {
1577          if (item.ID) {
1578            waitLayer(100, function () {
1579              dataLayer.push({
1580                //"event": "",
1581                ecommerce: {
1582                  detail: {
1583                    products: [
1584                      {
1585                        id: item.ID,
1586                        name: item.NAME,
1587                        price: item.PRICE,
1588                        brand: item.BRAND,
1589                        category: item.CATEGORY,
1590                      },
1591                    ],
1592                  },
1593                },
1594              });
1595            });
1596          }
1597        },
1598      });
1599    }
1600  }
1601}
1602
1603if (!funcDefined("checkoutCounter")) {
1604  function checkoutCounter(step, option, callback) {
1605    if (checkCounters("google")) {
1606      $.ajax({
1607        url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php",
1608        dataType: "json",
1609        type: "POST",
1610        data: { BASKET: "Y" },
1611        success: function (basket) {
1612          var products = [];
1613          if (basket.ITEMS) {
1614            for (var i in basket.ITEMS) {
1615              products.push({
1616                id: basket.ITEMS[i].ID,
1617                name: basket.ITEMS[i].NAME,
1618                price: basket.ITEMS[i].PRICE,
1619                brand: basket.ITEMS[i].BRAND,
1620                category: basket.ITEMS[i].CATEGORY,
1621                quantity: basket.ITEMS[i].QUANTITY,
1622              });
1623            }
1624          }
1625          if (products) {
1626            waitLayer(100, function () {
1627              dataLayer.push({
1628                event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["CHECKOUT_ORDER"],
1629                ecommerce: {
1630                  checkout: {
1631                    actionField: {
1632                      step: step,
1633                      option: option,
1634                    },
1635                    products: products,
1636                  },
1637                },
1638                /*"eventCallback": function() {
1639							    	if((typeof callback !== 'undefined') && (typeof callback === 'function')){
1640							    		callback();
1641							    	}
1642							   }*/
1643              });
1644            });
1645          }
1646        },
1647      });
1648    }
1649  }
1650}
1651
1652if (!funcDefined("delFromBasketCounter")) {
1653  function delFromBasketCounter(id, callback) {
1654    if (checkCounters()) {
1655      $.ajax({
1656        url: arOptimusOptions["SITE_DIR"] + "ajax/goals.php",
1657        dataType: "json",
1658        type: "POST",
1659        data: { ID: id },
1660        success: function (item) {
1661          if (item.ID) {
1662            waitLayer(100, function () {
1663              dataLayer.push({
1664                event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["REMOVE_BASKET"],
1665                ecommerce: {
1666                  remove: {
1667                    products: [
1668                      {
1669                        id: item.ID,
1670                        name: item.NAME,
1671                        category: item.CATEGORY,
1672                        quantity: parseFloat(item.QUANTITY),
1673                      },
1674                    ],
1675                  },
1676                },
1677              });
1678              if (typeof callback == "function") {
1679                callback();
1680              }
1681            });
1682          }
1683        },
1684      });
1685    }
1686  }
1687}
1688
1689if (!funcDefined("setHeightCompany")) {
1690  function setHeightCompany() {
1691    $(".md-50.img").height($(".md-50.big").outerHeight() - 35);
1692  }
1693}
1694
1695if (!funcDefined("initSly")) {
1696  function initSly() {
1697    var $frame = $(document).find(".frame");
1698    var $slidee = $frame.children("ul").eq(0);
1699    var $wrap = $frame.parent();
1700
1701    if (arOptimusOptions["PAGES"]["CATALOG_PAGE"]) {
1702      $frame.sly({
1703        horizontal: 1,
1704        itemNav: "basic",
1705        smart: 1,
1706        mouseDragging: 0,
1707        touchDragging: 0,
1708        releaseSwing: 0,
1709        startAt: 0,
1710        scrollBar: $wrap.find(".scrollbar"),
1711        scrollBy: 1,
1712        speed: 300,
1713        elasticBounds: 0,
1714        easing: "swing",
1715        dragHandle: 1,
1716        dynamicHandle: 1,
1717        clickBar: 1,
1718
1719        // Buttons
1720        forward: $wrap.find(".forward"),
1721        backward: $wrap.find(".backward"),
1722      });
1723      $frame.sly("reload");
1724    }
1725  }
1726}
1727
1728if (!funcDefined("createTableCompare")) {
1729  function createTableCompare(originalTable, appendDiv, cloneTable) {
1730    try {
1731      var clone = originalTable.clone().removeAttr("id").addClass("clone");
1732      if (cloneTable.length) {
1733        cloneTable.remove();
1734        appendDiv.html("");
1735        appendDiv.html(clone);
1736      } else {
1737        appendDiv.append(clone);
1738      }
1739    } catch (e) {
1740    } finally {
1741    }
1742  }
1743}
1744
1745if (!funcDefined("fillBasketPropsExt")) {
1746  fillBasketPropsExt = function (that, prop_code, basket_prop_div) {
1747    var i = 0,
1748      propCollection = null,
1749      foundValues = false,
1750      basketParams = {},
1751      obBasketProps = null;
1752
1753    // obBasketProps = that.closest('.catalog_detail').find('.basket_props_block');
1754    if (that.closest("#fast_view_item").length)
1755      obBasketProps = that.closest("#fast_view_item").find("#" + basket_prop_div)[0];
1756    else obBasketProps = BX(basket_prop_div);
1757
1758    if (!!obBasketProps) {
1759      propCollection = obBasketProps.getElementsByTagName("select");
1760      if (!!propCollection && !!propCollection.length) {
1761        for (i = 0; i < propCollection.length; i++) {
1762          if (!propCollection[i].disabled) {
1763            switch (propCollection[i].type.toLowerCase()) {
1764              case "select-one":
1765                basketParams[propCollection[i].name] = propCollection[i].value;
1766                foundValues = true;
1767                break;
1768              default:
1769                break;
1770            }
1771          }
1772        }
1773      }
1774      propCollection = obBasketProps.getElementsByTagName("input");
1775      if (!!propCollection && !!propCollection.length) {
1776        for (i = 0; i < propCollection.length; i++) {
1777          if (!propCollection[i].disabled) {
1778            switch (propCollection[i].type.toLowerCase()) {
1779              case "hidden":
1780                basketParams[propCollection[i].name] = propCollection[i].value;
1781                foundValues = true;
1782                break;
1783              case "radio":
1784                if (propCollection[i].checked) {
1785                  basketParams[propCollection[i].name] = propCollection[i].value;
1786                  foundValues = true;
1787                }
1788                break;
1789              default:
1790                break;
1791            }
1792          }
1793        }
1794      }
1795    }
1796    if (!foundValues) {
1797      basketParams[prop_code] = [];
1798      basketParams[prop_code][0] = 0;
1799    }
1800    return basketParams;
1801  };
1802}
1803if (!funcDefined("showBasketError")) {
1804  showBasketError = function (mess, title, addButton, th) {
1805    var title_set = title ? title : BX.message("ERROR_BASKET_TITLE"),
1806      isButton = "N",
1807      thButton = "";
1808    if (typeof addButton !== undefined) {
1809      isButton = "Y";
1810    }
1811    if (typeof th !== undefined) {
1812      thButton = th;
1813    }
1814    $("body").append("<span class='add-error-bakset' style='display:none;'></span>");
1815    jqmEd("basket_error", "error-bakset", ".add-error-bakset", mess, this, title_set, isButton, thButton);
1816    $("body .add-error-bakset").click();
1817    $("body .add-error-bakset").remove();
1818  };
1819}
1820
1821if (!funcDefined("isRealValue")) {
1822  function isRealValue(obj) {
1823    return obj && obj !== "null" && obj !== "undefined";
1824  }
1825}
1826
1827if (!funcDefined("rightScroll")) {
1828  function rightScroll(prop, id) {
1829    var el = BX("prop_" + prop + "_" + id);
1830    if (el) {
1831      var curVal = parseInt(el.style.marginLeft);
1832      if (curVal >= 0) el.style.marginLeft = curVal - 20 + "%";
1833    }
1834  }
1835}
1836
1837if (!funcDefined("leftScroll")) {
1838  function leftScroll(prop, id) {
1839    var el = BX("prop_" + prop + "_" + id);
1840    if (el) {
1841      var curVal = parseInt(el.style.marginLeft);
1842      if (curVal < 0) el.style.marginLeft = curVal + 20 + "%";
1843    }
1844  }
1845}
1846
1847if (!funcDefined("InitOrderCustom")) {
1848  InitOrderCustom = function () {
1849    $(".ps_logo img").wrap('<div class="image"></div>');
1850
1851    $("#bx-soa-order .radio-inline").each(function () {
1852      if ($(this).find("input").attr("checked") == "checked") {
1853        $(this).addClass("checked");
1854      }
1855    });
1856
1857    $("#bx-soa-order .checkbox input[type=checkbox]").each(function () {
1858      if ($(this).attr("checked") == "checked") $(this).parent().addClass("checked");
1859    });
1860
1861    // $('#bx-soa-order .bx-authform-starrequired').each(function() {
1862    // 	var html = $(this).html();
1863    // 	$(this).closest('label').append('<span class="bx-authform-starrequired"> '+ html + '</span>');
1864    // 	$(this).detach();
1865    // });
1866    $(".bx_ordercart_coupon").each(function () {
1867      if ($(this).find(".bad").length) $(this).addClass("bad");
1868      else if ($(this).find(".good").length) $(this).addClass("good");
1869    });
1870    /*if (typeof(propsMap) !== 'undefined') {
1871			$(propsMap).on('click', function () {
1872				var value = $('#orderDescription').val();
1873				if ($('#orderDescription')) {
1874					if (value != '') {
1875						$('#orderDescription').closest('.form-group').addClass('value_y');
1876					}
1877				}
1878			});
1879		}*/
1880  };
1881}
1882
1883if (!funcDefined("InitLabelAnimation")) {
1884  InitLabelAnimation = function (className) {
1885    // Fix order labels
1886    if (!$(className).length) {
1887      return;
1888    }
1889    $(className)
1890      .find(".form-group")
1891      .each(function () {
1892        if (
1893          $(this).find("input[type=text], textarea").length &&
1894          !$(this).find(".dropdown-block").length &&
1895          $(this).find("input[type=text], textarea").val() != ""
1896        ) {
1897          $(this).addClass("value_y");
1898        }
1899      });
1900
1901    $(document).on("click", className + " .form-group:not(.bx-soa-pp-field) label", function () {
1902      $(this).parent().find("input, textarea").focus();
1903    });
1904
1905    $(document).on(
1906      "focusout",
1907      className +
1908        " .form-group:not(.bx-soa-pp-field) input, " +
1909        className +
1910        " .form-group:not(.bx-soa-pp-field) textarea",
1911      function () {
1912        var value = $(this).val();
1913        if (
1914          value != "" &&
1915          !$(this).closest(".form-group").find(".dropdown-block").length &&
1916          !$(this).closest(".form-group").find("#profile_change").length
1917        ) {
1918          $(this).closest(".form-group").addClass("value_y");
1919        } else {
1920          $(this).closest(".form-group").removeClass("value_y");
1921        }
1922      }
1923    );
1924
1925    $(document).on(
1926      "focus",
1927      className +
1928        " .form-group:not(.bx-soa-pp-field) input, " +
1929        className +
1930        " .form-group:not(.bx-soa-pp-field) textarea",
1931      function () {
1932        if (
1933          !$(this).closest(".form-group").find(".dropdown-block").length &&
1934          !$(this).closest(".form-group").find("#profile_change").length &&
1935          !$(this).closest(".form-group").find("[name=PERSON_TYPE_OLD]").length
1936        ) {
1937          $(this).closest(".form-group").addClass("value_y");
1938        }
1939      }
1940    );
1941  };
1942}
1943
1944checkPopupWidth = function () {
1945  $(".popup.show").each(function () {
1946    var width_form = $(this).actual("width");
1947    $(this).css({
1948      "margin-left": $(window).width() > width_form ? "-" + width_form / 2 + "px" : "-" + $(window).width() / 2 + "px",
1949    });
1950  });
1951};
1952
1953checkCaptchaWidth = function () {
1954  $(".captcha-row").each(function () {
1955    var width = $(this).actual("width");
1956    if ($(this).hasClass("b")) {
1957      if (width > 320) {
1958        $(this).removeClass("b");
1959      }
1960    } else {
1961      if (width <= 320) {
1962        $(this).addClass("b");
1963      }
1964    }
1965  });
1966};
1967
1968checkFormWidth = function () {
1969  $(".form .form_left").each(function () {
1970    var form = $(this).parents(".form");
1971    var width = form.actual("width");
1972    if (form.hasClass("b")) {
1973      if (width > 417) {
1974        form.removeClass("b");
1975      }
1976    } else {
1977      if (width <= 417) {
1978        form.addClass("b");
1979      }
1980    }
1981  });
1982};
1983
1984checkFormControlWidth = function () {
1985  $(".form-control").each(function () {
1986    var width = $(this).actual("width");
1987    var labelWidth = $(this).find("label:not(.error) > span").actual("width");
1988    var errorWidth = $(this).find("label.error").actual("width");
1989    if (errorWidth > 0) {
1990      if ($(this).hasClass("h")) {
1991        if (width > labelWidth + errorWidth + 5) {
1992          $(this).removeClass("h");
1993        }
1994      } else {
1995        if (width <= labelWidth + errorWidth + 5) {
1996          $(this).addClass("h");
1997        }
1998      }
1999    } else {
2000      $(this).removeClass("h");
2001    }
2002  });
2003};
2004
2005scrollToTop = function () {
2006  if (arOptimusOptions["THEME"]["SCROLLTOTOP_TYPE"] !== "NONE") {
2007    var _isScrolling = false;
2008    // Append Button
2009    $("body").append(
2010      $("<a />")
2011        .addClass(
2012          "scroll-to-top " +
2013            arOptimusOptions["THEME"]["SCROLLTOTOP_TYPE"] +
2014            " " +
2015            arOptimusOptions["THEME"]["SCROLLTOTOP_POSITION"]
2016        )
2017        .attr({ href: "#", id: "scrollToTop" })
2018    );
2019    $("#scrollToTop").click(function (e) {
2020      e.preventDefault();
2021      $("body, html").animate({ scrollTop: 0 }, 500);
2022      return false;
2023    });
2024    // Show/Hide Button on Window Scroll event.
2025    $(window).scroll(function () {
2026      if (!_isScrolling) {
2027        _isScrolling = true;
2028        if ($(window).scrollTop() > 150) {
2029          $("#scrollToTop").stop(true, true).addClass("visible");
2030          _isScrolling = false;
2031        } else {
2032          $("#scrollToTop").stop(true, true).removeClass("visible");
2033          _isScrolling = false;
2034        }
2035        checkScrollToTop();
2036      }
2037    });
2038  }
2039};
2040
2041checkScrollToTop = function () {
2042  var bottom = 55,
2043    scrollVal = $(window).scrollTop(),
2044    windowHeight = $(window).height(),
2045    footerOffset = 70;
2046  if ($("footer").length) footerOffset = $("footer").offset().top + 70;
2047
2048  if (arOptimusOptions["THEME"]["SCROLLTOTOP_POSITION"] == "CONTENT") {
2049    warpperWidth = $("body > .wrapper > .wrapper_inner").width();
2050    $("#scrollToTop").css("margin-left", Math.ceil(warpperWidth / 2) + 23);
2051  }
2052
2053  if (scrollVal + windowHeight > footerOffset) {
2054    $("#scrollToTop").css("bottom", bottom + scrollVal + windowHeight - footerOffset - 0);
2055  } else if (parseInt($("#scrollToTop").css("bottom")) > bottom) {
2056    $("#scrollToTop").css("bottom", bottom);
2057  }
2058};
2059
2060CheckObjectsSizes = function () {
2061  $(".container iframe,.container object,.container video").each(function () {
2062    var height_attr = $(this).attr("height");
2063    var width_attr = $(this).attr("width");
2064    if (height_attr && width_attr) {
2065      $(this).css("height", ($(this).outerWidth() * height_attr) / width_attr);
2066    }
2067  });
2068};
2069
2070if (!funcDefined("reloadTopBasket")) {
2071  var reloadTopBasket = function reloadTopBasket(action, basketWindow, speed, delay, slideDown, item) {
2072    var obj = {
2073      PARAMS: $("#top_basket_params").val(),
2074      ACTION: action,
2075    };
2076    if (typeof item !== "undefined") {
2077      obj.delete_top_item = "Y";
2078      obj.delete_top_item_id = item.data("id");
2079    }
2080    $.post(
2081      arOptimusOptions["SITE_DIR"] + "ajax/show_basket_popup.php",
2082      obj,
2083      $.proxy(function (data) {
2084        $(basketWindow).html(data);
2085
2086        getActualBasket();
2087
2088        if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
2089          if ($(window).outerWidth() > 520) {
2090            if (slideDown == "Y") $(basketWindow).find(".basket_popup_wrapp").stop(true, true).slideDown(speed);
2091            clearTimeout(basketTimeoutSlide);
2092            basketTimeoutSlide = setTimeout(function () {
2093              var _this = $("#basket_line").find(".basket_popup_wrapp");
2094              if (_this.is(":hover")) {
2095                _this.show();
2096              } else {
2097                $("#basket_line").find(".basket_popup_wrapp").slideUp(speed);
2098              }
2099            }, delay);
2100          }
2101        }
2102      })
2103    );
2104  };
2105}
2106
2107/*countdown start*/
2108
2109if (!funcDefined("initCountdown")) {
2110  var initCountdown = function initCountdown() {
2111    if ($(".view_sale_block").length) {
2112      $(".view_sale_block").each(function () {
2113        var activeTo = $(this).find(".active_to").text(),
2114          dateTo = new Date(activeTo.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2115        $(this).find(".countdown").countdown(
2116          {
2117            until: dateTo,
2118            format: "dHMS",
2119            padZeroes: true,
2120            layout:
2121              '{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>',
2122          },
2123          $.countdown.regionalOptions["ru"]
2124        );
2125      });
2126    }
2127  };
2128}
2129
2130if (!funcDefined("initCountdownTime")) {
2131  var initCountdownTime = function initCountdownTime(block, time) {
2132    if (time) {
2133      var dateTo = new Date(time.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2134      block.find(".countdown").countdown("destroy");
2135      block.find(".countdown").countdown(
2136        {
2137          until: dateTo,
2138          format: "dHMS",
2139          padZeroes: true,
2140          layout:
2141            '{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>',
2142        },
2143        $.countdown.regionalOptions["ru"]
2144      );
2145      block.find(".view_sale_block").show();
2146    } else {
2147      block.find(".view_sale_block").hide();
2148    }
2149  };
2150}
2151
2152/*countdown end*/
2153
2154var isOnceInited = (insertFilter = false);
2155var animationTime = 200;
2156var delayTime = 200;
2157var topMenuEnterTimer = false;
2158var isMobile = jQuery.browser.mobile;
2159
2160if (isMobile) {
2161  document.documentElement.className += " mobile";
2162}
2163
2164/*filter start*/
2165if (!funcDefined("checkVerticalMobileFilter")) {
2166  var checkVerticalMobileFilter = function checkVerticalMobileFilter() {
2167    if ($(".right_block1.catalog.vertical").length && !$(".left_block.filter_ajax").length) {
2168      if (typeof window["trackBarOptions"] !== "undefined") {
2169        window["trackBarValues"] = {};
2170        for (key in window["trackBarOptions"]) {
2171          window["trackBarValues"][key] = {
2172            leftPercent: window["trackBar" + key].leftPercent,
2173            leftValue: window["trackBar" + key].minInput.value,
2174            rightPercent: window["trackBar" + key].rightPercent,
2175            rightValue: window["trackBar" + key].maxInput.value,
2176          };
2177        }
2178      }
2179
2180      if (window.matchMedia("(max-width: 950px)").matches) {
2181        if (!insertFilter) {
2182          $(".js_filter .bx_filter.bx_filter_vertical").html($(".left_block .bx_filter.bx_filter_vertical").html());
2183          $(".left_block .bx_filter.bx_filter_vertical .bx_filter_section").remove();
2184          insertFilter = true;
2185        }
2186      } else {
2187        if (insertFilter) {
2188          $(".left_block .bx_filter.bx_filter_vertical").html($(".js_filter .bx_filter.bx_filter_vertical").html());
2189          $(".js_filter .bx_filter.bx_filter_vertical .bx_filter_section").remove();
2190          insertFilter = false;
2191        }
2192      }
2193
2194      if (typeof window["trackBarOptions"] !== "undefined") {
2195        for (key in window["trackBarOptions"]) {
2196          window["trackBarOptions"][key].leftPercent = window["trackBarValues"][key].leftPercent;
2197          window["trackBarOptions"][key].rightPercent = window["trackBarValues"][key].rightPercent;
2198          window["trackBarOptions"][key].curMinPrice = window["trackBarValues"][key].leftValue;
2199          window["trackBarOptions"][key].curMaxPrice = window["trackBarValues"][key].rightValue;
2200          window["trackBar" + key] = new BX.Iblock.SmartFilter(window["trackBarOptions"][key]);
2201          window["trackBar" + key].minInput.value = window["trackBarValues"][key].leftValue;
2202          window["trackBar" + key].maxInput.value = window["trackBarValues"][key].rightValue;
2203        }
2204      }
2205    } else if ($(".left_block.filter_ajax").length) {
2206      var posBlock = $(".ajax_load").position();
2207
2208      $(".left_block.filter_ajax .bx_filter").css("top", posBlock.top - 13);
2209      if (
2210        $(".left_block.filter_ajax .bx_filter").is(":visible") &&
2211        !$(".adaptive_filter .filter_opener").hasClass("opened") &&
2212        window.matchMedia("(max-width: 950px)").matches
2213      ) {
2214        $(".adaptive_filter .filter_opener").addClass("opened");
2215      }
2216    }
2217  };
2218}
2219/*filter end*/
2220
2221// TOP MENU ANIMATION
2222$(document).on("click", ".menu_top_block>li .more a", function () {
2223  $this = $(this);
2224  $this.parents(".dropdown").first().find(">.hidden").removeClass("hidden");
2225  $this.parent().addClass("hidden");
2226  setTimeout(function () {
2227    $this.parent().remove();
2228  }, 500);
2229});
2230
2231$(document).on("mouseenter", ".menu_top_block.catalogfirst>li>.dropdown>li.full", function () {
2232  var $submenu = $(this).find(">.dropdown");
2233
2234  if ($submenu.length) {
2235    if (topMenuEnterTimer) {
2236      clearTimeout(topMenuEnterTimer);
2237      topMenuEnterTimer = false;
2238    }
2239  }
2240});
2241
2242$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () {
2243  var $submenu = $(this).find(">.dropdown");
2244
2245  if ($submenu.length && !$submenu.hasClass("visible")) {
2246    var $menu = $(this).parents(".menu");
2247    var $wrapmenu = $menu.parents(".wrap_menu");
2248    var wrapMenuWidth = $wrapmenu.actual("outerWidth");
2249    var wrapMenuLeft = $wrapmenu.offset().left;
2250    var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
2251    var left = wrapMenuRight - ($(this).offset().left + $submenu.actual("outerWidth"));
2252    if (
2253      window.matchMedia("(min-width: 951px)").matches &&
2254      $(this).hasClass("catalog") &&
2255      ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page"))
2256    ) {
2257      return;
2258    }
2259    if (left < 0) {
2260      $submenu.css({ left: left + "px" });
2261    }
2262    $submenu.stop().slideDown(animationTime, function () {
2263      $submenu.css({ height: "", overflow: "visible" });
2264    });
2265
2266    $(this).on("mouseleave", function () {
2267      var leaveTimer = setTimeout(function () {
2268        $submenu.stop().slideUp(animationTime, function () {
2269          $submenu.css({ left: "" });
2270        });
2271      }, delayTime);
2272
2273      $(this).on("mouseenter", function () {
2274        if (leaveTimer) {
2275          clearTimeout(leaveTimer);
2276          leaveTimer = false;
2277        }
2278      });
2279    });
2280  }
2281});
2282
2283$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () {
2284  if (
2285    window.matchMedia("(min-width: 951px)").matches &&
2286    $(this).hasClass("catalog") &&
2287    ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page"))
2288  ) {
2289    return;
2290  }
2291
2292  var _this = $(this).find(">.dropdown");
2293  var $catalogNlo = _this.find("[data-nlo]");
2294  var isNloLoaded = !$catalogNlo.length;
2295
2296  if (!isNloLoaded) {
2297    if (!$catalogNlo.hasClass("nlo-loadings")) {
2298      $catalogNlo.addClass("nlo-loadings");
2299      setTimeout(function () {
2300        $.ajax({
2301          data: { nlo: $catalogNlo.attr("data-nlo") },
2302          success: function (response) {
2303            // stop ya metrika webvisor DOM indexer
2304            pauseYmObserver();
2305
2306            isNloLoaded = true;
2307            $catalogNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
2308            $catalogNlo.remove();
2309
2310            BX.onCustomEvent('onAsproNloAdd', [{}]);
2311
2312            // resume ya metrika webvisor
2313            // (300ms transition) + (100ms scroll handler)
2314            setTimeout(resumeYmObserver, 400);
2315          },
2316          error: function () {
2317            $catalogNlo.removeClass("nlo-loadings");
2318          },
2319        });
2320      }, 300);
2321    }
2322  }
2323});
2324
2325$(document).on("mouseenter", ".menu_top_block>li .dropdown>li", function () {
2326  var $this = $(this);
2327  var $submenu = $this.find(">.dropdown");
2328
2329  if (
2330    $submenu.length &&
2331    ((!$this.parents(".full").length && !$this.hasClass("full")) || $this.parents(".more").length)
2332  ) {
2333    var $menu = $this.parents(".menu");
2334    var $wrapmenu = $menu.parents(".wrap_menu");
2335    var arParentSubmenuForOpacity = [];
2336    topMenuEnterTimer = setTimeout(function () {
2337      var wrapMenuWidth = $wrapmenu.actual("outerWidth");
2338      var wrapMenuLeft = $wrapmenu.offset().left;
2339      var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
2340      var $parentSubmenu = $this.parent();
2341      var bToLeft = $parentSubmenu.hasClass("toleft") ? true : false;
2342      if (!bToLeft) {
2343        bToLeft = $this.offset().left + $this.actual("outerWidth") + $submenu.actual("outerWidth") > wrapMenuRight;
2344      } else {
2345        bToLeft = $this.offset().left + $this.actual("outerWidth") - $submenu.actual("outerWidth") < wrapMenuLeft;
2346      }
2347
2348      if (bToLeft) {
2349        $this.find(">.dropdown").addClass("toleft").show();
2350      } else {
2351        $this.find(">.dropdown").removeClass("toleft").show();
2352      }
2353      var submenuLeft = $submenu.offset().left;
2354      var submenuRight = submenuLeft + $submenu.actual("outerWidth");
2355
2356      $this.parents(".dropdown").each(function () {
2357        var $this = $(this);
2358        var leftOffset = $this.offset().left;
2359        var rightOffset = leftOffset + $this.actual("outerWidth");
2360        if (
2361          (leftOffset >= submenuLeft && leftOffset < submenuRight - 1) ||
2362          (rightOffset > submenuLeft + 1 && rightOffset <= submenuRight)
2363        ) {
2364          arParentSubmenuForOpacity.push($this);
2365          $this.find(">li>a").css({ opacity: "0.1" });
2366        }
2367      });
2368    }, delayTime);
2369
2370    $this.unbind("mouseleave");
2371    $this.on("mouseleave", function () {
2372      var leaveTimer = setTimeout(function () {
2373        $this.find(".dropdown").removeClass("toleft").hide();
2374        if (arParentSubmenuForOpacity.length) {
2375          for (i in arParentSubmenuForOpacity) {
2376            arParentSubmenuForOpacity[i].find(">li>a").css({ opacity: "" });
2377          }
2378        }
2379      }, delayTime);
2380
2381      $this.unbind("mouseenter");
2382      $this.on("mouseenter", function () {
2383        if (leaveTimer) {
2384          clearTimeout(leaveTimer);
2385          leaveTimer = false;
2386        }
2387      });
2388    });
2389  }
2390});
2391
2392getGridSize = function (counts) {
2393  var counts_item = 1;
2394  //wide
2395  if (window.matchMedia("(min-width: 1200px)").matches) {
2396    counts_item = counts[0];
2397  }
2398
2399  //large
2400  if (window.matchMedia("(max-width: 1200px)").matches) {
2401    counts_item = counts[1];
2402  }
2403
2404  //middle
2405  if (window.matchMedia("(max-width: 992px)").matches) {
2406    counts_item = counts[2];
2407  }
2408
2409  //small
2410  if (counts[3]) {
2411    if (window.matchMedia("(max-width: 600px)").matches) {
2412      counts_item = counts[3];
2413    }
2414  }
2415
2416  //exsmall
2417  if (counts[4]) {
2418    if (window.matchMedia("(max-width: 400px)").matches) {
2419      counts_item = counts[4];
2420    }
2421  }
2422
2423  return counts_item;
2424};
2425
2426CheckFlexSlider = function () {
2427  $(".flexslider:not(.thmb)").each(function () {
2428    var slider = $(this);
2429    slider.resize();
2430    var counts = slider.data("flexslider").vars.counts;
2431    if (typeof counts != "undefined") {
2432      var cnt = getGridSize(counts);
2433      var to0 =
2434        cnt != slider.data("flexslider").vars.minItems ||
2435        cnt != slider.data("flexslider").vars.maxItems ||
2436        cnt != slider.data("flexslider").vars.move;
2437      if (to0) {
2438        slider.data("flexslider").vars.minItems = cnt;
2439        slider.data("flexslider").vars.maxItems = cnt;
2440        slider.data("flexslider").vars.move = cnt;
2441        slider.flexslider(0);
2442        slider.resize();
2443        slider.resize(); // twise!
2444      }
2445    }
2446  });
2447};
2448
2449InitFlexSlider = function () {
2450  $(".flexslider:not(.thmb):not(.flexslider-init)").each(function () {
2451    var slider = $(this);
2452    var options;
2453    var defaults = {
2454      animationLoop: false,
2455      controlNav: false,
2456      directionNav: true,
2457      animation: "slide",
2458    };
2459    var config = $.extend({}, defaults, options, slider.data("plugin-options"));
2460    if (!slider.parent().hasClass("top_slider_wrapp")) {
2461      if (typeof config.counts != "undefined" && config.direction !== "vertical") {
2462        config.maxItems = getGridSize(config.counts);
2463        config.minItems = getGridSize(config.counts);
2464        config.move = getGridSize(config.counts);
2465        config.itemWidth = 200;
2466      }
2467
2468      config.after = function (slider) {
2469        var eventdata = { slider: slider };
2470        BX.onCustomEvent("onSlide", [eventdata]);
2471      };
2472      config.start = function (slider) {
2473        var eventdata = { slider: slider };
2474        BX.onCustomEvent("onSlideInit", [eventdata]);
2475      };
2476
2477      config.end = function (slider) {
2478        var eventdata = { slider: slider };
2479        BX.onCustomEvent("onSlideEnd", [eventdata]);
2480      };
2481
2482      slider.flexslider(config).addClass("flexslider-init");
2483      if (config.controlNav) slider.addClass("flexslider-control-nav");
2484      if (config.directionNav) slider.addClass("flexslider-direction-nav");
2485    }
2486  });
2487};
2488
2489InitZoomPict = function (el) {
2490  var block = $(".zoom_picture");
2491  if (typeof el !== "undefined") block = el;
2492  if (block.length) {
2493    var slide = block.closest(".slides");
2494    var zoomer = block,
2495      options,
2496      defaults = {
2497        zoomWidth: 200,
2498        zoomHeight: 200,
2499        adaptive: false,
2500        title: true,
2501        Xoffset: 15,
2502      };
2503    var config = $.extend({}, defaults, options, zoomer.data("plugin-options"));
2504    zoomer.xzoom(config);
2505
2506    block.on("mouseleave", function () {
2507      block.data("xzoom").movezoom(event);
2508      /*
2509			if($('.xzoom-lens').length)
2510				block.data('xzoom').closezoom();
2511			*/
2512    });
2513  }
2514};
2515
2516if (!funcDefined("pauseYmObserver")) {
2517  // pause ya metrika webvisor MutationObserver callback (DOM indexer)
2518  // use before insert html with some animation
2519  pauseYmObserver = function () {
2520    if (
2521      typeof MutationObserver === "function" &&
2522      typeof MutationObserver.observers === "object" &&
2523      typeof MutationObserver.observers.ym === "object"
2524    ) {
2525      if (typeof pauseYmObserver.cnt === "undefined") {
2526        pauseYmObserver.cnt = 0;
2527      }
2528
2529      ++pauseYmObserver.cnt;
2530
2531      if (!MutationObserver.observers.ym.paused) {
2532        MutationObserver.observers.ym.pause();
2533      }
2534    }
2535  };
2536}
2537
2538if (!funcDefined("resumeYmObserver")) {
2539  // resume ya metrika webvisor MutationObserver callback
2540  // use when animation finished
2541  resumeYmObserver = function () {
2542    if (
2543      typeof MutationObserver === "function" &&
2544      typeof MutationObserver.observers === "object" &&
2545      typeof MutationObserver.observers.ym === "object"
2546    ) {
2547      if (typeof pauseYmObserver.cnt === "undefined") {
2548        pauseYmObserver.cnt = 1;
2549      }
2550
2551      pauseYmObserver.cnt -= pauseYmObserver.cnt > 0 ? 1 : 0;
2552
2553      if (!pauseYmObserver.cnt && MutationObserver.observers.ym.paused) {
2554        MutationObserver.observers.ym.resume();
2555      }
2556    }
2557  };
2558}
2559
2560var arBasketAsproCounters = {};
2561SetActualBasketFlyCounters = function () {
2562  if (arBasketAsproCounters.DEFAULT == true) {
2563    $.ajax({
2564      url: arOptimusOptions["SITE_DIR"] + "ajax/basket_fly.php",
2565      type: "post",
2566      success: function (html) {
2567        $("#basket_line .basket_fly").addClass("loaded").html(html);
2568      },
2569    });
2570  } else {
2571    $(".basket_fly .opener .basket_count .count")
2572      .attr("class", "count" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty_items"))
2573      .find(".items span")
2574      .text(arBasketAsproCounters.READY.COUNT);
2575    $(".basket_fly .opener .basket_count + a").attr("href", arBasketAsproCounters["READY"]["HREF"]);
2576    $(".basket_fly .opener .basket_count")
2577      .attr("title", arBasketAsproCounters.READY.TITLE)
2578      .attr("class", "basket_count small clicked" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty"));
2579
2580    $(".basket_fly .opener .wish_count .count")
2581      .attr("class", "count" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty_items"))
2582      .find(".items span")
2583      .text(arBasketAsproCounters.DELAY.COUNT);
2584    $(".basket_fly .opener .wish_count + a").attr("href", arBasketAsproCounters.DELAY.HREF);
2585    $(".basket_fly .opener .wish_count")
2586      .attr("title", arBasketAsproCounters.DELAY.TITLE)
2587      .attr("class", "wish_count small clicked" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty"));
2588
2589    $(".basket_fly .opener .compare_count .count")
2590      .attr("class", "count" + (arBasketAsproCounters.COMPARE.COUNT > 0 ? "" : " empty_items"))
2591      .find(".items span")
2592      .text(arBasketAsproCounters.COMPARE.COUNT);
2593    $(".basket_fly .opener .compare_count + a").attr("href", arBasketAsproCounters.COMPARE.HREF);
2594
2595    $(".basket_fly .opener .user_block")
2596      .attr("title", arBasketAsproCounters.PERSONAL.TITLE)
2597      .find("+ a")
2598      .attr("href", arBasketAsproCounters.PERSONAL.HREF);
2599    $(".basket_fly .opener .user_block .wraps_icon_block")
2600      .attr(
2601        "class",
2602        "wraps_icon_block" +
2603          (arBasketAsproCounters.PERSONAL.ID > 0 ? " user_auth" : " user_reg") +
2604          (arBasketAsproCounters.PERSONAL.SRC ? " w_img" : " no_img")
2605      )
2606      .attr(
2607        "style",
2608        arBasketAsproCounters.PERSONAL.SRC
2609          ? 'background:url("' + arBasketAsproCounters.PERSONAL.SRC + '") center center no-repeat;'
2610          : ""
2611      );
2612
2613    const eventdata = { action: "loadActualBasket" };
2614    BX.onCustomEvent("onCompleteAction", [eventdata]);
2615  }
2616};
2617
2618/*set price item*/
2619if (!funcDefined("setPriceItem")) {
2620  var setPriceItem = function setPriceItem(main_block, quantity, rewrite_price, check_quantity, is_sku) {
2621    var old_quantity = main_block.find(".to-cart").attr("data-ratio"),
2622      value =
2623        typeof rewrite_price !== "undefined" && rewrite_price
2624          ? rewrite_price
2625          : main_block.find(".to-cart").attr("data-value"),
2626      currency = main_block.find(".to-cart").attr("data-currency"),
2627      total_block = '<div class="total_summ"><div>' + BX.message("TOTAL_SUMM_ITEM") + "<span></span></div></div>",
2628      price_block = main_block.find(".cost.prices"),
2629      check = typeof check_quantity !== "undefined" && check_quantity;
2630
2631    if (main_block.find(".buy_block").length) {
2632      if (!main_block.find(".buy_block .total_summ").length) $(total_block).appendTo(main_block.find(".buy_block"));
2633    } else if (main_block.find(".counter_wrapp").length) {
2634      if (!main_block.find(".counter_wrapp .total_summ").length)
2635        $(total_block).appendTo(main_block.find(".counter_wrapp:first"));
2636    }
2637    if (main_block.find(".total_summ").length) {
2638      if (value && currency) {
2639        if (
2640          ((1 == quantity && old_quantity == quantity) || (typeof is_sku !== "undefined" && is_sku && !check)) &&
2641          arOptimusOptions.THEME.SHOW_TOTAL_SUMM !== "ALWAYS"
2642        ) {
2643          main_block.find(".total_summ").slideUp(200);
2644        } else {
2645          main_block.find(".total_summ span").html(BX.Currency.currencyFormat(value * quantity, currency, true));
2646          if (main_block.find(".total_summ").is(":hidden")) main_block.find(".total_summ").slideDown(200);
2647        }
2648      } else main_block.find(".total_summ").slideUp(200);
2649    }
2650  };
2651}
2652
2653if (!funcDefined("getCurrentPrice")) {
2654  var getCurrentPrice = function getCurrentPrice(price, currency, print_price) {
2655    var val = "";
2656    var format_value = BX.Currency.currencyFormat(price, currency);
2657    if (print_price.indexOf(format_value) >= 0) {
2658      val = print_price.replace(
2659        format_value,
2660        '<span class="price_value">' + format_value + '</span><span class="price_currency">'
2661      );
2662      val += "</span>";
2663    } else {
2664      val = print_price;
2665    }
2666
2667    return val;
2668  };
2669}
2670
2671$(document).ready(function () {
2672  //ecommerce order
2673  if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) {
2674    var arUrl = parseUrlQuery();
2675    if ("ORDER_ID" in arUrl) {
2676      var _id = arUrl["ORDER_ID"];
2677      if (arOptimusOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
2678        var eventdata = { goal: "goal_order_success", result: _id };
2679        BX.onCustomEvent("onCounterGoals", [eventdata]);
2680      }
2681
2682      if (checkCounters()) {
2683        if (typeof BX.localStorage !== "undefined") {
2684          var d = BX.localStorage.get("gtm_e_" + _id);
2685          if (typeof d === "object") {
2686            waitLayer(100, function () {
2687              dataLayer.push({ event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"], ecommerce: d });
2688            });
2689          }
2690
2691          if (typeof localStorage !== "undefined") {
2692            localStorage.removeItem("gtm_e_" + _id);
2693          }
2694        }
2695      }
2696    }
2697  }
2698
2699  // ya.metrika debug
2700  if (arOptimusOptions["COUNTERS"]["USE_DEBUG_GOALS"] === "Y") {
2701    $.cookie("_ym_debug", 1, { path: "/" });
2702  } else {
2703    $.cookie("_ym_debug", null, { path: "/" });
2704  }
2705
2706  scrollToTop();
2707  checkVerticalMobileFilter();
2708  checkFormWidth();
2709
2710  if (!jQuery.browser.safari) {
2711    setTimeout(function () {
2712      InitTopestMenuGummi();
2713      InitTopMenuGummi();
2714      isOnceInited = true;
2715
2716      InitFlexSlider();
2717
2718      // setTimeout(function() {$(window).resize();}, 150); // need to check resize flexslider & menu
2719
2720      try {
2721        // SHOW TOP MENU ON READY AFTER GUMMI
2722        $("header .wrap_menu").css({ overflow: "visible" });
2723        $(".visible_on_ready").removeClass("visible_on_ready");
2724      } catch (e) {
2725        console.error(e);
2726      }
2727    }, 100);
2728  } else {
2729    setTimeout(function () {
2730      $(window).resize(); // need to check resize flexslider & menu
2731      setTimeout(function () {
2732        InitTopestMenuGummi();
2733        InitTopMenuGummi();
2734        isOnceInited = true;
2735
2736        InitFlexSlider();
2737
2738        try {
2739          // SHOW TOP MENU ON READY AFTER GUMMI
2740          $("header .wrap_menu").css({ overflow: "visible" });
2741          $(".visible_on_ready").removeClass("visible_on_ready");
2742        } catch (e) {
2743          console.error(e);
2744        }
2745
2746        setTimeout(function () {
2747          $(window).scroll();
2748        }, 50);
2749      }, 50);
2750    }, 350);
2751  }
2752
2753  InitZoomPict();
2754
2755  $("body").on("click", ".captcha_reload", function (e) {
2756    var captcha = $(this).parents(".captcha-row");
2757    e.preventDefault();
2758    $.ajax({
2759      url: arOptimusOptions["SITE_DIR"] + "ajax/captcha.php",
2760    }).done(function (text) {
2761      captcha.find("input[name=captcha_sid]").val(text);
2762      captcha.find("img").attr("src", "/bitrix/tools/captcha.php?captcha_sid=" + text);
2763      captcha.find("input[name=captcha_word]").val("").removeClass("error");
2764      captcha.find(".captcha_input").removeClass("error").find(".error").remove();
2765    });
2766  });
2767
2768  setTimeout(function () {
2769    $(".bg_image_site").css({
2770      opacity: 1,
2771    });
2772  }, 200);
2773
2774  if (window.matchMedia("(min-width: 768px)").matches) {
2775    $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
2776  }
2777
2778  if (window.matchMedia("(max-width: 767px)").matches) {
2779    $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
2780  }
2781
2782  setTimeout(function () {
2783    $(window).scroll();
2784  }, 400);
2785
2786  $(".menu_top_block .v_bottom > a").on("click", function (e) {
2787    if ($(e.target).hasClass("toggle_block")) e.preventDefault();
2788  });
2789  $(".menu_top_block .v_bottom > a .toggle_block").on("click", function (e) {
2790    $(this).closest(".v_bottom").toggleClass("opened");
2791    $(this).closest(".v_bottom").find(">.dropdown").slideToggle();
2792  });
2793
2794  $(document).on("click", ".show_props",  function() {
2795    $(this).prev(".props_list_wrapp").stop().slideToggle(333);
2796    $(this).find(".char_title").toggleClass("opened");
2797  });
2798
2799  $(document).on(
2800    "mouseenter",
2801    ".menu_top_block.catalog_block >.dropdown>li.m_line, .menu_top_block.catalogfirst > li >.dropdown>li.m_line",
2802    function () {
2803      var _this = $(this);
2804      if (window.dropdownTimeout && window.dropdownTimeout[_this.index()]) {
2805        clearTimeout(window.dropdownTimeout[_this.index()]);
2806      }
2807
2808      var dropdown = _this.find("> ul");
2809      if (dropdown.length) {
2810        var offset = dropdown[0].getBoundingClientRect();
2811        var offsetLi = _this[0].getBoundingClientRect();
2812        var offsetUl = _this.closest("ul")[0].getBoundingClientRect();
2813        var bottomOuter = document.documentElement.clientHeight - offset.y - offset.height;
2814        if (bottomOuter < 0) {
2815          if (offset.height > document.documentElement.clientHeight && offsetUl.y < 0) {
2816            var dropdownTopMax = -offsetLi.y;
2817          } else {
2818            var dropdownTopMax = offsetUl.y - offsetLi.y;
2819          }
2820          var dropdownBottom = document.documentElement.clientHeight - offset.y - offsetLi.height;
2821          var dropdownTop = dropdownBottom + offsetLi.height - offset.height;
2822          if (dropdownTop < dropdownTopMax) {
2823            dropdownTop = dropdownTopMax;
2824          }
2825          dropdown.css({
2826            top: dropdownTop + "px",
2827            bottom: -dropdownBottom + "px",
2828            overflow: "auto",
2829          });
2830        }
2831      }
2832    }
2833  );
2834
2835  $(document).on(
2836    "mouseleave",
2837    ".menu_top_block.catalog_block >.dropdown>li.m_line, .menu_top_block.catalogfirst > li >.dropdown>li.m_line",
2838    function () {
2839      var _this = $(this);
2840      var dropdown = _this.find("> ul");
2841      if (dropdown.length) {
2842        if (!window.dropdownTimeout) {
2843          window.dropdownTimeout = {};
2844        }
2845        window.dropdownTimeout[_this.index()] = setTimeout(function () {
2846          dropdown.css({
2847            top: "",
2848            bottom: "",
2849          });
2850        }, 300);
2851      }
2852    }
2853  );
2854
2855  $(document).on("click", ".see_more",  function(e) {
2856    e.preventDefault();
2857    var see_more = $(this).is(".see_more") ? $(this) : $(this).parents(".see_more").first();
2858    var see_moreText = see_more.find("> a").length ? see_more.find("> a") : see_more;
2859    var see_moreHiden = see_more.parent().find("> .d");
2860    if (see_more.hasClass("open")) {
2861      see_moreText.text(BX.message("CATALOG_VIEW_MORE"));
2862      see_more.removeClass("open");
2863      see_moreHiden.hide();
2864    } else {
2865      see_moreText.text(BX.message("CATALOG_VIEW_LESS"));
2866      see_more.addClass("open");
2867      see_moreHiden.show();
2868    }
2869    return false;
2870  });
2871
2872  $(".button.faq_button").click(function (e) {
2873    e.preventDefault();
2874    $(this).toggleClass("opened");
2875    $(".faq_ask .form").slideToggle();
2876  });
2877
2878  $(".staff.list .staff_section .staff_section_title a").click(function (e) {
2879    e.preventDefault();
2880    $(this).parents(".staff_section").toggleClass("opened");
2881    $(this).parents(".staff_section").find(".staff_section_items").stop().slideToggle(600);
2882    $(this).parents(".staff_section_title").find(".opener_icon").toggleClass("opened");
2883  });
2884
2885  $(".jobs_wrapp .item .name").click(function (e) {
2886    $(this).closest(".item").toggleClass("opened");
2887    $(this).closest(".item").find(".description_wrapp").stop().slideToggle(600);
2888    $(this).closest(".item").find(".opener_icon").toggleClass("opened");
2889  });
2890
2891  $(document).on("click", ".faq.list .item .q a",  function(e) {
2892    e.preventDefault();
2893    $(this).parents(".item").toggleClass("opened");
2894    $(this).parents(".item").find(".a").stop().slideToggle();
2895    $(this).parents(".item").find(".q .opener_icon").toggleClass("opened");
2896  });
2897
2898  $(".opener_icon").click(function (e) {
2899    e.preventDefault();
2900    $(this).parent().find("a").trigger("click");
2901  });
2902
2903  $(document).on("click", ".to-order",  function(e) {
2904    e.preventDefault();
2905    $("body").append("<span class='evb-toorder' style='display:none;'></span>");
2906    jqmEd("to-order", arOptimusOptions["FORM"]["TOORDER_FORM_ID"], ".evb-toorder", "", this);
2907    $("body .evb-toorder").click();
2908    $("body .evb-toorder").remove();
2909  });
2910
2911  $(document).on("click", ".cheaper",  function(e) {
2912    e.preventDefault();
2913    $("body").append("<span class='evb-cheaper' style='display:none;'></span>");
2914    jqmEd("cheaper", arOptimusOptions["FORM"]["CHEAPER_FORM_ID"], ".evb-cheaper", "", this);
2915    $("body .evb-cheaper").click();
2916    $("body .evb-cheaper").remove();
2917  });
2918
2919  $(document).on('click', '.delivery', function(e){
2920		e.preventDefault();
2921		var dataProductId = $(this).data('param-product_id');
2922		var dataQuantity = $(this).data('param-quantity');
2923		$("body").append("<span class='evb-delivery' style='display:none;'></span>");
2924		jqmEd('delivery', arOptimusOptions['FORM']['DELIVERY_FORM_ID'].toLowerCase(), '.evb-delivery', 'product_id='+dataProductId+'&quantity='+dataQuantity, this);
2925		$("body .evb-delivery").click();
2926		$("body .evb-delivery").remove();
2927
2928	});
2929	$(".animate-load").on("click", function () {
2930		if (!jQuery.browser.mobile) {
2931			$(this).parent().addClass("loadings");
2932		}
2933  });
2934
2935	// init calculate delivery with preview
2936	initCalculatePreview();
2937
2938  //$(".dotdot").dotdotdot();
2939
2940  $(document).on("click", ".more_block", function () {
2941    const content_offset = $(".catalog_detail .tabs_section").offset();
2942    const $descriptionTab = document.querySelector('.tabs_section .nav-tabs #description_tab');
2943
2944    if (window.matchMedia("(min-width: 768px)").matches) {
2945      if ($("#headerfixed").length) {
2946        content_offset.top -= $("#headerfixed").height();
2947      }
2948      if ($(".product-item-detail-tabs-container-fixed").length) {
2949        content_offset.top -= $(".product-item-detail-tabs-container-fixed").height();
2950      }
2951    }
2952
2953    if ($descriptionTab) {
2954      $descriptionTab.click();
2955    }
2956
2957    $("html, body").animate({ scrollTop: content_offset.top - 43 }, 400);
2958  });
2959
2960  $(document).on("click", ".counter_block:not(.basket) .plus", function () {
2961    if (!$(this).parents(".basket_wrapp").length) {
2962      if ($(this).parent().data("offers") != "Y") {
2963        var isDetailSKU2 = $(this).parents(".counter_block_wr").length,
2964          input = $(this).parents(".counter_block").find("input[type=text]"),
2965          tmp_ratio = !isDetailSKU2
2966            ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
2967            : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio"),
2968          isDblQuantity = !isDetailSKU2
2969            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
2970            : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio"),
2971          ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10),
2972          max_value = "";
2973        currentValue = input.val();
2974
2975        if (isDblQuantity)
2976          ratio =
2977            Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
2978            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
2979
2980        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
2981
2982        curValue += ratio;
2983        if (isDblQuantity) {
2984          curValue =
2985            Math.round(curValue * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
2986            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
2987        }
2988        if (parseFloat($(this).data("max")) > 0) {
2989          if (input.val() <= $(this).data("max")) {
2990            if (curValue <= $(this).data("max")) input.val(curValue);
2991
2992            input.change();
2993          }
2994        } else {
2995          input.val(curValue);
2996          input.change();
2997        }
2998      }
2999    }
3000  });
3001
3002  $(document).on("click", ".counter_block:not(.basket) .minus", function () {
3003    if (!$(this).parents(".basket_wrapp").length) {
3004      if ($(this).parent().data("offers") != "Y") {
3005        var isDetailSKU2 = $(this).parents(".counter_block_wr").length;
3006        input = $(this).parents(".counter_block").find("input[type=text]");
3007        (tmp_ratio = !isDetailSKU2
3008          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
3009          : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio")),
3010          (isDblQuantity = !isDetailSKU2
3011            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
3012            : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio")),
3013          (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)),
3014          (max_value = "");
3015        currentValue = input.val();
3016
3017        if (isDblQuantity)
3018          ratio =
3019            Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3020            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3021
3022        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
3023
3024        curValue -= ratio;
3025        if (isDblQuantity) {
3026          curValue =
3027            Math.round(curValue * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3028            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3029        }
3030
3031        const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
3032        if (minValue) {
3033          ratio = minValue;
3034        }
3035
3036        if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
3037          if (currentValue > ratio) {
3038            if (curValue < ratio) {
3039              input.val(ratio);
3040            } else {
3041              input.val(curValue);
3042            }
3043            input.change();
3044          }
3045        } else {
3046          if (curValue > ratio) {
3047            input.val(curValue);
3048          } else {
3049            if (ratio) {
3050              input.val(ratio);
3051            } else if (currentValue > 1) {
3052              input.val(curValue);
3053            }
3054          }
3055          input.change();
3056        }
3057      }
3058    }
3059  });
3060
3061  $(".counter_block input[type=text]").numeric({ allow: "." });
3062  $(".counter_block input[type=text]").on("focus", function () {
3063    $(this).addClass("focus");
3064  });
3065  $(".counter_block input[type=text]").on("blur", function () {
3066    $(this).removeClass("focus");
3067  });
3068
3069  var timerInitCalculateDelivery = false;
3070
3071  $(document).on("change", ".counter_block input[type=text]", function (e) {
3072    const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
3073    const currentValue = parseFloat($(this).val());
3074    if (minValue === currentValue) {
3075      return;
3076    }
3077
3078    if (!$(this).parents(".basket_wrapp").length) {
3079      var val = $(this).val(),
3080        tmp_ratio = $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
3081          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
3082          : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio"),
3083        isDblQuantity = $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
3084          ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
3085          : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio"),
3086        ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10),
3087        diff = val % ratio;
3088      if (isDblQuantity) {
3089        ratio =
3090          Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3091          arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3092        if (
3093          Math.round(diff * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3094            arOptimusOptions.JS_ITEM_CLICK.precisionFactor ==
3095          ratio
3096        )
3097          diff = 0;
3098      }
3099
3100      if ($(this).hasClass("focus")) {
3101        const intCount =
3102          Math.round(
3103            Math.round((val * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / ratio) /
3104              arOptimusOptions.JS_ITEM_CLICK.precisionFactor
3105          ) || 1;
3106        val = intCount <= 1 ? ratio : intCount * ratio;
3107        val =
3108          Math.round(val * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3109          arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3110      }
3111
3112      if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
3113        if (val > parseFloat($(this).parents(".counter_block").find(".plus").data("max"))) {
3114          val = parseFloat($(this).parents(".counter_block").find(".plus").data("max"));
3115        }
3116      }
3117
3118      if (val < ratio) {
3119        val = ratio;
3120      } else if (!parseFloat(val)) {
3121        val = 1;
3122      }
3123
3124      $(this).parents(".counter_block").parent().parent().find(".to-cart").attr("data-quantity", val);
3125      $(this).parents(".counter_block").parent().parent().find(".one_click").attr("data-quantity", val);
3126      $(this).parents(".counter_block_wr").find(".one_click").attr("data-quantity", val);
3127      $(this).val(val);
3128
3129      var $calculate = $(this).closest(".item").length
3130			? $(this).closest(".item").find(".calculate-delivery")
3131			: $(this).closest(".catalog_detail").find(".calculate-delivery");
3132			if ($calculate.length) {
3133				$calculate.each(function () {
3134				var $calculateSpan = $(this).find("span[data-event=jqm]").first();
3135
3136				if ($calculateSpan.length) {
3137					var $clone = $calculateSpan.clone();
3138					$clone.attr("data-param-quantity", val).removeClass("clicked");
3139					$clone.insertAfter($calculateSpan).on("click", function () {
3140					if (!jQuery.browser.mobile) {
3141						$(this).parent().addClass("loadings");
3142					}
3143					});
3144					$calculateSpan.remove();
3145				}
3146
3147				if ($(this).hasClass("with_preview")) {
3148					$(this).removeClass("inited");
3149
3150					if (timerInitCalculateDelivery) {
3151					clearTimeout(timerInitCalculateDelivery);
3152					}
3153
3154					timerInitCalculateDelivery = setTimeout(function () {
3155					initCalculatePreview();
3156					timerInitCalculateDelivery = false;
3157					}, 1000);
3158				}
3159				});
3160			}
3161
3162      var eventdata = { type: "change", params: { id: $(this), value: val } };
3163      BX.onCustomEvent("onCounterProductAction", [eventdata]);
3164    }
3165  });
3166
3167  BX.addCustomEvent("onCounterProductAction", function (eventdata) {
3168    if (typeof eventdata != "object") {
3169      eventdata = { type: "undefined" };
3170    }
3171    try {
3172      if (typeof eventdata.type != "undefined") {
3173        if (!eventdata.params.id.closest(".gifts").length) {
3174          // no gift
3175          var obProduct = eventdata.params.id.data("product");
3176          if (eventdata.params.id.closest(".item_info").find(".sku_props").length) {
3177            if (typeof window.obSkuQuantys === "undefined") window.obSkuQuantys = {};
3178
3179            const offerID = eventdata.params.id.closest(".offer_buy_block").find(".to-cart").data("item");
3180            window.obSkuQuantys[offerID] = eventdata.params.value;
3181          }
3182
3183          if (typeof window[obProduct] === "object") {
3184            if (obProduct === "obOffers") {
3185              setPriceAction("", "", "Y");
3186            } else {
3187              window[obProduct].setPriceAction("Y");
3188            }
3189          } else if (eventdata.params.id.length) {
3190            if (
3191              eventdata.params.id.closest(".main_item_wrapper").length &&
3192              arOptimusOptions["THEME"]["SHOW_TOTAL_SUMM"] != "N"
3193            ) {
3194              setPriceItem(eventdata.params.id.closest(".main_item_wrapper"), eventdata.params.value);
3195            }
3196          }
3197          BX.onCustomEvent("onCounterProductActionResize");
3198        }
3199      }
3200    } catch (e) {
3201      console.error(e);
3202    }
3203  });
3204
3205  /*slide cart*/
3206  $(document).on("mouseenter", "#basket_line .basket_normal:not(.empty_cart):not(.bcart) .basket_block ", function () {
3207    $(this).closest(".basket_normal").find(".popup").addClass("block");
3208    $(this).closest(".basket_normal").find(".basket_popup_wrapp").stop(true, true).slideDown(150);
3209  });
3210  $(document).on("mouseleave", "#basket_line .basket_normal .basket_block ", function () {
3211    var th = $(this);
3212    $(this)
3213      .closest(".basket_normal")
3214      .find(".basket_popup_wrapp")
3215      .stop(true, true)
3216      .slideUp(150, function () {
3217        th.closest(".basket_normal").find(".popup").removeClass("block");
3218      });
3219  });
3220
3221  $(document).on("click", ".fast_view_block",  function() {
3222    var _th = $(this),
3223      iblockid = _th.data("param-iblock_id"),
3224      href = _th.data("param-item_href"),
3225      name = _th.data("param-form_id");
3226
3227    $("body #popup_iframe_wrapper")
3228      .find("." + name + "_frame")
3229      .remove();
3230    $("body #popup_iframe_wrapper")
3231      .find("." + name + "_trigger")
3232      .remove();
3233    $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame popup"></div>');
3234    $("body #popup_iframe_wrapper").append('<div class="' + name + '_trigger"></div>');
3235    $("." + name + "_frame").jqm({
3236      trigger: "." + name + "_trigger",
3237      onHide: function (hash) {
3238        onHidejqm(name, hash);
3239      },
3240      onLoad: function (hash) {
3241        onLoadjqm(name, hash);
3242      },
3243      ajax:
3244        arOptimusOptions["SITE_DIR"] + "ajax/form.php?form_id=fast_view&iblock_id=" + iblockid + "&item_href=" + href,
3245    });
3246    $("." + name + "_trigger").click();
3247  });
3248
3249  $(document).on("click", ".popup_button_basket", function () {
3250    var th = $(".to-cart[data-item=" + $(this).data("item") + "]");
3251
3252    var val = th.attr("data-quantity");
3253
3254    if (!val) $val = 1;
3255
3256    var tmp_props = th.data("props"),
3257      props = "",
3258      part_props = "",
3259      add_props = "N",
3260      fill_prop = {},
3261      iblockid = th.data("iblockid"),
3262      offer = th.data("offers"),
3263      rid = "",
3264      basket_props = "",
3265      item = th.attr("data-item");
3266
3267    if (offer != "Y") {
3268      offer = "N";
3269    } else {
3270      basket_props = th.closest(".prices_tab").find(".bx_sku_props input").val();
3271    }
3272    if (tmp_props) {
3273      props = tmp_props.split(";");
3274    }
3275    if (th.data("part_props")) {
3276      part_props = th.data("part_props");
3277    }
3278    if (th.data("add_props")) {
3279      add_props = th.data("add_props");
3280    }
3281    if ($(".rid_item").length) {
3282      rid = $(".rid_item").data("rid");
3283    } else if (th.data("rid")) {
3284      rid = th.data("rid");
3285    }
3286
3287    fill_prop = fillBasketPropsExt(th, "prop", "bx_ajax_text");
3288
3289    fill_prop.quantity = val;
3290    fill_prop.add_item = "Y";
3291    fill_prop.rid = rid;
3292    fill_prop.offers = offer;
3293    fill_prop.iblockID = iblockid;
3294    fill_prop.part_props = part_props;
3295    fill_prop.add_props = add_props;
3296    fill_prop.props = JSON.stringify(props);
3297    fill_prop.item = item;
3298    fill_prop.basket_props = basket_props;
3299
3300    $.ajax({
3301      type: "POST",
3302      url: arOptimusOptions["SITE_DIR"] + "ajax/item.php",
3303      data: fill_prop,
3304      dataType: "json",
3305      success: function (data) {
3306        $(".basket_error_frame").jqmHide();
3307        if ("STATUS" in data) {
3308          getActualBasket(fill_prop.iblockID);
3309          if (data.STATUS === "OK") {
3310            th.hide();
3311            th.closest(".counter_wrapp").find(".counter_block").hide();
3312            th.parents("tr").find(".counter_block_wr .counter_block").hide();
3313            th.closest(".button_block").addClass("wide");
3314            th.parent().find(".in-cart").show();
3315
3316            addBasketCounter(item);
3317            $(".wish_item[data-item=" + item + "]").removeClass("added");
3318            $(".wish_item[data-item=" + item + "]")
3319              .find(".value")
3320              .show();
3321            $(".wish_item[data-item=" + item + "]")
3322              .find(".value.added")
3323              .hide();
3324            if ($("#basket_line .cart").length) {
3325              if ($("#basket_line .cart").is(".empty_cart")) {
3326                $("#basket_line .cart")
3327                  .removeClass("empty_cart")
3328                  .find(".cart_wrapp a.basket_link")
3329                  .removeAttr("href")
3330                  .addClass("cart-call");
3331                $("#basket_line .cart").removeClass("ecart");
3332                touchBasket(".cart:not(.empty_cart) .basket_block .link");
3333              }
3334
3335              reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y");
3336            } else if ($("#basket_line .basket_fly").length) {
3337              if ($(window).outerWidth() > 768) {
3338                basketFly("open");
3339              } else {
3340                basketFly("refresh");
3341              }
3342            }
3343          } else {
3344            showBasketError(BX.message(data.MESSAGE));
3345          }
3346        } else {
3347          showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
3348        }
3349      },
3350    });
3351  });
3352
3353  $(document).on("click", ".to-cart:not(.read_more)", function (e) {
3354    e.preventDefault();
3355    var th = $(this);
3356
3357    var val = $(this).attr("data-quantity");
3358
3359    if (!val) $val = 1;
3360
3361    var tmp_props = $(this).data("props"),
3362      props = "",
3363      part_props = "",
3364      add_props = "N",
3365      fill_prop = {},
3366      iblockid = $(this).data("iblockid"),
3367      offer = $(this).data("offers"),
3368      rid = "",
3369      basket_props = "",
3370      item = $(this).attr("data-item");
3371
3372    if (offer != "Y") {
3373      offer = "N";
3374    } else {
3375      basket_props = $(this).closest(".prices_tab").find(".bx_sku_props input").val();
3376    }
3377    if (tmp_props) {
3378      props = tmp_props.split(";");
3379    }
3380    if ($(this).data("part_props")) {
3381      part_props = $(this).data("part_props");
3382    }
3383    if ($(this).data("add_props")) {
3384      add_props = $(this).data("add_props");
3385    }
3386    if ($(".rid_item").length) {
3387      rid = $(".rid_item").data("rid");
3388    } else if ($(this).data("rid")) {
3389      rid = $(this).data("rid");
3390    }
3391
3392    fill_prop = fillBasketPropsExt(th, "prop", th.data("bakset_div"));
3393
3394    fill_prop.quantity = val;
3395    fill_prop.add_item = "Y";
3396    fill_prop.rid = rid;
3397    fill_prop.offers = offer;
3398    fill_prop.iblockID = iblockid;
3399    fill_prop.part_props = part_props;
3400    fill_prop.add_props = add_props;
3401    fill_prop.props = JSON.stringify(props);
3402    fill_prop.item = item;
3403    fill_prop.basket_props = basket_props;
3404
3405    if (th.data("empty_props") == "N") {
3406      showBasketError($("#" + th.data("bakset_div")).html(), BX.message("ERROR_BASKET_PROP_TITLE"), "Y", th);
3407    } else {
3408      $.ajax({
3409        type: "POST",
3410        url: arOptimusOptions["SITE_DIR"] + "ajax/item.php",
3411        data: fill_prop,
3412        dataType: "json",
3413        success: function (data) {
3414          getActualBasket(fill_prop.iblockID);
3415          if (data !== null) {
3416            if ("STATUS" in data) {
3417              if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
3418              if (data.STATUS === "OK") {
3419                /*th.hide();
3420								th.closest('.counter_wrapp').find('.counter_block').hide();
3421								th.parents('tr').find('.counter_block_wr .counter_block').hide();
3422								th.closest('.button_block').addClass('wide');
3423								th.parent().find('.in-cart').show();*/
3424
3425                $(".to-cart[data-item=" + item + "]").hide();
3426                $(".to-cart[data-item=" + item + "]")
3427                  .closest(".counter_wrapp")
3428                  .find(".counter_block")
3429                  .hide();
3430                $(".to-cart[data-item=" + item + "]")
3431                  .parents("tr")
3432                  .find(".counter_block_wr .counter_block")
3433                  .hide();
3434                $(".to-cart[data-item=" + item + "]")
3435                  .closest(".button_block")
3436                  .addClass("wide");
3437                $(".to-cart[data-item=" + item + "]")
3438                  .parent()
3439                  .find(".in-cart")
3440                  .show();
3441
3442                addBasketCounter(item);
3443                $(".wish_item[data-item=" + item + "]").removeClass("added");
3444                $(".wish_item[data-item=" + item + "]")
3445                  .find(".value")
3446                  .show();
3447                $(".wish_item[data-item=" + item + "]")
3448                  .find(".value.added")
3449                  .hide();
3450                if ($("#basket_line .cart").length) {
3451                  if ($("#basket_line .cart").is(".empty_cart")) {
3452                    $("#basket_line .cart")
3453                      .removeClass("empty_cart")
3454                      .find(".cart_wrapp a.basket_link")
3455                      .removeAttr("href")
3456                      .addClass("cart-call");
3457                    $("#basket_line .cart").removeClass("ecart");
3458                    touchBasket(".cart:not(.empty_cart) .basket_block .link");
3459                  }
3460
3461                  reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y");
3462                } else if ($("#basket_line .basket_fly").length) {
3463                  if ($(window).outerWidth() > 768) {
3464                    basketFly("open");
3465                  } else {
3466                    basketFly("refresh");
3467                  }
3468                }
3469              } else {
3470                showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT);
3471              }
3472            } else {
3473              showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
3474            }
3475          } else {
3476            /*th.hide();
3477						th.closest('.counter_wrapp').find('.counter_block').hide();
3478						th.parents('tr').find('.counter_block_wr .counter_block').hide();
3479						th.closest('.button_block').addClass('wide');
3480						th.parent().find('.in-cart').show();*/
3481
3482            $(".to-cart[data-item=" + item + "]").hide();
3483            $(".to-cart[data-item=" + item + "]")
3484              .closest(".counter_wrapp")
3485              .find(".counter_block")
3486              .hide();
3487            $(".to-cart[data-item=" + item + "]")
3488              .parents("tr")
3489              .find(".counter_block_wr .counter_block")
3490              .hide();
3491            $(".to-cart[data-item=" + item + "]")
3492              .closest(".button_block")
3493              .addClass("wide");
3494            $(".to-cart[data-item=" + item + "]")
3495              .parent()
3496              .find(".in-cart")
3497              .show();
3498
3499            addBasketCounter(item);
3500            $(".wish_item[data-item=" + item + "]").removeClass("added");
3501            $(".wish_item[data-item=" + item + "]")
3502              .find(".value")
3503              .show();
3504            $(".wish_item[data-item=" + item + "]")
3505              .find(".value.added")
3506              .hide();
3507            if ($("#basket_line .cart").length) {
3508              if ($("#basket_line .cart").is(".empty_cart")) {
3509                $("#basket_line .cart")
3510                  .removeClass("empty_cart")
3511                  .find(".cart_wrapp a.basket_link")
3512                  .removeAttr("href")
3513                  .addClass("cart-call");
3514                $("#basket_line .cart").removeClass("ecart");
3515                touchBasket(".cart:not(.empty_cart) .basket_block .link");
3516              }
3517
3518              reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y");
3519            } else if ($("#basket_line .basket_fly").length && $(window).outerWidth() > 768) {
3520              basketFly("open");
3521            }
3522          }
3523        },
3524      });
3525    }
3526  });
3527
3528  $(document).on("click", ".to-subscribe", function (e) {
3529    e.preventDefault();
3530    if ($(this).is(".auth")) {
3531      if ($(this).hasClass("nsubsc")) {
3532        $("body").append("<span class='evb-subs' style='display:none;'></span>");
3533        jqmEd("subscribe", "subscribe", ".evb-subs", "id=" + $(this).data("item"), this);
3534        $("body .evb-subs").click();
3535        $("body .evb-subs").remove();
3536      } else {
3537        location.href = arOptimusOptions["SITE_DIR"] + "auth/?backurl=" + location.pathname;
3538      }
3539    } else {
3540      var item = $(this).attr("data-item"),
3541        iblockid = $(this).attr("data-iblockid");
3542      $(this).hide();
3543      $(this).parent().find(".in-subscribe").show();
3544      $.get(
3545        arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
3546        $.proxy(function (data) {
3547          $(".wish_item[data-item=" + item + "]").removeClass("added");
3548          getActualBasket(iblockid);
3549        })
3550      );
3551    }
3552  });
3553
3554  $(document).on("click", ".in-subscribe", function (e) {
3555    e.preventDefault();
3556    var item = $(this).attr("data-item"),
3557      iblockid = $(this).attr("data-iblockid");
3558    $(this).hide();
3559    $(this).parent().find(".to-subscribe").show();
3560    $.get(
3561      arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
3562      $.proxy(function (data) {
3563        getActualBasket(iblockid);
3564      })
3565    );
3566  });
3567
3568  $(document).on("keyup", function (e) {
3569    if (e.keyCode == 27) {
3570      if ($(".jqmWindow").length) {
3571        $(".jqmWindow").jqmHide();
3572      }
3573    }
3574  });
3575
3576  $(document).on("click", ".wish_item", function (e) {
3577    e.preventDefault();
3578    var val = $(this).attr("data-quantity"),
3579      offer = $(this).data("offers"),
3580      iblockid = $(this).data("iblock"),
3581      tmp_props = $(this).data("props"),
3582      props = "",
3583      item = $(this).attr("data-item");
3584    item2 = $(this).attr("data-item");
3585    if (!val) $val = 1;
3586    if (offer != "Y") offer = "N";
3587    if (tmp_props) {
3588      props = tmp_props.split(";");
3589    }
3590    if (!$(this).hasClass("text")) {
3591      if ($(this).hasClass("added")) {
3592        $(this).hide();
3593        $(this).closest(".wish_item_button").find(".to").show();
3594
3595        $(".like_icons").each(function () {
3596          if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) {
3597            $(this)
3598              .find('.wish_item.text[data-item="' + item + '"]')
3599              .removeClass("added");
3600            $(this)
3601              .find('.wish_item.text[data-item="' + item + '"]')
3602              .find(".value")
3603              .show();
3604            $(this)
3605              .find('.wish_item.text[data-item="' + item + '"]')
3606              .find(".value.added")
3607              .hide();
3608          }
3609          if ($(this).find(".wish_item_button").length) {
3610            $(this)
3611              .find(".wish_item_button")
3612              .find('.wish_item[data-item="' + item + '"]')
3613              .removeClass("added");
3614            $(this)
3615              .find(".wish_item_button")
3616              .find('.wish_item[data-item="' + item + '"]')
3617              .find(".value")
3618              .show();
3619            $(this)
3620              .find(".wish_item_button")
3621              .find('.wish_item[data-item="' + item + '"]')
3622              .find(".value.added")
3623              .hide();
3624          }
3625        });
3626      } else {
3627        $(this).hide();
3628        $(this).closest(".wish_item_button").find(".in").addClass("added").show();
3629
3630        $(".like_icons").each(function () {
3631          if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) {
3632            $(this)
3633              .find('.wish_item.text[data-item="' + item + '"]')
3634              .addClass("added");
3635            $(this)
3636              .find('.wish_item.text[data-item="' + item + '"]')
3637              .find(".value")
3638              .hide();
3639            $(this)
3640              .find('.wish_item.text[data-item="' + item + '"]')
3641              .find(".value.added")
3642              .css({ display: "block" });
3643          }
3644          if ($(this).find(".wish_item_button").length) {
3645            $(this)
3646              .find(".wish_item_button")
3647              .find('.wish_item[data-item="' + item + '"]')
3648              .addClass("added");
3649            $(this)
3650              .find(".wish_item_button")
3651              .find('.wish_item[data-item="' + item + '"]')
3652              .find(".value")
3653              .hide();
3654            $(this)
3655              .find(".wish_item_button")
3656              .find('.wish_item[data-item="' + item + '"]')
3657              .find(".value.added")
3658              .show();
3659          }
3660        });
3661      }
3662    } else {
3663      if (!$(this).hasClass("added")) {
3664        $(".wish_item[data-item=" + item + "]").addClass("added");
3665        $(".wish_item[data-item=" + item + "]")
3666          .find(".value")
3667          .hide();
3668        $(".wish_item[data-item=" + item + "]")
3669          .find(".value.added")
3670          .css("display", "block");
3671
3672        $(".like_icons").each(function () {
3673          if ($(this).find(".wish_item_button").length) {
3674            $(this)
3675              .find(".wish_item_button")
3676              .find('.wish_item[data-item="' + item + '"]')
3677              .addClass("added");
3678            $(this)
3679              .find(".wish_item_button")
3680              .find('.wish_item[data-item="' + item + '"]')
3681              .find(".value")
3682              .hide();
3683            $(this)
3684              .find(".wish_item_button")
3685              .find('.wish_item[data-item="' + item + '"]')
3686              .find(".value.added")
3687              .show();
3688          }
3689        });
3690      } else {
3691        $(".wish_item[data-item=" + item + "]").removeClass("added");
3692        $(".wish_item[data-item=" + item + "]")
3693          .find(".value")
3694          .show();
3695        $(".wish_item[data-item=" + item + "]")
3696          .find(".value.added")
3697          .hide();
3698
3699        $(".like_icons").each(function () {
3700          if ($(this).find(".wish_item_button").length) {
3701            $(this)
3702              .find(".wish_item_button")
3703              .find('.wish_item[data-item="' + item + '"]')
3704              .removeClass("added");
3705            $(this)
3706              .find(".wish_item_button")
3707              .find('.wish_item[data-item="' + item + '"]')
3708              .find(".value")
3709              .show();
3710            $(this)
3711              .find(".wish_item_button")
3712              .find('.wish_item[data-item="' + item + '"]')
3713              .find(".value.added")
3714              .hide();
3715          }
3716        });
3717      }
3718    }
3719
3720    $(".in-cart[data-item=" + item + "]").hide();
3721    $(".to-cart[data-item=" + item + "]")
3722      .parent()
3723      .removeClass("wide");
3724    $(".to-cart[data-item=" + item + "]").show();
3725    $(".counter_block[data-item=" + item + "]").show();
3726    if (
3727      !$(".counter_block[data-item=" + item + "]")
3728        .closest(".counter_wrapp")
3729        .find(".to-order").length
3730    ) {
3731      $(".to-cart[data-item=" + item + "]").show();
3732      $(".counter_block[data-item=" + item + "]").show();
3733    }
3734    if (!$(this).closest(".module-cart").length) {
3735      $.ajax({
3736        type: "GET",
3737        url: arOptimusOptions["SITE_DIR"] + "ajax/item.php",
3738        data:
3739          "item=" +
3740          item2 +
3741          "&quantity=" +
3742          val +
3743          "&wish_item=Y" +
3744          "&offers=" +
3745          offer +
3746          "&iblockID=" +
3747          iblockid +
3748          "&props=" +
3749          JSON.stringify(props),
3750        dataType: "json",
3751        success: function (data) {
3752          getActualBasket(iblockid);
3753          if (data !== null) {
3754            if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
3755            if ("STATUS" in data) {
3756              if (data.STATUS === "OK") {
3757                if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
3758                  var eventdata = { goal: "goal_wish_add", params: { id: item2 } };
3759                  BX.onCustomEvent("onCounterGoals", [eventdata]);
3760                }
3761                if ($("#basket_line .cart").length) {
3762                  reloadTopBasket("wish", $("#basket_line"), 200, 5000, "N");
3763                } else {
3764                  basketFly("wish");
3765                }
3766              } else {
3767                showBasketError(
3768                  BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT,
3769                  BX.message("ERROR_ADD_DELAY_ITEM")
3770                );
3771              }
3772            } else {
3773              showBasketError(
3774                BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT,
3775                BX.message("ERROR_ADD_DELAY_ITEM")
3776              );
3777            }
3778          } else {
3779            if ($("#basket_line .cart").length) {
3780              reloadTopBasket("wish", $("#basket_line"), 200, 5000, "N");
3781            } else {
3782              basketFly("wish");
3783            }
3784          }
3785        },
3786      });
3787    }
3788  });
3789
3790  $(document).on("click", ".compare_item", function (e) {
3791    e.preventDefault();
3792    var item = $(this).attr("data-item");
3793    var iblockID = $(this).attr("data-iblock");
3794    if (!$(this).hasClass("text")) {
3795      if ($(this).hasClass("added")) {
3796        $(this).hide();
3797        $(this).closest(".compare_item_button").find(".to").show();
3798
3799        /*sync other button*/
3800        $(".like_icons").each(function () {
3801          if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) {
3802            $(this)
3803              .find('.compare_item.text[data-item="' + item + '"]')
3804              .removeClass("added");
3805            $(this)
3806              .find('.compare_item.text[data-item="' + item + '"]')
3807              .find(".value")
3808              .show();
3809            $(this)
3810              .find('.compare_item.text[data-item="' + item + '"]')
3811              .find(".value.added")
3812              .hide();
3813          }
3814          if ($(this).find(".compare_item_button").length) {
3815            $(this)
3816              .find(".compare_item_button")
3817              .find('.compare_item[data-item="' + item + '"]')
3818              .removeClass("added");
3819            $(this)
3820              .find(".compare_item_button")
3821              .find('.compare_item[data-item="' + item + '"]')
3822              .find(".value")
3823              .show();
3824            $(this)
3825              .find(".compare_item_button")
3826              .find('.compare_item[data-item="' + item + '"]')
3827              .find(".value.added")
3828              .hide();
3829          }
3830        });
3831      } else {
3832        $(this).hide();
3833        $(this).closest(".compare_item_button").find(".in").show();
3834
3835        /*sync other button*/
3836        $(".like_icons").each(function () {
3837          if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) {
3838            $(this)
3839              .find('.compare_item.text[data-item="' + item + '"]')
3840              .addClass("added");
3841            $(this)
3842              .find('.compare_item.text[data-item="' + item + '"]')
3843              .find(".value")
3844              .hide();
3845            $(this)
3846              .find('.compare_item.text[data-item="' + item + '"]')
3847              .find(".value.added")
3848              .css({ display: "block" });
3849          }
3850          if ($(this).find(".compare_item_button").length) {
3851            $(this)
3852              .find(".compare_item_button")
3853              .find('.compare_item[data-item="' + item + '"]')
3854              .addClass("added");
3855            $(this)
3856              .find(".compare_item_button")
3857              .find('.compare_item[data-item="' + item + '"]')
3858              .find(".value.added")
3859              .show();
3860            $(this)
3861              .find(".compare_item_button")
3862              .find('.compare_item[data-item="' + item + '"]')
3863              .find(".value")
3864              .hide();
3865          }
3866        });
3867      }
3868    } else {
3869      if (!$(this).hasClass("added")) {
3870        $(".compare_item[data-item=" + item + "]").addClass("added");
3871        $(".compare_item[data-item=" + item + "]")
3872          .find(".value")
3873          .hide();
3874        $(".compare_item[data-item=" + item + "]")
3875          .find(".value.added")
3876          .css("display", "block");
3877
3878        /*sync other button*/
3879        $(".like_icons").each(function () {
3880          if ($(this).find(".compare_item_button").length) {
3881            $(this)
3882              .find(".compare_item_button")
3883              .find('.compare_item[data-item="' + item + '"]')
3884              .addClass("added");
3885            $(this)
3886              .find(".compare_item_button")
3887              .find('.compare_item[data-item="' + item + '"]')
3888              .find(".value.added")
3889              .show();
3890            $(this)
3891              .find(".compare_item_button")
3892              .find('.compare_item[data-item="' + item + '"]')
3893              .find(".value")
3894              .hide();
3895          }
3896        });
3897      } else {
3898        $(".compare_item[data-item=" + item + "]").removeClass("added");
3899        $(".compare_item[data-item=" + item + "]")
3900          .find(".value")
3901          .show();
3902        $(".compare_item[data-item=" + item + "]")
3903          .find(".value.added")
3904          .hide();
3905
3906        /*sync other button*/
3907        $(".like_icons").each(function () {
3908          if ($(this).find(".compare_item_button").length) {
3909            $(this)
3910              .find(".compare_item_button")
3911              .find('.compare_item[data-item="' + item + '"]')
3912              .removeClass("added");
3913            $(this)
3914              .find(".compare_item_button")
3915              .find('.compare_item[data-item="' + item + '"]')
3916              .find(".value")
3917              .show();
3918            $(this)
3919              .find(".compare_item_button")
3920              .find('.compare_item[data-item="' + item + '"]')
3921              .find(".value.added")
3922              .hide();
3923          }
3924        });
3925      }
3926    }
3927
3928    $.get(
3929      arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&compare_item=Y&iblock_id=" + iblockID,
3930      $.proxy(function (data) {
3931        getActualBasket(iblockID, "Comapre");
3932        jsAjaxUtil.InsertDataToNode(
3933          arOptimusOptions["SITE_DIR"] + "ajax/show_compare_preview_top.php",
3934          "compare_line",
3935          false
3936        );
3937        if ($("#compare_fly").length) {
3938          jsAjaxUtil.InsertDataToNode(
3939            arOptimusOptions["SITE_DIR"] + "ajax/show_compare_preview_fly.php",
3940            "compare_fly",
3941            false
3942          );
3943        }
3944      })
3945    );
3946  });
3947
3948  const handlePinchZoomiOS = function(e) {
3949    e.preventDefault();
3950  }
3951
3952  const $viewport = document.querySelector('meta[name=viewport]');
3953  var metaViewport;
3954
3955  const handlePinchZoom = function(add) {
3956    const $html = document.querySelector('html');
3957
3958    if (!!~$html.className.indexOf('bx-core')) {
3959      if (!metaViewport) {
3960        metaViewport = Object.fromEntries($viewport.getAttribute('content').split(',').map(function(el) {
3961          return el.trim().split('=');
3962        }));
3963      }
3964
3965      const handleMetaViewport = function(add) {
3966        let viewportData = Object.assign({}, metaViewport);
3967
3968        if (add) {
3969          viewportData['maximum-scale'] = 1;
3970          viewportData['user-scalable'] = 'no';
3971        }
3972
3973        viewportData = Object.keys(viewportData).map(function(el) {
3974          return el + '=' + viewportData[el];
3975        }).join(', ');
3976
3977        $viewport.setAttribute('content', viewportData);
3978      }
3979
3980      if (add) {
3981        if (!!~$html.className.indexOf('bx-ios')) {
3982          document.addEventListener('gesturestart', handlePinchZoomiOS);
3983        } else {
3984          handleMetaViewport(true);
3985        }
3986      } else {
3987        if (!!~$html.className.indexOf('bx-ios')) {
3988          document.removeEventListener('gesturestart', handlePinchZoomiOS);
3989        } else {
3990          handleMetaViewport();
3991        }
3992      }
3993    }
3994  }
3995
3996  initFancybox();
3997
3998  $(".tabs>li").on("click", function () {
3999    if (!$(this).hasClass("active")) {
4000      var sliderIndex = $(this).index(),
4001        curLiNav = $(this)
4002          .closest(".top_blocks")
4003          .find(".slider_navigation")
4004          .find(">li").eq(sliderIndex),
4005        curLi = $(this)
4006          .closest(".top_blocks")
4007          .siblings(".tabs_content")
4008          .find(">li").eq(sliderIndex);
4009      $(this).addClass("active").addClass("cur").siblings().removeClass("active").removeClass("cur");
4010      curLi.addClass("cur").siblings().removeClass("cur");
4011      curLiNav.addClass("cur").siblings().removeClass("cur");
4012
4013      // //equal height
4014      // curLi
4015      //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title")
4016      //   .sliceHeight({ item: ".catalog_item:visible", resize: false, mobile: true });
4017      // curLi
4018      //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible")
4019      //   .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", resize: false, mobile: true });
4020      // curLi
4021      //   .find(".catalog_block .catalog_item_wrapp .catalog_item:visible")
4022      //   .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", resize: false, mobile: true });
4023    }
4024  });
4025
4026  /*search click*/
4027  $(".search_block .icon").on("click", function () {
4028    var th = $(this);
4029    if ($(this).hasClass("open")) {
4030      $(this).closest(".center_block").find(".search_middle_block").removeClass("active");
4031      $(this).removeClass("open");
4032      $(this).closest(".center_block").find(".search_middle_block").find(".noborder").hide();
4033    } else {
4034      setTimeout(function () {
4035        th.closest(".center_block").find(".search_middle_block").find(".noborder").show();
4036      }, 100);
4037      $(this).closest(".center_block").find(".search_middle_block").addClass("active");
4038      $(this).addClass("open");
4039    }
4040  });
4041  $(document).on("mouseenter", ".display_list .item_wrap", function () {
4042    $(this).prev().addClass("prev");
4043  });
4044  $(document).on("mouseleave", ".display_list .item_wrap", function () {
4045    $(this).prev().removeClass("prev");
4046  });
4047  $(document).on("mouseenter", ".catalog_block .item_wrap", function () {
4048    $(this).addClass("shadow_delay");
4049  });
4050  $(document).on("mouseleave", ".catalog_block .item_wrap", function () {
4051    $(this).removeClass("shadow_delay");
4052  });
4053  $(document).on("click", ".no_goods .button", function () {
4054    $(".bx_filter .smartfilter .bx_filter_search_reset").trigger("click");
4055  });
4056
4057  $(document).on("click", ".ajax_load_btn", function () {
4058    var url = $(this).closest(".container").find(".module-pagination .flex-direction-nav .flex-next").attr("href"),
4059      th = $(this).find(".more_text_ajax");
4060
4061    var objUrl = parseUrlQuery(),
4062      add_url = "",
4063      bTabsBlock = false,
4064      obGetData = { ajax_get: "Y", AJAX_REQUEST: "Y" };
4065
4066    th.addClass("loading");
4067
4068    /*hit on front*/
4069    if (th.closest(".tab_slider_wrapp.specials").length) {
4070      var curLi = $(this).closest(".tab"),
4071        url = th.closest(".tabs_content").data("url");
4072
4073      bTabsBlock = true;
4074      obGetData.AJAX_POST = "Y";
4075      obGetData.FILTER_HIT_PROP = curLi.data("code");
4076      obGetData.AJAX_PARAMS = $(this).closest(".tab_slider_wrapp").find(".request-data").data("value");
4077      obGetData.GLOBAL_FILTER = curLi.data("filter");
4078
4079      add_url = "?PAGEN_1=" + curLi.find(".nav-inner-wrapper").data("page");
4080    }
4081    /**/
4082
4083    if ("clear_cache" in objUrl) {
4084      if (objUrl.clear_cache == "Y") {
4085        add_url += (add_url.length ? "&" : "?") + "clear_cache=Y";
4086      }
4087    }
4088
4089    $.ajax({
4090      url: url + add_url,
4091      // data: {"ajax_get": "Y"},
4092      data: obGetData,
4093      type: bTabsBlock ? "POST" : "GET",
4094      success: function (html) {
4095        var new_html = $.parseHTML(html);
4096        th.removeClass("loading");
4097
4098        /*hit on front*/
4099        if (th.closest(".tab_slider_wrapp.specials").length) {
4100          curLi.find(".catalog_block").append(html);
4101          curLi.find(".catalog_block .wrap_nav").remove();
4102
4103          // curLi
4104          //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title")
4105          //   .sliceHeight({ item: ".catalog_item:visible", mobile: true });
4106          // curLi
4107          //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible")
4108          //   .sliceHeight({ item: ".catalog_item:visible", mobile: true });
4109          // curLi
4110          //   .find(".catalog_block .catalog_item_wrapp .catalog_item:visible")
4111          //   .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", mobile: true });
4112
4113          curLi.find(".bottom_nav").html($(html).find(".bottom_nav").html());
4114        } else {
4115          if ($(".display_list").length) {
4116            $(".display_list").append(html);
4117          } else if ($(".block_list").length) {
4118            $(".block_list").append(html);
4119            touchItemBlock(".catalog_item a");
4120          } else if ($(".module_products_list").length) {
4121            $(".module_products_list > tbody").append(html);
4122          }
4123          $(".bottom_nav").html($(html).find(".bottom_nav").html());
4124        }
4125        setStatusButton();
4126        initCountdown();
4127        showTotalSummItem();
4128        BX.onCustomEvent("onAjaxSuccess");
4129      },
4130    });
4131  });
4132
4133  $(document).on("click", ".bx_compare .tabs-head li", function () {
4134    var url = $(this).find(".sortbutton").data("href");
4135    BX.showWait(BX("bx_catalog_compare_block"));
4136    $.ajax({
4137      url: url,
4138      data: { ajax_action: "Y" },
4139      success: function (html) {
4140        history.pushState(null, null, url);
4141        $("#bx_catalog_compare_block").html(html);
4142        BX.closeWait();
4143      },
4144    });
4145  });
4146  var hoveredTrs;
4147  $(document).on(
4148    {
4149      mouseover: function (e) {
4150        var _ = $(this);
4151        var tbodyIndex = _.closest("tbody").index() + 1; //+1 for nth-child
4152        var trIndex = _.index() + 1; // +1 for nth-child
4153        hoveredTrs = $(e.delegateTarget)
4154          .find(".data_table_props")
4155          .children(":nth-child(" + tbodyIndex + ")")
4156          .children(":nth-child(" + trIndex + ")")
4157          .addClass("hovered");
4158      },
4159      mouseleave: function (e) {
4160        if (hoveredTrs) hoveredTrs.removeClass("hovered");
4161      },
4162    },
4163    ".bx_compare .data_table_props tbody>tr"
4164  );
4165  $(document).on("click", ".fancy_offer", function (e) {
4166    e.preventDefault();
4167    var arPict = [];
4168    $(".sliders .slides_block li").each(function () {
4169      var obImg = {};
4170      obImg = {
4171        title: $(this).find("img").attr("alt"),
4172        href: $(this).data("big"),
4173      };
4174      if ($(this).hasClass("current")) {
4175        arPict.unshift(obImg);
4176      } else {
4177        arPict.push(obImg);
4178      }
4179    });
4180    $.fancybox(arPict, {
4181      openEffect: "fade",
4182      closeEffect: "fade",
4183      nextEffect: "fade",
4184      prevEffect: "fade",
4185      type: "image",
4186      tpl: {
4187        closeBtn:
4188          '<a title="' + BX.message("FANCY_CLOSE") + '" class="fancybox-item fancybox-close" href="javascript:;"></a>',
4189        next:
4190          '<a title="' +
4191          BX.message("FANCY_NEXT") +
4192          '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
4193        prev:
4194          '<a title="' +
4195          BX.message("FANCY_PREV") +
4196          '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
4197      },
4198      beforeLoad: function() {
4199        if (window.visualViewport.scale > 1) {
4200          return false;
4201        }
4202      },
4203      beforeShow: function() {
4204        handlePinchZoom(true);
4205      },
4206      beforeClose: function() {
4207        handlePinchZoom();
4208      }
4209    });
4210  });
4211
4212  /*tabs*/
4213  $(document).on("click", ".tabs_section .tabs-head li",  function(e, s) {
4214    if (!$(this).is(".current")) {
4215      $(".tabs_section .tabs-head li").removeClass("current");
4216      $(this).addClass("current");
4217      $(".tabs_section ul.tabs_content li").removeClass("current");
4218      if ($(this).attr("id") == "product_reviews_tab") {
4219        $(".shadow.common").hide();
4220        if (s === "slide") {
4221          $("#reviews_content").slideDown(200, function () {});
4222          $(".tabs_section ul.tabs_content > li")
4223            .not(":eq(" + $(this).index() + ")")
4224            .find("> div + div")
4225            .slideUp(200, function () {});
4226          var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4227          container.find("> div + div").slideDown(200, function () {
4228            container.addClass("current");
4229          });
4230        } else {
4231          $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")").addClass("current");
4232          $(".tabs_section ul.tabs_content > li")
4233            .not(":eq(" + $(this).index() + ")")
4234            .find("> div + div")
4235            .hide();
4236          $("#for_product_reviews_tab").show();
4237          $("#reviews_content").show();
4238        }
4239      } else {
4240        $(".shadow.common").show();
4241        if (s === "slide") {
4242          $(".tabs_section ul.tabs_content > li")
4243            .not(":eq(" + $(this).index() + ")")
4244            .find("> div + div")
4245            .slideUp(200, function () {});
4246          var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4247          container.find("> div + div").slideDown(200, function () {
4248            container.addClass("current");
4249          });
4250        } else {
4251          $("#reviews_content").hide();
4252          $(".tabs_section ul.tabs_content > li > div + div").hide();
4253          var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4254          container.addClass("current");
4255          container.find("> div + div").show();
4256        }
4257      }
4258    } else if (s === "slide") {
4259      var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4260      container.find("> div + div").slideUp(200, function () {
4261        $(".tabs_section .tabs-head li").removeClass("current");
4262        $(".tabs_section ul.tabs_content li").removeClass("current");
4263      });
4264    }
4265  });
4266  $(document).on("click", ".tabs_section .tabs-body li .title-tab-heading",  function () {
4267    const tabIndex = $(this).closest("li").index(".tabs_section .tabs-body li[role='tabpanel']");
4268    $(".tabs_section .tabs-head li").eq(tabIndex).trigger("click", "slide");
4269  });
4270  /*open first section slide*/
4271  setTimeout(function () {
4272    $(".jobs_wrapp .item:first .name tr").trigger("click");
4273  }, 300);
4274
4275  $(document).on("click", ".buy_block .slide_offer", function () {
4276    scroll_block($(".tabs_section"));
4277  });
4278  $(".share_wrapp .text").on("click", function () {
4279    $(this).parent().find(".shares").fadeToggle();
4280  });
4281  $(document).on("mousedown", "html, body",  function (e) {
4282    e.stopPropagation();
4283    $(".shares").fadeOut();
4284    $(".search_middle_block").removeClass("active_wide");
4285  });
4286  // $(".share_wrapp")
4287  //   .find("*")
4288  //   .on("mousedown", function (e) {
4289  //     e.stopPropagation();
4290  //   });
4291
4292  $(document).on("mousedown", ".share_wrapp *", function (e) {
4293    e.stopPropagation();
4294  });
4295
4296  $(document).on("click", ".reviews-collapse-link", function () {
4297    $(".reviews-reply-form").slideToggle();
4298  });
4299
4300  initCountdown();
4301
4302  /*adaptive menu start*/
4303  $(".menu.adaptive").on("click", function () {
4304    $(this).toggleClass("opened");
4305    if ($(this).hasClass("opened")) {
4306      $(".mobile_menu").toggleClass("opened").slideDown();
4307    } else {
4308      $(".mobile_menu").toggleClass("opened").slideUp();
4309    }
4310  });
4311  /*$('.mobile_menu .has-child >a').on('click', function(e){
4312		var parentLi=$(this).parent();
4313		e.preventDefault();
4314		parentLi.toggleClass('opened');
4315		parentLi.find('.dropdown').slideToggle();
4316	})*/
4317
4318  $(".mobile_menu .has-child >div.toggle_mobile_menu").on("click", function (e) {
4319    var parentLi = $(this).parent();
4320    e.preventDefault();
4321    parentLi.toggleClass("opened");
4322    parentLi.find(".dropdown").slideToggle();
4323  });
4324
4325  $(document).on("keyup", ".mobile_menu .search-input-div input",  function (e) {
4326    var inputValue = $(this).val();
4327    $(".center_block .stitle_form input").val(inputValue);
4328    if (e.keyCode == 13) {
4329      $(".center_block .stitle_form form").submit();
4330    }
4331  });
4332
4333  $(document).on("keyup", ".center_block .stitle_form input",  function (e) {
4334    var inputValue = $(this).val();
4335    $(".mobile_menu .search-input-div input").val(inputValue);
4336    if (e.keyCode == 13) {
4337      $(".center_block .stitle_form form").submit();
4338    }
4339  });
4340
4341  $(document).on("click", ".mobile_menu .search-button-div button",  function (e) {
4342    e.preventDefault();
4343    var inputValue = $(this).parents().find("input").val();
4344    $(".center_block .stitle_form input").val(inputValue);
4345    $(".center_block .stitle_form form").submit();
4346  });
4347  /*adaptive menu end*/
4348
4349  $(".btn.btn-add").on("click", function () {
4350    $.ajax({
4351      type: "GET",
4352      url: arOptimusOptions["SITE_DIR"] + "ajax/clearBasket.php",
4353      success: function (data) {},
4354    });
4355  });
4356
4357  //set cookie for basket link click
4358  $(document).on(
4359    "click",
4360    ".bx_ordercart_order_table_container .control > a, .basket-item-actions-remove, a[data-entity=basket-item-remove-delayed]",
4361    function (e) {
4362      $.removeCookie("click_basket", { path: "/" });
4363      $.cookie("click_basket", "Y", { path: "/" });
4364    }
4365  );
4366
4367  /*detail order show payments*/
4368  $(".sale-order-detail-payment-options-methods-info-change-link").on("click", function () {
4369    $(this).closest(".sale-order-detail-payment-options-methods-info").addClass("opened").siblings().addClass("opened");
4370  });
4371
4372  /*expand/hide filter values*/
4373  $(document).on("click", ".expand_block", function () {
4374    togglePropBlock($(this));
4375  });
4376
4377  /*touch event*/
4378  document.addEventListener(
4379    "touchend",
4380    function (event) {
4381      if (!$(event.target).closest(".menu_item_l1").length) {
4382        $(".menu .menu_item_l1 .child").css({ display: "none" });
4383        $(".menu_item_l1").removeClass("hover");
4384      }
4385      if (!$(event.target).closest(".basket_block").length) {
4386        $(".basket_block .link").removeClass("hover");
4387        $(".basket_block .basket_popup_wrapp").slideUp();
4388      }
4389      if (!$(event.target).closest(".catalog_item").length) {
4390        var tabsContentUnhoverHover = $(".tab:visible").attr("data-unhover") * 1;
4391        if (tabsContentUnhoverHover) $(".tab:visible").stop().animate({ height: tabsContentUnhoverHover }, 100);
4392        $(".tab:visible").find(".catalog_item").removeClass("hover");
4393        $(".tab:visible").find(".catalog_item .buttons_block").stop().fadeOut(233);
4394        if ($(".catalog_block").length) {
4395          $(".catalog_block").find(".catalog_item").removeClass("hover");
4396          //$('.catalog_block').find('.catalog_item').blur();
4397        }
4398      }
4399      //togglePropBlock($(event.target));
4400    },
4401    false
4402  );
4403
4404  //touchItemBlock('.catalog_item a');
4405
4406  $(document).on("keyup", ".coupon .input_coupon input", function () {
4407    if ($(this).val().length) {
4408      $(this).removeClass("error");
4409      $(this).closest(".input_coupon").find(".error").remove();
4410    } else {
4411      $(this).addClass("error");
4412      $("<label class='error'>" + BX.message("INPUT_COUPON") + "</label>").insertBefore($(this));
4413    }
4414  });
4415  showPhoneMask("input[autocomplete=tel]");
4416  BX.addCustomEvent(window, "onAjaxSuccess", function (e) {
4417    if (e != "OK") {
4418      initSelects(document);
4419      // InitLabelAnimation('#bx-soa-order-form');
4420      InitOrderCustom();
4421      showPhoneMask("input[autocomplete=tel]");
4422      if ($("#content > .catalog_detail").length) {
4423        $(".bx_filter").remove();
4424      }
4425
4426      InitFlexSlider();
4427
4428      if (arOptimusOptions["PAGES"]["CATALOG_PAGE"]) {
4429        setStatusButton();
4430        initCountdown();
4431      }
4432
4433      if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) {
4434        orderActions(e);
4435      }
4436    }
4437  });
4438  BX.addCustomEvent(window, "onFrameDataRequestFail", function (response) {
4439    console.log(response);
4440  });
4441
4442  $.fn.iAppear = function (callback, options) {
4443    if (typeof $.fn.iAppear.useObserver === "undefined") {
4444        $.fn.iAppear.useObserver =
4445            typeof window["IntersectionObserver"] === "function";
4446
4447        if (!$.fn.iAppear.useObserver && typeof $.fn.appear !== "function") {
4448            $.fn.iAppear.queue = [];
4449            BX.loadScript(
4450              arOptimusOptions.SITE_TEMPLATE_PATH +
4451                    "/vendor/js/jquery.appear.js",
4452                function () {
4453                    if (typeof $.fn.iAppear.queue === "object") {
4454                        $.fn.iAppear.queue.forEach(function (queueItem) {
4455                            $(queueItem.items).iAppear(
4456                                queueItem.callback,
4457                                queueItem.options
4458                            );
4459                        });
4460                    }
4461                }
4462            );
4463
4464            return;
4465        }
4466    }
4467
4468    if ($.fn.iAppear.useObserver) {
4469        var options = $.extend(
4470            {
4471                root: null,
4472                rootMargin: "150px 0px 150px 0px",
4473                threshold: 0.0,
4474            },
4475            options
4476        );
4477
4478        $(this).each(function (i, appearBlock) {
4479            var observer = new IntersectionObserver(function (
4480                entries,
4481                observer
4482            ) {
4483                entries.forEach(function (element) {
4484                    if (
4485                        element.intersectionRatio > 0 &&
4486                        !element.target.dataset.iAppeared
4487                    ) {
4488                        element.target.dataset.iAppeared = true;
4489
4490                        if (typeof callback === "function") {
4491                            callback.call(element.target);
4492                        }
4493                    }
4494                });
4495            },
4496            options);
4497
4498            observer.observe(appearBlock);
4499        });
4500    } else {
4501        if (typeof $.fn.appear !== "function") {
4502            if ($(this).length) {
4503                $.fn.iAppear.queue.push({
4504                    items: this,
4505                    callback: callback,
4506                    options: options,
4507                });
4508            }
4509
4510            return;
4511        } else {
4512            if ($(this).length) {
4513                $(this).each(function (i, appearBlock) {
4514                    $(appearBlock).appear(function () {
4515                        if (typeof callback === "function") {
4516                            callback.call(appearBlock);
4517                        }
4518                    }, options);
4519                });
4520            }
4521        }
4522    }
4523  };
4524
4525  if ($(".appear-block").length) {
4526    $(".appear-block").iAppear(
4527      function () {
4528        const eventdata = { target: this };
4529        BX.onCustomEvent("onAppearVideoBlockShow", [eventdata]);
4530        var $this = $(this);
4531        $this.removeClass("appear-block");
4532        $this.find(".appear-block").removeClass("appear-block");
4533      },
4534      {
4535        rootMargin: "150px 0px 150px 0px",
4536        accX: 0,
4537        accY: 150,
4538      }
4539    )
4540  }
4541});
4542
4543if (!funcDefined("initFancybox")) {
4544  function initFancybox() {
4545    if (typeof $.fn.fancybox !== "function") {
4546      return;
4547    }
4548
4549    $(".fancy").fancybox({
4550      openEffect: "fade",
4551      closeEffect: "fade",
4552      nextEffect: "fade",
4553      prevEffect: "fade",
4554      tpl: {
4555        closeBtn:
4556          '<a title="' + BX.message("FANCY_CLOSE") + '" class="fancybox-item fancybox-close" href="javascript:;"></a>',
4557        next:
4558          '<a title="' +
4559          BX.message("FANCY_NEXT") +
4560          '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
4561        prev:
4562          '<a title="' +
4563          BX.message("FANCY_PREV") +
4564          '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
4565      },
4566    });
4567  }
4568}
4569
4570if (!funcDefined("togglePropBlock")) {
4571  togglePropBlock = function (className) {
4572    var all_props_block = className.closest(".bx_filter_parameters_box_container").find(".hidden_values");
4573    if (all_props_block.length && (className.hasClass("inner_text") || className.hasClass("expand_block"))) {
4574      if (all_props_block.is(":visible")) {
4575        className.text(BX.message("FILTER_EXPAND_VALUES"));
4576        all_props_block.hide();
4577      } else {
4578        className.text(BX.message("FILTER_HIDE_VALUES"));
4579        all_props_block.show();
4580      }
4581    }
4582  };
4583}
4584
4585if (!funcDefined("showPhoneMask")) {
4586  showPhoneMask = function (className) {
4587    $(className).not('input[id^="b24-"]').inputmask("mask", { mask: arOptimusOptions["THEME"]["PHONE_MASK"], showMaskOnHover: false });
4588	let emptys = $('input[autocomplete="tel"][id^="b24-"]').filter(function() {
4589		return $.trim($(this).val()) === '';
4590	});
4591	emptys.val('+7 (').addClass('b24-form-control-not-empty');
4592  };
4593}
4594
4595if (!funcDefined("parseUrlQuery")) {
4596  parseUrlQuery = function () {
4597    var data = {};
4598    if (location.search) {
4599      var pair = location.search.substr(1).split("&");
4600      for (var i = 0; i < pair.length; i++) {
4601        var param = pair[i].split("=");
4602        data[param[0]] = param[1];
4603      }
4604    }
4605    return data;
4606  };
4607}
4608
4609if (!funcDefined("getActualBasket")) {
4610  getActualBasket = function (iblockID, type) {
4611    var data = "";
4612    if (typeof iblockID !== "undefined") {
4613      data = { iblockID: iblockID };
4614    }
4615    $.ajax({
4616      type: "GET",
4617      url: arOptimusOptions["SITE_DIR"] + "ajax/actualBasket.php",
4618      data: data,
4619      success: function (data) {
4620        if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
4621        $(".js_ajax").html(data);
4622
4623        const eventdata = { action: "loadActualBasket" };
4624        BX.onCustomEvent("onCompleteAction", [eventdata]);
4625      },
4626    });
4627  };
4628}
4629
4630function touchMenu(selector) {
4631  if ($(window).outerWidth() > 600) {
4632    $(selector).each(function () {
4633      var th = $(this);
4634      th.on("touchend", function (e) {
4635        if (th.find(".child").length && !th.hasClass("hover")) {
4636          e.preventDefault();
4637          e.stopPropagation();
4638          th.siblings().removeClass("hover");
4639          th.addClass("hover");
4640          $(".menu .child").css({ display: "none" });
4641          th.find(".child").css({ display: "block" });
4642        }
4643      });
4644    });
4645  } else {
4646    $(selector).off();
4647  }
4648}
4649function touchItemBlock(selector) {
4650  $(selector).each(function () {
4651    var th = $(this),
4652      item = th.closest(".catalog_item");
4653    if (!th.closest(".best_block").length) {
4654      th.on("touchend", function (e) {
4655        if (!item.hasClass("hover")) {
4656          e.preventDefault();
4657          // e.stopPropagation();
4658          item.siblings().removeClass("hover");
4659          item.siblings().blur();
4660          item.closest(".catalog_block").find(".catalog_item").removeClass("hover");
4661          item.addClass("hover");
4662          item.addClass("touch");
4663
4664          var tabsContentHover = th.closest(".tab").attr("data-hover") * 1,
4665            tabsContentUnhoverHover = th.closest(".tab").attr("data-unhover") * 1;
4666
4667          th.closest(".tab").stop().animate({ height: tabsContentUnhoverHover }, 100);
4668          th.closest(".catalog_item").siblings().find(".buttons_block").stop().fadeOut(233);
4669
4670          th.closest(".tab").fadeTo(100, 1);
4671          th.closest(".tab").stop().css({ height: tabsContentHover });
4672          th.closest(".catalog_item").find(".buttons_block").fadeIn(450, "easeOutCirc");
4673        }
4674      });
4675    }
4676  });
4677}
4678function touchBasket(selector) {
4679  if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
4680    if ($(window).outerWidth() > 600) {
4681      $(document)
4682        .find(selector)
4683        .on("touchend", function (e) {
4684          if ($(this).parent().find(".basket_popup_wrapp").length && !$(this).hasClass("hover")) {
4685            e.preventDefault();
4686            e.stopPropagation();
4687            $(this).addClass("hover");
4688            $(this).parent().find(".basket_popup_wrapp").slideDown();
4689          }
4690        });
4691    } else {
4692      $(selector).off();
4693    }
4694  }
4695}
4696
4697function showTotalSummItem(popup) {
4698  //show total summ
4699  if (arOptimusOptions["THEME"]["SHOW_TOTAL_SUMM"] == "ALWAYS") {
4700    var parent = "body ";
4701    if (typeof popup === "string" && popup == "Y") parent = ".popup ";
4702    $(parent + ".counter_wrapp .counter_block input.text").each(function () {
4703      var _th = $(this);
4704
4705      if (_th.data("product")) {
4706        var obProduct = _th.data("product");
4707        if (typeof window[obProduct] == "object") window[obProduct].setPriceAction("Y");
4708        else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
4709      } else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
4710    });
4711  }
4712}
4713
4714function initFull() {
4715  initSelects(document);
4716  initHoverBlock(document);
4717  // touchItemBlock('.catalog_item a');
4718  // InitLabelAnimation('#bx-soa-order-form');
4719  InitOrderCustom();
4720  if (!$("html.print").length) checkStickyFooter();
4721  else window.print();
4722
4723  showTotalSummItem();
4724  basketActions();
4725  orderActions();
4726}
4727if (!funcDefined("orderActions")) {
4728  orderActions = function (e) {
4729    if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) {
4730      //phone
4731      if ($("#bx-soa-order input[autocomplete=tel]").length) {
4732        // get property phone
4733        for (var i = 0; i < BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties.length; ++i) {
4734          if (BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i].IS_PHONE == "Y") {
4735            var arPropertyPhone = BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i];
4736          }
4737        }
4738
4739        // validate input type=tel
4740        if (
4741          typeof BX.Sale.OrderAjaxComponent !== "undefined" &&
4742          typeof BX.Sale.OrderAjaxComponent === "object" &&
4743          typeof arPropertyPhone == "object" &&
4744          arPropertyPhone
4745        ) {
4746          BX.Sale.OrderAjaxComponent.validatePhone = function (input, arProperty, fieldName) {
4747            if (!input || !arProperty) return [];
4748
4749            var value = input.value,
4750              errors = [],
4751              name = BX.util.htmlspecialchars(arProperty.NAME),
4752              field = BX.message("SOA_FIELD") + ' "' + name + '"',
4753              re;
4754
4755            if (arProperty.REQUIRED == "Y" && value.length == 0) {
4756              errors.push(field + " " + BX.message("SOA_REQUIRED"));
4757            }
4758
4759            if (arProperty.IS_PHONE == "Y" && value.length > 0) {
4760              function regexpPhone(value, element, regexp) {
4761                var re = new RegExp(regexp);
4762                return re.test(value);
4763              }
4764
4765              var validPhone = regexpPhone($(input).val(), $(input), arOptimusOptions["THEME"]["VALIDATE_PHONE_MASK"]);
4766
4767              if (!validPhone) {
4768                errors.push(field + " " + BX.message("JS_FORMAT_ORDER"));
4769              }
4770            }
4771
4772            return errors;
4773          };
4774
4775          BX.Sale.OrderAjaxComponent.getValidationDataPhone = function (arProperty, propContainer) {
4776            var data = {},
4777              inputs;
4778            switch (arProperty.TYPE) {
4779              case "STRING":
4780                data.action = "blur";
4781                data.func = BX.delegate(function (input, fieldName) {
4782                  return this.validatePhone(input, arProperty, fieldName);
4783                }, this);
4784
4785                inputs = propContainer.querySelectorAll("input[type=tel]");
4786                if ($(inputs).length) {
4787                  data.inputs = inputs;
4788                  break;
4789                }
4790            }
4791
4792            return data;
4793          };
4794
4795          BX.Sale.OrderAjaxComponent.bindValidationPhone = function (id, propContainer) {
4796            if (!this.validation.properties || !this.validation.properties[id]) return;
4797
4798            var arProperty = this.validation.properties[id],
4799              data = this.getValidationDataPhone(arProperty, propContainer),
4800              i,
4801              k;
4802
4803            if (data && data.inputs && data.action) {
4804              for (i = 0; i < $(data.inputs).length; i++) {
4805                if (BX.type.isElementNode(data.inputs[i])) {
4806                  BX.bind(
4807                    data.inputs[i],
4808                    data.action,
4809                    BX.delegate(function () {
4810                      this.isValidProperty(data);
4811                    }, this)
4812                  );
4813                } else {
4814                  for (k = 0; k < $(data.inputs[i]).length; k++)
4815                    BX.bind(
4816                      data.inputs[i][k],
4817                      data.action,
4818                      BX.delegate(function () {
4819                        this.isValidProperty(data);
4820                      }, this)
4821                    );
4822                }
4823              }
4824            }
4825          };
4826
4827          BX.Sale.OrderAjaxComponent.isValidPropertiesBlock = function (excludeLocation) {
4828            if (!this.options.propertyValidation) return [];
4829
4830            var props = this.orderBlockNode.querySelectorAll(".bx-soa-customer-field[data-property-id-row]"),
4831              propsErrors = [],
4832              id,
4833              propContainer,
4834              arProperty,
4835              data,
4836              i;
4837
4838            for (i = 0; i < props.length; i++) {
4839              id = props[i].getAttribute("data-property-id-row");
4840
4841              if (!!excludeLocation && this.locations[id]) continue;
4842
4843              propContainer = props[i].querySelector(".soa-property-container");
4844              if (propContainer) {
4845                arProperty = this.validation.properties[id];
4846                data = this.getValidationData(arProperty, propContainer);
4847                dataPhone = this.getValidationDataPhone(arProperty, propContainer);
4848                data = $.extend({}, data, dataPhone);
4849
4850                propsErrors = propsErrors.concat(this.isValidProperty(data, true));
4851              }
4852            }
4853
4854            return propsErrors;
4855          };
4856
4857          // create input type=tel
4858          var input = $("input[autocomplete=tel]"),
4859            inputHTML = input[0].outerHTML,
4860            value = input.val(),
4861            newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"');
4862
4863          if ($(input).length < 2) {
4864            input.hide();
4865            $(newInput).insertAfter(input);
4866          }
4867          showPhoneMask("input[autocomplete=tel][type=tel]");
4868
4869          // change value input type=text when change input type=tel
4870          $("input[autocomplete=tel][type=tel]").on("blur", function () {
4871            var $this = $(this);
4872
4873            var value = $this.val();
4874            $this.parent().find("input[autocomplete=tel][type=text]").val(value);
4875          });
4876
4877          BX.Sale.OrderAjaxComponent.bindValidationPhone(arPropertyPhone.ID, $("input[autocomplete=tel]").parent()[0]);
4878        }
4879      }
4880
4881      if ($(".bx-soa-cart-total").length) {
4882        if (!$(".change_basket").length)
4883          $(".bx-soa-cart-total").prepend(
4884            '<div class="change_basket">
4884' +
4885              BX.message("BASKET_CHANGE_TITLE") +
4886              '<a href="' +
4887              arOptimusOptions["SITE_DIR"] +
4888              'basket/" class="change_link">' +
4889              BX.message("BASKET_CHANGE_LINK") +
4890              "</a></div>"
4891          );
4892        if (typeof BX.Sale.OrderAjaxComponent == "object") {
4893          if (arOptimusOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
4894            if (typeof BX.Sale.OrderAjaxComponent.reachgoalbegin === "undefined") {
4895              BX.Sale.OrderAjaxComponent.reachgoalbegin = true;
4896              var eventdata = { goal: "goal_order_begin" };
4897              // BX.onCustomEvent('onCounterGoals', [eventdata])
4898            }
4899          }
4900
4901          // update oreder register form
4902          if ($(".bx-soa-section-content.reg").length && !$(".bx-soa-section-content.reg .redisigned").length) {
4903            var bRebindRegSubmit = false;
4904
4905            if (arOptimusOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") {
4906              bRebindRegSubmit = true;
4907
4908              // update input NEW_LOGIN
4909              if ($('input[name="NEW_LOGIN"]').length) {
4910                $('input[name="NEW_LOGIN"]').closest(".bx-authform-formgroup-container").hide();
4911              }
4912            }
4913
4914            if (bRebindRegSubmit) {
4915              // bind new handler for submit button
4916              var $regSubmit = $("#do_register~input[type=submit]");
4917              if ($regSubmit.length) {
4918                BX.unbindAll($regSubmit[0]);
4919                $(document).on("click", "#do_register~input[type=submit]", function (e) {
4920                  e.preventDefault();
4921                  e.stopImmediatePropagation();
4922
4923                  if (arOptimusOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") {
4924                    var email = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_EMAIL" } }, true, false);
4925                    var login = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_LOGIN" } }, true, false);
4926
4927                    if (login && email) {
4928                      login.value = email.value;
4929                    }
4930                  }
4931
4932                  BX("do_register").value = "Y";
4933                  BX.Sale.OrderAjaxComponent.sendRequest("showAuthForm");
4934                });
4935              }
4936            }
4937
4938            // update captcha
4939            var $captcha = $(".bx-soa-section-content.reg").find(".bx-captcha");
4940            if ($captcha.length) {
4941              $captcha.addClass("captcha_image");
4942              $captcha.append('<div class="captcha_reload"></div>');
4943              $captcha
4944                .closest(".bx-authform-formgroup-container")
4945                .addClass("captcha-row")
4946                .find("input[name=captcha_word]")
4947                .closest(".bx-authform-input-container")
4948                .addClass("captcha_input")
4949                BX.onCustomEvent("onRenderCaptcha")
4950            }
4951
4952            if ($("#bx-soa-order-form .captcha-row").length && window.asproRecaptcha.ver === "3") {
4953              if (typeof BX.Sale.OrderAjaxComponent.oldSendRequest === "undefined" && typeof BX.Sale.OrderAjaxComponent.sendRequest !== "undefined") {
4954                BX.Sale.OrderAjaxComponent.oldSendRequest = BX.Sale.OrderAjaxComponent.sendRequest;
4955                BX.Sale.OrderAjaxComponent.sendRequest = function (action, actionData) {
4956                  if ($("#bx-soa-order-form .captcha-row").length && typeof grecaptcha != "undefined") {
4957                    if (window.renderRecaptchaById && window.asproRecaptcha && window.asproRecaptcha.key) {
4958                      let form = BX("bx-soa-order-form");
4959                      grecaptcha
4960                        .execute(window.asproRecaptcha.key, { action: "maxscore" })
4961                        .then(function (token) {
4962                          const recaptchaResponse = form.querySelector(".g-recaptcha-response");
4963                          if (recaptchaResponse) {
4964                            recaptchaResponse.value = token;
4965                          }
4966                          BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData);
4967                        });
4968                    }
4969                  } else {
4970                    BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData);
4971                  }
4972                };
4973              }
4974            }
4975
4976            // update input NEW_NAME && NEW_LAST_NAME
4977            if ($("input[name=NEW_NAME]").length && $("input[name=NEW_LAST_NAME]").length) {
4978              if (!$("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container.col
4978-md-6").length) {
4979                $("input[name=NEW_NAME],input[name=NEW_LAST_NAME]")
4980                  .closest(".bx-authform-formgroup-container")
4981                  .addClass("col-md-6");
4982                var html = $("input[name=NEW_LAST_NAME]")
4983                  .closest(".bx-authform-formgroup-container")
4984                  .wrap('<div id="trem_"></div>')
4985                  .parent()
4986                  .html();
4987                $("#trem_").remove();
4988                $(html).insertAfter(
4989                  $("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>')
4990                );
4991              }
4992            }
4993
4994            // update input NEW_EMAIL && PHONE_NUMBER
4995            if ($("input[name=NEW_EMAIL]").length && $("input[name=PHONE_NUMBER]").length) {
4996              if (!$("input[name=PHONE_NUMBER]").closest(".bx-authform-formgroup-container.col-md-6").length) {
4997                $("input[name=NEW_EMAIL],input[name=PHONE_NUMBER]")
4998                  .closest(".bx-authform-formgroup-container")
4999                  .addClass("col-md-6");
5000                var html = $("input[name=PHONE_NUMBER]")
5001                  .closest(".bx-authform-formgroup-container")
5002                  .wrap('<div id="trem_"></div>')
5003                  .parent()
5004                  .html();
5005                $("#trem_").remove();
5006                $(html).insertAfter(
5007                  $("input[name=NEW_EMAIL]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>')
5008                );
5009              }
5010            }
5011
5012            // update input NEW_PASSWORD && NEW_PASSWORD_CONFIRM
5013            if ($("input[name=NEW_PASSWORD]").length && $("input[name=NEW_PASSWORD_CONFIRM]").length) {
5014              if (!$("input[name=NEW_PASSWORD]").closest(".bx-authform-formgroup-container.col
5014-md-6").length) {
5015                $("input[name=NEW_PASSWORD],input[name=NEW_PASSWORD_CONFIRM]")
5016                  .closest(".bx-authform-formgroup-container")
5017                  .addClass("col-md-6");
5018                var html = $("input[name=NEW_PASSWORD_CONFIRM]")
5019                  .closest(".bx-authform-formgroup-container")
5020                  .wrap('<div id="trem_"></div>')
5021                  .parent()
5022                  .html();
5023                $("#trem_").remove();
5024                $(html).insertAfter(
5025                  $("input[name=NEW_PASSWORD]")
5026                    .closest(".bx-authform-formgroup-container")
5027                    .wrap('<div class="row"></div>')
5028                );
5029              }
5030            }
5031
5032            // update input PHONE_NUMBER
5033            if ($("input[name=PHONE_NUMBER]").length) {
5034              var input = $("input[name=PHONE_NUMBER]"),
5035                inputHTML = input[0].outerHTML,
5036                value = input.val(),
5037                newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"');
5038
5039              if ($(input).length < 2) {
5040                input.hide();
5041                $(newInput).insertAfter(input);
5042
5043                showPhoneMask("input[name=PHONE_NUMBER][type=tel]");
5044
5045                $("input[name=PHONE_NUMBER][type=tel]").on("blur", function () {
5046                  var $this = $(this);
5047                  var value = $this.val();
5048                  $this.parent().find("input[name=PHONE_NUMBER][type=text]").val(value);
5049                });
5050
5051                var $label = $("input[name=PHONE_NUMBER][type=tel]")
5052                  .closest(".bx-authform-formgroup-container")
5053                  .find(".bx-authform-label-container");
5054                $label.html(
5055                  BX.message("ORDER_PHONE_LABEL") +
5056                    ($label.find(".bx-authform-starrequired").length
5057                      ? '<span class="bx-authform-starrequired"> *</span>'
5058                      : "")
5059                );
5060              }
5061            }
5062
5063            $(".bx-soa-section-content.reg").append('<div class="redisigned hidden></div>');
5064          }
5065
5066          const asproLicenceShow = arOptimusOptions["THEME"]["SHOW_LICENCE"] === "Y",
5067            asproLicenceChecked = arOptimusOptions["THEME"]["LICENCE_CHECKED"] === "Y";
5068
5069          const asproOfferShow = arOptimusOptions["THEME"]["SHOW_OFFER"] === "Y",
5070            asproOfferChecked = arOptimusOptions["THEME"]["OFFER_CHECKED"] === "Y";
5071
5072          if ($(".bx-soa-cart-total-line-total").length && (asproLicenceShow || asproOfferShow)) {
5073            if (typeof e === "undefined") {
5074              BX.Sale.OrderAjaxComponent.state_licence = asproLicenceChecked ? "checked" : "";
5075              BX.Sale.OrderAjaxComponent.state_offer = asproOfferChecked ? "checked" : "";
5076            }
5077
5078            if (
5079              (!$(".licence_block.filter").length && asproLicenceShow) ||
5080              (!$(".offer_block.filter").length && asproOfferShow)
5081            ) {
5082              $('<div class="form"><div class="license_order_wrap"></div></div>').insertBefore($("#bx-soa-orderSave"));
5083
5084              if (!$(".licence_block.filter").length && asproLicenceShow)
5085                $(
5086                  '<div class="licence_block filter label_block"><label data-for="licenses_order" class="hidden error">' +
5087                    BX.message("JS_REQUIRED_LICENSES") +
5088                    '</label><input type="checkbox" name="licenses_order" required ' +
5089                    BX.Sale.OrderAjaxComponent.state_licence +
5090                    ' value="Y"><label data-for="licenses_order" class="license">' +
5091                    BX.message("LICENSES_TEXT") +
5092                    "</label></div>"
5093                ).appendTo($(".license_order_wrap"));
5094
5095              if (!$(".offer_block.filter").length && asproOfferShow)
5096                $(
5097                  '<div class="offer_block filter label_block"><label data-for="offer_order" class="hidden error">' +
5098                    BX.message("JS_REQUIRED_OFFER") +
5099                    '</label><input type="checkbox" name="offer_order" required ' +
5100                    BX.Sale.OrderAjaxComponent.state_offer +
5101                    ' value="Y"><label data-for="offer_order" class="offer_pub">' +
5102                    BX.message("OFFER_TEXT") +
5103                    "</label></div>"
5104                ).appendTo($(".license_order_wrap"));
5105
5106              if (asproLicenceShow) {
5107                $(document).on("click", ".bx-soa .licence_block label.license", function () {
5108                  const id = $(this).data("for");
5109                  $(".bx-soa .licence_block label.error").addClass("hidden");
5110                  if (!$("input[name=" + id + "]").prop("checked")) {
5111                    $("input[name=" + id + "]").prop("checked", "checked");
5112                    BX.Sale.OrderAjaxComponent.state_licence = "checked";
5113                  } else {
5114                    $("input[name=" + id + "]").prop("checked", "");
5115                    BX.Sale.OrderAjaxComponent.state_licence = "";
5116                  }
5117                });
5118              }
5119
5120              if (asproOfferShow) {
5121                $(document).on("click", ".bx-soa .offer_block label.offer_pub", function () {
5122                  const id = $(this).data("for");
5123
5124                  $(".bx-soa .offer_block label.error").addClass("hidden");
5125
5126                  if (!$("input[name=" + id + "]").prop("checked")) {
5127                    $("input[name=" + id + "]").prop("checked", "checked");
5128                    BX.Sale.OrderAjaxComponent.state_licence = "checked";
5129                  } else {
5130                    $("input[name=" + id + "]").prop("checked", "");
5131                    BX.Sale.OrderAjaxComponent.state_licence = "";
5132                  }
5133                });
5134              }
5135
5136              $(document).on("click", ".lic_condition a", function () {
5137                if (BX.hasClass(BX("bx-soa-order"), "orderform--v1")) {
5138                  if (BX.Sale.OrderAjaxComponent.isValidForm()) {
5139                    BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50);
5140                  }
5141                } else {
5142                  const iCountErrors = BX.Sale.OrderAjaxComponent.isValidPropertiesBlock().length;
5143
5144                  if (!BX.Sale.OrderAjaxComponent.activeSectionId || !iCountErrors) {
5145                    BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50);
5146                  }
5147                }
5148              });
5149            }
5150            $("#bx-soa-orderSave, .bx-soa-cart-total-button-container").addClass("lic_condition");
5151
5152            if (
5153              typeof BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction === "undefined" &&
5154              typeof BX.Sale.OrderAjaxComponent.clickOrderSaveAction !== "undefined"
5155            ) {
5156              BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction = BX.Sale.OrderAjaxComponent.clickOrderSaveAction;
5157              BX.Sale.OrderAjaxComponent.clickOrderSaveAction = function (event) {
5158                if (
5159                  ($('input[name="licenses_order"]').prop("checked") || asproLicenceShow === false) &&
5160                  ($('input[name="offer_order"]').prop("checked") || asproOfferShow === false)
5161                ) {
5162                  $(".bx-soa .licence_block label.error").addClass("hidden");
5163                  $(".bx-soa .offer_block label.error").addClass("hidden");
5164
5165                  if (BX.Sale.OrderAjaxComponent.isValidForm()) {
5166                    if (typeof BX.Sale.OrderAjaxComponent.allowOrderSave == "function")
5167                      BX.Sale.OrderAjaxComponent.allowOrderSave();
5168                    if (typeof BX.Sale.OrderAjaxComponent.doSaveAction == "function")
5169                      BX.Sale.OrderAjaxComponent.doSaveAction();
5170                    else BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction(event);
5171                  }
5172                } else {
5173                  if (!$('input[name="licenses_order"]').prop("checked"))
5174                    $(".bx-soa .licence_block label.error").removeClass("hidden");
5175
5176                  if (!$('input[name="offer_order"]').prop("checked"))
5177                    $(".bx-soa .offer_block label.error").removeClass("hidden");
5178                }
5179              };
5180              if (BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")) {
5181                if (typeof browser == "object") {
5182                  if ("msie" in browser && browser.msie)
5183                    $(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")).remove();
5184                  else BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox").remove();
5185                }
5186              }
5187              BX.unbindAll(BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"));
5188              BX.unbindAll(BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"));
5189              BX.unbindAll(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"));
5190              BX.bind(
5191                BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"),
5192                "click",
5193                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
5194              );
5195              BX.bind(
5196                BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"),
5197                "click",
5198                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
5199              );
5200              BX.bind(
5201                BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"),
5202                "click",
5203                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
5204              );
5205            }
5206
5207            /*$('.bx-soa-cart-total .licence_block label.license').on('click', function(){
5208							var id = $(this).data('for');
5209							$('.bx-soa-cart-total .licence_block label.error').addClass('hidden');
5210							if(!$('input[name='+id+']').prop('checked')){
5211								$('input[name='+id+']').prop('checked', 'checked');
5212								BX.Sale.OrderAjaxComponent.state_licence = 'checked';
5213							}
5214							else{
5215								$('input[name='+id+']').prop('checked', '');
5216								BX.Sale.OrderAjaxComponent.state_licence = '';
5217							}
5218						})*/
5219          }
5220          if (BX.Sale.OrderAjaxComponent.hasOwnProperty("params")) {
5221            $(".bx-soa-cart-total .change_link").attr("href", BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET);
5222            if (arOptimusOptions["PRICES"]["MIN_PRICE"]) {
5223              if (
5224                arOptimusOptions["PRICES"]["MIN_PRICE"] > Number(BX.Sale.OrderAjaxComponent.result.TOTAL.ORDER_PRICE)
5225              ) {
5226                $('<div class="fademask_ext"></div>').appendTo($("body"));
5227                location.href = BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET;
5228              }
5229            }
5230          }
5231
5232          // fix hide total block
5233          //BX.removeClass(BX.Sale.OrderAjaxComponent.totalInfoBlockNode, 'bx-soa-cart-total-fixed');
5234          $(window).scroll();
5235
5236          if (checkCounters() && typeof BX.Sale.OrderAjaxComponent.oldSaveOrder === "undefined") {
5237            var saveFunc =
5238              typeof BX.Sale.OrderAjaxComponent.saveOrder !== "undefined" ? "saveOrder" : "saveOrderWithJson";
5239            if (typeof BX.Sale.OrderAjaxComponent[saveFunc] !== "undefined") {
5240              BX.Sale.OrderAjaxComponent.oldSaveOrder = BX.Sale.OrderAjaxComponent[saveFunc];
5241              BX.Sale.OrderAjaxComponent[saveFunc] = function (result) {
5242                var res = BX.parseJSON(result);
5243                if (res && res.order) {
5244                  if (!res.order.SHOW_AUTH) {
5245                    if (
5246                      res.order.REDIRECT_URL &&
5247                      res.order.REDIRECT_URL.length &&
5248                      (!res.order.ERROR || BX.util.object_keys(res.order.ERROR).length < 1)
5249                    ) {
5250                      if (
5251                        (arMatch = res.order.REDIRECT_URL.match(/ORDER_ID\=[^&=]*/g)) &&
5252                        arMatch.length &&
5253                        (_id = arMatch[0].replace(/ORDER_ID\=/g, "", arMatch[0]))
5254                      ) {
5255                        $.ajax({
5256                          url: arOptimusOptions["SITE_DIR"] + "ajax/check_order.php",
5257                          dataType: "json",
5258                          type: "POST",
5259                          data: { ID: _id },
5260                          success: function (id) {
5261                            if (parseInt(id)) {
5262                              purchaseCounter(parseInt(id), BX.message("FULL_ORDER"), function (d) {
5263                                if (typeof d == "object") {
5264                                  if (typeof BX.localStorage !== "undefined") {
5265                                    BX.localStorage.set("gtm_e_" + _id, d, 60);
5266                                  }
5267                                }
5268                                BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5269                              });
5270                            } else {
5271                              BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5272                            }
5273                          },
5274                          error: function () {
5275                            BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5276                          },
5277                        });
5278                      } else {
5279                        BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5280                      }
5281                    } else {
5282                      BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5283                    }
5284                  } else {
5285                    BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5286                  }
5287                } else {
5288                  BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5289                }
5290              };
5291            }
5292          }
5293
5294        if ($("#bx-soa-order-form .captcha-row").length) {
5295            if (
5296              window.asproRecaptcha &&
5297              window.asproRecaptcha.key &&
5298              window.asproRecaptcha.params.recaptchaSize == "invisible"
5299            ) {
5300              $("#bx-soa-order-form .captcha-row").addClass("invisible");
5301              if (asproRecaptcha.params.recaptchaLogoShow === "n") {
5302                $("#bx-soa-order-form .captcha-row").addClass("logo_captcha_n");
5303              }
5304            }
5305          }
5306
5307             if ($("#bx-soa-order-form .captcha-row").length) {
5308            if (BX.Aspro?.Captcha) {
5309              $('.bx-soa-section-content.reg .captcha-row .bx-authform-label-container').hide();
5310
5311              // fix ya smartcaptcha height
5312              if ($('.bx-soa-section-content.reg ' + BX.Aspro.Captcha.selector).length) {
5313                $('.bx-soa-section-content.reg ' + BX.Aspro.Captcha.selector).css('height', '');
5314              }
5315
5316              if (BX.Aspro.Captcha.isInvisible()) {
5317                $("#bx-soa-order-form .captcha-row").addClass("invisible");
5318
5319                if (BX.Aspro.Captcha.params.showLogo === "n") {
5320                  $("#bx-soa-order-form .captcha-row").addClass("logo_captcha_n");
5321                }
5322              }
5323
5324              if (
5325                BX.Aspro.Captcha.isGoogleRecaptcha3() ||
5326                BX.Aspro.Captcha.isInvisible()
5327              ) {
5328                if (
5329                  typeof BX.Sale.OrderAjaxComponent.oldSendRequest === "undefined" &&
5330                  typeof BX.Sale.OrderAjaxComponent.sendRequest !== "undefined"
5331                ) {
5332                  BX.Sale.OrderAjaxComponent.oldSendRequest = BX.Sale.OrderAjaxComponent.sendRequest;
5333                  BX.Sale.OrderAjaxComponent.sendRequest = function (action, actionData) {
5334                    let form = BX("bx-soa-order-form");
5335
5336                    (new Promise((resolve, reject) => {
5337                      if (BX.Aspro.Captcha.api) {
5338                        BX.Aspro.Captcha.onSubmit({form}).then((result) => {
5339                          resolve(result)
5340                        }).catch((e) => {
5341                          reject(e);
5342                        });
5343
5344                        return;
5345                      }
5346
5347                      resolve(true);
5348                    })).then((result) => {
5349                      if (result) {
5350                     
5350   BX.Sale.OrderAjaxComponent.oldSendRequest(action, actionData);
5351                      }
5352                    });
5353                  };
5354                }
5355              }
5356            }
5357          }
5358        }
5359
5360
5361        $(".bx-ui-sls-quick-locations.quick-locations").on("click", function () {
5362          $(this).siblings().removeClass("active");
5363          $(this).addClass("active");
5364        });
5365      }
5366    }
5367  };
5368}
5369
5370if (!funcDefined("basketActions")) {
5371  basketActions = function () {
5372    if (arOptimusOptions["PAGES"]["BASKET_PAGE"]) {
5373      checkMinPrice();
5374
5375      //remove4Cart
5376      if (typeof BX.Sale !== "undefined" && typeof BX.Sale === "object") {
5377        if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent === "object") {
5378          $(document).on("click", ".basket-item-actions-remove", function () {
5379            var basketID = $(this).closest(".basket-items-list-item-container").data("id");
5380            delFromBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID);
5381          });
5382        }
5383      }
5384
5385      if (location.hash) {
5386        var hash = location.hash.substring(1);
5387        if ($("#basket_toolbar_button_" + hash).length) {
5388          $("#basket_toolbar_button_" + hash).trigger("click");
5389        }
5390      }
5391
5392      $(".bx_sort_container").append(
5393        '<div class="top_control basket_sort"><span style="display:none;" class="delete_all button grey_br transparent remove_all_basket">' +
5394          BX.message("BASKET_CLEAR_ALL_BUTTON") +
5395          "</span></div>"
5396      );
5397      if ($(".basket-items-list-header-filter").length) {
5398        $(".basket-items-list-header-filter").append(
5399          '<div class="top_control basket_sort"><span style="opacity:1;" class="delete_all button grey_br transparent remove_all_basket">' +
5400            BX.message("BASKET_CLEAR_ALL_BUTTON") +
5401            "</span></div>"
5402        );
5403
5404        var cur_index = $(".basket-items-list-header-filter > a.active").index();
5405        //fix delayed
5406        if (cur_index == 3) cur_index = 2;
5407
5408        if ($(".basket-items-list-header-filter > a.active").data("filter") == "all") cur_index = "all";
5409
5410        $(".basket-items-list-header-filter .top_control .delete_all").data("type", cur_index);
5411
5412        $(".basket-items-list-header-filter > a").on("click", function () {
5413          var index = $(this).index();
5414
5415          //fix delayed
5416          if (index == 3) index = 2;
5417
5418          if ($(this).data("filter") == "all") index = "all";
5419
5420          $(".basket-items-list-header-filter .top_control .delete_all").data("type", index);
5421        });
5422
5423        if (arOptimusOptions["THEME"]["SHOW_BASKET_PRINT"] == "Y") {
5424          $(
5425            '<span class="basket_sort"><span class="basket_print button grey_br transparent">' +
5426              BX.message("BASKET_PRINT_BUTTON") +
5427              "</span></span>"
5428          ).insertAfter($("#pagetitle"));
5429        }
5430      } else {
5431        if (arOptimusOptions["THEME"]["SHOW_BASKET_PRINT"] == "Y") {
5432          $(".bx_sort_container .top_control").prepend(
5433            '<span class="basket_print button grey_br transparent">' + BX.message("BASKET_PRINT_BUTTON") + "</span>"
5434          );
5435        }
5436
5437        var cur_index = $(".bx_sort_container a.current").index();
5438        $(".bx_sort_container .top_control .delete_all").data("type", cur_index);
5439        if ($(".bx_ordercart > div:eq(" + cur_index + ") table tbody tr td.item").length)
5440          $(".bx_sort_container .top_control .delete_all").css("display", "block");
5441
5442        $(".bx_ordercart .bx_ordercart_coupon #coupon").wrap('<div class="input"></div>');
5443
5444        $(".bx_sort_container > a").on("click", function () {
5445          var index = $(this).index();
5446          $(".bx_sort_container .top_control .delete_all").data("type", index);
5447
5448          if ($(".bx_ordercart > div:eq(" + index + ") table tbody tr td.item").length)
5449            $(".bx_sort_container .top_control .delete_all").css("display", "block");
5450          else $(".bx_sort_container .top_control .delete_all").css("display", "none");
5451        });
5452      }
5453
5454      $(".basket_print").on("click", function () {
5455        // window.open(location.pathname+"?print=Y",'_blank');
5456        window.print();
5457      });
5458
5459      $(".delete_all").on("click", function () {
5460        if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
5461          var eventdata = { goal: "goal_basket_clear", params: { type: $(this).data("type") } };
5462          BX.onCustomEvent("onCounterGoals", [eventdata]);
5463        }
5464        $.post(
5465          arOptimusOptions["SITE_DIR"] + "ajax/action_basket.php",
5466          "TYPE=" + $(this).data("type") + "&CLEAR_ALL=Y",
5467          $.proxy(function (data) {
5468            location.reload();
5469          })
5470        );
5471      });
5472
5473      $(".bx_item_list_section .bx_catalog_item").sliceHeight({ row: ".bx_item_list_slide", item: ".bx_catalog_item" });
5474
5475      $(document).on(
5476        "click",
5477        ".bx_ordercart_order_pay_center .checkout, .basket-checkout-section-inner .basket-btn-checkout",
5478        function () {
5479          if (checkCounters("google")) {
5480            checkoutCounter(1, "start order");
5481          }
5482        }
5483      );
5484
5485      BX.addCustomEvent("onAjaxSuccess", function () {
5486        checkMinPrice();
5487
5488        var errorText = $.trim($("#warning_message").text());
5489        $("#basket_items_list .error_text").detach();
5490        if (errorText != "") {
5491          $("#warning_message").hide().text("");
5492          $("#basket_items_list").prepend('<div class="error_text">' + errorText + "</div>");
5493        }
5494      });
5495    }
5496  };
5497}
5498
5499BX.addCustomEvent("onAjaxSuccess", function (data) {
5500  if (typeof data !== "object" || data === null) {
5501    return;
5502  }
5503
5504  if (typeof data.BASKET_REFRESHED === undefined) {
5505    return;
5506  }
5507
5508  const resoredBasketItems = data.RESTORED_BASKET_ITEMS;
5509  if (
5510    resoredBasketItems &&
5511    typeof resoredBasketItems === 'object' &&
5512    !Array.isArray(resoredBasketItems)
5513  ) {
5514    for (const basketID in resoredBasketItems) {
5515      if (resoredBasketItems.hasOwnProperty(basketID) && BX.Sale?.BasketComponent?.items?.[basketID]) {
5516        addBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID);
5517      }
5518    }
5519  }
5520});
5521
5522if (!funcDefined("checkMinPrice")) {
5523  checkMinPrice = function () {
5524    if (arOptimusOptions["PAGES"]["BASKET_PAGE"]) {
5525      var summ_raw = 0,
5526        summ = 0;
5527      if ($("#allSum_FORMATED").length) {
5528        summ_raw = $("#allSum_FORMATED")
5529          .text()
5530          .replace(/[^0-9\.,]/g, "");
5531        summ = parseFloat(summ_raw);
5532        if ($("#basket_items").length) {
5533          var summ = 0;
5534          $("#basket_items tr").each(function () {
5535            if (typeof $(this).data("item-price") !== "undefined" && $(this).data("item-price"))
5536              summ +=
5537                $(this).data("item-price") *
5538                $(this)
5539                  .find("#QUANTITY_INPUT_" + $(this).attr("id"))
5540                  .val();
5541          });
5542        }
5543        if (!$(".catalog_back").length)
5544          $(".bx_ordercart_order_pay_center").prepend(
5545            '<a href="' +
5546              arOptimusOptions["PAGES"]["CATALOG_PAGE_URL"] +
5547              '" class="catalog_back button transparent big_btn grey_br">' +
5548              BX.message("BASKET_CONTINUE_BUTTON") +
5549              "</a>"
5550          );
5551      }
5552
5553      if (arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y")
5554        $(".basket-coupon-section").addClass("smallest");
5555
5556      if (typeof BX.Sale !== "undefined") {
5557        if (typeof BX.Sale.BasketComponent !== "undefined" && "result" in BX.Sale.BasketComponent)
5558          summ = BX.Sale.BasketComponent.result.allSum;
5559      }
5560
5561      if (arOptimusOptions["PRICES"]["MIN_PRICE"]) {
5562        if (arOptimusOptions["PRICES"]["MIN_PRICE"] > summ) {
5563          if ($(".oneclickbuy.fast_order").length) $(".oneclickbuy.fast_order").remove();
5564
5565          if ($(".basket-checkout-container").length) {
5566            if (!$(".icon_error_wrapper").length) {
5567              $(".basket-checkout-block.basket-checkout-block-btn").html(
5568                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
5569                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
5570                    "#PRICE#",
5571                    jsPriceFormat(arOptimusOptions["PRICES"]["MIN_PRICE"])
5572                  ) +
5573                  "</div></div>"
5574              );
5575            }
5576          } else {
5577            if (!$(".icon_error_wrapper").length) {
5578              $(".bx_ordercart_order_pay_center").prepend(
5579                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
5580                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
5581                    "#PRICE#",
5582                    jsPriceFormat(arOptimusOptions["PRICES"]["MIN_PRICE"])
5583                  ) +
5584                  "</div></div>"
5585              );
5586            }
5587            if ($(".bx_ordercart_order_pay .checkout").length) $(".bx_ordercart_order_pay .checkout").remove();
5588          }
5589        } else {
5590          if ($(".icon_error_wrapper").length) $(".icon_error_wrapper").remove();
5591
5592          if ($(".basket-checkout-container").length) {
5593            if (
5594              !$(".oneclickbuy.fast_order").length &&
5595              arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
5596              !$(".basket-btn-checkout.disabled").length
5597            )
5598              $(".basket-checkout-section-inner").append(
5599                '<div class="fastorder"><span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5600                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
5601                  "</span></div>"
5602              );
5603          } else {
5604            if ($(".bx_ordercart_order_pay .checkout").length)
5605              $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
5606            else
5607              $(".bx_ordercart_order_pay_center").append(
5608                '<a href="javascript:void(0)" onclick="checkOut();" class="checkout" style="opacity: 1;">' +
5609                  BX.message("BASKET_ORDER_BUTTON") +
5610                  "</a>"
5611              );
5612            if (
5613              !$(".oneclickbuy.fast_order").length &&
5614              arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y"
5615            )
5616              $(".bx_ordercart_order_pay_center").append(
5617                '<span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5618                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
5619                  "</span>"
5620              );
5621          }
5622        }
5623      } else {
5624        if ($(".basket-checkout-container").length) {
5625          if (
5626            !$(".oneclickbuy.fast_order").length &&
5627            arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
5628            !$(".basket-btn-checkout.disabled").length
5629          )
5630            $(".basket-checkout-section-inner").append(
5631              '<div class="fastorder"><span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5632                BX.message("BASKET_QUICK_ORDER_BUTTON") +
5633                "</span></div>"
5634            );
5635        } else {
5636          $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
5637          if (
5638            !$(".oneclickbuy.fast_order").length &&
5639            arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y"
5640          )
5641            $(".bx_ordercart_order_pay_center").append(
5642              '<span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5643                BX.message("BASKET_QUICK_ORDER_BUTTON") +
5644                "</span>"
5645            );
5646        }
5647      }
5648      $("#basket-root .basket-checkout-container").addClass("visible");
5649    }
5650  };
5651}
5652
5653var isFrameDataReceived = false;
5654if (typeof window.frameCacheVars !== "undefined") {
5655  BX.addCustomEvent("onFrameDataReceived", function (json) {
5656    initFull();
5657    isFrameDataReceived = true;
5658  });
5659} else {
5660  $(document).ready(initFull);
5661}
5662
5663if (!funcDefined("setHeightBlockSlider")) {
5664  setHeightBlockSlider = function () {
5665    var sliderWidth = $(document).find(".specials.tab_slider_wrapp").outerWidth();
5666
5667    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").css("height", "");
5668    $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider .buttons_block").hide();
5669    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item-title" });
5670    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item_info" });
5671    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".catalog_item" });
5672    var itemsButtonsHeight = $(document)
5673      .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .buttons_block")
5674      .height();
5675    var tabsContentUnhover = $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").height() * 1;
5676    var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50;
5677    $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-unhover", tabsContentUnhover);
5678    $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-hover", tabsContentHover);
5679    $(document).find(".specials.tab_slider_wrapp .tabs_content").height(tabsContentUnhover);
5680
5681    $(document)
5682      .find(".specials.tab_slider_wrapp .tabs_content .tabs_slider")
5683      .each(function (index, el) {
5684        const height = $(this).find(".catalog_item").height();
5685        $(el).attr("data-height", height);
5686      });
5687  };
5688}
5689
5690if (!funcDefined("checkStickyFooter")) {
5691  checkStickyFooter = function () {
5692    try {
5693      ignoreResize.push(true);
5694      $("#content").css("min-height", "");
5695      var contentTop = 0;
5696      if ($("#content").length) contentTop = $("#content").offset().top;
5697
5698      var contentBottom = contentTop + $("#content").outerHeight();
5699
5700      var footerTop = 0;
5701      if ($("footer").length) footerTop = $("footer").offset().top;
5702
5703      $("#content").css(
5704        "min-height",
5705        $(window).height() - contentTop - (footerTop - contentBottom) - $("footer").outerHeight() + "px"
5706      );
5707      ignoreResize.pop();
5708    } catch (e) {
5709      console.error(e);
5710    }
5711  };
5712}
5713
5714/* EVENTS */
5715var timerResize = false,
5716  ignoreResize = [];
5717$(window).resize(function () {
5718  if (!$("html.print").length) checkStickyFooter();
5719
5720  // here immediate functions
5721  if (!ignoreResize.length) {
5722    if (timerResize) {
5723      clearTimeout(timerResize);
5724      timerResize = false;
5725    }
5726    timerResize = setTimeout(function () {
5727      // here delayed functions in event
5728      BX.onCustomEvent("onWindowResize", false);
5729    }, 50);
5730  }
5731});
5732
5733var timerScroll = false,
5734  ignoreScroll = [],
5735  documentScrollTopLast = $(document).scrollTop();
5736$(window).scroll(function () {
5737  // here immediate functions
5738  documentScrollTopLast = $(document).scrollTop();
5739  if (!ignoreScroll.length) {
5740    if (timerScroll) {
5741      clearTimeout(timerScroll);
5742      timerScroll = false;
5743    }
5744    timerScroll = setTimeout(function () {
5745      // here delayed functions in event
5746      BX.onCustomEvent("onWindowScroll", false);
5747    }, 50);
5748  }
5749});
5750
5751BX.addCustomEvent("onWindowResize", function (eventdata) {
5752  try {
5753    ignoreResize.push(true);
5754
5755    // CheckTopMenuFullCatalogSubmenu();
5756
5757    checkScrollToTop();
5758    //checkPopupWidth();
5759    checkCaptchaWidth();
5760    checkFormWidth();
5761    checkFormControlWidth();
5762    touchMenu("ul.menu:not(.opened) > li.menu_item_l1");
5763    touchBasket(".cart:not(.empty_cart) .basket_block .link");
5764    CheckObjectsSizes();
5765
5766    if (funcDefined("checkMobileFilter")) {
5767      checkMobileFilter();
5768    }
5769
5770    CheckFlexSlider();
5771
5772    // InitZoomPict();
5773    initSly();
5774
5775    if (window.matchMedia("(min-width: 767px)").matches) {
5776      $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
5777    }
5778    if (window.matchMedia("(max-width: 767px)").matches) {
5779      $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
5780    }
5781
5782    if ($(window).outerWidth() > 600) {
5783      $("#header ul.menu").removeClass("opened").css("display", "");
5784
5785      if ($(".authorization-cols").length) {
5786        $(".authorization-cols").equalize({ children: ".col .auth-title", reset: true });
5787        $(".authorization-cols").equalize({ children: ".col .form-block", reset: true });
5788      }
5789    } else {
5790      $(".authorization-cols .auth-title").css("height", "");
5791      $(".authorization-cols .form-block").css("height", "");
5792    }
5793
5794    if ($("#basket_form").length && $(window).outerWidth() <= 600) {
5795      $("#basket_form .tabs_content.basket > li.cur td").each(function () {
5796        $(this).css("width", "");
5797      });
5798    }
5799
5800    if ($(".front_slider_wrapp").length) {
5801      $(".extended_pagination li i").each(function () {
5802        $(this).css({
5803          borderBottomWidth: $(this).parent("li").outerHeight() / 2,
5804          borderTopWidth: $(this).parent("li").outerHeight() / 2,
5805        });
5806      });
5807    }
5808
5809    setHeightCompany();
5810    $(".bx_filter_section .bx_filter_select_container").each(function () {
5811      var prop_id = $(this).closest(".bx_filter_parameters_box").attr("property_id");
5812      if ($("#smartFilterDropDown" + prop_id).length) {
5813        $("#smartFilterDropDown" + prop_id).css("max-width", $(this).width());
5814      }
5815    });
5816    setTimeout(function () {
5817      checkVerticalMobileFilter();
5818    }, 100);
5819  } catch (e) {
5820  } finally {
5821    ignoreResize.pop();
5822  }
5823});
5824
5825BX.addCustomEvent("onWindowScroll", function (eventdata) {
5826  try {
5827    ignoreScroll.push(true);
5828  } catch (e) {
5829  } finally {
5830    ignoreScroll.pop();
5831  }
5832});
5833
5834BX.addCustomEvent("onSlideInit", function (eventdata) {
5835  try {
5836    ignoreResize.push(true);
5837    if (eventdata) {
5838      var slider = eventdata.slider;
5839      if (slider) {
5840        if (slider.hasClass("viewed")) {
5841          $(".viewed_block .rows_block .item .item-title").sliceHeight({
5842            outer: true,
5843            slice: 8,
5844            autoslicecount: false,
5845          });
5846          $(".viewed_block .rows_block .item").sliceHeight({ slice: 8, autoslicecount: false });
5847        }
5848      }
5849    }
5850  } catch (e) {
5851  } finally {
5852    ignoreResize.pop();
5853  }
5854});
5855
5856BX.addCustomEvent("onCounterGoals", function (eventdata) {
5857  if (arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] === "Y") {
5858    var idCounter = arOptimusOptions["COUNTERS"]["YA_COUNTER_ID"];
5859    idCounter = parseInt(idCounter);
5860
5861    if (typeof eventdata != "object") {
5862      eventdata = { goal: "undefined" };
5863    }
5864    if (typeof eventdata.goal != "string") {
5865      eventdata.goal = "undefined";
5866    }
5867
5868    if (idCounter) {
5869      try {
5870        waitCounter(idCounter, 50, function () {
5871          var obCounter = window["yaCounter" + idCounter];
5872          if (typeof obCounter == "object") {
5873            obCounter.reachGoal(eventdata.goal);
5874          }
5875        });
5876      } catch (e) {
5877        console.error(e);
5878      }
5879    } else {
5880      console.info("Bad counter id!", idCounter);
5881    }
5882  }
5883});
5884
5885BX.addCustomEvent("onSubmitForm", function (eventdata) {
5886  try {
5887    if (typeof eventdata === "object" && eventdata && eventdata.form) {
5888      if (!(eventdata.form instanceof Node)) {
5889        eventdata.form = eventdata.form[0];
5890      }
5891
5892      new Promise((resolve, reject) => {
5893        if (BX.Aspro?.Captcha) {
5894          BX.Aspro.Captcha.onSubmit(eventdata)
5895            .then((result) => {
5896              resolve(result);
5897            })
5898            .catch((e) => {
5899              reject(e);
5900            });
5901
5902          return;
5903        }
5904
5905        resolve(true);
5906      }).then((result) => {
5907        if (result) {
5908          eventdata.form.submit();
5909          if (eventdata.form.closest(".form")) {
5910            eventdata.form.closest(".form").classList.add("sending");
5911          }
5912        }
5913      });
5914    }
5915  } catch (e) {
5916    console.error(e);
5917  }
5918});
5919
5920$(document).ready(function () {
5921  /*  --- Bind mobile filter  --- */
5922  var $mobilefilter = $("#mobilefilter");
5923  var $mobileMenu = $("#mobilemenu, #mobileheadersimple");
5924  if ($mobilefilter.length && window.matchMedia("(max-width: 768px)").matches) {
5925    $mobilefilter.isOpen = $mobileMenu.hasClass("show");
5926    $mobilefilter.isAppendLeft = false;
5927    $mobilefilter.isWrapFilter = false;
5928    $mobilefilter.isHorizontalOrCompact = $(".filter_horizontal").length || $(".bx_filter_vertical.compact").length;
5929    $mobilefilter.close = '<i class="svg svg-close close-icons"></i>';
5930
5931    $(document).on("click", ".filter_opener", function () {
5932      OpenMobileFilter();
5933    });
5934
5935    $(document).on("click", "#mobilefilter .svg-close.close-icons", function () {
5936      CloseMobileFilter();
5937    });
5938
5939    $(document).on("click", ".bx_filter_select_block", function (e) {
5940      var bx_filter_select_container = $(e.target).parents(".bx_filter_select_container");
5941      if (bx_filter_select_container.length) {
5942        var prop_id = bx_filter_select_container.closest(".bx_filter_parameters_box").attr("data-property_id");
5943        if ($("#smartFilterDropDown" + prop_id).length) {
5944          $("#smartFilterDropDown" + prop_id).css({
5945            "max-width": bx_filter_select_container.width(),
5946            "z-index": "3020",
5947          });
5948        }
5949      }
5950    });
5951
5952    $(document).on("mouseup", ".bx_filter_section", function (e) {
5953      if ($(e.target).hasClass("bx_filter_search_button")) {
5954        CloseMobileFilter();
5955      }
5956    });
5957
5958    $(document).on("mouseup", ".bx_filter_parameters_box_title", function (e) {
5959      $("[id^='smartFilterDropDown']").hide();
5960      if ($(e.target).hasClass("close-icons")) {
5961        CloseMobileFilter();
5962      }
5963    });
5964
5965    $mobilefilter.parent().append('<div id="mobilefilter-overlay"></div>');
5966    var $mobilefilterOverlay = $("#mobilefilter-overlay");
5967
5968    $mobilefilterOverlay.click(function () {
5969      if ($mobilefilter.isOpen) {
5970        CloseMobileFilter();
5971        //e.stopPropagation();
5972      }
5973    });
5974
5975    mobileFilterNum = function (num, def) {
5976      if (def) {
5977        $(".bx_filter_search_button").val(num.data("f"));
5978      } else {
5979        var str = "";
5980        var $prosLeng = $(".bx_filter_parameters_box > span");
5981
5982        str +=
5983          $prosLeng.data("f") +
5984          " " +
5985          num +
5986          " " +
5987          declOfNumFilter(num, [$prosLeng.data("fi"), $prosLeng.data("fr"), $prosLeng.data("frm")]);
5988        $(".bx_filter_search_button").val(str);
5989      }
5990    };
5991
5992    declOfNumFilter = function (number, titles) {
5993      cases = [2, 0, 1, 1, 1, 2];
5994      return titles[number % 100 > 4 && number % 100 < 20 ? 2 : cases[number % 10 < 5 ? number % 10 : 5]];
5995    };
5996
5997    OpenMobileFilter = function () {
5998      if (!$mobilefilter.isOpen) {
5999        if (!$mobilefilter.isAppendLeft) {
6000          if (!$mobilefilter.isWrapFilter) {
6001            $(".bx_filter").wrap("<div id='wrapInlineFilter'></div>");
6002            $mobilefilter.isWrapFilter = true;
6003          }
6004          $(".bx_filter").css("top", "");
6005          $(".bx_filter")
6006            .appendTo($("#mobilefilter"))
6007            .find(".title .bx_filter_parameters_box_title")
6008            .append($mobilefilter.close);
6009          $mobilefilter.isAppendLeft = true;
6010        }
6011
6012        // show overlay
6013        setTimeout(function () {
6014          $mobilefilterOverlay.fadeIn("fast");
6015        }, 100);
6016
6017        // fix body
6018        $("body").css({ "overflow-y": "hidden" });
6019
6020        // show mobile filter
6021        $mobilefilter.addClass("show");
6022        $mobilefilter.find(".bx_filter").css({ display: "block" });
6023        $mobilefilter.isOpen = true;
6024
6025        var init = $mobilefilter.data("init");
6026        if (typeof init === "undefined") {
6027          $mobilefilter.scroll(function () {
6028            $(".bx_filter_section .bx_filter_select_container").each(function () {
6029              var prop_id = $(this).closest(".bx_filter_parameters_box").attr("data-property_id");
6030              if ($("#smartFilterDropDown" + prop_id).length) {
6031                $("#smartFilterDropDown" + prop_id).hide();
6032              }
6033            });
6034          });
6035
6036          $mobilefilter.data("init", "Y");
6037        }
6038      }
6039    };
6040
6041    CloseMobileFilter = function (append) {
6042      $(".bx_filter").css("display", "");
6043      if ($mobilefilter.isOpen) {
6044        // scroll to top
6045        $mobilefilter.find(".bx_filter_parameters").scrollTop(0);
6046
6047        // unfix body
6048        $("body").css({ "overflow-y": "auto" });
6049
6050        // hide overlay
6051        setTimeout(function () {
6052          $mobilefilterOverlay.fadeOut("fast");
6053        }, 100);
6054
6055        // hide mobile filter
6056        $mobilefilter.removeClass("show");
6057        $mobilefilter.isOpen = false;
6058      }
6059
6060      if (append && $mobilefilter.isAppendLeft) {
6061        $(".bx_filter").appendTo($("#wrapInlineFilter")).show().find(".svg-close").remove();
6062        $mobilefilter.isAppendLeft = false;
6063        $mobilefilter.removeData("init");
6064        mobileFilterNum($("#modef_num_mobile"), true);
6065      }
6066    };
6067
6068    checkMobileFilter = function () {
6069      if (
6070        (!window.matchMedia("(max-width: 991px)").matches && !$mobilefilter.isHorizontalOrCompact) ||
6071        (!window.matchMedia("(max-width: 767px)").matches && $mobilefilter.isHorizontalOrCompact)
6072      ) {
6073        CloseMobileFilter(true);
6074      }
6075    };
6076  } else {
6077    checkVerticalMobileFilter();
6078    $(document).on("click", ".filter_opener", function () {
6079      $(this).toggleClass("opened");
6080      if ($(".visible_mobile_filter").length) {
6081        $(".visible_mobile_filter").show();
6082        $(".bx_filter_vertical, .bx_filter").slideToggle(333);
6083      } else {
6084        $(".bx_filter_vertical").closest("div[id^=bx_incl]").show();
6085        $(".bx_filter_vertical, .bx_filter").slideToggle(333);
6086      }
6087    });
6088  }
6089  /*  --- END Bind mobile filter  --- */
6090});
6091
6092/*custom event for sku prices*/
6093
6094/*BX.addCustomEvent('onAsproSkuSetPrice', function(eventdata){
6095	console.log(eventdata);
6096})*/
6097
6098/*BX.addCustomEvent('onAsproSkuSetPriceMatrix', function(eventdata){
6099	console.log(eventdata);
6100})*/
6101
6102InitScrollBar = function (el, initOptions) {
6103  var block = $(".scrollbar:not(.mobile-scroll)");
6104  if (typeof el !== "undefined") block = el;
6105  if (block.length) {
6106    var options,
6107      defaults = {
6108        mouseWheel: {
6109          scrollAmount: 150,
6110          preventDefault: true,
6111        },
6112      };
6113    var config = $.extend({}, defaults, options, block.data("plugin-options"), initOptions);
6114
6115    config.callbacks = {
6116      onScroll: function () {
6117        if ($(this).find(".mCSB_buttonLeft").hasClass("disabled"))
6118          $(this).find(".mCSB_buttonLeft").removeClass("disabled");
6119        if ($(this).find(".mCSB_buttonRight").hasClass("disabled"))
6120          $(this).find(".mCSB_buttonRight").removeClass("disabled");
6121      },
6122      onTotalScrollBack: function () {
6123        $(this).find(".mCSB_buttonLeft").addClass("disabled");
6124      },
6125      onTotalScroll: function () {
6126        $(this).find(".mCSB_buttonRight").addClass("disabled");
6127      },
6128      onInit: function () {
6129        $(this).find(".mCSB_buttonLeft").addClass("disabled");
6130      },
6131    };
6132    block.mCustomScrollbar(config);
6133  }
6134};
6135
6136AjaxClickLink = function (e) {
6137  var _this = "",
6138    container = $("#right_block_ajax .inner_wrapper"),
6139    container_inner = container.find(".ajax_load"),
6140    dopAction = "";
6141  url = "";
6142  if ("preventDefault" in e) {
6143    e.preventDefault();
6144    _this = $(e.target).hasClass("js-load-link") ? $(e.target) : $(e.target).closest(".js-load-link");
6145  } else {
6146    _this = $(e);
6147    dopAction = "Y";
6148  }
6149
6150  if (container.length) {
6151    var objUrl = parseUrlQuery(),
6152      obGetData = { ajax_get_filter: "Y", control_ajax: "Y" };
6153
6154    obGetData.bitrix_include_areas = "N";
6155
6156    if ("clear_cache" in objUrl) {
6157      if (objUrl.clear_cache == "Y") {
6158        obGetData.clear_cache = "Y";
6159      }
6160    }
6161
6162    if (container_inner.length) container_inner.addClass("loading-state");
6163    else container.addClass("loading-state");
6164
6165    if (_this.data("url")) url = _this.data("url");
6166
6167    if (dopAction) {
6168      BX.PopupWindowManager.getCurrentPopup().close();
6169      $(".bx_filter_select_popup ul li .sort_btn").removeClass("current");
6170      _this.addClass("current");
6171      _this.closest(".bx_filter_block").find(".bx_filter_select_text").text(_this.text());
6172    }
6173
6174    $(".bx_filter .bx_sort_filter .bx_filter_select_text").text(_this.text());
6175    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li span.current").removeClass("current");
6176    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li")
6177      .eq(_this.parent().index())
6178      .find("span")
6179      .addClass("current");
6180
6181    $.ajax({
6182      url: url,
6183      data: obGetData,
6184      success: function (html) {
6185        container.html(html);
6186
6187        if (container_inner.length) container_inner.removeClass("loading-state");
6188        else container.removeClass("loading-state");
6189
6190        var eventdata = { action: "jsLoadBlock" };
6191        BX.onCustomEvent("onCompleteAction", [eventdata, _this]);
6192
6193        initCountdown();
6194        InitScrollBar();
6195      },
6196    });
6197  }
6198};
6199
6200if (!funcDefined("throttle")) {
6201  function throttle(func, wait, debounce) {
6202    var timeout;
6203    return function () {
6204      var context = this,
6205        args = arguments;
6206      var throttler = function () {
6207        timeout = null;
6208        func.apply(context, args);
6209      };
6210      if (debounce) clearTimeout(timeout);
6211      if (debounce || !timeout) timeout = setTimeout(throttler, wait);
6212    };
6213  }
6214}
6215
6216// document ready
6217$(function () {
6218  BX.addCustomEvent("onCompleteAction", function (eventdata, _this) {
6219    try {
6220      if (eventdata.action === "loadForm") {
6221        $(_this).parent().removeClass("loadings");
6222        $(_this).removeClass("clicked");
6223
6224        if ($(_this).hasClass("one_click_buy_trigger")) {
6225          $(".wrapp_one_click > span").removeClass("clicked");
6226          $(".one_click").removeClass("clicked");
6227        } else if ($(_this).hasClass("one_click_buy_basket_trigger")) {
6228          $(".fast_order").removeClass("clicked");
6229        }
6230      } else if (eventdata.action === "loadActualBasket" && typeof arBasketAspro !== 'undefined') {
6231        const basketCount = Object.keys(arBasketAspro.BASKET).length;
6232        const wishCount = Object.keys(arBasketAspro.DELAY).length;
6233        const compareCount = Object.keys(arBasketAspro.COMPARE).length;
6234
6235        if (wishCount > 0) {
6236          $(".basket-link.delay .count").removeClass("hidden");
6237          $(".basket-link.delay").removeClass("no-items");
6238        } else {
6239          $(".basket-link.delay .count").addClass("hidden");
6240          $(".basket-link.delay").addClass("no-items");
6241        }
6242
6243        if (basketCount > 0) {
6244          $(".basket-link.basket .count").removeClass("hidden");
6245          $(".basket-link.basket").removeClass("no-items");
6246        } else {
6247          $(".basket-link.basket .count").addClass("hidden");
6248          $(".basket-link.basket").addClass("no-items");
6249        }
6250
6251        if (compareCount > 0) {
6252          if (!$(".basket-link.compare .count").length) {
6253            $(".basket-link.compare .wraps_icon_block").append(
6254              $(
6255                '<div class="count"><span><div class="items"><a href="' +
6256                  $(".basket-link.compare .link").attr("href") +
6257                  '">' +
6258                  compareCount +
6259                  "</a></div></span></div>"
6260              )
6261            );
6262          }
6263          $(".basket-link.compare .count").removeClass("hidden");
6264          $(".basket-link.compare").removeClass("no-items");
6265        } else {
6266          $(".basket-link.compare .count").addClass("hidden");
6267          $(".basket-link.compare").addClass("no-items");
6268        }
6269
6270        $(".basket-link.basket .count .text").text(basketCount);
6271        $(".basket-link.delay .count .text").text(wishCount);
6272        $(".basket-link.compare .count a, .basket-link.comapre > .link").text(compareCount);
6273      }
6274    } catch (e) {
6275      console.error(e);
6276    }
6277  });
6278
6279  checkHeaderFixed();
6280
6281  $(".menu-block.mobile .title").on("click", function () {
6282    const $menuWrapper = $(".menu-block.mobile");
6283    const $menuBlock = $(".menu-block.mobile .navs");
6284
6285    $menuWrapper.toggleClass("opened");
6286    $menuBlock.toggleClass("opened");
6287
6288    if ($menuWrapper.hasClass("opened")) $menuBlock.slideDown();
6289    else $menuBlock.slideUp();
6290  });
6291});
6292
6293const checkHeaderFixed = function () {
6294  const isMobile = jQuery.browser.mobile || window.matchMedia("(max-width: 991px)").matches;
6295  const mfixed = $("#headerfixed_mobile"),
6296    menu = $("header .main-nav");
6297
6298  var startScroll = 0;
6299
6300  var $mobileHeaderFixedNlo = mfixed.find("[data-nlo]"),
6301    isMobileNloLoaded = !$mobileHeaderFixedNlo.length,
6302    OnMobileHeaderFixedScrollHandler;
6303
6304  var header_fixed = $("#headerfixed");
6305  header = $("header").first();
6306
6307  if (header_fixed.length) {
6308    if (header.length) {
6309      var isHeaderFixed = false,
6310        isTabsFixed = false,
6311        headerCanFix = true,
6312        headerFixedHeight = header_fixed.actual("outerHeight"),
6313        headerNormalHeight = header.actual("outerHeight"),
6314        headerDiffHeight = headerNormalHeight - headerFixedHeight,
6315        mobileBtnMenu = $(".btn.btn-responsive-nav"),
6316        headerTop = $("#panel:visible").actual("outerHeight");
6317      topBlock = $(".TOP_HEADER").first();
6318
6319      var $headerFixedNlo = header_fixed.find("[data-nlo]"),
6320        isNloLoaded = !$headerFixedNlo.length,
6321        OnHeaderFixedScrollHandler;
6322
6323      if (headerDiffHeight <= 0) headerDiffHeight = 0;
6324      if (topBlock.length) headerTop += topBlock.actual("outerHeight");
6325
6326      $(window).scroll(
6327        (OnHeaderFixedScrollHandler = function () {
6328          var tabs_fixed = $(".product-item-detail-tabs-container-fixed");
6329
6330          if (window.matchMedia("(min-width:992px)").matches) {
6331            var scrollTop = $(window).scrollTop();
6332            headerCanFix = !mobileBtnMenu.is(":visible") /* && !$('.dropdown-menu:visible').length*/;
6333
6334            var tabs_offset = $(".tabs_section .tabs1").offset();
6335
6336            var current_is = $(".search-wrapper .search-input:visible"),
6337              title_search_result = $(".title-search-result." + current_is.attr("id")),
6338              pos,
6339              pos_input;
6340
6341            if (!isHeaderFixed) {
6342              if (scrollTop > headerNormalHeight + headerTop && headerCanFix) {
6343                if (!isNloLoaded) {
6344                  if (!$headerFixedNlo.hasClass("nlo-loadings")) {
6345                    $headerFixedNlo.addClass("nlo-loadings");
6346                    setTimeout(function () {
6347                      $.ajax({
6348                        data: { nlo: $headerFixedNlo.attr("data-nlo") },
6349                        success: function (response) {
6350                          // stop ya metrika webvisor DOM indexer
6351                          pauseYmObserver();
6352
6353                          isNloLoaded = true;
6354                          $headerFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
6355                          $headerFixedNlo.remove();
6356
6357                          OnHeaderFixedScrollHandler();
6358
6359                          // resume ya metrika webvisor
6360                          // (300ms transition) + (100ms scroll handler)
6361                          setTimeout(resumeYmObserver, 400);
6362                        },
6363                        error: function () {
6364                          $headerFixedNlo.removeClass("nlo-loadings");
6365                        },
6366                      });
6367                    }, 300);
6368                  }
6369                } else {
6370                  isHeaderFixed = true;
6371                  // header_fixed.css('top', '-' + headerNormalHeight + 'px');
6372                  header_fixed.addClass("fixed");
6373                  // header_fixed.stop(0).animate({top: '0'}, 300);
6374
6375                  /*header_fixed.animate({top: '0'}, {duration:300, complete:
6376                                    function(){}
6377                                });*/
6378
6379                  if ($("nav.mega-menu.sliced").length) $("nav.mega-menu.sliced").removeClass("initied");
6380                  //CheckTopMenuDotted();
6381                }
6382              }
6383            } else if (isHeaderFixed || !headerCanFix) {
6384              if (scrollTop <= headerDiffHeight + headerTop || !headerCanFix) {
6385                isHeaderFixed = false;
6386                header_fixed.removeClass("fixed");
6387                $(".title-search-result.title-search-input2_fixed").css("display", "none");
6388              }
6389            }
6390            //fixed tabs
6391            if (tabs_fixed.length) {
6392              if (scrollTop + headerFixedHeight > tabs_offset.top) {
6393                tabs_fixed.css({ top: header_fixed.actual("outerHeight") });
6394                tabs_fixed.addClass("fixed");
6395              } else if (tabs_fixed.hasClass("fixed")) {
6396                tabs_fixed.removeAttr("style");
6397                tabs_fixed.removeClass("fixed");
6398              }
6399            }
6400          }
6401        })
6402      );
6403    }
6404  }
6405
6406  //mobile fixed
6407  if (mfixed.length && isMobile) {
6408    var isMHeaderFixed = false,
6409      mheaderCanFix = true,
6410      mheaderFixedHeight = mfixed.actual("outerHeight"),
6411      mheaderNormalHeight = header.actual("outerHeight") + menu.actual("outerHeight"),
6412      mheaderDiffHeight = mheaderNormalHeight - mheaderFixedHeight,
6413      mheaderTop = $("#panel:visible").actual("outerHeight");
6414
6415    if (headerDiffHeight <= 0) headerDiffHeight = 0;
6416
6417    $(window).scroll(
6418      (OnMobileHeaderFixedScrollHandler = function () {
6419        var scrollTop = $(window).scrollTop();
6420
6421        if (window.matchMedia("(max-width:991px)").matches) {
6422          if (!isMHeaderFixed) {
6423            if (scrollTop > mheaderDiffHeight + mheaderTop) {
6424              if (!isMobileNloLoaded) {
6425                if (!$mobileHeaderFixedNlo.hasClass("nlo-loadings")) {
6426                  $mobileHeaderFixedNlo.addClass("nlo-loadings");
6427                  setTimeout(function () {
6428                    $.ajax({
6429                      data: { nlo: $mobileHeaderFixedNlo.attr("data-nlo") },
6430                      success: function (response) {
6431                        // stop ya metrika webvisor DOM indexer
6432                        pauseYmObserver();
6433
6434                        isMobileNloLoaded = true;
6435                        $mobileHeaderFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
6436                        $mobileHeaderFixedNlo.remove();
6437
6438                        OnMobileHeaderFixedScrollHandler();
6439
6440                        // resume ya metrika webvisor
6441                        // (300ms transition) + (100ms scroll handler)
6442                        setTimeout(resumeYmObserver, 400);
6443                      },
6444                      error: function () {
6445                        $mobileHeaderFixedNlo.removeClass("nlo-loadings");
6446                      },
6447                    });
6448                  }, 300);
6449                }
6450              } else {
6451                //console.log(scrollTop, mheaderFixedHeight);
6452                isMHeaderFixed = true;
6453                mfixed.addClass("fixed");
6454              }
6455            }
6456          } else if (isMHeaderFixed) {
6457            if (scrollTop <= mheaderDiffHeight + mheaderTop) {
6458              isMHeaderFixed = false;
6459              mfixed.removeClass("fixed");
6460              $("#headerfixed_mobile .menu.adaptive, #headerfixed_mobile .menu.full").removeClass("opened");
6461              $("#headerfixed_mobile .menu.full").css("display", "none");
6462            }
6463          }
6464        } else mfixed.removeClass("fixed");
6465      })
6466    );
6467  }
6468};

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.