NFL Week 10 Pick ‘Em: Why Joe Burrow will save the day for the Bengals

Heading into Week 10, the Kansas City Chiefs are still unbeaten at 8-0 following an overtime win on Monday Night Football.

Their NFL odds for the Super Bowl are +400, and you can bet on K.C. and every team at the best online sportsbook, BetMGM.

After looking at this week’s football odds, here are my predictions and picks for this week’s games against the spread:

Cincinnati Bengals vs. Baltimore Ravens
Kicking off Week 10 are the Bengals on the road against the Ravens in their second matchup of the season. The Bengals lost by three in overtime to Baltimore earlier this year despite five touchdown passes from Joe Burrow. He had five touchdown passes again in Week 9 against the Las Vegas Raiders. Burrow’s passing ability will keep this under six points.
PICK: Bengals +6.5 (-120)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_8b6a75b2f621aa8ad46c9af99cef5476’, ‘NFL’, ‘54476ab9-3491-4a7c-80cb-fea915914640’);

New York Giants vs. Carolina Panthers
Given the five-point spread, making a case for either team is difficult, but I will reluctantly side with the Giants. The Panthers allow opposing receivers nearly 140 receiving yards and one touchdown. The Giants have a rookie receiver, Malik Nabers, who has caught seven passes or more in five games. The Panthers won in Week 9, but the QB is still an issue. Bryce Young completed just 61.5 per cent of his passes in that game.
PICK: Giants -5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_cbea22e9d789b114d760770885278462’, ‘NFL’, ‘99300f01-62f0-4829-a685-d5c0b6c4a0f2’);

New England Patriots vs. Chicago Bears
In addition to a fantastic scramble by Patriots quarterback Drake Maye, which resulted in a miraculous TD pass to send last week’s game into overtime, he was effective on the ground, rushing for 95 yards. Bears QB Caleb Williams injured his ankle on the final series of their matchup. Williams is averaging just 174 passing yards over the last two games and hasn’t thrown a touchdown in that span. The Patriots keep this one close, thanks to Maye’s rushing ability to help move the chains.
PICK: Patriots +6.5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_b90f03cc9efdbc6ed60caf9d34ed1332’, ‘NFL’, ‘d0664c51-1740-49ed-b489-afb65cc3bb39’);

San Francisco 49ers vs. Tampa Bay Buccaneers
The Buccaneers are underdogs once again. They lost by six in overtime to the Chiefs as nine-point underdogs. The 49ers will win as the Buccaneers continue to allow ample passing production (291 yards and three touchdowns in Week 9). Still, Buccaneers QB Baker Mayfield, who completed 74.2 per cent of his passes in Week 9, will keep this one close as he continues to work without wide receivers Mike Evans and Chris Godwin.
PICK: Bills -6 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_7bdf54fe8fb5a85a7486b0c26d6108c1’, ‘NFL’, ‘3d4eb251-7fa3-4d18-90de-889d8a267316’);

Denver Broncos vs. Kansas City Chiefs
Chiefs QB Patrick Mahomes is coming off his best game of the season, throwing for 291 yards and three touchdowns in a win over the Buccaneers in overtime. The Broncos defence has allowed five touchdown passes over the past two weeks. Additionally, the Chiefs have held opposing RBs to just 2.88 yards per carry over the last four weeks, allowing just one touchdown. The Chiefs defence and passing attack result in a cover.
PICK: Chiefs -8.5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_ce02fb21072b973f9336cce9b307367c’, ‘NFL’, ‘7c6fbd50-b651-42b6-9e8d-758b27e88ecc’);

Buffalo Bills vs. Indianapolis Colts
The Colts managed just 13 points in Week 9 and take on a Bills team that’s intercepted at least one pass in all but three games. They’ve also only allowed multiple touchdown passes three times this season. Bills QB Josh Allen had three touchdown passes last week. That performance came without WR Amari Cooper, who was out with a wrist/hand injury. The Bills will avoid turnovers, and Allen will continue to throw multiple touchdown passes.
PICK: Bills -4 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_ca800cbfd9d81a99b170e39f9d572682’, ‘NFL’, ’85ad8e2a-4187-4943-aeb3-d978d3352e89′);

Pittsburgh Steelers vs. Washington Commanders
The Commanders have been excellent offensively, but their Achilles heel is opposing RBs. They allow 5.23 yards per carry and 115 rushing yards per game. RBs have scored in all but three games this season. This comes as Steelers RB Najee Harris has run for 102 yards or more in three straight games and has scored two touchdowns in that span. Harris will be the catalyst to keep this within striking distance.
PICK: Steelers +2.5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_ccd037c965c09cf15140dc1b1e292ab0’, ‘NFL’, ‘a7d4d517-a5bf-49a6-9828-5e3a6f1c5737’);

Minnesota Vikings vs. Jacksonville Jaguars
The Vikings allow an average of 271 passing yards per game, but there have been times, like Week 9, when the defence shows up. Against the Colts, the Vikings allowed a single-game low of 179 passing yards. The Vikings also intercept 1.62 passes per outing, and they’ll take on Jaguars QB Trevor Lawrence, who has three interceptions over the past two games. Look for the Vikings to create multiple turnovers and win decisively.
PICK: Vikings -4 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_5798d2450ec5a1808b3b30682eeffbdf’, ‘NFL’, ‘b28247c0-6946-4f14-9a1e-b28c0a1e42cc’);

Atlanta Falcons vs. New Orleans Saints
The Saints fired head coach Dennis Allen on Monday after going 0-7 following a 2-0 start. We could see even more change by the Saints after dealing cornerback Marshon Lattimore to Washington ahead of the Nov. 5 trade deadline. The Saints are a mess, and the Falcons, who have scored 26 points or more in six straight games, will easily win.
PICK: Falcons -3.5 (-105)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_c793829b753e71ae01dc7bcac2312175’, ‘NFL’, ‘63055699-75b9-46d4-8039-140a8bba006d’);

Tennessee Titans vs. Los Angeles Chargers
The Chargers defence is exceptional. Its coming off a game with three interceptions and surrenders fewer than one passing touchdown per game on the season. Against the run, opposing RBs have scored just once on the ground. Neither QB can penetrate this defence, whether the Titans start Mason Rudolph or Will Levis. Rudolph is completing less than 60 per cent of his passes and has the same number of interceptions as touchdowns (four).
PICK: Chargers -7.5 (-115)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_97d416ff4d38ccd9f6db7a7ca6d5b9b4’, ‘NFL’, ‘a4bb6cc0-fabc-441e-a4f4-d8f809e1695e’);

New York Jets vs. Arizona Cardinals
This could be recency bias, but the Jets offence finally came to life in a win against Houston. QB Aaron Rodgers completed 68.8 per cent of his passes for 211 yards, three touchdowns and zero interceptions. The Cardinals will keep this close thanks to their rushing attack, which scored three times in Week 9. However, Cardinals QB Kyler Murray is in for a tough game, as the Jets have allowed only six passing touchdowns all season.
PICK: Jets +1.5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_4e5da730d4d1c0f6ec1e19cee64e4141’, ‘NFL’, ‘b93cae46-a2e7-4889-8141-12c6109f1b06’);

Philadelphia Eagles vs. Dallas Cowboys
The Cowboys are spiraling. They’ve lost three straight games, and now quarterback Dak Prescott is dealing with a hamstring injury that kept him out of the fourth quarter against the Falcons. He’s been placed on injured reserve. Additionally, the Cowboys have given up three passing touchdowns in two of the last three games. Falcons QB Kirk Cousins has thrown seven touchdowns over his last two games.
PICK: Eagles -7.5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_f394994e6b5ea569b6e33ef71f4a27b2’, ‘NFL’, ‘6d5cb94f-b388-4ee2-8ebd-338808bff30b’);

Detroit Lions v. Houston Texans
The Lions, winners of six straight, take on a beat-up Texans roster that scored just 13 points in a Week 9 loss to the Jets. The Texans’ key weapon is RB Joe Mixon. He’ll face a Lions defence that’s given up just six touchdowns to the position this season. QB C.J. Stroud threw zero touchdowns last week and could be in for a repeat. The Lions held Packers QB Jordan Love touchdown-less in Week 9.
PICK: Lions -3 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_c56ddfeb3d9b6098973aee335bc44456’, ‘NFL’, ‘fbc64144-b913-472d-8df9-96db6a2749ae’);

Miami Dolphins vs. Los Angeles Rams
The key to a Rams win here is their run defence. Over the last two weeks, they held the Seahawks and Vikings to 3.37 yards per carry or less and haven’t surrendered a rushing touchdown in three games. The Dolphins have RB De’Von Achane, who can run and catch, but RBs don’t have a receiving touchdown against the Rams this year. The Rams edge this one out.
PICK: Rams -2.5 (-110)

#betmgm-odds {
@media (max-width: 767px) {
margin: 0 20px 20px 20px;
}
}
#betmgm-odds {
@media (min-width: 768px) and (max-width: 1023px) {
width: 83%;
margin: 0px auto 20px auto;
}
}
.betmgmArticle {
font-family: “protipo-narrow”, sans-serif !important;
width: 100%;
padding: 0;
margin-bottom: 24px;
border-radius: 8px;
display: inline-block;
font-family: Arial, sans-serif;
}

.betmgmArticle .header {
font-weight: bold;
margin-bottom: 10px;
display: block;
color: var(–core-sn-blue-800-blue, #06192F);
text-decoration: none;
}

.betmgmArticle .content {
display: flex;
flex-wrap: wrap;
align-items: center;
padding: 20px 10px;
border-radius: 8px;
border: 1px solid var(–Grey-Scale-400-Grey, #CED4DA);
background: var(–Grey-Scale-0-White, #FFF);
}

@media (max-width: 767px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content {
padding: 20px;
}
}
@media (min-width: 1250px) {
.betmgmArticle .content {
padding: 20px 10px;
}
}

.betmgmArticle .section {
width: 82px;
flex: 1;
text-align: center;
}

.betmgmArticle .section .row {
font-size: 14px;
line-height: 22px;
}

.betmgmArticle .section-info {
flex: 2;
}

.betmgmArticle .section-info .gameDate {
color: var(–core-sn-blue-800-blue, #06192F);
text-align: center;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: normal;
margin-bottom: 14px;
}

.betmgmArticle .section-info .team-logo {
width: 48px;
height: 48px;
display: inline-block;
}

.betmgmArticle .section-info .versus {
display: inline-block;
margin: 0 16px;
font-size: 14px;
color: #495057;
font-weight: 500;
}

.betmgmArticle .divider {
width: 1px;
background-color: #ddd;
background: var(–Grey-Scale-400-Grey, #CED4DA);
height: 82px;
margin: 0 16px;
}

.betmgmArticle .title {
text-align: center;
font-weight: bold;
margin-bottom: 8px;
font-size: 16px;
}
@media (max-width: 767px) {
.betmgmArticle .title {
text-align: left;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .title {
text-align: center;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .title {
text-align: left;
}
}

@media (min-width: 1250px) {
.betmgmArticle .title {
text-align: center;
}
}

.betmgmArticle .row {
margin-bottom: 5px;
display: flex;
justify-content: space-between;
margin: 0;
}
.betmgmArticle .row::before {
display: none;
}

.betmgmArticle .value {
font-weight: bold;
}

.betmgmArticle .red {
color: red;
}

.betmgmArticle .green {
color: green;
}

.betmgmArticle .betmgm-button {
cursor: pointer;
}
.betmgmArticle .betmgm-button a {
text-decoration: none;
}

.betmgmArticle .button button {
background-color: #005EB8;
color: white;
padding: 6px 16px 14px 16px;
border: none;
border-radius: 5px;
cursor: pointer;
font-weight: bold;
}

.betmgmArticle .buttonText {
position: relative;
color: #ADB5BD;
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: normal;
text-align: left;
top: -6px;
margin-bottom: 10px;
}

.betmgmArticle .betMGMLogo {
text-align: left;
width: 150px;
height: 42px;

@media (max-width: 767px) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-Black.svg’) no-repeat;
background-size: cover;

@media (prefers-color-scheme: dark) {
background: url(‘../../../wp-content/themes/sportsnet-nhl/images/BetMGM-White.svg’) no-repeat;
}
}
}

.betmgmArticle .betMGMLogo img {
text-align: left;
width: 150px;
height: 42px;
}

.betmgmArticle .content-mobile {
display: flex;
justify-content: space-around;
width: 100%;
margin-top: 20px;
}

@media (max-width: 767px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .content-mobile {
display: none;
}
}

@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .content-mobile {
display: flex;
margin: 20px 0;
}
}

@media (min-width: 1250px) {
.betmgmArticle .content-mobile {
display: none;
}
}

.betmgmArticle .content-mobile .team-logos {
display: flex;
justify-content: flex-start;
width: 100%;
}

.betmgmArticle .content-mobile .team-logos .versus {
display: flex;
align-items: center;
}

.betmgmArticle .content-mobile .gameDate {
text-align: left;
margin-bottom: 8px;
}

.betmgmArticle .content-mobile .buttonText {
text-align: left;
top: 0;
margin-bottom: 12px;
text-decoration: none;
color: #ADB5BD;
}

@media (max-width: 767px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 768px) and (max-width: 1023px) {
.betmgmArticle .desktop-only {
display: block;
}
}
@media (min-width: 1024px) and (max-width: 1249px) {
.betmgmArticle .desktop-only {
display: none;
}
}
@media (min-width: 1250px) {
.betmgmArticle .desktop-only {
display: block;
}
}

async function fetchOddsData(league, gameId) {
const res = await fetch(`https://stats-api.sportsnet.ca/livetracker?league=${league}&id=${gameId}`, {
cache: ‘no-store’,
});

if (!res.ok) {
throw new Error(‘Failed to fetch odds data’);
}

const data = await res.json();
const oddsData = data?.data?.game?.details?.current_line;
const visitingTeam = data?.data?.game?.visiting_team;
const visitingTeamLogo = data?.data?.game?.visiting_team?.image_url_90;
const homeTeam = data?.data?.game?.home_team;
const homeTeamLogo = data?.data?.game?.home_team?.image_url_90;
const gameTimestamp = data?.data?.game?.details?.timestamp;

return { oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp };
}

async function renderBetMGM(componentId, league, gameId) {
let oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp, error;

const container = document.getElementById(componentId + ‘-odds’);
if (!container) return;

try {
({ oddsData, visitingTeam, visitingTeamLogo, homeTeam, homeTeamLogo, gameTimestamp } = await fetchOddsData(league, gameId));
} catch (err) {
error = err.message;
}

if (error) {
container.innerHTML = `

Error: ${error}

`;
return;
}

if (!oddsData) {
container.innerHTML = `

Odds data not available

`;
return;
}

let gameDate = new Date(gameTimestamp * 1000);
const gameDateFormatted = gameDate.toLocaleDateString(‘en-US’, { year: ‘numeric’, month: ‘long’, day: ‘numeric’ });

container.innerHTML = `

BetMGM Odds

Moneyline
${visitingTeam.short_name}
${oddsData.away_money > 0 ? `+${oddsData.away_money}` : oddsData.away_money}

${homeTeam.short_name}
${oddsData.home_money > 0 ? `+${oddsData.home_money}` : oddsData.home_money}

Spread
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === visitingTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

${oddsData.fav_id === homeTeam.id
? oddsData.fav_points
: oddsData.fav_points > 0 ? `-${oddsData.fav_points}` : `+${Math.abs(oddsData.fav_points)}`}
${oddsData.fav_id === homeTeam.id
? oddsData.fav_money > 0 ? `+${oddsData.fav_money}` : oddsData.fav_money
: oddsData.underdog_money > 0 ? `+${oddsData.underdog_money}` : oddsData.underdog_money}

Over/Under
O ${oddsData.total}
${oddsData.over_money > 0 ? `+${oddsData.over_money}` : oddsData.over_money}

U ${oddsData.total}
${oddsData.under_money > 0 ? `+${oddsData.under_money}` : oddsData.under_money}

`;
}

// Example usage
renderBetMGM(‘block_f7f077af794f50b1c850e4e66b5a9698’, ‘NFL’, ‘b1eb63ec-bd2c-46fe-884c-edd703565ddd’);

FOLLOW US ON GOOGLE NEWS

Read original article here

Denial of responsibility! Secular Times is an automatic aggregator of the all world’s media. In each content, the hyperlink to the primary source is specified. All trademarks belong to their rightful owners, all materials to their authors. If you are the owner of the content and do not want us to publish your materials, please contact us by email – seculartimes.com. The content will be deleted within 24 hours.

Leave a Comment