PageSourceSearch

https://furpur.ru/bitrix/templates/furpur_adaptive_pain/js/adaptive_nav.js

js furpur.ru collected 2026-09-26 12:31:17 UTC 5,304 bytes, 174 lines download raw bytes

1$(document).ready(function() {
2  // Slideout main menu
3  if (typeof Slideout !== "undefined" && document.getElementById("menu")) {
4    var slideout = new Slideout({
5      panel: document.getElementById("page-container"),
6      menu: document.getElementById("menu"),
7      padding: 256,
8      tolerance: 70,
9      side: "left",
10      touch: false
11    });
12  }
13
14  // slideout menu opening on mobile
15  enquire.register("screen and (max-width: 767px)", {
16    match: function() {
17      $("#menu-toggle-button").on("click.menu", function() {
18        slideout.toggle();
19      });
20
21      $(document).on("click.mobileCategory", "#menu .menu-category", function(
22        event
23      ) {
24        var clickedItem = $(event.target);
25        var submenu = clickedItem.find(".submenu");
26        if (!clickedItem.data("isOpen")) {
27          clickedItem.addClass("is-open");
28          submenu.slideDown(200, function() {
29            clickedItem.data("isOpen", true);
30          });
31        } else {
32          clickedItem.removeClass("is-open");
33          submenu.slideUp(200, function() {
34            clickedItem.data("isOpen", false);
35          });
36        }
37      });
38
39      // open search
40      $(document).on("click.mobileSearch", "#title-search", function(event) {
41        var clickedItem = $(event.target);
42        if (!clickedItem.data("isOpen")) {
43          clickedItem.addClass("is-open");
44          $("#search").focus();
45        }
46      });
47      //close search
48      $(document).on("click.mobileSearchClose", ".search__close", function(
49        event
50      ) {
51        $("#title-search").removeClass("is-open");
52      });
53    },
54    unmatch: function() {
55      $("#menu-toggle-button").off("click.menu");
56      if (slideout.isOpen()) {
57        slideout.close();
58      }
59
60      $(document).off("click.mobileCategory");
61      $(document).off("click.mobileSearch");
62      $(document).off("click.mobileSearchClose");
63    }
64  });
65  // category menu
66  var categoryMenu = document.getElementById("categories-menu");
67
68  $("#menu-toggle-button").on("click.desktopCategoryMenu", function(event) {
69    if (!$(document).data("categoryMenuOpen")) {
70      makeVisible(categoryMenu, 100, "desktop_invisible");
71      $(document).data("categoryMenuOpen", true);
72    } else {
73      makeInvisible(categoryMenu, 100, "desktop_invisible");
74      $(document).data("categoryMenuOpen", false);
75    }
76  });
77
78  $(document).on("mouseup.desktopCategoryMenu", function(event) {
79    if ($(categoryMenu).has(event.target).length === 0) {
80      makeInvisible(categoryMenu, 100, "desktop_invisible");
81      $(document).data("categoryMenuOpen", false);
82    }
83  });
84
85  // categoryy menu hovers
86  function toggleMenuHovers(toggle) {
87    var menuItems = $(".menu-category");
88    var submenus = $(".submenu");
89
90    if (toggle) {
91      $.each($(menuItems), function(index, item) {
92        var categoryName = $(item).find(".menu-category__name");
93        var submenu = $(item).find(".submenu");
94        var speed = 100;
95
96        $(categoryName).on("mouseover.desktopCategoryMenu", function(event) {
97          event.stopPropagation();
98          makeVisible($(submenu), speed, "desktop_invisible");
99        });
100
101        $(categoryName).on("mouseout.desktopCategoryMenu", function(event) {
102          event.stopPropagation();
103          var hovered = $(item).find(".submenu:hover").length;
104          if (!hovered) {
105            makeInvisible($(submenu), speed, "desktop_invisible");
106          }
107        });
108
109        $(submenu).on("mouseover.desktopSubmenu", function(event) {
110          event.stopPropagation();
111          $(categoryName).addClass("hover");
112          makeVisible($(submenu), 0, "desktop_invisible");
113        });
114
115        $(submenu).on("mouseout.desktopSubmenu", function(event) {
116          event.stopPropagation();
117          var hovered = $(item).find(".submenu:hover").length;
118          if (!hovered) {
119            $(categoryName).removeClass("hover");
120            makeInvisible($(submenu), speed, "desktop_invisible");
121          }
122        });
123      });
124    } else {
125      $.each($(menuItems), function(index, item) {
126        var categoryName = $(item).find(".menu-category__name");
127        var submenu = $(item).find(".submenu");
128
129        $(categoryName).off("mouseover.desktopCategoryMenu");
130        $(categoryName).off("mouseout.desktopCategoryMenu");
131        $(submenu).off("mouseover.desktopSubmenu");
132        $(submenu).off("mouseout.desktopSubmenu");
133      });
134    }
135  }
136
137  enquire.register("screen and (min-width:768px)", {
138    match: function() {
139      toggleMenuHovers(true);
140    },
141    unmatch: function() {
142      toggleMenuHovers(false);
143    },
144    deferSetup: true
145  });
146
147  // utility functions
148  function makeVisible(el, speed, className) {
149    if (className === undefined) {
150      var invisibleClass = "invisible";
151    } else {
152      invisibleClass = className;
153    }
154
155    $(el).css("display", "none");
156    $(el).removeClass(invisibleClass);
157    $(el).fadeIn(speed, function() {
158      $(el).css("display", "");
159    });
160  }
161
162  function makeInvisible(el, speed, className) {
163    if (className === undefined) {
164      var invisibleClass = "invisible";
165    } else {
166      invisibleClass = className;
167    }
168
169    $(el).fadeOut(speed, function() {
170      $(el).addClass(invisibleClass);
171      $(el).css("display", "");
172    });
173  }
174});

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.