{"id":221,"date":"2026-06-07T22:29:25","date_gmt":"2026-06-07T22:29:25","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=221"},"modified":"2026-06-08T00:20:16","modified_gmt":"2026-06-08T00:20:16","slug":"start-2","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/start-2\/","title":{"rendered":"Start"},"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, viewport-fit=cover\">\n  <title>Adase Ads Ltd | Premium Digital Advertising &#038; SMM Africa<\/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 rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\n  <style>\n    * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n    }\n\n    body {\n      font-family: 'Inter', sans-serif;\n      background: #fafbfd;\n      color: #0a0c10;\n      scroll-behavior: smooth;\n    }\n\n    .navbar {\n      background: rgba(255, 255, 255, 0.98);\n      backdrop-filter: blur(12px);\n      position: sticky;\n      top: 0;\n      z-index: 1000;\n      border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n      padding: 1rem 0;\n    }\n\n    .container {\n      max-width: 1280px;\n      margin: 0 auto;\n      padding: 0 2rem;\n    }\n\n    .nav-flex {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 1.5rem;\n    }\n\n    .logo-area {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n    }\n\n    .coin-icon {\n      width: 52px;\n      height: 52px;\n      background: linear-gradient(145deg, #fbbf24, #f59e0b);\n      border-radius: 50%;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      box-shadow: 0 10px 20px rgba(245, 158, 11, 0.3);\n    }\n    .coin-icon i {\n      font-size: 1.8rem;\n      color: #fff9e8;\n    }\n\n    .brand-title h1 {\n      font-size: 1.8rem;\n      font-weight: 800;\n      line-height: 1.2;\n    }\n    .brand-adase {\n      background: linear-gradient(135deg, #1e40af, #3b82f6);\n      background-clip: text;\n      -webkit-background-clip: text;\n      color: transparent;\n    }\n    .brand-ads {\n      background: linear-gradient(135deg, #16a34a, #22c55e);\n      background-clip: text;\n      -webkit-background-clip: text;\n      color: transparent;\n    }\n    .tagline {\n      font-size: 0.7rem;\n      font-weight: 500;\n      color: #6c757d;\n    }\n\n    .btn {\n      padding: 0.7rem 1.6rem;\n      border-radius: 100px;\n      font-weight: 600;\n      font-size: 0.9rem;\n      border: none;\n      cursor: pointer;\n      transition: all 0.2s ease;\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      text-decoration: none;\n    }\n    .btn-primary {\n      background: #2563eb;\n      color: white;\n      box-shadow: 0 4px 10px rgba(37, 99, 235, 0.25);\n    }\n    .btn-primary:hover {\n      background: #1d4ed8;\n      transform: translateY(-2px);\n    }\n    .btn-lemon {\n      background: #eab308;\n      color: #1e293b;\n    }\n    .btn-lemon:hover {\n      background: #ca8a04;\n      color: white;\n    }\n    .btn-outline {\n      background: transparent;\n      border: 1.5px solid #2563eb;\n      color: #2563eb;\n    }\n    .btn-outline:hover {\n      background: #eff6ff;\n    }\n    .btn-sm {\n      padding: 0.4rem 1rem;\n      font-size: 0.8rem;\n      border-radius: 40px;\n      font-weight: 500;\n    }\n    .btn-danger {\n      background: #ef4444;\n      color: white;\n    }\n    .btn-success {\n      background: #10b981;\n      color: white;\n    }\n    .btn-warning {\n      background: #f59e0b;\n      color: white;\n    }\n\n    .hero {\n      padding: 5rem 0 4rem;\n      background: radial-gradient(ellipse at 70% 30%, #f8fafd, #ffffff);\n    }\n    .hero-grid {\n      display: flex;\n      align-items: center;\n      gap: 3rem;\n      flex-wrap: wrap;\n    }\n    .hero-content {\n      flex: 1;\n    }\n    .hero-badge {\n      background: #e0e7ff;\n      color: #1e3a8a;\n      padding: 0.3rem 1rem;\n      border-radius: 40px;\n      font-size: 0.8rem;\n      font-weight: 600;\n      display: inline-block;\n      margin-bottom: 1.5rem;\n    }\n    .hero-content h1 {\n      font-size: 3.2rem;\n      font-weight: 800;\n      line-height: 1.2;\n      background: linear-gradient(135deg, #0f172a, #2563eb, #16a34a);\n      background-clip: text;\n      -webkit-background-clip: text;\n      color: transparent;\n      margin-bottom: 1.5rem;\n    }\n    .hero-content p {\n      font-size: 1.2rem;\n      color: #334155;\n      max-width: 500px;\n      margin-bottom: 2rem;\n    }\n    .hero-stats {\n      display: flex;\n      gap: 2rem;\n      margin-top: 2rem;\n    }\n    .stat-item h3 {\n      font-size: 1.8rem;\n      font-weight: 800;\n      color: #2563eb;\n    }\n\n    .features-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n      gap: 2rem;\n      margin: 3rem 0;\n    }\n    .feature-card {\n      background: white;\n      border-radius: 2rem;\n      padding: 2rem;\n      text-align: center;\n      box-shadow: 0 20px 35px -8px rgba(0,0,0,0.05);\n      transition: all 0.3s;\n      border: 1px solid #edf2f7;\n    }\n    .feature-card:hover {\n      transform: translateY(-8px);\n    }\n    .feature-icon {\n      width: 70px;\n      height: 70px;\n      background: linear-gradient(135deg, #eef2ff, #e6f7ec);\n      border-radius: 30px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      margin: 0 auto 1.5rem;\n    }\n    .feature-icon i {\n      font-size: 2.2rem;\n      color: #2563eb;\n    }\n\n    .dashboard-container {\n      background: white;\n      border-radius: 2rem;\n      padding: 2rem;\n      margin: 2rem 0;\n      box-shadow: 0 20px 35px -12px rgba(0,0,0,0.08);\n      border: 1px solid #eef2ff;\n    }\n\n    .card {\n      background: #ffffff;\n      border-radius: 28px;\n      padding: 1.8rem;\n      margin-bottom: 1.5rem;\n      border: 1px solid #f0f2f5;\n      box-shadow: 0 4px 12px rgba(0,0,0,0.02);\n    }\n\n    .badge {\n      background: #eef2ff;\n      padding: 0.3rem 1rem;\n      border-radius: 60px;\n      font-size: 0.75rem;\n      font-weight: 600;\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n    }\n\n    .badge-warning {\n      background: #fef3c7;\n      color: #b45309;\n    }\n\n    .badge-success {\n      background: #d1fae5;\n      color: #065f46;\n    }\n\n    input, select, textarea {\n      width: 100%;\n      padding: 12px 18px;\n      border-radius: 48px;\n      border: 1px solid #e2e8f0;\n      font-size: 0.9rem;\n      transition: 0.2s;\n      margin: 6px 0 14px;\n    }\n    input:focus, select:focus {\n      outline: none;\n      border-color: #2563eb;\n      box-shadow: 0 0 0 3px rgba(37,99,235,0.1);\n    }\n\n    .grid-2 {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n      gap: 1.5rem;\n    }\n\n    .smm-service-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n      gap: 1.2rem;\n      margin-top: 1.2rem;\n    }\n    .service-card {\n      background: #f8fafc;\n      border-radius: 20px;\n      padding: 1rem;\n      text-align: center;\n      transition: all 0.2s;\n      border: 1px solid #eef2ff;\n    }\n    .service-card:hover {\n      transform: translateY(-3px);\n      box-shadow: 0 8px 20px rgba(0,0,0,0.05);\n    }\n    .service-icon {\n      font-size: 2rem;\n      margin-bottom: 0.5rem;\n    }\n    .service-title {\n      font-weight: 700;\n      margin-bottom: 0.5rem;\n    }\n    .service-price {\n      color: #2563eb;\n      font-weight: 800;\n      margin-bottom: 0.8rem;\n    }\n\n    .flex-between {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      gap: 1rem;\n    }\n\n    .modal {\n      display: none;\n      position: fixed;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      background: rgba(0,0,0,0.6);\n      backdrop-filter: blur(4px);\n      z-index: 1000;\n      justify-content: center;\n      align-items: center;\n    }\n    .modal-content {\n      background: white;\n      max-width: 500px;\n      width: 90%;\n      border-radius: 2rem;\n      padding: 2rem;\n    }\n\n    .payment-details {\n      background: #f0fdf4;\n      border-radius: 1rem;\n      padding: 1rem;\n      margin: 1rem 0;\n      border-left: 4px solid #22c55e;\n    }\n\n    table {\n      width: 100%;\n      border-collapse: collapse;\n      overflow-x: auto;\n      display: block;\n    }\n    th, td {\n      padding: 12px 8px;\n      text-align: left;\n      border-bottom: 1px solid #f0f2f5;\n    }\n\n    .footer {\n      background: #0f172a;\n      color: #cbd5e1;\n      padding: 3rem 0 2rem;\n      border-radius: 2rem 2rem 0 0;\n      margin-top: 4rem;\n    }\n\n    @media (max-width: 768px) {\n      .hero-content h1 { font-size: 2rem; }\n      .hero-grid { flex-direction: column; text-align: center; }\n      .hero-stats { justify-content: center; }\n      .container { padding: 0 1rem; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n<nav class=\"navbar\">\n  <div class=\"container nav-flex\">\n    <div class=\"logo-area\">\n      <div class=\"coin-icon\"><i class=\"fas fa-coins\"><\/i><\/div>\n      <div class=\"brand-title\">\n        <h1><span class=\"brand-adase\">Adase<\/span> <span class=\"brand-ads\">Ads Ltd<\/span><\/h1>\n        <div class=\"tagline\"><i class=\"fas fa-map-marker-alt\"><\/i> Monetizing Africa \u2022 Digital Excellence<\/div>\n      <\/div>\n    <\/div>\n    <div style=\"display: flex; gap: 1rem; align-items: center;\">\n      <a href=\"https:\/\/ai.cashchatapp.com\" target=\"_blank\" class=\"btn btn-lemon\" style=\"background:#fbbf24;\"><i class=\"fas fa-film\"><\/i> Flicks AI<\/a>\n      <div id=\"globalUserArea\"><\/div>\n    <\/div>\n  <\/div>\n<\/nav>\n\n<main class=\"container\" id=\"mainContent\">\n  <div id=\"dynamicPanel\"><\/div>\n<\/main>\n\n<footer class=\"footer\">\n  <div class=\"container\" style=\"text-align: center;\">\n    <p>\u00a9 2025 Adase Ads Ltd \u2013 Incorporated in Uganda<\/p>\n    <div style=\"margin: 1rem 0;\"><i class=\"fas fa-map-pin\"><\/i> P.O.BOX 207475, Kampala, Uganda<\/div>\n    <p><i class=\"fas fa-envelope\"><\/i> ads@cashchat.se | <i class=\"fas fa-phone-alt\"><\/i> +256 775036603<\/p>\n  <\/div>\n<\/footer>\n\n<script>\n  \/\/ ---------- DATA LAYER ----------\n  let users = [], ads = [], proofs = [], platformRevenue = 0, sessions = { currentUserId: null };\n  let smmOrders = [], withdrawRequests = [], contacts = [];\n  let fundingRequests = []; \/\/ NEW: payment approval requests\n  let contactsCurrentPage = 1, contactsPerPage = 20;\n\n  const USD_TO_UGX = 3800;\n  const SMM_PACKAGES = {\n    facebook: [\n      { name: \"Facebook Followers\", desc: \"1000 Followers\", priceUSD: 10, priceUGX: 10 * 3800 },\n      { name: \"Facebook Views\", desc: \"2000 Views\", priceUSD: 5, priceUGX: 5 * 3800 },\n      { name: \"Facebook Likes\", desc: \"1000 Likes\", priceUSD: 5, priceUGX: 5 * 3800 },\n      { name: \"Facebook Shares\", desc: \"500 Shares\", priceUSD: 5, priceUGX: 5 * 3800 }\n    ],\n    instagram: [\n      { name: \"Instagram Views\", desc: \"1000 Views\", priceUSD: 10, priceUGX: 10 * 3800 },\n      { name: \"Instagram Views (Bulk)\", desc: \"5000 Views\", priceUSD: 5, priceUGX: 5 * 3800 },\n      { name: \"Instagram Likes\", desc: \"5000 Likes\", priceUSD: 5, priceUGX: 5 * 3800 },\n      { name: \"Instagram Reposts\", desc: \"1000 Reposts\", priceUSD: 5, priceUGX: 5 * 3800 }\n    ],\n    youtube: [\n      { name: \"YouTube Subscribers\", desc: \"100 Subscribers\", priceUSD: 10, priceUGX: 10 * 3800 },\n      { name: \"YouTube Live Views\", desc: \"500 Live Views (30 min)\", priceUSD: 10, priceUGX: 10 * 3800 },\n      { name: \"YouTube Video Views\", desc: \"10,000 Video Views\", priceUSD: 50, priceUGX: 50 * 3800 },\n      { name: \"YouTube Watch Hours\", desc: \"500 Genuine Watch Hours\", priceUSD: 100, priceUGX: 100 * 3800 },\n      { name: \"YouTube Likes\", desc: \"100 Likes\", priceUSD: 10, priceUGX: 10 * 3800 }\n    ]\n  };\n\n  function loadData() {\n    const stored = (key) => localStorage.getItem(key);\n    users = JSON.parse(stored('adase_users') || '[]');\n    ads = JSON.parse(stored('adase_ads') || '[]');\n    proofs = JSON.parse(stored('adase_proofs') || '[]');\n    platformRevenue = parseFloat(stored('adase_platformRevenue') || '0');\n    smmOrders = JSON.parse(stored('adase_smm_orders') || '[]');\n    withdrawRequests = JSON.parse(stored('adase_withdraw_requests') || '[]');\n    contacts = JSON.parse(stored('adase_contacts') || '[]');\n    fundingRequests = JSON.parse(stored('adase_funding_requests') || '[]');\n\n    const adminEmail = \"sales@cashchat.se\", adminPass = \"Justtrade81#\";\n    const existingAdmin = users.find(u => u.email === adminEmail && u.role === 'admin');\n    if (!existingAdmin) {\n      users = users.filter(u => u.role !== 'admin');\n      users.push({ id: Date.now()+1, name:\"Super Admin\", firstName:\"Super\", lastName:\"Admin\", email:adminEmail, password:adminPass, role:\"admin\", wallet:0, advertiserWallet:0, viewedAds:[], phone:\"\", sponsorCode:\"\", country:\"\", gender:\"\", ageGroup:\"\", walletStatus:\"Active\", accountStatus:\"active\" });\n    } else existingAdmin.password = adminPass;\n\n    users = users.map(u => {\n      if(!u.firstName) u.firstName = u.name?.split(' ')[0] || \"\";\n      if(!u.lastName) u.lastName = u.name?.split(' ')[1] || \"\";\n      if(u.phone === undefined) u.phone = \"\";\n      if(u.sponsorCode === undefined) u.sponsorCode = \"\";\n      if(u.country === undefined) u.country = \"\";\n      if(u.gender === undefined) u.gender = \"\";\n      if(u.ageGroup === undefined) u.ageGroup = \"\";\n      if(u.walletStatus === undefined) u.walletStatus = (u.role === 'user' ? \"Not Active\" : \"Active\");\n      if(u.accountStatus === undefined) u.accountStatus = \"active\";\n      if(!u.name && u.firstName) u.name = (u.firstName + \" \" + u.lastName).trim();\n      return u;\n    });\n\n    if(users.length === 1) {\n      users.push({ id:1001, name:\"Demo Advertiser\", firstName:\"Demo\", lastName:\"Advertiser\", email:\"adv@demo.com\", password:\"adv123\", role:\"advertiser\", wallet:0, advertiserWallet:50000, viewedAds:[], phone:\"+256700000000\", sponsorCode:\"DEMO123\", country:\"Uganda\", gender:\"Male\", ageGroup:\"25-34\", walletStatus:\"Active\", accountStatus:\"active\" });\n      users.push({ id:1002, name:\"Alice Viewer\", firstName:\"Alice\", lastName:\"Viewer\", email:\"alice@view.com\", password:\"view123\", role:\"user\", wallet:600, advertiserWallet:0, viewedAds:[], phone:\"+256775036603\", sponsorCode:\"\", country:\"Kenya\", gender:\"Female\", ageGroup:\"18-24\", walletStatus:\"Active\", accountStatus:\"active\" });\n      if(!ads.length) ads.push({ id:201, advertiserId:1001, title:\"Cool Sneakers\", type:\"video\", mediaUrl:\"https:\/\/www.w3schools.com\/html\/mov_bbb.mp4\", dailyCostUGX:2000, specialInstructions:\"Upload screenshot\", activeUntil:Date.now()+86400000, isActive:true });\n    }\n    saveAll();\n  }\n\n  function saveAll() {\n    localStorage.setItem('adase_users', JSON.stringify(users));\n    localStorage.setItem('adase_ads', JSON.stringify(ads));\n    localStorage.setItem('adase_proofs', JSON.stringify(proofs));\n    localStorage.setItem('adase_platformRevenue', platformRevenue);\n    localStorage.setItem('adase_smm_orders', JSON.stringify(smmOrders));\n    localStorage.setItem('adase_withdraw_requests', JSON.stringify(withdrawRequests));\n    localStorage.setItem('adase_contacts', JSON.stringify(contacts));\n    localStorage.setItem('adase_funding_requests', JSON.stringify(fundingRequests));\n  }\n\n  function getCurrentUser() { return sessions.currentUserId ? users.find(u => u.id === sessions.currentUserId) : null; }\n  function updatePlatformRevenue(amount) { platformRevenue = Math.max(0, platformRevenue + amount); saveAll(); }\n\n  let dynamicPanel, globalUserArea;\n\n  function renderApp() {\n    dynamicPanel = document.getElementById('dynamicPanel');\n    globalUserArea = document.getElementById('globalUserArea');\n    if(!sessions.currentUserId) renderLandingPage();\n    else {\n      const user = getCurrentUser();\n      if(!user || ['suspended','banned'].includes(user.accountStatus)) {\n        sessions.currentUserId = null;\n        alert(\"Account suspended or banned.\");\n        renderLandingPage();\n        return;\n      }\n      if(user.role === 'advertiser') renderAdvertiserDashboard(user);\n      else if(user.role === 'user') renderUserDashboard(user);\n      else if(user.role === 'admin') renderAdminPanel(user);\n      else renderLandingPage();\n    }\n    renderNavButtons();\n  }\n\n  function renderNavButtons() {\n    if(!globalUserArea) return;\n    if(!sessions.currentUserId) {\n      globalUserArea.innerHTML = `<button class=\"btn btn-primary\" id=\"showLoginBtn\"><i class=\"fas fa-sign-in-alt\"><\/i> Login<\/button><button class=\"btn btn-outline\" id=\"showRegisterBtn\"><i class=\"fas fa-user-plus\"><\/i> Register<\/button>`;\n      document.getElementById('showLoginBtn')?.addEventListener('click', () => showLoginForm());\n      document.getElementById('showRegisterBtn')?.addEventListener('click', () => showRegisterForm());\n    } else {\n      const user = getCurrentUser();\n      globalUserArea.innerHTML = `<span style=\"background:#eef2ff; padding:0.5rem 1rem; border-radius:2rem; font-weight:500;\"><i class=\"fas fa-user-circle\"><\/i> ${user.name}<\/span><button class=\"btn\" id=\"logoutBtn\" style=\"background:#f1f5f9;\"><i class=\"fas fa-sign-out-alt\"><\/i><\/button>`;\n      document.getElementById('logoutBtn')?.addEventListener('click', () => { sessions.currentUserId = null; renderApp(); });\n    }\n  }\n\n  function renderLandingPage() {\n    dynamicPanel.innerHTML = `\n      <div class=\"hero\">\n        <div class=\"hero-grid\">\n          <div class=\"hero-content\">\n            <div class=\"hero-badge\"><i class=\"fas fa-chart-line\"><\/i> #1 Digital Advertising in East Africa<\/div>\n            <h1>Grow Your Brand with <br>Adase Ads <span style=\"color:#16a34a;\">Monetization<\/span><\/h1>\n            <p>Earn while watching ads, or launch high-impact SMM campaigns. Trusted by 500+ businesses.<\/p>\n            <div style=\"display: flex; gap: 1rem; flex-wrap: wrap;\">\n              <button id=\"landingLoginBtn\" class=\"btn btn-primary\"><i class=\"fas fa-rocket\"><\/i> Get Started \u2192<\/button>\n              <button id=\"landingRegisterBtn\" class=\"btn btn-outline\"><i class=\"fas fa-user-plus\"><\/i> Create Account<\/button>\n            <\/div>\n            <div class=\"hero-stats\">\n              <div class=\"stat-item\"><h3>50K+<\/h3><span>Active Users<\/span><\/div>\n              <div class=\"stat-item\"><h3>UGX 2B+<\/h3><span>Paid to Viewers<\/span><\/div>\n              <div class=\"stat-item\"><h3>1K+<\/h3><span>Campaigns<\/span><\/div>\n            <\/div>\n          <\/div>\n          <div class=\"hero-image\"><i class=\"fas fa-chalkboard-user\" style=\"font-size:8rem; color:#2563eb; opacity:0.3;\"><\/i><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"features-grid\">\n        <div class=\"feature-card\"><div class=\"feature-icon\"><i class=\"fas fa-eye\"><\/i><\/div><h3>Earn While Watching<\/h3><p>Get paid 3 UGX per ad view<\/p><\/div>\n        <div class=\"feature-card\"><div class=\"feature-icon\"><i class=\"fas fa-chart-simple\"><\/i><\/div><h3>SMM Power<\/h3><p>Facebook, Instagram, YouTube growth<\/p><\/div>\n        <div class=\"feature-card\"><div class=\"feature-icon\"><i class=\"fas fa-shield-alt\"><\/i><\/div><h3>Secure Payments<\/h3><p>MTN, M-Pesa, PayPal with admin approval<\/p><\/div>\n      <\/div>\n      <div class=\"dashboard-container\"><div style=\"text-align:center;\"><h3>Ready to advertise?<\/h3><button id=\"ctaLoginBtn\" class=\"btn btn-primary\">Login to Dashboard<\/button><\/div><\/div>\n    `;\n    document.getElementById('landingLoginBtn')?.addEventListener('click', showLoginForm);\n    document.getElementById('landingRegisterBtn')?.addEventListener('click', showRegisterForm);\n    document.getElementById('ctaLoginBtn')?.addEventListener('click', showLoginForm);\n  }\n\n  function showLoginForm() {\n    dynamicPanel.innerHTML = `<div class=\"dashboard-container\" style=\"max-width:500px; margin:2rem auto;\"><h2>\ud83d\udd10 Welcome back<\/h2><label>Email<\/label><input id=\"loginEmail\"><label>Password<\/label><input id=\"loginPass\" type=\"password\"><button class=\"btn btn-primary\" id=\"doLoginBtn\" style=\"width:100%;\">Login<\/button><p style=\"margin-top:1rem; font-size:0.8rem;\">Demo: adv@demo.com \/ adv123<\/p><\/div>`;\n    document.getElementById('doLoginBtn')?.addEventListener('click', () => {\n      const email = document.getElementById('loginEmail').value, pwd = document.getElementById('loginPass').value;\n      const user = users.find(u => u.email === email && u.password === pwd);\n      if(user && user.accountStatus === 'active') { sessions.currentUserId = user.id; renderApp(); }\n      else alert(\"Invalid credentials\");\n    });\n  }\n\n  function showRegisterForm() {\n    dynamicPanel.innerHTML = `<div class=\"dashboard-container\"><h2>\ud83d\udcdd Join Adase Ads<\/h2>\n      <select id=\"regRole\"><option value=\"user\">Viewer<\/option><option value=\"advertiser\">Advertiser<\/option><\/select>\n      <div id=\"viewerExtraFields\" style=\"display:none;\"><input id=\"regFirstName\" placeholder=\"First Name\"><input id=\"regLastName\" placeholder=\"Last Name\"><input id=\"regPhone\" placeholder=\"Phone\"><input id=\"regEmail\" placeholder=\"Email\"><\/div>\n      <div id=\"advertiserSimpleFields\"><input id=\"regNameSimple\" placeholder=\"Full Name\"><input id=\"regEmailSimple\" placeholder=\"Email\"><\/div>\n      <input id=\"regPass\" type=\"password\" placeholder=\"Password\"><button class=\"btn btn-primary\" id=\"doRegBtn\">Sign Up<\/button><\/div>`;\n    const roleSel = document.getElementById('regRole'), viewerDiv = document.getElementById('viewerExtraFields'), advDiv = document.getElementById('advertiserSimpleFields');\n    roleSel.onchange = () => { const isViewer = roleSel.value === 'user'; viewerDiv.style.display = isViewer ? 'block' : 'none'; advDiv.style.display = isViewer ? 'none' : 'block'; };\n    roleSel.dispatchEvent(new Event('change'));\n    document.getElementById('doRegBtn').onclick = () => {\n      const role = roleSel.value, pwd = document.getElementById('regPass').value;\n      if(!pwd) return alert(\"Password required\");\n      if(role === 'user') {\n        const fname = document.getElementById('regFirstName').value, lname = document.getElementById('regLastName').value, phone = document.getElementById('regPhone').value, email = document.getElementById('regEmail').value;\n        if(!fname || !lname || !phone || !email) return alert(\"All fields required\");\n        if(users.find(u=>u.email===email)) return alert(\"Email exists\");\n        users.push({ id:Date.now(), name:fname+\" \"+lname, firstName:fname, lastName:lname, email, password:pwd, role:\"user\", wallet:0, advertiserWallet:0, viewedAds:[], phone, sponsorCode:\"\", country:\"\", gender:\"\", ageGroup:\"\", walletStatus:\"Active\", accountStatus:\"active\" });\n        saveAll(); alert(\"Registered! Login.\"); showLoginForm();\n      } else {\n        const full = document.getElementById('regNameSimple').value, email = document.getElementById('regEmailSimple').value;\n        if(!full || !email) return alert(\"Required\");\n        if(users.find(u=>u.email===email)) return alert(\"Email exists\");\n        users.push({ id:Date.now(), name:full, firstName:full.split(' ')[0], lastName:full.split(' ')[1]||\"\", email, password:pwd, role:\"advertiser\", wallet:0, advertiserWallet:0, viewedAds:[], phone:\"\", sponsorCode:\"\", country:\"\", gender:\"\", ageGroup:\"\", walletStatus:\"Active\", accountStatus:\"active\" });\n        saveAll(); alert(\"Advertiser created! Login\"); showLoginForm();\n      }\n    };\n  }\n\n  \/\/ =========== USER DASHBOARD (simplified) ==========\n  function renderUserDashboard(user) {\n    if(user.walletStatus !== \"Active\") { dynamicPanel.innerHTML = `<div class=\"card\"><h3>\u26a0\ufe0f Wallet Not Active<\/h3><\/div>`; return; }\n    const activeAds = ads.filter(ad => ad.isActive && ad.activeUntil > Date.now());\n    dynamicPanel.innerHTML = `<div class=\"flex-between\"><h2>Watch & Earn<\/h2><span class=\"badge\">\ud83d\udcb0 ${user.wallet} UGX<\/span><\/div>\n      <div class=\"card\"><button id=\"requestWithdrawBtn\" class=\"btn btn-primary\" ${user.wallet<1500?'disabled':''}>Withdraw 1500 UGX<\/button><\/div>\n      <div class=\"card\"><h3>Active Ads<\/h3><div id=\"viewerAdsList\"><\/div><\/div>`;\n    document.getElementById('requestWithdrawBtn')?.addEventListener('click', () => { if(user.wallet>=1500){ withdrawRequests.push({id:Date.now(), userId:user.id, amount:1500, status:'pending'}); saveAll(); alert(\"Request submitted.\"); renderUserDashboard(getCurrentUser()); } });\n    const container = document.getElementById('viewerAdsList');\n    if(!activeAds.length) container.innerHTML = \"<p>No active ads.<\/p>\";\n    else container.innerHTML = activeAds.map(ad => `<div style=\"border:1px solid #eef2ff; border-radius:20px; padding:1rem;\"><h4>${ad.title}<\/h4>${!user.viewedAds?.includes(ad.id)?`<button class=\"btn btn-primary btn-sm\" data-viewad=\"${ad.id}\">Earn 3 UGX<\/button>`:`<span class=\"badge\">Claimed<\/span>`}<\/div>`).join('');\n    document.querySelectorAll('[data-viewad]').forEach(btn => btn.addEventListener('click', () => { const adId = parseInt(btn.dataset.viewad); if(!user.viewedAds.includes(adId)){ user.viewedAds.push(adId); user.wallet+=3; saveAll(); alert(\"+3 UGX\"); renderUserDashboard(getCurrentUser()); } }));\n  }\n\n  \/\/ =========== ADVERTISER DASHBOARD WITH PAYMENT PROMPT & APPROVAL ==========\n  function showPaymentPrompt(amountUGX, callback) {\n    const modal = document.createElement('div'); modal.className = 'modal'; modal.style.display = 'flex';\n    modal.innerHTML = `\n      <div class=\"modal-content\">\n        <h3><i class=\"fas fa-credit-card\"><\/i> Complete Payment<\/h3>\n        <div class=\"payment-details\">\n          <p><strong>Amount to Pay:<\/strong> ${amountUGX.toLocaleString()} UGX (${(amountUGX\/3800).toFixed(2)} USD)<\/p>\n          <hr style=\"margin: 0.8rem 0;\">\n          <p><i class=\"fas fa-phone-alt\"><\/i> <strong>MTN Mobile Money:<\/strong> 256775036603<\/p>\n          <p><i class=\"fas fa-phone-alt\"><\/i> <strong>M-Pesa:<\/strong> 254143408847<\/p>\n          <p><i class=\"fab fa-paypal\"><\/i> <strong>PayPal:<\/strong> <a href=\"https:\/\/paypal.me\/boldcashers\" target=\"_blank\">paypal.me\/boldcashers<\/a><\/p>\n        <\/div>\n        <p style=\"font-size:0.8rem; margin:1rem 0;\">After payment, provide your transaction reference below:<\/p>\n        <input id=\"transactionRef\" placeholder=\"Transaction ID \/ Reference Number\">\n        <div class=\"flex-between\" style=\"margin-top:1rem;\">\n          <button id=\"submitPaymentBtn\" class=\"btn btn-primary\">Submit for Approval<\/button>\n          <button id=\"cancelPaymentBtn\" class=\"btn btn-outline\">Cancel<\/button>\n        <\/div>\n      <\/div>\n    `;\n    document.body.appendChild(modal);\n    modal.querySelector('#submitPaymentBtn').onclick = () => {\n      const ref = modal.querySelector('#transactionRef').value.trim();\n      if(!ref) { alert(\"Please enter transaction reference\"); return; }\n      modal.remove();\n      callback(ref);\n    };\n    modal.querySelector('#cancelPaymentBtn').onclick = () => modal.remove();\n  }\n\n  function renderAdvertiserDashboard(user) {\n    const myAds = ads.filter(ad => ad.advertiserId === user.id);\n    const pendingFunding = fundingRequests.filter(r => r.userId === user.id && r.status === 'pending');\n    \n    dynamicPanel.innerHTML = `\n      <div class=\"flex-between\"><h2><i class=\"fas fa-chart-line\"><\/i> Advertiser Hub<\/h2><span class=\"badge\"><i class=\"fas fa-wallet\"><\/i> Balance: ${user.advertiserWallet.toLocaleString()} UGX<\/span><\/div>\n      ${pendingFunding.length > 0 ? `<div class=\"card\" style=\"background:#fef3c7;\"><i class=\"fas fa-clock\"><\/i> You have ${pendingFunding.length} pending funding request(s) waiting for admin approval.<\/div>` : ''}\n      <div class=\"grid-2\">\n        <div class=\"card\"><h3><i class=\"fas fa-plus-circle\"><\/i> Create Ad Campaign<\/h3><input id=\"adTitle\" placeholder=\"Title\"><select id=\"adType\"><option>video<\/option><option>audio<\/option><option>banner<\/option><\/select><input id=\"adMedia\" placeholder=\"Media URL\"><textarea id=\"adInstructions\" placeholder=\"Instructions\"><\/textarea><select id=\"dailyCostSelect\"><option value=\"2000\">UGX 2,000\/day<\/option><option value=\"3800\">$1 (3,800 UGX)\/day<\/option><\/select><button id=\"createAdBtn\" class=\"btn btn-primary\">Launch Campaign<\/button><\/div>\n        <div class=\"card\"><h3><i class=\"fas fa-coins\"><\/i> Fund Wallet<\/h3><input id=\"fundAmount\" value=\"10000\" type=\"number\"><select id=\"payMethod\"><option>MTN MoMo<\/option><option>M-Pesa<\/option><option>PayPal<\/option><\/select><button id=\"fundWalletBtn\" class=\"btn btn-primary\">Request to Add Funds<\/button><hr><h4>Your Campaigns<\/h4><div id=\"advertiserAdsList\"><\/div><\/div>\n      <\/div>\n      <div class=\"card\"><h3><i class=\"fab fa-facebook\"><\/i> Facebook Services<\/h3><div class=\"smm-service-grid\" id=\"facebookServices\"><\/div><\/div>\n      <div class=\"card\"><h3><i class=\"fab fa-instagram\"><\/i> Instagram Services<\/h3><div class=\"smm-service-grid\" id=\"instagramServices\"><\/div><\/div>\n      <div class=\"card\"><h3><i class=\"fab fa-youtube\"><\/i> YouTube Services<\/h3><div class=\"smm-service-grid\" id=\"youtubeServices\"><\/div><\/div>\n      <div class=\"card\"><h3><i class=\"fas fa-history\"><\/i> Recent SMM Orders<\/h3><div id=\"smmOrdersList\"><\/div><\/div>\n    `;\n    \n    document.getElementById('createAdBtn')?.addEventListener('click', () => {\n      const title = document.getElementById('adTitle').value, type = document.getElementById('adType').value, media = document.getElementById('adMedia').value, inst = document.getElementById('adInstructions').value, cost = document.getElementById('dailyCostSelect').value;\n      if(!title || !media) return alert(\"Title and Media URL required\");\n      ads.push({ id:Date.now(), advertiserId:user.id, title, type, mediaUrl:media, specialInstructions:inst, dailyCostUGX:parseInt(cost), activeUntil:null, isActive:false });\n      saveAll(); alert(\"Campaign created!\"); renderAdvertiserDashboard(user);\n    });\n    \n    \/\/ FUND WALLET WITH PAYMENT PROMPT & APPROVAL\n    document.getElementById('fundWalletBtn')?.addEventListener('click', () => {\n      let amt = parseFloat(document.getElementById('fundAmount').value);\n      if(isNaN(amt) || amt <= 0) return alert(\"Enter valid amount\");\n      showPaymentPrompt(amt, (transactionRef) => {\n        \/\/ Create funding request for admin approval\n        fundingRequests.push({\n          id: Date.now(),\n          userId: user.id,\n          userName: user.name,\n          amount: amt,\n          transactionRef: transactionRef,\n          status: 'pending',\n          createdAt: new Date().toISOString()\n        });\n        saveAll();\n        alert(`\u2705 Funding request of ${amt.toLocaleString()} UGX submitted for admin approval. Transaction Ref: ${transactionRef}\\nYou will be notified once approved.`);\n        renderAdvertiserDashboard(user);\n      });\n    });\n    \n    \/\/ Display user's ads\n    const adsDiv = document.getElementById('advertiserAdsList');\n    adsDiv.innerHTML = myAds.map(ad => `<div class=\"flex-between\" style=\"margin-bottom:0.8rem;\"><div><strong>${ad.title}<\/strong> - ${ad.isActive && ad.activeUntil>Date.now() ? '\ud83d\udfe2 Active' : '\u26aa Inactive'}<\/div><button class=\"btn btn-sm btn-primary\" data-adid=\"${ad.id}\">Activate (${ad.dailyCostUGX} UGX)<\/button><\/div>`).join('');\n    document.querySelectorAll('[data-adid]').forEach(btn => btn.addEventListener('click', () => {\n      const adId = parseInt(btn.dataset.adid), ad = ads.find(a=>a.id===adId);\n      if(ad && user.advertiserWallet >= ad.dailyCostUGX) { \n        user.advertiserWallet -= ad.dailyCostUGX; \n        ad.isActive = true; \n        ad.activeUntil = Date.now() + 86400000; \n        updatePlatformRevenue(ad.dailyCostUGX); \n        saveAll(); \n        alert(\"Campaign activated for 24 hours!\"); \n        renderAdvertiserDashboard(user);\n      } else alert(\"Insufficient balance. Please fund wallet.\");\n    }));\n    \n    \/\/ SMM Services with balance check\n    function renderSmmServices(containerId, services, platform) {\n      const container = document.getElementById(containerId);\n      if(!container) return;\n      container.innerHTML = services.map(svc => `\n        <div class=\"service-card\">\n          <div class=\"service-icon\"><i class=\"fab fa-${platform}\"><\/i><\/div>\n          <div class=\"service-title\">${svc.name}<\/div>\n          <div class=\"service-price\">${svc.priceUSD} USD (${svc.priceUGX.toLocaleString()} UGX)<\/div>\n          <button class=\"btn btn-success btn-sm\" data-smm='${JSON.stringify(svc)}' data-platform=\"${platform}\">Purchase<\/button>\n        <\/div>\n      `).join('');\n      document.querySelectorAll('[data-smm]').forEach(btn => {\n        btn.addEventListener('click', () => {\n          const svc = JSON.parse(btn.dataset.smm);\n          if(user.advertiserWallet >= svc.priceUGX) {\n            user.advertiserWallet -= svc.priceUGX;\n            updatePlatformRevenue(svc.priceUGX);\n            smmOrders.push({ id:Date.now(), userId:user.id, userName:user.name, platform:btn.dataset.platform, service:svc.name, description:svc.desc, amountUSD:svc.priceUSD, amountUGX:svc.priceUGX, status:'pending', date:new Date().toISOString() });\n            saveAll();\n            alert(`\u2705 Order placed! ${svc.name}. Admin will process.`);\n            renderAdvertiserDashboard(user);\n          } else alert(`\u274c Insufficient balance. Need ${svc.priceUGX.toLocaleString()} UGX. Please fund wallet.`);\n        });\n      });\n    }\n    renderSmmServices('facebookServices', SMM_PACKAGES.facebook, 'facebook');\n    renderSmmServices('instagramServices', SMM_PACKAGES.instagram, 'instagram');\n    renderSmmServices('youtubeServices', SMM_PACKAGES.youtube, 'youtube');\n    \n    const userOrders = smmOrders.filter(o => o.userId === user.id).slice(-5);\n    document.getElementById('smmOrdersList').innerHTML = userOrders.length ? userOrders.map(o => `<div>${o.service} - ${o.status}<\/div>`).join('') : \"<p>No orders yet<\/p>\";\n  }\n\n  \/\/ =========== ADMIN PANEL WITH FUNDING APPROVALS ==========\n  function renderAdminPanel(admin) {\n    const allUsers = users.filter(u => u.role !== 'admin');\n    const pendingWithdrawals = withdrawRequests.filter(r => r.status === 'pending');\n    const pendingFunding = fundingRequests.filter(r => r.status === 'pending');\n    const allSmmOrders = smmOrders;\n    \n    dynamicPanel.innerHTML = `\n      <div class=\"flex-between\"><h2><i class=\"fas fa-shield-alt\"><\/i> Admin Console<\/h2><span class=\"badge\">\ud83d\udcb0 Revenue: UGX ${platformRevenue.toLocaleString()}<\/span><\/div>\n      <div class=\"grid-2\">\n        <div class=\"card\"><h3>\ud83d\udcb0 Pending Fundings (Advertiser Payments)<\/h3><div id=\"fundingRequestsList\"><\/div><\/div>\n        <div class=\"card\"><h3>\ud83d\udcb8 Withdrawal Requests<\/h3><div id=\"withdrawalsList\"><\/div><\/div>\n      <\/div>\n      <div class=\"grid-2\">\n        <div class=\"card\"><h3>\ud83d\udc65 Users<\/h3><input id=\"searchUser\" placeholder=\"Search\"><button id=\"searchUserBtn\" class=\"btn btn-sm\">Search<\/button><div id=\"usersTableContainer\"><table><thead><tr><th>Name<\/th><th>Email<\/th><th>Role<\/th><th>Advertiser Wallet<\/th><th>Actions<\/th><\/tr><\/thead><tbody id=\"usersTableBody\"><\/tbody><\/table><\/div><\/div>\n        <div class=\"card\"><h3>\ud83d\udce6 SMM Orders<\/h3><div id=\"smmOrdersAdminList\"><\/div><\/div>\n      <\/div>\n      <div class=\"card\"><h3>\ud83d\udcc1 Contacts & Broadcast<\/h3><input type=\"file\" id=\"contactsCsv\"><button id=\"uploadContactsBtn\" class=\"btn btn-sm\">Upload CSV<\/button> <button id=\"sendEmailBtn\" class=\"btn btn-primary\">Broadcast<\/button><div id=\"contactsPreview\"><\/div><\/div>\n    `;\n    \n    \/\/ Funding Requests Approval\n    const fundingDiv = document.getElementById('fundingRequestsList');\n    if(pendingFunding.length === 0) fundingDiv.innerHTML = \"<p>No pending funding requests<\/p>\";\n    else {\n      fundingDiv.innerHTML = pendingFunding.map(req => {\n        const user = users.find(u => u.id === req.userId);\n        return `<div class=\"card\" style=\"margin-bottom:0.8rem; padding:1rem;\">\n          <div class=\"flex-between\">\n            <div><strong>${user?.name}<\/strong> (${user?.email})<br><small>Amount: ${req.amount.toLocaleString()} UGX<\/small><br><small>Ref: ${req.transactionRef}<\/small><\/div>\n            <div>\n              <button class=\"btn btn-success btn-sm\" data-fund=\"${req.id}\" data-action=\"approve\">\u2705 Approve<\/button>\n              <button class=\"btn btn-danger btn-sm\" data-fund=\"${req.id}\" data-action=\"reject\">\u274c Reject<\/button>\n            <\/div>\n          <\/div>\n        <\/div>`;\n      }).join('');\n      document.querySelectorAll('[data-fund]').forEach(btn => {\n        btn.addEventListener('click', () => {\n          const reqId = parseInt(btn.dataset.fund), action = btn.dataset.action;\n          const req = fundingRequests.find(r => r.id === reqId);\n          if(!req) return;\n          const targetUser = users.find(u => u.id === req.userId);\n          if(action === 'approve') {\n            targetUser.advertiserWallet += req.amount;\n            req.status = 'approved';\n            alert(`\u2705 Approved! Added ${req.amount.toLocaleString()} UGX to ${targetUser.name}'s wallet.`);\n          } else {\n            req.status = 'rejected';\n            alert(`\u274c Funding request rejected.`);\n          }\n          saveAll();\n          renderAdminPanel(admin);\n        });\n      });\n    }\n    \n    \/\/ Withdrawals\n    const withdrawalsDiv = document.getElementById('withdrawalsList');\n    if(pendingWithdrawals.length === 0) withdrawalsDiv.innerHTML = \"<p>No pending withdrawals<\/p>\";\n    else withdrawalsDiv.innerHTML = pendingWithdrawals.map(w => {\n      const u = users.find(u=>u.id===w.userId);\n      return `<div class=\"flex-between\"><span>${u?.name} - UGX ${w.amount}<\/span><div><button class=\"btn-sm btn-success\" data-wid=\"${w.id}\" data-action=\"approve\">Approve<\/button> <button class=\"btn-sm btn-danger\" data-wid=\"${w.id}\" data-action=\"reject\">Reject<\/button><\/div><\/div>`;\n    }).join('');\n    document.querySelectorAll('[data-wid]').forEach(btn => btn.addEventListener('click', () => {\n      const wid = parseInt(btn.dataset.wid), action = btn.dataset.action;\n      const req = withdrawRequests.find(r=>r.id===wid);\n      if(!req) return;\n      const user = users.find(u=>u.id===req.userId);\n      if(action === 'approve' && user.wallet >= req.amount) { user.wallet -= req.amount; updatePlatformRevenue(-req.amount); req.status='approved'; alert(\"Approved\"); }\n      else if(action === 'reject') { req.status='rejected'; alert(\"Rejected\"); }\n      saveAll(); renderAdminPanel(admin);\n    }));\n    \n    \/\/ User table\n    function renderUserTable(filter=\"\") {\n      const filtered = allUsers.filter(u => u.name.toLowerCase().includes(filter.toLowerCase()) || u.email.toLowerCase().includes(filter.toLowerCase()));\n      const tbody = document.getElementById('usersTableBody');\n      if(tbody) tbody.innerHTML = filtered.map(u => `<tr><td>${u.name}<\/td><td>${u.email}<\/td><td>${u.role}<\/td><td>${u.advertiserWallet.toLocaleString()} UGX<\/td><td><button class=\"btn-sm\" data-action=\"credit\" data-id=\"${u.id}\">\ud83d\udcb0 Add Funds<\/button><\/td><\/tr>`).join('');\n      document.querySelectorAll('[data-action=\"credit\"]').forEach(btn => btn.addEventListener('click', () => {\n        const userId = parseInt(btn.dataset.id), target = users.find(u=>u.id===userId);\n        let amt = prompt(\"Add UGX directly to advertiser wallet (instant):\"); if(amt && !isNaN(amt)) { target.advertiserWallet += parseFloat(amt); saveAll(); renderUserTable(filter); alert(\"Added\"); }\n      }));\n    }\n    renderUserTable();\n    document.getElementById('searchUserBtn')?.addEventListener('click', () => renderUserTable(document.getElementById('searchUser').value));\n    \n    \/\/ SMM Orders admin\n    const smmDiv = document.getElementById('smmOrdersAdminList');\n    if(allSmmOrders.length === 0) smmDiv.innerHTML = \"<p>No SMM orders<\/p>\";\n    else smmDiv.innerHTML = allSmmOrders.map(o => `<div class=\"flex-between\"><span>${o.userName}: ${o.service}<\/span><span class=\"badge\">${o.status}<\/span><button class=\"btn-sm btn-primary\" data-order=\"${o.id}\">Complete<\/button><\/div>`).join('');\n    document.querySelectorAll('[data-order]').forEach(btn => btn.addEventListener('click', () => {\n      const order = smmOrders.find(o=>o.id===parseInt(btn.dataset.order));\n      if(order) { order.status = 'completed'; saveAll(); renderAdminPanel(admin); alert(\"Order completed\"); }\n    }));\n    \n    document.getElementById('sendEmailBtn')?.addEventListener('click', () => alert(`Broadcast to ${allUsers.length} users (simulated)`));\n    document.getElementById('contactsPreview').innerHTML = contacts.length ? `<p>${contacts.length} contacts loaded<\/p>` : \"<p>No contacts<\/p>\";\n  }\n\n  loadData();\n  renderApp();\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads Ltd | Premium Digital Advertising &#038; SMM Africa Adase Ads Ltd Monetizing Africa \u2022 Digital Excellence Flicks AI \u00a9 2025 Adase Ads Ltd \u2013 Incorporated in Uganda P.O.BOX 207475, Kampala, Uganda ads@cashchat.se | +256 775036603<\/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-221","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/221","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=221"}],"version-history":[{"count":3,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/221\/revisions"}],"predecessor-version":[{"id":224,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/221\/revisions\/224"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}