1document.addEventListener('DOMContentLoaded', function() { 2 3 const closeBtn = document.querySelector('.close-btn'); 4 const banner = document.querySelector('.banner'); 5 6 if (closeBtn && banner) { 7 closeBtn.addEventListener('click', function() { 8 banner.style.display = 'none'; 9 }); 10 } 11 12 13 const providers = document.querySelectorAll('.provider'); 14 15 if (providers.length > 0) { 16 providers.forEach(provider => { 17 provider.addEventListener('click', function() { 18 19 providers.forEach(p => p.classList.remove('active')); 20 21 this.classList.add('active'); 22 23 24 console.log('switch', this.querySelector('span').textContent); 25 }); 26 }); 27 } 28 29 30 const favoriteBtns = document.querySelectorAll('.favorite-btn'); 31 32 if (favoriteBtns.length > 0) { 33 favoriteBtns.forEach(btn => { 34 btn.addEventListener('click', function(e) { 35 e.stopPropagation(); 36 37 const icon = this.querySelector('i'); 38 if (icon.classList.contains('far')) { 39 icon.classList.remove('far'); 40 icon.classList.add('fas'); 41 } else { 42 icon.classList.remove('fas'); 43 icon.classList.add('far'); 44 } 45 46 47 const gameTitle = this.closest('.game-card').querySelector('.game-title').textContent; 48 console.log('/', gameTitle); 49 }); 50 }); 51 } 52 53 54 const gameCards = document.querySelectorAll('.game-card'); 55 56 if (gameCards.length > 0) { 57 gameCards.forEach(card => { 58 card.addEventListener('click', function() { 59 const gameName = this.querySelector('.game-title').textContent; 60 console.log('open game', gameName); 61 62 63 }); 64 }); 65 } 66 67 68 const navItems = document.querySelectorAll('.nav-item'); 69 70 if (navItems.length > 0) { 71 navItems.forEach(item => { 72 item.addEventListener('click', function() { 73 const navName = this.querySelector('span').textContent; 74 console.log('navif', navName); 75 76 77 if (this.classList.contains('deposit')) { 78 alert('open charge'); 79 return; 80 } 81 82 83 const targetSection = this.getAttribute('data-target'); 84 if (targetSection) { 85 86 if (navName === 'top') { 87 88 window.scrollTo({ 89 top: 0, 90 behavior: 'smooth' 91 }); 92 return; 93 } 94 95 const targetElement = document.querySelector(`.${targetSection}`); 96 if (targetElement) { 97 98 targetElement.scrollIntoView({ behavior: 'smooth' }); 99 } 100 } 101 }); 102 }); 103 } 104 105 106 function createWinningMessage() { 107 const winners = [ 108 '98*****58 acaba de ganhar 500 na FORTUNE TIGER', 109 '92*****20 acaba de ganhar 1200 na FORTUNE OX', 110 '96*****73 acaba de ganhar 800 na JUNGLE DELIGHT', 111 '93*****88 acaba de ganhar 1500 na GIRE E GANHE' 112 ]; 113 114 const winInfoElement = document.querySelector('.winner-id'); 115 if (winInfoElement) { 116 setInterval(() => { 117 const randomIndex = Math.floor(Math.random() * winners.length); 118 winInfoElement.textContent = winners[randomIndex]; 119 120 121 winInfoElement.style.opacity = '0'; 122 setTimeout(() => { 123 winInfoElement.style.opacity = '1'; 124 }, 500); 125 }, 8000); 126 } 127 } 128 129 createWinningMessage(); 130 131 132 function randomizeGameTextColors() { 133 const gameTexts = document.querySelectorAll('.game-text'); 134 const colors = ['#f8d84f', '#ff6b6b', '#4ecdc4', '#ff8c42', '#a786df']; 135 136 if (gameTexts.length > 0) {
137 gameTexts.forEach(text => { 138 const randomColor = colors[Math.floor(Math.random() * colors.length)]; 139 text.style.color = randomColor; 140 }); 141 } 142 } 143 144 randomizeGameTextColors(); 145 146 147 function updateOfferCountdown() { 148 const countdownElement = document.getElementById('offer-countdown'); 149 if (!countdownElement) return; 150 151 152 const now = new Date(); 153 const endOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59); 154 155 function updateTimer() { 156 const now = new Date(); 157 const diff = endOfDay - now; 158 159 if (diff <= 0) { 160 countdownElement.textContent = "00:00:00"; 161 return; 162 } 163 164 const hours = Math.floor(diff / (1000 * 60 * 60)); 165 const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); 166 const seconds = Math.floor((diff % (1000 * 60)) / 1000); 167 168 countdownElement.textContent = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`; 169 } 170 171 updateTimer(); 172 setInterval(updateTimer, 1000); 173 } 174 175 updateOfferCountdown(); 176 177 178 179 180 function addPromoCardHoverEffect() { 181 const promoCards = document.querySelectorAll('.promo-card'); 182 if (promoCards.length > 0) { 183 promoCards.forEach(card => { 184 card.addEventListener('mouseenter', function() { 185 this.style.transform = 'translateY(-5px)'; 186 this.style.boxShadow = '0 5px 15px rgba(0,0,0,0.3)'; 187 this.style.transition = 'all 0.3s ease'; 188 }); 189 190 card.addEventListener('mouseleave', function() { 191 this.style.transform = 'translateY(0)'; 192 this.style.boxShadow = 'none'; 193 }); 194 195 196 card.addEventListener('touchstart', function() { 197 this.style.transform = 'translateY(-5px)'; 198 this.style.boxShadow = '0 5px 15px rgba(0,0,0,0.3)'; 199 this.style.transition = 'all 0.3s ease'; 200 }); 201 202 card.addEventListener('touchend', function() { 203 this.style.transform = 'translateY(0)'; 204 this.style.boxShadow = 'none'; 205 }); 206 }); 207 } 208 } 209 210 addPromoCardHoverEffect(); 211 212 213 function animateCashbackProgress() { 214 const progressFill = document.querySelector('.progress-fill'); 215 if (progressFill) { 216 217 progressFill.style.width = '0%'; 218 219 220 setTimeout(() => { 221 progressFill.style.transition = 'width 1.5s ease-out'; 222 progressFill.style.width = '32.5%'; 223 }, 500); 224 } 225 } 226 227 animateCashbackProgress(); 228 229 230 function startPromotionCountdown() { 231 let hours = 23; 232 let minutes = 59; 233 let seconds = 59; 234 235 const promotionElement = document.createElement('div'); 236 promotionElement.className = 'promotion-countdown'; 237 promotionElement.innerHTML = ` 238 <div class="countdown-header">bonus countdown</div> 239 <div class="countdown-timer"> 240 <span class="hours">${hours}</span>: 241 <span class="minutes">${minutes}</span>: 242 <span class="seconds">${seconds}</span> 243 </div> 244 `; 245 246 document.querySelector('.app-container').appendChild(promotionElement); 247 248 const hoursElement = promotionElement.querySelector('.hours'); 249 const minutesElement = promotionElement.querySelector('.minutes'); 250 const secondsElement = promotionElement.querySelector('.seconds'); 251 252 const countdownInterval = setInterval(() => { 253 if (seconds > 0) { 254 seconds--; 255 } else { 256 seconds = 59; 257 if (minutes > 0) { 258 minutes--; 259 } else { 260 minutes = 59; 261 if (hours > 0) { 262 hours--; 263 } else { 264 clearInterval(countdownInterval); 265 promotionElement.innerHTML = '<div class="countdown-header">bonus end</div>'; 266 return; 267 } 268 } 269 } 270 271 hoursElement.textContent = hours < 10 ? '0' + hours : hours; 272 minutesElement.textContent = minutes < 10 ? '0' + minutes : minutes; 273 secondsElement.textContent = seconds < 10 ? '0' + seconds : seconds; 274 }, 1000); 275 } 276 277 278 279});
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.