1<!doctype html><html lang="fr"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Calendrier sportif CNBV 2026-2027</title><style> 2*{box-sizing:border-box} body{font-family:Arial,Helvetica,sans-serif;margin:0;padding:12px;color:#12244f;background:#f1f5f9} 3h1{font-size:18px;margin:0 0 4px;color:#0b3d2e} .sub{font-size:12px;color:#475569;margin-bottom:8px} 4#printhdr{display:none} 5.bar{position:sticky;top:0;background:#f1f5f9;padding:8px 0;z-index:10;display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-bottom:1px solid #cbd5e1;margin-bottom:8px} 6.bar button{border:1px solid #cbd5e1;background:#fff;color:#1e293b;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:700;cursor:pointer} 7.bar button.active{background:#0b3d2e;color:#fff;border-color:#0b3d2e} 8.bar select,.bar input{border:1px solid #cbd5e1;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700} 9.grp{display:flex;gap:6px;align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:2px 8px} 10.grp.on{background:#fef3c7;border-color:#f59e0b} 11.tool{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap} 12table{width:100%;border-collapse:collapse;font-size:12px;background:#fff} th,td{border:1px solid #b8c2cc;padding:4px 6px;vertical-align:middle} 13th{background:#2E75B6;color:#fff;font-size:10px;text-align:center} th small{font-weight:400;font-size:9px} 14td.l{text-align:left} td.c,td.x{text-align:center} .x .on{color:#0F6E56;font-weight:800} 15tr.mois td{background:#C00000;color:#fff;font-weight:800} tr.vac td{background:#FFF2CC;color:#7F6000;font-style:italic;font-weight:700;text-align:center;font-size:11px} 16tr.janhdr td{background:#BDD7EE;color:#1F4E79;font-weight:700;font-size:10px;text-align:center} 17tr.today>td{outline:2px solid #f59e0b}@media print{tr.today>td{outline:none}} 18.car{color:#0b3d2e;font-weight:800;display:inline-block;width:12px} 19.badge{font-size:9px;font-weight:800;border-radius:5px;padding:1px 5px;white-space:nowrap;vertical-align:middle} 20.bdep{background:#0F6E56;color:#fff} .blig{background:#1d4ed8;color:#fff} .bnat{background:#7c3aed;color:#fff} 21.home{font-size:11px} .catsum{display:none;color:#475569;font-weight:700;font-size:11px;margin-left:4px} 22.ics{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:1px 5px;font-size:11px;cursor:pointer;margin-left:2px} 23.progbox{background:#f8fafc;border-left:4px solid #0b3d2e;padding:8px 12px;font-size:12px;line-height:1.7;color:#1e293b} 24.legend{font-size:11px;color:#334155;margin-top:10px;line-height:1.8} .sw{display:inline-block;width:14px;height:14px;border:1px solid #999;vertical-align:middle;margin-right:3px} 25.hint{font-size:12px;color:#0b3d2e;margin:4px 0;font-weight:700;min-height:1.2em} 26@media print{@page{size:A4 landscape;margin:7mm} .bar,.tool,.noprint{display:none !important} body{background:#fff;padding:0} h1{font-size:15px} #printhdr{display:block;font-size:14px;font-weight:800;color:#0b3d2e;margin:2px 0 8px} table{font-size:9.5px} th{font-size:8.5px} th small{font-size:7.5px} .badge{font-size:8px} table,tr,td,th{page-break-inside:avoid}} 27@media(max-width:640px){ 28 th.ct, td.x{display:none} 29 table,tr,td{display:block;width:100%} thead{display:none} 30 tr.ev{border:1px solid #b8c2cc;border-radius:8px;margin-bottom:6px;padding:4px} 31 tr.ev td{border:none;padding:2px 6px} 32 .catsum{display:inline-block} 33 tr.mois td,tr.vac td,tr.janhdr td{display:block;border-radius:6px;margin-bottom:4px} 34 tr.prog td{display:block} 35} 36.lgbw{display:none}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact} body.pbw *{background:#fff !important;color:#000 !important} body.pbw td,body.pbw th{border-color:#000 !important} body.pbw th{font-weight:800;border-bottom:2px solid #000} body.pbw tr.mois td{font-weight:800;text-transform:uppercase;border-top:2px solid #000;border-bottom:2px solid #000} body.pbw tr.janhdr td{font-weight:700;border-bottom:1px solid #000} body.pbw tr.vac td{font-style:italic;text-align:center} body.pbw .badge,body.pbw .bwtag{border:1px solid #000 !important;color:#000 !important;background:#fff !important} body.pbw .lgcolor{display:none} body.pbw .lgbw{display:inline} body.pcolor .lgbw{display:none} .bwtag{border:1px solid #333;border-radius:4px;padding:0 3px;font-size:8px;font-weight:800;margin-right:4px}}.hlogo{display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;background:#e2001a;color:#fff;border-radius:3px;font-size:10px;line-height:1;margin-right:4px;vertical-align:middle;font-weight:800}img.hlogo{background:none;height:20px;width:auto;min-width:0;border-radius:0}@media print{body.pbw .hlogo{background:#fff !important;color:#000 !important;border:1px solid #000} body.pbw img.hlogo{filter:grayscale(1)}}#nlogin-modal{position:fixed;inset:0;background:#0007;display:none;align-items:center;justify-content:center;z-index:1000}#nlogin-modal.on{display:flex}.nl-card{position:relative;background:#fff;border-radius:14px;padding:24px 22px 18px;max-width:360px;width:92%;box-shadow:0 10px 40px #0005;text-align:center}.nl-card h3{margin:2px 0 6px;font-size:18px;color:#0b3d2e}.nl-card p{color:#607089;font-size:13px;margin:0 0 14px;line-height:1.4}.nl-card input{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:9px;font-size:15px}.nl-btn{background:#0b3d2e;color:#fff;border:none;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer;margin-top:12px;font-size:15px;width:100%}.nl-btn.nl-out{background:#b23b3b} 37.hlogo{display:inline-block;vertical-align:-3px;margin:0 2px} 38.coachbox{text-align:left;font-size:14px} 39.coachbox h3{margin:0 0 8px} 40.coachbox .cbsec{border:1px solid #e5e7eb;border-radius:10px;padding:12px;margin:10px 0;background:#fafafa} 41.coachbox .cbsec>b{display:block;margin-bottom:6px;color:#0b3d2e} 42.coachbox input[type=file]{width:100%;font-size:13px} 43.coachbox .cbprev{max-height:190px;overflow:auto;border:1px solid #e5e7eb;border-radius:8px;margin-top:8px;background:#fff;font-size:12px} 44.coachbox .cbprev div{padding:3px 8px;border-bottom:1px solid #f1f5f9} 45.coachbox .cbnew{color:#0a7c2f;font-weight:700} 46.coachbox .cbnote{font-size:12px;color:#64748b;margin-top:6px} 47.coachbox .cbstat{margin-top:8px;font-size:13px;min-height:18px} 48.coachbox .cbstat.ok{color:#0a7c2f}.coachbox .cbstat.err{color:#b23b3b} 49.coachbox .amber{background:#fef3c7;border:1px solid #fde68a;color:#92400e;padding:8px 10px;border-radius:8px;font-size:12px;margin-top:8px}.nl-lnk{display:inline-block;margin:6px 0;color:#0b3d2e;font-weight:700;font-size:13px}.nl-x{position:absolute;top:8px;right:14px;font-size:24px;color:#94a3b8;cursor:pointer;line-height:1}.nl-status{font-size:13px;margin-top:8px;min-height:1.1em;color:#607089}.nl-status.err{color:#c0392b}.qbadge{font-size:9px;font-weight:800;border-radius:5px;padding:1px 6px;margin-left:5px;white-space:nowrap;vertical-align:middle}.qok{background:#0a7c2f;color:#fff}.qaim{background:#f4f4f5;color:#9ca3af;border:1px solid #e5e7eb;font-weight:600}@media print{.qbadge{display:none}}.selbadge{background:#0a7c2f;color:#fff;font-size:9px;font-weight:800;border-radius:5px;padding:1px 6px;margin-left:5px;white-space:nowrap;vertical-align:middle}.selno{background:#f4f4f5;color:#9ca3af;border:1px solid #e5e7eb;font-size:9px;font-weight:600;border-radius:5px;padding:1px 6px;margin-left:5px;white-space:nowrap;vertical-align:middle}@media print{.selno{display:none}}#selbanner{display:none;margin:2px 0 10px;padding:9px 13px;border-radius:9px;background:#eaf7ef;border:1px solid #7bc99a;font-size:13px;font-weight:700;color:#0a7c2f;line-height:1.4}#selbanner.on{display:block}</style></head><body><div id="printhdr"></div><h1 class="noprint">ð Calendrier sportif interactif 2026-2027 â CNBV</h1><div class="sub noprint">Filtre par catégorie / année de naissance · clic sur ⸠pour le programme · ð agenda · ð¯ sélection · ð domicile.</div><div class="noprint" style="margin:2px 0 10px"><button id="nlogin-btn" onclick="nlOpen()" style="background:#0b3d2e;color:#fff;border:none;font-weight:800;padding:10px 18px;border-radius:999px;font-size:14px;box-shadow:0 2px 6px #0b3d2e33;cursor:pointer">ð Espace nageur â me connecter</button></div><div id="nlogin-modal" class="noprint"><div class="nl-card"><span class="nl-x" onclick="nlClose()">Ã</span><div id="nl-body"></div></div></div><div id="selbanner" class="noprint"></div><div class="bar"><button data-f="all" onclick="flt('all')">Tout</button><button data-f="av" onclick="flt('av')">Avenirs</button><button data-f="benj" onclick="flt('benj')">Benjamins</button><button data-f="jun" onclick="flt('jun')">Juniors et +</button><button data-f="mai" onclick="flt('mai')">Maîtres</button><button data-f="handi" onclick="flt('handi')">Handi</button><button data-f="club" onclick="flt('club')">RDV CNBV</button><button data-f="sel" onclick="fltSel()">ð¯ Sélection</button><button data-f="home" onclick="flt('home')">ð Domicile</button><button class="fut" onclick="toggleFuture(this)">à venir</button><span class="grp" id="yearg">ð <select id="year" onchange="fltYear(this.value)"><option value="">année</option><option value="2022">2022</option><option value="2021">2021</option><option value="2020">2020</option><option value="2019">2019</option><option value="2018">2018</option><option value="2017">2017</option><option value="2016">2016</option><option value="2015">2015</option><option value="2014">2014</option><option value="2013">2013</option><option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option></select></span><span class="grp">ð <input id="q" placeholder="rechercherâ¦" oninput="doSearch(this.value)" style="border:none;outline:none;width:110px"></span><span class="grp noprint">ð¤ <input id="prenom" placeholder="Prénom" oninput="setPrenom(this.value)" style="border:none;outline:none;width:90px"></span><span class="tool"><button class="noprint" onclick="calxOpen()" style="background:#0b6ba8;color:#fff;border-color:#0b6ba8;font-weight:700">ð Exporter vers Calendrier</button>
49<button class="noprint" onclick="expandAll()">Déplier tout</button><button class="noprint" onclick="collapseAll()">Replier tout</button><button class="noprint" onclick="printColor()" style="background:#0b3d2e;color:#fff;border-color:#0b3d2e">ð¨ Couleur</button><button class="noprint" onclick="printBW()" style="background:#334155;color:#fff;border-color:#334155">ð¨ N&B</button></span></div><div class="hint" id="cnt"></div><table id="cal"><thead><tr class="hdr"><th>DATES</th><th>Bassin</th><th>DÃSIGNATION</th><th>LIEUX</th><th class="ct">E.N.F<br><small>tous âges</small></th><th class="ct">AVENIRS<br><small>11 ans et -<br>2015 & +</small></th><th class="ct">BENJAMINS<br><small>12-13 ans<br>2013-2014</small></th><th class="ct">JUNIORS ET +<br><small>14 ans et +<br>2012 & -</small></th><th class="ct">MAÃTRES<br><small>25 ans et +<br>2001 & -</small></th><th class="ct">HANDI<br><small>cat. FFH</small></th></tr></thead><tbody><tr class="mois"><td colspan="10">SEPTEMBRE 2026</td></tr><tr class="ev" data-id="1" data-cats="club" data-club="1" data-period="2026" data-date="2026-09-01" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Rentrée du CNBV" data-lieu="BELLEGARDE (ValséO)" data-search="rentrée du cnbv bellegarde (valséo)" style="background:#FCE4D6"><td class="l">Mardi 01 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Rentrée du CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="2" data-cats="club" data-club="1" data-period="2026" data-date="2026-09-02" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Journée de test entrée au CNBV" data-lieu="BELLEGARDE" data-search="journée de test entrée au cnbv bellegarde" style="background:#FCE4D6"><td class="l">Mercredi 02 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Journée de test entrée au CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="3" data-cats="club" data-club="1" data-period="2026" data-date="2026-09-06" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Journée Portes Ouvertes (JPO) ValséO" data-lieu="BELLEGARDE" data-search="journée portes ouvertes (jpo) valséo bellegarde" style="background:#FCE4D6"><td class="l">Dimanche 06 (matin) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Journée Portes Ouvertes (JPO) ValséO</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="4" data-cats="club" data-club="1" data-period="2026" data-date="2026-09-26" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Soirée Faluches Jéjé aux berges du Rhône" data-lieu="BELLEGARDE" data-search="soirée faluches jéjé aux berges du rhône bellegarde" style="background:#FCE4D6"><td class="l">Samedi 26 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Soirée Faluches Jéjé aux berges du Rhône</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="5" data-cats="club" data-club="1" data-period="2026" data-date="2026-09-30" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Journée de test entrée au CNBV" data-lieu="BELLEGARDE" data-search="journée de test entrée au cnbv bellegarde" style="background:#FCE4D6"><td class="l">Mercredi 30 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Journée de test entrée au CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="mois"><td colspan="10">OCTOBRE 2026</td></tr><tr class="ev" data-id="6" data-cats="enf av" data-club="0" data-period="2026" data-date="2026-10-03" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Regroupement U11 et moins" data-lieu="BELLEGARDE (ValséO)" data-search="regroupement u11 et moins bellegarde (valséo)" style="background:#ffffff"><td class="l">Samedi 03 (matin) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Regroupement U11 et moins</b> <span class="home" title="à Bellegarde / ValséO">ð </span> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">ENF · Av</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="7" data-cats="enf av" data-club="0" data-period="2026" data-date="2026-10-03" data-op="14:00" data-dur="3.75" data-comp="1" data-home="1" data-title="Circuit Avenirs Plot 4" data-lieu="BELLEGARDE (ValséO)" data-search="circuit avenirs plot 4 bellegarde (valséo)" onclick="tog(7)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 03 (après-midi) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car7">
49â¸</span> <b>Circuit Avenirs Plot 4</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog7" style="display:none"><td colspan="10"><div class="progbox"><b>Circuit Avenirs â Plot n°4 (U11 et moins)</b> · Bassin 25 m (8 lignes) · une réunion · échauffement 14hâ15h.<br><u>Ãpreuves</u> (D & M) : 100 4N · 200 4N · 50 Pap · 100 Pap · 50 NL · 100 NL · 50 Brasse · 100 Brasse · 50 Dos · 100 Dos · <b>Relais mixte 4Ã50 4 Nages</b> (2F+2G).<br><u>Règlement</u> : règle des deux départs · 4 courses max/nageur (hors relais) · toutes années d'âge confondues, D/M séparés · SNS obligatoire.<br><u>Récompenses</u> : médailles aux 3 premiers au cumul des 4 meilleures perfs â classements distincts Avenirs 1 (2015
49) / 2 (2016) / 3 (2017 & après) ; 3 premiers relais.<br><u>Défis</u> : 1er 100 4N (Avenirs 2 & 3) · 1er 200 4N (Avenirs 1).</div></td></tr><tr class="ev" data-id="8" data-cats="benj" data-club="0" data-period="2026" data-date="2026-10-03" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Regroupement U12 & U13" data-lieu="BELLEGARDE (ValséO)" data-search="regroupement u12 & u13 bellegarde (valséo)" style="background:#ffffff"><td class="l">Samedi 03 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Regroupement U12 & U13</b> <span class="home" title="à Bellegarde / ValséO">ð </span> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">Benj</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="9" data-cats="" data-club="0" data-period="2026" data-date="2026-10-10" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Assemblée générale de l'Ain" data-lieu="BELLEY" data-search="assemblée générale de l'ain belley" style="background:#ffffff"><td class="l">Samedi 10 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Assemblée générale de l'Ain</b><span class="catsum">â</span></td><td class="l">BELLEY</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="10" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2026" data-date="2026-10-10" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Kilomètre nagé forum santé CNBV - entrée gratuite" data-lieu="BELLEGARDE (ValséO)" data-search="kilomètre nagé forum santé cnbv - entrée gratuite bellegarde (valséo)" style="background:#FCE4D6"><td class="l">Samedi 10 (matin) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Kilomètre nagé forum santé CNBV - entrée gratuite</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE (ValséO)</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="11" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2026" data-date="2026-10-10" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Forum santé 9h-18h Salle Etournelles - entrée gratuite" data-lieu="VALSERHÃNE" data-search="forum santé 9h-18h salle etournelles - entrée gratuite valserhône" style="background:#FCE4D6"><td class="l">Samedi 10 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Forum santé 9h-18h Salle Etournelles - entrée gratuite</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> VALSERHÃNE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="12" data-cats="benj jun" data-club="0" data-period="2026" data-date="2026-10-11" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Interclubs U15 / Meeting de rentrée U12 et +" data-lieu="OYONNAX" data-search="interclubs u15 / meeting de rentrée u12 et + oyonnax" onclick="tog(12)" style="cursor:pointer;background:#ffffff"><td class="l">Dimanche 11 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car12">â¸</span> <b>Interclubs U15 / Meeting de rentrée U12 et +</b><span class="catsum">Benj · Jun+</span></td><td class="l">OYONNAX</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog12" style="display:none"><td colspan="10"><div class="progbox"><b>Interclubs U15 + Meeting de rentrée (U12 et +)</b> · Oyonnax · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>Meeting U12 et + â R1</u> (éch. 8h30) : Relais 4Ã50 NL · 800 NL · 100 Dos · 50 Brasse · 200 Pap · 400 4N · 50 Pap · 100 NL · 200 Brasse · 200 NL.<br><u>R2</u> (éch. 14h) : 1500 NL · 100 4N · 50 NL · 100 Brasse · 200 4N · 50 Dos · 400 NL · 100 Pap · 200 Dos · Relais 4Ã100 4N.<br><u>Interclubs U15</u> (équipes de 4, nés 2012 & 2011) â R1 : Relais 4Ã50 NL · 50 Brasse · 50 Pap ; R2 : 50 NL · 50 Dos · Relais 4Ã100 4N.<br>Qualificative meetings Ligue (grilles jaune/verte/bleue, 25 m). Règlement FFN p.85â87 · 4 épreuves indiv. + 2 relais · règle des deux départs.</div></td></tr><tr class="ev" data-id="13" data-cats="" data-club="0" data-period="2026" data-date="2026-10-17" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Assemblée générale Ligue AuRa" data-lieu="BELLEVILLE-EN-BEAUJOLAIS" data-search="assemblée générale ligue aura belleville-en-beaujolais" style="background:#ffffff"><td class="l">Samedi 17 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Assemblée générale Ligue AuRa</b><span class="catsum">â</span></td><td class="l">BELLEVILLE-EN-BEAUJOLAIS</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="14" data-cats="handi" data-club="0" data-period="2026" data-date="2026-10-18" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Plot 1 du C.N.C. Handisport" data-lieu="VALENCE" data-search="plot 1 du c.n.c. handisport valence" style="background:#ffffff"><td class="l">Dimanche 18 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Plot 1 du C.N.C. Handisport</b><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> VALENCE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="15" data-cats="jun" data-club="0" data-period="2026" data-date="2026-10-22" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="France Elite (petit bassin)" data-lieu="ANGERS" data-search="france elite (petit bassin) angers" onclick="tog(15)" style="cursor:pointer;background:#ffffff"><td class="l">Jeudi 22 au dimanche 25 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><span class="car" id="car15">â¸</span> <b>France Elite (petit bassin)</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Jun+</span></td><td class="l">ANGERS</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog15" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="vac" data-keep="1"><td colspan="10" style="background:#FFF2CC;color:#5b4a12;font-weight:600">Vacances de la Toussaint 2026 : samedi 17 octobre au dimanche 01 novembre inclus</td></tr><tr class="ev" data-id="17" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2026" data-date="2026-10-17" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Arrêt Technique Fermeture ValséO" data-lieu="BELLEGARDE" data-search="arrêt technique fermeture valséo bellegarde" style="background:#FCE4D6"><td class="l">Samedi 17 au dimanche 25 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Arrêt Technique Fermeture ValséO</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="18" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2026" data-date="2026-10-26" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="STAGES CNBV" data-lieu="BELLEGARDE" data-search="stages cnbv bellegarde" style="background:#FCE4D6"><td class="l">Lundi 26 au vendredi 30 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>STAGES CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="mois"><td colspan="10">NOVEMBRE 2026</td></tr><tr class="ev" data-id="19" data-cats="av benj jun mai" data-club="0" data-period="2026" data-date="2026-11-07" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Interclubs Finale TC Ligue AuRa" data-lieu="VILLEFRANCHE-EN-BEAUJOLAIS" data-search="interclubs finale tc ligue aura villefranche-en-beaujolais" onclick="tog(19)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 07 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car19">â¸</span> <b>Interclubs Finale TC Ligue AuRa</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Av · Benj · Jun+ · Maî</span></td><td class="l">VILLEFRANCHE-EN-BEAUJOLAIS</td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr><tr class="prog" id="prog19" style="display:none"><td colspan="10"><div class="progbox"><b>Interclubs Toutes Catégories</b>.<br><i>Programme et compo d'équipe : à venir.</i></div></td></tr><tr class="ev" data-id="20" data-cats="benj jun mai" data-club="0" data-period="2026" data-date="2026-11-08" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Interclubs départementaux TC" data-lieu="BOURG" data-search="interclubs départementaux tc bourg" onclick="tog(20)" style="cursor:pointer;background:#ffffff"><td class="l">Dimanche 08 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car20">
49â¸</span> <b>Interclubs départementaux TC</b><span class="catsum">Benj · Jun+ · Maî</span></td><td class="l">BOURG</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr><tr class="prog" id="prog20" style="display:none"><td colspan="10"><div class="progbox"><b>Interclubs départementaux TC (Toutes Catégories)</b> · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : 10Ã50 NL (D+M) · 100 Dos D / 200 Dos M · 100 Brasse D / 200 Brasse M · 100 NL D / 400 NL M · 100 Pap D / 200 Pap M · 100 4N D / 200 4N M · (pause) 4Ã200 NL Dames.<br><u>R2</u> (éch. 14h) : 4Ã200 NL M · 200 Dos D / 100 Dos M · 200 Brasse D / 100 Brasse M · 400 NL D / 100 NL M · 200 Pap D / 100 Pap M · 200 4N D / 100 4N M · (pause) 4Ã100 4N (D & M).<br>Règlement FFN p.88â93 · toute l'équipe fait le programme pour être classée · avenirs : SNS + licence Nat. Course · classements Dames et Messieurs · qualificative meetings Ligue · règle des deux départs.</div></td></tr><tr class="ev" data-id="21" data-cats="benj" data-club="0" data-period="2026" data-date="2026-11-22" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Meeting départemental U12 & U13" data-lieu="FERNEY" data-search="meeting départemental u12 & u13 ferney" onclick="tog(21)" style="cursor:pointer;background:#ffffff"><td class="l">Dimanche 22 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car21">â¸</span> <b>Meeting départemental U12 & U13</b><span class="catsum">Benj</span></td><td class="l">FERNEY</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog21" style="display:none"><td colspan="10"><div class="progbox"><b>Meeting départemental U12 & U13</b> · Ferney · Bassin 25 m (6 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : 800 NL · 50 Pap · 100 Dos · 50 Brasse · 200 Pap · 400 4N · 100 NL · 200 Brasse · 200 NL.<br><u>R2</u> (éch. 14h) : 1500 NL · 50 Dos · 100 4N · 50 NL · 100 Brasse · 200 4N · 400 NL · 100 Pap · 200 Dos.<br>Qualificative aux Championnats de France U13 en 25 m (règlement FFN p.41). Amendes : 800/1500 NL & 400 4N. 1 seul départ par course.</div></td></tr><tr class="ev" data-id="22" data-cats="benj jun mai handi" data-club="0" data-period="2026" data-date="2026-11-22" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Journée Multinage Handi-Valide" data-lieu="SAINT-ETIENNE" data-search="journée multinage handi-valide saint-etienne" style="background:#ffffff"><td class="l">Dimanche 22 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Journée Multinage Handi-Valide</b><span class="catsum">Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> SAINT-ETIENNE</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="23" data-cats="jun" data-club="0" data-period="2026" data-date="2026-11-27" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats Ligue AuRa Hiver (25m)" data-lieu="ROMANS-SUR-ISERE" data-search="championnats ligue aura hiver (25m) romans-sur-isere" onclick="tog(23)" style="cursor:pointer;background:#BDD7EE"><td class="l">Vendredi 27 au dimanche 29 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car23">â¸</span> <b>Championnats Ligue AuRa Hiver (25m)</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Jun+</span></td><td class="l">ROMANS-SUR-ISERE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog23" style="display:none"><td colspan="10"><div class="progbox"><b>Championnats Ligue AuRA Hiver (25 m)</b> â U18.<br><b>Sur qualification</b> (grille bleue). <b>Grille : à venir.</b></div></td></tr><tr class="mois"><td colspan="10">DECEMBRE 2026</td></tr><tr class="ev" data-id="24" data-cats="enf av" data-club="0" data-period="2026" data-date="2026-12-05" data-op="14:00" data-dur="3.75" data-comp="1" data-home="0" data-title="Finale Trophée de l'Ain (U11 et moins)" data-lieu="AMBERIEU" data-search="finale trophée de l'ain (u11 et moins) amberieu" onclick="tog(24)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 05 (après-midi) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car24">
49â¸</span> <b>Finale Trophée de l'Ain (U11 et moins)</b><span class="catsum">ENF · Av</span></td><td class="l">AMBERIEU</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog24" style="display:none"><td colspan="10"><div class="progbox"><b>Finale Trophée de l'Ain (U11 et moins)</b> · Ambérieu · Bassin 25 m (8 lignes) · échauffement 14hâ15h · engagements Extranat.<br>Le nageur choisit <b>un</b> des 3 Trophées et dispute toutes ses courses :<br>⢠<b>Nageur le plus complet</b> : 100 4N · 200 NL · 50 NL.<br>⢠<b>Sprint</b> : 50 Pap · 50 Dos · 50 Brasse · 50 NL.<br>⢠<b>100 m</b> : 100 Pap · 100 Dos · 100 Brasse · 100 NL.<br><u>Règlement</u> : règle des deux départs · toutes années d'âge confondues, D/M séparés · SNS obligatoire.<br><u>Récompenses</u> : médailles aux 3 premières/premiers de chaque Trophée â classements distincts Avenirs 1 (2015) / 2 (2016) / 3 (2017 & après).</div></td></tr><tr class="ev" data-id="25" data-cats="handi" data-club="0" data-period="2026" data-date="2026-12-05" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnat de France Hiver 25m Handisport (à confirmer)" data-lieu="(à définir)" data-search="championnat de france hiver 25m handisport (à confirmer) (à définir)" onclick="tog(25)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 05 et dimanche 06 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car25">â¸</span> <b>Championnat de France Hiver 25m Handisport (à confirmer)</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> (à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="prog" id="prog25" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="ev" data-id="26" data-cats="benj jun" data-club="0" data-period="2026" data-date="2026-12-06" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Meeting départemental U12 +" data-lieu="AMBERIEU" data-search="meeting départemental u12 + amberieu" onclick="tog(26)" style="cursor:pointer;background:#ffffff"><td class="l">Dimanche 06 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car26">â¸</span> <b>Meeting départemental U12 +</b><span class="catsum">Benj · Jun+</span></td><td class="l">AMBERIEU</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog26" style="display:none"><td colspan="10"><div class="progbox"><b>Meeting départemental (U12 et +)</b> · Ambérieu · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : 200 4N · 50 Brasse · 100 Dos · 200 Pap · 100 NL · 50 Dos · 200 Brasse · 100 4N · Relais 4Ã50 4N Mixte.<br><u>R2</u> (éch. 14h) : 400 4N · 400 NL · 50 Pap · 100 Brasse · 200 NL · 50 NL · 100 Pap · 200 Dos.<br>Qualificative aux meetings Ligue (grilles jaune & verte). 1 seul départ par course.</div></td></tr><tr class="ev" data-id="27" data-cats="jun" data-club="0" data-period="2026" data-date="2026-12-08" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats de France U18 (25m)" data-lieu="(à définir)" data-search="championnats de france u18 (25m) (à définir)" onclick="tog(27)" style="cursor:pointer;background:#ffffff"><td class="l">Mardi 08 au samedi 12 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car27">
49â¸</span> <b>Championnats de France U18 (25m)</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog27" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="ev" data-id="28" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2026" data-date="2026-12-17" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Assemblée générale du club CNBV (à confirmer)" data-lieu="BELLEGARDE" data-search="assemblée générale du club cnbv (à confirmer) bellegarde" style="background:#FCE4D6"><td class="l">Jeudi 17 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Assemblée générale du club CNBV (à confirmer)</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="29" data-cats="benj" data-club="0" data-period="2026" data-date="2026-12-17" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats de France U12-U13" data-lieu="CHOLET" data-search="championnats de france u12-u13 cholet" onclick="tog(29)" style="cursor:pointer;background:#ffffff"><td class="l">Jeudi 17 au samedi 19 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car29">â¸</span> <b>Championnats de France U12-U13</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Benj</span></td><td class="l">CHOLET</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog29" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="ev" data-id="30" data-cats="benj" data-club="0" data-period="2026" data-date="2026-12-20" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Finale Coupe de France des départements" data-lieu="CHOLET" data-search="finale coupe de france des départements cholet" onclick="tog(30)" style="cursor:pointer;background:#ffffff"><td class="l">Dimanche 20 et lundi 21 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car30">
49â¸</span> <b>Finale Coupe de France des départements</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">Benj</span></td><td class="l">CHOLET</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog30" style="display:none"><td colspan="10"><div class="progbox"><b>Coupe de France des départements</b> · équipe départementale sélectionnée par le Comité de l'Ain.</div></td></tr><tr class="vac" data-keep="1"><td colspan="10" style="background:#FFF2CC;color:#5b4a12;font-weight:600">Vacances de Noël 2026 : samedi 19 décembre 2026 au dimanche 03 janvier 2027 inclus</td></tr><tr class="ev" data-id="32" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2026" data-date="2026-12-21" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="STAGES CNBV" data-lieu="BELLEGARDE" data-search="stages cnbv bellegarde" style="background:#FCE4D6"><td class="l">Lundi 21-mardi 22 et lundi 28-mardi 29 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>STAGES CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAAoCAYAAACxbNkLAAAOHElEQVR4nNWZa3SV1ZnH/8/e73tuycmFJISICoKAEMEqjkJlCNGiYlW8cGKrVpZTlaml2naUpV21J2e1tZelFsdCDXZkaXVcnuhiFKWooyeIF9QgF0kKgqgJ5J6cJOf6XvZ+5sNJEOQStJ3ReT6c82nvd//2/3n2/u+9gRGiKhYzAKCxPRE6d23HnrNfGeC/9WUvAwBmliO1/1pFNBqVALB2T/zKues7XNR9xJe+3Jlm5qkAwMziqx3hF4gwswAz9Sa4svqVHherdtujoh380OaO1QQgHM4p9/8imJlCUZbMTItf3f+OfLyFUbfLmb+uLc3Mp4GZhtVhZuJQSHI4/PVVKxTN1cbybd3LTljTzajbZfmeauN/39r9MgAgPJRqRIe0Y2bCVxyHzSozU30NNDOf+HqXG27rG9QgoKIoD5PKAi+AmcLzIJiZwAxm9nN4+Zz4mr+OJyL+qqEOA1qyebMBBu7d3HtDLOkJQDsaDGM8ZeyLy8zNIOLKeWDU1hIz+3p/dOf67CPLN5rPrWv8OiwWh36YCKvWrlU+Q/A7XZmF8USapRSAlKJUuhmY5lYAmLBqlaBIRKdXP3NRcN3Gue1tHRnjrw0lqSfrryYiRm3t1wMo9PTTEpGIfr89M7lVmzNgZZgIAgywZgIgqmIxo2tHVoCZMtu3XJNpadcmlYrBzja232tcyMw+RCL6K+I5FGhaWRkBQGNP9up21/CBtWaGgFZqt+vN60m4F2yornYveeh2C14P2x+3nGW5acFCGBm4ZG//8GwAownQX1XaHbKXNDTk/nf0Z785YAEQAooBkiy2d6Ww+F1aueytjvFjCgObbx2VLTAuu3b8frhMxAIQyt/XLe1du6oA/KWhtkEA+NJKMUCIRkVDzYqjLzLheZhXW6uIiI8ItAE5O3PRCy0y45rAUFdMgqBsrGtJVMQCvj+UBlw89Oqu9M3tLZ4b4CGtGQSpvD1ZaW/bPREAutHwhRViZkJNvUD9CiJscFFTo47ZILIBiEQQQ5UxjxsUEfEBoHA4LCKRahe1fMKogHk+2pMQEvLAFBOB2OFMwtat8QQF2zsCdRUenJzxY0Gfg0GYwurrAe9vOQGGgVBz87EH83mYUFQSkQKghuA8ydUvVdFrzWeooDkn+/ZuVh2DAkw6/8xxwhltflJw8smvGr+8/i0i6gEROBSVR7QvrSmX8HmhicAgIjsroSQ78f18UjJFp6U1LDCEkCKTScDYs3c+An5Qff1xAXE4LCgS0VRfo5jZi7rXzu1/9pWr2ibddEVeRo+TXSnAceA7qNx5/QcwSMMZ/eFt/U9u2J/+Vu0f/K+EHyGiwcOAWnrS6LLUkAvgAzDQGshaoIwF7cmnatgI743jJDsfGdDQ5zS4o83lgUGDiNxjgjAT5tVKikRcZpaq/o3r4pf84i6xtWWq0ZOC4VgYgNYEqQEiguZD24O4s5dNYKxsS97Xe8bSG5J/3nDnYUABAAFxkDxEgFJAKgvBmnXaxdXTg5knP+yhQdv1pyVBKABEIgtbleXlTwBwHoANzDycRoerQqQBuMlo7Bv9F9/zJ1/T/lnOvi5kAU0wNJEQAkKAD9/8gVx5E0m4AHdYaeXbnpqR/uUTLw0ZzKgMhXILRGlpAF5BDOZcK6WBdBakNHTS0ieXF9NPZpbfn1z38l6FIEgPzRwzAAlu7RGIJ3KlV38EZRCSFIloZg7Gz797WeqOuvf0S42zuva1K4tMLcgUBBjg3P53zODhXyaA4G3vg8EMIqo5UIwAqMwvcsrpHAwcBXJdZluJmUHdfV6p8VxHvv8HGjYDvoN6N8FtPbD3fjwRwMaDiZiZsGSJQatWOdk3Pz5t8IpfrPW+03RqIpXmLPm1gJC5STmOIICZFcAywCT8BUGkyvOb3FnT/2gQgXviLy2ydce4ilE3PAjAPcFvDMDRo2BnGI4iOC607Wif1y+nlfiew6Y3xxZ7C0s7oFxBZIAZ0BqEAFNbL5ytW+Yz8DiamgjIpVgtESKAk1r5wi3W0t8+kN2yM68fXleQzyCm4zO0BDCgmRUVwSNT+QbElDGNPHXCyrK/3P4EETmCmUviiaceVerN+7qAUiLq3N+Z2ABhQFuOhuMCjgOks1zk96DklIrtWPFYj97XxwQTn82qAIRPJJP9yGxqngVmQiSiY4BBkYiuZZaDt/7m55nah+tSW3bmZcmnBaSRS5uReZiINSvXz1rkFxWQPWX0i96r58wZ1bzyn/Kf+PFqInI4FJVGfODVpQqbgtnsBfHioZ7LSvNM2Z2Esl3AdSFsBzqZwZjRDmaV+IpRUXES9Lt06EAMECCyMHXhm9tOUZu3fscIeJ+EEJrfax4/cOnPludv3rmwvyuuIPKE0CRyzmvkawlNrCS7sqy42MhMHr3Jc+bpywKP3rQRu3TOUYSiAvUhTfWkRCL1zjXJ1Kfs85xq5g2N8NKTggNFrHKLgWUDlg1YjpC
49ZNIoLsSV71oxFys4itwTy0AwLQBMIPkr9rRW9i+54oqt68cbuBT94qefKuz7QL25cuL+j0yUKSNKgHMwIZoIIGkoVsZT+CWN66fqqWws33X9B4OF/2Ri1teRwWBDAVF+jCDn7IyD6p1qWRZbTfsB7dQ2m1vpNA8hYQNYGZ23AcQT6+/G+gbdVMklauweSGjAPDI5ApOCl7CedEC82zhH1r19o7fwkPwHSgvxDKSYxEhATaWZblQTyJc2a9ELeAzee53no5j8RUToaCskaQNERXL1Ipj7SALGrPhQAPNEo5MJytbUsEe+H7Qq2bfZYNiiZgcGMcwA/2/bwZw8MjkkyiBTIo3Oewsdp8qi08ClNXs7tKcMQhKPVDQHQBG2yI4rGV0i6btYPC7Y/eJnvijm7uCpsMDPVHMOFCEf1CIJHCfmRr2fwmTtragw1duzYj0tEJgnHFL6MxUbWArsKKm2jG9CfuVsCYEIDSnKW8pilwUpogMGCwEJCkyQG5VQcbnM0dQgK2slnFmLS6H3uhbOr8h798UqkrdxmvCHiHuysjxSGoAATeYzevlbY9u+Wbtp+atknrbNOnztGj/3vDZPZDHxbKNuGyFiA1hgANExzyGEY0GA9yueVqenfiItZ03dQw85JgQ/2jEkTsWQ5JMNw4QscFYYIDK1KpMfU1ZX7As/fXe33+/c04hZzJla5R0qvIypUGJxOWisQ+TCY2M15+T3XZNzdlWPymuCRA+xYCjJjgW1XebTESQlcbhieTim9YCLt97pC1lStH/Pus3OL6+6dW/T48tk4fXKbhxkMGrIbB9eMxOHpRtDsKh+U5FlT1nlejnzL7/fvabylzjwbqxzCiJ7hMyDW+Z2maQCsWQgvpZLCjQ9oPWf6FJo95Vphx5MQzOCMzR5bQVhOkXfrjjUiUKwNTpH5/ZruwGMPLyKiHWyP8/rPrPjEc8uVrxTklxLgqNyR6+A0+xxMThlntC8gzcXz3g2++7tv+4h2cZjF2auWOMcLcgDI55lQnx+sAMPWQ7ZIGqYrSgpm7j1/8hkfmKRgpR0tUhY460LH+71Y+t1mGjdKFJw72yhecd98IkpxLGaAdzvMTIU1cx+wJ5e7BAiIg9U5FIhA0NDaA9vk73yzqWj1HTeyrYhjMYMi9KVOu6K89Pp6j5wBpbIidwhg9vk8SGRS+6eVT/vJlLI8OANpHUzbcDIOoJVJk6a3Zq67/OfiriV3EtE2ZhZUXe0SkQYRoby8yZlYvs0Pv2CG/kyhQ9VRgnUAWvhvWtDjX337+UTUjHCYqLr6mEePY4UB4C1WJZuCBXnnZtJaEUmZGExxYUX5nEUL0Pbia/mxzmZvdVanLFtlJYpHPcvMRES/BoAwMHwUyEVVWBCRG19W9543+OHMdGJQA0J8fqlmSdqjMvCef26v95Hb5hNRF8dixt8DA+QG4wYDF/wmzz+RtM4OWSuDNZoJaM+vnFq+9LRTC+NZHfBOnFxOlaM9SSJirqszY+GwEfn8RcjoZgYALlEvZn1gQAjQcNoNwQjBUmXhP2eaUr+9Zr6XaCtHo/LvhQEAgzksgKvW9X/62rZA3p4zMmmtpfBxxtqJfZ3r7rnz+zdd/h//+fqCkyeN+9mM0wv+C8BH4TALWkJHKdgQgHr4Tjmzn0t30GD3LpYHL9NCADrtFp52qinuX1wbOKdyC8fYoOpjn3CPO5jDBgCksruu/LjjQn5ra8B5Z3uFfnt7QO9uuTHJzGXA8fjh4f6YABAzn9j7zz/saMMC3SKu0K1YyK20kD+ly5xswXWcWPH8ehDAM28xR+z0C4QgirixWNjI81WuMfiSp4qKSgytLQU2FeT7gd6B528GQMsffNAbCkVHtMbDOzkZtM9K6nYvPATOnTGYoP3sGvbFM7bm33rZYuaQRGPdP0aZYSAA6O6uZMClE8fc/iu/52JN0hJEAerv30P9A2/+lJkLb7vtdjsaDR33Usouk/e8aUE1fBCWgklndOCS2bb36WXfI6JOREMYycp8KaCamhoVjUYFETUH/d+7pjA4QxAlYTvkCk9TiesOziYCNzQ0HNebKiNM5DGZ/PJ9r+EFANYq4544cYoh7r7qV16iHY11jSaNdJH4ZYGGoWKxKqO0eO4zhb6b7ykumiCJNFt2k9vR9/iinGVpOL5ew/MEHBcg8w1zVJCZHbtQBszBiyqf9c+p/D0jJGcumfkPTbWjRiwWNgAD7V2PPdy09yy1c18Bf9T603ai4HH3Mfw8yTt2TOuq/FeO0wIe/NHKvcy5m9r/80cx5ioDAPr611+7v++8pz5ti/yeyDdSs0P7CEUlM5t9/1a3JvHde99g5gmMsPjffpX4HzQSOqbL0Sq8AAAAAElFTkSuQmCC"> BELLEGARDE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="mois"><td colspan="10">JANVIER 2027</td></tr><tr class="janhdr" data-keep="1"><td class="l" colspan="4"><b>Changement de catégories au 1er janvier 2027 â nouvelles années â</b></td><td class="x">(tous)</td><td class="x">2016 & +</td><td class="x">2014-15</td><td class="x">2013 & -</td><td class="x">2002 & -</td><td class="x">FFH</td></tr><tr class="ev" data-id="33" data-cats="enf av benj jun handi" data-club="0" data-period="2027" data-date="2027-01-16" data-op="" data-dur="3.75" data-comp="1" data-home="1" data-title="Compétition interne CNBV" data-lieu="BELLEGARDE (ValséO)" data-search="compétition interne cnbv bellegarde (valséo)" style="background:#ffffff"><td class="l">Samedi 16 (après-midi) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Compétition interne CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE (ValséO)</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="34" data-cats="mai" data-club="0" data-period="2027" data-date="2027-01-16" data-op="" data-dur="3.75" data-comp="1" data-home="1" data-title="Championnats de l'Ain Maîtres" data-lieu="BELLEGARDE (ValséO)" data-search="championnats de l'ain maîtres bellegarde (valséo)" style="background:#ffffff"><td class="l">Samedi 16 (OP : 17h) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Championnats de l'Ain Maîtres</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Maî</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr><tr class="ev" data-id="35" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2027" data-date="2027-01-17" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Thé Dansant CNBV" data-lieu="CHATILLON" data-search="thé dansant cnbv chatillon" style="background:#FCE4D6"><td class="l">Dimanche 17 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Thé Dansant CNBV</b><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> CHATILLON</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="36" data-cats="jun" data-club="0" data-period="2027" data-date="2027-01-23" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Meeting Ligue AuRa jaune" data-lieu="LYON (VAISE)" data-search="meeting ligue aura jaune lyon (vaise)" style="background:#FFE699"><td class="l">Samedi 23 et dimanche 24 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Meeting Ligue AuRa jaune</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Jun+</span></td><td class="l">LYON (VAISE)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="37" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-01-30" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Regroupement avenirs (U11 et -)" data-lieu="BOURG" data-search="regroupement avenirs (u11 et -) bourg" style="background:#ffffff"><td class="l">Samedi 30 (matin) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Regroupement avenirs (U11 et -)</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">ENF · Av</span></td><td class="l">BOURG</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="38" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-01-30" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Circuit Avenirs Plot n°1 (U11 et -) (OP : 14h)" data-lieu="BOURG" data-search="circuit avenirs plot n°1 (u11 et -) (op : 14h) bourg" onclick="tog(38)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 30 (après-midi) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car38">
49â¸</span> <b>Circuit Avenirs Plot n°1 (U11 et -) (OP : 14h)</b><span class="catsum">ENF · Av</span></td><td class="l">BOURG</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog38" style="display:none"><td colspan="10"><div class="progbox"><b>Circuit Avenirs â Natathlon (Plot)</b> · Bassin 25 m · après-midi (OP 14h) · 4 courses max/nageur (hors relais).<br><u>Ãpreuves</u> : 100 4N · 50 Dos · 100 Dos · 50 Brasse · 100 Brasse · 50 NL · 100 NL · 50 Pap · 100 Pap (D & M) â puis <b>Relais mixte 4Ã50 NL</b> (2F+2G).<br><u>Catégories</u> : Avenirs 1 = U11 (2015) · Avenirs 2 = U10 (2016) · Avenirs 3 = U9 (2017 & après). SNS requis · règle des deux départs.</div></td></tr><tr class="ev" data-id="39" data-cats="benj jun" data-club="0" data-period="2027" data-date="2027-01-31" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Compétition 1/2 fond (50m) (U12 et +)" data-lieu="OYONNAX" data-search="compétition 1/2 fond (50m) (u12 et +) oyonnax" style="background:#ffffff"><td class="l">Dimanche 31 (matin) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Compétition 1/2 fond (50m) (U12 et +)</b><span class="catsum">Benj · Jun+</span></td><td class="l">OYONNAX</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="40" data-cats="benj jun" data-club="0" data-period="2027" data-date="2027-01-31" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnat départemental sprint (50m) (U12 et +)" data-lieu="OYONNAX" data-search="championnat départemental sprint (50m) (u12 et +) oyonnax" style="background:#ffffff"><td class="l">Dimanche 31 (après-midi) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Championnat départemental sprint (50m) (U12 et +)</b><span class="catsum">Benj · Jun+</span></td><td class="l">OYONNAX</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="mois"><td colspan="10">FEVRIER 2027</td></tr><tr class="ev" data-id="41" data-cats="jun" data-club="0" data-period="2027" data-date="2027-02-05" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Meeting Ligue AuRa vert" data-lieu="(à définir)" data-search="meeting ligue aura vert (à définir)" style="background:#C6E0B4"><td class="l">Vendredi 05 au dimanche 07 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Meeting Ligue AuRa vert</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="42" data-cats="benj" data-club="0" data-period="2027" data-date="2027-02-06" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Regroupement Benjamins (U12 & U13)" data-lieu="BELLEY" data-search="regroupement benjamins (u12 & u13) belley" style="background:#ffffff"><td class="l">Samedi 06 ou dimanche 07 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Regroupement Benjamins (U12 & U13)</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">Benj</span></td><td class="l">BELLEY</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="43" data-cats="handi" data-club="0" data-period="2027" data-date="2027-02-07" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Plot 2 du C.N.C. Handisport" data-lieu="BRON" data-search="plot 2 du c.n.c. handisport bron" style="background:#ffffff"><td class="l">Dimanche 07 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Plot 2 du C.N.C. Handisport</b><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BRON</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="vac" data-keep="1"><td colspan="10" style="background:#FFF2CC;color:#5b4a12;font-weight:600">Vacances d'hiver 2027 : samedi 13 février au dimanche 28 février inclus</td></tr><tr class="ev" data-id="45" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2027" data-date="2027-02-15" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="STAGES CNBV" data-lieu="BELLEGARDE" data-search="stages cnbv bellegarde" style="background:#FCE4D6"><td class="l">Lundi 15 au vendredi 19 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>STAGES CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="46" data-cats="handi" data-club="0" data-period="2027" data-date="2027-02-15" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Stage régional Handisport AuRA" data-lieu="VICHY" data-search="stage régional handisport aura vichy" style="background:#ffffff"><td class="l">Mardi 15 au samedi 19 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Stage régional Handisport AuRA</b><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> VICHY</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="mois"><td colspan="10">MARS 2027</td></tr><tr class="ev" data-id="47" data-cats="benj jun mai" data-club="0" data-period="2027" data-date="2027-03-05" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Webconfrontation / Championnats Ligue AuRa Printemps (50m)" data-lieu="(à définir)" data-search="webconfrontation / championnats ligue aura printemps (50m) (à définir)" style="background:#BDD7EE"><td class="l">Vendredi 05 au dimanche 07 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Webconfrontation / Championnats Ligue AuRa Printemps (50m)</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Benj · Jun+ · Maî</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr><tr class="ev" data-id="48" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-03-13" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Regroupement avenirs (U11 et -)" data-lieu="FERNEY" data-search="regroupement avenirs (u11 et -) ferney" style="background:#ffffff"><td class="l">Samedi 13 (matin) ? <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Regroupement avenirs (U11 et -)</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">ENF · Av</span></td><td class="l">FERNEY</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="49" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-03-13" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Circuit Avenirs Plot n°2 (U11 et -) (OP : 14h)" data-lieu="FERNEY" data-search="circuit avenirs plot n°2 (u11 et -) (op : 14h) ferney" onclick="tog(49)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 13 (après-midi) ? <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car49">
49â¸</span> <b>Circuit Avenirs Plot n°2 (U11 et -) (OP : 14h)</b><span class="catsum">ENF · Av</span></td><td class="l">FERNEY</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog49" style="display:none"><td colspan="10"><div class="progbox"><b>Circuit Avenirs â Natathlon (Plot)</b> · Bassin 25 m · après-midi (OP 14h) · 4 courses max/nageur (hors relais).<br><u>Ãpreuves</u> : 100 4N · 50 Dos · 100 Dos · 50 Brasse · 100 Brasse · 50 NL · 100 NL · 50 Pap · 100 Pap (D & M) â puis <b>Relais mixte 4Ã50 NL</b> (2F+2G).<br><u>Catégories</u> : Avenirs 1 = U11 (2015) · Avenirs 2 = U10 (2016) · Avenirs 3 = U9 (2017 & après). SNS requis · règle des deux départs.</div></td></tr><tr class="ev" data-id="50" data-cats="benj jun mai" data-club="0" data-period="2027" data-date="2027-03-14" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats départementaux (U12 et +)" data-lieu="BOURG" data-search="championnats départementaux (u12 et +) bourg" style="background:#ffffff"><td class="l">Dimanche 14 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Championnats départementaux (U12 et +)</b><span class="catsum">Benj · Jun+ · Maî</span></td><td class="l">BOURG</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr><tr class="ev" data-id="51" data-cats="jun" data-club="0" data-period="2027" data-date="2027-03-19" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Challenge national n°1" data-lieu="(à définir)" data-search="challenge national n°1 (à définir)" onclick="tog(51)" style="cursor:pointer;background:#ffffff"><td class="l">Vendredi 19 au dimanche 21 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><span class="car" id="car51">â¸</span> <b>Challenge national n°1</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog51" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="ev" data-id="52" data-cats="handi" data-club="0" data-period="2027" data-date="2027-03-27" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnat Interrégional Handisport" data-lieu="AIX-EN-PROVENCE" data-search="championnat interrégional handisport aix-en-provence" style="background:#ffffff"><td class="l">Samedi 27 et dimanche 28 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Championnat Interrégional Handisport</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> AIX-EN-PROVENCE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="mois"><td colspan="10">AVRIL 2027</td></tr><tr class="ev" data-id="53" data-cats="benj" data-club="0" data-period="2027" data-date="2027-04-04" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Interclubs (U12-U13)" data-lieu="BOURG" data-search="interclubs (u12-u13) bourg" style="background:#ffffff"><td class="l">Dimanche 04 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Interclubs (U12-U13)</b><span class="catsum">Benj</span></td><td class="l">BOURG</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="vac" data-keep="1"><td colspan="10" style="background:#FFF2CC;color:#5b4a12;font-weight:600">Vacances de printemps 2027 : samedi 10 avril au dimanche 25 avril inclus</td></tr><tr class="ev" data-id="55" data-cats="benj jun" data-club="0" data-period="2027" data-date="2027-04-10" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Grand Prix d'Oyonnax + / regroupement U12 & U13" data-lieu="OYONNAX" data-search="grand prix d'oyonnax + / regroupement u12 & u13 oyonnax" style="background:#ffffff"><td class="l">Samedi 10 et dimanche 11 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Grand Prix d'Oyonnax + / regroupement U12 & U13</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">Benj · Jun+</span></td><td class="l">OYONNAX</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="56" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2027" data-date="2027-04-12" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="STAGES CNBV" data-lieu="BELLEGARDE" data-search="stages cnbv bellegarde" style="background:#FCE4D6"><td class="l">Lundi 12 au mercredi 14 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>STAGES CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="57" data-cats="benj jun club" data-club="1" data-period="2027" data-date="2027-04-18" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="STAGE SPORTIF BASSIN 50m" data-lieu="Espagne" data-search="stage sportif bassin 50m espagne" style="background:#FCE4D6"><td class="l">Dimanche 18 au samedi 24 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>STAGE SPORTIF BASSIN 50m</b><span class="catsum">Benj · Jun+</span></td><td class="l">Espagne</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="58" data-cats="jun" data-club="0" data-period="2027" data-date="2027-04-23" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Challenge national n°2" data-lieu="(à définir)" data-search="challenge national n°2 (à définir)" onclick="tog(58)" style="cursor:pointer;background:#ffffff"><td class="l">Vendredi 23 au dimanche 25 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><span class="car" id="car58">â¸</span> <b>Challenge national n°2</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog58" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b>
49 · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="ev" data-id="59" data-cats="jun" data-club="0" data-period="2027" data-date="2027-04-26" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnat de France U18" data-lieu="(à définir)" data-search="championnat de france u18 (à définir)" onclick="tog(59)" style="cursor:pointer;background:#ffffff"><td class="l">Lundi 26 au dimanche 02 (mai) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><span class="car" id="car59">â¸</span> <b>Championnat de France U18</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog59" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="mois"><td colspan="10">MAI 2027</td></tr><tr class="ev" data-id="60" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-05-02" data-op="" data-dur="3.75" data-comp="0" data-home="0" data-title="Regroupement Avenirs (U11 et -)" data-lieu="FERNEY" data-search="regroupement avenirs (u11 et -) ferney" style="background:#ffffff"><td class="l">Dimanche 02 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Regroupement Avenirs (U11 et -)</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">ENF · Av</span></td><td class="l">FERNEY</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="61" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-05-02" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Interclubs U11 et moins" data-lieu="FERNEY" data-search="interclubs u11 et moins ferney" style="background:#ffffff"><td class="l">Dimanche 02 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Interclubs U11 et moins</b><span class="catsum">ENF · Av</span></td><td class="l">FERNEY</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="62" data-cats="jun" data-club="0" data-period="2027" data-date="2027-05-15" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Meeting Ligue AuRa jaune" data-lieu="(à définir)" data-search="meeting ligue aura jaune (à définir)" style="background:#FFE699"><td class="l">Samedi 15 et dimanche 16 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Meeting Ligue AuRa jaune</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="63" data-cats="benj" data-club="0" data-period="2027" data-date="2027-05-22" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Coupe de France des départements (U12 & U13)" data-lieu="(à définir)" data-search="coupe de france des départements (u12 & u13) (à définir)" style="background:#ffffff"><td class="l">Samedi 22 et dimanche 23 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Coupe de France des départements (U12 & U13)</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">Benj</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="64" data-cats="handi" data-club="0" data-period="2027" data-date="2027-05-23" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Plot 3 du C.N.C. Handisport" data-lieu="SAINT-ETIENNE" data-search="plot 3 du c.n.c. handisport saint-etienne" style="background:#ffffff"><td class="l">Dimanche 23 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Plot 3 du C.N.C. Handisport</b><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> SAINT-ETIENNE</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="65" data-cats="benj jun" data-club="0" data-period="2027" data-date="2027-05-30" data-op="" data-dur="3.75" data-comp="1" data-home="1" data-title="Meeting départemental (U12 et +)" data-lieu="BELLEGARDE (ValséO)" data-search="meeting départemental (u12 et +) bellegarde (valséo)" onclick="tog(65)" style="cursor:pointer;background:#ffffff"><td class="l">Dimanche 30 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car65">â¸</span> <b>Meeting départemental (U12 et +)</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Benj · Jun+</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog65" style="display:none"><td colspan="10"><div class="progbox"><b>Meeting du Circuit Juniors & + (U12 et +)</b>.<br>Qualificatif pour les Meetings/Championnats de Ligue.<br><i>Programme détaillé : à venir.</i></div></td></tr><tr class="ev" data-id="66" data-cats="jun" data-club="0" data-period="2027" data-date="2027-05-29" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats de France Elite (50m)" data-lieu="(à définir)" data-search="championnats de france elite (50m) (à définir)" onclick="tog(66)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 29 mai au jeudi 03 juin <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><span class="car" id="car66">
49â¸</span> <b>Championnats de France Elite (50m)</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog66" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="mois"><td colspan="10">JUIN 2027</td></tr><tr class="ev" data-id="67" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-06-05" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Coupe PLEWINSKI (U11 et -)" data-lieu="(à définir)" data-search="coupe plewinski (u11 et -) (à définir)" style="background:#ffffff"><td class="l">Samedi 05 et dimanche 06 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><b>Coupe PLEWINSKI (U11 et -)</b> <span class="badge bdep">ð¯ Sélection</span><span class="catsum">ENF · Av</span></td><td class="l">(à définir)</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="68" data-cats="jun" data-club="0" data-period="2027" data-date="2027-06-11" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Meeting de Ligue AuRA vert" data-lieu="(à définir)" data-search="meeting de ligue aura vert (à définir)" style="background:#C6E0B4"><td class="l">Vendredi 11 au dimanche 13 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Meeting de Ligue AuRA vert</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="69" data-cats="enf av" data-club="0" data-period="2027" data-date="2027-06-19" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Circuit Avenirs Plot n°3 (U11 et -) (OP : 14h)" data-lieu="AMBERIEU" data-search="circuit avenirs plot n°3 (u11 et -) (op : 14h) amberieu" onclick="tog(69)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi 19 (après-midi) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">25m</td><td class="l"><span class="car" id="car69">â¸</span> <b>Circuit Avenirs Plot n°3 (U11 et -) (OP : 14h)</b><span class="catsum">ENF · Av</span></td><td class="l">AMBERIEU</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="prog" id="prog69" style="display:none"><td colspan="10"><div class="progbox"><b>Circuit Avenirs â Natathlon (Plot)</b> · Bassin 25 m · après-midi (OP 14h) · 4 courses max/nageur (hors relais).<br><u>Ãpreuves</u> : 100 4N · 50 Dos · 100 Dos · 50 Brasse · 100 Brasse · 50 NL · 100 NL · 50 Pap · 100 Pap (D & M) â puis <b>Relais mixte 4Ã50 NL</b> (2F+2G).<br><u>Catégories</u> : Avenirs 1 = U11 (2015) · Avenirs 2 = U10 (2016) · Avenirs 3 = U9 (2017 & après). SNS requis · règle des deux départs.</div></td></tr><tr class="ev" data-id="70" data-cats="benj jun" data-club="0" data-period="2027" data-date="2027-06-20" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Finale départementale (U12 et +) (50m)" data-lieu="OYONNAX" data-search="finale départementale (u12 et +) (50m) oyonnax" style="background:#ffffff"><td class="l">Dimanche 20 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Finale départementale (U12 et +) (50m)</b><span class="catsum">Benj · Jun+</span></td><td class="l">OYONNAX</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="71" data-cats="benj" data-club="0" data-period="2027" data-date="2027-06-26" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Webconfrontation / Finalité Ligue AuRa (U12-U13)" data-lieu="ANNEMASSE" data-search="webconfrontation / finalité ligue aura (u12-u13) annemasse" style="background:#ffffff"><td class="l">Samedi 26 et dimanche 27 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Webconfrontation / Finalité Ligue AuRa (U12-U13)</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Benj</span></td><td class="l">ANNEMASSE</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="72" data-cats="handi" data-club="0" data-period="2027" data-date="2027-06-01" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnat de France Ãté 50m Handisport (date et lieu à définir)" data-lieu="(à définir)" data-search="championnat de france été 50m handisport (date et lieu à définir) (à définir)" onclick="tog(72)" style="cursor:pointer;background:#ffffff"><td class="l">Samedi et dimanche (à définir) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><span class="car" id="car72">
49â¸</span> <b>Championnat de France Ãté 50m Handisport (date et lieu à définir)</b> <span class="badge bnat">ð¯ National</span><span class="catsum">Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> (à définir)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td></tr><tr class="prog" id="prog72" style="display:none"><td colspan="10"><div class="progbox"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div></td></tr><tr class="mois"><td colspan="10">JUILLET 2027</td></tr><tr class="ev" data-id="73" data-cats="benj jun" data-club="0" data-period="2027" data-date="2027-07-02" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats Ligue AuRA été (U13/14 et +)" data-lieu="(à définir)" data-search="championnats ligue aura été (u13/14 et +) (à définir)" style="background:#BDD7EE"><td class="l">Vendredi 02 au dimanche 04 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Championnats Ligue AuRA été (U13/14 et +)</b> <span class="badge blig">ð¯ Ligue</span><span class="catsum">Benj · Jun+</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="74" data-cats="club" data-club="1" data-period="2027" data-date="2027-07-05" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Opération J'apprends à nager JAN" data-lieu="BELLEGARDE (ValséO)" data-search="opération j'apprends à nager jan bellegarde (valséo)" style="background:#FCE4D6"><td class="l">Lundi 05 au vendredi 16 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Opération J'apprends à nager JAN</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="75" data-cats="club" data-club="1" data-period="2027" data-date="2027-07-19" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Opération J'apprends à nager JAN" data-lieu="BELLEGARDE (ValséO)" data-search="opération j'apprends à nager jan bellegarde (valséo)" style="background:#FCE4D6"><td class="l">Lundi 19 au vendredi 30 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Opération J'apprends à nager JAN</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">Club</span></td><td class="l">BELLEGARDE (ValséO)</td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td><td class="x"></td></tr><tr class="ev" data-id="76" data-cats="av benj jun mai" data-club="0" data-period="2027" data-date="2027-07-10" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Traversée du Lac de Nantua (organisation clubs de l'Ain)" data-lieu="NANTUA" data-search="traversée du lac de nantua (organisation clubs de l'ain) nantua" style="background:#ffffff"><td class="l">Samedi 10 (tôt matin) <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Traversée du Lac de Nantua (organisation clubs de l'Ain)</b><span class="catsum">Av · Benj · Jun+ · Maî</span></td><td class="l">NANTUA</td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr><tr class="ev" data-id="77" data-cats="enf av benj jun mai handi club" data-club="1" data-period="2027" data-date="2027-07-11" data-op="" data-dur="3.75" data-comp="0" data-home="1" data-title="Fête du club CNBV" data-lieu="BELLEGARDE (ValséO)" data-search="fête du club cnbv bellegarde (valséo)" style="background:#FCE4D6"><td class="l">Dimanche 11 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c"></td><td class="l"><b>Fête du club CNBV</b> <span class="home" title="à Bellegarde / ValséO">ð </span><span class="catsum">ENF · Av · Benj · Jun+ · Maî · Handi</span></td><td class="l"><img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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"> BELLEGARDE (ValséO)</td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td></tr><tr class="ev" data-id="78" data-cats="benj jun mai" data-club="0" data-period="2027" data-date="2027-07-23" data-op="" data-dur="3.75" data-comp="1" data-home="0" data-title="Championnats Open d'été (50m)" data-lieu="(à définir)" data-search="championnats open d'été (50m) (à définir)" style="background:#ffffff"><td class="l">Vendredi 23 au mercredi 28 <button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð
</button></td><td class="c">50m</td><td class="l"><b>Championnats Open d'été (50m)</b><span class="catsum">Benj · Jun+ · Maî</span></td><td class="l">(à définir)</td><td class="x"></td><td class="x"></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"><span class="on">X</span></td><td class="x"></td></tr></tbody></table><div class="legend"><b>Légende :</b> <span class="lgcolor"><span class="sw" style="background:#C00000"></span>Mois <span class="sw" style="background:#BDD7EE"></span>Championnats Ligue AuRA <span class="sw" style="background:#FFE699"></span>Meeting « jaune » <span class="sw" style="background:#C6E0B4"></span>Meeting « vert » <span class="sw" style="background:#FCE4D6"></span>RDV CNBV <span class="sw" style="background:#FFF2CC"></span>Vacances</span><span class="lgbw"><b>N&B :</b> <span class="bwtag">LIGUE</span> Championnats Ligue AuRA · <span class="bwtag">JAUNE</span>/<span class="bwtag">
49VERT</span> Meetings Ligue · <span class="bwtag">CNBV</span> RDV club · Mois en gras souligné · Vacances en italique</span><br><b>ð¯</b> <span class="badge bdep">Sélection</span> départementale · <span class="badge blig">Ligue</span> AuRA · <span class="badge bnat">National</span> · ð = à Bellegarde/ValséO.<br><b>ð
</b> ajoute au calendrier perso : compétitions = OP + durée estimée (~3h45 départemental, ~4h Ligue/national) ; le reste = tu saisis l'heure. ⸠= programme (clic). <b>ð</b> année de naissance â saison filtrée pour ce nageur (bascule au 1er janvier). Choix mémorisé sur cet appareil.</div>
49<script> 50var TODAY=new Date().toISOString().slice(0,10); 51var LS={get:function(k){try{return localStorage.getItem(k)}catch(e){return null}},set:function(k,v){try{localStorage.setItem(k,v)}catch(e){}}}; 52function catsOf(a){ if(a<=11)return['av']; if(a<=13)return['benj']; if(a<=24)return['jun']; return['mai','jun']; } 53function catLabel(a){ if(a<=11)return'Avenirs'; if(a<=13)return'Benjamins'; if(a<=24)return'Juniors et +'; return'Maîtres'; } 54function tog(id){var p=document.getElementById('prog'+id),c=document.getElementById('car'+id); if(!p)return; var o=(p.style.display!=='none'); p.style.display=o?'none':''; if(c)c.textContent=o?'â¸':'â¾';} 55function collapseAll(){document.querySelectorAll('#cal tr.prog').forEach(function(p){p.style.display='none';});document.querySelectorAll('#cal .car').forEach(function(c){c.textContent='â¸';});} 56function expandAll(){document.querySelectorAll('#cal tr.ev').forEach(function(r){if(r.style.display==='none')return;var pr=r.nextElementSibling;if(pr&&pr.classList.contains('prog')){pr.style.display='';var id=pr.id.replace('prog','');var c=document.getElementById('car'+id);if(c)c.textContent='â¾';}});} 57function hideEmptyMonths(){var cur=null,vis=false;function fl(){if(cur)cur.style.display=vis?'':'none';} 58 document.querySelectorAll('#cal tbody tr').forEach(function(r){if(r.classList.contains('mois')){fl();cur=r;vis=false;}else if(r.classList.contains('ev')&&r.style.display!=='none')vis=true;});fl();} 59function setBtn(f){document.querySelectorAll('.bar button[data-f]').forEach(function(b){b.classList.toggle('active',b.dataset.f===f);});} 60var STATE={mode:'all',val:'',future:false,q:''}; 61function passFilters(r){ 62 if(STATE.future && r.dataset.date < TODAY) return false; 63 if(STATE.q && r.dataset.search.indexOf(STATE.q)<0) return false; 64 if(STATE.mode==='all') return true; 65 if(STATE.mode==='home') return r.dataset.home==='1'; 66 if(STATE.mode==='club') return r.dataset.club==='1'; 67 if(STATE.mode==='sel') return !!r.querySelector('.bdep'); 68 if(STATE.mode==='cat') return (' '+r.dataset.cats+' ').indexOf(' '+STATE.val+' ')>=0; 69 if(STATE.mode==='year'){ if(r.dataset.club==='1')return true; 70 var y=parseInt(STATE.val,10),need=(r.dataset.period==='2027')?catsOf(2027-y):catsOf(2026-y),s=' '+r.dataset.cats+' '; 71 return need.some(function(k){return s.indexOf(' '+k+' ')>=0;}); } 72 return true; 73} 74function apply(){ 75 collapseAll(); var n=0; 76 document.querySelectorAll('#cal tbody tr.ev').forEach(function(r){var sh=passFilters(r);r.style.display=sh?'':'none';if(sh)n++;}); 77 hideEmptyMonths(); 78 var msg; 79 if(STATE.mode==='year'){var y=parseInt(STATE.val,10);msg='ð Né(e) en '+y+' â '+catLabel(2026-y)+' jusqu\'en déc. 2026, puis '+catLabel(2027-y)+' dès janvier 2027 â '+n+' RDV';} 80 else msg=(STATE.mode==='all'&&!STATE.future&&!STATE.q?'Tous les événements affichés':n+' événement(s) affiché(s)'); 81 document.getElementById('cnt').textContent=msg; 82} 83function flt(f){document.getElementById('year').value='';document.getElementById('yearg').classList.remove('on'); 84 if(f==='home'){STATE.mode='home';setBtn('');}else{STATE.mode=(f==='all'?'all':(f==='club'?'club':'cat'));STATE.val=f;setBtn(f);} 85 LS.set('cal_filter',f); apply();} 86function fltSel(){document.getElementById('year').value='';document.getElementById('yearg').classList.remove('on');STATE.mode='sel';STATE.val='sel';setBtn('sel');LS.set('cal_filter','sel');apply();} 87function fltYear(v){if(!v){flt('all');return;} setBtn('');document.getElementById('yearg').classList.add('on');STATE.mode='year';STATE.val=v;LS.set('cal_year',v);LS.set('cal_filter','year');setPrintHdr();apply();} 88function toggleFuture(b){STATE.future=b.classList.toggle('active');apply();} 89function doSearch(v){STATE.q=(v||'').toLowerCase();apply();} 90function setPrenom(v){LS.set('cal_prenom',v);setPrintHdr();} 91function setPrintHdr(){var p=(document.getElementById('prenom').value||'').trim();var y=document.getElementById('year').value; 92 var h=document.getElementById('printhdr'); 93 if(y){h.textContent='Calendrier de compétitions'+(p?' de '+p:'')+' â né(e) en '+y+' (CNBV 2026-2027)';} 94 else{h.textContent='Calendrier sportif CNBV 2026-2027'+(p?' â '+p:'');}} 95function two(n){return (n<10?'0':'')+n;} 96function parseTime(t){if(!t)return null;t=t.replace('h',':').replace('H',':');var m=t.match(/(\d{1,2})[:h\.]?(\d{2})?/);if(!m)return null;return two(parseInt(m[1],10))+':'+(m[2]?m[2]:'00');} 97function addHours(hm,h){var p=hm.split(':');var d=new Date(2000,0,1,parseInt(p[0],10),parseInt(p[1],10));d.setMinutes(d.getMinutes()+Math.round(parseFloat(h)*60));return two(d.getHours())+':'+two(d.getMinutes());} 98function dl(name,content){var b=new Blob([content],{type:'text/calendar'});var u=URL.createObjectURL(b);var a=document.createElement('a');a.href=u;a.download=name;document.body.appendChild(a);a.click();document.body.removeChild(a);setTimeout(function(){URL.revokeObjectURL(u);},1500);} 99function ics(btn){ 100 var r=btn.closest('tr'); var id=r.dataset.id; 101 var date=r.dataset.date, title=r.dataset.title, lieu=r.dataset.lieu, comp=r.dataset.comp==='1', op=r.dataset.op, dur=r.dataset.dur; 102 var start,end,allday=false; 103 if(op){start=op;end=addHours(op,dur);} 104 else{ 105 var t=prompt('Heure de début pour « '+title+' » ?\n(ex : 14h00 â laisser vide = journée entière)',''); 106 if(t===null)return; t=parseTime(t); 107 if(!t){allday=true;} 108 else{start=t; if(comp){end=addHours(t,dur);} else{var e=prompt('Heure de fin ? (ex : 16h00 â vide = +1h)','');e=parseTime(e);end=e||addHours(t,1);}} 109 } 110 var dcompact=date.replace(/-/g,''); 111 var body=''; 112 if(allday){var nd=new Date(date+'T00:00:00');nd.setDate(nd.getDate()+1);var ndc=nd.getFullYear()+two(nd.getMonth()+1)+two(nd.getDate()); 113 body='DTSTART;VALUE=DATE:'+dcompact+'\nDTEND;VALUE=DATE:'+ndc;} 114 else{body='DTSTART:'+dcompact+'T'+start.replace(':','')+'00\nDTEND:'+dcompact+'T'+end.replace(':','')+'00';} 115 var ical='BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//CNBV//Calendrier//FR\nBEGIN:VEVENT\nUID:'+dcompact+'-'+id+'@cnbv\nSUMMARY:'+title.replace(/[,;]/g,' ')+(comp?' (OP '+(op||start)+')':'')+'\n'+body+'\nLOCATION:'+(lieu||'').replace(/[,;]/g,' ')+'\nDESCRIPTION:Calendrier CNBV 2026-2027'+(comp?' â durée estimée '+(dur=='3.75'?'~3h45 (départemental)':'~4h (Ligue/national)'):'')+'\nEND:VEVENT\nEND:VCALENDAR'; 116 dl(title.replace(/[^a-zA-Z0-9]+/g,'_').slice(0,40)+'.ics',ical); 117} 118// init : mémoire + aujourd'hui 119(function(){ 120 document.querySelectorAll('#cal tr.ev').forEach(function(r){if(r.dataset.date===TODAY)r.classList.add('today');}); 121 var p=LS.get('cal_prenom'); if(p)document.getElementById('prenom').value=p; 122 var y=LS.get('cal_year'), f=LS.get('cal_filter'); 123 if(f==='year'&&y){document.getElementById('year').value=y;fltYear(y);} 124 else if(f&&f!=='home'){flt(f);} 125 else{flt('all');} 126 setPrintHdr(); 127 var first=[].slice.call(document.querySelectorAll('#cal tr.ev')).find(function(r){return r.style.display!=='none'&&r.dataset.date>=TODAY;}); 128 if(first)first.scrollIntoView({block:'center'}); 129})(); 130const BWMAP={"bdd7ee":"LIGUE","ffe699":"JAUNE","c6e0b4":"VERT","fce4d6":"CNBV"};function tagBW(){document.querySelectorAll("tr.ev").forEach(function(tr){var m=/background:\s
130*#([0-9a-fA-F]{6})/.exec(tr.getAttribute("style")||"");var lab=m?BWMAP[m[1].toLowerCase()]:null;if(lab){var c=tr.querySelectorAll("td")[2];if(c&&!c.querySelector(".bwtag")){var s=document.createElement("span");s.className="bwtag";s.textContent=lab;c.insertBefore(s,c.firstChild);}}});}function clearBW(){document.querySelectorAll(".bwtag").forEach(function(e){e.remove();});}function printColor(){clearBW();document.body.classList.remove("pbw");document.body.classList.add("pcolor");window.print();}function printBW(){document.body.classList.remove("pcolor");document.body.classList.add("pbw");tagBW();window.print();}window.addEventListener("afterprint",clearBW);var HLOGO="data:image/png;base64,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bnDMmTNnbet3MRDIb5pm1qFDhxKsVmtQ1/WEmpqa9KilEy4vL9/fq1evLxRF63rRRRdxKBxW6uvrcwCwHg7XEjC3d+/ee2fNmvXDXXfddWFqeqqWmBif+Pbbbw+dMmVKrSFl9QsvvHBI13WWkD4A0FQt9Y033lj71rtvrRakZABAOKR/Fh8fv6uisvp+IUQFAGiaFjG3iHQjHO60b98+a3Ji4qFGr/fedjltsz/0fDh/zJgx3QKhUMdku33zmjVrnKqqytS0tBXpmZnVPp/vbm9d3b7t27enm5LLP/jgg/JnXnjh5/79++sbN2y4qWP79qt9Pt8l0R1oZOaETz75ZG1mRvqMA/vLp03+0596Aaj2+QIpAH730P+Z4p+lKYtoqWZrRewo2Gw2YbXZPnj88cfLmNkGKQOCOVVRFMTHx4en3HLL3atXr555YO+B5/bu3SuIREvQ77cCUBJSkyCZ7684dCjrqaeeylOFGOytr/+mqaXlm1AgNJiZKc5qpfz8fEt8fDzb7XYCAElYMGXKlGdunTz5qUA4+D4AxMXFpc6bN29uXV3NtmafL6E1jZrV6nvv/fefnTRpUrk/FLLbk5L+u6Kysubpxx/vk5qcfEFLS8vqRq/367S0tCFVVVVJwUBQzJ07921vQ0N527Zt84uLizcKReDOO+54aNKkSTNefeaZtoIou6qycpWu67vHXXHFALvd3iilrH/mmWfaxicl9VdUtVHTNKkqapCIRfnevfEADpeS/P8KLpcraerUqYmIZLKJLrm5+Q6Ho68QAjfddJN91MiRZ91xxx0dgUgReZ8+fToOHTS0iJkVl8uVJoTAbbfdljpr1qxkl8uVEet38uTJGUSERx99NBsAFRcXK08++WQWEFE8x48f3/eaa67pGTOnn3jiiTZRGmj27NmZ0fEIAGbPnp155513xgGge++91/75559bX3/9dfsLL7zQ7qmnnjo85qtPvZoxe/Zs65+nTUtHJDgNp9OZDAANzCkzZszYNX369JGff/65dd68eVmxMe688860F198MdHlciUyszJixIiiq6++Og8Arh09OqNv3759rr322tg4/zIm+b9CM6x19/HNjQAAAABJRU5ErkJggg==";(function(){document.querySelectorAll("tr.ev").forEach(function(tr){if(/handi/i.test(tr.getAttribute("data-title")||"")){var c=tr.querySelectorAll("td")[3];if(c&&!c.querySelector(".hlogo")){var el;if(HLOGO){el=document.createElement("img");el.src=HLOGO;el.alt="Handisport";el.className="hlogo";}else{el=document.createElement("span");el.className="hlogo";el.textContent="â¿";el.title="Manifestation Handisport";}c.insertBefore(el,c.firstChild);}}});})();</script>
130<script> 131const QWORKER='https://super-math-ffn-perfs.francois-debutnocode.workers.dev'; 132const QDB={"source": "Programme Sportif AuRA 2026 (v.23/12/2025) + Grilles 25:50m 2026", "grids": {"U13_WebConfrontation_2026": {"cats": ["U12(2014)", "U13(2013)"], "events": ["50 NL", "100 NL", "200 NL", "400 NL", "800 NL", "1500 NL", "50 Dos", "100 Dos", "200 Dos", "50 Brasse", "100 Brasse", "200 Brasse", "50 Pap", "100 Pap", "200 Pap", "200 4N", "400 4N"], "FILLES": {"50 NL": {"50m": ["00:36,36", "00:33,43"], "25m": ["00:35,66", "00:32,73"]}, "100 NL": {"50m": ["01:21,32", "01:13,00"], "25m": ["01:20,12", "01:11,80"]}, "200 NL": {"50m": ["02:57,91", "02:40,34"], "25m": ["02:55,01", "02:37,44"]}, "400 NL": {"50m": ["06:06,30", "05:43,68"], "25m": ["06:00,10", "05:37,48"]}, "800 NL": {"50m": ["x", "11:31,66"], "25m": ["x", "11:18,76"]}, "1500 NL": {"50m": ["x", "x"], "25m": ["x", "x"]}, "50 Dos": {"50m": ["00:44,19", "00:40,32"], "25m": ["00:42,89", "00:39,02"]}, "100 Dos": {"50m": ["01:33,02", "01:26,70"], "25m": ["01:30,72", "01:24,40"]}, "200 Dos": {"50m": ["03:27,55", "03:09,64"], "25m": ["03:22,15", "03:04,24"]}, "50 Brasse": {"50m": ["00:47,79", "00:43,70"], "25m": ["00:47,09", "00:43,00"]}, "100 Brasse": {"50m": ["01:44,94", "01:35,33"], "25m": ["01:43,04", "01:33,43"]}, "200 Brasse": {"50m": ["03:40,07", "03:22,66"], "25m": ["03:35,57", "03:18,16"]}, "50 Pap": {"50m": ["00:42,03", "00:37,40"], "25m": ["00:41,43", "00:36,80"]}, "100 Pap": {"50m": ["01:39,87", "01:28,44"], "25m": ["01:38,47", "01:27,04"]}, "200 Pap": {"50m": ["x", "03:11,86"], "25m": ["x", "03:08,56"]}, "200 4N": {"50m": ["03:24,15", "03:01,21"], "25m": ["03:20,75", "02:57,81"]}, "400 4N": {"50m": ["x", "06:25,94"], "25m": ["x", "06:18,44"]}}, "GARÃONS": {"50 NL": {"50m": ["00:35,08", "00:33,00"], "25m": ["00:34,38", "00:32,30"]}, "100 NL": {"50m": ["01:17,59", "01:12,85"], "25m": ["01:16,09", "01:11,35"]}, "200 NL": {"50m": ["02:48,94", "02:39,57"], "25m": ["02:45,34", "02:35,97"]}, "400 NL": {"50m": ["06:07,13", "05:42,75"], "25m": ["05:59,43", "05:35,05"]}, "800 NL": {"50m": ["x", "11:30,00"], "25m": ["x", "11:14,10"]}, "1500 NL": {"50m": ["x", "x"], "25m": ["x", "x"]}, "50 Dos": {"50m": ["00:42,79", "00:40,12"], "25m": ["00:41,29", "00:38,62"]}, "100 Dos": {"50m": ["01:31,76", "01:26,30"], "25m": ["01:28,76", "01:23,30"]}, "200 Dos": {"50m": ["03:20,14", "03:08,92"], "25m": ["03:13,24", "03:02,02"]}, "50 Brasse": {"50m": ["00:46,69", "00:43,47"], "25m": ["00:45,59", "00:42,37"]}, "100 Brasse": {"50m": ["01:40,50", "01:35,19"], "25m": ["01:38,00", "01:32,69"]}, "200 Brasse": {"50m": ["03:28,39", "03:21,63"], "25m": ["03:22,49", "03:15,73"]}, "50 Pap": {"50m": ["00:38,51", "00:36,63"], "25m": ["00:37,81", "00:35,93"]}, "100 Pap": {"50m": ["01:32,85", "01:26,28"], "25m": ["01:31,45", "01:24,88"]}, "200 Pap": {"50m": ["x", "03:05,00"], "25m": ["x", "03:01,70"]}, "200 4N": {"50m": ["03:12,19", "03:00,87"], "25m": ["03:08,09", "02:56,77"]}, "400 4N": {"50m": ["x", "06:23,00"], "25m": ["x", "06:14,00"]}}}, "Juniors_et_plus": {"cats": ["Seniors(2007-)", "U18(2008)", "U17(2009)", "U16(2010)", "U15(2011)", "U14(2012)"], "events": ["50 NL", "100 NL", "200 NL", "400 NL", "800 NL", "1500 NL", "50 Dos", "100 Dos", "200 Dos", "50 Brasse", "100 Brasse", "200 Brasse", "50 Pap", "100 Pap", "200 Pap", "200 4N", "400 4N"], "DAMES": {"Bleu_ChampLigue": {"50 NL": {"50m": ["00:29,00", "00:29,15", "00:29,42", "00:29,93", "00:29,98", "00:30,75"], "25m": ["00:28,30", "00:28,45", "00:28,72", "00:29,23", "00:29,28", "00:30,05"]}, "100 NL": {"50m": ["01:02,21", "01:02,53", "01:03,13", "01:04,19", "01:04,59", "01:06,11"], "25m": ["01:01,01", "01:01,33", "01:01,93", "01:02,99", "01:03,39", "01:04,91"]}, "200 NL": {"50m": ["02:15,86", "02:16,55", "02:17,83", "02:20,28", "02:21,08", "02:24,51"], "25m": ["02:12,96", "02:13,65", "02:14,93", "02:17,38", "02:18,18", "02:21,61"]}, "400 NL": {"50m": ["04:45,35", "04:46,80", "04:48,74", "04:53,85", "04:56,06", "05:02,94"], "25m": ["04:39,15", "04:40,60", "04:42,54", "04:47,65", "04:49,86", "04:56,74"]}, "800 NL": {"50m": ["09:59,00", "09:59,00", "09:59,00", "10:04,00", "10:10,00", "10:25,00"], "25m": ["09:46,10", "09:46,10", "09:46,10", "09:51,10", "09:57,10", "10:12,10"]}, "1500 NL": {"50m": ["19:05,00", "19:05,00", "19:05,00", "19:15,00", "19:30,00", "20:05,00"], "25m": ["18:40,50", "18:40,50", "18:40,50", "18:50,50", "19:05,50", "19:40,50"]}, "50 Dos": {"50m": ["00:33,05", "00:33,21", "00:33,51", "00:34,07", "00:34,33", "00:35,17"], "25m": ["00:31,75", "00:31,91", "00:32,21", "00:32,77", "00:33,03", "00:33,87"]}, "100 Dos": {"50m": ["01:11,11", "01:11,47", "01:12,05", "01:13,34", "01:13,93", "01:16,49"], "25m": ["01:08,81", "01:09,17", "01:09,75", "01:11,04", "01:11,63", "01:14,19"]}, "200 Dos": {"50m": ["02:33,30", "02:33,99", "02:35,31", "02:37,77", "02:38,96", "02:47,03"], "25m": ["02:27,90", "02:28,59", "02:29,91", "02:32,37", "02:33,56", "02:41,63"]}, "50 Brasse": {"50m": ["00:36,53", "00:36,72", "00:37,01", "00:37,62", "00:37,93", "00:38,82"], "25m": ["00:35,83", "00:36,02", "00:36,31", "00:36,92", "00:37,23", "00:38,12"]}, "100 Brasse": {"50m": ["01:20,49", "01:20,91", "01:21,70", "01:22,94", "01:23,41", "01:25,45"], "25m": ["01:18,59", "01:19,01", "01:19,80", "01:21,04", "01:21,51", "01:23,55"]}, "200 Brasse": {"50m": ["02:53,00", "02:53,88", "02:55,29", "02:58,23", "02:59,20", "03:04,78"], "25m": ["02:48,50", "02:49,38", "02:50,79", "02:53,73", "02:54,70", "03:00,28"]}, "50 Pap": {"50m": ["00:30,74", "00:30,90", "00:31,16", "00:31,69", "00:31,92", "00:32,67"], "25m": ["00:30,14", "00:30,30", "00:30,56", "00:31,09", "00:31,32", "00:32,07"]}, "100 Pap": {"50m": ["01:09,75", "01:10,11", "01:10,76", "01:11,95", "01:12,52", "01:14,61"], "25m": ["01:08,35", "01:08,71", "01:09,36", "01:10,55", "01:11,12", "01:13,21"]}, "200 Pap": {"50m": ["02:36,32", "02:37,26", "02:38,17", "02:41,47", "02:42,80", "02:50,27"], "25m": ["02:33,02", "02:33,96", "02:34,87", "02:38,17", "02:39,50", "02:46,97"]}, "200 4N": {"50m": ["02:35,12", "02:35,91", "02:37,47", "02:39,97", "02:41,29", "02:44,74"], "25m": ["02:31,72", "02:32,51", "02:34,07", "02:36,57", "02:37,89", "02:41,34"]}, "400 4N": {"50m": ["05:28,75", "05:30,44", "05:33,01", "05:38,69", "05:40,54", "05:49,29"], "25m": ["05:21,25", "05:22,94", "05:25,51", "05:31,19", "05:33,04", "05:41,79"]}}
132, "Vert": {"50 NL": {"50m": ["00:29,84", "00:30,05", "00:30,26", "00:30,77", "00:30,85", "00:31,48"], "25m": ["00:29,14", "00:29,35", "00:29,56", "00:30,07", "00:30,15", "00:30,78"]}, "100 NL": {"50m": ["01:04,44", "01:04,89", "01:05,34", "01:06,44", "01:06,63", "01:07,98"], "25m": ["01:03,24", "01:03,69", "01:04,14", "01:05,24", "01:05,43", "01:06,78"]}, "200 NL": {"50m": ["02:20,76", "02:21,74", "02:22,73", "02:25,12", "02:25,55", "02:28,50"], "25m": ["02:17,86", "02:18,84", "02:19,83", "02:22,22", "02:22,65", "02:25,60"]}, "400 NL": {"50m": ["04:55,22", "04:57,28", "04:59,35", "05:04,37", "05:05,26", "05:11,46"], "25m": ["04:49,02", "04:51,08", "04:53,15", "04:58,17", "04:59,06", "05:05,26"]}, "800 NL": {"50m": ["10:13,38", "10:17,67", "10:21,97", "10:32,39", "10:34,23", "10:47,12"], "25m": ["10:00,48", "10:04,77", "10:09,07", "10:19,49", "10:21,33", "10:34,22"]}, "1500 NL": {"50m": ["19:33,57", "19:41,78", "19:50,00", "20:09,95", "20:13,47", "20:38,12"], "25m": ["19:09,07", "19:17,28", "19:25,50", "19:45,45", "19:48,97", "20:13,62"]}, "50 Dos": {"50m": ["00:34,00", "00:34,24", "00:34,48", "00:35,05", "00:35,16", "00:35,97"], "25m": ["00:32,70", "00:32,94", "00:33,18", "00:33,75", "00:33,86", "00:34,67"]}, "100 Dos": {"50m": ["01:13,68", "01:14,19", "01:14,71", "01:15,96", "01:16,19", "01:18,40"], "25m": ["01:11,38", "01:11,89", "01:12,41", "01:13,66", "01:13,89", "01:16,10"]}, "200 Dos": {"50m": ["02:38,27", "02:39,28", "02:40,49", "02:43,18", "02:43,65", "02:52,03"], "25m": ["02:32,87", "02:33,88", "02:35,09", "02:37,78", "02:38,25", "02:46,63"]}, "50 Brasse": {"50m": ["00:37,55", "00:37,81", "00:38,08", "00:38,71", "00:38,83", "00:39,62"], "25m": ["00:36,85", "00:37,11", "00:37,38", "00:38,01", "00:38,13", "00:38,92"]}, "100 Brasse": {"50m": ["01:23,42", "01:24,00", "01:24,59", "01:26,01", "01:26,26", "01:28,01"], "25m": ["01:21,52", "01:22,10", "01:22,69", "01:24,11", "01:24,36", "01:26,11"]}, "200 Brasse": {"50m": ["02:58,72", "02:59,97", "03:01,22", "03:04,26", "03:04,80", "03:09,11"], "25m": ["02:54,22", "02:55,47", "02:56,72", "02:59,76", "03:00,30", "03:04,61"]}, "50 Pap": {"50m": ["00:31,67", "00:31,89", "00:32,11", "00:32,65", "00:32,75", "00:33,41"], "25m": ["00:31,07", "00:31,29", "00:31,51", "00:32,05", "00:32,15", "00:32,81"]}, "100 Pap": {"50m": ["01:12,76", "01:13,27", "01:13,78", "01:15,02", "01:15,23", "01:16,76"], "25m": ["01:11,36", "01:11,87", "01:12,38", "01:13,62", "01:13,83", "01:15,36"]}, "200 Pap": {"50m": ["02:42,58", "02:43,72", "02:44,86", "02:47,62", "02:48,11", "02:54,14"], "25m": ["02:39,28", "02:40,42", "02:41,56", "02:44,32", "02:44,81", "02:50,84"]}, "200 4N": {"50m": ["02:40,70", "02:41,82", "02:42,95", "02:45,68", "02:46,16", "02:49,54"], "25m": ["02:37,30", "02:38,42", "02:39,55", "02:42,28", "02:42,76", "02:46,14"]}, "400 4N": {"50m": ["05:41,00", "05:43,38", "05:45,77", "05:51,57", "05:52,59", "05:59,76"], "25m": ["05:33,50", "05:35,88", "05:38,27", "05:44,07", "05:45,09", "05:52,26"]}}, "Jaune": {"50 NL": {"50m": ["00:30,72", "00:30,92", "00:31,13", "00:31,66", "00:31,76", "00:32,41"], "25m": ["00:30,02", "00:30,22", "00:30,43", "00:30,96", "00:31,06", "00:31,71"]}, "100 NL": {"50m": ["01:07,53", "01:07,98", "01:08,44", "01:09,59", "01:09,83", "01:11,24"], "25m": ["01:06,33", "01:06,78", "01:07,24", "01:08,39", "01:08,63", "01:10,04"]}, "200 NL": {"50m": ["02:27,28", "02:28,27", "02:29,27", "02:31,77", "02:32,29", "02:35,38"], "25m": ["02:24,38", "02:25,37", "02:26,37", "02:28,87", "02:29,39", "02:32,48"]}, "400 NL": {"50m": ["05:08,68", "05:10,76", "05:12,85", "05:18,09", "05:19,18", "05:25,66"], "25m": ["05:02,48", "05:04,56", "05:06,65", "05:11,89", "05:12,98", "05:19,46"]}, "800 NL": {"50m": ["10:34,00", "10:38,28", "10:42,56", "10:53,34", "10:55,56", "11:08,87"], "25m": ["10:21,10", "10:25,38", "10:29,66", "10:40,44", "10:42,66", "10:55,97"]}, "1500 NL": {"50m": ["19:58,50", "20:06,59", "20:14,68", "20:35,05", "20:39,25", "21:04,42"], "25m": ["19:34,00", "19:42,09", "19:50,18", "20:10,55", "20:14,75", "20:39,92"]}, "50 Dos": {"50m": ["00:36,00", "00:36,24", "00:36,49", "00:37,10", "00:37,22", "00:37,98"], "25m": ["00:34,70", "00:34,94", "00:35,19", "00:35,80", "00:35,92", "00:36,68"]}, "100 Dos": {"50m": ["01:17,04", "01:17,56", "01:18,08", "01:19,39", "01:19,66", "01:21,28"], "25m": ["01:14,74", "01:15,26", "01:15,78", "01:17,09", "01:17,36", "01:18,98"]}, "200 Dos": {"50m": ["02:45,31", "02:46,42", "02:47,54", "02:50,35", "02:50,93", "02:57,35"], "25m": ["02:39,91", "02:41,02", "02:42,14", "02:44,95", "02:45,53", "02:51,95"]}, "50 Brasse": {"50m": ["00:39,00", "00:39,26", "00:39,53", "00:40,19", "00:40,33", "00:41,15"], "25m": ["00:38,30", "00:38,56", "00:38,83", "00:39,49", "00:39,63", "00:40,45"]}, "100 Brasse": {"50m": ["01:27,07", "01:27,66", "01:28,25", "01:29,73", "01:30,03", "01:31,86"], "25m": ["01:25,17", "01:25,76", "01:26,35", "01:27,83", "01:28,13", "01:29,96"]}, "200 Brasse": {"50m": ["03:02,76", "03:03,99", "03:05,23", "03:08,33", "03:08,97", "03:14,96"], "25m": ["02:58,26", "02:59,49", "03:00,73", "03:03,83", "03:04,47", "03:10,46"]}, "50 Pap": {"50m": ["00:32,93", "00:33,15", "00:33,37", "00:33,93", "00:34,05", "00:34,74"], "25m": ["00:32,33", "00:32,55", "00:32,77", "00:33,33", "00:33,45", "00:34,14"]}, "100 Pap": {"50m": ["01:16,09", "01:16,60", "01:17,12", "01:18,41", "01:18,68", "01:20,27"], "25m": ["01:14,69", "01:15,20", "01:15,72", "01:17,01", "01:17,28", "01:18,87"]}, "200 Pap": {"50m": ["02:49,75", "02:50,89", "02:52,04", "02:54,93", "02:55,52", "02:59,53"], "25m": ["02:46,45", "02:47,59", "02:48,74", "02:51,63", "02:52,22", "02:56,23"]}, "200 4N": {"50m": ["02:47,82", "02:48,95", "02:50,09", "02:52,94", "02:53,53", "02:57,05"], "25m": ["02:44,42", "02:45,55", "02:46,69", "02:49,54", "02:50,13", "02:53,65"]}, "400 4N": {"50m": ["05:50,50", "05:52,86", "05:55,23", "06:01,19", "06:02,42", "06:09,78"], "25m": ["05:43,00", "05:45,36", "05:47,73", "05:53,69", "05:54,92", "06:02,28"]}}}, "MESSIEURS": {"Bleu_ChampLigue": {"50 NL": {"50m": ["00:24,77", "00:25,48", "00:25,91", "00:26,39", "00:27,17", "00:28,93"], "25m": ["00:24,07", "00:24,78", "00:25,21", "00:25,69", "00:26,47", "00:28,23"]}, "100 NL": {"50m": ["00:54,56", "00:56,12", "00:56,95", "00:58,03", "00:59,77", "01:03,62"], "25m": ["00:53,06", "00:54,62", "00:55,45", "00:56,53", "00:58,27", "01:02,12"]}, "200 NL": {"50m": ["02:00,47", "02:03,05", "02:04,91", "02:07,12", "02:11,09", "02:20,06"], "25m": ["01:56,87", "01:59,45", "02:01,31", "02:03,52", "02:07,49", "02:16,46"]}, "400 NL": {"50m": ["04:18,36", "04:23,30", "04:27,26", "04:32,71", "04:41,51", "04:56,81"], "25m": ["04:10,66", "04:15,60", "04:19,56", "04:25,01", "04:33,81", "04:49,11"]}, "800 NL": {"50m": ["08:55,00", "09:10,00", "09:15,00", "09:25,00", "09:38,00", "10:16,22"], "25m": ["08:39,10", "08:54,10", "08:59,10", "09:09,10", "09:22,10", "10:00,32"]}, "1500 NL": {"50m": ["17:35,00", "17:45,00", "17:55,00", "18:10,00", "18:25,00", "19:50,00"], "25m": ["17:04,90", "17:14,90", "17:24,90", "17:39,90", "17:54,90", "19:19,90"]}, "50 Dos": {"50m": ["00:29,17", "00:30,10", "00:30,55", "00:31,15", "00:32,10", "00:34,64"], "25m": ["00:27,67", "00:28,60", "00:29,05", "00:29,65", "00:30,60", "00:33,14"]}, "100 Dos": {"50m": ["01:02,86", "01:04,30", "01:05,30", "01:06,56", "01:08,50", "01:14,66"], "25m": ["00:59,86", "01:01,30", "01:02,30", "01:03,56", "01:05,50", "01:11,66"]}, "200 Dos": {"50m": ["02:18,42", "02:21,39", "02:23,29", "02:26,14", "02:30,50", "02:41,06"], "25m": ["02:11,52", "02:14,49", "02:16,39", "02:19,24", "02:23,60", "02:34,16"]}, "50 Brasse": {"50m": ["00:31,57", "00:32,40", "00:32,96", "00:33,58", "00:34,60", "00:37,89"], "25m": ["00:30,47", "00:31,30", "00:31,86", "00:32,48", "00:33,50", "00:36,79"]}
132, "100 Brasse": {"50m": ["01:11,26", "01:12,76", "01:13,85", "01:15,31", "01:17,76", "01:23,75"], "25m": ["01:08,76", "01:10,26", "01:11,35", "01:12,81", "01:15,26", "01:21,25"]}, "200 Brasse": {"50m": ["02:35,07", "02:38,33", "02:40,35", "02:43,14", "02:48,63", "03:01,74"], "25m": ["02:29,17", "02:32,43", "02:34,45", "02:37,24", "02:42,73", "02:55,84"]}, "50 Pap": {"50m": ["00:26,58", "00:27,46", "00:27,91", "00:28,47", "00:29,34", "00:31,83"], "25m": ["00:25,88", "00:26,76", "00:27,21", "00:27,77", "00:28,64", "00:31,13"]}, "100 Pap": {"50m": ["00:59,66", "01:01,41", "01:02,39", "01:03,46", "01:05,59", "01:13,17"], "25m": ["00:58,26", "01:00,01", "01:00,99", "01:02,06", "01:04,19", "01:11,77"]}, "200 Pap": {"50m": ["02:18,34", "02:21,23", "02:23,44", "02:26,21", "02:30,37", "02:44,48"], "25m": ["02:15,04", "02:17,93", "02:20,14", "02:22,91", "02:27,07", "02:41,18"]}, "200 4N": {"50m": ["02:17,69", "02:20,51", "02:22,68", "02:25,49", "02:29,74", "02:38,67"], "25m": ["02:13,59", "02:16,41", "02:18,58", "02:21,39", "02:25,64", "02:34,57"]}, "400 4N": {"50m": ["04:53,68", "04:59,80", "05:04,20", "05:07,25", "05:19,15", "05:41,48"], "25m": ["04:44,68", "04:50,80", "04:55,20", "04:58,25", "05:10,15", "05:32,48"]}}, "Vert": {"50 NL": {"50m": ["00:25,98", "00:26,60", "00:26,97", "00:27,41", "00:28,19", "00:29,69"], "25m": ["00:25,28", "00:25,90", "00:26,27", "00:26,71", "00:27,49", "00:28,99"]}, "100 NL": {"50m": ["00:56,46", "00:57,82", "00:58,61", "00:59,57", "01:01,26", "01:05,41"], "25m": ["00:54,96", "00:56,32", "00:57,11", "00:58,07", "00:59,76", "01:03,91"]}, "200 NL": {"50m": ["02:05,50", "02:08,51", "02:10,27", "02:12,40", "02:16,17", "02:24,24"], "25m": ["02:01,90", "02:04,91", "02:06,67", "02:08,80", "02:12,57", "02:20,64"]}, "400 NL": {"50m": ["04:25,51", "04:31,88", "04:35,60", "04:40,11", "04:48,08", "05:05,73"], "25m": ["04:17,81", "04:24,18", "04:27,90", "04:32,41", "04:40,38", "04:58,03"]}, "800 NL": {"50m": ["09:07,90", "09:21,05", "09:28,72", "09:38,03", "09:54,47", "10:25,90"], "25m": ["08:52,00", "09:05,15", "09:12,82", "09:22,13", "09:38,57", "10:10,00"]}, "1500 NL": {"50m": ["18:01,00", "18:26,94", "18:42,08", "19:00,46", "19:32,89", "20:12,50"], "25m": ["17:30,90", "17:56,84", "18:11,98", "18:30,36", "19:02,79", "19:42,40"]}, "50 Dos": {"50m": ["00:30,89", "00:31,63", "00:32,06", "00:32,59", "00:33,52", "00:35,87"], "25m": ["00:29,39", "00:30,13", "00:30,56", "00:31,09", "00:32,02", "00:34,37"]}, "100 Dos": {"50m": ["01:05,78", "01:07,36", "01:08,28", "01:09,40", "01:11,37", "01:17,73"], "25m": ["01:02,78", "01:04,36", "01:05,28", "01:06,40", "01:08,37", "01:14,73"]}, "200 Dos": {"50m": ["02:22,66", "02:26,08", "02:28,08", "02:30,51", "02:34,79", "02:46,97"], "25m": ["02:15,76", "02:19,18", "02:21,18", "02:23,61", "02:27,89", "02:40,07"]}, "50 Brasse": {"50m": ["00:33,47", "00:34,27", "00:34,74", "00:35,31", "00:36,31", "00:39,09"], "25m": ["00:32,37", "00:33,17", "00:33,64", "00:34,21", "00:35,21", "00:37,99"]}, "100 Brasse": {"50m": ["01:13,99", "01:15,77", "01:16,80", "01:18,06", "01:20,28", "01:26,58"], "25m": ["01:11,49", "01:13,27", "01:14,30", "01:15,56", "01:17,78", "01:24,08"]}, "200 Brasse": {"50m": ["02:43,18", "02:47,10", "02:49,38", "02:52,15", "02:57,05", "03:08,55"], "25m": ["02:37,28", "02:41,20", "02:43,48", "02:46,25", "02:51,15", "03:02,65"]}, "50 Pap": {"50m": ["00:28,60", "00:29,29", "00:29,69", "00:30,17", "00:31,03", "00:33,37"], "25m": ["00:27,90", "00:28,59", "00:28,99", "00:29,47", "00:30,33", "00:32,67"]}, "100 Pap": {"50m": ["01:03,91", "01:05,44", "01:06,34", "01:07,43", "01:09,34", "01:16,54"], "25m": ["01:02,51", "01:04,04", "01:04,94", "01:06,03", "01:07,94", "01:15,14"]}, "200 Pap": {"50m": ["02:25,38", "02:28,87", "02:30,90", "02:33,38", "02:37,74", "02:51,52"], "25m": ["02:22,08", "02:25,57", "02:27,60", "02:30,08", "02:34,44", "02:48,22"]}, "200 4N": {"50m": ["02:22,60", "02:26,02", "02:28,02", "02:30,44", "02:34,72", "02:42,81"], "25m": ["02:18,50", "02:21,92", "02:23,92", "02:26,34", "02:30,62", "02:38,71"]}, "400 4N": {"50m": ["05:03,65", "05:10,94", "05:15,19", "05:20,35", "05:29,46", "05:52,32"], "25m": ["04:54,65", "05:01,94", "05:06,19", "05:11,35", "05:20,46", "05:43,32"]}}, "Jaune": {"50 NL": {"50m": ["00:26,35", "00:26,98", "00:27,35", "00:27,80", "00:28,59", "00:30,61"], "25m": ["00:25,65", "00:26,28", "00:26,65", "00:27,10", "00:27,89", "00:29,91"]}, "100 NL": {"50m": ["00:58,50", "00:59,90", "01:00,72", "01:01,72", "01:03,48", "01:07,43"], "25m": ["00:57,00", "00:58,40", "00:59,22", "01:00,22", "01:01,98", "01:05,93"]}, "200 NL": {"50m": ["02:11,60", "02:14,76", "02:16,60", "02:18,84", "02:22,79", "02:28,70"], "25m": ["02:08,00", "02:11,16", "02:13,00", "02:15,24", "02:19,19", "02:25,10"]}, "400 NL": {"50m": ["04:42,50", "04:49,28", "04:53,24", "04:58,04", "05:06,51", "05:15,19"], "25m": ["04:34,80", "04:41,58", "04:45,54", "04:50,34", "04:58,81", "05:07,49"]}, "800 NL": {"50m": ["09:40,00", "09:53,90", "10:02,05", "10:11,90", "10:29,30", "10:45,26"], "25m": ["09:24,10", "09:38,00", "09:46,15", "09:56,00", "10:13,40", "10:29,36"]}, "1500 NL": {"50m": ["18:21,00", "18:47,42", "19:02,84", "19:21,56", "19:54,59", "20:50,00"], "25m": ["17:50,90", "18:17,32", "18:32,74", "18:51,46", "19:24,49", "20:19,90"]}, "50 Dos": {"50m": ["00:31,40", "00:32,15", "00:32,59", "00:33,13", "00:34,07", "00:37,08"], "25m": ["00:29,90", "00:30,65", "00:31,09", "00:31,63", "00:32,57", "00:35,58"]}, "100 Dos": {"50m": ["01:08,90", "01:10,55", "01:11,52", "01:12,69", "01:14,76", "01:20,82"], "25m": ["01:05,90", "01:07,55", "01:08,52", "01:09,69", "01:11,76", "01:17,82"]}, "200 Dos": {"50m": ["02:31,30", "02:34,93", "02:37,05", "02:39,62", "02:44,16", "02:54,40"], "25m": ["02:24,40", "02:28,03", "02:30,15", "02:32,72", "02:37,26", "02:47,50"]}, "50 Brasse": {"50m": ["00:33,99", "00:34,81", "00:35,28", "00:35,86", "00:36,88", "00:40,30"], "25m": ["00:32,89", "00:33,71", "00:34,18", "00:34,76", "00:35,78", "00:39,20"]}, "100 Brasse": {"50m": ["01:15,90", "01:17,72", "01:18,78", "01:20,07", "01:22,35", "01:29,26"], "25m": ["01:13,40", "01:15,22", "01:16,28", "01:17,57", "01:19,85", "01:26,76"]}, "200 Brasse": {"50m": ["02:48,90", "02:52,95", "02:55,32", "02:58,19", "03:03,26", "03:12,81"], "25m": ["02:43,00", "02:47,05", "02:49,42", "02:52,29", "02:57,36", "03:06,91"]}, "50 Pap": {"50m": ["00:28,75", "00:29,44", "00:29,84", "00:30,33", "00:31,19", "00:34,40"], "25m": ["00:28,05", "00:28,74", "00:29,14", "00:29,63", "00:30,49", "00:33,70"]}, "100 Pap": {"50m": ["01:05,84", "01:07,42", "01:08,34", "01:09,46", "01:11,44", "01:18,91"], "25m": ["01:04,44", "01:06,
13202", "01:06,94", "01:08,06", "01:10,04", "01:17,51"]}, "200 Pap": {"50m": ["02:31,50", "02:35,14", "02:37,26", "02:39,83", "02:44,38", "02:59,09"], "25m": ["02:28,20", "02:31,84", "02:33,96", "02:36,53", "02:41,08", "02:55,79"]}, "200 4N": {"50m": ["02:30,20", "02:33,80", "02:35,91", "02:38,46", "02:42,97", "02:47,85"], "25m": ["02:26,10", "02:29,70", "02:31,81", "02:34,36", "02:38,87", "02:43,75"]}, "400 4N": {"50m": ["05:19,65", "05:27,32", "05:31,80", "05:37,23", "05:46,82", "06:03,22"], "25m": ["05:10,65", "05:18,32", "05:22,80", "05:28,23", "05:37,82", "05:54,22"]}}}}, "Vers_Nationales": {"note": "Seuils par niveau, bassin 50m. Dans ce doc FranceU18=OpenEte. 19+ : colonne finale = France Ãlite / Giant Open / Open d'Ãté.", "data": {"DAMES": {"U14": {"50 NL": {"Jaune": "00:32,41", "Vert": "00:31,48", "ChampLigue": "00:30,75", "ChallengeNat": "00:30,00", "FranceU18": "00:28,58", "OpenEte": "00:28,58", "FranceElite": "00:26,84"}, "100 NL": {"Jaune": "01:11,24", "Vert": "01:07,98", "ChampLigue": "01:06,11", "ChallengeNat": "01:05,44", "FranceU18": "01:02,33", "OpenEte": "01:02,33", "FranceElite": "00:58,10"}, "200 NL": {"Jaune": "02:35,38", "Vert": "02:28,50", "ChampLigue": "02:24,51", "ChallengeNat": "02:23,06", "FranceU18": "02:16,25", "OpenEte": "02:16,25", "FranceElite": "02:06,50"}, "400 NL": {"Jaune": "05:25,66", "Vert": "05:11,46", "ChampLigue": "05:02,94", "ChallengeNat": "04:59,08", "FranceU18": "04:44,84", "OpenEte": "04:44,84", "FranceElite": "04:26,55"}, "800 NL": {"Jaune": "11:08,87", "Vert": "10:47,12", "ChampLigue": "10:25,00", "ChallengeNat": "10:13,83", "FranceU18": "09:44,60", "OpenEte": "09:44,60", "FranceElite": "09:08,98"}, "1500 NL": {"Jaune": "21:04,42", "Vert": "20:38,12", "ChampLigue": "20:05,00", "ChallengeNat": "19:49,92", "FranceU18": "18:53,26", "OpenEte": "18:53,26", "FranceElite": "17:36,38"}, "50 Dos": {"Jaune": "00:37,98", "Vert": "00:35,97", "ChampLigue": "00:35,17", "ChallengeNat": "00:34,44", "FranceU18": "00:32,80", "OpenEte": "00:32,80", "FranceElite": "00:30,61"}, "100 Dos": {"Jaune": "01:21,28", "Vert": "01:18,40", "ChampLigue": "01:16,49", "ChallengeNat": "01:14,41", "FranceU18": "01:10,17", "OpenEte": "01:10,17", "FranceElite": "01:06,11"}, "200 Dos": {"Jaune": "02:57,35", "Vert": "02:52,03", "ChampLigue": "02:47,03", "ChallengeNat": "02:40,03", "FranceU18": "02:32,41", "OpenEte": "02:32,41", "FranceElite": "02:23,92"}, "50 Brasse": {"Jaune": "00:41,15", "Vert": "00:39,62", "ChampLigue": "00:38,82", "ChallengeNat": "00:38,22", "FranceU18": "00:36,40", "OpenEte": "00:36,40", "FranceElite": "00:33,94"}, "100 Brasse": {"Jaune": "01:31,86", "Vert": "01:28,01", "ChampLigue": "01:25,45", "ChallengeNat": "01:23,64", "FranceU18": "01:19,66", "OpenEte": "01:19,66", "FranceElite": "01:14,56"}, "200 Brasse": {"Jaune": "03:14,96", "Vert": "03:09,11", "ChampLigue": "03:04,78", "ChallengeNat": "03:00,55", "FranceU18": "02:51,96", "OpenEte": "02:51,96", "FranceElite": "02:41,64"}, "50 Pap": {"Jaune": "00:34,74", "Vert": "00:33,41", "ChampLigue": "00:32,67", "ChallengeNat": "00:31,99", "FranceU18": "00:30,47", "OpenEte": "00:30,47", "FranceElite": "00:28,36"}, "100 Pap": {"Jaune": "01:20,27", "Vert": "01:16,76", "ChampLigue": "01:14,61", "ChallengeNat": "01:12,36", "FranceU18": "01:08,92", "OpenEte": "01:08,92", "FranceElite": "01:03,48"}, "200 Pap": {"Jaune": "02:59,53", "Vert": "02:54,14", "ChampLigue": "02:50,27", "ChallengeNat": "02:46,72", "FranceU18": "02:38,79", "OpenEte": "02:38,79", "FranceElite": "02:23,28"}, "200 4N": {"Jaune": "02:57,05", "Vert": "02:49,54", "ChampLigue": "02:44,74", "ChallengeNat": "02:41,83", "FranceU18": "02:34,13", "OpenEte": "02:34,13", "FranceElite": "02:23,98"}, "400 4N": {"Jaune": "06:09,78", "Vert": "05:59,76", "ChampLigue": "05:49,29", "ChallengeNat": "05:43,70", "FranceU18": "05:27,34", "OpenEte": "05:27,34", "FranceElite": "05:05,32"}}, "U15": {"50 NL": {"Jaune": "00:31,76", "Vert": "00:30,85", "ChampLigue": "00:29,98", "ChallengeNat": "00:29,27", "FranceU18": "00:28,01", "OpenEte": "00:28,01", "FranceElite": "00:26,84"}, "100 NL": {"Jaune": "01:09,83", "Vert": "01:06,63", "ChampLigue": "01:04,59", "ChallengeNat": "01:03,25", "FranceU18": "01:00,53", "OpenEte": "01:00,53", "FranceElite": "00:58,10"}, "200 NL": {"Jaune": "02:32,29", "Vert": "02:25,55", "ChampLigue": "02:21,08", "ChallengeNat": "02:17,79", "FranceU18": "02:11,86", "OpenEte": "02:11,86", "FranceElite": "02:06,50"}, "400 NL": {"Jaune": "05:19,18", "Vert": "05:05,26", "ChampLigue": "04:56,06", "ChallengeNat": "04:49,32", "FranceU18": "04:36,87", "OpenEte": "04:36,87", "FranceElite": "04:26,55"}, "800 NL": {"Jaune": "10:55,56", "Vert": "10:34,23", "ChampLigue": "10:10,00", "ChallengeNat": "09:51,04", "FranceU18": "09:25,59", "OpenEte": "09:25,59", "FranceElite": "09:08,98"}, "1500 NL": {"Jaune": "20:39,25", "Vert": "20:13,47", "ChampLigue": "19:30,00", "ChallengeNat": "18:56,48", "FranceU18": "18:07,55", "OpenEte": "18:07,55", "FranceElite": "17:36,38"}, "50 Dos": {"Jaune": "00:37,22", "Vert": "00:35,16", "ChampLigue": "00:34,33", "ChallengeNat": "00:33,41", "FranceU18": "00:31,98", "OpenEte": "00:31,98", "FranceElite": "00:30,61"}, "100 Dos": {"Jaune": "01:19,66", "Vert": "01:16,19", "ChampLigue": "01:13,93", "ChallengeNat": "01:12,35", "FranceU18": "01:09,24", "OpenEte": "01:09,24", "FranceElite": "01:06,11"}, "200 Dos": {"Jaune": "02:50,93", "Vert": "02:43,65", "ChampLigue": "02:38,96", "ChallengeNat": "02:35,79", "FranceU18": "02:29,09", "OpenEte": "02:29,09", "FranceElite": "02:23,92"}, "50 Brasse": {"Jaune": "00:40,33", "Vert": "00:38,83", "ChampLigue": "00:37,93", "ChallengeNat": "00:36,94", "FranceU18": "00:35,35", "OpenEte": "00:35,35", "FranceElite": "00:33,94"}, "100 Brasse": {"Jaune": "01:30,03", "Vert": "01:26,26", "ChampLigue": "01:23,41", "ChallengeNat": "01:20,54", "FranceU18": "01:17,08", "OpenEte": "01:17,08", "FranceElite": "01:14,56"}, "200 Brasse": {"Jaune": "03:08,97", "Vert": "03:04,80", "ChampLigue": "02:59,20", "ChallengeNat": "02:54,23", "FranceU18": "02:46,73", "OpenEte": "02:46,73", "FranceElite": "02:41,64"}, "50 Pap": {"Jaune": "00:34,05", "Vert": "00:32,75", "ChampLigue": "00:31,92", "ChallengeNat": "00:30,91", "FranceU18": "00:29,58", "OpenEte": "00:29,58", "FranceElite": "00:28,36"}, "100 Pap": {"Jaune": "01:18,68", "Vert": "01:15,23", "ChampLigue": "01:12,52", "ChallengeNat": "01:09,53", "FranceU18": "01:06,54", "OpenEte": "01:06,54", "FranceElite": "01:03,48"}, "200 Pap": {"Jaune": "02:55,52", "Vert": "02:48,11", "ChampLigue": "02:42,80", "ChallengeNat": "02:37,96", "FranceU18": "02:31,16", "OpenEte": "02:31,16", "FranceElite": "02:23,28"}, "200 4N": {"Jaune": "02:53,53", "Vert": "02:46,16", "ChampLigue": "02:41,29", "ChallengeNat": "02:37,68", "FranceU18": "02:30,89", "OpenEte": "02:30,89", "FranceElite": "02:23,98"}, "400 4N": {"Jaune": "06:02,42", "Vert": "05:52,59", "ChampLigue": "05:40,54", "ChallengeNat": "05:29,19", "FranceU18": "05:15,02", "OpenEte": "05:15,02", "FranceElite": "05:05,32"}}, "U16": {"50 NL": {"Jaune": "00:31,66", "Vert": "00:30,77", "ChampLigue": "00:29,93", "ChallengeNat": "00:28,81", "FranceU18": "00:27,71", "OpenEte": "00:27,71", "FranceElite": "00:26,84"}, "100 NL": {"Jaune": "01:09,59", "Vert": "01:06,44", "ChampLigue": "01:04,19", "ChallengeNat": "01:02,30", "FranceU18": "00:59,91", "OpenEte": "00:59,91", "FranceElite": "00:58,10"}, "200 NL": {"Jaune": "02:31,77", "Vert": "02:25,12", "ChampLigue": "02:20,28", "ChallengeNat": "02:16,07", "FranceU18": "02:10,84", "OpenEte": "02:10,84", "FranceElite": "02:06,50"}, "400 NL": {"Jaune": "05:18,09", "Vert": "05:04,37", "ChampLigue": "04:53,85", "ChallengeNat": "04:43,52", "FranceU18": "04:32,62", "OpenEte": "04:32,62", "FranceElite": "04:26,55"}, "800 NL": {"Jaune": "10:53,34", "Vert": "10:32,39", "ChampLigue": "10:04,00", "ChallengeNat": "09:44,04", "FranceU18": "09:21,58", "OpenEte": "09:21,58", "FranceElite": "09:08,98"}, "1500 NL": {"Jaune": "20:35,05", "Vert": "20:09,95", "ChampLigue": "19:15,00", "ChallengeNat": "18:38,79", "FranceU18": "17:55,76", "OpenEte": "17:55,76", "FranceElite": "17:36,38"}, "50 Dos": {"Jaune": "00:37,10", "Vert": "00:35,05", "ChampLigue": "00:34,07", "ChallengeNat": "00:32,70", "FranceU18": "00:31,45", "OpenEte": "00:31,45", "FranceElite": "00:30,61"}, "100 Dos": {"Jaune": "01:19,39", "Vert": "01:15,96", "ChampLigue": "01:13,34", "ChallengeNat": "01:10,77", "FranceU18": "01:08,05", "OpenEte": "01:08,05", "FranceElite": "01:06,11"}, "200 Dos": {"Jaune": "02:50,35", "Vert": "02:43,18", "ChampLigue": "02:37,77", "ChallengeNat": "02:32,68", "FranceU18": "02:26,81", "OpenEte": "02:26,81", "FranceElite": "02:23,92"}, "50 Brasse": {"Jaune": "00:40,19", "Vert": "00:38,71", "ChampLigue": "00:37,62", "ChallengeNat": "00:36,10", "FranceU18": "00:34,72", "OpenEte": "00:34,72", "FranceElite": "00:33,94"}, "100 Brasse": {"Jaune": "01:29,73", "Vert": "01:26,01", "ChampLigue": "01:22,94", "ChallengeNat": "01:19,48", "FranceU18": "01:16,43", "OpenEte": "01:16,43", "FranceElite": "01:14,56"}, "200 Brasse": {"Jaune": "03:08,33", "Vert": "03:04,26", "ChampLigue": "02:58,23", "ChallengeNat": "02:52,23", "FranceU18": "02:45,61", "OpenEte": "02:45,61", "FranceElite": "02:41,64"}, "50 Pap": {"Jaune": "00:33,93", "Vert": "00:32,65", "ChampLigue": "00:31,69", "ChallengeNat": "00:30,33", "FranceU18": "00:29,17", "OpenEte": "00:29,17", "FranceElite": "00:28,36"}, "100 Pap": {"Jaune": "01:18,41", "Vert": "01:15,02", "ChampLigue": "01:11,95", "ChallengeNat": "01:07,97", "FranceU18": "01:05,36", "OpenEte": "01:05,36", "FranceElite": "01:03,48"}, "200 Pap": {"Jaune": "02:54,93", "Vert": "02:47,62", "ChampLigue": "02:41,47", "ChallengeNat": "02:34,34", "FranceU18": "02:28,41", "OpenEte": "02:28,41", "FranceElite": "02:23,28"}, "200 4N": {"Jaune": "02:52,94", "Vert": "02:45,68", "ChampLigue": "02:39,97", "ChallengeNat": "02:34,07", "FranceU18": "02:28,15", "OpenEte": "02:28,15", "FranceElite": "02:23,98"}, "400 4N": {"Jaune": "06:01,19", "Vert": "05:51,57", "ChampLigue": "05:38,69", "ChallengeNat": "05:25,26", "FranceU18": "05:12,75", "OpenEte": "05:12,75", "FranceElite": "05:05,32"}}, "U17": {"50 NL": {"Jaune": "00:31,13", "Vert": "00:30,26", "ChampLigue": "00:29,42", "ChallengeNat": "00:28,28", "FranceU18": "00:27,33", "OpenEte": "00:27,33", "FranceElite": "00:26,84"}, "100 NL": {"Jaune": "01:08,44", "Vert": "01:05,34", "ChampLigue": "01:03,13", "ChallengeNat": "01:01,26", "FranceU18": "00:59,19", "OpenEte": "00:59,19", "FranceElite": "00:58,10"}, "200 NL": {"Jaune": "02:29,27", "Vert": "02:22,73", "ChampLigue": "02:17,83", "ChallengeNat": "02:13,10", "FranceU18": "02:08,60", "OpenEte": "02:08,60", "FranceElite": "02:06,50"}, "400 NL": {"Jaune": "05:12,85", "Vert": "04:59,35", "ChampLigue": "04:48,74", "ChallengeNat": "04:37,78", "FranceU18": "04:28,39", "OpenEte": "04:28,39", "FranceElite": "04:26,55"}, "800 NL": {"Jaune": "10:42,56", "Vert": "10:21,97", "ChampLigue": "09:59,00", "ChallengeNat": "09:29,18", "FranceU18": "09:09,94", "OpenEte": "09:09,94", "FranceElite": "09:08,98"}
132, "1500 NL": {"Jaune": "20:14,68", "Vert": "19:50,00", "ChampLigue": "19:05,00", "ChallengeNat": "18:20,28", "FranceU18": "17:43,08", "OpenEte": "17:43,08", "FranceElite": "17:36,38"}, "50 Dos": {"Jaune": "00:36,49", "Vert": "00:34,48", "ChampLigue": "00:33,51", "ChallengeNat": "00:32,18", "FranceU18": "00:31,10", "OpenEte": "00:31,10", "FranceElite": "00:30,61"}, "100 Dos": {"Jaune": "01:18,08", "Vert": "01:14,71", "ChampLigue": "01:12,05", "ChallengeNat": "01:09,28", "FranceU18": "01:06,94", "OpenEte": "01:06,94", "FranceElite": "01:06,11"}, "200 Dos": {"Jaune": "02:47,54", "Vert": "02:40,49", "ChampLigue": "02:35,31", "ChallengeNat": "02:30,73", "FranceU18": "02:25,64", "OpenEte": "02:25,64", "FranceElite": "02:23,92"}, "50 Brasse": {"Jaune": "00:39,53", "Vert": "00:38,08", "ChampLigue": "00:37,01", "ChallengeNat": "00:35,53", "FranceU18": "00:34,33", "OpenEte": "00:34,33", "FranceElite": "00:33,94"}, "100 Brasse": {"Jaune": "01:28,25", "Vert": "01:24,59", "ChampLigue": "01:21,70", "ChallengeNat": "01:18,70", "FranceU18": "01:16,04", "OpenEte": "01:16,04", "FranceElite": "01:14,56"}, "200 Brasse": {"Jaune": "03:05,23", "Vert": "03:01,22", "ChampLigue": "02:55,29", "ChallengeNat": "02:49,39", "FranceU18": "02:43,67", "OpenEte": "02:43,67", "FranceElite": "02:41,64"}, "50 Pap": {"Jaune": "00:33,37", "Vert": "00:32,11", "ChampLigue": "00:31,16", "ChallengeNat": "00:29,79", "FranceU18": "00:28,79", "OpenEte": "00:28,79", "FranceElite": "00:28,36"}, "100 Pap": {"Jaune": "01:17,12", "Vert": "01:13,78", "ChampLigue": "01:10,76", "ChallengeNat": "01:06,85", "FranceU18": "01:04,59", "OpenEte": "01:04,59", "FranceElite": "01:03,48"}, "200 Pap": {"Jaune": "02:52,04", "Vert": "02:44,86", "ChampLigue": "02:38,17", "ChallengeNat": "02:29,24", "FranceU18": "02:24,20", "OpenEte": "02:24,20", "FranceElite": "02:23,28"}, "200 4N": {"Jaune": "02:50,09", "Vert": "02:42,95", "ChampLigue": "02:37,47", "ChallengeNat": "02:32,09", "FranceU18": "02:26,95", "OpenEte": "02:26,95", "FranceElite": "02:23,98"}, "400 4N": {"Jaune": "05:55,23", "Vert": "05:45,77", "ChampLigue": "05:33,01", "ChallengeNat": "05:19,52", "FranceU18": "05:08,72", "OpenEte": "05:08,72", "FranceElite": "05:05,32"}}, "U18": {"50 NL": {"Jaune": "00:30,92", "Vert": "00:30,05", "ChampLigue": "00:29,15", "ChallengeNat": "00:27,78", "FranceU18": "00:27,09", "OpenEte": "00:27,09", "FranceElite": "00:26,84"}, "100 NL": {"Jaune": "01:07,98", "Vert": "01:04,89", "ChampLigue": "01:02,53", "ChallengeNat": "01:00,14", "FranceU18": "00:58,65", "OpenEte": "00:58,65", "FranceElite": "00:58,10"}, "200 NL": {"Jaune": "02:28,27", "Vert": "02:21,74", "ChampLigue": "02:16,55", "ChallengeNat": "02:10,93", "FranceU18": "02:07,55", "OpenEte": "02:07,55", "FranceElite": "02:06,50"}, "400 NL": {"Jaune": "05:10,76", "Vert": "04:57,28", "ChampLigue": "04:46,80", "ChallengeNat": "04:35,88", "FranceU18": "04:27,47", "OpenEte": "04:27,47", "FranceElite": "04:26,55"}, "800 NL": {"Jaune": "10:38,28", "Vert": "10:17,67", "ChampLigue": "09:59,00", "ChallengeNat": "09:28,20", "FranceU18": "09:09,46", "OpenEte": "09:09,46", "FranceElite": "09:08,98"}, "1500 NL": {"Jaune": "20:06,59", "Vert": "19:41,78", "ChampLigue": "19:05,00", "ChallengeNat": "18:13,35", "FranceU18": "17:39,73", "OpenEte": "17:39,73", "FranceElite": "17:36,38"}, "50 Dos": {"Jaune": "00:36,24", "Vert": "00:34,24", "ChampLigue": "00:33,21", "ChallengeNat": "00:31,68", "FranceU18": "00:30,86", "OpenEte": "00:30,86", "FranceElite": "00:30,61"}, "100 Dos": {"Jaune": "01:17,56", "Vert": "01:14,19", "ChampLigue": "01:11,47", "ChallengeNat": "01:08,42", "FranceU18": "01:06,53", "OpenEte": "01:06,53", "FranceElite": "01:06,11"}, "200 Dos": {"Jaune": "02:46,42", "Vert": "02:39,28", "ChampLigue": "02:33,99", "ChallengeNat": "02:28,96", "FranceU18": "02:24,78", "OpenEte": "02:24,78", "FranceElite": "02:23,92"}, "50 Brasse": {"Jaune": "00:39,26", "Vert": "00:37,81", "ChampLigue": "00:36,72", "ChallengeNat": "00:35,12", "FranceU18": "00:34,14", "OpenEte": "00:34,14", "FranceElite": "00:33,94"}, "100 Brasse": {"Jaune": "01:27,66", "Vert": "01:24,00", "ChampLigue": "01:20,91", "ChallengeNat": "01:17,17", "FranceU18": "01:15,30", "OpenEte": "01:15,30", "FranceElite": "01:14,56"}, "200 Brasse": {"Jaune": "03:03,99", "Vert": "02:59,97", "ChampLigue": "02:53,88", "ChallengeNat": "02:47,30", "FranceU18": "02:42,66", "OpenEte": "02:42,66", "FranceElite": "02:41,64"}, "50 Pap": {"Jaune": "00:33,15", "Vert": "00:31,89", "ChampLigue": "00:30,90", "ChallengeNat": "00:29,36", "FranceU18": "00:28,58", "OpenEte": "00:28,58", "FranceElite": "00:28,36"}, "100 Pap": {"Jaune": "01:16,60", "Vert": "01:13,27", "ChampLigue": "01:10,11", "ChallengeNat": "01:05,70", "FranceU18": "01:04,04", "OpenEte": "01:04,04", "FranceElite": "01:03,48"}, "200 Pap": {"Jaune": "02:50,89", "Vert": "02:43,72", "ChampLigue": "02:37,26", "ChallengeNat": "02:28,29", "FranceU18": "02:23,74", "OpenEte": "02:23,74", "FranceElite": "02:23,28"}, "200 4N": {"Jaune": "02:48,95", "Vert": "02:41,82", "ChampLigue": "02:35,91", "ChallengeNat": "02:29,02", "FranceU18": "02:25,47", "OpenEte": "02:25,47", "FranceElite": "02:23,98"}, "400 4N": {"Jaune": "05:52,86", "Vert": "05:43,38", "ChampLigue": "05:30,44", "ChallengeNat": "05:16,00", "FranceU18": "05:07,02", "OpenEte": "05:07,02", "FranceElite": "05:05,32"}}, "19+": {"50 NL": {"Jaune": "00:30,72", "Vert": "00:29,84", "ChampLigue": "00:29,00", "ChallengeNat": "00:27,78", "FranceElite": "00:26,84"}, "100 NL": {"Jaune": "01:07,53", "Vert": "01:04,44", "ChampLigue": "01:02,21", "ChallengeNat": "01:00,14", "FranceElite": "00:58,10"}, "200 NL": {"Jaune": "02:27,28", "Vert": "02:20,76", "ChampLigue": "02:15,86", "ChallengeNat": "02:10,93", "FranceElite": "02:06,50"}, "400 NL": {"Jaune": "05:08,68", "Vert": "04:55,22", "ChampLigue": "04:45,35", "ChallengeNat": "04:35,88", "FranceElite": "04:26,55"}, "800 NL": {"Jaune": "10:34,00", "Vert": "10:13,38", "ChampLigue": "09:59,00", "ChallengeNat": "09:28,20", "FranceElite": "09:08,98"}
132, "1500 NL": {"Jaune": "19:58,50", "Vert": "19:33,57", "ChampLigue": "19:05,00", "ChallengeNat": "18:13,35", "FranceElite": "17:36,38"}, "50 Dos": {"Jaune": "00:36,00", "Vert": "00:34,00", "ChampLigue": "00:33,05", "ChallengeNat": "00:31,68", "FranceElite": "00:30,61"}, "100 Dos": {"Jaune": "01:17,04", "Vert": "01:13,68", "ChampLigue": "01:11,11", "ChallengeNat": "01:08,42", "FranceElite": "01:06,11"}, "200 Dos": {"Jaune": "02:45,31", "Vert": "02:38,27", "ChampLigue": "02:33,30", "ChallengeNat": "02:28,96", "FranceElite": "02:23,92"}, "50 Brasse": {"Jaune": "00:39,00", "Vert": "00:37,55", "ChampLigue": "00:36,53", "ChallengeNat": "00:35,12", "FranceElite": "00:33,94"}, "100 Brasse": {"Jaune": "01:27,07", "Vert": "01:23,42", "ChampLigue": "01:20,49", "ChallengeNat": "01:17,17", "FranceElite": "01:14,56"}, "200 Brasse": {"Jaune": "03:02,76", "Vert": "02:58,72", "ChampLigue": "02:53,00", "ChallengeNat": "02:47,30", "FranceElite": "02:41,64"}, "50 Pap": {"Jaune": "00:32,93", "Vert": "00:31,67", "ChampLigue": "00:30,74", "ChallengeNat": "00:29,36", "FranceElite": "00:28,36"}, "100 Pap": {"Jaune": "01:16,09", "Vert": "01:12,76", "ChampLigue": "01:09,75", "ChallengeNat": "01:05,70", "FranceElite": "01:03,48"}, "200 Pap": {"Jaune": "02:49,75", "Vert": "02:42,58", "ChampLigue": "02:36,32", "ChallengeNat": "02:28,29", "FranceElite": "02:23,28"}, "200 4N": {"Jaune": "02:47,82", "Vert": "02:40,70", "ChampLigue": "02:35,12", "ChallengeNat": "02:29,02", "FranceElite": "02:23,98"}, "400 4N": {"Jaune": "05:50,50", "Vert": "05:41,00", "ChampLigue": "05:28,75", "ChallengeNat": "05:16,00", "FranceElite": "05:05,32"}}}, "MESSIEURS": {"U14": {"50 NL": {"Jaune": "00:30,61", "Vert": "00:29,69", "ChampLigue": "00:28,93", "ChallengeNat": "00:28,02", "FranceU18": "00:26,69", "OpenEte": "00:26,69", "FranceElite": "00:23,62"}, "100 NL": {"Jaune": "01:07,43", "Vert": "01:05,41", "ChampLigue": "01:03,62", "ChallengeNat": "01:01,26", "FranceU18": "00:58,35", "OpenEte": "00:58,35", "FranceElite": "00:51,45"}, "200 NL": {"Jaune": "02:28,70", "Vert": "02:24,24", "ChampLigue": "02:20,06", "ChallengeNat": "02:14,21", "FranceU18": "02:07,82", "OpenEte": "02:07,82", "FranceElite": "01:53,42"}, "400 NL": {"Jaune": "05:15,19", "Vert": "05:05,73", "ChampLigue": "04:56,81", "ChallengeNat": "04:44,19", "FranceU18": "04:30,66", "OpenEte": "04:30,66", "FranceElite": "04:00,52"}, "800 NL": {"Jaune": "10:45,26", "Vert": "10:25,90", "ChampLigue": "10:16,22", "ChallengeNat": "09:48,60", "FranceU18": "09:20,58", "OpenEte": "09:20,58", "FranceElite": "08:19,70"}, "1500 NL": {"Jaune": "20:50,00", "Vert": "20:12,50", "ChampLigue": "19:50,00", "ChallengeNat": "18:51,63", "FranceU18": "17:57,75", "OpenEte": "17:57,75", "FranceElite": "15:59,20"}, "50 Dos": {"Jaune": "00:37,08", "Vert": "00:35,87", "ChampLigue": "00:34,64", "ChallengeNat": "00:32,56", "FranceU18": "00:31,01", "OpenEte": "00:31,01", "FranceElite": "00:27,01"}, "100 Dos": {"Jaune": "01:20,82", "Vert": "01:17,73", "ChampLigue": "01:14,66", "ChallengeNat": "01:10,88", "FranceU18": "01:07,51", "OpenEte": "01:07,51", "FranceElite": "00:58,30"}, "200 Dos": {"Jaune": "02:54,40", "Vert": "02:46,97", "ChampLigue": "02:41,06", "ChallengeNat": "02:34,72", "FranceU18": "02:27,36", "OpenEte": "02:27,36", "FranceElite": "02:08,28"}, "50 Brasse": {"Jaune": "00:40,30", "Vert": "00:39,09", "ChampLigue": "00:37,89", "ChallengeNat": "00:36,08", "FranceU18": "00:34,37", "OpenEte": "00:34,37", "FranceElite": "00:29,65"}, "100 Brasse": {"Jaune": "01:29,26", "Vert": "01:26,58", "ChampLigue": "01:23,75", "ChallengeNat": "01:19,26", "FranceU18": "01:15,49", "OpenEte": "01:15,49", "FranceElite": "01:05,27"}, "200 Brasse": {"Jaune": "03:12,81", "Vert": "03:08,55", "ChampLigue": "03:01,74", "ChallengeNat": "02:53,67", "FranceU18": "02:45,40", "OpenEte": "02:45,40", "FranceElite": "02:24,24"}, "50 Pap": {"Jaune": "00:34,40", "Vert": "00:33,37", "ChampLigue": "00:31,83", "ChallengeNat": "00:30,12", "FranceU18": "00:28,69", "OpenEte": "00:28,69", "FranceElite": "00:25,09"}, "100 Pap": {"Jaune": "01:18,91", "Vert": "01:16,54", "ChampLigue": "01:13,17", "ChallengeNat": "01:07,77", "FranceU18": "01:04,55", "OpenEte": "01:04,55", "FranceElite": "00:55,79"}, "200 Pap": {"Jaune": "02:59,09", "Vert": "02:51,52", "ChampLigue": "02:44,48", "ChallengeNat": "02:34,90", "FranceU18": "02:27,53", "OpenEte": "02:27,53", "FranceElite": "02:07,42"}, "200 4N": {"Jaune": "02:47,85", "Vert": "02:42,81", "ChampLigue": "02:38,67", "ChallengeNat": "02:33,78", "FranceU18": "02:26,46", "OpenEte": "02:26,46", "FranceElite": "02:08,65"}, "400 4N": {"Jaune": "06:03,22", "Vert": "05:52,32", "ChampLigue": "05:41,48", "ChallengeNat": "05:25,29", "FranceU18": "05:09,80", "OpenEte": "05:09,80", "FranceElite": "04:34,71"}}, "U15": {"50 NL": {"Jaune": "00:28,59", "Vert": "00:28,19", "ChampLigue": "00:27,17", "ChallengeNat": "00:27,00", "FranceU18": "00:25,84", "OpenEte": "00:25,84", "FranceElite": "00:23,62"}, "100 NL": {"Jaune": "01:03,48", "Vert": "01:01,26", "ChampLigue": "00:59,77", "ChallengeNat": "00:58,93", "FranceU18": "00:56,40", "OpenEte": "00:56,40", "FranceElite": "00:51,45"}, "200 NL": {"Jaune": "02:22,79", "Vert": "02:16,17", "ChampLigue": "02:11,09", "ChallengeNat": "02:08,86", "FranceU18": "02:03,32", "OpenEte": "02:03,32", "FranceElite": "01:53,42"}, "400 NL": {"Jaune": "05:06,51", "Vert": "04:48,08", "ChampLigue": "04:41,51", "ChallengeNat": "04:30,83", "FranceU18": "04:19,17", "OpenEte": "04:19,17", "FranceElite": "04:00,52"}, "800 NL": {"Jaune": "10:29,30", "Vert": "09:54,47", "ChampLigue": "09:38,00", "ChallengeNat": "09:20,25", "FranceU18": "08:56,13", "OpenEte": "08:56,13", "FranceElite": "08:19,70"}
132, "1500 NL": {"Jaune": "19:54,59", "Vert": "19:32,89", "ChampLigue": "18:25,00", "ChallengeNat": "17:53,12", "FranceU18": "17:06,91", "OpenEte": "17:06,91", "FranceElite": "15:59,20"}, "50 Dos": {"Jaune": "00:34,07", "Vert": "00:33,52", "ChampLigue": "00:32,10", "ChallengeNat": "00:31,08", "FranceU18": "00:29,75", "OpenEte": "00:29,75", "FranceElite": "00:27,01"}, "100 Dos": {"Jaune": "01:14,76", "Vert": "01:11,37", "ChampLigue": "01:08,50", "ChallengeNat": "01:06,67", "FranceU18": "01:03,80", "OpenEte": "01:03,80", "FranceElite": "00:58,30"}, "200 Dos": {"Jaune": "02:44,16", "Vert": "02:34,79", "ChampLigue": "02:30,50", "ChallengeNat": "02:25,31", "FranceU18": "02:19,06", "OpenEte": "02:19,06", "FranceElite": "02:08,28"}, "50 Brasse": {"Jaune": "00:36,88", "Vert": "00:36,31", "ChampLigue": "00:34,60", "ChallengeNat": "00:33,90", "FranceU18": "00:32,44", "OpenEte": "00:32,44", "FranceElite": "00:29,65"}, "100 Brasse": {"Jaune": "01:22,35", "Vert": "01:20,28", "ChampLigue": "01:17,76", "ChallengeNat": "01:15,06", "FranceU18": "01:11,83", "OpenEte": "01:11,83", "FranceElite": "01:05,27"}, "200 Brasse": {"Jaune": "03:03,26", "Vert": "02:57,05", "ChampLigue": "02:48,63", "ChallengeNat": "02:43,48", "FranceU18": "02:36,44", "OpenEte": "02:36,44", "FranceElite": "02:24,24"}, "50 Pap": {"Jaune": "00:31,19", "Vert": "00:31,03", "ChampLigue": "00:29,34", "ChallengeNat": "00:28,81", "FranceU18": "00:27,57", "OpenEte": "00:27,57", "FranceElite": "00:25,09"}, "100 Pap": {"Jaune": "01:11,44", "Vert": "01:09,34", "ChampLigue": "01:05,59", "ChallengeNat": "01:04,45", "FranceU18": "01:01,68", "OpenEte": "01:01,68", "FranceElite": "00:55,79"}, "200 Pap": {"Jaune": "02:44,38", "Vert": "02:37,74", "ChampLigue": "02:30,37", "ChallengeNat": "02:24,15", "FranceU18": "02:17,95", "OpenEte": "02:17,95", "FranceElite": "02:07,42"}, "200 4N": {"Jaune": "02:42,97", "Vert": "02:34,72", "ChampLigue": "02:29,74", "ChallengeNat": "02:25,89", "FranceU18": "02:19,61", "OpenEte": "02:19,61", "FranceElite": "02:08,65"}, "400 4N": {"Jaune": "05:46,82", "Vert": "05:29,46", "ChampLigue": "05:19,15", "ChallengeNat": "05:10,49", "FranceU18": "04:57,12", "OpenEte": "04:57,12", "FranceElite": "04:34,71"}}, "U16": {"50 NL": {"Jaune": "00:27,80", "Vert": "00:27,41", "ChampLigue": "00:26,39", "ChallengeNat": "00:26,12", "FranceU18": "00:25,12", "OpenEte": "00:25,12", "FranceElite": "00:23,62"}, "100 NL": {"Jaune": "01:01,72", "Vert": "00:59,57", "ChampLigue": "00:58,03", "ChallengeNat": "00:56,93", "FranceU18": "00:54,74", "OpenEte": "00:54,74", "FranceElite": "00:51,45"}, "200 NL": {"Jaune": "02:18,84", "Vert": "02:12,40", "ChampLigue": "02:07,12", "ChallengeNat": "02:03,93", "FranceU18": "01:59,17", "OpenEte": "01:59,17", "FranceElite": "01:53,42"}, "400 NL": {"Jaune": "04:58,04", "Vert": "04:40,11", "ChampLigue": "04:32,71", "ChallengeNat": "04:23,22", "FranceU18": "04:13,10", "OpenEte": "04:13,10", "FranceElite": "04:00,52"}, "800 NL": {"Jaune": "10:11,90", "Vert": "09:38,03", "ChampLigue": "09:25,00", "ChallengeNat": "09:04,18", "FranceU18": "08:43,25", "OpenEte": "08:43,25", "FranceElite": "08:19,70"}, "1500 NL": {"Jaune": "19:21,56", "Vert": "19:00,46", "ChampLigue": "18:10,00", "ChallengeNat": "17:17,49", "FranceU18": "16:37,59", "OpenEte": "16:37,59", "FranceElite": "15:59,20"}, "50 Dos": {"Jaune": "00:33,13", "Vert": "00:32,59", "ChampLigue": "00:31,15", "ChallengeNat": "00:29,97", "FranceU18": "00:28,82", "OpenEte": "00:28,82", "FranceElite": "00:27,01"}, "100 Dos": {"Jaune": "01:12,69", "Vert": "01:09,40", "ChampLigue": "01:06,56", "ChallengeNat": "01:04,64", "FranceU18": "01:02,16", "OpenEte": "01:02,16", "FranceElite": "00:58,30"}, "200 Dos": {"Jaune": "02:39,62", "Vert": "02:30,51", "ChampLigue": "02:26,14", "ChallengeNat": "02:20,52", "FranceU18": "02:15,12", "OpenEte": "02:15,12", "FranceElite": "02:08,28"}, "50 Brasse": {"Jaune": "00:35,86", "Vert": "00:35,31", "ChampLigue": "00:33,58", "ChallengeNat": "00:32,72", "FranceU18": "00:31,47", "OpenEte": "00:31,47", "FranceElite": "00:29,65"}, "100 Brasse": {"Jaune": "01:20,07", "Vert": "01:18,06", "ChampLigue": "01:15,31", "ChallengeNat": "01:11,75", "FranceU18": "01:08,99", "OpenEte": "01:08,99", "FranceElite": "01:05,27"}, "200 Brasse": {"Jaune": "02:58,19", "Vert": "02:52,15", "ChampLigue": "02:43,14", "ChallengeNat": "02:35,66", "FranceU18": "02:29,68", "OpenEte": "02:29,68", "FranceElite": "02:24,24"}, "50 Pap": {"Jaune": "00:30,33", "Vert": "00:30,17", "ChampLigue": "00:28,47", "ChallengeNat": "00:27,78", "FranceU18": "00:26,72", "OpenEte": "00:26,72", "FranceElite": "00:25,09"}, "100 Pap": {"Jaune": "01:09,46", "Vert": "01:07,43", "ChampLigue": "01:03,46", "ChallengeNat": "01:01,83", "FranceU18": "00:59,46", "OpenEte": "00:59,46", "FranceElite": "00:55,79"}, "200 Pap": {"Jaune": "02:39,83", "Vert": "02:33,38", "ChampLigue": "02:26,21", "ChallengeNat": "02:20,16", "FranceU18": "02:14,77", "OpenEte": "02:14,77", "FranceElite": "02:07,42"}, "200 4N": {"Jaune": "02:38,46", "Vert": "02:30,44", "ChampLigue": "02:25,49", "ChallengeNat": "02:21,36", "FranceU18": "02:15,93", "OpenEte": "02:15,93", "FranceElite": "02:08,65"}, "400 4N": {"Jaune": "05:37,23", "Vert": "05:20,35", "ChampLigue": "05:07,25", "ChallengeNat": "04:49,63", "FranceU18": "04:48,11", "OpenEte": "04:48,11", "FranceElite": "04:34,71"}}, "U17": {"50 NL": {"Jaune": "00:27,35", "Vert": "00:26,97", "ChampLigue": "00:25,91", "ChallengeNat": "00:25,48", "FranceU18": "00:24,62", "OpenEte": "00:24,62", "FranceElite": "00:23,62"}, "100 NL": {"Jaune": "01:00,72", "Vert": "00:58,61", "ChampLigue": "00:56,95", "ChallengeNat": "00:55,45", "FranceU18": "00:53,58", "OpenEte": "00:53,58", "FranceElite": "00:51,45"}, "200 NL": {"Jaune": "02:16,60", "Vert": "02:10,27", "ChampLigue": "02:04,91", "ChallengeNat": "02:01,26", "FranceU18": "01:57,16", "OpenEte": "01:57,16", "FranceElite": "01:53,42"}, "400 NL": {"Jaune": "04:53,24", "Vert": "04:35,60", "ChampLigue": "04:27,26", "ChallengeNat": "04:14,73", "FranceU18": "04:06,12", "OpenEte": "04:06,12", "FranceElite": "04:00,52"}, "800 NL": {"Jaune": "10:02,05", "Vert": "09:28,72", "ChampLigue": "09:15,00", "ChallengeNat": "08:48,92", "FranceU18": "08:31,04", "OpenEte": "08:31,04", "FranceElite": "08:19,70"}, "1500 NL": {"Jaune": "19:02,84", "Vert": "18:42,08", "ChampLigue": "17:55,00", "ChallengeNat": "16:47,06", "FranceU18": "16:13,01", "OpenEte": "16:13,01", "FranceElite": "15:59,20"}, "50 Dos": {"Jaune": "00:32,59", "Vert": "00:32,06", "ChampLigue": "00:30,55", "ChallengeNat": "00:29,06", "FranceU18": "00:28,08", "OpenEte": "00:28,08", "FranceElite": "00:27,01"}, "100 Dos": {"Jaune": "01:11,52", "Vert": "01:08,28", "ChampLigue": "01:05,30", "ChallengeNat": "01:02,82", "FranceU18": "01:00,70", "OpenEte": "01:00,70", "FranceElite": "00:58,30"}, "200 Dos": {"Jaune": "02:37,05", "Vert": "02:28,08", "ChampLigue": "02:23,29", "ChallengeNat": "02:16,29", "FranceU18": "02:11,69", "OpenEte": "02:11,69", "FranceElite": "02:08,28"}, "50 Brasse": {"Jaune": "00:35,28", "Vert": "00:34,74", "ChampLigue": "00:32,96", "ChallengeNat": "00:31,86", "FranceU18": "00:30,79", "OpenEte": "00:30,79", "FranceElite": "00:29,65"}, "100 Brasse": {"Jaune": "01:18,78", "Vert": "01:16,80", "ChampLigue": "01:13,85", "ChallengeNat": "01:09,62", "FranceU18": "01:07,27", "OpenEte": "01:07,27", "FranceElite": "01:05,27"}, "200 Brasse": {"Jaune": "02:55,32", "Vert": "02:49,38", "ChampLigue": "02:40,35", "ChallengeNat": "02:32,48", "FranceU18": "02:27,33", "OpenEte": "02:27,33", "FranceElite": "02:24,24"}, "50 Pap": {"Jaune": "00:29,84", "Vert": "00:29,69", "ChampLigue": "00:27,91", "ChallengeNat": "00:26,96", "FranceU18": "00:26,05", "OpenEte": "00:26,05", "FranceElite": "00:25,09"}, "100 Pap": {"Jaune": "01:08,34", "Vert": "01:06,34", "ChampLigue": "01:02,39", "ChallengeNat": "01:00,22", "FranceU18": "00:58,19", "OpenEte": "00:58,19", "FranceElite": "00:55,79"}, "200 Pap": {"Jaune": "02:37,26", "Vert": "02:30,90", "ChampLigue": "02:23,44", "ChallengeNat": "02:16,24", "FranceU18": "02:11,64", "OpenEte": "02:11,64", "FranceElite": "02:07,42"}, "200 4N": {"Jaune": "02:35,91", "Vert": "02:28,02", "ChampLigue": "02:22,68", "ChallengeNat": "02:17,25", "FranceU18": "02:12,61", "OpenEte": "02:12,61", "FranceElite": "02:08,65"}, "400 4N": {"Jaune": "05:31,80", "Vert": "05:15,19", "ChampLigue": "05:04,20", "ChallengeNat": "04:52,58", "FranceU18": "04:42,69", "OpenEte": "04:42,69", "FranceElite": "04:34,71"}}, "U18": {"50 NL": {"Jaune": "00:26,98", "Vert": "00:26,60", "ChampLigue": "00:25,48", "ChallengeNat": "00:24,84", "FranceU18": "00:24,12", "OpenEte": "00:24,12", "FranceElite": "00:23,62"}, "100 NL": {"Jaune": "00:59,90", "Vert": "00:57,82", "ChampLigue": "00:56,12", "ChallengeNat": "00:54,42", "FranceU18": "00:52,84", "OpenEte": "00:52,84", "FranceElite": "00:51,45"}, "200 NL": {"Jaune": "02:14,76", "Vert": "02:08,51", "ChampLigue": "02:03,05", "ChallengeNat": "01:58,94", "FranceU18": "01:55,48", "OpenEte": "01:55,48", "FranceElite": "01:53,42"}, "400 NL": {"Jaune": "04:49,28", "Vert": "04:31,88", "ChampLigue": "04:23,30", "ChallengeNat": "04:09,85", "FranceU18": "04:02,58", "OpenEte": "04:02,58", "FranceElite": "04:00,52"}, "800 NL": {"Jaune": "09:53,90", "Vert": "09:21,05", "ChampLigue": "09:10,00", "ChallengeNat": "08:40,26", "FranceU18": "08:25,11", "OpenEte": "08:25,11", "FranceElite": "08:19,70"}, "1500 NL": {"Jaune": "18:47,42", "Vert": "18:26,94", "ChampLigue": "17:45,00", "ChallengeNat": "16:30,90", "FranceU18": "16:02,04", "OpenEte": "16:02,04", "FranceElite": "15:59,20"}, "50 Dos": {"Jaune": "00:32,15", "Vert": "00:31,63", "ChampLigue": "00:30,10", "ChallengeNat": "00:28,52", "FranceU18": "00:27,69", "OpenEte": "00:27,69", "FranceElite": "00:27,01"}, "100 Dos": {"Jaune": "01:10,55", "Vert": "01:07,36", "ChampLigue": "01:04,30", "ChallengeNat": "01:01,49", "FranceU18": "00:59,70", "OpenEte": "00:59,70", "FranceElite": "00:58,30"}, "200 Dos": {"Jaune": "02:34,93", "Vert": "02:26,08", "ChampLigue": "02:21,39", "ChallengeNat": "02:14,55", "FranceU18": "02:10,64", "OpenEte": "02:10,64", "FranceElite": "02:08,28"}, "50 Brasse": {"Jaune": "00:34,81", "Vert": "00:34,27", "ChampLigue": "00:32,40", "ChallengeNat": "00:31,00", "FranceU18": "00:30,10", "OpenEte": "00:30,10", "FranceElite": "00:29,65"}, "100 Brasse": {"Jaune": "01:17,72", "Vert": "01:15,77", "ChampLigue": "01:12,76", "ChallengeNat": "01:08,33", "FranceU18": "01:06,34", "OpenEte": "01:06,34", "FranceElite": "01:05,27"}, "200 Brasse": {"Jaune": "02:52,95", "Vert": "02:47,10", "ChampLigue": "02:38,33", "ChallengeNat": "02:31,01", "FranceU18": "02:26,62", "OpenEte": "02:26,62", "FranceElite": "02:24,24"}, "50 Pap": {"Jaune": "00:29,44", "Vert": "00:29,29", "ChampLigue": "00:27,46", "ChallengeNat": "00:26,31", "FranceU18": "00:25,55", "OpenEte": "00:25,55", "FranceElite": "00:25,09"}, "100 Pap": {"Jaune": "01:07,42", "Vert": "01:05,44", "ChampLigue": "01:01,41", "ChallengeNat": "00:58,85", "FranceU18": "00:57,14", "OpenEte": "00:57,14", "FranceElite": "00:55,79"}, "200 Pap": {"Jaune": "02:35,14", "Vert": "02:28,87", "ChampLigue": "02:21,23", "ChallengeNat": "02:13,32", "FranceU18": "02:09,44", "OpenEte": "02:09,44", "FranceElite": "02:07,42"}, "200 4N": {"Jaune": "02:33,80", "Vert": "02:26,02", "ChampLigue": "02:20,51", "ChallengeNat": "02:14,41", "FranceU18": "02:10,50", "OpenEte": "02:10,50", "FranceElite": "02:08,65"}, "400 4N": {"Jaune": "05:27,32", "Vert": "05:10,94", "ChampLigue": "04:59,80", "ChallengeNat": "04:47,44", "FranceU18": "04:39,07", "OpenEte": "04:39,07", "FranceElite": "04:34,71"}}, "19+": {"50 NL": {"Jaune": "00:26,35", "Vert": "00:25,98", "ChampLigue": "00:24,77", "ChallengeNat": "00:24,44", "FranceElite": "00:23,62"}, "100 NL": {"Jaune": "00:58,50", "Vert": "00:56,46", "ChampLigue": "00:54,56", "ChallengeNat": "00:53,25", "FranceElite": "00:51,45"}, "200 NL": {"Jaune": "02:11,60", "Vert": "02:05,50", "ChampLigue": "02:00,47", "ChallengeNat": "01:57,39", "FranceElite": "01:53,42"}, "400 NL": {"Jaune": "04:42,50", "Vert": "04:25,51", "ChampLigue": "04:18,36", "ChallengeNat": "04:08,94", "FranceElite": "04:00,52"}, "800 NL": {"Jaune": "09:40,00", "Vert": "09:07,90", "ChampLigue": "08:55,00", "ChallengeNat": "08:37,19", "FranceElite": "08:19,70"}, "1500 NL": {"Jaune": "18:21,00", "Vert": "18:01,00", "ChampLigue": "17:35,00", "ChallengeNat": "16:32,77", "FranceElite": "15:59,20"}, "50 Dos": {"Jaune": "00:31,40", "Vert": "00:30,89", "ChampLigue": "00:29,17", "ChallengeNat": "00:27,96", "FranceElite": "00:27,01"}, "100 Dos": {"Jaune": "01:08,90", "Vert": "01:05,78", "ChampLigue": "01:02,86", "ChallengeNat": "01:00,34", "FranceElite": "00:58,30"}, "200 Dos": {"Jaune": "02:31,30", "Vert": "02:22,66", "ChampLigue": "02:18,42", "ChallengeNat": "02:12,77", "FranceElite": "02:08,28"}, "50 Brasse": {"Jaune": "00:33,99", "Vert": "00:33,47", "ChampLigue": "00:31,57", "ChallengeNat": "00:30,69", "FranceElite": "00:29,65"}, "100 Brasse": {"Jaune": "01:15,90", "Vert": "01:13,99", "ChampLigue": "01:11,26", "ChallengeNat": "01:07,56", "FranceElite": "01:05,27"}, "200 Brasse": {"Jaune": "02:48,90", "Vert": "02:43,18", "ChampLigue": "02:35,07", "ChallengeNat": "02:29,28", "FranceElite": "02:24,24"}, "50 Pap": {"Jaune": "00:28,75", "Vert": "00:28,60", "ChampLigue": "00:26,58", "ChallengeNat": "00:25,96", "FranceElite": "00:25,09"}, "100 Pap": {"Jaune": "01:05,84", "Vert": "01:03,91", "ChampLigue": "00:59,66", "ChallengeNat": "00:57,75", "FranceElite": "00:55,79"}, "200 Pap": {"Jaune": "02:31,50", "Vert": "02:25,38", "ChampLigue": "02:18,34", "ChallengeNat": "02:11,88", "FranceElite": "02:07,42"}, "200 4N": {"Jaune": "02:30,20", "Vert": "02:22,60", "ChampLigue": "02:17,69", "ChallengeNat": "02:13,15", "FranceElite": "02:08,65"}, "400 4N": {"Jaune": "05:19,65", "Vert": "05:03,65", "ChampLigue": "04:53,68", "ChallengeNat": "04:44,33", "FranceElite": "04:34,71"}}}}}}}; 133QDB.grids.France_U13_2026={"cats": ["U12(2014)", "U13(2013)"], "events": ["50 NL", "100 NL", "200 NL", "400 NL", "800 NL", "1500 NL", "50 Dos", "100 Dos", "200 Dos", "50 Brasse", "100 Brasse", "200 Brasse", "50 Pap", "100 Pap", "200 Pap", "200 4N", "400 4N"], "source": "FFN France U13 25m (id338) â 26_VPUB_260907 p.41", "FILLES": {"50 NL": {"50m": ["x", "x"], "25m": ["00:30,54", "00:29,05"]}, "100 NL": {"50m": ["x", "x"], "25m": ["01:07,22", "01:04,18"]}, "200 NL": {"50m": ["x", "x"], "25m": ["02:27,99", "02:21,42"]}, "400 NL": {"50m": ["x", "x"], "25m": ["05:06,06", "04:55,76"]}, "800 NL": {"50m": ["x", "x"], "25m": ["x", "10:21,29"]}, "1500 NL": {"50m": ["x", "x"], "25m": ["x", "x"]}, "50 Dos": {"50m": ["x", "x"], "25m": ["00:35,56", "00:33,66"]}, "100 Dos": {"50m": ["x", "x"], "25m": ["01:18,11", "01:14,34"]}, "200 Dos": {"50m": ["x", "x"], "25m": ["02:44,48", "02:39,60"]}, "50 Brasse": {"50m": ["x", "x"], "25m": ["00:39,78", "00:38,29"]}, "100 Brasse": {"50m": ["x", "x"], "25m": ["01:27,49", "01:24,63"]}, "200 Brasse": {"50m": ["x", "x"], "25m": ["03:06,75", "02:58,78"]}, "50 Pap": {"50m": ["x", "x"], "25m": ["00:33,49", "00:31,38"]}, "100 Pap": {"50m": ["x", "x"], "25m": ["01:17,77", "01:13,61"]}, "200 Pap": {"50m": ["x", "x"], "25m": ["x", "02:53,49"]}, "200 4N": {"50m": ["x", "x"], "25m": ["02:48,12", "02:42,21"]}, "400 4N": {"50m": ["x", "x"], "25m": ["x", "05:42,55"]}}, "GARÃONS": {"50 NL": {"50m": ["x", "x"], "25m": ["00:29,36", "00:27,75"]}, "100 NL": {"50m": ["x", "x"], "25m": ["01:04,94", "01:01,79"]}, "200 NL": {"50m": ["x", "x"], "25m": ["02:23,69", "02:17,05"]}, "400 NL": {"50m": ["x", "x"], "25m": ["04:54,42", "04:44,83"]}, "800 NL": {"50m": ["x", "x"], "25m": ["x", "09:54,39"]}, "1500 NL": {"50m": ["x", "x"], "25m": ["x", "x"]}, "50 Dos": {"50m": ["x", "x"], "25m": ["00:34,10", "00:32,07"]}, "100 Dos": {"50m": ["x", "x"], "25m": ["01:14,26", "01:09,72"]}, "200 Dos": {"50m": ["x", "x"], "25m": ["02:39,84", "02:29,82"]}, "50 Brasse": {"50m": ["x", "x"], "25m": ["00:39,35", "00:35,86"]}, "100 Brasse": {"50m": ["x", "x"], "25m": ["01:26,28", "01:20,80"]}, "200 Brasse": {"50m": ["x", "x"], "25m": ["03:04,48", "02:52,94"]}, "50 Pap": {"50m": ["x", "x"], "25m": ["00:32,14", "00:30,48"]}, "100 Pap": {"50m": ["x", "x"], "25m": ["01:16,55", "01:10,84"]}, "200 Pap": {"50m": ["x", "x"], "25m": ["x", "02:47,58"]}, "200 4N": {"50m": ["x", "x"], "25m": ["02:42,39", "02:33,51"]}, "400 4N": {"50m": ["x", "x"], "25m": ["x", "05:25,72"]}}}; 134const QEV=["50 NL","100 NL","200
134NL","400 NL","800 NL","1500 NL","50 Dos","100 Dos","200 Dos","50 Brasse","100 Brasse","200 Brasse","50 Pap","100 Pap","200 Pap","200 4N","400 4N"]; 135const QSX13={DAMES:"FILLES",MESSIEURS:"GARÃONS"}; 136function qcat(y){y=+y;if(y>=2015)return{type:"avenir"};if(y===2014)return{type:"u13",idx:0};if(y===2013)return{type:"u13",idx:1};var m={2012:["U14",5],2011:["U15",4],2010:["U16",3],2009:["U17",2],2008:["U18",1]};if(m[y])return{type:"jun",cat:m[y][0],idx:m[y][1]};return{type:"jun",cat:"19+",idx:0};} 137function qsec(t){if(!t||t==='x')return null;var m=/^(?:(\d+):)?(\d{1,2})[.,](\d{1,2})$/.exec(String(t).trim());if(!m)return null;return (+(m[1]||0))*60 + +m[2] + (+((m[3]+'0').slice(0,2)))/100;} 138function qlevels(sx,c,ev,basin){ 139 if(c.type==='u13'){var out=[];var g=QDB.grids.U13_WebConfrontation_2026[QSX13[sx]][ev];if(g&&g[basin])out.push({key:'u13',thr:qsec(g[basin][c.idx])});var GF=QDB.grids.France_U13_2026;var gf=GF&&GF[QSX13[sx]]&&GF[QSX13[sx]][ev];if(gf&&gf[basin])out.push({key:'fru13',thr:qsec(gf[basin][c.idx])});return out;} 140 if(c.type==='jun'){if(basin==='25m'){var L=[['Jaune','jaune'],['Vert','vert'],['Bleu_ChampLigue','bleu']];return L.map(function(p){var g=QDB.grids.Juniors_et_plus[sx][p[0]][ev];return{key:p[1],thr:g&&g['25m']?qsec(g['25m'][c.idx]):null};});} 141 var row=QDB.grids.Vers_Nationales.data[sx][c.cat][ev];if(!row)return[];var L=[['Jaune','jaune'],['Vert','vert'],['ChampLigue','bleu'],['ChallengeNat','chalnat'],['FranceU18','fru18'],['FranceElite','frelite']];return L.map(function(p){return{key:p[1],thr:qsec(row[p[0]])};});} 142 return[];} 143function qreached(sx,year,b25,b50){var c=qcat(year);var set={};if(c.type==='avenir')return{cat:c,set:set}; 144 QEV.forEach(function(ev){['25m','50m'].forEach(function(basin){var t=basin==='25m'?(b25&&b25[ev]):(b50&&b50[ev]);var ts=qsec(t);if(ts==null)return;var lv=qlevels(sx,c,ev,basin);for(var i=0;i<lv.length;i++){if(lv[i].thr!=null&&ts<=lv[i].thr)set[lv[i].key]=1;}});});return{cat:c,set:set};} 145function qcompLevel(title){var t=(title||'').toLowerCase(); 146 if(/coupe de france des départ/.test(t))return null; 147 if(/championnats? de france u12-?u13|championnats? de france u13/.test(t))return 'fru13'; 148 if(/meeting d[ée]partemental u12 ?& ?u13/.test(t))return 'fru13'; 149 if(/u12.?-.?u13|u12 ?& ?u13|finalité ligue.*u1[23]/.test(t))return 'u13'; 150 if(/u18/.test(t))return 'fru18'; 151 if(/open d.?été|open d.?ete/.test(t))return 'fru18'; 152 if(/élite|elite/.test(t))return 'frelite'; 153 if(/challenge national/.test(t))return 'chalnat'; 154 if(/meeting.*jaune/.test(t))return 'jaune'; 155 if(/meeting.*vert/.test(t))return 'vert'; 156 if(/championnats? ligue|champ.*ligue|webconfrontation.*ligue|ligue aur?a (hiver|printemps|été|ete)/.test(t))return 'bleu'; 157 return null;} 158var NL_SET=null, NL_NAME=null, NL_CAT=null, NL_SELS=[], NL_SELEVTS=[]; 159function nlEsc(s){return (s||'').replace(/[&<>"]/g,function(c){return {'&':'&','<':'<','>':'>','"':'"'}[c];});} 160function nlBtn(){return document.getElementById('nlogin-btn');} 161function nlOpen(){renderModal();document.getElementById('nlogin-modal').classList.add('on');} 162function nlClose(){document.getElementById('nlogin-modal').classList.remove('on');} 163function renderModal(){var b=document.getElementById('nl-body'); 164 if(NL_NAME){var _cc='';try{_cc=localStorage.getItem('cal_ncode')||'';}catch(e){}var _lnk='https://coachfrancois-espace-nageur.pages.dev/'+(_cc?'#c='+encodeURIComponent(_cc):'');var _hasQ=false;try{_hasQ=!!(window.NL_SET&&Object.keys(NL_SET).length);}catch(e){}var _hasT=false;try{_hasT=!!window.NL_HASTRAIN;}catch(e){} 165b.innerHTML='<h3>ð¤ '+nlEsc(NL_NAME)+'</h3><p>Ton calendrier est personnalisé : ta catégorie est affichée et tes qualifications sont marquées (indicatif).</p>' 166 +(window.inscrConvocPanel?window.inscrConvocPanel():'') 167 +(window.inscrStagesPanel?window.inscrStagesPanel():'') 168 +'<div class="nl-steps"><b>ð Sâinscrire à une compétition</b><ol>' 169 +'<li><b>Le plus simple</b> : dans <b>ð£ Tes convocations</b> ci-dessus, clique sur la compétition â ta fiche dâinscription sâouvre <b>directement</b>.</li>' 170 +'<li>Sinon, <b>consulte régulièrement le calendrier</b> pour voir les compétitions à venir : repère un évènement avec le bouton vert <b>ð Sâinscrire</b> et clique dessus.</li>' 171 +'<li>Remplis le formulaire : nageur(s), participation, transport, repasâ¦</li>' 172 +'<li>Termine par <b>Envoyer lâinscription</b> â tu peux recevoir un reçu par e-mail.</li>' 173 +'<li>Une correction ? Renvoie simplement le formulaire, ton inscription est mise à jour.</li>' 174 +'</ol></div>' 175 +(_hasQ?('<a class="nl-lnk" href="'+_lnk+'" target="_blank" rel="noopener">Voir mes qualifications détaillées â</a>'):'')
176 +(_hasT?('<a class="nl-lnk" href="https://coachfrancois-mes-entrainements.pages.dev/'+(_cc?'#c='+encodeURIComponent(_cc):'')+'" target="_blank" rel="noopener">ð Mes entraînements â</a>'):'') 177 +'<div><button class="nl-btn nl-out" onclick="nlLogout()">Se déconnecter</button></div>';} 178 else{b.innerHTML='<h3>ð Espace nageur</h3><p>Saisis ton code d\'accès (remis par ton coach) pour personnaliser ton calendrier.</p>' 179 +'<input id="nl-code" placeholder="Ton code (ex : 1234567-Ab3xK9)" autocomplete="off">' 180 +'<div><button class="nl-btn" onclick="nlLogin()">Me connecter</button></div><div id="nl-status" class="nl-status"></div>'; 181 setTimeout(function(){var i=document.getElementById('nl-code');if(i){i.focus();i.addEventListener('keydown',function(e){if(e.key==='Enter')nlLogin();});}},60);}} 182async function nlLogin(){var code=(document.getElementById('nl-code').value||'').trim();var st=document.getElementById('nl-status'); 183 if(!code){st.textContent='Saisis ton code.';st.className='nl-status err';return;} 184 st.textContent='Connexionâ¦';st.className='nl-status'; 185 try{var r=await fetch(QWORKER+'/?code='+encodeURIComponent(code));var d=await r.json(); 186 if(!d.ok){ 187 try{var rc=await fetch(QWORKER+'/calendar?auth='+encodeURIComponent(code));var dc=await rc.json(); 188 if(dc&&dc.ok&&dc.coach){CAL_COACH=code;try{localStorage.setItem('cal_coach',code);}catch(e){}coachOpen();return;}}catch(e){} 189 st.textContent=d.error||'Code invalide.';st.className='nl-status err';return;} 190 try{localStorage.setItem('cal_ncode',code);}catch(e){}applyNageur(d);nlClose(); 191 }catch(e){st.textContent='Service indisponible, réessaie.';st.className='nl-status err';}} 192function nlLogout(){try{localStorage.removeItem('cal_ncode');}catch(e){}NL_SET=null;NL_NAME=null;clearMarks();NL_SELS=[];NL_SELEVTS=[];markSelections();if(nlBtn())nlBtn().textContent='ð Espace nageur â me connecter';var y=document.getElementById('year');if(y){y.value='';if(typeof fltYear==='function')fltYear('');}nlClose();} 193function applyNageur(d){NL_NAME=d.nom||'Nageur';if(nlBtn())nlBtn().textContent='ð¤ '+NL_NAME; 194 var rr=qreached(d.sexe,d.annee,d.b25,d.b50);NL_SET=rr.set;NL_CAT=rr.cat; 195 var y=document.getElementById('year'); 196 if(d.annee&&y&&[].some.call(y.options,function(o){return +o.value===+d.annee;})){y.value=d.annee;if(typeof fltYear==='function')fltYear(String(d.annee));} 197 else{var ck=({avenir:'av',u13:'benj',jun:'jun'})[rr.cat.type]||'jun';if(typeof flt==='function')flt(ck);} 198 NL_SELS=d.selections||[];NL_SELEVTS=d.selEvents||[];try{window.NL_HASTRAIN=!!(d&&d.trainings&&d.trainings.length);}catch(e){}markComps();markSelections();} 199function clearMarks(){document.querySelectorAll('.qbadge').forEach(function(e){e.remove();});} 200function markComps(){if(!NL_SET||!NL_CAT)return;clearMarks();var REL=({avenir:[],u13:['u13','fru13'],jun:['jaune','vert','bleu','chalnat','fru18','frelite']})[NL_CAT.type]||[];document.querySelectorAll('tr.ev').forEach(function(tr){var lvl=qcompLevel(tr.getAttribute('data-title')||'');if(!lvl||REL.indexOf(lvl)<0)return;var cell=tr.querySelectorAll('td')[2];if(!cell)return;var ok=!!NL_SET[lvl];var s=document.createElement('span');s.className='qbadge '+(ok?'qok':'qaim');s.textContent=ok?'â Qualifié(e)':'sur qualification';cell.appendChild(s);});} 201function frDate(iso){if(!iso)return'';var p=iso.split('-');return p[2]+'/'+p[1]+'/'+p[0];}function markSelections(){document.querySelectorAll('.selbadge,.selno').forEach(function(e){e.remove();});var bn=document.getElementById('selbanner');if(bn){bn.classList.remove('on');bn.innerHTML='';}var sels=NL_SELS||[],evs=NL_SELEVTS||[];if(!sels.length&&!evs.length)return;var names=[];document.querySelectorAll('tr.ev').forEach(function(tr){var id=String(tr.dataset.id);var isSel=sels.indexOf(id)>=0;var isEv=evs.indexOf(id)>=0;if(!isSel&&!isEv)return;var cell=tr.querySelectorAll('td')[2];if(!cell)return;var s=document.createElement('span');if(isSel){s.className='selbadge';s.textContent='â sélectionné(e)';names.push((tr.dataset.title||'')+(tr.dataset.date?' ('+frDate(tr.dataset.date)+')':''));}else{s.className='selno';s.textContent='sur sélection';}cell.appendChild(s);});if(bn&&names.length){bn.innerHTML='â Tu es sélectionné(e) pour : '+names.map(nlEsc).join(' · ');
201bn.classList.add('on');}}(function(){var c='';try{c=localStorage.getItem('cal_ncode')||'';}catch(e){}if(c){fetch(QWORKER+'/?code='+encodeURIComponent(c)).then(function(r){return r.json();}).then(function(d){if(d&&d.ok)applyNageur(d);}).catch(function(){});}})(); 202</script>
vendor: 1 bytes, line 202
202
203<script> 204/* CNBV calendrier en ligne â généré 2026-08-01 */ 205var CAL_SEED=[{"type":"mois","label":"SEPTEMBRE 2026"},{"type":"ev","id":"1","cats":["club"],"club":1,"period":"2026","date":"2026-09-01","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Rentrée du CNBV","lieu":"BELLEGARDE (ValséO)","bassin":"","color":"#FCE4D6","dateText":"Mardi 01","program":""},{"type":"ev","id":"2","cats":["club"],"club":1,"period":"2026","date":"2026-09-02","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Journée de test entrée au CNBV","lieu":"BELLEGARDE","bassin":"","color":"#FCE4D6","dateText":"Mercredi 02","program":""},{"type":"ev","id":"3","cats":["club"],"club":1,"period":"2026","date":"2026-09-06","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Journée Portes Ouvertes (JPO) ValséO","lieu":"BELLEGARDE","bassin":"","color":"#FCE4D6","dateText":"Dimanche 06 (matin)","program":""},{"type":"ev","id":"4","cats":["club"],"club":1,"period":"2026","date":"2026-09-26","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Soirée Faluches Jéjé aux berges du Rhône","lieu":"BELLEGARDE","bassin":"","color":"#FCE4D6","dateText":"Samedi 26","program":""},{"type":"ev","id":"5","cats":["club"],"club":1,"period":"2026","date":"2026-09-30","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Journée de test entrée au CNBV","lieu":"BELLEGARDE","bassin":"","color":"#FCE4D6","dateText":"Mercredi 30","program":""},{"type":"mois","label":"OCTOBRE 2026"},{"type":"ev","id":"6","cats":["enf","av"],"club":0,"period":"2026","date":"2026-10-03","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Regroupement U11 et moins","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#ffffff","dateText":"Samedi 03 (matin)","program":""},{"type":"ev","id":"7","cats":["enf","av"],"club":0,"period":"2026","date":"2026-10-03","op":"14:00","dur":"3.75","comp":1,"handi":0,"home":1,"title":"Circuit Avenirs Plot 4","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#ffffff","dateText":"Samedi 03 (après-midi)","program":"<div class=\"progbox\"><b>Circuit Avenirs â Plot n°4 (U11 et moins)</b> · Bassin 25 m (8 lignes) · une réunion · échauffement 14hâ15h.<br><u>Ãpreuves</u> (D & M) : 100 4N · 200 4N · 50 Pap · 100 Pap · 50 NL · 100 NL · 50 Brasse · 100 Brasse · 50 Dos · 100 Dos · <b>Relais mixte 4Ã50 4 Nages</b> (2F+2G).<br><u>Règlement</u> : règle des deux départs · 4 courses max/nageur (hors relais) · toutes années d'âge confondues, D/M séparés · SNS obligatoire.<br><u>Récompenses</u> : médailles aux 3 premiers au cumul des 4 meilleures perfs â classements distincts Avenirs 1 (2015) / 2 (2016) / 3 (2017 & après) ; 3 premiers relais.<br><u>Défis</u> : 1er 100 4N (Avenirs 2 & 3) · 1er 200 4N (Avenirs 1).</div>"},{"type":"ev","id":"8","cats":["benj"],"club":0,"period":"2026","date":"2026-10-03","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Regroupement U12 & U13","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#ffffff","dateText":"Samedi 03","program":""},{"type":"ev","id":"9","cats":[],"club":0,"period":"2026","date":"2026-10-10","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Assemblée générale de l'Ain","lieu":"BELLEY","bassin":"","color":"#ffffff","dateText":"Samedi 10","program":""},{"type":"ev","id":"10","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2026","date":"2026-10-10","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"Kilomètre nagé forum santé CNBV - entrée gratuite","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#FCE4D6","dateText":"Samedi 10 (matin)","program":""},{"type":"ev","id":"11","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2026","date":"2026-10-10","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"Forum santé 9h-18h Salle Etournelles - entrée gratuite","lieu":"VALSERHÃNE","bassin":"","color":"#FCE4D6","dateText":"Samedi 10","program":""},{"type": "ev", "id": "12", "cats": ["benj", "jun"], "club": 0, "period": "2026", "date": "2026-10-11", "op": "", "dur": "3.75", "comp": 1, "handi": 0, "home": 0, "title": "Meeting de rentrée (U12 et +)", "lieu": "OYONNAX", "bassin": "25m", "color": "#ffffff", "dateText": "Dimanche 11", "program": "<div class=\"progbox\"><b>Meeting de rentrée â U12 et +</b> · Oyonnax · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : Relais 4Ã50 NL · 800 NL · 100 Dos · 50 Brasse · 200 Pap · 400 4N · 50 Pap · 100 NL · 200 Brasse · 200 NL.<br><u>R2</u> (éch. 14h) : 1500 NL · 100 4N · 50 NL · 100 Brasse · 200 4N · 50 Dos · 400 NL · 100 Pap · 200 Dos · Relais 4Ã100 4N.<br>Qualificative meetings Ligue (grilles jaune/verte/bleue, 25 m). 1 seul départ par course.</div>"},{"type": "ev", "id": "75", "cats": ["benj", "jun"], "club": 0, "period": "2026", "date": "2026-10-11", "op": "", "dur": "3.75", "comp": 1, "handi": 0, "home": 0, "title": "Interclubs U15 (équipes de 4 · nés 2012 & 2011)", "lieu": "OYONNAX", "bassin": "25m", "color": "#ffffff", "dateText": "Dimanche 11", "program": "<div class=\"progbox\"><b>Interclubs U15</b> (équipes de 4 · nés 2012 & 2011) · Oyonnax · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : Relais 4Ã50 NL · 50 Brasse · 50 Pap.<br><u>R2</u> (éch. 14h) : 50 NL · 50 Dos · Relais 4Ã100 4N.<br>Toutes catégories · équipes de 4 non mixtes · Règlement FFN p.85â87 · 4 épreuves indiv. + 2 relais · règle des deux départs.</div>"},{"type":"ev","id":"13","cats":[],"club":0,"period":"2026","date":"2026-10-17","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Assemblée générale Ligue AuRa","lieu":"BELLEVILLE-EN-BEAUJOLAIS","bassin":"","color":"#ffffff","dateText":"Samedi 17","program":""},{"type":"ev","id":"14","cats":["handi"],"club":0,"period":"2026","date":"2026-10-18","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Plot 1 du C.N.C. Handisport","lieu":"VALENCE","bassin":"25m","color":"#ffffff","dateText":"Dimanche 18","program":""},{"type":"ev","id":"15","cats":["jun"],"club":0,"period":"2026","date":"2026-10-22","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"France Elite (petit bassin)","lieu":"ANGERS","bassin":"","color":"#ffffff","dateText":"Jeudi 22 au dimanche 25","program":"<div class=\"progbox\"><b>
205Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"ev","id":"16","cats":["enf","av","benj","jun","mai","handi"],"club":0,"period":"2026","date":"2026-10-17","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Vacances de la Toussaint 2026 : samedi 17 octobre au dimanche 01 novembre inclus","lieu":"Vacances de la Toussaint 2026 : samedi 17 octobre au dimanche 01 novembre inclus","bassin":"Vacances de la Toussaint 2026 : samedi 17 octobre au dimanche 01 novembre inclus","color":"#ffffff","dateText":"Vacances de la Toussaint 2026 : samedi 17 octobre au dimanche 01 novembre inclus","program":""},{"type":"ev","id":"17","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2026","date":"2026-10-17","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"Arrêt Technique Fermeture ValséO","lieu":"BELLEGARDE","bassin":"25m","color":"#FCE4D6","dateText":"Samedi 17 au dimanche 25","program":""},{"type":"ev","id":"18","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2026","date":"2026-10-26","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"STAGES CNBV","lieu":"BELLEGARDE","bassin":"25m","color":"#FCE4D6","dateText":"Lundi 26 au vendredi 30","program":""},{"type":"mois","label":"NOVEMBRE 2026"},{"type":"ev","id":"19","cats":["av","benj","jun","mai"],"club":0,"period":"2026","date":"2026-11-07","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Interclubs Finale TC Ligue AuRa","lieu":"VILLEFRANCHE-EN-BEAUJOLAIS","bassin":"25m","color":"#ffffff","dateText":"Samedi 07","program":"<div class=\"progbox\"><b>Interclubs Toutes Catégories</b>.<br><i>Programme et compo d'équipe : à venir.</i></div>"},{"type":"ev","id":"20","cats":["benj","jun","mai"],"club":0,"period":"2026","date":"2026-11-08","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Interclubs départementaux TC","lieu":"BOURG","bassin":"25m","color":"#ffffff","dateText":"Dimanche 08","program":"<div class=\"progbox\"><b>Interclubs départementaux TC (Toutes Catégories)</b> · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : 10Ã50 NL (D+M) · 100 Dos D / 200 Dos M · 100 Brasse D / 200 Brasse M · 100 NL D / 400 NL M · 100 Pap D / 200 Pap M · 100 4N D / 200 4N M · (pause) 4Ã200 NL Dames.<br><u>R2</u> (éch. 14h) : 4Ã200 NL M · 200 Dos D / 100 Dos M · 200 Brasse D / 100 Brasse M · 400 NL D / 100 NL M · 200 Pap D / 100 Pap M · 200 4N D / 100 4N M · (pause) 4Ã100 4N (D & M).<br>Règlement FFN p.88â93 · toute l'équipe fait le programme pour être classée · avenirs : SNS + licence Nat. Course · classements Dames et Messieurs · qualificative meetings Ligue · règle des deux départs.</div>"},{"type":"ev","id":"21","cats":["benj"],"club":0,"period":"2026","date":"2026-11-22","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Meeting départemental U12 & U13","lieu":"FERNEY","bassin":"25m","color":"#ffffff","dateText":"Dimanche 22","program":"<div class=\"progbox\"><b>Meeting départemental U12 & U13</b> · Ferney · Bassin 25 m (6 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : 800 NL · 50 Pap · 100 Dos · 50 Brasse · 200 Pap · 400 4N · 100 NL · 200 Brasse · 200 NL.<br><u>R2</u> (éch. 14h) : 1500 NL · 50 Dos · 100 4N · 50 NL · 100 Brasse · 200 4N · 400 NL · 100 Pap · 200 Dos.<br>Qualificative aux Championnats de France U13 en 25 m (règlement FFN p.41). Amendes : 800/1500 NL & 400 4N. 1 seul départ par course.</div>"},{"type":"ev","id":"22","cats":["benj","jun","mai","handi"],"club":0,"period":"2026","date":"2026-11-22","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Journée Multinage Handi-Valide","lieu":"SAINT-ETIENNE","bassin":"25m","color":"#ffffff","dateText":"Dimanche 22","program":""},{"type":"ev","id":"23","cats":["jun"],"club":0,"period":"2026","date":"2026-11-27","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats Ligue AuRa Hiver (25m)","lieu":"ROMANS-SUR-ISERE","bassin":"25m","color":"#BDD7EE","dateText":"Vendredi 27 au dimanche 29","program":"<div class=\"progbox\"><b>
205Championnats Ligue AuRA Hiver (25 m)</b> â U18.<br><b>Sur qualification</b> (grille bleue). <b>Grille : à venir.</b></div>"},{"type":"mois","label":"DECEMBRE 2026"},{"type":"ev","id":"24","cats":["enf","av"],"club":0,"period":"2026","date":"2026-12-05","op":"14:00","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Finale Trophée de l'Ain (U11 et moins)","lieu":"AMBERIEU","bassin":"25m","color":"#ffffff","dateText":"Samedi 05 (après-midi)","program":"<div class=\"progbox\"><b>Finale Trophée de l'Ain (U11 et moins)</b> · Ambérieu · Bassin 25 m (8 lignes) · échauffement 14hâ15h · engagements Extranat.<br>Le nageur choisit <b>un</b> des 3 Trophées et dispute toutes ses courses :<br>⢠<b>Nageur le plus complet</b> : 100 4N · 200 NL · 50 NL.<br>⢠<b>Sprint</b> : 50 Pap · 50 Dos · 50 Brasse · 50 NL.<br>⢠<b>100 m</b> : 100 Pap · 100 Dos · 100 Brasse · 100 NL.<br><u>Règlement</u> : règle des deux départs · toutes années d'âge confondues, D/M séparés · SNS obligatoire.<br><u>Récompenses</u> : médailles aux 3 premières/premiers de chaque Trophée â classements distincts Avenirs 1 (2015) / 2 (2016) / 3 (2017 & après).</div>"},{"type":"ev","id":"25","cats":["handi"],"club":0,"period":"2026","date":"2026-12-05","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Championnat de France Hiver 25m Handisport (à confirmer)","lieu":"(à définir)","bassin":"25m","color":"#ffffff","dateText":"Samedi 05 et dimanche 06","program":"<div class=\"progbox\"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"ev","id":"26","cats":["benj","jun"],"club":0,"period":"2026","date":"2026-12-06","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Meeting départemental U12 +","lieu":"AMBERIEU","bassin":"25m","color":"#ffffff","dateText":"Dimanche 06","program":"<div class=\"progbox\"><b>Meeting départemental (U12 et +)</b> · Ambérieu · Bassin 25 m (8 lignes) · deux réunions · engagements Extranat.<br><u>R1</u> (éch. 8h30) : 200 4N · 50 Brasse · 100 Dos · 200 Pap · 100 NL · 50 Dos · 200 Brasse · 100 4N · Relais 4Ã50 4N Mixte.<br><u>R2</u> (éch. 14h) : 400 4N · 400 NL · 50 Pap · 100 Brasse · 200 NL · 50 NL · 100 Pap · 200 Dos.<br>Qualificative aux meetings Ligue (grilles jaune & verte). 1 seul départ par course.</div>"},{"type":"ev","id":"27","cats":["jun"],"club":0,"period":"2026","date":"2026-12-08","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats de France U18 (25m)","lieu":"(à définir)","bassin":"25m","color":"#ffffff","dateText":"Mardi 08 au samedi 12","program":"<div class=\"progbox\"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"ev","id":"28","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2026","date":"2026-12-17","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"Assemblée générale du club CNBV (à confirmer)","lieu":"BELLEGARDE","bassin":"","color":"#FCE4D6","dateText":"Jeudi 17","program":""},{"type":"ev","id":"29","cats":["benj"],"club":0,"period":"2026","date":"2026-12-17","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats de France U12-U13","lieu":"CHOLET","bassin":"25m","color":"#ffffff","dateText":"Jeudi 17 au samedi 19","program":"<div class=\"progbox\"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"ev","id":"30","cats":["benj"],"club":0,"period":"2026","date":"2026-12-20","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Finale Coupe de France des départements","lieu":"CHOLET","bassin":"25m","color":"#ffffff","dateText":"Dimanche 20 et lundi 21","program":"<div class=\"progbox\"><b>Coupe de France des départements</b> · équipe départementale sélectionnée par le Comité de l'Ain.</div>"},{"type":"ev","id":"31","cats":["enf","av","benj","jun","mai","handi"],"club":0,"period":"2026","date":"2026-12-19","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Vacances de Noël 2026 : samedi 19 décembre 2026 au dimanche 03 janvier 2027 inclus","lieu":"Vacances de Noël 2026 : samedi 19 décembre 2026 au dimanche 03 janvier 2027 inclus","bassin":"Vacances de Noël 2026 : samedi 19 décembre 2026 au dimanche 03 janvier 2027 inclus","color":"#ffffff","dateText":"Vacances de Noël 2026 : samedi 19 décembre 2026 au dimanche 03 janvier 2027 inclus","program":""},{"type":"ev","id":"32","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2026","date":"2026-12-21","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"STAGES CNBV","lieu":"BELLEGARDE","bassin":"25m","color":"#FCE4D6","dateText":"Lundi 21-mardi 22 et lundi 28-mardi 29","program":""},{"type":"mois","label":"JANVIER 2027"},{"type":"janhdr","raw":"<tr class=\"janhdr\" data-keep=\"1\"><td class=\"l\" colspan=\"4\"><b>Changement de catégories au 1er janvier 2027 â nouvelles années â</b></td><td class=\"x\">
205(tous)</td><td class=\"x\">2016 & +</td><td class=\"x\">2014-15</td><td class=\"x\">2013 & -</td><td class=\"x\">2002 & -</td><td class=\"x\">FFH</td></tr>"},{"type":"ev","id":"33","cats":["enf","av","benj","jun","handi"],"club":0,"period":"2027","date":"2027-01-16","op":"","dur":"3.75","comp":1,"handi":1,"home":1,"title":"Compétition interne CNBV","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#ffffff","dateText":"Samedi 16 (après-midi)","program":""},{"type":"ev","id":"34","cats":["mai"],"club":0,"period":"2027","date":"2027-01-16","op":"","dur":"3.75","comp":1,"handi":0,"home":1,"title":"Championnats de l'Ain Maîtres","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#ffffff","dateText":"Samedi 16 (OP : 17h)","program":""},{"type":"ev","id":"35","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2027","date":"2027-01-17","op":"","dur":"3.75","comp":0,"handi":1,"home":0,"title":"Thé Dansant CNBV","lieu":"CHATILLON","bassin":"","color":"#FCE4D6","dateText":"Dimanche 17","program":""},{"type":"ev","id":"36","cats":["jun"],"club":0,"period":"2027","date":"2027-01-23","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Meeting Ligue AuRa jaune","lieu":"LYON (VAISE)","bassin":"25m","color":"#FFE699","dateText":"Samedi 23 et dimanche 24","program":""},{"type":"ev","id":"37","cats":["enf","av"],"club":0,"period":"2027","date":"2027-01-30","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Regroupement avenirs (U11 et -)","lieu":"BOURG","bassin":"25m","color":"#ffffff","dateText":"Samedi 30 (matin)","program":""},{"type":"ev","id":"38","cats":["enf","av"],"club":0,"period":"2027","date":"2027-01-30","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Circuit Avenirs Plot n°1 (U11 et -) (OP : 14h)","lieu":"BOURG","bassin":"25m","color":"#ffffff","dateText":"Samedi 30 (après-midi)","program":"<div class=\"progbox\"><b>Circuit Avenirs â Natathlon (Plot)</b> · Bassin 25 m · après-midi (OP 14h) · 4 courses max/nageur (hors relais).<br><u>Ãpreuves</u> : 100 4N · 50 Dos · 100 Dos · 50 Brasse · 100 Brasse · 50 NL · 100 NL · 50 Pap · 100 Pap (D & M) â puis <b>Relais mixte 4Ã50 NL</b> (2F+2G).<br><u>Catégories</u> : Avenirs 1 = U11 (2015) · Avenirs 2 = U10 (2016) · Avenirs 3 = U9 (2017 & après). SNS requis · règle des deux départs.</div>"},{"type":"ev","id":"39","cats":["benj","jun"],"club":0,"period":"2027","date":"2027-01-31","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Compétition 1/2 fond (50m) (U12 et +)","lieu":"OYONNAX","bassin":"50m","color":"#ffffff","dateText":"Dimanche 31 (matin)","program":""},{"type":"ev","id":"40","cats":["benj","jun"],"club":0,"period":"2027","date":"2027-01-31","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnat départemental sprint (50m) (U12 et +)","lieu":"OYONNAX","bassin":"50m","color":"#ffffff","dateText":"Dimanche 31 (après-midi)","program":""},{"type":"mois","label":"FEVRIER 2027"},{"type":"ev","id":"41","cats":["jun"],"club":0,"period":"2027","date":"2027-02-05","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Meeting Ligue AuRa vert","lieu":"(à définir)","bassin":"50m","color":"#C6E0B4","dateText":"Vendredi 05 au dimanche 07","program":""},{"type":"ev","id":"42","cats":["benj"],"club":0,"period":"2027","date":"2027-02-06","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Regroupement Benjamins (U12 & U13)","lieu":"BELLEY","bassin":"","color":"#ffffff","dateText":"Samedi 06 ou dimanche 07","program":""},{"type":"ev","id":"43","cats":["handi"],"club":0,"period":"2027","date":"2027-02-07","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Plot 2 du C.N.C. Handisport","lieu":"BRON","bassin":"25m","color":"#ffffff","dateText":"Dimanche 07","program":""},{"type":"ev","id":"44","cats":["enf","av","benj","jun","mai","handi"],"club":0,"period":"2027","date":"2027-02-13","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Vacances d'hiver 2027 : samedi 13 février au dimanche 28 février inclus","lieu":"Vacances d'hiver 2027 : samedi 13 février au dimanche 28 février inclus","bassin":"Vacances d'hiver 2027 : samedi 13 février au dimanche 28 février inclus","color":"#ffffff","dateText":"Vacances d'hiver 2027 : samedi 13 février au dimanche 28 février inclus","program":""},{"type":"ev","id":"45","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2027","date":"2027-02-15","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"STAGES CNBV","lieu":"BELLEGARDE","bassin":"25m","color":"#FCE4D6","dateText":"Lundi 15 au vendredi 19","program":""},{"type":"ev","id":"46","cats":["handi"],"club":0,"period":"2027","date":"2027-02-15","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Stage régional Handisport AuRA","lieu":"VICHY","bassin":"","color":"#ffffff","dateText":"Mardi 15 au samedi 19","program":""},{"type":"mois","label":"MARS 2027"},{"type":"ev","id":"47","cats":["benj","jun","mai"],"club":0,"period":"2027","date":"2027-03-05","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Webconfrontation / Championnats Ligue AuRa Printemps (50m)","lieu":"(à définir)","bassin":"50m","color":"#BDD7EE","dateText":"Vendredi 05 au dimanche 07","program":""},{"type":"ev","id":"48","cats":["enf","av"],"club":0,"period":"2027","date":"2027-03-13","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Regroupement avenirs (U11 et -)","lieu":"FERNEY","bassin":"25m","color":"#ffffff","dateText":"Samedi 13 (matin) ?","program":""},{"type":"ev","id":"49","cats":["enf","av"],"club":0,"period":"2027","date":"2027-03-13","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Circuit Avenirs Plot n°2 (U11 et -) (OP : 14h)","lieu":"FERNEY","bassin":"25m","color":"#ffffff","dateText":"Samedi 13 (après-midi) ?","program":"<div class=\"progbox\"><b>Circuit Avenirs â Natathlon (Plot)</b> · Bassin 25 m · après-midi (OP 14h) · 4 courses max/nageur (hors relais).<br><u>Ãpreuves</u> : 100 4N · 50 Dos · 100 Dos · 50 Brasse · 100 Brasse · 50 NL · 100 NL · 50 Pap · 100 Pap (D & M) â puis <b>Relais mixte 4Ã50 NL</b> (2F+2G).<br><u>Catégories</u> : Avenirs 1 = U11 (2015) · Avenirs 2 = U10 (2016) · Avenirs 3 = U9 (2017 & après). SNS requis · règle des deux départs.</div>"},{"type":"ev","id":"50","cats":["benj","jun","mai"],"club":0,"period":"2027","date":"2027-03-14","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats départementaux (U12 et +)","lieu":"BOURG","bassin":"25m","color":"#ffffff","dateText":"Dimanche 14","program":""},{"type":"ev","id":"51","cats":["jun"],"club":0,"period":"2027","date":"2027-03-19","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Challenge national n°1","lieu":"(à définir)","bassin":"","color":"#ffffff","dateText":"Vendredi 19 au dimanche 21","program":"<div class=\"progbox\"><b>
205Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"ev","id":"52","cats":["handi"],"club":0,"period":"2027","date":"2027-03-27","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Championnat Interrégional Handisport","lieu":"AIX-EN-PROVENCE","bassin":"50m","color":"#ffffff","dateText":"Samedi 27 et dimanche 28","program":""},{"type":"mois","label":"AVRIL 2027"},{"type":"ev","id":"53","cats":["benj"],"club":0,"period":"2027","date":"2027-04-04","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Interclubs (U12-U13)","lieu":"BOURG","bassin":"25m","color":"#ffffff","dateText":"Dimanche 04","program":""},{"type":"ev","id":"54","cats":["enf","av","benj","jun","mai","handi"],"club":0,"period":"2027","date":"2027-04-10","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Vacances de printemps 2027 : samedi 10 avril au dimanche 25 avril inclus","lieu":"Vacances de printemps 2027 : samedi 10 avril au dimanche 25 avril inclus","bassin":"Vacances de printemps 2027 : samedi 10 avril au dimanche 25 avril inclus","color":"#ffffff","dateText":"Vacances de printemps 2027 : samedi 10 avril au dimanche 25 avril inclus","program":""},{"type":"ev","id":"55","cats":["benj","jun"],"club":0,"period":"2027","date":"2027-04-10","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Grand Prix d'Oyonnax + / regroupement U12 & U13","lieu":"OYONNAX","bassin":"25m","color":"#ffffff","dateText":"Samedi 10 et dimanche 11","program":""},{"type":"ev","id":"56","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2027","date":"2027-04-12","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"STAGES CNBV","lieu":"BELLEGARDE","bassin":"25m","color":"#FCE4D6","dateText":"Lundi 12 au mercredi 14","program":""},{"type":"ev","id":"57","cats":["benj","jun","club"],"club":1,"period":"2027","date":"2027-04-18","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"STAGE SPORTIF BASSIN 50m","lieu":"Espagne","bassin":"50m","color":"#FCE4D6","dateText":"Dimanche 18 au samedi 24","program":""},{"type":"ev","id":"58","cats":["jun"],"club":0,"period":"2027","date":"2027-04-23","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Challenge national n°2","lieu":"(à définir)","bassin":"","color":"#ffffff","dateText":"Vendredi 23 au dimanche 25","program":"<div class=\"progbox\"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"ev","id":"59","cats":["jun"],"club":0,"period":"2027","date":"2027-04-26","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnat de France U18","lieu":"(à définir)","bassin":"","color":"#ffffff","dateText":"Lundi 26 au dimanche 02 (mai)","program":"<div class=\"progbox\"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"mois","label":"MAI 2027"},{"type":"ev","id":"60","cats":["enf","av"],"club":0,"period":"2027","date":"2027-05-02","op":"","dur":"3.75","comp":0,"handi":0,"home":0,"title":"Regroupement Avenirs (U11 et -)","lieu":"FERNEY","bassin":"25m","color":"#ffffff","dateText":"Dimanche 02","program":""},{"type":"ev","id":"61","cats":["enf","av"],"club":0,"period":"2027","date":"2027-05-02","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Interclubs U11 et moins","lieu":"FERNEY","bassin":"25m","color":"#ffffff","dateText":"Dimanche 02","program":""},{"type":"ev","id":"62","cats":["jun"],"club":0,"period":"2027","date":"2027-05-15","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Meeting Ligue AuRa jaune","lieu":"(à définir)","bassin":"50m","color":"#FFE699","dateText":"Samedi 15 et dimanche 16","program":""},{"type":"ev","id":"63","cats":["benj"],"club":0,"period":"2027","date":"2027-05-22","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Coupe de France des départements (U12 & U13)","lieu":"(à définir)","bassin":"","color":"#ffffff","dateText":"Samedi 22 et dimanche 23","program":""},{"type":"ev","id":"64","cats":["handi"],"club":0,"period":"2027","date":"2027-05-23","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Plot 3 du C.N.C. Handisport","lieu":"SAINT-ETIENNE","bassin":"25m","color":"#ffffff","dateText":"Dimanche 23","program":""},{"type":"ev","id":"65","cats":["benj","jun"],"club":0,"period":"2027","date":"2027-05-30","op":"","dur":"3.75","comp":1,"handi":0,"home":1,"title":"Meeting départemental (U12 et +)","lieu":"BELLEGARDE (ValséO)","bassin":"25m","color":"#ffffff","dateText":"Dimanche 30","program":"<div class=\"progbox\"><b>Meeting du Circuit Juniors & + (U12 et +)</b>.<br>Qualificatif pour les Meetings/Championnats de Ligue.<br><i>Programme détaillé : à venir.</i></div>"},{"type":"ev","id":"66","cats":["jun"],"club":0,"period":"2027","date":"2027-05-29","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats de France Elite (50m)","lieu":"(à définir)","bassin":"50m","color":"#ffffff","dateText":"Samedi 29 mai au jeudi 03 juin","program":"<div class=\"progbox\"><b>
205Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"mois","label":"JUIN 2027"},{"type":"ev","id":"67","cats":["enf","av"],"club":0,"period":"2027","date":"2027-06-05","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Coupe PLEWINSKI (U11 et -)","lieu":"(à définir)","bassin":"25m","color":"#ffffff","dateText":"Samedi 05 et dimanche 06","program":""},{"type":"ev","id":"68","cats":["jun"],"club":0,"period":"2027","date":"2027-06-11","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Meeting de Ligue AuRA vert","lieu":"(à définir)","bassin":"50m","color":"#C6E0B4","dateText":"Vendredi 11 au dimanche 13","program":""},{"type":"ev","id":"69","cats":["enf","av"],"club":0,"period":"2027","date":"2027-06-19","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Circuit Avenirs Plot n°3 (U11 et -) (OP : 14h)","lieu":"AMBERIEU","bassin":"25m","color":"#ffffff","dateText":"Samedi 19 (après-midi)","program":"<div class=\"progbox\"><b>Circuit Avenirs â Natathlon (Plot)</b> · Bassin 25 m · après-midi (OP 14h) · 4 courses max/nageur (hors relais).<br><u>Ãpreuves</u> : 100 4N · 50 Dos · 100 Dos · 50 Brasse · 100 Brasse · 50 NL · 100 NL · 50 Pap · 100 Pap (D & M) â puis <b>Relais mixte 4Ã50 NL</b> (2F+2G).<br><u>Catégories</u> : Avenirs 1 = U11 (2015) · Avenirs 2 = U10 (2016) · Avenirs 3 = U9 (2017 & après). SNS requis · règle des deux départs.</div>"},{"type":"ev","id":"70","cats":["benj","jun"],"club":0,"period":"2027","date":"2027-06-20","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Finale départementale (U12 et +) (50m)","lieu":"OYONNAX","bassin":"50m","color":"#ffffff","dateText":"Dimanche 20","program":""},{"type":"ev","id":"71","cats":["benj"],"club":0,"period":"2027","date":"2027-06-26","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Webconfrontation / Finalité Ligue AuRa (U12-U13)","lieu":"ANNEMASSE","bassin":"50m","color":"#ffffff","dateText":"Samedi 26 et dimanche 27","program":""},{"type":"ev","id":"72","cats":["handi"],"club":0,"period":"2027","date":"2027-06-01","op":"","dur":"3.75","comp":1,"handi":1,"home":0,"title":"Championnat de France Ãté 50m Handisport (date et lieu à définir)","lieu":"(à définir)","bassin":"50m","color":"#ffffff","dateText":"Samedi et dimanche (à définir)","program":"<div class=\"progbox\"><b>Championnat national</b> · sur qualification (minima FFN).<br><b>Grille / minima : à venir.</b></div>"},{"type":"mois","label":"JUILLET 2027"},{"type":"ev","id":"73","cats":["benj","jun"],"club":0,"period":"2027","date":"2027-07-02","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats Ligue AuRA été (U13/14 et +)","lieu":"(à définir)","bassin":"","color":"#BDD7EE","dateText":"Vendredi 02 au dimanche 04","program":""},{"type":"ev","id":"74","cats":["club"],"club":1,"period":"2027","date":"2027-07-05","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Opération J'apprends à nager JAN","lieu":"BELLEGARDE (ValséO)","bassin":"","color":"#FCE4D6","dateText":"Lundi 05 au vendredi 16","program":""},{"type":"ev","id":"75","cats":["club"],"club":1,"period":"2027","date":"2027-07-19","op":"","dur":"3.75","comp":0,"handi":0,"home":1,"title":"Opération J'apprends à nager JAN","lieu":"BELLEGARDE (ValséO)","bassin":"","color":"#FCE4D6","dateText":"Lundi 19 au vendredi 30","program":""},{"type":"ev","id":"76","cats":["av","benj","jun","mai"],"club":0,"period":"2027","date":"2027-07-10","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Traversée du Lac de Nantua (organisation clubs de l'Ain)","lieu":"NANTUA","bassin":"","color":"#ffffff","dateText":"Samedi 10 (tôt matin)","program":""},{"type":"ev","id":"77","cats":["enf","av","benj","jun","mai","handi","club"],"club":1,"period":"2027","date":"2027-07-11","op":"","dur":"3.75","comp":0,"handi":1,"home":1,"title":"Fête du club CNBV","lieu":"BELLEGARDE (ValséO)","bassin":"","color":"#FCE4D6","dateText":"Dimanche 11","program":""},{"type":"ev","id":"78","cats":["benj","jun","mai"],"club":0,"period":"2027","date":"2027-07-23","op":"","dur":"3.75","comp":1,"handi":0,"home":0,"title":"Championnats Open d'été (50m)","lieu":"(à définir)","bassin":"50m","color":"#ffffff","dateText":"Vendredi 23 au mercredi 28","program":""}]; 206/* ===== CNBV â moteur calendrier en ligne (rendu + import Excel) ===== */ 207/* Rendu fidèle : rows JSON -> lignes du <tbody>. Réutilisé pour l'affichage en ligne 208 ET pour l'aperçu d'import. Règles validées 60/60 contre le calendrier existant. */ 209 210var CAL_HDR='<tr class="hdr"><th>DATES</th><th>Bassin</th><th>DÃSIGNATION</th><th>LIEUX</th><th class="ct">E.N.F<br><small>tous âges</small></th><th class="ct">AVENIRS<br><small>11 ans et -<br>2015 & +</small></th><th class="ct">BENJAMINS<br><small>12-13 ans<br>2013-2014</small></th><th class="ct">JUNIORS ET +<br><small>14 ans et +<br>2012 & -</small></th><th class="ct">MAÃTRES<br><small>25 ans et +<br>2001 & -</small></th><th class="ct">HANDI<br><small>cat. FFH</small></th></tr>'; 211 212/* Picto Handisport (symbole fauteuil, générique â remplaçable par le logo FFH) */ 213var CAL_HANDI_SVG='<img class="hlogo" alt="Handisport" title="Handisport" src="data:image/png;base64,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">'; 214 215var CAL_CATLABEL={enf:'ENF',av:'Av',benj:'Benj',jun:'Jun+',mai:'Maî',handi:'Handi'}; 216var CAL_CATORDER=['enf','av','benj','jun','mai','handi']; 217 218function calEsc(s){return String(s==null?'':s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"');} 219function calCatArr(c){return Array.isArray(c)?c.slice():String(c||'').split(/\s+/).filter(Boolean);} 220function calCatsum(cats){ 221 var lab=CAL_CATORDER.filter(function(c){return cats.indexOf(c)>=0;}).map(function(c){return CAL_CATLABEL[c];}); 222 if(lab.length) return lab.join(' · '); 223 if(cats.indexOf('club')>=0) return 'Club'; 224 return 'â'; 225} 226function calCells(cats){ 227 return CAL_CATORDER.map(function(c){return cats.indexOf(c)>=0?'<td class="x"><span class="on">X</span></td>':'<td class="x"></td>';}).join(''); 228} 229function calBadge(e){ 230 var t=calSA(e.title||''); var col=String(e.color||'').toUpperCase(); 231 var comp=(String(e.comp)==='1'||e.comp===1); 232 if(/regroupement|coupe.*departement|plewinski/.test(t)) return ' <span class="badge bdep">ð¯ Sélection</span>'; 233 if(!comp) return ''; 234 if(/france|national|interregional/.test(t)) return ' <span class="badge bnat">ð¯ National</span>'; 235 if(/ligue/.test(t) || col==='#BDD7EE' || col==='#FFE699' || col==='#C6E0B4') return ' <span class="badge blig">ð¯ Ligue</span>'; 236 return ''; 237} 238function calEvRow(e){ 239 var cats=calCatArr(e.cats); 240 var comp=String(e.comp)==='1'||e.comp===1; 241 var handi=e.handi==1||cats.indexOf('handi')>=0||/handi/i.test(e.title||''); 242 var prog=e.program||''; 243 var dep=!!prog; // dépliable seulement si programme présent 244 var color=e.color||'#ffffff'; 245 var search=calEsc(((e.title||'')+' '+(e.lieu||'')).toLowerCase()); 246 var attrs='data-id="'+calEsc(e.id)+'" data-cats="'+calEsc(cats.join(' '))+'" data-club="'+(e.club?1:0) 247 +'" data-period="'+calEsc(e.period||String(e.date||'').slice(0,4))+'" data-date="'+calEsc(e.date) 248 +'" data-op="'+calEsc(e.op||'')+'" data-dur="'+calEsc(e.dur||'3.75')+'" data-comp="'+(comp?1:0) 249 +'" data-home="'+(e.home?1:0)+'" data-title="'+calEsc(e.title)+'" data-lieu="'+calEsc(e.lieu) 250 +'" data-search="'+search+'"'; 251 var style=(dep?'cursor:pointer;':'')+'background:'+color; 252 var onclick=dep?' onclick="tog(\''+calEsc(e.id)+'\')"':''; 253 var caret=dep?'<span class="car" id="car'+calEsc(e.id)+'">
253â¸</span> ':''; 254 var home=e.home?' <span class="home" title="à Bellegarde / ValséO">ð </span>':''; 255 var hlogo=handi?' '+CAL_HANDI_SVG:''; 256 var ics='<button class="ics noprint" title="Ajouter à mon agenda" onclick="event.stopPropagation();ics(this)">ð </button>'; 257 var html='<tr class="ev" '+attrs+onclick+' style="'+style+'">' 258 +'<td class="l">'+calEsc(e.dateText||'')+' '+ics+'</td>' 259 +'<td class="c">'+calEsc(e.bassin||'')+'</td>' 260 +'<td class="l">'+caret+'<b>'+calEsc(e.title)+'</b>'+home+calBadge(e)+'<span class="catsum">'+calCatsum(cats)+'</span></td>' 261 +'<td class="l">'+(handi?CAL_HANDI_SVG+' ':'')+calEsc(e.lieu||'')+'</td>' 262 +calCells(cats)+'</tr>'; 263 if(dep) html+='<tr class="prog" id="prog'+calEsc(e.id)+'" style="display:none"><td colspan="10">'+prog+'</td></tr>'; 264 return html; 265} 266function calRenderRows(rows){ 267 var html=''; 268 for(var i=0;i<rows.length;i++){var r=rows[i]; 269 if(r.type==='mois') html+='<tr class="mois"><td colspan="10">'+calEsc(r.label)+'</td></tr>'; 270 else if(r.type==='vac' || (r.type==='ev' && /^vacances/.test(calSA(r.title||'')))){ var _vt=r.html||calEsc(r.title||r.label||''); var _vc=(r.color&&String(r.color).toUpperCase()!=='#FFFFFF')?r.color:'#FFF2CC'; html+='<tr class="vac" data-keep="1"><td colspan="10" style="background:'+_vc+';color:#5b4a12;font-weight:600">'+_vt+'</td></tr>'; } 271 else if(r.type==='janhdr') html+=(r.raw||''); 272 else if(r.type==='ev') html+=calEvRow(r); 273 } 274 return html; 275} 276 277/* ===== Import Excel -> rows (mêmes règles que la validation Python) ===== */ 278var CAL_MONTHS={'JANVIER':1,'FEVRIER':2,'FÃVRIER':2,'MARS':3,'AVRIL':4,'MAI':5,'JUIN':6,'JUILLET':7,'AOUT':8,'AOÃT':8,'SEPTEMBRE':9,'OCTOBRE':10,'NOVEMBRE':11,'DECEMBRE':12,'DÃCEMBRE':12}; 279function calSA(s){return String(s||'').normalize('NFD').replace(/[Ì-ͯ]/g,'').toLowerCase();} 280function calArgb(cell){ 281 try{var f=cell&&cell.fill; if(f&&f.type==='pattern'&&f.fgColor){var a=f.fgColor.argb; if(a) return '#'+String(a).slice(-6).toUpperCase();}}catch(e){} 282 return ''; 283} 284function calCellVal(cell){var v=cell?cell.value:null; if(v&&typeof v==='object'){ if('text' in v)return v.text; if('result' in v)return v.result; if(v.richText)return v.richText.map(function(t){return t.text;}).join(''); } return v==null?'':String(v);} 285/* ws = worksheet ExcelJS. oldRows = calendrier en ligne actuel (pour conserver les programmes). */ 286function calParseSheet(ws, oldRows){ 287 var progByKey={}; (oldRows||[]).forEach(function(r){ if(r.type==='ev'&&r.program) progByKey[calSA(r.title)+'|'+(r.date||'')]=r.program; }); 288 var rows=[]; var cm=null,cy=null; var nextId=1; 289 var maxR=ws.rowCount||ws.actualRowCount||103; 290 for(var r=3;r<=maxR;r++){ 291 var A=String(calCellVal(ws.getCell(r,1))||'').trim(); 292 var C=String(calCellVal(ws.getCell(r,3))||'').trim(); 293 if(!A && !C) continue; 294 var up=A.toUpperCase(); 295 if(up.indexOf('LEGENDE')===0||up.indexOf('LÃGENDE')===0) break; 296 var mm=/^([A-ZÃÃÃ]+)\s+(\d{4})$/.exec(up); 297 if(mm && CAL_MONTHS[mm[1]]){ cm=CAL_MONTHS[mm[1]]; cy=+mm[2]; rows.push({type:'mois',label:A}); continue; } 298 if(calSA(A).indexOf('changement de categor')===0){ rows.push({type:'janhdr',raw:CAL_JANHDR}); continue; } 299 if(calSA(A).indexOf('vacances')===0 || calSA(C).indexOf('vacances')===0){ var _va=(calSA(A).indexOf('vacances')===0?A:C); var _vcol=calArgb(ws.getCell(r,1))||'#FFF2CC'; rows.push({type:'vac',html:calEsc(_va),color:_vcol}); continue; } 300 if(!C) continue; 301 // événement 302 var cats=[]; for(var i=0;i<6;i++){ var cv=calCellVal(ws.getCell(r,5+i)); if(cv!==''&&cv!=null) cats.push(CAL_CATORDER[i]); } 303 var color=calArgb(ws.getCell(r,3))||calArgb(ws.getCell(r,5))||'#ffffff'; 304 var club=color.toUpperCase()==='#FCE4D6'; if(club) cats.push('club'); 305 var lieu=String(calCellVal(ws.getCell(r,4))||'').trim(); 306 var bassin=String(calCellVal(ws.getCell(r,2))||'').trim(); 307 var des=calSA(C); 308 var comp=(club||/\b(assemblee|regroupement|reunion)\b/.test(des))?0:1; 309 var handi=(cats.indexOf('handi')>=0||/handi/.test(des))?1:0; 310 var home=/bellegarde|valseo|valserh/.test(calSA(lieu))?1:0; 311 var dm=/\b(\d{1,2})\b/.exec(A); var day=dm?(+dm[1]):1; 312 var iso=cy?(cy+'-'+('0'+cm).slice(-2)+'-'+('0'+day).slice(-2)):''; 313 var key=calSA(C)+'|'+iso; 314 rows.push({type:'ev',id:String(nextId++),cats:cats,club:club?1:0,period:String(cy||''),date:iso,op:'',dur:'3.75', 315 comp:comp,handi:handi,home:home,title:C,lieu:lieu,bassin:bassin,color:color, 316 dateText:A.replace(/\s+/g,' ').trim(),program:progByKey[key]||''}); 317 } 318 return rows; 319} 320 321var CAL_JANHDR='<tr class="janhdr" data-keep="1"><td class="l" colspan="4"><b>Changement de catégories au 1er janvier 2027 â nouvelles années â</b></td><td class="x">(tous)</td><td class="x">2016 & +</td><td class="x">2014-15</td><td class="x">2013 & -</td><td class="x">2002 & -</td><td class="x">FFH</td></tr>'; 322 323 324/* ===== Runtime : lecture en ligne + Mon espace coach ===== */ 325var CAL_COACH=''; try{CAL_COACH=localStorage.getItem('cal_coach')||'';}catch(e){} 326var CAL_ONLINE=null, CAL_IMPORT=null; 327function calMarkToday(){var T=(typeof TODAY!=='undefined')?TODAY:'';document.querySelectorAll('#cal tr.ev').forEach(function(r){if(r.dataset.date===T)r.classList.add('today');});} 328function calReinit(){ 329 calMarkToday(); 330 try{setPrintHdr();}catch(e){} 331 try{if(typeof tagBW==='function')tagBW();}catch(e){} 332 try{var f=(typeof LS!=='undefined')?LS.get('cal_filter'):'',y=(typeof LS!=='undefined')?LS.get('cal_year'):''; 333 if(f==='year'&&y){document.getElementById('year').value=y;fltYear(y);} 334 else if(f&&f!=='home'&&f!=='year'){flt(f);} else {flt('all');} 335 }catch(e){try{flt('all');}catch(_){}} 336 try{if(typeof NL_NAME!=='undefined'&&NL_NAME){markComps();markSelections();}}catch(e){} 337} 338function calApplyOnline(rows){ 339 if(!rows||!rows.length)return false;
340 var tb=document.querySelector('#cal tbody'); if(!tb)return false; 341 tb.innerHTML=calRenderRows(rows); CAL_ONLINE=rows; calReinit(); return true; 342} 343async function calOnlineLoad(){ 344 try{var r=await fetch(QWORKER+'/calendar');var d=await r.json(); 345 if(d&&d.ok&&d.rows&&d.rows.length){calApplyOnline(d.rows);}}catch(e){} 346} 347function coachStat(msg,cls){var s=document.getElementById('cb-stat'); if(s){s.textContent=msg;s.className='cbstat '+(cls||'');}} 348function coachHtml(){ 349 return '<div class="coachbox">' 350 +'<h3>ð§âð« Mon espace coach</h3>' 351 +'<div class="cbsec"><b>1) Activer la lecture en ligne</b>' 352 +'<div class="cbnote">Publie le calendrier actuel (avec ses programmes) une seule fois, pour que la lecture en ligne prenne le relais.</div>' 353 +'<button class="nl-btn" onclick="coachInit()">Publier le calendrier actuel en ligne</button></div>' 354 +'<div class="cbsec"><b>2) Mettre à jour depuis un Excel</b>' 355 +'<div class="cbnote">Dépose le fichier .xlsx. Couleurs, catégories et logo Handi sont repris automatiquement ; les programmes déjà en ligne sont conservés.</div>' 356 +'<input type="file" id="cb-file" accept=".xlsx,.xlsm">' 357 +'<div id="cb-prev" class="cbprev" style="display:none"></div>' 358 +'<button class="nl-btn" id="cb-pub" style="display:none" onclick="coachPublish()">Publier la mise à jour en ligne</button>' 359 +'<div class="amber">Lâimport remplace la liste des événements par celle de lâExcel. Les programmes détaillés (PDF/Word) et grilles de qualif viendront dans une prochaine étape.</div></div>' 360 +'<div id="cb-stat" class="cbstat"></div>' 361 +'<button class="nl-btn nl-out" onclick="coachLogout()">Se déconnecter</button>' 362 +'</div>'; 363} 364function coachOpen(){ if(typeof nlOpen==='function')nlOpen(); var b=document.getElementById('nl-body'); if(!b)return; 365 b.innerHTML=coachHtml(); var fi=document.getElementById('cb-file'); if(fi)fi.addEventListener('change',coachFile); } 366function coachLogout(){CAL_COACH='';try{localStorage.removeItem('cal_coach');}catch(e){} var btn=document.getElementById('nlogin-btn'); if(btn){btn.textContent='ð Espace nageur â me connecter';btn.setAttribute('onclick','nlOpen()');} if(typeof nlClose==='function')nlClose(); } 367async function calLoadExcelJS(){ if(window.ExcelJS)return true; 368 return new Promise(function(res){var s=document.createElement('script'); 369 s.src='https://cdn.jsdelivr.net/npm/[email protected]/dist/exceljs.min.js'; 370 s.onload=function(){res(!!window.ExcelJS);}; s.onerror=function(){res(false);}; document.head.appendChild(s);}); } 371async function coachFile(ev){ 372 var f=ev.target.files&&ev.target.files[0]; if(!f)return; 373 coachStat('Lecture du fichierâ¦',''); 374 var okjs=await calLoadExcelJS(); if(!okjs){coachStat('Impossible de charger le lecteur Excel (connexion ?).','err');return;} 375 try{ 376 var buf=await f.arrayBuffer(); var wb=new ExcelJS.Workbook(); await wb.xlsx.load(buf); 377 var ws=wb.getWorksheet('Calendrier 2026-2027')||wb.worksheets[0]; 378 var oldRows=CAL_ONLINE||CAL_SEED; var rows=calParseSheet(ws,oldRows); CAL_IMPORT=rows; 379 var evs=rows.filter(function(r){return r.type==='ev';}); 380 var oldKeys={}; (oldRows||[]).forEach(function(r){if(r.type==='ev')oldKeys[calSA(r.title)]=1;}); 381 var nNew=evs.filter(function(e){return !oldKeys[calSA(e.title)];}).length; 382 var nProg=evs.filter(function(e){return e.program;}).length; 383 var nHandi=evs.filter(function(e){return e.handi;}).length; 384 var prev=document.getElementById('cb-prev'); prev.style.display='block'; 385 prev.innerHTML=evs.map(function(e){return '<div>'+(oldKeys[calSA(e.title)]?'':'<span class="cbnew">NOUVEAU </span>')+calEsc(e.dateText)+' â '+calEsc(e.title)+(e.handi?' â¿':'')+'</div>';}).join(''); 386 coachStat(evs.length+' événements · '+nNew+' nouveaux · '+nProg+' programmes conservés · '+nHandi+' Handi','ok'); 387 document.getElementById('cb-pub').style.display='block'; 388 }catch(e){coachStat('Erreur de lecture : '+e,'err');} 389} 390async function calPublish(rows){ 391 try{var r=await fetch(QWORKER+'/calendar?pw='+encodeURIComponent(CAL_COACH),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({rows:rows})}); 392 var d=await r.json(); return !!(d&&d.ok);}catch(e){return false;} } 393async function coachInit(){ if(!CAL_COACH){coachStat('Reconnecte-toi.','err');return;} 394 coachStat('Publication du calendrier actuelâ¦',''); var ok=await calPublish(CAL_SEED);
395 coachStat(ok?'Calendrier actuel publié en ligne â':'Ãchec de publication.',ok?'ok':'err'); if(ok)calApplyOnline(CAL_SEED); } 396async function coachPublish(){ if(!CAL_IMPORT){coachStat('Importe dâabord un fichier.','err');return;} 397 coachStat('Publicationâ¦',''); var ok=await calPublish(CAL_IMPORT); 398 if(ok){coachStat('Calendrier mis à jour en ligne â','ok');calApplyOnline(CAL_IMPORT);setTimeout(function(){if(typeof nlClose==='function')nlClose();},1000);} 399 else coachStat('Ãchec de publication (code coach ?).','err'); } 400(function(){ try{ if(CAL_COACH){var btn=document.getElementById('nlogin-btn'); if(btn){btn.textContent='ð§âð« Mon espace coach';btn.setAttribute('onclick','coachOpen()');}} }catch(e){} })(); 401calOnlineLoad(); 402</script>
402 403 404<!-- ==== CALX : Export vers Calendrier Apple (.ics) â ajouté ==== --> 405<style> 406#calx-ov{display:none;position:fixed;inset:0;z-index:100000;background:rgba(12,34,51,.55);padding:16px;overflow:auto} 407#calx-ov.on{display:flex;align-items:flex-start;justify-content:center} 408#calx-card{background:#fff;color:#0d2233;border-radius:16px;max-width:720px;width:100%;margin:24px auto;box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;max-height:88vh;overflow:hidden} 409#calx-card h2{margin:0;font-size:18px} 410.calx-head{padding:16px 18px 12px;border-bottom:1px solid #e6eef5;background:linear-gradient(180deg,#f2f8fc,#fff)} 411.calx-sub{margin:6px 0 0;font-size:13px;color:#5a7285;line-height:1.45} 412.calx-scope{margin-top:9px;font-size:12.5px;font-weight:700;color:#0b6ba8;background:#eaf4fb;border:1px solid #c5e0f0;border-radius:8px;padding:6px 11px;display:inline-block} 413.calx-tools{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px} 414.calx-tools button{border:1px solid #cdddea;background:#fff;color:#0b3d63;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s} 415.calx-tools button:hover{background:#eaf3fa} 416.calx-tools .calx-none{color:#8a3b3b;border-color:#e6cccc} 417.calx-list{overflow-y:auto;padding:6px 8px 4px;flex:1} 418.calx-month{position:sticky;top:0;background:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0b6ba8;padding:10px 10px 4px;border-bottom:1px solid #eef4f9} 419.calx-row{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-bottom:1px solid #f2f6fa;cursor:pointer} 420.calx-row:hover{background:#f7fbfe} 421.calx-row input{margin-top:3px;width:17px;height:17px;flex:none;accent-color:#0b6ba8;cursor:pointer} 422.calx-main{flex:1;min-width:0} 423.calx-title{font-size:14px;font-weight:600;line-height:1.25} 424.calx-meta{font-size:12px;color:#607889;margin-top:2px;display:flex;flex-wrap:wrap;gap:6px;align-items:center} 425.calx-hintrow{font-size:11px;font-weight:600;color:#a2531a;background:#fdefe0;border:1px solid #f2cba0;border-radius:6px;padding:1px 7px} 426.calx-when{font-family:'IBM Plex Mono',ui-monospace,Menlo,monospace;font-size:11.5px;font-weight:600;color:#0e7a5f;background:#e7f6ef;border:1px solid #b7e3cd;border-radius:6px;padding:1px 7px;white-space:nowrap} 427.calx-when.allday{color:#8a5a00;background:#fdf3dc;border-color:#f0d79a} 428.calx-tag{font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 6px} 429.calx-tag.comp{background:#e7eefc;color:#2242a0} 430.calx-tag.club{background:#fdeadb;color:#a2531a} 431.calx-tag.handi{background:#efe7fb;color:#5a2ea0} 432.calx-foot{padding:12px 16px;border-top:1px solid #e6eef5;display:flex;gap:10px;align-items:center;justify-content:space-between;background:#fafcfe} 433.calx-x{background:none;border:none;font-size:24px;line-height:1;color:#9fb2c2;cursor:pointer;padding:0} 434#calx-dl{background:#0b6ba8;color:#fff;border:none;border-radius:10px;padding:11px 18px;font-size:14.5px;font-weight:700;cursor:pointer;box-shadow:0 2px 8px rgba(11,107,168,.35)} 435#calx-dl:hover{background:#095c90} 436#calx-dl:disabled{background:#b8c7d3;box-shadow:none;cursor:not-allowed} 437.calx-hint{font-size:11.5px;color:#7d93a4} 438@media(max-width:560px){#calx-card{margin:0}.calx-sub{font-size:12px}} 439</style> 440<div id="calx-ov" onclick="if(event.target===this)calxClose()"> 441 <div id="calx-card" role="dialog" aria-label="Exporter vers Calendrier"> 442 <div class="calx-head"> 443 <div style="display:flex;align-items:flex-start;justify-content:space-between;gap:10px"> 444 <h2>ð Exporter vers Calendrier Apple</h2> 445 <button class="calx-x" onclick="calxClose()" title="Fermer">Ã</button> 446 </div> 447 <p class="calx-sub">La liste reprend l'<b>affichage en cours</b> du calendrier (filtre par année de naissance, catégorie, « à venir »â¦). Décochez ce que vous ne voulez pas, puis téléchargez le fichier <b>.ics</b> : il s'ouvre dans Calendrier (Mac, iPad, iPhone). Horaires : matin <b>8h30â12h</b>, après-midi <b>13h30â17h</b>, journée complète <b>8h30â17h</b> ; compétitions à leur départ officiel ; assemblées générales en soirée <b>18h30â20h30</b> (à préciser) ; plusieurs jours â « journée entière ». Le détail du programme est repris dans les notes. Vacances scolaires et arrêt technique ne sont pas inclus.</p> 448 <div class="calx-scope" id="calx-scope"></div> 449 <div class="calx-tools"> 450 <button onclick="calxSet('all')">Tout cocher</button> 451 <button class="calx-none" onclick="calxSet('none')">Tout décocher</button> 452 <button onclick="calxSet('future')">à venir</button> 453 <button onclick="calxSet('comp')">ð Compétitions</button> 454 <button onclick="calxSet('club')">ð RDV CNBV</button> 455 <button onclick="calxSet('handi')">â¿ Handi</button> 456 </div> 457 </div> 458 <div class="calx-list" id="calx-list"></div> 459 <div class="calx-foot">
460 <span class="calx-hint">Astuce : sur iPad, ouvrez le .ics puis « Ajouter tout » dans Calendrier.</span> 461 <button id="calx-dl" onclick="calxDownload()">⤠Télécharger (0)</button> 462 </div> 463 </div> 464</div>
465<script> 466(function(){ 467 var MONTHS={janvier:1,"février":2,fevrier:2,mars:3,avril:4,mai:5,juin:6,juillet:7,"août":8,aout:8,septembre:9,octobre:10,novembre:11,"décembre":12,decembre:12}; 468 function pad(n){return (n<10?'0':'')+n;} 469 function dec(s){return String(s==null?'':s) 470 .replace(/'/gi,"'").replace(/'/g,"'").replace(/&/g,'&') 471 .replace(/"/g,'"').replace(/</g,'<').replace(/>/g,'>').replace(/ /g,' ');} 472 function fmtH(hm){var p=hm.split(':');return (+p[0])+'h'+(p[1]==='00'?'':p[1]);} 473 function addDays(y,m,d,n){var t=new Date(y,m-1,d);t.setDate(t.getDate()+n);return {y:t.getFullYear(),m:t.getMonth()+1,d:t.getDate()};} 474 var CATLBL={club:'RDV CNBV',av:'Avenirs',benj:'Benjamins',jun:'Juniors et +',mai:'Maîtres',handi:'Handi',enf:'E.N.F'}; 475 function stripHTML(s){ return dec(String(s||'') 476 .replace(/<\s*br\s*\/?\s*>/gi,'\n').replace(/<\/(div|p|li)>/gi,'\n') 477 .replace(/<li>/gi,'⢠').replace(/<[^>]+>/g,'')) 478 .replace(/[ \t]+\n/g,'\n').replace(/\n{3,}/g,'\n\n').replace(/[ \t]{2,}/g,' ').trim(); } 479 function isAG(e){ return /assembl[ée]e\s+g[ée]n[ée]rale/i.test(dec(e.title||'')); } 480 function isStage(e){ return /\bstage\b/i.test(dec(e.title||'')); } 481 function isExclu(e){ return e.type==='vac' || /arr[eê]t\s+technique|fermeture/i.test(dec(e.title||'')); } 482 483 // Résout dates + horaires d'un événement selon les règles CNBV 484 function resolve(e){ 485 var iso=(e.date||'').split('-'); var sy=+iso[0],sm=+iso[1],sd=+iso[2]; 486 var raw=e.dateText||''; var low=raw.toLowerCase(); 487 var comp=(e.comp==1||e.comp==='1'); 488 var isMatin=/matin/.test(low); 489 var isAprem=/apr[eè]s-?midi|aprem/.test(low); 490 var ambiguous=/\bou\b/.test(low); // "et/ou", "ou ?" => jour de départ seul 491 var clean=raw.replace(/\([^)]*\)/g,' ').replace(/\d{1,2}\s*h\s*\d{0,2}/gi,' '); 492 var isRange=(/\bau\b/.test(low) || (/\bet\b/.test(low) && !ambiguous) || /\d\s*[-ââ]\s*[a-zà âéèêîïôûç]/i.test(raw)); 493 var nums=(clean.match(/\b\d{1,2}\b/g)||[]).map(Number).filter(function(n){return n>=1&&n<=31;}); 494 if(isRange && !ambiguous && nums.length>=2){ 495 var endDay=nums[nums.length-1]; 496 var mns=low.match(/janvier|février|fevrier|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|decembre/g); 497 var em=sm,ey=sy; 498 if(mns&&mns.length) em=MONTHS[mns[mns.length-1]]||sm; 499 if(em===sm && endDay<sd) em=sm+1; 500 if(em>12){em-=12;ey=sy+1;} 501 else if(em<sm) ey=sy+1; // ex. décembre -> janvier 502 var end={y:ey,m:em,d:endDay}; 503 var endT=new Date(end.y,end.m-1,end.d), startT=new Date(sy,sm-1,sd); 504 if(endT>startT){ 505 return {allday:true,s:{y:sy,m:sm,d:sd},e2:end, 506 label:'Journée entière · '+pad(sd)+'/'+pad(sm)+' â '+pad(end.d)+'/'+pad(end.m), 507 hint:isStage(e)?'horaires par groupe à préciser':''}; 508 } 509 } 510 if(isAG(e)) return {allday:false,s:{y:sy,m:sm,d:sd},start:'18:30',end:'20:30',label:'Soirée · 18h30â20h30',hint:'horaire à préciser'}; 511 if(comp && e.op){var end=addHours(e.op,e.dur||1);return {allday:false,s:{y:sy,m:sm,d:sd},start:e.op,end:end,label:'Départ officiel · '+fmtH(e.op)+'â'+fmtH(end)};} 512 if(isMatin && !isAprem) return {allday:false,s:{y:sy,m:sm,d:sd},start:'08:30',end:'12:00',label:'Matin · 8h30â12h'}; 513 if(isAprem && !isMatin) return {allday:false,s:{y:sy,m:sm,d:sd},start:'13:30',end:'17:00',label:'Après-midi · 13h30â17h'}; 514 if(e.op){var end2=addHours(e.op,e.dur||1);return {allday:false,s:{y:sy,m:sm,d:sd},start:e.op,end:end2,label:'Départ · '+fmtH(e.op)+'â'+fmtH(end2)};} 515 return {allday:false,s:{y:sy,m:sm,d:sd},start:'08:30',end:'17:00',label:'Journée · 8h30â17h'}; 516 } 517 518 // Construit la liste â préfère les données EN LIGNE si chargées, sinon la graine locale. 519 // Respecte le FILTRE affiché (année de naissance, catégorie, « à venir », recherche). 520 var LIST=[]; 521 function calxVisibleIds(){ 522 // Set des id d'événements actuellement visibles dans le tableau, selon le filtre actif. 523 var rows=document.querySelectorAll('#cal tbody tr.ev'); 524 if(!rows.length) return null; // sécurité : pas de filtre applicable 525 var vis={}; 526 rows.forEach(function(r){ 527 var shown;
528 try{ shown=(typeof passFilters==='function')?passFilters(r):(r.style.display!=='none'); } 529 catch(e){ shown=(r.style.display!=='none'); } 530 if(shown && r.dataset && r.dataset.id) vis[String(r.dataset.id)]=1; 531 }); 532 return vis; 533 } 534 function calxBuild(){ 535 LIST=[]; var month=''; 536 var src=(window.CAL_ONLINE&&window.CAL_ONLINE.length)?window.CAL_ONLINE:(window.CAL_SEED||[]); 537 var vis=calxVisibleIds(); 538 src.forEach(function(x){ 539 if(x.type==='mois'){month=x.label||'';} 540 else if(x.type==='ev' && !isExclu(x)){ 541 if(vis && !vis[String(x.id)]) return; // hors du filtre affiché â on n'inclut pas 542 LIST.push({e:x,month:month,res:resolve(x)}); 543 } 544 }); 545 } 546 function calxScope(){ 547 // Rappel du filtre courant (réutilise le message du calendrier). 548 var t=''; try{ t=(document.getElementById('cnt')||{}).textContent||''; }catch(e){} 549 t=t.replace(/\s*â\s*\d+\s*RDV\s*$/,'').replace(/\s*\(\d+\)\s*$/,'').trim(); 550 if(!t || /tous les/i.test(t)) return 'Affichage : tous les événements'; 551 return 'Affichage suivi : '+t; 552 } 553 554 function esc(s){return String(s==null?'':s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"');} 555 function today(){var d=new Date();return new Date(d.getFullYear(),d.getMonth(),d.getDate());} 556 557 function render(){ 558 var host=document.getElementById('calx-list'); if(!host)return; 559 var h='',lastM=''; 560 LIST.forEach(function(it,i){ 561 if(it.month!==lastM){ h+='<div class="calx-month">'+esc(it.month)+'</div>'; lastM=it.month; } 562 var e=it.e,r=it.res; 563 var tags=''; 564 if(e.comp==1||e.comp==='1') tags+='<span class="calx-tag comp">ð Compét.</span>'; 565 if(e.club==1||e.club==='1') tags+='<span class="calx-tag club">CNBV</span>'; 566 if(e.handi==1||e.handi==='1') tags+='<span class="calx-tag handi">â¿</span>'; 567 h+='<label class="calx-row">' 568 +'<input type="checkbox" class="calx-cb" data-i="'+i+'" checked onchange="calxCount()">' 569 +'<span class="calx-main">' 570 +'<span class="calx-title">'+esc(dec(e.title))+'</span>' 571 +'<span class="calx-meta">' 572 +'<span class="calx-when'+(r.allday?' allday':'')+'">'+esc(r.label)+'</span>' 573 +(r.hint?'<span class="calx-hintrow">â '+esc(r.hint)+'</span>':'') 574 +'<span>'+esc(dec(e.dateText||''))+(e.lieu?' · '+esc(dec(e.lieu)):'')+'</span>' 575 +tags+'</span></span></label>'; 576 }); 577 host.innerHTML=h; calxCount(); 578 } 579 580 window.calxOpen=function(){ calxBuild(); render(); var sc=document.getElementById('calx-scope'); if(sc)sc.textContent='ð¯ '+calxScope(); document.getElementById('calx-ov').classList.add('on'); document.body.style.overflow='hidden'; }; 581 window.calxClose=function(){ document.getElementById('calx-ov').classList.remove('on'); document.body.style.overflow=''; }; 582 window.calxCount=function(){ 583 var n=document.querySelectorAll('.calx-cb:checked').length; 584 var b=document.getElementById('calx-dl'); b.textContent='⤠Télécharger ('+n+')'; b.disabled=(n===0); 585 }; 586 window.calxSet=function(mode){ 587 var t=today(); 588 document.querySelectorAll('.calx-cb').forEach(function(cb){ 589 var it=LIST[+cb.dataset.i],e=it.e,r=it.res,on=false; 590 if(mode==='all')on=true; 591 else if(mode==='none')on=false; 592 else if(mode==='comp')on=(e.comp==1||e.comp==='1'); 593 else if(mode==='club')on=(e.club==1||e.club==='1'); 594 else if(mode==='handi')on=(e.handi==1||e.handi==='1'); 595 else if(mode==='future'){var d=new Date(r.s.y,r.s.m-1,r.s.d);on=(d>=t);} 596 cb.checked=on; 597 }); 598 calxCount(); 599 }; 600 601 function icsEscape(s){return dec(s).replace(/\\/g,'\\\\').replace(/;/g,'\\;').replace(/,/g,'\\,').replace(/\r?\n/g,'\\n');} 602 function stamp(){var d=new Date();return d.getUTCFullYear()+pad(d.getUTCMonth()+1)+pad(d.getUTCDate())+'T'+pad(d.getUTCHours())+pad(d.getUTCMinutes())+pad(d.getUTCSeconds())+'Z';} 603 604 window.calxDownload=function(){ 605 var checked=[].slice.call(document.querySelectorAll('.calx-cb:checked')); 606 if(!checked.length)return; 607 var dstamp=stamp(); 608 var out=['BEGIN:VCALENDAR','VERSION:2.0','PRODID:-//CNBV//Calendrier 2026-2027//FR','CALSCALE:GREGORIAN','METHOD:PUBLISH','X-WR-CALNAME:CNBV 2026-2027']; 609 checked.forEach(function(cb){ 610 var it=LIST[+cb.dataset.i],e=it.e,r=it.res;
611 var sc=r.s.y+pad(r.s.m)+pad(r.s.d); 612 var uid=sc+'-'+(e.id||Math.random().toString(36).slice(2,7))+'@cnbv'; 613 out.push('BEGIN:VEVENT','UID:'+uid,'DTSTAMP:'+dstamp); 614 if(r.allday){ 615 var nd=addDays(r.e2.y,r.e2.m,r.e2.d,1); 616 out.push('DTSTART;VALUE=DATE:'+sc); 617 out.push('DTEND;VALUE=DATE:'+nd.y+pad(nd.m)+pad(nd.d)); 618 }else{ 619 out.push('DTSTART:'+sc+'T'+r.start.replace(':','')+'00'); 620 out.push('DTEND:'+sc+'T'+r.end.replace(':','')+'00'); 621 } 622 out.push('SUMMARY:'+icsEscape(e.title)); 623 if(e.lieu) out.push('LOCATION:'+icsEscape(e.lieu)); 624 // ---- Notes détaillées de l'événement ---- 625 var nl=[]; 626 var prog=stripHTML(e.program||''); 627 if(prog) nl.push(prog); 628 var infos=[]; 629 if(e.bassin) infos.push('Bassin : '+dec(e.bassin)); 630 if(e.lieu) infos.push('Lieu : '+dec(e.lieu)); 631 infos.push((e.home==1||e.home==='1')?'à domicile (Bellegarde / ValséO)':'à lâextérieur'); 632 if(e.comp==1||e.comp==='1') infos.push('Compétition'); 633 var cl=(e.cats||[]).map(function(c){return CATLBL[c]||c;}).filter(Boolean); 634 if(cl.length) infos.push('Concernés : '+cl.join(', ')); 635 if(infos.length) nl.push(infos.join(' · ')); 636 if(r.hint) nl.push('â '+r.hint.charAt(0).toUpperCase()+r.hint.slice(1)+'.'); 637 nl.push('â Calendrier CNBV 2026-2027'); 638 out.push('DESCRIPTION:'+icsEscape(nl.join('\n\n'))); 639 out.push('END:VEVENT'); 640 }); 641 out.push('END:VCALENDAR'); 642 function foldLine(l){ if(l.length<=72) return l; var o='',i=0; while(i<l.length){ o+=(i?'\r\n ':'')+l.substr(i,72); i+=72; } return o; } 643 var ical=out.map(foldLine).join('\r\n'); 644 if(typeof dl==='function') dl('CNBV_calendrier_2026-2027.ics',ical); 645 else { var b=new Blob([ical],{type:'text/calendar'});var u=URL.createObjectURL(b);var a=document.createElement('a');a.href=u;a.download='CNBV_calendrier_2026-2027.ics';document.body.appendChild(a);a.click();document.body.removeChild(a);setTimeout(function(){URL.revokeObjectURL(u);},1500); } 646 }; 647})(); 648</script>
648 649<!-- ==== /CALX ==== --> 650 651 652<style id="inscr-style"> 653.inscr-ov{position:fixed;inset:0;background:rgba(20,30,50,.55);z-index:9999;display:none;overflow:auto;padding:24px 12px;-webkit-overflow-scrolling:touch} 654.inscr-ov.on{display:block} 655.insc-modal{max-width:620px;margin:0 auto;background:#fff;border-radius:14px;padding:22px 20px 26px;box-shadow:0 18px 60px rgba(0,0,0,.3);position:relative;font-size:15px} 656.insc-modal.insc-wide{max-width:920px} 657.insc-modal h2{margin:0 6px 2px 0;font-size:1.2rem;color:#12385f;padding-right:28px} 658.insc-modal h3{margin:18px 0 8px;font-size:1rem;color:#0d6b3f;border-bottom:2px solid #e6f0ea;padding-bottom:4px} 659.insc-sub{color:#667;margin-bottom:8px;font-size:.9rem} 660.insc-x{position:absolute;top:12px;right:14px;border:none;background:#eef1f5;border-radius:8px;width:32px;height:32px;font-size:16px;cursor:pointer;color:#334} 661.insc-fld{margin:10px 0} 662.insc-fld label,.insc-grid label,.insc-grid2 label{display:block;font-size:.8rem;color:#556;margin-bottom:3px;font-weight:600} 663.insc-modal input,.insc-modal select,.insc-modal textarea{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid #cdd6e0;border-radius:9px;font-size:15px;font-family:inherit} 664.insc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px} 665.insc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px} 666.insc-card{border:1px solid #dde5ee;border-radius:11px;padding:12px;margin:10px 0;background:#f8fafc} 667.insc-cardhd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px} 668.insc-del{border:none;background:#fde8e8;color:#b3261e;border-radius:7px;padding:5px 10px;font-size:.8rem;cursor:pointer} 669.insc-add{border:1px dashed #7aa7c7;background:#eef6fc;color:#12557f;border-radius:9px;padding:9px 12px;cursor:pointer;font-size:.9rem;margin-top:2px} 670.insc-meal{margin-top:10px;padding-top:8px;border-top:1px dashed #d8e0ea} 671.insc-ck{display:flex;align-items:center;gap:8px;font-weight:600;color:#334;font-size:.9rem} 672.insc-ck input{width:auto!important} 673.insc-note{background:#fff7e6;border:1px solid #f2d99b;color:#7a5a12;border-radius:9px;padding:9px 11px;font-size:.85rem;margin:10px 0} 674.insc-status{min-height:20px;margin:10px 0;font-size:.9rem} 675.insc-status.err{color:#b3261e}.insc-status.ok{color:#0d7a3f;font-weight:600} 676.insc-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px} 677.insc-cancel{border:1px solid #cdd6e0;background:#fff;border-radius:9px;padding:10px 16px;cursor:pointer} 678.insc-submit{border:none;background:#0d6b3f;color:#fff;border-radius:9px;padding:10px 18px;cursor:pointer;font-weight:600} 679.insc-withdraw{border:1px solid #f0b9b3;background:#fff;color:#b3261e;border-radius:9px;padding:10px 14px;cursor:pointer;font-size:.85rem} 680.insc-tiny{color:#889;font-size:.75rem;margin-top:8px;text-align:right} 681.buv-list{margin-top:6px} 682.buv-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px dashed #eef2f6} 683.buv-row .insc-ck{flex:1;font-weight:500} 684.buv-qty{width:66px!important;text-align:center} 685.buv-autre-lab{flex:0 0 auto;font-size:.85rem;color:#556;font-weight:600} 686.buv-autre{flex:1} 687.insc-btn{margin-left:8px;border:none;background:#0d6b3f;color:#fff;border-radius:7px;padding:3px 9px;font-size:.78rem;cursor:pointer;vertical-align:middle} 688.insc-btn:hover{background:#0a5732} 689/* coach manager */ 690.insc-filter{margin:6px 0 10px} 691.ic-row{border:1px solid #e0e7ef;border-radius:10px;padding:10px 12px;margin:8px 0;background:#fff;transition:all .12s} 692/* Inscriptions ouvertes : cadre épais « en volume » (relief) */ 693.ic-row.ic-on{border:3px solid #0d6b3f;border-radius:13px;background:linear-gradient(#f4fdf8,#e2f6ec);box-shadow:0 6px 0 #0a5732,0 12px 20px rgba(13,107,63,.28);transform:translateY(-1px);margin:16px 0} 694/* Date passée : fond rouge translucide */ 695.ic-row.ic-past{background:rgba(200,30,30,.10);border-color:#e6b3b3} 696.ic-row.ic-past .ic-date{color:#a01414} 697.ic-row.ic-on.ic-past{background:linear-gradient(rgba(200,30,30,.12),rgba(200,30,30,.12)),linear-gradient(#f4fdf8,#e2f6ec)} 698.ic-pill{display:inline-block;border-radius:20px;padding:2px 10px;font-size:.72rem;font-weight:700;margin-left:8px;vertical-align:middle} 699.ic-pill.open{background:#0d6b3f;color:#fff} 700.ic-pill.past{background:#c81d1d;color:#fff} 701.ic-main{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:8px} 702.ic-date{color:#667;font-size:.82rem} 703.ic-ctrls{display:flex;gap:14px;flex-wrap:wrap;align-items:center} 704.ic-price input{width:66px!important;display:inline-block;padding:5px 7px} 705.ic-save{border:none;background:#12557f;color:#fff;border-radius:8px;padding:7px 13px;
705cursor:pointer;font-size:.85rem} 706.ic-stat{font-size:.85rem;min-width:16px}.ic-stat.ok{color:#0d7a3f;font-weight:700}.ic-stat.err{color:#b3261e} 707.ic-convoc{border:none;background:#eaf3ff;color:#12557f;border:1px solid #b9d4ee;border-radius:8px;padding:7px 11px;cursor:pointer;font-size:.85rem} 708/* picker convocations */ 709.pk-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start;margin:8px 0} 710.pk-filters input{padding:8px 9px;border:1px solid #cdd6e0;border-radius:9px;font-size:14px} 711.pk-fgrp{display:flex;flex-direction:column;gap:4px} 712.pk-mslab{font-size:.8rem;color:#556;font-weight:600} 713.pk-multi{color:#8a97a4;font-weight:400;font-size:.72rem} 714/* menu déroulant à cocher (multi-sélection) */ 715.pk-ms{position:relative;display:flex;flex-direction:column;gap:4px} 716.pk-ms-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:160px;padding:8px 11px;border:1px solid #cdd6e0;border-radius:9px;background:#fff;cursor:pointer;font-size:14px;color:#22303f} 717.pk-ms-car{color:#8a97a4} 718.pk-ms-panel{display:none;position:absolute;top:100%;left:0;z-index:30;margin-top:4px;background:#fff;border:1px solid #cdd6e0;border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.20);max-height:250px;overflow:auto;min-width:190px;padding:4px} 719.pk-ms-panel.on{display:block} 720.pk-ms-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:.92rem;white-space:nowrap} 721.pk-ms-item:hover{background:#f2f7fb} 722.pk-ms-item input{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;border:2px solid #9fb3c4;border-radius:50%;position:relative;cursor:pointer;margin:0} 723.pk-ms-item input:checked{background:#0d6b3f;border-color:#0d6b3f} 724.pk-ms-item input:checked::after{content:'â';color:#fff;position:absolute;left:2.5px;top:-1.5px;font-size:13px;font-weight:700} 725.pk-bulk{display:flex;gap:8px;margin:4px 0 8px;flex-wrap:wrap} 726.pk-bulk button{border:1px dashed #7aa7c7;background:#eef6fc;color:#12557f;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:.82rem} 727.pk-bulk .pk-recap{border:1px solid #0d6b3f;background:#f2fbf6;color:#0d6b3f;border-style:solid} 728.pk-hint{color:#8a97a4;font-size:.72rem;margin-top:4px} 729.pk-rtable{border-collapse:collapse;width:100%;font-size:.85rem;margin:2px 0 6px} 730.pk-rtable th,.pk-rtable td{border:1px solid #e0e7ef;padding:5px 8px;text-align:left} 731.pk-rtable thead th{background:#eef3f8;color:#12385f} 732#pk-recap-body h3{margin:14px 0 6px;color:#0d6b3f;font-size:.95rem} 733.pk-list{max-height:46vh;overflow:auto;border:1px solid #e0e7ef;border-radius:10px;padding:4px} 734.pk-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid #eef2f6;cursor:pointer} 735.pk-row:last-child{border-bottom:none} 736.pk-row input{width:auto} 737.pk-nm{font-weight:600;color:#22303f} 738.pk-meta{color:#7a8794;font-size:.8rem;margin-left:auto;text-align:right} 739.pk-noiuf{opacity:.55} 740.pk-warn{background:#fdecec;border:1px solid #f3b4b4;color:#8a1c1c;border-radius:9px;padding:9px 12px;margin:8px 0;font-size:.85rem} 741.pk-oocb{display:inline-block;background:#fdecec;color:#b3261e;border:1px solid #f3b4b4;border-radius:6px;padding:1px 7px;font-size:.72rem;font-weight:600;margin-left:6px} 742.pk-row.pk-ooc{background:#fff6f6} 743.pk-mail{display:inline-block;background:#0d6b3f;color:#fff;border-radius:6px;padding:2px 8px;text-decoration:none;font-size:.8rem} 744.pk-rm{border:none;background:#fde8e8;color:#b3261e;border-radius:6px;padding:3px 9px;font-size:.85rem;font-weight:700;cursor:pointer} 745.pk-rm:hover{background:#f9d0d0} 746.insc-receipt{display:inline-block;margin-top:8px;background:#0d6b3f;color:#fff;border-radius:8px;padding:8px 12px;text-decoration:none;font-weight:600} 747.nl-steps{background:#f2f7fb;border:1px solid #dbe6f0;border-radius:10px;padding:10px 12px;margin:10px 0;font-size:.9rem;color:#22303f} 748.nl-steps ol{margin:6px 0 0;padding-left:20px} 749.nl-steps li{margin:4px 0} 750.nl-steps>b{color:#0b3d63} 751.nl-convoc{margin:10px 0} 752.nl-convoc>b{color:#0d6b3f;display:block;margin-bottom:6px} 753.nlc-row{border:2px solid #e0e7ef;border-radius:11px;padding:10px 12px;margin:8px 0;background:#fafcff} 754.nlc-row.nlc-open{border-color:#0d6b3f;background:linear-gradient(#f4fdf8,#e8f7ef);cursor:pointer;box-shadow:0 3px 0 #0a5732} 755.nlc-row.nlc-open:active{transform:translateY(1px);box-shadow:0 1px 0 #0a5732} 756.nlc-msg{color:#12385f;margin-bottom:6px;line-height:1.35} 757.nlc-cta{font-size:.9rem;font-weight:700} 758.nlc-open .nlc-cta{color:#0d6b3f} 759.nlc-row:not(.nlc-open) .nlc-cta{color:#a06a00} 760.pk-prov{display:inline-block;background:#fff3d6;color:#8a6100;border:1px solid #f0d79a;border-radius:6px;padding:1px 6px;font-size:.7rem;font-weight:600;margin-left:6px;vertical-align:middle} 761.inscr-prov-note{position:fixed;left:12px;right:12px;bottom:12px;z-index:9998;background:#eef7ff;border:1px solid #b9d4ee;color:#12557f;border-radius:10px;padding:10px 14px;font-size:.85rem;box-shadow:0 6px 24px rgba(0,0,0,.15);max-width:640px;margin:0 auto} 762@media(max-width:560px){.insc-grid{grid-template-columns:1fr}.ic-ctrls{gap:8px}.pk-meta{margin-left:0;flex-basis:100%}} 763.pk-ucat{display:inline-block;background:#e0ecff;color:#1e40af;border:1px solid #b9d0f3;border-radius:6px;padding:0 6px;font-size:.72rem;font-weight:700} 764</style>
765<script> 766/* ==== INSCRIPTIONS CNBV â calendrier (coach ouvre / parent inscrit) ==== v1 ==== */ 767(function(){ 768 var QW = (typeof QWORKER!=='undefined'&&QWORKER) || 'https://super-math-ffn-perfs.francois-debutnocode.workers.dev'; 769 var CFG = {}; // config par eventId {open,meals,transport,mealPrice,seats,note,title,date,lieu} 770 var CONVOC = {}; // convocations par eventId : [iuf,...] 771 var ROSTER = null; // liste des adhérents (coach) [{nom,prenom,iuf,groupes,annee,archive}] 772 var ME = null; // identité nageur connecté {nom,prenom,genre,annee} 773 var NCODE = ''; // code nageur (localStorage cal_ncode) 774 var COACHPW = ''; // code coach (localStorage cal_coach) 775 776 function esc(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];});} 777 function readState(){ try{NCODE=localStorage.getItem('cal_ncode')||'';}catch(e){} try{COACHPW=localStorage.getItem('cal_coach')||'';}catch(e){} } 778 function splitName(full){ // "NOM Prenom" -> {nom, prenom, genre?} 779 var w=String(full||'').trim().split(/\s+/); if(!w.length) return {nom:'',prenom:''}; 780 var nom=[],pre=[]; var seenLower=false; 781 for(var i=0;i<w.length;i++){ var isUp = w[i]===w[i].toUpperCase() && /[A-ZÃ-Ã]/.test(w[i]); if(isUp && !seenLower){nom.push(w[i]);} else {seenLower=true;pre.push(w[i]);} } 782 if(!pre.length && nom.length>1){ pre=[nom.pop()]; } 783 return {nom:nom.join(' '), prenom:pre.join(' ')}; 784 } 785 786 // ---- chargement config publique (quels évènements sont ouverts) ---- 787 function loadCfg(cb){ 788 fetch(QW+'/inscriptions/config').then(function(r){return r.json();}).then(function(d){ 789 if(d&&d.ok&&d.config) CFG=d.config; if(cb)cb(); 790 }).catch(function(){ if(cb)cb(); }); 791 } 792 // ---- convocations (coach) ---- 793 function loadConvoc(cb){ 794 readState(); 795 fetch(QW+'/inscriptions/convoc?pw='+encodeURIComponent(COACHPW)).then(function(r){return r.json();}).then(function(d){ 796 if(d&&d.ok&&d.convoc) CONVOC=d.convoc; if(cb)cb(); 797 }).catch(function(){ if(cb)cb(); }); 798 } 799 function loadRoster(cb){ 800 readState(); 801 if(ROSTER){ if(cb)cb(); return; } 802 fetch(QW+'/roster?pw='+encodeURIComponent(COACHPW)).then(function(r){return r.json();}).then(function(d){ 803 ROSTER=(d&&d.ok&&d.adherents)?d.adherents:[]; if(cb)cb(); 804 }).catch(function(){ ROSTER=[]; if(cb)cb(); }); 805 } 806 807 // ---- identité du nageur connecté (préremplissage) ---- 808 function loadMe(cb){ 809 readState(); 810 if(!NCODE){ ME=null; if(cb)cb(); return; } 811 if(ME){ if(cb)cb(); return; } 812 fetch(QW+'/?code='+encodeURIComponent(NCODE)).then(function(r){return r.json();}).then(function(d){ 813 if(d&&d.ok!==false&&d.nom){ var sp=splitName(d.nom); ME={nom:sp.nom,prenom:sp.prenom,annee:d.annee||'',genre:(String(d.sexe||'').toUpperCase().indexOf('DAME')>=0?'D':(String(d.sexe||'').toUpperCase().indexOf('MESS')>=0?'M':''))}; } 814 if(cb)cb(); 815 }).catch(function(){ if(cb)cb(); }); 816 } 817 818 // ============ DÃCORATION DES ÃVÃNEMENTS (bouton S'inscrire) ============ 819 function decorate(){ 820 readState(); 821 var rows = document.querySelectorAll('#cal tbody tr.ev[data-id]'); 822 for(var i=0;i<rows.length;i++){ 823 var tr=rows[i]; var id=String(tr.getAttribute('data-id')||''); 824 var titleCell = tr.querySelector('td.l:nth-child(3)') || tr.querySelectorAll('td.l')[1] || tr.querySelector('td.l'); 825 if(!titleCell) continue; 826 var old = titleCell.querySelector('.inscr-btn'); if(old) old.remove(); 827 var c = CFG[id]; 828 if(!(c&&c.open)) continue; // seulement les évènements ouverts 829 if(!NCODE) continue; // bouton visible uniquement pour un nageur connecté 830 var b=document.createElement('button'); 831 b.className='inscr-btn noprint'; 832 b.textContent='ð Sâinscrire'; 833 b.setAttribute('data-eid',id); 834 b.onclick=function(ev){ ev.stopPropagation(); openForm(this.getAttribute('data-eid')); }; 835 titleCell.appendChild(b); 836 } 837 } 838 839 // ============ FORMULAIRE PARENT ============ 840 function evMeta(id){ 841 var c=CFG[id]||{}; 842 var tr=document.querySelector('#cal tbody tr.ev[data-id="'+id+'"]'); 843 return { 844 id:id, 845 title: c.title || (tr&&tr.getAttribute('data-title')) || 'Ãvènement', 846 date: c.date || (tr&&tr.getAttribute('data-date')) || '', 847 lieu: c.lieu || (tr&&tr.getAttribute('data-lieu')) || '', 848 meals: !!c.meals, transport: !!c.transport, buvette: !!c.buvette, 849 mealPrice: (c.mealPrice!=null?c.mealPrice:10) 850 }; 851 } 852 var BUV_ITEMS=['Un gâteau','Des crêpes','Une tarte','Une quiche','Un flan','De la confiture','Du miel','De la pâte à tartiner','De la crème de marron','Rien pour cette fois']; 853 function frDate(iso){ if(!iso) return ''; var p=String(iso).split('-'); if(p.length!==3) return iso; return p[2]+'/'+p[1]+'/'+p[0]; } 854 855 var CUR=null; // {meta, swimmers:[], officials:[], volunteers:[], email, tel, contact2} 856 function loadProfile(){ try{ return JSON.parse(localStorage.getItem('cnbv_inscr_profile')||'null'); }catch(e){ return null; } } 857 function saveProfile(p){ try{ localStorage.setItem('cnbv_inscr_profile', JSON.stringify(p)); }catch(e){} } 858 function openForm(id){ 859 loadMe(function(){ 860 var meta=evMeta(id); 861 var prof=loadProfile()||{}; 862 CUR={ meta:meta, officials:[], volunteers:[], email:prof.email||'', tel:prof.tel||'', contact2:prof.contact2||null }; 863 // nageurs pré-remplis depuis le profil famille, sinon le nageur connecté 864 if(prof.swimmers && prof.swimmers.length){ CUR.swimmers=prof.swimmers.map(function(s){ return {nom:s.nom||'', prenom:s.prenom||'', genre:s.genre||'', participe:true, comment:''}; }); } 865 else { CUR.swimmers=[{nom:(ME&&ME.nom)||'', prenom:(ME&&ME.prenom)||'', genre:(ME&&ME.genre)||'', participe:true, comment:''}]; } 866 // garantir la présence du nageur connecté 867 if(ME&&ME.nom){ var has=CUR.swimmers.some(function(s){ return (s.nom||'').toUpperCase()===String(ME.nom).toUpperCase() && (s.prenom||'').toUpperCase()===String(ME.prenom||'').toUpperCase(); }); if(!has) CUR.swimmers.unshift({nom:ME.nom,prenom:ME.prenom,genre:ME.genre,participe:true,comment:''}); } 868 renderForm(); 869 document.getElementById('inscr-ov').classList.add('on'); 870 }); 871 } 872 function closeForm(){ var o=document.getElementById('inscr-ov'); if(o)o.classList.remove('on'); } 873 window.inscrOpenForm=openForm; 874 window.inscrOpenFromPanel=function(id){ try{ if(typeof nlClose==='function')nlClose(); }catch(e){} openForm(id); }; 875 // Panneau « Tes convocations » affiché dans l'espace nageur (clic sur le nom) 876 window.inscrConvocPanel=function(){ 877 readState(); 878 var ids=[]; try{ ids=(window.NL_SELS||[]).map(String); }catch(e){} 879 ids=ids.filter(function(v,i){ return v && ids.indexOf(v)===i; }); 880 if(!ids.length) return ''; 881 var h='<div class="nl-convoc"><b>ð£ Tes convocations</b>'; 882 ids.forEach(function(id){ 883 var c=CFG[id]||{}; var meta=evMeta(id); var open=!!c.open; 884 h+='<div class="nlc-row'+(open?' nlc-open':'')+'"'+(open?(' onclick="inscrOpenFromPanel(\''+esc(id)+'\')"'):'')+'>' 885 +'<div class="nlc-msg">Tu es convoqué(e) à la compétition <b>'+esc(meta.title)+'</b> du <b>'+esc(frDate(meta.date))+'</b>'+(meta.lieu?' à <b>'+esc(meta.lieu)+'</b>':'')+'.</div>' 886 +'<div class="nlc-cta">'+(open?'ð Clique ici pour tâinscrire â':'â³ inscriptions bientôt ouvertes')+'</div>' 887 +'</div>'; 888 }); 889 h+='</div>'; 890 return h; 891 }; 892 893 function mealTypeOptions(v){ 894 var opts=[['sportif','Menu Sportif'],['halal','Halal'],['vegetarien','Végétarien'],['allergie','Allergie (préciser)'],['autre','Autre (préciser)']]; 895 return opts.map(function(o){return '<option value="'+o[0]+'"'+(v===o[0]?' selected':'')+'>'+o[1]+'</option>';}).join(''); 896 } 897 function collect(){ // lit le DOM -> CUR 898 if(!CUR)return; 899 var em=document.getElementById('insc-email'); if(em)CUR.email=(em.value||'').trim(); 900 var tl=document.getElementById('insc-tel'); if(tl)CUR.tel=(tl.value||'').trim(); 901 var c2n=document.getElementById('insc-c2-nom'); 902 if(c2n){ var n=(c2n.value||'').trim(), t=(document.getElementById('insc-c2-tel')||{}).value||'', m=(document.getElementById('insc-c2-mail')||{}).value||''; if(n||t||m) CUR.contact2={nom:n,tel:t.trim(),mail:m.trim()}; else CUR.contact2=null; } 903 var swEls=document.querySelectorAll('#insc-swimmers .insc-card'); 904 CUR.swimmers=[].map.call(swEls,function(el){ 905 return { 906 nom:(el.querySelector('.sw-nom').value||'').trim(), 907 prenom:(el.querySelector('.sw-prenom').value||'').trim(), 908 genre:(el.querySelector('.sw-genre').value||''), 909 participe:(el.querySelector('.sw-part').value==='oui'), 910 comment:(el.querySelector('.sw-com').value||'').trim(), 911 meal: CUR.meta.meals ? { 912 wants:(el.querySelector('.sw-meal-w')?el.querySelector('.sw-meal-w').checked:false), 913 type:(el.querySelector('.sw-meal-t')?el.querySelector('.sw-meal-t').value:'sportif'), 914 detail:(el.querySelector('.sw-meal-d')?(el.querySelector('.sw-meal-d').value||'').trim():'') 915 } : null 916 }; 917 }); 918 if(CUR.meta.buvette){ 919 // bénévoles (liste) 920 var vEls=document.querySelectorAll('#insc-volunteers .insc-vol'); 921 CUR.volunteers=[].map.call(vEls,function(el){ 922 return { 923 name:(el.querySelector('.vl-name').value||'').trim(), 924 chambreAppel:(el.querySelector('.vl-ca')?el.querySelector('.vl-ca').checked:false), 925 installation:(el.querySelector('.vl-inst')?el.querySelector('.vl-inst').checked:false) 926 }; 927 }).filter(function(v){ return v.name||v.chambreAppel||v.installation; }); 928 // buvette avec quantités 929 var items=[]; 930 BUV_ITEMS.forEach(function(lab,i){ 931 var cb=document.getElementById('buv-'+i); if(cb&&cb.checked){ var q=document.getElementById('buvq-'+i); var qty=(q?parseInt(q.value,10):1); items.push({item:lab, qty:(qty>0?qty:1)}); } 932 }); 933 var autre=(document.getElementById('buv-autre')?(document.getElementById('buv-autre').value||'').trim():''); 934 var autreQ=(document.getElementById('buvq-autre')?parseInt(document.getElementById('buvq-autre').value,10):0); 935 CUR.buvette={items:items, autre:autre, autreQty:(autreQ>0?autreQ:1)}; 936 } 937 if(CUR.meta.transport){ 938 var mode=(document.getElementById('insc-tmode')||{}).value||'propre'; 939 var seats=parseInt((document.getElementById('insc-tseats')||{}).value,10)||0; 940 var wth=((document.getElementById('insc-twith')||{}).value||'').trim(); 941 CUR.transport={mode:mode, seats:(mode==='minibus'?seats:0), with:(mode==='covoiturage'?wth:'')}; 942 } 943 var ofEls=document.querySelectorAll('#insc-officials .insc-card'); 944 CUR.officials=[].map.call(ofEls,function(el){ 945 return { 946 nomPrenom:(el.querySelector('.of-np').value||'').trim(), 947 statut:(el.querySelector('.of-st').value||'titulaire'), 948 meal: CUR.meta.meals ? { 949 wants:(el.querySelector('.of-meal-w')?el.querySelector('.of-meal-w').checked:false), 950 type:(el.querySelector('.of-meal-t')?el.querySelector('.of-meal-t').value:'sportif'), 951 detail:(el.querySelector('.of-meal-d')?(el.querySelector('.of-meal-d').value||'').trim():'') 952 } : null 953 }; 954 }); 955 } 956 function addSwimmer(){ collect(); CUR.swimmers.push({nom:'',prenom:'',genre:'',participe:true,comment:'',meal:null}); renderForm(); } 957 function delSwimmer(i){ collect(); CUR.swimmers.splice(i,1); if(!CUR.swimmers.length)CUR.swimmers.push({nom:'',prenom:'',genre:'',participe:true,comment:''}); renderForm(); } 958 function addOfficial(){ collect(); CUR.officials.push({nomPrenom:'',statut:'titulaire',meal:null}); renderForm(); } 959 function delOfficial(i){ collect(); CUR.officials.splice(i,1); renderForm(); } 960 function addVolunteer(){ collect(); CUR.volunteers=CUR.volunteers||[]; CUR.volunteers.push({name:'',chambreAppel:false,installation:false}); renderForm(); } 961 function delVolunteer(i){ collect(); CUR.volunteers.splice(i,1); renderForm(); } 962 window.inscrAddSwimmer=addSwimmer; window.inscrDelSwimmer=delSwimmer;
963 window.inscrAddOfficial=addOfficial; window.inscrDelOfficial=delOfficial; 964 window.inscrAddVolunteer=addVolunteer; window.inscrDelVolunteer=delVolunteer; 965 window.inscrToggleContact2=function(){ collect(); CUR.contact2=CUR.contact2?null:{nom:'',tel:'',mail:''}; renderForm(); }; 966 window.inscrOnOfficialChoice=function(){ collect(); renderForm(); }; 967 window.inscrOnTransport=function(){ collect(); renderForm(); }; 968 969 function renderForm(){ 970 var m=CUR.meta; 971 var h=''; 972 h+='<div class="insc-modal">'; 973 h+='<button class="insc-x" onclick="inscrClose()">â</button>'; 974 h+='<h2>ð Inscription â '+esc(m.title)+'</h2>'; 975 h+='<div class="insc-sub">'+esc(frDate(m.date))+(m.lieu?' · '+esc(m.lieu):'')+'</div>'; 976 977 // contact principal 978 h+='<h3>ð Contact</h3>'; 979 h+='<div class="insc-grid"><div><label>Adresse e-mail</label><input type="email" id="insc-email" value="'+esc(CUR.email||'')+'" placeholder="[email protected]"></div>' 980 +'<div><label>Téléphone</label><input type="tel" id="insc-tel" value="'+esc(CUR.tel||'')+'" placeholder="06 12 34 56 78"></div></div>'; 981 if(CUR.contact2){ 982 var c2=CUR.contact2; 983 h+='<div class="insc-card"><div class="insc-cardhd"><b>2áµ contact</b><button class="insc-del" onclick="inscrToggleContact2()">Retirer</button></div>' 984 +'<div class="insc-grid"><div><label>Nom</label><input id="insc-c2-nom" value="'+esc(c2.nom||'')+'"></div>' 985 +'<div><label>Téléphone</label><input type="tel" id="insc-c2-tel" value="'+esc(c2.tel||'')+'"></div>' 986 +'<div style="grid-column:span 2"><label>E-mail</label><input type="email" id="insc-c2-mail" value="'+esc(c2.mail||'')+'"></div></div></div>'; 987 } else { 988 h+='<button class="insc-add" onclick="inscrToggleContact2()">+ Ajouter un 2áµ contact (facultatif)</button>'; 989 } 990 991 // NAGEURS 992 h+='<h3>ð¦ Nageur(s)</h3><div id="insc-swimmers">'; 993 CUR.swimmers.forEach(function(s,i){ 994 h+='<div class="insc-card">'; 995 h+='<div class="insc-cardhd"><b>Nageur '+(i+1)+'</b>'+(CUR.swimmers.length>1?'<button class="insc-del" onclick="inscrDelSwimmer('+i+')">Retirer</button>':'')+'</div>'; 996 h+='<div class="insc-grid">'; 997 h+='<div><label>Nom</label><input class="sw-nom" value="'+esc(s.nom)+'"></div>'; 998 h+='<div><label>Prénom</label><input class="sw-prenom" value="'+esc(s.prenom)+'"></div>'; 999 h+='<div><label>Genre</label><select class="sw-genre"><option value=""></option><option value="D"'+(s.genre==='D'?' selected':'')+'>Dame</option><option value="M"'+(s.genre==='M'?' selected':'')+'>Messieurs</option></select></div>'; 1000 h+='<div><label>Participe ?</label><select class="sw-part" onchange="inscrPartChange()"><option value="oui"'+(s.participe?' selected':'')+'>Oui</option><option value="non"'+(!s.participe?' selected':'')+'>Non</option></select></div>'; 1001 h+='</div>'; 1002 h+='<div class="insc-fld"><label>Commentaires / observations</label><input class="sw-com" value="'+esc(s.comment)+'"></div>'; 1003 if(m.meals){ 1004 var mm=s.meal||{}; 1005 h+='<div class="insc-meal"><label class="insc-ck"><input type="checkbox" class="sw-meal-w"'+(mm.wants?' checked':'')+'> Repas du nageur ('+esc(m.mealPrice)+' ⬠)</label>' 1006 +'<div class="insc-grid2"><select class="sw-meal-t">'+mealTypeOptions(mm.type||'sportif')+'</select>' 1007 +'<input class="sw-meal-d" placeholder="Précision (allergie, autreâ¦)" value="'+esc(mm.detail||'')+'"></div></div>'; 1008 } 1009 h+='</div>'; 1010 }); 1011 h+='</div>'; 1012 h+='<button class="insc-add" onclick="inscrAddSwimmer()">+ Ajouter un nageur</button>'; 1013 // Message si "ne participe pas" : on peut valider directement, ou contribuer autrement 1014 var _contrib=(m.buvette)?'en tant quâ<b>Officiel</b> ou <b>Bénévole</b>, ou en apportant de quoi pour la <b>Buvette</b>':'en tant quâ<b>Officiel</b>'; 1015 h+='<div id="insc-partmsg" class="insc-note" style="display:none">â Un nageur ne participe pas ? Vous pouvez <b>valider directement</b> le formulaire â rien dâautre nâest obligatoire. Si vous le souhaitez, vous pouvez tout de même <b>contribuer</b> à la compétition : '+_contrib+'.</div>'; 1016 1017 // OFFICIELS 1018 h+='<h3>ð§ââï¸ Officiel</h3>'; 1019 var oc=(document.getElementById('insc-ofchoice')&&document.getElementById('insc-ofchoice').value)|| CUR.officialChoice ||'non'; 1020 h+='<div class="insc-fld"><label>
1020Souhaitez-vous être officiel sur cette compétition ?</label>' 1021 +'<select id="insc-ofchoice" onchange="inscrOnOfficialChoice()">' 1022 +'<option value="non"'+(oc==='non'?' selected':'')+'>Non (pas cette fois)</option>' 1023 +'<option value="inscrit"'+(oc==='inscrit'?' selected':'')+'>Oui, je mâinscris comme officiel</option>' 1024 +'<option value="formation"'+(oc==='formation'?' selected':'')+'>Je suis en formation</option>' 1025 +'</select></div>'; 1026 if(oc==='inscrit'||oc==='formation'){ 1027 if(!CUR.officials.length) CUR.officials.push({nomPrenom:'',statut:(oc==='formation'?'formation':'titulaire'),meal:null}); 1028 h+='<div id="insc-officials">'; 1029 CUR.officials.forEach(function(o,i){ 1030 h+='<div class="insc-card">'; 1031 h+='<div class="insc-cardhd"><b>Officiel '+(i+1)+'</b><button class="insc-del" onclick="inscrDelOfficial('+i+')">Retirer</button></div>'; 1032 h+='<div class="insc-grid">'; 1033 h+='<div style="grid-column:span 2"><label>Nom & Prénom</label><input class="of-np" value="'+esc(o.nomPrenom)+'"></div>'; 1034 h+='<div><label>Statut</label><select class="of-st"><option value="titulaire"'+(o.statut==='titulaire'?' selected':'')+'>Titulaire</option><option value="formation"'+(o.statut==='formation'?' selected':'')+'>En formation</option></select></div>'; 1035 h+='</div>'; 1036 if(m.meals){ 1037 var om=o.meal||{}; 1038 h+='<div class="insc-meal"><label class="insc-ck"><input type="checkbox" class="of-meal-w"'+(om.wants?' checked':'')+'> Repas de lâofficiel (gratuit)</label>' 1039 +'<div class="insc-grid2"><select class="of-meal-t">'+mealTypeOptions(om.type||'sportif')+'</select>' 1040 +'<input class="of-meal-d" placeholder="Précision (allergie, autreâ¦)" value="'+esc(om.detail||'')+'"></div></div>'; 1041 } 1042 h+='</div>'; 1043 }); 1044 h+='</div><button class="insc-add" onclick="inscrAddOfficial()">+ Ajouter un officiel</button>'; 1045 } else { CUR.officials=[]; } 1046 1047 // TRANSPORT 1048 if(m.transport){ 1049 var tm=CUR.transport||{}; 1050 h+='<h3>ð Transport</h3>'; 1051 h+='<div class="insc-note">Minibus 9 places (8 passagers). Priorité aux officiels et à leurs enfants.</div>'; 1052 h+='<div class="insc-grid">'; 1053 h+='<div><label>Comment venez-vous ?</label><select id="insc-tmode" onchange="inscrOnTransport()">' 1054 +'<option value="propre"'+(tm.mode==='propre'||!tm.mode?' selected':'')+'>Par mes propres moyens</option>' 1055 +'<option value="minibus"'+(tm.mode==='minibus'?' selected':'')+'>Jâai besoin du minibus</option>' 1056 +'<option value="covoiturage"'+(tm.mode==='covoiturage'?' selected':'')+'>Je covoiture avecâ¦</option>' 1057 +'</select></div>'; 1058 if(tm.mode==='minibus') h+='<div><label>Nb de places souhaitées</label><input type="number" min="0" max="8" id="insc-tseats" value="'+esc(tm.seats||'')+'"></div>'; 1059 else if(tm.mode==='covoiturage') h+='<div><label>Je covoiture avec (préciser qui)</label><input id="insc-twith" value="'+esc(tm.with||'')+'" placeholder="ex : famille Dupont"></div>'; 1060 else h+='<div></div>'; 1061 h+='</div>'; 1062 } 1063 1064 // REPAS (note prix) 1065 if(m.meals){ 1066 h+='<div class="insc-note">Repas proposés (journée complète hors Bellegarde) : <b>gratuit pour les officiels</b>, <b>'+esc(m.mealPrice)+' ⬠par nageur</b>. Cochez les repas ci-dessus et précisez le régime pour la réservation.</div>'; 1067 h+='<div class="insc-fld"><label>Précisions pour le(s) repas particulier(s)</label><input id="insc-mealnote" value="'+esc(CUR.mealNote||'')+'"></div>'; 1068 } 1069 1070 // BÃNÃVOLE + BUVETTE (compétitions à Bellegarde) 1071 if(m.buvette){ 1072 h+='<h3>ð Bénévoles aidants</h3>'; 1073 h+='<div class="insc-note">Un coup de main est précieux le jour de la compétition à Bellegarde. Vous pouvez proposer plusieurs bénévoles (parent, grand frère / grande sÅurâ¦). Un(e) aîné(e) peut aider à la chambre dâappel.</div>'; 1074 if(!CUR.volunteers||!CUR.volunteers.length) CUR.volunteers=[{name:'',chambreAppel:false,installation:false}]; 1075 h+='<div id="insc-volunteers">';
1076 CUR.volunteers.forEach(function(v,i){ 1077 h+='<div class="insc-vol insc-card">'; 1078 h+='<div class="insc-cardhd"><b>Bénévole '+(i+1)+'</b>'+(CUR.volunteers.length>1?'<button class="insc-del" onclick="inscrDelVolunteer('+i+')">Retirer</button>':'')+'</div>'; 1079 h+='<div class="insc-fld"><label>Nom du bénévole</label><input class="vl-name" value="'+esc(v.name||'')+'" placeholder="Prénom Nom"></div>'; 1080 h+='<label class="insc-ck"><input type="checkbox" class="vl-ca"'+(v.chambreAppel?' checked':'')+'> Chambre dâappel (navette des fiches vers lâinformatique)</label>'; 1081 h+='<label class="insc-ck" style="margin-top:6px"><input type="checkbox" class="vl-inst"'+(v.installation?' checked':'')+'> Installation du bassin</label>'; 1082 h+='</div>'; 1083 }); 1084 h+='</div><button class="insc-add" onclick="inscrAddVolunteer()">+ Ajouter un bénévole</button>'; 1085 1086 var bv=CUR.buvette||{items:[]}; 1087 var chosen={}; (bv.items||[]).forEach(function(it){ chosen[it.item]=it.qty||1; }); 1088 h+='<h3>ð§ Buvette</h3>'; 1089 h+='<div class="insc-note">Pour les compétitions à Bellegarde, nous tenons une buvette : merci aux familles qui peuvent lâalimenter ! Coche ce que tu apporterais et indique la quantité.</div>'; 1090 h+='<div class="buv-list">'; 1091 BUV_ITEMS.forEach(function(lab,i){ 1092 var isRien=/^Rien/i.test(lab); var on=chosen.hasOwnProperty(lab); 1093 h+='<div class="buv-row"><label class="insc-ck"><input type="checkbox" id="buv-'+i+'"'+(on?' checked':'')+' onchange="inscrBuvToggle('+i+')"> '+esc(lab)+'</label>' 1094 +(isRien?'':'<input type="number" min="1" id="buvq-'+i+'" class="buv-qty" value="'+esc(on?chosen[lab]:1)+'" placeholder="qté"'+(on?'':' style="visibility:hidden"')+'>') 1095 +'</div>'; 1096 }); 1097 h+='<div class="buv-row"><label class="buv-autre-lab">Autre (préciser)</label><input id="buv-autre" class="buv-autre" value="'+esc(bv.autre||'')+'" placeholder="ex : gâteaux salés"> <input type="number" min="1" id="buvq-autre" class="buv-qty" value="'+esc(bv.autreQty||1)+'" placeholder="qté"></div>'; 1098 h+='</div>'; 1099 } 1100 1101 // OBSERVATIONS 1102 h+='<div class="insc-fld"><label>Dernières observations, compléments dâinformation</label><textarea id="insc-obs" rows="2">'+esc(CUR.obs||'')+'</textarea></div>'; 1103 1104 h+='<div id="insc-status" class="insc-status"></div>'; 1105 h+='<div class="insc-actions"><button class="insc-cancel" onclick="inscrClose()">Fermer</button><button class="insc-submit" onclick="inscrSubmit()">Envoyer lâinscription</button></div>'; 1106 h+='<div class="insc-tiny">Besoin de modifier ? Renvoyez ce formulaire : votre inscription est mise à jour. Pour toute annulation, contactez le coach.</div>'; 1107 h+='</div>'; 1108 document.getElementById('inscr-ov').innerHTML=h; 1109 var em=document.getElementById('insc-email'); if(em&&!em.value){ /* laissé vide */ } 1110 try{ inscrPartChange(); }catch(e){} 1111 } 1112 window.inscrClose=closeForm; 1113 window.inscrPartChange=function(){ var any=false; var ps=document.querySelectorAll('#insc-swimmers .sw-part'); for(var i=0;i<ps.length;i++){ if(ps[i].value==='non') any=true; } var msg=document.getElementById('insc-partmsg'); if(msg) msg.style.display=any?'':'none'; }; 1114 window.inscrBuvToggle=function(i){ var cb=document.getElementById('buv-'+i); var q=document.getElementById('buvq-'+i); if(q) q.style.visibility=(cb&&cb.checked)?'visible':'hidden'; }; 1115 1116 function receiptBody(p){ 1117 var L=[]; L.push('Reçu dâinscription â CNBV'); L.push(p.eventTitle+' ('+frDate(p.eventDate)+(p.eventLieu?' · '+p.eventLieu:'')+')'); L.push(''); 1118 L.push('Contact : '+p.email+(p.tel?' · '+p.tel:'')); if(p.contact2&&(p.contact2.nom||p.contact2.tel||p.contact2.mail)) L.push('2e contact : '+[p.contact2.nom,p.contact2.tel,p.contact2.mail].filter(Boolean).join(' · ')); 1119 L.push(''); L.push('Nageur(s) :'); 1120 (p.swimmers||[]).forEach(function(s){ L.push(' ⢠'+(s.prenom||'')+' '+(s.nom||'')+' ('+(s.genre||'?')+') â '+(s.participe?'participe':'ne participe pas')+(s.comment?' â '+s.comment:'')); }); 1121 if(p.officialChoice&&p.officialChoice!=='non'){ L.push(''); L.push('Officiel : '+(p.officialChoice==='formation'?'en formation':'inscrit'));
1121 (p.officials||[]).forEach(function(o){ L.push(' ⢠'+o.nomPrenom+' ('+(o.statut==='formation'?'formation':'titulaire')+')'); }); } 1122 if(p.transport){ L.push(''); L.push('Transport : '+(p.transport.mode==='minibus'?('minibus ('+p.transport.seats+' place(s))'):(p.transport.mode==='covoiturage'?('covoiturage avec '+(p.transport.with||'?')):'moyens propres'))); } 1123 if(p.buvette&&(p.buvette.items||[]).length||(p.buvette&&p.buvette.autre)){ L.push(''); L.push('Buvette :'); (p.buvette.items||[]).forEach(function(it){ L.push(' ⢠'+it.item+' Ã'+(it.qty||1)); }); if(p.buvette.autre) L.push(' ⢠Autre : '+p.buvette.autre+' Ã'+(p.buvette.autreQty||1)); } 1124 if((p.volunteers||[]).length){ L.push(''); L.push('Bénévole(s) :'); p.volunteers.forEach(function(v){ var t=[]; if(v.chambreAppel)t.push('chambre dâappel'); if(v.installation)t.push('installation'); L.push(' ⢠'+(v.name||'')+(t.length?' ('+t.join(', ')+')':'')); }); } 1125 if(p.mealNote) L.push('\nRepas â précisions : '+p.mealNote); 1126 if(p.obs) L.push('\nObservations : '+p.obs); 1127 L.push(''); L.push('Merci ! â CNBV'); 1128 return L.join('\n'); 1129 } 1130 function submit(){ 1131 collect(); var m=CUR.meta; var st=document.getElementById('insc-status'); 1132 var email=(CUR.email||'').trim(); 1133 if(!email||email.indexOf('@')<0){ st.textContent='Merci dâindiquer une adresse e-mail valide.'; st.className='insc-status err'; return; } 1134 var nsw=CUR.swimmers.filter(function(s){return s.nom||s.prenom;}); 1135 if(!nsw.length){ st.textContent='Indiquez au moins un nageur (nom / prénom).'; st.className='insc-status err'; return; } 1136 var oc=(document.getElementById('insc-ofchoice')&&document.getElementById('insc-ofchoice').value)||'non'; 1137 var mealNote=(document.getElementById('insc-mealnote')&&document.getElementById('insc-mealnote').value||'').trim(); 1138 var obs=(document.getElementById('insc-obs')&&document.getElementById('insc-obs').value||'').trim(); 1139 var payload={ 1140 eventId:m.id, eventTitle:m.title, eventDate:m.date, eventLieu:m.lieu, 1141 email:email, tel:(CUR.tel||''), contact2:(CUR.contact2||null), 1142 swimmers:CUR.swimmers, 1143 officialChoice:oc, 1144 officials:(oc==='non'?[]:CUR.officials.filter(function(o){return o.nomPrenom;})), 1145 transport:(m.transport?(CUR.transport||{mode:'propre',seats:0}):null), 1146 mealNote:mealNote, 1147 volunteers:(m.buvette?(CUR.volunteers||[]).filter(function(v){return v.name||v.chambreAppel||v.installation;}):[]), 1148 buvette:(m.buvette?(CUR.buvette||null):null), 1149 obs:obs 1150 }; 1151 // mémoriser le profil famille pour le pré-remplissage futur 1152 saveProfile({ email:email, tel:(CUR.tel||''), contact2:(CUR.contact2||null), swimmers:CUR.swimmers.map(function(s){return {nom:s.nom,prenom:s.prenom,genre:s.genre};}) }); 1153 st.textContent='Envoiâ¦'; st.className='insc-status'; 1154 readState(); 1155 fetch(QW+'/inscriptions?code='+encodeURIComponent(NCODE),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(payload)}) 1156 .then(function(r){return r.json();}).then(function(d){ 1157 if(d&&d.ok){ 1158 st.innerHTML='Inscription enregistrée â Merci !<br><a class="insc-receipt" href="mailto:'+encodeURIComponent(email)+'?subject='+encodeURIComponent('Reçu inscription â '+m.title)+'&body='+encodeURIComponent(receiptBody(payload))+'">âï¸ Recevoir le reçu détaillé par e-mail</a>'; 1159 st.className='insc-status ok'; 1160 } 1161 else { st.textContent=(d&&d.error)||'Ãchec de lâenvoi.'; st.className='insc-status err'; } 1162 }).catch(function(){ st.textContent='Service indisponible, réessayez.'; st.className='insc-status err'; }); 1163 } 1164 window.inscrSubmit=submit; 1165 1166 // ============ ESPACE COACH : gérer les ouvertures ============ 1167 function coachManager(){ 1168 readState(); 1169 if(!COACHPW){ alert('Reconnecte-toi à ton espace coach.'); return; } 1170 var ov=document.getElementById('inscr-cov'); ov.classList.add('on'); 1171 ov.innerHTML='<div class="insc-modal"><button class="insc-x" onclick="inscrCoachClose()">â</button><h2>ðï¸ Gérer les inscriptions</h2><div class="insc-sub">Chargementâ¦</div></div>'; 1172 // récupérer la liste des évènements (en ligne sinon seed) + la config + les convocations 1173 var rows = (typeof CAL_ONLINE!=='undefined'&&CAL_ONLINE&&CAL_ONLINE.length)?CAL_ONLINE:(typeof CAL_SEED!=='undefined'?CAL_SEED:[]); 1174 loadCfg(function(){ loadConvoc(function(){ coachRender(rows); }); }); 1175 } 1176 function coachRender(rows){ 1177 var evs=rows.filter(function(r){return r.type==='ev' && !/^vacances/i.test(String(r.title||''));}); 1178 var today=new Date().toISOString().slice(0,10); 1179 // inscriptions ouvertes en tête, puis par date 1180 evs.sort(function(a,b){ var oa=((CFG[String(a.id)]||{}).open)?0:1, ob=((CFG[String(b.id)]||{}).open)?0:1; if(oa!==ob)return oa-ob; return String(a.date||'').localeCompare(String(b.date||'')); }); 1181 var h='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrCoachClose()">â</button>'; 1182 h+='<h2>ðï¸ Gérer les inscriptions</h2>'; 1183 h+='<div class="insc-note">Ouvre un évènement pour que les parents puissent inscrire leur
1183s enfants depuis lâespace nageur. Coche « Repas » pour une journée complète hors Bellegarde, « Transport » si le minibus est proposé.</div>'; 1184 h+='<div class="insc-filter"><label class="insc-ck"><input type="checkbox" id="ic-futur" checked onchange="inscrCoachToggleFut()"> à venir seulement</label></div>'; 1185 h+='<div id="ic-list">'; 1186 evs.forEach(function(e){ 1187 var id=String(e.id); var c=CFG[id]||{}; var fut=(String(e.date||'')>=today); 1188 h+='<div class="ic-row'+(c.open?' ic-on':'')+(fut?'':' ic-past')+'" data-fut="'+(fut?1:0)+'" data-id="'+esc(id)+'">'; 1189 var pills=(c.open?'<span class="ic-pill open">ð¢ Inscriptions ouvertes</span>':'')+(fut?'':'<span class="ic-pill past">â³ date passée</span>'); 1190 h+='<div class="ic-main"><b>'+esc(e.title||'')+'</b><span class="ic-date">'+esc(frDate(e.date))+(e.lieu?' · '+esc(e.lieu):'')+'</span>'+pills+'</div>'; 1191 h+='<div class="ic-ctrls">'; 1192 h+='<label class="insc-ck"><input type="checkbox" class="ic-open"'+(c.open?' checked':'')+'> Ouvrir</label>'; 1193 h+='<label class="insc-ck"><input type="checkbox" class="ic-meals"'+(c.meals?' checked':'')+'> Repas</label>'; 1194 h+='<label class="insc-ck"><input type="checkbox" class="ic-transport"'+(c.transport?' checked':'')+'> Transport</label>'; 1195 h+='<label class="insc-ck"><input type="checkbox" class="ic-buvette"'+(c.buvette?' checked':'')+'> Buvette (Bellegarde)</label>'; 1196 h+='<span class="ic-price">Repas nageur <input type="number" class="ic-mealprice" min="0" step="0.5" value="'+esc(c.mealPrice!=null?c.mealPrice:10)+'"> â¬</span>'; 1197 h+='<button class="ic-save" onclick="inscrCoachSave(this)">Enregistrer</button>'; 1198 var nconv=((CONVOC[id]||[]).length); 1199 h+='<button class="ic-convoc" onclick="inscrConvocOpen(\''+esc(id)+'\')">ð£ Convoquer'+(nconv?(' ('+nconv+')'):'')+'</button>'; 1200 h+='<span class="ic-stat"></span>'; 1201 h+='</div></div>'; 1202 }); 1203 h+='</div></div>'; 1204 document.getElementById('inscr-cov').innerHTML=h; 1205 inscrCoachToggleFut(); 1206 } 1207 window.inscrCoachManager=coachManager; 1208 window.inscrCoachClose=function(){ var o=document.getElementById('inscr-cov'); if(o)o.classList.remove('on'); }; 1209 window.inscrCoachToggleFut=function(){ var only=document.getElementById('ic-futur'); var on=only?only.checked:true; [].forEach.call(document.querySelectorAll('#ic-list .ic-row'),function(r){ r.style.display=(on&&r.getAttribute('data-fut')!=='1')?'none':''; }); }; 1210 window.inscrCoachSave=function(btn){ 1211 var row=btn.closest('.ic-row'); var id=row.getAttribute('data-id'); 1212 var stat=row.querySelector('.ic-stat'); stat.textContent='â¦'; stat.className='ic-stat'; 1213 var e=null; var rows=(typeof CAL_ONLINE!=='undefined'&&CAL_ONLINE&&CAL_ONLINE.length)?CAL_ONLINE:(typeof CAL_SEED!=='undefined'?CAL_SEED:[]); 1214 for(var i=0;i<rows.length;i++){ if(String(rows[i].id)===String(id)){e=rows[i];break;} } 1215 var body={ eventId:id, 1216 open:row.querySelector('.ic-open').checked, 1217 meals:row.querySelector('.ic-meals').checked, 1218 transport:row.querySelector('.ic-transport').checked, 1219 buvette:row.querySelector('.ic-buvette').checked, 1220 mealPrice:+row.querySelector('.ic-mealprice').value||0, 1221 title:(e&&e.title)||'', date:(e&&e.date)||'', lieu:(e&&e.lieu)||'' }; 1222 readState(); 1223 fetch(QW+'/inscriptions/config?pw='+encodeURIComponent(COACHPW),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(body)}) 1224 .then(function(r){return r.json();}).then(function(d){ 1225 if(d&&d.ok){ CFG=d.config||CFG; stat.textContent='â enregistré'; stat.className='ic-stat ok'; row.classList.toggle('ic-on',body.open); decorate(); 1226 var rows2=(typeof CAL_ONLINE!=='undefined'&&CAL_ONLINE&&CAL_ONLINE.length)?CAL_ONLINE:(typeof CAL_SEED!=='undefined'?CAL_SEED:[]); 1227 setTimeout(function(){ coachRender(rows2); },500); } 1228 else { stat.textContent=(d&&d.error)||'Ãchec'; stat.className='ic-stat err'; } 1229 }).catch(function(){ stat.textContent='Service indisponible'; stat.className='ic-stat err'; }); 1230 }; 1231 1232 // ============ ESPACE COACH : convocations (bandeau vert) ============ 1233 var PICK=null; // {eventId,title,sel:{iuf:1},group,years:[],q} 1234 function convocOpen(id){ 1235 readState(); 1236 if(!COACHPW){ alert('Reconnecte-toi à ton espace coach.'); return; } 1237 var title='',evcats=[],evdate=''; var rows=(typeof CAL_ONLINE!=='undefined'&&CAL_ONLINE&&CAL_ONLINE.length)?CAL_ONLINE:(typeof CAL_SEED!=='undefined'?CAL_SEED:[]); 1238 for(var i=0;i<rows.length;i++){ if(String(rows[i].id)===String(id)){ title=rows[i].title||''; evcats=(rows[i].cats||[]).map(function(x){return String(x).toLowerCase();}); evdate=rows[i].date||''; break; } } 1239 var ov=document.getElementById('inscr-pov'); ov.classList.add('on'); 1240 ov.innerHTML='<div class="insc-modal"><button class="insc-x" onclick="inscrConvocClose()">â</button><h2>ð£ Convocations</h2><div class="insc-sub">Chargement de la liste des nageursâ¦</div></div>'; 1241 loadConvoc(function(){ 1242 loadRoster(function(){ 1243 // ré-alignement clé â licence : si un nageur convoqué par sa clé a désormais un IUF, on bascule sur l'IUF 1244 var k2i={};
1244 activeRoster().forEach(function(a){ if(a.iuf&&a.key) k2i[String(a.key)]=String(a.iuf); }); 1245 var sel={}; (CONVOC[id]||[]).forEach(function(u){ u=String(u); sel[k2i[u]||u]=1; }); 1246 PICK={eventId:String(id), title:title, evcats:evcats, evdate:evdate, sel:sel, groups:[], years:[], q:'', view:'pick'}; 1247 convocRender(); 1248 }); 1249 }); 1250 } 1251 function activeRoster(){ return (ROSTER||[]).filter(function(a){ return !a.archive; }); } 1252 var CATLBL={av:'Avenirs',benj:'Benjamins',jun:'Juniors et +',mai:'Maîtres',enf:'ENF',handi:'Handi'}; 1253 function evAgeCats(){ return (PICK.evcats||[]).filter(function(c){return ['av','benj','jun','mai'].indexOf(c)>=0;}); } 1254 // Année civile de la compétition (la catégorie FFM « Uxx » = âge atteint dans cette année ; bascule au 1er janvier) 1255 function compYear(){ var d=(PICK&&PICK.evdate)?String(PICK.evdate):''; var y=parseInt(d.slice(0,4),10); return y||(new Date()).getFullYear(); } 1256 function ucatOf(a){ var y=+((a&&a.annee)||(a&&a.naissance?String(a.naissance).slice(0,4):0))||0; if(!y)return ''; var age=compYear()-y; if(age<=0)return ''; return (age>=19)?'Seniors':('U'+age); } 1257 function swBuckets(y){ y=+y||0; if(!y)return null; var age=compYear()-y; var b=[]; if(age<=11)b.push('av'); else if(age<=13)b.push('benj'); else b.push('jun'); if(age>=25)b.push('mai'); return b; } 1258 function isOutOfCat(a){ var ec=evAgeCats(); if(!ec.length)return false; var y=a.annee||(a.naissance?String(a.naissance).slice(0,4):0); var b=swBuckets(y); if(!b)return false; return !b.some(function(x){return ec.indexOf(x)>=0;}); } 1259 function evCatLabel(){ return evAgeCats().map(function(c){return CATLBL[c]||c;}).join(', '); } 1260 function pkFiltered(){ 1261 var q=(PICK.q||'').toLowerCase(); 1262 var list=activeRoster().filter(function(a){ 1263 if(PICK.groups.length && !(a.groupes||[]).some(function(g){return PICK.groups.indexOf(g)>=0;})) return false; 1264 if(PICK.years.length && PICK.years.indexOf(String(a.annee))<0) return false; 1265 if(q){ var s=((a.nom||'')+' '+(a.prenom||'')).toLowerCase(); if(s.indexOf(q)<0) return false; } 1266 return true; 1267 }); 1268 list.sort(function(a,b){ return ((a.nom||'')+(a.prenom||'')).localeCompare((b.nom||'')+(b.prenom||'')); }); 1269 return list; 1270 } 1271 function pkRowHtml(a){ 1272 var uid=String(a.iuf||a.key||''); var lic=!!a.iuf; var ck=PICK.sel[uid]?' checked':''; 1273 var grp=(a.groupes||[]).join(', '); 1274 var ooc=isOutOfCat(a); 1275 return '<label class="pk-row'+(ooc?' pk-ooc':'')+'">' 1276 +'<input type="checkbox"'+ck+' data-uid="'+esc(uid)+'" onchange="inscrConvocToggle(this)">' 1277 +'<span class="pk-nm">'+esc(a.nom||'')+' '+esc(a.prenom||'')+(lic?'':' <span class="pk-prov">provisoire</span>')+(ooc?' <span class="pk-oocb" title="Ãge hors des catégories de la compétition">â ï¸ hors catégorie</span>':'')+'</span>' 1278 +'<span class="pk-meta">'+(a.annee?a.annee:'')+(function(){var u=ucatOf(a);return u?' · <span class="pk-ucat">'+esc(u)+'</span>':'';})()+(grp?(' · '+esc(grp)):'')+(lic?'':(a.provCode?(' · code '+esc(a.provCode)):' · sans licence'))+(a.mail?'':' · <span style="color:#b3261e">sans e-mail</span>')+'</span>' 1279 +'</label>'; 1280 } 1281 function pkBulkHtml(nvis){ 1282 var n=Object.keys(PICK.sel).length; 1283 return '<button onclick="inscrConvocAll(1)">Cocher les '+nvis+' visibles</button>' 1284 +'<button onclick="inscrConvocAll(0)">Décocher les visibles</button>' 1285 +'<button onclick="inscrConvocClear()">â Tout décocher (<span class="pk-selcnt">'+n+'</span>)</button>' 1286 +'<button class="pk-recap" onclick="inscrConvocRecap()">ð Récapitulatif des convoqués (<span class="pk-selcnt">'+n+'</span>)</button>'; 1287 } 1288 function pkMs(id,label,items){ 1289 var arr=(id==='groups')?PICK.groups:PICK.years; 1290 var sum=arr.length?(arr.length+' sélectionné'+(arr.length>1?'s':'')):'Tous'; 1291 var opts=items.map(function(it){var v=String(it.v),on=arr.indexOf(v)>=0; 1292 return '<label class="pk-ms-item"><input type="checkbox"'+(on?' checked':'')+' onchange="inscrMsPick(\''+id+'\',\''+esc(v)+'\')"> '+esc(it.t)+'</label>';}).join(''); 1293 return '<div class="pk-ms" id="pk-ms-'+id+'"><label class="pk-mslab">'+label+'</label>' 1294 +'<button type="button" class="pk-ms-btn" onclick="inscrMsToggle(\''+id+'\')"><span id="pk-ms-sum-'+id+'">
1294'+sum+'</span><span class="pk-ms-car">â¾</span></button>' 1295 +'<div class="pk-ms-panel" id="pk-ms-panel-'+id+'">'+(opts||'<div class="pk-hint" style="padding:6px">aucun</div>')+'</div></div>'; 1296 } 1297 function pkSum(id){ var arr=(id==='groups')?PICK.groups:PICK.years; var e=document.getElementById('pk-ms-sum-'+id); if(e)e.textContent=arr.length?(arr.length+' sélectionné'+(arr.length>1?'s':'')):'Tous'; } 1298 function pkWarn(){ 1299 var el=document.getElementById('pk-warn'); if(!el)return; 1300 var ec=evAgeCats(); if(!ec.length){ el.style.display='none'; return; } 1301 var byUid={}; activeRoster().forEach(function(a){ if(a.iuf)byUid[String(a.iuf)]=a; if(a.key)byUid[String(a.key)]=a; }); 1302 var bad=[]; Object.keys(PICK.sel).forEach(function(u){ var a=byUid[u]; if(a&&isOutOfCat(a)) bad.push(((a.prenom||'')+' '+(a.nom||'')).trim()); }); 1303 if(bad.length){ el.style.display=''; el.innerHTML='â ï¸ <b>'+bad.length+' convoqué(s) hors catégorie</b> (prévu : '+esc(evCatLabel())+') : '+bad.slice(0,15).map(esc).join(', ')+(bad.length>15?'â¦':''); } 1304 else el.style.display='none'; 1305 } 1306 function pkCounts(){ var n=Object.keys(PICK.sel).length; var sub=document.querySelector('#inscr-pov .insc-sub b'); if(sub)sub.textContent=n; [].forEach.call(document.querySelectorAll('#inscr-pov .pk-selcnt'),function(e){e.textContent=n;}); pkWarn(); } 1307 function pkRenderList(){ 1308 readPickFilters(); 1309 var filtered=pkFiltered(); 1310 var host=document.getElementById('pk-list'); if(host)host.innerHTML=filtered.length?filtered.map(pkRowHtml).join(''):'<div class="insc-note">Aucun nageur pour ces filtres.</div>'; 1311 var bulk=document.getElementById('pk-bulk'); if(bulk)bulk.innerHTML=pkBulkHtml(filtered.length); 1312 pkSum('groups'); pkSum('years'); pkCounts(); pkWarn(); 1313 } 1314 window.inscrMsToggle=function(id){ 1315 var p=document.getElementById('pk-ms-panel-'+id); if(!p)return; 1316 var open=p.classList.contains('on'); 1317 [].forEach.call(document.querySelectorAll('#inscr-pov .pk-ms-panel.on'),function(x){x.classList.remove('on');}); 1318 if(!open)p.classList.add('on'); 1319 }; 1320 window.inscrMsPick=function(id,v){ var arr=(id==='groups')?PICK.groups:PICK.years; v=String(v); var i=arr.indexOf(v); if(i>=0)arr.splice(i,1); else arr.push(v); pkRenderList(); }; 1321 1322 function convocRender(){ 1323 if(PICK.view==='recap'){ recapRender(); return; } 1324 var list=activeRoster(); 1325 var groups={},years={}; 1326 list.forEach(function(a){ (a.groupes||[]).forEach(function(g){ if(g)groups[g]=1; }); if(a.annee)years[a.annee]=1; }); 1327 var gItems=Object.keys(groups).sort().map(function(g){return {v:g,t:g};}); 1328 var yItems=Object.keys(years).map(Number).sort(function(a,b){return b-a;}).map(function(y){return {v:y,t:y};}); 1329 var nSel=Object.keys(PICK.sel).length; 1330 var h='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrConvocClose()">â</button>'; 1331 h+='<h2>ð£ Convocations â '+esc(PICK.title)+'</h2>'; 1332 h+='<div class="insc-sub">Coche les nageurs convoqués : ils verront le bandeau vert « Tu es convoqué(e) ». <b>'+nSel+'</b> convoqué(s).</div>'; 1333 var _ecl=evCatLabel(); 1334 h+='<div class="insc-note">'+(_ecl?('Catégories prévues par la compétition : <b>'+esc(_ecl)+'</b>. '):'')+'Les nageurs <b>sans licence</b> sont convocables (code provisoire CNBV-â¦).</div>'; 1335 h+='<div id="pk-warn" class="pk-warn" style="display:none"></div>'; 1336 h+='<div class="pk-filters">'; 1337 h+='<div class="pk-fgrp">'+pkMs('groups','Groupes',gItems)+'</div>'; 1338 h+='<div class="pk-fgrp">'+pkMs('years','Années dââge',yItems)+'</div>'; 1339 h+='<div class="pk-fgrp" style="flex:1;min-width:150px"><label class="pk-mslab">Recherche</label><input id="pk-q" value="'+esc(PICK.q||'')+'" placeholder="nom / prénom" oninput="inscrConvocFilterSoft()"></div>'; 1340 h+='</div>'; 1341 h+='<div class="pk-bulk" id="pk-bulk">'+pkBulkHtml(pkFiltered().length)+'</div>'; 1342 h+='<div class="pk-list" id="pk-list"></div>'; 1343 h+='<div id="pk-status" class="insc-status"></div>'; 1344 h+='<div class="insc-actions"><button class="insc-cancel" onclick="inscrConvocClose()">Fermer</button><button class="insc-submit" onclick="inscrConvocSave()">Enregistrer les convocations</button></div>'; 1345 h+='</div>'; 1346 document.getElementById('inscr-pov').innerHTML=h; 1347 pkRenderList(); 1348 } 1349 function readPickFilters(){ 1350 var q=document.getElementById('pk-q'); if(q)PICK.q=q.value; 1351 } 1352 window.inscrPickToggleGroup=function(g){ readPickFilters(); var i=PICK.groups.indexOf(g); if(i>=0)PICK.groups.splice(i,1); else PICK.groups.push(g); convocRender(); }; 1353 window.inscrPickToggleYear=function(y){ readPickFilters(); y=String(y); var i=PICK.years.indexOf(y); if(i>=0)PICK.years.splice(i,1); else PICK.years.push(y); convocRender(); }; 1354 function frNaiss(s){ if(!s)return''; var p=String(s).split('-'); return (p.length===3)?(p[2]+'/'+p[1]+'/'+p[0]):s; } 1355 function genreOf(a){ var s=String(a&&a.sexe||'').toUpperCase(); if(s.charAt(0)==='F'||s.indexOf('DAME')>=0)return 'D'; if(s.charAt(0)==='M'||s.charAt(0)==='H'||s.indexOf('MESS')>=0)return 'M'; return '?'; } 1356 function countDM(list){ var d=0,m=0; list.forEach(function(a){ var g=genreOf(a); if(g==='D')d++; else if(g==='M')m++; }); return {d:d,m:m}; } 1357 function mailConvoc(a){ 1358 var subj='Convocation CNBV â '+PICK.title; 1359 var body='Bonjour,\n\n'+(a.prenom||'')+' '+(a.nom||'')+' est convoqué(e) pour : '+PICK.title+'.\n\n'; 1360 if(a.code) body+='Code dâaccès personnel pour lâespace nageur (perfs, convocations, inscription) : '+a.code+'\n' 1361 +'Ouvre le calendrier : https://coachfrancois-calendrier-cnbv.pages.dev puis « Espace nageur â me connecter ».\n\n'; 1362 body+='Merci de confirmer lâinscription depuis lâespace nageur.\n\nSportivement,\nLe CNBV'; 1363 return 'mailto:'+encodeURIComponent(a.mail||'')+'?subject='+encodeURIComponent(subj)+'&body='+encodeURIComponent(body); 1364 } 1365 window.inscrConvocMailAll=function(){ 1366 var byUid={};
1366 activeRoster().forEach(function(x){ if(x.iuf)byUid[String(x.iuf)]=x; if(x.key)byUid[String(x.key)]=x; }); 1367 var mails=Object.keys(PICK.sel).map(function(u){return (byUid[u]||{}).mail;}).filter(function(m){return m&&m.indexOf('@')>0;}); 1368 if(!mails.length){ alert('Aucune adresse e-mail disponible pour les convoqués sélectionnés.'); return; } 1369 var subj='Convocation CNBV â '+PICK.title; 1370 var body='Bonjour,\n\nVous êtes convoqué(e) pour : '+PICK.title+'.\nMerci de confirmer lâinscription depuis lâespace nageur : https://coachfrancois-calendrier-cnbv.pages.dev\n\nSportivement,\nLe CNBV'; 1371 // destinataires en Cci pour préserver les adresses 1372 window.location.href='mailto:?bcc='+encodeURIComponent(mails.join(','))+'&subject='+encodeURIComponent(subj)+'&body='+encodeURIComponent(body); 1373 }; 1374 window.inscrConvocCopyTable=function(){ 1375 var byUid={}; activeRoster().forEach(function(x){ if(x.iuf)byUid[String(x.iuf)]=x; if(x.key)byUid[String(x.key)]=x; }); 1376 var lines=['Nom\tPrénom\tGenre\tAnnée\tCatégorie\tNaissance\tTéléphone\tE-mail\tCode']; 1377 Object.keys(PICK.sel).forEach(function(u){ var a=byUid[u]; if(!a)return; lines.push([a.nom||'',a.prenom||'',genreOf(a),a.annee||'',ucatOf(a)||'',frNaiss(a.naissance),a.tel||'',a.mail||'',a.code||''].join('\t')); }); 1378 var t=document.createElement('textarea'); t.value=lines.join('\n'); document.body.appendChild(t); t.select(); try{document.execCommand('copy');}catch(e){} t.remove(); 1379 alert('Tableau copié ('+(lines.length-1)+' nageurs) â colle-le dans Mail, Excel ou un publipostage.'); 1380 }; 1381 function recapRender(){ 1382 var byUid={}; activeRoster().forEach(function(a){ if(a.iuf)byUid[String(a.iuf)]=a; if(a.key)byUid[String(a.key)]=a; }); 1383 var sel=Object.keys(PICK.sel); 1384 var groups={}; 1385 sel.forEach(function(uid){ var a=byUid[uid]; if(!a){ (groups['(hors base)']=groups['(hors base)']||[]).push({nom:uid,prenom:'',annee:'',naissance:'',uid:uid}); return; } var g=(a.groupes&&a.groupes[0])||'(sans groupe)'; (groups[g]=groups[g]||[]).push(a); }); 1386 var gkeys=Object.keys(groups).sort(); 1387 var noMail=sel.filter(function(u){var a=byUid[u];return !(a&&a.mail);}).length; 1388 var allSw=sel.map(function(u){return byUid[u];}).filter(Boolean); 1389 var dm=countDM(allSw); var unk=sel.length-dm.d-dm.m; 1390 var h='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrConvocClose()">â</button>'; 1391 h+='<h2>ð Convoqués â '+esc(PICK.title)+'</h2>'; 1392 h+='<div class="insc-sub"><b>'+sel.length+'</b> convoqué(s) · <b>ð© '+dm.d+' Dames</b> · <b>ð¨ '+dm.m+' Messieurs</b>'+(unk?(' · '+unk+' n.c.'):'')+' · '+gkeys.length+' groupe(s).'+(noMail?(' <span style="color:#b3261e">'+noMail+' sans e-mail.</span>'):'')+'</div>'; 1393 h+='<div class="pk-bulk"><button onclick="inscrConvocBack()">â Retour à la sélection</button>' 1394 +'<button class="pk-recap" onclick="inscrConvocSave()">ð¾ Enregistrer</button>' 1395 +'<button onclick="inscrConvocMailAll()">âï¸ E-mail groupé (invitation)</button>' 1396 +'<button onclick="inscrConvocCopyTable()">ð Copier le tableau</button>' 1397 +'<button onclick="inscrConvocPrint()">ð¨ï¸ Imprimer / PDF</button></div>'; 1398 h+='<div class="insc-note">â <b>Retirer</b> enlève le nageur de la convocation (même sâil est masqué par un filtre) â clique ensuite <b>ð¾ Enregistrer</b>. Le bouton âï¸ par nageur ouvre un mail pré-rempli avec <b>son code personnel</b> ; « E-mail groupé » = invitation simple (adresses en Cci).</div>'; 1399 h+='<div id="pk-status" class="insc-status"></div>'; 1400 if(!sel.length) h+='<div class="insc-note">Aucun nageur convoqué pour lâinstant.</div>'; 1401 h+='<div id="pk-recap-body">'; 1402 gkeys.forEach(function(g){ 1403 var arr=groups[g].slice().sort(function(a,b){ return ((a.nom||'')+(a.prenom||'')).localeCompare((b.nom||'')+(b.prenom||'')); }); 1404 var gdm=countDM(arr); 1405 h+='<h3>'+esc(g)+' <span style="color:#889;font-weight:400">('+arr.length+' · ð© '+gdm.d+' / ð¨ '+gdm.m+')</span></h3>'; 1406 h+='<table class="pk-rtable"><thead><tr><th>
1406#</th><th>Nom</th><th>Prénom</th><th>Genre</th><th>Année</th><th>Cat.</th><th>Naiss.</th><th>Téléphone</th><th>E-mail</th><th>Code</th><th>âï¸</th><th>Retirer</th></tr></thead><tbody>'; 1407 arr.forEach(function(a,i){ 1408 var mailBtn=(a.mail)?('<a class="pk-mail" href="'+mailConvoc(a)+'">âï¸</a>'):'â'; 1409 var g=genreOf(a); var gl=(g==='D'?'ð© D':(g==='M'?'ð¨ M':'â')); 1410 var _r1=String(a.iuf||a.uid||''), _r2=String(a.key||''); 1411 var rmBtn='<button class="pk-rm" title="Retirer de la convocation" onclick="inscrConvocRemove(\''+esc(_r1)+'\',\''+esc(_r2)+'\')">â</button>'; 1412 h+='<tr'+(isOutOfCat(a)?' style="background:#fff3f3"':'')+'><td>'+(i+1)+'</td><td>'+esc(a.nom||'')+'</td><td>'+esc(a.prenom||'')+(isOutOfCat(a)?' â ï¸':'')+'</td><td>'+gl+'</td><td>'+esc(a.annee||'')+'</td><td>'+esc(ucatOf(a)||'')+'</td><td>'+esc(frNaiss(a.naissance))+'</td><td>'+esc(a.tel||'')+'</td><td>'+esc(a.mail||'')+'</td><td>'+esc(a.code||'')+'</td><td>'+mailBtn+'</td><td>'+rmBtn+'</td></tr>'; 1413 }); 1414 h+='</tbody></table>'; 1415 }); 1416 h+='</div></div>'; 1417 document.getElementById('inscr-pov').innerHTML=h; 1418 } 1419 window.inscrConvocRecap=function(){ readPickFilters(); PICK.view='recap'; convocRender(); }; 1420 window.inscrConvocBack=function(){ PICK.view='pick'; convocRender(); }; 1421 window.inscrConvocPrint=function(){ 1422 var body=document.getElementById('pk-recap-body'); if(!body)return; 1423 var w=window.open('','_blank'); if(!w){ alert('Autorise les fenêtres pop-up pour imprimer.'); return; }
1424 w.document.write('<html><head><meta charset="utf-8"><title>Convoqués â '+esc(PICK.title)+'</title>' 1425 +'<style>body{font-family:Arial,sans-serif;margin:24px;color:#222}h1{font-size:18px}h3{margin:16px 0 6px;color:#0d6b3f}table{border-collapse:collapse;width:100%;font-size:13px;margin-bottom:10px}th,td{border:1px solid #ccc;padding:5px 8px;text-align:left}thead th{background:#eef3f8}</style></head><body>' 1426 +'<h1>Convoqués â '+esc(PICK.title)+'</h1>'+body.innerHTML+'</body></html>'); 1427 w.document.close(); setTimeout(function(){ w.focus(); w.print(); },300); 1428 }; 1429 window.inscrConvocOpen=convocOpen; 1430 window.inscrConvocClose=function(){ var o=document.getElementById('inscr-pov'); if(o)o.classList.remove('on'); }; 1431 window.inscrConvocFilter=function(){ readPickFilters(); convocRender(); }; 1432 window.inscrConvocFilterSoft=function(){ // recherche sans reconstruire les selects (garde le focus) 1433 var q=document.getElementById('pk-q'); PICK.q=q?q.value:''; readPickFilters(); convocRender(); 1434 var nq=document.getElementById('pk-q'); if(nq){ nq.focus(); nq.setSelectionRange(nq.value.length,nq.value.length); } 1435 }; 1436 window.inscrConvocToggle=function(el){ var uid=el.getAttribute('data-uid'); if(!uid)return; if(el.checked)PICK.sel[uid]=1; else delete PICK.sel[uid]; 1437 var sub=document.querySelector('#inscr-pov .insc-sub b'); if(sub)sub.textContent=Object.keys(PICK.sel).length; }; 1438 window.inscrConvocAll=function(on){ readPickFilters(); 1439 [].forEach.call(document.querySelectorAll('#inscr-pov .pk-row input[type=checkbox]'),function(cb){ var uid=cb.getAttribute('data-uid'); cb.checked=!!on; if(on)PICK.sel[uid]=1; else delete PICK.sel[uid]; }); 1440 var sub=document.querySelector('#inscr-pov .insc-sub b'); if(sub)sub.textContent=Object.keys(PICK.sel).length; }; 1441 window.inscrConvocClear=function(){ if(!Object.keys(PICK.sel).length)return; if(!confirm('Retirer TOUS les convoqués de cet évènement ? (pense à Enregistrer ensuite)'))return; PICK.sel={}; convocRender(); }; 1442 window.inscrConvocRemove=function(a,b){ if(a)delete PICK.sel[a]; if(b)delete PICK.sel[b]; recapRender(); }; 1443 window.inscrConvocSave=function(){ 1444 var st=document.getElementById('pk-status'); st.textContent='Enregistrementâ¦'; st.className='insc-status'; readState(); 1445 var iufs=Object.keys(PICK.sel); 1446 fetch(QW+'/inscriptions/convoc?pw='+encodeURIComponent(COACHPW),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({eventId:PICK.eventId,iufs:iufs})}) 1447 .then(function(r){return r.json();}).then(function(d){ 1448 if(d&&d.ok){ CONVOC=d.convoc||CONVOC; st.textContent='Convocations enregistrées â ('+iufs.length+')'; st.className='insc-status ok'; 1449 // rafraîchir le compteur dans le gestionnaire 1450 var rows=(typeof CAL_ONLINE!=='undefined'&&CAL_ONLINE&&CAL_ONLINE.length)?CAL_ONLINE:(typeof CAL_SEED!=='undefined'?CAL_SEED:[]); 1451 coachRender(rows); 1452 setTimeout(function(){ window.inscrConvocClose(); },1000); 1453 } else { st.textContent=(d&&d.error)||'Ãchec.'; st.className='insc-status err'; } 1454 }).catch(function(){ st.textContent='Service indisponible, réessayez.'; st.className='insc-status err'; }); 1455 }; 1456 1457 // ============ HOOKS ============ 1458 function wrap(name, after){ 1459 var orig=window[name]; 1460 if(typeof orig!=='function') return; 1461 window[name]=function(){ var r=orig.apply(this,arguments); try{after.apply(this,arguments);}catch(e){} return r; }; 1462 } 1463 function install(){ 1464 // ré-décorer après chaque (re)rendu des lignes du calendrier 1465 wrap('calApplyOnline', function(){ setTimeout(decorate,0); }); 1466 wrap('calReinit', function(){ setTimeout(decorate,0); }); 1467 wrap('render', function(){ setTimeout(decorate,0); }); 1468 // capter l'identité du nageur à la connexion + bandeau « compte provisoire » 1469 wrap('applyNageur', function(d){ try{ if(d&&d.nom){ var sp=splitName(d.nom); ME={nom:sp.nom,prenom:sp.prenom,annee:d.annee||'',genre:(String(d.sexe||'').toUpperCase().indexOf('DAME')>=0?'D':(String(d.sexe||'').toUpperCase().indexOf('MESS')>=0?'M':''))}; } 1470 var pn=document.getElementById('inscr-prov-note'); 1471 if(pn){ if(d&&d.prov){ pn.textContent='â¹ï¸ '+(d.note||'Compte provisoire â un nouveau code te sera remis dès ta première compétition (licence FFN).'); pn.style.display=''; } else { pn.style.display='none'; pn.textContent=''; } } 1472 }catch(e){} setTimeout(decorate,0); }); 1473 // ajouter le bouton coach dans l'espace coach 1474 wrap('coachOpen', function(){ setTimeout(function(){ 1475 var box=document.querySelector('#nl-body .coachbox'); if(!box||box.querySelector('.insc-coach-sec'))return; 1476 var div=document.createElement('div'); div.className='cbsec insc-coach-sec'; 1477 div.innerHTML='<b>3) Inscriptions aux évènements</b><div class="cbnote">Ouvre les compétitions/RDV aux inscriptions des parents, avec repas et transport au cas par cas.</div>
1477<button class="nl-btn" onclick="inscrCoachManager()">ðï¸ Gérer les inscriptions</button>'; 1478 var out=box.querySelector('.nl-out'); if(out) box.insertBefore(div,out); else box.appendChild(div); 1479 },0); }); 1480 1481 // reformuler le bandeau vert en « convoqué(e) » 1482 wrap('markSelections', function(){ 1483 var bn=document.getElementById('selbanner'); 1484 if(bn&&bn.innerHTML){ bn.innerHTML=bn.innerHTML.replace('Tu es sélectionné(e) pour','ð£ Tu es convoqué(e) pour'); } 1485 [].forEach.call(document.querySelectorAll('.selbadge'),function(e){ e.textContent='â convoqué(e)'; }); 1486 [].forEach.call(document.querySelectorAll('.selno'),function(e){ e.textContent='sur convocation'; }); 1487 }); 1488 1489 // overlays 1490 if(!document.getElementById('inscr-ov')){ var o=document.createElement('div'); o.id='inscr-ov'; o.className='inscr-ov'; document.body.appendChild(o); } 1491 if(!document.getElementById('inscr-cov')){ var c=document.createElement('div'); c.id='inscr-cov'; c.className='inscr-ov'; document.body.appendChild(c); } 1492 if(!document.getElementById('inscr-pov')){ var p=document.createElement('div'); p.id='inscr-pov'; p.className='inscr-ov'; p.style.zIndex='10000'; document.body.appendChild(p); } 1493 if(!document.getElementById('inscr-prov-note')){ var pn=document.createElement('div'); pn.id='inscr-prov-note'; pn.className='inscr-prov-note'; pn.style.display='none'; document.body.appendChild(pn); } 1494 1495 // fermer les menus déroulants à cocher au clic extérieur 1496 document.addEventListener('click',function(e){ if(e.target&&e.target.closest&&!e.target.closest('.pk-ms')){ [].forEach.call(document.querySelectorAll('.pk-ms-panel.on'),function(x){x.classList.remove('on');}); } }); 1497 1498 loadCfg(function(){ decorate(); }); 1499 } 1500 if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',install); else install(); 1501})(); 1502</script>
1502 1503<style id="stages-style"> 1504/* ---- Nageur : stages ---- */ 1505.nl-stages{margin:10px 0} 1506.nls-h{margin:6px 0 6px;color:#c2410c;font-size:1rem} 1507.nls-card{border:2px solid #e0e7ef;border-radius:11px;padding:10px 12px;margin:8px 0;background:#fff} 1508.nls-t{font-weight:600;color:#12385f} 1509.nls-grp{display:inline-block;background:#fff0e6;color:#c2410c;border:1px solid #f2c9ad;border-radius:6px;padding:1px 7px;font-size:.72rem;font-weight:600;margin-left:6px} 1510.nls-d{font-size:.8rem;color:#5b6b7f;margin:2px 0 6px} 1511.nls-cre{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0} 1512.nls-cbx{display:inline-flex;align-items:center;gap:7px;border:1px solid #cdd6e0;border-radius:9px;padding:6px 10px;font-size:.85rem;cursor:pointer;background:#fff} 1513.nls-cbx.on{background:#e9f6f1;border-color:#a7f3d0} 1514.nls-cbx input{width:16px;height:16px} 1515.nls-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px} 1516.nls-btn{border:none;background:#0d6b3f;color:#fff;border-radius:8px;padding:8px 13px;font-weight:600;cursor:pointer;font-size:.88rem} 1517.nls-btn.nls-out{background:#fff;color:#b3261e;border:1px solid #f0b9b3} 1518.nls-st{font-size:.85rem;color:#0d7a3f;font-weight:600} 1519.nls-cancel{background:#fdecec;color:#b3261e;border:1px solid #f3b4b4;border-radius:8px;padding:7px 10px;font-size:.85rem;font-weight:600} 1520.nls-closed{color:#8a97a4;font-size:.85rem} 1521.nls-mine{color:#0d7a3f;font-size:.82rem;margin-top:4px} 1522/* ---- Coach : gestion stages ---- */ 1523.stg-row{border:1px solid #e0e7ef;border-radius:10px;padding:10px 12px;margin:8px 0;background:#fff;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center} 1524.stg-badge{font-size:.75rem;font-weight:700} 1525.stg-sub{font-size:.82rem;color:#5b6b7f} 1526.stg-ctrls{display:flex;gap:6px;flex-wrap:wrap} 1527.btnx{border:1px solid #cdd6e0;background:#fff;color:#22303f;border-radius:8px;padding:6px 10px;font-size:.82rem;cursor:pointer} 1528.btnx-red{background:#fde8e8;color:#b3261e;border-color:#f0b9b3} 1529.se-lab{margin-top:14px;display:block} 1530.se-form{display:flex;flex-direction:column;gap:10px} 1531.se-f{display:flex;flex-direction:column;gap:3px;min-width:0} 1532.se-f label{font-size:.8rem;color:#5b6b7f;font-weight:600} 1533.se-f input{width:100%;padding:9px 10px;border:1px solid #cdd6e0;border-radius:8px;font-size:.95rem;background:#fff} 1534.se-f3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px} 1535/* Groupes concernés : grille de cartes, la case NE chevauche PAS le libellé */ 1536.se-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin:6px 0 4px} 1537.se-gchk{display:flex;align-items:center;gap:9px;font-size:.85rem;line-height:1.2;border:1px solid #e0e7ef;border-radius:9px;padding:9px 11px;background:#fff;cursor:pointer;min-width:0} 1538.se-gchk input{flex:0 0 auto;width:19px;height:19px;margin:0} 1539.se-gchk span{flex:1 1 auto;min-width:0} 1540/* Séances regroupées par groupe */ 1541#se-cre{display:flex;flex-direction:column;gap:12px;margin:6px 0} 1542.se-grp{border:1px solid #dbe6f0;border-radius:12px;padding:10px 11px;background:#f6faff} 1543.se-ghead{display:flex;gap:8px;align-items:center;margin-bottom:8px} 1544.se-gname{flex:1 1 auto;min-width:0;padding:9px 11px;border:1px solid #b9cfe6;border-radius:8px;font-size:.95rem;font-weight:700;color:#12385f;background:#fff} 1545.se-gdel{flex:0 0 auto} 1546.se-rows{display:flex;flex-direction:column;gap:7px} 1547.se-crow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto auto auto;gap:8px;align-items:center;background:#fff;border:1px solid #e6edf4;border-radius:9px;padding:7px 8px} 1548.se-crow input{min-width:0;padding:8px 9px;border:1px solid #cdd6e0;border-radius:8px;font-size:.92rem;background:#fff} 1549.se-crow input.se-cj{width:100%} 1550.se-crow input.se-ch{width:100%} 1551.se-clw{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:#5b6b7f;white-space:nowrap} 1552.se-clw .se-cl{width:44px;text-align:center} 1553.se-cc{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:#5b6b7f;white-space:nowrap} 1554.se-cc input{width:18px;height:18px} 1555.se-cdel{flex:0 0 auto;justify-self:end} 1556.se-addrow{margin-top:8px;border:1px dashed #9ec3e8;background:#fff;color:#185FA5;border-radius:8px;padding:7px 11px;font-size:.85rem;font-weight:600;cursor:pointer} 1557@media(max-width:640px){ 1558 .se-f3{grid-template-columns:1fr} 1559 .se-crow{grid-template-columns:1fr 1fr;row-gap:6px} 1560 .se-crow .se-cj{grid-column:1}.se-crow .se-ch{grid-column:2} 1561 .se-clw{grid-column:1}.se-cc{grid-column:2} 1562 .se-cdel{grid-column:1 / -1;justify-self:start} 1563} 1564/* Nageur : titre de groupe */ 1565.nls-gt{font-weight:700;color:#12385f;font-size:.9rem;margin:8px 0 2px;padding-top:6px;border-top:1px dashed #e0e7ef} 1566.nls-gt:first-child{border-top:0;padding-top:0} 1567#stg-suivi-body .muted{color:#8a97a4;text-align:center} 1568</style>
1569<script> 1570/* ==== STAGES CNBV â inscription auto (nageur) + gestion (coach) ==== v1 ==== */ 1571(function(){ 1572 var QW=(typeof QWORKER!=='undefined'&&QWORKER)||'https://super-math-ffn-perfs.francois-debutnocode.workers.dev'; 1573 var NCODE='',COACHPW=''; 1574 var ST=[]; // stages (coach) 1575 var STINS={}; // inscriptions (coach) 1576 var SROSTER=null; // adhérents (coach) pour groupes + noms 1577 var SEDIT=null; // stage en édition 1578 function readState(){ try{NCODE=localStorage.getItem('cal_ncode')||'';}catch(e){} try{COACHPW=localStorage.getItem('cal_coach')||'';}catch(e){} } 1579 function esc(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return {'&':'&','<':'<','>':'>','"':'"',"'":'''}[c];});} 1580 function frD(iso){ if(!iso)return''; var p=String(iso).split('-'); return (p.length===3)?(p[2]+'/'+p[1]+'/'+p[0]):iso; } 1581 function jourLbl(iso){ var d; try{d=new Date(iso+'T12:00:00');}catch(e){return frD(iso);} var J=['Dim','Lun','Mar','Mer','Jeu','Ven','Sam']; return J[d.getDay()]+'. '+frD(iso).slice(0,5); } 1582 function creLbl(cr){ if(!cr)return''; return jourLbl(cr.jour)+(cr.horaire?(' · '+cr.horaire):'')+(cr.de
1582signation?(' · '+cr.designation):'')+(cr.confirm?' (à confirmer)':''); } 1583 function creCol(cr){ if(!cr)return''; return jourLbl(cr.jour)+(cr.horaire?('\n'+cr.horaire):''); } 1584 function labelFromIds(cre,ids){ var m={}; (cre||[]).forEach(function(c){m[c.id]=c;}); return (ids||[]).map(function(x){ return m[x]?creLbl(m[x]):x; }); } 1585 function uid(){ return 'stage-'+Date.now().toString(36)+Math.random().toString(36).slice(2,6); } 1586 1587 /* ============================ NAGEUR ============================ */ 1588 window.inscrStagesPanel=function(){ setTimeout(inscrStagesFill,60); return '<div id="nl-stages" class="nl-stages"></div>'; }; 1589 function inscrStagesFill(){ 1590 var host=document.getElementById('nl-stages'); if(!host)return; readState(); if(!NCODE){host.innerHTML='';return;} 1591 fetch(QW+'/stages?code='+encodeURIComponent(NCODE)).then(function(r){return r.json();}).then(function(d){ 1592 if(!d||!d.ok||!d.stages||!d.stages.length){ host.innerHTML=''; return; } 1593 var mine=d.mine||{}; var h='<h3 class="nls-h">ðï¸ Stages</h3>';
1594 d.stages.forEach(function(s){ 1595 h+='<div class="nls-card" data-id="'+esc(s.id)+'">'; 1596 h+='<div class="nls-t"><b>'+esc(s.label||'Stage')+'</b>'+(s.group?(' <span class="nls-grp">'+esc(s.group)+'</span>'):'')+'</div>'; 1597 h+='<div class="nls-d">'+esc(frD(s.dates&&s.dates.from))+(s.dates&&s.dates.to?(' â '+esc(frD(s.dates.to))):'')+(s.deadline?(' · limite '+esc(frD(s.deadline))):'')+'</div>'; 1598 if(s.statut==='annule'){ h+='<div class="nls-cancel">â Stage annulé'+(s.motifAnnulation?(' â '+esc(s.motifAnnulation)):'')+'</div></div>'; return; } 1599 if(s.statut!=='ouvert'){ h+='<div class="nls-closed">Inscriptions fermées.</div>'+(mine[s.id]?('<div class="nls-mine">Tu es inscrit(e) : '+labelFromIds(s.creneaux,mine[s.id]).map(esc).join(' · ')+'</div>'):'')+'</div>'; return; } 1600 var sel=mine[s.id]||[]; 1601 groupCre(s.creneaux||[]).forEach(function(grp){ 1602 if(grp.desig) h+='<div class="nls-gt">'+esc(grp.desig)+'</div>'; 1603 h+='<div class="nls-cre">'; 1604 grp.rows.forEach(function(cr){ var on=sel.indexOf(cr.id)>=0; h+='<label class="nls-cbx'+(on?' on':'')+'"><input type="checkbox" value="'+esc(cr.id)+'"'+(on?' checked':'')+' onchange="inscrStagesCbx(this)"> '+esc(jourLbl(cr.jour)+(cr.horaire?(' · '+cr.horaire):'')+(cr.confirm?' (à confirmer)':''))+'</label>'; }); 1605 h+='</div>'; 1606 }); 1607 h+='<div class="nls-act"><button class="nls-btn" onclick="inscrStagesSubmit(\''+esc(s.id)+'\')">â Valider mon inscription</button>'+(sel.length?'<button class="nls-btn nls-out" onclick="inscrStagesUnsub(\''+esc(s.id)+'\')">Me désinscrire</button>':'')+'<span class="nls-st" id="nls-st-'+esc(s.id)+'">'+(sel.length?('â Inscrit(e) : '+sel.length+' séance(s)'):'')+'</span></div>'; 1608 h+='</div>'; 1609 }); 1610 host.innerHTML=h; 1611 }).catch(function(){ host.innerHTML=''; }); 1612 } 1613 window.inscrStagesCbx=function(el){ var l=el.closest('.nls-cbx'); if(l)l.classList.toggle('on',el.checked); }; 1614 window.inscrStagesSubmit=function(id){ 1615 readState(); var card=document.querySelector('#nl-stages .nls-card[data-id="'+id+'"]'); if(!card)return; 1616 var cre=[].map.call(card.querySelectorAll('.nls-cre input:checked'),function(c){return c.value;}); 1617 var st=document.getElementById('nls-st-'+id); if(st){st.textContent='Envoiâ¦';} 1618 fetch(QW+'/stages/inscription?code='+encodeURIComponent(NCODE),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({stageId:id,creneaux:cre})}) 1619 .then(function(r){return r.json();}).then(function(d){ if(d&&d.ok){ if(st)st.textContent=cre.length?('â Inscription confirmée : '+cre.length+' séance(s)'):'Désinscrit(e).'; setTimeout(inscrStagesFill,700); } else if(st){st.textContent=(d&&d.error)||'Ãchec.';} }) 1620 .catch(function(){ if(st)st.textContent='Service indisponible.'; }); 1621 }; 1622 window.inscrStagesUnsub=function(id){ if(!confirm('Te désinscrire de ce stage ?'))return; readState(); 1623 fetch(QW+'/stages/inscription?code='+encodeURIComponent(NCODE),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({stageId:id,creneaux:[]})}) 1624 .then(function(r){return r.json();}).then(function(){ inscrStagesFill(); }).catch(function(){}); }; 1625 1626 /* ============================ COACH ============================ */ 1627 function loadSRoster(cb){ if(SROSTER){cb();return;} readState(); fetch(QW+'/roster?pw='+encodeURIComponent(COACHPW)).then(function(r){return r.json();}).then(function(d){ SROSTER=(d&&d.ok&&d.adherents)?d.adherents:[]; cb(); }).catch(function(){ SROSTER=[]; cb(); }); } 1628 function allGroups(){ var g={}; (SROSTER||[]).forEach(function(a){ if(a.archive)return; (a.groupes||[]).forEach(function(x){ if(x)g[x]=1; }); }); return Object.keys(g).sort(); } 1629 function nbIns(id){ return Object.keys((STINS[id]||{})).length; } 1630 window.inscrStagesManager=function(){ readState(); if(!COACHPW){alert('Reconnecte-toi à ton espace coach.');return;} var ov=document.getElementById('inscr-sov'); ov.classList.add('on'); ov.innerHTML='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrStagesClose()">â</button><h2>ðï¸ Gérer les stages</h2><div class="insc-sub">Chargementâ¦</div></div>'; 1631 fetch(QW+'/stages?pw='+encodeURIComponent(COACHPW)).then(function(r){return r.json();}).then(function(d){ ST=(d&&d.stages)||[]; STINS=(d&&d.inscriptions)||{}; loadSRoster(stgRenderList); }).catch(function(){ ST=[];STINS={}; loadSRoster(stgRenderList); }); }; 1632 window.inscrStagesClose=function(){ var o=document.getElementById('inscr-sov'); if(o)o.classList.remove('on'); SEDIT=null; }; 1633 function stgSaveAll(cb){ readState(); fetch(QW+'/stages?pw='+encodeURIComponent(COACHPW),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({stages:ST})}).then(function(r){return r.json();}).then(function(d){ if(cb)cb(d); }).catch(function(){ if(cb)cb({ok:false}); }); } 1634 1635 function stgRenderList(){ 1636 var h='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrStagesClose()">â</button><h2>ðï¸ Gérer les stages</h2>'; 1637 h+='<div class="pk-bulk"><button class="pk-recap" onclick="inscrStageNew()">+ Nouveau stage</button></div>'; 1638 if(!ST.length) h+='<div class="insc-note">Aucun stage. Clique « + Nouveau stage ».</div>'; 1639 ST.slice().sort(function(a,b){return String((a.dates||{}).from).localeCompare(String((b.dates||{}).from));}
1639).forEach(function(s){ 1640 var n=nbIns(s.id); var stc=s.statut==='ouvert'?'ð¢ ouvert':(s.statut==='annule'?'â annulé':'ð´ fermé'); 1641 h+='<div class="stg-row">'; 1642 h+='<div class="stg-main"><b>'+esc(s.label||'Stage')+'</b> <span class="stg-badge">'+stc+'</span><br><span class="stg-sub">'+esc(frD((s.dates||{}).from))+(s.dates&&s.dates.to?(' â '+esc(frD(s.dates.to))):'')+' · '+esc((s.groups||[]).join(', ')||'tous groupes')+' · <b>'+n+'</b> inscrit(s)'+(s.deadline?(' · limite '+esc(frD(s.deadline))):'')+(s.motifAnnulation?(' · motif : '+esc(s.motifAnnulation)):'')+'</span></div>'; 1643 h+='<div class="stg-ctrls">'; 1644 h+=(s.statut==='ouvert'?'<button class="btnx" onclick="inscrStageSet(\''+esc(s.id)+'\',\'ferme\')">Fermer</button>':'<button class="btnx" onclick="inscrStageSet(\''+esc(s.id)+'\',\'ouvert\')">Ouvrir</button>'); 1645 h+='<button class="btnx" onclick="inscrStageEdit(\''+esc(s.id)+'\')">Ãditer</button>'; 1646 h+='<button class="btnx" onclick="inscrStageSuivi(\''+esc(s.id)+'\')">ð¥ Suivi ('+n+')</button>'; 1647 h+='<button class="btnx btnx-red" onclick="inscrStageCancel(\''+esc(s.id)+'\')">â Annuler</button>'; 1648 h+='<button class="btnx" onclick="inscrStageDelete(\''+esc(s.id)+'\')">ð</button>'; 1649 h+='</div></div>'; 1650 }); 1651 h+='</div>'; 1652 document.getElementById('inscr-sov').innerHTML=h; 1653 } 1654 window.inscrStageSet=function(id,st){ var s=ST.find(function(x){return x.id===id;}); if(!s)return; s.statut=st; if(st!=='annule')s.motifAnnulation=''; stgSaveAll(function(){ stgRenderList(); }); }; 1655 window.inscrStageDelete=function(id){ if(!confirm('Supprimer définitivement ce stage et ses inscriptions ?'))return; ST=ST.filter(function(x){return x.id!==id;}); stgSaveAll(function(){ inscrStagesManager(); }); }; 1656 window.inscrStageCancel=function(id){ var s=ST.find(function(x){return x.id===id;}); if(!s)return; var motif=prompt('Motif de lâannulation :','Trop peu dâinscrits'); if(motif===null)return; s.statut='annule'; s.motifAnnulation=motif||'Annulé'; stgSaveAll(function(){ stgRenderList(); 1657 // proposer un mail groupé aux inscrits 1658 var ins=STINS[id]||{}; var mails=[]; Object.keys(ins).forEach(function(k){ var a=(SROSTER||[]).find(function(x){return x.key===k;}); if(a&&a.mail)mails.push(a.mail); }); 1659 if(mails.length && confirm('Prévenir les '+mails.length+' inscrit(s) par e-mail ?')){ var subj='Annulation â '+(s.label||'stage'); var body='Bonjour,\n\nLe stage « '+(s.label||'')+' » est annulé.\nMotif : '+(s.motifAnnulation||'')+'\n\nSportivement,\nLe CNBV'; window.location.href='mailto:?bcc='+encodeURIComponent(mails.join(','))+'&subject='+encodeURIComponent(subj)+'&body='+encodeURIComponent(body); } 1660 }); }; 1661 1662 /* ---- Ãdition / création ---- */ 1663 function crId(){ return 'c'+Date.now().toString(36)+Math.random().toString(36).slice(2,5); } 1664 function normCre(list){ return (list||[]).map(function(c){ return {id:c.id||crId(),jour:c.jour||'',horaire:c.horaire||'',designation:c.designation||'',lignes:c.lignes||'',confirm:!!c.confirm}; }); } 1665 window.inscrStageNew=function(){ SEDIT={id:uid(),label:'',group:'',groups:[],dates:{from:'',to:''},deadline:'',statut:'ouvert',creneaux:[{id:crId(),jour:'',horaire:'15h30-17h00',designation:'',lignes:'2',confirm:false}],_new:true}; stgRenderEdit(); }; 1666 window.inscrStageEdit=function(id){ var s=ST.find(function(x){return x.id===id;}); if(!s)return; SEDIT=JSON.parse(JSON.stringify(s)); SEDIT.creneaux=normCre(SEDIT.creneaux); if(!SEDIT.creneaux.length)SEDIT.creneaux=[{id:crId(),jour:'',horaire:'',designation:'',lignes:'',confirm:false}]; if(!SEDIT.groups)SEDIT.groups=[]; if(!SEDIT.dates)SEDIT.dates={from:'',to:''}; stgRenderEdit(); }; 1667 function groupCre(list){ var order=[],map={}; (list||[]).forEach(function(c){ var d=c.designation||''; if(!(d in map)){map[d]=[];order.push(d);} map[d].push(c); }); return order.map(function(d){return {desig:d,rows:map[d]};}); } 1668 function readEdit(){ if(!SEDIT)return; var g=function(id){var e=document.getElementById(id);return e?e.value:'';}; 1669 SEDIT.label=g('se-label'); SEDIT.group=g('se-group'); SEDIT.dates.from=g('se-from'); SEDIT.dates.to=g('se-to'); SEDIT.deadline=g('se-deadline'); 1670 SEDIT.groups=[].map.call(document.querySelectorAll('#se-groups input:checked'),function(c){return c.value;}); 1671 var out=[]; 1672 [].forEach.call(document.querySelectorAll('#se-cre .se-grp'),function(blk){ var desig=(blk.querySelector('.se-gname')||{}).value||''; desig=desig.trim(); 1673 [].forEach.call(blk.querySelectorAll('.se-crow'),function(row){ out.push({id:row.getAttribute('data-id')||crId(),jour:row.querySelector('.se-cj').value,horaire:(row.querySelector('.se-ch').value||'').trim(),designation:desig,lignes:(row.querySelector('.se-cl').value||'').trim(),confirm:row.querySelector('.se-cx').checked}); }); 1674 }); 1675 SEDIT.creneaux=out; 1676 } 1677 window.inscrStageAddRow=function(blockIdx){ var blk=document.querySelectorAll('#se-cre .se-grp')[blockIdx]; var desig=blk?((blk.querySelector('.se-gname')||{}).value||'').trim():''; readEdit(); SEDIT.creneaux.push({id:crId(),jour:'',horaire:'',designation:desig,lignes:'2',confirm:false}); stgRenderEdit(); }; 1678 window.inscrStageAddGrp=function(){ readEdit(); SEDIT.creneaux.push({id:crId(),jour:'',horaire:'15h30-17h00',designation:'Nouveau groupe',lignes:'2',confirm:false}); stgRenderEdit(); }; 1679 window.inscrStageDelCre=function(id){ readEdit(); SEDIT.creneaux=SEDIT.creneaux.filter(function(c){return c.id!==id;}); stgRenderEdit(); }; 1680 window.inscrStageDelGrp=function(blockIdx){ var blk=document.querySelectorAll('#se-cre .se-grp')[blockIdx]; var desig=blk?((blk.querySelector('.se-gname')||{}).value||'').trim():''; if(!confirm('Supprimer tout le groupe « '+(desig||'sans nom')+' » et ses séances ?'))return; readEdit(); SEDIT.creneaux=SEDIT.creneaux.filter(function(c){return (c.designation||'')!==desig;}); stgRenderEdit(); }; 1681 function stgRenderEdit(){ 1682 var s=SEDIT; var groups=allGroups(); 1683 var h='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrStagesManager()">â</button><h2>ðï¸ '+(s._new?'Nouveau stage':'Ãditer le stage')+'</h2>'; 1684 h+='<div class="se-form">'; 1685 h+='<div class="se-f"><label>Nom du stage</label><input id="se-label" value="'+esc(s.label)+'" placeholder="Stage Toussaint 2026"></div>' 1686 +'<div class="se-f"><label>Thème / groupe (libellé affiché)</label><input id="se-group" value="'+esc(s.group||'')+'" placeholder="ENF Rénové â Water-Polo"></div>' 1687 +'<div class="se-f3"><div class="se-f"><label>Du</label><input type="date" id="se-from" value="'+esc((s.dates||{}).from||'')+'"></div>' 1688 +'<div class="se-f"><label>Au</label><input type="date" id="se-to" value="'+esc((s.dates||{}).to||'')+'"></div>' 1689 +'<div class="se-f"><label>Date limite (option)</label><input type="date" id="se-deadline" value="'+esc(s.deadline||'')+'"></div></div>'; 1690 h+='</div>'; 1691 h+='<label class="pk-mslab se-lab">Groupes concernés <span class="pk-multi">(vide = tous)</span></label>'; 1692 h+='<div id="se-groups" class="se-groups">'+groups.map(function(g){var on=(s.groups||[]).indexOf(g)>=0;return '<label class="se-gchk"><input type="checkbox" value="'+esc(g)+'"'+(on?' checked':'')+'><span>'+esc(g)+'</span></label>';}).join('')+'</div>'; 1693 h+='<label class="pk-mslab se-lab">Séances <span class="pk-multi">(regroupées par groupe : nom du groupe, puis ses jours & horaires)</span></label><div id="se-cre">'; 1694 var grps=groupCre(s.creneaux||[]); 1695 if(!grps.length) grps=[{desig:'',rows:[]}]; 1696 grps.forEach(function(grp,gi){ 1697 h+='<div class="se-grp">'; 1698 h+='<div class="se-ghead"><input type="text" class="se-gname" value="'+esc(grp.desig||'')+'" placeholder="Nom du groupe (ex : Stage ENF Water-Polo, CS / Avenirs, Mastersâ¦)"><button class="btnx btnx-red se-gdel" onclick="inscrStageDelGrp('+gi+')" title="Supprimer le groupe">ð</button></div>'; 1699 h+='<div class="se-rows">'; 1700 grp.rows.forEach(function(cr){ h+='<div class="se-crow" data-id="'+esc(cr.id)+'">' 1701 +'<input type="date" class="se-cj" value="'+esc(cr.jour||'')+'">' 1702 +'<input type="text" class="se-ch" value="'+esc(cr.horaire||'')+'" placeholder="15h30-17h00">' 1703 +'<span class="se-clw"><input type="text" class="se-cl" value="'+esc(cr.lignes||'')+'" placeholder="â"> ligne(s)</span>' 1704 +'<label class="se-cc"><input type="checkbox" class="se-cx"'+(cr.confirm?' checked':'')+'> à confirmer</label>' 1705 +'<button class="btnx btnx-red se-cdel" onclick="inscrStageDelCre(\''+esc(cr.id)+'\')" title="Supprimer la séance">â</button>' 1706 +'</div>'; }); 1707 h+='</div>'; 1708 h+='<button class="se-addrow" onclick="inscrStageAddRow('+gi+')">+ séance dans ce groupe</button>'; 1709 h+='</div>'; 1710 }); 1711 h+='</div><button class="insc-add" onclick="inscrStageAddGrp()">+ Ajouter un groupe</button>'; 1712 h+='<div id="se-status" class="insc-status"></div>'; 1713 h+='<div class="insc-actions"><button class="insc-cancel" onclick="inscrStagesManager()">Annuler</button><button class="insc-submit" onclick="inscrStageSave()">ð¾ Enregistrer le stage</button></div></div>'; 1714 document.getElementById('inscr-sov').innerHTML=h; 1715 } 1716 window.inscrStageSave=function(){ readEdit(); var st=document.getElementById('se-status'); 1717 if(!SEDIT.label.trim()){ st.textContent='Indique un nom de stage.'; st.className='insc-status err'; return; } 1718 if(!(SEDIT.dates.from)){ st.textContent='Indique au moins la date de début.'; st.className='insc-status err'; return; } 1719 if(!SEDIT.creneaux.length){ st.textContent='Ajoute au moins une séance (avec une date).'; st.className='insc-status err'; return; } 1720 var idx=ST.findIndex(function(x){return x.id===SEDIT.id;}); var clean={id:SEDIT.id,label:SEDIT.label.trim(),group:SEDIT.group.trim(),groups:SEDIT.groups,dates:SEDIT.dates,deadline:SEDIT.deadline,statut:SEDIT.statut||'ouvert',motifAnnulation:SEDIT.motifAnnulation||'',creneaux:SEDIT.creneaux}; 1721 if(idx>=0)ST[idx]=clean; else ST.push(clean); 1722 st.textContent='Enregistrementâ¦';
1722 stgSaveAll(function(d){ if(d&&d.ok){ SEDIT=null; inscrStagesManager(); } else { st.textContent='Ãchec de lâenregistrement.'; st.className='insc-status err'; } }); 1723 }; 1724 1725 /* ---- Suivi d'un stage ---- */ 1726 window.inscrStageSuivi=function(id){ var s=ST.find(function(x){return x.id===id;}); if(!s)return; var ins=STINS[id]||{}; 1727 var byKey={}; (SROSTER||[]).forEach(function(a){ if(a.key)byKey[a.key]=a; }); 1728 var keys=Object.keys(ins).sort(); 1729 var cre=s.creneaux||[]; 1730 var h='<div class="insc-modal insc-wide"><button class="insc-x" onclick="inscrStagesManager()">â</button><h2>ð¥ Suivi â '+esc(s.label||'')+'</h2>'; 1731 h+='<div class="insc-sub">'+keys.length+' inscrit(s)'+(s.deadline?(' · limite '+esc(frD(s.deadline))):'')+' · seuil conseillé : 8</div>'; 1732 h+='<div class="pk-bulk"><button onclick="inscrStageExport(\''+esc(id)+'\')">â¬ï¸ Export Excel (CSV)</button><button onclick="inscrStagePrint(\''+esc(id)+'\')">ð¨ï¸ Imprimer les convocations</button></div>'; 1733 h+='<div id="stg-suivi-body"><table class="pk-rtable"><thead><tr><th>Nageur</th>'+cre.map(function(c){return '<th title="'+esc(creLbl(c))+'">'+esc(creCol(c)).replace(/\n/g,'<br>')+'</th>';}).join('')+'<th>Inscrit le</th><th></th></tr></thead><tbody>'; 1734 if(!keys.length) h+='<tr><td colspan="'+(cre.length+3)+'" class="muted">Aucun inscrit.</td></tr>'; 1735 keys.forEach(function(k){ var a=byKey[k]||{}; var r=ins[k]||{}; var sel=r.creneaux||[]; 1736 var nom=(a.nom||r.nom||k.split('|')[0])+' '+(a.prenom||r.prenom||''); 1737 h+='<tr><td>'+esc(nom)+'</td>'+cre.map(function(c){return '<td style="text-align:center">'+(sel.indexOf(c.id)>=0?'â':'â')+'</td>';}).join('')+'<td>'+(r.maj?esc(frD(new Date(r.maj).toISOString().slice(0,10))):'')+'</td><td><button class="btnx btnx-red" onclick="inscrStageRemoveIns(\''+esc(id)+'\',\''+esc(k)+'\')">Retirer</button></td></tr>'; 1738 }); 1739 h+='</tbody></table></div>'; 1740 h+='<div class="insc-actions"><button class="insc-cancel" onclick="inscrStagesManager()">â Retour</button></div></div>'; 1741 document.getElementById('inscr-sov').innerHTML=h; 1742 }; 1743 window.inscrStageRemoveIns=function(id,key){ if(!confirm('Retirer cette inscription ?'))return; readState(); 1744 fetch(QW+'/stages/remove?pw='+encodeURIComponent(COACHPW),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({stageId:id,key:key})}) 1745 .then(function(r){return r.json();}).then(function(d){ if(d&&d.ok){ if(STINS[id])delete STINS[id][key]; inscrStageSuivi(id); } else alert((d&&d.error)||'Ãchec.'); }).catch(function(){ alert('Service indisponible.'); }); 1746 }; 1747 window.inscrStageExport=function(id){ var s=ST.find(function(x){return x.id===id;}); var ins=STINS[id]||{}; var cre=(s&&s.creneaux)||[]; var byKey={}; (SROSTER||[]).forEach(function(a){if(a.key)byKey[a.key]=a;}); 1748 var rows=[['Nageur'].concat(cre.map(function(c){return creLbl(c);})).concat(['Inscrit le'])]; 1749 Object.keys(ins).sort().forEach(function(k){ var a=byKey[k]||{}; var r=ins[k]||{}; var sel=r.creneaux||[]; rows.push([((a.nom||r.nom||'')+' '+(a.prenom||r.prenom||'')).trim()].concat(cre.map(function(c){return sel.indexOf(c.id)>=0?'X':'';})).concat([r.maj?frD(new Date(r.maj).toISOString().slice(0,10)):''])); }); 1750 var csv=rows.map(function(r){return r.map(function(v){v=String(v==null?'':v); return /[;"\n]/.test(v)?('"'+v.replace(/"/g,'""')+'"'):v;}).join(';');}).join('\r\n'); 1751 var b=new Blob([''+csv],{type:'text/csv;charset=utf-8'}); var u=URL.createObjectURL(b); var a=document.createElement('a'); a.href=u; a.download='Stage_'+String((s&&s.label)||id).replace(/[^A-Za-z0-9]+/g,'_')+'.csv'; document.body.appendChild(a); a.click(); a.remove(); setTimeout(function(){URL.revokeObjectURL(u);},800); 1752 }; 1753 window.inscrStagePrint=function(id){ var s=ST.find(function(x){return x.id===id;}); var body=document.getElementById('stg-suivi-body'); if(!body)return; var w=window.open('','_blank'); if(!w){alert('Autorise les pop-up.');return;}
1754 w.document.write('<html><head><meta charset="utf-8"><title>Convocations â '+esc((s&&s.label)||'')+'</title><style>body{font-family:Arial;margin:24px}h1{font-size:18px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border:1px solid #ccc;padding:5px 8px;text-align:left}thead th{background:#eef3f8}</style></head><body><h1>Convocations â '+esc((s&&s.label)||'')+'</h1><p>'+esc(frD((s&&s.dates||{}).from))+((s&&s.dates&&s.dates.to)?(' â '+esc(frD(s.dates.to))):'')+' · '+esc((s&&s.group)||'')+'</p>'+body.innerHTML+'</body></html>'); w.document.close(); setTimeout(function(){w.focus();w.print();},300); 1755 }; 1756 1757 /* ---- boutons dans l'espace coach ---- */ 1758 function addCoachBtn(){ var box=document.querySelector('#nl-body .coachbox'); if(!box||box.querySelector('.stg-coach-sec'))return; var div=document.createElement('div'); div.className='cbsec stg-coach-sec'; div.innerHTML='<b>4) Stages</b><div class="cbnote">Crée et ouvre des stages à lâinscription (par groupe), suis les inscrits, exporte/imprime les convocations, annule si besoin.</div><button class="nl-btn" onclick="inscrStagesManager()">ðï¸ Gérer les stages</button>'; var out=box.querySelector('.nl-out'); if(out)box.insertBefore(div,out); else box.appendChild(div); } 1759 function wrap(name,after){ var o=window[name]; if(typeof o!=='function')return; window[name]=function(){ var r=o.apply(this,arguments); try{after.apply(this,arguments);}catch(e){} return r; }; } 1760 function install(){ 1761 wrap('coachOpen',function(){ setTimeout(addCoachBtn,30); }); 1762 if(!document.getElementById('inscr-sov')){ var s=document.createElement('div'); s.id='inscr-sov'; s.className='inscr-ov'; document.body.appendChild(s); } 1763 } 1764 if(document.readyState==='loading') document.addEventListener('DOMContentLoaded',install); else install(); 1765})(); 1766</script>
1766 1767 1768</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.