PageSourceSearch

https://bsu-uni.edu.az/assets/js/custom.v2.js?v=UPs6egFIkaJlBzKa0dYMBmO9hI3lTa-4Nlu_R1vEgRo

js bsu-uni.edu.az collected 2026-10-02 18:58:18 UTC 14,710 bytes, 514 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    $(function () {
25        setTimeout(function () {
26            $('.preloader-area').fadeOut(300);
27        }, 200);
28    });
29   
30    // Odometer statistics
31    // Keep the final value in data-count, initialize from zero, and start
32    // each counter only when it enters the viewport.
33    const statisticCounters = Array.from(
34        document.querySelectorAll('.odometer[data-count]')
35    );
36
37    const getStatisticValue = function (element) {
38        const rawValue = (element.dataset.count || '')
39            .trim()
40            .replace(/\s+/g, '');
41        const parsedValue = Number(rawValue);
42
43        return Number.isFinite(parsedValue)
44            ? Math.max(0, parsedValue)
45            : 0;
46    };
47
48    statisticCounters.forEach(function (element) {
49        const finalValue = getStatisticValue(element);
50
51        element.dataset.counterPrepared = 'true';
52        element.setAttribute(
53            'aria-label',
54            finalValue.toLocaleString('az-AZ')
55        );
56        element.textContent = '0';
57    });
58
59    const initializeStatisticCounters = function () {
60        if (!statisticCounters.length) return;
61
62        const reduceMotion = window.matchMedia &&
63            window.matchMedia('(prefers-reduced-motion: reduce)').matches;
64
65        const startCounter = function (element) {
66            if (element.dataset.counterStarted === 'true') return;
67
68            element.dataset.counterStarted = 'true';
69            const finalValue = getStatisticValue(element);
70
71            if (
72                element.odometer &&
73                typeof element.odometer.update === 'function'
74            ) {
75                if (
76                    reduceMotion &&
77                    typeof element.odometer.render === 'function'
78                ) {
79                    element.odometer.value = finalValue;
80                    element.odometer.render(finalValue);
81                } else {
82                    element.odometer.update(finalValue);
83                }
84            } else {
85                element.textContent = finalValue.toLocaleString('az-AZ');
86            }
87        };
88
89        if (reduceMotion || !('IntersectionObserver' in window)) {
90            statisticCounters.forEach(startCounter);
91            return;
92        }
93
94        const observer = new IntersectionObserver(function (
95            entries,
96            currentObserver
97        ) {
98            entries.forEach(function (entry) {
99                if (!entry.isIntersecting) return;
100
101                startCounter(entry.target);
102                currentObserver.unobserve(entry.target);
103            });
104        }, {
105            threshold: 0.35,
106            rootMargin: '0px 0px -8% 0px'
107        });
108
109        statisticCounters.forEach(function (element) {
110            observer.observe(element);
111        });
112    };
113
114    if (document.readyState === 'loading') {
115        document.addEventListener(
116            'DOMContentLoaded',
117            initializeStatisticCounters,
118            { once: true }
119        );
120    } else {
121        initializeStatisticCounters();
122    }
123
124    // AOS animation
125    AOS.init({
126        disable: function () {
127            var maxWidth = 900;
128            return window.innerWidth < maxWidth;
129        }
130    });
131
132    // Others Option For Responsive JS 
133    $(".others-option-for-responsive .dot-menu").on("click", function () {
134        $(".others-option-for-responsive .container .container").toggleClass("active");
135    });
136
137    // Hero-slider
138    $('.hero-slider').owlCarousel({
139        loop: true,
140        margin: 0,
141        nav: true,
142        dots: true,
143        items: 1,
144        thumbs: true,
145        thumbsPrerendered: true,
146        autoplay: true,
147        smartSpeed: 1000,
148        autoplayHoverPause: true,
149        navText: [
150            '<i class="ri-arrow-left-line"></i>',
151            '<i class="ri-arrow-right-line"></i>',
152        ],
153    });
154
155    // Hero-slider2
156    $('.hero-slider2').owlCarousel({
157        loop: true,
158        margin: 0,
159        nav: true,
160        dots: false,
161        items: 1,
162        thumbs: false,
163        autoplay: true,
164        smartSpeed: 1000,
165        autoplayHoverPause: true,
166        navText: [
167            '<i class="ri-arrow-left-line"></i>',
168            '<i class="ri-arrow-right-line"></i>',
169        ],
170    });
171
172    // Courses-slider
173    $('.courses-slider').owlCarousel({
174        loop: true,
175        margin: 30,
176        nav: true,
177        dots: true,
178        thumbs: false,
179        autoplay: false,
180        smartSpeed: 1000,
181        autoplayHoverPause: true,
182        navText: [
183            '<i class="ri-arrow-left-line"></i>',
184            '<i class="ri-arrow-right-line"></i>',
185        ],
186        responsive: {
187            0: {
188                items: 1,
189            },
190            768: {
191                items: 2,
192            },
193            992: {
194                items: 3,
195            },
196            1200: {
197                items: 3,
198            },
199
200        }
201    });
202
203
204    // Campus-slider
205    $('.campus-slider').owlCarousel({
206        loop: true,
207        margin: 30,
208        nav: true,
209        thumbs: false,
210        dots: true,
211        autoplay: false,
212        smartSpeed: 1000,
213        autoplayHoverPause: true,
214        navText: [
215            '<i class="ri-arrow-left-line"></i>',
216            '<i class="ri-arrow-right-line"></i>',
217        ],
218        responsive: {
219            0: {
220                items: 1,
221            },
222            768: {
223                items: 2,
224            },
225            992: {
226                items: 2,
227            },
228            1200: {
229                items: 2,
230            },
231
232        }
233    });
234
235    // Campus-slider2
236    $('.campus-slider2').owlCarousel({
237        loop: true,
238        margin: 30,
239        nav: true,
240        thumbs: false,
241        dots: false,
242        center: true,
243        autoplay: false,
244        smartSpeed: 1000,
245        autoplayHoverPause: true,
246        navText: [
247            '<i class="ri-arrow-left-line"></i>',
248            '<i class="ri-arrow-right-line"></i>',
249        ],
250        responsive: {
251            0: {
252                items: 1,
253            },
254            768: {
255                items: 2,
256            },
257            992: {
258                items: 3,
259            },
260            1200: {
261                items: 3,
262            },
263
264        }
265    });
266
267    // Events-slider
268    $('.events-slider').owlCarousel({
269        loop: true,
270        margin: 30,
271        nav: true,
272        dots: true,
273        thumbs: false,
274        autoplay: false,
275        smartSpeed: 1000,
276        autoplayHoverPause: true,
277        navText: [
278            '<i class="ri-arrow-left-line"></i>',
279            '<i class="ri-arrow-right-line"></i>',
280        ],
281        responsive: {
282            0: {
283                items: 1,
284            },
285            768: {
286                items: 2,
287            },
288            992: {
289                items: 3,
290            },
291            1200: {
292                items: 3,
293            },
294
295        }
296    });
297
298    // Events-slider
299    $('.news-slider').owlCarousel({
300        loop: true,
301        margin: 30,
302        nav: true,
303        dots: true,
304        thumbs: false,
305        autoplay: false,
306        smartSpeed: 1000,
307        autoplayHoverPause: true,
308        navText: [
309            '<i class="ri-arrow-left-line"></i>',
310            '<i class="ri-arrow-right-line"></i>',
311        ],
312        responsive: {
313            0: {
314                items: 1,
315            },
316            768: {
317                items: 2,
318            },
319            992: {
320                items: 3,
321            },
322            1200: {
323                items: 3,
324            },
325
326        }
327    });
328
329    // Care-slider
330    //$('.health-care-slider').owlCarousel({
331    //    loop: true,
332    //    margin: 30,
333    //    nav: true,
334    //    dots: false,
335    //    thumbs: false,
336    //    autoplay: false,
337    //    smartSpeed: 1000,
338    //    autoplayHoverPause: true,
339    //    navText: [
340    //        '<i class="ri-arrow-left-line"></i>',
341    //        '<i class="ri-arrow-right-line"></i>',
342    //    ],
343    //    responsive: {
344    //        0: {
345    //            items: 1,
346    //        },
347    //        768: {
348    //            items: 2,
349    //        },
350    //        992: {
351    //            items: 3,
352    //        },
353    //        1200: {
354    //            items: 3,
355    //        },
356
357    //    }
358    //});
359
360    // Magnific popup
361    $(document).ready(function () {
362        $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
363            disableOn: 100,
364            type: 'iframe',
365            mainClass: 'mfp-fade',
366            removalDelay: 160,
367            preloader: false,
368            fixedContentPos: false
369        });
370    });
371
372    // Subscribe form JS
373    $(".newsletter-form").validator().on("submit", function (event) {
374        if (event.isDefaultPrevented()) {
375            // handle the invalid form...
376            formErrorSub();
377            submitMSGSub(false, "Please enter your email correctly.");
378        } else {
379            // everything looks good!
380            event.preventDefault();
381        }
382    });
383    function callbackFunction(resp) {
384        if (resp.result === "success") {
385            formSuccessSub();
386        }
387        else {
388            formErrorSub();
389        }
390    }
391    function formSuccessSub() {
392        $(".newsletter-form")[0].reset();
393        submitMSGSub(true, "Thank you for subscribing!");
394        setTimeout(function () {
395            $("#validator-newsletter, #validator-newsletter-2").addClass('hide');
396        }, 4000)
397    }
398    function formErrorSub() {
399        $(".newsletter-form").addClass("animated shake");
400        setTimeout(function () {
401            $(".newsletter-form").removeClass("animated shake");
402        }, 1000)
403    }
404    function submitMSGSub(valid, msg) {
405        if (valid) {
406            var msgClasses = "validation-success";
407        } else {
408            var msgClasses = "validation-danger";
409        }
410        $("#validator-newsletter, #validator-newsletter-2").removeClass().addClass(msgClasses).text(msg);
411    }
412
413    // Input Plus & Minus Number JS
414    $('.input-counter').each(function () {
415        var spinner = jQuery(this),
416            input = spinner.find('input[type="text"]'),
417            btnUp = spinner.find('.plus-btn'),
418            btnDown = spinner.find('.minus-btn'),
419            min = input.attr('min'),
420            max = input.attr('max');
421
422        btnUp.on('click', function () {
423            var oldValue = parseFloat(input.val());
424            if (oldValue >= max) {
425                var newVal = oldValue;
426            } else {
427                var newVal = oldValue + 1;
428            }
429            spinner.find("input").val(newVal);
430            spinner.find("input").trigger("change");
431        });
432        btnDown.on('click', function () {
433            var oldValue = parseFloat(input.val());
434            if (oldValue <= min) {
435                var newVal = oldValue;
436            } else {
437                var newVal = oldValue - 1;
438            }
439            spinner.find("input").val(newVal);
440            spinner.find("input").trigger("change");
441        });
442    });
443
444    // Count Time 
445    function makeTimer() {
446        var endTime = new Date("September 20, 2025 17:00:00 PDT");
447        var endTime = (Date.parse(endTime)) / 1000;
448        var now = new Date();
449        var now = (Date.parse(now) / 1000);
450        var timeLeft = endTime - now;
451        var days = Math.floor(timeLeft / 86400);
452        var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
453        var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600)) / 60);
454        var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
455        if (hours < "10") { hours = "0" + hours; }
456        if (minutes < "10") { minutes = "0" + minutes; }
457        if (seconds < "10") { seconds = "0" + seconds; }
458        $("#days").html(days + "<span>Days</span>");
459        $("#hours").html(hours + "<span>Hours</span>");
460        $("#minutes").html(minutes + "<span>Minutes</span>");
461        $("#seconds").html(seconds + "<span>Seconds</span>");
462    }
463    setInterval(function () { makeTimer(); }, 0);
464
465    // AJAX MailChimp JS
466    $(".newsletter-form").ajaxChimp({
467        url: "https://hibootstrap.us20.list-manage.com/subscribe/post?u=60e1ffe2e8a68ce1204cd39a5&amp;id=42d6d188d9", // Your url MailChimp
468        callback: callbackFunction
469    });
470
471    // Go to Top
472    function updateGoTopVisibility() {
473        $('.go-top').toggleClass('active', $(window).scrollTop() > 300);
474    }
475    $(window).on('scroll', updateGoTopVisibility);
476    updateGoTopVisibility();
477    // Click Event
478    $('.go-top').on('click', function () {
479        $("html, body").animate({ scrollTop: "0" }, 500);
480    });
481
482    // Year
483    try {
484        document.getElementById("year").innerHTML = new Date().getFullYear();
485    } catch (err) { }
486
487
488})(jQuery);
489
490try {
491    // function to set a given theme/color-scheme
492    function setTheme(themeName) {
493        localStorage.setItem('sanu_theme', themeName);
494        document.documentElement.className = themeName;
495    }
496    // function to toggle between light and dark theme
497    function toggleTheme() {
498        if (localStorage.getItem('sanu_theme') === 'theme-dark') {
499            setTheme('theme-light');
500        } else {
501            setTheme('theme-dark');
502        }
503    }
504    // Immediately invoked function to set the theme on initial load
505    (function () {
506        if (localStorage.getItem('sanu_theme') === 'theme-dark') {
507            setTheme('theme-dark');
508            document.getElementById('slider').checked = false;
509        } else {
510            setTheme('theme-light');
511            document.getElementById('slider').checked = true;
512        }
513    })();
514} catch (err) { }

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.