{"id":7,"date":"2026-04-11T17:11:08","date_gmt":"2026-04-11T17:11:08","guid":{"rendered":"https:\/\/fc.wloszakowice.info\/?page_id=7"},"modified":"2026-04-11T17:11:56","modified_gmt":"2026-04-11T17:11:56","slug":"panel","status":"publish","type":"page","link":"https:\/\/fc.wloszakowice.info\/index.php\/panel\/","title":{"rendered":"Panel"},"content":{"rendered":"    <script>\n    window.FCT = window.FCT || {ajax:'https:\/\/fc.wloszakowice.info\/wp-admin\/admin-ajax.php',nonce:'d7c84e4f25',isAdmin:0,uid:0};\n    (function(){\n        if(window._fctInited) return; window._fctInited=true;\n\n        window.fctAjax=function(action,data,btn){\n            return new Promise(function(resolve,reject){\n                var fd=new FormData();\n                fd.append('action',action); fd.append('nonce',FCT.nonce);\n                if(data) Object.keys(data).forEach(function(k){fd.append(k,data[k]);});\n                if(btn){btn.disabled=true;btn._h=btn.innerHTML;btn.innerHTML='<span class=\"fct-spin\"><\/span>';}\n                fetch(FCT.ajax,{method:'POST',body:fd})\n                    .then(function(r){return r.json();})\n                    .then(function(res){\n                        if(btn){btn.disabled=false;btn.innerHTML=btn._h;}\n                        if(res.success) resolve(res.data);\n                        else{fctToast((res.data&&res.data.msg)?res.data.msg:'B\u0142\u0105d.','error');reject(res.data);}\n                    })\n                    .catch(function(){if(btn){btn.disabled=false;btn.innerHTML=btn._h;}fctToast('B\u0142\u0105d po\u0142\u0105czenia.','error');reject();});\n            });\n        };\n\n        window.fctToast=function(msg,type){\n            var w=document.getElementById('fct-toast-wrap');\n            if(!w){w=document.createElement('div');w.id='fct-toast-wrap';w.style.cssText='position:fixed;bottom:20px;right:20px;z-index:99999;display:flex;flex-direction:column;gap:8px;';document.body.appendChild(w);}\n            var el=document.createElement('div');\n            el.style.cssText='background:#1c2333;border:1px solid #30363d;border-radius:8px;padding:12px 16px;font-size:14px;color:#e6edf3;max-width:320px;border-left:3px solid '+(type==='error'?'#da3633':type==='success'?'#2ea043':'#1f6feb')+';';\n            el.textContent=msg; w.appendChild(el);\n            setTimeout(function(){el.style.opacity='0';el.style.transition='opacity .4s';setTimeout(function(){if(el.parentNode)el.remove();},420);},3500);\n        };\n\n        document.addEventListener('DOMContentLoaded',function(){\n            \/* Tabs *\/\n            document.querySelectorAll('.fct-tab').forEach(function(tab){\n                tab.addEventListener('click',function(){\n                    var key=tab.dataset.tab;\n                    var tabsEl=tab.closest('.fct-tabs');\n                    var wrap=tabsEl.parentElement;\n                    tabsEl.querySelectorAll('.fct-tab').forEach(function(t){t.classList.remove('active');});\n                    tab.classList.add('active');\n                    wrap.querySelectorAll(':scope > .fct-panel').forEach(function(p){\n                        p.style.display = p.dataset.panel===key ? 'block' : 'none';\n                    });\n                });\n            });\n            \/* Auth tabs *\/\n            document.querySelectorAll('.fct-authtab').forEach(function(tab){\n                tab.addEventListener('click',function(){\n                    var key=tab.dataset.authtab;\n                    var box=tab.closest('.fct-auth-box');\n                    box.querySelectorAll('.fct-authtab').forEach(function(t){t.classList.remove('active');});\n                    box.querySelectorAll('.fct-authpanel').forEach(function(p){p.style.display='none';});\n                    tab.classList.add('active');\n                    var panel=box.querySelector('[data-authpanel=\"'+key+'\"]');\n                    if(panel) panel.style.display='block';\n                });\n            });\n            \/* Action buttons *\/\n            document.addEventListener('click',function(e){\n                var btn=e.target.closest('[data-fct]');\n                if(!btn) return;\n                var act=btn.dataset.fct, tid=btn.dataset.tid;\n                if(act==='logout'){fctAjax('fct_logout',{},btn).then(function(){location.reload();});}\n                else if(act==='join'){fctAjax('fct_join',{tid:tid},btn).then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},600);});}\n                else if(act==='leave'){if(!confirm('Opu\u015bci\u0107 turniej?'))return;fctAjax('fct_leave',{tid:tid},btn).then(function(d){fctToast(d.msg,'info');setTimeout(function(){location.reload();},600);});}\n                else if(act==='start'){if(!confirm('Rozpocz\u0105\u0107 turniej?'))return;fctAjax('fct_start_t',{tid:tid},btn).then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},800);});}\n                else if(act==='delete-t'){if(!confirm('Usun\u0105\u0107 turniej?'))return;fctAjax('fct_delete_t',{tid:tid},btn).then(function(d){fctToast(d.msg,'info');setTimeout(function(){location.reload();},600);});}\n                else if(act==='end-t'){if(!confirm('Zako\u0144czy\u0107 turniej?'))return;fctAjax('fct_end_t',{tid:tid},btn).then(function(d){fctToast(d.msg,'info');setTimeout(function(){location.reload();},600);});}\n            });\n            \/* Forms *\/\n            document.addEventListener('submit',function(e){\n                var form=e.target;\n                if(!form.dataset.fctForm) return;\n                e.preventDefault();\n                var btn=form.querySelector('[type=submit]');\n                var data={};\n                new FormData(form).forEach(function(v,k){data[k]=v;});\n                var type=form.dataset.fctForm;\n                if(type==='login'){fctAjax('fct_login',data,btn).then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},600);});}\n                else if(type==='register'){fctAjax('fct_register',data,btn).then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},800);});}\n                else if(type==='reset'){fctAjax('fct_reset_req',data,btn).then(function(d){fctToast(d.msg,'success');var m=document.getElementById('fct-reset-msg');if(m)m.innerHTML='<p style=\"color:#3fb950;margin-top:10px;\">'+d.msg+'<\/p>';});}\n                else if(type==='reset-do'){fctAjax('fct_reset_do',data,btn).then(function(d){fctToast(d.msg,'success');var b=document.getElementById('fct-rp-box');if(b)b.innerHTML='<p style=\"color:#3fb950;\">'+d.msg+'<\/p>';});}\n                else if(type==='profile'){fctAjax('fct_profile',data,btn).then(function(d){fctToast(d.msg,'success');});}\n                else if(type==='create-tournament'){fctAjax('fct_create_t',data,btn).then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},800);});}\n                else if(type==='score'){\n                    fctAjax('fct_score',{tid:form.dataset.tid,mid:form.dataset.mid,s1:form.querySelector('[name=s1]').value,s2:form.querySelector('[name=s2]').value},btn)\n                        .then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},600);});\n                }\n            });\n            \/* Fix DB *\/\n            window.fctFixDb=function(btn){btn.disabled=true;btn.textContent='...';fctAjax('fct_fix_db',{},btn).then(function(d){fctToast(d.msg,'success');setTimeout(function(){location.reload();},800);}).catch(function(){btn.disabled=false;btn.textContent='\u2699\ufe0f Napraw DB';});};\n            \/* Profile toggle *\/\n            var et=document.getElementById('fct-edit-toggle'), pe=document.getElementById('fct-profile-edit');\n            if(et&&pe) et.addEventListener('click',function(){pe.style.display=pe.style.display==='none'?'block':'none';});\n            \/* CL options *\/\n            var ts=document.getElementById('fct-type-select'), co=document.getElementById('fct-cl-opts');\n            if(ts&&co) ts.addEventListener('change',function(){co.style.display=ts.value==='champions_league'?'block':'none';});\n        });\n    })();\n    <\/script>\n        <div id=\"fct-app\" class=\"fct\">\n    <div id=\"fct-toast-wrap\"><\/div>\n\n    \n        <div class=\"fct-card fct-auth-box\">\n        <div class=\"fct-authtabs\">\n            <button class=\"fct-authtab active\" data-authtab=\"login\">Logowanie<\/button>\n            <button class=\"fct-authtab\" data-authtab=\"register\">Rejestracja<\/button>\n            <button class=\"fct-authtab\" data-authtab=\"reset\">Przypomnij has\u0142o<\/button>\n        <\/div>\n        <div class=\"fct-authpanel\" data-authpanel=\"login\" style=\"display:block;\">\n            <form data-fct-form=\"login\">\n                <div class=\"fct-row\">\n                    <div class=\"fct-field\"><label>Nick lub email<\/label><input class=\"fct-input\" name=\"username\" placeholder=\"Nick\" required><\/div>\n                    <div class=\"fct-field\"><label>Has\u0142o<\/label><input class=\"fct-input\" type=\"password\" name=\"password\" placeholder=\"Has\u0142o\" required><\/div>\n                <\/div>\n                <button type=\"submit\" class=\"fct-btn fct-btn-primary\">Zaloguj si\u0119<\/button>\n            <\/form>\n        <\/div>\n        <div class=\"fct-authpanel\" data-authpanel=\"register\" style=\"display:none;\">\n            <form data-fct-form=\"register\">\n                <div class=\"fct-row\">\n                    <div class=\"fct-field\"><label>Nick<\/label><input class=\"fct-input\" name=\"username\" placeholder=\"Unikalny nick\" required><\/div>\n                    <div class=\"fct-field\"><label>Email<\/label><input class=\"fct-input\" type=\"email\" name=\"email\" placeholder=\"twoj@email.pl\" required><\/div>\n                <\/div>\n                <div class=\"fct-row\">\n                    <div class=\"fct-field\"><label>Has\u0142o<\/label><input class=\"fct-input\" type=\"password\" name=\"password\" placeholder=\"Min. 6 znak\u00f3w\" required><\/div>\n                    <div class=\"fct-field\"><label>Dru\u017cyna (opcja)<\/label><input class=\"fct-input\" name=\"team\" placeholder=\"np. Bayern M\u00fcnchen\"><\/div>\n                <\/div>\n                <button type=\"submit\" class=\"fct-btn fct-btn-success\">Utw\u00f3rz konto<\/button>\n            <\/form>\n        <\/div>\n        <div class=\"fct-authpanel\" data-authpanel=\"reset\" style=\"display:none;\">\n            <form data-fct-form=\"reset\">\n                <div class=\"fct-field\" style=\"margin-bottom:12px;\">\n                    <label>Adres email<\/label>\n                    <input class=\"fct-input\" type=\"email\" name=\"email\" placeholder=\"twoj@email.pl\" required>\n                <\/div>\n                <button type=\"submit\" class=\"fct-btn fct-btn-warn\">Wy\u015blij link resetuj\u0105cy<\/button>\n            <\/form>\n            <div id=\"fct-reset-msg\"><\/div>\n        <\/div>\n    <\/div>\n    \n    <div class=\"fct-tabs\">\n        <button class=\"fct-tab active\" data-tab=\"active\">\ud83c\udfc6 Turnieje<\/button>\n        <button class=\"fct-tab\" data-tab=\"history\">\ud83d\udcdc Historia<\/button>\n        <button class=\"fct-tab\" data-tab=\"ranking\">\ud83e\udd47 Ranking<\/button>\n            <\/div>\n\n    <div class=\"fct-panel\" data-panel=\"active\" style=\"display:block;\">\n                <div class=\"fct-grid\">\n                <div class=\"fct-card fct-tcard\">\n            <div class=\"fct-tcard-head\">\n                <div>\n                    <div class=\"fct-tcard-type\">Liga<\/div>\n                    <div class=\"fct-tcard-name\">sdsad<\/div>\n                <\/div>\n                <span class=\"fct-badge fct-badge-open\">Zapisy<\/span>\n            <\/div>\n            <div class=\"fct-tcard-meta\">\n                <span>\ud83d\udc65 1 graczy<\/span>\n                            <\/div>\n            <div class=\"fct-tcard-actions\">\n                                                        <div class=\"fct-info-box\">Zaloguj si\u0119, aby do\u0142\u0105czy\u0107<\/div>\n                                                                    <\/div>\n        <\/div>\n                <div class=\"fct-card fct-tcard\">\n            <div class=\"fct-tcard-head\">\n                <div>\n                    <div class=\"fct-tcard-type\">Liga<\/div>\n                    <div class=\"fct-tcard-name\">sdsadds<\/div>\n                <\/div>\n                <span class=\"fct-badge fct-badge-open\">Zapisy<\/span>\n            <\/div>\n            <div class=\"fct-tcard-meta\">\n                <span>\ud83d\udc65 1 graczy<\/span>\n                            <\/div>\n            <div class=\"fct-tcard-actions\">\n                                                        <div class=\"fct-info-box\">Zaloguj si\u0119, aby do\u0142\u0105czy\u0107<\/div>\n                                                                    <\/div>\n        <\/div>\n                <div class=\"fct-card fct-tcard\">\n            <div class=\"fct-tcard-head\">\n                <div>\n                    <div class=\"fct-tcard-type\">Liga<\/div>\n                    <div class=\"fct-tcard-name\">tesd<\/div>\n                <\/div>\n                <span class=\"fct-badge fct-badge-open\">Zapisy<\/span>\n            <\/div>\n            <div class=\"fct-tcard-meta\">\n                <span>\ud83d\udc65 0 graczy<\/span>\n                            <\/div>\n            <div class=\"fct-tcard-actions\">\n                                                        <div class=\"fct-info-box\">Zaloguj si\u0119, aby do\u0142\u0105czy\u0107<\/div>\n                                                                    <\/div>\n        <\/div>\n                <div class=\"fct-card fct-tcard\">\n            <div class=\"fct-tcard-head\">\n                <div>\n                    <div class=\"fct-tcard-type\">Liga<\/div>\n                    <div class=\"fct-tcard-name\">Spontaniczny<\/div>\n                <\/div>\n                <span class=\"fct-badge fct-badge-open\">Zapisy<\/span>\n            <\/div>\n            <div class=\"fct-tcard-meta\">\n                <span>\ud83d\udc65 0 graczy<\/span>\n                            <\/div>\n            <div class=\"fct-tcard-actions\">\n                                                        <div class=\"fct-info-box\">Zaloguj si\u0119, aby do\u0142\u0105czy\u0107<\/div>\n                                                                    <\/div>\n        <\/div>\n                <\/div>\n            <\/div>\n\n    <div class=\"fct-panel\" data-panel=\"history\" style=\"display:none;\">\n        <div class=\"fct-card\"><div class=\"fct-card-title\">\ud83d\udcdc Historia turniej\u00f3w<\/div><div class=\"fct-empty\"><div class=\"fct-empty-icon\">\ud83d\udced<\/div><p>Brak zako\u0144czonych turniej\u00f3w.<\/p><\/div><\/div>    <\/div>\n\n    <div class=\"fct-panel\" data-panel=\"ranking\" style=\"display:none;\">\n        <div class=\"fct-card\"><div class=\"fct-card-title\">\ud83e\udd47 Globalny ranking<\/div><div class=\"fct-empty\"><div class=\"fct-empty-icon\">\ud83d\udcca<\/div><p>Brak danych. Zagraj w turniej!<\/p><\/div><\/div>    <\/div>\n\n    \n    <\/div><!-- #fct-app -->\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":2,"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":10,"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/pages\/7\/revisions\/10"}],"wp:attachment":[{"href":"https:\/\/fc.wloszakowice.info\/index.php\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}