{"id":178,"date":"2026-05-15T09:32:10","date_gmt":"2026-05-15T09:32:10","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=178"},"modified":"2026-05-15T09:32:10","modified_gmt":"2026-05-15T09:32:10","slug":"acc","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/acc\/","title":{"rendered":"Acc"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n    <title>Adase Ads Ltd \u2013 Share Certificate &#038; Wallet<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;400;500;600;700;800&#038;display=swap\" rel=\"stylesheet\">\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:wght@400;500;600;700&#038;family=Alex+Brush&#038;display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\n    <style>\n        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; }\n        body { background: #eef2f5; padding: 20px; }\n        .main-container { max-width: 1400px; margin: 0 auto; background: white; border-radius: 28px; box-shadow: 0 25px 45px -12px rgba(0,0,0,0.2); overflow: hidden; }\n        .global-ticker-wrap { background: #0a0f2c; padding: 0.6rem 0; overflow: hidden; white-space: nowrap; border-bottom: 2px solid #f5c542; border-top: 2px solid #f5c542; }\n        .global-ticker { display: inline-block; animation: scrollTicker 38s linear infinite; }\n        .global-ticker-item { display: inline-block; background: #1a2349; margin-right: 1.8rem; padding: 0.3rem 1.2rem; border-radius: 40px; font-size: 0.8rem; color: #f0eef7; font-weight: 500; }\n        .global-ticker-item.buy { background: #1f6032; border-left: 3px solid #f5c542; }\n        @keyframes scrollTicker { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }\n        .tabs { display: flex; flex-wrap: wrap; background: #f8fafc; border-bottom: 1px solid #e2edf2; }\n        .tab-btn { flex: 1; background: none; border: none; padding: 15px 12px; font-size: 0.85rem; font-weight: 700; cursor: pointer; transition: 0.2s; color: #1e2a3e; letter-spacing: -0.2px; }\n        .tab-btn:hover { background: #eef2ff; color: #0f2b3d; }\n        .tab-btn.active { background: white; color: #b8860b; border-bottom: 3px solid #b8860b; }\n        .tab-content { display: none; background: white; padding: 32px 38px; }\n        .tab-content.active { display: block; }\n        @media (max-width: 780px) { .tab-content { padding: 20px; } .tab-btn { padding: 10px 6px; font-size: 0.7rem; } }\n        .btn-sm { padding: 8px 22px; border-radius: 60px; font-weight: 600; font-size: 0.85rem; border: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: 0.2s; }\n        .btn-primary { background: linear-gradient(105deg, #1e3c72, #2a5298); color: white; box-shadow: 0 4px 8px rgba(0,0,0,0.05); }\n        .btn-lemon { background: #f5c542; color: #1a2c3e; font-weight: 700; }\n        .card { background: rgba(255,255,255,0.96); border-radius: 32px; padding: 28px; margin-bottom: 28px; border: 1px solid #e9edf2; box-shadow: 0 12px 28px -8px rgba(0,0,0,0.05); }\n        .flex-between { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }\n        .badge { background: linear-gradient(135deg, #eef2ff, #fae8d2); color: #7b4b0e; padding: 6px 14px; border-radius: 60px; font-size: 0.75rem; font-weight: 700; }\n        input, select, textarea { width: 100%; padding: 12px 20px; border-radius: 40px; border: 1px solid #cfdfed; background: white; font-size: 0.9rem; margin: 8px 0 14px; outline: none; transition: 0.2s; }\n        input:focus { border-color: #b8860b; box-shadow: 0 0 0 3px rgba(184,134,11,0.1); }\n        table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }\n        th, td { padding: 14px 12px; text-align: left; border-bottom: 1px solid #eef2ff; }\n        .footer { margin-top: 60px; padding: 40px 0 30px; border-top: 1px solid rgba(100,80,50,0.2); text-align: center; background: #fefaf5; border-radius: 40px 40px 0 0; }\n        \n        \/* SHARE CERTIFICATE *\/\n        .certificate-gold {\n            background: linear-gradient(145deg, #fffef7 0%, #fff9e8 100%);\n            border: 12px double #d4af37;\n            border-radius: 28px;\n            padding: 28px 32px;\n            position: relative;\n            box-shadow: 0 25px 40px -12px rgba(0,0,0,0.2);\n            font-family: 'Cormorant Garamond', serif;\n            max-width: 1100px;\n            margin: 0 auto;\n        }\n        .certificate-watermark {\n            position: relative;\n            background: url('data:image\/svg+xml;utf8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 100 100\"><path fill=\"rgba(212,175,55,0.04)\" d=\"M50,15 L62,35 L85,38 L68,55 L72,78 L50,67 L28,78 L32,55 L15,38 L38,35 Z\"\/><\/svg>') repeat;\n            background-size: 80px;\n        }\n        .cert-seal {\n            position: absolute;\n            bottom: 35px;\n            right: 35px;\n            width: 110px;\n            height: 110px;\n            background: radial-gradient(circle, #f3e5ab, #e6d5a8);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 1.5rem;\n            font-weight: 800;\n            color: #1e3c72;\n            border: 3px solid #1e3c72;\n            font-family: 'Inter', sans-serif;\n            background: #fef7e0;\n        }\n        .cert-title { font-size: 2.7rem; font-weight: 800; text-transform: uppercase; color: #b8860b; text-align: center; border-bottom: 2px solid #e5c687; display: inline-block; padding-bottom: 8px; margin-bottom: 20px; }\n        .cert-sub { font-size: 1rem; text-align: center; font-variant: small-caps; }\n        .cert-rect { background: #fffbf0; margin: 25px 0; padding: 25px 20px; border-radius: 20px; border: 1px solid #e9d6a3; }\n        .share-detail { background: rgba(212,175,55,0.08); padding: 12px 18px; border-radius: 60px; font-weight: 600; }\n        .signature-area { display: flex; justify-content: space-between; margin-top: 40px; gap: 40px; flex-wrap: wrap; }\n        .sign-line { border-top: 1px solid #8b7a4b; width: 220px; margin-top: 30px; padding-top: 8px; text-align: center; }\n        .print-btn { background: #2d2b26; color: #ffeaac; border: none; border-radius: 60px; padding: 10px 24px; font-weight: 600; cursor: pointer; }\n        .cert-number-code { font-family: monospace; background: #fdf3df; padding: 6px 16px; border-radius: 60px; display: inline-block; }\n        .coin-logo { width: 55px; height: 55px; background: radial-gradient(circle at 30% 35%, #f9d976, #c9992e); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 0.8rem; text-align: center; border: 2px solid #b8860b; }\n        .investor-note { background: #eef2ff; border-left: 5px solid #1e3c72; padding: 12px 20px; border-radius: 20px; margin-top: 20px; font-size: 0.9rem; }\n        .terms-box { background: #f9f9f9; border: 1px solid #ddd; border-radius: 16px; padding: 12px; height: 120px; overflow-y: auto; font-size: 0.8rem; margin: 10px 0; }\n        @media print { body { margin:0; padding:0; } .certificate-gold { box-shadow:none; border:2px solid #d4af37; } @page { size: A4 landscape; margin: 1.2cm; } .tabs, .global-ticker-wrap, .footer, .card, .print-btn, .btn-primary, .btn-lemon, #globalUserArea { display: none; } }\n    <\/style>\n<\/head>\n<body>\n<div class=\"main-container\">\n    <div class=\"global-ticker-wrap\"><div class=\"global-ticker\" id=\"globalTickerStrip\"><\/div><\/div>\n\n    <div class=\"tabs\">\n        <button class=\"tab-btn active\" data-tab=\"smm\">\ud83d\udcf1 SMM Platform<\/button>\n        <button class=\"tab-btn\" data-tab=\"cert\">\ud83d\udcdc Share Certificate<\/button>\n        <button class=\"tab-btn\" data-tab=\"wallet\">\ud83d\udcb0 Shares Wallet<\/button>\n        <button class=\"tab-btn\" data-tab=\"register\">\ud83d\udcd8 Register of Members<\/button>\n        <button class=\"tab-btn\" data-tab=\"transfer\">\ud83d\udd04 Share Transfer<\/button>\n        <button class=\"tab-btn\" data-tab=\"allotment\">\ud83d\udcc4 Allotment<\/button>\n        <button class=\"tab-btn\" data-tab=\"funding\">\ud83d\ude80 Funding<\/button>\n    <\/div>\n\n    <!-- SMM Platform (unchanged) -->\n    <div id=\"tab-smm\" class=\"tab-content active\">\n        <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 20px;\">\n            <div class=\"coin-logo\">Adase<br>Ads<\/div>\n            <div><span style=\"font-size:2.4rem; font-weight:800; color:#b8860b;\">Adase<\/span><span style=\"font-size:1.2rem; font-weight:700;\">Ads Ltd<\/span><div style=\"font-size:0.85rem;\">\ud83d\udcb0 Monetizing Africa | SMM Powerhouse<\/div><\/div>\n        <\/div>\n        <div id=\"smmDynamicPanel\">Loading&#8230;<\/div>\n        <div class=\"footer\"><p>\u00a9 2026 Adase Ads Ltd \u2013 Incorporated in Uganda (Reg: 8002026)<\/p><div>\ud83d\udccd Zion Road Plot 12 AAA Close, Kira, Uganda<\/div><p>\ud83d\udce7 shares@adase.co.ug | +256 775036603<\/p><\/div>\n    <\/div>\n\n    <!-- SHARE CERTIFICATE with wallet integration -->\n    <div id=\"tab-cert\" class=\"tab-content\">\n        <div class=\"certificate-gold certificate-watermark\" id=\"liveCertificate\">\n            <div style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap;\">\n                <div><i class=\"fas fa-building\" style=\"font-size: 2rem; color: #b8860b;\"><\/i><\/div>\n                <div class=\"cert-number-code\"><i class=\"far fa-gem\"><\/i> Certificate No: <span id=\"certNumberDisplay\">ADASE-2026-7891<\/span><\/div>\n            <\/div>\n            <div style=\"text-align: center; margin: 15px 0 5px;\">\n                <div class=\"cert-title\">SHARE CERTIFICATE<\/div>\n                <div class=\"cert-sub\">Incorporated under the Companies Act, 2012 (Uganda)<\/div>\n            <\/div>\n            <div class=\"cert-rect\">\n                <p style=\"font-size: 1.2rem;\"><strong>THIS CERTIFIES THAT<\/strong><\/p>\n                <p style=\"font-size: 1.8rem; font-family: 'Alex Brush', cursive; text-align: center; border-bottom: 1px dashed #cfb87c;\" id=\"shareholderNameDisplay\">[Shareholder Name]<\/p>\n                <p style=\"margin: 20px 0;\">is the registered proprietor of <strong><span id=\"sharesCountDisplay\">1,000<\/span> ( <span id=\"sharesWordsDisplay\">One Thousand<\/span> )<\/strong> fully paid ordinary shares of <strong>UGX 100,000\/-<\/strong> each in<\/p>\n                <h2 style=\"text-align: center; color: #7a590f;\">ADASE ADS LIMITED<\/h2>\n                <div class=\"flex-between\" style=\"margin-top: 25px;\">\n                    <span class=\"share-detail\"><i class=\"fas fa-chart-line\"><\/i> Class: Ordinary Shares<\/span>\n                    <span class=\"share-detail\"><i class=\"fas fa-tag\"><\/i> Par Value: UGX 100,000<\/span>\n                    <span class=\"share-detail\"><i class=\"fas fa-calendar-alt\"><\/i> Issue Date: <span id=\"issueDateDisplay\">11 May 2026<\/span><\/span>\n                <\/div>\n            <\/div>\n            <div class=\"signature-area\">\n                <div><div class=\"sign-line\">_________________________<br><strong>DIRECTOR<\/strong><br>Peter Knox Sengendo<\/div><\/div>\n                <div><div class=\"sign-line\">_________________________<br><strong>SECRETARY<\/strong><br>Paul Asaba Muwanguzi<\/div><\/div>\n                <div><div class=\"sign-line\">_________________________<br><strong>OFFICE<\/strong><br>Zion Road, Kira, Uganda<\/div><\/div>\n            <\/div>\n            <div class=\"cert-seal\"><i class=\"fas fa-certificate\"><\/i> Adase<\/div>\n        <\/div>\n        \n        <div class=\"card\" style=\"margin-top: 30px;\">\n            <h4><i class=\"fas fa-edit\"><\/i> Certificate Customization<\/h4>\n            <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 16px;\">\n                <div><label>Shareholder Name<\/label><input type=\"text\" id=\"certShareholderInput\" value=\"Adase Holdings Ltd\"><\/div>\n                <div><label>Number of Shares<\/label><input type=\"number\" id=\"certSharesInput\" value=\"2500\" min=\"1\"><\/div>\n                <div><label>Certificate No.<\/label><input type=\"text\" id=\"certNoInput\" value=\"ADASE-2026-7891\"><\/div>\n                <div><label>Issue Date<\/label><input type=\"date\" id=\"certDateInput\" value=\"2026-05-11\"><\/div>\n            <\/div>\n            <div class=\"flex-between\" style=\"margin-top: 16px;\">\n                <button id=\"updateCertBtn\" class=\"btn-primary\"><i class=\"fas fa-sync-alt\"><\/i> Preview<\/button>\n                <button id=\"printCertWithWalletBtn\" class=\"print-btn\"><i class=\"fas fa-print\"><\/i> Purchase &#038; Print (Deduct from Wallet)<\/button>\n            <\/div>\n            <div class=\"investor-note\"><i class=\"fas fa-info-circle\"><\/i> Cost per share: UGX 100,000. Total amount will be deducted from your Shares Wallet balance.<\/div>\n        <\/div>\n    <\/div>\n\n    <!-- SHARES WALLET TAB: Registration, Login, Profile, Balance, Credit Requests -->\n    <div id=\"tab-wallet\" class=\"tab-content\">\n        <div id=\"walletAuthContainer\"><\/div>\n        <div id=\"walletDashboard\" style=\"display: none;\"><\/div>\n    <\/div>\n\n    <!-- Other tabs (unchanged) -->\n    <div id=\"tab-register\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udccb Register of Members<\/h3><div id=\"membersRegisterPreview\">Loading&#8230;<\/div><div class=\"investor-note\">Total shares: 1,000,000 @ UGX 100,000 each | 35% for investors<\/div><\/div><\/div>\n    <div id=\"tab-transfer\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udd04 Share Transfer<\/h3><p>Requires board approval.<\/p><input placeholder=\"Transferor\"><input placeholder=\"Transferee\"><input placeholder=\"Shares\"><button class=\"btn-primary\">Request<\/button><\/div><\/div>\n    <div id=\"tab-allotment\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\udcc4 Allotment Resolution<\/h3><textarea rows=\"4\">RESOLVED THAT 10,000 shares @ UGX 100,000 be allotted&#8230;<\/textarea><button class=\"btn-primary\">Record<\/button><\/div><\/div>\n    <div id=\"tab-funding\" class=\"tab-content\"><div class=\"card\"><h3>\ud83d\ude80 Serie A Funding<\/h3><p>Target $2.5M | Committed UGX 3.5B<\/p><progress value=\"35\" max=\"100\"><\/progress><div>35% placed<\/div><\/div><\/div>\n<\/div>\n\n<script>\n    \/\/ ---------- NUMBER TO WORDS ----------\n    function numberToWords(num) {\n        if (num === 0) return \"Zero\";\n        const ones = [\"\", \"One\", \"Two\", \"Three\", \"Four\", \"Five\", \"Six\", \"Seven\", \"Eight\", \"Nine\"];\n        const teens = [\"\", \"Eleven\", \"Twelve\", \"Thirteen\", \"Fourteen\", \"Fifteen\", \"Sixteen\", \"Seventeen\", \"Eighteen\", \"Nineteen\"];\n        const tens = [\"\", \"Ten\", \"Twenty\", \"Thirty\", \"Forty\", \"Fifty\", \"Sixty\", \"Seventy\", \"Eighty\", \"Ninety\"];\n        const thousands = [\"\", \"Thousand\", \"Million\", \"Billion\"];\n        function convertChunk(n) {\n            if (n === 0) return \"\";\n            let str = \"\";\n            if (n >= 100) { str += ones[Math.floor(n \/ 100)] + \" Hundred \"; n %= 100; }\n            if (n >= 11 && n <= 19) return str + teens[n - 10] + \" \";\n            if (n >= 10) { str += tens[Math.floor(n \/ 10)] + \" \"; n %= 10; }\n            if (n > 0) str += ones[n] + \" \";\n            return str;\n        }\n        let words = \"\", chunkIndex = 0;\n        while (num > 0) {\n            let chunk = num % 1000;\n            if (chunk !== 0) words = convertChunk(chunk) + (thousands[chunkIndex] ? thousands[chunkIndex] + \" \" : \"\") + words;\n            num = Math.floor(num \/ 1000);\n            chunkIndex++;\n        }\n        return words.trim().replace(\/\\s+\/g, \" \").replace(\/\\b\\w\/g, c => c.toUpperCase());\n    }\n\n    \/\/ ---------- SHARES WALLET SYSTEM (separate from SMM wallet) ----------\n    let shareUsers = [];      \/\/ { id, firstName, lastName, email, mobile, address, gender, password, shareBalance, creditRequests[] }\n    let shareSessions = { currentUserId: null };\n    let creditRequests = [];  \/\/ { id, userId, amount, status, date }\n\n    function loadShareData() {\n        const stored = localStorage.getItem('adase_share_users');\n        if (stored) shareUsers = JSON.parse(stored);\n        else {\n            \/\/ create admin default\n            shareUsers = [{\n                id: 1, firstName: \"Admin\", lastName: \"Shares\", email: \"admin@adase.co.ug\", mobile: \"256700000000\", address: \"Kampala\",\n                gender: \"Male\", password: \"Admin123#\", shareBalance: 0, role: \"admin\", creditRequests: []\n            }];\n        }\n        const storedReqs = localStorage.getItem('adase_share_credit_requests');\n        if (storedReqs) creditRequests = JSON.parse(storedReqs);\n        else creditRequests = [];\n        const storedSession = localStorage.getItem('adase_share_session');\n        if (storedSession) shareSessions.currentUserId = parseInt(storedSession);\n        else shareSessions.currentUserId = null;\n    }\n    function saveShareData() {\n        localStorage.setItem('adase_share_users', JSON.stringify(shareUsers));\n        localStorage.setItem('adase_share_credit_requests', JSON.stringify(creditRequests));\n        if (shareSessions.currentUserId) localStorage.setItem('adase_share_session', shareSessions.currentUserId);\n        else localStorage.removeItem('adase_share_session');\n    }\n    function getCurrentShareUser() {\n        if (!shareSessions.currentUserId) return null;\n        return shareUsers.find(u => u.id === shareSessions.currentUserId);\n    }\n\n    \/\/ Render Wallet Tab (Login\/Register or Dashboard)\n    function renderWalletTab() {\n        const container = document.getElementById('walletAuthContainer');\n        const dashboardDiv = document.getElementById('walletDashboard');\n        const currentUser = getCurrentShareUser();\n        if (!currentUser) {\n            container.style.display = 'block';\n            dashboardDiv.style.display = 'none';\n            container.innerHTML = `\n                <div class=\"card\"><h3>\ud83d\udd10 Shares Wallet Access<\/h3>\n                <div style=\"display:flex; gap:20px; flex-wrap:wrap;\">\n                    <div style=\"flex:1;\"><h4>Login<\/h4><input id=\"loginEmail\" placeholder=\"Email\"><input id=\"loginPassword\" type=\"password\" placeholder=\"Password\"><button id=\"doShareLogin\" class=\"btn-primary\">Login<\/button><\/div>\n                    <div style=\"flex:1;\"><h4>Register<\/h4>\n                    <input id=\"regFirstName\" placeholder=\"First Name\"><input id=\"regLastName\" placeholder=\"Last Name\"><input id=\"regEmail\" placeholder=\"Email\"><input id=\"regMobile\" placeholder=\"Mobile\"><input id=\"regAddress\" placeholder=\"Address\"><select id=\"regGender\"><option>Male<\/option><option>Female<\/option><option>Other<\/option><\/select>\n                    <input id=\"regPassword\" type=\"password\" placeholder=\"Password (min 8 chars)\"><input id=\"regConfirm\" type=\"password\" placeholder=\"Confirm Password\">\n                    <div class=\"terms-box\"><strong>Terms and Conditions<\/strong><br>1. You must be at least 18 years old.<br>2. Share purchases are final and non-refundable.<br>3. The company reserves the right to adjust share allocation.<br>4. Dividends are paid based on company performance.<br>5. You agree to provide accurate information.<br>6. Shares are subject to the company's articles of association.<br>7. Any misuse will lead to account termination.<br>8. By registering, you consent to electronic communications.<\/div>\n                    <label><input type=\"checkbox\" id=\"acceptTerms\"> I accept the Terms & Conditions<\/label><br>\n                    <button id=\"doShareRegister\" class=\"btn-lemon\">Create Account<\/button>\n                    <\/div>\n                <\/div><\/div>\n            `;\n            document.getElementById('doShareLogin')?.addEventListener('click', () => {\n                const email = document.getElementById('loginEmail').value;\n                const pwd = document.getElementById('loginPassword').value;\n                const user = shareUsers.find(u => u.email === email && u.password === pwd);\n                if (user) { shareSessions.currentUserId = user.id; saveShareData(); renderWalletTab(); }\n                else alert(\"Invalid credentials\");\n            });\n            document.getElementById('doShareRegister')?.addEventListener('click', () => {\n                const fname = document.getElementById('regFirstName').value.trim();\n                const lname = document.getElementById('regLastName').value.trim();\n                const email = document.getElementById('regEmail').value.trim();\n                const mobile = document.getElementById('regMobile').value.trim();\n                const address = document.getElementById('regAddress').value.trim();\n                const gender = document.getElementById('regGender').value;\n                const pwd = document.getElementById('regPassword').value;\n                const confirm = document.getElementById('regConfirm').value;\n                const terms = document.getElementById('acceptTerms').checked;\n                if (!fname || !lname || !email || !mobile || !address) { alert(\"All fields required\"); return; }\n                if (pwd.length < 8) { alert(\"Password must be at least 8 characters\"); return; }\n                if (pwd !== confirm) { alert(\"Passwords do not match\"); return; }\n                if (!terms) { alert(\"You must accept Terms &#038; Conditions\"); return; }\n                if (shareUsers.find(u => u.email === email)) { alert(\"Email already registered\"); return; }\n                const newId = Date.now();\n                shareUsers.push({\n                    id: newId, firstName: fname, lastName: lname, email, mobile, address, gender,\n                    password: pwd, shareBalance: 0, role: \"user\", creditRequests: []\n                });\n                shareSessions.currentUserId = newId;\n                saveShareData();\n                renderWalletTab();\n                alert(\"Account created! Your Shares Wallet is ready.\");\n            });\n        } else {\n            container.style.display = 'none';\n            dashboardDiv.style.display = 'block';\n            const pendingRequests = creditRequests.filter(r => r.userId === currentUser.id && r.status === 'pending');\n            dashboardDiv.innerHTML = `\n                <div class=\"card\"><div class=\"flex-between\"><h3>\ud83d\udc64 My Profile<\/h3><button id=\"logoutShareBtn\" class=\"btn-sm\">Logout<\/button><\/div>\n                <p><strong>${currentUser.firstName} ${currentUser.lastName}<\/strong><br>\ud83d\udce7 ${currentUser.email}<br>\ud83d\udcde ${currentUser.mobile}<br>\ud83d\udccd ${currentUser.address}<br>\u26a5 ${currentUser.gender}<\/p>\n                <\/div>\n                <div class=\"card\"><h3>\ud83d\udcb0 Account Balance<\/h3><div style=\"font-size:2rem;\">UGX ${currentUser.shareBalance.toLocaleString()}<\/div>\n                <button id=\"requestCreditBtn\" class=\"btn-primary\">\ud83d\udce8 Request Credit (Admin Approval)<\/button>\n                <\/div>\n                <div class=\"card\"><h3>\u23f3 Pending Credit Requests<\/h3><div id=\"pendingCreditsList\">${pendingRequests.length ? pendingRequests.map(r => `<div>UGX ${r.amount.toLocaleString()} - ${r.status}<\/div>`).join('') : 'No pending requests'}<\/div>\n                <\/div>\n                <div class=\"card\"><h3>\ud83d\udcdc Transaction History<\/h3><div id=\"creditHistory\"><\/div><\/div>\n            `;\n            document.getElementById('logoutShareBtn')?.addEventListener('click', () => { shareSessions.currentUserId = null; saveShareData(); renderWalletTab(); });\n            document.getElementById('requestCreditBtn')?.addEventListener('click', () => {\n                let amount = prompt(\"Enter amount (UGX) to request credit:\");\n                if (amount && !isNaN(amount) && amount > 0) {\n                    creditRequests.push({ id: Date.now(), userId: currentUser.id, amount: parseFloat(amount), status: 'pending', date: new Date().toISOString() });\n                    saveShareData();\n                    renderWalletTab();\n                    alert(\"Credit request sent to admin. Await approval.\");\n                }\n            });\n            const history = creditRequests.filter(r => r.userId === currentUser.id && r.status !== 'pending');\n            document.getElementById('creditHistory').innerHTML = history.length ? history.map(r => `<div>${r.status === 'approved' ? '\u2705' : '\u274c'} UGX ${r.amount.toLocaleString()} - ${r.status} on ${new Date(r.date).toLocaleDateString()}<\/div>`).join('') : 'No transactions';\n        }\n    }\n\n    \/\/ Admin approval function (to be called from admin panel - integrated in existing admin? We'll add a simple admin console for share wallet)\n    function renderShareAdminPanel() {\n        \/\/ For simplicity, we add an admin section accessible only if logged in as admin (email admin@adase.co.ug)\n        const currentUser = getCurrentShareUser();\n        if (currentUser && currentUser.email === 'admin@adase.co.ug') {\n            const pending = creditRequests.filter(r => r.status === 'pending');\n            let html = `<div class=\"card\"><h3>\ud83d\udc51 Shares Admin - Credit Approvals<\/h3>`;\n            if (pending.length === 0) html += \"<p>No pending credit requests.<\/p>\";\n            else {\n                html += pending.map(req => {\n                    const user = shareUsers.find(u => u.id === req.userId);\n                    return `<div><strong>${user?.firstName} ${user?.lastName}<\/strong> requested UGX ${req.amount.toLocaleString()} \n                    <button data-approve=\"${req.id}\" class=\"btn-sm\">Approve<\/button> <button data-reject=\"${req.id}\" class=\"btn-sm\">Reject<\/button><\/div>`;\n                }).join('');\n            }\n            html += `<\/div><div class=\"card\"><h3>All Users<\/h3><table><thead><tr><th>Name<\/th><th>Email<\/th><th>Balance<\/th><\/tr><\/thead><tbody>${shareUsers.filter(u=>u.role!=='admin').map(u=>`<tr><td>${u.firstName} ${u.lastName}<\/td><td>${u.email}<\/td><td>UGX ${u.shareBalance.toLocaleString()}<\/td><\/tr>`).join('')}<\/tbody><\/table><\/div>`;\n            const existingAdminDiv = document.getElementById('shareAdminPanel');\n            if (!existingAdminDiv) {\n                const dashboardDiv = document.getElementById('walletDashboard');\n                if (dashboardDiv) dashboardDiv.insertAdjacentHTML('beforeend', `<div id=\"shareAdminPanel\">${html}<\/div>`);\n                else document.getElementById('walletAuthContainer')?.insertAdjacentHTML('afterend', `<div id=\"shareAdminPanel\">${html}<\/div>`);\n            } else existingAdminDiv.innerHTML = html;\n            document.querySelectorAll('[data-approve]').forEach(btn => btn.addEventListener('click', (e) => {\n                let reqId = parseInt(btn.dataset.approve);\n                let req = creditRequests.find(r => r.id === reqId);\n                if (req) {\n                    let user = shareUsers.find(u => u.id === req.userId);\n                    if (user) { user.shareBalance += req.amount; req.status = 'approved'; saveShareData(); renderWalletTab(); }\n                }\n            }));\n            document.querySelectorAll('[data-reject]').forEach(btn => btn.addEventListener('click', (e) => {\n                let reqId = parseInt(btn.dataset.reject);\n                let req = creditRequests.find(r => r.id === reqId);\n                if (req) { req.status = 'rejected'; saveShareData(); renderWalletTab(); }\n            }));\n        }\n    }\n\n    \/\/ Update certificate preview\n    function updateCertPreview() {\n        let name = document.getElementById('certShareholderInput').value || \"Shareholder\";\n        let shares = parseInt(document.getElementById('certSharesInput').value) || 1000;\n        let certNo = document.getElementById('certNoInput').value || \"ADASE-2026-7891\";\n        let dateRaw = document.getElementById('certDateInput').value;\n        let formattedDate = dateRaw ? new Date(dateRaw).toLocaleDateString('en-GB', { day:'numeric', month:'long', year:'numeric' }) : \"11 May 2026\";\n        document.getElementById('shareholderNameDisplay').innerText = name;\n        document.getElementById('sharesCountDisplay').innerText = shares.toLocaleString();\n        document.getElementById('sharesWordsDisplay').innerText = numberToWords(shares);\n        document.getElementById('certNumberDisplay').innerText = certNo;\n        document.getElementById('issueDateDisplay').innerText = formattedDate;\n    }\n\n    \/\/ Print certificate with wallet deduction\n    function printCertificateWithWallet() {\n        const user = getCurrentShareUser();\n        if (!user) { alert(\"Please login to Shares Wallet first (go to '\ud83d\udcb0 Shares Wallet' tab and register\/login).\"); return; }\n        const shares = parseInt(document.getElementById('certSharesInput').value) || 1000;\n        const totalCost = shares * 100000;\n        if (user.shareBalance < totalCost) {\n            alert(`Insufficient Shares Wallet balance. You have UGX ${user.shareBalance.toLocaleString()} but need UGX ${totalCost.toLocaleString()}. Please request credit from admin.`);\n            return;\n        }\n        \/\/ deduct\n        user.shareBalance -= totalCost;\n        \/\/ record transaction\n        creditRequests.push({ id: Date.now(), userId: user.id, amount: -totalCost, status: 'approved', date: new Date().toISOString(), note: `Share certificate for ${shares} shares` });\n        saveShareData();\n        \/\/ now print\n        const certElem = document.getElementById('liveCertificate');\n        const clone = certElem.cloneNode(true);\n        const printWin = window.open('', '_blank', 'width=1100,height=800');\n        printWin.document.write(`\n            <!DOCTYPE html><html><head><title>Adase Share Certificate<\/title>\n            <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;600;700&#038;family=Cormorant+Garamond:wght@400;500;600;700&#038;family=Alex+Brush&#038;display=swap\" rel=\"stylesheet\">\n            <style>\n                * { margin:0; padding:0; box-sizing:border-box; }\n                body { background:white; display:flex; justify-content:center; align-items:center; min-height:100vh; padding:20px; }\n                .certificate-gold { background:linear-gradient(145deg,#fffef7,#fff9e8); border:12px double #d4af37; border-radius:28px; padding:28px 32px; max-width:1100px; width:100%; font-family:'Cormorant Garamond',serif; position:relative; }\n                .cert-seal { position:absolute; bottom:35px; right:35px; width:110px; height:110px; background:#fef7e0; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.5rem; font-weight:800; color:#1e3c72; border:3px solid #1e3c72; }\n                .cert-title { font-size:2.7rem; font-weight:800; color:#b8860b; text-align:center; border-bottom:2px solid #e5c687; display:inline-block; width:auto; margin-bottom:20px; }\n                .cert-rect { background:#fffbf0; margin:25px 0; padding:25px; border-radius:20px; border:1px solid #e9d6a3; }\n                .share-detail { background:rgba(212,175,55,0.08); padding:12px 18px; border-radius:60px; font-weight:600; }\n                .signature-area { display:flex; justify-content:space-between; margin-top:40px; flex-wrap:wrap; }\n                .sign-line { border-top:1px solid #8b7a4b; width:220px; margin-top:30px; padding-top:8px; text-align:center; }\n                .flex-between { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; }\n                @media print { @page { size: A4 landscape; margin: 1.2cm; } body { padding:0; } .certificate-gold { box-shadow:none; } }\n            <\/style>\n            <\/head><body>${clone.outerHTML}<script>window.onload = function() { window.print(); setTimeout(() => window.close(), 500); };<\\\/script><\/body><\/html>\n        `);\n        printWin.document.close();\n        alert(`Certificate printed! UGX ${totalCost.toLocaleString()} deducted from your Shares Wallet.`);\n        renderWalletTab(); \/\/ refresh wallet dashboard\n        renderShareAdminPanel();\n    }\n\n    \/\/ Tab switching and init\n    const tabs = document.querySelectorAll('.tab-btn');\n    const contents = document.querySelectorAll('.tab-content');\n    function switchTab(tabId) {\n        contents.forEach(c => c.classList.remove('active'));\n        tabs.forEach(b => b.classList.remove('active'));\n        document.getElementById(`tab-${tabId}`)?.classList.add('active');\n        Array.from(tabs).find(b => b.dataset.tab === tabId)?.classList.add('active');\n        if (tabId === 'wallet') { renderWalletTab(); renderShareAdminPanel(); }\n        if (tabId === 'register') document.getElementById('membersRegisterPreview').innerHTML = `<table><tr><th>Shareholder<\/th><th>Shares<\/th><\/tr><tr><td>Adase Holdings Ltd<\/td><td>500,000<\/td><\/tr><tr><td>Peter Knox Sengendo<\/td><td>100,000<\/td><\/tr><tr><td>Paul Asaba Muwanguzi<\/td><td>50,000<\/td><\/tr><tr><td>Investor Pool<\/td><td>350,000<\/td><\/tr><\/table>`;\n    }\n    tabs.forEach(btn => btn.addEventListener('click', () => switchTab(btn.dataset.tab)));\n\n    \/\/ Original SMM platform (keep intact)\n    (function keepSMM() {\n        let users = [], ads = [], platformRevenue = 0, sessions = { currentUserId: null };\n        let walletTopups = [], walletTransfers = [];\n        function load() {\n            users = JSON.parse(localStorage.getItem('adase_users') || '[]');\n            ads = JSON.parse(localStorage.getItem('adase_ads') || '[]');\n            platformRevenue = parseFloat(localStorage.getItem('adase_platformRevenue') || '0');\n            walletTopups = JSON.parse(localStorage.getItem('adase_wallet_topups') || '[]');\n            walletTransfers = JSON.parse(localStorage.getItem('adase_wallet_transfers') || '[]');\n            if (!users.find(u=>u.email===\"sales@cashchat.se\")) users.push({ id: Date.now(), name:\"Admin\", email:\"sales@cashchat.se\", password:\"Justtrade81#\", role:\"admin\", wallet:0 });\n            if(users.length===1) users.push({ id:1001, name:\"Demo\", email:\"adv@demo.com\", password:\"adv123\", role:\"advertiser\", wallet:50000 });\n            save();\n        }\n        function save(){ localStorage.setItem('adase_users',JSON.stringify(users)); localStorage.setItem('adase_ads',JSON.stringify(ads)); localStorage.setItem('adase_platformRevenue',platformRevenue); localStorage.setItem('adase_wallet_topups',JSON.stringify(walletTopups)); localStorage.setItem('adase_wallet_transfers',JSON.stringify(walletTransfers)); }\n        function renderHomepage(){\n            document.getElementById('smmDynamicPanel').innerHTML = `<div style=\"text-align:center;background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:32px;padding:60px;color:white\"><h1>Adase Ads SMM Platform<\/h1><button class=\"btn-primary\" id=\"smmLoginBtn\">Login<\/button><\/div>`;\n            document.getElementById('smmLoginBtn')?.addEventListener('click',()=>alert(\"Demo login: adv@demo.com \/ adv123\"));\n        }\n        renderHomepage();\n        load();\n    })();\n\n    \/\/ Event binding\n    document.getElementById('updateCertBtn')?.addEventListener('click', updateCertPreview);\n    document.getElementById('printCertWithWalletBtn')?.addEventListener('click', printCertificateWithWallet);\n    loadShareData();\n    updateCertPreview();\n    renderWalletTab();\n    renderShareAdminPanel();\n\n    \/\/ ticker\n    document.getElementById('globalTickerStrip').innerHTML = Array(10).fill('<span class=\"global-ticker-item\">Adase Ads Ltd - Shares @ UGX 100,000 | 35% available<\/span><span class=\"global-ticker-item buy\">Shares Wallet Active<\/span>').join('');\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads Ltd \u2013 Share Certificate &#038; Wallet \ud83d\udcf1 SMM Platform \ud83d\udcdc Share Certificate \ud83d\udcb0 Shares Wallet \ud83d\udcd8 Register of Members \ud83d\udd04 Share Transfer \ud83d\udcc4 Allotment \ud83d\ude80 Funding AdaseAds AdaseAds Ltd \ud83d\udcb0 Monetizing Africa | SMM Powerhouse Loading&#8230; \u00a9 2026 Adase Ads Ltd \u2013 Incorporated in Uganda (Reg: 8002026) \ud83d\udccd Zion Road Plot 12 AAA [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-178","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/comments?post=178"}],"version-history":[{"count":1,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/178\/revisions"}],"predecessor-version":[{"id":179,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/178\/revisions\/179"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}