434 νέα κρούσματα κορωνοϊού ανακοίνωσε την Τετάρτη (31/03) το υπουργείο Υγείας της Κύπρου, ενώ δεν καταγράφηκαν θάνατοι ασθενών με τελική αιτία θανάτου την COVID-19 το τελευταίο 24ωρο.176 ασθενείς COVID-19 νοσηλεύονται, εκ των οποίων οι 43 σε σοβαρή κατάσταση. Έχουν πραγματοποιηθεί συνολικά 51.301 τεστ ανίχνευσης της νόσου με τη μοριακή μέθοδο (PCR) και τη μέθοδο ταχείας ανίχνευσης αντιγόνου (antigen rapid test). Ο συνολικός αριθμός κρουσμάτων κορωνοϊού ανέρχεται σε 45,864, ενώ ο συνολικός αριθμός θανάτων παραμένει 256.
    ');
                }
            },
            error: function() {
                // Fallback to admin-ajax if REST API fails
                $.ajax({
                    url: 'https://www.xtesini.gr/wp-admin/admin-ajax.php',
                    type: 'POST',
                    data: {
                        action: 'get_recommendations_carousel',
                        limit: limit,
                        nonce: '41ceb54de3'
                    },
                    success: function(response) {
                        if (response.success && response.data.html) {
                            container.html(response.data.html);
                            initializeCarousel($('#carousel_69048c2c53b47'));
                        } else {
                            container.html('
');
                        }
                    }
                });
            }
        });
        
        // Carousel initialization function
        function initializeCarousel($wrapper) {
            var $container = $wrapper.find(".carousel-container");
            var $carousel = $wrapper.find(".related-articles-carousel");
            var $items = $wrapper.find(".carousel-item");
            var $prevBtn = $wrapper.find(".prev-arrow");
            var $nextBtn = $wrapper.find(".next-arrow");
            
            if ($items.length === 0) return;
            
            var itemWidth = $items.first().outerWidth(true);
            var visibleItems = Math.floor($container.parent().width() / itemWidth);
            var position = 0;
            var maxPosition = Math.max(0, $items.length - visibleItems);
            
            // Touch handling variables
            var isDragging = false;
            var startX = 0;
            var startY = 0;
            var currentX = 0;
            var currentTranslate = 0;
            var startTranslate = 0;
            var threshold = 10;
            var isScrolling = null;
            
            // Hide prev button initially
            $prevBtn.css("opacity", "0.5");
            
            // Navigation
            $nextBtn.click(function() {
                if (position < maxPosition) {
                    position++;
                    updatePosition();
                }
            });
            
            $prevBtn.click(function() {
                if (position > 0) {
                    position--;
                    updatePosition();
                }
            });
            
            // Touch support
            $carousel.on("touchstart", function(e) {
                var touch = e.originalEvent.touches[0];
                startX = touch.clientX;
                startY = touch.clientY;
                isDragging = true;
                isScrolling = null;
                
                var transform = $container.css("transform");
                var matrix = transform.replace(/[^0-9,.\-]/g, "").split(",");
                startTranslate = currentTranslate = matrix[4] ? parseInt(matrix[4]) : 0;
                
                $container.css("transition", "none");
            });
            
            $carousel.on("touchmove", function(e) {
                if (!isDragging) return;
                
                var touch = e.originalEvent.touches[0];
                var deltaX = touch.clientX - startX;
                var deltaY = touch.clientY - startY;
                
                if (isScrolling === null) {
                    if (Math.abs(deltaX) > threshold || Math.abs(deltaY) > threshold) {
                        isScrolling = Math.abs(deltaY) > Math.abs(deltaX) * 0.7;
                    }
                }
                
                if (isScrolling === true) {
                    isDragging = false;
                    $container.css("transition", "transform 0.3s ease");
                    return;
                }
                
                if (isScrolling === false) {
                    e.preventDefault();
                    currentX = deltaX;
                    var newTranslate = startTranslate + deltaX;
                    
                    var minTranslate = -maxPosition * itemWidth;
                    var maxTranslate = 0;
                    
                    if (newTranslate > maxTranslate) {
                        newTranslate = maxTranslate + (newTranslate - maxTranslate) * 0.3;
                    } else if (newTranslate < minTranslate) {
                        newTranslate = minTranslate + (newTranslate - minTranslate) * 0.3;
                    }
                    
                    $container.css("transform", "translateX(" + newTranslate + "px)");
                }
            });
            
            $carousel.on("touchend", function(e) {
                if (!isDragging || isScrolling === true) return;
                isDragging = false;
                $container.css("transition", "transform 0.3s ease");
                var prevPosition = position;
                if (Math.abs(currentX) > itemWidth * 0.25) {
                    if (currentX > 0 && position > 0) {
                        position--;
                    } else if (currentX < 0 && position < maxPosition) {
                        position++;
                    }
                }
                if (position !== prevPosition && window.RecommendationTracker) {
                    var action = position > prevPosition ? 'next' : 'prev';
                    window.RecommendationTracker.trackCarouselInteraction(action);
                }
                updatePosition();
                isScrolling = null;
                currentX = 0;
            });
            
            function updatePosition() {
                var translateX = -position * itemWidth;
                currentTranslate = translateX;
                $container.css({
                    "transition": "transform 0.3s ease",
                    "transform": "translateX(" + translateX + "px)"
                });
                
                $prevBtn.css("opacity", position <= 0 ? "0.5" : "1");
                $nextBtn.css("opacity", position >= maxPosition ? "0.5" : "1");
            }
            
            // Responsive
            $(window).on("resize", function() {
                itemWidth = $items.first().outerWidth(true);
                visibleItems = Math.floor($container.parent().width() / itemWidth);
                maxPosition = Math.max(0, $items.length - visibleItems);
                
                if (position > maxPosition) {
                    position = maxPosition;
                }
                
                updatePosition();
            });
            
            updatePosition();
        }
    });