Collier County Live Sports Results

Collier County Sports Scoreboard — Live

🏆 Collier County Sports

Local high school scores, schedules and game results across Collier County.

LIVE SCOREBOARD
Checking live feed…
Loading scoreboard data.
0
Games Listed
0
Live Now
0
Finals
0
Upcoming

Scoreboard

LOCAL SPORTS
Automatic-feed ready. This version checks a JSON endpoint first and refreshes it every five minutes. If no endpoint is installed yet, it falls back to locally cached/current seed data so the scoreboard never appears broken.
${escapeHtml(g.statusText||String(g.status||"").toUpperCase())}
${escapeHtml(g.away.school)}${g.away.team?" "+escapeHtml(g.away.team):""}
Away
${escapeHtml(String(g.away.score ?? "—"))}
${escapeHtml(g.home.school)}${g.home.team?" "+escapeHtml(g.home.team):""}
Home
${escapeHtml(String(g.home.score ?? "—"))}
📅 ${escapeHtml(g.date||"")} ${g.time?"• "+escapeHtml(g.time):""}${g.venue?"📍 "+escapeHtml(g.venue):""}
`; } function render(){ const sf=sportFilter.value, sch=schoolFilter.value, st=statusFilter.value; const f=gamesData.filter(g=> (sf==="all"||g.sport===sf) && (sch==="all"||g.away.school===sch||g.home.school===sch) && (st==="all"||g.status===st) ); $("games").innerHTML=f.length?f.map(gameCard).join(""):'
No games match these filters.
'; $("totalGames").textContent=f.length; $("liveGames").textContent=f.filter(g=>g.status==="live").length; $("finalGames").textContent=f.filter(g=>g.status==="final").length; $("upcomingGames").textContent=f.filter(g=>g.status==="upcoming").length; $("tickerContent").textContent=f.map(g=>g.status==="upcoming" ?`${icon(g.sport)} ${g.away.school} vs ${g.home.school} — ${g.date||""} ${g.time||""}` :`${icon(g.sport)} ${g.away.school} ${g.away.score} • ${g.home.school} ${g.home.score} — ${g.statusText||g.status}` ).join(" • ") || "No games currently selected."; } function initials(s=""){return s.split(/\s+/).map(x=>x[0]).join("").slice(0,3).toUpperCase()} function escapeHtml(v){return String(v).replace(/[&<>"']/g,c=>({"&":"&","<":"<",">":">",'"':""","'":"'"}[c]))} function escapeAttr(v){return escapeHtml(v)} [sportFilter,schoolFilter,statusFilter].forEach(x=>x.addEventListener("change",render)); $("resetBtn").addEventListener("click",()=>{sportFilter.value="all";schoolFilter.value="all";statusFilter.value="all";render()}); $("refreshBtn").addEventListener("click",()=>loadScores(true)); loadScores(); setInterval(()=>loadScores(false),REFRESH_MS);