document.addEventListener('keyup', function(event) { if (event.keyCode === 27) { var activeModal = document.getElementsByClassName('rdg-widget-modal')[0]; activeModal.remove(); }}); function checkHeader() { if (document.getElementById("rdg-games-widget") == null) { if (document.getElementsByTagName("head") == null) { var header = document.createElement("head"); document.appendChild(header); } var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = 'https://widgets.americasbookie.com/css/main.min.css?v=3.4.25.0'; link.id = 'rdg-games-widget'; document.head.prepend(link); } } function CreateTable(idLeague, leagueName, idSport, hasBtn) { var tableColumns = ""; var tableBtn = hasBtn == true ? '' : ''; switch (idSport) { case "TNT": tableColumns = `TimeTeamMoney${tableBtn}`; break; default: tableColumns = `TimeTeamScoresSpreadTotalMoney${tableBtn}`; } var table = `${tableColumns}
${leagueName}
`; return table; } function createSpan(text) { var span = document.createElement('span'); span.innerHTML = text; return span; } function intFormatter(number) { if (number != null) { number = number > 0 ? "+" + number : number; } else { number = ""; } return number; } function decimalFormatter(number) { return number != null ? intFormatter(number).toString().replace('.5', '½') : ""; } function addTableBodyHeader(tableId, gameDescription, visitorTeam, date, idSport, gameStat, isModal, idGame) { var tableBody = document.getElementById(tableId).getElementsByTagName('tbody')[0]; var tr = document.createElement('tr'); tr.classList.add('rdg-widget-description-header'); tr.setAttribute("data-game-id", idGame); tableBody.appendChild(tr); if (gameStat !== "B") { var tdDate = document.createElement('td'); tdDate.classList.add('rdg-widget-text-align-left'); tdDate.colSpan = idSport == "TNT" ? "1" : idSport != "TNT" && isModal == true ? "2" : "3"; tdDate.innerHTML = date; tr.appendChild(tdDate); } var descriptionStyles = gameStat === "B" ? "rdg-widget-Banner" : "rdg-widget-text-align-right"; var tdGameDescription = document.createElement('td'); tdGameDescription.classList.add(descriptionStyles); tdGameDescription.colSpan = gameStat === 'B' && isModal == false ? "7" : gameStat === 'B' && isModal == true ? "6" : "4"; tdGameDescription.innerHTML = gameStat === "B" ? visitorTeam : idSport === "TNT" ? visitorTeam : gameDescription; tr.appendChild(tdGameDescription); } function addTableBodyRow(tableId, game, idSport, div, isModal, showMore, logoUrl) { if (game.GameStat !== 'B') { var tableBody = document.getElementById(tableId).getElementsByTagName('tbody')[0]; var firstRow = document.createElement('tr'); firstRow.classList.add('rdg-widget-border-bottom'); tableBody.appendChild(firstRow); var secondRow = document.createElement('tr'); secondRow.classList.add('rdg-widget-border-bottom'); tableBody.appendChild(secondRow); var tdTime = document.createElement('td'); tdTime.classList.add('rdg-widget-border-right'); tdTime.rowSpan = idSport == "SOC" ? "3" : 2; var spanTime = createSpan(game.Time); firstRow.appendChild(tdTime); tdTime.appendChild(spanTime); var tdVisitorTeam = document.createElement('td'); tdVisitorTeam.classList.add('rdg-widget-game-description'); tdVisitorTeam.innerHTML = game.VisitorNumber + " - " + game.VisitorTeam; firstRow.appendChild(tdVisitorTeam); var tdVisitorScore = document.createElement('td'); tdVisitorScore.classList.add('rdg-widget-text-align-center'); var spanVisitorScore = createSpan(game.AwayScore); firstRow.appendChild(tdVisitorScore); tdVisitorScore.appendChild(spanVisitorScore); var tdVisitorSpread = document.createElement('td'); tdVisitorSpread.classList.add('rdg-widget-text-align-center'); var spanVisitorSpread = createSpan(decimalFormatter(game.VisitorSpread) + intFormatter(game.VisitorSpreadOdds)); firstRow.appendChild(tdVisitorSpread); tdVisitorSpread.appendChild(spanVisitorSpread); var tdVisitorTotal = document.createElement('td'); tdVisitorTotal.classList.add('rdg-widget-text-align-center'); var visitorTotalRow = decimalFormatter(game.TotalOver).substring(1).length > 1 ? "o" + decimalFormatter(game.TotalOver).substring(1) + intFormatter(game.OverOdds) : ""; var spanVisitorTotal = createSpan(visitorTotalRow); firstRow.appendChild(tdVisitorTotal); tdVisitorTotal.appendChild(spanVisitorTotal); var tdVisitorMoney = document.createElement('td'); tdVisitorMoney.classList.add('rdg-widget-text-align-center'); var spanVisitorMoney = createSpan(intFormatter(game.VisitorOdds)); firstRow.appendChild(tdVisitorMoney); tdVisitorMoney.appendChild(spanVisitorMoney); if (isModal === false) { var tdBtn = document.createElement('td'); tdBtn.classList.add('rdg-widget-border-left'); tdBtn.rowSpan = idSport == "SOC" ? "3" : 2; firstRow.appendChild(tdBtn); var config = "showMore"; var url = "https://widgets.americasbookie.com/widget/site"; fetch(url).then(function (response) { return response.json(); }).then(function (data) { if(data){ config = data[0]["Site"]; }else{ config = "showMore"; } if (showMore) { if(config != "showMore"){ if (game.GamesInFamily > 1) { var btnMore = document.createElement('button'); btnMore.type = "button"; btnMore.classList.add("rdg-widget-btn-more"); btnMore.innerHTML = "More "; btnMore.setAttribute("data-family-game", game.FamilyGame); tdBtn.appendChild(btnMore); var spanBtn = createSpan(game.GamesInFamily); btnMore.appendChild(spanBtn); btnMore.addEventListener('click', function (e) { getFamilyGames(this, tdBtn, div); }); }else{ if(data[0]["Logo"] == "true"){ var widgetLogoContainer = document.createElement('a'); if(data[0]["Redirect"] != ""){ widgetLogoContainer.href = data[0]["Redirect"]; }else{ widgetLogoContainer.href = logoUrl; } widgetLogoContainer.target = "_blank"; widgetLogoContainer.title = data[0]["Titulo"]; tdBtn.appendChild(widgetLogoContainer); var widgetLogo = document.createElement('img'); widgetLogo.src = 'https://widgets.americasbookie.com/'+data[0]["Icon"]; widgetLogo.classList.add("rdg-widget-logo"); widgetLogoContainer.appendChild(widgetLogo); }else{ if(data[0]["ButtonText"] != ""){ let btnMore = document.createElement('a'); btnMore.classList.add("rdg-widget-btn-more"); btnMore.innerHTML = data[0]["ButtonText"]; btnMore.href = data[0]["Redirect"]; btnMore.target = "_blank"; btnMore.setAttribute("data-family-game", game.FamilyGame); tdBtn.appendChild(btnMore); } } } }else{ if (game.GamesInFamily > 1) { var btnMore = document.createElement('button'); btnMore.type = "button"; btnMore.classList.add("rdg-widget-btn-more"); btnMore.innerHTML = "More "; btnMore.setAttribute("data-family-game", game.FamilyGame); tdBtn.appendChild(btnMore); var spanBtn = createSpan(game.GamesInFamily); btnMore.appendChild(spanBtn); btnMore.addEventListener('click', function (e) { getFamilyGames(this, tdBtn, div); }); } } } }).catch(function (err) { console.warn('Something went wrong.', err); }); } var tdHomeTeam = document.createElement('td'); tdHomeTeam.classList.add('rdg-widget-game-description'); tdHomeTeam.innerHTML = game.HomeNumber + " - " + game.HomeTeam; secondRow.appendChild(tdHomeTeam); var tdHomeScore = document.createElement('td'); tdHomeScore.classList.add('rdg-widget-text-align-center'); var spanVisitorHome = createSpan(game.HomeScore); secondRow.appendChild(tdHomeScore); tdHomeScore.appendChild(spanVisitorHome); var tdHomeSpread = document.createElement('td'); tdHomeSpread.classList.add('rdg-widget-text-align-center'); var spanHomeSpread = createSpan(decimalFormatter(game.HomeSpread) + intFormatter(game.HomeSpreadOdds)); secondRow.appendChild(tdHomeSpread); tdHomeSpread.appendChild(spanHomeSpread); var tdHomeTotal = document.createElement('td'); tdHomeTotal.classList.add('rdg-widget-text-align-center'); var homeTotalRow = decimalFormatter(game.TotalUnder).substring(1).length > 1 ? "u" + decimalFormatter(game.TotalUnder).substring(1) + intFormatter(game.UnderOdds) : ""; var spanHomeTotal = createSpan(homeTotalRow); secondRow.appendChild(tdHomeTotal); tdHomeTotal.appendChild(spanHomeTotal); var tdHomeMoney = document.createElement('td'); tdHomeMoney.classList.add('rdg-widget-text-align-center'); var spanHomeMoney = createSpan(intFormatter(game.HomeOdds)); secondRow.appendChild(tdHomeMoney); tdHomeMoney.appendChild(spanHomeMoney); if (idSport == "SOC") { var drawRow = document.createElement('tr'); drawRow.classList.add('rdg-widget-border-bottom'); tableBody.appendChild(drawRow); var tdDraw = document.createElement('td'); tdDraw.classList.add('rdg-widget-game-description'); tdDraw.innerHTML = (game.HomeNumber + 1) + " - " + "DRAW"; drawRow.appendChild(tdDraw); var tdDrawMoney = document.createElement('td'); tdDrawMoney.classList.add('rdg-widget-text-align-center'); var spanHomeMoney = createSpan(intFormatter(game.Draw)); drawRow.appendChild(tdDrawMoney); tdDrawMoney.appendChild(spanHomeMoney); } } } function addTableBodyTNT(tableId, game, div, isModal, showMore, logoUrl) { var tableBody = document.getElementById(tableId).getElementsByTagName('tbody')[0]; let stop = 0; for (var participant of game.Participants) { let participantRow = document.createElement('tr'); participantRow.classList.add('rdg-widget-border-bottom'); tableBody.appendChild(participantRow); if (stop == 0) { let tdTime = document.createElement('td'); tdTime.classList.add('rdg-widget-border-right'); tdTime.rowSpan = game.Participants.length; let spanTime = createSpan(game.Time); participantRow.appendChild(tdTime); tdTime.appendChild(spanTime); } let tdParticipant = document.createElement('td'); tdParticipant.classList.add('rdg-widget-game-description'); tdParticipant.innerHTML = participant.TeamNumber + " - " + participant.TeamName; participantRow.appendChild(tdParticipant); let tdParticipantMoney = document.createElement('td'); tdParticipantMoney.classList.add('rdg-widget-text-align-center'); let spanParticipantMoney = createSpan(intFormatter(participant.Odds)); participantRow.appendChild(tdParticipantMoney); tdParticipantMoney.appendChild(spanParticipantMoney); if (stop == 0 && isModal == false) { let tdBtn = document.createElement('td'); tdBtn.classList.add('rdg-widget-border-left'); tdBtn.rowSpan = game.Participants.length; participantRow.appendChild(tdBtn); var config = "showMore"; var url = "https://widgets.americasbookie.com/widget/site"; fetch(url).then(function (response) { return response.json(); }).then(function (data) { if(data){ config = data[0]["Site"]; }else{ config = "showMore"; } if (showMore) { if(config != "showMore"){ if (game.GamesInFamily > 1) { var btnMore = document.createElement('button'); btnMore.type = "button"; btnMore.classList.add("rdg-widget-btn-more"); btnMore.innerHTML = "More "; btnMore.setAttribute("data-family-game", game.FamilyGame); tdBtn.appendChild(btnMore); var spanBtn = createSpan(game.GamesInFamily); btnMore.appendChild(spanBtn); btnMore.addEventListener('click', function (e) { getFamilyGames(this, tdBtn, div); }); }else{ if(data[0]["Logo"] == "true"){ var widgetLogoContainer = document.createElement('a'); if(data[0]["Redirect"] != ""){ widgetLogoContainer.href = data[0]["Redirect"]; }else{ widgetLogoContainer.href = logoUrl; } widgetLogoContainer.target = "_blank"; widgetLogoContainer.title = data[0]["Titulo"]; tdBtn.appendChild(widgetLogoContainer); var widgetLogo = document.createElement('img'); widgetLogo.src = 'https://widgets.americasbookie.com/'+data[0]["Icon"]; widgetLogo.classList.add("rdg-widget-logo"); widgetLogoContainer.appendChild(widgetLogo); }else{ if(data[0]["ButtonText"] != ""){ let btnMore = document.createElement('a'); btnMore.classList.add("rdg-widget-btn-more"); btnMore.innerHTML = data[0]["ButtonText"]; btnMore.href = data[0]["Redirect"]; btnMore.target = "_blank"; btnMore.setAttribute("data-family-game", game.FamilyGame); tdBtn.appendChild(btnMore); } } } }else{ if (game.GamesInFamily > 1) { var btnMore = document.createElement('button'); btnMore.type = "button"; btnMore.classList.add("rdg-widget-btn-more"); btnMore.innerHTML = "More "; btnMore.setAttribute("data-family-game", game.FamilyGame); tdBtn.appendChild(btnMore); var spanBtn = createSpan(game.GamesInFamily); btnMore.appendChild(spanBtn); btnMore.addEventListener('click', function (e) { getFamilyGames(this, tdBtn, div); }); } } } }).catch(function (err) { console.warn('Something went wrong.', err); }); } stop++; } } function loadTable(games, tableId, idSport, div, showMore, logoUrl) { for (var game of games) { addTableBodyHeader(tableId, game.Description, game.VisitorTeam, game.Date, idSport, game.GameStat, false, game.IdGame); if (idSport == "TNT") { addTableBodyTNT(tableId, game, div, false, showMore, logoUrl); } else { addTableBodyRow(tableId, game, idSport, div, false, showMore, logoUrl); } } } function createModal(div, data) { var oldModal = document.getElementsByClassName('rdg-widget-modal')[0]; if (oldModal != null) { oldModal.remove(); } var modal = document.createElement('div'); modal.classList.add("rdg-widget-modal"); div.appendChild(modal); var header = document.createElement('div'); header.classList.add("rdg-widget-header"); modal.appendChild(header); var btnCloseModal = document.createElement('button'); btnCloseModal.type = "button"; btnCloseModal.classList.add("rdg-widget-close"); btnCloseModal.innerHTML = "×"; header.appendChild(btnCloseModal); var content = document.createElement('div'); content.classList.add("rdg-widget-content"); modal.appendChild(content); btnCloseModal.addEventListener('click', function (e) { modal.remove() }); let lastLeague = []; let lastTable = ""; for (var game of data) { let idSport = game.IdSport.trim(); if (!(lastLeague.find(element => element === game.LeagueDescription))) { let dataCLone = data.filter(function (obj) { return obj.LeagueDescription === game.LeagueDescription && obj.idSport === game.idSport; }); let tableDiv = document.createElement('div'); tableDiv.classList.add("rdg-widget"); content.appendChild(tableDiv); tableDiv.innerHTML = CreateTable(game.IdGame + "-" + game.FamilyGame, game.LeagueDescription, idSport, false); lastTable = "table-" + game.IdGame + "-" + game.FamilyGame; loadModal(dataCLone, lastTable, idSport, tableDiv); } lastLeague.push(game.LeagueDescription); } } function loadModal(games, tableId, idSport, div) { for (var game of games) { addTableBodyHeader(tableId, game.GameDescription, game.VisitorTeam, game.Date, idSport, game.GameStat, true, game.IdGame); if (idSport == "TNT") { addTableBodyTNT(tableId, game, div, true); } else { addTableBodyRow(tableId, game, idSport, div, true); } } } function getFamilyGames(btn, container, div) { var loader = document.createElement("div"); loader.classList.add("rdg-widget-btnLoader"); btn.style.display = "none"; container.appendChild(loader); var url = "https://widgets.americasbookie.com/widget/familyGame?idFamilyGame=" + btn.getAttribute('data-family-game'); fetch(url).then(function (response) { return response.json(); }).then(function (data) { loader.remove(); btn.style.display = "block"; createModal(div, data); }).catch(function (err) { console.warn('Something went wrong.', err); }); } function GetGames(idLeague, days, loader, div, showMore) { var url = "https://widgets.americasbookie.com/widget/games?idLeague=" + idLeague + "&numberOfDays=" + days; fetch(url).then(function (response) { return response.json(); }).then(function (data) { if (data.Game.length > 0) { div.innerHTML = CreateTable(idLeague, data.League[0].Description.trim(), data.League[0].IdSport.trim(), true); loadTable(data.Game, "table-" + idLeague, data.League[0].IdSport.trim(), div, showMore, data.LogoUrl); } else { div.innerHTML = "No games were found"; } loader.remove(); }).catch(function (err) { console.warn('Something went wrong.', err); }); } function ShowRDGHome(json) { var container = document.getElementById(json.Container); container.innerHTML = ""; var loader = document.createElement("div"); loader.classList.add("rdg-widget-loader"); container.appendChild(loader); var url = "https://widgets.americasbookie.com/widget/widgetSports?idWidget=" + json.IdWidget; fetch(url).then(function (response) { return response.json(); }).then(function (data) { if (data.length > 0) { LoadWidgetSports(data, container, json.IdWidget); } else { container.innerHTML = "No sports were found"; } loader.remove(); }).catch(function (err) { console.warn('Something went wrong.', err); }); } function LoadWidgetSports(sports, container, idWidget) { let count = sports.length; for (var sport of sports) { let span = createSpan(sport.Name); span.classList.add("rdg-widget-link"); let idWidgetSport = sport.IdWidgetSports; span.onclick = function (e) { ShowRDGSport({ "IdWidget": idWidget, "IdWidgetSports": idWidgetSport, "Container": container.id, "ReturnToHome": true, "Limit": "LoadWidgetSports" }); }; container.appendChild(span); if (count != 1) { let separator = createSpan("|"); separator.classList.add("rdg-widget-link-separator"); container.appendChild(separator); } count--; } } function ShowRDGSport(json) { let defaults = { "ReturnToHome": false, "Limit": "ShowRDGSport" }; let finalParams = Object.assign(defaults, json); var container = document.getElementById(finalParams.Container); var sportMenu = document.createElement("div"); sportMenu.id = container.id + "-sport-menu"; sportMenu.classList.add("rdg-widget-sport-menu"); container.appendChild(sportMenu); var loader = document.createElement("div"); loader.classList.add("rdg-widget-loader"); container.appendChild(loader); var url = "https://widgets.americasbookie.com/widget/widgetGroups?idWidgetSport=" + finalParams.IdWidgetSports; fetch(url).then(function (response) { return response.json(); }).then(function (data) { if (data.length > 0) { LoadWidgetGroups(data, container, finalParams.IdWidgetSports, finalParams.Limit, finalParams.IdWidget, sportMenu, finalParams.ShowMore); } else { container.innerHTML = "No sports were found"; } if (finalParams.Limit == "LoadWidgetSports" && finalParams.ReturnToHome) { var btnReturn = document.createElement('button'); btnReturn.type = "button"; btnReturn.classList.add("rdg-widget-btn-return"); btnReturn.innerHTML = "Return"; container.appendChild(btnReturn); btnReturn.addEventListener('click', function (e) { ShowRDGHome({ "Container": finalParams.Container, "IdWidget": finalParams.IdWidget }); }); } loader.remove(); }).catch(function (err) { console.warn('Something went wrong.', err); }); } function LoadWidgetGroups(groups, container, idWidgetSport, limit, idWidget, sportMenu, showMore) { let count = groups.length; for (var group of groups) { let span = createSpan(group.Name); span.classList.add("rdg-widget-link"); let idWidgetGroup = group.IdWidgetGroup; span.onclick = function (e) { ShowRDGGroup({ "IdWidgetSport": idWidgetSport, "IdWidgetGroup": idWidgetGroup, "Container": container.id, "ReturnToSport": 1, "Limit": limit, "IdWidget": idWidget, "ShowMore": showMore }); let allActiveSports = Array.from(document.querySelectorAll('#' + sportMenu.id + ' .rdg-widget-selected')); for (let element of allActiveSports) { element.classList.remove('rdg-widget-selected'); } this.classList.add("rdg-widget-selected"); }; if (count == groups.length) { span.click(); } sportMenu.appendChild(span); if (count != 1) { let separator = createSpan("|"); separator.classList.add("rdg-widget-link-separator"); sportMenu.appendChild(separator); } count--; } } function ShowRDGGroup(json) { let defaults = { "ReturnToSport": 0, "Limit": "ShowRDGGroup" }; let finalParams = Object.assign(defaults, json); var container = document.getElementById(finalParams.Container); var sportMenu = document.getElementById(container.id + "-sport-menu"); container.innerHTML = ""; if (sportMenu != null) { container.appendChild(sportMenu); } var leagueMenu = document.createElement("div"); leagueMenu.id = container.id + "-league-menu"; container.appendChild(leagueMenu); var loader = document.createElement("div"); loader.classList.add("rdg-widget-loader"); container.appendChild(loader); var url = "https://widgets.americasbookie.com/widget/widgetLeagues?idWidgetGroup=" + finalParams.IdWidgetGroup; fetch(url).then(function (response) { return response.json(); }).then(function (data) { if (data.length > 0) { var groupName = document.createElement('h2'); groupName.innerHTML = data[0].GroupName; container.appendChild(groupName); var subContainer = document.createElement('div'); subContainer.id = `rdg-subcontainer-${finalParams.IdWidgetGroup}`; container.appendChild(subContainer); LoadWidgetLeagues(data, subContainer, leagueMenu, finalParams.ShowMore); } else { container.innerHTML = "No leagues were found"; } loader.remove(); }).catch(function (err) { console.warn('Something went wrong.', err); }); if (finalParams.ReturnToSport == 1 && finalParams.Limit == "ShowRDGSport" || finalParams.Limit == "LoadWidgetSports") { var btnReturn = document.createElement('button'); btnReturn.type = "button"; btnReturn.classList.add("rdg-widget-btn-return"); btnReturn.innerHTML = "Return"; container.appendChild(btnReturn); btnReturn.addEventListener('click', function (e) { ShowRDGSport({ "IdWidget": finalParams.IdWidget, "IdWidgetSports": finalParams.IdWidgetSport, "Container": container.id, "Limit": finalParams.Limit, "ReturnToHome": true }); }); } } function LoadWidgetLeagues(leagues, subContainer, leagueMenu, showMore) { let count = leagues.length; for (var league of leagues.reverse()) { let span = createSpan(league.Name); span.classList.add("rdg-widget-link"); let idLeague = league.IdLeague; span.onclick = function (e) { subContainer.innerHTML = ""; ShowRDGLeague({ "IdLeague": idLeague, "Container": subContainer.id, "ShowMore": showMore }); let allActiveLeagues = Array.from(document.querySelectorAll('#' + leagueMenu.id + ' .rdg-widget-selected')); for (let element of allActiveLeagues) { element.classList.remove('rdg-widget-selected'); } this.classList.add("rdg-widget-selected"); }; leagueMenu.prepend(span); if (count == 1) { span.click(); } if (count != 1) { let separator = createSpan("|"); separator.classList.add("rdg-widget-link-separator"); leagueMenu.prepend(separator); } count--; } } function ShowRDGOdds(leagueId, days, divId) { ShowRDGLeague({ "IdLeague": leagueId, "AmountOfDays": days, "Container": divId, "ShowMore": true }); } function ShowRDGLeague(json) { let defaults = { "AmountOfDays": "3", "ShowMore": false }; let finalParams = Object.assign(defaults, json); checkHeader(); var leagueContainer = document.getElementById(finalParams.Container); var div = document.createElement("div"); div.classList.add('rdg-widget'); div.classList.add('rdg-widget-text-align-center'); var text = document.createTextNode("Loading odds..."); div.appendChild(text); leagueContainer.appendChild(div); var loader = document.createElement("div"); loader.classList.add("rdg-widget-loader"); leagueContainer.appendChild(loader); GetGames(finalParams.IdLeague, finalParams.AmountOfDays, loader, div, finalParams.ShowMore); }