PageSourceSearch

https://nciomaha.com/wp-content/themes/ruffer/assets/js/main.js?ver=1.0.0

js nciomaha.com collected 2026-10-04 01:13:09 UTC 31,044 bytes, 921 lines download raw bytes

1(function ($) {
2    "use strict";
3    /*=================================
4      JS Index Here
5    ==================================*/
6    /*
7    01. On Load Function
8    02. Preloader
9    03. Mobile Menu Active
10    04. Sticky fix
11    05. Scroll To Top
12    06. Set Background Image Color & Mask
13    07. Global Slider
14    08. Custom Animaiton For Slider
15    09. Ajax Contact Form
16    10. Search Box Popup
17    11. Popup Sidemenu
18    12. Magnific Popup
19    13. Section Position
20    14. Filter
21    15. Counter Up
22    16. th Tab
23    17. Shape Mockup
24    18. Progress Bar Animation
25    19. Price Slider
26    20. Tilt Active
27    21. Indicator
28    22. Circle Progress
29    00. Woocommerce Toggle
30    00. Right Click Disable
31  */
32    /*=================================
33      JS Index End
34  ==================================*/
35    /*
36
37  /*---------- 01. On Load Function ----------*/
38    $(window).on("load", function () {
39        $(".preloader").fadeOut();
40        $(".slick-slider").slick("refresh");
41    });
42
43    $(window).on('resize', function () {
44        $(".slick-slider").slick("refresh");
45    });
46
47    /*---------- 02. Preloader ----------*/
48    if ($(".preloader").length > 0) {
49        $(".preloaderCls").each(function () {
50            $(this).on("click", function (e) {
51                e.preventDefault();
52                $(".preloader").css("display", "none");
53            });
54        });
55    }
56
57       /*---------- 03. Mobile Menu Active ----------*/
58       $.fn.thmobilemenu = function (options) {
59        var opt = $.extend(
60            {
61                menuToggleBtn: ".th-menu-toggle",
62                bodyToggleClass: "th-body-visible",
63                subMenuClass: "th-submenu",
64                subMenuParent: "th-item-has-children",
65                subMenuParentToggle: "th-active",
66                meanExpandClass: "th-mean-expand",
67                appendElement: '<span class="th-mean-expand"></span>',
68                subMenuToggleClass: "th-open",
69                toggleSpeed: 400,
70            },
71            options
72        );
73
74        return this.each(function () {
75            var menu = $(this); // Select menu
76
77            // Menu Show & Hide
78            function menuToggle() {
79                menu.toggleClass(opt.bodyToggleClass);
80
81                // collapse submenu on menu hide or show
82                var subMenu = "." + opt.subMenuClass;
83                $(subMenu).each(function () {
84                    if ($(this).hasClass(opt.subMenuToggleClass)) {
85                        $(this).removeClass(opt.subMenuToggleClass);
86                        $(this).css("display", "none");
87                        $(this).parent().removeClass(opt.subMenuParentToggle);
88                    }
89                });
90            }
91
92            // Class Set Up for every submenu
93            menu.find("li").each(function () {
94                var submenu = $(this).find("ul");
95                submenu.addClass(opt.subMenuClass);
96                submenu.css("display", "none");
97                submenu.parent().addClass(opt.subMenuParent);
98                submenu.prev("a").append(opt.appendElement);
99                submenu.next("a").append(opt.appendElement);
100            });
101
102            // Toggle Submenu
103            function toggleDropDown($element) {
104                if ($($element).next("ul").length > 0) {
105                    $($element).parent().toggleClass(opt.subMenuParentToggle);
106                    $($element).next("ul").slideToggle(opt.toggleSpeed);
107                    $($element).next("ul").toggleClass(opt.subMenuToggleClass);
108                } else if ($($element).prev("ul").length > 0) {
109                    $($element).parent().toggleClass(opt.subMenuParentToggle);
110                    $($element).prev("ul").slideToggle(opt.toggleSpeed);
111                    $($element).prev("ul").toggleClass(opt.subMenuToggleClass);
112                }
113            }
114
115            // Submenu toggle Button
116            var expandToggler = "." + opt.meanExpandClass;
117            $(expandToggler).each(function () {
118                $(this).on("click", function (e) {
119                    e.preventDefault();
120                    toggleDropDown($(this).parent());
121                });
122            });
123
124            // Menu Show & Hide On Toggle Btn click
125            $(opt.menuToggleBtn).each(function () {
126                $(this).on("click", function () {
127                    menuToggle();
128                });
129            });
130
131            // Hide Menu On out side click
132            menu.on("click", function (e) {
133                e.stopPropagation();
134                menuToggle();
135            });
136
137            // Stop Hide full menu on menu click
138            menu.find("div").on("click", function (e) {
139                e.stopPropagation();
140            });
141        });
142    };
143
144    $(".th-menu-wrapper").thmobilemenu();
145
146    /*---------- 03. Sidebar Menu Active ----------*/
147    $.fn.thmobilemenu2 = function (options) {
148        var opt = $.extend(
149            {
150                menuToggleBtn2: ".th-menu-toggle2",
151                bodyToggleClass2: "th-body-visible2",
152                toggleSpeed: 400,
153            },
154            options
155        );
156
157        return this.each(function () {
158            var menu = $(this); // Select menu
159
160            function menuToggle2() {
161                menu.toggleClass(opt.bodyToggleClass2);
162            }
163            // Menu Show & Hide On Toggle Btn click
164            $(opt.menuToggleBtn2).each(function () {
165                $(this).on("click", function () {
166                    menuToggle2();
167                });
168            });
169
170            // Hide Menu On out side click
171            menu.on("click", function (e) {
172                e.stopPropagation();
173                menuToggle2();
174            });
175
176            // Stop Hide full menu on menu click
177            menu.find("div").on("click", function (e) {
178                e.stopPropagation();
179            });
180        });
181    };
182
183    $(".th-menu-wrapper2").thmobilemenu2();
184
185    $(".th-menu-wrapper2 .th-mobile-menu2 ul li a").on("click", function (e) {
186        e.preventDefault();
187        $('.th-menu-wrapper2').removeClass('th-body-visible2');
188    });
189
190
191   /*---------- 04. Sticky fix ----------*/
192//    $(window).scroll(function () {
193//         var topPos = $(this).scrollTop();
194//         if (topPos > 1) {
195//             $('.sticky-wrapper').addClass('stick-top');
196//         } else {
197//             $('.sticky-wrapper').removeClass('stick-top')
198//         }
199//     });
200
201    /*----------- 22. One Page Nav ----------*/
202    function onePageNav(element) {
203        if ($(element).length > 0) {
204            $(element).each(function () {
205            var link = $(this).find('a');
206            $(this).find(link).each(function () {
207                $(this).on('click', function () {
208                var target = $(this.getAttribute('href'));
209                if (target.length) {
210                    event.preventDefault();
211                    $('html, body').stop().animate({
212                    scrollTop: target.offset().top - 10
213                    }, 1000);
214                };
215    
216                });
217            });
218            })
219        }
220    };
221    onePageNav('.onepage-nav');
222
223    /*---------- 05. Scroll To Top ----------*/
224    // progressAvtivation
225    if($('.scroll-top').length > 0) {
226        
227        var scrollTopbtn = document.querySelector('.scroll-top');
228        var progressPath = document.querySelector('.scroll-top path');
229        var pathLength = progressPath.getTotalLength();
230        progressPath.style.transition = progressPath.style.WebkitTransition = '
230none';
231        progressPath.style.strokeDasharray = pathLength + ' ' + pathLength;
232        progressPath.style.strokeDashoffset = pathLength;
233        progressPath.getBoundingClientRect();
234        progressPath.style.transition = progressPath.style.WebkitTransition = 'stroke-dashoffset 10ms linear';      
235        var updateProgress = function () {
236            var scroll = $(window).scrollTop();
237            var height = $(document).height() - $(window).height();
238            var progress = pathLength - (scroll * pathLength / height);
239            progressPath.style.strokeDashoffset = progress;
240        }
241        updateProgress();
242        $(window).scroll(updateProgress);   
243        var offset = 50;
244        var duration = 750;
245        jQuery(window).on('scroll', function() {
246            if (jQuery(this).scrollTop() > offset) {
247                jQuery(scrollTopbtn).addClass('show');
248            } else {
249                jQuery(scrollTopbtn).removeClass('show');
250            }
251        });             
252        jQuery(scrollTopbtn).on('click', function(event) {
253            event.preventDefault();
254            jQuery('html, body').animate({scrollTop: 0}, duration);
255            return false;
256        })
257    }
258
259    /*---------- 06. Set Background Image Color & Mask ----------*/
260    if ($("[data-bg-src]").length > 0) {
261        $("[data-bg-src]").each(function () {
262            var src = $(this).attr("data-bg-src");
263            $(this).css("background-image", "url(" + src + ")");
264            $(this).removeAttr("data-bg-src").addClass("background-image");
265        });
266    }
267
268    if ($('[data-bg-color]').length > 0) {
269        $('[data-bg-color]').each(function () {
270          var color = $(this).attr('data-bg-color');
271          $(this).css('background-color', color);
272          $(this).removeAttr('data-bg-color');
273        });
274    };
275      
276    if ($('[data-mask-src]').length > 0) {
277        $('[data-mask-src]').each(function () {
278          var mask = $(this).attr('data-mask-src');
279          $(this).css({
280            'mask-image': 'url(' + mask + ')',
281            '-webkit-mask-image': 'url(' + mask + ')'
282          });
283          $(this).addClass('bg-mask');
284          $(this).removeAttr('data-mask-src');
285        });
286    };
287
288    
289    /*---------- 10. Search Box Popup ----------*/
290    function popupSarchBox($searchBox, $searchOpen, $searchCls, $toggleCls) {
291        $($searchOpen).on("click", function (e) {
292            e.preventDefault();
293            $($searchBox).addClass($toggleCls);
294        });
295        $($searchBox).on("click", function (e) {
296            e.stopPropagation();
297            $($searchBox).removeClass($toggleCls);
298        });
299        $($searchBox)
300            .find("form")
301            .on("click", function (e) {
302                e.stopPropagation();
303                $($searchBox).addClass($toggleCls);
304            });
305        $($searchCls).on("click", function (e) {
306            e.preventDefault();
307            e.stopPropagation();
308            $($searchBox).removeClass($toggleCls);
309        });
310    }
311    popupSarchBox(
312        ".popup-search-box",
313        ".searchBoxToggler",
314        ".searchClose",
315        "show"
316    );
317
318    /*---------- 11. Popup Sidemenu ----------*/
319    function popupSideMenu($sideMenu, $sideMunuOpen, $sideMenuCls, $toggleCls) {
320        // Sidebar Popup
321        $($sideMunuOpen).on('click', function (e) {
322        e.preventDefault();
323        $($sideMenu).addClass($toggleCls);
324        });
325        $($sideMenu).on('click', function (e) {
326        e.stopPropagation();
327        $($sideMenu).removeClass($toggleCls)
328        });
329        var sideMenuChild = $sideMenu + ' > div';
330        $(sideMenuChild).on('click', function (e) {
331        e.stopPropagation();
332        $($sideMenu).addClass($toggleCls)
333        });
334        $($sideMenuCls).on('click', function (e) {
335        e.preventDefault();
336        e.stopPropagation();
337        $($sideMenu).removeClass($toggleCls);
338        });
339    };
340    popupSideMenu('.sidemenu-wrapper', '.sideMenuToggler', '.sideMenuCls', 'show');
341
342    /*----------- 12. Magnific Popup ----------*/
343    /* magnificPopup img view */
344    $(".popup-image").magnificPopup({
345        type: "image",
346        mainClass: 'mfp-zoom-in', 
347        removalDelay: 260,
348        gallery: {
349            enabled: true,
350        },
351    });
352
353    /* magnificPopup video view */
354    $(".popup-video").magnificPopup({
355        type: "iframe",
356        mainClass: 'mfp-zoom-in', 
357        removalDelay: 260,
358    });
359
360    /* magnificPopup video view */
361    $(".popup-content").magnificPopup({
362        type: "inline",
363        midClick: true,
364    });
365
366    $(".popup-content").on("click", function () {
367        $(".slick-slider").slick("refresh");
368    });
369
370    
371
372    /*---------- 13. Section Position ----------*/
373    // Interger Converter
374    function convertInteger(str) {
375        return parseInt(str, 10);
376    }
377
378    $.fn.sectionPosition = function (mainAttr, posAttr) {
379        $(this).each(function () {
380            var section = $(this);
381
382            function setPosition() {
383                var sectionHeight = Math.floor(section.height() / 2), // Main Height of section
384                    posData = section.attr(mainAttr), // where to position
385                    posFor = section.attr(posAttr), // On Which section is for positioning
386                    topMark = "top-half", // Pos top
387                    bottomMark = "bottom-half", // Pos Bottom
388                    parentPT = convertInteger($(posFor).css("padding-top")), // Default Padding of  parent
389                    parentPB = convertInteger($(posFor).css("padding-bottom")); // Default Padding of  parent
390
391                if (posData === topMark) {
392                    $(posFor).css(
393                        "padding-bottom",
394                        parentPB + sectionHeight + "px"
395                    );
396                    section.css("margin-top", "-" + sectionHeight + "px");
397                } else if (posData === bottomMark) {
398                    $(posFor).css(
399                        "padding-top",
400                        parentPT + sectionHeight + "px"
401                    );
402                    section.css("margin-bottom", "-" + sectionHeight + "px");
403                }
404            }
405            setPosition(); // Set Padding On Load
406        });
407    };
408
409    var postionHandler = "[data-sec-pos]";
410    if ($(postionHandler).length) {
411        $(postionHandler).imagesLoaded(function () {
412            $(postionHandler).sectionPosition("data-sec-pos", "data-pos-for");
413        });
414    }
415
416    /*----------- 14. Filter ----------*/
417
418    $(".filter-active").imagesLoaded(function () {
419        var $filter = ".filter-active",
420            $filterItem = ".filter-item",
421            $filterMenu = ".filter-menu-active";
422
423        if ($($filter).length > 0) {
424            var $grid = $($filter).isotope({
425                itemSelector: $filterItem,
426                filter: "*",
427                masonry: {
428                    // use outer width of grid-sizer for columnWidth
429                    columnWidth: 1,
430                },
431            });
432
433            // filter items on button click
434            $($filterMenu).on("click", "button", function () {
435                var filterValue = $(this).attr("data-filter");
436                $grid.isotope({
437                    filter: filterValue,
438                });
439            });
440
441            // Menu Active Class
442            $($filterMenu).on("click", "button", function (event) {
443                event.preventDefault();
444                $(this).addClass("active");
445                $(this).siblings(".active").removeClass("active");
446            });
447        }
448    });
449
450    $(".masonary-active").imagesLoaded(function () {
451        var $filter = ".masonary-active",
452            $filterItem = ".filter-item";
453
454        if ($($filter).length > 0) {
455            $($filter).isotope({
456                itemSelector: $filterItem,
457                filter: "*",
458                masonry: {
459                    // use outer width of grid-sizer for columnWidth
460                    columnWidth: 1,
461                },
462            });
463        }
464    });
465    /*----------- 14. Search Masonary ----------*/
466    $('.search-active').imagesLoaded(function () {
467        var $filter = '.search-active',
468        $filterItem = '.filter-item';
469
470        if ($($filter).length > 0) {
471        var $grid = $($filter).isotope({
472            itemSelector: $filterItem,
473            filter: '*',
474            // masonry: {
475            // // use outer width of grid-sizer for columnWidth
476            //     columnWidth: 1
477            // }
478        });
479        };
480    });
481
482    /*----------- 15. Counter Up ----------*/
483    $(".counter-number").counterUp({
484        delay: 10,
485        time: 1000,
486    });
487
488    /*---------- 16. th Tab ----------*/
489    $.fn.thTab = function (options) {
490        var opt = $.extend(
491            {
492                sliderTab: false,
493                tabButton: "button",
494            },
495            options
496        );
497
498        $(this).each(function () {
499            var $menu = $(this);
500            var $button = $menu.find(opt.tabButton);
501
502            // Append indicator
503            $menu.append('<span class="indicator"></span>');
504            var $line = $menu.find(".indicator");
505
506            // On Click Button Class Remove and indecator postion set
507            $button.on("click", function (e) {
508                e.preventDefault();
509                var cBtn = $(this);
510                cBtn.addClass("active").siblings().removeClass("active");
511                if (opt.sliderTab) {
512                    $(slider).slick("slickGoTo", cBtn.data("slide-go-to"));
513                } else {
514                    linePos();
515                }
516            });
517
518            // Work With slider
519            if (opt.sliderTab) {
520                var slider = $menu.data("themenavfor"); // select slider
521
522                // Select All button and set attribute
523                var i = 0;
524                $button.each(function () {
525                    var slideBtn = $(this);
526                    slideBtn.attr("data-slide-go-to", i);
527                    i++;
528
529                    // Active Slide On load > Actived Button
530                    if (slideBtn.hasClass("active")) {
531                        $(slider).slick(
532                            "slickGoTo",
533                            slideBtn.data("slide-go-to")
534                        );
535                    }
536
537                    // Change Indicator On slide Change
538                    $(slider).on(
539                        "beforeChange",
540                        function (event, slick, currentSlide, nextSlide) {
541                            $menu
542                                .find(
543                                    opt.tabButton +
544                                        '[data-slide-go-to="' +
545                                        nextSlide +
546                                        '"]'
547                                )
548                                .addClass("active")
549                                .siblings()
550                                .removeClass("active");
551                            linePos();
552                        }
553                    );
554                });
555            }
556
557            // Indicator Position
558            function linePos() {
559                var $btnActive = $menu.find(opt.tabButton + ".active"),
560                    $height = $btnActive.css("height"),
561                    $width = $btnActive.css("width"),
562                    $top = $btnActive.position().top + "px",
563                    $left = $btnActive.position().left + "px";
564
565                $line.get(0).style.setProperty("--height-set", $height);
566                $line.get(0).style.setProperty("--width-set", $width);
567                $line.get(0).style.setProperty("--pos-y", $top);
568                $line.get(0).style.setProperty("--pos-x", $left);
569
570                if (
571                    $($button).first().position().left ==
572                    $btnActive.position().left
573                ) {
574                    $line
575                        .addClass("start")
576                        .removeClass("center")
577                        .removeClass("end");
578                } else if (
579                    $($button).last().position().left ==
580                    $btnActive.position().left
581                ) {
582                    $line
583                        .addClass("end")
584                        .removeClass("center")
585                        .removeClass("start");
586                } else {
587                    $line
588                        .addClass("center")
589                        .removeClass("start")
590                        .removeClass("end");
591                }
592            }
593            linePos();
594        });
595    };
596
597    // Call On Load
598    if ($(".testi-card-tab").length) {
599        $(".testi-card-tab").thTab({
600            sliderTab: true,
601            tabButton: ".tab-btn",
602        });
603    }
604
605    /*----------- 17. Shape Mockup ----------*/
606    $.fn.shapeMockup = function () {
607        var $shape = $(this);
608        $shape.each(function () {
609            var $currentShape = $(this),
610                shapeTop = $currentShape.data("top"),
611                shapeRight = $currentShape.data("right"),
612                shapeBottom = $currentShape.data("bottom"),
613                shapeLeft = $currentShape.data("left");
614            $currentShape
615                .css({
616                    top: shapeTop,
617                    right: shapeRight,
618                    bottom: shapeBottom,
619                    left: shapeLeft,
620                })
621                .removeAttr("data-top")
622                .removeAttr("data-right")
623                .removeAttr("data-bottom")
624                .removeAttr("data-left")
625                .parent()
626                .addClass("shape-mockup-wrap");
627        });
628    };
629
630    if ($(".shape-mockup")) {
631        $(".shape-mockup").shapeMockup();
632    }
633
634    /*----------- 18. Progress Bar Animation ----------*/
635    $('.progress-bar').waypoint(function() {
636        $('.progress-bar').css({
637        animation: "animate-positive 1.8s",
638        opacity: "1"
639        });
640    }, { offset: '75%' });
641
642    /*----------- 19. Price Slider ----------*/
643    $(".price_slider").slider({
644        range: true,
645        min: 10,
646        max: 100,
647        values: [10, 75],
648        slide: function (event, ui) {
649          $(".from").text("$" + ui.values[0]);
650          $(".to").text("$" + ui.values[1]);
651        }
652      });
653      $(".from").text("$" + $(".price_slider").slider("values", 0));
654      $(".to").text("$" + $(".price_slider").slider("values", 1));
655
656    /*----------- 20. Tilt Active ----------*/
657    $('.tilt-active').tilt({
658        maxTilt: 7,
659        perspective: 1000,   
660    })
661
662    /*----------- 21. Indicator ----------*/
663    // Indicator
664    $.fn.indicator = function () {
665        var $menu = $(this),
666            $linkBtn = $menu.find("a"),
667            $btn = $menu.find("button");
668        // Append indicator
669        $menu.append('<span class="indicator"></span>');
670        var $line = $menu.find(".indicator");
671        // Check which type button is Available
672        if ($linkBtn.length) {
673            var $currentBtn = $linkBtn;
674        } else if ($btn.length) {
675            var $currentBtn = $btn;
676        }
677        // On Click Button Class Remove
678        $currentBtn.on("click", function (e) {
679            e.preventDefault();
680            $(this).addClass("active");
681            $(this).siblings(".active").removeClass("active");
682            linePos();
683        });
684        
685        function linePos() {
686            var $btnActive = $menu.find(".active"),
687                $height = $btnActive.css("height"),
688                $width = $btnActive.css("width"),
689                $top = $btnActive.position().top + "px",
690                $left = $btnActive.position().left + "px";
691
692            $(window).on('resize', function () {
693                $top = $btnActive.position().top + "px",
694                $left = $btnActive.position().left + "px";
695            });
696
697            $line.get(0).style.setProperty("--height-set", $height);
698            $line.get(0).style.setProperty("--width-set", $width);
699            $line.get(0).style.setProperty("--pos-y", $top);
700            $line.get(0).style.setProperty("--pos-x", $left);
701
702        }
703        linePos();
704    };
705
706    // Call On Load
707    if ($(".indicator-active").length) {
708        $(".indicator-active").indicator();
709    }
710
711    /*---------- 22. Circle Progress ----------*/
712    function animateElements() {
713        $('.feature-circle .progressbar').each(function () {
714            var pathColor = $(this).attr('data-path-color');
715            var elementPos = $(this).offset().top;
716            var topOfWindow = $(window).scrollTop();
717            var percent = $(this).find('.circle').attr('data-percent');
718            var percentage = parseInt(percent, 10) / parseInt(100, 10);
719            var animate = $(this).data('animate');
720            if (elementPos < topOfWindow + $(window).height() - 30 && !animate) {
721                $(this).data('animate', true);
722                $(this).find('.circle').circleProgress({
723                startAngle: -Math.PI / 2,
724                value: percent / 100,
725                size: 100,
726                thickness: 6,
727                emptyFill: "transparent",
728                lineCap: 'round',
729                fill: {
730                    color: pathColor,
731                }
732                }).on('circle-animation-progress', function (event, progress, stepValue) {
733                $(this).find('.circle-num').text((stepValue*100).toFixed(0) + "%");
734                }).stop();
735            }
736        });
737
738        $('.skill-circle .progressbar').each(function () {
739            var elementPos = $(this).offset().top;
740            var topOfWindow = $(window).scrollTop();
741            var percent = $(this).find('.circle').attr('data-percent');
742            var percentage = parseInt(percent, 10) / parseInt(100, 10);
743            var animate = $(this).data('animate');
744            if (elementPos < topOfWindow + $(window).height() - 30 && !animate) {
745                $(this).data('animate', true);
746                $(this).find('.circle').circleProgress({
747                startAngle: -Math.PI / 2,
748                value: percent / 100,
749                size: 100,
750                thickness: 8,
751                emptyFill: "#E0E0E0",
752                lineCap: 'round',
753                fill: {
754                    gradient: ["#F11F22", "#F2891D"]
755                }
756                }).on('circle-animation-progress', function (event, progress, stepValue) {
757                $(this).find('.circle-num').text((stepValue*100).toFixed(0) + "%");
758                }).stop();
759            }
760        });
761    }
762
763    // Show animated elements
764    animateElements();
765    $(window).scroll(animateElements);
766
767    
768    // Quantity Plus Minus ---------------------------
769    /*---------- Quantity Added ----------*/
770    $(document).on('click', '.quantity-plus, .quantity-minus', function(e) {
771        e.preventDefault();
772        // Get current quantity values
773        var qty = $(this).closest('.quantity, .product-quantity').find('.qty-input');
774        var val = parseFloat(qty.val());
775        var max = parseFloat(qty.attr('max'));
776        var min = parseFloat(qty.attr('min'));
777        var step = parseFloat(qty.attr('step'));
778
779        // Change the value if plus or minus
780        if ($(this).is('.quantity-plus')) {
781            if (max && (max <= val)) {
782                qty.val(max);
783            } else {
784                qty.val(val + step);
785            }
786        } else {
787            if (min && (min >= val)) {
788                qty.val(min);
789            } else if (val > 0) {
790                qty.val(val - step);
791            }
792        }
793        $('.cart_table button[name="update_cart"]').prop('disabled', false);
794    });
795
796    $('.th-blog-carousel').slick({
797        dots: false,
798        infinite: true,
799        arrows: true,
800        prevArrow: '<button type="button" class="slick-prev slick-arrow" style=""><i class="fal fa-arrow-left"></i></button>',
801        nextArrow: '<button type="button" class="slick-next slick-arrow" style=""><i class="fal fa-arrow-right"></i></button>',
802        autoplay: true,
803        autoplaySpeed: 6000,
804        fade: true,
805        speed: 1000,
806        slidesToShow: 1,
807        slidesToScroll: 1,
808        responsive: [ {
809            breakpoint: 992,
810            settings: {
811                slidesToShow: 1,
812                arrows: false,
813               }
814            }
815        ]
816    });
817
818    $('.related-products-carousel').slick({
819        dots: false,
820        infinite: true,
821        arrows: true,
822        prevArrow: '<button type="button" class="slick-prev slick-arrow" style=""><i class="fal fa-arrow-left"></i></button>',
823        nextArrow: '<button type="button" class="slick-next slick-arrow" style=""><i class="fal fa-arrow-right"></i></button>',
824        autoplay: true,
825        autoplaySpeed: 6000,
826        fade: false,
827        speed: 1000,
828        slidesToShow: 4,
829        slidesToScroll: 1,
830        responsive: [ {
831            breakpoint: 1500,
832            settings: {
833                slidesToShow: 3,
834                arrows: false,
835            }
836            },{
837            breakpoint: 1200,
838            settings: {
839                slidesToShow: 3,
840                arrows: false,
841            }
842            },{
843            breakpoint: 992,
844            settings: {
845                slidesToShow: 2,
846                arrows: false,
847            }
848            }, {
849            breakpoint: 768,
850            settings: {
851                slidesToShow: 2,
852                arrows: false,
853               }
854            }
855        ]
856    });
857    
858    $('.product-img-slider').slick({
859          dots: true,
860          infinite: true,
861          arrows: false,
862          autoplay: true,
863          autoplaySpeed: 6000,
864          fade: false,
865          speed: 1000,
866          slidesToShow: 1,
867          slidesToScroll: 1,
868
869      });
870
871    
872    
873
874    // /*----------- 00. banner-img-move ----------*/
875    function touches(e){
876        var x = e.touches ? e.touches[0].clientX : e.clientX, 
877                y = e.touches ? e.touches[0].clientY : e.clientY;
878      var w = window.innerWidth / 2;
879      var h = window.innerHeight / 2;
880      
881      var l = -(x - w) / (w / 1) - 1;
882      var t = -(y - h) / (h / 1) - 1;
883      
884        TweenMax.to($('.banner-anime-img'), 1, {
885            top: t + "%",
886            left: l + "%"
887        });
888        
889    }
890    
891    window.addEventListener("mousemove", touches);
892    window.addEventListener("touchstart", touches);
893    window.addEventListener("touchmove", touches);
894    
895    
896    // /*----------- 00. Right Click Disable ----------*/
897    //   window.addEventListener('contextmenu', function (e) {
898    //     // do something here...
899    //     e.preventDefault();
900    //   }, false);
901
902    // /*----------- 00. Inspect Element Disable ----------*/
903    //   document.onkeydown = function (e) {
904    //     if (event.keyCode == 123) {
905    //       return false;
906    //     }
907    //     if (e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
908    //       return false;
909    //     }
910    //     if (e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
911    //       return false;
912    //     }
913    //     if (e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
914    //       return false;
915    //     }
916    //     if (e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
917    //       return false;
918    //     }
919    //   }
920    
921})(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.