PageSourceSearch

https://www.rekoforest.org/wp-content/themes/april/js/main.js

js rekoforest.org collected 2026-10-02 11:10:15 UTC 11,906 bytes, 376 lines download raw bytes

1var isMobile = {
2    Android: function() {
3        return navigator.userAgent.match(/Android/i);
4    },
5    BlackBerry: function() {
6        return navigator.userAgent.match(/BlackBerry/i);
7    },
8    iOS: function() {
9        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
10    },
11    Opera: function() {
12        return navigator.userAgent.match(/Opera Mini/i);
13    },
14    Windows: function() {
15        return navigator.userAgent.match(/IEMobile/i);
16    },
17    any: function() {
18        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
19    }
20}
21
22function backgroundImage() {
23    var databackground = $('[data-background]');
24    databackground.each(function() {
25        if ($(this).attr('data-background')) {
26            var image_path = $(this).attr('data-background');
27            $(this).css({
28                'background': 'url(' + image_path + ')'
29            });
30        }
31    });
32}
33
34function parallax() {
35    $('.bg--parallax').each(function() {
36        var el = $(this),
37            xpos = "50%",
38            windowHeight = $(window).height();
39        if (isMobile.any()) {
40            $(this).css('background-attachment', 'scroll');
41        } else {
42            $(window).scroll(function() {
43                var current = $(window).scrollTop(),
44                    top = el.offset().top,
45                    height = el.outerHeight();
46                if (top + height < current || top > current + windowHeight) {
47                    return;
48                }
49                el.css('backgroundPosition', xpos + " " + Math.round((top - current) * 0.2) + "px");
50            });
51        }
52    });
53}
54
55function menuBtnToggle() {
56    var toggleBtn = $('.menu-toggle'),
57        menu = $('.menu'),
58        navSidebar = $('.navigation--sidebar'),
59        closeBtn = $('.navigation--sidebar .navigation__close');
60    toggleBtn.on('click', function(e) {
61        e.preventDefault();
62        var self = $(this);
63        navSidebar.addClass('active');
64        $('body').css('overflow-y', 'hidden');
65    });
66    closeBtn.on('click', function(e) {
67        e.preventDefault();
68        navSidebar.removeClass('active');
69        $('body').css('overflow-y', 'auto');
70    });
71}
72
73function subMenuToggle() {
74    $('body').on('click', '.menu--mobile .menu-item-has-children > a', function(event) {
75        event.preventDefault();
76        var current = $(this).parent('.menu-item-has-children');
77        current.children('.sub-menu').slideToggle(350);
78        current.siblings().find('.sub-menu').slideUp(350);
79    });
80}
81
82function resizeHeader() {
83    var header = $('.header'),
84        checkPoint = 767,
85        menu = $('.header .menu'),
86        windowWidth = $(window).innerWidth();
87    // mobile
88    if (checkPoint > windowWidth) {
89        menu.addClass('menu-append').prependTo('.navigation--sidebar .navigation__content');
90        header.find('.menu').addClass('menu--mobile');
91    } else {
92        $('.menu').find('.sub-menu').show();
93        $('.menu-append').appendTo('.header .navigation').removeClass('menu-append');
94        header.find('.menu').removeClass('menu--mobile active');
95        $('.menu-toggle').removeClass('active');
96    }
97}
98
99function owlCarousel() {
100    var element = $('.owl-slider');
101    if (element.length > 0) {
102        element.each(function() {
103            var el = $(this),
104                dataAuto = el.data('owl-auto'),
105                dataLoop = el.data('owl-loop'),
106                dataSpeed = el.data('owl-speed'),
107                dataGap = el.data('owl-gap'),
108                dataNav = el.data('owl-nav'),
109                dataDots = el.data('owl-dots'),
110                dataAnimateIn = (el.data('owl-animate-in')) ? el.data('owl-animate-in') : '',
111                dataAnimateOut = (el.data('owl-animate-out')) ? el.data('owl-animate-out') : '',
112                dataDefaultItem = el.data('owl-item'),
113                dataItemXS = el.data('owl-item-xs'),
114                dataItemSM = el.data('owl-item-sm'),
115                dataItemMD = el.data('owl-item-md'),
116                dataItemLG = el.data('owl-item-lg'),
117                dataNavLeft = (el.data('owl-nav-left')) ? el.data('owl-nav-left') : "<i class='fa fa-angle-left'></i>",
118                dataNavRight = (el.data('owl-nav-right')) ? el.data('owl-nav-right') : "<i class='fa fa-angle-right'></i>",
119                duration = el.data('owl-duration'),
120                datamouseDrag = (el.data('owl-mousedrag') == 'on') ? true : false;
121
122            if (el.children('div').length > 1) {
123                el.owlCarousel({
124                    animateIn: dataAnimateIn,
125                    animateOut: dataAnimateOut,
126                    margin: dataGap,
127                    autoplay: dataAuto,
128                    autoplayTimeout: dataSpeed,
129                    autoplayHoverPause: true,
130                    loop: dataLoop,
131                    nav: dataNav,
132                    mouseDrag: datamouseDrag,
133                    touchDrag: true,
134                    autoplaySpeed: duration,
135                    navSpeed: duration,
136                    dotsSpeed: duration,
137                    dragEndSpeed: duration,
138                    navText: [dataNavLeft, dataNavRight],
139                    dots: dataDots,
140                    items: dataDefaultItem,
141                    responsive: {
142                        0: {
143                            items: dataItemXS
144                        },
145                        480: {
146                            items: dataItemSM
147                        },
148                        768: {
149                            items: dataItemMD
150                        },
151                        992: {
152                            items: dataItemLG
153                        },
154                        1200: {
155                            items: dataDefaultItem
156                        }
157                    }
158                });
159            }
160        });
161    }
162}
163
164function masonry($var) {
165    var masonryTrigger = $($var);
166    if (masonryTrigger.length > 0) {
167        if (masonryTrigger.hasClass('filter')) {
168            masonryTrigger.imagesLoaded(function() {
169                masonryTrigger.isotope({
170                    columnWidth: '.grid-sizer',
171                    itemSelector: '.grid-item'
172                });
173            });
174            var filters = masonryTrigger.closest('.masonry-root').find('.ps-masonry__filter > li > a'),
175            currentFilter = $('.ps-masonry__filter > .current a').attr('data-filter');
176            masonryTrigger.isotope({
177                itemSelector: '.grid-item',
178                isotope: {
179                    columnWidth: '.grid-sizer'
180                },
181                filter: currentFilter
182            });
183            filters.on('click', function() {
184                var selector = $(this).attr('data-filter');
185                filters.find('a').removeClass('current');
186                $(this).parent('li').addClass('current');
187                $(this).parent('li').siblings('li').removeClass('current');
188                console.log('abac');
189                masonryTrigger.isotope({
190                    itemSelector: '.grid-item',
191                    isotope: {
192                        columnWidth: '.grid-sizer'
193                    },
194                    filter: selector
195                });
196
197
198                return false;
199            });
200
201        }
202        else {
203            masonryTrigger.imagesLoaded(function() {
204                masonryTrigger.masonry({
205                    columnWidth: '.grid-sizer',
206                    itemSelector: '.grid-item'
207                });
208            });
209        }
210
211    }
212    
213
214}
215
216function setScrollbar() {
217    $('.navigation__content, .ps-slide .content').slimScroll({
218        height: '100%',
219        size: '5px',
220        wheelStep: 30,
221    })
222}
223
224function smothScroll() {
225    $('a[data-scroll]').click(function() {
226        var target = $(this.hash);
227        if (target.length == 0) target = $('a[name="' + this.hash.substr(1) + '"]');
228        if (target.length == 0) target = $('html');
229        $('html, body').animate({scrollTop: target.offset().top - 100}, 500);
230        return false;
231    });
232}
233
234function snapshotClick() {
235    $('.ps-block--mapping > a').on('click', function(e) {
236        e.preventDefault();
237        var target = $(this).attr('href');
238        console.log(target);
239        $(target).siblings('.ps-slide').removeClass('active')
240        $(target).addClass('active');
241    });
242    $('.ps-slide__close').on('click', function(e) {
243        e.preventDefault();
244        $(this).closest('.ps-slide').removeClass('active');
245    })
246}
247
248function search() {
249    var searchOpen = $('.ps-search-btn'),
250        searchClose = $('.ps-search__close'),
251        searchbox = $('.ps-search');
252    searchOpen.on('click', function(e) {
253        e.preventDefault();
254        searchbox.addClass('open');
255    });
256    searchClose.on('click', function(e) {
257        e.preventDefault();
258        searchbox.removeClass('open');
259    });
260}
261
262function popupMedia() {
263    $('.ps-video').lightGallery({
264        selector: '.video'
265    });
266}
267
268function almisotope() {
269    $('.alm-reveal').isotope({
270      itemSelector: '.grid-item',
271      layoutMode: 'fitRows'
272    });
273}
274
275function backToTop() {
276   var scrollPos = 0;
277   var element = $('#back2top');
278   $(window).scroll(function() {
279       var scrollCur = $(window).scrollTop();
280       if (scrollCur > scrollPos) {
281           // scroll down
282           if (scrollCur > 500) {
283               element.addClass('active');
284           } else {
285               element.removeClass('active');
286           }
287       } else {
288           // scroll up
289           element.removeClass('active');
290       }
291
292       scrollPos = scrollCur;
293   });
294
295   element.on('click', function() {
296       $('html, body').animate({
297           scrollTop: '0px'
298       }, 800);
299   });
300}
301
302function stickyHeader() {
303    var header = $('.header'),
304        checkpoint = 150;
305    $(window).scroll(function(event) {
306        var currentPosition = $(this).scrollTop();
307        if (currentPosition > checkpoint) {
308            header.addClass('sticky');
309        }
310        else {
311            header.removeClass('sticky');
312        }
313    });
314}
315$(document).ready(function() {
316    backgroundImage();
317    menuBtnToggle();
318    subMenuToggle();
319    owlCarousel();
320    masonry('.ps-masonry'); // Irish: I add class for masonry call as it conflicts with the aja
320x load more masonry. Ref Line 164
321    setScrollbar();
322    smothScroll();
323    snapshotClick();
324    search();
325    popupMedia();
326    backToTop();
327    stickyHeader();
328    // var n = $(".masonry-root .alm-masonry .grid-item").length;
329    // $(".masonry-root .alm-btn-wrap").html(n);
330    // if(n == 0){
331    //     $(".masonry-root .alm-btn-wrap").hide();
332    // }
333    // else{
334    //     $(".masonry-root .alm-btn-wrap").show();
335    // }
336});
337
338$(window).on('load resize', function() {
339    resizeHeader();
340    
341});
342
343$(window).on('load', function() {
344});
345
346
347
348
349(function ($) {
350    
351    var alm_is_animating = false; // Animating flag
352    $('.alm-filter-nav li').eq(0).addClass('active'); // Set initial active state
353   
354   // Btn Click Event
355   $('.alm-filter-nav li a').on('click', function(e){    
356      e.preventDefault();  
357      var el = $(this); // Our selected element     
358      
359      if(!el.hasClass('active') && !alm_is_animating){ // Check for active and !alm_is_animating  
360         alm_is_animating = true;   
361         el.parent().addClass('active').siblings('li').removeClass('active'); // Add active state
362         
363         var data = el.data(), // Get data values from selected menu item
364             transition = 'fade', // 'slide' | 'fade' | null
365             speed = '300'; //in milliseconds
366             
367         $.fn.almFilter(transition, speed, data); // Run the filter     
368      }      
369   });
370   
371   $.fn.almFilterComplete = function(){      
372      alm_is_animating = false; // clear animating flag
373   };
374
375})(jQuery);
376

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.