jQuery(document).ready(function($) {
    'use strict';
    
    // État des likes
    var likedPosts = {};
    var currentPostId = null;
    
    // Initialiser les boutons de like
    function initLikes() {
        // Charger l'état des likes depuis le stockage local
        loadLikedState();
        
        // Mettre à jour tous les badges de likes
        updateAllLikeBadges();
    }
    
    // Charger l'état des likes depuis localStorage
    function loadLikedState() {
        var stored = localStorage.getItem('wprg_liked_posts');
        if (stored) {
            try {
                likedPosts = JSON.parse(stored);
            } catch(e) {
                likedPosts = {};
            }
        }
    }
    
    // Sauvegarder l'état des likes dans localStorage
    function saveLikedState() {
        localStorage.setItem('wprg_liked_posts', JSON.stringify(likedPosts));
    }
    
    // Mettre à jour tous les badges de likes
    function updateAllLikeBadges() {
        $('.wprg-thumbnail-likes').each(function() {
            var $badge = $(this);
            var postId = $badge.data('post-id');
            
            // Récupérer les données du post
            var $item = $badge.closest('.wprg-carousel-item');
            var $data = $item.find('.wprg-reel-data');
            var likes = parseInt($item.data('likes')) || 0;
$countSpan.text(likes);
            
            $badge.find('.wprg-likes-count').text(formattedLikes);
            
            // Ajouter la classe liked si nécessaire
            if (likedPosts[postId]) {
                $badge.addClass('liked');
            } else {
                $badge.removeClass('liked');
            }
        });
    }
    
// Mettre à jour l'affichage des likes dans le popup
function updatePopupLikes(postId) {

    var $likeBtn = $('#wprg-like-btn');
    var $countSpan = $likeBtn.find('.wprg-like-count');

    // trouver l'item du carousel
    var $item = $('.wprg-carousel-item[data-post-id="' + postId + '"]');

    if (!$item.length) {
        $countSpan.text('0');
        return;
    }

    // récupérer les données
    var $data = $item.find('.wprg-reel-data');

    // IMPORTANT : prendre seulement le premier compteur
    var $likesElement = $data.find('.wprg-video-likes-formatted').first();

    var likes = parseInt($likesElement.text().trim());

    if (isNaN(likes)) {
        likes = 0;
    }

    // mise à jour du bouton
    $countSpan.text(likes);

    // état liked
    if (likedPosts[postId]) {
        $likeBtn.addClass('liked');
    } else {
        $likeBtn.removeClass('liked');
    }

}
    
    // Mettre à jour le badge de la miniature
    function updateThumbnailBadge(postId, formattedLikes) {
        var $badge = $('.wprg-thumbnail-likes[data-post-id="' + postId + '"]');
        $badge.find('.wprg-likes-count').text(formattedLikes);
        
        if (likedPosts[postId]) {
            $badge.addClass('liked');
        } else {
            $badge.removeClass('liked');
        }
    }
    
    // Animation du bouton like
    function animateLikeButton($btn) {
        $btn.addClass('wprg-like-pop');
        setTimeout(function() {
            $btn.removeClass('wprg-like-pop');
        }, 300);
    }
    
    // Formater le nombre de likes
    function formatNumber(num) {
        if (num >= 1000000) {
            return (num / 1000000).toFixed(1) + 'M';
        } else if (num >= 1000) {
            return (num / 1000).toFixed(1) + 'k';
        }
        return num.toString();
    }
    
    // Gestionnaire de clic sur le bouton like
    $(document).on('click', '#wprg-like-btn', function(e) {
        e.preventDefault();
        e.stopPropagation();
        
        var $btn = $(this);
        var postId = currentPostId;
        
        if (!postId) {
            console.log('Aucun reel sélectionné');
            return;
        }
        
        // Animation
        animateLikeButton($btn);
        
        // Ajouter/retirer le like
        $.ajax({
            url: wprg_likes.ajax_url,
            type: 'POST',
            data: {
                action: 'wprg_add_like',
                post_id: postId,
                nonce: wprg_likes.nonce
            },
            success: function(response) {
                if (response.success) {
                    // Mettre à jour l'état local
                    if (response.data.action === 'added') {
                        likedPosts[postId] = true;
                    } else {
                        delete likedPosts[postId];
                    }
                    
                    // Sauvegarder dans localStorage
                    saveLikedState();
                    
                    // Formater le nombre de likes
                    var likes = response.data.likes;
                    var formattedLikes = formatNumber(likes);
                    
                    // Mettre à jour les données dans le HTML
                    var $item = $('.wprg-carousel-item[data-post-id="' + postId + '"]');
                    var $data = $item.find('.wprg-reel-data');
                    $data.find('.wprg-video-likes').text(likes);
                    $data.find('.wprg-video-likes-formatted').text(formattedLikes);
                    
                    // Mettre à jour l'affichage
                    updatePopupLikes(postId);
                    updateThumbnailBadge(postId, formattedLikes);
                }
            }
        });
    });
    
    // Intercepter l'ouverture du popup pour mettre à jour le bouton like
    $(document).on('click', '.wprg-carousel-item', function(e) {
        var $item = $(this);
        currentPostId = $item.data('post-id');
        
        // Mettre à jour le bouton like dans le popup
        setTimeout(function() {
            updatePopupLikes(currentPostId);
        }, 100);
    });
    
    // Réinitialiser quand le popup se ferme
    $(document).on('click', '.wprg-popup-close, .wprg-popup-overlay', function() {
        currentPostId = null;
    });
    
    $(document).on('keyup', function(e) {
        if (e.key === 'Escape') {
            currentPostId = null;
        }
    });
    
    // Vérifier l'état des likes au chargement
    function checkLikedStatus(postId) {
        $.ajax({
            url: wprg_likes.ajax_url,
            type: 'POST',
            data: {
                action: 'wprg_check_liked',
                post_id: postId,
                nonce: wprg_likes.nonce
            },
            success: function(response) {
                if (response.success) {
                    if (response.data.liked) {
                        likedPosts[postId] = true;
                    } else {
                        delete likedPosts[postId];
                    }
                    saveLikedState();
                    updateAllLikeBadges();
                }
            }
        });
    }
    
    // Initialiser
    initLikes();
    
    // Vérifier l'état pour chaque post visible
    $('.wprg-carousel-item').each(function() {
        var postId = $(this).data('post-id');
        if (postId && !(postId in likedPosts)) {
            checkLikedStatus(postId);
        }
    });
});