PageSourceSearch

https://uarmprotection.com/wp-content/themes/uarm-v2/js/ajax/search.js

js uarmprotection.com collected 2026-10-02 21:36:14 UTC 8,477 bytes, 292 lines download raw bytes

1$(document).ready(function () {
2
3    var ajaxurl = '/wp-admin/admin-ajax.php';
4
5    var searchWrap = '.searchWrap';
6    var searchInputWrap = '.searchWrap .searchInput';
7    var searchInputPopupWrap = '.searchResultsPopupInputSearch .searchInput';
8    var searchBtnWrap = '.headerLink.search, .searchResultsWrap .showAllSearchResults';
9
10    function openSearchPopup() {
11
12        $.magnificPopup.open({
13            items: {
14                src: '#searchResult',
15            },
16            type: 'inline',
17
18            fixedContentPos: false,
19            fixedBgPos: true,
20
21            overflowY: 'auto',
22
23            closeBtnInside: true,
24            preloader: false,
25
26            midClick: true,
27            removalDelay: 100,
28            mainClass: 'my-mfp-zoom-in',
29            callbacks: {
30                open: function () {
31                    $('body').addClass('fixed');
32                    $(searchWrap).removeClass('dropResults');
33                },
34                close: function () {
35                    $('body').removeClass('fixed');
36                }
37            }
38        });
39
40    }
41
42    //search handler
43    $(document).on('click', searchBtnWrap, function (e) {
44
45        e.preventDefault();
46
47        var selector = '.header',
48            self = this;
49
50        if ($(window).width() > 767) {
51            selector = '.searchWrap';
52        } else {
53            $(this).parents('.header').find('.headerButtons').addClass('hideForSearch');
54        }
55
56        var searchInputText = $(searchInputWrap).val();
57
58        if (searchInputText) {
59            search(searchInputText);
60        }
61
62        if ($(this).parents(selector).hasClass('opened') && $('.searchWrap .searchInput').val()) {
63            openSearchPopup();
64            // $(this).parents('.header').find('.headerButtons').removeClass('hideForSearch');
65            // $(this).parents(selector).removeClass('opened');
66        } else {
67            $(this).parents(selector).addClass('opened');
68
69            setTimeout(function () {
70                $(self).parents(selector).find('.searchInput').focus();
71            }, 400);
72        }
73
74    });
75
76    $(document).on('keypress', searchInputWrap, function (e) {
77
78        var searchInputText = $(searchInputWrap).val();
79
80        $(searchInputPopupWrap).val(searchInputText);
81
82        if (e.keyCode === 13) {
83            if (searchInputText) {
84                search(searchInputText);
85                openSearchPopup();
86            }
87        } else {
88            if (searchInputText.length > 3) {
89                fastSearch(searchInputText);
90            }
91        }
92
93    });
94
95    $(document).on('keyup', searchInputPopupWrap, function (e) {
96
97        var searchInputText = $(searchInputPopupWrap).val();
98
99        $(searchInputWrap).val(searchInputText);
100
101        if (searchInputText.length > 3) {
102            search(searchInputText);
103        }
104
105    });
106
107    $(document).on('click', function (e) {
108
109        if ($(e.target).parents('.searchWrap').length === 0) {
110            $(searchWrap).removeClass('dropResults');
111        }
112
113    });
114
115    $(document).on('click', searchInputWrap, function () {
116
117        var searchInputText = $(searchInputWrap).val();
118
119        if (searchInputText.length > 3) {
120            fastSearch(searchInputText);
121        }
122
123    });
124
125    var popupHeaderQueryWrap = '.popupBody .sectionHead .searchRequest';
126
127    var productsCountWrap = '.popupBody .sectionHead.products .value';
128    var productsItemsPopup = '.searchResultsPopup .popupBody';
129    var productsItemsWrap = '.searchResultsPopup .popupBody .cardsWrap';
130    var productsHiddenItemsWrap = '.popupBody .cardsWrap .hiddenProducts';
131    var productsShowMoreBtnWrap = '.popupBody .toCatalogButtonWrap';
132
133    var fastSearchCountWrap = '.searchResultsWrap .showAllSearchResults .foundedItemsNumber';
134    var fastSearchItemsWrap = '.searchResultsWrap .searchResultItemsWrap';
135
136    var postsCountWrap = '.popupBody .sectionHead.posts .value';
137    var postsItemsWrap = '.popupBody .newsWrap';
138
139    //  search
140    var searchAjax;
141
142    function search(query) {
143
144        if (searchAjax) {
145            searchAjax.abort();
146        }
147
148        $(productsItemsWrap).empty();
149        $(productsItemsPopup).addClass('loading');
150
151        var data = {
152            'action': 'uarm_ajax_search',
153            'search_query': query
154        };
155
156        searchAjax = $.ajax({
157            url: ajaxurl,
158            data: data,
159            type: 'GET',
160            success: function (data) {
161
162                $(productsItemsPopup).removeClass('loading');
163
164                if (data) {
165
166                    var result = JSON.parse(data);
167
168                    var searchQuery = result['search_query'];
169
170                    $(popupHeaderQueryWrap).html('"' + searchQuery + '"');
171
172                    //  products
173                    var resultProducts = result['products'];
174                    var resultProductsCount = resultProducts['count'];
175                    var resultProductsHtml = resultProducts['html'];
176
177                    $(productsCountWrap).html(resultProductsCount);
178
179                    if (parseInt(resultProductsCount) != 0) {
180                        $(productsShowMoreBtnWrap).attr('style', 'display:block;');
181                    } else {
182                        $(productsShowMoreBtnWrap).attr('style', 'display:none;');
183                    }
184
185                    if (resultProductsHtml) {
186
187                        var productItemIteration = 0;
188
189                        for (var productItemIndex in resultProductsHtml) {
190
191                            var productItemObject = $(resultProductsHtml[productItemIndex]);
192
193                            $(productsItemsWrap).append(productItemObject);
194
195                            productItemIteration++;
196
197                        }
198
199                    }
200
201                    //posts
202                    var resultPosts =result['posts'];
203                    var resultPostsCount = resultPosts['count'];
204                    var resultPostsHtml = resultPosts['html'];
205
206                    $(postsCountWrap).html(resultPostsCount);
207
208                    if (resultPostsHtml) {
209
210                        $(postsItemsWrap).empty().append(resultPostsHtml);
211
212                    }
213
214                    if (result['html']) {
215                        $('body').append(result['html']);
216                    }
217                }
218
219            }
220        });
221
222    }
223
224    //  fast search
225    var fastSearchAjax;
226
227    function fastSearch(query) {
228
229        if (fastSearchAjax) {
230            fastSearchAjax.abort();
231        }
232
233        $(searchWrap).addClass('loading');
234
235        var data = {
236            'action': 'uarm_ajax_fast_search',
237            'search_query': query
238        };
239
240        fastSearchAjax = $.ajax({
241            url: ajaxurl,
242            data: data,
243            type: 'GET',
244            success: function (data) {
245
246                $(searchWrap).removeClass('loading');
247
248                if (data) {
249
250                    var result = JSON.parse(data);
251
252                    var searchQuery = result['search_query'];
253
254                    $(popupHeaderQueryWrap).html('"' + searchQuery + '"');
255
256                    //  products
257                    var resultProducts = result['products'];
258                    var resultProductsCount = resultProducts['count'];
259                    var resultProductsHtml = resultProducts['html'];
260
261                    $(fastSearchCountWrap).html(resultProductsCount);
262
263                    if (resultProductsHtml.length !== 0) {
264
265                        if ($(searchWrap).hasClass('opened')) {
266                            if ($('.searchWrap .searchInput').val() == '') {
267                                $(searchWrap).removeClass('dropResults');
268                            } else {
269                                $(searchWrap).addClass('dropResults');
270                            }
271                        } else if ($('header.header').hasClass('opened')) {
272                            if ($('.searchWrap .searchInput').val() == '') {
273                                $(searchWrap).removeClass('dropResults');
274                            } else {
275                                $(searchWrap).addClass('dropResults');
276                            }
277                        }
278
279                        $(fastSearchItemsWrap).empty().append(resultProductsHtml);
280
281                    } else {
282                        $(searchWrap).removeClass('dropResults');
283                    }
284
285                }
286
287            }
288        });
289
290    }
291
292});

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.