PageSourceSearch

https://bullion.fkjewellers.com/wp-content/plugins/woo-smart-wishlist/assets/js/frontend.js?ver=6.0.5

js fkjewellers.com collected 2026-09-24 11:32:59 UTC 32,157 bytes, 902 lines download raw bytes

1'use strict';
2
3(function ($) {
4    var $storage = true;
5    var added_ids = [];
6    var key = Cookies.get('woosw_key');
7
8    try {
9        $storage = ('sessionStorage' in window && window.sessionStorage !== null);
10        window.sessionStorage.setItem('woosw', 'test');
11        window.sessionStorage.removeItem('woosw');
12    } catch (err) {
13        $storage = false;
14    }
15
16    $(function () {
17        if (key === null || key === undefined || key === '') {
18            key = woosw_get_key();
19            Cookies.set('woosw_key', key, {expires: 7});
20        }
21
22        // Load data for the first time
23        woosw_load_data();
24
25        if ($('.woosw-custom-menu-item').length || woosw_vars.reload_count === 'yes') {
26            // reload the count
27            woosw_load_count();
28        }
29
30        if ($('.woosw-list-ajax').length) {
31            // reload the list
32            woosw_load_list();
33        }
34
35        if (woosw_vars.added_to_cart === 'yes' && woosw_vars.auto_remove === 'yes') {
36            setTimeout(function () {
37                woosw_load_count();
38                woosw_get_data();
39            }, 300);
40        }
41
42        if (woosw_vars.button_action === 'message') {
43            $.notiny.addTheme('woosw', {
44                notification_class: 'notiny-theme-woosw',
45            });
46        }
47    });
48
49    $(document).on('change', '.woosw-switcher-dropdown', function () {
50        window.location = $(this).val();
51    });
52
53    $(document).on('woosw_refresh_data', function () {
54        woosw_get_data();
55    });
56
57    $(document).on('woosw_refresh_count', function () {
58        woosw_load_count();
59    });
60
61    // woovr
62    $(document).on('woovr_selected', function (e, selected, variations) {
63        var id = selected.attr('data-id');
64        var pid = selected.attr('data-pid');
65
66        if (id > 0) {
67            $('.woosw-btn-' + pid).attr('data-id', id).removeClass('woosw-btn-added woosw-added');
68
69            // refresh button
70            woosw_refresh_button_id(id);
71        } else {
72            $('.woosw-btn-' + pid).attr('data-id', pid).removeClass('woosw-btn-added woosw-added');
73
74            // refresh button
75            woosw_refresh_button_id(pid);
76        }
77    });
78
79    // found variation
80    $(document).on('found_variation', function (e, t) {
81        var product_id = $(e['target']).attr('data-product_id');
82
83        // change id
84        $('.woosw-btn-' + product_id).attr('data-id', t.variation_id).removeClass('woosw-btn-added woosw-added');
85
86        // refresh button
87        woosw_refresh_button_id(t.variation_id);
88    });
89
90    // reset data
91    $(document).on('reset_data', function (e) {
92        var product_id = $(e['target']).attr('data-product_id');
93
94        // change id
95        $('.woosw-btn-' + product_id).attr('data-id', product_id).removeClass('woosw-btn-added woosw-added');
96
97        // refresh button
98        woosw_refresh_button_id(product_id);
99    });
100
101    // auto remove
102    $(document.body).on('added_to_cart', function (e, fragments, cart_hash, $button) {
103        if (woosw_vars.auto_remove === 'yes') {
104            var product_id = parseInt($button.data('product_id'));
105
106            if ((product_id > 0) && $('.woosw-item-' + product_id).length) {
107                $('.woosw-item-' + product_id).remove();
108            }
109
110            woosw_load_count();
111            woosw_get_data();
112        }
113    });
114
115    // quick view
116    $(document).on('click touch', '#woosw_wishlist .woosq-link, #woosw_wishlist .woosq-btn', function (e) {
117        woosw_wishlist_hide();
118        e.preventDefault();
119    });
120
121    // add to wishlist
122    $(document).on('click touch', '.woosw-btn', function (e) {
123        var $this = $(this);
124        var id = $this.attr('data-id');
125        var pid = $this.attr('data-pid');
126        var product_id = $this.attr('data-product_id');
127        var product_name = $this.attr('data-product_name');
128        var product_image = $this.attr('data-product_image');
129
130        if (typeof pid !== typeof undefined && pid !== false) {
131            id = pid;
132        }
133
134        if (typeof product_id !== typeof undefined && product_id !== false) {
135            id = product_id;
136        }
137
138        if ($this.hasClass('woosw-added')) {
139            if (woosw_vars.button_action_added === 'remove') {
140                // remove from  wishlist
141                var data = {
142                    action: 'woosw_remove', product_id: id, key: key, nonce: woosw_vars.nonce,
143                };
144
145                $this.addClass('woosw-adding').find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon + ' ' + woosw_vars.button_added_icon).addClass(woosw_vars.button_loading_icon);
146
147                $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_remove'), data, function (response) {
148                    $this.removeClass('woosw-adding').find('.woosw-btn-icon').removeClass(woosw_vars.button_loading_icon);
149
150                    if (response.content != null) {
151                        $('#woosw_wishlist').html(response.content).addClass('woosw-loaded');
152                    }
153
154                    if (response.notice != null) {
155                        woosw_notice(response.notice);
156                    }
157
158                    if (response.count != null) {
159                        woosw_change_count(response.count);
160                    }
161
162                    if ($storage && response.data) {
163                        sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data));
164                    }
165
166                    if (response.data.fragments) {
167                        woosw_refresh_fragments(response.data.fragments);
168                    }
169
170                    if (response.data.ids) {
171                        woosw_refresh_buttons(response.data.ids);
172                        woosw_refresh_ids(response.data.ids);
173                    }
174
175                    $(document.body).trigger('woosw_remove', [product_id]);
176                });
177            } else if (woosw_vars.button_action_added === 'page') {
178                // open wishlist page
179                window.location.href = woosw_vars.wishlist_url;
180            } else {
181                // open wishlist popup
182                if ($('#woosw_wishlist').hasClass('woosw-loaded')) {
183                    woosw_wishlist_show();
184                } else {
185                    woosw_wishlist_load();
186                }
187            }
188        } else {
189            // add product
190            var data = {
191                action: 'woosw_add', product_id: id, nonce: woosw_vars.nonce,
192            };
193
194            $this.addClass('woosw-adding').find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon + ' ' + woosw_vars.button_added_icon).addClass(woosw_vars.button_loading_icon);
195
196            $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_add'), data, function (response) {
197                $this.removeClass('woosw-adding').find('.woosw-btn-icon').removeClass(woosw_vars.button_loading_icon);
198
199                if (woosw_vars.button_action === 'list') {
200                    if (response.content != null) {
201                        $('#woosw_wishlist').html(response.content).addClass('woosw-loaded');
202                    }
203
204                    if (response.notice != null) {
205                        woosw_notice(response.notice.replace('{name}', '<strong>' + product_name + '</strong>'));
206                    }
207
208                    woosw_perfect_scrollbar();
209                    woosw_wishlist_show();
210                }
211
212                if (woosw_vars.button_action === 'message') {
213                    $('#woosw_wishlist').removeClass('woosw-loaded');
214
215                    $.notiny({
216                        theme: 'woosw',
217                        position: woosw_vars.message_position,
218                        image: product_image,
219                        text: response.notice.replace('{name}', '<strong>' + product_name + '</strong>'),
220                    });
221                }
222
223                if (woosw_vars.button_action === 'no') {
224                    // add to the wishlist solely
225                    $('#woosw_wishlist').removeClass('woosw-loaded');
226                }
227
228                if (response.count != null) {
229                    woosw_change_count(response.count);
230                }
231
232                if (response.status === 1) {
233                    woosw_refresh_button_id(id);
234                }
235
236                if ($storage && response.data) {
237                    sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data));
238                }
239
240                if (response.data.fragments) {
241                    woosw_refresh_fragments(response.data.fragments);
242                }
243
244                if (response.data.ids) {
245                    woosw_refresh_buttons(response.data.ids);
246                    woosw_refresh_ids(response.data.ids);
247                }
248
249                $(document.body).trigger('woosw_add', [id]);
250            });
251        }
252
253        e.preventDefault();
254    });
255
256    // add product
257    $(document).on('click touch', '.woosw-item--add span', function (e) {
258        var $this = $(this);
259        var key = $this.closest('.woosw-items').data('key');
260        var $this_item = $this.closest('.woosw-item');
261        var product_id = $this_item.attr('data-id');
262        var product_name = $this_item.attr('data-product_name');
263        var data = {
264            action: 'woosw_add', product_id: product_id, key: key, nonce: woosw_vars.nonce,
265        };
266
267        $this.addClass('woosw-item--adding');
268
269        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_add'), data, function (response) {
270            $this.addClass('woosw-item--adding');
271
272            if (response.content != null) {
273                $('#woosw_wishlist').html(response.content).addClass('woosw-loaded');
274            }
275
276            if (response.notice != null) {
277                woosw_notice(response.notice.replace('{name}', '<strong>' + product_name + '</strong>'));
278            }
279
280            if (response.count != null) {
281                woosw_change_count(response.count);
282            }
283
284            if ($storage && response.data) {
285                sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data));
286            }
287
288            if (response.data.fragments) {
289                woosw_refresh_fragments(response.data.fragments);
290            }
291
292            if (response.data.ids) {
293                woosw_refresh_buttons(response.data.ids);
294                woosw_refresh_ids(response.data.ids);
295            }
296
297            $(document.body).trigger('woosw_add', [product_id]);
298
299            // list shortcode
300            if ($this.closest('.woosw-list').length) {
301                location.reload();
302            }
303        });
304
305        e.preventDefault();
306    });
307
308    // remove product
309    $(document).on('click touch', '.woosw-item--remove span', function (e) {
310        var $this = $(this);
311        var key = $this.closest('.woosw-items').data('key');
312        var $this_item = $this.closest('.woosw-item');
313        var product_id = $this_item.attr('data-id');
314        var data = {
315            action: 'woosw_remove', product_id: product_id, key: key, nonce: woosw_vars.nonce,
316        };
317
318        $this.addClass('woosw-item--removing');
319
320        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_remove'), data, function (response) {
321            $this.removeClass('woosw-item--removing');
322            $this_item.remove();
323
324            if (response.content != null) {
325                $('#woosw_wishlist').html(response.content).addClass('woosw-loaded');
326            }
327
328            if (response.notice != null) {
329                woosw_notice(response.notice);
330            }
331
332            if (response.count != null) {
333                woosw_change_count(response.count);
334            }
335
336            if ($storage && response.data) {
337                sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data));
338            }
339
340            if (response.data.fragments) {
341                woosw_refresh_fragments(response.data.fragments);
342            }
343
344            if (response.data.ids) {
345                woosw_refresh_buttons(response.data.ids);
346                woosw_refresh_ids(response.data.ids);
347            }
348
349            $(document.body).trigger('woosw_remove', [product_id]);
350        });
351
352        e.preventDefault();
353    });
354
355    // empty wishlist
356    $(document).on('click touch', '.woosw-empty', function (e) {
357        var $this = $(this);
358
359        if (confirm(woosw_vars.empty_confirm)) {
360            woosw_popup_loading();
361
362            var key = $this.data('key');
363            var data = {
364                action: 'woosw_empty', key: key, nonce: woosw_vars.nonce,
365            };
366
367            $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_empty'), data, function (response) {
368                if (response.content != null) {
369                    $('#woosw_wishlist').html(response.content).addClass('woosw-loaded');
370                }
371
372                if (response.notice != null) {
373                    woosw_notice(response.notice);
374                }
375
376                if (response.count != null) {
377                    woosw_change_count(response.count);
378                }
379
380                if ($storage && response.data) {
381                    sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data));
382                }
383
384                if (response.data.fragments) {
385                    woosw_refresh_fragments(response.data.fragments);
386                }
387
388                if (response.data.ids) {
389                    woosw_refresh_buttons(response.data.ids);
390                    woosw_refresh_ids(response.data.ids);
391                }
392
393                woosw_popup_loaded();
394
395                $(document.body).trigger('woosw_empty', [key]);
396            });
397        }
398
399        e.preventDefault();
400    });
401
402    // click on area
403    $(document).on('click touch', '.woosw-popup', function (e) {
404        var woosw_content = $('.woosw-popup-content');
405
406        if (!$(e.target).closest(woosw_content).length) {
407            woosw_wishlist_hide();
408            woosw_manage_hide();
409        }
410    });
411
412    // continue
413    $(document).on('click touch', '.woosw-continue', function (e) {
414        var url = $(this).attr('data-url');
415        woosw_wishlist_hide();
416
417        if (url !== '') {
418            window.location.href = url;
419        }
420
421        e.preventDefault();
422    });
423
424    // close
425    $(document).on('click touch', '#woosw_wishlist .woosw-popup-close', function (e) {
426        woosw_wishlist_hide();
427        e.preventDefault();
428    });
429
430    // manage close
431    $(document).on('click touch', '#woosw_manage .woosw-popup-close', function (e) {
432        woosw_manage_hide();
433        e.preventDefault();
434    });
435
436    // manage wishlists
437    $(document).on('click touch', '.woosw-manage', function (e) {
438        e.preventDefault();
439        woosw_popup_loading();
440
441        var data = {
442            action: 'woosw_manage_wishlists', nonce: woosw_vars.nonce,
443        };
444
445        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_manage_wishlists'), data, function (response) {
446            woosw_wishlist_hide();
447            $('#woosw_manage').html(response);
448            woosw_manage_show();
449            woosw_popup_loaded();
450        });
451    });
452
453    // add wishlist
454    $(document).on('click touch', '#woosw_add_wishlist', function (e) {
455        e.preventDefault();
456        woosw_popup_loading();
457
458        var name = $('#woosw_wishlist_name').val();
459        var data = {
460            action: 'woosw_add_wishlist', name: name, nonce: woosw_vars.nonce,
461        };
462
463        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_add_wishlist'), data, function (response) {
464            $('#woosw_manage').html(response);
465            $('#woosw_wishlist').removeClass('woosw-loaded');
466            woosw_popup_loaded();
467        });
468    });
469
470    // set default
471    $(document).on('click touch', '.woosw-set-default', function (e) {
472        e.preventDefault();
473        woosw_popup_loading();
474
475        var key = $(this).data('key');
476        var data = {
477            action: 'woosw_set_default', key: key, nonce: woosw_vars.nonce,
478        };
479
480        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_set_default'), data, function (response) {
481            if (response.count != null) {
482                woosw_change_count(response.count);
483            }
484
485            if ((response.products != null) && response.products.length) {
486                response.products.forEach((product_id) => {
487                    woosw_refresh_button_id(product_id);
488                });
489            }
490
491            $('#woosw_manage').html(response.content);
492
493            if ($storage && response.data) {
494                sessionStorage.setItem('woosw_data_' + response.data.key, JSON.stringify(response.data));
495            }
496
497            if (response.data.fragments) {
498                woosw_refresh_fragments(response.data.fragments);
499            }
500
501            if (response.data.ids) {
502                woosw_refresh_buttons(response.data.ids);
503                woosw_refresh_ids(response.data.ids);
504            }
505
506            $('#woosw_wishlist').removeClass('woosw-loaded');
507            woosw_popup_loaded();
508        });
509    });
510
511    // delete wishlist
512    $(document).on('click touch', '.woosw-delete-wishlist', function (e) {
513        e.preventDefault();
514
515        if (confirm(woosw_vars.delete_confirm)) {
516            woosw_popup_loading();
517
518            var key = $(this).data('key');
519            var data = {
520                action: 'woosw_delete_wishlist', key: key, nonce: woosw_vars.nonce,
521            };
522
523            $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_delete_wishlist'), data, function (response) {
524                $('#woosw_manage').html(response);
525                $('#woosw_wishlist').removeClass('woosw-loaded');
526                woosw_popup_loaded();
527            });
528        }
529    });
530
531    // view wishlist
532    $(document).on('click touch', '.woosw-view-wishlist', function (e) {
533        e.preventDefault();
534        woosw_popup_loading();
535
536        var key = $(this).data('key');
537        var data = {
538            action: 'woosw_view_wishlist', key: key, nonce: woosw_vars.nonce,
539        };
540
541        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_view_wishlist'), data, function (response) {
542            woosw_manage_hide();
543            $('#woosw_wishlist').removeClass('woosw-loaded').html(response);
544            woosw_wishlist_show();
545            woosw_popup_loaded();
546        });
547    });
548
549    // menu item
550    $(document).on('click touch', '.woosw-menu-item a, .woosw-menu a, .woosw-link.woosw-link-auto a', function (e) {
551        if (woosw_vars.menu_action === 'open_popup') {
552            e.preventDefault();
553
554            if ($('#woosw_wishlist').hasClass('woosw-loaded')) {
555                woosw_wishlist_show();
556            } else {
557                woosw_wishlist_load();
558            }
559        }
560    });
561
562    // link popup
563    $(document).on('click touch', '.woosw-link.woosw-link-popup a', function (e) {
564        e.preventDefault();
565
566        if ($('#woosw_wishlist').hasClass('woosw-loaded')) {
567            woosw_wishlist_show();
568        } else {
569            woosw_wishlist_load();
570        }
571    });
572
573    // account link
574    $(document).on('click touch', '.woocommerce-MyAccount-navigation-link--wishlist a', function (e) {
575        if (woosw_vars.page_myaccount === 'yes_popup') {
576            e.preventDefault();
577
578            if ($('#woosw_wishlist').hasClass('woosw-loaded')) {
579                woosw_wishlist_show();
580            } else {
581                woosw_wishlist_load();
582            }
583        }
584    });
585
586    // copy link
587    $(document).on('click touch', '#woosw_copy_url, #woosw_copy_btn', function (e) {
588        e.preventDefault();
589        let $link = $('#woosw_copy_url');
590        let link = $link.val();
591
592        navigator.clipboard.writeText(link).then(function () {
593            alert(woosw_vars.copied_text + ' ' + link);
594        }, function () {
595            alert('Failure to copy!');
596        });
597
598        $link.select();
599    });
600
601    // add note
602    $(document).on('click touch', '.woosw-item--note', function () {
603        if ($(this).closest('.woosw-item').find('.woosw-item--note-add').length) {
604            $(this).closest('.woosw-item').find('.woosw-item--note-add').show();
605            $(this).hide();
606        }
607    });
608
609    $(document).on('click touch', '.woosw_add_note', function (e) {
610        e.preventDefault();
611        woosw_popup_loading();
612
613        var $this = $(this);
614        var key = $this.closest('.woosw-items').data('key');
615        var product_id = $this.closest('.woosw-item').attr('data-id');
616        var note = $this.closest('.woosw-item').find('input[type="text"]').val();
617        var data = {
618            action: 'woosw_add_note',
619            key: key,
620            product_id: product_id,
621            note: woosw_html_entities(note),
622            nonce: woosw_vars.nonce,
623        };
624
625        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_add_note'), data, function (response) {
626            $this.closest('.woosw-item').find('.woosw-item--note').html(response).show();
627            $this.closest('.woosw-item').find('.woosw-item--note-add').hide();
628            woosw_popup_loaded();
629        });
630    });
631
632    // search/filter products
633    $(document).on('input', '.woosw-search-input', function () {
634        var keyword = $(this).val().toLowerCase().trim();
635        var $items = $(this).closest('.woosw-popup-content').find('.woosw-items:not(.woosw-suggested-items) .woosw-item');
636
637        if (keyword === '') {
638            $items.show();
639            // show suggested section
640            $(this).closest('.woosw-popup-content').find('.woosw-suggested, .woosw-suggested-items').show();
641        } else {
642            $items.each(function () {
643                var name = ($(this).attr('data-name') || '').toLowerCase();
644                var note = ($(this).attr('data-note') || '').toLowerCase();
645
646                if (name.indexOf(keyword) > -1 || note.indexOf(keyword) > -1) {
647                    $(this).show();
648                } else {
649                    $(this).hide();
650                }
651            });
652
653            // hide suggested section when searching
654            $(this).closest('.woosw-popup-content').find('.woosw-suggested, .woosw-suggested-items').hide();
655        }
656    });
657
658    // clear search on popup close
659    $(document).on('click touch', '#woosw_wishlist .woosw-popup-close, .woosw-continue', function () {
660        $('.woosw-search-input').val('').trigger('input');
661    });
662
663    // resize
664    $(window).on('resize', function () {
665        woosw_fix_height();
666    });
667
668    function woosw_wishlist_load() {
669        var data = {
670            action: 'woosw_load', nonce: woosw_vars.nonce,
671        };
672
673        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_load'), data, function (response) {
674            if (response.content != null) {
675                $('#woosw_wishlist').html(response.content);
676            }
677
678            if (response.count != null) {
679                if ($('#woosw_wishlist .woosw-items:not(.woosw-suggested-items) .woosw-item').length && ($('#woosw_wishlist .woosw-items:not(.woosw-suggested-items) .woosw-item').length != response.count)) {
680                    woosw_change_count($('#woosw_wishlist .woosw-items:not(.woosw-suggested-items) .woosw-item').length);
681                } else {
682                    woosw_change_count(response.count);
683                }
684            }
685
686            if (response.notice != null) {
687                woosw_notice(response.notice);
688            }
689
690            $('#woosw_wishlist').addClass('woosw-loaded');
691
692            woosw_perfect_scrollbar();
693            woosw_wishlist_show();
694        });
695    }
696
697    function woosw_load_count() {
698        var data = {
699            action: 'woosw_load_count', nonce: woosw_vars.nonce,
700        };
701
702        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_load_count'), data, function (response) {
703            if (response.count != null) {
704                var count = response.count;
705
706                woosw_change_count(count);
707                $(document.body).trigger('woosw_load_count', [count]);
708            }
709        });
710    }
711
712    function woosw_load_list() {
713        var data = {
714            action: 'woosw_load_list', nonce: woosw_vars.nonce,
715        };
716
717        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_load_list'), data, function (response) {
718            if (response.list != null) {
719                $('.woosw-list-ajax').replaceWith(response.list);
720            }
721        });
722    }
723
724    function woosw_wishlist_show() {
725        $('#woosw_wishlist').addClass('woosw-show');
726        woosw_fix_height();
727
728        $(document.body).trigger('woosw_wishlist_show');
729    }
730
731    function woosw_wishlist_hide() {
732        $('#woosw_wishlist').removeClass('woosw-show');
733        $(document.body).trigger('woosw_wishlist_hide');
734    }
735
736    function woosw_manage_show() {
737        $('#woosw_manage').addClass('woosw-show');
738        $(document.body).trigger('woosw_manage_show');
739    }
740
741    function woosw_manage_hide() {
742        $('#woosw_manage').removeClass('woosw-show');
743        $(document.body).trigger('woosw_manage_hide');
744    }
745
746    function woosw_popup_loading() {
747        $('.woosw-popup').addClass('woosw-loading');
748    }
749
750    function woosw_popup_loaded() {
751        $('.woosw-popup').removeClass('woosw-loading');
752    }
753
754    function woosw_change_count(count) {
755        $('#woosw_wishlist .woosw-count').html(count);
756        $('.woosw-link .woosw-link-inner').attr('data-count', count);
757
758        if (parseInt(count) > 0) {
759            $('.woosw-empty').show();
760        } else {
761            $('.woosw-empty').hide();
762        }
763
764        if ($('.woosw-menu-item .woosw-menu-item-inner').length) {
765            $('.woosw-menu-item .woosw-menu-item-inner').attr('data-count', count);
766        } else {
767            $('.woosw-menu-item a').html('<span class="woosw-menu-item-inner" data-count="' + count + '"><i class="woosw-icon"></i><span>' + woosw_vars.menu_text + '</span></span>');
768        }
769
770        $(document.body).trigger('woosw_change_count', [count]);
771    }
772
773    function woosw_notice(notice) {
774        $('.woosw-notice').html(notice);
775        woosw_notice_show();
776        setTimeout(function () {
777            woosw_notice_hide();
778        }, 3000);
779    }
780
781    function woosw_notice_show() {
782        $('#woosw_wishlist .woosw-notice').addClass('woosw-notice-show');
783    }
784
785    function woosw_notice_hide() {
786        $('#woosw_wishlist .woosw-notice').removeClass('woosw-notice-show');
787    }
788
789    function woosw_perfect_scrollbar() {
790        if (woosw_vars.perfect_scrollbar === 'yes') {
791            jQuery('#woosw_wishlist .woosw-popup-content-mid').perfectScrollbar({theme: 'wpc'});
792        }
793    }
794
795    function woosw_html_entities(str) {
796        return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
797    }
798
799    function woosw_get_key() {
800        var result = [];
801        var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
802        var charactersLength = characters.length;
803
804        for (var i = 0; i < 6; i++) {
805            result.push(characters.charAt(Math.floor(Math.random() * charactersLength)));
806        }
807
808        return result.join('');
809    }
810
811    function woosw_fix_height() {
812        // fix for center only
813        jQuery('.woosw-popup-center .woosw-popup-content').height(2 * Math.floor(jQuery('.woosw-popup-center .woosw-popup-content').height() / 2) + 2);
814    }
815
816    function woosw_load_data() {
817        // don't use sessionStorage anymore
818        woosw_get_data();
819    }
820
821    function woosw_get_data() {
822        var data = {
823            action: 'woosw_get_data', nonce: woosw_vars.nonce,
824        };
825
826        $.post(woosw_vars.wc_ajax_url.toString().replace('%%endpoint%%', 'woosw_get_data'), data, function (response) {
827            if (response) {
828                if ($storage) {
829                    sessionStorage.setItem('woosw_data_' + response.key, JSON.stringify(response));
830                }
831
832                if (response.fragments) {
833                    woosw_refresh_fragments(response.fragments);
834                }
835
836                if (response.ids) {
837                    woosw_refresh_buttons(response.ids);
838                    woosw_refresh_ids(response.ids);
839                }
840
841                if (response.key && (key === null || key === undefined || key === '' || key !== response.key)) {
842                    Cookies.set('woosw_key', response.key, {expires: 7});
843                }
844
845                $(document.body).trigger('woosw_data_refreshed', [response]);
846            }
847        });
848    }
849
850    function woosw_refresh_fragments(fragments) {
851        $.each(fragments, function (key, value) {
852            $(key).replaceWith(value);
853        });
854
855        $(document.body).trigger('woosw_fragments_refreshed', [fragments]);
856    }
857
858    function woosw_refresh_ids(ids) {
859        added_ids = ids;
860    }
861
862    function woosw_refresh_buttons(ids) {
863        $('.woosw-btn').removeClass('woosw-btn-added woosw-added');
864        $('.woosw-btn:not(.woosw-btn-has-icon)').text(woosw_vars.button_text);
865        $('.woosw-btn.woosw-btn-has-icon').find('.woosw-btn-icon').removeClass(woosw_vars.button_added_icon).addClass(woosw_vars.button_normal_icon);
866        $('.woosw-btn.woosw-btn-has-icon').find('.woosw-btn-text').text(woosw_vars.button_text);
867
868        $.each(ids, function (key, value) {
869            $('.woosw-btn-' + key).addClass('woosw-btn-added woosw-added');
870            $('.woosw-btn-' + key + ':not(.woosw-btn-has-icon)').text(woosw_vars.button_text_added);
871            $('.woosw-btn-has-icon.woosw-btn-' + key).find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon).addClass(woosw_vars.button_added_icon);
872            $('.woosw-btn-has-icon.woosw-btn-' + key).find('.woosw-btn-text').text(woosw_vars.button_text_added);
873
874            if (value.parent !== undefined) {
875                $('.woosw-btn-' + value.parent).addClass('woosw-btn-added woosw-added');
876                $('.woosw-btn-' + value.parent + ':not(.woosw-btn-has-icon)').text(woosw_vars.button_text_added);
877                $('.woosw-btn-has-icon.woosw-btn-' + value.parent).find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon).addClass(woosw_vars.button_added_icon);
878                $('.woosw-btn-has-icon.woosw-btn-' + value.parent).find('.woosw-btn-text').text(woosw_vars.button_text_added);
879            }
880        });
881
882        $(document.body).trigger('woosw_buttons_refreshed', [ids]);
883    }
884
885    function woosw_refresh_button_id(id) {
886        $('.woosw-btn[data-id="' + id + '"]').removeClass('woosw-btn-added woosw-added');
887        $('.woosw-btn[data-id="' + id + '"]:not(.woosw-btn-has-icon)').text(woosw_vars.button_text);
888        $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-icon').removeClass(woosw_vars.button_added_icon).addClass(woosw_vars.button_normal_icon);
889        $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-text').text(woosw_vars.button_text);
890
891        $.each(added_ids, function (key) {
892            if (parseInt(key) === parseInt(id)) {
893                $('.woosw-btn[data-id="' + id + '"]').addClass('woosw-btn-added woosw-added');
894                $('.woosw-btn[data-id="' + id + '"]:not(.woosw-btn-has-icon)').text(woosw_vars.button_text_added);
895                $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-icon').removeClass(woosw_vars.button_normal_icon).addClass(woosw_vars.button_added_icon);
896                $('.woosw-btn-has-icon.woosw-btn[data-id="' + id + '"]').find('.woosw-btn-text').text(woosw_vars.button_text_added);
897            }
898        });
899
900        $(document.body).trigger('woosw_refresh_button_id', [id, added_ids]);
901    }
902})(jQuery);

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.