PageSourceSearch

https://www.presseplus.de/blog/wp-content/themes/raveen/assets/js/main.js?ver=7.1.2

js presseplus.de collected 2026-10-02 21:04:45 UTC 19,625 bytes, 594 lines download raw bytes

1(function($){
2
3    'use strict';
4
5
6    function isScrolledIntoViewport(elem) {
7        var docViewTop = $(window).scrollTop();
8        var docViewBottom = docViewTop + $(window).height();
9
10        var elemTop = $(elem).offset().top;
11        var elemBottom = elemTop + $(elem).height();
12
13        return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
14    }
15
16    // Site Preload & Fix transitions on load
17    $(window).on('load', function() {
18        $("body").addClass("site-loaded");
19    });
20
21
22    // Smooth Scroll
23    if( typeof SmoothScroll == 'function' && $('body').hasClass('rivax-smooth-scroll') ) {
24        SmoothScroll({ keyboardSupport: false });
25    }
26
27
28    // Post Reading Progress Indicator
29    if($('.post-reading-progress-indicator').length) {
30        $(window).on('scroll', function () {
31            let docHeight = $("body").height();
32            let winHeight = $(window).height();
33            let viewport = docHeight - winHeight;
34            let scrollPos = $(window).scrollTop();
35            let scrollPercent = (scrollPos / viewport) * 100;
36            $(".post-reading-progress-indicator span").css("width", scrollPercent + "%");
37
38        });
39    }
40
41
42    // Offcanvas
43    $('.offcanvas-container').on('click', function (e) {
44        e.stopPropagation();
45    });
46    $('body').on('click', '.offcanvas-opener', function (e) {
47        e.stopPropagation();
48        $(this).closest('.rivax-offcanvas').find('.offcanvas-wrapper').addClass('open');
49    });
50
51    $('body, .offcanvas-closer').on('click', function (e) {
52        $('.offcanvas-wrapper').removeClass('open');
53    });
54
55    // Popup Search
56    $('body').on('click', '.popup-search-opener', function (e) {
57        e.stopPropagation();
58        $(this).closest('.popup-search-wrapper').find('.popup-search').addClass('open');
59    });
60
61    $('.popup-search-container').on('click', function (e) {
62        e.stopPropagation();
63    });
64
65    $('body, .popup-search-closer').on('click', function (e) {
66        $('.popup-search').removeClass('open');
67    });
68
69
70
71    // Sticky offcanvas
72    $(window).on('scroll', function () {
73
74        if ( $('#site-sticky-offcanvas').length == 0 ) {
75            return;
76        }
77
78        var stickyPos = $('#site-header').outerHeight() + 100;
79        var scroll = $(window).scrollTop();
80
81        if( scroll > stickyPos ) {
82            $('#site-sticky-offcanvas').addClass('show');
83        }
84        else {
85            $('#site-sticky-offcanvas').removeClass('show');
86        }
87    });
88
89
90	// Header Nav prevent # jump
91	$('.rivax-header-nav li > a[href="#"]').on('click', function (e) {
92        e.preventDefault();
93    });
94
95
96    // Header Vertical Nav
97    $('.rivax-header-v-nav li.menu-item-has-children > a').on('click', function (e) {
98        e.preventDefault();
99        $(this).siblings('.sub-menu').slideToggle();
100    });
101
102
103
104
105    // Header Mega Menu
106    $('.rivax-header-nav .sub-menu.mega-menu-content').css('display', 'block');
107    $('.rivax-header-nav li.rivax-mega-menu-4-col > .sub-menu').css('display', 'flex');
108    $('body').on('mouseenter', '.rivax-header-nav li.rivax-mega-menu-item, .rivax-header-nav li.rivax-mega-menu-4-col', function() {
109
110        var con = $(this).closest('div[data-elementor-type="wp-post"] > .e-con, div[data-elementor-type="wp-page"] > .e-con');
111
112
113        // $('body').hasClass('elementor-editor-active')
114        if(con.length == 0) {
115            con = $(this).closest('div[data-elementor-type="wp-post"] .elementor-section-wrap > .e-con, div[data-elementor-type="wp-page"] .elementor-section-wrap > .e-con');
116        }
117
118
119        if(con.length == 0) {
120            return;
121        }
122
123        if( con.hasClass('e-con-boxed') ) {
124            con = con.children('.e-con-inner');
125        }
126
127        var megaMenuWidth = con.width();
128
129        var subMenu = $(this).children('.sub-menu');
130        subMenu.css('width', megaMenuWidth);
131
132        var menuPos = $(this).closest('.rivax-header-nav').offset().left;
133        var paddingLeft = ( con.innerWidth() - con.width() ) / 2;
134        var elementorContainerPos = con.offset().left + paddingLeft;
135
136        if( $('body').hasClass('rtl') ) {
137            var menuRightPos = menuPos + $(this).closest('.rivax-header-nav').width();
138            var elementorContainerRightPos = elementorContainerPos + megaMenuWidth;
139
140            subMenu.css('right', parseInt(menuRightPos - elementorContainerRightPos));
141
142        }
143        else {
144            subMenu.css('left', parseInt(elementorContainerPos - menuPos));
145        }
146
147
148    });
149
150
151
152
153    // Back to Top Button
154    $(window).on('scroll', function (e) {
155
156        var showPos = $('#site-header').outerHeight() + 200;
157        var scroll = $(window).scrollTop();
158
159        if( scroll > showPos ) {
160            $('#back-to-top').addClass('show');
161        }
162        else {
163            $('#back-to-top').removeClass('show');
164        }
165
166    });
167
168    $('#back-to-top').on('click', function(e) {
169        $('body,html').animate({scrollTop:0},800);
170    });
171
172
173    // Dark Mode (Fix page cache plugins)
174    if ( navigator.cookieEnabled && $('.dark-mode-switcher').length ) {
175        let cookies = document.cookie;
176        if( cookies.search('raveenDarkMode=enabled') != -1 ) {
177            $("body").addClass("dark-mode");
178        }
179        else if( cookies.search('raveenDarkMode=disabled') != -1 ) {
180            $("body").removeClass("dark-mode");
181        }
182    }
183
184    // Dark Mode Switcher
185    $('.dark-mode-switcher').on('click', function(e) {
186
187        if( $('body').hasClass('dark-mode') ) {
188
189            $('body').removeClass('dark-mode');
190
191            if (navigator.cookieEnabled) {
192                let date = new Date()
193                date.setTime(date.getTime() + (30*24*60*60*1000));
194                document.cookie = 'raveenDarkMode=disabled; path=/; expires=' + date.toUTCString() + ';';
195            }
196        }
197        else {
198            $('body').addClass('dark-mode');
199
200            if (navigator.cookieEnabled) {
201                let date = new Date()
202                date.setTime(date.getTime() + (30*24*60*60*1000));
203                document.cookie = 'raveenDarkMode=enabled; path=/; expires=' + date.toUTCString() + ';';
204            }
205        }
206
207    });
208
209
210
211    // Privacy Notice
212    if( localStorage.getItem("raveenPrivacy") != "1" ) {
213        $('.privacy-notice-wrap').addClass('show');
214    }
215    else {
216        $('.privacy-notice-wrap').addClass('d-none');
217    }
218
219    $('#privacy-btn').on('click', function(e) {
220        e.preventDefault();
221        localStorage.setItem("raveenPrivacy", "1");
222        $('.privacy-notice-wrap').removeClass('show');
223    });
224
225
226	// Table Of Content
227    $('body').on('click', '.toc-header-collapse', function(){
228        $(this).closest('.rivax-toc-wrap').find('.rivax-toc-items').slideToggle();
229    });
230
231    $('body').on('click', '.rivax-toc-anchor', function(e){
232
233        var id = $(this).attr('href');
234
235        if( id.substr(0,1) === '#' ) {
236            e.preventDefault();
237            var section = $(this).closest('.single-post-wrapper').find(id);
238            var scrollPos = section.offset().top - 10;
239            if($('#site-sticky-header').length) {
240                scrollPos -= $('#site-sticky-header').outerHeight();
241            }
242
243            $('body,html').animate({scrollTop:scrollPos },800);
244        }
245    });
246
247
248	// Autoload next post in single post
249    $(window).on('scroll', function () {
250
251        if($( "#autoload-next-post-loader:not(.loading)" ).length) {
252
253            if( isScrolledIntoViewport("#autoload-next-post-loader") ) {
254
255                var data = {
256                    action: 'rivax_autoload_next_post',
257                    postsLoaded: $( "#autoload-next-post-loader" ).data('loaded'),
258                    nextID: $( "#autoload-next-post-loader" ).data('next'),
259                };
260                $.post({
261                    url: rivax_ajax_object.AjaxUrl,
262                    data: data,
263                    dataType: 'json',
264                    beforeSend: function() {
265                        $("#autoload-next-post-loader").addClass('loading');
266                        $("#autoload-next-post-loader .rivax-post-load-more-loader").addClass('show');
267                    },
268                    success: function(response) {
269                        if( response.success === false ) {
270                            $("#autoload-next-post-loader").remove();
271                        }
272                        else {
273
274                            if( response.data.content ) {
275                                $(".main-wrapper").append(response.data.content);
276                            }
277
278                            if( response.data.nextID == 0 ) {
279                                $("#autoload-next-post-loader").remove();
280                            }
281                            else {
282                                $( "#autoload-next-post-loader" ).data('loaded', response.data.loaded).data('next', response.data.nextID);
283                            }
284                        }
285
286                    },
287                    error: function() {
288                        $("#autoload-next-post-loader").remove();
289                    },
290                    complete: function() {
291                        $("#autoload-next-post-loader").removeClass('loading');
292                        $("#autoload-next-post-loader .rivax-post-load-more-loader").removeClass('show');
293                    }
294                });
295
296            }
297        }
298
299
300        // Update some details
301        if($( ".single-post-wrapper" ).length >= 2) {
302
303            $( ".single-post-wrapper" ).each(function( index ) {
304                var scroll = $(window).scrollTop();
305                var article = $(this);
306                var articleTopPos = article.offset().top;
307                var articleBottomPos = articleTopPos + article.outerHeight(true);
308                var articleInfo = article.find('.autoload-next-post-info');
309
310                if ( scroll > (articleTopPos - 120) && scroll < (articleBottomPos + 20) && (location.href !== articleInfo.data('url')) ) {
311                    document.title = articleInfo.data('title');
312                    history.replaceState(null, null, articleInfo.data('url'));
313                    $('.current-post-title .title-text').text(articleInfo.data('title'));
314                }
315
316            });
317        }
318
319    });
320
321
322
323    // Infinite Scroll Load More
324    $(window).on('scroll', function () {
325
326        $( ".rivax-post-load-more.infinite-scroll" ).each(function( index ) {
327
328            if( isScrolledIntoViewport($(this)) ) {
329                $(this).trigger("click");
330            }
331
332        });
333
334    });
335
336
337    // Load more posts ajax
338    $('.rivax-post-load-more').on('click', function (e) {
339        e.preventDefault();
340        if($(this).hasClass('hide')) return;
341
342        var loadMoreBtn = $(this);
343        var loadMoreLoader = loadMoreBtn.next('.rivax-post-load-more-loader');
344        var scope = loadMoreBtn.closest('.rivax-posts-container').find('.rivax-posts-wrapper');
345
346        var widgetId = $(this).data('widget-id');
347        var postId = $(this).data('post-id');
348        var pageNumber = $(this).data('current-page') + 1;
349
350
351
352        var data = {
353            action: 'rivax_get_load_more_posts',
354            widgetId: widgetId,
355            postId: postId,
356            pageNumber: pageNumber,
357            qVars: (typeof rivaxLoadMoreQVars !== 'undefined')? rivaxLoadMoreQVars : '',
358        };
359        $.post({
360            url: rivax_ajax_object.AjaxUrl,
361            data: data,
362            dataType: 'json',
363            beforeSend: function() {
364                loadMoreBtn.addClass('hide');
365                loadMoreLoader.addClass('show');
366            },
367            success: function(response) {
368                if(response.data) {
369                    var items = $(response.data);
370
371                    scope.append(items);
372                    if( scope.hasClass('layout-masonry') ) {
373                        scope.masonry( 'appended', items );
374                    }
375                }
376
377
378                if(response.no_more) {
379                    loadMoreLoader.remove();
380                    loadMoreBtn.remove();
381                }
382                else {
383                    loadMoreBtn.data('current-page', pageNumber);
384                }
385            },
386            error: function() {
387
388            },
389            complete: function() {
390                loadMoreBtn.removeClass('hide');
391                loadMoreLoader.removeClass('show');
392            }
393        });
394
395
396    });
397
398
399	// Contact Form
400    $('.rivax-contact-form').on('submit', function (e) {
401        e.preventDefault();
402        var form = $(this);
403        var submitBtn = form.find('.submit-btn');
404        var msgWrapper = form.parent('.rivax-contact-form-wrapper').find('.msg-wrapper');
405
406        if(submitBtn.hasClass('loading')) {
407            return;
408        }
409
410        var data = {
411            action: 'rivax_submit_contact_form',
412            firstName: form.find('#first-name').val(),
413            lastName: form.find('#last-name').val(),
414            email: form.find('#email').val(),
415            subject: form.find('#subject').val(),
416            message: form.find('#message').val(),
417        };
418
419        $.post({
420            url: rivax_ajax_object.AjaxUrl,
421            data: data,
422            dataType: 'json',
423            beforeSend: function() {
424                submitBtn.addClass('loading');
425            },
426            success: function(response) {
427                if(response.msg == 'fill') {
428                    msgWrapper.removeClass('success').addClass('error');
429                    msgWrapper.children('.msg').text( msgWrapper.children('.msg').data('fill') );
430                }
431                else if(response.msg == 'error') {
432                    msgWrapper.removeClass('success').addClass('error');
433                    msgWrapper.children('.msg').text( msgWrapper.children('.msg').data('error') );
434                }
435                else if(response.msg == 'success') {
436                    msgWrapper.removeClass('error').addClass('success');
437                    msgWrapper.children('.msg').text( msgWrapper.children('.msg').data('success') );
438                    form.trigger("reset");
439                }
440
441            },
442            error: function() {
443                msgWrapper.removeClass('success').addClass('error');
444                msgWrapper.children('.msg').text( msgWrapper.children('.msg').data('error') );
445            },
446            complete: function() {
447                submitBtn.removeClass('loading');
448            }
449        });
450
451    });
452	
453	
454	// Social Icon Widget
455	$('.rivax-social-icons a[href=""], .rivax-social-icons a[href="#"]').on('click', function(e) {
456		e.preventDefault();
457	});
458	
459	
460
461    var rivaxWidgetsHandler = function( $scope, $ ) {
462
463        // Post Masonry Layout
464        var masonryPosts = $scope.find('.rivax-posts-wrapper.layout-masonry');
465        if ( masonryPosts.length ){
466            masonryPosts.masonry({
467                itemSelector: '.post-item',
468                percentPosition: true,
469            });
470        }
471
472
473        // Post Carousel Layout
474        var carouselPosts = $scope.find('.rivax-posts-wrapper.layout-carousel .rivax-posts-carousel-wrapper');
475        if ( carouselPosts.length ){
476            var carouselSettings = carouselPosts.data('settings');
477            var carouselContainer = carouselPosts.find('.swiper-container');
478
479
480            if ( 'undefined' === typeof Swiper ) {
481                const asyncSwiper = elementorFrontend.utils.swiper;
482
483                new asyncSwiper( carouselContainer, carouselSettings ).then( ( newSwiperInstance ) => {
484                    var swiper = newSwiperInstance;
485                } );
486            } else {
487                var swiper = new Swiper(carouselContainer, carouselSettings);
488            }
489
490        }
491
492
493
494        // Single Post Gallery Hero
495        if ( $('.single-hero-gallery-container').length ){
496
497            var gallerySettings = {
498                slidesPerView: 1,
499                slidesPerGroup: 1,
500                centeredSlides: true,
501                //loop: true,
502                autoplay: true,
503                spaceBetween: 30,
504                a11y: {
505                    enabled: false,
506                },
507                navigation: {
508                    nextEl: ".single-hero-gallery-container .swiper-button-next",
509                    prevEl: ".single-hero-gallery-container .swiper-button-prev",
510                },
511                breakpoints: {
512                    576: {
513                        slidesPerView: 2,
514                    },
515                    992: {
516                        slidesPerView: 2,
517                    }
518                }
519            };
520
521            var carouselContainer = $('.single-hero-gallery-container .swiper-container');
522
523            if ( 'undefined' === typeof Swiper ) {
524                const asyncSwiper = elementorFrontend.utils.swiper;
525
526                new asyncSwiper( carouselContainer, gallerySettings ).then( ( newSwiperInstance ) => {
527                    var swiper = newSwiperInstance;
528                } );
529            } else {
530                var swiper = new Swiper(carouselContainer, gallerySettings);
531            }
532
533        }
534
535
536
537        // Mailchimp
538        if( $scope.find('.rivax-mailchimp-wrapper').length ) {
539
540            var elForm = $scope.find('.rivax-mailchimp-form'),
541                elMessage = $scope.find('.rivax-mailchimp-response-message');
542
543            elForm.on('submit', function (e) {
544                e.preventDefault();
545                var data = {
546                    action: 'rivax_mailchimp_subscribe',
547                    subscriber_info: elForm.serialize(),
548                    list_id: elForm.data('list-id'),
549                };
550                $.ajax({
551                    type: 'post',
552                    url: rivax_ajax_object.AjaxUrl,
553                    data: data,
554                    success: function success(response) {
555                        elForm.trigger('reset');
556
557                        if (response.status) {
558                            elMessage.removeClass('error');
559                            elMessage.addClass('success');
560                            elMessage.text(response.msg);
561                        } else {
562                            elMessage.addClass('error');
563                            elMessage.removeClass('success');
564                            elMessage.text(response.msg);
565                        }
566
567                        var hideMsg = setTimeout(function () {
568                            elMessage.removeClass('error');
569                            elMessage.removeClass('success');
570                            clearTimeout(hideMsg);
571                        }, 5000);
572                    },
573                    error: function error() {
574
575                    }
576                });
577            });
578
579        }
580
581
582    }
583
584
585
586    // Elementor Widgets
587    $( window ).on( 'elementor/frontend/init', function () {
588
589        elementorFrontend.hooks.addAction( 'frontend/element_ready/widget', rivaxWidgetsHandler );
590
591    });
592
593
594})( 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.