PageSourceSearch

https://www.builditluxury.net/wp-content/themes/seapearl-wp/assets/js/main.js?ver=1.0

js builditluxury.net collected 2026-10-02 02:02:06 UTC 11,286 bytes, 368 lines download raw bytes

1(function ($) {
2  'use strict';
3
4  $(window).on('load', function () {
5    preloader();
6  });
7  
8  $(function () {
9    mainNav();
10    stickyHeader();
11    dynamicBackground();
12    scrollUp(); 
13  });
14      
15  function preloader() {
16    $('.cs_preloader_in').fadeOut();
17    $('.cs_preloader').delay(150).fadeOut('slow');
18  }
19
20  /*--------------------------------------------------------------
21    2. Mobile Menu
22  --------------------------------------------------------------*/
23  function mainNav() {
24      $('.cs_nav').append('<span class="cs_menu_toggle"><span></span></span>');
25      $('.menu-item-has-children').append(
26        '<span class="cs_menu_dropdown_toggle"><span></span></span>',
27      );
28      $('.cs_menu_toggle').on('click', function () {
29        $(this)
30          .toggleClass('cs_toggle_active')
31          .parent() // First, get the parent of .cs_menu_toggle
32          .find('.cs_nav_list') // Then, find the desired .cs_nav_list
33          .toggleClass('cs_active');
34      });
35      $('.cs_menu_toggle')
36        .parents('body')
37        .find('.cs_side_header')
38        .addClass('cs_has_main_nav');
39      $('.cs_menu_toggle')
40        .parents('body')
41        .find('.cs_toolbox')
42        .addClass('cs_has_main_nav');
43      $('.cs_menu_dropdown_toggle').on('click', function () {
44        $(this).toggleClass('active').siblings('ul').slideToggle();
45        $(this).parent().toggleClass('active');
46      });
47      // Side Nav
48      $('.cs_hamburger_info_btn').on('click', function () {
49        $('.cs_side_header').addClass('active');
50        $('html').addClass('cs_hamburger_active');
51      });
52      $('.cs_close, .cs_side_header_overlay').on('click', function () {
53        $('.cs_side_header').removeClass('active');
54        $('html').removeClass('cs_hamburger_active');
55      });
56      // Hamburger Menu
57      $('.cs_hamburger_menu .menu-item-has-children>a').on('click', function (e) {
58        e.preventDefault();
59        $(this).siblings('ul').slideToggle();
60        $(this).siblings('.cs_menu_dropdown_toggle').toggleClass('active');
61      });
62    
63      $('.cs_hamburger_btn').on('click', function (e) {
64        $('.cs_hamburger_header').addClass('active');
65        $('html').addClass('cs_hamburger_active');
66      });
67      $('.cs_close_hamburger').on('click', function (e) {
68        $('.cs_hamburger_header').removeClass('active');
69        $('html').removeClass('cs_hamburger_active');
70      });
71    }
72    
73    /*--------------------------------------------------------------
74      3. Sticky Header
75    --------------------------------------------------------------*/
76    function stickyHeader() {
77      var $window = $(window);
78      var lastScrollTop = 0;
79      var $header = $('.cs_sticky_header');
80      var headerHeight = $header.outerHeight() + 30;
81  
82      $window.scroll(function () {
83        var windowTop = $window.scrollTop();
84  
85        if (windowTop >= headerHeight) {
86          $header.addClass('cs_gescout_sticky');
87        } else {
88          $header.removeClass('cs_gescout_sticky');
89          $header.removeClass('cs_gescout_show');
90        }
91  
92        if ($header.hasClass('cs_gescout_sticky')) {
93          if (windowTop < lastScrollTop) {
94            $header.addClass('cs_gescout_show');
95          } else {
96            $header.removeClass('cs_gescout_show');
97          }
98        }
99  
100        lastScrollTop = windowTop;
101      });
102    }
103
104     /*--------------------------------------------------------------
105    4. Dynamic Background
106  --------------------------------------------------------------*/
107  function dynamicBackground() {
108      $('[data-src]').each(function () {
109        var src = $(this).attr('data-src');
110        $(this).css({
111          'background-image': 'url(' + src + ')',
112        });
113      });
114    }
115
116        /*--------------------------------------------------------------
117    8. Scroll Up
118  --------------------------------------------------------------*/
119  function scrollUp() {
120      $('.cs_scrollup_active').on('click', function (e) {
121        e.preventDefault();
122        $('html,body').animate(
123          {
124            scrollTop: 0,
125          },
126          0,
127        );
128      });
129    }
130
131  // Define the exists function
132  $.fn.exists = function () {
133    return this.length !== 0;
134  };
135
136  /* Start Gallery Slider */
137  if ($('.cs_gallery_slider_thumb').exists()) {
138    $('.cs_gallery_slider_thumb').slick({
139      slidesToShow: 1,
140      slidesToScroll: 1,
141      prevArrow: $('.cs_left_arrow_gallery'),
142      nextArrow: $('.cs_right_arrow_gallery'),
143      asNavFor: '.cs_gallery_slider_nav',
144      fade: true,
145    });
146    $('.cs_gallery_slider_nav').slick({
147      slidesToShow: 3,
148      slidesToScroll: 1,
149      asNavFor: '.cs_gallery_slider_thumb',
150      focusOnSelect: true,
151      arrows: false,
152      vertical: true,
153      centerMode: true,
154      centerPadding: '0px',
155    });
156  }
157
158  if ($('.cs_gallery_slider_thumb_2').exists()) {
159    $('.cs_gallery_slider_thumb_2').slick({
160      slidesToShow: 1,
161      slidesToScroll: 1,
162      prevArrow: $('.cs_left_arrow_gallery_2'),
163      nextArrow: $('.cs_right_arrow_gallery_2'),
164      asNavFor: '.cs_gallery_slider_nav_2',
165      speed: 1000,
166    });
167    $('.cs_gallery_slider_nav_2').slick({
168      slidesToShow: 3,
169      slidesToScroll: 1,
170      asNavFor: '.cs_gallery_slider_thumb_2',
171      focusOnSelect: true,
172      arrows: false,
173      centerMode: true,
174      centerPadding: '0px',
175      speed: 1000,
176    });
177  }
178  /* End Gallery Slider */
179  if ($('.cs_related_slide').exists()) {
180    $('.cs_related_slide').slick({
181      dots: false,
182      infinite: false,
183      speed: 300,
184      arrows: true,
185      prevArrow: $('.cs_relate_left'),
186      nextArrow: $('.cs_relate_right'),
187      slidesToShow: 3,
188      slidesToScroll: 3,
189      responsive: [
190        {
191          breakpoint: 1024,
192          settings: {
193            slidesToShow: 3,
194            slidesToScroll: 3,
195            infinite: true,
196            dots: true
197          }
198        },
199        {
200          breakpoint: 600,
201          settings: {
202            slidesToShow: 2,
203            slidesToScroll: 2
204          }
205        },
206        {
207          breakpoint: 480,
208          settings: {
209            slidesToShow: 1,
210            slidesToScroll: 1
211          }
212        }
213      ]
214    });
215  }
216
217  jQuery(window).on('load', function() {
218    function initMasonry() {
219        var $grid = $('.sp-wp-masonry,.row.grid').masonry({
220            // options
221            itemSelector: '.sp-wp-masonry-item,.row.grid .grid-item',
222        });
223        
224        // layout Masonry after each image loads
225        $grid.imagesLoaded().progress(function() {
226            $grid.masonry('layout');
227        });
228    }
229    
230    function destroyMasonry() {
231        var $grid = $('.sp-wp-masonry,.row.grid').masonry();
232        $grid.masonry('destroy');
233    }
234
235    var isMasonryInitialized = false;
236
237    function checkMasonry() {
238        if (jQuery(window).width() > 992) {
239            if (!isMasonryInitialized) {
240                initMasonry();
241                isMasonryInitialized = true;
242            }
243        } else {
244            if (isMasonryInitialized) {
245                destroyMasonry();
246                isMasonryInitialized = false;
247            }
248        }
249    }
250
251    // Check on load
252    checkMasonry();
253
254    // Check on resize
255    jQuery(window).on('resize', function() {
256        checkMasonry();
257    });
258});
259
260})(jQuery); // End of use strict
261
262jQuery(document).ready(function($) {
263
264  // Date range picker initialization
265  function daterangepickerInit() {
266      let dateToday = new Date();
267      let formattedDate = dateToday.toISOString().split('T')[0];
268      $('.cs_start_date_value').text(formattedDate);
269      dateToday.setDate(dateToday.getDate() + 1);
270      formattedDate = dateToday.toISOString().split('T')[0];
271      $('.cs_end_date_value').text(formattedDate);
272
273      $('input[name="datetimes"]').daterangepicker({
274          startDate: formattedDate,
275          endDate: formattedDate,
276          autoApply: true,
277          locale: {
278              format: 'MM/DD/YYYY'
279          }
280      }, function(start, end, label) {
281          let cs_start_date = start.format('YYYY-MM-DD').toString();
282          let cs_end_date = end.format('YYYY-MM-DD').toString();
283          $('.cs_start_date').text(cs_start_date);
284          $('.cs_end_date').text(cs_end_date);
285          $('input[name="datetimes"]').val(cs_start_date + ' - ' + cs_end_date);
286      });
287  }
288
289  // Quantity selector initialization
290function quantityInit() {
291$(document).on('click', function(event) {
292    if (!$(event.target).closest('.cs_quantity_wrap').length) {
293        $('.cs_quantity_wrap').removeClass('active');
294    }
295});
296
297$('.cs_quantity_btn').on('click', function() {
298    $('.cs_quantity_wrap').removeClass('active');
299    $(this).parents('.cs_quantity_wrap').toggleClass('active');
300});
301
302$('.cs_quantity_btn').each(function() {
303    var initialNumber = parseInt($(this).data('initial-number'), 10);
304    var targetInput = $(this).data('target');
305    $(targetInput).val(initialNumber); // Set the initial value to the hidden input
306    $(this)
307        .text(pad(initialNumber))
308        .siblings('.cs_quantity_dropdown')
309        .find('.cs_quantity_number')
310        .text(pad(initialNumber));
311});
312
313$('.cs_quantity_increment').on('click', function() {
314    var maxNumber = parseInt(
315        $(this).siblings('.cs_quantity_number').data('max-value'),
316        10,
317    );
318    var currentValue = parseInt(
319        $(this).siblings('.cs_quantity_number').text(),
320        10,
321    );
322    if (currentValue < maxNumber) {
323        var newValue = currentValue + 1;
324        $(this)
325            .siblings('.cs_quantity_number')
326            .text(pad(newValue));
327        $(this)
328            .parents('.cs_quantity_dropdown')
329            .siblings('.cs_quantity_btn')
330            .text(pad(newValue));
331        var targetInput = $(this).parents('.cs_quantity_wrap').find('.cs_quantity_btn').data('target');
332        $(targetInput).val(newValue); // Update the hidden input value
333    }
334});
335
336$('.cs_quantity_decrement').on('click', function() {
337    var minNumber = parseInt(
338        $(this).siblings('.cs_quantity_number').data('min-value'),
339        10,
340    );
341    var currentValue = parseInt(
342        $(this).siblings('.cs_quantity_number').text(),
343        10,
344    );
345    if (currentValue > minNumber) {
346        var newValue = currentValue - 1;
347        $(this)
348            .siblings('.cs_quantity_number')
349            .text(pad(newValue));
350        $(this)
351            .parents('.cs_quantity_wrap')
352            .find('.cs_quantity_btn')
353            .text(pad(newValue));
354        var targetInput = $(this).parents('.cs_quantity_wrap').find('.cs_quantity_btn').data('target');
355        $(targetInput).val(newValue); // Update the hidden input value
356    }
357});
358
359function pad(num) {
360    var paddedNum = ('0' + num).slice(-2);
361    return paddedNum;
362}
363}
364
365  // Initialize functions on document ready
366  daterangepickerInit();
367  quantityInit();
368});

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.