// --- SISTEMA DE ESTADÍSTICAS ---

const gameStats = {
    votosHistoricos: 0,
    totalClicks: 0,
    tiempoJuegoMs: 0,
    edificiosTotalesComprados: 0,
    upgradesDesbloqueados: 0,
    eventosEnfrentados: 0,
    vecesPrestigiado: 0,
    maxVotosAlcanzados: 0
};

// Estadísticas de la partida/sesión actual (se reinician al prestigiar)
const sessionStats = {
    clicks: 0,
    tiempoMs: 0,
    edificiosComprados: 0,
    upgradesComprados: 0,
    eventosEnfrentados: 0
};

function resetSessionStats() {
    sessionStats.clicks = 0;
    sessionStats.tiempoMs = 0;
    sessionStats.edificiosComprados = 0;
    sessionStats.upgradesComprados = 0;
    sessionStats.eventosEnfrentados = 0;
}

function formatTiempo(ms) {
    const segundos = Math.floor(ms / 1000);
    const minutos = Math.floor(segundos / 60);
    const horas = Math.floor(minutos / 60);

    if (horas > 0) {
        return `${horas}h ${minutos % 60}m`;
    }
    return `${minutos}m ${segundos % 60}s`;
}

function formatNumero(num) {
    if (num >= 1e9) {
        return (num / 1e9).toFixed(2) + 'B';
    } else if (num >= 1e6) {
        return (num / 1e6).toFixed(2) + 'M';
    } else if (num >= 1e3) {
        return (num / 1e3).toFixed(2) + 'K';
    }
    return Math.floor(num).toLocaleString();
}

function renderStats() {
    const container = document.getElementById('stats-list');
    if (!container) return;

    container.innerHTML = `
        <div class="stats-section">
            <h4>Partida actual</h4>
            <div class="stat-item">
                <span class="stat-label">Clicks</span>
                <span class="stat-value">${formatNumero(sessionStats.clicks)}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Tiempo</span>
                <span class="stat-value">${formatTiempo(sessionStats.tiempoMs)}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Edificios</span>
                <span class="stat-value">${sessionStats.edificiosComprados}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Upgrades</span>
                <span class="stat-value">${sessionStats.upgradesComprados}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Eventos</span>
                <span class="stat-value">${sessionStats.eventosEnfrentados}</span>
            </div>
        </div>
        <div class="stats-section">
            <h4>Totales históricos</h4>
            <div class="stat-item">
                <span class="stat-label">Votos acumulados</span>
                <span class="stat-value">${formatNumero(gameStats.votosHistoricos)}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Clicks totales</span>
                <span class="stat-value">${formatNumero(gameStats.totalClicks)}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Tiempo total</span>
                <span class="stat-value">${formatTiempo(gameStats.tiempoJuegoMs)}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Veces prestigiado</span>
                <span class="stat-value">${gameStats.vecesPrestigiado}</span>
            </div>
            <div class="stat-item">
                <span class="stat-label">Máx votos alcanzados</span>
                <span class="stat-value">${formatNumero(gameStats.maxVotosAlcanzados)}</span>
            </div>
        </div>
    `;
}

function toggleStats() {
    audioSystem.playClick();
    const panel = document.getElementById('stats-panel');
    const isOpening = !panel.classList.contains('visible');
    panel.classList.toggle('visible');
    renderStats();
    updatePanelPositions();
    
    if (isOpening) {
        setupFocusTrap(panel, toggleStats);
    } else {
        removeFocusTrap(panel);
    }
}

function updatePanelPositions() {
    const achievementsPanel = document.getElementById('achievements-panel');
    const statsPanel = document.getElementById('stats-panel');
    const statsToggle = document.getElementById('stats-toggle');

    if (achievementsPanel.classList.contains('visible')) {
        // Si el panel de logros está abierto, mover botón y panel de stats debajo
        const achievementsRect = achievementsPanel.getBoundingClientRect();
        const newTop = (achievementsRect.bottom + 10) + 'px';
        statsToggle.style.top = newTop;

        if (statsPanel.classList.contains('visible')) {
            statsPanel.style.top = newTop;
        }
    } else {
        // Restaurar posiciones originales
        statsToggle.style.top = '';
        statsPanel.style.top = '';
    }
}

function updateMaxVotos() {
    if (partidos[partidoElegido].votos > gameStats.maxVotosAlcanzados) {
        gameStats.maxVotosAlcanzados = partidos[partidoElegido].votos;
    }
}
