PageSourceSearch

https://milvian.ai/assets/js/custom.js

js milvian.ai collected 2026-10-05 16:09:07 UTC 11,675 bytes, 451 lines download raw bytes

1(function($) {
2
3	'use strict';
4	// Mean Menu
5	$('.mean-menu').meanmenu({
6		meanScreenWidth: "991"
7	});
8	
9	// Sticky, Go To Top JS
10	$(window).on('scroll', function() {
11		// Header Sticky JS
12		if ($(this).scrollTop() >150){  
13			$('.navbar-area').addClass("is-sticky");
14		}
15		else{
16			$('.navbar-area').removeClass("is-sticky");
17		};
18	});
19	
20	// Preloader
21	$(window).on('load', function() {
22		$('.preloader-area').fadeOut();
23	});
24
25	// Odometer js
26    $('.odometer').appear(function(e) {
27        var odo = $(".odometer");
28        odo.each(function() {
29            var countNumber = $(this).attr("data-count");
30            $(this).html(countNumber);
31        });
32    });
33
34    // AOS animation
35    AOS.init({
36        disable: function() {
37        var maxWidth = 900;
38        return window.innerWidth < maxWidth;
39        }
40    });
41
42	// Others Option For Responsive JS 
43	$(".others-option-for-responsive .dot-menu").on("click", function(){
44		$(".others-option-for-responsive .container .container").toggleClass("active");
45	});
46
47	// Hero-slider
48    $('.hero-slider').owlCarousel({
49        loop:true,
50        margin:0,
51        nav:true,
52        dots:true,
53        items:1,
54        thumbs: true,
55        thumbsPrerendered: true,
56        autoplay: true,
57        smartSpeed: 1000,
58        autoplayHoverPause:true,
59		navText: [
60            '<i class="ri-arrow-left-line"></i>', 
61            '<i class="ri-arrow-right-line"></i>',  
62        ],
63    });
64
65    // Hero-slider2
66    $('.hero-slider2').owlCarousel({
67        loop:true,
68        margin:0,
69        nav:true,
70        dots:false,
71        items:1,
72        thumbs: false,
73        autoplay: true,
74        smartSpeed: 1000,
75        autoplayHoverPause:true,
76		navText: [
77            '<i class="ri-arrow-left-line"></i>', 
78            '<i class="ri-arrow-right-line"></i>',  
79        ],
80    });
81
82    // Courses-slider
83    $('.courses-slider').owlCarousel({
84        loop: true,
85        margin: 30,
86        nav: true,
87        dots: true,
88        thumbs: false,
89        autoplay: false,
90        smartSpeed: 1000,
91        autoplayHoverPause: true,
92		navText: [
93            '<i class="ri-arrow-left-line"></i>', 
94            '<i class="ri-arrow-right-line"></i>',  
95        ],
96        responsive:{
97            0:{
98                items:1, 
99            },
100            768:{
101                items:2,
102            },
103            992:{
104                items:3,
105            },
106            1200:{
107                items:3,
108            },
109                
110        }
111    });
112
113    // Campus-slider
114    $('.campus-slider').owlCarousel({
115        loop: true,
116        margin: 30,
117        nav: true,
118        thumbs: false,
119        dots: true,
120        autoplay: false,
121        smartSpeed: 1000,
122        autoplayHoverPause: true,
123		navText: [
124            '<i class="ri-arrow-left-line"></i>', 
125            '<i class="ri-arrow-right-line"></i>',  
126        ],
127        responsive:{
128            0:{
129                items:1, 
130            },
131            768:{
132                items:2,
133            },
134            992:{
135                items:2,
136            },
137            1200:{
138                items:2,
139            },
140                
141        }
142    });
143
144    // Campus-slider2
145    $('.campus-slider2').owlCarousel({
146        loop: true,
147        margin: 30,
148        nav: true,
149        thumbs: false,
150        dots: false,
151        center: true,
152        autoplay: false,
153        smartSpeed: 1000,
154        autoplayHoverPause: true,
155		navText: [
156            '<i class="ri-arrow-left-line"></i>', 
157            '<i class="ri-arrow-right-line"></i>',  
158        ],
159        responsive:{
160            0:{
161                items:1, 
162            },
163            768:{
164                items:2,
165            },
166            992:{
167                items:3,
168            },
169            1200:{
170                items:3,
171            },
172                
173        }
174    });
175    
176    // Events-slider
177    $('.events-slider').owlCarousel({
178        loop: true,
179        margin: 30,
180        nav: true,
181        dots: true,
182        thumbs: false,
183        autoplay: false,
184        smartSpeed: 1000,
185        autoplayHoverPause: true,
186		navText: [
187            '<i class="ri-arrow-left-line"></i>', 
188            '<i class="ri-arrow-right-line"></i>',  
189        ],
190        responsive:{
191            0:{
192                items:1, 
193            },
194            768:{
195                items:2,
196            },
197            992:{
198                items:3,
199            },
200            1200:{
201                items:3,
202            },
203                
204        }
205    });
206    
207    // Events-slider
208    $('.news-slider').owlCarousel({
209        loop: true,
210        margin: 30,
211        nav: true,
212        dots: true,
213        thumbs: false,
214        autoplay: false,
215        smartSpeed: 1000,
216        autoplayHoverPause: true,
217		navText: [
218            '<i class="ri-arrow-left-line"></i>', 
219            '<i class="ri-arrow-right-line"></i>',  
220        ],
221        responsive:{
222            0:{
223                items:1, 
224            },
225            768:{
226                items:2,
227            },
228            992:{
229                items:3,
230            },
231            1200:{
232                items:3,
233            },
234                
235        }
236    });
237
238    // Care-slider
239    $('.health-care-slider').owlCarousel({
240        loop: true,
241        margin: 30,
242        nav: true,
243        dots: false,
244        thumbs: false,
245        autoplay: true,
246        smartSpeed: 1000,
247        autoplayHoverPause: true,
248		navText: [
249            '<i class="ri-arrow-left-line"></i>', 
250            '<i class="ri-arrow-right-line"></i>',  
251        ],
252        responsive:{
253            0:{
254                items:1, 
255            },
256            768:{
257                items:2,
258            },
259            992:{
260                items:2,
261            },
262            1200:{
263                items:2,
264            },
265                
266        }
267    });
268    
269	// Magnific popup
270	$(document).ready(function() {
271        $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
272            disableOn: 100,
273            type: 'iframe',
274            mainClass: 'mfp-fade',
275            removalDelay: 160,
276            preloader: false,
277            fixedContentPos: false
278        });
279    });
280
281	// Subscribe form JS
282    $(".newsletter-form").validator().on("submit", function (event) {
283        if (event.isDefaultPrevented()) {
284        // handle the invalid form...
285            formErrorSub();
286            submitMSGSub(false, "Please enter your email correctly.");
287        } else {
288            // everything looks good!
289            event.preventDefault();
290        }
291    });
292    function callbackFunction (resp) {
293        if (resp.result === "success") {
294            formSuccessSub();
295        }
296        else {
297            formErrorSub();
298        }
299    }
300    function formSuccessSub() {
301        $(".newsletter-form")[0].reset();
302        submitMSGSub(true, "Thank you for subscribing!");
303        setTimeout(function() {
304            $("#validator-newsletter, #validator-newsletter-2").addClass('hide');
305        }, 4000)
306    }
307    function formErrorSub() {
308        $(".newsletter-form").addClass("animated shake");
309        setTimeout(function() {
310            $(".newsletter-form").removeClass("animated shake");
311        }, 1000)
312    }
313    function submitMSGSub(valid, msg) {
314        if(valid){
315            var msgClasses = "validation-success";
316        } else {
317            var msgClasses = "validation-danger";
318        }
319        $("#validator-newsletter, #validator-newsletter-2").removeClass().addClass(msgClasses).text(msg);
320    }
321
322    // Input Plus & Minus Number JS
323	$('.input-counter').each(function() {
324		var spinner = jQuery(this),
325		input = spinner.find('input[type="text"]'),
326		btnUp = spinner.find('.plus-btn'),
327		btnDown = spinner.find('.minus-btn'),
328		min = input.attr('min'),
329		max = input.attr('max');
330		
331		btnUp.on('click', function() {
332			var oldValue = parseFloat(input.val());
333			if (oldValue >= max) {
334				var newVal = oldValue;
335			} else {
336				var newVal = oldValue + 1;
337			}
338			spinner.find("input").val(newVal);
339			spinner.find("input").trigger("change");
340		});
341		btnDown.on('click', function() {
342			var oldValue = parseFloat(input.val());
343			if (oldValue <= min) {
344				var newVal = oldValue;
345			} else {
346				var newVal = oldValue - 1;
347			}
348			spinner.find("input").val(newVal);
349			spinner.find("input").trigger("change");
350		});
351	});
352
353	// Count Time 
354	function makeTimer() {
355		var endTime = new Date("September 20, 2025 17:00:00 PDT");
356		var endTime = (Date.parse(endTime)) / 1000;
357		var now = new Date();
358		var now = (Date.parse(now) / 1000);
359		var timeLeft = endTime - now;
360		var days = Math.floor(timeLeft / 86400); 
361		var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
362		var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
363		var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
364		if (hours < "10") { hours = "0" + hours; }
365		if (minutes < "10") { minutes = "0" + minutes; }
366		if (seconds < "10") { seconds = "0" + seconds; }
367		$("#days").html(days + "<span>Days</span>");
368		$("#hours").html(hours + "<span>Hours</span>");
369		$("#minutes").html(minutes + "<span>Minutes</span>");
370		$("#seconds").html(seconds + "<span>Seconds</span>");
371	}
372	setInterval(function() { makeTimer(); }, 0);
373
374    // AJAX MailChimp JS
375    $(".newsletter-form").ajaxChimp({
376        url: "https://hibootstrap.us20.list-manage.com/subscribe/post?u=60e1ffe2e8a68ce1204cd39a5&amp;id=42d6d188d9", // Your url MailChimp
377        callback: callbackFunction
378    });
379
380	// Go to Top
381    $(window).on('scroll', function(){
382        var scrolled = $(window).scrollTop();
383        if (scrolled > 300) $('.go-top').addClass('active');
384        if (scrolled < 300) $('.go-top').removeClass('active');
385        });
386        // Click Event
387        $('.go-top').on('click', function() {
388        $("html, body").animate({ scrollTop: "0" },  500);
389    });
390
391	// Year
392    try {
393		document.getElementById("year").innerHTML = new Date().getFullYear(); 
394	} catch (err) {}
395
396   
397})(jQuery);
398
399try {
400    // function to set a given theme/color-scheme
401    function setTheme(themeName) {
402        localStorage.setItem('sanu_theme', themeName);
403        document.documentElement.className = themeName;
404    }
405    // function to toggle between light and dark theme
406    function toggleTheme() {
407        if (localStorage.getItem('sanu_theme') === 'theme-dark') {
408            setTheme('theme-light');
409        } else {
410            setTheme('theme-dark');
411        }
412    }
413    // Immediately invoked function to set the theme on initial load
414    (function () {
415        if (localStorage.getItem('sanu_theme') === 'theme-dark') {
416            setTheme('theme-dark');
417            document.getElementById('slider').checked = false;
418        } else {
419            setTheme('theme-light');
420        document.getElementById('slider').checked = true;
421        }
422    })();
423} catch (err) {}
424
425
426document.querySelectorAll('.milvian-navbar .nav-item.dropdown > .nav-link')
427    .forEach(link => {
428
429        link.addEventListener('click', function (e) {
430
431            if (window.innerWidth < 992) {
432
433                const parent = this.closest('.dropdown');
434
435                if (!parent.classList.contains('open')) {
436                    e.preventDefault();
437                    parent.classList.add('open');
438
439                    // close other dropdowns
440                    document.querySelectorAll('.milvian-navbar .dropdown')
441                        .forEach(item => {
442                            if (item !== parent) {
443                                item.classList.remove('open');
444                            }
445                        });
446                }
447            }
448
449        });
450
451    });

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.