Beasley Detroit Contest Rules Form



























Generated Contest Rules

document.addEventListener("DOMContentLoaded", function () { // Initialize Flatpickr for the start and end date inputs flatpickr("#startDate", { dateFormat: "Y-m-d", }); flatpickr("#endDate", { dateFormat: "Y-m-d", }); flatpickr("#contestPick", { dateFormat: "Y-m-d", }); flatpickr("#showDate", { dateFormat: "Y-m-d", }); }); function updateContestType() { const contestType = document.getElementById('contestType').value; if (contestType === 'Generic Contest') { resetForm(); } updateStationWeb(); } function updateStationWeb() { const stationBrand = document.getElementById('stationBrand').value; const contestType = document.getElementById('contestType').value; const stationWeb = document.getElementById('stationWeb'); const rulesLink = document.getElementById('rulesLink'); const programSection = document.getElementById('programSection'); const programSelect = document.getElementById('program'); const stationWebsites = { 'WRIF': 'wrif.com', 'WCSX': 'wcsx.com', '105.9 Kiss FM': 'kissfmdetroit.com', '105.1 The Bounce': '1051thebounce.com' }; const stationLinks = { 'WRIF': 'https://www.wrif.com', 'WCSX': 'https://www.wcsx.com', '105.9 Kiss FM': 'https://www.kissfmdetroit.com', '105.1 The Bounce': 'https://www.1051thebounce.com' }; const rulesLinks = { 'WRIF': 'https://wrif.com/rules/', 'WCSX': 'https://wcsx.com/rules/', '105.9 Kiss FM': 'https://kissfmdetroit.com/kiss-detroit-master-rules/', '105.1 The Bounce': 'https://1051thebounce.com/bounce-master-rules/' }; stationWeb.value = `${stationWebsites[stationBrand]}`; rulesLink.value = rulesLinks[stationBrand]; programSelect.innerHTML = ''; // Default None option if (stationBrand === '105.9 Kiss FM') { programSelect.innerHTML += ` `; programSection.style.display = 'block'; } else if (stationBrand === '105.1 The Bounce') { programSelect.innerHTML += ` `; programSection.style.display = 'block'; } else { programSection.style.display = 'none'; } if (contestType === 'Generic Contest') { document.getElementById('startTime').value = '12:00 AM'; document.getElementById('endTime').value = '11:59 PM'; } } function resetForm() { document.getElementById('startTime').value = '12:00 AM'; document.getElementById('endTime').value = '11:59 PM'; document.getElementById('startDate').value = ''; document.getElementById('endDate').value = ''; document.getElementById('contestPick').value = ''; document.getElementById('showTitle').value = ''; document.getElementById('showDate').value = ''; document.getElementById('approximateValue').value = ''; document.getElementById('stationBrand').selectedIndex = 0; document.getElementById('programSection').style.display = 'none'; document.getElementById('program').innerHTML = ''; } function updateProgramTimes() { const selectedProgram = document.getElementById('program').value; const startTime = document.getElementById('startTime'); const endTime = document.getElementById('endTime'); const programTimes = { 'Tune-Up Man': { start: '3:00 pm', end: '7:00 pm' }, 'Jessica': { start: '12:00 pm', end: '3:00 pm' }, 'The Morning Bounce': { start: '6:00 am', end: '10:00 am' }, 'Kayla': { start: '10:00 am', end: '3:00 pm' }, 'J. Steele': { start: '3:00 pm', end: '7:00 pm' }, 'Weekend Winning': { start: '9:00 am', end: '7:00 pm' }, 'None': { start: '', end: '' } }; startTime.value = programTimes[selectedProgram].start; endTime.value = programTimes[selectedProgram].end; if (selectedProgram === 'Weekend Winning') { updateWeekendWinningEndDate(); } } function updateWeekendWinningEndDate() { const startDate = new Date(document.getElementById('startDate').value); if (isNaN(startDate)) return; const endDate = new Date(startDate); endDate.setDate(endDate.getDate() + (7 - endDate.getDay())); // Set to Sunday after start date const year = endDate.getFullYear(); const month = (endDate.getMonth() + 1).toString().padStart(2, '0'); const day = endDate.getDate().toString().padStart(2, '0'); document.getElementById('endDate').value = `${year}-${month}-${day}`; updateContestPickDate(); } function updateContestPickDate() { const endDate = new Date(document.getElementById('endDate').value); if (isNaN(endDate)) return; const contestPickDate = new Date(endDate); contestPickDate.setDate(contestPickDate.getDate() + (1 + 7 - contestPickDate.getDay()) % 7); // Set to next Monday const year = contestPickDate.getFullYear(); const month = (contestPickDate.getMonth() + 1).toString().padStart(2, '0'); const day = contestPickDate.getDate().toString().padStart(2, '0'); document.getElementById('contestPick').value = `${year}-${month}-${day}`; } function formatDate(dateString) { const [year, month, day] = dateString.split('-'); const date = new Date(year, month - 1, day); // month is zero-indexed const options = { year: 'numeric', month: 'long', day: 'numeric' }; return date.toLocaleDateString('en-US', options); } function generateRules() { const startTime = document.getElementById('startTime').value; const endTime = document.getElementById('endTime').value; const startDate = formatDate(document.getElementById('startDate').value); const endDate = formatDate(document.getElementById('endDate').value); const contestPick = formatDate(document.getElementById('contestPick').value); const showTitle = document.getElementById('showTitle').value; const showDateValue = document.getElementById('showDate').value; const showDate = showDateValue ? `on ${formatDate(showDateValue)}` : ''; // Only include "on ${showDate}" if showDate is filled out const approximateValue = document.getElementById('approximateValue').value; const stationBrand = document.getElementById('stationBrand').value; const stationWeb = document.getElementById('stationWeb').value; const rulesLink = document.getElementById('rulesLink').value; const program = document.getElementById('program').value; const prizeSelection = document.getElementById('prize').value; const winnerCount = document.getElementById('numberOfWinners').value; let howToEnterText = `

To enter, listen to ${stationBrand} between these hours for the announcement of a unique contest keyword. Once you hear the keyword, visit ${stationWeb} and follow the links and instructions to enter the contest by completing and submitting the online entry form, including the keyword.

`; if (document.getElementById('contestType').value === 'Generic Contest') { howToEnterText = `

To enter, visit ${stationWeb} and follow the links and instructions to enter the contest by completing and submitting the online entry form.

`; } const rules = `

How to Enter

Contest Period: The contest will begin at ${startTime} on ${startDate}, and end at ${endTime} on ${endDate}.

${howToEnterText}

Eligibility Restrictions

This contest is open to all ${stationBrand} listeners 18 years of age or older as of the date of entry, legal US residents, and residing in the Detroit Metro Area. Winners must possess a valid, government-issued ID and show proof of residency to verify eligibility.

Prizes

The prize is ${prizeSelection} to ${showTitle} ${showDate}. The approximate retail value (ARV) of the prize is ${approximateValue}. Prizes may be digital, and the winner will receive an email with instructions on redeeming tickets once digital tickets are available. Tickets are not refundable or transferable and may not be substituted or exchanged for cash or credit at any time, nor will tickets be replaced if lost or stolen. If a prize-related event cannot occur as scheduled, ${stationBrand}'s sole responsibility to the winner(s) will be to award the remaining available elements of the prize(s).

Winner Selection and Notification

Up to ${winnerCount} will be selected on ${contestPick}, at approximately 10:00 am ET in a ${stationBrand}-conducted random drawing from all combined eligible text messages and online entries received. Potential prize winners will promptly be notified by phone and email following the random drawing. The winner must confirm acceptance of the prize within five (5) days of winning or risk disqualification and selection of an alternate winner (time permitting) in a random drawing of all remaining combined eligible entries.

Conditions

${stationBrand} reserves the right to end any contest or amend these rules upon announcement on air and by publication at ${stationWeb}. By entering this contest, entrants agree to ${stationBrand}’s Terms of Service Agreement and to use personal information as stated in the Privacy Policy at ${stationWeb}. Copies of the written contest rules and a list of all winners are available during regular business hours at the station's main studio, One Radio Plaza, Detroit, MI 48220, or by sending a self-addressed, stamped envelope to ${stationBrand} or by clicking HERE.

${program !== 'None' ? `

This contest also features the ${program} segment.

` : ''}
`; document.getElementById('contestRules').innerHTML = rules; } function saveAsRTF() { const rulesContent = document.getElementById('contestRules').innerHTML; const rtfContent = ` {\\rtf1\\ansi\\deff0 ${rulesContent.replace(/<[^>]+>/g, "").replace(/\s+/g, " ").replace(/ /g, " ").replace(/
/g, "\\par ")} } `; const blob = new Blob([rtfContent], { type: "application/rtf" }); const url = URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = "contest_rules.rtf"; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); }