Your IP : 216.73.217.77


Current Path : /home/users/unlimited/www/medico.codeskitter.site/public/modules/landing/web/js/
Upload File :
Current File : /home/users/unlimited/www/medico.codeskitter.site/public/modules/landing/web/js/custom.js

window.addEventListener("scroll", function () {
    var header = document.querySelector(".header-section.home-header");
    var scrollPosition = window.scrollY;

    if (scrollPosition > 5) {
        header.classList.add("bg-0d0d16");
    } else {
        header.classList.remove("bg-0d0d16");
    }
});

/* ----------------------------------------------- */
/* Slick Slider */
/* ----------------------------------------------- */

$(document).ready(function () {
    $(".slick-slider-section .app-slide").slick({
        slidesToShow: 4,
        slidesToScroll: 1,
        arrows: true,
        rtl: false,
        autoplay: true,
        autoplaySpeed: 1500,
        infinite: true,
        pauseOnFocus: false,
        responsive: [
            {
                breakpoint: 1400,
                settings: {
                    slidesToShow: 3,
                },
            },
            {
                breakpoint: 992,
                settings: {
                    slidesToShow: 2,
                },
            },
            {
                breakpoint: 768,
                settings: {
                    slidesToShow: 1,
                },
            },
        ],
    });
});
$(document).ready(function () {
    $(".customer-slider-section .row").slick({
        slidesToShow: 3,
        slidesToScroll: 1,
        arrows: false,
        rtl: false,
        autoplay: true,
        autoplaySpeed: 1500,
        infinite: true,
        pauseOnFocus: false,
        responsive: [
            {
                breakpoint: 1200,
                settings: {
                    slidesToShow: 2,
                },
            },
            {
                breakpoint: 768,
                settings: {
                    slidesToShow: 1,
                },
            },
        ],
    });
});

/* ----------------------------------------------- */
/* Top Scroll */
/* ----------------------------------------------- */
$(document).ready(function () {
    $("#scrollToTopButton").click(function () {
        $("html, body").animate(
            {
                scrollTop: 0,
            },
            "slow"
        );
    });
});
/* ----------------------------------------------- */
/* product-details Slide Image */
/* ----------------------------------------------- */
$(document).ready(function () {
    $(".product-details-small-image").click(function () {
        var newImageSrc = $(this).data("image-src");
        $("#product-details-big-image").attr("src", newImageSrc);
        $(".product-details-small-image")
            .parent()
            .removeClass("product-details-custom-b");
        $(this).parent().addClass("product-details-custom-b");
    });
});

/* ----------------------------------------------- */
/* About Page Read More Button */
/* ----------------------------------------------- */
$(document).ready(function () {
    $("#readMoreButton").click(function () {
        if ($("#moreText").css("display") === "none") {
            $("#moreText").css("display", "block");
            $("#readMoreButton").hide();
            // $("#readMoreButton").text("Read Less");
        } else {
            $("#moreText").css("display", "none");
        }
    });
});
/* ----------------------------------------------- */
/* Blogs page tags active button */
/* ----------------------------------------------- */

/** Tag Start*/
$(document).on("click", ".tags-btn", function () {
    // Highlight selected tag
    $(".tags-btn")
        .removeClass("blogs-tag-btn-selected")
        .addClass("blogs-tag-btn-unselected");
    $(this)
        .removeClass("blogs-tag-btn-unselected")
        .addClass("blogs-tag-btn-selected");

    // Fetch tag and route
    let selectedTag = $(this).data("tag");
    let routeUrl = $(this).data("route");

    // Fetch blogs dynamically
    $.ajax({
        url: routeUrl,
        type: "GET",
        data: { tag: selectedTag },
        success: function (response) {
            // Update blog list
            $("#blogs-container").empty();
            response.blogs.data.forEach((blog) => {
                const createdAt = new Date(blog.created_at).toLocaleString(
                    "en-US",
                    {
                        month: "long", //month name (January)
                        day: "2-digit", // Day with leading zero
                        year: "numeric", // Full year
                    }
                );

                   // Limit description by characters
                   let description = blog.descriptions.length > 80
                   ? blog.descriptions.substring(0, 80) + "..."
                   : blog.descriptions;

                $("#blogs-container").append(`
        <div class="col-lg-6 pb-4 blog-item">
            <div class="blog-shadow rounded">
                <div class="text-center blog-image p-3">
                    <img src="${blog.image}" class="w-100 h-100 object-fit-cover rounded-1" alt="${blog.title}" />
                </div>
                <div class="p-3 pt-0">
                    <div class="d-flex align-items-center mb-2">
                        <img src="/frontend/assets/images/icons/clock.svg" alt="" />
                        <p class="ms-1 mb-0">${createdAt}</p>
                    </div>
                    <h6>${blog.title}</h6>
                    <p>${description}</p>
                    <a href="/blogs/${blog.slug}" class="custom-clr-primary">Read More <span class="font-monospace">></span></a>
                </div>
            </div>
        </div>
    `);
            });
        },
        error: function (error) {
            console.error(error);
        },
    });
});
/** Tag End*/

(function ($) {
    "use strict";

    var $swiperSelector = $(".creative-interface-slider");
    $swiperSelector.each(function (index) {
        var $this = $(this);
        $this.addClass("swiper-sliderone-" + index);

        var dragSize = $this.data("drag-size") ? $this.data("drag-size") : 50;
        var freeMode = $this.data("free-mode")
            ? $this.data("free-mode")
            : false;
        var loop = $this.data("loop") ? $this.data("loop") : true;
        var slidesDesktop = $this.data("slides-desktop")
            ? $this.data("slides-desktop")
            : 4;
        var slideslaptop = $this.data("slides-laptop")
            ? $this.data("slides-laptop")
            : 4;
        var slidesTablet = $this.data("slides-tablet")
            ? $this.data("slides-tablet")
            : 4;
        var slidesMobile = $this.data("slides-mobile")
            ? $this.data("slides-mobile")
            : 2.2;
        var spaceBetween = $this.data("space-between")
            ? $this.data("space-between")
            : 20;

        var swiper7 = new Swiper(".swiper-sliderone-" + index, {
            direction: "horizontal",
            loop: loop,
            freeMode: freeMode,
            spaceBetween: spaceBetween,
            breakpoints: {
                1920: {
                    slidesPerView: slidesDesktop,
                },
                1024: {
                    slidesPerView: slideslaptop,
                },
                767: {
                    slidesPerView: slidesTablet,
                },
                320: {
                    slidesPerView: slidesMobile,
                },
            },
            navigation: {
                nextEl: ".next",
                prevEl: ".prev",
            },
            scrollbar: {
                el: ".swiper-scrollbar",
                draggable: true,
                dragSize: dragSize,
            },
        });
    });

    var $swiperSelectorOne = $(".premium-product-slide");
    $swiperSelectorOne.each(function (index) {
        var $this = $(this);
        $this.addClass("swiper-slidertwo-" + index);

        var dragSize = $this.data("drag-size") ? $this.data("drag-size") : 50;
        var freeMode = $this.data("free-mode")
            ? $this.data("free-mode")
            : false;
        var loop = $this.data("loop") ? $this.data("loop") : true;
        var slidesDesktop = $this.data("slides-desktop")
            ? $this.data("slides-desktop")
            : 3;
        var slideslaptop = $this.data("slides-laptop")
            ? $this.data("slides-laptop")
            : 3;
        var slidesTablet = $this.data("slides-tablet")
            ? $this.data("slides-tablet")
            : 2.5;
        var slidesMobile = $this.data("slides-mobile")
            ? $this.data("slides-mobile")
            : 1.2;
        var spaceBetween = $this.data("space-between")
            ? $this.data("space-between")
            : 20;

        var swiper5 = new Swiper(".swiper-slidertwo-" + index, {
            direction: "horizontal",
            loop: loop,
            freeMode: freeMode,
            spaceBetween: spaceBetween,
            breakpoints: {
                1920: {
                    slidesPerView: slidesDesktop,
                },
                1024: {
                    slidesPerView: slideslaptop,
                },
                767: {
                    slidesPerView: slidesTablet,
                },
                320: {
                    slidesPerView: slidesMobile,
                },
            },
            navigation: {
                nextEl: ".next1",
                prevEl: ".prev1",
            },
            scrollbar: {
                el: ".swiper-scrollbar",
                draggable: true,
                dragSize: dragSize,
            },
        });
    });

    var $swiperSelectorTwo = $(".testimonial-slider");
    $swiperSelectorTwo.each(function (index) {
        var $this = $(this);
        $this.addClass("swiper-sliderthree-" + index);

        var dragSize = $this.data("drag-size") ? $this.data("drag-size") : 50;
        var freeMode = $this.data("free-mode")
            ? $this.data("free-mode")
            : false;
        var loop = $this.data("loop") ? $this.data("loop") : true;
        var slidesDesktop = $this.data("slides-desktop")
            ? $this.data("slides-desktop")
            : 3;
        var slideslaptop = $this.data("slides-laptop")
            ? $this.data("slides-laptop")
            : 3;
        var slidesTablet = $this.data("slides-tablet")
            ? $this.data("slides-tablet")
            : 1.5;
        var slidesMobile = $this.data("slides-mobile")
            ? $this.data("slides-mobile")
            : 1;
        var spaceBetween = $this.data("space-between")
            ? $this.data("space-between")
            : 20;

        var swiper2 = new Swiper(".swiper-sliderthree-" + index, {
            direction: "horizontal",
            loop: loop,
            freeMode: freeMode,
            spaceBetween: spaceBetween,
            breakpoints: {
                1920: {
                    slidesPerView: slidesDesktop,
                },
                1024: {
                    slidesPerView: slideslaptop,
                },
                767: {
                    slidesPerView: slidesTablet,
                },
                320: {
                    slidesPerView: slidesMobile,
                },
            },
            navigation: {
                nextEl: ".next2",
                prevEl: ".prev2",
            },
            scrollbar: {
                el: ".swiper-scrollbar",
                draggable: true,
                dragSize: dragSize,
            },
        });
    });

    var swiper = new Swiper(".admin-panel-slider", {
        slidesPerView: 1,
        spaceBetween: 30,
        autoplay: false,
        loop: true,
        speed: 1400,
        autoplay: {
            delay: 6000,
        },
        navigation: {
            nextEl: ".next5",
            prevEl: ".prev5",
        },
    });
})(jQuery);

// animation counter start
const animateCounter = (counter) => {
    const target = parseFloat($(counter).data("target"));
    if (isNaN(target)) return;

    let count = 0;
    const speed = target / 100;

    const updateCounter = () => {
        if (count < target) {
            count += speed;
            $(counter).text(
                target % 1 === 0 ? Math.ceil(count) : count.toFixed(1)
            );
            requestAnimationFrame(updateCounter);
        } else {
            $(counter).text(target);
        }
    };

    updateCounter();
};

const observer = new IntersectionObserver(
    (entries) => {
        entries.forEach((entry) => {
            if (entry.isIntersecting) {
                animateCounter(entry.target);
                observer.unobserve(entry.target);
            }
        });
    },
    { threshold: 0.5 }
);

$(".counter").each(function () {
    observer.observe(this);
});

// animation counter End

// See more features start
$(document).ready(function () {
    $(".features-list").each(function () {
        var $list = $(this);
        var $features = $list.find(".feature-item");

        if ($features.length > 8) {
            $features.slice(8).addClass("d-none");
        }
    });

    $(document).on("click", ".see-more-btn", function () {
        var $button = $(this);
        var $featuresList = $button
            .closest(".card-body")
            .find(".features-list");
        $featuresList.find(".feature-item.d-none").removeClass("d-none");
        $button
            .text("See Less")
            .removeClass("see-more-btn")
            .addClass("see-less-btn");
    });

    $(document).on("click", ".see-less-btn", function () {
        var $button = $(this);
        var $featuresList = $button
            .closest(".card-body")
            .find(".features-list");
        $featuresList.find(".feature-item").slice(8).addClass("d-none");
        $button
            .text("See More")
            .removeClass("see-less-btn")
            .addClass("see-more-btn");
    });
});
// See more features End

document.addEventListener("DOMContentLoaded", function () {
    var mySwiper = new Swiper(".swiper-container", {
        loop: true,
        centeredSlides: true,
        spaceBetween: 20,
        grabCursor: true,
        autoplay: {
            delay: 3000,
        },
        breakpoints: {
            0: {
                slidesPerView: 1,
                spaceBetween: 5,
            },
            480: {
                slidesPerView: 1,
                spaceBetween: 10,
            },
            768: {
                slidesPerView: 2,
                spaceBetween: 15,
            },
            1024: {
                slidesPerView: 3,
                spaceBetween: 20,
            },
            1280: {
                slidesPerView: 3,
                spaceBetween: 25,
            },
            1440: {
                slidesPerView: 3,
                spaceBetween: 10,
            },
        },
    });
});

$(document).ready(function () {
    $(".print-window").on("click", function () {
        window.print();
    });
});