/**
 * Auto-detectar y agregar clases a filas especiales de tablas APU
 *
 * Este script detecta automáticamente filas especiales en tablas .desglose y .analisis
 * y les agrega las clases CSS correspondientes para que se apliquen los estilos correctos.
 *
 * Detecta:
 * - Section headers: Material, Mano de Obra, Herramienta, Equipo
 * - Subtotal rows: Filas que empiezan con "Suma de"
 * - Total row: Costo Directo
 *
 * @package Apus_Theme
 * @since 1.0.0
 */

(function() {
    'use strict';

    /**
     * Agrega clases a filas especiales de tablas APU
     */
    function applyApuTableClasses() {
        // Buscar todas las tablas con clase .desglose o .analisis
        const tables = document.querySelectorAll('.desglose table, .analisis table');

        if (tables.length === 0) {
            return; // No hay tablas APU en esta página
        }

        let classesAdded = 0;

        tables.forEach(function(table) {
            const rows = table.querySelectorAll('tbody tr');

            rows.forEach(function(row) {
                // Evitar procesar filas que ya tienen clase
                if (row.classList.contains('section-header') ||
                    row.classList.contains('subtotal-row') ||
                    row.classList.contains('total-row')) {
                    return;
                }

                const secondCell = row.querySelector('td:nth-child(2)');
                if (!secondCell) {
                    return; // Fila sin segunda celda
                }

                const text = secondCell.textContent.trim();

                // Detectar section headers
                if (text === 'Material' ||
                    text === 'Mano de Obra' ||
                    text === 'Herramienta' ||
                    text === 'Equipo' ||
                    text === 'MATERIAL' ||
                    text === 'MANO DE OBRA' ||
                    text === 'HERRAMIENTA' ||
                    text === 'EQUIPO') {
                    row.classList.add('section-header');
                    classesAdded++;
                    return;
                }

                // Detectar subtotales (cualquier variación de "Suma de")
                if (text.toLowerCase().startsWith('suma de ') ||
                    text.toLowerCase().startsWith('subtotal ')) {
                    row.classList.add('subtotal-row');
                    classesAdded++;
                    return;
                }

                // Detectar total final
                if (text === 'Costo Directo' ||
                    text === 'COSTO DIRECTO' ||
                    text === 'Total' ||
                    text === 'TOTAL' ||
                    text === 'Costo directo') {
                    row.classList.add('total-row');
                    classesAdded++;
                    return;
                }
            });
        });

        // Log para debugging (solo en desarrollo)
        if (classesAdded > 0 && window.console) {
            console.log('[APU Tables] Clases agregadas automáticamente: ' + classesAdded);
        }
    }

    // Ejecutar cuando el DOM esté listo
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', applyApuTableClasses);
    } else {
        // DOM ya está listo
        applyApuTableClasses();
    }

})();
