Cyprus Volleyball Federation

2026 Beach Volley
Tournament Schedule

Supported by
ALLWYNΚΟΑPETROLINAΧΑΡΑΛΑΜΠΙΔΗΣ ΚΡΙΣΤΗΣ
Season: 2026 2025
12Tournaments
Teams entered
Matches played
2Seasons
📅
Next Tournament
1st Underage Boys
13-14 June
Open / Senior
Development / Underage
2025 Final Results
' +'

'+h(title)+'

'+subtitle+'

' +(d.ph||d.ph) +''; var w=window.open('','_blank','width=900,height=700'); if(!w){alert('Pop-ups blocked. Please allow pop-ups for this site to print.');return;} w.document.write(html);w.document.close(); } /* Keyboard: Escape closes open panels */ document.addEventListener('keydown',function(e){ if(e.key==='Escape'){ ROOT.querySelectorAll('.kop-panel:not([hidden])').forEach(function(p){ p.hidden=true; var tid=p.id.replace('kop-panel-',''); var hdr=ROOT.querySelector('[data-toggle="'+tid+'"]'); if(hdr)hdr.setAttribute('aria-expanded','false'); }); } }); /* ═══════════════════════════════════════════════════════════════════ FEATURE 6 — Countdown timer ═══════════════════════════════════════════════════════════════════ */ (function(){ var card=ROOT.querySelector('[data-countdown]'); if(!card)return; var target=new Date(card.dataset.countdown+'T00:00:00'); var cd=document.getElementById('kop-cd'); var els={d:document.getElementById('kop-cd-d'),h:document.getElementById('kop-cd-h'),m:document.getElementById('kop-cd-m'),s:document.getElementById('kop-cd-s')}; if(!cd||!els.d)return; function tick(){ var now=new Date(),diff=target-now; if(diff<=0){ cd.style.display='none'; var sub=card.querySelector('.kop-sum-sub'); if(sub&&!sub.querySelector('.kop-today-label')){var lbl=document.createElement('span');lbl.className='kop-today-label';lbl.textContent=' · Today!';lbl.style.cssText='color:#dc2626;font-weight:700';sub.appendChild(lbl);} return; } var td=Math.floor(diff/86400000),th=Math.floor((diff%86400000)/3600000),tm=Math.floor((diff%3600000)/60000),ts=Math.floor((diff%60000)/1000); els.d.textContent=td;els.h.textContent=String(th).padStart(2,'0');els.m.textContent=String(tm).padStart(2,'0');els.s.textContent=String(ts).padStart(2,'0'); cd.style.display='flex'; } tick();setInterval(tick,1000); })(); /* ═══════════════════════════════════════════════════════════════════ FEATURE 1 — Today view: auto-expand live tournaments ═══════════════════════════════════════════════════════════════════ */ (function(){ var todayAttr=ROOT.dataset.today; if(!todayAttr)return; var tids=todayAttr.split(',').map(function(s){return s.trim();}).filter(Boolean); if(!tids.length)return; // Wait until DOM is fully painted then auto-open each today tournament setTimeout(function(){ tids.forEach(function(tid){ var row=ROOT.querySelector('.kop-row[data-tid="'+tid+'"]'); var panel=document.getElementById('kop-panel-'+tid); var hdr=ROOT.querySelector('[data-toggle="'+tid+'"]'); if(!panel||!hdr||panel.hidden===false)return; // Expand panel.hidden=false; hdr.setAttribute('aria-expanded','true'); // Activate matches tab (Program/Results) — most useful on match day var tabs=panel.querySelectorAll('.kop-tab'); var matchTab=null; tabs.forEach(function(t){ t.classList.remove('on'); if(t.dataset.ptab==='matches')matchTab=t; }); if(matchTab){matchTab.classList.add('on');loadAndRender(tid,'matches');} else if(tabs.length){tabs[0].classList.add('on');loadAndRender(tid,tabs[0].dataset.ptab);} // Smooth scroll to the row (slight delay for render) setTimeout(function(){ if(row)row.scrollIntoView({behavior:'smooth',block:'start'}); },300); }); },400); })(); })();