PageSourceSearch

https://nciomaha.com/wp-content/plugins/ruffer-core/assets/js/ruffer-frontend.js?ver=7.1.2

js nciomaha.com collected 2026-10-04 01:13:22 UTC 17,474 bytes, 495 lines download raw bytes

1;(function($) {
2    'use strict';
3    $(window).on( 'elementor/frontend/init', function() {
4        
5
6    var GlobalJSLoad = function() {
7
8        /*----------- 07. Global Slider ----------*/
9    $(".th-carousel").each(function () {
10        var themeSlide = $(this);
11
12        // Collect Data
13        function d(data) {
14            return themeSlide.data(data);
15        }
16
17        // Custom Arrow Button
18        var prevButton =
19                '<button type="button" class="slick-prev"><i class="' +
20                d("prev-arrow") +
21                '"></i></button>',
22            nextButton =
23                '<button type="button" class="slick-next"><i class="' +
24                d("next-arrow") +
25                '"></i></button>';
26
27        // Function For Custom Arrow Btn
28        $("[data-slick-next]").each(function () {
29            $(this).on("click", function (e) {
30                e.preventDefault();
31                $($(this).data("slick-next")).slick("slickNext");
32            });
33        });
34
35        $("[data-slick-prev]").each(function () {
36            $(this).on("click", function (e) {
37                e.preventDefault();
38                $($(this).data("slick-prev")).slick("slickPrev");
39            });
40        });
41
42        // Check for arrow wrapper
43        if (d("arrows") == true) {
44            if (!themeSlide.closest(".arrow-wrap").length) {
45                themeSlide.closest(".container").parent().addClass("arrow-wrap");
46            }
47        }
48
49        themeSlide.not('.slick-initialized').slick({
50            dots: d("dots") ? true : false,
51            fade: d("fade") ? true : false,
52            arrows: d("arrows") ? true : false,
53            speed: d("speed") ? d("speed") : 1000,
54            asNavFor: d("asnavfor") ? d("asnavfor") : false,
55            autoplay: d("autoplay") == false ? false : true,
56            infinite: d("infinite") == false ? false : true,
57            slidesToShow: d("slide-show") ? d("slide-show") : 1,
58            adaptiveHeight: d("adaptive-height") ? true : false,
59            centerMode: d("center-mode") ? true : false,
60            autoplaySpeed: d("autoplay-speed") ? d("autoplay-speed") : 8000,
61            centerPadding: d("center-padding") ? d("center-padding") : "0",
62            focusOnSelect: d("focuson-select") == false ? false : true,
63            pauseOnFocus: d("pauseon-focus") ? true : false,
64            pauseOnHover: d("pauseon-hover") ? true : false,
65            variableWidth: d("variable-width") ? true : false,
66            vertical: d("vertical") ? true : false,
67            verticalSwiping: d("vertical") ? true : false,
68            swipeToSlide: (d('swipetoslide') ? true : false),
69            prevArrow: d("prev-arrow")
70                ? prevButton
71                : '<button type="button" class="slick-prev"><i class="far fa-arrow-left"></i></button>',
72            nextArrow: d("next-arrow")
73                ? nextButton
74                : '<button type="button" class="slick-next"><i class="far fa-arrow-right"></i></button>',
75            rtl: $("html").attr("dir") == "rtl" ? true : false,
76            responsive: [
77                {
78                    breakpoint: 1600,
79                    settings: {
80                        arrows: d("xl-arrows") ? true : false,
81                        dots: d("xl-dots") ? true : false,
82                        slidesToShow: d("xl-slide-show")
83                            ? d("xl-slide-show")
84                            : d("slide-show"),
85                        centerMode: d("xl-center-mode") ? true : false,
86                        centerPadding: "0",
87                    },
88                },
89                {
90                    breakpoint: 1400,
91                    settings: {
92                        arrows: d("ml-arrows") ? true : false,
93                        dots: d("ml-dots") ? true : false,
94                        slidesToShow: d("ml-slide-show")
95                            ? d("ml-slide-show")
96                            : d("slide-show"),
97                        centerMode: d("ml-center-mode") ? true : false,
98                        centerPadding: 0,
99                    },
100                },
101                {
102                    breakpoint: 1200,
103                    settings: {
104                        arrows: d("lg-arrows") ? true : false,
105                        dots: d("lg-dots") ? true : false,
106                        slidesToShow: d("lg-slide-show")
107                            ? d("lg-slide-show")
108                            : d("slide-show"),
109                        centerMode: d("lg-center-mode")
110                            ? d("lg-center-mode")
111                            : false,
112                        centerPadding: 0,
113                    },
114                },
115                {
116                    breakpoint: 992,
117                    settings: {
118                        arrows: d("md-arrows") ? true : false,
119                        dots: d("md-dots") ? true : false,
120                        slidesToShow: d("md-slide-show")
121                            ? d("md-slide-show")
122                            : 1,
123                        centerMode: d("md-center-mode")
124                            ? d("md-center-mode")
125                            : false,
126                        centerPadding: 0,
127                    },
128                },
129                {
130                    breakpoint: 768,
131                    settings: {
132                        arrows: d("sm-arrows") ? true : false,
133                        dots: d("sm-dots") ? true : false,
134                        slidesToShow: d("sm-slide-show")
135                            ? d("sm-slide-show")
136                            : 1,
137                        centerMode: d("sm-center-mode")
138                            ? d("sm-center-mode")
139                            : false,
140                        centerPadding: 0,
141                    },
142                },
143                {
144                    breakpoint: 576,
145                    settings: {
146                        arrows: d("xs-arrows") ? true : false,
147                        dots: d("xs-dots") ? true : false,
148                        slidesToShow: d("xs-slide-show")
149                            ? d("xs-slide-show")
150                            : 1,
151                        centerMode: d("xs-center-mode")
152                            ? d("xs-center-mode")
153                            : false,
154                        centerPadding: 0,
155                    },
156                },
157                // You can unslick at a given breakpoint now by adding:
158                // settings: "unslick"
159                // instead of a settings object
160            ],
161        });
162    });
163
164    $.fn.thTab = function (options) {
165        var opt = $.extend(
166            {
167                sliderTab: false,
168                tabButton: "button",
169            },
170            options
171        );
172
173        $(this).each(function () {
174            var $menu = $(this);
175            var $button = $menu.find(opt.tabButton);
176
177            // Append indicator
178            $menu.append('<span class="indicator"></span>');
179            var $line = $menu.find(".indicator");
180
181            // On Click Button Class Remove and indecator postion set
182            $button.on("click", function (e) {
183                e.preventDefault();
184                var cBtn = $(this);
185                cBtn.addClass("active").siblings().removeClass("active");
186                if (opt.sliderTab) {
187                    $(slider).slick("slickGoTo", cBtn.data("slide-go-to"));
188                } else {
189                    linePos();
190                }
191            });
192
193            // Work With slider
194            if (opt.sliderTab) {
195                var slider = $menu.data("asnavfor"); // select slider
196
197                // Select All button and set attribute
198                var i = 0;
199                $button.each(function () {
200                    var slideBtn = $(this);
201                    slideBtn.attr("data-slide-go-to", i);
202                    i++;
203
204                    // Active Slide On load > Actived Button
205                    if (slideBtn.hasClass("active")) {
206                        $(slider).slick(
207                            "slickGoTo",
208                            slideBtn.data("slide-go-to")
209                        );
210                    }
211
212                    // Change Indicator On slide Change
213                    $(slider).on(
214                        "beforeChange",
215                        function (event, slick, currentSlide, nextSlide) {
216                            $menu
217                                .find(
218                                    opt.tabButton +
219                                        '[data-slide-go-to="' +
220                                        nextSlide +
221                                        '"]'
222                                )
223                                .addClass("active")
224                                .siblings()
225                                .removeClass("active");
226                            linePos();
227                        }
228                    );
229                });
230            }
231
232            // Indicator Position
233            function linePos() {
234                var $btnActive = $menu.find(opt.tabButton + ".active"),
235                    $height = $btnActive.css("height"),
236                    $width = $btnActive.css("width"),
237                    $top = $btnActive.position().top + "px",
238                    $left = $btnActive.position().left + "px";
239
240                $line.get(0).style.setProperty("--height-set", $height);
241                $line.get(0).style.setProperty("--width-set", $width);
242                $line.get(0).style.setProperty("--pos-y", $top);
243                $line.get(0).style.setProperty("--pos-x", $left);
244
245                if (
246                    $($button).first().position().left ==
247                    $btnActive.position().left
248                ) {
249                    $line
250                        .addClass("start")
251                        .removeClass("center")
252                        .removeClass("end");
253                } else if (
254                    $($button).last().position().left ==
255                    $btnActive.position().left
256                ) {
257                    $line
258                        .addClass("end")
259                        .removeClass("center")
260                        .removeClass("start");
261                } else {
262                    $line
263                        .addClass("center")
264                        .removeClass("start")
265                        .removeClass("end");
266                }
267            }
268            linePos();
269        });
270    };
271
272    if ($(".hero-slider-indicator").length) {
273        $(".hero-slider-indicator").thTab({
274            sliderTab: true,
275            tabButton: ".indicator-btn",
276        });
277    }
278
279    if ($(".testi-thumb6-indicator").length) {
280        $(".testi-thumb6-indicator").thTab({
281            sliderTab: true,
282            tabButton: ".testi-indicator-btn",
283        });
284    }
285
286    if ($("[data-bg-src]").length > 0) {
287        $("[data-bg-src]").each(function () {
288            var src = $(this).attr("data-bg-src");
289            $(this).css("background-image", "url(" + src + ")");
290            $(this).removeAttr("data-bg-src").addClass("background-image");
291        });
292    }
293
294    if ($('[data-bg-color]').length > 0) {
295        $('[data-bg-color]').each(function () {
296          var color = $(this).attr('data-bg-color');
297          $(this).css('background-color', color);
298          $(this).removeAttr('data-bg-color');
299        });
300    };
301      
302    if ($('[data-mask-src]').length > 0) {
303        $('[data-mask-src]').each(function () {
304          var mask = $(this).attr('data-mask-src');
305          $(this).css({
306            'mask-image': 'url(' + mask + ')',
307            '-webkit-mask-image': 'url(' + mask + ')'
308          });
309          $(this).addClass('bg-mask');
310          $(this).removeAttr('data-mask-src');
311        });
312    };
313
314    
315    /*----------- 08. Custom Animaiton For Slider ----------*/
316    $('[data-ani-duration]').each(function () {
317        var durationTime = $(this).data('ani-duration');
318        $(this).css('animation-duration', durationTime);
319    });
320    
321    $('[data-ani-delay]').each(function () {
322        var delayTime = $(this).data('ani-delay');
323        $(this).css('animation-delay', delayTime);
324    });
325    
326    $('[data-ani]').each(function () {
327        var animaionName = $(this).data('ani');
328        $(this).addClass(animaionName);
329        $('.slick-current [data-ani]').addClass('th-animated');
330    });
331    
332    $('.th-carousel').on('afterChange', function (event, slick, currentSlide, nextSlide) {
333        $(slick.$slides).find('[data-ani]').removeClass('th-animated');
334        $(slick.$slides[currentSlide]).find('[data-ani]').addClass('th-animated');
335    });
336
337    
338    $.fn.shapeMockup = function () {
339        var $shape = $(this);
340        $shape.each(function() {
341          var $currentShape = $(this),
342          shapeTop = $currentShape.data('top'),
343          shapeRight = $currentShape.data('right'),
344          shapeBottom = $currentShape.data('bottom'),
345          shapeLeft = $currentShape.data('left');
346          $currentShape.css({
347            top: shapeTop,
348            right: shapeRight,
349            bottom: shapeBottom,
350            left: shapeLeft,
351          }).removeAttr('data-top')
352          .removeAttr('data-right')
353          .removeAttr('data-bottom')
354          .removeAttr('data-left')
355          .closest('.elementor-widget , .elementor-widget-wrap, .elementor-widget-container').css('position', 'static')
356          .closest('section').addClass('shape-mockup-wrap');
357        });
358    };
359
360    if ($('.shape-mockup')) {
361        $('.shape-mockup').shapeMockup();
362    }
363
364
365    $('.progress-bar').waypoint(function() {
366        $('.progress-bar').css({
367        animation: "animate-positive 1.8s",
368        opacity: "1"
369        });
370    }, { offset: '75%' });
371
372    /************lettering js***********/
373    function injector(t, splitter, klass, after) {
374        var a = t.text().split(splitter), inject = '';
375        if (a.length) {
376            $(a).each(function(i, item) {
377                inject += '<span class="'+klass+(i+1)+'">'+item+'</span>'+after;
378            }); 
379            t.empty().append(inject);
380        }
381    }
382    
383    var methods = {
384        init : function() {
385
386            return this.each(function() {
387                injector($(this), '', 'char', '');
388            });
389
390        },
391
392        words : function() {
393
394            return this.each(function() {
395                injector($(this), ' ', 'word', ' ');
396            });
397
398        },
399        
400        lines : function() {
401
402            return this.each(function() {
403                var r = "eefec303079ad17405c889e092e105b0";
404                // Because it's hard to split a <br/> tag consistently across browsers,
405                // (*ahem* IE *ahem*), we replaces all <br/> instances with an md5 hash 
406                // (of the word "split").  If you're trying to use this plugin on that 
407                // md5 hash string, it will fail because you're being ridiculous.
408                injector($(this).children("br").replaceWith(r).end(), r, 'line', '');
409            });
410
411        }
412    };
413
414    $.fn.lettering = function( method ) {
415        // Method calling logic
416        if ( method && methods[method] ) {
417            return methods[ method ].apply( this, [].slice.call( arguments, 1 ));
418        } else if ( method === 'letters' || ! method ) {
419            return methods.init.apply( this, [].slice.call( arguments, 0 ) ); // always pass an array
420        }
421        $.error( 'Method ' +  method + ' does not exist on jQuery.lettering' );
422        return this;
423    };
424
425    $(".about-title-anime").lettering();  
426
427
428    /*----------- 14. Filter ----------*/
429
430    $(".filter-active").imagesLoaded(function () {
431        var $filter = ".filter-active",
432            $filterItem = ".filter-item",
433            $filterMenu = ".filter-menu-active";
434
435        if ($($filter).length > 0) {
436            var $grid = $($filter).isotope({
437                itemSelector: $filterItem,
438                filter: "*",
439                masonry: {
440                    // use outer width of grid-sizer for columnWidth
441                    columnWidth: 1,
442                },
443            });
444
445            // filter items on button click
446            $($filterMenu).on("click", "button", function () {
447                var filterValue = $(this).attr("data-filter");
448                $grid.isotope({
449                    filter: filterValue,
450                });
451            });
452
453            // Menu Active Class
454            $($filterMenu).on("click", "button", function (event) {
455                event.preventDefault();
456                $(this).addClass("active");
457                $(this).siblings(".active").removeClass("active");
458            });
459        }
460    });
461
462    $(".masonary-active").imagesLoaded(function () {
463        var $filter = ".masonary-active",
464            $filterItem = ".filter-item";
465
466        if ($($filter).length > 0) {
467            $($filter).isotope({
468                itemSelector: $filterItem,
469                filter: "*",
470                masonry: {
471                    // use outer width of grid-sizer for columnWidth
472                    columnWidth: 1,
473                },
474            });
475        }
476    });
477
478
479        
480            
481
482            
483          
484    };
485
486    elementorFrontend.hooks.addAction('frontend/element_ready/global', GlobalJSLoad);
487
488
489
490    
491
492
493
494    });
495}(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.