PageSourceSearch

https://perpetualsolution.com/dist/js/custom.js

js perpetualsolution.com collected 2026-10-08 19:44:47 UTC 6,985 bytes, 241 lines download raw bytes

1// Scroll to Top Button
2jQuery(document).ready(function(){
3	jQuery(window).scroll(function(){
4		if (jQuery(this).scrollTop() > 80) {
5			jQuery('.TopButton').fadeIn();
6			$('.fixed-top').addClass('bg');
7	
8		} else {
9			jQuery('.TopButton').fadeOut();
10			$('.fixed-top').removeClass('bg');
11		}
12	});
13	
14	jQuery('.TopButton').click(function(){
15		 jQuery('html, body').animate({scrollTop : 0},800);
16		 return false;
17	});
18});
19
20// carousel pause on hover
21$('.carousel').carousel({
22    pause: "false"
23    // interval: false
24});
25
26
27// collapse change icon
28$(function(){
29    $('.collapse-wrap .btn').on('click', function(){
30        $(this).find('.fa').toggleClass('fa-minus');
31        
32        $(this).toggleClass('btn1');
33        
34    });
35});
36
37// carousel
38$('.testimonial-carousel').owlCarousel({
39	loop:true,
40	margin:10,
41	nav:false,
42	dots: true,
43	autoplay: true,
44	autoplayTimeout: 5000,
45	slideBy: 1,
46	navText: [
47		"<i class='fa fa-chevron-left'></i>",
48		"<i class='fa fa-chevron-right'></i>"
49	],
50	responsive:{
51		0:{
52			items:1
53		},
54		600:{
55			items:1
56		},
57		1000:{
58			items:1
59		}
60	}
61});
62
63// google-review slider
64$('.google-review-carousel').owlCarousel({
65    loop:true,
66    margin:10,
67    nav:false,
68    dots: false,
69    autoplay: true,
70    autoplayTimeout: 3000,
71    slideBy: 1,
72    navText: [
73        "<i class='fa fa-chevron-left'></i>",
74        "<i class='fa fa-chevron-right'></i>"
75    ],
76    responsive:{
77        0:{
78            items:1
79        },
80        600:{
81            items:1
82        },
83        1000:{
84            items:1
85        }
86    }
87});
88
89// portfolio carousel 
90$('.portfolio-carousel').owlCarousel({
91    loop:false,
92    margin:35,
93    nav: true,
94    dots: false,
95    autoplay: false,
96    startPosition: 0,
97    /*autoplayTimeout: 5000,*/
98    slideBy: 1,
99    lazyLoad: true,
100    navText: [
101        "<i class='fa fa-chevron-left'></i>",
102        "<i class='fa fa-chevron-right'></i>"
103    ],
104    responsive:{
105        0:{
106            items:1
107        },
108        600:{
109            items:2
110        },
111        1000:{
112            items:3
113        }
114    }
115});
116
117// popup modal
118/*var $modalBody = $(".popup-form .modal-body"); 
119var jumpFrom = 1;
120$('.popup-form').on("shown.bs.modal", function() {
121	var form = $("[data-step='1'] form", $modalBody).get(0);
122	$(form.inlineRadioOptions).change();
123});
124$('.popup-form').modalSteps({
125	btnLastStepHtml: 'Submit',
126	callbacks: {
127        '1': function() {
128        	jumpFrom = 1;
129        	$("[data-step]", $modalBody).not($("[data-step='1']", $modalBody)).addClass("hide");
130        	var form = $("[data-step='1'] form", $modalBody).get(0);
131        	if (!$("input[name='inlineRadioOptions']:checked", form).val()) {
132        		$(".js-btn-step[data-orientation='next']").attr("disabled", "disabled");
133        	}
134        	
135        	$(form.inlineRadioOptions).unbind("change").on("change", function() {
136        		if ($("input[name='inlineRadioOptions']:checked", form).val()) {
137        			$(".js-btn-step[data-orientation='next']").removeAttr("disabled");
138	        		if ($("input[name='inlineRadioOptions']:checked", form).val() == "Yes") {
139	        			$("#actual-step").val(3);
140	        		}
141	        		else {
142	        			$("#actual-step").val(1);
143	        		}
144        		}
145        	}).change();
146        	
147        },
148        '2': function() {
149        	//previous button in case of No is selected
150        	if (jumpFrom == 2) {
151        		$("#actual-step").val(2);
152        		$(".js-btn-step[data-orientation='previous']").click();
153        		return;
154        	}
155        	
156        	jumpFrom = 2;
157        	$("[data-step]", $modalBody).not($("[data-step='2']", $modalBody)).addClass("hide");
158        	
159        	var form = $("[data-step='2'] form", $modalBody).get(0);
160        	if (!$(form.inlineRadioOptions).val()) {
161        		$(".js-btn-step[data-orientation='next']").attr("disabled", "disabled");
162        	}
163        	
164        	$(form.inlineRadioOptions).unbind("change").on("change", function() {
165        		if ($("input[name='inlineRadioOptions']:checked", form).val()) {
166        			$(".js-btn-step[data-orientation='next']").removeAttr("disabled");
167	        		if ($("input[name='inlineRadioOptions']:checked", form).val() == "No") {
168	        			$("#actual-step").val(3);
169	        		}
170	        		else {
171	        			$("#actual-step").val(2);
172	        		}
173        		}
174        	}).change();
175        },
176        '3': function() {
177        	jumpFrom = 3;
178        	$("[data-step]", $modalBody).not($("[data-step='3']", $modalBody)).addClass("hide");
179        	var form = $("[data-step='3'] form", $modalBody).get(0);
180        	$(form.websiteUrl).unbind("keyup").on("keyup", function() {
181        		if ($(form.websiteUrl).val()) {
182        			$(".js-btn-step[data-orientation='next']").removeAttr("disabled");
183        		}
184        		else {
185        			$(".js-btn-step[data-orientation='next']").attr("disabled", "disabled");
186        		}
187        	}).keyup();
188        },
189        '4': function() {
190        	$("[data-step]", $modalBody).not($("[data-step='4']", $modalBody)).addClass("hide");
191        	$("#actual-step").val(jumpFrom + 1);
192        	jumpFrom = 4;
193        	var form = $("[data-step='4'] form", $modalBody).get(0);
194        	$("input", form).unbind("keyup").on("keyup", function() {
195        		if (form.checkValidity()) {
196        			$(".js-btn-step[data-orientation='next']").removeAttr("disabled");
197        		}
198        		else {
199        			$(".js-btn-step[data-orientation='next']").attr("disabled", "disabled");
200        		}
201        	}).keyup();
202        },
203    },
204    completeCallback: function() {
205        	var form1 = $("[data-step='1'] form", $modalBody).get(0);
206        	var form2 = $("[data-step='2'] form", $modalBody).get(0);
207        	var form3 = $("[data-step='3'] form", $modalBody).get(0);
208        	var form4 = $("[data-step='4'] form", $modalBody).get(0);
209        	
210        	
211        	var data = {
212        				is_new_website: $("input[name='inlineRadioOptions']:checked", form1).val(),
213        				is_replacing_existing_website: $("input[name='inlineRadioOptions']:checked", form2).val() ? $("input[name='inlineRadioOptions']:checked", form2).val() : "N/A",
214        				website_url: $(form3.websiteUrl).val() ? $(form3.websiteUrl).val() : "N/A",
215						custom_U7041: $(form4.custom_U7041).val(),
216						Email: $(form4.Email).val(),
217						PhoneNumber: $(form4.PhoneNumber).val()
218					};
219        	$.post($(form4).attr('action'), 
220        			data,
221					function(data){
222						var resp = JSON.parse(data);
223						if (resp.FormResponse && resp.FormResponse.success) {
224							alertify.success('Thank you, your message has been submitted to us.');
225						}
226						else {
227							alertify.error((resp.FormResponse ? resp.FormResponse.error : resp.MusePHPFormResponse.error));
228						}
229					}
230			);
231        }
232});*/
233
234// iframe
235function init() {
236var vidDefer = document.getElementsByTagName('iframe');
237for (var i=0; i<vidDefer.length; i++) {
238if(vidDefer[i].getAttribute('data-src')) {
239vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src'));
240} } }
241window.onload = init;

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.