PageSourceSearch

https://terrapass.com/wp-content/themes/TerraPass-twentytwenty/assets/js/terrapass.js?ver=1789991979

js terrapass.com collected 2026-09-24 17:10:38 UTC 23,341 bytes, 716 lines download raw bytes

1$ = jQuery;
2var siteUrl = document.location.origin;
3
4/*function redirectEurope() {
5	const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
6  
7  const BlockedCountries = ["America/Havana", "Asia/Tehran", "Asia/Pyongyang", "Asia/Damascus", "Europe/Kiev", "Europe/Moscow"];
8  
9  const UKcountries = ["Europe/London", "Europe/Brussels", "Europe/Berlin", "Europe/Madrid", "Europe/Paris", "Europe/Rome", "Europe/Budapest", "Europe/Tallinn", "Europe/Helsinki", "Europe/Athens", "Europe/Riga", "Europe/Vilnius", "Europe/Bucharest", "Europe/Stockholm", "Asia/Famagusta", "Europe/Amsterdam", "Europe/Vienna", "Europe/Warsaw", "Europe/Luxembourg", "Europe/Zagreb", "Europe/Prague", "Europe/Copenhagen", "Europe/Dublin", "Europe/Malta", "Europe/Lisbon", "Europe/Bratislava", "Europe/Ljubljana", "Europe/Sofia"]
10	console.log( "Timezone is : " + timezone );
11
12	if ( timezone === "" || !timezone ) {
13		return null;
14	}
15
16  if (BlockedCountries.includes(timezone)) 
17	{
18    let FullPageUrl = window.location.href;
19    let Url = (new URL(FullPageUrl));
20
21    const pathValue = Url.pathname;
22
23    if(pathValue.length> 1) {
24		  window.location.assign("https://" + Url.hostname);
25    }
26	}
27	
28	if (UKcountries.includes(timezone))
29	{
30		let Url =  window.location.hostname;
31		let Newurl = Url.replace( ".com",".co.uk" );
32    let Params = '?utm_source=' + Url + '&utm_medium=referral&utm_campaign=redirect';
33
34		window.location.replace( 'https://' + Newurl + Params );
35	}
36
37}
38
39redirectEurope();
40*/
41
42jQuery(document).ready(function ($) {
43  $("a.more-link").html(function () {
44    return $(this).html().replace("read more", "Read article");
45  });
46
47  $(window).on("scroll", function () {
48    if ($(this).scrollTop() > 600) {
49      $(".arrow-up").fadeIn();
50    } else {
51      $(".arrow-up").fadeOut();
52    }
53  });
54
55  $(".arrow-up a").click(function (event) {
56    event.preventDefault();
57    $("html, body").animate({ scrollTop: 0 }, "slow");
58    return false;
59  });
60
61  $(".terrapass-testimonial-slider-js").slick({
62    dots: true,
63    speed: 300,
64    slidesToShow: 1,
65    adaptiveHeight: true,
66    fade: true,
67    cssEase: "linear",
68    responsive: [
69      {
70        breakpoint: 1025,
71        settings: {
72          arrows: false,
73        },
74      },
75    ]
76  });
77
78  // Carousel on projects and client pages
79  $(".projectsCarousel").slick({
80    infinite: false,
81    slidesToShow: 3,
82    slidesToScroll: 3,
83    dots: true,
84    infinite: false,
85    dots: true,
86    accessibility: false,
87    responsive: [
88      {
89        breakpoint: 980,
90        settings: {
91          slidesToShow: 1,
92          slidesToScroll: 1,
93        },
94      },
95      {
96        breakpoint: 1500,
97        settings: {
98          slidesToShow: 2,
99          slidesToScroll: 2,
100        },
101      },
102    ],
103  });
104
105  // Woo commerce Product listing page slider
106  $(".wc-product-listings").slick({
107    dots: true,
108    infinite: true,
109    speed: 500,
110    fade: true,
111    cssEase: "linear",
112    responsive: [
113      {
114        breakpoint: 1500,
115        settings: {
116          arrows: false,
117        },
118      },
119    ],
120  });
121
122  $(".category-nav").click(function () {
123    var selectcatid = $(this).find("a").attr("data-id");
124    $(".subcategories-list li").removeClass("active");
125    $(this).addClass("active");
126    $(".terrapass-product-tabcontent ").hide();
127    $("#category-id-" + selectcatid).show();
128  });
129
130  /*
131   * Feature Partner code start
132   */
133  $("#feature-industry").change(function () {
134    var featureindustry = $("#feature-industry").val();
135    var featureprogram = $("#feature-program").val();
136    $.ajax({
137      type: "POST",
138      url: siteUrl + "/wp-admin/admin-ajax.php",
139      data: {
140        featureindustry: featureindustry,
141        featureprogram: featureprogram,
142        action: "fetch_featured_partner",
143      },
144      dataType: "json",
145      beforeSend: function () {
146        $(".partner-feature-list").empty();
147        $(".show-loading-msg").text("Please Wait ...");
148        $(".load-more-feature").attr("data-count", 2);
149      },
150      complete: function (response) {
151        $(".show-loading-msg").text("");
152        if (response.responseText == "No result found") {
153          $(".partner-feature-list").append(response.responseText);
154          $(".load-more-feature").hide();
155        } else {
156          $(".partner-feature-list").append(response.responseText);
157          $(".load-more-feature").show();
158          $(".load-more-msg").remove();
159
160          var parseTextToHtml = $.parseHTML(response.responseText);
161
162          if (parseTextToHtml.length < 9) {
163            $(".load-more-feature").hide();
164            $(".load-more-msg").remove();
165          }
166        }
167      },
168    });
169  });
170
171  $("#feature-program").change(function () {
172    var featureindustry = $("#feature-industry").val();
173    var featureprogram = $("#feature-program").val();
174    $.ajax({
175      type: "POST",
176      url: siteUrl + "/wp-admin/admin-ajax.php",
177      data: {
178        featureindustry: featureindustry,
179        featureprogram: featureprogram,
180        action: "fetch_featured_partner",
181      },
182      dataType: "json",
183      beforeSend: function () {
184        $(".partner-feature-list").empty();
185        $(".show-loading-msg").text("Please Wait ...");
186        $(".load-more-feature").attr("data-count", 2);
187      },
188      complete: function (response) {
189        $(".show-loading-msg").text("");
190        if (response.responseText == "No result found") {
191          $(".partner-feature-list").append(response.responseText);
192          $(".load-more-feature").hide();
193        } else {
194          $(".partner-feature-list").append(response.responseText);
195          $(".load-more-feature").show();
196          $(".load-more-msg").remove();
197
198          var parseTextToHtml = $.parseHTML(response.responseText);
199
200          if (parseTextToHtml.length < 9) {
201            $(".load-more-feature").hide();
202          }
203        }
204      },
205    });
206  });
207
208  $(".load-more-feature").click(function () {
209    var featureindustry = $("#feature-industry").val();
210    var featureprogram = $("#feature-program").val();
211    var datacounter = $(this).attr("data-count");
212    $.ajax({
213      type: "POST",
214      url: siteUrl + "/wp-admin/admin-ajax.php",
215      data: {
216        featureindustry: featureindustry,
217        featureprogram: featureprogram,
218        page: datacounter,
219        action: "fetch_featured_partner",
220      },
221      dataType: "json",
222      beforeSend: function () {
223        $(".show-loading-msg").text("Please Wait ...");
224        $(".load-more-feature").text("Loading ...");
225      },
226      complete: function (response) {
227        $(".show-loading-msg").text("");
228        if (response.responseText == "No result found") {
229          $(".msg-contain").append(
230            "<div class='load-more-msg'>No More Results</div>"
231          );
232          $(".load-more-feature").hide();
233        } else {
234          datacounter = parseInt(datacounter) + parseInt(1);
235          $(".load-more-feature").attr("data-count", datacounter);
236          $(".partner-feature-list").append(response.responseText);
237
238          $(".load-more-feature").show();
239          $(".load-more-msg").remove();
240
241          var parseTextToHtml = $.parseHTML(response.responseText);
242
243          if (parseTextToHtml.length < 9) {
244            $(".load-more-feature").hide();
245          }
246        }
247        $(".load-more-feature").text("Load More");
248      },
249    });
250  });
251
252  /*
253   * Feature project code start
254   */
255  $("#portfolio-year").change(function () {
256    var portfolioyear = $("#portfolio-year").val();
257    var projecttype = $("#project-type").val();
258    $.ajax({
259      type: "POST",
260      url: siteUrl + "/wp-admin/admin-ajax.php",
261      data: {
262        portfolioyear: portfolioyear,
263        projecttype: projecttype,
264        action: "fetch_featured_project",
265      },
266      dataType: "json",
267      beforeSend: function () {
268        $(".project-feature-list").empty();
269        $(".show-loading-msg").text("Please Wait ...");
270        $(".load-more-feature-project").attr("data-count", 2);
271      },
272      complete: function (response) {
273        $(".show-loading-msg").text("");
274        if (response.responseText == "No result found") {
275          $(".project-feature-list").append(response.responseText);
276          $(".load-more-feature-project").hide();
277        } else {
278          $(".project-feature-list").append(response.responseText);
279          $(".load-more-feature-project").show();
280          $(".load-more-msg").remove();
281        }
282      },
283    });
284  });
285
286  // Project desktop filter
287  $("#project-type-filter select").on("change", function (e) {
288    e.preventDefault();
289    $(this).addClass("active");
290    var projecttype = $(this).val();
291    var projectportfolio = $("#project-portfolio-filter select").val();
292
293    $.ajax({
294      type: "POST",
295      url: siteUrl + "/wp-admin/admin-ajax.php",
296      data: {
297        projecttype: projecttype,
298        projectportfolio: projectportfolio,
299        action: "fetch_featured_project_portfolio",
300      },
301      dataType: "json",
302      beforeSend: function () {
303        $(".project-feature-list").empty();
304        $(".show-loading-msg").text("Please Wait ...");
305        $(".load-more-feature-project").attr("data-count", 2);
306        $(".load-more-feature-project").attr("data-api", "fetch-project-portfolio");
307      },
308      complete: function (response) {
309        $(".show-loading-msg").text("");
310        if (response.responseText == "No result found") {
311          $(".project-feature-list").append(response.responseText);
312          $(".load-more-feature-project").hide();
313        } else {
314          $(".project-feature-list").append(response.responseText);
315          if (!projecttype && !projectportfolio) {
316            $(".load-more-feature-project").show();
317          } else {
318            $(".load-more-feature-project").hide();
319          }
320          $(".load-more-msg").remove();
321        }
322      },
323    });
324  });
325
326  // Project Portfolio Filter
327  $("#project-portfolio-filter select").on("change", function (e) {
328    e.preventDefault();
329    $(this).addClass("active");
330    var projectportfolio = $(this).val();
331    var projecttype = $("#project-type-filter select").val();
332
333    $.ajax({
334      type: "POST",
335      url: siteUrl + "/wp-admin/admin-ajax.php",
336      data: {
337        projecttype: projecttype,
338        projectportfolio: projectportfolio,
339        action: "fetch_featured_project_portfolio",
340      },
341      dataType: "json",
342      beforeSend: function () {
343        $(".project-feature-list").empty();
344        $(".show-loading-msg").text("Please Wait ...");
345        $(".load-more-feature-project").attr("data-count", 2);
346        $(".load-more-feature-project").attr("data-api", "fetch-project-portfolio");
347      },
348      complete: function (response) {
349        $(".show-loading-msg").text("");
350        if (response.responseText == "No result found") {
351          $(".project-feature-list").append(response.responseText);
352          $(".load-more-feature-project").hide();
353        } else {
354          $(".project-feature-list").append(response.responseText);
355          if (!projecttype && !projectportfolio) {
356            $(".load-more-feature-project").show();
357          } else {
358            $(".load-more-feature-project").hide();
359          }
360          $(".load-more-msg").remove();
361        }
362      },
363    });
364  });
365
366  // Project mobile filter
367  $("#project-type").change(function () {
368    var portfolioyear = $("#portfolio-year").val();
369    var projecttype = $("#project-type").val();
370    $.ajax({
371      type: "POST",
372      url: siteUrl + "/wp-admin/admin-ajax.php",
373      data: {
374        portfolioyear: portfolioyear,
375        projecttype: projecttype,
376        action: "fetch_featured_project",
377      },
378      dataType: "json",
379      beforeSend: function () {
380        $(".project-feature-list").empty();
381        $(".show-loading-msg").text("Loading Please Wait ...");
382        $(".load-more-feature-project").attr("data-count", 2).hide();
383      },
384      complete: function (response) {
385        $(".show-loading-msg").text("");
386        if (response.responseText == "No result found") {
387          $(".project-feature-list").append(response.responseText);
388          $(".load-more-feature-project").hide();
389        } else {
390          $(".project-feature-list").append(response.responseText);
391          $(".load-more-msg").remove();
392
393          if (projecttype === "all") {
394            $(".load-more-feature-project").show();
395          }
396        }
397      },
398    });
399  });
400
401  // Load more projects
402  $(".load-more-feature-project").click(function () {
403    var datacounter = $(this).attr("data-count");
404    var datapages = $(this).attr("data-pages");
405    var api = $(this).attr("data-api");
406
407    $.ajax({
408      type: "POST",
409      url: siteUrl + "/wp-admin/admin-ajax.php",
410      data: {
411        page: datacounter,
412        action: api === "fetch-project-portfolio" ? "fetch_featured_project_portfolio" 
413        : "fetch_featured_project",
414      },
415      dataType: "json",
416      beforeSend: function () {
417        $(".load-more-feature-project").text("Loading please wait...");
418      },
419      complete: function (response) {
420        if (response.responseText == "No result found") {
421          $(".msg-contain").append(
422            "<div class='load-more-msg'>No More Results</div>"
423          );
424          $(".load-more-feature-project").hide();
425        } else {
426          datacounter = parseInt(datacounter) + parseInt(1);
427          if (datacounter <= datapages) {
428            $(".load-more-feature-project")
429              .show()
430              .attr("data-count", datacounter)
431              .text("Load More");
432          } else {
433            $(".load-more-feature-project").hide();
434          }
435          $(".project-feature-list").append(response.responseText);
436          $(".load-more-msg").remove();
437        }
438      },
439    });
440  });
441
442  // Load more press posts
443  $(".show-more-press-posts").click(function () {
444    var datacounter = $(this).attr("data-count");
445    var datapages = $(this).attr("data-pages");
446    var totalpost = $(this).attr("data-totalpost");
447    var offset = 6;
448    $.ajax({
449      type: "POST",
450      url: siteUrl + "/wp-admin/admin-ajax.php",
451      data: {
452        page: datacounter,
453        offset: offset,
454        action: "fetch_press_posts",
455      },
456      dataType: "json",
457      beforeSend: function () {
458        $(".show-more-press-posts").text("Loading please wait...");
459      },
460      complete: function (response) {
461        if (response.responseText == "No result found") {
462          $(".show-more-press-posts").hide();
463          $(".show-more-press-posts")
464            .attr("data-count", datacounter)
465            .text("No More Results");
466        } else {
467          var remainingPosts = totalpost - datacounter * 2;
468          datacounter = parseInt(datacounter) + parseInt(1);
469          console.log(datacounter);
470          console.log(datapages);
471          if (datacounter < datapages && remainingPosts > offset) {
472            $(".show-more-press-posts")
473              .show()
474              .attr("data-count", datacounter)
475              .html(
476                '<i class="fa fa-caret-down" aria-hidden="true"></i> Show More'
477              );
478          } else {
479            $(".show-more-press-posts").hide();
480          }
481
482          $(".terrapass-press-page-result").append(response.responseText);
483        }
484      },
485    });
486  });
487
488  // code for TPSC FAQs Accordion
489  $(document).on("click", ".et_pb_toggle_title_", function (evt) {
490    $(this).toggleClass("active");
491    if ($(this).next().is(":visible")) {
492      $(this).next().slideUp("slow");
493    } else {
494      $(this).next().slideDown("slow");
495    }
496  });
497
498  // Scroll down to the particular FAQ when user clicks the "Click here"
499  $("#frequently_asked_questions a").click(function (event) {
500    var attr = $(this).attr("href");
501    $(attr).find(".et_pb_toggle_title_").addClass("active");
502    $(attr).find(".et_pb_toggle_content_").slideDown("slow");
503  });
504
505  // User scrolls down to the particular FAQ when its id is in the URL
506  $(window).scroll(function () {
507    if (window.location.href.indexOf("tpsc-q") > -1) {
508      var url = window.location.href;
509      var faqsId = url.substring(url.lastIndexOf("#") + 1);
510      $("#" + faqsId)
511        .find(".et_pb_toggle_title_")
512        .addClass("active");
513      $("#" + faqsId)
514        .find(".et_pb_toggle_content_")
515        .slideDown("slow");
516    }
517  });
518
519  // function checking valid crypto address
520  $(".woocommerce-crypto-wallet-form").submit(function () {
521    $("#wc_crypto_wallet").removeClass("crypto_error_field");
522    if ($("#wc_crypto_wallet").val() == "") {
523      $("#wc_crypto_wallet").addClass("crypto_error_field");
524      $(".crypto_field_error_message").remove();
525      $("#wc_crypto_wallet").after(
526        '<div class="crypto_field_error_message">Please enter a valid Ethereum ERC-20 address</div>'
527      );
528      return false;
529    }
530  });
531
532  // Crypto Wallet field validation
533  var typingTimer;
534  var doneTypingInterval = 1000;
535  var $input = $("input[name=crypto_wallet_address]");
536  $(".woocommerce-crypto-wallet-form button").prop("disabled", true);
537  $input.on("change input", function () {
538    $("#wc_crypto_wallet").removeClass("crypto_error_field");
539    $(".crypto_field_error_message").remove();
540    clearTimeout(typingTimer);
541    typingTimer = setTimeout(doneTyping, doneTypingInterval);
542  });
543
544  function doneTyping() {
545    var pattern = /^0x[a-fA-F0-9]{40}$/i;
546    if (
547      !pattern.test($("#wc_crypto_wallet").val()) &&
548      $("#wc_crypto_wallet").val() !== ""
549    ) {
550      $("#wc_crypto_wallet").addClass("crypto_error_field");
551      $("#wc_crypto_wallet").after(
552        '<div class="crypto_field_error_message">Please enter a valid Ethereum ERC-20 address</div>'
553      );
554      $(".woocommerce-crypto-wallet-form button").prop("disabled", true);
555    } else {
556      $(".woocommerce-crypto-wallet-form button").prop("disabled", false);
557    }
558  }
559
560  var user =
561    '<a href="/my-account" class="icon-user user-sm-login" aria-label="My Account"></a>';
562  $(user).insertBefore(".et_pb_menu__cart-button");
563
564  var year = new Date().getFullYear();
565
566  $('<span class="copyright">&copy;' + year + " Terrapass</span>").insertBefore(
567    ".footer-links .et_pb_menu__wrap #menu-footer-links li:first-child"
568  );
569
570  // Load more blog posts
571  $(".show-more-blog-page-posts").click(function () {
572    var pathname = window.location.pathname;
573    var category;
574    var offset;
575    if (pathname.indexOf("category") > -1) {
576      var pathArr = pathname.split("/");
577      category = pathArr.pop();
578    }
579    var datacounter = $(this).attr("data-count");
580    var datapages = $(this).attr("data-pages");
581    var totalpost = $(this).attr("data-totalpost");
582    var offset = 9; //9 = Hero Blog Post + Next 8 Recent Posts
583    if (typeof category !== "undefined") {
584      offset = 8; // Blog Page
585    } else {
586      offset = 9; // Home Page
587    }
588    $.ajax({
589      type: "POST",
590      url: siteUrl + "/wp-admin/admin-ajax.php",
591      data: {
592        page: datacounter,
593        offset: offset,
594        category: category,
595        action: "terrpass_blog_ajax_posts",
596      },
597      dataType: "json",
598      beforeSend: function () {
599        $(".show-more-blog-page-posts").text("Loading please wait...");
600      },
601      complete: function (response) {
602        if (response.responseText == "No result found") {
603          $(".show-more-blog-page-posts").hide();
604          $(".show-more-blog-page-posts")
605            .attr("data-count", datacounter)
606            .text("No More Results");
607        } else {
608          var remainingPosts = totalpost - datacounter * 4;
609          datacounter = parseInt(datacounter) + parseInt(1);
610          if (datacounter < datapages && remainingPosts > offset) {
611            $(".show-more-blog-page-posts")
612              .show()
613              .attr("data-count", datacounter)
614              .html("Older Entries");
615          } else {
616            $(".show-more-blog-page-posts").hide();
617          }
618          $(".terrapass-blog-page-result").append(response.responseText);
619        }
620      },
621    });
622  });
623
624  // Gravity Forms: Disable past date from being selected
625  gform.addFilter(
626    "gform_datepicker_options_pre_init",
627    function (optionsObj, formId, fieldId) {
628      if (
629        (formId == 29 && fieldId == 57) ||
630        fieldId == 20 ||
631        fieldId == 55 ||
632        fieldId == 56 ||
633        fieldId == 58 ||
634        fieldId == 24
635      ) {
636        optionsObj.minDate = 0;
637      }
638      return optionsObj;
639    }
640  );
641
642  // Make anything sticky onScroll
643  $(window).scroll(function () {
644    var scroll = $(window).scrollTop();
645
646    if ($(window).width() < 599) {
647      // Do nothing
648    } else {
649      if (scroll >= 200) {
650        $("#payment").addClass("sticky");
651      } else {
652        $("#payment").removeClass("sticky");
653      }
654    }
655  });
656
657  // AffiliateWP login toggle
658  $('.toggle-login').on('click', function(e){
659    e.preventDefault();
660    $('#hidden-login-form').slideToggle();
661  });
662
663  // AffiliateWP - Add class to label when input is required
664  $('.affwp-form input[required]').each( function() {
665    $($(this).parent()).find('label').addClass('required');
666  });
667
668  // Individual and Business categories listing dropdown
669  $("#terrapass-subcategories-list").on("change", function () {
670    var currentCategory = $(this).val();
671    console.log("dd");
672    $.ajax({
673      type: "POST",
674      url: siteUrl + "/wp-admin/admin-ajax.php",
675      data: {
676        currentCategory: currentCategory,
677        action: "terrapass_archive_product_ajax_posts",
678      },
679      dataType: "json",
680      beforeSend: function () {
681        $("#terrapass-current-category-products").html(
682          "<div class='loading-response'><strong>Loading please wait...</strong></div>"
683        );
684      },
685      complete: function (response) {
686        $("#terrapass-current-category-products").html(response.responseText);
687      },
688    });
689  });
690
691  function showLoader(){
692    // Create the HTML element
693    var loader = $('<div>', {
694      class: 'loder-container',
695      html: $('<div>', {class: 'lds-spinner'}).append(
696        $('<span>'), $('<span>'), $('<span>'), $('<span>'),
697        $('<span>'), $('<span>'), $('<span>'), $('<span>'),
698        $('<span>'), $('<span>'), $('<span>'), $('<span>'),
699        $('<div class="loading-text">LOADING</div>')
700      )
701    });
702
703    // Append the element to the body
704    $('#main-content').append(loader);
705
706    // Remove spinner after 8 sec
707    setTimeout( function() {
708      $('.loder-container').remove();
709    }, 8000); 
710  }
711
712  //Display the loader at checkout
713  $('.woocommerce-page button[type="submit"], a.btn.btn-primary.w-100').on('click', function(){
714    showLoader();
715  });
716});

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.