PageSourceSearch

https://careerconnector.com.au/wp-content/plugins/woo-smart-wishlist/assets/js/frontend.js?ver=4.9.5

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