PageSourceSearch

https://trasloservice.com/wp-content/themes/traslo/js/digicrab.js?ver=1791281247

js trasloservice.com collected 2026-10-06 10:07:52 UTC 14,992 bytes, 421 lines download raw bytes

1/*** BEFORE DOCUMENT READY SO PSUEDO CLASSES ARE LOADED ****/
2
3jQuery('.menu-item-has-children > a').append('<span class="icon-arrow-right"></span>');
4jQuery('.sub-menu').prepend('<li class="mobile-only go-back"><a><span class="icon-arrow-left"></span>Go Back</a></li>');
5jQuery('.quick-quote input[type="submit"]').wrap('<a class="aligncenter brand-button-submit"></a>');
6jQuery('.contact-forms input[type="submit"]').wrap('<a class="brand-button-submit"></a>');
7jQuery('.full-height-image input[type="submit"]').wrap('<a class="white-button-submit"></a>');
8
9
10/**** DOCUMENT READY ****/
11jQuery(document).ready(function($){
12
13    const lang = $("html").attr('lang')
14    var text = 'By clicking on the button to proceed, you accept our ';
15    switch(lang){
16        case 'it-IT':
17            text = 'Cliccando sul pulsante per procedere, accetti la nostra ';
18            break;
19        case 'es-ES':
20            text = 'Al hacer clic en el botón para continuar, acepta nuestra';
21            break;
22    }
23
24    $("[type='submit'], .pay-invoice [type='button']").parent().parent().append(
25        [
26            '<div style="display: flex; align-items: center;" class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons elementor-md-50">',
27                //'<input type="checkbox" class="accept-privacy" style="display: inline; max-width: 50px;">',
28                '<span style="color: ',($(".pay-invoice [type='button']").length ? 'black' : 'white'),';">',
29                    text+' <a style="color: white; text-decoration: underline" href="/wp-content/uploads/2023/05/Traslo-Service-LTD-Privacy-Policy-2023.pdf">privacy policy</a>',
30                '</span>',
31            '</div>'
32        ].join('')
33    )
34
35    /*$("[type='submit'], .pay-invoice [type='button']").prop('disabled',true).css('pointerEvents','none')
36
37    $(".accept-privacy").click(function(){
38        $("[type='submit'], .pay-invoice [type='button']").prop('disabled',!$(this).is(':checked')).css('pointerEvents',$(this).is(':checked') ? '' : 'none')
39    })*/
40            
41    //Slick slider
42    
43	jQuery('.full-page-slider').slick({
44		infinite: true,
45  		dots: true,
46        autoplay: false,
47        autoplaySpeed: 3500,
48        });
49    
50    jQuery('.three-showing-slider').slick({
51        slidesToShow: 3,
52        slidesToScroll: 1,    
53		dots: false,
54        centerMode: true,
55        infinite: false,
56        responsive: [{
57            breakpoint: 1140,
58            settings: {    
59		        slidesToShow: 1,    
60                }
61            }]
62        });
63    
64    jQuery('.slide').removeClass('hide');
65    
66    // Preview previous/next slide
67    
68    jQuery('.full-page-slider .slick-prev').hover(function() {
69        jQuery('.slick-track').toggleClass('tease-right');
70        });
71    
72    jQuery('.full-page-slider .slick-next').hover(function() {
73        jQuery('.slick-track').toggleClass('tease-left');
74        });
75            
76    // Set the three-showing slider to the middle slide as initialSlide doesn't work
77    
78    jQuery(function() {
79        setTimeout(function () {
80            jQuery('.three-showing-slider').slickSetOption('speed', 0).slickGoTo(2).slickSetOption('speed', 300);
81        }, 10);
82    });
83    
84    //Edit Link Button 
85    jQuery('.edit-link a').addClass('black-button');
86            
87    jQuery('img').parent('a').addClass('image-link');
88    
89    //Input hover effect
90    
91    
92    
93    //Navigation
94    
95    function open_overlays() {
96        jQuery('html').addClass('active-overlay');
97        jQuery('.overlay').removeClass('hide').addClass('fade-in');
98        }
99    
100    function close_overlays() {
101        jQuery('html').removeClass('active-overlay active-menu');
102        jQuery('.overlay').addClass('hide').removeClass('fade-in');
103        jQuery('[class*="fade-overlay"]').addClass('hide').removeClass('fade-move-down');
104        if(jQuery('.enquiry-fade-overlay').hasClass('has-value')) {
105            setTimeout(function() {
106                jQuery('.reminder').removeClass('hide').addClass('fade-move-down');
107                }, 1500);
108            }
109        }
110    
111    
112    jQuery('.site-header .language-switcher a').click(function() {
113        jQuery(this).addClass('active');
114        open_overlays();
115        jQuery('html').removeClass('active-menu');
116        jQuery('.language-switcher-fade-overlay').removeClass('hide').addClass('fade-in');
117        return false;
118        });
119                                                 
120    jQuery('.close, .overlay').click(function() {
121        close_overlays();
122        });
123    
124    jQuery(document).keydown(function(e) {
125        // ESCAPE key pressed
126        if (e.keyCode == 27) {
127            close_overlays();
128            } 
129        });
130    
131    jQuery('.watch-video a').click(function() {
132        jQuery(this).addClass('active');
133        open_overlays();
134        jQuery('html').removeClass('active-menu');
135        jQuery('.video-fade-overlay').removeClass('hide').addClass('fade-in');
136        });
137    
138    jQuery('.site-header .icon-phone2').click(function() {
139        jQuery(this).addClass('active');
140        open_overlays();
141        jQuery('html').removeClass('active-menu');
142        jQuery('.contact-details-fade-overlay').removeClass('hide').addClass('fade-in');
143        });
144    
145    jQuery('.has-value.hide').click(function() { //ENQUIRY REMINDER
146        jQuery(this).removeClass('hide');
147        open_overlays();
148        });
149    
150    
151    
152    //Entry Header Heights Set
153    
154    var $headerHeight = jQuery('.entry-header .vertical-align').outerHeight();
155    jQuery('.entry-header .height-filler').css('height', $headerHeight);
156    
157    
158    //Height Match
159    
160    jQuery(window).load(function() {
161    var elementHeights = jQuery('.height-match').map(function() {
162        return jQuery(this).height();
163        })
164    var maxHeight = Math.max.apply(null, elementHeights);
165    jQuery('.height-match').height(maxHeight);
166    jQuery('.height-match h3').addClass('full vertical-align horizontal-align');
167        
168        
169    var elementHeightsTwo = jQuery('.height-match-two').map(function() {
170        return jQuery(this).height();
171        })
172    var maxHeight = Math.max.apply(null, elementHeightsTwo);
173    jQuery('.height-match-two').height(maxHeight);
174    jQuery('.height-match-two h4').addClass('full vertical-align horizontal-align');
175    });
176
177    /*************** SMOOTH SCROLLING ***************/
178
179    jQuery(function() {
180      jQuery('a[href*="#scrollto"]:not([href="#"])').click(function() {
181        event.preventDefault();
182        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
183          var target = jQuery(this.hash);
184          target = target.length ? target : jQuery('[name=' + this.hash.slice(1) +']');
185          if (target.length) {
186            jQuery('html,body').animate({
187              scrollTop: target.offset().top
188            }, 500);
189            return false;
190          }
191        }
192      });
193    });
194    
195    /*************************************************/
196
197jQuery('.get-enquiry').bind('click', function() {
198    jQuery(this).parents('.quick-quote-container').removeClass('fade-move-down').addClass('hide');
199    jQuery(this).parents('.quick-quote-container').next('.enquiry-form-container').removeClass('hide').addClass('fade-move-down');
200    });
201
202jQuery('.get-quote').bind('click', function() {
203    jQuery(this).parents('.enquiry-form-container').removeClass('fade-move-down').addClass('hide');
204    jQuery(this).parents('.enquiry-form-container').prev('.quick-quote-container').removeClass('hide').addClass('fade-move-down');
205    });
206
207/******************************/
208
209jQuery('.enquiry-fade-overlay input, .enquiry-fade-overlay textarea').change(function() {
210    setTimeout(function() {
211        if (jQuery('.enquiry-fade-overlay input, .enquiry-fade-overlay textarea').hasClass('valid')) {
212            jQuery('.enquiry-fade-overlay').addClass('has-value');
213            var enquiryWidth = jQuery('.enquiry-fade-overlay').innerWidth();
214            var enquiryHeight = jQuery('.enquiry-fade-overlay').innerHeight();
215            jQuery('.enquiry-fade-overlay').css({
216                'width': enquiryWidth, 
217                'height': enquiryHeight
218                });
219            }
220
221        else {
222            jQuery('.enquiry-fade-overlay').removeClass('has-value');
223            }
224        }, 300)    
225    });
226    
227 
228/******************************/   
229
230jQuery('a[href="#scrollto-quote"]').click(function() {
231    setTimeout(function() {
232        jQuery('.quick-quote').addClass('bg-flash'); 
233        }, 500);
234    
235    setTimeout(function() {
236        jQuery('.quick-quote').removeClass('bg-flash'); 
237        }, 3500);
238    });
239    
240    
241/*******************************/
242    
243
244    
245jQuery('.icon-menu').click(function() {
246    if(!jQuery('html').hasClass('active-menu')) {
247        jQuery('html').addClass('active-menu');
248        open_overlays();
249        
250        }
251    else {
252        jQuery('html').removeClass('active-menu');
253        close_overlays();
254        }
255    
256    });
257    
258jQuery('.site-header .menu-item-has-children > a .icon-arrow-right').click(function() {
259    jQuery(this).parents('li').find('.width-contain').addClass('active');
260    return false;
261    });
262    
263jQuery('.go-back').click(function() {
264    jQuery(this).parents('.width-contain').removeClass('active');
265    });
266    
267    
268    /******* slider loading *********/
269    
270    jQuery('.slide').mouseover(function() {
271        var next = jQuery(this).next('.slide').children('.featured-image');
272        var nextImage = jQuery(next).attr('slider-bg');
273        jQuery(next).css('background-image', 'url(' + nextImage + ')');
274        });
275    
276    jQuery('.slick-prev').mouseover(function() {
277        var prev = jQuery('.slick-active').prev('.slide').children('.featured-image');
278        var prevImage = jQuery(prev).attr('slider-bg');
279        jQuery(prev).css('background-image', 'url(' + prevImage + ')');
280        console.log(prev);
281        console.log(prevImage);
282        });    
283    
284    setTimeout(function() {
285        
286        jQuery('[slider-bg]').each(function() {
287            var dataBG = jQuery(this).attr('slider-bg');
288            jQuery(this).css('background-image', 'url(' + dataBG + ')');
289            });
290    
291        jQuery('[data-bg]').each(function() {
292            var dataBG = jQuery(this).attr('data-bg');
293            jQuery(this).css('background-image', 'url(' + dataBG + ')');
294            });
295        }, 6000);    
296    
297}); //end ready
298
299
300
301
302// https://developers.google.com/youtube/iframe_api_reference
303
304// global variable for the player
305var player;
306
307// this function gets called when API is ready to use
308function onYouTubePlayerAPIReady() {
309      // create the global player from the specific iframe (#video)
310      player = new YT.Player('video1', {
311        events: {
312          // call this function when player is ready to use
313          'onReady': onPlayerReady,
314          'onStateChange': onPlayerStateChange
315        }
316      });
317    }
318
319function onPlayerReady(event) {
320  
321  // bind events
322    jQuery('.watch-video a').bind("click", function() {
323        player.playVideo(); 
324        });
325    
326    jQuery('.overlay').bind("click", function() {
327        player.pauseVideo(); 
328        });
329    
330    jQuery(document).keydown(function(e) {
331        // ESCAPE key pressed
332        if (e.keyCode == 27) {
333            player.pauseVideo(); 
334            }
335        }); 
336    }
337
338function onPlayerStateChange(event) {        
339    if(event.data === 0) {          
340        jQuery('.video-fade-overlay').addClass('hide').removeClass('fade-in');
341        jQuery('.reminder').addClass('hide').removeClass('fade-in');
342        setTimeout(function () {
343            jQuery('.enquiry-fade-overlay').removeClass('hide');
344            jQuery('.enquiry-fade-overlay .width-contain').addClass('fade-move-down');
345            }, 0)
346        }
347    }
348// Inject YouTube API script
349var tag = document.createElement('script');
350tag.src = "https://www.youtube.com/player_api";
351var firstScriptTag = document.getElementsByTagName('script')[0];
352firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
353
354
355
356//PAY INVOICE ONLINE
357
358jQuery(document).ready(function($) {
359        $(document).on("change", ".affects-price, [name='email']", function() {
360            var initialAmount = $(".initial-amount").val();
361            if($(".card-type option:selected").val() == "credit-card") {
362                initialAmount = (initialAmount * 1.022).toFixed(2);
363                }
364            $(".total").val(initialAmount);
365
366                
367                    console.log(initialAmount);
368            });
369        
370        $(document).on("change", ".invoice-number", function() {
371            var invoiceNumber = $(".invoice-number").val();
372            var desc = "Invoice Number: " + invoiceNumber;
373            var cartId = invoiceNumber + "-ONLINE" 
374            $(".invoice-desc").val(desc);
375            $(".cartId").val(cartId);
376            });
377                
378        $(document).on("change", ".pay-invoice input, .pay-invoice select", function() {
379            if($(this).val() != "") {
380                $(this).parent().removeClass("error");
381                $(".overall-error").addClass("hide");
382                }            
383            });
384        
385        $(document).on("click", ".pay-invoice .submit", function(){
386            var proceed = true;
387            (function check_empty_inputs() {
388                $(".pay-invoice input, .pay-invoice select").each(function() {
389                    if($(this).val() == "") {
390                        $(this).parent().addClass("error");                        
391                        proceed = false;
392                        console.log($(this).attr("name"));
393                        }
394                    });
395                })();
396            
397            if(!proceed) {
398                $(".overall-error").removeClass("hide");
399                return false;
400                }
401
402                $.get('/wp-json/v1/extendedhash',{
403                    total: $(".initial-amount").val(),
404                    email: $('[name="email-email"]').val(),
405                    date: $('[name="txndatetime"]').val(),
406                    data: btoa($('.pay-invoice').serialize()),
407                    invoicenumber: $('[name="invoice-number"]').val(),
408                    v: (new Date()).getTime()
409                    },function(json){
410                        $('[name="chargetotal"]').val($(".initial-amount").val())
411                        $('[name="hashExtended"]').val(json.hash)
412                        $('[name="txndatetime"]').val(json.date)
413                        $("[name='responseSuccessURL']").val(json.url)
414                        $("[name='responseFailURL']").val(json.url)
415                        $("[name='email']").val(json.email)
416                        $("[name='invoicenumber']").val(json.invoicenumber)
417                        $('.pay-invoice-form').trigger('submit')
418                    })
419            });
420        
421        });

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.