PageSourceSearch

https://kas.kassp.pl/assets/js/main.js

js kassp.pl collected 2026-10-02 02:05:45 UTC 23,959 bytes, 787 lines download raw bytes

1(function ($) {
2  'use strict';
3
4  /*
5  |--------------------------------------------------------------------------
6  | Template Name: Bizmax
7  | Author: PixcelsThemes
8  | Version: 1.0.0
9  |--------------------------------------------------------------------------
10  |--------------------------------------------------------------------------
11  | TABLE OF CONTENTS:
12  |--------------------------------------------------------------------------
13  |
14  | 1. Preloader
15  | 2. Mobile Menu
16  | 3. Sticky Header
17  | 4. Dynamic Background
18  | 5. Slick Slider
19  | 6. Parallax Slider Swiper
20  | 7. Isotop Initialize
21  | 8. Review
22  | 9. Modal Video
23  | 10. Tabs
24  | 11. Accordian
25  | 12. Counter Animation
26  | 13. Ripple
27  | 14. Progress Bar
28  | 15. Dynamic contact form
29  |
30  */
31
32  /*--------------------------------------------------------------
33    Scripts initialization
34  --------------------------------------------------------------*/
35  $.exists = function (selector) {
36    return $(selector).length > 0;
37  };
38
39  $(window).on('load', function () {
40    $(window).trigger('scroll');
41    $(window).trigger('resize');
42    preloader();
43    isotopInit();
44  });
45
46  $(function () {
47    $(window).trigger('resize');
48    mainNav();
49    stickyHeader();
50    dynamicBackground();
51    slickInit();
52    parallaxSwiperSlider();
53    isotopInit();
54    review();
55    modalVideo();
56    tabs();
57    accordian();
58    counterInit();
59    rippleInit();
60    progressBar();
61    countDown();
62    ecommerce();
63    if ($.exists('.wow')) {
64      new WOW().init();
65    }
66    if ($.exists('.player')) {
67      $('.player').YTPlayer();
68    }
69  });
70
71  $(window).on('scroll', function () {
72    counterInit();
73  });
74
75  /*--------------------------------------------------------------
76    1. Preloader
77  --------------------------------------------------------------*/
78  function preloader() {
79    $('.cs_preloader_in').fadeOut();
80    $('.cs_preloader').delay(150).fadeOut('slow');
81  }
82
83  /*--------------------------------------------------------------
84    2. Mobile Menu
85  --------------------------------------------------------------*/
86  function mainNav() {
87    $('.cs_nav').append('<span class="cs-munu_toggle"><span></span></span>');
88    $('.menu-item-has-children').append(
89      '<span class="cs-munu_dropdown_toggle"></span>',
90    );
91    $('.cs-munu_toggle').on('click', function () {
92      $(this)
93        .toggleClass('cs-toggle_active')
94        .siblings('.cs_nav_list')
95        .slideToggle();
96    });
97    $('.cs-munu_dropdown_toggle').on('click', function () {
98      $(this).toggleClass('active').siblings('ul').slideToggle();
99      $(this).parent().toggleClass('active');
100    });
101    // Search Toggle
102    $('.cs_header_search_btn').on('click', function () {
103      $(this).parents('.cs_header_search_wrap').toggleClass('active');
104    });
105  }
106
107  /*--------------------------------------------------------------
108    3. Sticky Header
109  --------------------------------------------------------------*/
110  function stickyHeader() {
111    var $window = $(window);
112    var lastScrollTop = 0;
113    var $header = $('.cs_sticky_header');
114    var headerHeight = $header.outerHeight() + 30;
115
116    $window.scroll(function () {
117      var windowTop = $window.scrollTop();
118
119      if (windowTop >= headerHeight) {
120        $header.addClass('cs-gescout_sticky');
121      } else {
122        $header.removeClass('cs-gescout_sticky');
123        $header.removeClass('cs-gescout_show');
124      }
125
126      if ($header.hasClass('cs-gescout_sticky')) {
127        if (windowTop < lastScrollTop) {
128          $header.addClass('cs-gescout_show');
129        } else {
130          $header.removeClass('cs-gescout_show');
131        }
132      }
133
134      lastScrollTop = windowTop;
135    });
136  }
137
138  /*--------------------------------------------------------------
139    4. Dynamic Background
140  --------------------------------------------------------------*/
141  function dynamicBackground() {
142    $('[data-src]').each(function () {
143      var src = $(this).attr('data-src');
144      $(this).css({
145        'background-image': 'url(' + src + ')',
146      });
147    });
148  }
149
150  /*--------------------------------------------------------------
151    5. Slick Slider
152  --------------------------------------------------------------*/
153  function slickInit() {
154    if ($.exists('.cs_hero_slider')) {
155      $('.cs_hero_slider').each(function () {
156        var $slickActive = $(this).find('.cs_slider_activate');
157        $slickActive.slick({
158          slidesToShow: 1,
159          infinite: true,
160          slidesToScroll: 1,
161          autoplay: false,
162          fade: true,
163          autoplaySpeed: 7000,
164          speed: 500,
165          cssEase: 'ease-in-out',
166          prevArrow: $(this).find('.cs_slider_prev'),
167          nextArrow: $(this).find('.cs_slider_next'),
168        });
169      });
170    }
171    if ($.exists('.cs_sidebar_slider')) {
172      $('.cs_sidebar_slider').each(function () {
173        var $slickActive = $(this).find('.cs_slider_activate');
174        $slickActive.slick({
175          slidesToShow: 1,
176          infinite: true,
177          slidesToScroll: 1,
178          autoplay: false,
179          autoplaySpeed: 7000,
180          speed: 500,
181          cssEase: 'ease-in-out',
182          prevArrow: $(this).find('.cs_slider_prev'),
183          nextArrow: $(this).find('.cs_slider_next'),
184        });
185      });
186    }
187    if ($.exists('.cs_project_slider')) {
188      $('.cs_project_slider').each(function () {
189        var $slickActive = $(this).find('.cs_slider_activate');
190        $slickActive.slick({
191          slidesToShow: 4,
192          infinite: true,
193          slidesToScroll: 1,
194          autoplay: false,
195          autoplaySpeed: 2000,
196          prevArrow: $(this).find('.cs_slider_prev'),
197          nextArrow: $(this).find('.cs_slider_next'),
198          responsive: [
199            {
200              breakpoint: 1350,
201              settings: {
202                slidesToShow: 3,
203              },
204            },
205            {
206              breakpoint: 991,
207              settings: {
208                slidesToShow: 2,
209              },
210            },
211            {
212              breakpoint: 575,
213              settings: {
214                slidesToShow: 1,
215              },
216            },
217          ],
218        });
219      });
220    }
221    if ($.exists('.cs_project_slider_2')) {
222      $('.cs_project_slider_2').each(function () {
223        var $slickActive = $(this).find('.cs_slider_activate');
224        $slickActive.slick({
225          slidesToShow: 3,
226          infinite: true,
227          slidesToScroll: 1,
228          autoplay: false,
229          autoplaySpeed: 2000,
230          prevArrow: $(this).find('.cs_slider_prev'),
231          nextArrow: $(this).find('.cs_slider_next'),
232          responsive: [
233            {
234              breakpoint: 1350,
235              settings: {
236                slidesToShow: 3,
237              },
238            },
239            {
240              breakpoint: 991,
241              settings: {
242                slidesToShow: 2,
243              },
244            },
245            {
246              breakpoint: 767,
247              settings: {
248                slidesToShow: 1,
249              },
250            },
251          ],
252        });
253      });
254    }
255    // Testimonial Slider One
256    if ($.exists('.cs_testimonial_slider')) {
257      $('.cs_testimonial_slider').each(function () {
258        var $slickActive = $(this).find('.cs_slider_activate');
259        $slickActive.slick({
260          slidesToShow: 4,
261          infinite: true,
262          slidesToScroll: 1,
263          variableWidth: true,
264          autoplay: true,
265          autoplaySpeed: 3000,
266          prevArrow: $(this).find('.cs_slider_prev'),
267          nextArrow: $(this).find('.cs_slider_next'),
268        });
269      });
270    }
271    if ($.exists('.cs_testimonial_slider_2')) {
272      $('.cs_testimonial_slider_2').each(function () {
273        var $slickActive = $(this).find('.cs_slider_activate');
274        $slickActive.slick({
275          slidesToShow: 4,
276          infinite: true,
277          slidesToScroll: 1,
278          autoplay: false,
279          autoplaySpeed: 2000,
280          prevArrow: $(this).find('.cs_slider_prev'),
281          nextArrow: $(this).find('.cs_slider_next'),
282          responsive: [
283            {
284              breakpoint: 1350,
285              settings: {
286                slidesToShow: 3,
287              },
288            },
289            {
290              breakpoint: 991,
291              settings: {
292                slidesToShow: 2,
293              },
294            },
295            {
296              breakpoint: 575,
297              settings: {
298                slidesToShow: 1,
299              },
300            },
301          ],
302        });
303      });
304    }
305
306    // Service Slider One
307    if ($.exists('.cs_service_slider')) {
308      $('.cs_service_slider').each(function () {
309        var $slickActive = $(this).find('.cs_slider_activate');
310        $slickActive.slick({
311          slidesToShow: 4,
312          infinite: true,
313          slidesToScroll: 1,
314          variableWidth: true,
315          autoplay: false,
316          autoplaySpeed: 3000,
317          prevArrow: $(this).find('.cs_slider_prev'),
318          nextArrow: $(this).find('.cs_slider_next'),
319        });
320      });
321    }
322    if ($.exists('.cs_service_slider_2')) {
323      $('.cs_service_slider_2').each(function () {
324        var $slickActive = $(this).find('.cs_slider_activate');
325        $slickActive.slick({
326          slidesToShow: 4,
327          infinite: true,
328          slidesToScroll: 1,
329          autoplay: false,
330          autoplaySpeed: 2000,
331          prevArrow: $(this).find('.cs_slider_prev'),
332          nextArrow: $(this).find('.cs_slider_next'),
333          responsive: [
334            {
335              breakpoint: 1350,
336              settings: {
337                slidesToShow: 3,
338              },
339            },
340            {
341              breakpoint: 991,
342              settings: {
343                slidesToShow: 2,
344              },
345            },
346            {
347              breakpoint: 575,
348              settings: {
349                slidesToShow: 1,
350              },
351            },
352          ],
353        });
354      });
355    }
356    if ($.exists('.cs_product_slider')) {
357      $('.cs_product_slider').each(function () {
358        var $slickActive = $(this).find('.cs_slider_activate');
359        $slickActive.slick({
360          slidesToShow: 4,
361          infinite: true,
362          slidesToScroll: 1,
363          autoplay: false,
364          autoplaySpeed: 2000,
365          dots: true,
366          prevArrow: $(this).find('.cs_slider_prev'),
367          nextArrow: $(this).find('.cs_slider_next'),
368          responsive: [
369            {
370              breakpoint: 1350,
371              settings: {
372                slidesToShow: 3,
373              },
374            },
375            {
376              breakpoint: 991,
377              settings: {
378                slidesToShow: 2,
379              },
380            },
381            {
382              breakpoint: 480,
383              settings: {
384                slidesToShow: 1,
385              },
386            },
387          ],
388        });
389      });
390    }
391
392    // Testimonial Slider Two
393    $('.cs_testimonial_thumb').slick({
394      slidesToShow: 1,
395      slidesToScroll: 1,
396      arrows: false,
397      asNavFor: '.cs_testimonial_nav',
398    });
399    if ($.exists('.cs_testimonial_nav-active')) {
400      $('.cs_testimonial_nav-active').each(function () {
401        var $slickActive = $(this).find('.cs_testimonial_nav');
402        $slickActive.slick({
403          slidesToShow: 2,
404          slidesToScroll: 1,
405          asNavFor: '.cs_testimonial_thumb',
406          focusOnSelect: true,
407          prevArrow: $(this).find('.cs_slider_prev'),
408          nextArrow: $(this).find('.cs_slider_next'),
409        });
410      });
411    }
412  }
413
414  /*--------------------------------------------------------------
415    6. Parallax Slider Swiper
416  --------------------------------------------------------------*/
417  function parallaxSwiperSlider() {
418    if ($.exists('.cs_parallax_slider')) {
419      // Params
420      let mainSliderSelector = '.cs_parallax_slider',
421        interleaveOffset = 0.5;
422      // Main Slider
423      let mainSliderOptions = {
424        loop: true,
425        speed: 1000,
426        autoplay: false,
427        loopAdditionalSlides: 10,
428        grabCursor: true,
429        watchSlidesProgress: true,
430        // mousewheel: true,
431        navigation: {
432          nextEl: '.cs_swiper_button_next',
433          prevEl: '.cs_swiper_button_prev',
434        },
435        pagination: false,
436        on: {
437          init: function () {
438            this.autoplay.stop();
439          },
440          imagesReady: function () {
441            this.el.classList.remove('loading');
442            this.autoplay.start();
443          },
444          progress: function (swiper) {
445            for (let i = 0; i < swiper.slides.length; i++) {
446              let slideProgress = swiper.slides[i].progress,
447                innerOffset = swiper.width * interleaveOffset,
448                innerTranslate = slideProgress * innerOffset;
449
450              swiper.slides[i].querySelector(
451                '.cs_swiper_parallax_bg',
452              ).style.transform = 'translateX(' + innerTranslate + 'px)';
453            }
454          },
455          touchStart: function (swiper) {
456            for (let i = 0; i < swiper.slides.length; i++) {
457              swiper.slides[i].style.transition = '';
458            }
459          },
460          setTransition: function (swiper, transition) {
461            for (let i = 0; i < swiper.slides.length; i++) {
462              swiper.slides[i].style.transition = transition + 'ms';
463              swiper.slides[i].querySelector(
464                '.cs_swiper_parallax_bg',
465              ).style.transition = transition + 'ms';
466            }
467          },
468        },
469      };
470      let mainSlider = new Swiper(mainSliderSelector, mainSliderOptions);
471    }
472  }
473
474  /*--------------------------------------------------------------
475    7. Isotop Initialize
476  --------------------------------------------------------------*/
477  function isotopInit() {
478    if ($.exists('.cs_isotop')) {
479      $('.cs_isotop').isotope({
480        itemSelector: '.cs_isotop_item',
481        transitionDuration: '0.60s',
482        percentPosition: true,
483        masonry: {
484          columnWidth: '.cs_grid_sizer',
485        },
486      });
487      /* Active Class of Portfolio*/
488      $('.cs_isotop_filter li').on('click', function (event) {
489        $(this).siblings('.active').removeClass('active');
490        $(this).addClass('active');
491        event.preventDefault();
492      });
493      /*=== Portfolio filtering ===*/
494      $('.cs_isotop_filter').on('click', 'a', function () {
495        var filterElement = $(this).attr('data-filter');
496        $('.cs_isotop').isotope({
497          filter: filterElement,
498        });
499      });
500    }
501  }
502
503  /*--------------------------------------------------------------
504    8. Review
505  --------------------------------------------------------------*/
506  function review() {
507    $('.cs_rating').each(function () {
508      var review = $(this).data('rating');
509      var reviewVal = review * 20 + '%';
510      $(this).find('.cs_rating_percentage').css('width', reviewVal);
511    });
512  }
513
514  /*--------------------------------------------------------------
515    9. Modal Video
516  --------------------------------------------------------------*/
517  function modalVideo() {
518    if ($.exists('.cs_video_open')) {
519      $('body').append(`
520        <div class="cs_video_popup">
521          <div class="cs_video_popup-overlay"></div>
522          <div class="cs_video_popup-content">
523            <div class="cs_video_popup-layer"></div>
524            <div class="cs_video_popup-container">
525              <div class="cs_video_popup-align">
526                <div class="embed-responsive embed-responsive-16by9">
527                  <iframe class="embed-responsive-item" src="about:blank"></iframe>
528                </div>
529              </div>
530              <div class="cs_video_popup-close"></div>
531            </div>
532          </div>
533        </div>
534      `);
535      $(document).on('click', '.cs_video_open', function (e) {
536        e.preventDefault();
537        var video = $(this).attr('href');
538
539        $('.cs_video_popup-container iframe').attr('src', `${video}`);
540
541        $('.cs_video_popup').addClass('active');
542      });
543      $('.cs_video_popup-close, .cs_video_popup-layer').on(
544        'click',
545        function (e) {
546          $('.cs_video_popup').removeClass('active');
547          $('html').removeClass('overflow-hidden');
548          $('.cs_video_popup-container iframe').attr('src', 'about:blank');
549          e.preventDefault();
550        },
551      );
552    }
553  }
554
555  /*--------------------------------------------------------------
556    10. Tabs
557  --------------------------------------------------------------*/
558  function tabs() {
559    $('.cs_tabs .cs_tab_links a').on('click', function (e) {
560      var currentAttrValue = $(this).attr('href');
561      $('.cs_tabs ' + currentAttrValue)
562        .fadeIn(400)
563        .siblings()
564        .hide();
565      $(this).parents('li').addClass('active').siblings().removeClass('active');
566      e.preventDefault();
567    });
568  }
569
570  /*--------------------------------------------------------------
571    11. Accordian
572  --------------------------------------------------------------*/
573  function accordian() {
574    $('.cs_accordian').children('.cs_accordian_body').hide();
575    $('.cs_accordian.active').children('.cs_accordian_body').show();
576    $('.cs_accordian_head').on('click', function () {
577      $(this)
578        .parent('.cs_accordian')
579        .siblings()
580        .children('.cs_accordian_body')
581        .slideUp(250);
582      $(this).siblings().slideDown(250);
583      $(this)
584        .parent()
585        .parent()
586        .siblings()
587        .find('.cs_accordian_body')
588        .slideUp(250);
589      /* Accordian Active Class */
590      $(this).parents('.cs_accordian').addClass('active');
591      $(this).parent('.cs_accordian').siblings().removeClass('active');
592    });
593  }
594
595  /*--------------------------------------------------------------
596    12. Counter Animation
597  --------------------------------------------------------------*/
598  function counterInit() {
599    if ($.exists('.odometer')) {
600      $(window).on('scroll', function () {
601        function winScrollPosition() {
602          var scrollPos = $(window).scrollTop(),
603            winHeight = $(window).height();
604          var scrollPosition = Math.round(scrollPos + winHeight / 1.2);
605          return scrollPosition;
606        }
607
608        $('.odometer').each(function () {
609          var elemOffset = $(this).offset().top;
610          if (elemOffset < winScrollPosition()) {
611            $(this).html($(this).data('count-to'));
612          }
613        });
614      });
615    }
616  }
617
618  /*--------------------------------------------------------------
619    13. Ripple
620  --------------------------------------------------------------*/
621  function rippleInit() {
622    if ($.exists('.cs_ripple_version')) {
623      $('.cs_ripple_version').each(function () {
624        $('.cs_ripple_version').ripples({
625          resolution: 512,
626          dropRadius: 20,
627          perturbance: 0.04,
628        });
629      });
630    }
631  }
632
633  /*--------------------------------------------------------------
634    14. Progress Bar
635  --------------------------------------------------------------*/
636  function progressBar() {
637    $('.cs_progress').each(function () {
638      var progressPercentage = $(this).data('progress') + '%';
639      $(this).find('.cs_progress_in').css('width', progressPercentage);
640    });
641  }
642
643  /*--------------------------------------------------------------
644    19. CountDown
645  --------------------------------------------------------------*/
646  function countDown() {
647    if ($.exists('.cs_countdown')) {
648      $('.cs_countdown').each(function () {
649        var _this = this;
650        var el = $(_this).data('countdate');
651        var countDownDate = new Date(el).getTime();
652        var x = setInterval(function () {
653          var now = new Date().getTime();
654          var distance = countDownDate - now;
655          var days = Math.floor(distance / (1000 * 60 * 60 * 24));
656          var hours = Math.floor(
657            (distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60),
658          );
659          var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
660          var seconds = Math.floor((distance % (1000 * 60)) / 1000);
661          $(_this).find('#cs_count_days').html(days);
662          $(_this).find('#cs_count_hours').html(hours);
663          $(_this).find('#cs_count_minutes').html(minutes);
664          $(_this).find('#cs_count_seconds').html(seconds);
665
666          if (distance < 0) {
667            clearInterval(x);
668            $(_this).html("<div class='cs_token_expired'>TOKEN EXPIRED<div>");
669          }
670        }, 1000);
671      });
672    }
673  }
674
675  /*--------------------------------------------------------------
676    15. Dynamic contact form
677  --------------------------------------------------------------*/
678  if ($.exists('#cs-form')) {
679    const form = document.getElementById('cs-form');
680    const result = document.getElementById('cs-result');
681
682    form.addEventListener('submit', function (e) {
683      const formData = new FormData(form);
684      e.preventDefault();
685      var object = {};
686      formData.forEach((value, key) => {
687        object[key] = value;
688      });
689      var json = JSON.stringify(object);
690      result.innerHTML = 'Please wait...';
691
692      fetch('https://api.web3forms.com/submit', {
693        method: 'POST',
694        headers: {
695          'Content-Type': 'application/json',
696          Accept: 'application/json',
697        },
698        body: json,
699      })
700        .then(async response => {
701          let json = await response.json();
702          if (response.status == 200) {
703            result.innerHTML = json.message;
704          } else {
705            console.log(response);
706            result.innerHTML = json.message;
707          }
708        })
709        .catch(error => {
710          console.log(error);
711          result.innerHTML = 'Something went wrong!';
712        })
713        .then(function () {
714          form.reset();
715          setTimeout(() => {
716            result.style.display = 'none';
717          }, 5000);
718        });
719    });
720  }
721  /*--------------------------------------------------------------
722    21. Dynamic contact form
723  --------------------------------------------------------------*/
724  function ecommerce() {
725    // Star Rating Input
726    $('.cs_input_rating i').on('click', function () {
727      $(this).siblings().removeClass('fa-solid');
728      $(this).addClass('fa-solid').prevAll().addClass('fa-solid');
729    });
730    // Product Single Slider
731    $('.cs_single_product_thumb').slick({
732      slidesToShow: 1,
733      slidesToScroll: 1,
734      arrows: false,
735      asNavFor: '.cs_single_product_nav',
736    });
737
738    $('.cs_single_product_nav').slick({
739      slidesToShow: 4,
740      slidesToScroll: 1,
741      asNavFor: '.cs_single_product_thumb',
742      focusOnSelect: true,
743      arrows: false,
744    });
745    // Check All
746    $('#checkAll').change(function () {
747      var isChecked = $(this).prop('checked');
748      $('table input[type="checkbox"]').prop('checked', isChecked);
749    });
750    // Range Slider
751    if ($.exists('#slider-range')) {
752      $('#slider-range').slider({
753        range: true,
754        min: 0,
755        max: 1000,
756        values: [100, 600],
757        slide: function (event, ui) {
758          $('#amount').val('Price: $' + ui.values[0] + ' - $' + ui.values[1]);
759        },
760      });
761    }
762    if ($.exists('#amount')) {
763      $('#amount').val(
764        'Price: $' +
765          $('#slider-range').slider('values', 0) +
766          ' - $' +
767          $('#slider-range').slider('values', 1),
768      );
769    }
770    // Counter
771    $('.cs_increment').click(function () {
772      var countElement = $(this).siblings('.cs_quantity_input');
773      var count = parseInt(countElement.text());
774      count++;
775      countElement.text(count);
776    });
777
778    $('.cs_decrement').click(function () {
779      var countElement = $(this).siblings('.cs_quantity_input');
780      var count = parseInt(countElement.text());
781      if (count > 0) {
782        count--;
783        countElement.text(count);
784      }
785    });
786  }
787})(jQuery); // End of use strict

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.