Hurricanes’ Jalen Chatfield, Jesperi Kotkaniemi out for Game 2

The Carolina Hurricanes will play another game in the Eastern Conference Final without a top-four defenceman.

Hurricanes’ Jalen Chatfield, Jesperi Kotkaniemi out for Game 2

The Carolina Hurricanes will play another game in the Eastern Conference Final without a top-four defenceman.

Jalen Chatfield, who missed Game 1 with a lower-body injury, will be out for Game 2 against the Florida Panthers. Chatfield took part in warmups, taking line rushes alongside usual partner Dmitry Orlov, but was scratched just ahead of puck drop.

The 29-year-old has appeared in nine playoff games this post-season, scoring one goal and registering a 20:24 average ice time.

Scott Morrow, who took Chatfield’s place in Game 1, will remain in the lineup.

Fourth-line centre Jesperi Kotkaniemi is also not playing on Thursday night, replaced in the bottom-six by Mark Jankowski.

Kotkaniemi, 24, has struggled to provide secondary offence for the Hurricanes, with just three assists in 11 playoff games. The former Montreal Canadiens forward had 12 goals and 33 points in 78 regular-season games.

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_f02eee7105f5530a5232ab3535e66eb7', 'NHL', '18b21950-8948-4d9e-b7a7-cafcd2d1c02a');