// Boutique Map

$(document).ready(function() {

    var longitude = $("#homeCarte").data("longitude");
    var latitude = $("#homeCarte").data("latitude");


    var commerceName = document.getElementById('commerceName');
    var contenu = commerceName.innerHTML;
    var carte = L.map('homeCarte', {
        scrollWheelZoom: false
    }).setView([latitude, longitude], 16);

    L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {

        attribution: 'données © <a href="//osm.org/copyright">OpenStreetMap</a>/ODbL - rendu <a href="//openstreetmap.fr">OSM France</a>',
        minZoom: 1,
        maxZoom: 20

    }).addTo(carte);

    var marker = L.marker([latitude, longitude]).addTo(carte);
    marker.bindPopup('<p>'+ contenu +'</p>');

});

// Commentaire Glissant
$(document).ready(function() {
    var sizeAvisBox = $(".avisBox").outerWidth(true) + 32;
    var nombreAvisBox = $(".avisBox").length;
    var resizeTimeout;
    var isResizing = false;

    function scrollBox(direction) {
        var leftValue = parseInt($(".bandeAvisContentScrollable").css("left"));
    
        if (direction === "left") {
            leftValue -= sizeAvisBox;
        } else if (direction === "right") {
            leftValue += sizeAvisBox;
        }
        $(".bandeAvisContentScrollable").css("transition", "all 1s");
        $(".bandeAvisContentScrollable").css("left", leftValue + "px");
    
        setTimeout(function() {
            $(".bandeAvisContentScrollable").css("transition", "all 0s");
            $(".bandeAvisContentScrollable").css("left","0px");
            if (direction === "left") {
                $(".avisBox:first-child").insertAfter($(".avisBox:last-child"));
            } else if (direction === "right") {
                $(".avisBox:last-child").insertBefore($(".avisBox:first-child"));
            }
        }, 1000);
    }

    function tailleCalc() {
        if(isResizing) return;

        isResizing = true;

        resizeTimeout = setTimeout(function () {

            var taille_page = document.documentElement.clientWidth;
            var sizeTotale = sizeAvisBox * nombreAvisBox;
            canClick = true;
            canScroll = true;

            $(".bandeAvisContent").css("width", sizeTotale + (sizeAvisBox * 2));

            if(taille_page > sizeTotale) 
            {      
                $(".bandeAvisLeft").addClass("bandeAvis-none");
                $(".bandeAvisLeft").removeClass("bandeAvis-flex");
        
                $(".bandeAvisRight").addClass("bandeAvis-none");
                $(".bandeAvisRight").removeClass("bandeAvis-flex");

                canScroll = false;

                $(".bandeAvis").on("mouseenter", function() {
                        canScroll = false;
                });
            
                $(".bandeAvis").on("mouseleave", function() {
                    canScroll = false;
                });
        
            } 

            if(taille_page < sizeTotale) 
            {        
                $(".bandeAvisLeft").addClass("bandeAvis-flex");
                $(".bandeAvisLeft").removeClass("bandeAvis-none");
        
                $(".bandeAvisRight").addClass("bandeAvis-flex");
                $(".bandeAvisRight").removeClass("bandeAvis-none");

                canScroll = true;


                setInterval(function() {
                    if(canClick && canScroll) {
                        scrollBox("left");
            
                        canClick = false;
                        setTimeout(function() {
                            canClick = true; 
                        }, 1000);
                    }
                }, 3000)

                $(".bandeAvis").on("mouseenter", function() {
                    canScroll = false;
                });
            
                $(".bandeAvis").on("mouseleave", function() {
                        canScroll = true;
                });
            
                $(".bandeAvisRight").on("click", function() {
                    if (canClick) {
                        scrollBox("left");
            
                        canClick = false;
                        setTimeout(function() {
                            canClick = true; 
                        }, 1000);
                    }
                });
            
                $(".bandeAvisLeft").on("click", function() {
                    if (canClick) {
                        scrollBox("right");
            
                        canClick = false;
                        setTimeout(function() {
                            canClick = true; 
                        }, 1000);
                    }
                });
            }

            isResizing = false;
        }, 2000);
    }

    tailleCalc();
    window.addEventListener("resize", tailleCalc);
});

// Modal

$(document).ready(function () {
    $("#openModal").on("click", function() {
        $("#myModal").addClass("modal-flex");
        $("#myModal").removeClass("modal-none");

        $(".modal-content").addClass("modal-1");
        $(".modal-content").removeClass("modal-0");
    });

    $(".cross-button").on("click", function() {
        $(".modal-content").removeClass("modal-1");
            $(".modal-content").addClass("modal-0");

            setTimeout(function(){
                $("#myModal").addClass("modal-none");
                $("#myModal").removeClass("modal-flex");
            }, 200);
    })

    $(window).on("click", function(event) {
        if (event.target.id === "myModal") {
            $(".modal-content").removeClass("modal-1");
            $(".modal-content").addClass("modal-0");

            setTimeout(function(){
                $("#myModal").addClass("modal-none");
                $("#myModal").removeClass("modal-flex");
            }, 200);
        }
    });
});

// Note Par Etoiles

$(document).ready(function () {
    function updateStars(starCount) {
        $(".star").removeClass("opacity-100").addClass("opacity-80");
        for (let i = 1; i <= starCount; i++) {
            $(`.star[data-value="${i}"]`).removeClass("opacity-80").addClass("opacity-100");
        }
        $(".note-input").val(starCount);
    }

    function handleHover(index) {
        $(".star").removeClass("hovered");
        for (let i = 1; i <= index; i++) {
            $(`.star[data-value="${i}"]`).addClass("hovered");
        }
    }

    $(".stars").on("mouseleave", function () {
        const clickedStar = $(".star.clicked").data("value");
        handleHover(clickedStar);
    });

    $(".star").on("click", function () {
        const starCount = $(this).data("value");
        updateStars(starCount);
    }).hover(function () {
        const starCount = $(this).data("value");
        handleHover(starCount);
    });
});



// Redirection

$(document).ready(function () {
    $("#redirectionButton").on("click", function() {
        location.reload();
    })
})