<style> #rollover-injection { display:none!important; } </style> <script> (function () { const TARGET_DATE = '1 July 2026'; const TARGET_TICKET = '923328'; const CHECK_INTERVAL = 500; const MAX_ATTEMPTS = 120; let attempts = 0; let intervalId = null; function normalise(value) { return String(value || '') .replace(/\s+/g, ' ') .trim() .toLowerCase(); } function findTargetDraw() { const draws = document.querySelectorAll('div.draw'); return Array.from(draws).find(function (draw) { const dateElement = draw.querySelector(':scope > .draw_date'); return ( dateElement && normalise(dateElement.textContent) === normalise(TARGET_DATE) ); }) || null; } function findTargetWinner(draw) { const winners = draw.querySelectorAll('.winners > winner'); return Array.from(winners).find(function (winner) { const ticketNumber = winner.querySelector('ticket_number'); return ( ticketNumber && ticketNumber.textContent.trim() === TARGET_TICKET ); }) || null; } function rolloverExists(draw) { const winners = draw.querySelectorAll('.winners > winner'); return Array.from(winners).some(function (winner) { const surname = winner.querySelector('surname'); const amount = winner.querySelector('win_amount'); return ( surname && normalise(surname.textContent) === 'rollover not won' && amount && amount.textContent.trim() === '5000.00' ); }); } function insertRollover() { attempts++; const targetDraw = findTargetDraw(); if (!targetDraw) { console.log( 'Rollover: waiting for draw dated ' + TARGET_DATE, 'Attempt:', attempts ); return false; } console.log('Rollover: target draw found.', targetDraw); if (rolloverExists(targetDraw)) { console.log('Rollover: record already exists.'); return true; } const targetWinner = findTargetWinner(targetDraw); if (!targetWinner) { console.log( 'Rollover: draw found, but ticket ' + TARGET_TICKET + ' was not found.' ); return false; } console.log('Rollover: target winner found.', targetWinner); const rolloverWinner = document.createElement('winner'); rolloverWinner.innerHTML = '<title></title>' + '<surname>Rollover Not Won</surname>' + '<location></location>' + '<win_amount>5000.00</win_amount>' + '<ticket_number></ticket_number>'; targetWinner.insertAdjacentElement( 'afterend', rolloverWinner ); console.log( 'Rollover: record successfully inserted.', rolloverWinner ); return true; } function startChecking() { if (intervalId !== null) { return; } if (insertRollover()) { return; } intervalId = window.setInterval(function () { if (insertRollover() || attempts >= MAX_ATTEMPTS) { window.clearInterval(intervalId); intervalId = null; if (attempts >= MAX_ATTEMPTS) { console.warn( 'Rollover: stopped after ' + MAX_ATTEMPTS + ' attempts.' ); } } }, CHECK_INTERVAL); } startChecking(); /* * Reinsert the record if another script rebuilds the results markup. */ const observer = new MutationObserver(function () { const targetDraw = findTargetDraw(); if ( targetDraw && !rolloverExists(targetDraw) && intervalId === null ) { attempts = 0; startChecking(); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); })(); </script>
If this is your winning number, you will receive your winning cheque from us in the post within 10 working days of the draw.
If you have not received your winnings within 10 working days, you can contact our fundraising team at customercare@firefighterscharity.org.uk
Sorry, that number has not won in any of our recent draws. Keep checking and maybe you will be a winner next week!