PageSourceSearch

https://zednews.it/source_/wp-content/themes/benqu/assets/js/scripts.js?ver=1.0.0&time=1790339347

js zednews.it collected 2026-09-25 13:31:43 UTC 19,904 bytes, 646 lines download raw bytes

1
2(function ($) {
3    "use strict";
4
5    /**
6    * Search
7    */
8    $('.pfy-search-btn').on("click", function (){
9		$('.benqu_header_search').addClass('active');
10	});
11	$('.close-btn').on("click", function (){
12		$('.benqu_header_search').removeClass('active');
13	});
14
15    /**
16    *Sticky Sidebar
17    */
18    if (typeof $.fn.theiaStickySidebar !== "undefined") {
19		$(".benqu-sticky-wrap .benqu-sticky-item").theiaStickySidebar({
20		  additionalMarginTop: 130,
21		});
22	  }
23
24    // mobile menu start
25    $('#pfy-mobile-menu').metisMenu();
26
27    $('#pfy-mobile-menu .dropdown > a').on('click', function (e) {
28		e.preventDefault();
29	});
30
31	$(".hamburger_menu > a").on("click", function (e) {
32		e.preventDefault();
33		$(".slide-bar").toggleClass("show");
34		$("body").addClass("on-side");
35		$('.body-overlay').addClass('active');
36		$(this).addClass('active');
37	});
38
39	$(".close-mobile-menu > a").on("click", function (e) {
40		e.preventDefault();
41		$(".slide-bar").removeClass("show");
42		$("body").removeClass("on-side");
43		$('.body-overlay').removeClass('active');
44		$('.hamburger_menu > a').removeClass('active');
45	});
46
47	$('.body-overlay').on('click', function () {
48		$(this).removeClass('active');
49		$(".slide-bar").removeClass("show");
50		$("body").removeClass("on-side");
51		$('.hamburger-menu > a').removeClass('active');
52	});
53
54    /***
55    *Dark Switch
56    */
57    window.onload = function () {
58		// Dark
59		const toggleSwitch = document.querySelector(
60		  '.benqu-switch-box__input'
61		);
62		const currentTheme = localStorage.getItem("theme");
63		if (currentTheme) {
64		  document.documentElement.setAttribute("data-theme", currentTheme);
65		  if (currentTheme === "dark") {
66			toggleSwitch.checked = true;
67		  }
68		}
69		function switchTheme(e) {
70		  if (e.target.checked) {
71			document.documentElement.setAttribute("data-theme", "dark");
72			localStorage.setItem("theme", "dark");
73		  } else {
74			document.documentElement.setAttribute("data-theme", "light");
75			localStorage.setItem("theme", "light");
76		  }
77		}
78		if (toggleSwitch) {
79		  toggleSwitch.addEventListener("change", switchTheme, false);
80		}
81	  };
82
83    // sticky start
84	var wind = $(window);
85	var sticky = $('#stickyHeader');
86	wind.on('scroll', function () {
87		var scroll = wind.scrollTop();
88		if (scroll < 300) {
89			sticky.removeClass('stickyHeader');
90		} else {
91			sticky.addClass('stickyHeader');
92		}
93	});
94	// sticky end
95    /**
96    * Post Widget Slider
97    */       
98    $('.widget-post-slider-wrap').owlCarousel({
99        items:1,
100        loop:true,
101        dots:true,
102        autoplay:true,
103        nav:false,
104        animateOut: 'fadeOut',
105        smartSpeed:1500,
106    });
107
108    /**
109     * Post Slider
110     */   
111     function pfyPostSliderActive( $scope, $ ){     
112        var $_this = $scope.find('.pfy-post-slider-wrap');
113
114        var $currentID = '#'+$_this.attr('id'),
115            $navs = $_this.data('navs'),
116            $dots = $_this.data('dots'),
117            $autoplay = $_this.data('autoplay');
118            var pfy_post_slider = $( $currentID );
119        pfy_post_slider.owlCarousel({
120            items:1,
121            loop:true,
122            nav:$navs,
123            dots:$dots,
124            autoplay:$autoplay,
125            autoplayTimeout:5000,
126            smartSpeed:1000,
127            animateOut: 'fadeOut',
128            navText:["<i class='fal fa-angle-left'></i>", "<i class='fal fa-angle-right'></i>"],
129        })
130    };
131    
132    $('.pfy-post-thumb-gall').owlCarousel({
133        items:1,
134        lazyLoad:true,
135        loop:true,
136        autoplayTimeout:5000,
137        smartSpeed:1000,
138        nav:true,
139        dots:false,
140        animateOut: 'fadeOut',
141        navText:["<i class='fas fa-caret-left'></i>", "<i class='fas fa-caret-right'></i>"],
142    });
143    $('.breaking-headline-active').owlCarousel({
144        items:1,
145        lazyLoad:true,
146        loop:true,
147        smartSpeed:1500,
148        nav:false,
149        autoplay:true,
150        dots:false
151    });
152
153    /**
154     * Post Grid Slider
155     */   
156     function pfyPostGridSliderActive( $scope, $ ){     
157        var $_this = $scope.find('.pfy-post-grid-carousel');
158        var $currentID = '#'+$_this.attr('id'),
159            $navs = $_this.data('navs'),
160            $dots = $_this.data('dots'),
161            $autoplay = $_this.data('autoplay');
162            var pfy_post_car = $( $currentID );
163            pfy_post_car.owlCarousel({
164            loop:true,
165            nav:$navs,
166            dots:$dots,
167            autoplay:$autoplay,
168            autoplayTimeout:4000,
169            smartSpeed:1000,
170            responsive:{
171                0:{
172                    items:1,
173                },
174                600:{
175                    items:2,
176                },
177                1000:{
178                    items:3,
179                },
180                1500:{
181                    items:4
182                },
183                1600:{
184                    items:5
185                }
186            }
187        })
188    };
189    /**
190     * Post Grid Slider Two
191     */   
192     function bnqPostGridSliderActive( $scope, $ ){     
193        var $_this = $scope.find('.bnq-post-grid-carousel');
194        var $currentID = '#'+$_this.attr('id'),
195            $navs = $_this.data('navs'),
196            $dots = $_this.data('dots'),
197            $autoplay = $_this.data('autoplay');
198            var pfy_post_car = $( $currentID );
199            pfy_post_car.owlCarousel({
200            loop:true,
201            nav:$navs,
202            dots:$dots,
203            autoplay:$autoplay,
204            autoplayTimeout:4000,
205            smartSpeed:1000,
206            responsive:{
207                0:{
208                    items:1,
209                },
210                600:{
211                    items:2,
212                },
213                1000:{
214                    items:3,
215                },
216                1500:{
217                    items:4
218                },
219                1600:{
220                    items:5
221                }
222            }
223        })
224    };
225
226
227    function pfyPostTabActive( $scope, $ ){          
228        const $tabsToDropdown = $(".tabs-to-dropdown");
229        function generateDropdownMarkup(container) {
230        const $navWrapper = container.find(".nav-wrapper");
231        const $navPills = container.find(".nav-pills");
232        const firstTextLink = $navPills.find("li:first-child a").text();
233        const $items = $navPills.find("li");
234        const markup = `
235            <div class="dropdown">
236            <button class="btn dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
237                ${firstTextLink}
238            </button>
239            <ul class="dropdown-menu"  aria-labelledby="dropdownMenuButton1"> 
240                ${generateDropdownLinksMarkup($items)}
241            </ul>
242            </div>
243        `;
244        $navWrapper.prepend(markup);
245        }
246
247        function generateDropdownLinksMarkup(items) {
248        let markup = "";
249        items.each(function () {
250            const textLink = $(this).find("a").text();
251            markup += `<a class="dropdown-item" href="#">${textLink}</a>`;
252        });
253
254        return markup;
255        }
256
257        function showDropdownHandler(e) {
258        // works also
259        //const $this = $(this);
260        const $this = $(e.target);
261        const $dropdownToggle = $this.find(".dropdown-toggle");
262        const dropdownToggleText = $dropdownToggle.text().trim();
263        const $dropdownMenuLinks = $this.find(".dropdown-menu a");
264        const dNoneClass = "d-none";
265        $dropdownMenuLinks.each(function () {
266            const $this = $(this);
267            if ($this.text() == dropdownToggleText) {
268            $this.addClass(dNoneClass);
269            } else {
270            $this.removeClass(dNoneClass);
271            }
272        });
273        }
274
275        function clickHandler(e) {
276        e.preventDefault();
277        const $this = $(this);
278        const index = $this.index();
279        const text = $this.text();
280        $this.closest(".dropdown").find(".dropdown-toggle").text(`${text}`);
281        $this
282            .closest($tabsToDropdown)
283            .find(`.nav-pills li:eq(${index}) a`)
284            .tab("show");
285        }
286
287        function shownTabsHandler(e) {
288        // works also
289        //const $this = $(this);
290        const $this = $(e.target);
291        const index = $this.parent().index();
292        const $parent = $this.closest($tabsToDropdown);
293        const $targetDropdownLink = $parent.find(".dropdown-menu a").eq(index);
294        const targetDropdownLinkText = $targetDropdownLink.text();
295        $parent.find(".dropdown-toggle").text(targetDropdownLinkText);
296        }
297
298        $tabsToDropdown.each(function () {
299        const $this = $(this);
300        const $pills = $this.find('a[data-toggle="pill"]');
301
302        generateDropdownMarkup($this);
303
304        const $dropdown = $this.find(".dropdown");
305        const $dropdownLinks = $this.find(".dropdown-menu a");
306
307        $dropdown.on("show.bs.dropdown", showDropdownHandler);
308        $dropdownLinks.on("click", clickHandler);
309        $pills.on("shown.bs.tab", shownTabsHandler);
310        });
311
312    }
313
314    $('.pfy-video-popup').magnificPopup({
315        type: 'iframe',
316        mainClass: 'mfp-fade',
317        fixedContentPos: false
318    });
319
320    /**
321     * Ajax Post Load More Button
322     * @param {*} $scope 
323     * @param {*} $ 
324     */
325    
326    function pfyAjaxLoadmoreMasonryMasonry( $scope, $ ){
327        var containerBricks = $('.masonry');
328
329        containerBricks.imagesLoaded(function () {
330            containerBricks.masonry({
331                itemSelector: '.masonry__brick',
332                percentPosition: true,
333                resize: true
334            });
335        });
336
337
338        // layout Masonry after each image loads
339        containerBricks.imagesLoaded().progress( function() {
340            containerBricks.masonry('layout');
341        });
342    }
343
344    if($('.wow').length){
345        var wow = new WOW(
346        {
347            boxClass:     'wow',
348            animateClass: 'animated',
349            offset:       0,
350            mobile:       true,
351            live:         true
352        }
353        );
354        wow.init();
355    }
356
357    /**
358     * Post List Carousel
359     * @param {*} $scope 
360     * @param {*} $ 
361     */
362    function pfyPostListActive($scope, $) {
363		$('.post-list-carousel').slick({
364			rows: 4,
365			dots: false,
366			speed: 1500,
367			arrows: true,
368			infinite: true,
369			slidesToShow: 1,
370			slidesToScroll: 1,
371            autoplay:true,
372            nextArrow: '<button type="button" class="slick-next"><i class="far fa-angle-right"></i></button>',
373            prevArrow: '<button type="button" class="slick-prev"><i class="far fa-angle-left"></i></button>',
374			responsive: [
375			{
376				breakpoint: 1024,
377				settings: {
378					slidesToShow: 1,
379					slidesToScroll: 1,
380					infinite: true,
381				}
382			},
383			{
384				breakpoint: 800,
385				settings: {
386					slidesToShow: 1,
387					slidesToScroll: 1
388				}
389			},
390			{
391				breakpoint: 799,
392				settings: {
393					slidesToShow: 1,
394					slidesToScroll: 1
395				}
396			},
397			{
398				breakpoint: 600,
399				settings: {
400					slidesToShow: 1,
401					slidesToScroll: 1
402				}
403			},
404			{
405				breakpoint: 599,
406				settings: {
407					slidesToShow: 1,
408					slidesToScroll: 1
409				}
410			},
411			{
412				breakpoint: 500,
413				settings: {
414					slidesToShow: 1,
415					slidesToScroll: 1
416				}
417			}
418			]
419		});
420	}
421
422    
423
424    function cookiesClose() {
425        var cookieBox = $(".bnq__cookie_area")
426        var acceptBtn = $(".bnq__cookie_area .bnq__cookie_btn");
427
428        var localValue = localStorage.getItem("button");
429
430        if(localValue === "true") {
431            cookieBox.css({
432                "display": "none"
433            });
434        }
435
436        acceptBtn.on("click", function(e) {
437            cookieBox.addClass("bnq__remmove_cookies_area");
438            localStorage.button = true;
439            return false;
440        })
441    }
442    
443    /*==========================================================================
444        WHEN DOCUMENT LOADING
445    ==========================================================================*/
446	$(window).on('load', function() {
447		if($(".bnq__cookie_area").length) {
448            cookiesClose();
449        }
450	});
451    /**
452     * newsletter popup
453     */
454     function newsletterPopup() {
455        var newsletter = $(".bnqu__popup_wrap");
456        var newsletterClose = $(".newsletter-close-btn");
457
458        var test = localStorage.input === 'true'? true: false;
459        $(".show-message").prop('checked', test || false);
460
461        var localValue = localStorage.getItem("input");
462
463        //console.log(localValue);
464
465        if(localValue === "true") {
466            newsletter.css({
467                "display": "none"
468            });                
469        }
470
471        newsletter.addClass("active-newsletter-popup");
472
473        newsletterClose.on("click", function(e) {
474            newsletter.removeClass("active-newsletter-popup");
475            return false;
476        })
477
478        $(".show-message").on('change', function() {
479            localStorage.input = $(this).is(':checked');
480        });
481    }
482    if($(".bnqu__popup_wrap").length) {
483
484        setTimeout(function() {
485            newsletterPopup();
486        },"4000");
487    }
488
489    /* Masonry
490    * ---------------------------------------------------- */ 
491
492    /**
493    Reading Progrees
494    */
495    
496    function readingProgressBar(){
497        if($('#pfy_reading_progress').length){
498            let processScroll = () => {
499                let docElem = document.documentElement, 
500                docBody = document.body,
501                scrollTop = docElem['scrollTop'] || docBody['scrollTop'],
502                    scrollBottom = (docElem['scrollHeight'] || docBody['scrollHeight']) - window.innerHeight,
503                scrollPercent = scrollTop / scrollBottom * 100 + '%';
504                
505                // console.log(scrollTop + ' / ' + scrollBottom + ' / ' + scrollPercent);
506                
507                document.getElementById("pfy_reading_progress").style.setProperty("--scrollAmount", scrollPercent); 
508            }
509            
510            document.addEventListener('scroll', processScroll);
511        }
512    }
513    readingProgressBar();
514
515    $(window).on("load", function () {
516        $(".benqu_preloader").fadeOut(800);
517    });
518
519    $(window).on('scroll', function() {
520		var scrolled = $(window).scrollTop();
521		if (scrolled > 300) $('.back-top-btn').addClass('active');
522		if (scrolled < 300) $('.back-top-btn').removeClass('active');
523	});
524	$('.back-top-btn').on('click', function() {
525		$('html, body').animate(
526			{
527				scrollTop: '0'
528			},
529			1200
530		);
531	});
532
533    function benquLoadMore($scope, $) {
534        var $container = $scope.find('.benqu-post-grid-loadmore');
535        if ($container.length > 0) {
536           $container.on('click',function(event){
537              event.preventDefault();
538
539              var $that = $(this);
540              var ajaxjsondata = $that.data('json_grid_meta');
541              var benqu_json_data = Object (ajaxjsondata);
542
543              var contentwrap = $scope.find('.grid-loadmore-content'), // item contentwrap
544                 postperpage = parseInt(benqu_json_data.posts_per_page), // post per page number
545                 showallposts = parseInt(benqu_json_data.total_post); // total posts count
546
547                 var items = contentwrap.find('.pfy-grid-item'),
548                 totalpostnumber = parseInt(items.length),
549                 paged =  parseInt( totalpostnumber / postperpage ) + 1; // paged number
550
551                 $.ajax({
552                    url: benqu_ajax.ajax_url,
553                    type: 'POST',
554                    data: {
555                       action: 'benqu_post_ajax_loading',
556                       ajax_json_data: ajaxjsondata,
557                       paged:paged
558                    },
559                    beforeSend: function(){
560
561                       $('<i class="fa fa-spinner fa-spin" style="margin-left:10px"></i>').appendTo( "#benqu-post-grid-loadmore" ).fadeIn(100);
562                    },
563                    complete:function(){
564                       $scope.find('.benqu-post-grid-loadmore .fa-spinner ').remove();
565                    }
566                 })
567
568                 .done(function(data) {
569
570                       var $pstitems = $(data);
571                       $scope.find('.grid-loadmore-content').append( $pstitems );
572                       var newLenght  = contentwrap.find('.pfy-grid-item').length;
573
574                       if(showallposts <= newLenght){
575                          $scope.find('.benqu-post-grid-loadmore').fadeOut(300,function(){
576                             $scope.find('.benqu-post-grid-loadmore').remove();
577                          });
578                       }
579
580                 })
581
582                 .fail(function() {
583                    $scope.find('.benqu-post-grid-loadmore').remove();
584                 });
585
586           });
587     }
588
589
590     }
591
592
593     if ($(".ajax-scroll-post").length > 0) {
594        var onScrollPagi = true;
595        var current_post = 1;
596        $(window).scroll(function () {
597
598            if (!onScrollPagi) return;
599
600            var bottomOffset = 1900; // the distance (in px) from the page bottom when you want to load more posts 
601
602            if (current_post >= benqu_ajax.post_scroll_limit) {
603                onScrollPagi = false;
604                return;
605            }
606
607            if ($(document).scrollTop() > ($(document).height() - bottomOffset) && onScrollPagi == true) {
608                let cat_ids = $('input#benqu-cat-ids').val();
609                $.ajax({
610                    url: benqu_ajax.ajax_url,
611                    data: {
612                        action: 'benqu_single_scroll_post',
613                        current_post: current_post,
614                        cat_ids
615                    },
616                    type: 'POST',
617                    dataType: 'json',
618                    beforeSend: function () {
619                        onScrollPagi = false;
620                    },
621                    success: function (resp) {
622                        if (resp.success) {
623                            $('.ajax-scroll-post').append(resp.data);
624                            current_post++;
625                            onScrollPagi = true;
626                        }
627                    }
628                });
629            }
630        });
631    }
632
633        
634        
635
636    $(window).on('elementor/frontend/init', function () {
637        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-slider.default', pfyPostSliderActive);
638        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-grid-carousel.default', pfyPostGridSliderActive);
639        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-tabs.default', pfyPostTabActive);
640        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-tabs-v2.default', pfyPostTabActive);
641        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-masonry.default', pfyAjaxLoadmoreMasonryMasonry);
642        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-list-caro.default', pfyPostListActive);
643        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-grid-carousel-v2.default', bnqPostGridSliderActive);
644        elementorFrontend.hooks.addAction('frontend/element_ready/benqu-post-ajax-loadmore-grid.default', benquLoadMore);
645    });
646})(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.