<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
    <link rel="shortcut icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
    <title>LABRE-DX Contest — Envio de LOG</title>
    <style>
        * { box-sizing: border-box; }
        body { font-family: Arial, sans-serif; margin: 0; padding: 0; background: #f4f6fa; color: #333; }
        .header { background: #1B4F8C; color: #fff; padding: 1.25rem 2rem; text-align: center; }
        .header h1 { margin: 0; font-size: 1.6rem; }
        .header p  { margin: .25rem 0 0; opacity: .85; font-size: .9rem; }
        .container { max-width: 680px; margin: 2rem auto; padding: 0 1rem 3rem; }
        .card { background: #fff; border-radius: 8px; box-shadow: 0 2px 12px rgba(0,0,0,.08); padding: 2rem; }
        label { font-weight: bold; display: block; margin-bottom: .35rem; font-size: .92rem; }
        .bilingual { font-size: .78rem; color: #1B4F8C; font-weight: normal; display: block; margin-top: .1rem; }
        select, input[type=text], input[type=email], input[type=date], input[type=file] {
            width: 100%; padding: .6rem .8rem; border: 1px solid #ccc; border-radius: 5px;
            font-size: .9rem; margin-bottom: 1.25rem; }
        select:focus, input:focus { border-color: #1B4F8C; outline: none; box-shadow: 0 0 0 2px rgba(27,79,140,.15); }
        .btn { display: block; width: 100%; padding: .85rem; background: #1B4F8C; color: #fff;
               border: none; border-radius: 5px; font-size: 1rem; cursor: pointer; font-weight: bold; }
        .btn:hover { background: #154070; }
        .btn-secondary { background: #6c757d; margin-top: .5rem; }
        .alert { padding: .85rem 1rem; border-radius: 6px; margin-bottom: 1.25rem; font-size: .9rem; }
        .alert-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
        .alert-warning { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }
        .alert-danger  { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
        .alert-info    { background: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; }
        .errors-list { margin: .5rem 0 0; padding-left: 1.25rem; }
        .footer { text-align: center; color: #aaa; font-size: .8rem; margin-top: 2rem; }
        .field-group { display: none; }
        .contest-info { background: #e8f0fb; border-radius: 6px; padding: .75rem 1rem;
                        margin-bottom: 1.5rem; font-size: .85rem; color: #1B4F8C; }
    </style>
</head>
<body>
 
<div class="header">
    <h1>🏆 LABRE-DX Contest</h1>
    <p>Sistema de Recebimento de LOGs &nbsp;|&nbsp; LOG Receiving System</p>
</div>
 
<div class="container">
 
@if(!isset($contest) || !$contest)
    <div class="card">
        <div class="alert alert-danger">
            ❌ <strong>Nenhum contest configurado.</strong><br>
            Entre em contato com a organização em
            <a href="mailto:contest@labre.org.br">contest@labre.org.br</a>.<br>
            <em>No contest configured. Please contact the organization.</em>
        </div>
    </div>
@elseif(!$contestAberto)
    <div class="card">
        @php
            $agora   = now()->startOfDay();
            $inicio  = \Carbon\Carbon::parse($contest->inicio_log)->startOfDay();
            $limite  = \Carbon\Carbon::parse($contest->limit_log)->endOfDay();
            $antesDoInicio = $agora->lt($inicio);
        @endphp
 
        @if($antesDoInicio)
        {{-- Antes do início --}}
        <div class="alert alert-info">
            🕐 <strong>O período de envio de LOGs ainda não começou.</strong><br>
            <em>The LOG submission period has not started yet.</em><br><br>
            📅 <strong>Início / Start:</strong>
            {{ $inicio->format('d/m/Y') }}<br>
            📅 <strong>Encerramento / Deadline:</strong>
            {{ $limite->format('d/m/Y') }}<br><br>
            <span style="font-size:.88rem;color:#555">
                Volte a partir de {{ $inicio->format('d/m/Y') }} para enviar seu LOG.<br>
                <em>Come back from {{ $inicio->format('d/m/Y') }} to submit your LOG.</em>
            </span>
        </div>
        @else
        {{-- Após o encerramento --}}
        <div class="alert alert-warning">
            ⛔ <strong>O período de envio de LOGs foi encerrado.</strong><br>
            <em>The LOG submission period is closed.</em><br><br>
            📅 <strong>O contest foi realizado em / The contest took place on:</strong>
            {{ \Carbon\Carbon::parse($contest->start_date)->format('d/m/Y H:i') }} –
            {{ \Carbon\Carbon::parse($contest->end_date)->format('d/m/Y H:i') }} UTC<br>
            📅 <strong>Prazo de envio encerrado em / Submission deadline was:</strong>
            {{ $limite->format('d/m/Y') }}<br><br>
            <span style="font-size:.88rem;color:#555">
                Se você ainda precisar enviar seu LOG, entre em contato:<br>
                <em>If you still need to submit your LOG, please contact:</em><br>
                <a href="mailto:contest@labre.org.br" style="color:#856404">contest@labre.org.br</a>
            </span>
        </div>
        @endif
    </div>
@else
 
{{-- Resultado do envio anterior --}}
@if(session('resultado'))
    @php $res = session('resultado'); @endphp
    <div class="alert alert-{{ empty($res['errors']) ? 'success' : 'warning' }}">
        <strong>
            {{ $res['sucesso'] === 'substituido'
                ? '✅ LOG substituído com sucesso! / LOG successfully replaced!'
                : '✅ LOG enviado com sucesso! / LOG successfully submitted!' }}
        </strong><br>
        Indicativo: <strong>{{ $res['indicativo'] }}</strong> &nbsp;|&nbsp;
        Confirmação enviada para: <strong>{{ $res['email'] }}</strong>
        @if(!empty($res['errors']))
            <div style="margin-top:.5rem;font-size:.85rem">
                <strong>⚠️ LOG aceito com inconsistências:</strong>
                <ul class="errors-list">
                    @foreach($res['errors'] as $e)
                        <li>{{ $e }}</li>
                    @endforeach
                </ul>
                <em>Corrija e reenvie para evitar penalizações.</em>
            </div>
        @endif
    </div>
@endif
 
{{-- Confirmação de substituição --}}
@if(session('confirma_substituir'))
    <div class="alert alert-warning">
        ⚠️ <strong>Já existe um LOG para {{ session('log_indicativo') }}.</strong><br>
        Deseja substituí-lo? / Do you want to replace it?
        <form method="POST" action="{{ route('public.log.store') }}" style="margin-top:.75rem">
            @csrf
            @foreach(session('log_dados', []) as $k => $v)
                <input type="hidden" name="{{ $k }}" value="{{ $v }}">
            @endforeach
            <input type="hidden" name="confirma_substituir" value="1">
            <button type="submit" class="btn" style="background:#C62828;margin-bottom:.5rem">
                ✅ Sim, substituir / Yes, replace
            </button>
            <a href="{{ route('public.log.index') }}" class="btn btn-secondary" style="text-align:center;display:block;padding:.85rem;border-radius:5px;text-decoration:none;color:#fff">
                ❌ Não, manter original / No, keep original
            </a>
        </form>
    </div>
@else
 
<div class="card">
    <div class="contest-info">
        📅 <strong>{{ $contest->name }}</strong> &nbsp;|&nbsp;
        Envio aberto até: <strong>{{ \Carbon\Carbon::parse($contest->limit_log)->format('d/m/Y') }}</strong>
    </div>
 
    @if($errors->any())
        <div class="alert alert-danger">
            <ul class="errors-list" style="margin:0;padding-left:1.25rem">
                @foreach($errors->all() as $e)
                    <li>{{ $e }}</li>
                @endforeach
            </ul>
        </div>
    @endif
 
    <form id="formLog" method="POST" action="{{ route('public.log.store') }}" enctype="multipart/form-data">
        @csrf
 
        {{-- 1. Categoria --}}
        <label>1. Categoria / Category
            <span class="bilingual">Qual a categoria que você irá participar? / Which category will you participate in?</span>
        </label>
        <select name="categoria" id="categoria" required onchange="handleCategoryChange()">
            <option value="">Selecione / Select</option>
            @foreach(['MULTI-OP-ONE','MULTI-OP-TWO','MULTI-MULTI','SINGLE-OP','SINGLE-OP-YOUTH','SINGLE-OP-YL','SINGLE-OP-CLASSIC','CHECKLOG'] as $cat)
                <option value="{{ $cat }}" {{ old('categoria') === $cat ? 'selected' : '' }}>{{ $cat }}</option>
            @endforeach
        </select>
 
        {{-- Data de nascimento (YOUTH) --}}
        <div id="dobField" class="field-group">
            <label>Data de Nascimento / Date of Birth
                <span class="bilingual">Obrigatório para SINGLE-OP-YOUTH</span>
            </label>
            <input type="date" name="dataNascimento" id="dataNascimento" value="{{ old('dataNascimento') }}">
        </div>
 
        {{-- 2. Potência --}}
        <label>2. Potência / Power</label>
        <select name="potencia" id="potencia" required onchange="handleCategoryChange()">
            <option value="">Selecione / Select</option>
            @foreach(['HIGH','LOW','QRP'] as $p)
                <option value="{{ $p }}" {{ old('potencia') === $p ? 'selected' : '' }}>{{ $p }}</option>
            @endforeach
        </select>
 
        {{-- 3. Banda --}}
        <label>3. Banda / Band</label>
        <select name="banda" id="banda" required>
            <option value="">Selecione / Select</option>
            @foreach(['ALL','10M','15M','20M','40M','80M','160M'] as $b)
                <option value="{{ $b }}" {{ old('banda') === $b ? 'selected' : '' }}>{{ $b }}</option>
            @endforeach
        </select>
 
        {{-- 4. Modo --}}
        <label>4. Modo / Mode</label>
        <select name="modo" id="modo" required>
            <option value="">Selecione / Select</option>
            @foreach(['MIXED','SSB','CW'] as $m)
                <option value="{{ $m }}" {{ old('modo') === $m ? 'selected' : '' }}>{{ $m }}</option>
            @endforeach
        </select>
 
        {{-- 5. Exchange --}}
        <label>5. Exchange</label>
        <select name="exchange" required>
            <option value="">Selecione / Select</option>
            @foreach($exchanges as $ex)
                <option value="{{ $ex }}" {{ old('exchange') === $ex ? 'selected' : '' }}>{{ $ex }}</option>
            @endforeach
        </select>
 
        {{-- 6. Indicativo --}}
        <label>6. Indicativo / Callsign</label>
        <input type="text" name="indicativo" id="indicativo" required
               value="{{ old('indicativo') }}"
               placeholder="Ex: PY6MV" style="text-transform:uppercase">
 
        {{-- 7. E-mail --}}
        <label>7. E-mail</label>
        <input type="email" name="email" required
               value="{{ old('email') }}"
               placeholder="seu@email.com">
 
        {{-- 8. Clube --}}
        <label>8. Clube / Club
            <span class="bilingual">Para pontuar na classificação de clubes</span>
        </label>
        <select name="club" id="club" required onchange="toggleClubList()">
            <option value="">Selecione / Select</option>
            <option value="Brasileiros" {{ old('club')==='Brasileiros' ? 'selected':'' }}>Brasileiros</option>
            <option value="Estrangeiros" {{ old('club')==='Estrangeiros' ? 'selected':'' }}>Estrangeiros</option>
            <option value="Labres-HQ" {{ old('club')==='Labres-HQ' ? 'selected':'' }}>LABRE Estadual (HQ)</option>
            <option value="Nenhum" {{ old('club')==='Nenhum' ? 'selected':'' }}>Nenhum / None</option>
        </select>
 
        <div id="clubBrasilDiv" class="field-group">
            <label>Clube Brasileiro / Brazilian Club</label>
            <select name="club_brasil" id="club_brasil">
                <option value="">Selecione / Select</option>
                @foreach($clubesBrasil as $c)
                    <option value="{{ $c }}" {{ old('club_brasil')===$c ? 'selected':'' }}>{{ $c }}</option>
                @endforeach
            </select>
        </div>
 
        <div id="clubHQDiv" class="field-group">
            <label>LABRE Estadual (HQ)</label>
            <select name="club_hq" id="club_hq">
                <option value="">Selecione / Select</option>
                @foreach($labresHQ as $hq)
                    <option value="{{ $hq }}" {{ old('club_hq')===$hq ? 'selected':'' }}>{{ $hq }}</option>
                @endforeach
            </select>
        </div>
 
        {{-- Campo hidden com clube final consolidado --}}
        <input type="hidden" name="club_final" id="club_final" value="{{ old('club_final') }}">
 
        {{-- 9. Arquivo --}}
        <label>9. Arquivo LOG / LOG File
            <span class="bilingual">Somente arquivos .log no formato Cabrillo / Only .log files in Cabrillo format</span>
        </label>
        <input type="file" name="arquivo" accept=".log" required>
 
        <button type="submit" class="btn" onclick="prepareClubFinal()">
            📤 Enviar LOG / Submit LOG
        </button>
    </form>
</div>
 
@endif {{-- confirma_substituir --}}
@endif {{-- contestAberto --}}
 
<div class="footer">
    <p>LABRE-DX Contest &nbsp;|&nbsp; Sistema de Apuração &nbsp;|&nbsp; PY6MV</p>
    <p><a href="{{ route('public.logs.lista') }}" style="color:#1B4F8C">
        📋 Ver LOGs já recebidos / View received LOGs
    </a></p>
</div>
</div>
 
<script>
function handleCategoryChange() {
    const cat     = document.getElementById('categoria').value;
    const pot     = document.getElementById('potencia').value;
    const banda   = document.getElementById('banda');
    const modo    = document.getElementById('modo');
    const dob     = document.getElementById('dobField');
 
    // Mostrar campo data nascimento para YOUTH
    dob.style.display = cat === 'SINGLE-OP-YOUTH' ? 'block' : 'none';
 
    // Restrições de banda
    const allBands = ['ALL','10M','15M','20M','40M','80M','160M'];
    const restricAll = cat.startsWith('MULTI') || cat === 'SINGLE-OP-YOUTH' ||
                       cat === 'SINGLE-OP-YL'  || cat === 'SINGLE-OP-CLASSIC' ||
                       cat === 'CHECKLOG'       || pot === 'QRP';
 
    banda.innerHTML = '';
    (restricAll ? ['ALL'] : allBands).forEach(function(b) {
        const o = document.createElement('option');
        o.value = b; o.textContent = b;
        banda.appendChild(o);
    });
    if (restricAll) banda.value = 'ALL';
 
    // Restrições de modo
    const modos = (cat.startsWith('MULTI') || cat === 'CHECKLOG') ? ['MIXED'] : ['MIXED','SSB','CW'];
    modo.innerHTML = '';
    modos.forEach(function(m) {
        const o = document.createElement('option');
        o.value = m; o.textContent = m;
        modo.appendChild(o);
    });
    if (modos.length === 1) modo.value = modos[0];
}
 
function toggleClubList() {
    const val    = document.getElementById('club').value;
    const brasil = document.getElementById('clubBrasilDiv');
    const hq     = document.getElementById('clubHQDiv');
    brasil.style.display = val === 'Brasileiros' ? 'block' : 'none';
    hq.style.display     = val === 'Labres-HQ'   ? 'block' : 'none';
    if (val !== 'Brasileiros') document.getElementById('club_brasil').value = '';
    if (val !== 'Labres-HQ')  document.getElementById('club_hq').value = '';
    prepareClubFinal();
}
 
function prepareClubFinal() {
    const val = document.getElementById('club').value;
    let final = val;
    if (val === 'Brasileiros') {
        final = document.getElementById('club_brasil').value || 'Brasileiros';
    } else if (val === 'Labres-HQ') {
        final = document.getElementById('club_hq').value || 'Labres-HQ';
    }
    document.getElementById('club_final').value = final;
}
 
// Inicializar
handleCategoryChange();
toggleClubList();
</script>
</body>
</html>
