PageSourceSearch

https://heavenlyrecordings.com/wp-content/themes/heavenlyrecordings/js/functions.js?ver=1

js heavenlyrecordings.com collected 2026-10-02 10:25:35 UTC 24,168 bytes, 931 lines download raw bytes

1var $ = jQuery.noConflict(),
2  mobile_view = false;
3
4function initHomeTopSlider() {
5  if ($('.home-page-container').length > 0) {
6    var mySwiper = new Swiper('.home-page-container .swiper-container', {
7        direction: 'vertical',
8        loop: true,
9        simulateTouch: false,
10        // height: $(window).height(),
11        autoplay: 6000,
12        onTouchMove: function(swiper, event) {
13          swiper.detachEvents();
14        },
15      }),
16      $slides_buttons_scope = $(
17        '.home-page-container .swiper-container .swiper-slide'
18      );
19
20    $slides_buttons_scope.map(function() {
21      $(this).click(function(e) {
22        mySwiper.attachEvents();
23        if (!$(e.srcElement).hasClass('slide-btn')) {
24          mySwiper.slideNext();
25        }
26      });
27    });
28
29    _setSliderHeight();
30
31    $(window).resize(_setSliderHeight);
32
33    function _setSliderHeight() {
34      mySwiper.height = $(window).height();
35
36      $('.home-page-container .swiper-container').css(
37        'height',
38        $(window).height()
39      );
40
41      setTimeout(function() {
42        mySwiper.onResize();
43        mySwiper.updateContainerSize();
44        mySwiper.updateSlidesSize();
45      }, 500);
46    }
47  }
48}
49
50function initSingleArtistSlider() {
51  var slider_container = $('.single-artist-page-container .swiper-container');
52
53  if (slider_container.length > 0) {
54    var slider_params = null;
55
56    if (slider_container.hasClass('single-item')) {
57      slider_params = {
58        direction: 'horizontal',
59        loop: false,
60        autoHeight: true,
61      };
62    } else {
63      slider_params = {
64        direction: 'horizontal',
65        loop: true,
66        autoHeight: true,
67        nextButton: '.slider-next-btn',
68        prevButton: '.slider-prev-btn',
69      };
70    }
71
72    var mySwiper = new Swiper(
73      '.single-artist-page-container .swiper-container',
74      slider_params
75    );
76  }
77}
78
79function initShuffleGrid() {
80  if ($('.grid').length > 0) {
81    var Shuffle = window.shuffle;
82
83    window.myShuffle = new Shuffle(document.querySelector('.grid'), {
84      itemSelector: '.js-item',
85      sizer: '.my-sizer-element',
86    });
87
88    $('.grid').imagesLoaded(function() {
89      // if ($('.news-page-container').length > 0){
90      //
91      //     console.log('mas');
92      //
93      //     $('.grid').masonry({
94      //         itemSelector: '.js-item',
95      //         horizontalOrder: true
96      //         // columnWidth: 200
97      //     });
98      // }
99      if ($(window).width() > 480) {
100        postsGridHeightCorrection();
101      }
102      window.myShuffle.layout();
103
104      _changeItemDataPosition();
105    });
106
107    $(window).resize(function() {
108      if ($(window).width() > 480) {
109        postsGridHeightCorrection();
110        window.myShuffle.layout();
111      } else {
112        clearPostsGridItemHeight();
113      }
114
115      _changeItemDataPosition();
116    });
117
118    function _changeItemDataPosition() {
119      $('.grid .js-item .item-data').map(function() {
120        var parrent_height = $(this)
121            .closest('.item-link')
122            .height(),
123          data_height = $(this).height();
124
125        $(this).css(
126          'margin-top',
127          Math.round((parrent_height - data_height) / 2)
128        );
129      });
130    }
131  }
132}
133
134function clearPostsGridItemHeight() {
135  $('.grid .js-item .aspect__inner').map(function() {
136    $(this).css('height', 'auto');
137  });
138}
139
140function postsGridHeightCorrection() {
141  if ($('.news-page-container').length > 0) {
142    var items_scope = $('.grid .js-item .aspect__inner'),
143      max_item_height = 0,
144      height_correction = -25;
145
146    items_scope.map(function() {
147      $(this).css('height', 'auto');
148
149      var current_item_height = jQuery(this).outerHeight();
150
151      current_item_height =
152        current_item_height -
153        parseInt(
154          $(this)
155            .closest('.js-item')
156            .css('margin-bottom')
157        );
158
159      // for (var i = 0; i < top_part_elements.length; i++ ) {
160      //     current_item_height += jQuery(top_part_elements[i]).height();
161      // }
162
163      if (current_item_height > max_item_height) {
164        max_item_height = current_item_height;
165      }
166    });
167
168    items_scope.map(function() {
169      $(this).height(Math.round(max_item_height + height_correction));
170    });
171  }
172}
173
174function initArtistVideoPopup() {
175  $('.video-gallery-wrapper .item-popup-layer').fancybox({
176    openEffect: 'none',
177    closeEffect: 'none',
178    helpers: {
179      media: {},
180    },
181  });
182}
183
184function initPageLoadVisibility() {
185  $('body')
186    .css('transition', 600)
187    .imagesLoaded(function() {
188      $('body').css('opacity', 1);
189    });
190}
191
192function scrollToSection() {
193  $('.scroll-down-arrow').click(function() {
194    jQuery(document.body).animate(
195      {
196        scrollTop: jQuery('#releases-cont').offset().top,
197      },
198      1000
199    );
200  });
201
202  if ( $('#join-us').length ) {
203    $('body').addClass('ui-join-us-scroll-tab');
204  }
205
206  $('.optin-tab').click(function(e) {
207    e.preventDefault();
208    // alert(jQuery('#join-us').offset().top);
209    $('html,body').animate({
210        scrollTop: jQuery('#join-us').offset().top + 'px',
211      },
212      1000
213    );
214  });
215}
216
217function renderEventsListSingleArtist() {
218  if ($('.single-artist-page-container').length > 0) {
219    renderLiveEventsBIT('.single-artist-live-list', false);
220  }
221}
222
223function renderLivePageEvents() {
224  if ($('.songkick-api').length > 0) {
225    renderLiveEvents('.events-list-container', true);
226  }
227
228  if ($('.bit-api').length > 0) {
229    renderLiveEventsBIT('.events-list-container', true);
230  }
231}
232
233function readMoreSingleArtistDesc() {
234  $('.additional-artist-content-wrapper .read-more-content-btn').click(function(
235    e
236  ) {
237    e.preventDefault();
238
239    $(this)
240      .next('.text-content')
241      .slideToggle(300);
242  });
243}
244
245/**
246 * "renderLiveEvents" works with Songckick API and is deprecated 
246in current app
247 * implementation but can be used for next versions
248 */
249function renderLiveEvents(main_container_locator, multiple_query) {
250  var $list_container = $(main_container_locator),
251    list_item_tpl = $list_container.find('.list-item-tpl').html(),
252    $list_content_container = $list_container.find('.list-content'),
253    days_list = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'],
254    month_list = [
255      'JANUARY',
256      'FEBRUARY',
257      'MARCH',
258      'APRIL',
259      'MAY',
260      'JUNE',
261      'JULY',
262      'AUGUST',
263      'SEPTEMBER',
264      'OCTOBER',
265      'NOVEMBER',
266      'DECEMBER',
267    ],
268    doc_fragment = document.createDocumentFragment(),
269    request_access = true;
270
271  if (multiple_query) {
272    var artists_count = api_request_url.length,
273      artist_index = 0,
274      interval_instance = null,
275      artist_list_title_tpl = $list_container
276        .find('.list-artist-header-tpl')
277        .html(),
278      $artist_nav_list = $('.artists-nav-container'),
279      $loading_indicator = $('.loading-indicator');
280
281    interval_instance = setInterval(function() {
282      if (artist_index < artists_count && request_access) {
283        _APIRequest(
284          api_request_url[artist_index].artist_id,
285          _renderDOM,
286          api_request_url[artist_index]
287        );
288
289        artist_index = artist_index + 1;
290      } else if (artist_index == artists_count) {
291        artist_index = artist_index + 1;
292      } else if (artist_index > artists_count) {
293        $loading_indicator.remove();
294        clearInterval(interval_instance);
295      }
296    }, 500);
297  } else {
298    _APIRequest(api_request_url, _renderDOM);
299  }
300
301  function _APIRequest(url, callback, art_obj) {
302    request_access = false;
303
304    $.ajax({
305      url: url,
306      method: 'GET',
307      dataType: 'json',
308      timeout: 4000,
309      success: function(data) {
310        console.log('success');
311        _renderEvents(data, art_obj);
312
313        if (callback) {
314          callback();
315        }
316        request_access = true;
317      },
318      error: function(error) {
319        console.log('error - ', error);
320        request_access = true;
321      },
322    });
323  }
324
325  function _renderEvents(data, artist_object) {
326    if (data.resultsPage.results.event) {
327      if (multiple_query) {
328        var formated_header = artist_list_title_tpl.replace(
329          '###artist_title###',
330          artist_object.artist_title
331        );
332
333        formated_header = formated_header.replace(
334          '###artist_anchor###',
335          artist_object.artist_id.hashCode()
336        );
337
338        $artist_nav_list.append(
339          '<a href="#" data-artist-id="' +
340            artist_object.artist_id.hashCode() +
341            '">' +
342            artist_object.artist_title +
343            '</a>'
344        );
345
346        doc_fragment.appendChild($(formated_header).get(0));
347      }
348
349      var events_scope = data.resultsPage.results.event;
350
351      for (var i = 0; i < events_scope.length; i++) {
352        var event_date = new Date(events_scope[i].start.date),
353          formated_event_tpl = '',
354          formated_date = '',
355          day = event_date.getDay(),
356          day_date = event_date.getDate(),
357          year = event_date.getFullYear(),
358          month = month_list[event_date.getMonth()];
359
360        formated_date =
361          days_list[day] + ' ' + day_date + ' ' + month + ' ' + year;
362
363        formated_event_tpl = list_item_tpl.replace(/###date###/, formated_date);
364        formated_event_tpl = formated_event_tpl.replace(
365          '###scene###',
366          events_scope[i].venue.displayName
367        );
368        formated_event_tpl = formated_event_tpl.replace(
369          '###address###',
370          events_scope[i].location.city
371        );
372        formated_event_tpl = formated_event_tpl.replace(
373          '###tickets_uri###',
374          events_scope[i].uri
375        );
376
377        // $list_content_container.append(formated_event_tpl);
378
379        doc_fragment.appendChild($(formated_event_tpl).get(0));
380
381        if (!multiple_query) {
382          $list_container.slideDown(300);
383        }
384      }
385    }
386  }
387
388  function _renderDOM() {
389    $list_content_container.append(doc_fragment);
390  }
391
392  if (multiple_query) {
393    $('.artists-nav-container').on('click', 'a', function(e) {
394      e.preventDefault();
395
396      jQuery('html, body').animate(
397        {
398          scrollTop: jQuery('#' + $(this).data('artist-id')).offset().top - 100,
399        },
400        1000
401      );
402    });
403
404    $('.events-list-container').on(
405      'click',
406      '.artist-title-go-top-btn',
407      function(e) {
408        e.preventDefault();
409
410        jQuery('html, body').animate(
411          {
412            scrollTop: jQuery('.live-page-container').offset().top - 100,
413          },
414          1000
415        );
416      }
417    );
418  }
419}
420
421/**
422 * Fetching artist's events from Bandsintown API
423 */
424function renderLiveEventsBIT(main_container_locator, multiple_query) {
425  var $list_container = $(main_container_locator),
426    list_item_tpl = $list_container.find('.list-item-tpl').html(),
427    $list_content_container = $list_container.find('.list-content'),
428    days_list = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'],
429    month_list = [
430      'JANUARY',
431      'FEBRUARY',
432      'MARCH',
433      'APRIL',
434      'MAY',
435      'JUNE',
436      'JULY',
437      'AUGUST',
438      'SEPTEMBER',
439      'OCTOBER',
440      'NOVEMBER',
441      'DECEMBER',
442    ],
443    doc_fragment = document.createDocumentFragment(),
444    request_access = true;
445
446  if (multiple_query) {
447    var artists_count = api_request_url.length,
448      artist_index = 0,
449      interval_instance = null,
450      artist_list_title_tpl = $list_container
451        .find('.list-artist-header-tpl')
452        .html(),
453      $artist_nav_list    = $('.artists-nav-container'),
454      $loading_indicator  = $('.loading-indicator');
455
456    interval_instance = setInterval(function() {
457      if (artist_index < artists_count && request_access) {
458        var parsed_url = api_request_url[artist_index].artist_bit_url.replace(
459          '###_artist_name_###',
460          getEncodedArtistTitle(api_request_url[artist_index].artist_title)
461        );
462
463        _APIRequest(parsed_url, _renderDOM, api_request_url[artist_index]);
464
465        artist_index = artist_index + 1;
466      } else if (artist_index == artists_count) {
467        artist_index = artist_index + 1;
468      } else if (artist_index > artists_count) {
469        $loading_indicator.remove();
470        clearInterval(interval_instance);
471      }
472    }, 500);
473  } else {
474    var parsed_url = bit_api_request_url.url.replace(
475      '###_artist_name_###',
476      getEncodedArtistTitle(bit_api_request_url.title)
477    );
478
479    _APIRequest(parsed_url, _renderDOM);
480  }
481
482  if (multiple_query) {
483    $('.artists-nav-container').on('click', 'a', function(e) {
484      e.preventDefault();
485
486      jQuery('html, body').animate(
487        {
488          scrollTop: jQuery('#' + $(this).data('artist-id')).offset().top - 100,
489        },
490        1000
491      );
492    });
493
494    $('.events-list-container').on(
495      'click',
496      '.artist-title-go-top-btn',
497      function(e) {
498        e.preventDefault();
499
500        jQuery('html, body').animate(
501          {
502            scrollTop: jQuery('.live-page-container').offset().top - 100,
503          },
504          1000
505        );
506      }
507    );
508  }
509
510  function _APIRequest(url, callback, art_obj) {
511    request_access = false;
512
513    $.ajax({
514      url: url,
515      method: 'GET',
516      dataType: 'json',
517      timeout: 4000,
518      success: function(data) {
519        console.log('success');
520        _renderEvents(data, art_obj);
521
522        if (callback) {
523          callback();
524        }
525        request_access = true;
526      },
527      error: function(error) {
528        console.log('error - ', error);
529        request_access = true;
530      },
531    });
532  }
533
534  function _renderEvents(data, artist_object) {
535    if (data.length > 0) {
536      if (multiple_query) {
537        var formated_header = artist_list_title_tpl.replace(
538          '###artist_title###',
539          artist_object.artist_title
540        );
541
542        formated_header = formated_header.replace(
543          '###artist_anchor###',
544          artist_object.artist_title.hashCode()
545        );
546
547        $artist_nav_list.append(
548          '<a href="#" data-artist-id="' +
549            artist_object.artist_title.hashCode() +
550            '">' +
551            artist_object.artist_title +
552            '</a>'
553        );
554
555        doc_fragment.appendChild($(formated_header).get(0));
556      }
557
558      var events_scope = data;
559
560      for (var i = 0; i < events_scope.length; i++) {
561        var event_date = new Date(events_scope[i].datetime),
562          formated_event_tpl = '',
563          formated_date = '',
564          day = event_date.getDay(),
565          day_date = event_date.getDate(),
566          year = event_date.getFullYear(),
567          month = month_list[event_date.getMonth()];
568
569        formated_date =
570          days_list[day] + ' ' + day_date + ' ' + month + ' ' + year;
571
572        formated_event_tpl = list_item_tpl.replace(/###date###/, formated_date);
573        formated_event_tpl = formated_event_tpl.replace(
574          '###scene###',
575          events_scope[i].venue.name
576        );
577        formated_event_tpl = formated_event_tpl.replace(
578          '###address###',
579          events_scope[i].venue.city + ', ' + events_scope[i].venue.country
580        );
581        formated_event_tpl = formated_event_tpl.replace(
582          '###tickets_uri###',
583          events_scope[i].url
584        );
585
586        // $list_content_container.append(formated_event_tpl);
587
588        doc_fragment.appendChild($(formated_event_tpl).get(0));
589
590        if (!multiple_query) {
591          $list_container.slideDown(300);
592        }
593      }
594    }
595  }
596
597  function _renderDOM() {
598    $list_content_container.append(doc_fragment);
599  }
600}
601
602function changeHeaderOnScroll() {
603  var $header_container = $('.nav-outer-wrapper'),
604    breackpoint = 0,
605    action_access = true;
606
607  _setBreakPoint();
608
609  $(window).scroll(function() {
610    if (action_access) {
611      var scroll = $(window).scrollTop();
612
613      if (scroll > breackpoint) {
614        if (!$header_container.hasClass('header-fixed')) {
615          $header_container.addClass('header-top');
616          $header_container.addClass('header-fixed');
617        }
618      } else if (scroll == 0) {
619        if ($header_container.hasClass('header-fixed')) {
620          $header_container.removeClass('header-fixed');
621
622          if ($header_container.hasClass('header-top')) {
623            setTimeout(function() {
624              $header_container.removeClass('header-top');
625            }, 300);
626          }
627        }
628      }
629    }
630  });
631
632  $(window).resize(_setBreakPoint);
633
634  function _setBreakPoint() {
635    breackpoint = Math.round($(window).height() / 2);
636  }
637
638  $(window).bind('enterBreakpoint300', function() {
639    action_access = false;
640    $header_container.removeClass('header-top');
641    $header_container.removeClass('header-fixed');
642  });
643
644  $(window).bind('exitBreakpoint300', function() {
645    action_access = true;
646  });
647}
648
649function openCloseSearchForm() {
650  var $search_container = $('#nav_header'),
651    $search_input = $search_container.find('.search-input'),
652    $search_icon = $search_container.find('.search-button'),
653    $close_search_icon = $search_container.find('.close-search-form'),
654    $search_form = $search_container.find('form');
655
656  $search_icon.click(function(e) {
657    e.preventDefault();
658
659    if (!$search_container.hasClass('active-search-form')) {
660      $search_container.addClass('active-search-form');
661    } else {
662      $search_form.submit();
663    }
664  });
665
666  $close_search_icon.click(function() {
667    $search_input.val('');
668    $search_container.removeClass('active-search-form');
669  });
670
671  $(document).keypress(function(e) {
672    if (e.which == 13 && $search_container.hasClass('active-search-form')) {
673      $search_form.submit();
674    }
675  });
676}
677
678function initGlobalBreakpoints() {
679  var $header_container = $('.nav-outer-wrapper');
680
681  $(window).setBreakpoints({
682    // use only largest available vs use all available
683    distinct: true,
684    // array of widths in pixels where breakpoints
685    // should be triggered
686    breakpoints: [
687      300,
688      993,
689      1399
690    ],
691  });
692
693  $(window).bind('enterBreakpoint300', function() {
694    $header_container.removeClass('desktop-navigation');
695    $header_container.addClass('mobile-navigation');
696    mobile_view = true;
697  });
698
699  $(window).bind('enterBreakpoint993', function() {
700    $header_container.removeClass('desktop-navigation');
701    $header_container.addClass('mobile-navigation');
702    mobile_view = true;
703  });
704
705  $(window).bind('exitBreakpoint993', function() {
706    $header_container.removeClass('mobile-navigation');
707    $header_container.addClass('desktop-navigation');
708    mobile_view = false;
709  });
710}
711
712function switchMobileMenu() {
713  var $menu_container = $('.nav-outer-wrapper'),
714    $background_cover = $menu_container.find('.header-background'),
715    $controls_container = $menu_container.find('.nav-controls-container'),
716    $mobile_menu_icon = $('.mobile-menu');
717
718  $mobile_menu_icon.click(function() {
719    $(this).toggleClass('open');
720    $menu_container.toggleClass('opened-mobile-menu');
721
722    if ($menu_container.hasClass('opened-mobile-menu')) {
723      _openMenu();
724    } else {
725      _closeMenu();
726    }
727  });
728
729  $(window).resize(function() {
730    if ($menu_container.hasClass('opened-mobile-menu')) {
731      setTimeout(function() {
732        if ($('body').hasClass('breakpoint-300')) {
733          _setBgrHeight();
734          _setNavControlsPosition();
735        } else {
736          $mobile_menu_icon.removeClass('open');
737          $menu_container.removeClass('opened-mobile-menu');
738          _closeMenu();
739        }
740      }, 100);
741    } else {
742      _resetBgrHeight();
743      _resetNavControlsPosition();
744    }
745  });
746
747  function _closeMenu() {
748    $(window).unbind('scroll touchmove mousewheel');
749    _resetBgrHeight();
750    _resetNavControlsPosition();
751  }
752
753  function _openMenu() {
754    $(window).on('scroll touchmove mousewheel', function(e) {
755      e.preventDefault();
756      e.stopPropagation();
757      return false;
758    });
759
760    _setBgrHeight();
761    _setNavControlsPosition();
762  }
763
764  function _setNavControlsPosition() {
765    var top_position = Math.round(
766      ($(window).height() - $controls_container.height() + 70) / 2
767    );
768
769    $controls_container.css('top', top_position);
770  }
771
772  function _resetNavControlsPosition() {
773    $controls_container.removeAttr('style');
774  }
775
776  function _setBgrHeight() {
777    $background_cover.height($(window).height());
778  }
779
780  function _resetBgrHeight() {
781    $background_cover.removeAttr('style');
782  }
783}
784
785function wrapHomePageSliderText() {
786  if ($('.home-page-container').length > 0) {
787    var $container = $('.home-top-slider'),
788      content_items_scope = $container.find('.slide-text h1');
789
790    content_items_scope.map(function() {
791      var current_text_raw = $(this).html(),
792        current_text_splited = current_text_raw.split('<br>'),
793        new_text_content = '';
794
795      for (var i = 0; i < current_text_splited.length; i++) {
796        current_text_splited[i] = current_text_splited[i].replace('<br>', '');
797        new_text_content =
798          new_text_content +
799          '<span>' +
800          current_text_splited[i] +
801          '</span><br />';
802      }
803
804      $(this).html(new_text_content);
805    });
806  }
807}
808
809function releasePreviewItemMobile() {
810  if ($('.releases-container').length > 0) {
811    var items_scope = $('.js-item'),
812      prev_selected_item = null;
813
814    items_scope.map(function() {
815      var $link_container = $(this).find('.aspect__inner'),
816        $link_layer = $link_container.find('.item-link');
817
818      $link_layer.click(function(e) {
819        if (
820          $('body').hasClass('breakpoint-300') &&
821          !$link_container.hasClass('selected-item')
822        ) {
823          e.preventDefault();
824          if (prev_selected_item) {
825            prev_selected_item.removeClass('selected-item');
826          }
827          prev_selected_item = null;
828          $link_container.addClass('selected-item');
829          prev_selected_item = $link_container;
830        }
831      });
832    });
833  }
834}
835
836function markMainNavLinks() {
837  var $nav_container = $('#nav_header .nav-controls-container');
838
839  if ($('.single-artist-page-container').length > 0) {
840    $nav_container.find('.artists-page-nav-link').addClass('current_page_item');
841  } else if ($('.single-release-page-container').length > 0) {
842    $nav_container
843      .find('.releases-page-nav-link')
844      .addClass('current_page_item');
845  } else if ($('.single-post-page-container').length > 0) {
846    $nav_container.find('.news-page-nav-link').addClass('current_page_item');
847  }
848}
849
850function handleMCSubmit() {
851  var $mc_submit_btn = $('.mc-submit-btn');
852
853  if ($mc_submit_btn.length > 0) {
854    $mc_submit_btn.click(function(e) {
855      e.preventDefault();
856      e.stopPropagation();
857
858      var $_current_form = $(this).closest('form#mc-embedded-subscribe-form'),
859        _current_url = $_current_form.attr('action'),
860        f_name = $_current_form.find('#mce-FNAME').val(),
861        l_mane = $_current_form.find('#mce-LNAME').val(),
862        email = $_current_form.find('#mce-EMAIL').val(),
863        compared_url = fixedEncodeURI(
864          _current_url +
865            '&MERGE0=' +
866            email +
867            '&MERGE1=' +
868            f_name +
869            '&MERGE2=' +
870            l_mane
871        );
872
873      window.open(compared_url, '_blank');
874    });
875  }
876}
877
878function fixedEncodeURI(str) {
879  return encodeURI(str)
880    .replace(/%5B/g, '[')
881    .replace(/%5D/g, ']')
882    .replace(/#/g, '%23');
883}
884
885function getEncodedArtistTitle(title){
886  return encodeURIComponent(title).replace(/'/g, "%27")
887}
888
889$(document).ready(function() {
890  console.log('ready!');
891
892  String.prototype.hashCode = function() {
893    var hash = 0;
894    if (this.length == 0) return hash;
895    for (i = 0; i < this.length; i++) {
896      char = this.charCodeAt(i);
897      hash = (hash << 5) - hash + char;
898      hash = hash & hash; // Convert to 32bit integer
899    }
900    return hash;
901  };
902
903  initGlobalBreakpoints();
904
905  switchMobileMenu();
906
907  markMainNavLinks();
908
909  scrollToSection();
910
911  wrapHomePageSliderText();
912
913  initHomeTopSlider();
914  initShuffleGrid();
915
916  initSingleArtistSlider();
917
918  renderEventsListSingleArtist();
919  renderLivePageEvents();
920  readMoreSingleArtistDesc();
921
922  initArtistVideoPopup();
923
924  changeHeaderOnScroll();
925
926  openCloseSearchForm();
927
928  releasePreviewItemMobile();
929
930  // handleMCSubmit();
931});

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.