PageSourceSearch

https://forma.hockey/bitrix/templates/aspro_optimus/js/main.js?1742501452226170

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

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.