PageSourceSearch

https://protectionreporter.co.uk/js/main.js?v=c8e137ae2dce53bb599c287728143c31

js protectionreporter.co.uk collected 2026-09-29 21:28:29 UTC 42,314 bytes, 1,373 lines download raw bytes

1function toSeoUrl(url) {
2    return url.toString()               // Convert to string
3        .normalize('NFD')               // Change diacritics
4        .replace(/[\u0300-\u036f]/g,'') // Remove illegal characters
5        .replace(/\s+/g,'-')            // Change whitespace to dashes
6        .toLowerCase()                  // Change to lowercase
7        .replace(/&/g,'-and-')          // Replace ampersand
8        .replace(/[^a-z0-9\-]/g,'')     // Remove anything that is not a letter, number or dash
9        .replace(/-+/g,'-')             // Remove duplicate dashes
10        .replace(/^-*/,'')              // Remove starting dashes
11        .replace(/-*$/,'');             // Remove trailing dashes
12};
13
14function initMagnificPopup() {
15
16    $('.js-image-selector').magnificPopup({
17		type: 'ajax',
18		fixedContentPos: false,
19		closeMarkup: '<span class="popup-close-ic mfp-close"></span>',
20		closeOnBgClick:false,
21		mainClass: 'mfp-fade-top'
22    });
23
24};
25
26initMagnificPopup();
27
28$(function() {
29
30	var nmSwitch = document.querySelector("#nightModeSwitch");
31	if(nmSwitch) {
32        function getCookie(cname) {
33            var name = cname + "=";
34            var decodedCookie = decodeURIComponent(document.cookie);
35            var ca = decodedCookie.split(';');
36            for(var i = 0; i <ca.length; i++) {
37                var c = ca[i];
38                while (c.charAt(0) == ' ') {
39                    c = c.substring(1);
40                }
41                if (c.indexOf(name) == 0) {
42                    return c.substring(name.length, c.length);
43                }
44            }
45            return "";
46        }
47        
48        function checkCookie() {
49            var nightmode = getCookie("nightmode");
50            //console.log(nightmode);
51            if (nightmode == "on") {
52                document.body.classList.toggle('night-mode');
53                nmSwitch.checked = true;
54            } 
55        }
56        
57        function nightModeToggle(nmSwitch) {
58            var state = "off";
59            if(nmSwitch.checked) {
60                state = "on";
61            } 
62            document.cookie = "nightmode="+state+";expires=Fri, 31 dec 9999 23:59:59 GMT;path=/";
63            document.body.classList.toggle('night-mode');
64            var nightmode = getCookie("nightmode");
65           // console.log(nightmode);
66        }
67        
68        checkCookie();
69
70        nmSwitch.addEventListener('click', function() { 
71            nightModeToggle(nmSwitch); 
72        });
73
74    }
75
76
77});
78
79// FRA popup
80
81//$(document).ready(function() {
82//	setTimeout(function() {
83//		
84//		var now, lastDatePopupShowed;
85//		now = new Date();
86//
87//		if (localStorage.getItem('lastDatePopupShowed') !== null) {
88//			lastDatePopupShowed = new Date(parseInt(localStorage.getItem('lastDatePopupShowed')));
89//		}
90//
91//		if (((now - lastDatePopupShowed) >= (15 * 86400000)) || !lastDatePopupShowed) {
92//
93//			$.magnificPopup.open({
94//				items: {src: '#js-fra-popup'},
95//				type:'inline',
96//				midClick: true,
97//				fixedContentPos: false,
98//				closeMarkup: '<span id="footer-banner-close" class="mfp-close fra-popup-close"><i class="fa fa-times" aria-hidden="true"></i></span>',
99//				closeOnBgClick:true,
100//				mainClass: 'mfp-fade-top'
101//			}, 0);
102//
103//			$('.fra-popup-close').on( "click", function() {
104//			  $.magnificPopup.close();
105//			});
106//
107//			localStorage.setItem('lastDatePopupShowed', now);
108//		}
109//
110//	}, 5000);
111//
112//});
113
114// Labels to placeholers
115
116var inputs						=	document.getElementsByTagName('input');
117var old_ele						=	'';
118var old_label					=	'';
119
120function hide_label(ele){
121	var id_of_input 			=   ele.target.id;
122	var label					=	document.getElementById(id_of_input + '-placeholder');
123
124    if (label) {
125        if(ele.target				==	document.activeElement){
126            label.style.display		=	'none';    
127        }
128        if (old_ele.value			==	'' && old_ele != document.activeElement) {
129            old_label.style.display	=	'inline';
130        }
131        old_ele = ele.target;
132        old_label = label;
133    };
134	
135}
136
137for(var i = 0; i < inputs.length; i++){
138	inputs[i].addEventListener('click', hide_label);
139}
140//Subscriber Pop Up
141$(window).on("load resize",function(e){
142
143    if ($("#cl-consent").length) {
144
145    } else {
146		
147        if($("#js-mc-popup").is(":hidden")){
148            
149            setTimeout(function() {
150                
151                if($("#js-dfp-popup").is(":visible")){
152                
153                } else {
154                    var now, lastDatePopupShowed;
155                    now = new Date();
156            
157                    if (localStorage.getItem('FRSubscribePopUp') !== null) {
158                        lastDatePopupShowed = new Date(parseInt(localStorage.getItem('FRSubscribePopUp')));
159                    }
160            
161                    if (((now - lastDatePopupShowed) >= (3650 * 86400000)) || !lastDatePopupShowed) {
162            
163                        $.magnificPopup.open({
164                            items: {src: '#js-mc-popup'},
165                            type:'inline',
166                            midClick: true,
167                            fixedContentPos: false,
168                            closeMarkup: '<span id="footer-banner-close" class="mfp-close fra-popup-close"><i class="fa fa-times" aria-hidden="true"></i></span>',
169                            closeOnBgClick:true,
170                            mainClass: 'mfp-fade-top'
171                        }, 0);
172            
173                        $('.fra-popup-close').on( "click", function() {
174                        localStorage.setItem('FRSubscribePopUp', now);
175                        $.magnificPopup.close();
176                        });
177                    }
178                    
179                };
180        
181            }, 10000);
182        };
183
184    };
185
186});
187
188
189
190// Comment form dropdown
191//(function() {
192//    jQuery(document).ready(function() {
193//       	var trigger = $('.commentTrigger');
194//	   	var target = $('.comments-form');
195//
196//		jQuery(trigger).on('click', function() {
197//			target.slideDown();
198//		});
199//    });
200//})();
201
202// Magnific popup custom confirm box
203function mfpConfirmDialog(message, headline, confirm_text, extras, cb) {
204
205	var dialog = '';
206
207	dialog += '<div class="sp-popup">';
208	dialog += '	<div id="comment">';
209	
210	if (headline) {
211		dialog += '	<div class="title">' + headline + '</div>';
212	} else {
213		dialog += '	<div class="title">Please confirm</div>';	
214	}
215	
216	if (message) {
217		dialog += '	<p>' + message + '</p>';
218	}
219	
220	dialog += '		<div class="form">';
221	
222	if (message) {
223        if (confirm_text != '') {
224    	    dialog += '		<button type="button" id="btn-submit" class="btn-3">' + confirm_text + '</button>';
225        };
226	} else {
227		dialog += '		<button type="button" id="btn-submit" class="btn-3">Confirm</button>';
228	}
229	
230	dialog += '			<button type="button" id="btn-cancel" class="btn-3 btn-cancel">Cancel</button> ';			
231	dialog += '		</div>';
232	dialog += '	</div>';
233	dialog += '</div>';
234 
235    $.magnificPopup.open({
236        modal: true,
237        items: {
238            src: dialog,
239            type: 'inline'
240        },
241        callbacks: {
242            open: function() {
243                var $content = $(this.content);
244 
245                $content.on('click', '#btn-submit', function() {
246		
247                    if (typeof cb == 'function') {
248					
249                        cb(extras);
250                    }
251                    $.magnificPopup.close();
252                    $(document).off('keydown', keydownHandler);
253                });
254 
255                $content.on('click', '#btn-cancel', function() {
256                    $.magnificPopup.close();
257                    $(document).off('keydown', keydownHandler);
258                });
259 
260                var keydownHandler = function (e) {
261                    if (e.keyCode == 13) {
262                        $content.find('#btn-submit').click();
263                        return false;
264                    } else if (e.keyCode == 27) {
265                        $content.find('#btn-cancel').click();
266                        return false;
267                    }
268                };
269                $(document).on('keydown', keydownHandler);
270            }
271        }
272    });
273}
274
275
276
277// ScrollTo
278(function() {
279    jQuery(document).ready(function() {
280       	var trigger = $('.scrollTo');
281		
282		trigger.on('click', function() {
283			var target = trigger.data('scroll-to');
284			
285			$('html, body').animate(
286				{ scrollTop: $(target).offset().top -70 }, 
287				'slow'
288			);
289		});
290    });
291})();
292
293//// Loader
294//(function() {
295//    jQuery(document).ready(function() {
296//       	var mpu = $('.centerOfParagraphs');
297//	   	var numOfParagraphs = mpu.siblings().length;
298//		var middleParagraph = Math.ceil((numOfParagraphs / 2));
299//		mpu.insertBefore(".mpuContainer p:nth-child("+middleParagraph+")");		
300//    });
301//})();
302
303(function() {
304    jQuery(document).ready(function() {
305       $(document).imagesLoaded(function() {
306            // Page loader
307
308            //jQuery(".page-loader").fadeOut('fast');
309
310            var now, lastDateHelpShowed;
311			now = new Date();
312						
313            if (localStorage.getItem('CPDHelp') !== null) {
314                lastDateHelpShowed = new Date(parseInt(localStorage.getItem('CPDHelp')));
315            }
316
317            if (((now - lastDateHelpShowed) >= (3650 * 86400000)) || !lastDateHelpShowed) {
318                if ( $('.surveyInstructionContainer .cpd-help-open').css('display') == 'none' || $('.surveyInstructionContainer .cpd-help-open').css("visibility") == "hidden"){
319                } else {
320                    setTimeout(function(){
321                        $('.surveyDiscBorder').addClass('pulsingBox');
322                        $('.surveyInstructionContainer').addClass('pulsingBox');
323                    },2000);
324                }
325            } else {
326                $('.cpd-help-open').hide();
327                $('.cpd-help-closed').show();
328            };
329        });
330    });
331	
332	setTimeout(function(){
333	   jQuery(document).find('#tab_news_featured').css('display','none');
334	   jQuery(document).find('#tab_news_featured_nav').css('display','none');
335	   jQuery(document).find('#tab_news_comments').css('display','none');
336	   jQuery(document).find('#tab_news_comments_nav').css('display','none');
337	}, 2000);
338	
339	
340})();
341
342// Popups
343(function(){
344    var popups = $('.js-popups');
345
346    popups.magnificPopup({
347        type:'inline',
348        midClick: true,
349        fixedContentPos: false,
350        closeMarkup: '<span class="popup-close-ic mfp-close"></span>',
351		closeOnBgClick:false,
352        mainClass: 'mfp-fade-top'
353    });
354})();
355
356 //Popups
357(function(){
358    var popups = $('.ajax-popup-form');
359	
360    popups.magnificPopup({
361		type: 'ajax',
362		midClick: true,
363		fixedContentPos: false,
364		closeMarkup: '<span class="popup-close-ic mfp-close"></span>',
365		closeOnBgClick:false,
366		mainClass: 'mfp-fade-top'
367    });
368})();
369
370// Tabs
371function openTab(tabName) {
372    var i;
373    var x = document.getElementsByClassName("tab_item");
374	var x_nav = document.getElementsByClassName("tab_item_nav");
375    for (i = 0; i < x.length; i++) {
376        x[i].style.display = "none";
377		jQuery(document).find('#tab_news_all_nav').css("display", "none");
378    }
379    document.getElementById(tabName).style.display = "block";
380	if (tabName == 'tab_news_all') document.getElementById(tabName+'_nav').style.display = "block";
381}
382
383// Mobile menu
384(function(){
385    var mbMenu = $('.js-mb-menu');
386
387    mbMenu.magnificPopup({
388        mainClass: 'mfp-mb-menu mfp-fade',
389        type:'inline',
390        midClick: true,
391        fixedContentPos: false,
392        closeMarkup: '<span class="aside-menu-close-ic mfp-close"></span>',
393        removalDelay: 0
394    });
395})();
396
397// Left sticky bar
398(function() {
399    $(window).load(function() {
400        var inner = $('.inner-wrapper');
401        var leftStBar = $('.js-lsb');
402
403        var waypoints = inner.waypoint({
404            handler: function(dir) {
405                if (dir === 'down') {
406                    leftStBar.addClass('sticky');
407                } else if (dir === 'up') {
408                    leftStBar.removeClass('sticky');
409                }
410            }
411        });
412    });
413})();
414
415// Dopdown menu
416(function() {
417	var trigger = $('.dropdownMenuTrigger');
418	var target = $('.dropdownMenu');
419	
420	trigger.on('click', function(e) {
421		e.preventDefault();
422		target.slideToggle();
423	});
424})();
425
426// Bookend Ads
427(function(){
428    var bookends = $('.bookend-zone');
429    var content = $('.main-content');
430
431    content.waypoint(function(direction) {
432        if(direction==="down") {
433            bookends.addClass('fixed');
434        } else if(direction==="up") {
435            bookends.removeClass('fixed');
436        }
437    });
438})();
439
440// Sticky header
441(function(){
442    var stHeader = $('.js-sticky-header');
443    var content = $('#afterHeader');
444	var sticky_dropdown = $('.stickyDropdown');
445
446    content.waypoint(function(direction) {
447        if(direction==="down") {
448            stHeader.addClass('visible');
449        } else if(direction==="up") {
450            stHeader.removeClass('visible');
451        }
452    });
453})();
454
455// Aside menu
456(function(){
457    var mbMenu = $('.js-asd-menu');
458
459    mbMenu.magnificPopup({
460        mainClass: 'mfp-asd-menu mfp-slide-left',
461        type:'inline',
462        midClick: true,
463        closeMarkup: '<span class="aside-menu-close-ic mfp-close"></span>',
464        removalDelay: 300
465    });
466})();
467
468// Super fish menu
469(function(){
470    $(document).ready(function() {
471        $('ul.sf-menu').superfish({
472            delay: 300
473        });
474    });
475})();
476
477// Main Menu
478(function(){
479    var menuBtn = $('.js-main-menu');
480    
481	menuBtn.magnificPopup({
482        mainClass: 'mfp-fade-top mfp-main-menu mfp-bg-white mobile',
483        midClick: true,
484		fixedContentPos: true,
485        closeMarkup: '<span class="aside-menu-close-ic mfp-close"></span>',
486		closeOnBgClick:false
487    });
488})();
489// Main Menu mobile
490(function(){
491    $('.js-main-menu-mobile').on('click', function(e) {
492		$(this).toggleClass('is-active');
493		$('#main-menu-mb').toggle();
494	});
495})();
496
497// Main Menu mobile dropdown
498(function(){
499    $('.nav-trigger').on('click', function(e) {
500		var target = $(this).data('target');
501		
502		$('.dropdown-'+target).slideToggle();
503	});
504})();
505
506// Search block variant 1
507(function(){
508    var searchBtn = $('.js-fullscreen-search');
509    
510
511	
512	searchBtn.magnificPopup({
513        mainClass: 'mfp-fade-top mfp-fullscreen-search ',
514        midClick: true,
515		fixedContentPos: false,
516        closeMarkup: '<span class="aside-menu-close-ic mfp-close"></span>',
517		focus:'.searchAutoFocus'
518    });
519})();
520
521// // Search block variant 2
522// (function(){
523//     var searchBtn = $('.js-hd-search');
524
525//     searchBtn.magnificPopup({
526//         type:'inline',
527//         midClick: true,
528//         fixedContentPos: false
529//     });
530// })();
531
532
533// Trending line slider
534(function() {
535    $(document).ready(function() {
536        var slider = $('.tl-slider');
537
538        slider.slick({
539            fade: true,
540            speed: 800,
541            autoplay: true,
542            appendArrows: $('.tl-slider-control'),
543            prevArrow: '<span class="arr-left-dark-ic tls-prev"><i></i></span>',
544            nextArrow: '<span class="arr-right-dark-ic tls-next"><i></i></span>'
545        });
546    });
547})();
548
549// Trending posts slider
550(function() {
551    $(document).ready(function() {
552        var slider = $('.js-trend-pst-slider');
553        var pagg;
554
555        slider.each(function() {
556            var el = $(this);
557            pagg = el.parents('.trpst-block').find('.js-sbr-pagination');
558
559            el.slick({
560                fade: true,
561                speed: 1000,
562                dots: true,
563                arrows: false,
564                appendDots: pagg,
565                dotsClass: 'sbr-dots',
566                customPaging : function(slider, i) {
567                    return '<span></span>';
568                }
569            });
570        });
571    });
572})();
573
574// Filters dropdown
575(function(){
576    var filterBtn = $('.js-fl-btn');
577
578    filterBtn.each(function() {
579        var el = $(this);
580        var filterBlock = el.find('.js-fl-block');
581
582        el.on('click', function(e) {
583            e.preventDefault();
584            filterBlock.fadeToggle(200);
585        });
586
587        $(document).on("click", function(event) {
588            if( $(event.target).closest(filterBlock).length == 0 && $(event.target).closest(el).length == 0 ) {
589                filterBlock.fadeOut(200);
590            }
591        });
592    });
593})();
594
595// Main slider 1
596(function() {
597    $(document).ready(function() {
598        var swiper = new Swiper('.js-main-slider-1', {
599            // Optional parameters
600            speed: 1000,
601            loop: true,
602
603            nextButton: '.nav-arrow.next',
604            prevButton: '.nav-arrow.prev',
605            pagination: '.slide-count',
606            paginationType: 'fraction',
607            paginationFractionRender: function(swiper, currentClassName, totalClassName) {
608                return '<span class="' + currentClassName + '"></span>' +
609                    ' of ' +
610                    '<span class="' + totalClassName + '"></span>';
611            }
612
613        });
614    });
615})();
616
617// Main slider 2
618(function() {
619    $(document).ready(function() {
620        var mainSlider = $('.js-main-slider-2');
621        var slideCount = $('.slide-count');
622        var slideNumCurrent = slideCount.find('.current');
623        var slideNumTotal = slideCount.find('.total');
624
625        mainSlider.on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) {
626            var i = (currentSlide ? currentSlide : 0) + 1;
627            slideNumCurrent.text(i);
628            slideNumTotal.text(slick.slideCount);
629        });
630
631        mainSlider.slick({
632            speed: 600,
633            appendArrows: $('.ms-navs'),
634            prevArrow: '<div class="prev"><i class="ms-prev"></div>',
635            nextArrow: '<div class="next"><i class="ms-next"></div>',
636        });
637    });
638})();
639
640// Main slider 3
641(function() {
642    $(document).ready(function() {
643        var mainSlider = $('.js-main-slider-3');
644        var slideCount = $('.slide-count');
645        var slideNumCurrent = slideCount.find('.current');
646        var slideNumTotal = slideCount.find('.total');
647
648        mainSlider.on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) {
649            var i = (currentSlide ? currentSlide : 0) + 1;
650            slideNumCurrent.text(i);
651            slideNumTotal.text(slick.slideCount);
652        });
653
654        mainSlider.slick({
655            fade: true,
656            speed: 1000,
657            appendArrows: $('.ms-navs'),
658            prevArrow: '<div class="prev"><i class="ms-prev"></div>',
659            nextArrow: '<div class="next"><i class="ms-next"></div>',
660        });
661    });
662})();
663
664// Thumbs slider
665(function() {
666    $(document).ready(function() {
667        var thumbs = $('.js-thumbs').find('.js-thumbs-img');
668
669        var slider = new Swiper('.js-thumbs-slider', {
670            noSwiping: false
671        });
672
673        thumbs.on('click', function(e) {
674            var el = $(this);
675            var i = el.index();
676
677            slider.slideTo(i, 1000);
678        });
679    });
680})();
681
682// Video posts slider
683(function() {
684    $(document).ready(function() {
685        var slider = $('.js-video-pst-slider');
686
687        slider.owlCarousel({
688            singleItem: true,
689            autoPlay: 3000,
690            stopOnHover: true,
691            slideSpeed: 1500,
692            transitionStyle: 'fade'
693        });
694
695    });
696})();
697
698// Simple posts slider
699(function() {
700    $(document).ready(function() {
701        var slider = $('.js-pst-block');
702        var controls;
703        var prev;
704        var next;
705
706        slider.each(function() {
707            var el = $(this);
708            controls = el.parents('.spst-slider').find('.js-pst-navs');
709            prev = controls.find('.pst-prev');
710            next = controls.find('.pst-next');
711
712            el.owlCarousel({
713                items: el.data('items') ? el.data('items') : 3,
714                slideSpeed: 1000,
715                pagination: false,
716                addClassActive: true,
717                itemsDesktop: el.data('items') ? [1229,el.data('items')] : [1229,3],
718                itemsDesktopSmall: el.data('items') === 1 ? 1 : [1077,2],
719                itemsTablet: el.data('items') === 1 ? 1 : [767,2],
720                itemsTabletSmall: [639,1],
721                // itemsMobile: [479,1]
722            });
723
724            // Custom Navigation Events
725            next.click(function(e) {
726                e.preventDefault();
727                el.trigger('owl.next');
728            });
729            prev.click(function(e) {
730                e.preventDefault();
731                el.trigger('owl.prev');
732            });
733        });
734    });
735})();
736
737// Simple posts slider two
738(function() {
739    $(document).ready(function() {
740        var slider = $('.js-pst-block-2');
741        var slides = slider.data('slides');
742        var controls;
743        var prev;
744        var next;
745
746        slider.each(function() {
747            var el = $(this);
748            controls = el.parents('.pst-box').find('.js-pst-navs');
749
750            el.slick({
751                slidesToShow: slides ? slides : 3,
752                appendArrows: controls,
753                prevArrow: '<span><i class="fa fa-angle-left"></i></span>',
754                nextArrow: '<span><i class="fa fa-angle-right"></i></span>',
755                responsive: [{
756                    breakpoint: 1229,
757                    settings: {
758                        slidesToShow: 3,
759                        slidesToScroll: 3,
760                    }
761                }, {
762                    breakpoint: 1077,
763                    settings: {
764                        slidesToShow: 2,
765                        slidesToScroll: 2
766                    }
767                }, {
768                    breakpoint: 639,
769                    settings: {
770                        slidesToShow: 1,
771                        slidesToScroll: 1
772                    }
773                }]
774            });
775        });
776    });
777})();
778
779// Simple posts slider with custom pagination
780(function() {
781    $(document).ready(function() {
782        var slider = $('.js-csp-block');
783        var pagg;
784
785        slider.each(function() {
786            var el = $(this);
787            pagg = el.parents('.pst-block').find('.js-sbr-pagination');
788
789            el.slick({
790                fade: true,
791                speed: 1000,
792                dots: true,
793                arrows: false,
794                appendDots: pagg,
795                dotsClass: 'sbr-dots',
796                customPaging : function(slider, i) {
797                    return '<span></span>';
798                }
799            });
800        });
801    });
802})();
803
804// Listicle slider
805(function() {
806    $(document).ready(function() {
807        var slider = $('.js-listicle');
808        var pagg;
809
810        slider.each(function() {
811            var el = $(this);
812            pagg = el.parents('.pst-block').find('.js-sbr-pagination');
813
814            el.slick({
815               dots: true,
816				swipeToSlide: true,
817				touchMove: true,
818				prevArrow: $('.prevArrow'),
819				nextArrow: $('.nextArrow'),	
820                appendDots: pagg,
821                dotsClass: 'sbr-dots',
822                customPaging : function(slider, i) {
823                    return '<span></span>';
824                }
825            });
826        });
827    });
828})();
829
830// Image post slider
831(function() {
832    $(document).ready(function() {
833        var mainSlider = $('.js-img-slider');
834        var customNavs = mainSlider.parent('.img-slider').find('.js-custom-navs');
835        var slideCount = customNavs.find('.js-slide-count');
836        var slideNumCurrent = slideCount.find('.js-current');
837        var slideNumTotal = slideCount.find('.js-total');
838
839        mainSlider.on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) {
840            var i = (currentSlide ? currentSlide : 0) + 1;
841            slideNumCurrent.text(i);
842            slideNumTotal.text(slick.slideCount);
843        });
844
845        mainSlider.slick({
846            speed: 600,
847            appendArrows: customNavs,
848            prevArrow: '<div class="prev"><i class="fa fa-angle-left"></div>',
849            nextArrow: '<div class="next"><i class="fa fa-angle-right"></div>'
850        });
851    });
852})();
853
854// Sidebar slider
855(function() {
856    $(document).ready(function() {
857        var slider = $('.js-sbr-slider');
858        var pagg;
859        var nav;
860        var prev;
861        var next;
862
863        slider.each(function() {
864            var el = $(this);
865            pagg = el.parents('.sbr-slider').find('.js-sbr-pagination');
866            nav = el.parents('.sbr-slider').find('.js-sbr-navs');
867            prev = nav.find('.sbr-prev');
868            next = nav.find('.sbr-next');
869
870            el.slick({
871                fade: true,
872                speed: 1000,
873                dots: true,
874                appendDots: pagg,
875                appendArrows: nav,
876                prevArrow: '<div class="prev"><i class="sbr-prev"></div>',
877                nextArrow: '<div class="next"><i class="sbr-next"></div>',
878                dotsClass: 'sbr-dots',
879                customPaging : function(slider, i) {
880                    return '<span></span>';
881                }
882            });
883        });
884    });
885})();
886
887(function(){
888    var popups = $('.js-image-selector');
889	
890    popups.magnificPopup({
891		type: 'ajax',
892		fixedContentPos: false,
893		closeMarkup: '<span class="popup-close-ic mfp-close"></span>',
894		closeOnBgClick:false,
895		mainClass: 'mfp-fade-top'
896    });
897})();
898
899// Sidebar sticky
900
901    var stickSb = $('#1 .js-sidebar, #1 .js-sidebar-parent .content');
902	var window_width = $(window).width();
903	var hasBeenStuck = false;
904	
905	function unstick() {
906		stickSb.each(function () {
907			var el = $(this);
908			
909			el.trigger("sticky_kit:detach");
910
911		});
912	}
913	function recalcStick() {
914		stickSb.each(function () {
915			var el = $(this);
916			
917			el.trigger("sticky_kit:recalc");
918
919		});
920	}
921	
922	function stick() {
923		stickSb.each(function () {
924			var el = $(this);
925			
926			el.stick_in_parent({
927				parent: el.closest('.js-sidebar-parent'),
928				spacer: ".sticky-spacer",
929				offset_top: $('.js-sticky-header') ? 70 : 0
930			});
931
932		});	
933	}
934	
935	
936	$(document).ready(function() {
937		recalcStick();
938		$(document).imagesLoaded(function() {
939			if(window_width > 1077) {
940				stick();
941				hasBeenStuck = true;
942			}
943		});
944    });
945	$(window).resize(function() {
946		window_width = $( window ).width();
947		
948		if(window_width > 1077) {
949			if(!hasBeenStuck) {
950				stick();
951				hasBeenStuck = true;
952			}
953		} else {
954			if(hasBeenStuck) {
955				unstick();
956				hasBeenStuck = false;	
957			}
958		}
959	});
960
961
962(function(){
963    var filters = $('.js-tab-filter');
964    var slider = $('.js-tab-slider');
965
966    filters.on('click', 'a', function(e) {
967        e.preventDefault();
968        var el = $(this);
969
970        if(!el.hasClass('active')) {
971            filters.find('a').removeClass('active');
972            el.addClass('active');
973        }
974    });
975})();
976
977// Go top button
978(function(){
979    var butt = $('.js-go-top');
980    butt.on('click', function(e) {
981        e.preventDefault();
982        var body = $("html, body");
983        body.animate({
984            scrollTop: 0
985        }, 1500);
986    });
987
988    $('.main-content').waypoint(function(direction) {
989        if(direction==="down") {
990            butt.removeClass('fadeOutUp')
991                .addClass('fadeInUp');
992        } else if(direction==="up") {
993            butt.removeClass('fadeInUp')
994                .addClass('fadeOutUp');
995        }
996    });
997})();
998
999// More post animate
1000(function(){
1001    var moreBtn = $('.js-more-posts');
1002    var moreBtn2 = $('.js-more-posts-2');
1003
1004    // DEMO
1005    var posts1 = '<article class="post post-tp-17 animated fadeIn">' +
1006                    '<figure>' +
1007                        '<a href="">' +
1008                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/4.jpg" height="156" width="223" 
1008class="adaptive">' +
1009                        '</a>' +
1010                    '</figure>' +
1011                    '<span class="category-tp-4">style</span>' +
1012                    '<h3 class="title-5"><a href="">Fusce ac orci sagittis mattis magnabeneath chalete banvela</a></h3>' +
1013                    '<div class="meta-tp-2">' +
1014                        '<div class="date"><span>october 2, 2015</span></div>' +
1015                        '<div class="category">' +
1016                            '<a href=""><i class="li_user"></i><span>admin</span></a>' +
1017                        '</div>' +
1018                    '</div>' +
1019                    '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
1020                '</article>' +
1021                '<article class="post post-tp-17 animated fadeIn">' +
1022                    '<figure>' +
1023                        '<a href="">' +
1024                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/5.jpg" height="156" width="223" class="adaptive">' +
1025                        '</a>' +
1026                    '</figure>' +
1027                    '<span class="category-tp-4">style</span>' +
1028                    '<h3 class="title-5"><a href="">Explain to you how all this mistaken</a></h3>' +
1029                    '<div class="meta-tp-2">' +
1030                        '<div class="date"><span>october 2, 2015</span></div>' +
1031                        '<div class="category">' +
1032                            '<a href=""><i class="li_user"></i><span>admin</span></a>' +
1033                        '</div>' +
1034                    '</div>' +
1035                    '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
1036                '</article>' +
1037                '<article class="post post-tp-17 animated fadeIn">' +
1038                    '<figure>' +
1039                        '<a href="">' +
1040                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/6.jpg" height="156" width="223" class="adaptive">' +
1041                        '</a>' +
1042                    '</figure>' +
1043                    '<span class="category-tp-4">style</span>' +
1044                    '<h3 class="title-5"><a href="">But I must explain to you how all this mistaken idea of denouncing pleasure</a></h3>' +
1045                    '<div class="meta-tp-2">' +
1046                        '<div class="date"><span>october 2, 2015</span></div>' +
1047                        '<div class="category">' +
1048                            '<a href=""><i class="li_user"></i><span>admin</span></a>' +
1049                        '</div>' +
1050                    '</div>' +
1051                    '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
1052                '</article>' +
1053                '<article class="post post-tp-17 animated fadeIn">' +
1054                    '<figure>' +
1055                        '<a href="">' +
1056                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/7.jpg" height="156" width="223" class="adaptive">' +
1057                        '</a>' +
1058                    '</figure>' +
1059                    '<span class="category-tp-4">style</span>' +
1060                    '<h3 class="title-5"><a href="">But I must explain to you how all this mistaken idea of denouncing pleasure</a></h3>' +
1061                    '<div class="meta-tp-2">' +
1062                        '<div class="date"><span>october 2, 2015</span></div>' +
1063                        '<div class="category">' +
1064                            '<a href=""><i class="li_user"></i><span>admin</span></a>' +
1065                        '</div>' +
1066                    '</div>' +
1067                    '<p>Sed ut perspiciatis unde omnis iste natus sit voluptatem accusantium dolore mque laudantium, totamrem aperiam, eaque ipsa quae ab illo invent</p>' +
1068                '</article>';
1069
1070    var posts2 = '<article class="post post-tp-21">' +
1071                    '<figure>' +
1072                        '<a href="">' +
1073                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/8.jpg" height="133" width="190" class="adaptive">' +
1074                        '</a>' +
1075                    '</figure>' +
1076                    '<h3 class="title-5"><a href="">Fusce ac orci sagittis mattis magnabeneath chalete banvela</a></h3>' +
1077                    '<div class="meta-tp-2">' +
1078                        '<div class="date"><span>october 2, 2015</span></div>' +
1079                        '<div class="category">' +
1080                            '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
1081                        '</div>' +
1082                    '</div>' +
1083                    '<p>
1083Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
1084                '</article>' +
1085                '<article class="post post-tp-21">' +
1086                    '<figure>' +
1087                        '<a href="">' +
1088                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/9.jpg" height="133" width="190" class="adaptive">' +
1089                        '</a>' +
1090                    '</figure>' +
1091                    '<h3 class="title-5"><a href="">Not know how to pursue pleasure rationally</a></h3>' +
1092                    '<div class="meta-tp-2">' +
1093                        '<div class="date"><span>october 2, 2015</span></div>' +
1094                        '<div class="category">' +
1095                            '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
1096                        '</div>' +
1097                    '</div>' +
1098                    '<p>Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
1099                '</article>' +
1100                '<article class="post post-tp-21">' +
1101                    '<figure>' +
1102                        '<a href="">' +
1103                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/10.jpg" height="133" width="190" class="adaptive">' +
1104                        '</a>' +
1105                    '</figure>' +
1106                    '<h3 class="title-5"><a href="">Those who do not know how to pursue pleasure rationally</a></h3>' +
1107                    '<div class="meta-tp-2">' +
1108                        '<div class="date"><span>october 2, 2015</span></div>' +
1109                        '<div class="category">' +
1110                            '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
1111                        '</div>' +
1112                    '</div>' +
1113                    '<p>Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
1114                '</article>' +
1115                '<article class="post post-tp-21">' +
1116                    '<figure>' +
1117                        '<a href="">' +
1118                            '<img src="https://s3.amazonaws.com/weblionmedia-spectr/img/223x156/4.jpg" height="133" width="190" class="adaptive">' +
1119                        '</a>' +
1120                    '</figure>' +
1121                    '<h3 class="title-5"><a href="">Avoids pleasure itself because it is pleasure but because</a></h3>' +
1122                    '<div class="meta-tp-2">' +
1123                        '<div class="date"><span>october 2, 2015</span></div>' +
1124                        '<div class="category">' +
1125                            '<a href=""><i class="li_pen"></i><span>life style</span></a>' +
1126                        '</div>' +
1127                    '</div>' +
1128                    '<p>Sed ut perspiciatis unde omnis iste natus sit volupt atem accusantium dolore mque laudantium, totamrem</p>' +
1129                '</article>';
1130
1131    var scrllTop;
1132
1133    moreBtn.on('click', function(e) {
1134        e.preventDefault();
1135
1136        var el = $(this);
1137        var moreBlc = el.parent().prev().find('.posts');
1138
1139        scrllTop = $(window).scrollTop();
1140        $(window).scrollTop(scrllTop+50);
1141
1142        moreBlc.append(posts1);
1143    });
1144
1145    moreBtn2.on('click', function(e) {
1146        e.preventDefault();
1147
1148        var el = $(this);
1149        var moreBlc = el.parent().prev().find('.posts');
1150
1151        scrllTop = $(window).scrollTop();
1152        $(window).scrollTop(scrllTop+50);
1153
1154        moreBlc.append(posts2);
1155    });
1156})();
1157
1158// Google Maps
1159(function(){
1160    var maps = $('.js-map');
1161
1162    maps.each(function() {
1163        var currentMap = $(this);
1164        var latlng = new google.maps.LatLng(currentMap.attr('data-longitude'), currentMap.attr('data-latitude'));
1165        var point = currentMap.attr('data-marker');
1166        var mapColor = currentMap.attr('data-map-color');
1167        var mapSaturation = currentMap.attr('data-map-saturation');
1168        var styles = [{
1169            stylers: [{
1170                hue: mapColor
1171            },
1172            {
1173                saturation: mapSaturation
1174            }]
1175        }];
1176        var myOptions = {
1177            zoom: 13,
1178            scrollwheel: false,
1179            center: latlng,
1180            mapTypeControl: false
1181        };
1182        var map = new google.maps.Map(currentMap[0], myOptions);
1183
1184        var styledMap = new google.maps.StyledMapType(styles, {
1185            name: "Styled Map"
1186        });
1187
1188        if(mapColor !== "") {
1189            map.mapTypes.set('map_style', styledMap);
1190            map.setMapTypeId('map_style');
1191        }
1192
1193        google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
1194            var markerImgLoad = new Image();
1195            markerImgLoad.src = point;
1196            $(markerImgLoad).load(function(){
1197                addMarker(map, point, latlng);
1198            });
1199        });
1200
1201        $(window).resize(function() {
1202            map.setCenter(latlng);
1203        });
1204    });
1205
1206    function addMarker(map, point, latlng) {
1207        var marker = new google.maps.Marker({
1208            map: map,
1209            icon: point,
1210            position: latlng,
1211            animation: google.maps.Animation.BOUNCE
1212        });
1213        setTimeout(function() {marker.setAnimation(null);}, 700);
1214    }
1215})();
1216
1217// Accordions
1218(function() {
1219
1220    var allPanels = $('.accordion > dd').hide();
1221
1222    $('.accordion > dt > a').on('click', function(e) {
1223        e.preventDefault();
1224
1225        var el = $(this);
1226        if(!el.hasClass('open')) {
1227            allPanels.slideUp().prev().removeClass('open').children().removeClass('open');
1228            $(this).addClass('open').parent().addClass('open').next().slideDown();
1229        } else {
1230			$(this).removeClass('open').parent().removeClass('open').next().slideUp();
1231		}
1232    });
1233
1234})();
1235
1236// Tabs
1237(function() {
1238    $(".tab-item").not(":first").hide();
1239    $(".tabs-list .tab").on('click', function() {
1240        var el = $(this);
1241        if(!el.hasClass('active')) {
1242            $(".tabs .tab").removeClass("active").eq(el.index()).addClass("active");
1243            $(".tab-item").hide().eq(el.index()).fadeIn();
1244        }
1245    }).eq(0).addClass("active");
1246})();
1247
1248// Gallery
1249(function(){
1250    var gallery = $('.js-gallery-link');
1251
1252    gallery.magnificPopup({
1253        mainClass: 'mfp-fade',
1254        type:'image',
1255        gallery: {
1256            enabled: true
1257        }
1258    });
1259})();
1260
1261// Range slider
1262$(function() {
1263    var range = $(".js-range");
1264    var amount = range.parents('.range-wrap').find('.js-range-amount');
1265
1266    range.each(function() {
1267        var el = $(this);
1268
1269        el.slider({
1270            range: true,
1271            min: 5,
1272            max: 100,
1273            values: [0, 70],
1274            slide: function(event, ui) {
1275                amount.text("$" + ui.values[0] + " - $" + ui.values[1]);
1276            }
1277        });
1278
1279        amount.text("$" + range.slider("values", 0) + " - $" + range.slider("values", 1));
1280    });
1281});
1282
1283// Custom select
1284$(function() {
1285    var select = $(".js-select");
1286
1287    select.each(function() {
1288        var el = $(this);
1289
1290        el.selectmenu({
1291            icons: { button: "fa fa-angle-down" }
1292        });
1293    });
1294
1295    $(window).on('resize', function() {
1296        select.each(function() {
1297            var el = $(this);
1298
1299            el.selectmenu( "refresh" );
1300        });
1301    });
1302});
1303
1304// Quantity
1305$(function() {
1306    var quantity = $(".js-quantity");
1307
1308    quantity.each(function() {
1309        var el = $(this);
1310        var minus = el.find('.minus');
1311        var num = el.find('.num');
1312        var plus = el.find('.plus');
1313
1314        var i = num.text();
1315
1316        plus.on('click', function() {
1317            i++;
1318            num.text(i);
1319        });
1320
1321        minus.on('click', function() {
1322            i--;
1323            if (i>=1) {
1324                num.text(i)
1325            } else {
1326                i = 1;
1327            }
1328        });
1329    });
1330});
1331
1332//Date Time Picker
1333$( function() {
1334	$('.datetimepicker').datetimepicker(
1335		{
1336			lang:'en-GB',
1337			dayOfWeekStart:[1],
1338			dayOfWeek:[
1339				"Mo", "Tu", "We", "Th", "Fr", "Sa.", "Su.",
1340			],
1341			allowTimes:[
1342				'07:00', '07:15', '07:30', '07:45', '08:00', '08:15','08:30', '08:45', '09:00', '09:15', '09:30', '09:45', '10:00', '10:15', '10:30', '10:45', '11:00', '11:15', '11:30', '11:45', '12:00', '12:15', '12:30', '12:45', '13:00', '13:15', '13:30', '13:45', '14:00', '14:15', '14:30', '14:45', '15:00', '15:15', '15:30', '15:45', '16:00', '16:15', '16:30', '16:45', '17:00', '17:15', '17:30', '17:45', '18:00', '18:15', '18:30', '18:45', '19:00', '19:15', '19:30', '19:45', '20:00', '20:15', '20:30', '20:45', '21:00', '21:15', '21:30', '21:45', '22:00', '22:15', '22:30', '22:45', '23:00', '23:15', '23:30', '23:45', '00:00', '00:15', '00:30', '00:45', '01:00', '01:15', '01:30', '01:45', '02:00', '02:15', '02:30', '02:45', '03:00', '03:15', '03:30', '03:45', '04:00', '04:15', '04:30', '04:45', '05:00', '05:15', '05:30', '05:45', '06:00', '06:15', '06:30', '06:45'
1343			],
1344			defaultTime:'09:00',
1345			format:'d-m-Y H:i',
1346			validateOnBlur:false
1347		}
1348	);
1349});
1350//Capitalise first letter
1351$( function() {
1352	$('.capitalise').keyup(function(event) {
1353		var textBox = event.target;
1354		var start = textBox.selectionStart;
1355		var end = textBox.selectionEnd;
1356		textBox.value = textBox.value.charAt(0).toUpperCase() + textBox.value.slice(1);
1357		textBox.setSelectionRange(start, end);
1358   });
1359});
1360
1361// Lazy loader
1362(function() {
1363    jQuery(document).ready(function() {
1364      	$('.lazy').lazy({
1365			threshold: 300,
1366			afterLoad: recalcStick(),
1367			onError: function(element) {
1368				console.log('error loading ' + element.data('src'));
1369			}
1370		});
1371    });
1372})();
1373

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.