PageSourceSearch

https://poly-color.ru/bitrix/templates/aspro_optimus/js/main.js

js poly-color.ru collected 2026-10-07 18:11:41 UTC 221,245 bytes, 6,395 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    }).success(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                      },
1673                    ],
1674                  },
1675                },
1676              });
1677              if (typeof callback == "function") {
1678                callback();
1679              }
1680            });
1681          }
1682        },
1683      });
1684    }
1685  }
1686}
1687
1688if (!funcDefined("setHeightCompany")) {
1689  function setHeightCompany() {
1690    $(".md-50.img").height($(".md-50.big").outerHeight() - 35);
1691  }
1692}
1693
1694if (!funcDefined("initSly")) {
1695  function initSly() {
1696    var $frame = $(document).find(".frame");
1697    var $slidee = $frame.children("ul").eq(0);
1698    var $wrap = $frame.parent();
1699
1700    if (arOptimusOptions["PAGES"]["CATALOG_PAGE"]) {
1701      $frame.sly({
1702        horizontal: 1,
1703        itemNav: "basic",
1704        smart: 1,
1705        mouseDragging: 0,
1706        touchDragging: 0,
1707        releaseSwing: 0,
1708        startAt: 0,
1709        scrollBar: $wrap.find(".scrollbar"),
1710        scrollBy: 1,
1711        speed: 300,
1712        elasticBounds: 0,
1713        easing: "swing",
1714        dragHandle: 1,
1715        dynamicHandle: 1,
1716        clickBar: 1,
1717
1718        // Buttons
1719        forward: $wrap.find(".forward"),
1720        backward: $wrap.find(".backward"),
1721      });
1722      $frame.sly("reload");
1723    }
1724  }
1725}
1726
1727if (!funcDefined("createTableCompare")) {
1728  function createTableCompare(originalTable, appendDiv, cloneTable) {
1729    try {
1730      var clone = originalTable.clone().removeAttr("id").addClass("clone");
1731      if (cloneTable.length) {
1732        cloneTable.remove();
1733        appendDiv.html("");
1734        appendDiv.html(clone);
1735      } else {
1736        appendDiv.append(clone);
1737      }
1738    } catch (e) {
1739    } finally {
1740    }
1741  }
1742}
1743
1744if (!funcDefined("fillBasketPropsExt")) {
1745  fillBasketPropsExt = function (that, prop_code, basket_prop_div) {
1746    var i = 0,
1747      propCollection = null,
1748      foundValues = false,
1749      basketParams = {},
1750      obBasketProps = null;
1751
1752    // obBasketProps = that.closest('.catalog_detail').find('.basket_props_block');
1753    if (that.closest("#fast_view_item").length)
1754      obBasketProps = that.closest("#fast_view_item").find("#" + basket_prop_div)[0];
1755    else obBasketProps = BX(basket_prop_div);
1756
1757    if (!!obBasketProps) {
1758      propCollection = obBasketProps.getElementsByTagName("select");
1759      if (!!propCollection && !!propCollection.length) {
1760        for (i = 0; i < propCollection.length; i++) {
1761          if (!propCollection[i].disabled) {
1762            switch (propCollection[i].type.toLowerCase()) {
1763              case "select-one":
1764                basketParams[propCollection[i].name] = propCollection[i].value;
1765                foundValues = true;
1766                break;
1767              default:
1768                break;
1769            }
1770          }
1771        }
1772      }
1773      propCollection = obBasketProps.getElementsByTagName("input");
1774      if (!!propCollection && !!propCollection.length) {
1775        for (i = 0; i < propCollection.length; i++) {
1776          if (!propCollection[i].disabled) {
1777            switch (propCollection[i].type.toLowerCase()) {
1778              case "hidden":
1779                basketParams[propCollection[i].name] = propCollection[i].value;
1780                foundValues = true;
1781                break;
1782              case "radio":
1783                if (propCollection[i].checked) {
1784                  basketParams[propCollection[i].name] = propCollection[i].value;
1785                  foundValues = true;
1786                }
1787                break;
1788              default:
1789                break;
1790            }
1791          }
1792        }
1793      }
1794    }
1795    if (!foundValues) {
1796      basketParams[prop_code] = [];
1797      basketParams[prop_code][0] = 0;
1798    }
1799    return basketParams;
1800  };
1801}
1802if (!funcDefined("showBasketError")) {
1803  showBasketError = function (mess, title, addButton, th) {
1804    var title_set = title ? title : BX.message("ERROR_BASKET_TITLE"),
1805      isButton = "N",
1806      thButton = "";
1807    if (typeof addButton !== undefined) {
1808      isButton = "Y";
1809    }
1810    if (typeof th !== undefined) {
1811      thButton = th;
1812    }
1813    $("body").append("<span class='add-error-bakset' style='display:none;'></span>");
1814    jqmEd("basket_error", "error-bakset", ".add-error-bakset", mess, this, title_set, isButton, thButton);
1815    $("body .add-error-bakset").click();
1816    $("body .add-error-bakset").remove();
1817  };
1818}
1819
1820if (!funcDefined("isRealValue")) {
1821  function isRealValue(obj) {
1822    return obj && obj !== "null" && obj !== "undefined";
1823  }
1824}
1825
1826if (!funcDefined("rightScroll")) {
1827  function rightScroll(prop, id) {
1828    var el = BX("prop_" + prop + "_" + id);
1829    if (el) {
1830      var curVal = parseInt(el.style.marginLeft);
1831      if (curVal >= 0) el.style.marginLeft = curVal - 20 + "%";
1832    }
1833  }
1834}
1835
1836if (!funcDefined("leftScroll")) {
1837  function leftScroll(prop, id) {
1838    var el = BX("prop_" + prop + "_" + id);
1839    if (el) {
1840      var curVal = parseInt(el.style.marginLeft);
1841      if (curVal < 0) el.style.marginLeft = curVal + 20 + "%";
1842    }
1843  }
1844}
1845
1846if (!funcDefined("InitOrderCustom")) {
1847  InitOrderCustom = function () {
1848    $(".ps_logo img").wrap('<div class="image"></div>');
1849
1850    $("#bx-soa-order .radio-inline").each(function () {
1851      if ($(this).find("input").attr("checked") == "checked") {
1852        $(this).addClass("checked");
1853      }
1854    });
1855
1856    $("#bx-soa-order .checkbox input[type=checkbox]").each(function () {
1857      if ($(this).attr("checked") == "checked") $(this).parent().addClass("checked");
1858    });
1859
1860    // $('#bx-soa-order .bx-authform-starrequired').each(function() {
1861    // 	var html = $(this).html();
1862    // 	$(this).closest('label').append('<span class="bx-authform-starrequired"> '+ html + '</span>');
1863    // 	$(this).detach();
1864    // });
1865    $(".bx_ordercart_coupon").each(function () {
1866      if ($(this).find(".bad").length) $(this).addClass("bad");
1867      else if ($(this).find(".good").length) $(this).addClass("good");
1868    });
1869    /*if (typeof(propsMap) !== 'undefined') {
1870			$(propsMap).on('click', function () {
1871				var value = $('#orderDescription').val();
1872				if ($('#orderDescription')) {
1873					if (value != '') {
1874						$('#orderDescription').closest('.form-group').addClass('value_y');
1875					}
1876				}
1877			});
1878		}*/
1879  };
1880}
1881
1882if (!funcDefined("InitLabelAnimation")) {
1883  InitLabelAnimation = function (className) {
1884    // Fix order labels
1885    if (!$(className).length) {
1886      return;
1887    }
1888    $(className)
1889      .find(".form-group")
1890      .each(function () {
1891        if (
1892          $(this).find("input[type=text], textarea").length &&
1893          !$(this).find(".dropdown-block").length &&
1894          $(this).find("input[type=text], textarea").val() != ""
1895        ) {
1896          $(this).addClass("value_y");
1897        }
1898      });
1899
1900    $(document).on("click", className + " .form-group:not(.bx-soa-pp-field) label", function () {
1901      $(this).parent().find("input, textarea").focus();
1902    });
1903
1904    $(document).on(
1905      "focusout",
1906      className +
1907        " .form-group:not(.bx-soa-pp-field) input, " +
1908        className +
1909        " .form-group:not(.bx-soa-pp-field) textarea",
1910      function () {
1911        var value = $(this).val();
1912        if (
1913          value != "" &&
1914          !$(this).closest(".form-group").find(".dropdown-block").length &&
1915          !$(this).closest(".form-group").find("#profile_change").length
1916        ) {
1917          $(this).closest(".form-group").addClass("value_y");
1918        } else {
1919          $(this).closest(".form-group").removeClass("value_y");
1920        }
1921      }
1922    );
1923
1924    $(document).on(
1925      "focus",
1926      className +
1927        " .form-group:not(.bx-soa-pp-field) input, " +
1928        className +
1929        " .form-group:not(.bx-soa-pp-field) textarea",
1930      function () {
1931        if (
1932          !$(this).closest(".form-group").find(".dropdown-block").length &&
1933          !$(this).closest(".form-group").find("#profile_change").length &&
1934          !$(this).closest(".form-group").find("[name=PERSON_TYPE_OLD]").length
1935        ) {
1936          $(this).closest(".form-group").addClass("value_y");
1937        }
1938      }
1939    );
1940  };
1941}
1942
1943checkPopupWidth = function () {
1944  $(".popup.show").each(function () {
1945    var width_form = $(this).actual("width");
1946    $(this).css({
1947      "margin-left": $(window).width() > width_form ? "-" + width_form / 2 + "px" : "-" + $(window).width() / 2 + "px",
1948    });
1949  });
1950};
1951
1952checkCaptchaWidth = function () {
1953  $(".captcha-row").each(function () {
1954    var width = $(this).actual("width");
1955    if ($(this).hasClass("b")) {
1956      if (width > 320) {
1957        $(this).removeClass("b");
1958      }
1959    } else {
1960      if (width <= 320) {
1961        $(this).addClass("b");
1962      }
1963    }
1964  });
1965};
1966
1967checkFormWidth = function () {
1968  $(".form .form_left").each(function () {
1969    var form = $(this).parents(".form");
1970    var width = form.actual("width");
1971    if (form.hasClass("b")) {
1972      if (width > 417) {
1973        form.removeClass("b");
1974      }
1975    } else {
1976      if (width <= 417) {
1977        form.addClass("b");
1978      }
1979    }
1980  });
1981};
1982
1983checkFormControlWidth = function () {
1984  $(".form-control").each(function () {
1985    var width = $(this).actual("width");
1986    var labelWidth = $(this).find("label:not(.error) > span").actual("width");
1987    var errorWidth = $(this).find("label.error").actual("width");
1988    if (errorWidth > 0) {
1989      if ($(this).hasClass("h")) {
1990        if (width > labelWidth + errorWidth + 5) {
1991          $(this).removeClass("h");
1992        }
1993      } else {
1994        if (width <= labelWidth + errorWidth + 5) {
1995          $(this).addClass("h");
1996        }
1997      }
1998    } else {
1999      $(this).removeClass("h");
2000    }
2001  });
2002};
2003
2004scrollToTop = function () {
2005  if (arOptimusOptions["THEME"]["SCROLLTOTOP_TYPE"] !== "NONE") {
2006    var _isScrolling = false;
2007    // Append Button
2008    $("body").append(
2009      $("<a />")
2010        .addClass(
2011          "scroll-to-top " +
2012            arOptimusOptions["THEME"]["SCROLLTOTOP_TYPE"] +
2013            " " +
2014            arOptimusOptions["THEME"]["SCROLLTOTOP_POSITION"]
2015        )
2016        .attr({ href: "#", id: "scrollToTop" })
2017    );
2018    $("#scrollToTop").click(function (e) {
2019      e.preventDefault();
2020      $("body, html").animate({ scrollTop: 0 }, 500);
2021      return false;
2022    });
2023    // Show/Hide Button on Window Scroll event.
2024    $(window).scroll(function () {
2025      if (!_isScrolling) {
2026        _isScrolling = true;
2027        if ($(window).scrollTop() > 150) {
2028          $("#scrollToTop").stop(true, true).addClass("visible");
2029          _isScrolling = false;
2030        } else {
2031          $("#scrollToTop").stop(true, true).removeClass("visible");
2032          _isScrolling = false;
2033        }
2034        checkScrollToTop();
2035      }
2036    });
2037  }
2038};
2039
2040checkScrollToTop = function () {
2041  var bottom = 55,
2042    scrollVal = $(window).scrollTop(),
2043    windowHeight = $(window).height(),
2044    footerOffset = 70;
2045  if ($("footer").length) footerOffset = $("footer").offset().top + 70;
2046
2047  if (arOptimusOptions["THEME"]["SCROLLTOTOP_POSITION"] == "CONTENT") {
2048    warpperWidth = $("body > .wrapper > .wrapper_inner").width();
2049    $("#scrollToTop").css("margin-left", Math.ceil(warpperWidth / 2) + 23);
2050  }
2051
2052  if (scrollVal + windowHeight > footerOffset) {
2053    $("#scrollToTop").css("bottom", bottom + scrollVal + windowHeight - footerOffset - 0);
2054  } else if (parseInt($("#scrollToTop").css("bottom")) > bottom) {
2055    $("#scrollToTop").css("bottom", bottom);
2056  }
2057};
2058
2059CheckObjectsSizes = function () {
2060  $(".container iframe,.container object,.container video").each(function () {
2061    var height_attr = $(this).attr("height");
2062    var width_attr = $(this).attr("width");
2063    if (height_attr && width_attr) {
2064      $(this).css("height", ($(this).outerWidth() * height_attr) / width_attr);
2065    }
2066  });
2067};
2068
2069if (!funcDefined("reloadTopBasket")) {
2070  var reloadTopBasket = function reloadTopBasket(action, basketWindow, speed, delay, slideDown, item) {
2071    var obj = {
2072      PARAMS: $("#top_basket_params").val(),
2073      ACTION: action,
2074    };
2075    if (typeof item !== "undefined") {
2076      obj.delete_top_item = "Y";
2077      obj.delete_top_item_id = item.data("id");
2078    }
2079    $.post(
2080      arOptimusOptions["SITE_DIR"] + "ajax/show_basket_popup.php",
2081      obj,
2082      $.proxy(function (data) {
2083        $(basketWindow).html(data);
2084
2085        getActualBasket();
2086
2087        if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
2088          if ($(window).outerWidth() > 520) {
2089            if (slideDown == "Y") $(basketWindow).find(".basket_popup_wrapp").stop(true, true).slideDown(speed);
2090            clearTimeout(basketTimeoutSlide);
2091            basketTimeoutSlide = setTimeout(function () {
2092              var _this = $("#basket_line").find(".basket_popup_wrapp");
2093              if (_this.is(":hover")) {
2094                _this.show();
2095              } else {
2096                $("#basket_line").find(".basket_popup_wrapp").slideUp(speed);
2097              }
2098            }, delay);
2099          }
2100        }
2101      })
2102    );
2103  };
2104}
2105
2106/*countdown start*/
2107
2108if (!funcDefined("initCountdown")) {
2109  var initCountdown = function initCountdown() {
2110    if ($(".view_sale_block").size()) {
2111      $(".view_sale_block").each(function () {
2112        var activeTo = $(this).find(".active_to").text(),
2113          dateTo = new Date(activeTo.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2114        $(this).find(".countdown").countdown(
2115          {
2116            until: dateTo,
2117            format: "dHMS",
2118            padZeroes: true,
2119            layout:
2120              '{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>',
2121          },
2122          $.countdown.regionalOptions["ru"]
2123        );
2124      });
2125    }
2126  };
2127}
2128
2129if (!funcDefined("initCountdownTime")) {
2130  var initCountdownTime = function initCountdownTime(block, time) {
2131    if (time) {
2132      var dateTo = new Date(time.replace(/(\d+)\.(\d+)\.(\d+)/, "$3/$2/$1"));
2133      block.find(".countdown").countdown("destroy");
2134      block.find(".countdown").countdown(
2135        {
2136          until: dateTo,
2137          format: "dHMS",
2138          padZeroes: true,
2139          layout:
2140            '{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>',
2141        },
2142        $.countdown.regionalOptions["ru"]
2143      );
2144      block.find(".view_sale_block").show();
2145    } else {
2146      block.find(".view_sale_block").hide();
2147    }
2148  };
2149}
2150
2151/*countdown end*/
2152
2153var isOnceInited = (insertFilter = false);
2154var animationTime = 200;
2155var delayTime = 200;
2156var topMenuEnterTimer = false;
2157var isMobile = jQuery.browser.mobile;
2158
2159if (isMobile) {
2160  document.documentElement.className += " mobile";
2161}
2162
2163/*filter start*/
2164if (!funcDefined("checkVerticalMobileFilter")) {
2165  var checkVerticalMobileFilter = function checkVerticalMobileFilter() {
2166    if ($(".right_block1.catalog.vertical").length && !$(".left_block.filter_ajax").length) {
2167      if (typeof window["trackBarOptions"] !== "undefined") {
2168        window["trackBarValues"] = {};
2169        for (key in window["trackBarOptions"]) {
2170          window["trackBarValues"][key] = {
2171            leftPercent: window["trackBar" + key].leftPercent,
2172            leftValue: window["trackBar" + key].minInput.value,
2173            rightPercent: window["trackBar" + key].rightPercent,
2174            rightValue: window["trackBar" + key].maxInput.value,
2175          };
2176        }
2177      }
2178
2179      if (window.matchMedia("(max-width: 950px)").matches) {
2180        if (!insertFilter) {
2181          $(".js_filter .bx_filter.bx_filter_vertical").html($(".left_block .bx_filter.bx_filter_vertical").html());
2182          $(".left_block .bx_filter.bx_filter_vertical .bx_filter_section").remove();
2183          insertFilter = true;
2184        }
2185      } else {
2186        if (insertFilter) {
2187          $(".left_block .bx_filter.bx_filter_vertical").html($(".js_filter .bx_filter.bx_filter_vertical").html());
2188          $(".js_filter .bx_filter.bx_filter_vertical .bx_filter_section").remove();
2189          insertFilter = false;
2190        }
2191      }
2192
2193      if (typeof window["trackBarOptions"] !== "undefined") {
2194        for (key in window["trackBarOptions"]) {
2195          window["trackBarOptions"][key].leftPercent = window["trackBarValues"][key].leftPercent;
2196          window["trackBarOptions"][key].rightPercent = window["trackBarValues"][key].rightPercent;
2197          window["trackBarOptions"][key].curMinPrice = window["trackBarValues"][key].leftValue;
2198          window["trackBarOptions"][key].curMaxPrice = window["trackBarValues"][key].rightValue;
2199          window["trackBar" + key] = new BX.Iblock.SmartFilter(window["trackBarOptions"][key]);
2200          window["trackBar" + key].minInput.value = window["trackBarValues"][key].leftValue;
2201          window["trackBar" + key].maxInput.value = window["trackBarValues"][key].rightValue;
2202        }
2203      }
2204    } else if ($(".left_block.filter_ajax").length) {
2205      var posBlock = $(".ajax_load").position();
2206
2207      $(".left_block.filter_ajax .bx_filter").css("top", posBlock.top - 13);
2208      if (
2209        $(".left_block.filter_ajax .bx_filter").is(":visible") &&
2210        !$(".adaptive_filter .filter_opener").hasClass("opened") &&
2211        window.matchMedia("(max-width: 950px)").matches
2212      ) {
2213        $(".adaptive_filter .filter_opener").addClass("opened");
2214      }
2215    }
2216  };
2217}
2218/*filter end*/
2219
2220// TOP MENU ANIMATION
2221$(document).on("click", ".menu_top_block>li .more a", function () {
2222  $this = $(this);
2223  $this.parents(".dropdown").first().find(">.hidden").removeClass("hidden");
2224  $this.parent().addClass("hidden");
2225  setTimeout(function () {
2226    $this.parent().remove();
2227  }, 500);
2228});
2229
2230$(document).on("mouseenter", ".menu_top_block.catalogfirst>li>.dropdown>li.full", function () {
2231  var $submenu = $(this).find(">.dropdown");
2232
2233  if ($submenu.length) {
2234    if (topMenuEnterTimer) {
2235      clearTimeout(topMenuEnterTimer);
2236      topMenuEnterTimer = false;
2237    }
2238  }
2239});
2240
2241$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () {
2242  var $submenu = $(this).find(">.dropdown");
2243
2244  if ($submenu.length && !$submenu.hasClass("visible")) {
2245    var $menu = $(this).parents(".menu");
2246    var $wrapmenu = $menu.parents(".wrap_menu");
2247    var wrapMenuWidth = $wrapmenu.actual("outerWidth");
2248    var wrapMenuLeft = $wrapmenu.offset().left;
2249    var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
2250    var left = wrapMenuRight - ($(this).offset().left + $submenu.actual("outerWidth"));
2251    if (
2252      window.matchMedia("(min-width: 951px)").matches &&
2253      $(this).hasClass("catalog") &&
2254      ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page"))
2255    ) {
2256      return;
2257    }
2258    if (left < 0) {
2259      $submenu.css({ left: left + "px" });
2260    }
2261    $submenu.stop().slideDown(animationTime, function () {
2262      $submenu.css({ height: "", overflow: "visible" });
2263    });
2264
2265    $(this).on("mouseleave", function () {
2266      var leaveTimer = setTimeout(function () {
2267        $submenu.stop().slideUp(animationTime, function () {
2268          $submenu.css({ left: "" });
2269        });
2270      }, delayTime);
2271
2272      $(this).on("mouseenter", function () {
2273        if (leaveTimer) {
2274          clearTimeout(leaveTimer);
2275          leaveTimer = false;
2276        }
2277      });
2278    });
2279  }
2280});
2281
2282$(document).on("mouseenter", ".menu_top_block>li:not(.full)", function () {
2283  if (
2284    window.matchMedia("(min-width: 951px)").matches &&
2285    $(this).hasClass("catalog") &&
2286    ($(".banner_auto").hasClass("catalog_page") || $(".banner_auto").hasClass("front_page"))
2287  ) {
2288    return;
2289  }
2290
2291  var _this = $(this).find(">.dropdown");
2292  var $catalogNlo = _this.find("[data-nlo]");
2293  var isNloLoaded = !$catalogNlo.length;
2294
2295  if (!isNloLoaded) {
2296    if (!$catalogNlo.hasClass("nlo-loadings")) {
2297      $catalogNlo.addClass("nlo-loadings");
2298      setTimeout(function () {
2299        $.ajax({
2300          data: { nlo: $catalogNlo.attr("data-nlo") },
2301          success: function (response) {
2302            // stop ya metrika webvisor DOM indexer
2303            pauseYmObserver();
2304
2305            isNloLoaded = true;
2306            $catalogNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
2307            $catalogNlo.remove();
2308
2309            // resume ya metrika webvisor
2310            // (300ms transition) + (100ms scroll handler)
2311            setTimeout(resumeYmObserver, 400);
2312          },
2313          error: function () {
2314            $catalogNlo.removeClass("nlo-loadings");
2315          },
2316        });
2317      }, 300);
2318    }
2319  }
2320});
2321
2322$(document).on("mouseenter", ".menu_top_block>li .dropdown>li", function () {
2323  var $this = $(this);
2324  var $submenu = $this.find(">.dropdown");
2325
2326  if (
2327    $submenu.length &&
2328    ((!$this.parents(".full").length && !$this.hasClass("full")) || $this.parents(".more").length)
2329  ) {
2330    var $menu = $this.parents(".menu");
2331    var $wrapmenu = $menu.parents(".wrap_menu");
2332    var arParentSubmenuForOpacity = [];
2333    topMenuEnterTimer = setTimeout(function () {
2334      var wrapMenuWidth = $wrapmenu.actual("outerWidth");
2335      var wrapMenuLeft = $wrapmenu.offset().left;
2336      var wrapMenuRight = wrapMenuLeft + wrapMenuWidth;
2337      var $parentSubmenu = $this.parent();
2338      var bToLeft = $parentSubmenu.hasClass("toleft") ? true : false;
2339      if (!bToLeft) {
2340        bToLeft = $this.offset().left + $this.actual("outerWidth") + $submenu.actual("outerWidth") > wrapMenuRight;
2341      } else {
2342        bToLeft = $this.offset().left + $this.actual("outerWidth") - $submenu.actual("outerWidth") < wrapMenuLeft;
2343      }
2344
2345      if (bToLeft) {
2346        $this.find(">.dropdown").addClass("toleft").show();
2347      } else {
2348        $this.find(">.dropdown").removeClass("toleft").show();
2349      }
2350      var submenuLeft = $submenu.offset().left;
2351      var submenuRight = submenuLeft + $submenu.actual("outerWidth");
2352
2353      $this.parents(".dropdown").each(function () {
2354        var $this = $(this);
2355        var leftOffset = $this.offset().left;
2356        var rightOffset = leftOffset + $this.actual("outerWidth");
2357        if (
2358          (leftOffset >= submenuLeft && leftOffset < submenuRight - 1) ||
2359          (rightOffset > submenuLeft + 1 && rightOffset <= submenuRight)
2360        ) {
2361          arParentSubmenuForOpacity.push($this);
2362          $this.find(">li>a").css({ opacity: "0.1" });
2363        }
2364      });
2365    }, delayTime);
2366
2367    $this.unbind("mouseleave");
2368    $this.on("mouseleave", function () {
2369      var leaveTimer = setTimeout(function () {
2370        $this.find(".dropdown").removeClass("toleft").hide();
2371        if (arParentSubmenuForOpacity.length) {
2372          for (i in arParentSubmenuForOpacity) {
2373            arParentSubmenuForOpacity[i].find(">li>a").css({ opacity: "" });
2374          }
2375        }
2376      }, delayTime);
2377
2378      $this.unbind("mouseenter");
2379      $this.on("mouseenter", function () {
2380        if (leaveTimer) {
2381          clearTimeout(leaveTimer);
2382          leaveTimer = false;
2383        }
2384      });
2385    });
2386  }
2387});
2388
2389getGridSize = function (counts) {
2390  var counts_item = 1;
2391  //wide
2392  if (window.matchMedia("(min-width: 1200px)").matches) {
2393    counts_item = counts[0];
2394  }
2395
2396  //large
2397  if (window.matchMedia("(max-width: 1200px)").matches) {
2398    counts_item = counts[1];
2399  }
2400
2401  //middle
2402  if (window.matchMedia("(max-width: 992px)").matches) {
2403    counts_item = counts[2];
2404  }
2405
2406  //small
2407  if (counts[3]) {
2408    if (window.matchMedia("(max-width: 600px)").matches) {
2409      counts_item = counts[3];
2410    }
2411  }
2412
2413  //exsmall
2414  if (counts[4]) {
2415    if (window.matchMedia("(max-width: 400px)").matches) {
2416      counts_item = counts[4];
2417    }
2418  }
2419
2420  return counts_item;
2421};
2422
2423CheckFlexSlider = function () {
2424  $(".flexslider:not(.thmb)").each(function () {
2425    var slider = $(this);
2426    slider.resize();
2427    var counts = slider.data("flexslider").vars.counts;
2428    if (typeof counts != "undefined") {
2429      var cnt = getGridSize(counts);
2430      var to0 =
2431        cnt != slider.data("flexslider").vars.minItems ||
2432        cnt != slider.data("flexslider").vars.maxItems ||
2433        cnt != slider.data("flexslider").vars.move;
2434      if (to0) {
2435        slider.data("flexslider").vars.minItems = cnt;
2436        slider.data("flexslider").vars.maxItems = cnt;
2437        slider.data("flexslider").vars.move = cnt;
2438        slider.flexslider(0);
2439        slider.resize();
2440        slider.resize(); // twise!
2441      }
2442    }
2443  });
2444};
2445
2446InitFlexSlider = function () {
2447  $(".flexslider:not(.thmb):not(.flexslider-init)").each(function () {
2448    var slider = $(this);
2449    var options;
2450    var defaults = {
2451      animationLoop: false,
2452      controlNav: false,
2453      directionNav: true,
2454      animation: "slide",
2455    };
2456    var config = $.extend({}, defaults, options, slider.data("plugin-options"));
2457    if (!slider.parent().hasClass("top_slider_wrapp")) {
2458      if (typeof config.counts != "undefined" && config.direction !== "vertical") {
2459        config.maxItems = getGridSize(config.counts);
2460        config.minItems = getGridSize(config.counts);
2461        config.move = getGridSize(config.counts);
2462        config.itemWidth = 200;
2463      }
2464
2465      config.after = function (slider) {
2466        var eventdata = { slider: slider };
2467        BX.onCustomEvent("onSlide", [eventdata]);
2468      };
2469      config.start = function (slider) {
2470        var eventdata = { slider: slider };
2471        BX.onCustomEvent("onSlideInit", [eventdata]);
2472      };
2473
2474      config.end = function (slider) {
2475        var eventdata = { slider: slider };
2476        BX.onCustomEvent("onSlideEnd", [eventdata]);
2477      };
2478
2479      slider.flexslider(config).addClass("flexslider-init");
2480      if (config.controlNav) slider.addClass("flexslider-control-nav");
2481      if (config.directionNav) slider.addClass("flexslider-direction-nav");
2482    }
2483  });
2484};
2485
2486InitZoomPict = function (el) {
2487  var block = $(".zoom_picture");
2488  if (typeof el !== "undefined") block = el;
2489  if (block.length) {
2490    var slide = block.closest(".slides");
2491    var zoomer = block,
2492      options,
2493      defaults = {
2494        zoomWidth: 200,
2495        zoomHeight: 200,
2496        adaptive: false,
2497        title: true,
2498        Xoffset: 15,
2499      };
2500    var config = $.extend({}, defaults, options, zoomer.data("plugin-options"));
2501    zoomer.xzoom(config);
2502
2503    block.on("mouseleave", function () {
2504      block.data("xzoom").movezoom(event);
2505      /*
2506			if($('.xzoom-lens').length)
2507				block.data('xzoom').closezoom();
2508			*/
2509    });
2510  }
2511};
2512
2513if (!funcDefined("pauseYmObserver")) {
2514  // pause ya metrika webvisor MutationObserver callback (DOM indexer)
2515  // use before insert html with some animation
2516  pauseYmObserver = function () {
2517    if (
2518      typeof MutationObserver === "function" &&
2519      typeof MutationObserver.observers === "object" &&
2520      typeof MutationObserver.observers.ym === "object"
2521    ) {
2522      if (typeof pauseYmObserver.cnt === "undefined") {
2523        pauseYmObserver.cnt = 0;
2524      }
2525
2526      ++pauseYmObserver.cnt;
2527
2528      if (!MutationObserver.observers.ym.paused) {
2529        MutationObserver.observers.ym.pause();
2530      }
2531    }
2532  };
2533}
2534
2535if (!funcDefined("resumeYmObserver")) {
2536  // resume ya metrika webvisor MutationObserver callback
2537  // use when animation finished
2538  resumeYmObserver = function () {
2539    if (
2540      typeof MutationObserver === "function" &&
2541      typeof MutationObserver.observers === "object" &&
2542      typeof MutationObserver.observers.ym === "object"
2543    ) {
2544      if (typeof pauseYmObserver.cnt === "undefined") {
2545        pauseYmObserver.cnt = 1;
2546      }
2547
2548      pauseYmObserver.cnt -= pauseYmObserver.cnt > 0 ? 1 : 0;
2549
2550      if (!pauseYmObserver.cnt && MutationObserver.observers.ym.paused) {
2551        MutationObserver.observers.ym.resume();
2552      }
2553    }
2554  };
2555}
2556
2557var arBasketAsproCounters = {};
2558SetActualBasketFlyCounters = function () {
2559  if (arBasketAsproCounters.DEFAULT == true) {
2560    $.ajax({
2561      url: arOptimusOptions["SITE_DIR"] + "ajax/basket_fly.php",
2562      type: "post",
2563      success: function (html) {
2564        $("#basket_line .basket_fly").addClass("loaded").html(html);
2565      },
2566    });
2567  } else {
2568    $(".basket_fly .opener .basket_count .count")
2569      .attr("class", "count" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty_items"))
2570      .find(".items span")
2571      .text(arBasketAsproCounters.READY.COUNT);
2572    $(".basket_fly .opener .basket_count + a").attr("href", arBasketAsproCounters["READY"]["HREF"]);
2573    $(".basket_fly .opener .basket_count")
2574      .attr("title", arBasketAsproCounters.READY.TITLE)
2575      .attr("class", "basket_count small clicked" + (arBasketAsproCounters.READY.COUNT > 0 ? "" : " empty"));
2576
2577    $(".basket_fly .opener .wish_count .count")
2578      .attr("class", "count" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty_items"))
2579      .find(".items span")
2580      .text(arBasketAsproCounters.DELAY.COUNT);
2581    $(".basket_fly .opener .wish_count + a").attr("href", arBasketAsproCounters.DELAY.HREF);
2582    $(".basket_fly .opener .wish_count")
2583      .attr("title", arBasketAsproCounters.DELAY.TITLE)
2584      .attr("class", "wish_count small clicked" + (arBasketAsproCounters.DELAY.COUNT > 0 ? "" : " empty"));
2585
2586    $(".basket_fly .opener .compare_count .count")
2587      .attr("class", "count" + (arBasketAsproCounters.COMPARE.COUNT > 0 ? "" : " empty_items"))
2588      .find(".items span")
2589      .text(arBasketAsproCounters.COMPARE.COUNT);
2590    $(".basket_fly .opener .compare_count + a").attr("href", arBasketAsproCounters.COMPARE.HREF);
2591
2592    $(".basket_fly .opener .user_block")
2593      .attr("title", arBasketAsproCounters.PERSONAL.TITLE)
2594      .find("+ a")
2595      .attr("href", arBasketAsproCounters.PERSONAL.HREF);
2596    $(".basket_fly .opener .user_block .wraps_icon_block")
2597      .attr(
2598        "class",
2599        "wraps_icon_block" +
2600          (arBasketAsproCounters.PERSONAL.ID > 0 ? " user_auth" : " user_reg") +
2601          (arBasketAsproCounters.PERSONAL.SRC ? " w_img" : " no_img")
2602      )
2603      .attr(
2604        "style",
2605        arBasketAsproCounters.PERSONAL.SRC
2606          ? 'background:url("' + arBasketAsproCounters.PERSONAL.SRC + '") center center no-repeat;'
2607          : ""
2608      );
2609
2610    const eventdata = { action: "loadActualBasket" };
2611    BX.onCustomEvent("onCompleteAction", [eventdata]);
2612  }
2613};
2614
2615/*set price item*/
2616if (!funcDefined("setPriceItem")) {
2617  var setPriceItem = function setPriceItem(main_block, quantity, rewrite_price, check_quantity, is_sku) {
2618    var old_quantity = main_block.find(".to-cart").attr("data-ratio"),
2619      value =
2620        typeof rewrite_price !== "undefined" && rewrite_price
2621          ? rewrite_price
2622          : main_block.find(".to-cart").attr("data-value"),
2623      currency = main_block.find(".to-cart").attr("data-currency"),
2624      total_block = '<div class="total_summ"><div>' + BX.message("TOTAL_SUMM_ITEM") + "<span></span></div></div>",
2625      price_block = main_block.find(".cost.prices"),
2626      check = typeof check_quantity !== "undefined" && check_quantity;
2627
2628    if (main_block.find(".buy_block").length) {
2629      if (!main_block.find(".buy_block .total_summ").length) $(total_block).appendTo(main_block.find(".buy_block"));
2630    } else if (main_block.find(".counter_wrapp").length) {
2631      if (!main_block.find(".counter_wrapp .total_summ").length)
2632        $(total_block).appendTo(main_block.find(".counter_wrapp:first"));
2633    }
2634    if (main_block.find(".total_summ").length) {
2635      if (value && currency) {
2636        if (
2637          ((1 == quantity && old_quantity == quantity) || (typeof is_sku !== "undefined" && is_sku && !check)) &&
2638          arOptimusOptions.THEME.SHOW_TOTAL_SUMM !== "ALWAYS"
2639        ) {
2640          main_block.find(".total_summ").slideUp(200);
2641        } else {
2642          main_block.find(".total_summ span").html(BX.Currency.currencyFormat(value * quantity, currency, true));
2643          if (main_block.find(".total_summ").is(":hidden")) main_block.find(".total_summ").slideDown(200);
2644        }
2645      } else main_block.find(".total_summ").slideUp(200);
2646    }
2647  };
2648}
2649
2650if (!funcDefined("getCurrentPrice")) {
2651  var getCurrentPrice = function getCurrentPrice(price, currency, print_price) {
2652    var val = "";
2653    var format_value = BX.Currency.currencyFormat(price, currency);
2654    if (print_price.indexOf(format_value) >= 0) {
2655      val = print_price.replace(
2656        format_value,
2657        '<span class="price_value">' + format_value + '</span><span class="price_currency">'
2658      );
2659      val += "</span>";
2660    } else {
2661      val = print_price;
2662    }
2663
2664    return val;
2665  };
2666}
2667
2668$(document).ready(function () {
2669  //ecommerce order
2670  if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) {
2671    var arUrl = parseUrlQuery();
2672    if ("ORDER_ID" in arUrl) {
2673      var _id = arUrl["ORDER_ID"];
2674      if (arOptimusOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
2675        var eventdata = { goal: "goal_order_success", result: _id };
2676        BX.onCustomEvent("onCounterGoals", [eventdata]);
2677      }
2678
2679      if (checkCounters()) {
2680        if (typeof BX.localStorage !== "undefined") {
2681          var d = BX.localStorage.get("gtm_e_" + _id);
2682          if (typeof d === "object") {
2683            waitLayer(100, function () {
2684              dataLayer.push({ event: arOptimusOptions["COUNTERS"]["GOOGLE_EVENTS"]["PURCHASE"], ecommerce: d });
2685            });
2686          }
2687
2688          if (typeof localStorage !== "undefined") {
2689            localStorage.removeItem("gtm_e_" + _id);
2690          }
2691        }
2692      }
2693    }
2694  }
2695
2696  // ya.metrika debug
2697  if (arOptimusOptions["COUNTERS"]["USE_DEBUG_GOALS"] === "Y") {
2698    $.cookie("_ym_debug", 1, { path: "/" });
2699  } else {
2700    $.cookie("_ym_debug", null, { path: "/" });
2701  }
2702
2703  scrollToTop();
2704  checkVerticalMobileFilter();
2705  checkFormWidth();
2706
2707  if (!jQuery.browser.safari) {
2708    setTimeout(function () {
2709      InitTopestMenuGummi();
2710      InitTopMenuGummi();
2711      isOnceInited = true;
2712
2713      InitFlexSlider();
2714
2715      // setTimeout(function() {$(window).resize();}, 150); // need to check resize flexslider & menu
2716
2717      try {
2718        // SHOW TOP MENU ON READY AFTER GUMMI
2719        $("header .wrap_menu").css({ overflow: "visible" });
2720        $(".visible_on_ready").removeClass("visible_on_ready");
2721      } catch (e) {
2722        console.error(e);
2723      }
2724    }, 100);
2725  } else {
2726    setTimeout(function () {
2727      $(window).resize(); // need to check resize flexslider & menu
2728      setTimeout(function () {
2729        InitTopestMenuGummi();
2730        InitTopMenuGummi();
2731        isOnceInited = true;
2732
2733        InitFlexSlider();
2734
2735        try {
2736          // SHOW TOP MENU ON READY AFTER GUMMI
2737          $("header .wrap_menu").css({ overflow: "visible" });
2738          $(".visible_on_ready").removeClass("visible_on_ready");
2739        } catch (e) {
2740          console.error(e);
2741        }
2742
2743        setTimeout(function () {
2744          $(window).scroll();
2745        }, 50);
2746      }, 50);
2747    }, 350);
2748  }
2749
2750  InitZoomPict();
2751
2752  $("body").on("click", ".captcha_reload", function (e) {
2753    var captcha = $(this).parents(".captcha-row");
2754    e.preventDefault();
2755    $.ajax({
2756      url: arOptimusOptions["SITE_DIR"] + "ajax/captcha.php",
2757    }).done(function (text) {
2758      captcha.find("input[name=captcha_sid]").val(text);
2759      captcha.find("img").attr("src", "/bitrix/tools/captcha.php?captcha_sid=" + text);
2760      captcha.find("input[name=captcha_word]").val("").removeClass("error");
2761      captcha.find(".captcha_input").removeClass("error").find(".error").remove();
2762    });
2763  });
2764
2765  setTimeout(function () {
2766    $(".bg_image_site").css({
2767      opacity: 1,
2768    });
2769  }, 200);
2770
2771  if (window.matchMedia("(min-width: 768px)").matches) {
2772    $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
2773  }
2774
2775  if (window.matchMedia("(max-width: 767px)").matches) {
2776    $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
2777  }
2778
2779  setTimeout(function () {
2780    $(window).scroll();
2781  }, 400);
2782
2783  $(".menu_top_block .v_bottom > a").on("click", function (e) {
2784    if ($(e.target).hasClass("toggle_block")) e.preventDefault();
2785  });
2786  $(".menu_top_block .v_bottom > a .toggle_block").on("click", function (e) {
2787    $(this).closest(".v_bottom").toggleClass("opened");
2788    $(this).closest(".v_bottom").find(">.dropdown").slideToggle();
2789  });
2790
2791  $(document).on("click", ".show_props",  function() {
2792    $(this).prev(".props_list_wrapp").stop().slideToggle(333);
2793    $(this).find(".char_title").toggleClass("opened");
2794  });
2795
2796  $(document).on(
2797    "mouseenter",
2798    ".menu_top_block.catalog_block >.dropdown>li.m_line, .menu_top_block.catalogfirst > li >.dropdown>li.m_line",
2799    function () {
2800      var _this = $(this);
2801      if (window.dropdownTimeout && window.dropdownTimeout[_this.index()]) {
2802        clearTimeout(window.dropdownTimeout[_this.index()]);
2803      }
2804
2805      var dropdown = _this.find("> ul");
2806      if (dropdown.length) {
2807        var offset = dropdown[0].getBoundingClientRect();
2808        var offsetLi = _this[0].getBoundingClientRect();
2809        var offsetUl = _this.closest("ul")[0].getBoundingClientRect();
2810        var bottomOuter = document.documentElement.clientHeight - offset.y - offset.height;
2811        if (bottomOuter < 0) {
2812          if (offset.height > document.documentElement.clientHeight && offsetUl.y < 0) {
2813            var dropdownTopMax = -offsetLi.y;
2814          } else {
2815            var dropdownTopMax = offsetUl.y - offsetLi.y;
2816          }
2817          var dropdownBottom = document.documentElement.clientHeight - offset.y - offsetLi.height;
2818          var dropdownTop = dropdownBottom + offsetLi.height - offset.height;
2819          if (dropdownTop < dropdownTopMax) {
2820            dropdownTop = dropdownTopMax;
2821          }
2822          dropdown.css({
2823            top: dropdownTop + "px",
2824            bottom: -dropdownBottom + "px",
2825            overflow: "auto",
2826          });
2827        }
2828      }
2829    }
2830  );
2831
2832  $(document).on(
2833    "mouseleave",
2834    ".menu_top_block.catalog_block >.dropdown>li.m_line, .menu_top_block.catalogfirst > li >.dropdown>li.m_line",
2835    function () {
2836      var _this = $(this);
2837      var dropdown = _this.find("> ul");
2838      if (dropdown.length) {
2839        if (!window.dropdownTimeout) {
2840          window.dropdownTimeout = {};
2841        }
2842        window.dropdownTimeout[_this.index()] = setTimeout(function () {
2843          dropdown.css({
2844            top: "",
2845            bottom: "",
2846          });
2847        }, 300);
2848      }
2849    }
2850  );
2851
2852  $(document).on("click", ".see_more",  function(e) {
2853    e.preventDefault();
2854    var see_more = $(this).is(".see_more") ? $(this) : $(this).parents(".see_more").first();
2855    var see_moreText = see_more.find("> a").length ? see_more.find("> a") : see_more;
2856    var see_moreHiden = see_more.parent().find("> .d");
2857    if (see_more.hasClass("open")) {
2858      see_moreText.text(BX.message("CATALOG_VIEW_MORE"));
2859      see_more.removeClass("open");
2860      see_moreHiden.hide();
2861    } else {
2862      see_moreText.text(BX.message("CATALOG_VIEW_LESS"));
2863      see_more.addClass("open");
2864      see_moreHiden.show();
2865    }
2866    return false;
2867  });
2868
2869  $(".button.faq_button").click(function (e) {
2870    e.preventDefault();
2871    $(this).toggleClass("opened");
2872    $(".faq_ask .form").slideToggle();
2873  });
2874
2875  $(".staff.list .staff_section .staff_section_title a").click(function (e) {
2876    e.preventDefault();
2877    $(this).parents(".staff_section").toggleClass("opened");
2878    $(this).parents(".staff_section").find(".staff_section_items").stop().slideToggle(600);
2879    $(this).parents(".staff_section_title").find(".opener_icon").toggleClass("opened");
2880  });
2881
2882  $(".jobs_wrapp .item .name").click(function (e) {
2883    $(this).closest(".item").toggleClass("opened");
2884    $(this).closest(".item").find(".description_wrapp").stop().slideToggle(600);
2885    $(this).closest(".item").find(".opener_icon").toggleClass("opened");
2886  });
2887
2888  $(document).on("click", ".faq.list .item .q a",  function(e) {
2889    e.preventDefault();
2890    $(this).parents(".item").toggleClass("opened");
2891    $(this).parents(".item").find(".a").stop().slideToggle();
2892    $(this).parents(".item").find(".q .opener_icon").toggleClass("opened");
2893  });
2894
2895  $(".opener_icon").click(function (e) {
2896    e.preventDefault();
2897    $(this).parent().find("a").trigger("click");
2898  });
2899
2900  $(document).on("click", ".to-order",  function(e) {
2901    e.preventDefault();
2902    $("body").append("<span class='evb-toorder' style='display:none;'></span>");
2903    jqmEd("to-order", arOptimusOptions["FORM"]["TOORDER_FORM_ID"], ".evb-toorder", "", this);
2904    $("body .evb-toorder").click();
2905    $("body .evb-toorder").remove();
2906  });
2907
2908  $(document).on("click", ".cheaper",  function(e) {
2909    e.preventDefault();
2910    $("body").append("<span class='evb-cheaper' style='display:none;'></span>");
2911    jqmEd("cheaper", arOptimusOptions["FORM"]["CHEAPER_FORM_ID"], ".evb-cheaper", "", this);
2912    $("body .evb-cheaper").click();
2913    $("body .evb-cheaper").remove();
2914  });
2915
2916  $(document).on('click', '.delivery', function(e){
2917		e.preventDefault();
2918		var dataProductId = $(this).data('param-product_id');
2919		var dataQuantity = $(this).data('param-quantity');
2920		$("body").append("<span class='evb-delivery' style='display:none;'></span>");
2921		jqmEd('delivery', arOptimusOptions['FORM']['DELIVERY_FORM_ID'].toLowerCase(), '.evb-delivery', 'product_id='+dataProductId+'&quantity='+dataQuantity, this);
2922		$("body .evb-delivery").click();
2923		$("body .evb-delivery").remove();
2924	
2925	});
2926	$(".animate-load").on("click", function () {
2927		if (!jQuery.browser.mobile) {
2928			$(this).parent().addClass("loadings");
2929		}
2930  });
2931	 
2932	// init calculate delivery with preview
2933	initCalculatePreview(); 
2934
2935  //$(".dotdot").dotdotdot();
2936
2937  $(document).on("click", ".more_block", function () {
2938    const content_offset = $(".catalog_detail .tabs_section").offset();
2939    const $descriptionTab = document.querySelector('.tabs_section .nav-tabs #description_tab');
2940
2941    if (window.matchMedia("(min-width: 768px)").matches) {
2942      if ($("#headerfixed").length) {
2943        content_offset.top -= $("#headerfixed").height();
2944      }
2945      if ($(".product-item-detail-tabs-container-fixed").length) {
2946        content_offset.top -= $(".product-item-detail-tabs-container-fixed").height();
2947      }
2948    }
2949
2950    if ($descriptionTab) {
2951      $descriptionTab.click();
2952    }
2953
2954    $("html, body").animate({ scrollTop: content_offset.top - 43 }, 400);
2955  });
2956
2957  $(document).on("click", ".counter_block:not(.basket) .plus", function () {
2958    if (!$(this).parents(".basket_wrapp").length) {
2959      if ($(this).parent().data("offers") != "Y") {
2960        var isDetailSKU2 = $(this).parents(".counter_block_wr").length,
2961          input = $(this).parents(".counter_block").find("input[type=text]"),
2962          tmp_ratio = !isDetailSKU2
2963            ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
2964            : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio"),
2965          isDblQuantity = !isDetailSKU2
2966            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
2967            : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio"),
2968          ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10),
2969          max_value = "";
2970        currentValue = input.val();
2971
2972        if (isDblQuantity)
2973          ratio =
2974            Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
2975            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
2976
2977        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
2978
2979        curValue += ratio;
2980        if (isDblQuantity) {
2981          curValue =
2982            Math.round(curValue * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
2983            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
2984        }
2985        if (parseFloat($(this).data("max")) > 0) {
2986          if (input.val() <= $(this).data("max")) {
2987            if (curValue <= $(this).data("max")) input.val(curValue);
2988
2989            input.change();
2990          }
2991        } else {
2992          input.val(curValue);
2993          input.change();
2994        }
2995      }
2996    }
2997  });
2998
2999  $(document).on("click", ".counter_block:not(.basket) .minus", function () {
3000    if (!$(this).parents(".basket_wrapp").length) {
3001      if ($(this).parent().data("offers") != "Y") {
3002        var isDetailSKU2 = $(this).parents(".counter_block_wr").length;
3003        input = $(this).parents(".counter_block").find("input[type=text]");
3004        (tmp_ratio = !isDetailSKU2
3005          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
3006          : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio")),
3007          (isDblQuantity = !isDetailSKU2
3008            ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
3009            : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio")),
3010          (ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10)),
3011          (max_value = "");
3012        currentValue = input.val();
3013
3014        if (isDblQuantity)
3015          ratio =
3016            Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3017            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3018
3019        curValue = isDblQuantity ? parseFloat(currentValue) : parseInt(currentValue, 10);
3020
3021        curValue -= ratio;
3022        if (isDblQuantity) {
3023          curValue =
3024            Math.round(curValue * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3025            arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3026        }
3027
3028        const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
3029        if (minValue) {
3030          ratio = minValue;
3031        }
3032
3033        if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
3034          if (currentValue > ratio) {
3035            if (curValue < ratio) {
3036              input.val(ratio);
3037            } else {
3038              input.val(curValue);
3039            }
3040            input.change();
3041          }
3042        } else {
3043          if (curValue > ratio) {
3044            input.val(curValue);
3045          } else {
3046            if (ratio) {
3047              input.val(ratio);
3048            } else if (currentValue > 1) {
3049              input.val(curValue);
3050            }
3051          }
3052          input.change();
3053        }
3054      }
3055    }
3056  });
3057
3058  $(".counter_block input[type=text]").numeric({ allow: "." });
3059  $(".counter_block input[type=text]").on("focus", function () {
3060    $(this).addClass("focus");
3061  });
3062  $(".counter_block input[type=text]").on("blur", function () {
3063    $(this).removeClass("focus");
3064  });
3065
3066  var timerInitCalculateDelivery = false;
3067
3068  $(document).on("change", ".counter_block input[type=text]", function (e) {
3069    const minValue = parseFloat($(this).parents(".counter_block").find(".minus").data("min"));
3070    const currentValue = parseFloat($(this).val());
3071    if (minValue === currentValue) {
3072      return;
3073    }
3074
3075    if (!$(this).parents(".basket_wrapp").length) {
3076      var val = $(this).val(),
3077        tmp_ratio = $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
3078          ? $(this).parents(".counter_wrapp").find(".to-cart").data("ratio")
3079          : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("ratio"),
3080        isDblQuantity = $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
3081          ? $(this).parents(".counter_wrapp").find(".to-cart").data("float_ratio")
3082          : $(this).parents(".counter_block_wr").find(".button_block .to-cart").data("float_ratio"),
3083        ratio = isDblQuantity ? parseFloat(tmp_ratio) : parseInt(tmp_ratio, 10),
3084        diff = val % ratio;
3085      if (isDblQuantity) {
3086        ratio =
3087          Math.round(ratio * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3088          arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3089        if (
3090          Math.round(diff * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3091            arOptimusOptions.JS_ITEM_CLICK.precisionFactor ==
3092          ratio
3093        )
3094          diff = 0;
3095      }
3096
3097      if ($(this).hasClass("focus")) {
3098        const intCount =
3099          Math.round(
3100            Math.round((val * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) / ratio) /
3101              arOptimusOptions.JS_ITEM_CLICK.precisionFactor
3102          ) || 1;
3103        val = intCount <= 1 ? ratio : intCount * ratio;
3104        val =
3105          Math.round(val * arOptimusOptions.JS_ITEM_CLICK.precisionFactor) /
3106          arOptimusOptions.JS_ITEM_CLICK.precisionFactor;
3107      }
3108
3109      if (parseFloat($(this).parents(".counter_block").find(".plus").data("max")) > 0) {
3110        if (val > parseFloat($(this).parents(".counter_block").find(".plus").data("max"))) {
3111          val = parseFloat($(this).parents(".counter_block").find(".plus").data("max"));
3112        }
3113      }
3114
3115      if (val < ratio) {
3116        val = ratio;
3117      } else if (!parseFloat(val)) {
3118        val = 1;
3119      }
3120
3121      $(this).parents(".counter_block").parent().parent().find(".to-cart").attr("data-quantity", val);
3122      $(this).parents(".counter_block").parent().parent().find(".one_click").attr("data-quantity", val);
3123      $(this).parents(".counter_block_wr").find(".one_click").attr("data-quantity", val);
3124      $(this).val(val);
3125
3126      var $calculate = $(this).closest(".item").length
3127			? $(this).closest(".item").find(".calculate-delivery")
3128			: $(this).closest(".catalog_detail").find(".calculate-delivery");
3129			if ($calculate.length) {
3130				$calculate.each(function () {
3131				var $calculateSpan = $(this).find("span[data-event=jqm]").first();
3132		
3133				if ($calculateSpan.length) {
3134					var $clone = $calculateSpan.clone();
3135					$clone.attr("data-param-quantity", val).removeClass("clicked");
3136					$clone.insertAfter($calculateSpan).on("click", function () {
3137					if (!jQuery.browser.mobile) {
3138						$(this).parent().addClass("loadings");
3139					}
3140					});
3141					$calculateSpan.remove();
3142				}
3143		
3144				if ($(this).hasClass("with_preview")) {
3145					$(this).removeClass("inited");
3146		
3147					if (timerInitCalculateDelivery) {
3148					clearTimeout(timerInitCalculateDelivery);
3149					}
3150		
3151					timerInitCalculateDelivery = setTimeout(function () {
3152					initCalculatePreview();
3153					timerInitCalculateDelivery = false;
3154					}, 1000);
3155				}
3156				});
3157			}
3158
3159      var eventdata = { type: "change", params: { id: $(this), value: val } };
3160      BX.onCustomEvent("onCounterProductAction", [eventdata]);
3161    }
3162  });
3163
3164  BX.addCustomEvent("onCounterProductAction", function (eventdata) {
3165    if (typeof eventdata != "object") {
3166      eventdata = { type: "undefined" };
3167    }
3168    try {
3169      if (typeof eventdata.type != "undefined") {
3170        if (!eventdata.params.id.closest(".gifts").length) {
3171          // no gift
3172          var obProduct = eventdata.params.id.data("product");
3173          if (eventdata.params.id.closest(".item_info").find(".sku_props").length) {
3174            if (typeof window.obSkuQuantys === "undefined") window.obSkuQuantys = {};
3175
3176            const offerID = eventdata.params.id.closest(".offer_buy_block").find(".to-cart").data("item");
3177            window.obSkuQuantys[offerID] = eventdata.params.value;
3178          }
3179
3180          if (typeof window[obProduct] === "object") {
3181            if (obProduct === "obOffers") {
3182              setPriceAction("", "", "Y");
3183            } else {
3184              window[obProduct].setPriceAction("Y");
3185            }
3186          } else if (eventdata.params.id.length) {
3187            if (
3188              eventdata.params.id.closest(".main_item_wrapper").length &&
3189              arOptimusOptions["THEME"]["SHOW_TOTAL_SUMM"] != "N"
3190            ) {
3191              setPriceItem(eventdata.params.id.closest(".main_item_wrapper"), eventdata.params.value);
3192            }
3193          }
3194          BX.onCustomEvent("onCounterProductActionResize");
3195        }
3196      }
3197    } catch (e) {
3198      console.error(e);
3199    }
3200  });
3201
3202  /*slide cart*/
3203  $(document).on("mouseenter", "#basket_line .basket_normal:not(.empty_cart):not(.bcart) .basket_block ", function () {
3204    $(this).closest(".basket_normal").find(".popup").addClass("block");
3205    $(this).closest(".basket_normal").find(".basket_popup_wrapp").stop(true, true).slideDown(150);
3206  });
3207  $(document).on("mouseleave", "#basket_line .basket_normal .basket_block ", function () {
3208    var th = $(this);
3209    $(this)
3210      .closest(".basket_normal")
3211      .find(".basket_popup_wrapp")
3212      .stop(true, true)
3213      .slideUp(150, function () {
3214        th.closest(".basket_normal").find(".popup").removeClass("block");
3215      });
3216  });
3217
3218  $(document).on("click", ".fast_view_block",  function() {
3219    var _th = $(this),
3220      iblockid = _th.data("param-iblock_id"),
3221      href = _th.data("param-item_href"),
3222      name = _th.data("param-form_id");
3223
3224    $("body #popup_iframe_wrapper")
3225      .find("." + name + "_frame")
3226      .remove();
3227    $("body #popup_iframe_wrapper")
3228      .find("." + name + "_trigger")
3229      .remove();
3230    $("body #popup_iframe_wrapper").append('<div class="' + name + '_frame popup"></div>');
3231    $("body #popup_iframe_wrapper").append('<div class="' + name + '_trigger"></div>');
3232    $("." + name + "_frame").jqm({
3233      trigger: "." + name + "_trigger",
3234      onHide: function (hash) {
3235        onHidejqm(name, hash);
3236      },
3237      onLoad: function (hash) {
3238        onLoadjqm(name, hash);
3239      },
3240      ajax:
3241        arOptimusOptions["SITE_DIR"] + "ajax/form.php?form_id=fast_view&iblock_id=" + iblockid + "&item_href=" + href,
3242    });
3243    $("." + name + "_trigger").click();
3244  });
3245
3246  $(document).on("click", ".popup_button_basket", function () {
3247    var th = $(".to-cart[data-item=" + $(this).data("item") + "]");
3248
3249    var val = th.attr("data-quantity");
3250
3251    if (!val) $val = 1;
3252
3253    var tmp_props = th.data("props"),
3254      props = "",
3255      part_props = "",
3256      add_props = "N",
3257      fill_prop = {},
3258      iblockid = th.data("iblockid"),
3259      offer = th.data("offers"),
3260      rid = "",
3261      basket_props = "",
3262      item = th.attr("data-item");
3263
3264    if (offer != "Y") {
3265      offer = "N";
3266    } else {
3267      basket_props = th.closest(".prices_tab").find(".bx_sku_props input").val();
3268    }
3269    if (tmp_props) {
3270      props = tmp_props.split(";");
3271    }
3272    if (th.data("part_props")) {
3273      part_props = th.data("part_props");
3274    }
3275    if (th.data("add_props")) {
3276      add_props = th.data("add_props");
3277    }
3278    if ($(".rid_item").length) {
3279      rid = $(".rid_item").data("rid");
3280    } else if (th.data("rid")) {
3281      rid = th.data("rid");
3282    }
3283
3284    fill_prop = fillBasketPropsExt(th, "prop", "bx_ajax_text");
3285
3286    fill_prop.quantity = val;
3287    fill_prop.add_item = "Y";
3288    fill_prop.rid = rid;
3289    fill_prop.offers = offer;
3290    fill_prop.iblockID = iblockid;
3291    fill_prop.part_props = part_props;
3292    fill_prop.add_props = add_props;
3293    fill_prop.props = JSON.stringify(props);
3294    fill_prop.item = item;
3295    fill_prop.basket_props = basket_props;
3296
3297    $.ajax({
3298      type: "POST",
3299      url: arOptimusOptions["SITE_DIR"] + "ajax/item.php",
3300      data: fill_prop,
3301      dataType: "json",
3302      success: function (data) {
3303        $(".basket_error_frame").jqmHide();
3304        if ("STATUS" in data) {
3305          getActualBasket(fill_prop.iblockID);
3306          if (data.STATUS === "OK") {
3307            th.hide();
3308            th.closest(".counter_wrapp").find(".counter_block").hide();
3309            th.parents("tr").find(".counter_block_wr .counter_block").hide();
3310            th.closest(".button_block").addClass("wide");
3311            th.parent().find(".in-cart").show();
3312
3313            addBasketCounter(item);
3314            $(".wish_item[data-item=" + item + "]").removeClass("added");
3315            $(".wish_item[data-item=" + item + "]")
3316              .find(".value")
3317              .show();
3318            $(".wish_item[data-item=" + item + "]")
3319              .find(".value.added")
3320              .hide();
3321            if ($("#basket_line .cart").length) {
3322              if ($("#basket_line .cart").is(".empty_cart")) {
3323                $("#basket_line .cart")
3324                  .removeClass("empty_cart")
3325                  .find(".cart_wrapp a.basket_link")
3326                  .removeAttr("href")
3327                  .addClass("cart-call");
3328                $("#basket_line .cart").removeClass("ecart");
3329                touchBasket(".cart:not(.empty_cart) .basket_block .link");
3330              }
3331
3332              reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y");
3333            } else if ($("#basket_line .basket_fly").length) {
3334              if ($(window).outerWidth() > 768) {
3335                basketFly("open");
3336              } else {
3337                basketFly("refresh");
3338              }
3339            }
3340          } else {
3341            showBasketError(BX.message(data.MESSAGE));
3342          }
3343        } else {
3344          showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
3345        }
3346      },
3347    });
3348  });
3349
3350  $(document).on("click", ".to-cart:not(.read_more)", function (e) {
3351    e.preventDefault();
3352    var th = $(this);
3353
3354    var val = $(this).attr("data-quantity");
3355
3356    if (!val) $val = 1;
3357
3358    var tmp_props = $(this).data("props"),
3359      props = "",
3360      part_props = "",
3361      add_props = "N",
3362      fill_prop = {},
3363      iblockid = $(this).data("iblockid"),
3364      offer = $(this).data("offers"),
3365      rid = "",
3366      basket_props = "",
3367      item = $(this).attr("data-item");
3368
3369    if (offer != "Y") {
3370      offer = "N";
3371    } else {
3372      basket_props = $(this).closest(".prices_tab").find(".bx_sku_props input").val();
3373    }
3374    if (tmp_props) {
3375      props = tmp_props.split(";");
3376    }
3377    if ($(this).data("part_props")) {
3378      part_props = $(this).data("part_props");
3379    }
3380    if ($(this).data("add_props")) {
3381      add_props = $(this).data("add_props");
3382    }
3383    if ($(".rid_item").length) {
3384      rid = $(".rid_item").data("rid");
3385    } else if ($(this).data("rid")) {
3386      rid = $(this).data("rid");
3387    }
3388
3389    fill_prop = fillBasketPropsExt(th, "prop", th.data("bakset_div"));
3390
3391    fill_prop.quantity = val;
3392    fill_prop.add_item = "Y";
3393    fill_prop.rid = rid;
3394    fill_prop.offers = offer;
3395    fill_prop.iblockID = iblockid;
3396    fill_prop.part_props = part_props;
3397    fill_prop.add_props = add_props;
3398    fill_prop.props = JSON.stringify(props);
3399    fill_prop.item = item;
3400    fill_prop.basket_props = basket_props;
3401
3402    if (th.data("empty_props") == "N") {
3403      showBasketError($("#" + th.data("bakset_div")).html(), BX.message("ERROR_BASKET_PROP_TITLE"), "Y", th);
3404    } else {
3405      $.ajax({
3406        type: "POST",
3407        url: arOptimusOptions["SITE_DIR"] + "ajax/item.php",
3408        data: fill_prop,
3409        dataType: "json",
3410        success: function (data) {
3411          getActualBasket(fill_prop.iblockID);
3412          if (data !== null) {
3413            if ("STATUS" in data) {
3414              if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
3415              if (data.STATUS === "OK") {
3416                /*th.hide();
3417								th.closest('.counter_wrapp').find('.counter_block').hide();
3418								th.parents('tr').find('.counter_block_wr .counter_block').hide();
3419								th.closest('.button_block').addClass('wide');
3420								th.parent().find('.in-cart').show();*/
3421
3422                $(".to-cart[data-item=" + item + "]").hide();
3423                $(".to-cart[data-item=" + item + "]")
3424                  .closest(".counter_wrapp")
3425                  .find(".counter_block")
3426                  .hide();
3427                $(".to-cart[data-item=" + item + "]")
3428                  .parents("tr")
3429                  .find(".counter_block_wr .counter_block")
3430                  .hide();
3431                $(".to-cart[data-item=" + item + "]")
3432                  .closest(".button_block")
3433                  .addClass("wide");
3434                $(".to-cart[data-item=" + item + "]")
3435                  .parent()
3436                  .find(".in-cart")
3437                  .show();
3438
3439                addBasketCounter(item);
3440                $(".wish_item[data-item=" + item + "]").removeClass("added");
3441                $(".wish_item[data-item=" + item + "]")
3442                  .find(".value")
3443                  .show();
3444                $(".wish_item[data-item=" + item + "]")
3445                  .find(".value.added")
3446                  .hide();
3447                if ($("#basket_line .cart").length) {
3448                  if ($("#basket_line .cart").is(".empty_cart")) {
3449                    $("#basket_line .cart")
3450                      .removeClass("empty_cart")
3451                      .find(".cart_wrapp a.basket_link")
3452                      .removeAttr("href")
3453                      .addClass("cart-call");
3454                    $("#basket_line .cart").removeClass("ecart");
3455                    touchBasket(".cart:not(.empty_cart) .basket_block .link");
3456                  }
3457
3458                  reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y");
3459                } else if ($("#basket_line .basket_fly").length) {
3460                  if ($(window).outerWidth() > 768) {
3461                    basketFly("open");
3462                  } else {
3463                    basketFly("refresh");
3464                  }
3465                }
3466              } else {
3467                showBasketError(BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT);
3468              }
3469            } else {
3470              showBasketError(BX.message("CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR"));
3471            }
3472          } else {
3473            /*th.hide();
3474						th.closest('.counter_wrapp').find('.counter_block').hide();
3475						th.parents('tr').find('.counter_block_wr .counter_block').hide();
3476						th.closest('.button_block').addClass('wide');
3477						th.parent().find('.in-cart').show();*/
3478
3479            $(".to-cart[data-item=" + item + "]").hide();
3480            $(".to-cart[data-item=" + item + "]")
3481              .closest(".counter_wrapp")
3482              .find(".counter_block")
3483              .hide();
3484            $(".to-cart[data-item=" + item + "]")
3485              .parents("tr")
3486              .find(".counter_block_wr .counter_block")
3487              .hide();
3488            $(".to-cart[data-item=" + item + "]")
3489              .closest(".button_block")
3490              .addClass("wide");
3491            $(".to-cart[data-item=" + item + "]")
3492              .parent()
3493              .find(".in-cart")
3494              .show();
3495
3496            addBasketCounter(item);
3497            $(".wish_item[data-item=" + item + "]").removeClass("added");
3498            $(".wish_item[data-item=" + item + "]")
3499              .find(".value")
3500              .show();
3501            $(".wish_item[data-item=" + item + "]")
3502              .find(".value.added")
3503              .hide();
3504            if ($("#basket_line .cart").length) {
3505              if ($("#basket_line .cart").is(".empty_cart")) {
3506                $("#basket_line .cart")
3507                  .removeClass("empty_cart")
3508                  .find(".cart_wrapp a.basket_link")
3509                  .removeAttr("href")
3510                  .addClass("cart-call");
3511                $("#basket_line .cart").removeClass("ecart");
3512                touchBasket(".cart:not(.empty_cart) .basket_block .link");
3513              }
3514
3515              reloadTopBasket("add", $("#basket_line"), 200, 5000, "Y");
3516            } else if ($("#basket_line .basket_fly").length && $(window).outerWidth() > 768) {
3517              basketFly("open");
3518            }
3519          }
3520        },
3521      });
3522    }
3523  });
3524
3525  $(document).on("click", ".to-subscribe", function (e) {
3526    e.preventDefault();
3527    if ($(this).is(".auth")) {
3528      if ($(this).hasClass("nsubsc")) {
3529        $("body").append("<span class='evb-subs' style='display:none;'></span>");
3530        jqmEd("subscribe", "subscribe", ".evb-subs", "id=" + $(this).data("item"), this);
3531        $("body .evb-subs").click();
3532        $("body .evb-subs").remove();
3533      } else {
3534        location.href = arOptimusOptions["SITE_DIR"] + "auth/?backurl=" + location.pathname;
3535      }
3536    } else {
3537      var item = $(this).attr("data-item"),
3538        iblockid = $(this).attr("data-iblockid");
3539      $(this).hide();
3540      $(this).parent().find(".in-subscribe").show();
3541      $.get(
3542        arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
3543        $.proxy(function (data) {
3544          $(".wish_item[data-item=" + item + "]").removeClass("added");
3545          getActualBasket(iblockid);
3546        })
3547      );
3548    }
3549  });
3550
3551  $(document).on("click", ".in-subscribe", function (e) {
3552    e.preventDefault();
3553    var item = $(this).attr("data-item"),
3554      iblockid = $(this).attr("data-iblockid");
3555    $(this).hide();
3556    $(this).parent().find(".to-subscribe").show();
3557    $.get(
3558      arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&subscribe_item=Y",
3559      $.proxy(function (data) {
3560        getActualBasket(iblockid);
3561      })
3562    );
3563  });
3564
3565  $(document).on("keyup", function (e) {
3566    if (e.keyCode == 27) {
3567      if ($(".jqmWindow").length) {
3568        $(".jqmWindow").jqmHide();
3569      }
3570    }
3571  });
3572
3573  $(document).on("click", ".wish_item", function (e) {
3574    e.preventDefault();
3575    var val = $(this).attr("data-quantity"),
3576      offer = $(this).data("offers"),
3577      iblockid = $(this).data("iblock"),
3578      tmp_props = $(this).data("props"),
3579      props = "",
3580      item = $(this).attr("data-item");
3581    item2 = $(this).attr("data-item");
3582    if (!val) $val = 1;
3583    if (offer != "Y") offer = "N";
3584    if (tmp_props) {
3585      props = tmp_props.split(";");
3586    }
3587    if (!$(this).hasClass("text")) {
3588      if ($(this).hasClass("added")) {
3589        $(this).hide();
3590        $(this).closest(".wish_item_button").find(".to").show();
3591
3592        $(".like_icons").each(function () {
3593          if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) {
3594            $(this)
3595              .find('.wish_item.text[data-item="' + item + '"]')
3596              .removeClass("added");
3597            $(this)
3598              .find('.wish_item.text[data-item="' + item + '"]')
3599              .find(".value")
3600              .show();
3601            $(this)
3602              .find('.wish_item.text[data-item="' + item + '"]')
3603              .find(".value.added")
3604              .hide();
3605          }
3606          if ($(this).find(".wish_item_button").length) {
3607            $(this)
3608              .find(".wish_item_button")
3609              .find('.wish_item[data-item="' + item + '"]')
3610              .removeClass("added");
3611            $(this)
3612              .find(".wish_item_button")
3613              .find('.wish_item[data-item="' + item + '"]')
3614              .find(".value")
3615              .show();
3616            $(this)
3617              .find(".wish_item_button")
3618              .find('.wish_item[data-item="' + item + '"]')
3619              .find(".value.added")
3620              .hide();
3621          }
3622        });
3623      } else {
3624        $(this).hide();
3625        $(this).closest(".wish_item_button").find(".in").addClass("added").show();
3626
3627        $(".like_icons").each(function () {
3628          if ($(this).find('.wish_item.text[data-item="' + item + '"]').length) {
3629            $(this)
3630              .find('.wish_item.text[data-item="' + item + '"]')
3631              .addClass("added");
3632            $(this)
3633              .find('.wish_item.text[data-item="' + item + '"]')
3634              .find(".value")
3635              .hide();
3636            $(this)
3637              .find('.wish_item.text[data-item="' + item + '"]')
3638              .find(".value.added")
3639              .css({ display: "block" });
3640          }
3641          if ($(this).find(".wish_item_button").length) {
3642            $(this)
3643              .find(".wish_item_button")
3644              .find('.wish_item[data-item="' + item + '"]')
3645              .addClass("added");
3646            $(this)
3647              .find(".wish_item_button")
3648              .find('.wish_item[data-item="' + item + '"]')
3649              .find(".value")
3650              .hide();
3651            $(this)
3652              .find(".wish_item_button")
3653              .find('.wish_item[data-item="' + item + '"]')
3654              .find(".value.added")
3655              .show();
3656          }
3657        });
3658      }
3659    } else {
3660      if (!$(this).hasClass("added")) {
3661        $(".wish_item[data-item=" + item + "]").addClass("added");
3662        $(".wish_item[data-item=" + item + "]")
3663          .find(".value")
3664          .hide();
3665        $(".wish_item[data-item=" + item + "]")
3666          .find(".value.added")
3667          .css("display", "block");
3668
3669        $(".like_icons").each(function () {
3670          if ($(this).find(".wish_item_button").length) {
3671            $(this)
3672              .find(".wish_item_button")
3673              .find('.wish_item[data-item="' + item + '"]')
3674              .addClass("added");
3675            $(this)
3676              .find(".wish_item_button")
3677              .find('.wish_item[data-item="' + item + '"]')
3678              .find(".value")
3679              .hide();
3680            $(this)
3681              .find(".wish_item_button")
3682              .find('.wish_item[data-item="' + item + '"]')
3683              .find(".value.added")
3684              .show();
3685          }
3686        });
3687      } else {
3688        $(".wish_item[data-item=" + item + "]").removeClass("added");
3689        $(".wish_item[data-item=" + item + "]")
3690          .find(".value")
3691          .show();
3692        $(".wish_item[data-item=" + item + "]")
3693          .find(".value.added")
3694          .hide();
3695
3696        $(".like_icons").each(function () {
3697          if ($(this).find(".wish_item_button").length) {
3698            $(this)
3699              .find(".wish_item_button")
3700              .find('.wish_item[data-item="' + item + '"]')
3701              .removeClass("added");
3702            $(this)
3703              .find(".wish_item_button")
3704              .find('.wish_item[data-item="' + item + '"]')
3705              .find(".value")
3706              .show();
3707            $(this)
3708              .find(".wish_item_button")
3709              .find('.wish_item[data-item="' + item + '"]')
3710              .find(".value.added")
3711              .hide();
3712          }
3713        });
3714      }
3715    }
3716
3717    $(".in-cart[data-item=" + item + "]").hide();
3718    $(".to-cart[data-item=" + item + "]")
3719      .parent()
3720      .removeClass("wide");
3721    $(".to-cart[data-item=" + item + "]").show();
3722    $(".counter_block[data-item=" + item + "]").show();
3723    if (
3724      !$(".counter_block[data-item=" + item + "]")
3725        .closest(".counter_wrapp")
3726        .find(".to-order").length
3727    ) {
3728      $(".to-cart[data-item=" + item + "]").show();
3729      $(".counter_block[data-item=" + item + "]").show();
3730    }
3731    if (!$(this).closest(".module-cart").size()) {
3732      $.ajax({
3733        type: "GET",
3734        url: arOptimusOptions["SITE_DIR"] + "ajax/item.php",
3735        data:
3736          "item=" +
3737          item2 +
3738          "&quantity=" +
3739          val +
3740          "&wish_item=Y" +
3741          "&offers=" +
3742          offer +
3743          "&iblockID=" +
3744          iblockid +
3745          "&props=" +
3746          JSON.stringify(props),
3747        dataType: "json",
3748        success: function (data) {
3749          getActualBasket(iblockid);
3750          if (data !== null) {
3751            if (data.MESSAGE_EXT === null) data.MESSAGE_EXT = "";
3752            if ("STATUS" in data) {
3753              if (data.STATUS === "OK") {
3754                if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
3755                  var eventdata = { goal: "goal_wish_add", params: { id: item2 } };
3756                  BX.onCustomEvent("onCounterGoals", [eventdata]);
3757                }
3758                if ($("#basket_line .cart").size()) {
3759                  reloadTopBasket("wish", $("#basket_line"), 200, 5000, "N");
3760                } else {
3761                  basketFly("wish");
3762                }
3763              } else {
3764                showBasketError(
3765                  BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT,
3766                  BX.message("ERROR_ADD_DELAY_ITEM")
3767                );
3768              }
3769            } else {
3770              showBasketError(
3771                BX.message(data.MESSAGE) + " <br/>" + data.MESSAGE_EXT,
3772                BX.message("ERROR_ADD_DELAY_ITEM")
3773              );
3774            }
3775          } else {
3776            if ($("#basket_line .cart").size()) {
3777              reloadTopBasket("wish", $("#basket_line"), 200, 5000, "N");
3778            } else {
3779              basketFly("wish");
3780            }
3781          }
3782        },
3783      });
3784    }
3785  });
3786
3787  $(document).on("click", ".compare_item", function (e) {
3788    e.preventDefault();
3789    var item = $(this).attr("data-item");
3790    var iblockID = $(this).attr("data-iblock");
3791    if (!$(this).hasClass("text")) {
3792      if ($(this).hasClass("added")) {
3793        $(this).hide();
3794        $(this).closest(".compare_item_button").find(".to").show();
3795
3796        /*sync other button*/
3797        $(".like_icons").each(function () {
3798          if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) {
3799            $(this)
3800              .find('.compare_item.text[data-item="' + item + '"]')
3801              .removeClass("added");
3802            $(this)
3803              .find('.compare_item.text[data-item="' + item + '"]')
3804              .find(".value")
3805              .show();
3806            $(this)
3807              .find('.compare_item.text[data-item="' + item + '"]')
3808              .find(".value.added")
3809              .hide();
3810          }
3811          if ($(this).find(".compare_item_button").length) {
3812            $(this)
3813              .find(".compare_item_button")
3814              .find('.compare_item[data-item="' + item + '"]')
3815              .removeClass("added");
3816            $(this)
3817              .find(".compare_item_button")
3818              .find('.compare_item[data-item="' + item + '"]')
3819              .find(".value")
3820              .show();
3821            $(this)
3822              .find(".compare_item_button")
3823              .find('.compare_item[data-item="' + item + '"]')
3824              .find(".value.added")
3825              .hide();
3826          }
3827        });
3828      } else {
3829        $(this).hide();
3830        $(this).closest(".compare_item_button").find(".in").show();
3831
3832        /*sync other button*/
3833        $(".like_icons").each(function () {
3834          if ($(this).find('.compare_item.text[data-item="' + item + '"]').length) {
3835            $(this)
3836              .find('.compare_item.text[data-item="' + item + '"]')
3837              .addClass("added");
3838            $(this)
3839              .find('.compare_item.text[data-item="' + item + '"]')
3840              .find(".value")
3841              .hide();
3842            $(this)
3843              .find('.compare_item.text[data-item="' + item + '"]')
3844              .find(".value.added")
3845              .css({ display: "block" });
3846          }
3847          if ($(this).find(".compare_item_button").length) {
3848            $(this)
3849              .find(".compare_item_button")
3850              .find('.compare_item[data-item="' + item + '"]')
3851              .addClass("added");
3852            $(this)
3853              .find(".compare_item_button")
3854              .find('.compare_item[data-item="' + item + '"]')
3855              .find(".value.added")
3856              .show();
3857            $(this)
3858              .find(".compare_item_button")
3859              .find('.compare_item[data-item="' + item + '"]')
3860              .find(".value")
3861              .hide();
3862          }
3863        });
3864      }
3865    } else {
3866      if (!$(this).hasClass("added")) {
3867        $(".compare_item[data-item=" + item + "]").addClass("added");
3868        $(".compare_item[data-item=" + item + "]")
3869          .find(".value")
3870          .hide();
3871        $(".compare_item[data-item=" + item + "]")
3872          .find(".value.added")
3873          .css("display", "block");
3874
3875        /*sync other button*/
3876        $(".like_icons").each(function () {
3877          if ($(this).find(".compare_item_button").length) {
3878            $(this)
3879              .find(".compare_item_button")
3880              .find('.compare_item[data-item="' + item + '"]')
3881              .addClass("added");
3882            $(this)
3883              .find(".compare_item_button")
3884              .find('.compare_item[data-item="' + item + '"]')
3885              .find(".value.added")
3886              .show();
3887            $(this)
3888              .find(".compare_item_button")
3889              .find('.compare_item[data-item="' + item + '"]')
3890              .find(".value")
3891              .hide();
3892          }
3893        });
3894      } else {
3895        $(".compare_item[data-item=" + item + "]").removeClass("added");
3896        $(".compare_item[data-item=" + item + "]")
3897          .find(".value")
3898          .show();
3899        $(".compare_item[data-item=" + item + "]")
3900          .find(".value.added")
3901          .hide();
3902
3903        /*sync other button*/
3904        $(".like_icons").each(function () {
3905          if ($(this).find(".compare_item_button").length) {
3906            $(this)
3907              .find(".compare_item_button")
3908              .find('.compare_item[data-item="' + item + '"]')
3909              .removeClass("added");
3910            $(this)
3911              .find(".compare_item_button")
3912              .find('.compare_item[data-item="' + item + '"]')
3913              .find(".value")
3914              .show();
3915            $(this)
3916              .find(".compare_item_button")
3917              .find('.compare_item[data-item="' + item + '"]')
3918              .find(".value.added")
3919              .hide();
3920          }
3921        });
3922      }
3923    }
3924
3925    $.get(
3926      arOptimusOptions["SITE_DIR"] + "ajax/item.php?item=" + item + "&compare_item=Y&iblock_id=" + iblockID,
3927      $.proxy(function (data) {
3928        getActualBasket(iblockID, "Comapre");
3929        jsAjaxUtil.InsertDataToNode(
3930          arOptimusOptions["SITE_DIR"] + "ajax/show_compare_preview_top.php",
3931          "compare_line",
3932          false
3933        );
3934        if ($("#compare_fly").length) {
3935          jsAjaxUtil.InsertDataToNode(
3936            arOptimusOptions["SITE_DIR"] + "ajax/show_compare_preview_fly.php",
3937            "compare_fly",
3938            false
3939          );
3940        }
3941      })
3942    );
3943  });
3944
3945  const handlePinchZoomiOS = function(e) {
3946    e.preventDefault();
3947  }
3948
3949  const $viewport = document.querySelector('meta[name=viewport]');
3950  var metaViewport;
3951
3952  const handlePinchZoom = function(add) {
3953    const $html = document.querySelector('html');
3954
3955    if (!!~$html.className.indexOf('bx-core')) {
3956      if (!metaViewport) {
3957        metaViewport = Object.fromEntries($viewport.getAttribute('content').split(',').map(function(el) {
3958          return el.trim().split('=');
3959        }));
3960      }
3961
3962      const handleMetaViewport = function(add) {
3963        let viewportData = Object.assign({}, metaViewport);
3964    
3965        if (add) {
3966          viewportData['maximum-scale'] = 1;
3967          viewportData['user-scalable'] = 'no';
3968        }
3969    
3970        viewportData = Object.keys(viewportData).map(function(el) {
3971          return el + '=' + viewportData[el];
3972        }).join(', ');
3973      
3974        $viewport.setAttribute('content', viewportData);
3975      }
3976
3977      if (add) {
3978        if (!!~$html.className.indexOf('bx-ios')) {
3979          document.addEventListener('gesturestart', handlePinchZoomiOS);
3980        } else {
3981          handleMetaViewport(true);
3982        }
3983      } else {
3984        if (!!~$html.className.indexOf('bx-ios')) {
3985          document.removeEventListener('gesturestart', handlePinchZoomiOS);
3986        } else {
3987          handleMetaViewport();
3988        }
3989      }
3990    }
3991  }
3992
3993  $(".fancy").fancybox({
3994    openEffect: "fade",
3995    closeEffect: "fade",
3996    nextEffect: "fade",
3997    prevEffect: "fade",
3998    tpl: {
3999      closeBtn:
4000        '<a title="' + BX.message("FANCY_CLOSE") + '" class="fancybox-item fancybox-close" href="javascript:;"></a>',
4001      next:
4002        '<a title="' +
4003        BX.message("FANCY_NEXT") +
4004        '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
4005      prev:
4006        '<a title="' +
4007        BX.message("FANCY_PREV") +
4008        '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
4009    },
4010    beforeLoad: function() {
4011      if (window.visualViewport.scale > 1) {
4012        return false;
4013      }
4014    },
4015    beforeShow: function() {
4016      handlePinchZoom(true);
4017    },
4018    beforeClose: function() {
4019      handlePinchZoom();
4020    }
4021  });
4022
4023  $(".tabs>li").on("click", function () {
4024    if (!$(this).hasClass("active")) {
4025      var sliderIndex = $(this).index(),
4026        curLiNav = $(this)
4027          .closest(".top_blocks")
4028          .find(".slider_navigation")
4029          .find(">li:eq(" + sliderIndex + ")"),
4030        curLi = $(this)
4031          .closest(".top_blocks")
4032          .siblings(".tabs_content")
4033          .find(">li:eq(" + sliderIndex + ")");
4034      $(this).addClass("active").addClass("cur").siblings().removeClass("active").removeClass("cur");
4035      curLi.addClass("cur").siblings().removeClass("cur");
4036      curLiNav.addClass("cur").siblings().removeClass("cur");
4037
4038      // //equal height
4039      // curLi
4040      //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title")
4041      //   .sliceHeight({ item: ".catalog_item:visible", resize: false, mobile: true });
4042      // curLi
4043      //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible")
4044      //   .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", resize: false, mobile: true });
4045      // curLi
4046      //   .find(".catalog_block .catalog_item_wrapp .catalog_item:visible")
4047      //   .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", resize: false, mobile: true });
4048    }
4049  });
4050
4051  /*search click*/
4052  $(".search_block .icon").on("click", function () {
4053    var th = $(this);
4054    if ($(this).hasClass("open")) {
4055      $(this).closest(".center_block").find(".search_middle_block").removeClass("active");
4056      $(this).removeClass("open");
4057      $(this).closest(".center_block").find(".search_middle_block").find(".noborder").hide();
4058    } else {
4059      setTimeout(function () {
4060        th.closest(".center_block").find(".search_middle_block").find(".noborder").show();
4061      }, 100);
4062      $(this).closest(".center_block").find(".search_middle_block").addClass("active");
4063      $(this).addClass("open");
4064    }
4065  });
4066  $(document).on("mouseenter", ".display_list .item_wrap", function () {
4067    $(this).prev().addClass("prev");
4068  });
4069  $(document).on("mouseleave", ".display_list .item_wrap", function () {
4070    $(this).prev().removeClass("prev");
4071  });
4072  $(document).on("mouseenter", ".catalog_block .item_wrap", function () {
4073    $(this).addClass("shadow_delay");
4074  });
4075  $(document).on("mouseleave", ".catalog_block .item_wrap", function () {
4076    $(this).removeClass("shadow_delay");
4077  });
4078  $(document).on("click", ".no_goods .button", function () {
4079    $(".bx_filter .smartfilter .bx_filter_search_reset").trigger("click");
4080  });
4081
4082  $(document).on("click", ".ajax_load_btn", function () {
4083    var url = $(this).closest(".container").find(".module-pagination .flex-direction-nav .flex-next").attr("href"),
4084      th = $(this).find(".more_text_ajax");
4085
4086    var objUrl = parseUrlQuery(),
4087      add_url = "",
4088      bTabsBlock = false,
4089      obGetData = { ajax_get: "Y", AJAX_REQUEST: "Y" };
4090
4091    th.addClass("loading");
4092
4093    /*hit on front*/
4094    if (th.closest(".tab_slider_wrapp.specials").length) {
4095      var curLi = $(this).closest(".tab"),
4096        url = th.closest(".tabs_content").data("url");
4097
4098      bTabsBlock = true;
4099      obGetData.AJAX_POST = "Y";
4100      obGetData.FILTER_HIT_PROP = curLi.data("code");
4101      obGetData.AJAX_PARAMS = $(this).closest(".tab_slider_wrapp").find(".request-data").data("value");
4102      obGetData.GLOBAL_FILTER = curLi.data("filter");
4103
4104      add_url = "?PAGEN_1=" + curLi.find(".nav-inner-wrapper").data("page");
4105    }
4106    /**/
4107
4108    if ("clear_cache" in objUrl) {
4109      if (objUrl.clear_cache == "Y") {
4110        add_url += (add_url.length ? "&" : "?") + "clear_cache=Y";
4111      }
4112    }
4113
4114    $.ajax({
4115      url: url + add_url,
4116      // data: {"ajax_get": "Y"},
4117      data: obGetData,
4118      type: bTabsBlock ? "POST" : "GET",
4119      success: function (html) {
4120        var new_html = $.parseHTML(html);
4121        th.removeClass("loading");
4122
4123        /*hit on front*/
4124        if (th.closest(".tab_slider_wrapp.specials").length) {
4125          curLi.find(".catalog_block").append(html);
4126          curLi.find(".catalog_block .wrap_nav").remove();
4127
4128          // curLi
4129          //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible .item-title")
4130          //   .sliceHeight({ item: ".catalog_item:visible", mobile: true });
4131          // curLi
4132          //   .find(".catalog_block .catalog_item_wrapp .catalog_item .item_info:visible")
4133          //   .sliceHeight({ item: ".catalog_item:visible", mobile: true });
4134          // curLi
4135          //   .find(".catalog_block .catalog_item_wrapp .catalog_item:visible")
4136          //   .sliceHeight({ classNull: ".footer_button", item: ".catalog_item:visible", mobile: true });
4137
4138          curLi.find(".bottom_nav").html($(html).find(".bottom_nav").html());
4139        } else {
4140          if ($(".display_list").length) {
4141            $(".display_list").append(html);
4142          } else if ($(".block_list").length) {
4143            $(".block_list").append(html);
4144            touchItemBlock(".catalog_item a");
4145          } else if ($(".module_products_list").length) {
4146            $(".module_products_list > tbody").append(html);
4147          }
4148          $(".bottom_nav").html($(html).find(".bottom_nav").html());
4149        }
4150        setStatusButton();
4151        initCountdown();
4152        showTotalSummItem();
4153        BX.onCustomEvent("onAjaxSuccess");
4154      },
4155    });
4156  });
4157
4158  $(document).on("click", ".bx_compare .tabs-head li", function () {
4159    var url = $(this).find(".sortbutton").data("href");
4160    BX.showWait(BX("bx_catalog_compare_block"));
4161    $.ajax({
4162      url: url,
4163      data: { ajax_action: "Y" },
4164      success: function (html) {
4165        history.pushState(null, null, url);
4166        $("#bx_catalog_compare_block").html(html);
4167        BX.closeWait();
4168      },
4169    });
4170  });
4171  var hoveredTrs;
4172  $(document).on(
4173    {
4174      mouseover: function (e) {
4175        var _ = $(this);
4176        var tbodyIndex = _.closest("tbody").index() + 1; //+1 for nth-child
4177        var trIndex = _.index() + 1; // +1 for nth-child
4178        hoveredTrs = $(e.delegateTarget)
4179          .find(".data_table_props")
4180          .children(":nth-child(" + tbodyIndex + ")")
4181          .children(":nth-child(" + trIndex + ")")
4182          .addClass("hovered");
4183      },
4184      mouseleave: function (e) {
4185        if (hoveredTrs) hoveredTrs.removeClass("hovered");
4186      },
4187    },
4188    ".bx_compare .data_table_props tbody>tr"
4189  );
4190  $(document).on("click", ".fancy_offer", function (e) {
4191    e.preventDefault();
4192    var arPict = [];
4193    $(".sliders .slides_block li").each(function () {
4194      var obImg = {};
4195      obImg = {
4196        title: $(this).find("img").attr("alt"),
4197        href: $(this).data("big"),
4198      };
4199      if ($(this).hasClass("current")) {
4200        arPict.unshift(obImg);
4201      } else {
4202        arPict.push(obImg);
4203      }
4204    });
4205    $.fancybox(arPict, {
4206      openEffect: "fade",
4207      closeEffect: "fade",
4208      nextEffect: "fade",
4209      prevEffect: "fade",
4210      type: "image",
4211      tpl: {
4212        closeBtn:
4213          '<a title="' + BX.message("FANCY_CLOSE") + '" class="fancybox-item fancybox-close" href="javascript:;"></a>',
4214        next:
4215          '<a title="' +
4216          BX.message("FANCY_NEXT") +
4217          '" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
4218        prev:
4219          '<a title="' +
4220          BX.message("FANCY_PREV") +
4221          '" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
4222      },
4223      beforeLoad: function() {
4224        if (window.visualViewport.scale > 1) {
4225          return false;
4226        }
4227      },
4228      beforeShow: function() {
4229        handlePinchZoom(true);
4230      },
4231      beforeClose: function() {
4232        handlePinchZoom();
4233      }
4234    });
4235  });
4236
4237  /*tabs*/
4238  $(document).on("click", ".tabs_section .tabs-head li",  function(e, s) {
4239    if (!$(this).is(".current")) {
4240      $(".tabs_section .tabs-head li").removeClass("current");
4241      $(this).addClass("current");
4242      $(".tabs_section ul.tabs_content li").removeClass("current");
4243      if ($(this).attr("id") == "product_reviews_tab") {
4244        $(".shadow.common").hide();
4245        if (s === "slide") {
4246          $("#reviews_content").slideDown(200, function () {});
4247          $(".tabs_section ul.tabs_content > li")
4248            .not(":eq(" + $(this).index() + ")")
4249            .find("> div + div")
4250            .slideUp(200, function () {});
4251          var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4252          container.find("> div + div").slideDown(200, function () {
4253            container.addClass("current");
4254          });
4255        } else {
4256          $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")").addClass("current");
4257          $(".tabs_section ul.tabs_content > li")
4258            .not(":eq(" + $(this).index() + ")")
4259            .find("> div + div")
4260            .hide();
4261          $("#for_product_reviews_tab").show();
4262          $("#reviews_content").show();
4263        }
4264      } else {
4265        $(".shadow.common").show();
4266        if (s === "slide") {
4267          $(".tabs_section ul.tabs_content > li")
4268            .not(":eq(" + $(this).index() + ")")
4269            .find("> div + div")
4270            .slideUp(200, function () {});
4271          var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4272          container.find("> div + div").slideDown(200, function () {
4273            container.addClass("current");
4274          });
4275        } else {
4276          $("#reviews_content").hide();
4277          $(".tabs_section ul.tabs_content > li > div + div").hide();
4278          var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4279          container.addClass("current");
4280          container.find("> div + div").show();
4281        }
4282      }
4283    } else if (s === "slide") {
4284      var container = $(".tabs_section ul.tabs_content > li:eq(" + $(this).index() + ")");
4285      container.find("> div + div").slideUp(200, function () {
4286        $(".tabs_section .tabs-head li").removeClass("current");
4287        $(".tabs_section ul.tabs_content li").removeClass("current");
4288      });
4289    }
4290  });
4291  $(document).on("click", ".tabs_section .tabs-body li .title-tab-heading",  function () {
4292    $(".tabs_section .tabs-head li:eq(" + $(this).parent("li").index() + ")").trigger("click", "slide");
4293  });
4294  /*open first section slide*/
4295  setTimeout(function () {
4296    $(".jobs_wrapp .item:first .name tr").trigger("click");
4297  }, 300);
4298
4299  $(document).on("click", ".buy_block .slide_offer", function () {
4300    scroll_block($(".tabs_section"));
4301  });
4302  $(".share_wrapp .text").on("click", function () {
4303    $(this).parent().find(".shares").fadeToggle();
4304  });
4305  $(document).on("mousedown", "html, body",  function (e) {
4306    e.stopPropagation();
4307    $(".shares").fadeOut();
4308    $(".search_middle_block").removeClass("active_wide");
4309  });
4310  // $(".share_wrapp")
4311  //   .find("*")
4312  //   .on("mousedown", function (e) {
4313  //     e.stopPropagation();
4314  //   });
4315  
4316  $(document).on("mousedown", ".share_wrapp *", function (e) { 
4317    e.stopPropagation();
4318  });
4319
4320  $(document).on("click", ".reviews-collapse-link", function () {
4321    $(".reviews-reply-form").slideToggle();
4322  });
4323
4324  initCountdown();
4325
4326  /*adaptive menu start*/
4327  $(".menu.adaptive").on("click", function () {
4328    $(this).toggleClass("opened");
4329    if ($(this).hasClass("opened")) {
4330      $(".mobile_menu").toggleClass("opened").slideDown();
4331    } else {
4332      $(".mobile_menu").toggleClass("opened").slideUp();
4333    }
4334  });
4335  /*$('.mobile_menu .has-child >a').on('click', function(e){
4336		var parentLi=$(this).parent();
4337		e.preventDefault();
4338		parentLi.toggleClass('opened');
4339		parentLi.find('.dropdown').slideToggle();
4340	})*/
4341
4342  $(".mobile_menu .has-child >div.toggle_mobile_menu").on("click", function (e) {
4343    var parentLi = $(this).parent();
4344    e.preventDefault();
4345    parentLi.toggleClass("opened");
4346    parentLi.find(".dropdown").slideToggle();
4347  });
4348
4349  $(document).on("keyup", ".mobile_menu .search-input-div input",  function (e) {
4350    var inputValue = $(this).val();
4351    $(".center_block .stitle_form input").val(inputValue);
4352    if (e.keyCode == 13) {
4353      $(".center_block .stitle_form form").submit();
4354    }
4355  });
4356
4357  $(document).on("keyup", ".center_block .stitle_form input",  function (e) {
4358    var inputValue = $(this).val();
4359    $(".mobile_menu .search-input-div input").val(inputValue);
4360    if (e.keyCode == 13) {
4361      $(".center_block .stitle_form form").submit();
4362    }
4363  });
4364
4365  $(document).on("click", ".mobile_menu .search-button-div button",  function (e) {
4366    e.preventDefault();
4367    var inputValue = $(this).parents().find("input").val();
4368    $(".center_block .stitle_form input").val(inputValue);
4369    $(".center_block .stitle_form form").submit();
4370  });
4371  /*adaptive menu end*/
4372
4373  $(".btn.btn-add").on("click", function () {
4374    $.ajax({
4375      type: "GET",
4376      url: arOptimusOptions["SITE_DIR"] + "ajax/clearBasket.php",
4377      success: function (data) {},
4378    });
4379  });
4380
4381  //set cookie for basket link click
4382  $(document).on(
4383    "click",
4384    ".bx_ordercart_order_table_container .control > a, .basket-item-actions-remove, a[data-entity=basket-item-remove-delayed]",
4385    function (e) {
4386      $.removeCookie("click_basket", { path: "/" });
4387      $.cookie("click_basket", "Y", { path: "/" });
4388    }
4389  );
4390
4391  /*detail order show payments*/
4392  $(".sale-order-detail-payment-options-methods-info-change-link").on("click", function () {
4393    $(this).closest(".sale-order-detail-payment-options-methods-info").addClass("opened").siblings().addClass("opened");
4394  });
4395
4396  /*expand/hide filter values*/
4397  $(document).on("click", ".expand_block", function () {
4398    togglePropBlock($(this));
4399  });
4400
4401  /*touch event*/
4402  document.addEventListener(
4403    "touchend",
4404    function (event) {
4405      if (!$(event.target).closest(".menu_item_l1").length) {
4406        $(".menu .menu_item_l1 .child").css({ display: "none" });
4407        $(".menu_item_l1").removeClass("hover");
4408      }
4409      if (!$(event.target).closest(".basket_block").length) {
4410        $(".basket_block .link").removeClass("hover");
4411        $(".basket_block .basket_popup_wrapp").slideUp();
4412      }
4413      if (!$(event.target).closest(".catalog_item").length) {
4414        var tabsContentUnhoverHover = $(".tab:visible").attr("data-unhover") * 1;
4415        if (tabsContentUnhoverHover) $(".tab:visible").stop().animate({ height: tabsContentUnhoverHover }, 100);
4416        $(".tab:visible").find(".catalog_item").removeClass("hover");
4417        $(".tab:visible").find(".catalog_item .buttons_block").stop().fadeOut(233);
4418        if ($(".catalog_block").length) {
4419          $(".catalog_block").find(".catalog_item").removeClass("hover");
4420          //$('.catalog_block').find('.catalog_item').blur();
4421        }
4422      }
4423      //togglePropBlock($(event.target));
4424    },
4425    false
4426  );
4427
4428  //touchItemBlock('.catalog_item a');
4429
4430  $(document).on("keyup", ".coupon .input_coupon input", function () {
4431    if ($(this).val().length) {
4432      $(this).removeClass("error");
4433      $(this).closest(".input_coupon").find(".error").remove();
4434    } else {
4435      $(this).addClass("error");
4436      $("<label class='error'>" + BX.message("INPUT_COUPON") + "</label>").insertBefore($(this));
4437    }
4438  });
4439  showPhoneMask("input[autocomplete=tel]");
4440  BX.addCustomEvent(window, "onAjaxSuccess", function (e) {
4441    if (e != "OK") {
4442      initSelects(document);
4443      // InitLabelAnimation('#bx-soa-order-form');
4444      InitOrderCustom();
4445      showPhoneMask("input[autocomplete=tel]");
4446      if ($("#content > .catalog_detail").length) {
4447        $(".bx_filter").remove();
4448      }
4449
4450      InitFlexSlider();
4451
4452      if (arOptimusOptions["PAGES"]["CATALOG_PAGE"]) {
4453        setStatusButton();
4454        initCountdown();
4455      }
4456
4457      if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) {
4458        orderActions(e);
4459      }
4460    }
4461  });
4462  BX.addCustomEvent(window, "onFrameDataRequestFail", function (response) {
4463    console.log(response);
4464  });
4465  
4466  $.fn.iAppear = function (callback, options) {
4467    if (typeof $.fn.iAppear.useObserver === "undefined") {
4468        $.fn.iAppear.useObserver =
4469            typeof window["IntersectionObserver"] === "function";
4470  
4471        if (!$.fn.iAppear.useObserver && typeof $.fn.appear !== "function") {
4472            $.fn.iAppear.queue = [];
4473            BX.loadScript(
4474              arOptimusOptions.SITE_TEMPLATE_PATH +
4475                    "/vendor/js/jquery.appear.js",
4476                function () {
4477                    if (typeof $.fn.iAppear.queue === "object") {
4478                        $.fn.iAppear.queue.forEach(function (queueItem) {
4479                            $(queueItem.items).iAppear(
4480                                queueItem.callback,
4481                                queueItem.options
4482                            );
4483                        });
4484                    }
4485                }
4486            );
4487  
4488            return;
4489        }
4490    }
4491  
4492    if ($.fn.iAppear.useObserver) {
4493        var options = $.extend(
4494            {
4495                root: null,
4496                rootMargin: "150px 0px 150px 0px",
4497                threshold: 0.0,
4498            },
4499            options
4500        );
4501  
4502        $(this).each(function (i, appearBlock) {
4503            var observer = new IntersectionObserver(function (
4504                entries,
4505                observer
4506            ) {
4507                entries.forEach(function (element) {
4508                    if (
4509                        element.intersectionRatio > 0 &&
4510                        !element.target.dataset.iAppeared
4511                    ) {
4512                        element.target.dataset.iAppeared = true;
4513  
4514                        if (typeof callback === "function") {
4515                            callback.call(element.target);
4516                        }
4517                    }
4518                });
4519            },
4520            options);
4521  
4522            observer.observe(appearBlock);
4523        });
4524    } else {
4525        if (typeof $.fn.appear !== "function") {
4526            if ($(this).length) {
4527                $.fn.iAppear.queue.push({
4528                    items: this,
4529                    callback: callback,
4530                    options: options,
4531                });
4532            }
4533  
4534            return;
4535        } else {
4536            if ($(this).length) {
4537                $(this).each(function (i, appearBlock) {
4538                    $(appearBlock).appear(function () {
4539                        if (typeof callback === "function") {
4540                            callback.call(appearBlock);
4541                        }
4542                    }, options);
4543                });
4544            }
4545        }
4546    }
4547  };
4548
4549  if ($(".appear-block").length) {
4550    $(".appear-block").iAppear(
4551      function () {
4552        const eventdata = { target: this };
4553        BX.onCustomEvent("onAppearVideoBlockShow", [eventdata]);
4554        var $this = $(this);
4555        $this.removeClass("appear-block");
4556        $this.find(".appear-block").removeClass("appear-block");
4557      },
4558      {
4559        rootMargin: "150px 0px 150px 0px",
4560        accX: 0,
4561        accY: 150,
4562      }
4563    )
4564  }
4565});
4566
4567if (!funcDefined("togglePropBlock")) {
4568  togglePropBlock = function (className) {
4569    var all_props_block = className.closest(".bx_filter_parameters_box_container").find(".hidden_values");
4570    if (all_props_block.length && (className.hasClass("inner_text") || className.hasClass("expand_block"))) {
4571      if (all_props_block.is(":visible")) {
4572        className.text(BX.message("FILTER_EXPAND_VALUES"));
4573        all_props_block.hide();
4574      } else {
4575        className.text(BX.message("FILTER_HIDE_VALUES"));
4576        all_props_block.show();
4577      }
4578    }
4579  };
4580}
4581
4582if (!funcDefined("showPhoneMask")) {
4583  showPhoneMask = function (className) {
4584    $(className).inputmask("mask", { mask: arOptimusOptions["THEME"]["PHONE_MASK"], showMaskOnHover: false });
4585  };
4586}
4587
4588if (!funcDefined("parseUrlQuery")) {
4589  parseUrlQuery = function () {
4590    var data = {};
4591    if (location.search) {
4592      var pair = location.search.substr(1).split("&");
4593      for (var i = 0; i < pair.length; i++) {
4594        var param = pair[i].split("=");
4595        data[param[0]] = param[1];
4596      }
4597    }
4598    return data;
4599  };
4600}
4601
4602if (!funcDefined("getActualBasket")) {
4603  getActualBasket = function (iblockID, type) {
4604    var data = "";
4605    if (typeof iblockID !== "undefined") {
4606      data = { iblockID: iblockID };
4607    }
4608    $.ajax({
4609      type: "GET",
4610      url: arOptimusOptions["SITE_DIR"] + "ajax/actualBasket.php",
4611      data: data,
4612      success: function (data) {
4613        if (!$(".js_ajax").length) $("body").append('<div class="js_ajax"></div>');
4614        $(".js_ajax").html(data);
4615
4616        const eventdata = { action: "loadActualBasket" };
4617        BX.onCustomEvent("onCompleteAction", [eventdata]);
4618      },
4619    });
4620  };
4621}
4622
4623function touchMenu(selector) {
4624  if ($(window).outerWidth() > 600) {
4625    $(selector).each(function () {
4626      var th = $(this);
4627      th.on("touchend", function (e) {
4628        if (th.find(".child").length && !th.hasClass("hover")) {
4629          e.preventDefault();
4630          e.stopPropagation();
4631          th.siblings().removeClass("hover");
4632          th.addClass("hover");
4633          $(".menu .child").css({ display: "none" });
4634          th.find(".child").css({ display: "block" });
4635        }
4636      });
4637    });
4638  } else {
4639    $(selector).off();
4640  }
4641}
4642function touchItemBlock(selector) {
4643  $(selector).each(function () {
4644    var th = $(this),
4645      item = th.closest(".catalog_item");
4646    if (!th.closest(".best_block").length) {
4647      th.on("touchend", function (e) {
4648        if (!item.hasClass("hover")) {
4649          e.preventDefault();
4650          // e.stopPropagation();
4651          item.siblings().removeClass("hover");
4652          item.siblings().blur();
4653          item.closest(".catalog_block").find(".catalog_item").removeClass("hover");
4654          item.addClass("hover");
4655          item.addClass("touch");
4656
4657          var tabsContentHover = th.closest(".tab").attr("data-hover") * 1,
4658            tabsContentUnhoverHover = th.closest(".tab").attr("data-unhover") * 1;
4659
4660          th.closest(".tab").stop().animate({ height: tabsContentUnhoverHover }, 100);
4661          th.closest(".catalog_item").siblings().find(".buttons_block").stop().fadeOut(233);
4662
4663          th.closest(".tab").fadeTo(100, 1);
4664          th.closest(".tab").stop().css({ height: tabsContentHover });
4665          th.closest(".catalog_item").find(".buttons_block").fadeIn(450, "easeOutCirc");
4666        }
4667      });
4668    }
4669  });
4670}
4671function touchBasket(selector) {
4672  if (arOptimusOptions["THEME"]["SHOW_BASKET_ONADDTOCART"] !== "N") {
4673    if ($(window).outerWidth() > 600) {
4674      $(document)
4675        .find(selector)
4676        .on("touchend", function (e) {
4677          if ($(this).parent().find(".basket_popup_wrapp").length && !$(this).hasClass("hover")) {
4678            e.preventDefault();
4679            e.stopPropagation();
4680            $(this).addClass("hover");
4681            $(this).parent().find(".basket_popup_wrapp").slideDown();
4682          }
4683        });
4684    } else {
4685      $(selector).off();
4686    }
4687  }
4688}
4689
4690function showTotalSummItem(popup) {
4691  //show total summ
4692  if (arOptimusOptions["THEME"]["SHOW_TOTAL_SUMM"] == "ALWAYS") {
4693    var parent = "body ";
4694    if (typeof popup === "string" && popup == "Y") parent = ".popup ";
4695    $(parent + ".counter_wrapp .counter_block input.text").each(function () {
4696      var _th = $(this);
4697
4698      if (_th.data("product")) {
4699        var obProduct = _th.data("product");
4700        if (typeof window[obProduct] == "object") window[obProduct].setPriceAction("Y");
4701        else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
4702      } else setPriceItem(_th.closest(".main_item_wrapper"), _th.val());
4703    });
4704  }
4705}
4706
4707function initFull() {
4708  initSelects(document);
4709  initHoverBlock(document);
4710  // touchItemBlock('.catalog_item a');
4711  // InitLabelAnimation('#bx-soa-order-form');
4712  InitOrderCustom();
4713  if (!$("html.print").length) checkStickyFooter();
4714  else window.print();
4715
4716  showTotalSummItem();
4717  basketActions();
4718  orderActions();
4719}
4720if (!funcDefined("orderActions")) {
4721  orderActions = function (e) {
4722    if (arOptimusOptions["PAGES"]["ORDER_PAGE"]) {
4723      //phone
4724      if ($("#bx-soa-order input[autocomplete=tel]").length) {
4725        // get property phone
4726        for (var i = 0; i < BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties.length; ++i) {
4727          if (BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i].IS_PHONE == "Y") {
4728            var arPropertyPhone = BX.Sale.OrderAjaxComponent.result.ORDER_PROP.properties[i];
4729          }
4730        }
4731
4732        // validate input type=tel
4733        if (
4734          typeof BX.Sale.OrderAjaxComponent !== "undefined" &&
4735          typeof BX.Sale.OrderAjaxComponent === "object" &&
4736          typeof arPropertyPhone == "object" &&
4737          arPropertyPhone
4738        ) {
4739          BX.Sale.OrderAjaxComponent.validatePhone = function (input, arProperty, fieldName) {
4740            if (!input || !arProperty) return [];
4741
4742            var value = input.value,
4743              errors = [],
4744              name = BX.util.htmlspecialchars(arProperty.NAME),
4745              field = BX.message("SOA_FIELD") + ' "' + name + '"',
4746              re;
4747
4748            if (arProperty.REQUIRED == "Y" && value.length == 0) {
4749              errors.push(field + " " + BX.message("SOA_REQUIRED"));
4750            }
4751
4752            if (arProperty.IS_PHONE == "Y" && value.length > 0) {
4753              function regexpPhone(value, element, regexp) {
4754                var re = new RegExp(regexp);
4755                return re.test(value);
4756              }
4757
4758              var validPhone = regexpPhone($(input).val(), $(input), arOptimusOptions["THEME"]["VALIDATE_PHONE_MASK"]);
4759
4760              if (!validPhone) {
4761                errors.push(field + " " + BX.message("JS_FORMAT_ORDER"));
4762              }
4763            }
4764
4765            return errors;
4766          };
4767
4768          BX.Sale.OrderAjaxComponent.getValidationDataPhone = function (arProperty, propContainer) {
4769            var data = {},
4770              inputs;
4771            switch (arProperty.TYPE) {
4772              case "STRING":
4773                data.action = "blur";
4774                data.func = BX.delegate(function (input, fieldName) {
4775                  return this.validatePhone(input, arProperty, fieldName);
4776                }, this);
4777
4778                inputs = propContainer.querySelectorAll("input[type=tel]");
4779                if ($(inputs).length) {
4780                  data.inputs = inputs;
4781                  break;
4782                }
4783            }
4784
4785            return data;
4786          };
4787
4788          BX.Sale.OrderAjaxComponent.bindValidationPhone = function (id, propContainer) {
4789            if (!this.validation.properties || !this.validation.properties[id]) return;
4790
4791            var arProperty = this.validation.properties[id],
4792              data = this.getValidationDataPhone(arProperty, propContainer),
4793              i,
4794              k;
4795
4796            if (data && data.inputs && data.action) {
4797              for (i = 0; i < $(data.inputs).length; i++) {
4798                if (BX.type.isElementNode(data.inputs[i])) {
4799                  BX.bind(
4800                    data.inputs[i],
4801                    data.action,
4802                    BX.delegate(function () {
4803                      this.isValidProperty(data);
4804                    }, this)
4805                  );
4806                } else {
4807                  for (k = 0; k < $(data.inputs[i]).length; k++)
4808                    BX.bind(
4809                      data.inputs[i][k],
4810                      data.action,
4811                      BX.delegate(function () {
4812                        this.isValidProperty(data);
4813                      }, this)
4814                    );
4815                }
4816              }
4817            }
4818          };
4819
4820          BX.Sale.OrderAjaxComponent.isValidPropertiesBlock = function (excludeLocation) {
4821            if (!this.options.propertyValidation) return [];
4822
4823            var props = this.orderBlockNode.querySelectorAll(".bx-soa-customer-field[data-property-id-row]"),
4824              propsErrors = [],
4825              id,
4826              propContainer,
4827              arProperty,
4828              data,
4829              i;
4830
4831            for (i = 0; i < props.length; i++) {
4832              id = props[i].getAttribute("data-property-id-row");
4833
4834              if (!!excludeLocation && this.locations[id]) continue;
4835
4836              propContainer = props[i].querySelector(".soa-property-container");
4837              if (propContainer) {
4838                arProperty = this.validation.properties[id];
4839                data = this.getValidationData(arProperty, propContainer);
4840                dataPhone = this.getValidationDataPhone(arProperty, propContainer);
4841                data = $.extend({}, data, dataPhone);
4842
4843                propsErrors = propsErrors.concat(this.isValidProperty(data, true));
4844              }
4845            }
4846
4847            return propsErrors;
4848          };
4849
4850          // create input type=tel
4851          var input = $("input[autocomplete=tel]"),
4852            inputHTML = input[0].outerHTML,
4853            value = input.val(),
4854            newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"');
4855
4856          if ($(input).length < 2) {
4857            input.hide();
4858            $(newInput).insertAfter(input);
4859          }
4860          showPhoneMask("input[autocomplete=tel][type=tel]");
4861
4862          // change value input type=text when change input type=tel
4863          $("input[autocomplete=tel][type=tel]").on("blur", function () {
4864            var $this = $(this);
4865
4866            var value = $this.val();
4867            $this.parent().find("input[autocomplete=tel][type=text]").val(value);
4868          });
4869
4870          BX.Sale.OrderAjaxComponent.bindValidationPhone(arPropertyPhone.ID, $("input[autocomplete=tel]").parent()[0]);
4871        }
4872      }
4873
4874      if ($(".bx-soa-cart-total").length) {
4875        if (!$(".change_basket").length)
4876          $(".bx-soa-cart-total").prepend(
4877            '<div class="change_basket">
4877' +
4878              BX.message("BASKET_CHANGE_TITLE") +
4879              '<a href="' +
4880              arOptimusOptions["SITE_DIR"] +
4881              'basket/" class="change_link">' +
4882              BX.message("BASKET_CHANGE_LINK") +
4883              "</a></div>"
4884          );
4885        if (typeof BX.Sale.OrderAjaxComponent == "object") {
4886          if (arOptimusOptions["COUNTERS"]["USE_FULLORDER_GOALS"] !== "N") {
4887            if (typeof BX.Sale.OrderAjaxComponent.reachgoalbegin === "undefined") {
4888              BX.Sale.OrderAjaxComponent.reachgoalbegin = true;
4889              var eventdata = { goal: "goal_order_begin" };
4890              // BX.onCustomEvent('onCounterGoals', [eventdata])
4891            }
4892          }
4893
4894          // update oreder register form
4895          if ($(".bx-soa-section-content.reg").length && !$(".bx-soa-section-content.reg .redisigned").length) {
4896            var bRebindRegSubmit = false;
4897
4898            if (arOptimusOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") {
4899              bRebindRegSubmit = true;
4900
4901              // update input NEW_LOGIN
4902              if ($('input[name="NEW_LOGIN"]').length) {
4903                $('input[name="NEW_LOGIN"]').closest(".bx-authform-formgroup-container").hide();
4904              }
4905            }
4906
4907            if (bRebindRegSubmit) {
4908              // bind new handler for submit button
4909              var $regSubmit = $("#do_register~input[type=submit]");
4910              if ($regSubmit.length) {
4911                BX.unbindAll($regSubmit[0]);
4912                $(document).on("click", "#do_register~input[type=submit]", function (e) {
4913                  e.preventDefault();
4914                  e.stopImmediatePropagation();
4915
4916                  if (arOptimusOptions.THEME.LOGIN_EQUAL_EMAIL === "Y") {
4917                    var email = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_EMAIL" } }, true, false);
4918                    var login = BX.findChild(BX("bx-soa-auth"), { attribute: { name: "NEW_LOGIN" } }, true, false);
4919
4920                    if (login && email) {
4921                      login.value = email.value;
4922                    }
4923                  }
4924
4925                  BX("do_register").value = "Y";
4926                  BX.Sale.OrderAjaxComponent.sendRequest("showAuthForm");
4927                });
4928              }
4929            }
4930
4931            // update captcha
4932            var $captcha = $(".bx-soa-section-content.reg").find(".bx-captcha");
4933            if ($captcha.length) {
4934              $captcha.addClass("captcha_image");
4935              $captcha.append('<div class="captcha_reload"></div>');
4936              $captcha
4937                .closest(".bx-authform-formgroup-container")
4938                .addClass("captcha-row")
4939                .find("input[name=captcha_word]")
4940                .closest(".bx-authform-input-container")
4941                .addClass("captcha_input")
4942                BX.onCustomEvent("onRenderCaptcha")
4943            }
4944
4945            // update input NEW_NAME && NEW_LAST_NAME
4946            if ($("input[name=NEW_NAME]").length && $("input[name=NEW_LAST_NAME]").length) {
4947              if (!$("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container.col
4947-md-6").length) {
4948                $("input[name=NEW_NAME],input[name=NEW_LAST_NAME]")
4949                  .closest(".bx-authform-formgroup-container")
4950                  .addClass("col-md-6");
4951                var html = $("input[name=NEW_LAST_NAME]")
4952                  .closest(".bx-authform-formgroup-container")
4953                  .wrap('<div id="trem_"></div>')
4954                  .parent()
4955                  .html();
4956                $("#trem_").remove();
4957                $(html).insertAfter(
4958                  $("input[name=NEW_NAME]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>')
4959                );
4960              }
4961            }
4962
4963            // update input NEW_EMAIL && PHONE_NUMBER
4964            if ($("input[name=NEW_EMAIL]").length && $("input[name=PHONE_NUMBER]").length) {
4965              if (!$("input[name=PHONE_NUMBER]").closest(".bx-authform-formgroup-container.col-md-6").length) {
4966                $("input[name=NEW_EMAIL],input[name=PHONE_NUMBER]")
4967                  .closest(".bx-authform-formgroup-container")
4968                  .addClass("col-md-6");
4969                var html = $("input[name=PHONE_NUMBER]")
4970                  .closest(".bx-authform-formgroup-container")
4971                  .wrap('<div id="trem_"></div>')
4972                  .parent()
4973                  .html();
4974                $("#trem_").remove();
4975                $(html).insertAfter(
4976                  $("input[name=NEW_EMAIL]").closest(".bx-authform-formgroup-container").wrap('<div class="row"></div>')
4977                );
4978              }
4979            }
4980
4981            // update input NEW_PASSWORD && NEW_PASSWORD_CONFIRM
4982            if ($("input[name=NEW_PASSWORD]").length && $("input[name=NEW_PASSWORD_CONFIRM]").length) {
4983              if (!$("input[name=NEW_PASSWORD]").closest(".bx-authform-formgroup-container.col
4983-md-6").length) {
4984                $("input[name=NEW_PASSWORD],input[name=NEW_PASSWORD_CONFIRM]")
4985                  .closest(".bx-authform-formgroup-container")
4986                  .addClass("col-md-6");
4987                var html = $("input[name=NEW_PASSWORD_CONFIRM]")
4988                  .closest(".bx-authform-formgroup-container")
4989                  .wrap('<div id="trem_"></div>')
4990                  .parent()
4991                  .html();
4992                $("#trem_").remove();
4993                $(html).insertAfter(
4994                  $("input[name=NEW_PASSWORD]")
4995                    .closest(".bx-authform-formgroup-container")
4996                    .wrap('<div class="row"></div>')
4997                );
4998              }
4999            }
5000
5001            // update input PHONE_NUMBER
5002            if ($("input[name=PHONE_NUMBER]").length) {
5003              var input = $("input[name=PHONE_NUMBER]"),
5004                inputHTML = input[0].outerHTML,
5005                value = input.val(),
5006                newInput = input[0].outerHTML.replace('type="text"', 'type="tel" value="' + value + '"');
5007
5008              if ($(input).length < 2) {
5009                input.hide();
5010                $(newInput).insertAfter(input);
5011
5012                showPhoneMask("input[name=PHONE_NUMBER][type=tel]");
5013
5014                $("input[name=PHONE_NUMBER][type=tel]").on("blur", function () {
5015                  var $this = $(this);
5016                  var value = $this.val();
5017                  $this.parent().find("input[name=PHONE_NUMBER][type=text]").val(value);
5018                });
5019
5020                var $label = $("input[name=PHONE_NUMBER][type=tel]")
5021                  .closest(".bx-authform-formgroup-container")
5022                  .find(".bx-authform-label-container");
5023                $label.html(
5024                  BX.message("ORDER_PHONE_LABEL") +
5025                    ($label.find(".bx-authform-starrequired").length
5026                      ? '<span class="bx-authform-starrequired"> *</span>'
5027                      : "")
5028                );
5029              }
5030            }
5031
5032            $(".bx-soa-section-content.reg").append('<div class="redisigned hidden></div>');
5033          }
5034
5035          const asproLicenceShow = arOptimusOptions["THEME"]["SHOW_LICENCE"] === "Y",
5036            asproLicenceChecked = arOptimusOptions["THEME"]["LICENCE_CHECKED"] === "Y";
5037
5038          const asproOfferShow = arOptimusOptions["THEME"]["SHOW_OFFER"] === "Y",
5039            asproOfferChecked = arOptimusOptions["THEME"]["OFFER_CHECKED"] === "Y";
5040
5041          if ($(".bx-soa-cart-total-line-total").length && (asproLicenceShow || asproOfferShow)) {
5042            if (typeof e === "undefined") {
5043              BX.Sale.OrderAjaxComponent.state_licence = asproLicenceChecked ? "checked" : "";
5044              BX.Sale.OrderAjaxComponent.state_offer = asproOfferChecked ? "checked" : "";
5045            }
5046
5047            if (
5048              (!$(".licence_block.filter").length && asproLicenceShow) ||
5049              (!$(".offer_block.filter").length && asproOfferShow)
5050            ) {
5051              $('<div class="form"><div class="license_order_wrap"></div></div>').insertBefore($("#bx-soa-orderSave"));
5052
5053              if (!$(".licence_block.filter").length && asproLicenceShow)
5054                $(
5055                  '<div class="licence_block filter label_block"><label data-for="licenses_order" class="hidden error">' +
5056                    BX.message("JS_REQUIRED_LICENSES") +
5057                    '</label><input type="checkbox" name="licenses_order" required ' +
5058                    BX.Sale.OrderAjaxComponent.state_licence +
5059                    ' value="Y"><label data-for="licenses_order" class="license">' +
5060                    BX.message("LICENSES_TEXT") +
5061                    "</label></div>"
5062                ).appendTo($(".license_order_wrap"));
5063
5064              if (!$(".offer_block.filter").length && asproOfferShow)
5065                $(
5066                  '<div class="offer_block filter label_block"><label data-for="offer_order" class="hidden error">' +
5067                    BX.message("JS_REQUIRED_OFFER") +
5068                    '</label><input type="checkbox" name="offer_order" required ' +
5069                    BX.Sale.OrderAjaxComponent.state_offer +
5070                    ' value="Y"><label data-for="offer_order" class="offer_pub">' +
5071                    BX.message("OFFER_TEXT") +
5072                    "</label></div>"
5073                ).appendTo($(".license_order_wrap"));
5074
5075              if (asproLicenceShow) {
5076                $(document).on("click", ".bx-soa .licence_block label.license", function () {
5077                  const id = $(this).data("for");
5078                  $(".bx-soa .licence_block label.error").addClass("hidden");
5079                  if (!$("input[name=" + id + "]").prop("checked")) {
5080                    $("input[name=" + id + "]").prop("checked", "checked");
5081                    BX.Sale.OrderAjaxComponent.state_licence = "checked";
5082                  } else {
5083                    $("input[name=" + id + "]").prop("checked", "");
5084                    BX.Sale.OrderAjaxComponent.state_licence = "";
5085                  }
5086                });
5087              }
5088
5089              if (asproOfferShow) {
5090                $(document).on("click", ".bx-soa .offer_block label.offer_pub", function () {
5091                  const id = $(this).data("for");
5092
5093                  $(".bx-soa .offer_block label.error").addClass("hidden");
5094
5095                  if (!$("input[name=" + id + "]").prop("checked")) {
5096                    $("input[name=" + id + "]").prop("checked", "checked");
5097                    BX.Sale.OrderAjaxComponent.state_licence = "checked";
5098                  } else {
5099                    $("input[name=" + id + "]").prop("checked", "");
5100                    BX.Sale.OrderAjaxComponent.state_licence = "";
5101                  }
5102                });
5103              }
5104
5105              $(document).on("click", ".lic_condition a", function () {
5106                if (BX.hasClass(BX("bx-soa-order"), "orderform--v1")) {
5107                  if (BX.Sale.OrderAjaxComponent.isValidForm()) {
5108                    BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50);
5109                  }
5110                } else {
5111                  const iCountErrors = BX.Sale.OrderAjaxComponent.isValidPropertiesBlock().length;
5112
5113                  if (!BX.Sale.OrderAjaxComponent.activeSectionId || !iCountErrors) {
5114                    BX.Sale.OrderAjaxComponent.animateScrollTo($(".licence_block, .offer_block")[0], 800, 50);
5115                  }
5116                }
5117              });
5118            }
5119            $("#bx-soa-orderSave, .bx-soa-cart-total-button-container").addClass("lic_condition");
5120
5121            if (
5122              typeof BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction === "undefined" &&
5123              typeof BX.Sale.OrderAjaxComponent.clickOrderSaveAction !== "undefined"
5124            ) {
5125              BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction = BX.Sale.OrderAjaxComponent.clickOrderSaveAction;
5126              BX.Sale.OrderAjaxComponent.clickOrderSaveAction = function (event) {
5127                if (
5128                  ($('input[name="licenses_order"]').prop("checked") || asproLicenceShow === false) &&
5129                  ($('input[name="offer_order"]').prop("checked") || asproOfferShow === false)
5130                ) {
5131                  $(".bx-soa .licence_block label.error").addClass("hidden");
5132                  $(".bx-soa .offer_block label.error").addClass("hidden");
5133
5134                  if (BX.Sale.OrderAjaxComponent.isValidForm()) {
5135                    if (typeof BX.Sale.OrderAjaxComponent.allowOrderSave == "function")
5136                      BX.Sale.OrderAjaxComponent.allowOrderSave();
5137                    if (typeof BX.Sale.OrderAjaxComponent.doSaveAction == "function")
5138                      BX.Sale.OrderAjaxComponent.doSaveAction();
5139                    else BX.Sale.OrderAjaxComponent.oldClickOrderSaveAction(event);
5140                  }
5141                } else {
5142                  if (!$('input[name="licenses_order"]').prop("checked"))
5143                    $(".bx-soa .licence_block label.error").removeClass("hidden");
5144
5145                  if (!$('input[name="offer_order"]').prop("checked"))
5146                    $(".bx-soa .offer_block label.error").removeClass("hidden");
5147                }
5148              };
5149              if (BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")) {
5150                if (typeof browser == "object") {
5151                  if ("msie" in browser && browser.msie)
5152                    $(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox")).remove();
5153                  else BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector(".checkbox").remove();
5154                }
5155              }
5156              BX.unbindAll(BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"));
5157              BX.unbindAll(BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"));
5158              BX.unbindAll(BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"));
5159              BX.bind(
5160                BX.Sale.OrderAjaxComponent.totalInfoBlockNode.querySelector("a.btn-order-save"),
5161                "click",
5162                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
5163              );
5164              BX.bind(
5165                BX.Sale.OrderAjaxComponent.mobileTotalBlockNode.querySelector("a.btn-order-save"),
5166                "click",
5167                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
5168              );
5169              BX.bind(
5170                BX.Sale.OrderAjaxComponent.orderSaveBlockNode.querySelector("a"),
5171                "click",
5172                BX.proxy(BX.Sale.OrderAjaxComponent.clickOrderSaveAction, BX.Sale.OrderAjaxComponent)
5173              );
5174            }
5175
5176            /*$('.bx-soa-cart-total .licence_block label.license').on('click', function(){
5177							var id = $(this).data('for');
5178							$('.bx-soa-cart-total .licence_block label.error').addClass('hidden');
5179							if(!$('input[name='+id+']').prop('checked')){
5180								$('input[name='+id+']').prop('checked', 'checked');
5181								BX.Sale.OrderAjaxComponent.state_licence = 'checked';
5182							}
5183							else{
5184								$('input[name='+id+']').prop('checked', '');
5185								BX.Sale.OrderAjaxComponent.state_licence = '';
5186							}
5187						})*/
5188          }
5189          if (BX.Sale.OrderAjaxComponent.hasOwnProperty("params")) {
5190            $(".bx-soa-cart-total .change_link").attr("href", BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET);
5191            if (arOptimusOptions["PRICES"]["MIN_PRICE"]) {
5192              if (
5193                arOptimusOptions["PRICES"]["MIN_PRICE"] > Number(BX.Sale.OrderAjaxComponent.result.TOTAL.ORDER_PRICE)
5194              ) {
5195                $('<div class="fademask_ext"></div>').appendTo($("body"));
5196                location.href = BX.Sale.OrderAjaxComponent.params.PATH_TO_BASKET;
5197              }
5198            }
5199          }
5200
5201          // fix hide total block
5202          //BX.removeClass(BX.Sale.OrderAjaxComponent.totalInfoBlockNode, 'bx-soa-cart-total-fixed');
5203          $(window).scroll();
5204
5205          if (checkCounters() && typeof BX.Sale.OrderAjaxComponent.oldSaveOrder === "undefined") {
5206            var saveFunc =
5207              typeof BX.Sale.OrderAjaxComponent.saveOrder !== "undefined" ? "saveOrder" : "saveOrderWithJson";
5208            if (typeof BX.Sale.OrderAjaxComponent[saveFunc] !== "undefined") {
5209              BX.Sale.OrderAjaxComponent.oldSaveOrder = BX.Sale.OrderAjaxComponent[saveFunc];
5210              BX.Sale.OrderAjaxComponent[saveFunc] = function (result) {
5211                var res = BX.parseJSON(result);
5212                if (res && res.order) {
5213                  if (!res.order.SHOW_AUTH) {
5214                    if (
5215                      res.order.REDIRECT_URL &&
5216                      res.order.REDIRECT_URL.length &&
5217                      (!res.order.ERROR || BX.util.object_keys(res.order.ERROR).length < 1)
5218                    ) {
5219                      if (
5220                        (arMatch = res.order.REDIRECT_URL.match(/ORDER_ID\=[^&=]*/g)) &&
5221                        arMatch.length &&
5222                        (_id = arMatch[0].replace(/ORDER_ID\=/g, "", arMatch[0]))
5223                      ) {
5224                        $.ajax({
5225                          url: arOptimusOptions["SITE_DIR"] + "ajax/check_order.php",
5226                          dataType: "json",
5227                          type: "POST",
5228                          data: { ID: _id },
5229                          success: function (id) {
5230                            if (parseInt(id)) {
5231                              purchaseCounter(parseInt(id), BX.message("FULL_ORDER"), function (d) {
5232                                if (typeof d == "object") {
5233                                  if (typeof BX.localStorage !== "undefined") {
5234                                    BX.localStorage.set("gtm_e_" + _id, d, 60);
5235                                  }
5236                                }
5237                                BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5238                              });
5239                            } else {
5240                              BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5241                            }
5242                          },
5243                          error: function () {
5244                            BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5245                          },
5246                        });
5247                      } else {
5248                        BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5249                      }
5250                    } else {
5251                      BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5252                    }
5253                  } else {
5254                    BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5255                  }
5256                } else {
5257                  BX.Sale.OrderAjaxComponent.oldSaveOrder(result);
5258                }
5259              };
5260            }
5261          }
5262        }
5263        $(".bx-ui-sls-quick-locations.quick-locations").on("click", function () {
5264          $(this).siblings().removeClass("active");
5265          $(this).addClass("active");
5266        });
5267      }
5268    }
5269  };
5270}
5271
5272if (!funcDefined("basketActions")) {
5273  basketActions = function () {
5274    if (arOptimusOptions["PAGES"]["BASKET_PAGE"]) {
5275      checkMinPrice();
5276
5277      //remove4Cart
5278      if (typeof BX.Sale !== "undefined" && typeof BX.Sale === "object") {
5279        if (typeof BX.Sale.BasketComponent !== "undefined" && typeof BX.Sale.BasketComponent === "object") {
5280          $(document).on("click", ".basket-item-actions-remove", function () {
5281            var basketID = $(this).closest(".basket-items-list-item-container").data("id");
5282            delFromBasketCounter(BX.Sale.BasketComponent.items[basketID].PRODUCT_ID);
5283          });
5284        }
5285      }
5286
5287      if (location.hash) {
5288        var hash = location.hash.substring(1);
5289        if ($("#basket_toolbar_button_" + hash).length) {
5290          $("#basket_toolbar_button_" + hash).trigger("click");
5291        }
5292      }
5293
5294      $(".bx_sort_container").append(
5295        '<div class="top_control basket_sort"><span style="display:none;" class="delete_all button grey_br transparent remove_all_basket">
5295' +
5296          BX.message("BASKET_CLEAR_ALL_BUTTON") +
5297          "</span></div>"
5298      );
5299      if ($(".basket-items-list-header-filter").length) {
5300        $(".basket-items-list-header-filter").append(
5301          '<div class="top_control basket_sort"><span style="opacity:1;" class="delete_all button grey_br transparent remove_all_basket">' +
5302            BX.message("BASKET_CLEAR_ALL_BUTTON") +
5303            "</span></div>"
5304        );
5305
5306        var cur_index = $(".basket-items-list-header-filter > a.active").index();
5307        //fix delayed
5308        if (cur_index == 3) cur_index = 2;
5309
5310        if ($(".basket-items-list-header-filter > a.active").data("filter") == "all") cur_index = "all";
5311
5312        $(".basket-items-list-header-filter .top_control .delete_all").data("type", cur_index);
5313
5314        $(".basket-items-list-header-filter > a").on("click", function () {
5315          var index = $(this).index();
5316
5317          //fix delayed
5318          if (index == 3) index = 2;
5319
5320          if ($(this).data("filter") == "all") index = "all";
5321
5322          $(".basket-items-list-header-filter .top_control .delete_all").data("type", index);
5323        });
5324
5325        if (arOptimusOptions["THEME"]["SHOW_BASKET_PRINT"] == "Y") {
5326          $(
5327            '<span class="basket_sort"><span class="basket_print button grey_br transparent">' +
5328              BX.message("BASKET_PRINT_BUTTON") +
5329              "</span></span>"
5330          ).insertAfter($("#pagetitle"));
5331        }
5332      } else {
5333        if (arOptimusOptions["THEME"]["SHOW_BASKET_PRINT"] == "Y") {
5334          $(".bx_sort_container .top_control").prepend(
5335            '<span class="basket_print button grey_br transparent">' + BX.message("BASKET_PRINT_BUTTON") + "</span>"
5336          );
5337        }
5338
5339        var cur_index = $(".bx_sort_container a.current").index();
5340        $(".bx_sort_container .top_control .delete_all").data("type", cur_index);
5341        if ($(".bx_ordercart > div:eq(" + cur_index + ") table tbody tr td.item").length)
5342          $(".bx_sort_container .top_control .delete_all").css("display", "block");
5343
5344        $(".bx_ordercart .bx_ordercart_coupon #coupon").wrap('<div class="input"></div>');
5345
5346        $(".bx_sort_container > a").on("click", function () {
5347          var index = $(this).index();
5348          $(".bx_sort_container .top_control .delete_all").data("type", index);
5349
5350          if ($(".bx_ordercart > div:eq(" + index + ") table tbody tr td.item").length)
5351            $(".bx_sort_container .top_control .delete_all").css("display", "block");
5352          else $(".bx_sort_container .top_control .delete_all").css("display", "none");
5353        });
5354      }
5355
5356      $(".basket_print").on("click", function () {
5357        // window.open(location.pathname+"?print=Y",'_blank');
5358        window.print();
5359      });
5360
5361      $(".delete_all").on("click", function () {
5362        if (arOptimusOptions["COUNTERS"]["USE_BASKET_GOALS"] !== "N") {
5363          var eventdata = { goal: "goal_basket_clear", params: { type: $(this).data("type") } };
5364          BX.onCustomEvent("onCounterGoals", [eventdata]);
5365        }
5366        $.post(
5367          arOptimusOptions["SITE_DIR"] + "ajax/action_basket.php",
5368          "TYPE=" + $(this).data("type") + "&CLEAR_ALL=Y",
5369          $.proxy(function (data) {
5370            location.reload();
5371          })
5372        );
5373      });
5374
5375      $(".bx_item_list_section .bx_catalog_item").sliceHeight({ row: ".bx_item_list_slide", item: ".bx_catalog_item" });
5376
5377      $(document).on(
5378        "click",
5379        ".bx_ordercart_order_pay_center .checkout, .basket-checkout-section-inner .basket-btn-checkout",
5380        function () {
5381          if (checkCounters("google")) {
5382            checkoutCounter(1, "start order");
5383          }
5384        }
5385      );
5386
5387      BX.addCustomEvent("onAjaxSuccess", function () {
5388        checkMinPrice();
5389
5390        var errorText = $.trim($("#warning_message").text());
5391        $("#basket_items_list .error_text").detach();
5392        if (errorText != "") {
5393          $("#warning_message").hide().text("");
5394          $("#basket_items_list").prepend('<div class="error_text">' + errorText + "</div>");
5395        }
5396      });
5397    }
5398  };
5399}
5400
5401if (!funcDefined("checkMinPrice")) {
5402  checkMinPrice = function () {
5403    if (arOptimusOptions["PAGES"]["BASKET_PAGE"]) {
5404      var summ_raw = 0,
5405        summ = 0;
5406      if ($("#allSum_FORMATED").length) {
5407        summ_raw = $("#allSum_FORMATED")
5408          .text()
5409          .replace(/[^0-9\.,]/g, "");
5410        summ = parseFloat(summ_raw);
5411        if ($("#basket_items").length) {
5412          var summ = 0;
5413          $("#basket_items tr").each(function () {
5414            if (typeof $(this).data("item-price") !== "undefined" && $(this).data("item-price"))
5415              summ +=
5416                $(this).data("item-price") *
5417                $(this)
5418                  .find("#QUANTITY_INPUT_" + $(this).attr("id"))
5419                  .val();
5420          });
5421        }
5422        if (!$(".catalog_back").length)
5423          $(".bx_ordercart_order_pay_center").prepend(
5424            '<a href="' +
5425              arOptimusOptions["PAGES"]["CATALOG_PAGE_URL"] +
5426              '" class="catalog_back button transparent big_btn grey_br">' +
5427              BX.message("BASKET_CONTINUE_BUTTON") +
5428              "</a>"
5429          );
5430      }
5431
5432      if (arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y")
5433        $(".basket-coupon-section").addClass("smallest");
5434
5435      if (typeof BX.Sale !== "undefined") {
5436        if (typeof BX.Sale.BasketComponent !== "undefined" && "result" in BX.Sale.BasketComponent)
5437          summ = BX.Sale.BasketComponent.result.allSum;
5438      }
5439
5440      if (arOptimusOptions["PRICES"]["MIN_PRICE"]) {
5441        if (arOptimusOptions["PRICES"]["MIN_PRICE"] > summ) {
5442          if ($(".oneclickbuy.fast_order").length) $(".oneclickbuy.fast_order").remove();
5443
5444          if ($(".basket-checkout-container").length) {
5445            if (!$(".icon_error_wrapper").length) {
5446              $(".basket-checkout-block.basket-checkout-block-btn").html(
5447                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
5448                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
5449                    "#PRICE#",
5450                    jsPriceFormat(arOptimusOptions["PRICES"]["MIN_PRICE"])
5451                  ) +
5452                  "</div></div>"
5453              );
5454            }
5455          } else {
5456            if (!$(".icon_error_wrapper").length) {
5457              $(".bx_ordercart_order_pay_center").prepend(
5458                '<div class="icon_error_wrapper"><div class="icon_error_block">' +
5459                  BX.message("MIN_ORDER_PRICE_TEXT").replace(
5460                    "#PRICE#",
5461                    jsPriceFormat(arOptimusOptions["PRICES"]["MIN_PRICE"])
5462                  ) +
5463                  "</div></div>"
5464              );
5465            }
5466            if ($(".bx_ordercart_order_pay .checkout").length) $(".bx_ordercart_order_pay .checkout").remove();
5467          }
5468        } else {
5469          if ($(".icon_error_wrapper").length) $(".icon_error_wrapper").remove();
5470
5471          if ($(".basket-checkout-container").length) {
5472            if (
5473              !$(".oneclickbuy.fast_order").length &&
5474              arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
5475              !$(".basket-btn-checkout.disabled").length
5476            )
5477              $(".basket-checkout-section-inner").append(
5478                '<div class="fastorder"><span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5479                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
5480                  "</span></div>"
5481              );
5482          } else {
5483            if ($(".bx_ordercart_order_pay .checkout").length)
5484              $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
5485            else
5486              $(".bx_ordercart_order_pay_center").append(
5487                '<a href="javascript:void(0)" onclick="checkOut();" class="checkout" style="opacity: 1;">' +
5488                  BX.message("BASKET_ORDER_BUTTON") +
5489                  "</a>"
5490              );
5491            if (
5492              !$(".oneclickbuy.fast_order").length &&
5493              arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y"
5494            )
5495              $(".bx_ordercart_order_pay_center").append(
5496                '<span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5497                  BX.message("BASKET_QUICK_ORDER_BUTTON") +
5498                  "</span>"
5499              );
5500          }
5501        }
5502      } else {
5503        if ($(".basket-checkout-container").length) {
5504          if (
5505            !$(".oneclickbuy.fast_order").length &&
5506            arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y" &&
5507            !$(".basket-btn-checkout.disabled").length
5508          )
5509            $(".basket-checkout-section-inner").append(
5510              '<div class="fastorder"><span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5511                BX.message("BASKET_QUICK_ORDER_BUTTON") +
5512                "</span></div>"
5513            );
5514        } else {
5515          $(".bx_ordercart .bx_ordercart_order_pay .checkout").css("opacity", "1");
5516          if (
5517            !$(".oneclickbuy.fast_order").length &&
5518            arOptimusOptions["THEME"]["SHOW_ONECLICKBUY_ON_BASKET_PAGE"] == "Y"
5519          )
5520            $(".bx_ordercart_order_pay_center").append(
5521              '<span class="oneclickbuy button big_btn fast_order" onclick="oneClickBuyBasket()">' +
5522                BX.message("BASKET_QUICK_ORDER_BUTTON") +
5523                "</span>"
5524            );
5525        }
5526      }
5527      $("#basket-root .basket-checkout-container").addClass("visible");
5528    }
5529  };
5530}
5531
5532var isFrameDataReceived = false;
5533if (typeof window.frameCacheVars !== "undefined") {
5534  BX.addCustomEvent("onFrameDataReceived", function (json) {
5535    initFull();
5536    isFrameDataReceived = true;
5537  });
5538} else {
5539  $(document).ready(initFull);
5540}
5541
5542if (!funcDefined("setHeightBlockSlider")) {
5543  setHeightBlockSlider = function () {
5544    var sliderWidth = $(document).find(".specials.tab_slider_wrapp").outerWidth();
5545
5546    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").css("height", "");
5547    $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider .buttons_block").hide();
5548    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item-title" });
5549    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".item_info" });
5550    $(document).find(".specials.tab_slider_wrapp .tabs_content > li.cur").equalize({ children: ".catalog_item" });
5551    var itemsButtonsHeight = $(document)
5552      .find(".specials.tab_slider_wrapp .tabs_content .tab.cur .tabs_slider li .buttons_block")
5553      .height();
5554    var tabsContentUnhover = $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").height() * 1;
5555    var tabsContentHover = tabsContentUnhover + itemsButtonsHeight + 50;
5556    $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-unhover", tabsContentUnhover);
5557    $(document).find(".specials.tab_slider_wrapp .tabs_content .tab.cur").attr("data-hover", tabsContentHover);
5558    $(document).find(".specials.tab_slider_wrapp .tabs_content").height(tabsContentUnhover);
5559
5560    $(document)
5561      .find(".specials.tab_slider_wrapp .tabs_content .tabs_slider")
5562      .each(function (index, el) {
5563        const height = $(this).find(".catalog_item").height();
5564        $(el).attr("data-height", height);
5565      });
5566  };
5567}
5568
5569if (!funcDefined("checkStickyFooter")) {
5570  checkStickyFooter = function () {
5571    try {
5572      ignoreResize.push(true);
5573      $("#content").css("min-height", "");
5574      var contentTop = 0;
5575      if ($("#content").length) contentTop = $("#content").offset().top;
5576
5577      var contentBottom = contentTop + $("#content").outerHeight();
5578
5579      var footerTop = 0;
5580      if ($("footer").length) footerTop = $("footer").offset().top;
5581
5582      $("#content").css(
5583        "min-height",
5584        $(window).height() - contentTop - (footerTop - contentBottom) - $("footer").outerHeight() + "px"
5585      );
5586      ignoreResize.pop();
5587    } catch (e) {
5588      console.error(e);
5589    }
5590  };
5591}
5592
5593/* EVENTS */
5594var timerResize = false,
5595  ignoreResize = [];
5596$(window).resize(function () {
5597  if (!$("html.print").length) checkStickyFooter();
5598
5599  // here immediate functions
5600  if (!ignoreResize.length) {
5601    if (timerResize) {
5602      clearTimeout(timerResize);
5603      timerResize = false;
5604    }
5605    timerResize = setTimeout(function () {
5606      // here delayed functions in event
5607      BX.onCustomEvent("onWindowResize", false);
5608    }, 50);
5609  }
5610});
5611
5612var timerScroll = false,
5613  ignoreScroll = [],
5614  documentScrollTopLast = $(document).scrollTop();
5615$(window).scroll(function () {
5616  // here immediate functions
5617  documentScrollTopLast = $(document).scrollTop();
5618  if (!ignoreScroll.length) {
5619    if (timerScroll) {
5620      clearTimeout(timerScroll);
5621      timerScroll = false;
5622    }
5623    timerScroll = setTimeout(function () {
5624      // here delayed functions in event
5625      BX.onCustomEvent("onWindowScroll", false);
5626    }, 50);
5627  }
5628});
5629
5630BX.addCustomEvent("onWindowResize", function (eventdata) {
5631  try {
5632    ignoreResize.push(true);
5633
5634    // CheckTopMenuFullCatalogSubmenu();
5635
5636    checkScrollToTop();
5637    //checkPopupWidth();
5638    checkCaptchaWidth();
5639    checkFormWidth();
5640    checkFormControlWidth();
5641    touchMenu("ul.menu:not(.opened) > li.menu_item_l1");
5642    touchBasket(".cart:not(.empty_cart) .basket_block .link");
5643    CheckObjectsSizes();
5644
5645    if (funcDefined("checkMobileFilter")) {
5646      checkMobileFilter();
5647    }
5648
5649    CheckFlexSlider();
5650
5651    // InitZoomPict();
5652    initSly();
5653
5654    if (window.matchMedia("(min-width: 767px)").matches) {
5655      $(".wrapper_middle_menu.wrap_menu").removeClass("mobile");
5656    }
5657    if (window.matchMedia("(max-width: 767px)").matches) {
5658      $(".wrapper_middle_menu.wrap_menu").addClass("mobile");
5659    }
5660
5661    if ($(window).outerWidth() > 600) {
5662      $("#header ul.menu").removeClass("opened").css("display", "");
5663
5664      if ($(".authorization-cols").length) {
5665        $(".authorization-cols").equalize({ children: ".col .auth-title", reset: true });
5666        $(".authorization-cols").equalize({ children: ".col .form-block", reset: true });
5667      }
5668    } else {
5669      $(".authorization-cols .auth-title").css("height", "");
5670      $(".authorization-cols .form-block").css("height", "");
5671    }
5672
5673    if ($("#basket_form").length && $(window).outerWidth() <= 600) {
5674      $("#basket_form .tabs_content.basket > li.cur td").each(function () {
5675        $(this).css("width", "");
5676      });
5677    }
5678
5679    if ($(".front_slider_wrapp").length) {
5680      $(".extended_pagination li i").each(function () {
5681        $(this).css({
5682          borderBottomWidth: $(this).parent("li").outerHeight() / 2,
5683          borderTopWidth: $(this).parent("li").outerHeight() / 2,
5684        });
5685      });
5686    }
5687
5688    setHeightCompany();
5689    $(".bx_filter_section .bx_filter_select_container").each(function () {
5690      var prop_id = $(this).closest(".bx_filter_parameters_box").attr("property_id");
5691      if ($("#smartFilterDropDown" + prop_id).length) {
5692        $("#smartFilterDropDown" + prop_id).css("max-width", $(this).width());
5693      }
5694    });
5695    setTimeout(function () {
5696      checkVerticalMobileFilter();
5697    }, 100);
5698  } catch (e) {
5699  } finally {
5700    ignoreResize.pop();
5701  }
5702});
5703
5704BX.addCustomEvent("onWindowScroll", function (eventdata) {
5705  try {
5706    ignoreScroll.push(true);
5707  } catch (e) {
5708  } finally {
5709    ignoreScroll.pop();
5710  }
5711});
5712
5713BX.addCustomEvent("onSlideInit", function (eventdata) {
5714  try {
5715    ignoreResize.push(true);
5716    if (eventdata) {
5717      var slider = eventdata.slider;
5718      if (slider) {
5719        if (slider.hasClass("viewed")) {
5720          $(".viewed_block .rows_block .item .item-title").sliceHeight({
5721            outer: true,
5722            slice: 8,
5723            autoslicecount: false,
5724          });
5725          $(".viewed_block .rows_block .item").sliceHeight({ slice: 8, autoslicecount: false });
5726        }
5727      }
5728    }
5729  } catch (e) {
5730  } finally {
5731    ignoreResize.pop();
5732  }
5733});
5734
5735BX.addCustomEvent("onCounterGoals", function (eventdata) {
5736  if (arOptimusOptions["COUNTERS"]["USE_YA_COUNTER"] === "Y") {
5737    var idCounter = arOptimusOptions["COUNTERS"]["YA_COUNTER_ID"];
5738    idCounter = parseInt(idCounter);
5739
5740    if (typeof eventdata != "object") {
5741      eventdata = { goal: "undefined" };
5742    }
5743    if (typeof eventdata.goal != "string") {
5744      eventdata.goal = "undefined";
5745    }
5746
5747    if (idCounter) {
5748      try {
5749        waitCounter(idCounter, 50, function () {
5750          var obCounter = window["yaCounter" + idCounter];
5751          if (typeof obCounter == "object") {
5752            obCounter.reachGoal(eventdata.goal);
5753          }
5754        });
5755      } catch (e) {
5756        console.error(e);
5757      }
5758    } else {
5759      console.info("Bad counter id!", idCounter);
5760    }
5761  }
5762});
5763
5764var onCaptchaVerifyinvisible = function (response) {
5765  $(".g-recaptcha:last").each(function () {
5766    var id = $(this).attr("data-widgetid");
5767    if (typeof id !== "undefined" && response) {
5768      if (!$(this).closest("form").find(".g-recaptcha-response").val())
5769        $(this).closest("form").find(".g-recaptcha-response").val(response);
5770      if ($("iframe[src*=recaptcha]").length) {
5771        $("iframe[src*=recaptcha]").each(function () {
5772          var block = $(this).parent().parent();
5773          if (!block.hasClass("grecaptcha-badge")) block.remove();
5774        });
5775      }
5776      $(this).closest("form").submit();
5777    }
5778  });
5779};
5780
5781var onCaptchaVerifynormal = function (response) {
5782  $(".g-recaptcha").each(function () {
5783    var id = $(this).attr("data-widgetid");
5784    if (typeof id !== "undefined") {
5785      if (grecaptcha.getResponse(id) != "") {
5786        $(this).closest("form").find(".recaptcha").valid();
5787      }
5788    }
5789  });
5790};
5791
5792BX.addCustomEvent("onSubmitForm", function (eventdata) {
5793  try {    
5794    if (
5795        !window.renderRecaptchaById ||
5796        !window.asproRecaptcha ||
5797        !window.asproRecaptcha.key
5798    ) {
5799        eventdata.form.submit();
5800        $(eventdata.form).closest(".form").addClass("sending");
5801        return true;
5802    }
5803    if (
5804      window.asproRecaptcha.params.recaptchaSize == "invisible" &&
5805      $(eventdata.form).find(".g-recaptcha").length
5806  ) {
5807      console.log('here');
5808      
5809        if ($(eventdata.form).find(".g-recaptcha-response").val()) {
5810            eventdata.form.submit();
5811            $(eventdata.form).closest(".form").addClass("sending");
5812            return true;
5813        } else {
5814            if (typeof grecaptcha != "undefined") {
5815                grecaptcha.execute(
5816                    $(eventdata.form).find(".g-recaptcha").data("widgetid")
5817                );
5818            } else {
5819                return false;
5820            }
5821        }
5822    } else if (
5823        $(eventdata.form).find(".g-recaptcha").length &&
5824        window.asproRecaptcha.ver === "3" &&
5825        typeof grecaptcha != "undefined"
5826    ) {
5827        grecaptcha
5828            .execute(window.asproRecaptcha.key, { action: "maxscore" })
5829            .then(function (token) {
5830                $(eventdata.form).find(".g-recaptcha-response").html(token);
5831                eventdata.form.submit();
5832                $(eventdata.form).closest(".form").addClass("sending");
5833
5834                return true;
5835            });
5836    } else {
5837        eventdata.form.submit();
5838        $(eventdata.form).closest(".form").addClass("sending");
5839        return true;
5840    }
5841} catch (e) {
5842    console.error(e);
5843    return true;
5844}
5845});
5846
5847$(document).ready(function () {
5848  /*  --- Bind mobile filter  --- */
5849  var $mobilefilter = $("#mobilefilter");
5850  var $mobileMenu = $("#mobilemenu, #mobileheadersimple");
5851  if ($mobilefilter.length && window.matchMedia("(max-width: 768px)").matches) {
5852    $mobilefilter.isOpen = $mobileMenu.hasClass("show");
5853    $mobilefilter.isAppendLeft = false;
5854    $mobilefilter.isWrapFilter = false;
5855    $mobilefilter.isHorizontalOrCompact = $(".filter_horizontal").length || $(".bx_filter_vertical.compact").length;
5856    $mobilefilter.close = '<i class="svg svg-close close-icons"></i>';
5857
5858    $(document).on("click", ".filter_opener", function () {
5859      OpenMobileFilter();
5860    });
5861
5862    $(document).on("click", "#mobilefilter .svg-close.close-icons", function () {
5863      CloseMobileFilter();
5864    });
5865
5866    $(document).on("click", ".bx_filter_select_block", function (e) {
5867      var bx_filter_select_container = $(e.target).parents(".bx_filter_select_container");
5868      if (bx_filter_select_container.length) {
5869        var prop_id = bx_filter_select_container.closest(".bx_filter_parameters_box").attr("data-property_id");
5870        if ($("#smartFilterDropDown" + prop_id).length) {
5871          $("#smartFilterDropDown" + prop_id).css({
5872            "max-width": bx_filter_select_container.width(),
5873            "z-index": "3020",
5874          });
5875        }
5876      }
5877    });
5878
5879    $(document).on("mouseup", ".bx_filter_section", function (e) {
5880      if ($(e.target).hasClass("bx_filter_search_button")) {
5881        CloseMobileFilter();
5882      }
5883    });
5884
5885    $(document).on("mouseup", ".bx_filter_parameters_box_title", function (e) {
5886      $("[id^='smartFilterDropDown']").hide();
5887      if ($(e.target).hasClass("close-icons")) {
5888        CloseMobileFilter();
5889      }
5890    });
5891
5892    $mobilefilter.parent().append('<div id="mobilefilter-overlay"></div>');
5893    var $mobilefilterOverlay = $("#mobilefilter-overlay");
5894
5895    $mobilefilterOverlay.click(function () {
5896      if ($mobilefilter.isOpen) {
5897        CloseMobileFilter();
5898        //e.stopPropagation();
5899      }
5900    });
5901
5902    mobileFilterNum = function (num, def) {
5903      if (def) {
5904        $(".bx_filter_search_button").val(num.data("f"));
5905      } else {
5906        var str = "";
5907        var $prosLeng = $(".bx_filter_parameters_box > span");
5908
5909        str +=
5910          $prosLeng.data("f") +
5911          " " +
5912          num +
5913          " " +
5914          declOfNumFilter(num, [$prosLeng.data("fi"), $prosLeng.data("fr"), $prosLeng.data("frm")]);
5915        $(".bx_filter_search_button").val(str);
5916      }
5917    };
5918
5919    declOfNumFilter = function (number, titles) {
5920      cases = [2, 0, 1, 1, 1, 2];
5921      return titles[number % 100 > 4 && number % 100 < 20 ? 2 : cases[number % 10 < 5 ? number % 10 : 5]];
5922    };
5923
5924    OpenMobileFilter = function () {
5925      if (!$mobilefilter.isOpen) {
5926        if (!$mobilefilter.isAppendLeft) {
5927          if (!$mobilefilter.isWrapFilter) {
5928            $(".bx_filter").wrap("<div id='wrapInlineFilter'></div>");
5929            $mobilefilter.isWrapFilter = true;
5930          }
5931          $(".bx_filter").css("top", "");
5932          $(".bx_filter")
5933            .appendTo($("#mobilefilter"))
5934            .find(".title .bx_filter_parameters_box_title")
5935            .append($mobilefilter.close);
5936          $mobilefilter.isAppendLeft = true;
5937        }
5938
5939        // show overlay
5940        setTimeout(function () {
5941          $mobilefilterOverlay.fadeIn("fast");
5942        }, 100);
5943
5944        // fix body
5945        $("body").css({ "overflow-y": "hidden" });
5946
5947        // show mobile filter
5948        $mobilefilter.addClass("show");
5949        $mobilefilter.find(".bx_filter").css({ display: "block" });
5950        $mobilefilter.isOpen = true;
5951
5952        var init = $mobilefilter.data("init");
5953        if (typeof init === "undefined") {
5954          $mobilefilter.scroll(function () {
5955            $(".bx_filter_section .bx_filter_select_container").each(function () {
5956              var prop_id = $(this).closest(".bx_filter_parameters_box").attr("data-property_id");
5957              if ($("#smartFilterDropDown" + prop_id).length) {
5958                $("#smartFilterDropDown" + prop_id).hide();
5959              }
5960            });
5961          });
5962
5963          $mobilefilter.data("init", "Y");
5964        }
5965      }
5966    };
5967
5968    CloseMobileFilter = function (append) {
5969      $(".bx_filter").css("display", "");
5970      if ($mobilefilter.isOpen) {
5971        // scroll to top
5972        $mobilefilter.find(".bx_filter_parameters").scrollTop(0);
5973
5974        // unfix body
5975        $("body").css({ "overflow-y": "auto" });
5976
5977        // hide overlay
5978        setTimeout(function () {
5979          $mobilefilterOverlay.fadeOut("fast");
5980        }, 100);
5981
5982        // hide mobile filter
5983        $mobilefilter.removeClass("show");
5984        $mobilefilter.isOpen = false;
5985      }
5986
5987      if (append && $mobilefilter.isAppendLeft) {
5988        $(".bx_filter").appendTo($("#wrapInlineFilter")).show().find(".svg-close").remove();
5989        $mobilefilter.isAppendLeft = false;
5990        $mobilefilter.removeData("init");
5991        mobileFilterNum($("#modef_num_mobile"), true);
5992      }
5993    };
5994
5995    checkMobileFilter = function () {
5996      if (
5997        (!window.matchMedia("(max-width: 991px)").matches && !$mobilefilter.isHorizontalOrCompact) ||
5998        (!window.matchMedia("(max-width: 767px)").matches && $mobilefilter.isHorizontalOrCompact)
5999      ) {
6000        CloseMobileFilter(true);
6001      }
6002    };
6003  } else {
6004    checkVerticalMobileFilter();
6005    $(document).on("click", ".filter_opener", function () {
6006      $(this).toggleClass("opened");
6007      if ($(".visible_mobile_filter").length) {
6008        $(".visible_mobile_filter").show();
6009        $(".bx_filter_vertical, .bx_filter").slideToggle(333);
6010      } else {
6011        $(".bx_filter_vertical").closest("div[id^=bx_incl]").show();
6012        $(".bx_filter_vertical, .bx_filter").slideToggle(333);
6013      }
6014    });
6015  }
6016  /*  --- END Bind mobile filter  --- */
6017});
6018
6019/*custom event for sku prices*/
6020
6021/*BX.addCustomEvent('onAsproSkuSetPrice', function(eventdata){
6022	console.log(eventdata);
6023})*/
6024
6025/*BX.addCustomEvent('onAsproSkuSetPriceMatrix', function(eventdata){
6026	console.log(eventdata);
6027})*/
6028
6029InitScrollBar = function (el, initOptions) {
6030  var block = $(".scrollbar:not(.mobile-scroll)");
6031  if (typeof el !== "undefined") block = el;
6032  if (block.length) {
6033    var options,
6034      defaults = {
6035        mouseWheel: {
6036          scrollAmount: 150,
6037          preventDefault: true,
6038        },
6039      };
6040    var config = $.extend({}, defaults, options, block.data("plugin-options"), initOptions);
6041
6042    config.callbacks = {
6043      onScroll: function () {
6044        if ($(this).find(".mCSB_buttonLeft").hasClass("disabled"))
6045          $(this).find(".mCSB_buttonLeft").removeClass("disabled");
6046        if ($(this).find(".mCSB_buttonRight").hasClass("disabled"))
6047          $(this).find(".mCSB_buttonRight").removeClass("disabled");
6048      },
6049      onTotalScrollBack: function () {
6050        $(this).find(".mCSB_buttonLeft").addClass("disabled");
6051      },
6052      onTotalScroll: function () {
6053        $(this).find(".mCSB_buttonRight").addClass("disabled");
6054      },
6055      onInit: function () {
6056        $(this).find(".mCSB_buttonLeft").addClass("disabled");
6057      },
6058    };
6059    block.mCustomScrollbar(config);
6060  }
6061};
6062
6063AjaxClickLink = function (e) {
6064  var _this = "",
6065    container = $("#right_block_ajax .inner_wrapper"),
6066    container_inner = container.find(".ajax_load"),
6067    dopAction = "";
6068  url = "";
6069  if ("preventDefault" in e) {
6070    e.preventDefault();
6071    _this = $(e.target).hasClass("js-load-link") ? $(e.target) : $(e.target).closest(".js-load-link");
6072  } else {
6073    _this = $(e);
6074    dopAction = "Y";
6075  }
6076
6077  if (container.length) {
6078    var objUrl = parseUrlQuery(),
6079      obGetData = { ajax_get_filter: "Y", control_ajax: "Y" };
6080
6081    obGetData.bitrix_include_areas = "N";
6082
6083    if ("clear_cache" in objUrl) {
6084      if (objUrl.clear_cache == "Y") {
6085        obGetData.clear_cache = "Y";
6086      }
6087    }
6088
6089    if (container_inner.length) container_inner.addClass("loading-state");
6090    else container.addClass("loading-state");
6091
6092    if (_this.data("url")) url = _this.data("url");
6093
6094    if (dopAction) {
6095      BX.PopupWindowManager.getCurrentPopup().close();
6096      $(".bx_filter_select_popup ul li .sort_btn").removeClass("current");
6097      _this.addClass("current");
6098      _this.closest(".bx_filter_block").find(".bx_filter_select_text").text(_this.text());
6099    }
6100
6101    $(".bx_filter .bx_sort_filter .bx_filter_select_text").text(_this.text());
6102    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li span.current").removeClass("current");
6103    $(".bx_filter .bx_sort_filter .bx_filter_select_popup ul li")
6104      .eq(_this.parent().index())
6105      .find("span")
6106      .addClass("current");
6107
6108    $.ajax({
6109      url: url,
6110      data: obGetData,
6111      success: function (html) {
6112        container.html(html);
6113
6114        if (container_inner.length) container_inner.removeClass("loading-state");
6115        else container.removeClass("loading-state");
6116
6117        var eventdata = { action: "jsLoadBlock" };
6118        BX.onCustomEvent("onCompleteAction", [eventdata, _this]);
6119
6120        initCountdown();
6121        InitScrollBar();
6122      },
6123    });
6124  }
6125};
6126
6127if (!funcDefined("throttle")) {
6128  function throttle(func, wait, debounce) {
6129    var timeout;
6130    return function () {
6131      var context = this,
6132        args = arguments;
6133      var throttler = function () {
6134        timeout = null;
6135        func.apply(context, args);
6136      };
6137      if (debounce) clearTimeout(timeout);
6138      if (debounce || !timeout) timeout = setTimeout(throttler, wait);
6139    };
6140  }
6141}
6142
6143// document ready
6144$(function () {
6145  BX.addCustomEvent("onCompleteAction", function (eventdata, _this) {
6146    try {
6147      if (eventdata.action === "loadForm") {
6148        $(_this).parent().removeClass("loadings");
6149        $(_this).removeClass("clicked");
6150        
6151        if ($(_this).hasClass("one_click_buy_trigger")) {
6152          $(".wrapp_one_click > span").removeClass("clicked");
6153          $(".one_click").removeClass("clicked");
6154        } else if ($(_this).hasClass("one_click_buy_basket_trigger")) {
6155          $(".fast_order").removeClass("clicked");
6156        }
6157      } else if (eventdata.action === "loadActualBasket" && typeof arBasketAspro !== 'undefined') {
6158        const basketCount = Object.keys(arBasketAspro.BASKET).length;
6159        const wishCount = Object.keys(arBasketAspro.DELAY).length;
6160        const compareCount = Object.keys(arBasketAspro.COMPARE).length;
6161
6162        if (wishCount > 0) {
6163          $(".basket-link.delay .count").removeClass("hidden");
6164          $(".basket-link.delay").removeClass("no-items");
6165        } else {
6166          $(".basket-link.delay .count").addClass("hidden");
6167          $(".basket-link.delay").addClass("no-items");
6168        }
6169
6170        if (basketCount > 0) {
6171          $(".basket-link.basket .count").removeClass("hidden");
6172          $(".basket-link.basket").removeClass("no-items");
6173        } else {
6174          $(".basket-link.basket .count").addClass("hidden");
6175          $(".basket-link.basket").addClass("no-items");
6176        }
6177
6178        if (compareCount > 0) {
6179          if (!$(".basket-link.compare .count").length) {
6180            $(".basket-link.compare .wraps_icon_block").append(
6181              $(
6182                '<div class="count"><span><div class="items"><a href="' +
6183                  $(".basket-link.compare .link").attr("href") +
6184                  '">' +
6185                  compareCount +
6186                  "</a></div></span></div>"
6187              )
6188            );
6189          }
6190          $(".basket-link.compare .count").removeClass("hidden");
6191          $(".basket-link.compare").removeClass("no-items");
6192        } else {
6193          $(".basket-link.compare .count").addClass("hidden");
6194          $(".basket-link.compare").addClass("no-items");
6195        }
6196
6197        $(".basket-link.basket .count .text").text(basketCount);
6198        $(".basket-link.delay .count .text").text(wishCount);
6199        $(".basket-link.compare .count a, .basket-link.comapre > .link").text(compareCount);
6200      }
6201    } catch (e) {
6202      console.error(e);
6203    }
6204  });
6205
6206  checkHeaderFixed();
6207
6208  $(".menu-block.mobile .title").on("click", function () {
6209    const $menuWrapper = $(".menu-block.mobile");
6210    const $menuBlock = $(".menu-block.mobile .navs");
6211
6212    $menuWrapper.toggleClass("opened");
6213    $menuBlock.toggleClass("opened");
6214
6215    if ($menuWrapper.hasClass("opened")) $menuBlock.slideDown();
6216    else $menuBlock.slideUp();
6217  });
6218});
6219
6220const checkHeaderFixed = function () {
6221  const isMobile = jQuery.browser.mobile || window.matchMedia("(max-width: 991px)").matches;
6222  const mfixed = $("#headerfixed_mobile"),
6223    menu = $("header .main-nav");
6224
6225  var startScroll = 0;
6226
6227  var $mobileHeaderFixedNlo = mfixed.find("[data-nlo]"),
6228    isMobileNloLoaded = !$mobileHeaderFixedNlo.length,
6229    OnMobileHeaderFixedScrollHandler;
6230
6231  var header_fixed = $("#headerfixed");
6232  header = $("header").first();
6233
6234  if (header_fixed.length) {
6235    if (header.length) {
6236      var isHeaderFixed = false,
6237        isTabsFixed = false,
6238        headerCanFix = true,
6239        headerFixedHeight = header_fixed.actual("outerHeight"),
6240        headerNormalHeight = header.actual("outerHeight"),
6241        headerDiffHeight = headerNormalHeight - headerFixedHeight,
6242        mobileBtnMenu = $(".btn.btn-responsive-nav"),
6243        headerTop = $("#panel:visible").actual("outerHeight");
6244      topBlock = $(".TOP_HEADER").first();
6245
6246      var $headerFixedNlo = header_fixed.find("[data-nlo]"),
6247        isNloLoaded = !$headerFixedNlo.length,
6248        OnHeaderFixedScrollHandler;
6249
6250      if (headerDiffHeight <= 0) headerDiffHeight = 0;
6251      if (topBlock.length) headerTop += topBlock.actual("outerHeight");
6252
6253      $(window).scroll(
6254        (OnHeaderFixedScrollHandler = function () {
6255          var tabs_fixed = $(".product-item-detail-tabs-container-fixed");
6256
6257          if (window.matchMedia("(min-width:992px)").matches) {
6258            var scrollTop = $(window).scrollTop();
6259            headerCanFix = !mobileBtnMenu.is(":visible") /* && !$('.dropdown-menu:visible').length*/;
6260
6261            var tabs_offset = $(".tabs_section .tabs1").offset();
6262
6263            var current_is = $(".search-wrapper .search-input:visible"),
6264              title_search_result = $(".title-search-result." + current_is.attr("id")),
6265              pos,
6266              pos_input;
6267
6268            if (!isHeaderFixed) {
6269              if (scrollTop > headerNormalHeight + headerTop && headerCanFix) {
6270                if (!isNloLoaded) {
6271                  if (!$headerFixedNlo.hasClass("nlo-loadings")) {
6272                    $headerFixedNlo.addClass("nlo-loadings");
6273                    setTimeout(function () {
6274                      $.ajax({
6275                        data: { nlo: $headerFixedNlo.attr("data-nlo") },
6276                        success: function (response) {
6277                          // stop ya metrika webvisor DOM indexer
6278                          pauseYmObserver();
6279
6280                          isNloLoaded = true;
6281                          $headerFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
6282                          $headerFixedNlo.remove();
6283
6284                          OnHeaderFixedScrollHandler();
6285
6286                          // resume ya metrika webvisor
6287                          // (300ms transition) + (100ms scroll handler)
6288                          setTimeout(resumeYmObserver, 400);
6289                        },
6290                        error: function () {
6291                          $headerFixedNlo.removeClass("nlo-loadings");
6292                        },
6293                      });
6294                    }, 300);
6295                  }
6296                } else {
6297                  isHeaderFixed = true;
6298                  // header_fixed.css('top', '-' + headerNormalHeight + 'px');
6299                  header_fixed.addClass("fixed");
6300                  // header_fixed.stop(0).animate({top: '0'}, 300);
6301
6302                  /*header_fixed.animate({top: '0'}, {duration:300, complete:
6303                                    function(){}
6304                                });*/
6305
6306                  if ($("nav.mega-menu.sliced").length) $("nav.mega-menu.sliced").removeClass("initied");
6307                  //CheckTopMenuDotted();
6308                }
6309              }
6310            } else if (isHeaderFixed || !headerCanFix) {
6311              if (scrollTop <= headerDiffHeight + headerTop || !headerCanFix) {
6312                isHeaderFixed = false;
6313                header_fixed.removeClass("fixed");
6314                $(".title-search-result.title-search-input2_fixed").css("display", "none");
6315              }
6316            }
6317            //fixed tabs
6318            if (tabs_fixed.length) {
6319              if (scrollTop + headerFixedHeight > tabs_offset.top) {
6320                tabs_fixed.css({ top: header_fixed.actual("outerHeight") });
6321                tabs_fixed.addClass("fixed");
6322              } else if (tabs_fixed.hasClass("fixed")) {
6323                tabs_fixed.removeAttr("style");
6324                tabs_fixed.removeClass("fixed");
6325              }
6326            }
6327          }
6328        })
6329      );
6330    }
6331  }
6332
6333  //mobile fixed
6334  if (mfixed.length && isMobile) {
6335    var isMHeaderFixed = false,
6336      mheaderCanFix = true,
6337      mheaderFixedHeight = mfixed.actual("outerHeight"),
6338      mheaderNormalHeight = header.actual("outerHeight") + menu.actual("outerHeight"),
6339      mheaderDiffHeight = mheaderNormalHeight - mheaderFixedHeight,
6340      mheaderTop = $("#panel:visible").actual("outerHeight");
6341
6342    if (headerDiffHeight <= 0) headerDiffHeight = 0;
6343
6344    $(window).scroll(
6345      (OnMobileHeaderFixedScrollHandler = function () {
6346        var scrollTop = $(window).scrollTop();
6347
6348        if (window.matchMedia("(max-width:991px)").matches) {
6349          if (!isMHeaderFixed) {
6350            if (scrollTop > mheaderDiffHeight + mheaderTop) {
6351              if (!isMobileNloLoaded) {
6352                if (!$mobileHeaderFixedNlo.hasClass("nlo-loadings")) {
6353                  $mobileHeaderFixedNlo.addClass("nlo-loadings");
6354                  setTimeout(function () {
6355                    $.ajax({
6356                      data: { nlo: $mobileHeaderFixedNlo.attr("data-nlo") },
6357                      success: function (response) {
6358                        // stop ya metrika webvisor DOM indexer
6359                        pauseYmObserver();
6360
6361                        isMobileNloLoaded = true;
6362                        $mobileHeaderFixedNlo[0].insertAdjacentHTML("beforebegin", $.trim(response));
6363                        $mobileHeaderFixedNlo.remove();
6364
6365                        OnMobileHeaderFixedScrollHandler();
6366
6367                        // resume ya metrika webvisor
6368                        // (300ms transition) + (100ms scroll handler)
6369                        setTimeout(resumeYmObserver, 400);
6370                      },
6371                      error: function () {
6372                        $mobileHeaderFixedNlo.removeClass("nlo-loadings");
6373                      },
6374                    });
6375                  }, 300);
6376                }
6377              } else {
6378                //console.log(scrollTop, mheaderFixedHeight);
6379                isMHeaderFixed = true;
6380                mfixed.addClass("fixed");
6381              }
6382            }
6383          } else if (isMHeaderFixed) {
6384            if (scrollTop <= mheaderDiffHeight + mheaderTop) {
6385              isMHeaderFixed = false;
6386              mfixed.removeClass("fixed");
6387              $("#headerfixed_mobile .menu.adaptive, #headerfixed_mobile .menu.full").removeClass("opened");
6388              $("#headerfixed_mobile .menu.full").css("display", "none");
6389            }
6390          }
6391        } else mfixed.removeClass("fixed");
6392      })
6393    );
6394  }
6395};

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.