1 2(function(){ 3 // modal 4 const overlay=document.querySelector('.modalOverlay'); 5 function openModal(id){ 6 const m=document.getElementById(id); 7 if(!m) return; 8 overlay && overlay.classList.add('open'); 9 m.classList.add('open'); 10 m.style.display='flex'; 11 } 12 function closeAll(){ 13 document.querySelectorAll('.modal').forEach(m=>{m.classList.remove('open'); m.style.display='none';}); 14 overlay && overlay.classList.remove('open'); 15 } 16 document.querySelectorAll('[data-modal]').forEach(el=>{ 17 el.addEventListener('click',()=>openModal(el.getAttribute('data-modal'))); 18 }); 19 document.querySelectorAll('[data-close]').forEach(el=>el.addEventListener('click',closeAll)); 20 overlay && overlay.addEventListener('click',closeAll); 21 22 // categories + search (list pages) 23 function setCat(cat){ 24 document.querySelectorAll('.cats button').forEach(b=>b.classList.toggle('active', b.dataset.cat===cat)); 25 document.querySelectorAll('[data-item]').forEach(it=>{ 26 const c=it.dataset.cat||'best'; 27 it.style.display = (cat===c) ? '' : 'none'; 28 }); 29 } 30 window.rlpCat=setCat; 31 32 const search=document.getElementById('rlp-search'); 33 window.rlpSearch=function(val){ 34 const q=(val||'').toLowerCase().trim(); 35 document.querySelectorAll('[data-item]').forEach(it=>{ 36 const t=(it.dataset.title||'').toLowerCase(); 37 it.style.display = t.includes(q) ? '' : 'none'; 38 }); 39 } 40 if(search){ search.addEventListener('input', e=>window.rlpSearch(e.target.value)); } 41 42 // default cat best 43 const btn=document.querySelector('.cats button[data-cat="best"]'); 44 if(btn) setCat('best'); 45})(); 46 47// (function () { 48// function initDownloadTargets() { 49// // 1) .claim éç button 50// var claimBtn = document.querySelector('.claim button'); 51// if (claimBtn) { 52// claimBtn.setAttribute('data-download', 'down-now'); 53 54// // 让å onclick 失æ 55// claimBtn.removeAttribute('onclick'); 56// claimBtn.onclick = null; 57// } 58 59// // 2) åºé¨ sticky ç a 60// var stickyBtn = document.querySelector('.sticky-btn'); 61// if (stickyBtn) { 62// stickyBtn.setAttribute('data-download', 'down-now'); 63 64// // 让å href / target 失æï¼ä½ä¿çç¹å»æ¬èº« 65// stickyBtn.removeAttribute('href'); 66// stickyBtn.removeAttribute('target'); 67// stickyBtn.removeAttribute('rel'); 68 69// // 鲿¢æåç onclick 70// stickyBtn.removeAttribute('onclick'); 71// stickyBtn.onclick = null; 72// } 73// } 74 75// if (document.readyState === 'loading') { 76// document.addEventListener('DOMContentLoaded', initDownloadTargets); 77// } else { 78// initDownloadTargets(); 79// } 80// })(); 81 82(function () { 83 function markDownloadImages() { 84 document.querySelectorAll('img[src*="all-rummy-bonus-banner"]').forEach(function (img) { 85 img.setAttribute('data-download', 'down-now'); 86 }); 87 } 88 89 if (document.readyState === 'loading') { 90 document.addEventListener('DOMContentLoaded', markDownloadImages); 91 } else { 92 markDownloadImages(); 93 } 94 95 var observer = new MutationObserver(function () { 96 markDownloadImages(); 97 }); 98 99 observer.observe(document.body, { 100 childList: true, 101 subtree: true 102 }); 103 104 setTimeout(markDownloadImages, 500); 105 setTimeout(markDownloadImages, 1500); 106 setTimeout(markDownloadImages, 3000); 107})(); 108 109 110document.addEventListener('DOMContentLoaded', function () { 111 const slider = 112 document.querySelector('.home-hero-slider') || 113 document.querySelector('.heroWrap.slider'); 114 115 if (!slider) return; 116 117 const imgs = slider.querySelectorAll('img'); 118 if (!imgs.length) return; 119 120 let index = 0; 121 122 imgs.forEach(function (img, i) { 123 img.classList.toggle('active', i === 0); 124 }); 125 126 setInterval(function () { 127 const oldIndex = index; 128 const newIndex = (index + 1) % imgs.length; 129 130 // éç¹ï¼å 让æ°å¾åºç° 131 imgs[newIndex].classList.add('active'); 132 133 // çæ°å¾æ·¡å ¥åï¼åéèæ§å¾ 134 setTimeout(function () { 135 imgs[oldIndex].classList.remove('active'); 136 }, 450); 137 138 index = newIndex; 139 }, 3000); 140}); 141 142 143// // ads-insert.js 144// document.addEventListener("DOMContentLoaded", function () { 145 146// // å½åé¡µé¢ slugï¼å»æé¦å°¾ /ï¼ 147// const currentSlug = window.location.pathname.replace(/^\/|\/$/g, ''); 148 149// // 页é¢å¹¿åé ç½® 150// const adConfig = { 151// "rummy-wealth": [ 152// { afterRank: 2, image: "https://allrummybonus.com/wp-content/uploads/2026/05/best-rummy-app.webp", link: "https://allrummybonus.com" } 153// ] 154// // å ¶ä»é¡µé¢å¯ç»§ç»æ·»å 155// // "rummy-noble": [ 156// // { afterRank: 3, image: "https://ä½ çåå.com/noble-ad.webp", link: "https://xxx.com" } 157// // ] 158// }; 159 160// // 妿å½å页颿²¡æé 置广åï¼ç´æ¥éåº 161// if (!adConfig[currentSlug]) return; 162 163// // è·åææ row 164// const rows = document.querySelectorAll('.list .row'); 165 166// // æå ¥å¹¿å 167// adConfig[currentSlug].forEach(ad => { 168// rows.forEach(row => { 169// const rankEl = row.querySelector('.rank'); 170// if (!rankEl) return; 171// const rank = parseInt(rankEl.textContent.trim()); 172// if (rank === ad.afterRank) { 173// const adBox = document.createElement('div'); 174// adBox.className = 'custom-inline-ad'; 175// adBox.innerHTML = `
176// <a href="${ad.link}" target="_blank" rel="nofollow noopener noreferrer"> 177// <img src="${ad.image}" alt="Advertisement"> 178// </a> 179// `; 180// // æå ¥å° hr åé¢ 181// const hr = row.nextElementSibling; 182// if (hr && hr.classList.contains('hr')) { 183// hr.insertAdjacentElement('afterend', adBox); 184// } 185// } 186// }); 187// }); 188 189// }); 190 191 192//document.addEventListener("DOMContentLoaded", function () { 193 194 /* å½åé¡µé¢ slugï¼ä¾å¦ /rummy-wealth/ => rummy-wealth */ 195// const currentSlug = window.location.pathname.replace(/^\/|\/$/g, ""); 196 197// /* é ç½®ï¼æå®é¡µé¢ + æå®æå ¥ä½ç½® */ 198// const insertConfig = { 199// "rummy-wealth": [ 200// { 201// afterRank: 2, // æå ¥å°ç¬¬2个ä¸é¢ 202 203// rank: 99, 204// name: "Jaiho 91", 205// icon: "https://allrummybonus.com/wp-content/uploads/2026/05/Jaiho-91.webp", 206// url: "https://www.rummyskill.com/gourl/?p=jiaho91", 207// installs: "320K+", 208// bonus: "Rs.51", 209// min: "â¹50" 210// } 211// ] 212 213 /* 214 å颿¢é¡µé¢è¿æ ·å ï¼ 215 216 "rummy-noble": [ 217 { 218 afterRank: 3, 219 rank: 88, 220 name: "Dash Rummy", 221 icon: "https://allrummybonus.com/wp-content/uploads/2025/12/Dash-Rummy-150x150.webp", 222 url: "https://allrummybonus.com/dash-rummy/", 223 installs: "410K+", 224 bonus: "Rs.75", 225 min: "â¹100" 226 } 227 ] 228 */ 229 // }; 230 231// if (!insertConfig[currentSlug]) return; 232 233// const rows = document.querySelectorAll(".list .row"); 234 235// insertConfig[currentSlug].forEach(function (item) { 236 237// rows.forEach(function (row) { 238 239// const rankEl = row.querySelector(".rank"); 240// if (!rankEl) return; 241 242// const rankNum = parseInt(rankEl.textContent.trim(), 10); 243// if (rankNum !== item.afterRank) return; 244 245// /* 鲿¢éå¤æå ¥ */ 246// const insertId = "insert-row-" + currentSlug + "-" + item.afterRank + "-" + item.name.toLowerCase().replace(/\s+/g, "-"); 247// if (document.getElementById(insertId)) return; 248 249// const newHr = document.createElement("div"); 250// newHr.className = "hr"; 251 252// const newRow = document.createElement("div"); 253// newRow.className = "row inserted-app-row"; 254// newRow.id = insertId; 255 256// newRow.innerHTML = ` 257// <div class="rank">*</div> 258 259// <img 260// class="icon" 261// src="${item.icon}" 262// alt="${item.name}" 263// loading="lazy" 264// > 265 266// <div class="meta"> 267// <h3 class="name">${item.name}</h3> 268 269// <h4 class="sub"> 270// ⬠${item.installs} | Bonus ${item.bonus} 271// </h4> 272 273// <h5 class="min"> 274// Min. Withdrawal ${item.min} 275// </h5> 276// </div> 277 278// <a class="dlBtn" href="${item.url}" target="_blank" rel="nofollow noopener noreferrer"> 279// Download 280// </a> 281// `; 282 283// const hr = row.nextElementSibling; 284 285// if (hr && hr.classList.contains("hr")) { 286// hr.insertAdjacentElement("afterend", newRow); 287// newRow.insertAdjacentElement("afterend", newHr); 288// } else { 289// row.insertAdjacentElement("afterend", newRow); 290// newRow.insertAdjacentElement("afterend", newHr); 291// } 292 293// }); 294 295// }); 296 297// }); 298 299 300// document.addEventListener("DOMContentLoaded", function () { 301// const style = document.createElement("style"); 302// style.textContent = ` 303// .custom-download-title { 304// margin: 50px 0 6px; 305// padding: 6px 10px; 306// background: linear-gradient(90deg, #d84b4b, #ef6a6a); 307// color: #fff; 308// font-size: 14px; 309// font-weight: 700; 310// text-align: center; 311// line-height: 1.2; 312// border: 1px solid #fff; 313// border-radius: 2px; 314// box-shadow: 0 1px 2px rgba(0,0,0,.12); 315// } 316 317// .custom-download-row { 318// display: flex; 319// flex-wrap: nowrap; 320// gap: 8px; 321// margin: 6px 0 10px; 322// padding: 0 0 8px; 323// overflow-x: auto; 324// overflow-y: hidden; 325// max-width: 100%; 326// box-sizing: border-box; 327// -webkit-overflow-scrolling: touch; 328// scroll-snap-type: x mandatory; 329// } 330 331// .custom-download-row::-webkit-scrollbar {
332// display: none; 333// } 334 335// .custom-download-row { 336// scrollbar-width: none; 337// } 338 339// .custom-download-item { 340// flex: 0 0 calc((100% - 24px) / 4); 341// width: calc((100% - 24px) / 4); 342// min-width: calc((100% - 24px) / 4); 343// max-width: calc((100% - 24px) / 4); 344// text-decoration: none; 345// text-align: center; 346// display: block; 347// scroll-snap-align: start; 348// } 349 350// .custom-download-icon { 351// width: 100%; 352// max-width: 72px; 353// aspect-ratio: 1 / 1; 354// object-fit: cover; 355// border-radius: 9px; 356// display: block; 357// margin: 0 auto 3px; 358// } 359 360// .custom-download-btn { 361// background: #00b050; 362// color: #fff; 363// font-size: 10px; 364// font-weight: 700; 365// line-height: 1; 366// padding: 3px 5px; 367// border-radius: 4px; 368// display: inline-block; 369// white-space: nowrap; 370// } 371// `; 372// document.head.appendChild(style); 373// const currentSlug = window.location.pathname.replace(/^\/|\/$/g, ""); 374 375// /* 376// default = å ¨é¨é¡µé¢é½æ¾ç¤ºè¿ä¸ç» 377// 妿æä¸ªé¡µé¢æ³åç¬è®¾ç½®ï¼å°±ååå®èªå·±ç slug 378// */ 379// const downloadRowConfig = { 380// "rummy-wealth": [ 381// { 382// apps: [ 383// { 384// icon: "https://allrummybonus.com/wp-content/uploads/2026/06/Rummy-Ultra-150x150.webp", 385// url: "https://allrummybonus.com/rummy-ultra/" 386// }, 387// { 388// icon: "https://allrummybonus.com/wp-content/uploads/2026/06/765-Club-150x150.webp", 389// url: "https://allrummybonus.com/765-club/" 390// }, 391// { 392// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/Rummy-Mars-150x150.webp", 393// url: "https://allrummybonus.com/rummy-mars/" 394// }, 395// { 396// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/Rummy-Wealth-2-150x150.webp", 397// url: "https://allrummybonus.com/rummy-wealth/" 398// }, 399// { 400// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/Rummy-Noble-app-150x150.webp", 401// url: "https://allrummybonus.com/rummy-noble/" 402// }, 403// { 404// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/rummy-leader-apk-150x150.webp", 405// url: "https://allrummybonus.com/rummy-leader/" 406// }, 407// { 408// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/yono-rummy-150x150.webp", 409// url: "https://allrummybonus.com/yono-rummy/" 410// } 411// ] 412// } 413// ], 414 415// /* 416// æä¸ªé¡µé¢æ³åç¬ä¸åï¼å°±è¿æ ·åï¼ä¼è¦ç defaultï¼ 417 418// "rummy-wealth": [ 419// { 420// apps: [ 421// { 422// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/Rummy-Wealth-150x150.webp", 423// url: "https://allrummybonus.com/rummy-wealth/" 424// }, 425// { 426// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/yono-rummy-150x150.webp", 427// url: "https://allrummybonus.com/yono-rummy/" 428// }, 429// { 430// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/Rummy-Noble-app-150x150.webp", 431// url: "https://allrummybonus.com/rummy-noble/" 432// }, 433// { 434// icon: "https://allrummybonus.com/wp-content/uploads/2025/12/rummy-leader-apk-150x150.webp", 435// url: "https://allrummybonus.com/rummy-leader/" 436// } 437// ] 438// } 439// ] 440// */ 441// }; 442 443// const rowsToInsert = downloadRowConfig[currentSlug] || downloadRowConfig["default"]; 444 445// if (!rowsToInsert) return; 446 447// const claimEl = document.querySelector(".claim"); 448// if (!claimEl) return; 449 450// if (document.querySelector(".custom-download-row")) return; 451 452// const titleDiv = document.createElement("div"); 453// titleDiv.className = "custom-download-title"; 454// titleDiv.textContent = "Recommended by other users"; 455 456// claimEl.insertAdjacentElement("afterend", titleDiv); 457 458// let insertAfter = titleDiv; 459 460// rowsToInsert.forEach(function (row) { 461 462// const rowDiv = document.createElement("div"); 463// rowDiv.className = "custom-download-row"; 464 465// row.apps.forEach(function (app) { 466 467// const item = document.createElement("a"); 468// item.className = "custom-download-item"; 469// item.href = app.url; 470// item.target = "_blank"; 471// item.rel = "nofollow noopener noreferrer"; 472 473// item.innerHTML = `
474// <img class="custom-download-icon" src="${app.icon}" alt="Download" loading="lazy"> 475// <div class="custom-download-btn">ð Download</div> 476// `; 477 478// rowDiv.appendChild(item); 479 480// }); 481 482// insertAfter.insertAdjacentElement("afterend", rowDiv); 483// insertAfter = rowDiv; 484 485// }); 486 487// });
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.