<?php
declare(strict_types=1);

include 'concha.php';

if (($lang_actual ?? '') === 'es' || ($lang_actual ?? '') === '') {
    include 'lang_es_no_panel.php';
}

if (($lang_actual ?? '') === 'pt') {
    include 'lang_pt_no_panel.php';
}

$titulo = ($nombresitio ?? '') . ' / ' . ($lang_mensajes ?? 'Mensajes');
include 'arriba_full.php';

function e(mixed $value): string
{
    return htmlspecialchars((string)$value, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
}

function obtenerConexion(): mysqli
{
    global $conn, $host, $usuario, $condiva, $basedatos;

    if (isset($conn) && $conn instanceof mysqli) {
        $conn->set_charset('utf8mb4');
        return $conn;
    }

    $mysqli = new mysqli((string)$host, (string)$usuario, (string)$condiva, (string)$basedatos);

    if ($mysqli->connect_error) {
        die('Error de conexión: ' . $mysqli->connect_error);
    }

    $mysqli->set_charset('utf8mb4');
    return $mysqli;
}

$mysqli = obtenerConexion();

$pagina = 'mensajes.php';
$tabla  = 'chat';
$c      = 20;

$i = isset($_GET['i']) ? (int)$_GET['i'] : 0;
$p = isset($_GET['p']) ? (int)$_GET['p'] : 1;

if ($i < 0) {
    $i = 0;
}
if ($p < 1) {
    $p = 1;
}

$colorPrincipal   = $d_color_fondo_menu ?? '#111111';
$textoResponder   = $lang_responder ?? 'Responder';
$textoRespuestas  = $lang_respuestas ?? 'respuestas';
$textoUltimos     = $lang_ultimos_mensajes ?? 'Últimos mensajes';
$textoAnterior    = $anterior ?? 'Anterior';
$textoSiguiente   = $siguiente ?? 'Siguiente';

$i_publi = 0;
?>

<style>
.mensajes-wrap {
    padding: 10px 0 30px 0;
}

.mensaje-card {
    background: #ffffff;
    border: 1px solid #e9e9e9;
    border-radius: 14px;
    padding: 22px;
    margin-bottom: 22px;
    box-shadow: 0 4px 18px rgba(0,0,0,0.04);
}

.mensaje-autor {
    margin: 0 0 10px 0;
    font-size: 28px;
    line-height: 1.1;
    font-weight: 700;
}

.mensaje-texto {
    margin: 0;
    font-size: 18px;
    line-height: 1.7;
    color: #333333;
    white-space: pre-line;
    word-break: break-word;
}

.mensaje-acciones {
    margin-top: 18px;
}

.btn-mensaje {
    display: inline-block;
    padding: 10px 18px;
    border: 1px solid <?php echo e($colorPrincipal); ?>;
    color: <?php echo e($colorPrincipal); ?>;
    background: #fff;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 600;
    transition: all .2s ease;
}

.btn-mensaje:hover {
    background: <?php echo e($colorPrincipal); ?>;
    color: #fff;
    text-decoration: none;
}

.respuestas-box {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #ececec;
}

.respuestas-titulo {
    margin: 0 0 14px 0;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #777;
    font-weight: 700;
}

.respuesta-item {
    background: #f8f8f8;
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 12px;
}

.respuesta-autor {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 700;
    color: #222;
}

.respuesta-texto {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: #666;
    white-space: pre-line;
    word-break: break-word;
}

.paginacion-wrap {
    margin-top: 25px;
    padding: 10px 0 20px 0;
    text-align: center;
}

.paginacion-wrap a,
.paginacion-wrap span {
    display: inline-block;
    margin: 4px;
    padding: 8px 13px;
    border-radius: 9px;
    text-decoration: none;
    font-size: 15px;
}

.paginacion-wrap a {
    background: #f2f2f2;
    color: #333;
}

.paginacion-wrap a:hover {
    background: <?php echo e($colorPrincipal); ?>;
    color: #fff;
}

.paginacion-wrap span.actual {
    background: <?php echo e($colorPrincipal); ?>;
    color: #fff;
    font-weight: 700;
}

@media (max-width: 767px) {
    .mensaje-card {
        padding: 16px;
        border-radius: 12px;
    }

    .mensaje-autor {
        font-size: 22px;
    }

    .mensaje-texto {
        font-size: 16px;
    }

    .respuesta-autor {
        font-size: 16px;
    }

    .respuesta-texto {
        font-size: 15px;
    }
}
</style>

<div class="news-summary col-12 col-sm-12 p-0 col-md-8 col-lg-8">
    <div id="grid" class="mensajes-wrap">

        <div class="widget-head">
            <h3
                <?php
                if ((int)($estiloweb ?? 0) <= 3) {
                    echo 'style="padding: 1px 5px 1px 5px; background-color:' . e($colorPrincipal) . ';font-family:' . e($style_titulo ?? 'Arial') . ';font-size:25px;color:#ffffff;"';
                } else {
                    echo 'class="widget-title"';
                }
                ?>
            >
                <span><?php echo e($textoUltimos); ?></span>
            </h3>
        </div>

        <div class="row">
            <div class="col-12">

                <?php
                $sqlMensajes = "SELECT ID, nombre, mensaje FROM {$tabla} WHERE ver = 'si' AND IDM = 0 ORDER BY fecha DESC LIMIT ?, ?";
                $stmtMensajes = $mysqli->prepare($sqlMensajes);

                if (!$stmtMensajes) {
                    die('Error al preparar mensajes: ' . $mysqli->error);
                }

                $stmtMensajes->bind_param('ii', $i, $c);
                $stmtMensajes->execute();
                $resMensajes = $stmtMensajes->get_result();

                while ($mensajeRow = $resMensajes->fetch_assoc()) {
                    $mensajeID = (int)$mensajeRow['ID'];
                    $nombre    = $mensajeRow['nombre'] ?? '';
                    $mensaje   = $mensajeRow['mensaje'] ?? '';

                    $sqlResp = "SELECT nombre, mensaje FROM chat WHERE IDM = ? AND ver = 'si' ORDER BY fecha ASC, ID ASC";
                    $stmtResp = $mysqli->prepare($sqlResp);

                    if (!$stmtResp) {
                        die('Error al preparar respuestas: ' . $mysqli->error);
                    }

                    $stmtResp->bind_param('i', $mensajeID);
                    $stmtResp->execute();
                    $resResp = $stmtResp->get_result();

                    $respuestas = [];
                    while ($resp = $resResp->fetch_assoc()) {
                        $respuestas[] = $resp;
                    }

                    $cantidadRespuestas = count($respuestas);
                    ?>
                    <div class="mensaje-card">
                        <h2 class="mensaje-autor" style="color: <?php echo e($colorPrincipal); ?>;">
                            <?php echo e($nombre); ?>:
                        </h2>

                        <p class="mensaje-texto"><?php echo nl2br(e($mensaje)); ?></p>

                        <div class="mensaje-acciones">
                            <a class="btn-mensaje" href="responder_mensaje.php?ID=<?php echo $mensajeID; ?>">
                                <?php
                                if ($cantidadRespuestas > 0) {
                                    echo $cantidadRespuestas . ' ' . e($textoRespuestas);
                                } else {
                                    echo e($textoResponder);
                                }
                                ?>
                            </a>
                        </div>

                        <?php if ($cantidadRespuestas > 0) { ?>
                            <div class="respuestas-box">
                                <div class="respuestas-titulo">Respuestas</div>

                                <?php foreach ($respuestas as $respuesta) { ?>
                                    <div class="respuesta-item">
                                        <h3 class="respuesta-autor">
                                            <?php echo e($respuesta['nombre'] ?? ''); ?>:
                                        </h3>
                                        <p class="respuesta-texto"><?php echo nl2br(e($respuesta['mensaje'] ?? '')); ?></p>
                                    </div>
                                <?php } ?>
                            </div>
                        <?php } ?>
                    </div>
                    <?php
                    $stmtResp->close();
                }

                $stmtMensajes->close();

                $sqlCount = "SELECT COUNT(*) AS total FROM {$tabla} WHERE ver = 'si' AND IDM = 0";
                $resCount = $mysqli->query($sqlCount);
                $totalMensajes = 0;

                if ($resCount) {
                    $rowCount = $resCount->fetch_assoc();
                    $totalMensajes = (int)($rowCount['total'] ?? 0);
                    $resCount->free();
                }

                $totalPaginas = (int)ceil($totalMensajes / $c);
                if ($totalPaginas < 1) {
                    $totalPaginas = 1;
                }
                ?>

                <div class="paginacion-wrap">
                    <?php if ($p > 1) { ?>
                        <a href="<?php echo e($pagina); ?>?i=<?php echo max(0, $i - $c); ?>&p=<?php echo $p - 1; ?>">
                            <?php echo e($textoAnterior); ?>
                        </a>
                    <?php } ?>

                    <?php
                    $offsetPagina = 0;
                    for ($n = 1; $n <= $totalPaginas; $n++) {
                        if ($n === $p) {
                            echo '<span class="actual">' . $n . '</span>';
                        } else {
                            echo '<a href="' . e($pagina) . '?i=' . $offsetPagina . '&p=' . $n . '">' . $n . '</a>';
                        }
                        $offsetPagina += $c;
                    }
                    ?>

                    <?php if ($p < $totalPaginas) { ?>
                        <a href="<?php echo e($pagina); ?>?i=<?php echo $i + $c; ?>&p=<?php echo $p + 1; ?>">
                            <?php echo e($textoSiguiente); ?>
                        </a>
                    <?php } ?>
                </div>

            </div>
        </div>
    </div>
</div>

<div id="sidebar" class="sidebar col-12 col-sm-8 p-0 col-md-4 col-lg-4">
    <div class="sidebar__inner">

        <?php
        $hay_des_2 = 'no';

        $sqlDest = "SELECT ID FROM notas WHERE destacado = '2' AND ver = 'si' AND home = 'si' ORDER BY ID DESC LIMIT 1";
        $consultaDest = $conn->query($sqlDest);

        if ($consultaDest) {
            while ($rowDest = $consultaDest->fetch_assoc()) {
                $ID_cac = $rowDest['ID'];
                $hay_des_2 = 'si';
            }
            $consultaDest->free_result();
        }
        ?>

        <?php
        $sqlNotas = "SELECT ID,titulo,texto,bajada,audio,youtube,d,m,a,carpetafoto,foto,cat,home,impresiones
                     FROM notas
                     WHERE destacado = '2' AND ver = 'si' AND home = 'si'
                     ORDER BY ID DESC
                     LIMIT 4";
        $consultaNotas = $conn->query($sqlNotas);

        if ($consultaNotas) {
            while ($rowNota = $consultaNotas->fetch_assoc()) {
                $ID = $rowNota['ID'];
                $i_publi++;
                $titulo_nota = $rowNota['titulo'];
                $bajada_nota = $rowNota['bajada'];
                $texto_nota = $rowNota['texto'];
                $audio_nota = $rowNota['audio'];
                $youtube_nota = $rowNota['youtube'];
                $d_nota = $rowNota['d'];
                $m_nota = $rowNota['m'];
                $a_nota = $rowNota['a'];
                $fecha_nota = $d_nota . ' - ' . $m_nota . ' - ' . $a_nota;
                $carpetafoto_nota = $rowNota['carpetafoto'];
                $foto_nota = $rowNota['foto'];
                $cat_nota = $rowNota['cat'];
                $home_nota = $rowNota['home'];
                $impresiones_nota = (int)$rowNota['impresiones'] + 1;

                $sSQL = "UPDATE `$basedatos`.`notas` SET `impresiones` = '$impresiones_nota' WHERE ID = '$ID'";
                $conn->query($sSQL);

                $M = $m_nota;
                if ($M === '01') { $m_nota = 'enero'; }
                if ($M === '02') { $m_nota = 'febrero'; }
                if ($M === '03') { $m_nota = 'marzo'; }
                if ($M === '04') { $m_nota = 'abril'; }
                if ($M === '05') { $m_nota = 'mayo'; }
                if ($M === '06') { $m_nota = 'junio'; }
                if ($M === '07') { $m_nota = 'julio'; }
                if ($M === '08') { $m_nota = 'agosto'; }
                if ($M === '09') { $m_nota = 'septiembre'; }
                if ($M === '10') { $m_nota = 'octubre'; }
                if ($M === '11') { $m_nota = 'noviembre'; }
                if ($M === '12') { $m_nota = 'diciembre'; }

                if ((int)$cat_nota !== 0) {
                    $sqlCat = "SELECT * FROM categorias WHERE ID = '$cat_nota'";
                    $consultaCat = $conn->query($sqlCat);
                    if ($consultaCat) {
                        while ($rowCat = $consultaCat->fetch_assoc()) {
                            $cat_nota = $rowCat['nombre'];
                            $color_cat = $rowCat['color'];
                        }
                        $consultaCat->free_result();
                    }
                }

                $nComentarios = 0;
                $sqlCom = "SELECT * FROM comentarios WHERE IDD = '$ID' AND ver = 'si'";
                $consultaCom = $conn->query($sqlCom);
                if ($consultaCom) {
                    while ($rowCom = $consultaCom->fetch_assoc()) {
                        $nComentarios++;
                    }
                    $consultaCom->free_result();
                }

                // Mantengo el recorrido original porque tu template parece depender de estas consultas previas.
            }
            $consultaNotas->free_result();
        }
        ?>

        <?php include 'propagandas_div.php'; ?>

    </div>
</div>
            </div>
        </div>

        <?php if (($estiloweb ?? 0) == 72) { include 'footer.magazine.php'; } ?>

        <?php include 'clix_footer.php'; ?>

<script>
window.lazyLoadOptions = {
    elements_selector: ".lazy"
};

window.addEventListener('LazyLoad::Initialized', function (event) {
    window.lazyLoadInstance = event.detail.instance;
}, false);
</script>

<script async src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@12.4.0/dist/lazyload.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="https://radioshosting.com/css/js/lightbox-plus-jquery.min.js"></script>
<script src="js/jquery.fittext.js"></script>
<script src="https://unpkg.com/flickity@2/dist/flickity.pkgd.min.js"></script>
<script src="https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.js"></script>

<script type="text/javascript">
window.setInterval(function () {
    $('.grid').isotope({
        itemSelector: '.grid-item'
    });
}, 2000);
</script>

<script type="text/javascript">
window.setInterval(function () {
    $('.grid2').isotope({
        itemSelector: '.grid-item2'
    });
}, 2000);
</script>

<script>
function ventanaSecundaria56(URL) {
    window.open(URL, "ventana1", "width=960,height=630,scrollbars=NO");
}
</script>

<script>
$(function () {
    $(".carousel-captionh1").fitText(1.2, { minFontSize: '14px', maxFontSize: '18px' });
    $(".colorTitulo").fitText(1.2, { minFontSize: '14px', maxFontSize: '24px' });
    $(".carousel-caption h2").fitText(1.2, { minFontSize: '14px', maxFontSize: '30px' });
    $(".tituloVideo").fitText(1.2, { minFontSize: '14px', maxFontSize: '30px' });
    $(".tarso").fitText(1.2, { minFontSize: '20px', maxFontSize: '50px' });
    $(".tarso2").fitText(1.2, { minFontSize: '5px', maxFontSize: '11px' });

    var newsSummary = document.querySelector('.news-summary');
    if (newsSummary) {
        newsSummary.classList.add('content');
        newsSummary.id = 'content';
    }

    jQuery('img.svg').each(function () {
        var $img = jQuery(this);
        var imgID = $img.attr('id');
        var imgClass = $img.attr('class');
        var imgURL = $img.attr('src');

        jQuery.get(imgURL, function (data) {
            var $svg = jQuery(data).find('svg');

            if (typeof imgID !== 'undefined') {
                $svg = $svg.attr('id', imgID);
            }

            if (typeof imgClass !== 'undefined') {
                $svg = $svg.attr('class', imgClass + ' replaced-svg');
            }

            $svg = $svg.removeAttr('xmlns:a');
            $img.replaceWith($svg);
        }, 'xml');
    });
});
</script>

<?php include 'google.php'; ?>
</body>
</html>