{"hostName":"https://xtkc.ihub.app","company":{"name":"InspireHUB Inc.","shortName":"InspireHUB","address":"3963 Maple Ave., Suite 190","city":"Dallas","stateProv":"Texas","postalCode":"","phone":"1-855-355-IHUB (4482)","supportEmail":"support@inspirehub.com"},"instance":"US","campaignId":"34140","environment":{"environment":"Production","urlPrefix":"","region":"East-Linux","instance":"US","branch":null,"product":"App","version":"5.9.4.1024","buildDate":"5/20/2026 7:09:11\u202FPM"},"affiliateCode":"","plan":{"productId":"free","name":"Free","limits":{"messageCenterNotices":1000,"bandwidthLimitGB":1,"storageLimitGB":0,"smsLimit":0,"adminLimit":1,"transactionFeePercent":0,"dailyNewsletter":false,"postModules":false,"eCommerce":false,"customDomains":false,"supportType":"Online"},"fees":{"paidChannelsPercent":10,"eventPercent":2.9,"donationPercent":2.9,"storePercent":2.9},"trialExpires":null},"businessName":"TKC","title":"TKC","isPrivate":false,"piwikId":17944,"contactEmail":"asmorath@gmail.com","style":{"maxMasonryColumns":4,"primaryColor":"rgba(246, 242, 239, 1)","accentColor":"rgba(231, 111, 0, 1)","navTextColor":"rgba(0, 0, 0, 1)","lockSideNav":false,"logoImage":{"mediaId":399250,"mediaCropId":422335,"url":"https://us-app-content.ihub.app/app-content/posts/34140/2025/09/09/xtkc-blob_05_21_38_1562.dat","blurHash":"L2AcR|~QE4sm=@$z%0S25BR,s.s-","color":"#28210C","cropData":{"x":350,"x2":null,"y":809,"y2":null,"w":869,"h":161,"ow":1536,"oh":1024,"scale":1.0743458,"angle":0,"isOriginalSize":false}},"logoUrls":[{"url":"https://us-app-content.ihub.app/app-content/posts/34140/2025/09/09/xtkc-blob_05_21_38_1562.dat","width":869,"height":161}],"iconImage":{"mediaId":399249,"mediaCropId":422334,"url":"https://us-app-content.ihub.app/app-content/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif","blurHash":"LEATAna}0Kofe-j?WYfQ4nWX^\u002Bn~","color":"#2E2618","cropData":{"x":0,"x2":null,"y":0.30952454,"y2":null,"w":264.38095,"h":264.38095,"ow":500,"oh":500,"scale":0.53,"angle":0,"isOriginalSize":false}},"icons":[{"platform_id":1,"campaign_icon_type_id":1,"width":192,"height":192,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_192,h_192/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"},{"platform_id":1,"campaign_icon_type_id":2,"width":128,"height":128,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_128,h_128/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"},{"platform_id":2,"campaign_icon_type_id":3,"width":114,"height":114,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_114,h_114/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"},{"platform_id":2,"campaign_icon_type_id":4,"width":72,"height":72,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_72,h_72/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"},{"platform_id":2,"campaign_icon_type_id":5,"width":57,"height":57,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_57,h_57/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"},{"platform_id":2,"campaign_icon_type_id":6,"width":256,"height":256,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_256,h_256/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"},{"platform_id":2,"campaign_icon_type_id":7,"width":512,"height":512,"cdnUrl":"https://ih-cdn.ihub.app/media/v1/crop/y_0.30952454,w_264.38095,h_264.38095,ow_500,oh_500,s_0.53/render/w_512,h_512/instance/us/posts/34140/2025/09/09/xtkc-1000000959-gif_05_20_22_7305.gif"}],"sliderSpeed":5000,"fullWidthSlider":false,"tagGroupIcons":[]},"sideNavType":"simplified","allowUgc":true,"allowCommentWithoutModeration":false,"homeChannel":{"channelId":138469,"channelCategoryId":null,"name":"Home","handle":"home","isMember":true,"isOwner":false,"recommended":false,"everyone":true,"showOnHome":false,"starred":false,"showSliders":true,"upperHtml":"\u003C!DOCTYPE html\u003E\n\n\u003Chtml lang=\u0022en\u0022\u003E\n\n\u003Chead\u003E\n\n    \u003Cmeta charset=\u0022UTF-8\u0022 /\u003E\n\n    \u003Cmeta name=\u0022viewport\u0022 content=\u0022width=device-width, initial-scale=1\u0022 /\u003E\n\n    \u003Ctitle\u003EMulti-System UID Database Manager\u003C/title\u003E\n\n    \u003Cstyle\u003E\n\n        body {\n\n            font-family: \u0027Segoe UI\u0027, Tahoma, Geneva, Verdana, sans-serif;\n\n            margin: 0;\n\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n\n            min-height: 100vh;\n\n            padding: 20px;\n\n        }\n\n        .container {\n\n            max-width: 1400px;\n\n            margin: 0 auto;\n\n            background: white;\n\n            border-radius: 12px;\n\n            box-shadow: 0 20px 40px rgba(0,0,0,0.1);\n\n            overflow: hidden;\n\n        }\n\n        .header {\n\n            background: linear-gradient(135deg, #4682B4, #1e3c72);\n\n            color: white;\n\n            padding: 20px 30px;\n\n            display: flex;\n\n            justify-content: space-between;\n\n            align-items: center;\n\n        }\n\n        .header h1 {\n\n            margin: 0;\n\n            font-size: 2em;\n\n            text-shadow: 2px 2px 4px rgba(0,0,0,0.3);\n\n        }\n\n        .search-section {\n\n            padding: 20px 30px;\n\n            background: #f8f9fa;\n\n            border-bottom: 2px solid #eee;\n\n        }\n\n        .search-bar {\n\n            display: flex;\n\n            gap: 15px;\n\n            align-items: center;\n\n            flex-wrap: wrap;\n\n        }\n\n        .search-input {\n\n            flex: 1;\n\n            padding: 12px 20px;\n\n            border: 2px solid #ddd;\n\n            border-radius: 25px;\n\n            font-size: 16px;\n\n            min-width: 250px;\n\n        }\n\n        .search-input:focus {\n\n            outline: none;\n\n            border-color: #4682B4;\n\n            box-shadow: 0 0 10px rgba(70, 130, 180, 0.3);\n\n        }\n\n        .btn {\n\n            background: linear-gradient(135deg, #4682B4, #1e3c72);\n\n            color: white;\n\n            border: none;\n\n            padding: 12px 24px;\n\n            border-radius: 6px;\n\n            cursor: pointer;\n\n            font-size: 14px;\n\n            font-weight: bold;\n\n            transition: all 0.3s ease;\n\n            text-transform: uppercase;\n\n            letter-spacing: 1px;\n\n        }\n\n        .btn:hover {\n\n            transform: translateY(-2px);\n\n            box-shadow: 0 5px 15px rgba(70, 130, 180, 0.4);\n\n        }\n\n        .btn-secondary {\n\n            background: linear-gradient(135deg, #28a745, #20c997);\n\n        }\n\n        .btn-danger {\n\n            background: linear-gradient(135deg, #dc3545, #c82333);\n\n        }\n\n        .stats {\n\n            display: flex;\n\n            gap: 20px;\n\n            margin-top: 15px;\n\n        }\n\n        .stat-card {\n\n            background: white;\n\n            padding: 15px;\n\n            border-radius: 8px;\n\n            box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n\n            text-align: center;\n\n            min-width: 120px;\n\n        }\n\n        .stat-number {\n\n            font-size: 24px;\n\n            font-weight: bold;\n\n            color: #4682B4;\n\n        }\n\n        .stat-label {\n\n            font-size: 12px;\n\n            color: #666;\n\n            text-transform: uppercase;\n\n        }\n\n        .main-content {\n\n            display: flex;\n\n        }\n\n        .systems-panel {\n\n            width: 250px;\n\n            background: #2c3e50;\n\n            color: white;\n\n            padding: 20px;\n\n            max-height: 700px;\n\n            overflow-y: auto;\n\n        }\n\n        .systems-panel h3 {\n\n            margin: 0 0 15px 0;\n\n            color: #ecf0f1;\n\n            border-bottom: 2px solid #34495e;\n\n            padding-bottom: 10px;\n\n        }\n\n        .system-item {\n\n            padding: 10px 15px;\n\n            margin: 5px 0;\n\n            border-radius: 6px;\n\n            cursor: pointer;\n\n            transition: all 0.3s ease;\n\n            background: #34495e;\n\n            border-left: 4px solid transparent;\n\n        }\n\n        .system-item:hover {\n\n            background: #4a5f7a;\n\n            border-left-color: #3498db;\n\n        }\n\n        .system-item.active {\n\n            background: #3498db;\n\n            border-left-color: #2980b9;\n\n        }\n\n        .system-item .name {\n\n            font-weight: bold;\n\n            font-size: 14px;\n\n        }\n\n        .system-item .count {\n\n            font-size: 12px;\n\n            opacity: 0.8;\n\n            margin-top: 2px;\n\n        }\n\n        .data-panel {\n\n            flex: 1;\n\n            padding: 20px;\n\n        }\n\n        .table-container {\n\n            background: white;\n\n            border-radius: 8px;\n\n            overflow: hidden;\n\n            box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n\n        }\n\n        .table-wrapper {\n\n            max-height: 600px;\n\n            overflow: auto;\n\n            overflow-x: auto; /* allow horizontal scroll */\n\n        }\n\n        table {\n\n            width: 100%;\n\n            border-collapse: collapse;\n\n            font-family: Arial, sans-serif;\n\n            min-width: 400px; /* enable scroll on narrow devices */\n\n        }\n\n        .table-header {\n\n            background: linear-gradient(135deg, #4682B4, #1e3c72);\n\n            color: white;\n\n            position: sticky;\n\n            top: 0;\n\n            z-index: 10;\n\n        }\n\n        .table-header th {\n\n            padding: 15px 12px;\n\n            text-align: left;\n\n            font-weight: bold;\n\n            border-right: 1px solid rgba(255,255,255,0.2);\n\n        }\n\n        .data-row {\n\n            border-bottom: 1px solid #eee;\n\n            transition: background-color 0.2s ease;\n\n        }\n\n        .data-row:nth-child(even) {\n\n            background-color: #f8f9fa;\n\n        }\n\n        .data-row:hover {\n\n            background-color: #e3f2fd;\n\n        }\n\n        .data-cell {\n\n            padding: 12px;\n\n            border-right: 1px solid #eee;\n\n        }\n\n        .data-cell input {\n\n            width: 100%;\n\n            border: none;\n\n            background: transparent;\n\n            padding: 5px;\n\n            font-size: 14px;\n\n        }\n\n        .data-cell input:focus {\n\n            outline: 2px solid #4682B4;\n\n            border-radius: 4px;\n\n            background: white;\n\n        }\n\n        .has-account {\n\n            background: #d4edda !important;\n\n            border-left: 4px solid #28a745;\n\n        }\n\n        .no-account {\n\n            background: #f8d7da !important;\n\n            border-left: 4px solid #dc3545;\n\n        }\n\n        .add-person {\n\n            padding: 20px;\n\n            background: #e8f5e8;\n\n            border-top: 1px solid #c3e6cb;\n\n            display: flex;\n\n            gap: 15px;\n\n            align-items: center;\n\n            flex-wrap: wrap;\n\n        }\n\n        .add-person input {\n\n            padding: 10px 15px;\n\n            border: 2px solid #28a745;\n\n            border-radius: 6px;\n\n            font-size: 14px;\n\n            flex: 1;\n\n            min-width: 150px;\n\n        }\n\n        .modal {\n\n            display: none;\n\n            position: fixed;\n\n            z-index: 1000;\n\n            left: 0;\n\n            top: 0;\n\n            width: 100%;\n\n            height: 100%;\n\n            background: rgba(0,0,0,0.5);\n\n            overflow-y: auto;\n\n        }\n\n        .modal-content {\n\n            background: white;\n\n            margin: 5% auto;\n\n            padding: 30px;\n\n            border-radius: 12px;\n\n            width: 80%;\n\n            max-width: 600px;\n\n            box-shadow: 0 20px 40px rgba(0,0,0,0.3);\n\n            position: relative;\n\n        }\n\n        .modal h2 {\n\n            margin-top: 0;\n\n            color: #4682B4;\n\n        }\n\n        .system-grid {\n\n            display: grid;\n\n            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n\n            gap: 15px;\n\n            margin: 20px 0;\n\n        }\n\n        .system-card {\n\n            background: #f8f9fa;\n\n            padding: 15px;\n\n            border-radius: 8px;\n\n            border: 2px solid #ddd;\n\n        }\n\n        .system-card h4 {\n\n            margin: 0 0 10px 0;\n\n            color: #2c3e50;\n\n        }\n\n        .system-card input {\n\n            width: 100%;\n\n            padding: 8px;\n\n            border: 1px solid #ddd;\n\n            border-radius: 4px;\n\n        }\n\n        .close {\n\n            color: #aaa;\n\n            float: right;\n\n            font-size: 28px;\n\n            font-weight: bold;\n\n            cursor: pointer;\n\n            line-height: 1;\n\n        }\n\n        .close:hover {\n\n            color: #000;\n\n        }\n\n        .export-section {\n\n            padding: 20px 30px;\n\n            background: #f8f9fa;\n\n            border-top: 2px solid #eee;\n\n            display: flex;\n\n            gap: 15px;\n\n            flex-wrap: wrap;\n\n        }\n\n        .highlight-match {\n\n            background: yellow !important;\n\n            font-weight: bold;\n\n        }\n\n        /* Responsive Styles */\n\n        @media (max-width: 1000px) {\n\n            .main-content {\n\n                flex-direction: column;\n\n            }\n\n            .systems-panel {\n\n                width: 100%;\n\n                max-width: none;\n\n                margin-bottom: 15px;\n\n            }\n\n            .data-panel {\n\n                padding: 0;\n\n            }\n\n            .stats {\n\n                flex-wrap: wrap;\n\n            }\n\n        }\n\n        @media (max-width: 700px) {\n\n            .container {\n\n                max-width: 100vw;\n\n                padding: 5px;\n\n                border-radius: 0;\n\n            }\n\n            .header, .search-section, .export-section {\n\n                padding: 10px 5px;\n\n            }\n\n            .systems-panel, .data-panel {\n\n                padding: 10px 5px;\n\n                font-size: 15px;\n\n            }\n\n            table th, table td {\n\n                padding: 8px 4px;\n\n                font-size: 13px;\n\n            }\n\n            .stat-card {\n\n                min-width: 80px;\n\n                font-size: 12px;\n\n            }\n\n            .search-input, .add-person input {\n\n                min-width: 100px;\n\n                font-size: 13px;\n\n                padding: 8px 7px;\n\n            }\n\n            .btn {\n\n                font-size: 12px;\n\n                padding: 7px 12px;\n\n            }\n\n        }\n\n        @media (max-width: 500px) {\n\n            .header h1 {\n\n                font-size: 1.1em;\n\n            }\n\n            .table-container, .table-wrapper, table {\n\n                font-size: 11px;\n\n            }\n\n            .system-card h4 {\n\n                font-size: 12px;\n\n            }\n\n        }\n\n    \u003C/style\u003E\n\n\u003C/head\u003E\n\n\u003Cbody\u003E\n\n    \u003Cdiv class=\u0022container\u0022\u003E\n\n        \u003Cdiv class=\u0022header\u0022\u003E\n\n            \u003Ch1\u003E\uD83C\uDFB0 Gaming Systems UID Manager\u003C/h1\u003E\n\n            \u003Cdiv\u003E\n\n                \u003Cbutton class=\u0022btn\u0022 onclick=\u0022showSetupModal()\u0022\u003E\u2699\uFE0F Setup Systems\u003C/button\u003E\n\n                \u003Cbutton class=\u0022btn\u0022 onclick=\u0022addBulkData()\u0022\u003E\uD83D\uDCCB Bulk Import\u003C/button\u003E\n\n            \u003C/div\u003E\n\n        \u003C/div\u003E\n\n        \u003Cdiv class=\u0022search-section\u0022\u003E\n\n            \u003Cdiv class=\u0022search-bar\u0022\u003E\n\n                \u003Cinput type=\u0022text\u0022 id=\u0022searchInput\u0022 class=\u0022search-input\u0022 placeholder=\u0022\uD83D\uDD0D Search by name, UID, or phone...\u0022 onkeyup=\u0022searchData()\u0022 /\u003E\n\n                \u003Cbutton class=\u0022btn btn-secondary\u0022 onclick=\u0022clearSearch()\u0022\u003EClear\u003C/button\u003E\n\n                \u003Cbutton class=\u0022btn\u0022 onclick=\u0022exportData()\u0022\u003E\uD83D\uDCCA Export All\u003C/button\u003E\n\n            \u003C/div\u003E\n\n            \u003Cdiv class=\u0022stats\u0022\u003E\n\n                \u003Cdiv class=\u0022stat-card\u0022\u003E\n\n                    \u003Cdiv class=\u0022stat-number\u0022 id=\u0022totalPeople\u0022\u003E0\u003C/div\u003E\n\n                    \u003Cdiv class=\u0022stat-label\u0022\u003ETotal People\u003C/div\u003E\n\n                \u003C/div\u003E\n\n                \u003Cdiv class=\u0022stat-card\u0022\u003E\n\n                    \u003Cdiv class=\u0022stat-number\u0022 id=\u0022totalAccounts\u0022\u003E0\u003C/div\u003E\n\n                    \u003Cdiv class=\u0022stat-label\u0022\u003ETotal Accounts\u003C/div\u003E\n\n                \u003C/div\u003E\n\n                \u003Cdiv class=\u0022stat-card\u0022\u003E\n\n                    \u003Cdiv class=\u0022stat-number\u0022 id=\u0022activeSystems\u0022\u003E0\u003C/div\u003E\n\n                    \u003Cdiv class=\u0022stat-label\u0022\u003EActive Systems\u003C/div\u003E\n\n                \u003C/div\u003E\n\n            \u003C/div\u003E\n\n        \u003C/div\u003E\n\n        \u003Cdiv class=\u0022main-content\u0022\u003E\n\n            \u003Cdiv class=\u0022systems-panel\u0022\u003E\n\n                \u003Ch3\u003E\uD83C\uDFAE Gaming Systems (33)\u003C/h3\u003E\n\n                \u003Cdiv id=\u0022systemsList\u0022\u003E\u003C/div\u003E\n\n            \u003C/div\u003E\n\n            \u003Cdiv class=\u0022data-panel\u0022\u003E\n\n                \u003Cdiv class=\u0022table-container\u0022\u003E\n\n                    \u003Cdiv class=\u0022table-wrapper\u0022\u003E\n\n                        \u003Ctable id=\u0022mainTable\u0022\u003E\n\n                            \u003Cthead class=\u0022table-header\u0022\u003E\n\n                                \u003Ctr\u003E\n\n                                    \u003Cth style=\u0022width: 200px;\u0022\u003EName\u003C/th\u003E\n\n                                    \u003Cth style=\u0022width: 150px;\u0022\u003EPhone\u003C/th\u003E\n\n                                    \u003Cth style=\u0022width: 120px;\u0022\u003EUID\u003C/th\u003E\n\n                                    \u003Cth style=\u0022width: 100px;\u0022\u003EStatus\u003C/th\u003E\n\n                                    \u003Cth style=\u0022width: 120px;\u0022\u003EActions\u003C/th\u003E\n\n                                \u003C/tr\u003E\n\n                            \u003C/thead\u003E\n\n                            \u003Ctbody id=\u0022tableBody\u0022\u003E\u003C/tbody\u003E\n\n                        \u003C/table\u003E\n\n                    \u003C/div\u003E\n\n                \u003C/div\u003E\n\n                \u003Cdiv class=\u0022add-person\u0022\u003E\n\n                    \u003Cinput type=\u0022text\u0022 id=\u0022newPersonName\u0022 placeholder=\u0022Enter new person\u0027s name...\u0022 /\u003E\n\n                    \u003Cinput type=\u0022text\u0022 id=\u0022newPersonPhone\u0022 placeholder=\u0022Phone number...\u0022 /\u003E\n\n                    \u003Cbutton class=\u0022btn btn-secondary\u0022 onclick=\u0022addPerson()\u0022\u003E\u2795 Add Person\u003C/button\u003E\n\n                \u003C/div\u003E\n\n            \u003C/div\u003E\n\n        \u003C/div\u003E\n\n        \u003Cdiv class=\u0022export-section\u0022\u003E\n\n            \u003Cbutton class=\u0022btn\u0022 onclick=\u0022exportToCSV()\u0022\u003E\uD83D\uDCC4 Export CSV\u003C/button\u003E\n\n            \u003Cbutton class=\u0022btn\u0022 onclick=\u0022printData()\u0022\u003E\uD83D\uDDA8\uFE0F Print\u003C/button\u003E\n\n            \u003Cbutton class=\u0022btn btn-danger\u0022 onclick=\u0022clearAllData()\u0022\u003E\uD83D\uDDD1\uFE0F Clear All\u003C/button\u003E\n\n            \u003Cinput type=\u0022file\u0022 id=\u0022importFile\u0022 accept=\u0022.csv,.json\u0022 style=\u0022display: none;\u0022 onchange=\u0022importData(event)\u0022 /\u003E\n\n            \u003Cbutton class=\u0022btn btn-secondary\u0022 onclick=\u0022document.getElementById(\u0027importFile\u0027).click()\u0022\u003E\uD83D\uDCE5 Import\u003C/button\u003E\n\n        \u003C/div\u003E\n\n    \u003C/div\u003E\n\n    \u003C!-- Setup Modal --\u003E\n\n    \u003Cdiv id=\u0022setupModal\u0022 class=\u0022modal\u0022 tabindex=\u0022-1\u0022 role=\u0022dialog\u0022 aria-hidden=\u0022true\u0022\u003E\n\n        \u003Cdiv class=\u0022modal-content\u0022 role=\u0022document\u0022\u003E\n\n            \u003Cspan class=\u0022close\u0022 onclick=\u0022closeSetupModal()\u0022 aria-label=\u0022Close\u0022\u003E\u0026times;\u003C/span\u003E\n\n            \u003Ch2\u003E\u2699\uFE0F Configure Your Gaming Systems\u003C/h2\u003E\n\n            \u003Cp\u003EYour 33 gaming platforms are pre-loaded. You can modify these names anytime.\u003C/p\u003E\n\n            \u003Cdiv id=\u0022systemsSetup\u0022 class=\u0022system-grid\u0022\u003E\u003C/div\u003E\n\n            \u003Cdiv style=\u0022text-align: center; margin-top: 20px;\u0022\u003E\n\n                \u003Cbutton class=\u0022btn btn-secondary\u0022 onclick=\u0022saveSystemsSetup()\u0022\u003E\uD83D\uDCBE Save Systems\u003C/button\u003E\n\n                \u003Cbutton class=\u0022btn\u0022 onclick=\u0022resetToDefaults()\u0022\u003E\uD83D\uDD04 Reset to Defaults\u003C/button\u003E\n\n            \u003C/div\u003E\n\n        \u003C/div\u003E\n\n    \u003C/div\u003E\n\n    \u003C!-- Person Details Modal --\u003E\n\n    \u003Cdiv id=\u0022personModal\u0022 class=\u0022modal\u0022 tabindex=\u0022-1\u0022 role=\u0022dialog\u0022 aria-hidden=\u0022true\u0022\u003E\n\n        \u003Cdiv class=\u0022modal-content\u0022 role=\u0022document\u0022\u003E\n\n            \u003Cspan class=\u0022close\u0022 onclick=\u0022closePersonModal()\u0022 aria-label=\u0022Close\u0022\u003E\u0026times;\u003C/span\u003E\n\n            \u003Ch2 id=\u0022personModalTitle\u0022\u003E\uD83D\uDC64 Person Details\u003C/h2\u003E\n\n            \u003Cdiv id=\u0022personSystems\u0022 class=\u0022system-grid\u0022\u003E\u003C/div\u003E\n\n            \u003Cdiv style=\u0022text-align: center; margin-top: 20px;\u0022\u003E\n\n                \u003Cbutton class=\u0022btn btn-secondary\u0022 onclick=\u0022savePersonData()\u0022\u003E\uD83D\uDCBE Save Changes\u003C/button\u003E\n\n                \u003Cbutton class=\u0022btn btn-danger\u0022 onclick=\u0022deletePerson()\u0022\u003E\uD83D\uDDD1\uFE0F Delete Person\u003C/button\u003E\n\n            \u003C/div\u003E\n\n        \u003C/div\u003E\n\n    \u003C/div\u003E\n\n    \u003Cscript\u003E\n\n        // Your actual gaming systems - complete list\n\n        let systems = [\n\n            \u0027Thunder 7\u0027, \u0027Ultra Panda\u0027, \u0027Game Vault\u0027, \u0027Riversweeps\u0027, \u0027Gameroom Online\u0027,\n\n            \u0027Fish Glory\u0027, \u0027Mr. All In One\u0027, \u0027Noble\u0027, \u0027Lucky Paradise\u0027, \u0027Easy Street\u0027,\n\n            \u0027Ace 777\u0027, \u0027Fire Kirin\u0027, \u0027Galaxy World\u0027, \u0027Blue Dragon\u0027, \u0027Cash Frenzy\u0027,\n\n            \u0027Ace Book\u0027, \u0027Vegas Roll\u0027, \u0027Mafia\u0027, \u0027Lucky Stars\u0027, \u0027Vegas Luck\u0027,\n\n            \u0027Vegas Sweeps\u0027, \u0027VegasX\u0027, \u0027MilkyWay\u0027, \u0027Vblink\u0027, \u0027Legend Fire\u0027,\n\n            \u0027Panda Master\u0027, \u0027Fire Phoenix\u0027, \u0027Cash Machine\u0027, \u0027Shark Secret\u0027, \u0027Winstar777\u0027,\n\n            \u0027YOLO\u0027, \u0027Orion Power\u0027, \u0027Golden Treasure\u0027\n\n        ];\n\n        let people = [];\n\n        let currentSystem = \u0027Thunder 7\u0027;\n\n        let currentPersonIndex = -1;\n\n        // Initialize the application\n\n        document.addEventListener(\u0027DOMContentLoaded\u0027, function() {\n\n            loadData();\n\n            setupSystems();\n\n            renderSystems();\n\n            renderTable();\n\n            updateStats();\n\n        });\n\n        function setupSystems() {\n\n            const systemsList = document.getElementById(\u0027systemsList\u0027);\n\n            systemsList.innerHTML = \u0027\u0027;\n\n            \n\n            systems.forEach((system) =\u003E {\n\n                const systemDiv = document.createElement(\u0027div\u0027);\n\n                systemDiv.className = \u0027system-item\u0027 \u002B (system === currentSystem ? \u0027 active\u0027 : \u0027\u0027);\n\n                systemDiv.onclick = () =\u003E selectSystem(system);\n\n                \n\n                const accountCount = people.reduce((count, person) =\u003E {\n\n                    return count \u002B (person.accounts \u0026\u0026 person.accounts[system] ? 1 : 0);\n\n                }, 0);\n\n                \n\n                systemDiv.innerHTML = \u0060\n\n                    \u003Cdiv class=\u0022name\u0022\u003E${system}\u003C/div\u003E\n\n                    \u003Cdiv class=\u0022count\u0022\u003E${accountCount} accounts\u003C/div\u003E\n\n                \u0060;\n\n                \n\n                systemsList.appendChild(systemDiv);\n\n            });\n\n        }\n\n        function selectSystem(system) {\n\n            currentSystem = system;\n\n            renderSystems();\n\n            renderTable();\n\n        }\n\n        function renderSystems() {\n\n            const items = document.querySelectorAll(\u0027.system-item\u0027);\n\n            items.forEach(item =\u003E item.classList.remove(\u0027active\u0027));\n\n            \n\n            const activeItem = Array.from(items).find(item =\u003E \n\n                item.querySelector(\u0027.name\u0027).textContent === currentSystem\n\n            );\n\n            if (activeItem) activeItem.classList.add(\u0027active\u0027);\n\n        }\n\n        function renderTable() {\n\n            const tableBody = document.getElementById(\u0027tableBody\u0027);\n\n            tableBody.innerHTML = \u0027\u0027;\n\n            \n\n            people.forEach((person, index) =\u003E {\n\n                const row = document.createElement(\u0027tr\u0027);\n\n                row.className = \u0027data-row\u0027;\n\n                \n\n                const hasAccount = person.accounts \u0026\u0026 person.accounts[currentSystem];\n\n                if (hasAccount) row.classList.add(\u0027has-account\u0027);\n\n                else row.classList.add(\u0027no-account\u0027);\n\n                \n\n                const uid = person.accounts \u0026\u0026 person.accounts[currentSystem] ? person.accounts[currentSystem] : \u0027\u0027;\n\n                const status = hasAccount ? \u0027\u2705 Has Account\u0027 : \u0027\u274C No Account\u0027;\n\n                \n\n                row.innerHTML = \u0060\n\n                    \u003Ctd class=\u0022data-cell\u0022\u003E\n\n                        \u003Cinput type=\u0022text\u0022 value=\u0022${person.name}\u0022 onchange=\u0022updatePerson(${index}, \u0027name\u0027, this.value)\u0022\u003E\n\n                    \u003C/td\u003E\n\n                    \u003Ctd class=\u0022data-cell\u0022\u003E\n\n                        \u003Cinput type=\u0022text\u0022 value=\u0022${person.phone}\u0022 onchange=\u0022updatePerson(${index}, \u0027phone\u0027, this.value)\u0022\u003E\n\n                    \u003C/td\u003E\n\n                    \u003Ctd class=\u0022data-cell\u0022\u003E\n\n                        \u003Cinput type=\u0022text\u0022 value=\u0022${uid}\u0022 onchange=\u0022updatePersonAccount(${index}, \u0027${currentSystem}\u0027, this.value)\u0022\u003E\n\n                    \u003C/td\u003E\n\n                    \u003Ctd class=\u0022data-cell\u0022\u003E${status}\u003C/td\u003E\n\n                    \u003Ctd class=\u0022data-cell\u0022\u003E\n\n                        \u003Cbutton class=\u0022btn\u0022 style=\u0022padding: 5px 10px; font-size: 12px;\u0022 onclick=\u0022editPerson(${index})\u0022\u003EEdit All\u003C/button\u003E\n\n                    \u003C/td\u003E\n\n                \u0060;\n\n                \n\n                tableBody.appendChild(row);\n\n            });\n\n        }\n\n        function addPerson() {\n\n            const nameInput = document.getElementById(\u0027newPersonName\u0027);\n\n            const phoneInput = document.getElementById(\u0027newPersonPhone\u0027);\n\n            \n\n            if (!nameInput.value.trim()) {\n\n                alert(\u0027Please enter a name\u0027);\n\n                return;\n\n            }\n\n            \n\n            const newPerson = {\n\n                name: nameInput.value.trim(),\n\n                phone: phoneInput.value.trim(),\n\n                accounts: {}\n\n            };\n\n            \n\n            people.push(newPerson);\n\n            nameInput.value = \u0027\u0027;\n\n            phoneInput.value = \u0027\u0027;\n\n            \n\n            saveData();\n\n            renderSystems();\n\n            renderTable();\n\n            updateStats();\n\n        }\n\n        function updatePerson(index, field, value) {\n\n            people[index][field] = value;\n\n            saveData();\n\n            updateStats();\n\n        }\n\n        function updatePersonAccount(index, system, value) {\n\n            if (!people[index].accounts) {\n\n                people[index].accounts = {};\n\n            }\n\n            if (value.trim()) {\n\n                people[index].accounts[system] = value.trim();\n\n            } else {\n\n                delete people[index].accounts[system];\n\n            }\n\n            saveData();\n\n            renderSystems();\n\n            renderTable();\n\n            updateStats();\n\n        }\n\n        function editPerson(index) {\n\n            currentPersonIndex = index;\n\n            const person = people[index];\n\n            \n\n            document.getElementById(\u0027personModalTitle\u0027).textContent = \u0060\uD83D\uDC64 ${person.name}\u0060;\n\n            \n\n            const systemsContainer = document.getElementById(\u0027personSystems\u0027);\n\n            systemsContainer.innerHTML = \u0027\u0027;\n\n            \n\n            systems.forEach(system =\u003E {\n\n                const systemDiv = document.createElement(\u0027div\u0027);\n\n                systemDiv.className = \u0027system-card\u0027;\n\n                \n\n                const uid = person.accounts \u0026\u0026 person.accounts[system] ? person.accounts[system] : \u0027\u0027;\n\n                \n\n                systemDiv.innerHTML = \u0060\n\n                    \u003Ch4\u003E${system}\u003C/h4\u003E\n\n                    \u003Cinput type=\u0022text\u0022 value=\u0022${uid}\u0022 placeholder=\u0022Enter UID...\u0022 onchange=\u0022updateCurrentPersonAccount(\u0027${system}\u0027, this.value)\u0022\u003E\n\n                \u0060;\n\n                \n\n                systemsContainer.appendChild(systemDiv);\n\n            });\n\n            \n\n            document.getElementById(\u0027personModal\u0027).style.display = \u0027block\u0027;\n\n        }\n\n        function updateCurrentPersonAccount(system, value) {\n\n            if (!people[currentPersonIndex].accounts) {\n\n                people[currentPersonIndex].accounts = {};\n\n            }\n\n            if (value.trim()) {\n\n                people[currentPersonIndex].accounts[system] = value.trim();\n\n            } else {\n\n                delete people[currentPersonIndex].accounts[system];\n\n            }\n\n        }\n\n        function savePersonData() {\n\n            saveData();\n\n            renderSystems();\n\n            renderTable();\n\n            updateStats();\n\n            closePersonModal();\n\n        }\n\n        function deletePerson() {\n\n            if (confirm(\u0027Are you sure you want to delete this person and all their accounts?\u0027)) {\n\n                people.splice(currentPersonIndex, 1);\n\n                saveData();\n\n                renderSystems();\n\n                renderTable();\n\n                updateStats();\n\n                closePersonModal();\n\n            }\n\n        }\n\n        function searchData() {\n\n            const searchTerm = document.getElementById(\u0027searchInput\u0027).value.toLowerCase();\n\n            const rows = document.querySelectorAll(\u0027.data-row\u0027);\n\n            \n\n            rows.forEach(row =\u003E {\n\n                const cells = row.querySelectorAll(\u0027input\u0027);\n\n                const text = Array.from(cells).map(cell =\u003E cell.value.toLowerCase()).join(\u0027 \u0027);\n\n                \n\n                if (text.includes(searchTerm)) {\n\n                    row.style.display = \u0027\u0027;\n\n                    cells.forEach(cell =\u003E {\n\n                        if (cell.value.toLowerCase().includes(searchTerm) \u0026\u0026 searchTerm) {\n\n                            cell.classList.add(\u0027highlight-match\u0027);\n\n                        } else {\n\n                            cell.classList.remove(\u0027highlight-match\u0027);\n\n                        }\n\n                    });\n\n                } else {\n\n                    row.style.display = \u0027none\u0027;\n\n                }\n\n            });\n\n        }\n\n        function clearSearch() {\n\n            document.getElementById(\u0027searchInput\u0027).value = \u0027\u0027;\n\n            searchData();\n\n        }\n\n        function updateStats() {\n\n            document.getElementById(\u0027totalPeople\u0027).textContent = people.length;\n\n            \n\n            let totalAccounts = people.reduce((sum, p) =\u003E {\n\n                return sum \u002B (p.accounts ? Object.keys(p.accounts).length : 0);\n\n            }, 0);\n\n            document.getElementById(\u0027totalAccounts\u0027).textContent = totalAccounts;\n\n            \n\n            const activeSystems = systems.filter(system =\u003E {\n\n                return people.some(person =\u003E person.accounts \u0026\u0026 person.accounts[system]);\n\n            }).length;\n\n            document.getElementById(\u0027activeSystems\u0027).textContent = activeSystems;\n\n        }\n\n        function showSetupModal() {\n\n            const setupContainer = document.getElementById(\u0027systemsSetup\u0027);\n\n            setupContainer.innerHTML = \u0027\u0027;\n\n            \n\n            systems.forEach((system, index) =\u003E {\n\n                const systemDiv = document.createElement(\u0027div\u0027);\n\n                systemDiv.className = \u0027system-card\u0027;\n\n                systemDiv.innerHTML = \u0060\n\n                    \u003Ch4\u003ESystem ${index \u002B 1}\u003C/h4\u003E\n\n                    \u003Cinput type=\u0022text\u0022 value=\u0022${system}\u0022 onchange=\u0022updateSystemName(${index}, this.value)\u0022\u003E\n\n                \u0060;\n\n                setupContainer.appendChild(systemDiv);\n\n            });\n\n            \n\n            document.getElementById(\u0027setupModal\u0027).style.display = \u0027block\u0027;\n\n        }\n\n        function updateSystemName(index, newName) {\n\n            systems[index] = newName.trim() || \u0060System ${index \u002B 1}\u0060;\n\n        }\n\n        function saveSystemsSetup() {\n\n            saveData();\n\n            renderSystems();\n\n            renderTable();\n\n            closeSetupModal();\n\n        }\n\n        function resetToDefaults() {\n\n            systems = [\n\n                \u0027Thunder 7\u0027, \u0027Ultra Panda\u0027, \u0027Game Vault\u0027, \u0027Riversweeps\u0027, \u0027Gameroom Online\u0027,\n\n                \u0027Fish Glory\u0027, \u0027Mr. All In One\u0027, \u0027Noble\u0027, \u0027Lucky Paradise\u0027, \u0027Easy Street\u0027,\n\n                \u0027Ace 777\u0027, \u0027Fire Kirin\u0027, \u0027Galaxy World\u0027, \u0027Blue Dragon\u0027, \u0027Cash Frenzy\u0027,\n\n                \u0027Ace Book\u0027, \u0027Vegas Roll\u0027, \u0027Mafia\u0027, \u0027Lucky Stars\u0027, \u0027Vegas Luck\u0027,\n\n                \u0027Vegas Sweeps\u0027, \u0027VegasX\u0027, \u0027MilkyWay\u0027, \u0027Vblink\u0027, \u0027Legend Fire\u0027,\n\n                \u0027Panda Master\u0027, \u0027Fire Phoenix\u0027, \u0027Cash Machine\u0027, \u0027Shark Secret\u0027, \u0027Winstar777\u0027,\n\n                \u0027YOLO\u0027, \u0027Orion Power\u0027, \u0027Golden Treasure\u0027\n\n            ];\n\n            showSetupModal();\n\n        }\n\n        function exportToCSV() {\n\n            let csv = \u0027Name,Phone,\u0027 \u002B systems.join(\u0027,\u0027) \u002B \u0027\\n\u0027;\n\n            \n\n            people.forEach(person =\u003E {\n\n                let row = \u0060\u0022${person.name}\u0022,\u0022${person.phone}\u0022\u0060;\n\n                systems.forEach(system =\u003E {\n\n                    const val = person.accounts \u0026\u0026 person.accounts[system] ? person.accounts[system] : \u0027\u0027;\n\n                    row \u002B= \u0060,\u0022${val}\u0022\u0060;\n\n                });\n\n                csv \u002B= row \u002B \u0027\\n\u0027;\n\n            });\n\n            \n\n            const blob = new Blob([csv], { type: \u0027text/csv\u0027 });\n\n            const url = window.URL.createObjectURL(blob);\n\n            const a = document.createElement(\u0027a\u0027);\n\n            a.href = url;\n\n            a.download = \u0027multi_system_database.csv\u0027;\n\n            a.click();\n\n            window.URL.revokeObjectURL(url);\n\n        }\n\n        function saveData() {\n\n            const data = { systems, people };\n\n            localStorage.setItem(\u0027multiSystemDB\u0027, JSON.stringify(data));\n\n        }\n\n        function loadData() {\n\n            const saved = localStorage.getItem(\u0027multiSystemDB\u0027);\n\n            if (saved) {\n\n                const data = JSON.parse(saved);\n\n                systems = data.systems || systems;\n\n                people = data.people || [];\n\n            }\n\n        }\n\n        function clearAllData() {\n\n            if (confirm(\u0027Are you sure you want to clear all data? This cannot be undone.\u0027)) {\n\n                people = [];\n\n                saveData();\n\n                renderSystems();\n\n                renderTable();\n\n                updateStats();\n\n            }\n\n        }\n\n        function closeSetupModal() {\n\n            document.getElementById(\u0027setupModal\u0027).style.display = \u0027none\u0027;\n\n        }\n\n        function closePersonModal() {\n\n            document.getElementById(\u0027personModal\u0027).style.display = \u0027none\u0027;\n\n        }\n\n        // Close modals when clicking outside\n\n        window.onclick = function(event) {\n\n            const setupModal = document.getElementById(\u0027setupModal\u0027);\n\n            const personModal = document.getElementById(\u0027personModal\u0027);\n\n            \n\n            if (event.target === setupModal) {\n\n                setupModal.style.display = \u0027none\u0027;\n\n            }\n\n            if (event.target === personModal) {\n\n                personModal.style.display = \u0027none\u0027;\n\n            }\n\n        }\n\n        // Keyboard shortcuts\n\n        document.addEventListener(\u0027keydown\u0027, function(e) {\n\n            if ((e.ctrlKey || e.metaKey) \u0026\u0026 e.key === \u0027f\u0027) {\n\n                e.preventDefault();\n\n                document.getElementById(\u0027searchInput\u0027).focus();\n\n            }\n\n            if ((e.ctrlKey || e.metaKey) \u0026\u0026 e.key === \u0027s\u0027) {\n\n                e.preventDefault();\n\n                exportToCSV();\n\n            }\n\n        });\n\n    \u003C/script\u003E\n\n\u003C/body\u003E\n\n\u003C/html\u003E\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\u003Cbr\u003E\n\u003C/p\u003E\n\u003Chr\u003E\n\u003Chr\u003E\n\n\u003Cp\u003E\n\t\u003Cbr\u003E\n\u003C/p\u003E\n","lowerHtml":"\u003Chr\u003E\u003Cdiv style=\u0022text-align: center;\u0022\u003E\u003Cbr\u003E\u003Cstrong\u003E\u003Cspan style=\u0022font-size: 24px;\u0022\u003EA perfect description can go here\u003C/span\u003E\u003C/strong\u003E\u003C/div\u003E\u003Cp style=\u0022text-align: center;\u0022\u003EMore curated content available at\u003Cspan style=\u0022color: rgb(59, 4, 7);\u0022\u003E \u003Ca href=\u0022/channels\u0022\u003Echannel subscriptions\u003C/a\u003E.\u003C/span\u003E\u003C/p\u003E","createdAt":"2025-09-08T13:49:41.213","hasEvents":false,"hasSurveys":false,"ownerId":374680,"postTypes":[0,191766,191768],"userRole":null,"visibleForGuests":true,"contentVisibleForGuests":true,"joinType":"open"},"redirects":[],"smsEnabled":false,"froalaOptions":"","login":{"google":true,"facebook":true,"linkedIn":true},"fileUploadLimit":10,"videoUploadLimit":100,"enableMatomo":true,"useRoundedButtons":true,"registration":{"disabled":false,"showPopularChannels":true,"showProfileTags":true},"enableCommentsOnNewPosts":true,"allowAuthorChanges":false,"autoIncludeContentInDigest":true,"timeZone":{"tzDbId":136,"standardName":"America/Toronto","shortName":"EST","displayName":"(GMT -05:00) America/Toronto"},"debug":false,"demo":false,"isTemplate":false,"categoryCollapsed":false,"canonicalUrl":"https://xtkc.ihub.app/","slug":"xtkc","datacenter":"East-Linux","cdnUrl":"https://ih-cdn.ihub.app","domains":{"app":"ihub.app","build":"ihub.app"},"vanityUrl":"","deployment":"prod","deploymentUrl":"","cacheVersion":"2.11","cacheVersionSuffix":".01","keys":{"fbAppId":"272697972910488","fbVersion":"v24.0","recaptchaKey":"6Lclc9AnAAAAAAhZKXIo_qmb-EzZaqjhhjXzS0Mx","froalaKey":"sZH1rB1B6B6C5D5H5H3jC1QUd1Xd1OZJ1ABVJRDRNGGUE1ITrE1D4A3B9B1B6D5B1F4I3==","googleMapsApiKey":"AIzaSyAflXKEyvmuSQatgtCL0KRdmVbdCKMQm4o","postHogApiKey":"phc_eNe5jLVIPiywL16zwJaxVnH1HaYP3FRA4YES1v2ixS6","postHogHost":"https://p.ihub.app"},"stripe":{"publishableKey":"pk_live_pBNpph1pla00AEpfT5eZg6j3","accountId":null,"chargesEnabled":false,"taxesEnabled":false,"accountComplete":false},"postModules":{"location":true,"photos":true,"tasks":true,"events":false,"surveys":true,"giving":false,"callToAction":true},"menuOptions":{"advancedOptionsEnabled":true,"urlRedirectsEnabled":false,"channelsEnabled":true,"homeCustomizationEnabled":true,"lookAndFeelEnabled":true,"membersEnabled":true,"pagesEnabled":true,"pinnedContentEnabled":false,"postTypesEnabled":true,"slidersEnabled":true,"customCodeEnabled":true,"welcomeMessageEnabled":true,"menuEditEnabled":true},"features":{"customDomains":true,"paidChannels":false,"stripeBillingPortal":false},"channelListSettings":{"showChannelDescriptionOnList":true,"showChannelRoleOnList":true,"showJoinLeaveOnList":true,"showMemberCountOnList":true},"currency":{"id":1,"name":"US Dollar","code":"USD","symbol":"$"},"onboarding":{"completed":true,"homeCustomizationCompleted":true,"lookAndFeelCompleted":true,"createFirstPostCompleted":true,"sharingCompleted":true,"hiding":false}}