
let chart1;

//let url = window.location.href;
async function fetchLogs() {
    let url = localStorage.getItem("nameEjercicios");
    console.info(url)
    ///////////////////
    let nomPdf = "";
    let userProf = "";
    let nom1 = []
    nom1 = url.split(",");
    let nom2 = [];
    nom2 = nom1[0].split("?");
    let nom3 = [];
    nom3 = nom2[1].split("#"); //imagenes.split("?");
    let formattedStartDate = null;
    console.info(nomPdf);
    console.log(nom3);
    console.log(nom3.length);
    if (nom3.length > 1) {
        userProf = nom3[0];
        nomPdf = nom3[1];
        let dateTmp = [];
        dateTmp = nomPdf.split("_");
        let numLength = dateTmp.length;
        //let startDateStr = dateTmp[numLength - 2]
        //console.info(startDateStr)
        // Convertir la fecha inicial del formato 20241018_140131 a DD/MM/YYYY
        //const year = startDateStr.substring(0, 4);
        //const month = startDateStr.substring(4, 6);
        //const day = startDateStr.substring(6, 8);
        //formattedStartDate = `${day}/${month}/${year}`;
        console.info(nomPdf)
        console.info(userProf)
    }
    else {
        nomPdf = nom2[1];
        userProf = "";
        //const today = new Date();
        //formattedStartDate = `${today.getDate().toString().padStart(2, '0')}/${(today.getMonth() + 1).toString().padStart(2, '0')}/${today.getFullYear()}`;
        console.info(userProf)
        console.info(nomPdf)
    }
    ///////////////////

    // Obtener la fecha actual y formatearla a DD/MM/YYYY
    const today = new Date();
    const formattedEndDate = `${today.getDate().toString().padStart(2, '0')}/${(today.getMonth() + 1).toString().padStart(2, '0')}/${today.getFullYear()}`;

    if (navigator.onLine) {
        console.log("Tienes conexión a Internet.");
        try {
            const response = await fetch(servidorURL + `/php/logs/php_read_logs_pdf_ejercicio.php?nomPdf=${encodeURIComponent(nomPdf)}&startDate=${encodeURIComponent(formattedStartDate)}&endDate=${encodeURIComponent(formattedEndDate)}&v=${new Date().getTime()}`);

            if (!response.ok) {
                throw new Error('Error fetching logs.');
            }
            const logs = await response.json();
            console.info(logs);
            // Contar las repeticiones de cada ejercicio
            // Contar las repeticiones y sumar el tiempo de cada ejercicio
            const exerciseData = logs.reduce((acc, item) => {
                let ejercicio = item.tec_nom;
                //console.info(ejercicio)
                if (ejercicio === "") {
                    ejercicio = "000_01a_not_found.jpg"
                }
                //console.info(ejercicio)
                if (!acc[ejercicio]) {
                    acc[ejercicio] = { count: 0, totalTime: 0 };
                }
                acc[ejercicio].count += 1; // Incrementar el conteo de repeticiones
                acc[ejercicio].totalTime += parseInt(item.diferenciaMinutos, 10); // Sumar el tiempo base
                return acc;
            }, {});

            // Preparar los datos para el gráfico
            const exerciseLabels = Object.keys(exerciseData); // Nombres de los ejercicios
            //const exerciseLabels = Object.keys(Object.values(exerciseData).slice(8, Object.values(exerciseData).length - 4));
            const exerciseTimes = Object.values(exerciseData).map(item => item.totalTime); // Tiempo total de cada ejercicio
            for (let l = 0; l < exerciseLabels.length; l++) {
                let item = exerciseLabels[l];
                let tmp = item.slice(8, item.length - 4);
                console.info(tmp)
                exerciseLabels[l] = l + 1; //tmp.replace(/_/g, " ");
            }

            let num = 0;
            // Mostrar la imagen, el número de repeticiones y la suma del tiempo
            const exerciseList = document.getElementById('exercise-list');
            Object.keys(exerciseData).forEach(ejercicio => {
                num++;
                // Crear un contenedor para cada ejercicio
                const exerciseContainer = document.createElement('div');
                exerciseContainer.className = 'exercise-container';

                // Crear el elemento de imagen
                const img = document.createElement('img');
                img.src = `${servidorURL}/assets/cstimage/${ejercicio}`; // Ruta a la carpeta de imágenes
                img.alt = ejercicio;

                // Crear el elemento de texto para el número de repeticiones
                const repetitions = document.createElement('p');
                repetitions.textContent = `Repeticiones: ${exerciseData[ejercicio].count}`;

                // Crear el elemento de texto para la suma del tiempo base
                const totalTime = document.createElement('p');
                totalTime.textContent = `total: ${exerciseData[ejercicio].totalTime} minutos`;

                let item = ejercicio;
                let tmp = item.slice(8, item.length - 4);
                tmp = tmp.replace(/_/g, " ");

                const numero = document.createElement('p');
                numero.textContent = `${num}: ${tmp}`;

                // Añadir la imagen, el número de repeticiones y el tiempo total al contenedor del ejercicio
                exerciseContainer.appendChild(img);
                exerciseContainer.appendChild(numero);
                exerciseContainer.appendChild(repetitions);
                exerciseContainer.appendChild(totalTime);

                // Añadir el contenedor del ejercicio a la lista principal
                exerciseList.appendChild(exerciseContainer);
            });

            console.info(exerciseLabels)
            // Crear el gráfico
            const ctx = document.getElementById('imgTimeChart').getContext('2d');
            if (chart1) {
                chart1.destroy(); // Si existe, lo destruimos
            }
            chart1 = new Chart(ctx, {
                type: 'bar', // Tipo de gráfico
                data: {
                    labels: exerciseLabels,
                    datasets: [{
                        label: 'Ejercicios', // del ' + formattedStartDate + ' al ' + formattedEndDate,
                        data: exerciseTimes,
                        backgroundColor: 'rgba(54, 162, 235, 0.5)',
                        borderColor: 'rgba(54, 162, 235, 1)',
                        borderWidth: 1
                    }]
                },
                options: {
                    responsive: false,
                    maintainAspectRatio: false,
                    scales: {
                        y: {
                            beginAtZero: true,
                            title: {
                                display: true,
                                text: 'Tiempo total (minutos)'
                            }
                        },
                        x: {
                            title: {
                                display: true,
                                text: ''
                            }
                        }
                    },
                    plugins: {
                        legend: {
                            display: true,
                            position: 'top'
                        },
                        title: {
                            display: true,
                            text: 'Tiempo total de realización por ejercicio'
                        }
                    }
                }
            });
            //await displayLogs(logs);
        } catch (error) {
            console.error('Error:', error);
        }
    } else {
        console.log("No tienes conexión a Internet.");
    }
}

function displayLogs(logs) {
    const logsContainer = document.getElementById('logsItems');
    logsContainer.innerHTML = ''; // Limpiar los logs anteriores
    //<p><strong>User Agent:</strong> ${log.userAgent}</p>
    logs.forEach(log => {
        const logEntry = document.createElement('div');
        logEntry.classList.add('log-entryLogs');
        logEntry.innerHTML = `
                    <p><strong>Fecha:</strong> ${log.timestamp}</p>
                    <p><strong>Duración:</strong> ${log.diferenciaMinutos} '</p>
                    <p><strong>Ejercicio:</strong> ${log.tec_nom}</p>
                `;
        logsContainer.appendChild(logEntry);
    });
}
