{"id":299,"date":"2025-07-03T21:50:29","date_gmt":"2025-07-03T21:50:29","guid":{"rendered":"https:\/\/avinya.me\/?page_id=299"},"modified":"2025-07-03T23:17:43","modified_gmt":"2025-07-03T23:17:43","slug":"games","status":"publish","type":"page","link":"https:\/\/avinya.me\/index.php\/games\/","title":{"rendered":"Daily Game Results"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"299\" class=\"elementor elementor-299\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0f574a5 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"0f574a5\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a297bb4 elementor-widget elementor-widget-html\" data-id=\"a297bb4\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <title>Points by Date<\/title>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\r\n  <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/bootstrap@5.3.3\/dist\/css\/bootstrap.min.css\" rel=\"stylesheet\" \/>\r\n  <style>\r\n    body {\r\n      background: #f8f9fa;\r\n      padding-top: 2rem;\r\n    }\r\n\r\n    \/* Custom Poker Chip Spinner *\/\r\n    #loadingSpinner {\r\n      display: none;\r\n      justify-content: center;\r\n      margin: 2rem 0;\r\n    }\r\n\r\n    .poker-chip {\r\n      width: 50px;\r\n      height: 50px;\r\n      border: 8px solid #e63946;\r\n      border-top: 8px solid #1d3557;\r\n      border-radius: 50%;\r\n      animation: spin 1s linear infinite;\r\n    }\r\n\r\n    @keyframes spin {\r\n      to {\r\n        transform: rotate(360deg);\r\n      }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"container\">\r\n    <h2 id=\"title\" class=\"mb-4 text-primary\">Points for: (loading...)<\/h2>\r\n\r\n    <div class=\"mb-3\">\r\n      <label for=\"dateDropdown\" class=\"form-label\">Select a game date:<\/label>\r\n      <select id=\"dateDropdown\" class=\"form-select\"><\/select>\r\n    <\/div>\r\n\r\n    <!-- Poker chip style spinner -->\r\n    <div id=\"loadingSpinner\">\r\n      <div class=\"poker-chip\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"table-responsive\">\r\n      <table class=\"table table-striped table-bordered\">\r\n        <thead class=\"table-dark\">\r\n          <tr>\r\n            <th>Name<\/th>\r\n            <th>Rank<\/th>\r\n            <th>Points<\/th>\r\n          <\/tr>\r\n        <\/thead>\r\n        <tbody id=\"dataBody\"><\/tbody>\r\n      <\/table>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    const apiBase = \"https:\/\/script.google.com\/macros\/s\/AKfycbyzK-rTcIlqH1Yg_BEVc2-2-e8YVH3CnT-jeHg0kBXCQfJgjomnitLAF-1IYZe4wSUK\/exec\";\r\n\r\n    function parseDateString(dateStr) {\r\n      const d = new Date(dateStr);\r\n      return isNaN(d) ? new Date(0) : d;\r\n    }\r\n\r\n    function getQueryParam(param) {\r\n      const urlParams = new URLSearchParams(window.location.search);\r\n      return urlParams.get(param);\r\n    }\r\n\r\n    async function loadInitialData() {\r\n      const spinner = document.getElementById(\"loadingSpinner\");\r\n      spinner.style.display = \"flex\";\r\n\r\n      try {\r\n        const response = await fetch(apiBase);\r\n        const allData = await response.json();\r\n\r\n        const uniqueDates = [...new Set(allData.map(row => row.Date))].sort((a, b) =>\r\n          parseDateString(b) - parseDateString(a)\r\n        );\r\n\r\n        populateDropdown(uniqueDates);\r\n\r\n        const urlDate = getQueryParam(\"Date\");\r\n        const initialDate = urlDate && uniqueDates.includes(urlDate) ? urlDate : uniqueDates[0];\r\n\r\n        document.getElementById(\"dateDropdown\").value = initialDate;\r\n        await showDataForDate(initialDate, allData);\r\n\r\n        document.getElementById(\"dateDropdown\").addEventListener(\"change\", async e => {\r\n          await showDataForDate(e.target.value, allData);\r\n        });\r\n      } catch (error) {\r\n        console.error(\"Error loading initial data:\", error);\r\n        document.getElementById(\"title\").textContent = \"Failed to load data.\";\r\n      } finally {\r\n        spinner.style.display = \"none\";\r\n      }\r\n    }\r\n\r\n    function populateDropdown(dates) {\r\n      const select = document.getElementById(\"dateDropdown\");\r\n      select.innerHTML = \"\";\r\n      dates.forEach(date => {\r\n        const option = document.createElement(\"option\");\r\n        option.value = date;\r\n        option.textContent = date;\r\n        select.appendChild(option);\r\n      });\r\n    }\r\n\r\n    async function showDataForDate(date, allData) {\r\n      const spinner = document.getElementById(\"loadingSpinner\");\r\n      spinner.style.display = \"flex\";\r\n\r\n      try {\r\n        const filtered = allData.filter(row => row.Date === date);\r\n\r\n        document.getElementById(\"title\").textContent = `Points for: ${date}`;\r\n        const tbody = document.getElementById(\"dataBody\");\r\n        tbody.innerHTML = \"\";\r\n\r\n        if (filtered.length === 0) {\r\n          tbody.innerHTML = `<tr><td colspan=\"3\" class=\"text-center text-muted\">No data available for ${date}<\/td><\/tr>`;\r\n          return;\r\n        }\r\n\r\n        filtered.forEach(row => {\r\n          const encodedName = encodeURIComponent(row.Name);\r\n          const tr = document.createElement(\"tr\");\r\n          tr.innerHTML = `\r\n            <td><a href=\"https:\/\/avinya.me\/index.php\/player-page\/?Name=${encodedName}\" class=\"text-decoration-none\">${row.Name}<\/a><\/td>\r\n            <td>${row.Rank}<\/td>\r\n            <td>${row.Points}<\/td>\r\n          `;\r\n          tbody.appendChild(tr);\r\n        });\r\n      } catch (err) {\r\n        document.getElementById(\"dataBody\").innerHTML = `<tr><td colspan=\"3\" class=\"text-danger\">Error fetching data.<\/td><\/tr>`;\r\n      } finally {\r\n        spinner.style.display = \"none\";\r\n      }\r\n    }\r\n\r\n    loadInitialData();\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Points by Date Points for: (loading&#8230;) Select a game date: Name Rank Points<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-299","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/pages\/299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/comments?post=299"}],"version-history":[{"count":34,"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/pages\/299\/revisions"}],"predecessor-version":[{"id":347,"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/pages\/299\/revisions\/347"}],"wp:attachment":[{"href":"https:\/\/avinya.me\/index.php\/wp-json\/wp\/v2\/media?parent=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}