<?php
include 'concha.php';
include 'lang_es_no_panel.php';

$titulo = $nombresitio . ' / ' . $lang_programacion;
include 'arriba_full.php';

date_default_timezone_set('America/Argentina/Buenos_Aires');

if (!function_exists('h')) {
    function h($txt)
    {
        return htmlspecialchars((string)$txt, ENT_QUOTES, 'UTF-8');
    }
}

if (!isset($conn) || !($conn instanceof mysqli)) {
    die('No se encontró la conexión mysqli.');
}

function diaNumeroPublico($valor)
{
    $v = trim((string)$valor);
    $map = array(
        '1' => 1, '01' => 1, 'lun' => 1, 'lunes' => 1,
        '2' => 2, '02' => 2, 'mar' => 2, 'martes' => 2,
        '3' => 3, '03' => 3, 'mie' => 3, 'mié' => 3, 'miercoles' => 3, 'miércoles' => 3,
        '4' => 4, '04' => 4, 'jue' => 4, 'jueves' => 4,
        '5' => 5, '05' => 5, 'vie' => 5, 'viernes' => 5,
        '6' => 6, '06' => 6, 'sab' => 6, 'sáb' => 6, 'sabado' => 6, 'sábado' => 6,
        '7' => 7, '07' => 7, 'dom' => 7, 'domingo' => 7
    );

    $v2 = strtolower($v);
    return isset($map[$v2]) ? $map[$v2] : 0;
}

function diaTextoPublico($n, $lang_lunes, $lang_martes, $lang_miercoles, $lang_jueves, $lang_viernes, $lang_sabado, $lang_domingo)
{
    $dias = array(
        1 => $lang_lunes,
        2 => $lang_martes,
        3 => $lang_miercoles,
        4 => $lang_jueves,
        5 => $lang_viernes,
        6 => $lang_sabado,
        7 => $lang_domingo
    );
    return isset($dias[(int)$n]) ? $dias[(int)$n] : '';
}

function resolverUrlImagenProgramaPublico($imagen, $dom, $carpetaFisica)
{
    $imagen = trim((string)$imagen);
    if ($imagen === '') {
        return '';
    }

    if (preg_match('~^https?://~i', $imagen)) {
        return $imagen;
    }

    $baseUrl = rtrim((string)$dom, '/') . '/upload_pic/';
    $baseDir = rtrim($carpetaFisica, '/\\') . DIRECTORY_SEPARATOR;

    $candidatos = array();

    if (strpos($imagen, '.') !== false) {
        $candidatos[] = $imagen;
    } else {
        $candidatos[] = 'resize_' . $imagen . '.jpg';
        $candidatos[] = $imagen;
        $candidatos[] = $imagen . '.jpg';
        $candidatos[] = $imagen . '.jpeg';
        $candidatos[] = $imagen . '.png';
        $candidatos[] = $imagen . '.webp';
        $candidatos[] = $imagen . '.gif';
    }

    foreach ($candidatos as $archivo) {
        if (file_exists($baseDir . $archivo)) {
            return $baseUrl . $archivo;
        }
    }

    return $baseUrl . $imagen;
}

$dirUploadPic = __DIR__ . '/upload_pic';
$hoy_numero   = (int)date('N');
$color_principal = !empty($d_color_fondo_menu) ? $d_color_fondo_menu : '#001b4f';

$horariosPorDia = array(
    1 => array(),
    2 => array(),
    3 => array(),
    4 => array(),
    5 => array(),
    6 => array(),
    7 => array()
);

$sqlHorarios = "
    SELECT 
        programacion.*,
        programas.nombre AS programa_nombre,
        programas.imagen AS programa_imagen,
        programas.url AS programa_url
    FROM programacion
    LEFT JOIN programas ON programacion.programa = programas.ID
    ORDER BY CAST(programacion.dia AS UNSIGNED) ASC, programacion.ini ASC, programacion.fin ASC
";
$resHorarios = $conn->query($sqlHorarios);

if ($resHorarios) {
    while ($row = $resHorarios->fetch_assoc()) {
        $nDia = diaNumeroPublico($row['dia']);
        if ($nDia > 0) {
            $nombre = '';
            if (!empty($row['programa_nombre'])) {
                $nombre = $row['programa_nombre'];
            } elseif (!empty($row['nombre'])) {
                $nombre = $row['nombre'];
            } else {
                $nombre = 'Programa';
            }

            $row['programa_nombre'] = $nombre;
            $row['imagen_url'] = resolverUrlImagenProgramaPublico(
                isset($row['programa_imagen']) ? $row['programa_imagen'] : '',
                isset($dom) ? $dom : '',
                $dirUploadPic
            );

            $horariosPorDia[$nDia][] = $row;
        }
    }
    $resHorarios->free();
}
?>

<style>
.programacion-publica-wrap{
    width:100%;
    margin-bottom:30px;
}

.programacion-header-box{
    background:<?php echo h($color_principal); ?>;
    padding:18px 20px;
    margin-bottom:15px;
}

.programacion-header-box h1{
    margin:0;
    color:#ffffff;
    font-size:28px;
    line-height:1.2;
    font-weight:700;
}

.programacion-sub{
    color:#6b7280;
    font-size:15px;
    margin-bottom:20px;
}

.programacion-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:16px;
    align-items:start;
}

.programacion-dia{
    background:#ffffff;
    border:1px solid #d9dee7;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
    overflow:hidden;
}

.programacion-dia.es-hoy{
    border:2px solid <?php echo h($color_principal); ?>;
}

.programacion-dia-head{
    background:<?php echo h($color_principal); ?>;
    color:#fff;
    padding:12px 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.programacion-dia-head h2{
    margin:0;
    font-size:18px;
    line-height:1.2;
    font-weight:700;
    color:#fff;
}

.programacion-hoy-badge{
    background:#ffffff;
    color:<?php echo h($color_principal); ?>;
    font-size:12px;
    font-weight:700;
    padding:4px 8px;
}

.programacion-dia-body{
    padding:12px;
    background:#f8f9fb;
}

.programa-item{
    background:#fff;
    border:1px solid #e3e8ef;
    padding:12px;
    margin-bottom:12px;
}

.programa-item:last-child{
    margin-bottom:0;
}

.programa-horario{
    display:inline-block;
    background:#e9eef9;
    color:#1857d8;
    font-size:12px;
    font-weight:700;
    padding:6px 10px;
    margin-bottom:10px;
    line-height:1;
}
.programa-nombre{
    display:block;
    font-size:16px;
    font-weight:700;
    color:<?php echo !empty($d_color_titulo) ? h($d_color_titulo) : '#ffffff'; ?>;
    margin:0 0 10px 0;
    line-height:1.25;
    text-decoration:none;
    background:<?php echo h($color_principal); ?>;
    padding:8px 10px;
}

.programa-nombre:hover{
    text-decoration:none;
    color:<?php echo !empty($d_color_titulo) ? h($d_color_titulo) : '#ffffff'; ?>;
    opacity:.95;
}

.programa-foto-wrap{
    width:100%;
    overflow:hidden;
    border:1px solid #dfe5ee;
    background:#ffffff;
}

.programa-foto{
    display:block;
    width:100%;
    height:140px;
    object-fit:cover;
}

.programa-sin-foto{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:140px;
    border:1px dashed #d8dee8;
    background:#f3f4f6;
    color:#9ca3af;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
}

.programacion-vacio{
    background:#fff;
    border:1px dashed #d8dee8;
    color:#94a3b8;
    text-align:center;
    padding:24px 12px;
    font-size:14px;
}

@media (max-width: 991px){
    .programacion-header-box h1{
        font-size:24px;
    }
}

@media (max-width: 575px){
    .programacion-grid{
        grid-template-columns:1fr;
    }

    .programacion-header-box{
        padding:15px 16px;
    }

    .programacion-header-box h1{
        font-size:22px;
    }
}
</style>

<div id="content" class="content news-summary col-lg-8 col-md-8 col-sm-12 col-12">
    <div class="programacion-publica-wrap">

        <div class="programacion-header-box">
            <h1><?php echo h($lang_programacion); ?></h1>
        </div>

        <div class="programacion-sub"><?php echo h($lang_programacion); ?></div>

        <div class="programacion-grid">
            <?php for ($dia = 1; $dia <= 7; $dia++) { ?>
                <div class="programacion-dia<?php echo ($dia === $hoy_numero ? ' es-hoy' : ''); ?>">
                    <div class="programacion-dia-head">
                        <h2><?php echo h(diaTextoPublico($dia, $lang_lunes, $lang_martes, $lang_miercoles, $lang_jueves, $lang_viernes, $lang_sabado, $lang_domingo)); ?></h2>
                        <?php if ($dia === $hoy_numero) { ?>
                            <span class="programacion-hoy-badge">Hoy</span>
                        <?php } ?>
                    </div>

                    <div class="programacion-dia-body">
                        <?php if (!empty($horariosPorDia[$dia])) { ?>
                            <?php foreach ($horariosPorDia[$dia] as $item) { ?>
                                <div class="programa-item">
                                    <div class="programa-horario">
                                        de <?php echo h($item['ini']); ?> a <?php echo h($item['fin']); ?>
                                    </div>

                                    <?php if (!empty($item['programa_url'])) { ?>
                                        <a href="<?php echo h($item['programa_url']); ?>" class="programa-nombre" target="_blank">
                                            <?php echo h($item['programa_nombre']); ?>
                                        </a>
                                    <?php } else { ?>
                                        <div class="programa-nombre"><?php echo h($item['programa_nombre']); ?></div>
                                    <?php } ?>

                                    <?php if (!empty($item['imagen_url'])) { ?>
                                        <div class="programa-foto-wrap">
                                            <img src="<?php echo h($item['imagen_url']); ?>" alt="<?php echo h($item['programa_nombre']); ?>" class="programa-foto" loading="lazy">
                                        </div>
                                    <?php } else { ?>
                                        <div class="programa-sin-foto">Sin imagen</div>
                                    <?php } ?>
                                </div>
                            <?php } ?>
                        <?php } else { ?>
                            <div class="programacion-vacio">Sin programación cargada</div>
                        <?php } ?>
                    </div>
                </div>
            <?php } ?>
        </div>

    </div>
</div>

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