1<!doctype html> 2<html lang="id"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 6 <title>VAVA4D : Platform Bandar Hiburan Game Online Terpercaya & Resmi Hari Ini</title> 7 <link rel="icon" type="image/png" href="/favicon.png"> 8 9 <meta name="keywords" content="vava4d, vava 4d"> 10<meta name="description" content="VAVA4D adalah platform hiburan game online dengan akses mudah, tampilan responsif, serta pilihan permainan yang beragam. Dapatkan pengalaman digital yang praktis dan nyaman melalui layanan yang dirancang untuk pengguna masa kini."> 11<link rel="canonical" href="https://vava4d.com/" > 12<link rel="amphtml" href="https://mobile-vava4d.com/" /> 13<link rel="alternate" hreflang="id-ID" href="https://mobile-vava4d.com/"/> 14<link rel="alternate" href="https://mobile-vava4d.com/"/> 15<link rel="alternate" hreflang="en" href="https://mobile-vava4d.com/"/> 16<link rel="alternate" hreflang="x-default" href="https://mobile-vava4d.com/"/> 17<meta name="robots" content="index,follow"> 18<meta name="googlebot" content="index,follow"> 19<meta name="revisit-after" content="1 Day"> 20<meta name="author" content="VAVA4D"> 21<meta name="copyright" content="VAVA4D"> 22<link rel="preconnect" href="https://vava4d.com/"> 23<meta property="og:type" content="website" /> 24<meta property="og:title" content="VAVA4D : Platform Bandar Hiburan Game Online Terpercaya & Resmi Hari Ini"/> 25<meta property="og:description" content="VAVA4D adalah platform hiburan game online dengan akses mudah, tampilan responsif, serta pilihan permainan yang beragam. Dapatkan pengalaman digital yang praktis dan nyaman melalui layanan yang dirancang untuk pengguna masa kini." /> 26<meta property="og:url" content="https://vava4d.com/"/> 27<meta property="og:site_name" content="VAVA4D" /> 28<meta property="og:locale:alternate" content="id_ID" /> 29<meta property="og:image" content="https://bvbsnpict.com/vava4d/vava4d.webp"/> 30<meta name="google-site-verification" content="S2EUD6SJXuceqiY0nB6OiDIOSvX7NQ0AGMp3oGOKrWc" /> 31<meta name="google-site-verification" content="8Apd2U8TD0Y7rWH8DGuLO2CbOJCKQOs-mLpWOKO2THY" /> 32<meta name="google-site-verification" content="HRlN3inrwJa_y6Ll8Qv-IqtLULhIT6AMg3zNOc3V4KY" /> 33<meta name="google-site-verification" content="ht_Z4J9JfQwYs4nnliaWiVbS1Tc0-OMPyLQ9CMGza5Q" /> 34<meta name="google-site-verification" content="jeSFU4COAr9CNbQFcPprCis6ziL6KfCIL68DB5izSKI" /> 35<meta content="1 days" name="revisit-after"> 36<meta content="general" name="rating"> 37<meta content="id" name="geo.country"> 38<meta content="Indonesia" name="geo.placename"> 39
40<script type="application/ld+json"> 41{ 42 "@context": "https://schema.org", 43 "@graph": [ 44 { 45 "@type": "WebPage", 46 "@id": "https://vava4d.com/#webpage", 47 "url": "https://vava4d.com/", 48 "name": "VAVA4D : Platform Bandar Hiburan Game Online Terpercaya & Resmi Hari Ini", 49 "description": "VAVA4D adalah platform hiburan game online dengan akses mudah, tampilan responsif, serta pilihan permainan yang beragam. Dapatkan pengalaman digital yang praktis dan nyaman melalui layanan yang dirancang untuk pengguna masa kini.", 50 "inLanguage": "id-ID", 51 "isPartOf": { 52 "@id": "https://vava4d.com/#website" 53 }, 54 "breadcrumb": { 55 "@id": "https://vava4d.com/#breadcrumb" 56 }, 57 "primaryImageOfPage": { 58 "@type": "ImageObject", 59 "url": "https://vava4dend.com/images/upload-Slides-20260331053406.jpg", 60 "width": 600, 61 "height": 280 62 }, 63 "datePublished": "2026-06-26T00:00:00+00:00", 64 "dateModified": "2026-06-26T00:00:00+00:00" 65 }, 66 { 67 "@type": "BreadcrumbList", 68 "@id": "https://vava4d.com/#breadcrumb", 69 "itemListElement": [ 70 { 71 "@type": "ListItem", 72 "position": 1, 73 "name": "VAVA4D", 74 "item": "https://vava4d.com/" 75 }, 76 { 77 "@type": "ListItem", 78 "position": 2, 79 "name": "VAVA4D DAFTAR", 80 "item": "https://vava4d.com/" 81 }, 82 { 83 "@type": "ListItem", 84 "position": 3, 85 "name": "VAVA4D LOGIN", 86 "item": "https://vava4d.com/" 87 } 88 ] 89 }, 90 { 91 "@type": "Organization", 92 "@id": "https://vava4d.com/#organization", 93 "name": "VAVA4D", 94 "url": "https://vava4d.com/", 95 "logo": { 96 "@type": "ImageObject", 97 "url": "https://vava4d.com/images/logoweb.png", 98 "width": 250, 99 "height": 60 100 }, 101 "sameAs": [ 102 "https://www.facebook.com/VAVA4D", 103 "https://www.instagram.com/VAVA4D", 104 "https://twitter.com/VAVA4D" 105 ] 106 }, 107 { 108 "@type": "WebSite", 109 "@id": "https://vava4d.com/#website", 110 "url":"https://vava4d.com/", 111 "name": "VAVA4D", 112 "publisher": { 113 "@id": "https://vava4d.com/#organization" 114 }, 115 "potentialAction": { 116 "@type": "SearchAction", 117 "target": "https://vava4d.com/search?q={search_term_string}", 118 "query-input": "required name=search_term_string" 119 } 120 }, 121 { 122 "@type": "FAQPage", 123 "mainEntity": [ 124 { 125 "@type": "Question", 126 "name": "Apa itu VAVA4D?", 127 "acceptedAnswer": { 128 "@type": "Answer", 129 "text": "VAVA4D adalah sebuah platform berbasis website yang menyediakan layanan hiburan online dengan sistem akses yang dapat digunakan melalui berbagai perangkat seperti smartphone dan komputer." 130 } 131 }, 132 { 133 "@type": "Question", 134 "name": "Bagaimana cara login ke akun VAVA4D?", 135 "acceptedAnswer": { 136 "@type": "Answer", 137 "text": "Login dapat dilakukan dengan memasukkan username dan password yang telah terdaftar pada halaman login utama." 138 } 139 }, 140 { 141 "@type": "Question", 142 "name": "Apakah VAVA4D bisa diakses di semua perangkat?", 143 "acceptedAnswer": { 144 "@type": "Answer", 145 "text": "Ya, VAVA4D dirancang agar responsif dan dapat diakses melalui berbagai perangkat seperti smartphone, tablet, maupun desktop." 146 } 147 } 148 ] 149 } 150 ] 151} 152</script>
152 153 154 155 156 157<!-- BUTTON TAMBAHAN --> 158<style> 159#mobile #logo-img {width: 250px;}#mobile .logo-div {margin-top: 15px;margin-bottom: 15px;}.alert {max-width:280px;margin: -25px auto 0px;border: #555 2px solid;}.blinking{animation:blinkingText 1.5s infinite;margin: -8px auto 0;display:block;font-weight: 900;color:#f00;} 160</style>
161<script> 162$("<a class='btn btn-primary btn-block' href='https://bvbsn.com/amp/rtp.html' target='_blank'>RTP Terupdate</a>").insertAfter(".btn-daftar-desktop:eq(0)") 163$("<a class='btn btn-warning btn-block' href='https://bvbsn.com/vava4d.html' target='_blank' rel='nofollow'>Grup FB</a>").insertAfter(".btn-daftar-desktop:eq(0)") 164</script>
164 165 166 <link rel="preconnect" href="https://img.viva88athenae.com"> 167 <link rel="preload" href="/fonts/new/ubuntu-normal-400-latin.woff2" as="font" type="font/woff2" crossorigin> 168 <link rel="preload" href="/fonts/new/ubuntu-normal-700-latin.woff2" as="font" type="font/woff2" crossorigin> 169 <link rel="preload" href="/fonts/new/oswald-normal-400-latin.woff2" as="font" type="font/woff2" crossorigin> 170 <link href="/css/new/vendor/bootstrap.min.css?v=1790436336" rel="stylesheet"> 171 <style id="jt-fonts">/* Self-hosted Ubuntu + Oswald (latin / latin-ext), font-display: swap */ 172/* latin-ext */ 173@font-face { 174 font-family: 'Oswald'; 175 font-style: normal; 176 font-weight: 400; 177 font-display: swap; 178 src: url(/fonts/new/oswald-normal-400-latinext.woff2) format('woff2'); 179 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 180} 181/* latin */ 182@font-face { 183 font-family: 'Oswald'; 184 font-style: normal; 185 font-weight: 400; 186 font-display: swap; 187 src: url(/fonts/new/oswald-normal-400-latin.woff2) format('woff2'); 188 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 189} 190/* latin-ext */ 191@font-face { 192 font-family: 'Oswald'; 193 font-style: normal; 194 font-weight: 500; 195 font-display: swap; 196 src: url(/fonts/new/oswald-normal-500-latinext.woff2) format('woff2'); 197 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 198} 199/* latin */ 200@font-face { 201 font-family: 'Oswald'; 202 font-style: normal; 203 font-weight: 500; 204 font-display: swap; 205 src: url(/fonts/new/oswald-normal-500-latin.woff2) format('woff2'); 206 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 207} 208/* latin-ext */ 209@font-face { 210 font-family: 'Oswald'; 211 font-style: normal; 212 font-weight: 600; 213 font-display: swap; 214 src: url(/fonts/new/oswald-normal-600-latinext.woff2) format('woff2'); 215 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 216} 217/* latin */ 218@font-face { 219 font-family: 'Oswald'; 220 font-style: normal; 221 font-weight: 600; 222 font-display: swap; 223 src: url(/fonts/new/oswald-normal-600-latin.woff2) format('woff2'); 224 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 225} 226/* latin-ext */ 227@font-face { 228 font-family: 'Oswald'; 229 font-style: normal; 230 font-weight: 700; 231 font-display: swap; 232 src: url(/fonts/new/oswald-normal-700-latinext.woff2) format('woff2'); 233 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 234} 235/* latin */ 236@font-face { 237 font-family: 'Oswald'; 238 font-style: normal; 239 font-weight: 700; 240 font-display: swap; 241 src: url(/fonts/new/oswald-normal-700-latin.woff2) format('woff2'); 242 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 243} 244/* latin-ext */ 245@font-face { 246 font-family: 'Ubuntu'; 247 font-style: italic; 248 font-weight: 300; 249 font-display: swap; 250 src: url(/fonts/new/ubuntu-italic-300-latinext.woff2) format('woff2'); 251 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 252} 253/* latin */ 254@font-face { 255 font-family: 'Ubuntu'; 256 font-style: italic; 257 font-weight: 300; 258 font-display: swap; 259 src: url(/fonts/new/ubuntu-italic-300-latin.woff2) format('woff2'); 260 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 261} 262/* latin-ext */ 263@font-face { 264 font-family: 'Ubuntu'; 265 font-style: italic; 266 font-weight: 400; 267 font-display: swap; 268 src: url(/fonts/new/ubuntu-italic-400-latinext.woff2) format('woff2'); 269 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
269BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 270} 271/* latin */ 272@font-face { 273 font-family: 'Ubuntu'; 274 font-style: italic; 275 font-weight: 400; 276 font-display: swap; 277 src: url(/fonts/new/ubuntu-italic-400-latin.woff2) format('woff2'); 278 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 279} 280/* latin-ext */ 281@font-face { 282 font-family: 'Ubuntu'; 283 font-style: italic; 284 font-weight: 500; 285 font-display: swap; 286 src: url(/fonts/new/ubuntu-italic-500-latinext.woff2) format('woff2'); 287 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 288} 289/* latin */ 290@font-face { 291 font-family: 'Ubuntu'; 292 font-style: italic; 293 font-weight: 500; 294 font-display: swap; 295 src: url(/fonts/new/ubuntu-italic-500-latin.woff2) format('woff2'); 296 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 297} 298/* latin-ext */ 299@font-face { 300 font-family: 'Ubuntu'; 301 font-style: italic; 302 font-weight: 700; 303 font-display: swap; 304 src: url(/fonts/new/ubuntu-italic-700-latinext.woff2) format('woff2'); 305 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 306} 307/* latin */ 308@font-face { 309 font-family: 'Ubuntu'; 310 font-style: italic; 311 font-weight: 700; 312 font-display: swap; 313 src: url(/fonts/new/ubuntu-italic-700-latin.woff2) format('woff2'); 314 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 315} 316/* latin-ext */ 317@font-face { 318 font-family: 'Ubuntu'; 319 font-style: normal; 320 font-weight: 300; 321 font-display: swap; 322 src: url(/fonts/new/ubuntu-normal-300-latinext.woff2) format('woff2'); 323 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 324} 325/* latin */ 326@font-face { 327 font-family: 'Ubuntu'; 328 font-style: normal; 329 font-weight: 300; 330 font-display: swap; 331 src: url(/fonts/new/ubuntu-normal-300-latin.woff2) format('woff2'); 332 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 333} 334/* latin-ext */ 335@font-face { 336 font-family: 'Ubuntu'; 337 font-style: normal; 338 font-weight: 400; 339 font-display: swap; 340 src: url(/fonts/new/ubuntu-normal-400-latinext.woff2) format('woff2'); 341 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 342} 343/* latin */ 344@font-face { 345 font-family: 'Ubuntu'; 346 font-style: normal; 347 font-weight: 400; 348 font-display: swap; 349 src: url(/fonts/new/ubuntu-normal-400-latin.woff2) format('woff2'); 350 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 351} 352/* latin-ext */ 353@font-face { 354 font-family: 'Ubuntu'; 355 font-style: normal; 356 font-weight: 500; 357 font-display: swap; 358 src: url(/fonts/new/ubuntu-normal-500-latinext.woff2) format('woff2'); 359 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 360} 361/* latin */ 362@font-face { 363 font-family: 'Ubuntu'; 364 font-style: normal; 365 font-weight: 500; 366 font-display: swap; 367 src: url(/fonts/new/ubuntu-normal-500-latin.woff2) format('woff2'); 368 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 369} 370/* latin-ext */ 371@font-face { 372 font-family: 'Ubuntu'; 373 font-style: normal; 374 font-weight: 700; 375 font-display: swap; 376 src: url(/fonts/new/ubuntu-normal-700-latinext.woff2) format('woff2'); 377 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
377BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 378} 379/* latin */ 380@font-face { 381 font-family: 'Ubuntu'; 382 font-style: normal; 383 font-weight: 700; 384 font-display: swap; 385 src: url(/fonts/new/ubuntu-normal-700-latin.woff2) format('woff2'); 386 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 387} 388</style> <style id="jt-theme">/* Theme: BC â BC */ 389:root { 390 /* --- Accent --- */ 391 --accent-color: #2d2d4f; 392 393 /* --- Text --- */ 394 --primary-text-color: #ffffff; 395 --secondary-text-color: #d4d4d4; 396 --accent-text-color: #40406f; 397 398 /* --- Teks tambahan --- */ 399 --muted-text-color: #888888; 400 --muted-text-color-secondary: #2b2626; 401 --muted-text-color-tertiary: #4a4ab5; 402 403 /* --- Background utama --- */ 404 --primary-background-color: #0f0f24; 405 --secondary-background-color: #08081c; 406 --ternary-background-color: #15152e; 407 --quaternary-background-color: #0f0f24; 408 409 /* --- Background tambahan --- */ 410 --placeholder-bg: #1e1e3e; 411 --overlay-bg: rgba(0,0,0,0.6); 412 --handle-color: rgba(255,255,255,0.2); 413 --table-hover-bg: rgba(45,45,79,0.05); 414 --btn-close-hover-bg: rgba(128,128,128,0.12); 415 --qr-bg: #ffffff; 416 417 /* --- Navbar --- */ 418 --navbar-bg: var(--ternary-background-color); 419 --bottom-navbar-bg: var(--ternary-background-color); 420 421 /* --- Navbar text --- */ 422 --navbar-text-color: #ffffff; 423 --bottom-navbar-text-color: #ffffff; 424 425 /* --- Header & Home elemen (terpisah dari primary/secondary/accent-text) --- */ 426 --topbar-link-color: var(--primary-text-color); 427 --section-title-color: var(--primary-text-color); 428 --togel-market-name-color: var(--primary-text-color); 429 --balance-text-color: var(--secondary-text-color); 430 --nav-active-color: var(--accent-text-color); 431 --marquee-date-color: var(--accent-text-color); 432 --username-text-color: var(--secondary-text-color); 433 --marquee-text-color: var(--secondary-text-color); 434 435 /* --- Menu / Marquee / Search --- */ 436 --menu-box-bg: rgba(45,45,79,0.05); 437 --marquee-bg: #08081c; 438 --search-bg: #15152e; 439 440 /* --- Widget profile gradient --- */ 441 --widget-profile-bg-start: #1c1c3f; 442 --widget-profile-bg-end: #08081c; 443 444 /* --- Tombol Deposit (gradient) --- */ 445 --btn-deposit-color-start: #2525b1; 446 --btn-deposit-color-mid: #4a4ad9; 447 --btn-deposit-color-end: #2525b1; 448 --btn-deposit-text: #ffffff; 449 450 /* --- Tombol Withdraw (gradient) --- */ 451 --btn-withdraw-color-start: #08081c; 452 --btn-withdraw-color-end: #15152e; 453 --btn-withdraw-text: #ffffff; 454 455 /* --- Tab aktif & tabel rekening (terpisah dari accent utama) --- */ 456 --tx-tab-active-color: var(--accent-color); 457 --tx-table-accent-color: var(--accent-text-color); 458 459 /* --- Table stripe & input placeholder (terpisah, dikalibrasi thd bg literal) --- */ 460 --table-stripe-odd-bg: var(--primary-background-color); 461 --table-stripe-even-bg: var(--secondary-background-color); 462 --input-placeholder-color: #6b7280; 463 464 /* --- CMS sidebar nav item (state tidak-aktif/hover/aktif, terpisah dari muted-text-color umum) --- */ 465 --cms-nav-color: var(--muted-text-color); 466 --cms-nav-hover-color: var(--secondary-text-color); 467 --cms-nav-active-color: var(--primary-text-color); 468 469 /* --- History table --- */ 470 --color-tanggal: #ef5350; 471 --color-pasaran: #42a5f5; 472 --color-debit: #ef5350; 473 --color-kredit: #66bb6a; 474 --color-balance: #42a5f5; 475 476 /* --- Component backgrounds --- */ 477 --btn-menu-bg: var(--ternary-background-color); 478 --card-bg: var(--ternary-background-color); 479 --avatar-bg: var(--ternary-background-color); 480 --table-header-bg: var(--ternary-background-color); 481 --dropdown-bg: var(--secondary-background-color); 482 --sidebar-bg: var(--secondary-background-color); 483 --input-bg: var(--secondary-background-color); 484 --menu-box-border-color: rgba(45,45,79,0.12); 485 --breadcrumb-color: var(--accent-color); 486 --alert-danger-bg: #ee5f5b; 487 488 /* --- Accent alpha (untuk hover/active) --- */ 489 --accent-bg-subtle: rgba(45,45,79,0.10); 490 --accent-bg-active: rgba(45,45,79,0.12); 491 --accent-border-subtle: rgba(45,45,79,0.32); 492
493 /* --- Skeleton shimmer --- */ 494 --skeleton-color-base: var(--ternary-background-color); 495 --skeleton-color-shine: #1e1e3e; 496 497 /* --- Card togel pasaran (home) --- */ 498 --togel-card-bg: var(--secondary-background-color); 499 --togel-card-number-color: var(--primary-text-color); 500 501 /* --- Splide pagination --- */ 502 --splide-pagination-inactive: #dee2e6; 503 504 /* --- Border --- */ 505 --border-color: rgba(255,255,255,0.08); 506 --border-subtle-color: rgba(255,255,255,0.04); 507 508 /* --- Font & Radius --- */ 509 --font-body: "Ubuntu", sans-serif; 510 --radius-sm: 6px; 511 --radius-md: 8px; 512 --radius-lg: 10px; 513 --radius-xl: 12px; 514 --radius-pill: 999px; 515 516 /* --- Font sizes --- */ 517 --fs-xs: 10px; 518 --fs-sm: 11px; 519 --fs-md: 12px; 520 --fs-base: 13px; 521 --fs-lg: 14px; 522 --fs-xl: 15px; 523 --fs-2xl: 16px; 524 --fs-3xl: 18px; 525} 526 527:root[data-theme="light"] { 528 /* --- Light theme overrides (auto-generated dari base gelap) --- */ 529 /* --- Accent --- */ 530 --accent-color: #2d2d4f; 531 532 /* --- Text --- */ 533 --primary-text-color: #141414; 534 --secondary-text-color: #2b2b2b; 535 --accent-text-color: #40406f; 536 537 /* --- Teks tambahan --- */ 538 --muted-text-color: #595959; 539 --muted-text-color-secondary: #5c5656; 540 --muted-text-color-tertiary: #47476c; 541 542 /* --- Background utama --- */ 543 --primary-background-color: #e1e1ea; 544 --secondary-background-color: #eaeaf0; 545 --ternary-background-color: #d9d9e2; 546 --quaternary-background-color: #e1e1ea; 547 548 /* --- Background tambahan --- */ 549 --placeholder-bg: #cbcbd7; 550 --overlay-bg: rgba(0,0,0,0.6); 551 --handle-color: rgba(0,0,0,0.2); 552 --table-hover-bg: rgba(45,45,79,0.05); 553 --btn-close-hover-bg: rgba(128,128,128,0.12); 554 --qr-bg: #ffffff; 555 556 /* --- Navbar --- */ 557 --navbar-bg: var(--ternary-background-color); 558 --bottom-navbar-bg: var(--ternary-background-color); 559 560 /* --- Navbar text --- */ 561 --navbar-text-color: #141414; 562 --bottom-navbar-text-color: #141414; 563 564 /* --- Header & Home elemen (terpisah dari primary/secondary/accent-text) --- */ 565 --topbar-link-color: var(--primary-text-color); 566 --section-title-color: var(--primary-text-color); 567 --togel-market-name-color: var(--primary-text-color); 568 --balance-text-color: var(--secondary-text-color); 569 --nav-active-color: var(--accent-text-color); 570 --marquee-date-color: var(--accent-text-color); 571 --username-text-color: var(--secondary-text-color); 572 --marquee-text-color: var(--secondary-text-color); 573 574 /* --- Menu / Marquee / Search --- */ 575 --menu-box-bg: rgba(45,45,79,0.05); 576 --marquee-bg: #eaeaf0; 577 --search-bg: #d9d9e2; 578 579 /* --- Widget profile gradient --- */ 580 --widget-profile-bg-start: #cacad8; 581 --widget-profile-bg-end: #eaeaf0; 582 583 /* --- Tombol Deposit (gradient) --- */ 584 --btn-deposit-color-start: #2525b1; 585 --btn-deposit-color-mid: #4a4ad9; 586 --btn-deposit-color-end: #2525b1; 587 --btn-deposit-text: #ffffff; 588 589 /* --- Tombol Withdraw (gradient) --- */ 590 --btn-withdraw-color-start: #eaeaf0; 591 --btn-withdraw-color-end: #d9d9e2; 592 --btn-withdraw-text: #141414; 593 594 /* --- Tab aktif & tabel rekening (terpisah dari accent utama) --- */ 595 --tx-tab-active-color: var(--accent-color); 596 --tx-table-accent-color: var(--accent-text-color); 597 598 /* --- Table stripe & input placeholder (terpisah, dikalibrasi thd bg literal) --- */ 599 --table-stripe-odd-bg: var(--primary-background-color); 600 --table-stripe-even-bg: var(--secondary-background-color); 601 --input-placeholder-color: #6b7280; 602 603 /* --- CMS sidebar nav item (state tidak-aktif/hover/aktif, terpisah dari muted-text-color umum) --- */ 604 --cms-nav-color: var(--muted-text-color); 605 --cms-nav-hover-color: var(--secondary-text-color); 606 --cms-nav-active-color: var(--primary-text-color); 607 608 /* --- History table --- */ 609 --color-tanggal: #c41512; 610 --color-pasaran: #0965ae; 611 --color-debit: #c41512; 612 --color-kredit: #327135; 613 --color-balance: #0965ae; 614 615 /* --- Component backgrounds --- */ 616 --btn-menu-bg: var(--ternary-background-color); 617 --card-bg: var(--ternary-background-color); 618 --avatar-bg: var(--ternary-background-color); 619 --table-header-bg: var(--ternary-background-color); 620 --dropdown-bg: var(--secondary-background-color); 621 --sidebar-bg: var(--secondary-background-color); 622 --input-bg: var(--secondary-background-color); 623 --menu-box-border-color: rgba(45,45,79,0.12); 624 --breadcrumb-color: var(--accent-color); 625 --alert-danger-bg: #ee5f5b; 626 627 /* --- Accent alpha (untuk hover/active) --- */ 628 --accent-bg-subtle: rgba(45,45,79,0.10); 629 --accent-bg-active: rgba(45,45,79,0.12); 630 --accent-border-subtle: rgba(45,45,79,0.32); 631
632 /* --- Skeleton shimmer --- */ 633 --skeleton-color-base: var(--ternary-background-color); 634 --skeleton-color-shine: #cbcbd7; 635 636 /* --- Card togel pasaran (home) --- */ 637 --togel-card-bg: var(--secondary-background-color); 638 --togel-card-number-color: var(--primary-text-color); 639 640 /* --- Splide pagination --- */ 641 --splide-pagination-inactive: #a8b2bd; 642 643 /* --- Border --- */ 644 --border-color: rgba(0,0,0,0.08); 645 --border-subtle-color: rgba(0,0,0,0.04); 646 647 /* --- Font & Radius --- */ 648 --font-body: "Ubuntu", sans-serif; 649 --radius-sm: 6px; 650 --radius-md: 8px; 651 --radius-lg: 10px; 652 --radius-xl: 12px; 653 --radius-pill: 999px; 654 655 /* --- Font sizes --- */ 656 --fs-xs: 10px; 657 --fs-sm: 11px; 658 --fs-md: 12px; 659 --fs-base: 13px; 660 --fs-lg: 14px; 661 --fs-xl: 15px; 662 --fs-2xl: 16px; 663 --fs-3xl: 18px; 664} 665 666/* History table column colors */ 667.history-table .col-tanggal { white-space: nowrap; color: var(--color-tanggal); } 668.history-table .col-pasaran { color: var(--color-pasaran); } 669.history-table .col-betid { font-size: var(--fs-xs); word-break: break-all; color: var(--accent-text-color); } 670.history-table .col-deskripsi { color: var(--primary-text-color); } 671.history-table .col-balance { white-space: nowrap; color: var(--color-balance); } 672</style> <link rel="stylesheet" href="/css/new/layout.min.css?v=1790436336"> 673 <link rel="stylesheet" href="/css/new/logo.css?v=1790436336"> 674 <style>.splide__list{display:flex;margin:0!important;padding:0!important}.splide__track{overflow:hidden;position:relative}</style> 675 676 <link id="css-home-sections" rel="stylesheet" href="/css/new/home-sections.min.css?v=1790436336" media="print" onload="this.media='all'"> 677 678 <link id="css-bootstrap-icons" rel="stylesheet" href="/css/new/vendor/bootstrap-icons.min.css?v=1790436336" media="print" onload="this.media='all'"> 679 <link id="css-splide" rel="stylesheet" href="/css/new/vendor/splide.min.css?v=1790436336" media="print" onload="this.media='all'"> 680 <noscript> 681 <link rel="stylesheet" href="/css/new/home-sections.min.css?v=1790436336"> 682 <link rel="stylesheet" href="/css/new/vendor/bootstrap-icons.min.css?v=1790436336"> 683 <link rel="stylesheet" href="/css/new/vendor/splide.min.css?v=1790436336"> 684 <link rel="stylesheet" href="/css/new/game.min.css?v=1790436336"> 685 </noscript> 686 687 <style> 688 @media (max-width: 768px) { 689 .driver-popover { max-width: 220px !important; font-size: 12px !important; padding: 10px 12px !important; } 690 .driver-popover-title { font-size: 13px !important; margin-bottom: 4px !important; } 691 .driver-popover-description { font-size: 12px !important; } 692 } 693 </style> 694 695 <style> 696 a { 697 color: inherit; /* blue colors for links too */ 698 text-decoration: inherit; /* no underline */ 699 } 700 701 .desktop-only { 702 display: block!important; 703 } 704 705 .mobile-only { 706 display: none !important; 707 } 708 709 .btn { 710 height: 30px; 711 border-radius: 3px; 712 } 713 714 .login-field { 715 width: 104px; 716 height: 30px; 717 border-radius: 3px; 718 } 719 720 .login-input-field { 721 margin: 0px; 722 padding: 0px 8px; 723 border-radius: 3px !important; 724 } 725 726 .section>.home-view { 727 padding: 0px; 728 } 729 730 @media only screen and (max-width: 1000px) { 731 732 .desktop-only { 733 display: none!important; 734 } 735 736 .mobile-only { 737 display: block!important; 738 } 739 740 .login-form { 741 padding: 32px 0; 742 margin: 0px 64px; 743 display: flex; 744 flex-direction: column; 745 } 746 747 .login-field, .login-form>button, .btn-promosi { 748 height: 36px; 749 width: 100% !important; 750 border-radius: 8px; 751 overflow: hidden; 752 } 753 754 .login-input-field { 755 border-top-left-radius: 0 !important; 756 border-bottom-left-radius: 0 !important; 757 font-size: 1rem; 758 } 759 760 .section { 761 padding: 0px 8px!important; 762 } 763 } 764 765 .grecaptcha-badge { 766 display: none !important; 767 } 768 </style> 769 770 771</head> 772 <body> 773
773<script src="/js/new/vendor/jquery.min.js?v=1790436336"></script>
773 774
774<script> 775 window.JT_CSRF_TOKEN = '5d59028d9c61592cb5724aa8d673f9c8d98cdb60ff17f129a0baaa2e698a0f83'; 776 window.JT_NEED_RECAPTCHA_REGISTER = false; 777 window.JT_NEED_RECAPTCHA_LOGIN = false; 778 window.JT_NEED_RECAPTCHA = false; 779 window.JT_RECAPTCHA_SITE_KEY = '6Leu4cosAAAAABe-B_1-oryumOl99wsUEEFN3z8A'; 780 window.JT_NEED_TURNSTILE_REGISTER = false; 781 window.JT_NEED_TURNSTILE_LOGIN = false; 782 window.JT_NEED_TURNSTILE = false; 783 window.JT_NEED_IFRAME_CAPTCHA = false; 784 window.JT_CAPTCHA_LOGIN_MODE = '1'; 785 window.JT_CAPTCHA_REGISTER_MODE = '1'; 786 787 $.ajaxSetup({ 788 beforeSend: function (xhr, settings) { 789 if (settings.type === 'POST' && !settings.crossDomain) { 790 xhr.setRequestHeader('X-CSRF-Token', window.JT_CSRF_TOKEN || ''); 791 } 792 } 793 }); 794 795 var _recaptchaLoader = null; 796 function jtLoadRecaptcha() { 797 if (!window.JT_NEED_RECAPTCHA) return Promise.resolve(); 798 if (typeof grecaptcha !== 'undefined' && grecaptcha.enterprise) return Promise.resolve(); 799 if (_recaptchaLoader) return _recaptchaLoader; 800 _recaptchaLoader = new Promise(function (resolve, reject) { 801 var s = document.createElement('script'); 802 s.src = 'https://www.google.com/recaptcha/enterprise.js?render=' + encodeURIComponent(window.JT_RECAPTCHA_SITE_KEY); 803 s.async = true; 804 s.onload = function () { resolve(); }; 805 s.onerror = function () { _recaptchaLoader = null; reject(new Error('recaptcha load failed')); }; 806 document.head.appendChild(s); 807 }); 808 return _recaptchaLoader; 809 } 810 811 812 function jtWarmAuthScripts() { 813 if (window.JT_NEED_RECAPTCHA) jtLoadRecaptcha().catch(function () {}); 814 if (window.JT_NEED_TURNSTILE && typeof window.turnst === 'function') { 815 window.turnst('').catch(function () {}); 816 } 817 } 818 819 $(document).on( 820 'focusin', 821 '#desktoplogin input, #mobilelogin input, #formRegister input, #formRegister select, #desktopregister input, #mobileregister input', 822 jtWarmAuthScripts 823 ); 824 $(document).on( 825 'click', 826 '.btn-daftar, [onclick*="register"], a[href*="register"]', 827 jtWarmAuthScripts 828 ); 829 830 function jtNeedRecaptchaRegister($form) { 831 var isRecaptchaRegister = String($form.find('input[name="isrecaptcharegister"]').val() || ''); 832 return window.JT_NEED_RECAPTCHA_REGISTER === true || isRecaptchaRegister === '1'; 833 } 834 835 function jtNeedRecaptchaLogin($form) { 836 var isRecaptchaLogin = String($form.find('input[name="isrecaptchalogin"]').val() || ''); 837 return window.JT_NEED_RECAPTCHA_LOGIN === true || isRecaptchaLogin === '1'; 838 } 839 840 function jtWithRecaptchaToken($form, $status, action, shouldRun, onReady, failCls, onFail, tokenField) { 841 if (!shouldRun) { 842 onReady(); 843 return; 844 } 845 var fieldName = tokenField || 'recaptcha_token'; 846 var warnCls = (failCls === undefined) ? 'alert alert-sm alert-warning' : failCls; 847 function showFail(msg) { 848 if (warnCls) { 849 $status.removeClass().addClass(warnCls).text(msg).fadeIn(1000); 850 } else { 851 $status.removeClass().text(msg).fadeIn(1000); 852 } 853 if (typeof onFail === 'function') { 854 onFail(); 855 } 856 } 857 jtLoadRecaptcha().then(function () { 858 if (typeof grecaptcha === 'undefined' || !grecaptcha.enterprise) { 859 showFail('Verifikasi gagal dimuat, refresh halaman'); 860 return; 861 } 862 grecaptcha.enterprise.ready(function () { 863 grecaptcha.enterprise.execute(window.JT_RECAPTCHA_SITE_KEY, { action: action }) 864 .then(function (token) { 865 jtSetHidden($form, fieldName, token); 866 onReady(); 867 }) 868 .catch(function () { 869 showFail('Verifikasi gagal, coba lagi'); 870 }); 871 }); 872 }).catch(function () { 873 showFail('Verifikasi gagal dimuat, refresh halaman'); 874 }); 875 } 876 877 function jtWithRecaptchaRegisterToken($form, $status, onReady) { 878 jtWithRecaptchaToken($form, $status, 'register', jtNeedRecaptchaRegister($form), onReady, undefined, undefined, 'recaptcha_register_token'); 879 } 880 881 function jtWithRecaptchaLoginToken($form, $status, onReady, onF
881ail) { 882 jtWithRecaptchaToken($form, $status, 'login', jtNeedRecaptchaLogin($form), onReady, '', onFail, 'recaptcha_login_token'); 883 } 884 885 function jtSetHidden($form, name, value) { 886 var $el = $form.find('input[name="' + name + '"]'); 887 if ($el.length === 0) { 888 $form.append('<input type="hidden" name="' + name + '" value="">'); 889 $el = $form.find('input[name="' + name + '"]'); 890 } 891 $el.val(value); 892 } 893 894 function jtWithTurnstileAction($form, actionName, needFlag, onReady) { 895 if (!needFlag || typeof window.turnst !== 'function') { 896 onReady(); 897 return; 898 } 899 window.turnst(actionName).then(function (fpResult) { 900 jtSetHidden($form, 'fp_event_id', (fpResult && fpResult.eventId) || ''); 901 jtSetHidden($form, 'fp_visitor_id', (fpResult && fpResult.visitorId) || ''); 902 onReady(); 903 }).catch(function () { 904 jtSetHidden($form, 'fp_event_id', ''); 905 jtSetHidden($form, 'fp_visitor_id', ''); 906 onReady(); 907 }); 908 } 909 910 function jtWithTurnstileRegister($form, onReady) { 911 jtWithTurnstileAction($form, 'account_create', window.JT_NEED_TURNSTILE_REGISTER, onReady); 912 } 913 914 function jtWithTurnstileLogin($form, onReady) { 915 jtWithTurnstileAction($form, 'account_login', window.JT_NEED_TURNSTILE_LOGIN, onReady); 916 } 917 918 var _jtIframePending = null; 919 920 function jtShowIframeCaptcha(isMobile, onReady, onCancelMsg) { 921 if (!window.JT_NEED_IFRAME_CAPTCHA) { 922 onReady(); 923 return; 924 } 925 var modalId = isMobile ? '#captchaModalMobile' : '#captchaModalDesktop'; 926 var $modal = $(modalId); 927 if ($modal.length === 0) { 928 onReady(); 929 return; 930 } 931 _jtIframePending = { 932 isMobile: !!isMobile, 933 onReady: onReady, 934 onCancelMsg: onCancelMsg || null 935 }; 936 $modal.css('display', 'flex'); 937 } 938 939 function jtWithIframeCaptchaLogin($form, isMobile, onReady, onCancelMsg) { 940 var mode = String($form.find('input[name="iscaptchalogin"]').val() || window.JT_CAPTCHA_LOGIN_MODE || '1'); 941 if (mode !== '2') { 942 onReady(); 943 return; 944 } 945 jtShowIframeCaptcha(isMobile, function (token, key) { 946 jtSetHidden($form, 'token', token || ''); 947 jtSetHidden($form, 'key', key || ''); 948 onReady(); 949 }, onCancelMsg); 950 } 951 952 function jtWithIframeCaptchaRegister($form, isMobile, onReady, onCancelMsg) { 953 var mode = String($form.find('input[name="iscaptcharegister"]').val() || window.JT_CAPTCHA_REGISTER_MODE || '1'); 954 if (mode !== '2') { 955 onReady(); 956 return; 957 } 958 jtShowIframeCaptcha(isMobile, function (token, key) { 959 jtSetHidden($form, 'token', token || ''); 960 jtSetHidden($form, 'key', key || ''); 961 onReady(); 962 }, onCancelMsg); 963 } 964 965 window.addEventListener('message', function (e) { 966 if (e.origin !== 'https://recaptcha.viva88athenae.com') { 967 return; 968 } 969 if (!_jtIframePending) { 970 return; 971 } 972 var pending = _jtIframePending; 973 _jtIframePending = null; 974 975 var dataCaptcha = e.data || {}; 976 var $modal = pending.isMobile ? $('#captchaModalMobile') : $('#captchaModalDesktop'); 977 $modal.css('display', 'none'); 978 979 if (dataCaptcha.verified !== true) { 980 if (typeof pending.onCancelMsg === 'function') { 981 pending.onCancelMsg('Verifikasi Kosong'); 982 } 983 return; 984 } 985 986 if (typeof pending.onReady === 'function') { 987 pending.onReady(dataCaptcha.token || '', dataCaptcha.key || ''); 988 } 989 }); 990 </script>
990 991 992 993<style> 994 .btn-tele { 995 text-shadow: 1px 1px #000000; 996 height: 36px!important; 997 border-radius: 8px; 998 background: #28323C; 999 color: white; 1000 } 1001</style> 1002 1003 1004<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasExampleLabel" style="width: 50%; background: var(--primary-background-color); color: var(--primary-text-color); z-index: 99999"> 1005 <div class="offcanvas-header py-3 d-flex justify-content-between"> 1006 <h5 class="offcanvas-title" id="offcanvasExampleLabel" style="color: var(--menu-item-color); font-size: 1.2rem; font-weight: bold">Kontak Kami</h5> 1007 <button type="button" class="text-reset" style="background: transparent; border: none" data-bs-dismiss="offcanvas" aria-label="Close"><i class="bi bi-x" style="color: var(--primary-text-color); font-size: 20px"></i></button> 1008 </div> 1009 <div class="offcanvas-body p-0 px-2"> 1010 <div class="d-flex flex-column w-100 gap-2"> 1011 1012 1013 1014 <a href="https://t.me/VAVA4D_Support" target='_blank' class="d-flex p-3 w-100 gap-3 rounded" style="background: var(--menu-box-bg, transparent); border: 1px solid var(--menu-box-border-color, rgba(255, 255, 255, 0.06));"> 1015 <div class="fw-bold"><img src="https://img.viva88athenae.com/kontak/telegram.png" width="18" height="18" alt=""></div> 1016 <div style="color: var(--primary-text-color);">VAVA4D OFFICIAL</div> 1017 </a> 1018 1019 1020 1021 1022 1023 <a href="https://bvbsn.com/facebook" target='_blank' class="d-flex p-3 w-100 gap-3 rounded" style="background: var(--menu-box-bg, transparent); border: 1px solid var(--menu-box-border-color, rgba(255, 255, 255, 0.06));"> 1024 <div class="fw-bold"><img src="https://img.viva88athenae.com/kontak/facebook.png" width="18" height="18" alt=""></div> 1025 <div style="color: var(--primary-text-color);">BVBSNGROUP</div> 1026 </a> 1027 1028 1029 1030 1031 1032 <a href="https://wa.me/6281973166312" target='_blank' class="d-flex p-3 w-100 gap-3 rounded" style="background: var(--menu-box-bg, transparent); border: 1px solid var(--menu-box-border-color, rgba(255, 255, 255, 0.06));"> 1033 <div class="fw-bold"><img src="https://img.viva88athenae.com/kontak/whatsapp.png" width="18" height="18" alt=""></div> 1034 <div style="color: var(--primary-text-color);">VAVA4D OFFICIAL</div> 1035 </a> 1036 1037 1038 1039 1040 1041 </div> 1042 1043 </div> 1044</div> 1045 1046 1047 <style> 1048 1049 #mySidenav { 1050 position: fixed; 1051 top: 180px; 1052 right: 100px; 1053 z-index: 999; 1054} 1055 1056#mySidenav div#nav:hover { 1057 left: -138px; 1058} 1059 1060#mySidenav div#nav { 1061 position: absolute; 1062 font-size: 20px; 1063 border-radius: 0 5px 5px 0; 1064 left: 36px; 1065 transition: 0.3s; 1066 display: flex; 1067} 1068 1069#kontak-content { 1070 width: 190px; 1071 padding: 5px 10px 8px 10px; 1072 font-size: 15px; 1073 background-color: #FFF; 1074 color: #000; 1075} 1076 1077</style> 1078 1079 <!-- SIDENAV --> 1080 <div id="mySidenav" class="sidenav desktop-only"> 1081 <div id="nav"> 1082 <div style="display: flex; align-items: start;"> 1083 <div style="height: 246px; width: 64px; background: var(--accent-color); border-radius: 8px 0px 0px 8px; overflow: hidden; box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;"> 1084 1085 <img src="https://img.viva88athenae.com//new/assets/hubungi.png?2" alt="Hubungi Kami"> 1086 1087 </div> 1088 <!--<img id="about" src="/images/kontak.png?4">--> 1089 </div> 1090 <div class="ptsans" style="font-size: 1rem; background: white; border-radius: 0px 5px 5px 5px; overflow: hidden; width: 160px"> 1091 <div id="" style="padding: 4px"> 1092 <img src="/assets/24h.png" style="width: 100%" alt="Layanan 24 Jam"> 1093 </div> 1094 1095 <div id="kontak-content" style="display: flex; flex-direction: column; width: 100%; font-size: .8rem"> 1096 <div style="display: grid; place-items: center; font-weight: bold; font-size: 1rem">MEMBER SERVICE</div> 1097 1098 1099 1100 <a href="https://t.me/VAVA4D_Support" target='_blank' style="padding: 4px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #e0e0e0"> 1101 <img src="https://img.viva88athenae.com/kontak/telegram.png" width="20" height="20" alt=""><span>VAVA4D OFFICIAL</span> 1102 </a> 1103 1104 1105 1106 1107 1108 <a href="https://bvbsn.com/facebook" target='_blank' style="padding: 4px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #e0e0e0"> 1109 <img src="https://img.viva88athenae.com/kontak/facebook.png" width="20" height="20" alt=""><span>BVBSNGROUP</span> 1110 </a> 1111 1112 1113 1114 1115 1116 <a href="https://wa.me/6281973166312" target='_blank' style="padding: 4px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid #e0e0e0"> 1117 <img src="https://img.viva88athenae.com/kontak/whatsapp.png" width="20" height="20" alt=""><span>VAVA4D OFFICIAL</span> 1118 </a> 1119 1120 1121 1122 1123 1124 </div> 1125 <div style="margin: 8px"> 1126 <a href="/register"><input type="button" value="DAFTAR SEKARANG" style="width: 100%; border-radius: 5px; font-size: .875rem!important; height: 40px; border: none; font-weight: bold; background: black; color: white"></a> 1127 </div> 1128 </div> 1129 </div> 1130 </div> 1131 1132 1133 1134 1135 <div class="d-none d-md-block px-2"> 1136 1137 1138 <div class="section desktop-topbar d-flex align-items-center justify-content-between"> 1139 <div class="d-flex align-items-center gap-4"> 1140 1141 </div> 1142 1143 1144 <!-- Desktop Login Start --> 1145 1146 <style> 1147 1148 .login-form { 1149 display: flex; 1150 align-items: center; 1151 justify-content: end; 1152 gap: 4px; 1153 } 1154 1155 .btn-masuk { 1156 background: linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49) !important; 1157 color: white; 1158 } 1159 1160 .btn-daftar { 1161 background: linear-gradient(#74cae3, #5bc0de 60%, #4ab9db); !important; 1162 color: white; 1163 } 1164 1165 .btn-google { 1166 width: 30px; 1167 height: 30px; 1168 background: #fff; 1169 border: 1px solid #ddd; 1170 border-radius: 3px; 1171 display: inline-flex; 1172 align-items: center; 1173 justify-content: center; 1174 } 1175 1176 .btn-google:hover { 1177 background: #f5f5f5; 1178 } 1179 1180 .btn-google-mobile { 1181 background: #fff; 1182 color: #3c4043; 1183 border: 1px solid #dadce0; 1184 border-radius: 3px; 1185 height: 36px; 1186 padding: 0 12px; 1187 font-weight: 600; 1188 font-size: 1.2rem; 1189 display: flex; 1190 align-items: center; 1191 justify-content: center; 1192 gap: 8px; 1193 } 1194 1195 .btn-google-mobile:hover { 1196 background: #f8f9fa; 1197 color: #202124; 1198 } 1199 1200 </style> 1201 1202 <div class="d-flex align-items-center gap-2"> 1203 <div id="desktoplogin" class="desktop-only"> 1204 <form class="login-form form" role="form"> 1205 <div id="msgbox" style="margin-right: 8px; color: #b29459; font-size: 1rem; white-space:nowrap;"></div> 1206 <div class="input-group login-field">
1207 <span class="input-group-text prepend mobile-only "><div class="h-100 center"><i class="bi bi-person-circle prepend-icon"></i></div></span> 1208 <input type="text" name="username" class="form-control login-input-field username" placeholder="Nama Akun" aria-label="Username"> 1209 </div> 1210 1211 1212 1213 <div class="input-group login-field"> 1214 <span class="input-group-text mobile-only prepend"><div class="h-100 center"><i class="bi bi-shield-lock-fill prepend-icon"></i></div></span> 1215 <input type="password" name="password" class="form-control login-input-field password" placeholder="Kata Sandi" aria-label="Password"> 1216 </div> 1217 1218 <!-- captcha --> 1219 1220 <div class="verifikasiform" style=""> 1221 <div style="display: flex; gap: 2px;"> 1222 <span id="verifikasi"><img src="/capimg.php" width="40" height="30" style="border:1px #999 solid;" alt="Kode verifikasi"></span> 1223 <input type="text" class="form-control login-field" name="verifikasi" id="verform" style="width:40px;height: 30px !important" autocomplete="off" aria-label="Kode verifikasi"> 1224 </div> 1225 1226 </div> 1227 <input type="hidden" name="verif" id="verifval" class="verifval" value="1"> 1228 1229 <!-- end captcha --> 1230 1231 1232 <!--<button value="Masuk" class="btn btn-masuk fw-bold p-0 px-2 submit">Masuk</button>--> 1233 <button type="button" class="btn btn-masuk fw-bold p-0 px-2 submit d-flex justify-content-center align-items-center">Masuk</button> 1234 <button type="button" class="btn btn-daftar btn-daftar-desktop fw-bold p-0 px-2 desktop-only" onclick="openRegister('desktop')">Daftar</button> 1235 1236 <input type="hidden" name="task" value="login"> 1237 <input type="hidden" name="iscaptchalogin" value="1"> 1238 <input type="hidden" name="isrecaptchalogin" value="0"> 1239 <input type="hidden" name="recaptcha_login_token" value=""> 1240 <input type="hidden" name="fp_event_id" value=""> 1241 <input type="hidden" name="fp_visitor_id" value=""> 1242 <input type="hidden" name="logindesktop" value="++xallHkXxsruE8sljIIM8eJRvgRmYEi8zhEvgVzcjY="> 1243 </form> 1244 1245 1246
1246<script> 1247 function jtRandomString(length) { 1248 var result = ''; 1249 var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 1250 1251 for (var i = 0; i < length; i++) { 1252 result += characters.charAt(Math.floor(Math.random() * characters.length)); 1253 } 1254 1255 return result; 1256 } 1257 1258 function jtGetCaptchaHtml(captchaPath, captchaStyle) { 1259 var r = Math.floor(Math.random() * 10000); 1260 return '<img src="' + captchaPath + '?' + r + '" ' + captchaStyle + ' alt="Kode verifikasi">'; 1261 } 1262 1263 function jtHandleLoginResponse(res, $root, verHtml) { 1264 var $msg = $root.find('#msgbox'); 1265 1266 var code = res && res.error && res.error.code; 1267 var msg = res && res.error && res.error.message; 1268 var data = (res && res.data) || {}; 1269 1270 if (code === 200 && msg === 'success') { 1271 toast('Login berhasil', 200); 1272 $msg.removeClass().text('Logging in').fadeTo(900, 1, function() { 1273 window.location = '/home'; 1274 }); 1275 return; 1276 } 1277 1278 if (code === 429 || msg === 'ratelimit') { 1279 $msg.removeClass().text('Terlalu banyak percobaan.').fadeIn(1000); 1280 } else if (msg === 'wrong') { 1281 $msg.removeClass().text('Salah Password').fadeIn(1000); 1282 $root.find('#verifikasi').html(verHtml); 1283 } else if (msg === 'banned') { 1284 $msg.removeClass().text('User di Banned').fadeIn(1000); 1285 $root.find('#verifikasi').html(verHtml); 1286 } else if (msg === 'empty') { 1287 $msg.removeClass().text('Silakan diisi').fadeIn(1000); 1288 } else if (msg === 'capempty') { 1289 $msg.removeClass().text('Verifikasi Kosong').fadeIn(1000); 1290 $root.find('#verifikasi').html(verHtml); 1291 } else if (msg === 'caperror') { 1292 $msg.removeClass().text('Verifikasi Salah').fadeIn(1000); 1293 $root.find('#verifikasi').html(verHtml); 1294 } else if (msg === 'recaperror') { 1295 $msg.removeClass().text('Recaptcha salah, coba lagi').fadeIn(1000); 1296 } else if (msg === 'iperror') { 1297 $msg.removeClass().text('IP Tidak Sesuai').fadeIn(1000); 1298 $root.find('#verifikasi').html(verHtml); 1299 } else if (msg === 'capexp') { 1300 $msg.removeClass().text('Captcha Expired').fadeIn(1000); 1301 $root.find('#verifikasi').html(verHtml); 1302 } else if (msg === 'cap') { 1303 $msg.removeClass().text('Isi Verifikasi').fadeIn(1000); 1304 $root.find('#verifikasi').html(verHtml); 1305 $root.find('.verifikasiform, #mverifikasiform').show(); 1306 $root.find('.verifval').val('1'); 1307 } else if (msg === 'turnnoevent') { 1308 window.location.reload(); 1309 } else if (msg === 'turnblock') { 1310 $msg.removeClass().text('Insecure Device').fadeIn(1000); 1311 } else { 1312 $msg.removeClass().text('Login gagal, coba lagi').fadeIn(1000); 1313 $root.find('#verifikasi').html(verHtml); 1314 } 1315 } 1316 1317 function jtSubmitLogin(rootSel, captchaPath, captchaStyle) { 1318 var $root = $(rootSel); 1319 var $form = $root.find('form.form'); 1320 1321 if ($form.length === 0) { 1322 $form = $root.find('.form'); 1323 } 1324 1325 if ($form.length === 0) { 1326 console.error('Login form not found:', rootSel); 1327 return false;
1328 } 1329 1330 var $submitBtn = $root.find('.submit'); 1331 var $msg = $root.find('#msgbox'); 1332 var verHtml = jtGetCaptchaHtml(captchaPath, captchaStyle); 1333 var isMobile = (rootSel.indexOf('mobile') !== -1); 1334 1335 $msg.removeClass().text('Validating').fadeIn(1000); 1336 1337 $submitBtn.prop('disabled', true).addClass('disabled'); 1338 1339 function unlockSubmit() { 1340 $submitBtn.prop('disabled', false).removeClass('disabled'); 1341 } 1342 1343 function doLoginPost() { 1344 $.ajax({ 1345 url: '/api/front/login', 1346 type: 'POST', 1347 data: $form.serialize(), 1348 dataType: 'json', 1349 headers: { 'X-CSRF-Token': window.JT_CSRF_TOKEN || '' }, 1350 success: function(data) { 1351 jtHandleLoginResponse(data, $root, verHtml); 1352 } 1353 }) 1354 .fail(function() { 1355 $msg.removeClass().text('Koneksi gagal').fadeIn(1000); 1356 $root.find('#verifikasi').html(verHtml); 1357 }) 1358 .always(unlockSubmit); 1359 } 1360 1361 function afterTurnstile() { 1362 if (typeof jtWithRecaptchaLoginToken === 'function') { 1363 jtWithRecaptchaLoginToken($form, $msg, doLoginPost, unlockSubmit); 1364 } else { 1365 doLoginPost(); 1366 } 1367 } 1368 1369 function afterIframe() { 1370 if (typeof jtWithTurnstileLogin === 'function') { 1371 jtWithTurnstileLogin($form, afterTurnstile); 1372 } else { 1373 afterTurnstile(); 1374 } 1375 } 1376 1377 if (typeof jtWithIframeCaptchaLogin === 'function') { 1378 jtWithIframeCaptchaLogin($form, isMobile, afterIframe, function (msgText) { 1379 $msg.removeClass().text(msgText || 'Verifikasi Kosong').fadeIn(1000); 1380 unlockSubmit(); 1381 }); 1382 } else { 1383 afterIframe(); 1384 } 1385 1386 return false; 1387 } 1388 1389 // Login desktop 1390 $(document).on('click', '#desktoplogin .submit', function(e) { 1391 e.preventDefault(); 1392 1393 jtSubmitLogin( 1394 '#desktoplogin', 1395 '/capimg.php', 1396 'width="40" height="30" style="border:1px #999 solid;"' 1397 ); 1398 1399 return false;
1400 }); 1401 1402 // Login mobile 1403 $(document).on('click', '#mobilelogin .submit', function(e) { 1404 e.preventDefault(); 1405 1406 jtSubmitLogin( 1407 '#mobilelogin', 1408 '/mcapimg.php', 1409 'width="600" height="88" style="width:100%;height:auto;border-radius:5px;"' 1410 ); 1411 1412 return false; 1413 }); 1414 1415 // Tekan Enter utk login 1416 $(document).on('keypress', '#desktoplogin input, #mobilelogin input', function(e) { 1417 if (e.which === 13) { 1418 e.preventDefault(); 1419 1420 var $root = $(this).closest('#desktoplogin, #mobilelogin'); 1421 1422 if ($root.attr('id') === 'desktoplogin') { 1423 $('#desktoplogin .submit').trigger('click'); 1424 } else { 1425 $('#mobilelogin .submit').trigger('click'); 1426 } 1427 1428 return false; 1429 } 1430 }); 1431 1432 function jtEnsureDriver(done) { 1433 if (window.driver && window.driver.js) { 1434 done(); 1435 return; 1436 } 1437 if (window._jtDriverLoading) { 1438 window._jtDriverLoading.push(done); 1439 return; 1440 } 1441 window._jtDriverLoading = [done]; 1442 1443 var link = document.createElement('link'); 1444 link.rel = 'stylesheet'; 1445 link.href = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/driver.css'; 1446 link.integrity = 'sha384-eyrYgcjChmzD338JTHFZssgJHOqqOZbajet8yZpCw8ESroLDi28BarMEKCImNGHC'; 1447 link.crossOrigin = 'anonymous'; 1448 document.head.appendChild(link); 1449 1450 var s = document.createElement('script'); 1451 s.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/driver.js.iife.js'; 1452 s.integrity = 'sha384-BhR06AMz62Xn0o53z8itVS1vw4JslNckRFgOTa6/Dob0Agdmbbh8Dr9sDO2h18TO'; 1453 s.crossOrigin = 'anonymous'; 1454 s.onload = function () { 1455 var q = window._jtDriverLoading || []; 1456 window._jtDriverLoading = null; 1457 q.forEach(function (fn) { 1458 try { fn(); } catch (e) {} 1459 }); 1460 }; 1461 s.onerror = function () { 1462 window._jtDriverLoading = null; 1463 }; 1464 document.head.appendChild(s); 1465 } 1466 1467 function scrollToLoginForm() { 1468 if (typeof jtWarmAuthScripts === 'function') jtWarmAuthScripts(); 1469 var isDesktop = window.innerWidth >= 992; 1470 var formEl = document.getElementById(isDesktop ? 'desktoplogin' : 'mobilelogin'); 1471 1472 if (!formEl) { 1473 return; 1474 } 1475 1476 formEl.scrollIntoView({ 1477 behavior: 'smooth', 1478 block: 'center' 1479 }); 1480 1481 setTimeout(function() { 1482 var inp = formEl.querySelector('input[type="text"], input[name="username"], input[name="BOX_username"]'); 1483 1484 if (inp) { 1485 inp.focus(); 1486 } 1487 1488 if (!inp) { 1489 return; 1490 } 1491 1492 jtEnsureDriver(function () { 1493 if (!window.driver || !window.driver.js) { 1494 return; 1495 } 1496 1497 var driver = window.driver.js.driver({ 1498 popoverClass: 'driverjs-theme', 1499 showProgress: false, 1500 showButtons: [], 1501 overlayOpacity: 0.3, 1502 steps: [ 1503 { 1504 element: inp, 1505 popover: { 1506 title: 'Harap Login', 1507 description: 'Silakan masukkan username Anda', 1508 side: 'bottom', 1509 align: 'start', 1510 showButtons: [], 1511 nextBtnText: '', 1512 prevBtnText: '', 1513 doneBtnText: '' 1514 } 1515 } 1516 ], 1517 onDestroyStarted: () => driver.destroy(), 1518 }); 1519 driver.drive(); 1520 1521 var destroyDriver = function() { 1522 driver.destroy(); 1523 inp.removeEventListener('input', destroyDriver); 1524 inp.removeEventListener('click', destroyDriver); 1525 inp.removeEventListener('focus', destroyDriver); 1526 }; 1527 inp.addEventListener('input', destroyDriver, { once: true }); 1528 inp.addEventListener('click', destroyDriver, { once: true }); 1529 inp.addEventListener('focus', destroyDriver, { once: true }); 1530 }); 1531 }, 400); 1532 } 1533 1534 window.JT_LOGGED_IN = false;
1535 1536 if (sessionStorage.getItem('jt_pending_action')) { 1537 $(document).ready(function() { 1538 scrollToLoginForm(); 1539 }); 1540 } 1541 </script>
1541 1542 1543 </div> 1544 1545 1546 <!--<a href="/event">--> 1547 <!-- <img src="https://img.viva88athenae.com//btnevent.png" alt="EVENT" height="24px"/>--> 1548 <!--</a>--> 1549 </div> 1550 1551 <!-- Desktop Login End --> 1552 </div> 1553 1554 <div class="desktop-topbar-line"></div> 1555 1556 1557 1558 1559 <div class="desktop-topbar-line d-flex align-items-center justify-content-between" style="margin-left:-2.0rem;margin-right:-2.0rem"></div> 1560 1561 <nav class="section desktop-mainnav d-flex align-items-center"> 1562 <!-- <a class="navbar-brand me-2 flex-shrink-0 navbar-brand-guest" href="/home" onclick="content('/home.php','#content',this); return false;"> --> 1563 <a class="navbar-brand me-2 flex-shrink-0" href="/home" onclick="openPage('home'); return false;"> 1564 <img src="/images/logo.png?v=1790436336" alt="Logo" class="logo"> 1565 </a> 1566 <div class="d-flex align-items-stretch h-100 ms-auto" style="overflow-x:auto;scrollbar-width:none;"> 1567 <a href="/home" 1568 onclick="openPage('home',this); return false;" class="desktop-nav-link" 1569 data-nav="home"> 1570 <img src="https://img.viva88athenae.com/new/menu-home.png?v=1790436336" alt=""> 1571 <span>Home</span> 1572 </a> 1573 <a href="/togel" 1574 onclick="window.JT_LOGGED_IN ? content('/togel.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'togel'})), scrollToLoginForm()); return false;" class="desktop-nav-link" 1575 data-nav="togel"> 1576 <img src="https://img.viva88athenae.com/new/menu-togel.png?v=1790436336" alt=""> 1577 <span>Togel</span> 1578 </a> 1579 <a href="/slot" 1580 onclick="showProviders('slot',this); return false;" class="desktop-nav-link" 1581 data-nav="slot"> 1582 <img src="https://img.viva88athenae.com/new/menu-slot.png?v=1790436336" alt=""> 1583 <span>Slot</span> 1584 </a> 1585 <a href="/casino" 1586 onclick="showProviders('casino',this); return false;" class="desktop-nav-link" 1587 data-nav="casino"> 1588 <img src="https://img.viva88athenae.com/new/menu-casino.png?v=1790436336" alt=""> 1589 <span>Casino</span> 1590 </a> 1591 <a href="/sport" 1592 onclick="openPage('sport',this); return false;" class="desktop-nav-link" 1593 data-nav="sport"> 1594 <img src="https://img.viva88athenae.com/new/menu-sport.png?v=1790436336" alt=""> 1595 <span>Sport</span> 1596 </a> 1597 <a href="/sabung" 1598 onclick="openPage('sabung',this); return false;" class="desktop-nav-link" 1599 data-nav="sabung"> 1600 <img src="https://img.viva88athenae.com/new/menu-sabung.png?v=1790436336" alt="">
1601 <span>Sabung</span> 1602 </a> 1603 <a href="/arcade" 1604 onclick="showProviders('arcade',this); return false;" class="desktop-nav-link" 1605 data-nav="arcade"> 1606 <img src="https://img.viva88athenae.com/new/menu-arcade.png?v=1790436336" alt=""> 1607 <span>Arcade</span> 1608 </a> 1609 <a href="/interactive" 1610 onclick="showProviders('interactive',this); return false;" class="desktop-nav-link" 1611 data-nav="interactive"> 1612 <img src="https://img.viva88athenae.com/new/menu-interactive.png?v=1790436336" alt=""> 1613 <span>Interactive</span> 1614 </a> 1615 <a href="/kupon" 1616 onclick="window.JT_LOGGED_IN ? content('/kupon.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'kupon'})), scrollToLoginForm()); return false;" class="desktop-nav-link" 1617 data-nav="kupon"> 1618 <img src="https://img.viva88athenae.com/new/menu-kupon.png?v=1790436336" alt=""> 1619 <span>Kupon</span> 1620 </a> 1621 <a href="/promosi" 1622 onclick="openPage('promosi',this); return false;" class="desktop-nav-link" 1623 data-nav="promosi"> 1624 <img src="https://img.viva88athenae.com/new/menu-promo.png?v=1790436336" alt=""> 1625 <span>Promosi</span> 1626 </a> 1627 <a href="/event" 1628 onclick="openPage('event',this); return false;" class="desktop-nav-link" 1629 data-nav="event"> 1630 <img src="https://img.viva88athenae.com/new/menu-event.png?v=1790436336" alt=""> 1631 <span>Event</span> 1632 </a> 1633 </div> 1634 </nav> 1635 1636 </div> 1637 <!-- WHEEL --> 1638 <!-- WHEEL --> 1639 1640 1641 1642 <nav class="navbar px-3 d-md-none" style="z-index: 1046"> 1643 <div class="w-100 d-flex justify-content-between align-items-center ps-3"> 1644 <a class="navbar-brand" href="/home" onclick="content('/home.php','#content',this); return false;"> 1645 <img src="/images/logo.png?v=1790436336" alt="Logo" class="logo"> 1646 </a> 1647 <div class="d-flex align-items-center gap-2 pe-2"> 1648 <button class="btn btn-transparent py-0 px-2" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight" aria-label="Menu kontak"> 1649 <i class="bi bi-person-lines-fill" style="font-size: 20px; color: var(--primary-text-color)" aria-hidden="true"></i> 1650 </button> 1651 </div> 1652 </div> 1653 </div> 1654 </nav> 1655 1656 1657 1658 1659 1660 1661<style> 1662 1663 .banner { 1664 aspect-ratio: 1920 / 380; 1665 width: 100%; 1666 object-fit: cover; 1667 background: black 1668 } 1669 1670 @media only screen and (max-width: 1000px) { 1671 1672 .banner { 1673 aspect-ratio: 600 / 300; 1674 } 1675 1676 } 1677 1678</style> 1679 1680<div class="carousel slide" id="banner-carousel" data-bs-ride="carousel"> 1681 <div class="carousel-indicators"> 1682 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> 1683 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="1" aria-label="Slide 2"></button> 1684 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="2" aria-label="Slide 3"></button> 1685 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="3" aria-label="Slide 4"></button> 1686 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="4" aria-label="Slide 5"></button> 1687 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="5" aria-label="Slide 6"></button> 1688 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="6" aria-label="Slide 7"></button> 1689 <button type="button" data-bs-target="#banner-carousel" data-bs-slide-to="7" aria-label="Slide 8"></button> 1690 </div> 1691 <div class="carousel-inner" style="height: 100%"> 1692 <div class="carousel-item active" style="height: 100%"> 1693 1694 <a > 1695 1696 <img 1697 src="/images/upload-Slides-20260402061635.jpg" 1698 class="d-block w-100 banner" 1699 alt="APK & TELE VAVA4D" 1700 fetchpriority="high" > 1701 1702 </a> 1703 1704 </div> 1705 <div class="carousel-item " style="height: 100%"> 1706 1707 <a > 1708 1709 <img 1710 src="/images/upload-Slides-20260331053406.jpg" 1711 class="d-block w-100 banner" 1712 alt="WASPADA PHISING " 1713 > 1714 1715 </a> 1716 1717 </div> 1718 <div class="carousel-item " style="height: 100%"> 1719 1720 <a > 1721 1722 <img 1723 src="/images/upload-Slides-20260123202553.jpg" 1724 class="d-block w-100 banner" 1725 alt="VAVA4D EXCLUSIVE MYSTERY BOX" 1726 > 1727 1728 </a> 1729 1730 </div> 1731 <div class="carousel-item " style="height: 100%"> 1732 1733 <a > 1734 1735 <img 1736 src="/images/upload-Slides-20260331050506.jpg" 1737 class="d-block w-100 banner" 1738 alt="DEPOSIT CEPAT HITUNGAN DETIK VAVA4D" 1739 > 1740 1741 </a> 1742 1743 </div> 1744 <div class="carousel-item " style="height: 100%"> 1745 1746 <a > 1747 1748 <img 1749 src="/images/upload-Slides-20260725234426.jpg" 1750 class="d-block w-100 banner" 1751 alt="MERCHANDISE JERSEY TIMNAS" 1752 > 1753 1754 </a> 1755 1756 </div> 1757 <div class="carousel-item " style="height: 100%"> 1758 1759 <a > 1760 1761 <img 1762 src="/images/upload-Slides-20230925114115.jpg" 1763 class="d-block w-100 banner" 1764 alt="Fitul Togel Terbaru" 1765 > 1766 1767 </a> 1768 1769 </div> 1770 <div class="carousel-item " style="height: 100%"> 1771 1772 <a > 1773 1774 <img 1775 src="https://img.viva88athenae.com/banner/mgl-25.jpg" 1776 class="d-block w-100 banner" 1777 alt="" 1778 > 1779 1780 </a> 1781 1782 </div> 1783 <div class="carousel-item " style="height: 100%"> 1784 1785 <a > 1786 1787 <img 1788 src="https://img.viva88athenae.com/banner/slider-fgs.jpg" 1789 class="d-block w-100 banner" 1790 alt="" 1791 > 1792 1793 </a> 1794 1795 </div> 1796 </div> 1797</div> 1798 1799 <div class="section marquee-bar"> 1800 <div class="marquee-date ps-2">
1801 <span id="datetime"></span> 1802 <i class="bi bi-volume-up-fill ms-1 secondary-text-color"></i> 1803 </div> 1804 <div class="marquee-text"> 1805 <div class="marquee-runner" id="marqueeRunner"> 1806 <span>Hati-hati Penipuan link VAVA4D - Link Alternatif VAVA4D ASLI hanya : hey.link/vava </span> 1807 </div> 1808 </div> 1809 </div> 1810 1811 <div class="p-2"> 1812 <div class="d-md-none"> 1813 <div id="lobbyMenuWrap" class="splide pb-4 mt-2"> 1814 <div class="splide__track"> 1815 <ul class="splide__list"> 1816 <li class="splide__slide"> 1817 <a href="/home" 1818 onclick="openPage('home',this); return false;" 1819 class="lobby-menu" 1820 data-nav="home"> 1821 <img src="https://img.viva88athenae.com/new/menu-home.png?v=1790436336" alt=""> 1822 <small>Home</small> 1823 </a> 1824 </li> 1825 <li class="splide__slide"> 1826 <a href="/togel" 1827 onclick="window.JT_LOGGED_IN ? content('/togel.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'togel'})), scrollToLoginForm()); return false;" 1828 class="lobby-menu" 1829 data-nav="togel"> 1830 <img src="https://img.viva88athenae.com/new/menu-togel.png?v=1790436336" alt=""> 1831 <small>Togel</small> 1832 </a> 1833 </li> 1834 <li class="splide__slide"> 1835 <a href="/kupon" 1836 onclick="window.JT_LOGGED_IN ? content('/kupon.php','#content',this) : (sessionStorage.setItem('jt_pending_action', JSON.stringify({type:'kupon'})), scrollToLoginForm()); return false;" 1837 class="lobby-menu" 1838 data-nav="kupon"> 1839 <img src="https://img.viva88athenae.com/new/menu-kupon.png?v=1790436336" alt=""> 1840 <small>Kupon</small> 1841 </a> 1842 </li> 1843 <li class="splide__slide"> 1844 <a href="/slot" 1845 onclick="showProviders('slot',this); return false;" 1846 class="lobby-menu" 1847 data-nav="slot"> 1848 <img src="https://img.viva88athenae.com/new/menu-slot.png?v=1790436336" alt=""> 1849 <small>Slot</small> 1850 </a> 1851 </li> 1852 <li class="splide__slide"> 1853 <a href="/casino" 1854 onclick="showProviders('casino',this); return false;" 1855 class="lobby-menu" 1856 data-nav="casino"> 1857 <img src="https://img.viva88athenae.com/new/menu-casino.png?v=1790436336" alt=""> 1858 <small>Casino</small> 1859 </a> 1860 </li> 1861 <li class="splide__slide"> 1862 <a href="/sport" 1863 onclick="openPage('sport',this); return false;" 1864 class="lobby-menu" 1865 data-nav="sport"> 1866 <img src="https://img.viva88athenae.com/new/menu-sport.png?v=1790436336" alt=""> 1867 <small>Sport</small> 1868 </a> 1869 </li> 1870 <li class="splide__slide"> 1871 <a href="/sabung" 1872 onclick="openPage('sabung',this); return false;" 1873 class="lobby-menu" 1874 data-nav="sabung"> 1875 <img src="https://img.viva88athenae.com/new/menu-sabung.png?v=1790436336" alt=""> 1876 <small>Sabung</small> 1877 </a> 1878 </li> 1879 <li class="splide__slide"> 1880 <a href="/arcade" 1881 onclick="showProviders('arcade',this); return false;" 1882 class="lobby-menu" 1883 data-nav="arcade"> 1884 <img src="https://img.viva88athenae.com/new/menu-arcade.png?v=1790436336" alt=""> 1885 <small>Arcade</small> 1886 </a> 1887 </li> 1888 <li class="splide__slide"> 1889 <a href="/interactive" 1890 onclick="showProviders('interactive',this); return false;" 1891 class="lobby-menu" 1892 data-nav="interactive"> 1893 <img src="https://img.viva88athenae.com/new/menu-interactive.png?v=1790436336" alt=""> 1894 <small>Interactive</small> 1895 </a> 1896 </li> 1897 </ul> 1898 </div> 1899 </div> 1900 </div> 1901 1902
1902<script> 1903 document.addEventListener('DOMContentLoaded', function () { 1904 var lobbyEl = document.getElementById('lobbyMenuWrap'); 1905 if (lobbyEl && !lobbyEl.classList.contains('is-initialized')) { 1906 var mountLobby = function () { 1907 if (!lobbyEl || typeof Splide === 'undefined' || lobbyEl.classList.contains('is-initialized')) return; 1908 new Splide('#lobbyMenuWrap', { 1909 type: 'slide', perPage: 5, perMove: 5, 1910 gap: '8px', pagination: true, arrows: false, drag: true, 1911 }).mount(); 1912 }; 1913 if (typeof ensureSplide === 'function') { 1914 ensureSplide().then(mountLobby).catch(function () {}); 1915 } else { 1916 mountLobby(); 1917 } 1918 } 1919 1920 if (typeof initUserareaShell === 'function') { 1921 initUserareaShell(); 1922 } else if (typeof initGuestShell === 'function') { 1923 initGuestShell(); 1924 } else if (typeof content === 'function') { 1925 var isDesktop = window.innerWidth >= 768; 1926 var homeMenu = isDesktop 1927 ? document.querySelector('.desktop-nav-link[data-nav="home"]') 1928 : document.querySelector('#lobbyMenuWrap .lobby-menu[data-nav="home"]'); 1929 content('/home.php', '#content', homeMenu); 1930 } 1931 }); 1932 </script>
1932 1933 </div> 1934 1935 1936 <!-- Mobile Login Start --> 1937 1938 <div id="mobilelogin" class="d-block d-lg-none mb-3"> 1939 <form class="login-form form d-flex flex-column gap-2 align-items-center" style="padding: 0px; padding-top: 16px" role="form"> 1940 <div id="msgbox" style="font-size: 1rem; width: 100%"></div> 1941 <div class="input-group login-field"> 1942 <span class="input-group-text prepend mobile-only "><div class="h-100 center"><i class="bi bi-person-circle prepend-icon"></i></div></span> 1943 <input type="text" name="username" class="form-control login-input-field username" placeholder="Username" aria-label="Username"> 1944 </div> 1945 <div class="input-group login-field"> 1946 <span class="input-group-text mobile-only prepend"><div class="h-100 center"><i class="bi bi-shield-lock-fill prepend-icon"></i></div></span> 1947 <input type="password" name="password" class="form-control login-input-field password" placeholder="Password" aria-label="Password"> 1948 </div> 1949 1950 <!-- captcha --> 1951 1952 <div id="mverifikasiform" class="w-100" style=""> 1953 1954 <span id="verifikasi"><img src="/mcapimg.php" width="600" height="88" style="width:100%;height:auto;border-radius: 5px;" alt="Kode verifikasi"></span> 1955 <div class="input-group login-field mt-1"> 1956 <span class="input-group-text mobile-only prepend"><div class="h-100 center"><i class="bi bi-person-fill-check prepend-icon"></i></div></span> 1957 <input type="text" class="form-control login-input-field" name="verifikasi" id="mverform" autocomplete="off" placeholder="Verifikasi"> 1958 </div> 1959 </div> 1960 1961 <input type="hidden" name="verif" id="verifval" class="verifval" value="1"> 1962 1963 <!-- end captcha --> 1964 1965 <label style="font-size:12px;display:flex;align-items:center;margin-top:2px;margin-bottom:4px;cursor:pointer;"> 1966 <input class="login-field" type="checkbox" id="rememberMe" name="remember" style="margin-right:4px;width:12px;height:12px;cursor:pointer;"> <span style="white-space: nowrap;">Remember Me</span> 1967 </label> 1968 1969 <!--<button type="submit" value="Masuk" class="btn btn-masuk fw-bold p-0 px-2 submit">Masuk</button>--> 1970 <button type="button" class="btn btn-masuk fw-bold p-0 px-2 submit w-100 d-flex justify-content-center align-items-center" style="height: 36px; border-radius: 8px">Masuk</button> 1971 <button type="button" class="btn btn-daftar btn-info btn-daftar-mobile fw-bold p-0 px-2 mobile-only" onclick="openDaftarMobile()">Daftar Sekarang</button> 1972 1973 1974 <button type="button" class="btn btn-tele fw-bold p-0 px-2 mobile-only" onclick="window.open('https://telegram.me/vava4d_bot', '_blank')"><i class="bi bi-telegram me-2" style="color: #0088cc"></i>Main di Telegram</button> 1975 1976 1977 <input type="hidden" name="task" value="login"> 1978 <input type="hidden" name="iscaptchalogin" value="1"> 1979 <input type="hidden" name="isrecaptchalogin" value="0"> 1980 <input type="hidden" name="recaptcha_login_token" value=""> 1981 <input type="hidden" name="fp_event_id" value=""> 1982 <input type="hidden" name="fp_visitor_id" value=""> 1983 <input type="hidden" name="loginmobile" value="DzXTrNjavKQ4o2iIC925HBtf2D7Nmpmjl1COVBHexeE="> 1984 </form> 1985 1986 1987 <a href="/wap" class="mt-4" style="display: grid; place-items: center; font-size: 1rem; cursor: pointer; color: var(--menu-item-color)">WAP</a> 1988 1989 </div> 1990 1991 <!-- Mobile Login End --> 1992 1993
1993<script> 1994 function openDaftar() { 1995 if (typeof openRegister === 'function') { 1996 openRegister('desktop'); 1997 } else { 1998 window.location.href = '/register'; 1999 } 2000 } 2001 2002 function openDaftarMobile() { 2003 if (typeof openRegister === 'function') { 2004 openRegister('mobile'); 2005 $("#content").get(0).scrollIntoView({behavior: 'smooth'}); 2006 } else { 2007 window.location.href = '/register'; 2008 } 2009 } 2010 2011 2012 </script>
2012 2013 2014 2015 <div class="modal fade" id="modal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> 2016 <div class="modal-dialog modal-dialog-centered modal-lg modal-fullscreen-sm-down"> 2017 <div id="modal-content" class="modal-content rounded-0 primary-background-color"> 2018 </div> 2019 </div> 2020 </div> 2021 2022 <div id="content" class="section p-2" style="position:relative;min-height:60vh;"></div> 2023 2024 2025<!-- Transaksi Start --> 2026 2027 2028 2029<style> 2030 2031 .transaksi-group { 2032 display: grid; 2033 grid-template-columns: 458px 1fr; 2034 justify-content: space-between; 2035 grid-template-areas: 2036 "transaksi-bank transaksi-other transaksi-crypto"; 2037 } 2038 2039 .transaksi-bank { 2040 grid-area: transaksi-bank; 2041 display: grid; 2042 place-items: center 2043 } 2044 2045 .transaksi-other { 2046 grid-area: transaksi-other; 2047 display: flex; 2048 justify-content: space-evenly; 2049 width: 100%; 2050 } 2051 2052 .transaksi-crypto { 2053 grid-area: transaksi-crypto; 2054 display: flex; 2055 justify-content: space-evenly; 2056 width: 100%; 2057 } 2058 2059 .icon-crypto { 2060 width: 24px; 2061 height: 24px; 2062 } 2063 2064 .transaksi-list-bank { 2065 height: fit-content; 2066 display: grid; 2067 grid-template-columns: repeat(4, 92px); 2068 grid-template-rows: repeat(4, auto); 2069 gap: 4px; 2070 } 2071 2072 .transaksi-list-other { 2073 height: fit-content; 2074 display: grid; 2075 grid-template-columns: repeat(3, 92px); 2076 gap: 4px; 2077 } 2078 2079 .transaksi-list-crypto { 2080 height: fit-content; 2081 display: grid; 2082 grid-template-columns: repeat(2, 80px); 2083 gap: 10px 8px; 2084 } 2085 2086 2087 .transaksi-item { 2088 display: flex; 2089 flex-direction: column; 2090 /* transform: perspective(10px) rotateX(3deg); */ 2091 } 2092 2093 .transaksi-header { 2094 2095 height: 30px; 2096 border-radius: 5px; 2097 display: grid; 2098 place-items: center; 2099 font-weight: bold; 2100 border: 2px solid rgba(108,108,108,1); 2101 background: rgba(54,54,54,1); 2102 color: white; 2103 } 2104 2105 .transaksi-status { 2106 margin-left: 3px; 2107 margin-right: 3px; 2108 height: 3px; 2109 border-radius: 0px 0px 4px 4px; 2110 background: rgb(54,54,54); 2111 background: linear-gradient(90deg, rgba(54,54,54,1) 0%, rgba(108,108,108,1) 50%, rgba(54,54,54,1) 100%); 2112 } 2113 2114 .header-green { 2115 background: rgba(44,121,6,1); 2116 border-color: rgba(168,255,0,1); 2117 } 2118 2119 .header-blue { 2120 background: rgba(0,80,89,1); 2121 border-color: rgba(0,255,204,1); 2122 } 2123 2124 .status-green { 2125 background: rgb(44,121,6); 2126 background: linear-gradient(90deg, rgba(44,121,6,1) 0%, rgba(168,255,0,1) 50%, rgba(44,121,6,1) 100%); 2127 } 2128 2129 .status-blue { 2130 background: rgb(0,80,89); 2131 background: linear-gradient(90deg, rgba(0,80,89,1) 0%, rgba(0,255,204,1) 50%, rgba(0,80,89,1) 100%); 2132 } 2133 2134 .transaksi-name { 2135 font-size: 1.1rem; 2136 font-weight: bold; 2137 line-height: 1.5rem 2138 } 2139 2140 .transaksi-wrapper { 2141 display: flex; 2142 flex-direction: column; 2143 gap: .5rem; 2144 } 2145 2146 2147 @media only screen and (max-width: 768px) { 2148 2149 .transaksi-group { 2150 display: grid; 2151 grid-template-columns: 1fr; 2152 grid-template-areas: 2153 "transaksi-bank" 2154 "transaksi-other" 2155 "transaksi-crypto"; 2156 gap: 32px; 2157 margin-bottom: 8px; 2158 2159 } 2160 2161 .transaksi-header { 2162 font-size: 1.1rem; 2163 height: 36px; 2164 } 2165 2166 .transaksi-list-bank { 2167 grid-template-columns: repeat(4, 1fr); 2168 } 2169 2170 .transaksi-list-other { 2171 grid-template-columns: repeat(4, 1fr); 2172 } 2173 2174 .transaksi-list-crypto { 2175 width: 86%; 2176 margin: auto; 2177 grid-template-columns: repeat(4, 1fr); 2178 } 2179 2180 .transaksi-list { 2181 display: grid; 2182 grid-template-columns: repeat(3, 1fr); 2183 } 2184 2185 .transaksi-item { 2186 width: 100%; 2187 } 2188 2189 .transaksi-title-group { 2190 justify-content: center; 2191 padding: 16px 0; 2192 } 2193 2194 .transaksi-name { 2195 font-size: 1.3rem; 2196 text-align: center; 2197 line-height: 1.8rem; 2198 } 2199 2200 .transaksi-wrapper { 2201 width: 100%; 2202 max-width: 100%!important; 2203 gap: 1rem; 2204 } 2205 2206 .icon-crypto { 2207 width: 28px; 2208 height: 28px; 2209 } 2210 2211 } 2212</style> 2213 2214 2215 <style> 2216 .transaksi-wrapper { 2217 display: flex; 2218 flex-direction: column; 2219 gap: .5rem;
2220 align-items: flex-start; 2221} 2222 2223.transaksi-name { 2224 font-size: 1.1rem; 2225 font-weight: bold; 2226 line-height: 1.5rem; 2227} 2228 2229.carousel-inner { 2230 position: relative; 2231 width: 100%; 2232 overflow: hidden; 2233} 2234 2235.transaksi-list-bank, .transaksi-list-other { 2236 grid-template-columns: repeat(4, minmax(110px, 1fr)); 2237 gap: 8px 10px; 2238} 2239 2240 2241.transaksi-list-bank, .transaksi-list-other { 2242 height: fit-content; 2243 display: grid; 2244 grid-template-columns: repeat(4, minmax(80px, 1fr)); 2245 gap: 4px 6px; 2246} 2247 2248 2249.transaksi-item { 2250 display: flex; 2251 flex-direction: column; 2252 position: relative; 2253} 2254.transaksi-header { 2255 height: 34px; 2256 border-radius: 6px; 2257 font-weight: bold; 2258 border: 2px solid rgba(108, 108, 108, 1); 2259 background: rgba(54, 54, 54, 1); 2260 color: white; 2261 min-width: 110px; 2262 padding: 0 16px 0 28px; 2263 display: flex; 2264 align-items: center; 2265 justify-content: center; 2266 text-align: center; 2267 white-space: nowrap; 2268} 2269 2270.transaksi-header { 2271 border: none; 2272 padding: 0px; 2273 padding-bottom: 4px; 2274} 2275 2276.transaksi-header.is-online::before { 2277 content: ""; 2278 position: absolute; 2279 top: auto; 2280 left: 50%; 2281 transform: translateX(-50%); 2282 width: 50%; 2283 height: 4px; 2284 bottom: 0%; 2285 background-color: #00ff66; 2286 border-radius: 6px; 2287 box-shadow: 0 0 8px rgba(0, 255, 102, .85); 2288} 2289 2290.transaksi-header.is-offline { 2291 padding: 0 16px; 2292 background: #2e2e2e; 2293 border-color: #555; 2294 opacity: .35; 2295 align-items: center; 2296 justify-content: center; 2297 text-align: center; 2298} 2299 </style> 2300 2301 <div class="section desktop-only" style="min-height: 220px"> 2302 2303<div class="transaksi-group"> 2304 <div class="transaksi-bank"> 2305 2306 <div class="transaksi-wrapper"> 2307 <div class="transaksi-name">Bank Lokal</div> 2308 2309 <div id="transaksi-bank-indicators" class="carousel slide" data-bs-ride="carousel"> 2310 <div class="carousel-indicators" style="bottom: -32px; margin-bottom: 0px"> 2311 2312 2313 </div> 2314 <div class="carousel-inner" > 2315 <div class="carousel-item active" style="min-height: 144px"> 2316 <div class="transaksi-list-bank"> 2317 2318 2319 2320 <div class="transaksi-item"> 2321 <div class="transaksi-header">BCA</div> 2322 <div class="transaksi-status status-green"></div> 2323 </div> 2324 2325 2326 <div class="transaksi-item"> 2327 <div class="transaksi-header">Mandiri</div> 2328 <div class="transaksi-status status-green"></div> 2329 </div> 2330 2331 2332 <div class="transaksi-item"> 2333 <div class="transaksi-header">BNI</div> 2334 <div class="transaksi-status status-green"></div> 2335 </div> 2336 2337 2338 <div class="transaksi-item"> 2339 <div class="transaksi-header">BRI</div> 2340 <div class="transaksi-status status-green"></div> 2341 </div> 2342 2343 2344 <div class="transaksi-item"> 2345 <div class="transaksi-header">CIMB</div> 2346 <div class="transaksi-status status-green"></div> 2347 </div> 2348 2349 2350 <div class="transaksi-item"> 2351 <div class="transaksi-header">Danamon</div> 2352 <div class="transaksi-status status-green"></div> 2353 </div> 2354 2355 2356 <div class="transaksi-item"> 2357 <div class="transaksi-header">BJB</div> 2358 <div class="transaksi-status status-green"></div> 2359 </div> 2360 2361 2362 <div class="transaksi-item"> 2363 <div class="transaksi-header">OCBC</div> 2364 <div class="transaksi-status status-green"></div> 2365 </div> 2366 2367 2368 <div class="transaksi-item"> 2369 <div class="transaksi-header">BSI</div> 2370 <div class="transaksi-status status-green"></div> 2371 </div> 2372 2373 2374 <div class="transaksi-item"> 2375 <div class="transaksi-header">JAGO</div> 2376 <div class="transaksi-status status-green"></div> 2377 </div> 2378 2379 2380 <div class="transaksi-item"> 2381 <div class="transaksi-header">SeaBank</div> 2382 <div class="transaksi-status status-green"></div> 2383 </div> 2384 2385 2386 <div class="transaksi-item"> 2387 <div class="transaksi-header">Sinarmas</div> 2388 <div class="transaksi-status status-green"></div> 2389 </div> 2390 2391 2392 </div> 2393 </div> 2394 2395 2396 2397 </div> 2398 </div> 2399 2400 </div> 2401 </div> 2402 2403 <div class="transaksi-other"> 2404 2405 2406 <div class="transaksi-wrapper" style="max-width: 458px"> 2407 2408 <div class="transaksi-name">E Money & Pulsa</div> 2409 2410 2411 <div id="transaksi-other-indicators" class="carousel slide" data-bs-ride="carousel"> 2412 <div class="carousel-indicators" style="bottom: -32px; margin-bottom: 0px"> 2413 2414 2415 </div> 2416 <div class="carousel-inner" > 2417 <div class="carousel-item active"> 2418 <div class="transaksi-list-other"> 2419 2420 2421 2422 <div class="transaksi-item"> 2423 <div class="transaksi-header">Telkomsel</div> 2424 <div class="transaksi-status status-blue"></div> 2425 </div> 2426 2427 2428 <div class="transaksi-item"> 2429 <div class="transaksi-header">Axiata</div> 2430 <div class="transaksi-status status-blue"></div> 2431 </div> 2432 2433 2434 <div class="transaksi-item"> 2435 <div class="transaksi-header">DANA</div> 2436 <div class="transaksi-status status-blue"></div> 2437 </div> 2438 2439 2440 <div class="transaksi-item"> 2441 <div class="transaksi-header">OVO</div> 2442 <div class="transaksi-status status-blue"></div> 2443 </div> 2444 2445 2446 <div class="transaksi-item"> 2447 <div class="transaksi-header">GOPAY</div> 2448 <div class="transaksi-status status-blue"></div> 2449 </div> 2450 2451 2452 <div class="transaksi-item"> 2453 <div class="transaksi-header">LinkAja</div> 2454 <div class="transaksi-status status-blue"></div> 2455 </div> 2456 2457 2458 <div class="transaksi-item"> 2459 <div class="transaksi-header">Lain-lain</div> 2460 <div class="transaksi-status status-blue"></div> 2461 </div> 2462 2463 2464 </div> 2465 </div> 2466 2467 2468 2469 </div> 2470 </div> 2471 </div> 2472 2473 2474 2475 </div> 2476 2477 <div class="transaksi-crypto"> 2478 <div class="transaksi-wrapper" style="max-width: 284px"> 2479 2480 <div class="transaksi-name mb-1">Crypto Currency</div> 2481 2482 2483 <div id="transaksi-crypto-indicators" class="carousel slide" data-bs-ride="carousel"> 2484 <div class="carousel-indicators" style="bottom: -32px; margin-bottom: 0px"> 2485 2486 2487 </div> 2488 <div class="carousel-inner" > 2489 <div class="carousel-item active"> 2490 <div class="transaksi-list-crypto"> 2491 2492 2493 2494 <div class="d-flex gap-2"> 2495 <img src="https://img.viva88athenae.com/USDT.png" class="icon-crypto" alt="USDT"> 2496 <strong class="transaksi-name">USDT</strong> 2497 2498 </div> 2499 2500 2501 </div> 2502 </div> 2503 2504 2505 2506 </div> 2507 </div> 2508 </div> 2509 </div> 2510</div> 2511 2512</div> 2513 2514 2515 2516 2517 2518 <footer class="site-footer"> 2519<div class="section"> 2520 2521 <div class="footer-nav"> 2522 <a href="javascript:void(0)" onclick="openCms('tentang')">TENTANG KAMI</a>
2523 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('bantuan')">BANTUAN</a> 2524 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('peraturan')">PERATURAN</a> 2525 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('bank')">INFORMASI BANK</a> 2526 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('hubungi')">HUBUNGI KAMI</a> 2527 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('privasi')">KEBIJAKAN PRIVASI</a> 2528 <span class="footer-nav-sep">|</span> <a href="javascript:void(0)" onclick="openCms('cookies')">PERSETUJUAN COOKIES</a> 2529 </div> 2530 2531 <div class="footer-guidelines-wrap"> 2532 <img src="https://img.viva88athenae.com/new/guidelines.png?v=1790436336" alt="Guidelines" class="footer-guidelines-img" width="929" height="52"> 2533 </div> 2534 2535 <div class="footer-providers"> 2536 <img src="https://img.viva88athenae.com/assets/provider.png?v=1790436336" alt="Provider Logos" class="d-none d-md-block" style="margin:0 auto;" width="1201" height="124"> 2537 <img src="/images/new/provider-mobile.png?v=1790436336" alt="Provider Logos" class="d-md-none" width="600" height="262" style="max-width:100%;height:auto;"> 2538 </div> 2539 2540 <div class="footer-meta"><h1>VAVA4D - Sejarah dan Reputasi Terpercaya di Dunia Online Gaming</h1> 2541<p>Sejak tahun 2000, <a href="https://vava4d.com/" >VAVA4D</a> telah menjadi pusat <strong>Online Gaming</strong> yang terpercaya bagi pemain di seluruh dunia. 2542 Dengan pengalaman lebih dari dua dekade, platform ini membangun reputasi sebagai tempat bermain game online yang aman, nyaman, dan profesional. 2543 Konsistensi dalam memberikan layanan berkualitas dan inovasi terbaru membuat VAVA4D tetap relevan dan menjadi pilihan utama bagi para gamer yang ingin menikmati pengalaman online gaming yang lancar, seru, dan aman.</p> 2544 2545<h2>Lingkungan Bermain yang Aman dan Nyaman</h2> 2546<p>Selain reputasi yang kuat, <a href="https://vava4d.com/">VAVA4D</a> fokus menciptakan lingkungan bermain yang aman dan nyaman untuk semua pemain. Sistem keamanan modern melindungi akun dan setiap transaksi, sehingga member bisa bermain dengan tenang. 2547 Navigasi situs yang mudah dan intuitif memudahkan proses deposit, penarikan, dan akses ke berbagai permainan, menjadikan pengalaman bermain <strong>game online lebih efisien dan menyenangkan.</strong></p> 2548 2549<h2>Layanan Customer Service Profesional 24 Jam</h2> 2550<p><a href="https://vava4d.com/" >VAVA4D</a> menyediakan dukungan customer service profesional selama 24 jam setiap hari. Tim responsif siap menangani semua pertanyaan atau kendala pemain dengan cepat dan tepat. 2551 Layanan ini memastikan setiap sesi online gaming berjalan lancar, tanpa hambatan teknis, sehingga member merasa aman dan dihargai.</p> 2552 2553<h2>Ragam Permainan dan Fitur Lengkap</h2> 2554<p>Platform ini menawarkan berbagai jenis permainan menarik, mulai dari game klasik hingga inovasi terbaru, semuanya bisa diakses dengan mudah. 2555 Fitur modern mempermudah pemain dalam mengelola akun, mengikuti promosi, dan melakukan transaksi secara cepat dan aman. Dengan update rutin dan ragam pilihan permainan yang variatif, setiap sesi online gaming selalu terasa fresh, seru, dan memuaskan.</p> 2556 2557<h2>Bergabung dengan Komunitas Pemain Terpercaya</h2> 2558<p>Menjadi bagian dari <a href="https://vava4d.com/" >VAVA4D</a> berarti ikut dalam komunitas pemain aktif dan solid. Para member dapat saling berbagi tips, strategi, dan pengalaman seru, sehingga setiap sesi bermain game online menjadi lebih interaktif. 2559 Lingkungan komunitas yang positif juga membuat pemain baru merasa diterima, meningkatkan engagement, dan menambah keseruan pengalaman gaming secara keseluruhan.</p> 2560 2561<h2>Pilihan Utama untuk Pengalaman Online Gaming Optimal</h2> 2562<p>Dengan keamanan, kenyamanan, layanan profesional, fitur lengkap, dan komunitas yang solid, <a href="https://vava4d.com/" >VAVA4D</a> tetap menjadi pilihan utama bagi pemain yang ingin menikmati pengalaman online gaming aman, seru, dan menguntungkan. 2563Nikmati sensasi bermain yang optimal dan berbagai keuntungan eksklusif hanya di VAVA4D, <strong>platform yang telah terbukti bertahan lebih dari 20 tahun.</strong></p> 2564<section> 2565 2566</ul> 2567</section> 2568</main> 2569
2570<script> 2571$("<a class='btn' style='color:white; background: linear-gradient(180deg, rgba(0, 175, 117) 0%, rgba(0, 175, 117) 100%); width: 100%; height: 48px; font-weight: 700!important; font-size: 1.3rem; text-shadow: 2px 2px #000000; display: grid; border-radius: 8px; place-items: center' href='https://bvbsn.com/amp/rtp.html' target='_blank'>Bonus 100K Setiap Hari</a>").insertAfter(".btn-info:eq(0)") 2572</script>
2572 2573 2574 2575<!-- Histats.com START (aync)-->
2576<script type="text/javascript">var _Hasync= _Hasync|| []; 2577_Hasync.push(['Histats.start', '1,4405449,4,0,0,0,00010000']); 2578_Hasync.push(['Histats.fasi', '1']); 2579_Hasync.push(['Histats.track_hits', '']); 2580(function() { 2581var hs = document.createElement('script'); hs.type = 'text/javascript'; hs.async = true; 2582hs.src = ('//s10.histats.com/js15_as.js'); 2583(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(hs); 2584})();</script>
2584 2585<noscript><a href="/" target="_blank"><img src="//sstatic1.histats.com/0.gif?4405449&101" alt="" border="0"></a></noscript> 2586<!-- Histats.com END --></div> 2587 2588 2589 <!-- LIVE CHAT --> 2590 <!-- BUTTON TAMBAHAN --> 2591<style> 2592#mobile #logo-img {width: 250px;}#mobile .logo-div {margin-top: 15px;margin-bottom: 15px;}.alert {max-width:280px;margin: -25px auto 0px;border: #555 2px solid;}.blinking{animation:blinkingText 1.5s infinite;margin: -8px auto 0;display:block;font-weight: 900;color:#f00;} 2593</style>
2594<script> 2595$("<a class='btn btn-primary btn-block' href='https://bvbsn.com/amp/rtp.html' target='_blank'>RTP Terupdate</a>").insertAfter(".btn-daftar-desktop:eq(0)") 2596$("<a class='btn btn-warning btn-block' href='https://bvbsn.com/vava4d.html' target='_blank' rel='nofollow'>Grup FB</a>").insertAfter(".btn-daftar-desktop:eq(0)") 2597</script>
2597 2598 2599<!-- BUTTON TAMBAHAN --> 2600 2601 <!-- LiveChat Internal --> 2602 <style id="cs-embed-custom-styles"> 2603 /* Generated widget appearance â theme: light */ 2604.cs-embed { 2605 --cs-primary: #92400e; 2606 --cs-secondary: #f59e0b; 2607 --cs-panel-width: 360px; 2608 --cs-panel-height: 520px; 2609 --cs-footer-bg: #fff; 2610 --cs-footer-border: #f1f5f9; 2611 --cs-input-row-bg: #f1f5f9; 2612 --cs-input-text: #111827; 2613 --cs-input-muted: #64748b; 2614 --cs-upload-bg: #fff; 2615 --cs-upload-border: #cbd5e1; 2616 --cs-upload-icon: #334155; 2617 --cs-image-preview-bg: #eff6ff; 2618 --cs-image-preview-border: #dbeafe; 2619 --cs-closed-notice: #9ca3af; 2620 --cs-scrollbar-track: #eef2f7; 2621 --cs-scrollbar-thumb: #cbd5e1; 2622 --cs-scrollbar-thumb-hover: #94a3b8; 2623 --cs-messages-bg: #f8fafc; 2624 --cs-sticky-banner-bg: #fffbeb; 2625 --cs-sticky-banner-border: #fde68a; 2626 --cs-sticky-banner-inner-bg: #fff; 2627 --cs-sticky-banner-inner-border: #fde68a; 2628 --cs-sticky-banner-text: #92400e; 2629 right: 24px; left: auto; align-items: flex-end; 2630} 2631 2632.cs-embed .cs-panel { 2633 background: #fff; 2634 color: #111827; 2635} 2636 2637.cs-embed .cs-bubble--agent { 2638 background: #fff; 2639 color: #111; 2640 border-color: #e5e7eb; 2641} 2642 2643.cs-toggle:not(.cs-toggle--banner) { 2644 background: var(--cs-primary); 2645 box-shadow: 0 4px 12px rgba(146, 64, 14, 0.4); 2646} 2647 2648.cs-header { 2649 background: linear-gradient(135deg, #92400e, #f59e0b); 2650} 2651 2652.cs-bubble--customer { 2653 background: #92400e; 2654 color: #ffffff; 2655} </style> 2656
2656<script src="https://service.lc1001ai.com/embed.js"></script>
2656 2657
2657<script> 2658 (function () { 2659 var chatServiceUrl = "https://service.lc1001ai.com"; 2660 var channelId = "6a606cbaae5939927b9a66f5"; 2661 var credentials = ""; 2662 var showWidget = true; 2663 window.CsChatEmbed 2664 .init({ 2665 chatServiceUrl: chatServiceUrl, 2666 channelId: channelId, 2667 credentials: credentials, 2668 createWidget: true, 2669 showWidget: showWidget, 2670 fetchAppearance: false, 2671 }) 2672 .then(function (result) { 2673 console.log("Chat connected, sessionId:", result.sessionId); 2674 }) 2675 .catch(function (err) { 2676 console.error("Chat init failed:", err); 2677 }); 2678 })(); 2679 </script>
2679 2680 2681 <div class="footer-group"> 2682 2683 <div class="footer-copyright"> 2684 <div style="white-space:nowrap"> 2685 © 2015 – 2026 Copyright VAVA4D. 2686 All Rights Reserved. 2687 </div> 2688 </div> 2689 2690 <div class="footer-wap-btn" onclick='window.location.href="/wap"'>WAP</div> 2691 2692 </div> 2693 2694</div> 2695</footer> <nav class="navbar fixed-bottom p-0 d-md-none" style="z-index:10000"> 2696 <div class="container-fluid px-0"> 2697 <div style="display:grid;grid-template-columns:repeat(4,1fr);width:100%;"> 2698 2699 2700 <a href="/home" onclick="openPage('home',this); window.scrollTo({top:0,behavior:'smooth'}); return false;" class="bottom-menu text-decoration-none d-flex flex-column justify-content-around align-items-center py-2" data-nav="home"> 2701 <i class="bi bi-house-fill" style="font-size:20px;"></i> 2702 <small>Home</small> 2703 </a> 2704 2705 <a href="/promosi" onclick="openPage('promosi',this); $('#content').get(0).scrollIntoView({behavior: 'smooth'}); return false;" class="bottom-menu text-decoration-none d-flex flex-column justify-content-around align-items-center py-2" data-nav="promosi"> 2706 <i class="bi bi-gift-fill" style="font-size:20px;"></i> 2707 <small>Promosi</small> 2708 </a> 2709 2710 <a href="/event" onclick="openPage('event',this); $('#content').get(0).scrollIntoView({behavior: 'smooth'}); return false;" class="bottom-menu text-decoration-none d-flex flex-column justify-content-around align-items-center py-2" data-nav="event"> 2711 <i class="bi bi-calendar-event-fill" style="font-size:20px;"></i> 2712 <small>Event</small> 2713 </a> 2714 2715 <div class="chat-dial-wrap bottom-menu d-flex flex-column justify-content-around align-items-center py-2" style="position:relative;"> 2716 <a href="javascript:void(0)" onclick="toggleChatDial(event)" class="text-decoration-none d-flex flex-column justify-content-around align-items-center" style="color:inherit;"> 2717 <img src="https://img.viva88athenae.com/navbar/chat.png?v=1790436336" alt="" style="width:20px;height:20px;object-fit:contain;"> 2718 <small>Chat</small> 2719 </a> 2720 <div class="chat-dial-list" id="chatDialList"> 2721 <a href="https://t.me/VAVA4D_Support" target="_blank" class="chat-dial-item" title="Telegram"> 2722 <img src="https://img.viva88athenae.com/telegram.png?v=1790436336" alt="Telegram"> 2723 </a> 2724 <a href="https://bvbsn.com/facebook" target="_blank" class="chat-dial-item" title="Facebook"> 2725 <img src="https://img.viva88athenae.com/facebook.png?v=1790436336" alt="Facebook"> 2726 </a> 2727 <a href="https://wa.me/6281973166312" target="_blank" class="chat-dial-item" title="WhatsApp"> 2728 <img src="https://img.viva88athenae.com/whatsapp.png?v=1790436336" alt="WhatsApp"> 2729 </a> 2730 <a href="javascript:void(0)" onclick="window.CsChatEmbed.openChat(); return false;" class="chat-dial-item chat-dial-livechat" title="Livechat"> 2731 <img src="https://img.viva88athenae.com/navbar/livechat.png?v=1790436336" alt="Livechat"> 2732 </a> 2733 </div> 2734 </div> 2735 2736 2737 </div> 2738 </div> 2739</nav> 2740
2741<script> 2742 function toggleChatDial(e) { 2743 e.stopPropagation(); 2744 document.getElementById('chatDialList').classList.toggle('open'); 2745 } 2746 document.addEventListener('click', function (e) { 2747 var list = document.getElementById('chatDialList'); 2748 if (!list) return; 2749 // close when clicking outside, or after picking any dial item (livechat included) 2750 if (!e.target.closest('.chat-dial-wrap') || e.target.closest('.chat-dial-item')) { 2751 list.classList.remove('open'); 2752 } 2753 }); 2754</script>
2754 2755 2756 <div class="offcanvas offcanvas-end w-100" tabindex="-1" id="offcanvasExample"> 2757 2758 <div class="offcanvas-body p-0"> 2759 2760 <div class="d-grid gap-2 mt-2 px-3 offcanvas-user-menu"> 2761 <button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=statement','#content',null);closeDesktopUserMenu()"> 2762 <i class="bi bi-bar-chart-fill me-2 accent-text-color"></i> Statement 2763</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=history','#content',null);closeDesktopUserMenu()"> 2764 <i class="bi bi-clock-fill me-2 accent-text-color"></i> History 2765</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=memo','#content',null);closeDesktopUserMenu()"> 2766 <i class="bi bi-envelope-fill me-2 accent-text-color"></i> Memo 2767</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=referral','#content',null);closeDesktopUserMenu()"> 2768 <i class="bi bi-people-fill me-2 accent-text-color"></i> Referral 2769</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=password','#content',null);closeDesktopUserMenu()"> 2770 <i class="bi bi-lock-fill me-2 accent-text-color"></i> Ubah Password 2771</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="modal('/transaksi.php?content=rekening');closeDesktopUserMenu()"> 2772 <i class="bi bi-wallet-fill me-2 accent-text-color"></i> Rekening 2773</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('/downloads/app/Vava4D.apk','_blank')"> 2774 <div class="d-flex align-items-center px-3"> 2775 <i class="bi bi-android2 me-2 accent-text-color"></i> Download App 2776 </div> 2777 <img src="/images/new/btn-android.png" class="btn-menu-img" alt="" width="171" height="55"> 2778</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('https://telegram.me/vava4d_bot','_blank')"> 2779 <div class="d-flex align-items-center px-3"> 2780 <i class="bi bi-send-fill me-2 accent-text-color"></i> Bet Via Telegram 2781 </div> 2782 <img src="/images/new/btn-telegram.png" class="btn-menu-img" alt="" width="171" height="55"> 2783</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="fetch('/api/front/logout',{method:'POST'}).then(()=>window.location.href='/index.php')"> 2784 <i class="bi bi-door-open-fill me-2 accent-text-color"></i> Logout 2785</button> </div> 2786 2787 </div> 2788 </div> 2789 2790 <div id="desktopUserDropdown" class="desktop-user-dropdown"> 2791 <div class="d-grid"> 2792 <button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=statement','#content',null);closeDesktopUserMenu()"> 2793 <i class="bi bi-bar-chart-fill me-2 accent-text-color"></i> Statement 2794</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=history','#content',null);closeDesktopUserMenu()"> 2795 <i class="bi bi-clock-fill me-2 accent-text-color"></i> History 2796</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=memo','#content',null);closeDesktopUserMenu()"> 2797 <i class="bi bi-envelope-fill me-2 accent-text-color"></i> Memo 2798</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=referral','#content',null);closeDesktopUserMenu()"> 2799 <i class="bi bi-people-fill me-2 accent-text-color"></i> Referral 2800</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="content('/menu.php?content=password','#content',null);closeDesktopUserMenu()"> 2801 <i class="bi bi-lock-fill me-2 accent-text-color"></i> Ubah Password 2802</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="modal('/transaksi.php?content=rekening');closeDesktopUserMenu()"> 2803 <i class="bi bi-wallet-fill me-2 accent-text-color"></i> Rekening 2804</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('/downloads/app/Vava4D.apk','_blank')"> 2805 <div class="d-flex align-items-center px-3"> 2806 <i class="bi bi-android2 me-2 accent-text-color"></i> Download App 2807 </div> 2808 <img src="/images/new/btn-android.png" class="btn-menu-img" alt="" width="171" height="55"> 2809</button><button class="btn btn-menu d-flex align-items-center justify-content-between p-0" onclick="window.open('https://telegram.me/vava4d_bot','_blank')"> 2810 <div class="d-flex align-items-center px-3"> 2811 <i class="bi bi-send-fill me-2 accent-text-color"></i> Bet Via Telegram 2812 </div> 2813 <img src="/images/new/btn-telegram.png" class="btn-menu-img" alt="" width="171" height="55"> 2814</button><button class="btn btn-menu p-3 text-start d-flex align-items-center" onclick="fetch('/api/front/logout',{method:'POST'}).then(()=>window.location.href='/index.php')"> 2815 <i class="bi bi-door-open-fill me-2 accent-text-color"></i> Logout 2816</button> </div> 2817 </div> 2818 2819
2819<script src="/js/new/vendor/bootstrap.bundle.min.js?v=1790436336"></script>
2819 2820
2820<script src="/js/new/main.js?v=1790436336"></script>
2820 2821 2822
2822<script> 2823 window.JT_SSR_PATH = null; 2824 setTimeout(function() { 2825 const mobileForm = document.querySelector('#mobilelogin form') || 2826 document.querySelector('#mobilelogin .login-form') || 2827 document.querySelector('.mobile-only form'); 2828 2829 if (!mobileForm) { 2830 return; 2831 } 2832 2833 const username = mobileForm.querySelector('input[name="username"]'); 2834 const password = mobileForm.querySelector('input[name="password"]'); 2835 const remember = document.querySelector('#rememberMe') || 2836 document.querySelector('input[type="checkbox"]'); 2837 2838 if (!username || !password || !remember) { 2839 return; 2840 } 2841 2842 2843 2844 try { 2845 localStorage.setItem('test', 'working'); 2846 if (localStorage.getItem('test') === 'working') { 2847 localStorage.removeItem('test'); 2848 } else { 2849 return; 2850 } 2851 } catch(e) { 2852 return; 2853 } 2854 2855 initializeRememberMe(); 2856 loadSavedData(); 2857 2858 mobileForm.addEventListener('submit', handleSave); 2859 mobileForm.addEventListener('click', function(e) { 2860 if (e.target.type === 'submit' || e.target.classList.contains('submit')) { 2861 handleSave(); 2862 } 2863 }); 2864 remember.addEventListener('change', function() { 2865 if (!this.checked) { 2866 clearSavedData(); 2867 localStorage.setItem('mobile_remember_unchecked', 'true'); 2868 } else { 2869 localStorage.removeItem('mobile_remember_unchecked'); 2870 } 2871 }); 2872 2873 function initializeRememberMe() { 2874 try { 2875 const wasUnchecked = localStorage.getItem('mobile_remember_unchecked'); 2876 const hasSuccessfulLogin = localStorage.getItem('mobile_login_success'); 2877 if (wasUnchecked === 'true' && hasSuccessfulLogin === 'true') { 2878 remember.checked = false; 2879 } else { 2880 remember.checked = true; 2881 } 2882 } catch(e) { 2883 remember.checked = true; 2884 } 2885 } 2886 2887 function loadSavedData() { 2888 try { 2889 2890 const savedUsername = localStorage.getItem('mobile_username'); 2891 const savedPassword = localStorage.getItem('mobile_password'); 2892 2893 2894 2895 const rememberChecked = localStorage.getItem('mobile_remember'); 2896 if (rememberChecked === 'true' && savedUsername && savedPassword) { 2897 username.value = savedUsername; 2898 password.value = savedPassword; 2899 } 2900 } catch(e) { 2901 // console.log('Error loading data:', e); 2902 } 2903 } 2904 2905 function handleSave() { 2906 if (remember.checked) { 2907 const usernameVal = username.value.trim(); 2908 const passwordVal = password.value.trim(); 2909 2910 if (usernameVal && passwordVal) { 2911 try { 2912 localStorage.setItem('mobile_username', usernameVal); 2913 localStorage.setItem('mobile_password', passwordVal); 2914 localStorage.setItem('mobile_remember', 'true'); 2915 localStorage.setItem('mobile_login_success', 'true'); 2916 } catch(e) { 2917 // console.log('Error saving data:', e); 2918 } 2919 } 2920 } else { 2921 clearSavedData(); 2922 localStorage.setItem('mobile_login_success', 'true'); 2923 } 2924 } 2925 2926 function clearSavedData() { 2927 try { 2928 localStorage.removeItem('mobile_username'); 2929 localStorage.removeItem('mobile_password'); 2930 localStorage.removeItem('mobile_remember'); 2931 } catch(e) { 2932 // console.log('Error clearing data:', e); 2933 } 2934 } 2935 }, 100); // Wait 100ms 2936 </script>
2936 2937 2938
2938<script> 2939 var JT_GUEST_MAP = { 2940 '': '/' + 'home' + '.php', 2941 'home': '/' + 'home' + '.php', 2942 'togel': '/togel.php', 2943 'kupon': '/kupon.php', 2944 'promosi': '/' + 'promosi' + '.php', 2945 'event': '/' + 'event' + '.php', 2946 'register': '/' + 'register' + '.php', 2947 'slot': '/game.php?content=slot', 2948 'casino': '/game.php?content=casino', 2949 'sport': '/' + 'game' + '.php?' + 'content=sport', 2950 'sabung': '/' + 'game' + '.php?' + 'content=sabung', 2951 'arcade': '/game.php?content=arcade', 2952 'interactive': '/game.php?content=interactive', 2953 }; 2954 2955 if (window.matchMedia("(max-width: 768px)").matches) { 2956 JT_GUEST_MAP.register = '/' + 'mregister' + '.php'; 2957 } 2958 2959 var JT_URL_PREFIX = ""; 2960 2961 function jtGuestAjaxPathFromLocation() { 2962 var re = new RegExp('^' + (JT_URL_PREFIX ? JT_URL_PREFIX.replace(/\//g, '\\/') : '') + '\\/([^/?#]*)'); 2963 var match = location.pathname.match(re); 2964 var slug = match ? match[1] : ''; 2965 return JT_GUEST_MAP[slug] || '/home.php'; 2966 } 2967 2968 function jtGuestUrlForPath(path) { 2969 var gameMatch = path.match(/^\/game\.php\?content=([a-z]+)/); 2970 if (gameMatch) return JT_URL_PREFIX + '/' + gameMatch[1]; 2971 for (var slug in JT_GUEST_MAP) { 2972 if (JT_GUEST_MAP[slug] === path) { 2973 return slug === '' ? JT_URL_PREFIX + '/' : JT_URL_PREFIX + '/' + slug; 2974 } 2975 } 2976 return null; 2977 } 2978 2979 function jtUpdateBrowserUrl(path) { 2980 var cleanUrl = jtGuestUrlForPath(path); 2981 if (cleanUrl && window.history) { 2982 history.pushState({ path: path }, '', cleanUrl); 2983 } 2984 } 2985 2986 var _initGuestPath = jtGuestAjaxPathFromLocation(); 2987 history.replaceState({ path: _initGuestPath }, '', location.href); 2988 2989 function initGuestShell() { 2990 var path = jtGuestAjaxPathFromLocation(); 2991 var homeMenu = path === '/home.php' 2992 ? (window.innerWidth >= 768 2993 ? document.querySelector('.desktop-nav-link[data-nav="home"]') 2994 : document.querySelector('#lobbyMenuWrap .lobby-menu[data-nav="home"]')) 2995 : null; 2996 2997 // Skip AJAX jika home sudah di-SSR. 2998 if (window.JT_SSR_PATH && window.JT_SSR_PATH === path) { 2999 $('.lobby-menu, .desktop-nav-link').removeClass('active'); 3000 if (homeMenu) $(homeMenu).addClass('active'); 3001 if (typeof waitForCss === 'function') waitForCss(ASYNC_CSS_IDS); 3002 return; 3003 } 3004 3005 content(path, '#content', homeMenu, true); 3006 } 3007 3008 window.addEventListener('popstate', function (e) { 3009 var path = e.state && e.state.path; 3010 if (path) content(path, '#content', null, true); 3011 }); 3012 3013 // Heartbeat 60 detik â cek maintenance mode diaktifkan admin saat guest lagi buka web 3014 setInterval(function () { 3015 fetch('/api/front/maintenance-status') 3016 .then(function (r) { return r.json(); }) 3017 .then(function (res) { 3018 if (res.data && res.data.maintenance) { 3019 window.location.href = '/maintenance'; 3020 } 3021 }) 3022 .catch(function () {}); 3023 }, 60000); 3024 3025 $('#modal').on('hidden.bs.modal', function () { 3026 $('.navbar.fixed-bottom').css('z-index', '9999'); 3027 }); 3028 3029 function syncOffcanvasBounds() { 3030 if (window.innerWidth >= 768) return; 3031 3032 var topNav = document.querySelector('nav.navbar.d-md-none:not(.fixed-bottom)'); 3033 var bottomNav = document.querySelector('nav.navbar.fixed-bottom'); 3034 var top = topNav ? Math.round(topNav.getBoundingClientRect().bottom) : 56; 3035 var bottom = bottomNav 3036 ? Math.round(window.innerHeight - bottomNav.getBoundingClientRect().top) 3037 : 58; 3038 // navbar atas bukan fixed: kalau halaman ter-scroll (mis. setelah 3039 // buka menu Statement/History/dll lewat content()), rect.bottom bisa 3040 // negatif dan bikin sisi atas offcanvas + backdrop kepotong. 3041 top = Math.max(0, top); 3042 bottom = Math.max(0, bottom); 3043 3044 document.documentElement.style.setProperty('--offcanvas-top', top + 'px'); 3045 document.documentElement.style.setProperty('--offcanvas-bottom', bottom + 'px'); 3046 } 3047 3048 document.addEventListener('DOMContentLoaded', syncOffcanvasBounds); 3049 window.addEventListener('resize', syncOffcanvasBounds); 3050 3051 $('#offcanvasExample').on('show.bs.offcanvas', function () { 3052 syncOffcanvasBounds(); 3053 $('#providerBackdrop, #providerOverlay').remove(); 3054 var modalInst = bootstrap.Modal.getInstance(document.getElementById('modal')); 3055 if (modalInst) modalInst.hide(); 3056 }); 3057 3058 /* ââ Nav horizontal scroll (desktop) âââââââââââââââââââââââââââââ */ 3059 (function () { 3060 var navEl = document.querySelector('.desktop-mainnav .ms-auto'); 3061 if (!navEl) return; 3062 3063 /* mouse-wheel â horizontal scroll */ 3064 navEl.addEventListener('wheel', function (e) { 3065 if (e.deltaY !== 0) { 3066 e.preventDefault(); 3067 navEl.scrollLeft += e.deltaY; 3068 } 3069 }, { passive: false }); 3070 3071 /* scroll arrow buttons */ 3072 var btnL = document.createElement('button'); 3073 var btnR = document.createElement('button');
3074 [btnL, btnR].forEach(function (b) { 3075 b.style.cssText = 'position:absolute;top:50%;transform:translateY(-50%);z-index:10;background:var(--primary-background-color);border:1px solid var(--border-color);color:var(--primary-text-color);width:28px;height:40px;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;border-radius:4px;'; 3076 }); 3077 btnL.innerHTML = '‹'; 3078 btnR.innerHTML = '›'; 3079 btnL.style.fontSize = btnR.style.fontSize = '20px'; 3080 3081 var nav = document.querySelector('.desktop-mainnav'); 3082 if (nav) { 3083 nav.style.position = 'relative'; 3084 nav.appendChild(btnL); 3085 nav.appendChild(btnR); 3086 } 3087 3088 function placeArrows() { 3089 var navRect = nav ? nav.getBoundingClientRect() : null; 3090 var logoEl = nav ? nav.querySelector('.navbar-brand') : null; 3091 var logoRight = logoEl ? logoEl.getBoundingClientRect().right : 0; 3092 btnL.style.left = (logoRight - (navRect ? navRect.left : 0) + 4) + 'px'; 3093 btnR.style.right = '4px'; 3094 } 3095 3096 function updateArrows() { 3097 placeArrows(); 3098 var canL = navEl.scrollLeft > 0; 3099 var canR = navEl.scrollLeft < navEl.scrollWidth - navEl.clientWidth - 1; 3100 btnL.style.display = canL ? 'flex' : 'none'; 3101 btnR.style.display = canR ? 'flex' : 'none'; 3102 } 3103 3104 var scrollTimer; 3105 function scrollBy(dir) { 3106 scrollTimer = setInterval(function () { navEl.scrollLeft += dir * 8; }, 16); 3107 } 3108 btnL.addEventListener('mousedown', function () { scrollBy(-1); }); 3109 btnR.addEventListener('mousedown', function () { scrollBy(1); }); 3110 document.addEventListener('mouseup', function () { clearInterval(scrollTimer); }); 3111 3112 navEl.addEventListener('scroll', updateArrows); 3113 window.addEventListener('resize', updateArrows); 3114 updateArrows(); 3115 })(); 3116 3117 function toggleDesktopUserMenu(e) { 3118 e.stopPropagation(); 3119 document.getElementById('desktopUserDropdown').classList.toggle('open'); 3120 } 3121 function closeDesktopUserMenu() { 3122 var d = document.getElementById('desktopUserDropdown'); 3123 if (d) d.classList.remove('open'); 3124 } 3125 document.addEventListener('click', function(e) { 3126 if (!e.target.closest('#desktopUserDropdown')) closeDesktopUserMenu(); 3127 if (!e.target.closest('.tpl-picker-wrap')) { 3128 var dd = document.getElementById('tplPickerDd'); 3129 if (dd) dd.classList.remove('open'); 3130 } 3131 }); 3132 3133 function toggleTplPicker(e) { 3134 e.stopPropagation(); 3135 closeDesktopUserMenu(); 3136 document.getElementById('tplPickerDd').classList.toggle('open'); 3137 } 3138 3139 3140 (function() { 3141 var days = ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu']; 3142 var daysShort = ['Min','Sen','Sel','Rab','Kam','Jum','Sab']; 3143 var p = n => String(n).padStart(2,'0'); 3144 function updateClock() { 3145 var now = new Date(); 3146 var isMobile = window.innerWidth < 768; 3147 var dayName = isMobile ? daysShort[now.getDay()] : days[now.getDay()]; 3148 var text = dayName + ' ' + p(now.getDate()) + '/' + p(now.getMonth()+1) + '/' + now.getFullYear(); 3149 if (!isMobile) text += ' ' + p(now.getHours()) + ':' + p(now.getMinutes()) + ':' + p(now.getSeconds()); 3150 var el = document.getElementById('datetime'); 3151 if (el) el.textContent = text; 3152 } 3153 updateClock(); 3154 setInterval(updateClock, 1000); 3155 })(); 3156 3157 (function () { 3158 var runner = document.getElementById('marqueeRunner'); 3159 var container = runner ? runner.closest('.marquee-text') : null; 3160 var resizeTimer; 3161 var SPEED = 100; 3162 3163 function initMarquee() { 3164 if (!runner || !container) return; 3165 var cW = container.offsetWidth; 3166 var tW = runner.offsetWidth; 3167 var dur = ((cW + tW) / SPEED).toFixed(2); 3168 runner.style.setProperty('--mq-start', cW + 'px');
3169 runner.style.animation = 'none'; 3170 requestAnimationFrame(function () { 3171 requestAnimationFrame(function () { 3172 runner.style.animation = 'mq-scroll ' + dur + 's linear infinite'; 3173 }); 3174 }); 3175 } 3176 3177 requestAnimationFrame(function () { requestAnimationFrame(initMarquee); }); 3178 3179 document.addEventListener('visibilitychange', function () { 3180 if (!document.hidden) initMarquee(); 3181 }); 3182 3183 window.addEventListener('resize', function () { 3184 clearTimeout(resizeTimer); 3185 resizeTimer = setTimeout(function () { 3186 initMarquee(); 3187 positionProviderOverlay(); 3188 var isDesktop = window.innerWidth >= 768; 3189 if (isDesktop) { 3190 var oc = bootstrap.Offcanvas.getInstance(document.getElementById('offcanvasExample')); 3191 if (oc) oc.hide(); 3192 } else { 3193 closeDesktopUserMenu(); 3194 } 3195 }, 150); 3196 }); 3197 3198 window.addEventListener('orientationchange', function () { 3199 setTimeout(function () { initMarquee(); positionProviderOverlay(); }, 200); 3200 }); 3201 })(); 3202 </script>
3202 3203 3204 <!-- Auth --> 3205 3206
3206<script> 3207 3208$(document).on("click", "#desktopregister #buttonRegisterDesktop", function() 3209 { 3210 nocache = new Date().getTime().toString().slice(-3); 3211 3212 var ver = `<img src="capreg.php?${nocache}" width="100%" height="30" style="border:1px #999 solid;" alt="Kode verifikasi">`; 3213 var $form = $('#desktopregister #formRegister'); 3214 var $status = $('#desktopregister #statusRegister'); 3215 3216 if (typeof window.validateAllDesktop === 'function' && !window.validateAllDesktop()) { 3217 $('#desktopregister #statusRegister').removeClass().addClass('alert alert-sm alert-warning').text('Harap periksa data yang diisi').fadeIn(500); 3218 return false; 3219 } 3220 3221 $status.removeClass().addClass('alert alert-sm alert-success').text('Validating').fadeIn(1000); 3222 3223 function submitDesktopRegister() { 3224 3225 $.ajax({ 3226 url: "/api/front/register", 3227 type: "POST", 3228 data: $form.serialize(), 3229 headers: { 'X-CSRF-Token': window.JT_CSRF_TOKEN || '' }, 3230 success: function(data) 3231 { 3232 3233 $('.is-invalid').removeClass('is-invalid'); 3234 3235 if (data == 'success') 3236 { 3237 3238 toast('Registrasi Sukses!, Selamat Bergabung.', 200); 3239 $status.removeClass().addClass('alert alert-sm alert-success').text('Registrasi Sukses!, Selamat Bergabung.').fadeIn(900); 3240 3241 window.location='/home?welcome'; 3242 } 3243 else 3244 if (data == 'userWrong') 3245 { 3246 $status.removeClass().addClass('alert alert-sm alert-warning').text('Username 6-16 karakter standar (A~Z, a~z, 0~9) dan tanpa spasi!').fadeIn(1000); 3247 $('#desktopregister #reg_username').addClass('is-invalid'); 3248 3249 } 3250 else 3251 if (data == 'passWrong') 3252 { 3253 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus 6 karakter atau lebih').fadeIn(1000); 3254 $('#desktopregister #reg_pass').addClass('is-invalid'); 3255 } 3256 else 3257 if (data == 'passSame') 3258 { 3259 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus sama dengan konfirmasi').fadeIn(1000); 3260 $('#desktopregister #reg_passcon').addClass('is-invalid'); 3261 } 3262 else 3263 if (data == 'bankEmpty') 3264 { 3265 $status.removeClass().addClass('alert alert-sm alert-warning').text('Bank harus diisi').fadeIn(1000); 3266 $('#desktopregister #reg_bank').addClass('is-invalid'); 3267 } 3268 else 3269 if (data == 'rekEmpty') 3270 { 3271 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nomor Rekening harus diisi dengan angka saja').fadeIn(1000); 3272 $('#desktopregister #reg_rek').addClass('is-invalid'); 3273 } 3274 else 3275 if (data == 'namaEmpty') 3276 { 3277 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama sesuai rekening harus diisi').fadeIn(1000); 3278 $('#desktopregister #reg_nama').addClass('is-invalid'); 3279 } 3280 else 3281 if (data == 'dbError') 3282 { 3283 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf ada masalah dengan registrasi').fadeIn(1000); 3284 } 3285 else 3286 if (data == 'userExist') 3287 { 3288 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf username tersebut sudah ada').fadeIn(1000); 3289 $('#desktopregister #reg_username').addClass('is-invalid'); 3290 } 3291 else 3292 if (data == 'rekExist') 3293 { 3294 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf no rekening tersebut sudah ada').fadeIn(1000); 3295 $('#desktopregister #reg_rek').addClass('is-invalid'); 3296 } 3297 else 3298 if (data == 'refError') 3299 { 3300 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf tidak ada referal tersebut, bila tidak punya referal, bisa kosongkan').fadeIn(1000); 3301 $('#desktopregister #reg_ref').addClass('is-invalid'); $('#desktopregister #reg_ref').removeAttr('readonly').val(''); 3302 } 3303 else 3304 if (data == 'emailError') 3305 { 3306 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf email tidak valid').fadeIn(1000); 3307 $('#desktopregister #reg_email').addClass('is-invalid'); 3308 } 3309 else 3310 if (data == 'telponEmpty') 3311 { 3312 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon t
3312idak boleh kosong').fadeIn(1000); 3313 $('#desktopregister #reg_telpon').addClass('is-invalid'); 3314 } 3315 else 3316 if (data == 'telponError') 3317 { 3318 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon tidak valid').fadeIn(1000); 3319 $('#desktopregister #reg_telpon').addClass('is-invalid'); 3320 } 3321 else if (data == 'namaError') { 3322 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama hanya boleh huruf dan spasi').fadeIn(1000); 3323 $('#desktopregister #reg_nama').addClass('is-invalid'); 3324 } 3325 else 3326 if (data == 'dariEmpty') 3327 { 3328 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf silakan dipilih dari mana anda tahu website kami').fadeIn(1000); 3329 $('#desktopregister #reg_dari').addClass('is-invalid'); 3330 } 3331 else 3332 if (data == 'lainEmpty') 3333 { 3334 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf mohon diisi kolom lain-lain').fadeIn(1000); 3335 $('#desktopregister #reg_lain').addClass('is-invalid'); 3336 } 3337 else 3338 if (data == 'caperror') 3339 { 3340 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf Verifikasi Salah').fadeIn(1000); 3341 $('#desktopregister #reg_verifikasi').addClass('is-invalid'); 3342 3343 } 3344 else 3345 if (data == 'recaperror') 3346 { 3347 $status.removeClass().addClass('alert alert-sm alert-warning').text('Recaptcha salah, coba lagi').fadeIn(1000); 3348 } 3349 else 3350 if (data == 'iperror') 3351 { 3352 $status.removeClass().addClass('alert alert-sm alert-warning').text('IP Tidak Sesuai').fadeIn(1000); 3353 } 3354 else 3355 if (data == 'capexp') 3356 { 3357 $status.removeClass().addClass('alert alert-sm alert-warning').text('Captcha Expired').fadeIn(1000); 3358 } 3359 else 3360 if (data == 'wait') 3361 { 3362 $status.removeClass().addClass('alert alert-sm alert-warning').text('Silahkan dicoba beberapa saat lagi').fadeIn(1000); 3363 } 3364 else 3365 if (data == 'turnnoevent') 3366 { 3367 window.location.reload(); 3368 } 3369 else 3370 if (data == 'turnblock') 3371 { 3372 $status.removeClass().addClass('alert alert-sm alert-warning').text('Insecure Device').fadeIn(1000); 3373 } 3374 else 3375 if (data.indexOf('passNotSafe|') === 0) 3376 { 3377 var msg = data.substring('passNotSafe|'.length); 3378 if (!msg) { 3379 msg = 'Password tidak aman! Gunakan password yang lebih kuat.'; 3380 } 3381 3382 $status 3383 .removeClass() 3384 .addClass('alert alert-sm alert-warning') 3385 .text(msg) 3386 .fadeIn(1000); 3387 3388 $('#desktopregister #reg_pass').addClass('is-invalid'); 3389 } 3390 3391 $('#desktopregister #capverifikasi').html(ver); 3392 3393 }}) 3394 .fail(function() { 3395 $status.removeClass().addClass('alert alert-sm alert-warning').text('Koneksi gagal, coba lagi').fadeIn(1000); 3396 $('#desktopregister #capverifikasi').html(ver); 3397 }); 3398 } 3399 3400 jtWithIframeCaptchaRegister($form, false, function () { 3401 jtWithTurnstileRegister($form, function () { 3402 jtWithRecaptchaRegisterToken($form, $status, submitDesktopRegister); 3403 }); 3404 }, function (msg) { 3405 $status.removeClass().addClass('alert alert-sm alert-warning').text(msg || 'Verifikasi Kosong').fadeIn(1000); 3406 }); 3407 return false; 3408}); 3409 </script>
3409 3410 3411
3411<script> 3412 3413 function onlyNumber(n) { 3414 return n.replace(/\D/g, ''); 3415 } 3416 3417 3418 $(document).on("keyup", "#mobileregister #reg_rek, #mobileregister #reg_telpon", function() 3419 { 3420 var rek = $(this).val(); 3421 rek = onlyNumber(rek); 3422 if (isNaN(rek)) rek = ''; 3423 $(this).val(rek); 3424 }); 3425 3426// 3427$(document).on("change", '#mobileregister #reg_dari', function() 3428 { 3429 inputdari = $('#mobileregister #reg_dari').val(); 3430 3431 if (inputdari == 'Lain-lain') 3432 { 3433 $('#mobileregister #reg_lain').show(); 3434 } 3435 else 3436 { 3437 $('#mobileregister #reg_lain').hide(); 3438 } 3439 }); 3440 3441 3442$(document).on("click", "#mobileregister #buttonRegister", function() 3443 { 3444 3445 nocache = new Date().getTime().toString().slice(-3); 3446 3447 var ver = `<img src=\"mcapreg.php?${nocache}\" width=\"100%\" style=\"height: 40px; width: 100%; border-radius: 5px;margin-top: -3px;\" alt=\"Kode verifikasi\">`; 3448 var $form = $('#mobileregister #formRegister'); 3449 var $status = $('#mobileregister #statusRegister'); 3450 $status.removeClass().addClass('alert alert-sm alert-success').text('Validating').fadeIn(1000); 3451 3452 function submitMobileRegister() { 3453 3454 3455 3456 $.ajax({ 3457 url: "/api/front/register", 3458 type: "POST", 3459 data: $form.serialize(), 3460 headers: { 'X-CSRF-Token': window.JT_CSRF_TOKEN || '' }, 3461 success: function(data) 3462 { 3463 $('.is-invalid').removeClass('is-invalid'); 3464 3465 if (data == 'success') 3466 { 3467 3468 toast('Registrasi Sukses!, Selamat Bergabung.', 200); 3469 $status.removeClass().addClass('alert alert-sm alert-success').text('Registrasi Sukses!, Selamat Bergabung.').fadeIn(900); 3470 window.location='/home?welcome'; 3471 } 3472 else 3473 if (data == 'userWrong') 3474 { 3475 $status.removeClass().addClass('alert alert-sm alert-warning').text('Username 6-16 karakter standar (A~Z, a~z, 0~9) dan tanpa spasi!').fadeIn(1000); 3476 $('#mobileregister #reg_username').addClass('is-invalid'); 3477 } 3478 else 3479 if (data == 'passWrong') 3480 { 3481 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus 6 karakter atau lebih').fadeIn(1000); 3482 $('#mobileregister #reg_pass').addClass('is-invalid'); 3483 } 3484 else 3485 if (data == 'passSame') 3486 { 3487 $status.removeClass().addClass('alert alert-sm alert-warning').text('Password harus sama dengan konfirmasi').fadeIn(1000); 3488 $('#mobileregister #reg_passcon').addClass('is-invalid'); 3489 } 3490 else 3491 if (data == 'bankEmpty') 3492 { 3493 $status.removeClass().addClass('alert alert-sm alert-warning').text('Bank harus diisi').fadeIn(1000); 3494 $('#mobileregister #reg_bank').addClass('is-invalid'); 3495 } 3496 else 3497 if (data == 'rekEmpty') 3498 { 3499 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nomor Rekening harus diisi dengan angka saja').fadeIn(1000); 3500 $('#mobileregister #reg_rek').addClass('is-invalid'); 3501 } 3502 else 3503 if (data == 'namaEmpty') 3504 { 3505 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama sesuai rekening harus diisi').fadeIn(1000); 3506 $('#mobileregister #reg_nama').addClass('is-invalid'); 3507 } 3508 else 3509 if (data == 'dbError') 3510 { 3511 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf ada masalah dengan registrasi').fadeIn(1000); 3512 } 3513 else 3514 if (data == 'userExist') 3515 { 3516 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf username tersebut sudah ada').fadeIn(1000); 3517 $('#mobileregister #reg_username').addClass('is-invalid'); 3518 } 3519 else 3520 if (data == 'rekExist') 3521 { 3522 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf no rekening tersebut sudah ada').fadeIn(1000); 3523 $('#mobileregister #reg_rek').addClass('is-invalid'); 3524 } 3525 else 3526 if (data == 'refError') 3527 { 3528 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf tidak ada referal tersebut').fadeIn(1000); 3529 $('#mobileregister #reg_ref').addClass('is-invalid'); 3530 } 3531 else 3532 if (data == 'emailError') 3533 { 3534 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf email tidak valid').fadeIn(1000); 3535 $('#mobileregister #reg_email').addClass('is-invalid'); 3536 } 3537 else 3538 if (data == 'telponEmpty') 3539 { 3540 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon t
3540idak boleh kosong').fadeIn(1000); 3541 $('#mobileregister #reg_telpon').addClass('is-invalid'); 3542 } 3543 else 3544 if (data == 'telponError') 3545 { 3546 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf telpon tidak valid').fadeIn(1000); 3547 $('#mobileregister #reg_telpon').addClass('is-invalid'); 3548 } 3549 else if (data == 'namaError') { 3550 3551 $status.removeClass().addClass('alert alert-sm alert-warning').text('Nama hanya boleh huruf dan spasi').fadeIn(1000); 3552 $('#mobileregister #reg_nama').addClass('is-invalid'); 3553 } 3554 else 3555 if (data == 'dariEmpty') 3556 { 3557 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf silakan dipilih dari mana anda tahu website kami').fadeIn(1000); 3558 $('#mobileregister #reg_dari').addClass('is-invalid'); 3559 } 3560 else 3561 if (data == 'lainEmpty') 3562 { 3563 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf mohon diisi kolom lain-lain').fadeIn(1000); 3564 $('#mobileregister #reg_lain').addClass('is-invalid'); 3565 } 3566 else 3567 if (data == 'caperror') 3568 { 3569 $status.removeClass().addClass('alert alert-sm alert-warning').text('Maaf Verifikasi Salah').fadeIn(1000); 3570 $('#mobileregister #reg_verifikasi').addClass('is-invalid'); 3571 3572 } 3573 else 3574 if (data == 'recaperror') 3575 { 3576 $status.removeClass().addClass('alert alert-sm alert-warning').text('Recaptcha salah, coba lagi').fadeIn(1000); 3577 } 3578 else 3579 if (data == 'iperror') 3580 { 3581 $status.removeClass().addClass('alert alert-sm alert-warning').text('IP Tidak Sesuai').fadeIn(1000); 3582 } 3583 else 3584 if (data == 'capexp') 3585 { 3586 $status.removeClass().addClass('alert alert-sm alert-warning').text('Captcha Expired').fadeIn(1000); 3587 } 3588 else 3589 if (data == 'wait') 3590 { 3591 $status.removeClass().addClass('alert alert-sm alert-warning').text('Silahkan dicoba beberapa saat lagi').fadeIn(1000); 3592 } 3593 else 3594 if (data == 'turnnoevent') 3595 { 3596 window.location.reload(); 3597 } 3598 else 3599 if (data == 'turnblock') 3600 { 3601 $status.removeClass().addClass('alert alert-sm alert-warning').text('Insecure Device').fadeIn(1000); 3602 } 3603 else 3604 if (data.indexOf('passNotSafe|') === 0) 3605 { 3606 var msg = data.substring('passNotSafe|'.length); 3607 if (!msg) { 3608 msg = 'Password tidak aman! Gunakan password yang lebih kuat.'; 3609 } 3610 3611 $status 3612 .removeClass() 3613 .addClass('alert alert-sm alert-warning') 3614 .text(msg) 3615 .fadeIn(1000); 3616 3617 $('#mobileregister #reg_pass').addClass('is-invalid'); 3618 } 3619 3620 $('#mobileregister #capverifikasi').html(ver); 3621 // ke('#mobileregister #content'); 3622 }}) 3623 .fail(function() { 3624 $status.removeClass().addClass('alert alert-sm alert-warning').text('Koneksi gagal, coba lagi').fadeIn(1000); 3625 $('#mobileregister #capverifikasi').html(ver); 3626 }); 3627 } 3628 3629 jtWithIframeCaptchaRegister($form, true, function () { 3630 jtWithTurnstileRegister($form, function () { 3631 jtWithRecaptchaRegisterToken($form, $status, submitMobileRegister); 3632 }); 3633 }, function (msg) { 3634 $status.removeClass().addClass('alert alert-sm alert-warning').text(msg || 'Verifikasi Kosong').fadeIn(1000); 3635 }); 3636 return false; 3637}); 3638 </script>
3638 3639 3640
3640<script> 3641 const currentPath = window.location.pathname.replace(/\/+$/, ''); 3642 const popupElement = document.getElementById('popup'); 3643 3644 if (currentPath === '/register') { 3645 document.getElementById('content')?.scrollIntoView(); 3646 } else if (popupElement && typeof bootstrap !== 'undefined') { 3647 const popupModal = bootstrap.Modal.getOrCreateInstance(popupElement); 3648 popupModal.show(); 3649 } 3650 </script>
3650 3651 3652
3652<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"d8bb6543bece4eaaa2013fc54a07f57f","r":1,"spa":2}' crossorigin="anonymous"></script>
3652 3653</body> 3654</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.