// ==UserScript== // @name Stats Xente Script // @namespace http://tampermonkey.net/ // @version 0.104 // @description Stats Xente script for inject own data on Managerzone site // @author xente // @match https://www.managerzone.com/* // @icon https://statsxente.com/MZ1/View/Images/etiqueta_bota.png // @license GNU // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_listValues // @require https://code.jquery.com/jquery-3.7.1.js // @downloadURL none // ==/UserScript== (function () { 'use strict'; /*var keys = GM_listValues(); keys.forEach(function(key) { console.log(key+" "+GM_getValue(key)) });*/ /*var actual_version="0.9666" console.log(GM_info.script.version) if(GM_info.script.version!=actual_version){ console.log("here") keys = GM_listValues(); keys.forEach(function (key) { GM_deleteValue(key); }); }*/ setCSSStyles() createModalMenu() createModalEventListeners() setLangSportCats() getUsernameData() checkScriptVersion() /// FUNCTIONS MENU setTimeout(function () { var urlParams = new URLSearchParams(window.location.search); if ((urlParams.has('p')) && (urlParams.get('p') === 'league') && (GM_getValue("leagueFlag"))) { waitToDOM(leagues, ".nice_table", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'federations') && (urlParams.get('sub') === 'league') && (GM_getValue("federationFlag"))) { waitToDOM(clashLeagues, ".nice_table", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'federations') && (urlParams.get('sub') === 'clash') && (GM_getValue("federationFlag"))) { waitToDOM(clash, ".fed_badge", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'match') && (urlParams.get('sub') === 'result') && (GM_getValue("matchFlag"))) { setTimeout(function () { waitToDOM(match, ".hitlist.statsLite.marker", 0) }, 2000); } if ((urlParams.has('p')) && (urlParams.get('p') === 'players') && (!urlParams.has('pid')) && (GM_getValue("playersFlag"))) { waitToDOM(playersPage, ".playerContainer", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'players') && (urlParams.has('pid'))) { waitToDOM(playersPageStats, ".player_name", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'rank') && (urlParams.get('sub') === 'countryrank') && (GM_getValue("countryRankFlag"))) { countryRank(); } if ((urlParams.has('p')) && (urlParams.get('p') === 'clubhouse')) { StatsXenteNextMatchesClubhouse() } if ((urlParams.has('p')) && (urlParams.get('p') === 'friendlyseries') && (urlParams.get('sub') === 'standings')) { waitToDOM(friendlyCupsAndLeagues, ".nice_table", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'cup') && (urlParams.get('sub') === 'groupplay')) { waitToDOM(friendlyCupsAndLeagues, ".nice_table", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'private_cup') && (urlParams.get('sub') === 'groupplay')) { waitToDOM(friendlyCupsAndLeagues, ".nice_table", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'match') && (urlParams.get('sub') === 'played')) { waitToDOM(lastMatchesELO, ".group", 0) waitToDOM(nextMatches, ".group", 0) } if ((urlParams.has('p')) && (urlParams.get('p') === 'team')) { teamPage() } if ((urlParams.has('p')) && (urlParams.get('p') === 'match') && (urlParams.get('sub') === 'scheduled')) { waitToDOM(nextMatches, ".group", 0) } const elementos = document.querySelectorAll('.player_link'); //Adds stats icon in players page, when click on player info elementos.forEach(function (elemento) { elemento.addEventListener('click', function () { waitToDOM(playersPageStats, ".player_name", 0) }); }); }, 1000); (function () { if (document.getElementById("league_tab_table") !== null) { document.getElementById("league_tab_table").addEventListener('click', function () { if (document.getElementById("showMenu") === null) { waitToDOM(leagues, ".nice_table", 0) } }); } })(); setTimeout(function () { (function () { if (document.getElementById("ui-id-2") !== null) { document.getElementById("ui-id-2").parentNode.addEventListener('click', function () { if (document.getElementById("showMenu") === null) { var urlParams = new URLSearchParams(window.location.search); if (urlParams.get('fsid')) { waitToDOM(friendlyCupsAndLeagues, ".nice_table", 0) } else { waitToDOM(clashLeagues, ".nice_table", 0) } } }); } })(); (function () { if (document.getElementById("ui-id-4") !== null) { document.getElementById("ui-id-4").parentNode.addEventListener('click', function () { if (document.getElementById("showMenu") === null) { waitToDOM(friendlyCupsAndLeagues, ".nice_table", 0) } }); } })(); }, 2000); var teams_data = ""; var searchClassName = "" var players = [] var lines = [] var gk_line = "" var skills_names = [] var su_line = "unsetted"; //Next matches page function nextMatches(){ var team_id="" var urlParams = new URLSearchParams(window.location.search); if (urlParams.has('tid')){ team_id=urlParams.get("tid") }else{ if(window.sport=="soccer"){ team_id=GM_getValue("soccer_team_id") }else{ team_id=GM_getValue("hockey_team_id") } } var team_ids=[] var linkIds="" var contIds=0 var cIds="" var contCIds=0 var comps=[] var comp_ids=[] var elements0 = document.querySelectorAll('.odd'); elements0.forEach(element0 => { var cat=element0.getElementsByClassName("responsive-hide match-reference-text-wrapper flex-grow-0"); if(cat.length>0){ var links = cat[0].querySelectorAll('a'); if(links.length>0){ var urlObj = new URL("https://www.managerzone.com/" + links[0].getAttribute('href')); var params = new URLSearchParams(urlObj.search); var type = params.get('type'); if(type===null){ if((params.get('p')=="cup")||(params.get('p')=="private_cup")){ if(links[0].textContent.includes("U23")){ comps[params.get('cid')]="U23" }else{ if(links[0].textContent.includes("U21")){ comps[params.get('cid')]="U21" }else{ if(links[0].textContent.includes("U18")){ comps[params.get('cid')]="U18" }else{ comps[params.get('cid')]="SENIOR"; } } } }else{ var id=0; switch(params.get('p')){ case "cup": id=params.get('cid'); break; case "private_cup": id=params.get('cid'); break; case "friendly_series": id=params.get('fsid'); break; } if (!comp_ids.includes(id)) { comp_ids.push(id); cIds += "&idComp" + contCIds + "=" + id contCIds++; } } } } } var elements1 = element0.querySelectorAll('.teams-wrapper .flex-grow-1'); elements1.forEach(element1 => { var elements2 = element1.querySelectorAll('.clippable'); elements2.forEach(element2 => { var urlObj = new URL("https://www.managerzone.com/" + element2.getAttribute('href')); var params = new URLSearchParams(urlObj.search); var tidValue = params.get('tid'); if(tidValue!==null){ if (!team_ids.includes(tidValue)) { team_ids.push(tidValue); linkIds += "&idEquipo" + contIds + "=" + tidValue contIds++; } } }); }); }); if (!team_ids.includes(team_id)) { linkIds += "&idEquipo" + contIds + "=" + team_id } GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_elo_values.php?sport=" + window.sport + linkIds+cIds, headers: { "Content-Type": "application/json" }, onload: function (response) { var rawJSON = JSON.parse(response.responseText); var jsonResponse=rawJSON["teams"] for (let key in rawJSON["comps"]) { comps[key]=rawJSON["comps"][key]['restriction'] } var elements0 = document.querySelectorAll('.odd:not(.uxx)'); elements0.forEach(element0 => { var elements1 = element0.querySelectorAll('.teams-wrapper .flex-grow-1'); elements1.forEach(element1 => { var elements2 = element1.querySelectorAll('.clippable'); elements2.forEach(element2 => { var urlObj = new URL("https://www.managerzone.com/" + element2.getAttribute('href')); var params = new URLSearchParams(urlObj.search); var tidValue = params.get('tid'); if(tidValue!==null){ tidValue=parseInt(tidValue) var valor=0; if (jsonResponse[tidValue]?.SENIOR) { valor = new Intl.NumberFormat(window.userLocal).format(Number.parseFloat(jsonResponse[tidValue]["SENIOR"]).toFixed(0)) } element1.innerHTML+="
"+valor; }else{ tidValue=parseInt(team_id) valor=0; if (jsonResponse[tidValue]?.SENIOR) { valor = new Intl.NumberFormat(window.userLocal).format(Number.parseFloat(jsonResponse[tidValue]["SENIOR"]).toFixed(0)) } element1.innerHTML+="
"+valor; } }); }); }); var temp_cats=[] temp_cats["u23"] = "U23"; temp_cats["u21"] = "U21"; temp_cats["u18"] = "U18"; temp_cats["u23_world"] = "U23"; temp_cats["u21_world"] = "U21"; temp_cats["u18_world"] = "U18"; elements0 = document.querySelectorAll('.odd.uxx'); elements0.forEach(element0 => { var cat=element0.getElementsByClassName("responsive-hide match-reference-text-wrapper flex-grow-0"); var links = cat[0].querySelectorAll('a'); var urlObj = new URL("https://www.managerzone.com/" + links[0].getAttribute('href')); var params = new URLSearchParams(urlObj.search); var type = params.get('type'); var elo_type="SENIOR" if(type==null){ if(params.get('cid')!=null){ elo_type=comps[params.get('cid')] } if(params.get('fsid')!=null){ elo_type=comps[params.get('fsid')] } }else{ elo_type=temp_cats[type] } var elements1 = element0.querySelectorAll('.teams-wrapper .flex-grow-1'); elements1.forEach(element1 => { var elements2 = element1.querySelectorAll('.clippable'); elements2.forEach(element2 => { var urlObj = new URL("https://www.managerzone.com/" + element2.getAttribute('href')); var params = new URLSearchParams(urlObj.search); var tidValue = params.get('tid'); if(tidValue!==null){ tidValue=parseInt(tidValue) valor=0; if(jsonResponse[tidValue] && jsonResponse[tidValue][elo_type] !== undefined) { var valor = new Intl.NumberFormat(window.userLocal).format(Number.parseFloat(jsonResponse[tidValue][elo_type]).toFixed(0)) } element1.innerHTML+="
"+valor; }else{ tidValue=parseInt(team_id) valor=0; if(jsonResponse[tidValue] && jsonResponse[tidValue][elo_type] !== undefined){ valor = new Intl.NumberFormat(window.userLocal).format(Number.parseFloat(jsonResponse[tidValue][elo_type]).toFixed(0)) } element1.innerHTML+="
"+valor; } }); }); }); } }); } //Team page function teamPage(){ var u23_type="",u21_type="",u18_type="" var team_name_div=document.getElementsByClassName("teamDataText clippable"); const team_name=encodeURI(team_name_div[0].textContent) var team_id="" var urlParams = new URLSearchParams(window.location.search); if (urlParams.has('tid')){ team_id=urlParams.get("tid") }else{ if(window.sport=="soccer"){ team_id=GM_getValue("soccer_team_id") }else{ team_id=GM_getValue("hockey_team_id") } } var main_div=document.getElementById("infoAboutTeam") var dds = main_div.querySelectorAll('dd'); dds.forEach(dd => { var as = dd.querySelectorAll('a'); if(as.length>0){ let href = as[0].getAttribute('href'); let urlParams = new URLSearchParams(href.split('?')[1]); var type = urlParams.get('type'); if(type.includes("u23")){ u23_type=window.cats[type] } if(type.includes("u21")){ u21_type=window.cats[type] } if(type.includes("u18")){ u18_type=window.cats[type] } } }); GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_detailed_teams.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport + "&idEquipo="+team_id, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); var aux=team_id var top="TOP 11" if(window.sport=="hockey"){ top="TOP 21" } var teamTable='
' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' var valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor'])) var valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSenior'])) var valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11'])) var elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo'])) var edad= Number.parseFloat(jsonResponse[aux]['edad']).toFixed(2) var salario=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['salario'])) var numJugs=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['numJugadores'])) teamTable+='' teamTable+='' teamTable+='' valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor23'])) valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSUB23'])) valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11_23'])) elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo23'])) edad=Number.parseFloat(jsonResponse[aux]['age23']).toFixed(2) salario=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['salary23'])) numJugs=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['players23'])) teamTable+='' teamTable+='' teamTable+='' valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor21'])) valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSUB21'])) valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11_21'])) elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo21'])) edad=Number.parseFloat(jsonResponse[aux]['age21']).toFixed(2) salario=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['salary21'])) numJugs=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['players21'])) teamTable+='' teamTable+='' teamTable+='' valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor18'])) valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSUB18'])) valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11_18'])) elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo18'])) edad=Number.parseFloat(jsonResponse[aux]['age18']).toFixed(2) salario=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['salary18'])) numJugs=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['players18'])) teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='
ValueLM Value'+top+'ELOAgeSalaryPlayers
Senior'+valor+''+valorLM+''+valor11+''+elo+''+edad+''+salario+''+numJugs+'' teamTable+='' teamTable+='
U23'+valor+''+valorLM+''+valor11+''+elo+''+edad+''+salario+''+numJugs+'' teamTable+='' teamTable+='
U21'+valor+''+valorLM+''+valor11+''+elo+''+edad+''+salario+''+numJugs+'' teamTable+='' teamTable+='
U18'+valor+''+valorLM+''+valor11+''+elo+''+edad+''+salario+''+numJugs+'' teamTable+='' teamTable+='
' var divToInserT=document.getElementById("streakAndCupInfo") divToInserT.innerHTML=teamTable+divToInserT.innerHTML document.getElementById("seniorButton").addEventListener('click', function () { var link = "https://www.statsxente.com/MZ1/Functions/tamper_teams_stats.php?team_id=" + team_id + "&category=senior&elo_category=SENIOR&sport=" + window.sport+ "&idioma=" + window.lang+"&team_name=" +team_name+"&divisa=" + GM_getValue("currency") openWindow(link, 0.95, 1.25); }); document.getElementById("sub23Button").addEventListener('click', function () { var link = "https://www.statsxente.com/MZ1/Functions/tamper_teams_stats.php?team_id=" + team_id + "&category="+u23_type+"&elo_category=U23&sport=" + window.sport+ "&idioma=" + window.lang+"&team_name=" +team_name+"&divisa=" + GM_getValue("currency") openWindow(link, 0.95, 1.25); }); document.getElementById("sub21Button").addEventListener('click', function () { var link = "https://www.statsxente.com/MZ1/Functions/tamper_teams_stats.php?team_id=" + team_id + "&category="+u21_type+"&elo_category=U21&sport=" + window.sport+ "&idioma=" + window.lang+"&team_name=" +team_name+"&divisa=" + GM_getValue("currency") openWindow(link, 0.95, 1.25); }); document.getElementById("sub18Button").addEventListener('click', function () { var link = "https://www.statsxente.com/MZ1/Functions/tamper_teams_stats.php?team_id=" + team_id + "&category="+u18_type+"&elo_category=U18&sport=" + window.sport+ "&idioma=" + window.lang+"&team_name=" +team_name+"&divisa=" + GM_getValue("currency") openWindow(link, 0.95, 1.25); }); const thElements = document.querySelectorAll('table.matchValuesTable th'); thElements.forEach(th => { th.style.backgroundColor = GM_getValue("bg_native"); th.style.color = GM_getValue("color_native"); }); document.getElementById("thTransparent0").style.backgroundColor="transparent"; } }); } //Last matches page function lastMatchesELO(){ var selectElements = document.getElementsByName('limit'); if (selectElements.length > 0) { var selectElement = selectElements[0]; selectElement.addEventListener('change', function(event) { waitToDOM(lastMatchesELO, ".group", 0) }); } selectElements = document.getElementsByName('selectType'); if (selectElements.length > 0) { selectElement = selectElements[0]; selectElement.addEventListener('change', function(event) { waitToDOM(lastMatchesELO, ".group", 0) }); } const today = new Date(); today.setDate(today.getDate() + 2); const year = today.getFullYear(); const month = String(today.getMonth() + 1).padStart(2, '0'); const day = String(today.getDate()).padStart(2, '0'); var finalDate = `${year}-${month}-${day}`; var initialDate="" var elems = document.getElementsByClassName("group"); Array.from(elems).forEach(function(elem) { var fecha=elem.innerText const [day, month, year] = fecha.split("-"); initialDate = `${year}-${month}-${day}`; }); getUsernameData() var team_id="" var urlParams = new URLSearchParams(window.location.search); if (urlParams.has('tid')){ team_id=urlParams.get("tid") }else{ if(window.sport=="soccer"){ team_id=GM_getValue("soccer_team_id") }else{ team_id=GM_getValue("hockey_team_id") } } GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_elo_matches.php?sport=" + window.sport + "&team_id="+team_id+"&initial_date="+initialDate+"&final_date="+finalDate, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); var elems = document.getElementsByClassName("bold score-cell-wrapper textCenter flex-grow-0"); Array.from(elems).forEach(function(elem) { let links = elem.getElementsByClassName('score-hidden gray'); let href = links[0].getAttribute('href'); let urlParams = new URLSearchParams(href.split('?')[1]); var mid = parseInt(urlParams.get('mid')); if(mid in jsonResponse){ var diff=jsonResponse[mid]['score']-jsonResponse[mid]['old_score'] diff = diff.toFixed(2) var symbol=""; var status="down"; if(diff>0){ symbol="+"; status="up"; } elem.innerHTML+="
"+symbol+diff+"
"; } }); } }); } //Federation clash page function clash() { var badges = document.getElementsByClassName("fed_badge"); var regex = /fid=(\d+)/; var srcLocal = badges[0].getAttribute('src'); var local_id = srcLocal.match(regex); var src_away = badges[1].getAttribute('src'); var away_id = src_away.match(regex); var names = document.getElementsByClassName("name-score text-ellipsis") var homeName=encodeURIComponent(names[0].innerText) var awayName=encodeURIComponent(names[1].innerText) var elems = document.getElementsByClassName("top-pane__deadline"); var tabla = elems[0] GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_federations_clash_data.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport +"&home="+local_id[1]+"&away="+away_id[1], headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); var contenidoNuevo = "

Clash Compare
"; contenidoNuevo+="
" contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" var valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[local_id[1]]["value"])) contenidoNuevo+="" valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[local_id[1]]["valueLM"])) contenidoNuevo+="" valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[local_id[1]]["elo"])) contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[away_id[1]]["value"])) contenidoNuevo+="" valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[away_id[1]]["valueLM"])) contenidoNuevo+="" valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[away_id[1]]["elo"])) contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="" contenidoNuevo+="
RankValueLM ValueELO Score
#"+jsonResponse[local_id[1]]["table_index"]+"
"+valor+"
"+valor+"
"+valor+"
#"+jsonResponse[away_id[1]]["table_index"]+"
"+valor+"
"+valor+"
"+valor+"
" tabla.insertAdjacentHTML('beforeend', contenidoNuevo) document.getElementById("clashCompare").addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Functions/loadClashFederationData.php?tamper=yes&fid=" + local_id[1] + "&fid1=" + away_id[1] + "&fede=" + homeName + "&fede1=" + awayName + "&idioma=" + window.lang + "&divisa=" + GM_getValue("currency") + "&sport=" + window.sport; openWindow(link, 0.95, 1.25); }); names[0].innerText="(#"+jsonResponse[local_id[1]]["table_index"]+")"+names[0].innerText; names[1].innerText="(#"+jsonResponse[away_id[1]]["table_index"]+")"+names[1].innerText; var tables = document.querySelectorAll('.hitlist'); var table=tables[1] const thead = table.querySelector("thead"); // Verifica si el thead no tiene th if (thead.children.length === 0) { const th1 = document.createElement("th"); th1.innerText = "Equipo"; const th2 = document.createElement("th"); th2.innerText = "Resultado"; const nuevaFila = document.createElement("tr"); nuevaFila.appendChild(th1); nuevaFila.appendChild(th2); thead.appendChild(nuevaFila); } const colCount = table.rows[0].cells.length; var eloCol=0 var lmCol=1 if(colCount>2){ eloCol=5 lmCol=6 } table.id="clash_table"; var contIds = 0 var linkIds = "" for (let i = 1; i < table.rows.length; i++) { let row = table.rows[i]; let thirdColumnCell = row.cells[eloCol]; let teamNameElement = thirdColumnCell.querySelector('.team-name'); let href = teamNameElement.getAttribute('href'); let urlParams = new URLSearchParams(href.split('?')[1]); let tid = urlParams.get('tid'); linkIds += "&idEquipo" + contIds + "=" + tid contIds++ } var urlParams = new URLSearchParams(window.location.search); GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_teams.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport + linkIds, headers: { "Content-Type": "application/json" }, onload: function (response) { var cat = window.cats[urlParams.get('type')] var jsonResponse = JSON.parse(response.responseText); var valor=0 var tid=0 for (let i = 0; i < table.rows.length; i++) { let row = table.rows[i]; if(i>0){ let thirdColumnCell = row.cells[eloCol]; let teamNameElement = thirdColumnCell.querySelector('.team-name'); let href = teamNameElement.getAttribute('href'); let urlParams = new URLSearchParams(href.split('?')[1]); tid = urlParams.get('tid'); } let newCell1 = row.insertCell(eloCol); if (i === 0) { let th = document.createElement('th'); th.innerHTML = "ELO"; th.style.width="50px"; th.id="elo_th" newCell1.replaceWith(th); } else { valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[tid]["elo"])) newCell1.innerHTML = valor; } let newCell = row.insertCell(lmCol); if (i === 0) { let th1 = document.createElement('th'); th1.innerHTML = "LM Value"; th1.style.width="80px"; th1.id="lm_th" newCell.replaceWith(th1); } else { valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[tid]["valorUPSenior"])) newCell.innerHTML = valor; } if(eloCol==0){ let rankCell = row.insertCell(eloCol); if (i === 0) { let th2 = document.createElement('th'); // Creamos un elemento 'th' th2.innerHTML = "Rank"; th2.style.width="50px"; rankCell.replaceWith(th2); }else{ rankCell.innerHTML = i } } } if(eloCol==0){ eloCol++; lmCol++; } document.getElementById("elo_th").addEventListener("click", function () { ordenarTabla(eloCol, false, "clash_table",true); }); document.getElementById("lm_th").addEventListener("click", function () { ordenarTabla(lmCol, false, "clash_table",true); }); } }); } }); } //Leagues page function leagues() { var urlParams = new URLSearchParams(window.location.search); var initialValues = {}; initialValues["senior"] = GM_getValue("league_default_senior"); initialValues["world"] = GM_getValue("league_default_senior"); initialValues["u23"] = GM_getValue("league_default_u23"); initialValues["u21"] = GM_getValue("league_default_u21"); initialValues["u18"] = GM_getValue("league_default_u18"); initialValues["u23_world"] = GM_getValue("league_default_u23"); initialValues["u21_world"] = GM_getValue("league_default_u21"); initialValues["u18_world"] = GM_getValue("league_default_u18");; var linkIds = "" var elems = document.getElementsByClassName("nice_table"); var tabla = elems[0] var thSegundo = tabla.querySelector("thead th:nth-child(2)"); thSegundo.style.width = "250px"; var values = new Map(); values.set('valor23', 'U23 Value'); values.set('valor21', 'U21 Value'); values.set('valor18', 'U18 Value'); values.set('salario', 'Salary'); values.set('valorUPSenior', 'LM Value'); values.set('valorUPSUB23', 'U23 LM Value'); values.set('valorUPSUB21', 'U21 LM Value'); values.set('valorUPSUB18', 'U18 LM Value'); values.set('edad', 'Age'); if (window.sport == "soccer") { values.set('valor11', 'TOP 11'); values.set('valor11_23', 'U23 TOP 11'); values.set('valor11_21', 'U21 TOP 11'); values.set('valor11_18', 'U18 TOP 11'); } else { values.set('valor11', 'TOP 21'); values.set('valor11_23', 'U23 TOP 21'); values.set('valor11_21', 'U21 TOP 21'); values.set('valor11_18', 'U18 TOP 21'); } values.set('noNac', 'Foreigners'); values.set('elo', 'ELO Score'); values.set('elo23', 'U23 ELO Score'); values.set('elo21', 'U21 ELO Score'); values.set('elo18', 'U18 ELO Score'); values.set('numJugadores', 'Number of players'); if (urlParams.get('type') == "senior") { values.set('leagues', 'Leagues'); values.set('world_leagues_all', 'World Leagues'); values.set('youth_leagues_all', 'Youth Leagues'); values.set('world_youth_leagues_all', 'Youth World Leagues'); values.set('federation_leagues', 'Federation Leagues'); } if (urlParams.get('type') == "world") { values.set('leagues_all', 'Leagues'); values.set('world_leagues', 'World Leagues'); values.set('youth_leagues_all', 'Youth Leagues'); values.set('world_youth_leagues_all', 'Youth World Leagues'); values.set('federation_leagues', 'Federation Leagues'); } if ((urlParams.get('type').includes("u")) && (!urlParams.get('type').includes("_"))) { var actual_cat = urlParams.get('type').toUpperCase(); GM_setValue("actual_league_cat", actual_cat) values.set('leagues_all', 'Leagues'); values.set('world_leagues_all', 'World Leagues'); values.set('youth_leagues', actual_cat + ' Youth Leagues'); values.set('world_youth_leagues_all', 'Youth World Leagues'); values.set('federation_leagues', 'Federation Leagues'); } if ((urlParams.get('type').includes("u")) && (urlParams.get('type').includes("_"))) { actual_cat = urlParams.get('type').substring(0, 3).toUpperCase(); GM_setValue("actual_league_cat", actual_cat) values.set('leagues_all', 'Leagues'); values.set('world_leagues_all', 'World Leagues'); values.set('youth_leagues_all', 'Youth Leagues'); values.set('world_youth_leagues', actual_cat + ' Youth World Leagues'); values.set('federation_leagues', 'Federation Leagues'); } values.set('cup', 'Cups'); values.set('cup_u23', 'U23 Cups'); values.set('cup_u21', 'U21 Cups'); values.set('cup_u18', 'U18 Cups'); values.set('special_cup', 'Special Cups'); var contenidoNuevo = '
' getNativeTableStyles(); var idProgress = "noProgress"; if (urlParams.get('type') == "senior") { idProgress = "divProgress" } var widthTable = "1.5em" ///MENU TABLE contenidoNuevo += "
"; contenidoNuevo += ''; contenidoNuevo += ""; contenidoNuevo += ""; contenidoNuevo += ""; contenidoNuevo += ""; contenidoNuevo += ""; if (idProgress == "noProgress") { contenidoNuevo += ""; } else { contenidoNuevo += ""; } contenidoNuevo += ""; contenidoNuevo += ""; var styleTable = " style='display:none;'"; var styleIcon = "" var styleSep = "style='padding-top:5px;'"; if (GM_getValue("show_league_selects") == true) { styleTable = ""; styleIcon = " active" styleSep = " style='display:none;'"; } contenidoNuevo += ""; contenidoNuevo += ""; contenidoNuevo += "
StatsGraphHistoryTop Players
"; contenidoNuevo += '
'; contenidoNuevo += "
"; contenidoNuevo += ''; } else { contenidoNuevo += 'Value'; } } else { contenidoNuevo += 'Value'; } values.forEach(function (valor, clave) { if (clave == "valorUPSenior") { contenidoNuevo += ""; } if (clave == "valor11") { contenidoNuevo += ""; } if (clave == "elo") { contenidoNuevo += ""; } if (clave == "leagues") { contenidoNuevo += ""; } if (clave == "leagues_all") { contenidoNuevo += ""; } if (clave == "cup") { contenidoNuevo += ""; } if (clave == initialValues[urlParams.get('type')]) { contenidoNuevo += ''; } else { contenidoNuevo += ''; } }); contenidoNuevo += "
" contenidoNuevo += "

"; values.set('valor', 'Value'); elems = document.getElementsByClassName("nice_table"); tabla = elems[0] tabla.insertAdjacentHTML('beforebegin', contenidoNuevo); if (GM_getValue("show_league_selects") == true) { document.getElementById("line2").style.transform = 'rotateZ(0deg)'; document.getElementById("line1").style.transform = 'rotateZ(180deg)'; document.getElementById("moreInfo").style.transform = 'rotateZ(0deg)'; } values.forEach(function (valor, clave) { var elemento = document.getElementById(clave); elemento.addEventListener('click', handleClick); }); var nuevaCeldaEncabezado = document.createElement("th"); nuevaCeldaEncabezado.textContent = values.get(initialValues[urlParams.get('type')]); nuevaCeldaEncabezado.style.textAlign = 'center'; nuevaCeldaEncabezado.style.maxWidth = '6.5em'; nuevaCeldaEncabezado.style.width = '6.5em'; nuevaCeldaEncabezado.style.whiteSpace = 'nowrap'; nuevaCeldaEncabezado.style.overflow = 'hidden'; nuevaCeldaEncabezado.style.textOverflow = 'ellipsis'; var ser = document.getElementsByClassName("seriesHeader") document.getElementsByClassName("seriesHeader")[0].appendChild(nuevaCeldaEncabezado); nuevaCeldaEncabezado = document.createElement("th"); nuevaCeldaEncabezado.textContent = "Stats Xente"; nuevaCeldaEncabezado.style.textAlign = 'center'; document.getElementsByClassName("seriesHeader")[0].appendChild(nuevaCeldaEncabezado); if (tabla.getElementsByTagName("tbody")[0].innerHTML.includes("mazyar")) { searchClassName = "responsive-hide" } var contIds = 0 var filasDatos = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (var i = 0; i < filasDatos.length; i++) { if (checkClassNameExists(tabla.rows[i + 1], searchClassName)) { var celda = tabla.rows[i + 1].cells[1]; var equipo = celda.textContent.trim() var iniIndex = celda.innerHTML.indexOf("tid="); var lastIndex = celda.innerHTML.indexOf("\">", iniIndex + 4); var data = String(celda.innerHTML) var id = data.substring(iniIndex + 4, lastIndex) linkIds += "&idEquipo" + contIds + "=" + id contIds++ celda.innerHTML += "" } } var cat = cats[urlParams.get('type')] var enlace = document.getElementById('league_tab_schedule'); var href = enlace.href; var url = new URL(href); var league_id = url.searchParams.get('sid'); ///DIV PROGRESS setTimeout(function () { if (idProgress != "noProgress") { (function (currentId, currentLSport, lang) { document.getElementById("divProgress").addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Graficos/graficoProgresoDivision.php?idLiga=" + currentId + "&idioma=" + lang + "&divisa=" + GM_getValue("currency") + "&deporte=" + currentLSport; openWindow(link, 0.95, 1.25); }); })(league_id, window.lsport, window.lang); } (function () { document.getElementById("moreInfo").addEventListener('click', function () { document.getElementById("moreInfo").classList.toggle('active'); if (document.getElementById("moreInfo").classList.contains("active")) { document.getElementById("line2").style.transform = 'rotateZ(0deg)'; document.getElementById("line1").style.transform = 'rotateZ(180deg)'; document.getElementById("moreInfo").style.transform = 'rotateZ(0deg)'; $('#separatorTd').fadeOut(1); document.getElementById("separatorTd").style.paddingTop = "5px"; $('#show3').fadeIn('slow'); } else { document.getElementById("line2").style.transform = 'rotateZ(45deg)'; document.getElementById("line1").style.transform = 'rotateZ(-45deg)'; document.getElementById("moreInfo").style.transform = 'rotateZ(45deg)'; $('#separatorTd').fadeIn(1); $('#show3').fadeOut('slow'); } }); })(); (function (currentId, currentLSport, lang, currentCat) { document.getElementById("detailDivision").addEventListener('click', function () { var url_ = "https://statsxente.com/MZ1/Functions/lecturaStatsDivisionesHistorico2.0.php" if (window.sport == "hockey") { url_ = "https://statsxente.com/MZ1/Functions/lecturaStatsDivisionesHockeyHistorico.php" } var link = url_ + "?tamper=yes&modal=yes&idLiga=" + currentId + "&idioma=" + lang + "&categoria=" + currentCat + "&season=75&season_actual=75"; openWindow(link, 0.95, 1.25); }); })(league_id, window.lsport, window.lang, cat); (function (currentId, sport, lang, currentCat) { document.getElementById("topPlayersDivision").addEventListener('click', function () { var url_ = "https://statsxente.com/MZ1/Functions/tamper_top_players_division.php" if (window.sport == "hockey") { url_ = "https://statsxente.com/MZ1/Functions/tamper_top_players_division_hockey.php" } var link = url_ + "?league_id=" + currentId + "&sport=" + sport + "&category=" + cat + "&idioma=" + lang; openWindow(link, 0.95, 1.25); }); })(league_id, window.sport, window.lang, cat); (function (currentId, currentLSport, lang, currentCat) { document.getElementById("graphDivision").addEventListener('click', function () { var url_sport = "" if (window.sport == "hockey") { url_sport = "Hockey" } var link = "https://statsxente.com/MZ1/View/filtroGraficoLinealDivisiones" + url_sport + ".php?tamper=yes&idLiga=" + currentId + "&idioma=" + lang + "&categoria=" + currentCat + "&season=75&season_actual=75&modal=yes&valor=nota"; openWindow(link, 0.95, 1.25); }); })(league_id, window.lsport, window.lang, cat); }, 200); GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_teams.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport + linkIds, headers: { "Content-Type": "application/json" }, onload: function (response) { var cat = window.cats[urlParams.get('type')] var jsonResponse = JSON.parse(response.responseText); teams_data = jsonResponse; var filasDatos = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (var i = 0; i < filasDatos.length; i++) { if (checkClassNameExists(filasDatos[i], searchClassName)) { var celda = filasDatos[i].cells[1]; var equipo = celda.textContent.trim() var iniIndex = celda.innerHTML.indexOf("tid="); var lastIndex = celda.innerHTML.indexOf("\">", iniIndex + 4); var data = String(celda.innerHTML) var id = data.substring(iniIndex + 4, lastIndex) var nuevaColumna = document.createElement("td"); var valor = 0; if (jsonResponse[id] && jsonResponse[id][initialValues[urlParams.get('type')]] !== undefined) { valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[id][initialValues[urlParams.get('type')]])) } nuevaColumna.innerHTML = valor nuevaColumna.style.textAlign = 'center'; filasDatos[i].appendChild(nuevaColumna); var eloType = 1 if (window.sport == "soccer") { eloType = 2 } if (cat.includes("SUB")) { eloType = 3 } var cats_elo = {} cats_elo["senior"] = "SENIOR"; cats_elo["seniorw"] = "SENIOR"; cats_elo["SUB23"] = "U23"; cats_elo["SUB21"] = "U21"; cats_elo["SUB18"] = "U18"; cats_elo["SUB23w"] = "U23"; cats_elo["SUB21w"] = "U21"; cats_elo["SUB18w"] = "U18"; var flagSenior = 0, flagSub23 = 0, flagSub21 = 0, flagSub18 = 0; if (jsonResponse[id]["elo"] > 0) { flagSenior = 1 } if (jsonResponse[id]["elo23"] > 0) { flagSub23 = 1 } if (jsonResponse[id]["elo21"] > 0) { flagSub21 = 1 } if (jsonResponse[id]["elo18"] > 0) { flagSub18 = 1 } var buttonDisplay = "display:block;"; nuevaColumna = document.createElement("td"); var iner = "
"; if (GM_getValue("league_graph_button") == "checked") { buttonDisplay = "" } else { buttonDisplay = "display:none;"; } iner += ""; if (GM_getValue("league_report_button") == "checked") { buttonDisplay = "" } else { buttonDisplay = "display:none;"; } iner += ""; if (GM_getValue("league_calendar_button") == "checked") { buttonDisplay = "" } else { buttonDisplay = "display:none;"; } iner += " "; iner += "
"; cat = cats[urlParams.get('type')] nuevaColumna.innerHTML = iner filasDatos[i].appendChild(nuevaColumna); nuevaColumna = document.createElement("td"); (function (currentId, currentLSport, lang) { document.getElementById("but1" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Graficos/graficoProgresoEquipo.php?idEquipo=" + currentId + "&idioma=" + lang + "&divisa=" + GM_getValue("currency") + "&deporte=" + currentLSport; openWindow(link, 0.95, 1.25); }); })(id, window.lsport, window.lang); (function (currentId, currentLSport, lang, currentCat) { document.getElementById("but2" + currentId).addEventListener('click', function () { var src = "filtroGraficoEquiposHistoricoHockey"; if (currentLSport == "F") { src = "filtroGraficoLinealEquiposHistorico"; } var link = "https://statsxente.com/MZ1/View/" + src + ".php?tamper=yes&categoria=" + cat + "&idEquipo=" + currentId + "&idioma=" + lang + "&modal=yes&valor=nota&season=75&season_actual=75&equipo=-" openWindow(link, 0.95, 1.25); }); })(id, window.lsport, window.lang, cat); (function (currentId, currentEquipo, currentCat, currentSport, lang) { document.getElementById("but" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/View/filtroStatsEquiposHistorico.php?tamper=no&idEquipo=" + currentId + "&idioma=" + lang + "&modal=yes&deporte=" + currentSport + "&season=77&season_actual=77&categoria=" + currentCat + "&equipo=" + currentEquipo + "&cerrar=no"; openWindow(link, 0.95, 1.25); }); })(id, equipo, cat, window.sport, window.lang); (function (currentId, type, currentCat, currentSport, lang, flagS, flagS23, flagS21, flagS18) { document.getElementById("but3" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Graficos/graficoRachaEquipoELO.php?tamper=yes&team_id=" + currentId + "&idioma=" + lang + "&deporte=" + currentSport + "&type=" + type + "&cat=" + currentCat + "&flagSenior=" + flagS + "&flagSub23=" + flagS23 + "&flagSub21=" + flagS21 + "&flagSub18=" + flagS18; openWindow(link, 0.95, 1.25); }); })(id, eloType, cats_elo[cat], window.sport, window.lang, flagSenior, flagSub23, flagSub21, flagSub18); } } var thead = document.getElementsByClassName("seriesHeader")[0] var ths = thead.querySelectorAll("th"); ths.forEach(function (th, index) { th.addEventListener("click", function () { if (index == 1) { ordenarTablaText(index, true, "nice_table",true); } else { ordenarTabla(index, true, "nice_table",true); } }); }); } }); } //Clash leagues page function clashLeagues() { var urlParams = new URLSearchParams(window.location.search); document.getElementById("division-select").addEventListener('change', function () { setTimeout(function () { clashLeagues(); }, 2000); }); document.getElementById("season-select").addEventListener('change', function () { setTimeout(function () { clashLeagues(); }, 2000); }); var elems = document.getElementsByClassName("nice_table"); var tabla = elems[0] var thSegundo = tabla.querySelector("thead th:nth-child(2)"); thSegundo.style.width = "250px"; var values = new Map(); values.set('valueLM', 'LM Value'); values.set('elo', 'ELO Score'); values.set('teams_count', 'Number of teams'); values.set('table_index', 'Rank Position'); var contenidoNuevo = '
' getNativeTableStyles(); var idProgress = "noProgress"; if (urlParams.get('type') == "senior") { idProgress = "divProgress" } ///MENU TABLE contenidoNuevo += "
"; contenidoNuevo += ''; contenidoNuevo += ""; contenidoNuevo += "
Values
"; contenidoNuevo += ''; values.forEach(function (valor, clave) { contenidoNuevo += ''; }); contenidoNuevo += "
" contenidoNuevo += "

"; values.set('value', 'Value'); elems = document.getElementsByClassName("nice_table"); tabla = elems[0] tabla.insertAdjacentHTML('beforebegin', contenidoNuevo); values.forEach(function (valor, clave) { var elemento = document.getElementById(clave); elemento.addEventListener('click', handleClickClash); }); var nuevaCeldaEncabezado = document.createElement("th"); nuevaCeldaEncabezado.textContent = "Value"; nuevaCeldaEncabezado.style.textAlign = 'center'; var ser = document.getElementsByClassName("seriesHeader") document.getElementsByClassName("nice_table")[0].querySelector('thead').querySelector('tr').appendChild(nuevaCeldaEncabezado); nuevaCeldaEncabezado = document.createElement("th"); nuevaCeldaEncabezado.textContent = "Stats Xente"; nuevaCeldaEncabezado.style.textAlign = 'center'; document.getElementsByClassName("nice_table")[0].querySelector('thead').querySelector('tr').appendChild(nuevaCeldaEncabezado); var contIds = 0 var linkIds = "" var filasDatos = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (var i = 0; i < filasDatos.length; i++) { var celda = tabla.rows[i + 1].cells[1]; var imagen = celda.querySelector('img'); var url = new URL(imagen.src); var id = url.searchParams.get('fid'); linkIds += "&id" + contIds + "=" + id contIds++ } GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_federations.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport + linkIds, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); teams_data = jsonResponse; var filasDatos = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (var i = 0; i < filasDatos.length; i++) { var celda = tabla.rows[i + 1].cells[1]; var imagen = celda.querySelector('img'); var url = new URL(imagen.src); var id = url.searchParams.get('fid'); var nuevaColumna = document.createElement("td"); var valor = 0 valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[id]["value"])) nuevaColumna.innerHTML = valor nuevaColumna.style.textAlign = 'center'; filasDatos[i].appendChild(nuevaColumna); nuevaColumna = document.createElement("td"); var iner = "
"; iner += "
"; var cat = cats[urlParams.get('type')] nuevaColumna.innerHTML = iner filasDatos[i].appendChild(nuevaColumna); (function (currentId, currentSport, lang) { document.getElementById("but" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Functions/loadClashFederationDetail.php?tamper=yes&idioma=" + lang + "&modal_to_close=myModal&divisa=" + GM_getValue("currency") + "&fid=" + currentId + "&sport=" + currentSport + "&modal=yes"; openWindow(link, 0.95, 1.25); }); })(id, window.sport, window.lang); } } }); var thead = document.getElementsByClassName("nice_table")[0].querySelector('thead') var ths = thead.querySelectorAll("th"); ths.forEach(function (th, index) { th.addEventListener("click", function () { ordenarTabla(index, true, "nice_table",true); }); }); } //Cups and FL's page async function friendlyCupsAndLeagues() { var urlParams = new URLSearchParams(window.location.search); var age_restriction = "none" var link = "https://www.managerzone.com" + document.getElementById("ui-id-1").getAttribute('href') if (urlParams.get('fsid')) { age_restriction = await fetchAgeRestriction(link); } else { age_restriction = await fetchCupAgeRestriction(link); } var detected_cat = "senior" if (age_restriction !== "none") { switch (age_restriction) { case "U23": detected_cat = "u23" break; case "U21": detected_cat = "u21" break; case "U18": detected_cat = "u18" break; } } var initialValues = {}; initialValues["senior"] = GM_getValue("league_default_senior"); initialValues["world"] = GM_getValue("league_default_senior"); initialValues["u23"] = GM_getValue("league_default_u23"); initialValues["u21"] = GM_getValue("league_default_u21"); initialValues["u18"] = GM_getValue("league_default_u18"); initialValues["u23_world"] = GM_getValue("league_default_u23"); initialValues["u21_world"] = GM_getValue("league_default_u21"); initialValues["u18_world"] = GM_getValue("league_default_u18");; var linkIds = "" var elems = document.getElementsByClassName("nice_table"); var tabla = elems[0] var thSegundo = tabla.querySelector("thead th:nth-child(2)"); thSegundo.style.width = "250px"; var values = new Map(); values.set('valor23', 'U23 Value'); values.set('valor21', 'U21 Value'); values.set('valor18', 'U18 Value'); values.set('salario', 'Salary'); values.set('valorUPSenior', 'LM Value'); values.set('valorUPSUB23', 'U23 LM Value'); values.set('valorUPSUB21', 'U21 LM Value'); values.set('valorUPSUB18', 'U18 LM Value'); values.set('edad', 'Age'); if (window.sport == "soccer") { values.set('valor11', 'TOP 11'); values.set('valor11_23', 'U23 TOP 11'); values.set('valor11_21', 'U21 TOP 11'); values.set('valor11_18', 'U18 TOP 11'); } else { values.set('valor11', 'TOP 21'); values.set('valor11_23', 'U23 TOP 21'); values.set('valor11_21', 'U21 TOP 21'); values.set('valor11_18', 'U18 TOP 21'); } values.set('noNac', 'Foreigners'); values.set('elo', 'ELO Score'); values.set('elo23', 'U23 ELO Score'); values.set('elo21', 'U21 ELO Score'); values.set('elo18', 'U18 ELO Score'); values.set('numJugadores', 'Number of players'); values.set('leagues', 'Leagues'); values.set('world_leagues_all', 'World Leagues'); values.set('youth_leagues_all', 'Youth Leagues'); values.set('world_youth_leagues_all', 'Youth World Leagues'); values.set('federation_leagues', 'Federation Leagues'); values.set('cup', 'Cups'); values.set('cup_u23', 'U23 Cups'); values.set('cup_u21', 'U21 Cups'); values.set('cup_u18', 'U18 Cups'); values.set('special_cup', 'Special Cups'); var contenidoNuevo = '
' getNativeTableStyles(); var idProgress = "noProgress"; if (urlParams.get('type') == "senior") { idProgress = "divProgress" } var widthTable = "1.5em" ///MENU TABLE contenidoNuevo += "
"; contenidoNuevo += ''; contenidoNuevo += ""; var styleTable = " style='display:none;'"; var styleIcon = "" var styleSep = "style='padding-top:5px;'"; if (GM_getValue("show_league_selects") == true) { styleTable = ""; styleIcon = " active" styleSep = " style='display:none;'"; } contenidoNuevo += ""; contenidoNuevo += ""; contenidoNuevo += "
Stats Xente
"; contenidoNuevo += '
'; contenidoNuevo += "
"; contenidoNuevo += ''; } else { contenidoNuevo += 'Value'; } } else { contenidoNuevo += 'Value'; } values.forEach(function (valor, clave) { if (clave == "valorUPSenior") { contenidoNuevo += ""; } if (clave == "valor11") { contenidoNuevo += ""; } if (clave == "elo") { contenidoNuevo += ""; } if (clave == "leagues") { contenidoNuevo += ""; } if (clave == "leagues_all") { contenidoNuevo += ""; } if (clave == "cup") { contenidoNuevo += ""; } if (clave == initialValues[detected_cat]) { contenidoNuevo += ''; } else { contenidoNuevo += ''; } }); contenidoNuevo += "
" contenidoNuevo += "

"; values.set('valor', 'Value'); elems = document.getElementsByClassName("nice_table"); tabla = elems[0] tabla.insertAdjacentHTML('beforebegin', contenidoNuevo); if (GM_getValue("show_league_selects") == true) { document.getElementById("line2").style.transform = 'rotateZ(0deg)'; document.getElementById("line1").style.transform = 'rotateZ(180deg)'; document.getElementById("moreInfo").style.transform = 'rotateZ(0deg)'; } values.forEach(function (valor, clave) { var elemento = document.getElementById(clave); elemento.addEventListener('click', handleClick); }); var nuevaCeldaEncabezado = document.createElement("th"); nuevaCeldaEncabezado.textContent = values.get(initialValues[detected_cat]); nuevaCeldaEncabezado.style.textAlign = 'center'; nuevaCeldaEncabezado.style.maxWidth = '7.5em'; nuevaCeldaEncabezado.style.width = '7.5em'; nuevaCeldaEncabezado.style.whiteSpace = 'nowrap'; nuevaCeldaEncabezado.style.overflow = 'hidden'; nuevaCeldaEncabezado.style.textOverflow = 'ellipsis'; var ser = document.getElementsByClassName("seriesHeader") var table_index = 0; for (var kl = 0; kl < ser.length; kl++) { if (document.getElementsByClassName("seriesHeader")[kl].parentNode.parentNode.className == "nice_table") { table_index = kl } } document.getElementsByClassName("seriesHeader")[table_index].cells[1].style.width = "180px" document.getElementsByClassName("seriesHeader")[table_index].appendChild(nuevaCeldaEncabezado); nuevaCeldaEncabezado = document.createElement("th"); nuevaCeldaEncabezado.textContent = "Stats Xente"; nuevaCeldaEncabezado.style.textAlign = 'center'; ser = document.getElementsByClassName("seriesHeader") document.getElementsByClassName("seriesHeader")[table_index].appendChild(nuevaCeldaEncabezado); if (tabla.getElementsByTagName("tbody")[0].innerHTML.includes("mazyar")) { searchClassName = "responsive-hide" } var contIds = 0 var filasDatos = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (var i = 0; i < filasDatos.length; i++) { if (checkClassNameExists(tabla.rows[i + 1], searchClassName)) { var celda = tabla.rows[i + 1].cells[1]; var equipo = celda.textContent.trim() var iniIndex = celda.innerHTML.indexOf("tid="); var lastIndex = celda.innerHTML.indexOf("\">", iniIndex + 4); var data = String(celda.innerHTML) var id = data.substring(iniIndex + 4, lastIndex) linkIds += "&idEquipo" + contIds + "=" + id contIds++ celda.innerHTML += "" } } ///DIV PROGRESS setTimeout(function () { (function () { document.getElementById("moreInfo").addEventListener('click', function () { document.getElementById("moreInfo").classList.toggle('active'); if (document.getElementById("moreInfo").classList.contains("active")) { document.getElementById("line2").style.transform = 'rotateZ(0deg)'; document.getElementById("line1").style.transform = 'rotateZ(180deg)'; document.getElementById("moreInfo").style.transform = 'rotateZ(0deg)'; $('#separatorTd').fadeOut(1); document.getElementById("separatorTd").style.paddingTop = "5px"; $('#show3').fadeIn('slow'); } else { document.getElementById("line2").style.transform = 'rotateZ(45deg)'; document.getElementById("line1").style.transform = 'rotateZ(-45deg)'; document.getElementById("moreInfo").style.transform = 'rotateZ(45deg)'; $('#separatorTd').fadeIn(1); $('#show3').fadeOut('slow'); } }); })(); }, 200); GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_teams.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport + linkIds, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); teams_data = jsonResponse; var filasDatos = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (var i = 0; i < filasDatos.length; i++) { if (checkClassNameExists(filasDatos[i], searchClassName)) { var celda = filasDatos[i].cells[1] var equipo = celda.textContent.trim() var iniIndex = celda.innerHTML.indexOf("tid="); var lastIndex = celda.innerHTML.indexOf("\">", iniIndex + 4); var data = String(celda.innerHTML) var id = data.substring(iniIndex + 4, lastIndex) var nuevaColumna = document.createElement("td"); var valor = 0; if (jsonResponse[id] && jsonResponse[id][initialValues[detected_cat]] !== undefined) { valor = new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[id][initialValues[detected_cat]])) } nuevaColumna.innerHTML = valor nuevaColumna.style.textAlign = 'center'; filasDatos[i].appendChild(nuevaColumna); var eloType = 1 if (window.sport == "soccer") { eloType = 2 } var cats_elo = {} cats_elo["senior"] = "SENIOR"; cats_elo["seniorw"] = "SENIOR"; cats_elo["SUB23"] = "U23"; cats_elo["SUB21"] = "U21"; cats_elo["SUB18"] = "U18"; cats_elo["SUB23w"] = "U23"; cats_elo["SUB21w"] = "U21"; cats_elo["SUB18w"] = "U18"; var cat = cats[detected_cat] var flagSenior = 0, flagSub23 = 0, flagSub21 = 0, flagSub18 = 0; if (jsonResponse[id]["elo"] > 0) { flagSenior = 1 } if (jsonResponse[id]["elo23"] > 0) { flagSub23 = 1 } if (jsonResponse[id]["elo21"] > 0) { flagSub21 = 1 } if (jsonResponse[id]["elo18"] > 0) { flagSub18 = 1 } var buttonDisplay = "display:block;"; nuevaColumna = document.createElement("td"); var iner = "
"; if (GM_getValue("league_graph_button") == "checked") { buttonDisplay = "" } else { buttonDisplay = "display:none;"; } iner += ""; if (GM_getValue("league_report_button") == "checked") { buttonDisplay = "" } else { buttonDisplay = "display:none;"; } iner += ""; if (GM_getValue("league_calendar_button") == "checked") { buttonDisplay = "" } else { buttonDisplay = "display:none;"; } iner += " "; iner += "
"; nuevaColumna.innerHTML = iner filasDatos[i].appendChild(nuevaColumna); nuevaColumna = document.createElement("td"); (function (currentId, currentLSport, lang) { document.getElementById("but1" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Graficos/graficoProgresoEquipo.php?idEquipo=" + currentId + "&idioma=" + lang + "&divisa=" + GM_getValue("currency") + "&deporte=" + currentLSport; openWindow(link, 0.95, 1.25); }); })(id, window.lsport, window.lang); (function (currentId, currentLSport, lang, currentCat) { document.getElementById("but2" + currentId).addEventListener('click', function () { var src = "filtroGraficoEquiposHistoricoHockey"; if (currentLSport == "F") { src = "filtroGraficoLinealEquiposHistorico"; } var link = "https://statsxente.com/MZ1/View/" + src + ".php?tamper=yes&categoria=" + currentCat + "&idEquipo=" + currentId + "&idioma=" + lang + "&modal=yes&valor=nota&season=75&season_actual=75&equipo=-" openWindow(link, 0.95, 1.25); }); })(id, window.lsport, window.lang, cat); (function (currentId, currentEquipo, currentCat, currentSport, lang) { document.getElementById("but" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/View/filtroStatsEquiposHistorico.php?tamper=no&idEquipo=" + currentId + "&idioma=" + lang + "&modal=yes&deporte=" + currentSport + "&season=77&season_actual=77&categoria=" + currentCat + "&equipo=" + currentEquipo + "&cerrar=no"; openWindow(link, 0.95, 1.25); }); })(id, equipo, cat, window.sport, window.lang); (function (currentId, type, currentCat, currentSport, lang, flagS, flagS23, flagS21, flagS18) { document.getElementById("but3" + currentId).addEventListener('click', function () { var link = "https://statsxente.com/MZ1/Graficos/graficoRachaEquipoELO.php?tamper=yes&team_id=" + currentId + "&idioma=" + lang + "&deporte=" + currentSport + "&type=" + type + "&cat=" + currentCat + "&flagSenior=" + flagS + "&flagSub23=" + flagS23 + "&flagSub21=" + flagS21 + "&flagSub18=" + flagS18; openWindow(link, 0.95, 1.25); }); })(id, eloType, cats_elo[cat], window.sport, window.lang, flagSenior, flagSub23, flagSub21, flagSub18); } } var thead = document.getElementsByClassName("seriesHeader")[table_index] var ths = thead.querySelectorAll("th"); ths.forEach(function (th, index) { th.addEventListener("click", function () { ordenarTabla(index, true, "nice_table",true); }); }); } }); } //Match page async function match() { var team_div = document.getElementsByClassName("flex-grow-0 textCenter team-table block") if (team_div.length==0){ team_div = document.getElementsByClassName("flex-grow-0 textCenter team-table no-match-buttons block") } var teams_ = [] var linkIds="" var contIds=0 for (var x = 0; x < 2; x++) { var as = team_div[x].getElementsByTagName("a") var urlObj = new URL("https://www.managerzone.com/" + as[0].getAttribute('href')); var params = new URLSearchParams(urlObj.search); var tidValue = params.get('tid'); teams_[x] = { "team_name": as[0].innerHTML, "team_id": tidValue, "inserted": "" } linkIds += "&idEquipo" + contIds + "=" + tidValue contIds++ } GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_teams.php?currency=" + GM_getValue("currency") + "&sport=" + window.sport + linkIds, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); const divs = document.querySelectorAll('div'); // Selecciona todos los divs const divsConAltura15px = Array.from(divs).filter(div => { const computedStyle = window.getComputedStyle(div); return computedStyle.height === '15px' && div.innerHTML === ""; }); for(var m=0;m<2;m++){ var aux=teams_[m]['team_id'] var top="TOP 11" if(window.sport=="hockey"){ top="TOP 21" } var teamTable='
' teamTable+='' teamTable+='' teamTable+='' teamTable+='' var valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor'])) var valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSenior'])) var valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11'])) var elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo'])) teamTable+='' valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor23'])) valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSUB23'])) valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11_23'])) elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo23'])) teamTable+='' valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor21'])) valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSUB21'])) valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11_21'])) elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo21'])) teamTable+='' valor=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor18'])) valorLM=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valorUPSUB18'])) valor11=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['valor11_18'])) elo=new Intl.NumberFormat(window.userLocal).format(Math.round(jsonResponse[aux]['elo18'])) teamTable+='' teamTable+='' teamTable+='' teamTable+='' teamTable+='
ValueLM Value'+top+'ELO
Senior'+valor+''+valorLM+''+valor11+''+elo+'
U23'+valor+''+valorLM+''+valor11+''+elo+'
U21'+valor+''+valorLM+''+valor11+''+elo+'
U18'+valor+''+valorLM+''+valor11+''+elo+'
' divsConAltura15px[m].insertAdjacentHTML('afterend',teamTable) } const thElements = document.querySelectorAll('table.matchValuesTable th'); // Cambia el color de fondo de cada thElements.forEach(th => { th.style.backgroundColor = GM_getValue("bg_native"); th.style.color = GM_getValue("color_native"); }); document.getElementById("thTransparent0").style.backgroundColor="transparent"; document.getElementById("thTransparent1").style.backgroundColor="transparent"; } }); var elems = document.getElementsByClassName("hitlist " + window.sport + " statsLite marker tablesorter"); for (x = 0; x < 2; x++) { var linkIds = "" var contIds = 0; var tabla = elems[x] var filas = tabla.getElementsByTagName("tr"); var fila = filas[1]; for (var i = 2; i < filas.length - 1; i++) { fila = filas[i]; var tds = fila.getElementsByTagName("td"); var as_ = tds[2].getElementsByTagName("a"); urlObj = new URL("https://www.managerzone.com/" + as_[0].getAttribute("href")); params = new URLSearchParams(urlObj.search); var pid = params.get('pid'); linkIds += "&id" + contIds + "=" + pid contIds++; } link = "http://statsxente.com/MZ1/Functions/tamper_check_stats_player.php?sport=" + window.sport + linkIds var inserted = await fetchExistPlayers(link); teams_[x]["inserted"]= inserted; } elems = document.getElementsByClassName("hitlist " + window.sport + " statsLite marker tablesorter"); for (x = 0; x < 2; x++) { if (teams_[x]['inserted']['total'] > 0) { tabla = elems[x] var firstTrThead = tabla.querySelector('thead td'); var currentColspan = firstTrThead.getAttribute('colspan'); currentColspan = parseInt(currentColspan, 10) + 1; firstTrThead.setAttribute('colspan', currentColspan); var secondTrThead = tabla.querySelector('thead tr:nth-of-type(2)') var newTd = document.createElement('td'); newTd.textContent = ''; secondTrThead.appendChild(newTd); filas = tabla.getElementsByTagName("tr"); fila = filas[1]; var dato = document.createElement("td"); var tfoot = tabla.querySelector("tfoot"); var primeraFilaTfoot = tfoot.querySelector("tr"); var primerTDTfoot = primeraFilaTfoot.querySelector("td"); primerTDTfoot.setAttribute("colspan", "9"); var elems2 = document.getElementsByClassName("listHeadColor"); var lista = elems2[0] var nuevoElementoDD = document.createElement("dd"); nuevoElementoDD.textContent = "Nuevo elemento"; nuevoElementoDD.className = "c6" lista.appendChild(nuevoElementoDD); var id = 1516; for (i = 2; i < filas.length - 1; i++) { fila = filas[i]; tds = fila.getElementsByTagName("td"); as_ = tds[2].getElementsByTagName("a"); urlObj = new URL("https://www.managerzone.com/" + as_[0].getAttribute("href")); params = new URLSearchParams(urlObj.search); pid = params.get('pid'); if (teams_[x]['inserted'][pid] == "yes") { dato = document.createElement("td"); var iner = ""; dato.innerHTML = iner fila.appendChild(dato); (function (currentId, currentTeamId, currentSport, lang, team_name, player_name) { document.getElementById("but" + currentId).addEventListener('click', function () { var link = "http://statsxente.com/MZ1/Functions/tamper_player_stats.php?sport=" + currentSport + "&player_id=" + currentId + "&team_id=" + currentTeamId + "&idioma=" + lang + "&divisa=" + GM_getValue("currency") + "&team_name=" + encodeURIComponent(team_name) + "&player_name=" + encodeURIComponent(player_name) openWindow(link, 0.95, 1.25); }); })(pid, teams_[x]['team_id'], window.sport, window.lang, teams_[x]['team_name'], as_[0].innerHTML); } } } } } //Players page async function playersPage() { setTimeout(function () { var elementos = document.getElementsByClassName('playerContainer'); var player_values = {} var tactics_list = [] var urlParams = new URLSearchParams(window.location.search); var flagStats = true if (urlParams.has('tid')) { flagStats = false } if (flagStats) { var habil_container = elementos[0].getElementsByClassName("player_skills") var habil = habil_container[0].getElementsByClassName("clippable") if (window.sport == "hockey") { for (var q = 1; q < habil.length; q++) { skills_names.push(habil[q].textContent) } } else { for (q = 0; q < habil.length - 1; q++) { skills_names.push(habil[q].textContent) } var player_images = document.getElementsByClassName("player-image soccer") } } var ids_ = [] for (var i = 0; i < elementos.length; i++) { var ids = elementos[i].getElementsByClassName('player_id_span'); var elementos_ = elementos[i].getElementsByClassName('p_sublinks'); var subheaders = elementos[i].getElementsByClassName('subheader clearfix'); var enlace = subheaders[0].querySelector('.subheader a'); var urlObj = new URL("https://www.managerzone.com/" + enlace.getAttribute('href')); var params = new URLSearchParams(urlObj.search); var tid = params.get('tid'); var playerName = enlace.querySelector('.player_name').textContent ids_.push({ "id": ids[0].textContent, "name": playerName }); var txt = '" + tactics_list[x] + "" } contenidoNuevo += "
" container.innerHTML = contenidoNuevo + container.innerHTML; skillDistrib(tactics_list[0]); document.getElementById("tactics_select").addEventListener('change', function () { var select = document.getElementById('tactics_select'); var valorSeleccionado = select.value; document.getElementById("divMenu").innerHTML = "" skillDistrib(valorSeleccionado) }); } for (i = 0; i < ids_.length; i++) { (function (currentId, currentTeamId, currentSport, lang, team_name, player_name) { document.getElementById("but" + currentId).addEventListener('click', function () { var link = "http://statsxente.com/MZ1/Functions/tamper_player_stats.php?sport=" + currentSport + "&player_id=" + currentId + "&team_id=" + currentTeamId + "&idioma=" + lang + "&divisa=" + GM_getValue("currency") + "&team_name=" + encodeURIComponent(team_name) + "&player_name=" + encodeURIComponent(player_name) openWindow(link, 0.95, 1.25); }); })(ids_[i]['id'], tid, window.sport, window.lang, "[undefined]", ids_[i]['name'],); } }, 1000); } function skillDistrib(tactic) { var t = tactic if (window.sport == "hockey") { var l = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } else { l = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } var li_t = {} for (var i = 0; i < lines.length; i++) { li_t[lines[i]] = [...l]; } var no_gk_line = "Tactic -(" + gk_line + ")" li_t["Team"] = [...l]; li_t["U23"] = [...l]; li_t["U21"] = [...l]; li_t["U18"] = [...l]; li_t["Tactic"] = [...l]; li_t[no_gk_line] = [...l]; for (i = 0; i < players.length; i++) { if (players[i]['tactics'].includes(t)) { for (var j = 0; j < players[i]['skills'].length; j++) { li_t[players[i]['tactics-position'][t]][j] += players[i]['skills'][j] li_t['Tactic'][j] += players[i]['skills'][j] if (players[i]['tactics-position'][t] != "Po") { li_t[no_gk_line][j] += players[i]['skills'][j] } } li_t[players[i]['tactics-position'][t]][j] += 1 li_t['Tactic'][j] += 1 if (players[i]['tactics-position'][t] != "Po") { li_t[no_gk_line][j] += 1 } } else { for (j = 0; j < players[i]['skills'].length; j++) { if (players[i]['age'] <= 23) { li_t['U23'][j] += players[i]['skills'][j] } if (players[i]['age'] <= 23) { li_t['U21'][j] += players[i]['skills'][j] } if (players[i]['age'] <= 23) { li_t['U18'][j] += players[i]['skills'][j] } li_t['Team'][j] += players[i]['skills'][j] } if (players[i]['age'] <= 23) { li_t['U23'][li_t["U23"].length - 1] += 1 } if (players[i]['age'] <= 21) { li_t['U21'][li_t["U21"].length - 1] += 1 } if (players[i]['age'] <= 18) { li_t['U18'][li_t["U18"].length - 1] += 1 } li_t['Team'][li_t["Team"].length - 1] += 1 } } const container = document.getElementById("divMenu") var contenidoNuevo = "
"; contenidoNuevo += '' for (var q = 0; q < skills_names.length; q++) { contenidoNuevo += '' } contenidoNuevo += ''; var l_aux = lines l_aux = l_aux.filter(item => item !== gk_line); l_aux.sort((a, b) => { let numA = parseInt(a.substring(1), 10); let numB = parseInt(b.substring(1), 10); return numA - numB; }); l_aux.unshift(gk_line); l_aux.push("Tactic"); l_aux.push(no_gk_line); if (window.sport == "hockey") { if (li_t["L4"][10] == 0) { let index = l_aux.indexOf('L4'); if (index !== -1) { l_aux.splice(index, 1); } } } if (t == "All Team") { l_aux = ["Team", "U23", "U21", "U18"] } l_aux = l_aux.filter(item => !item.includes(su_line)); for (var w = 0; w < l_aux.length; w++) { var key = l_aux[w] if (li_t.hasOwnProperty(key)) { contenidoNuevo += ""; contenidoNuevo += ""; for (var x = 0; x < li_t[key].length - 1; x++) { contenidoNuevo += ""; } contenidoNuevo += ""; } } container.innerHTML += contenidoNuevo; } //Players links to stats async function playersPageStats() { var element = document.getElementById('thePlayers_0'); var elementos_ = element.getElementsByClassName('p_sublinks'); var subheaders = element.getElementsByClassName('subheader clearfix'); var enlace = subheaders[0].querySelector('.subheader a'); var urlObj = new URL("https://www.managerzone.com/" + enlace.getAttribute('href')); var params = new URLSearchParams(urlObj.search); var tid = params.get('tid'); var playerName = enlace.querySelector('.player_name').textContent var ids = element.getElementsByClassName('player_id_span'); var txt = ' 0) { cell_name.innerHTML = raw_str + " " + cell_name.innerHTML } var index = 0; var cell0 = row.insertCell(insertIndex + index); index++; var cell1 = row.insertCell(insertIndex + index); index++; var cell2 = row.insertCell(insertIndex + index); index++; var cell3 = row.insertCell(insertIndex + index); index++; var cell4 = row.insertCell(insertIndex + index); index++; var cell5 = row.insertCell(insertIndex + index); index++; var cell6 = row.insertCell(insertIndex + index); index++; var cell7 = row.insertCell(insertIndex + index); index++; var cell8 = row.insertCell(insertIndex + index); index++; var cell9 = row.insertCell(insertIndex + index); if (i === 0) { cell0.outerHTML = ""; cell1.outerHTML = ""; cell2.outerHTML = ""; cell3.outerHTML = ""; cell4.outerHTML = ""; cell5.outerHTML = ""; cell6.outerHTML = ""; cell7.outerHTML = ""; cell8.outerHTML = ""; cell9.outerHTML = ""; } else { var ini = raw_str.indexOf("s_"); var fin = raw_str.indexOf(".", ini + 1); var c_code = raw_str.substring(ini + 2, fin) cell0.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["numJugadores"])) cell0.className = "players" cell0.style.display = "none" cell1.innerHTML = new Intl.NumberFormat(window.userLocal, { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(data[c_code]["edad"]) cell1.className = "age" cell1.style.display = "none" cell2.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["valor"])) cell2.className = "value" cell2.style.display = "table-cell" cell3.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["valor11"])) cell3.className = "top11" cell3.style.display = "none" cell4.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["salario"])) cell4.className = "salary" cell4.style.display = "none" cell5.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["elo"])) cell5.className = "elo" cell5.style.display = "table-cell" cell6.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["elo21"])) cell6.className = "elo21" cell6.style.display = "table-cell" cell7.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["valorLM"])) cell7.className = "lm" cell7.style.display = "table-cell" cell8.innerHTML = new Intl.NumberFormat(window.userLocal).format(Math.round(data[c_code]["valorLM21"])) cell8.className = "lmu21" cell8.style.display = "table-cell" cell9.innerHTML = '' var actual_id = "image" + i cell9.id = actual_id cell9.style.display = "table-cell"; (function (id, code, type_) { document.getElementById(id).addEventListener('click', function () { var link = "https://www.statsxente.com/MZ1/Graficos/graficoRachaEquipoELONT.php?tamper=yes&team_id=" + data[code]["idSenior"] + "&team_id_u21=" + data[code]["idSub21"] + "&idioma=" + window.lang + "&type=" + type_ + "&cat=SENIOR&sport=" + window.sport; openWindow(link, 0.95, 1.25); }); })(actual_id, c_code, type); } } setTimeout(function () { for (var f = 0; f < table_values.length; f++) { (function (actual_value, f) { document.getElementById(actual_value + "_th").addEventListener('click', function () { if (document.getElementById(actual_value + "_th").className == "header") { document.getElementById(actual_value + "_th").className = "header headerSortDown"; } else { if (document.getElementById(actual_value + "_th").className == "header headerSortDown") { document.getElementById(actual_value + "_th").className = "header headerSortUp"; } else { document.getElementById(actual_value + "_th").className = "header headerSortDown"; } } var index_ = 3 + f ordenarTabla(index_, false, "countryRankTable",false) }); document.getElementById(actual_value).addEventListener('click', function () { var display = "table-cell" if (document.getElementById(actual_value + "_th").style.display == "table-cell") { display = "none" } var elementos = document.getElementsByClassName(actual_value) Array.prototype.forEach.call(elementos, function (elemento) { var aux_display = "table-cell" if (document.getElementById(actual_value + "_th").style.display == "table-cell") { aux_display = "none" } elemento.style.display = aux_display; }); document.getElementById(actual_value + "_th").style.display = display }); })(table_values[f], f); } }, 1000); } }); } //Stats Xente competitions matches function StatsXenteNextMatchesClubhouse() { var h1Elements = document.querySelectorAll('h1.box_dark'); var team_name = h1Elements[0].innerText var team_id = document.getElementById("tid1").value; GM_xmlhttpRequest({ method: "GET", url: "https://statsxente.com/MZ1/Functions/tamper_user_next_matches.php?team_id=" + team_id, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); var data = jsonResponse; if (data.length > 0) { GM_xmlhttpRequest({ method: "GET", url: "http://www.managerzone.com/xml/team_matchlist.php?sport_id=" + window.sport_id + "&team_id=" + team_id + "&match_status=2&limit=100", headers: { "Content-Type": "application/json" }, onload: function (response) { var matchesDate = [] var parser = new DOMParser(); var xmlDoc = parser.parseFromString(response.responseText, "text/xml"); var matches = xmlDoc.getElementsByTagName("Match"); var last_date = "" for (var i = 0; i < matches.length; i++) { var dateOnly = matches[i].getAttribute("date").split(" ")[0]; last_date = dateOnly var teams = matches[i].getElementsByTagName("Team"); for (var j = 0; j < teams.length; j++) { if (teams[j].getAttribute("teamId") != team_id) { matchesDate.push(teams[j].getAttribute("teamId") + "-" + dateOnly) } } } var newContent = ` `; var contenedor = document.getElementById('tour-container'); if (data.length > 0) { contenedor.insertAdjacentHTML('beforebegin', newContent); } } }); } } }); } //HANDLERS FUNCTIONS function handleClick(event) { var urlParams = new URLSearchParams(window.location.search); var elems = document.getElementsByClassName("nice_table"); var tabla = elems[0] var filas = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); var thSegundo = tabla.querySelector("thead th:nth-child(2)"); if (urlParams.get('fsid')) { thSegundo.style.width = "180px"; } else { thSegundo.style.width = "250px"; } for (var i = 0; i < filas.length; i++) { if (checkClassNameExists(filas[i], searchClassName)) { var celda = filas[i].cells[1]; var equipo = celda.textContent.trim() var iniIndex = celda.innerHTML.indexOf("tid="); var lastIndex = celda.innerHTML.indexOf("\">", iniIndex + 4); var data = String(celda.innerHTML) var id = data.substring(iniIndex + 4, lastIndex) var celdas = filas[i].getElementsByTagName("td"); var ultimaCelda = celdas[celdas.length - 2]; var selects = document.getElementsByTagName('select'); var index_select = 1; if (selects[index_select] === undefined) { index_select = 0; } var selectedIndex = selects[index_select].selectedIndex; var selectedOption = selects[index_select].options[selectedIndex]; var selectedText = selectedOption.text; var key_actual_league = "Top"; if (selectedText.includes(".")) { key_actual_league = selectedText.substring(0, 4) } var valor = 0; if (teams_data[id] === undefined) { valor = 0 } else { var table_key = ""; var agg_value = 0; switch (event.target.id) { case 'edad': valor = new Intl.NumberFormat(window.userLocal, { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(teams_data[id][event.target.id]) break; case "leagues": table_key = "league" agg_value = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] valor = "(" + teams_data[id]['league_' + key_actual_league] + '/' + agg_value + ")" break; case "world_leagues": table_key = "world_league" agg_value = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] valor = "(" + teams_data[id][table_key + '_' + key_actual_league] + '/' + agg_value + ")" break; case "youth_leagues": var cat = GM_getValue("actual_league_cat").toLowerCase() table_key = "league_" + cat agg_value = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] valor = "(" + teams_data[id][table_key + '_' + key_actual_league] + '/' + agg_value + ")" break; case "world_youth_leagues": cat = GM_getValue("actual_league_cat").toLowerCase() table_key = "world_league_" + cat agg_value = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] valor = "(" + teams_data[id][table_key + '_' + key_actual_league] + '/' + agg_value + ")" break; case "leagues_all": table_key = "league" valor = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] break; case "world_leagues_all": table_key = "world_league" valor = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] break; case "youth_leagues_all": table_key = "league_u23" valor += teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] table_key = "league_u21" valor += teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] table_key = "league_u18" valor += teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] break; case "world_youth_leagues_all": table_key = "world_league_u23" valor += teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] table_key = "world_league_u21" valor += teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] table_key = "world_league_u18" valor += teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] break; case "federation_leagues": table_key = "federation_league" agg_value = teams_data[id][table_key + '_Top'] + teams_data[id][table_key + '_div1'] + teams_data[id][table_key + '_div2'] + teams_data[id][table_key + '_div3'] + teams_data[id][table_key + '_div4'] + teams_data[id][table_key + '_div5'] valor = agg_value break; default: valor = new Intl.NumberFormat(window.userLocal).format(Math.round(teams_data[id][event.target.id])) break; } } ultimaCelda.innerHTML = valor; } } var checkboxes = document.querySelectorAll('.statsxente'); var thead = tabla.querySelector('thead'); var tr = thead.querySelectorAll('tr'); var td = tr[0].querySelectorAll('th'); var ultimaCeldaEncabezado = td[td.length - 2]; td[td.length - 2].textContent = event.target.value; checkboxes.forEach(function (checkbox) { if (checkbox.id !== event.target.id) { checkbox.checked = false; } }); } function handleClickClash(event) { var elems = document.getElementsByClassName("nice_table"); var tabla = elems[0] var filas = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); var thSegundo = tabla.querySelector("thead th:nth-child(2)"); thSegundo.style.width = "250px"; for (var i = 0; i < filas.length; i++) { var celda = tabla.rows[i + 1].cells[1]; var imagen = celda.querySelector('img'); var url = new URL(imagen.src); var id = url.searchParams.get('fid'); var celdas = filas[i].getElementsByTagName("td"); var ultimaCelda = celdas[celdas.length - 2]; var valor = 0; if (teams_data[id] === undefined) { valor = 0 } else { if (event.target.id == "edad") { valor = new Intl.NumberFormat(window.userLocal, { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(teams_data[id][event.target.id]) } else { valor = new Intl.NumberFormat(window.userLocal).format(Math.round(teams_data[id][event.target.id])) } } ultimaCelda.innerHTML = valor; } var checkboxes = document.querySelectorAll('.statsxente'); var thead = tabla.querySelector('thead'); var tr = thead.querySelectorAll('tr'); var td = tr[0].querySelectorAll('th'); td[td.length - 2].textContent = event.target.value; checkboxes.forEach(function (checkbox) { if (checkbox.id !== event.target.id) { checkbox.checked = false; } }); var columna = 12 } //FETCH FUNCTIONS function fetchAgeRestriction(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url: url, headers: { "Content-Type": "application/json" }, onload: function (response) { var parser = new DOMParser(); var doc = parser.parseFromString(response.responseText, "text/html"); var strongElements = doc.getElementsByTagName("b"); var nextElement = strongElements[1].nextElementSibling; var nextSibling = strongElements[1].nextSibling; try { while (nextSibling && nextSibling.nodeName === "BR") { nextSibling = nextSibling.nextSibling; } if (nextSibling && nextSibling.nodeType === Node.TEXT_NODE) { var age_restriction = nextSibling.textContent.trim(); resolve(age_restriction); } else { resolve("none"); } } catch (error) { reject("none"); } }, onerror: function (error) { reject("none"); } }); }); } function fetchCupAgeRestriction(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url: url, headers: { "Content-Type": "application/json" }, onload: function (response) { var parser = new DOMParser(); try { var doc = parser.parseFromString(response.responseText, "text/html") var tables = doc.getElementsByTagName("table"); var table = tables[1] var tds = table.getElementsByTagName("td"); resolve(tds[5].innerHTML) } catch (error) { reject("none"); } }, onerror: function (error) { reject("none"); } }); }); } function fetchExistTeam(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url: url, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); resolve(jsonResponse['inserted']) }, onerror: function (error) { reject("no"); } }); }); } function fetchExistPlayers(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url: url, headers: { "Content-Type": "application/json" }, onload: function (response) { var jsonResponse = JSON.parse(response.responseText); resolve(jsonResponse) }, onerror: function (error) { reject("no"); } }); }); } //UTILS FUNCTIONS function waitToDOM(function_to_execute, classToSearch, elementIndex) { let interval = setInterval(function () { let elements = document.querySelectorAll(classToSearch); if (elements.length > 0 && elements[elementIndex]) { clearInterval(interval); clearTimeout(timeout); function_to_execute(); } }, 100); let timeout = setTimeout(function () { clearInterval(interval); }, 10000); } function openWindow(link, porAncho, porAlto) { var ventanaAncho = (window.innerWidth) * porAncho var ventanaAlto = (window.innerHeight) * porAlto var ventanaIzquierda = (window.innerWidth - ventanaAncho) / 2; var ventanaArriba = (window.innerHeight - ventanaAlto) / 2; var opcionesVentana = "width=" + ventanaAncho + ",height=" + ventanaAlto + ",left=" + ventanaIzquierda + ",top=" + ventanaArriba; if ((GM_getValue("tabsConfig") == false) && (GM_getValue("windowsConfig") == true)) { window.open(link, "_blank", opcionesVentana); } if ((GM_getValue("tabsConfig") == true) && (GM_getValue("windowsConfig") == false)) { window.open(link, "_blank"); } } function ordenarTabla(col, byClassName, param,putSortIconFlag) { if (byClassName) { var elems = document.getElementsByClassName(param); var table = elems[0] } else { table = document.getElementById(param) } if(putSortIconFlag){putSortIcon(col, table)} var rows = Array.from(table.tBodies[0].rows); var isAsc = document.getElementById("ord_table").value === "ascendente"; rows.sort(function (a, b) { var aNum = parseFloat(a.cells[col].textContent.trim().replace(/\./g, '').replace(/\,/g, '')) || 0; var bNum = parseFloat(b.cells[col].textContent.trim().replace(/\./g, '').replace(/\,/g, '')) || 0; return isAsc ? aNum - bNum : bNum - aNum; }); rows.forEach(function (row) { table.tBodies[0].appendChild(row); }); if (isAsc) { document.getElementById("ord_table").value = "descendente"; } else { document.getElementById("ord_table").value = "ascendente"; } var filas = table.getElementsByTagName("tr"); for (var i = 1; i < filas.length; i++) { var primeraCelda = filas[i].getElementsByTagName("td")[0]; primeraCelda.textContent = i; } } function ordenarTablaText(col, byClassName, param,putSortIconFlag) { if (byClassName) { var elems = document.getElementsByClassName(param); var table = elems[0] } else { table = document.getElementById(param) } var rows = Array.from(table.tBodies[0].rows); var isAsc = document.getElementById("ord_table").value === "ascendente"; if(putSortIconFlag){putSortIcon(col, table)} rows.sort(function (a, b) { var aText = a.cells[col].textContent.toLowerCase().trim(); var bText = b.cells[col].textContent.toLowerCase().trim(); if (aText < bText) { return isAsc ? -1 : 1; } if (aText > bText) { return isAsc ? 1 : -1; } return 0; }); rows.forEach(function (row) { table.tBodies[0].appendChild(row); }); if (isAsc) { document.getElementById("ord_table").value = "descendente"; } else { document.getElementById("ord_table").value = "ascendente"; } var filas = table.getElementsByTagName("tr"); for (var i = 1; i < filas.length; i++) { var primeraCelda = filas[i].getElementsByTagName("td")[0]; primeraCelda.textContent = i; } } function checkClassNameExists(element, className) { if (className == "") { return true; } else { return element.classList.contains(className); } return false; } function getCookie(nombre) { var regex = new RegExp("(?:(?:^|.*;\\s*)" + nombre + "\\s*\\=\\s*([^;]*).*$)|^.*$"); var valorCookie = document.cookie.replace(regex, "$1"); return decodeURIComponent(valorCookie); } function generateValuesSelect(cat) { var defaults = new Map(); defaults.set('senior', 'valor'); defaults.set('u23', 'valor23'); defaults.set('u21', 'valor21'); defaults.set('u18', 'valor18'); var values = new Map(); values.set('valor', 'Value'); values.set('valor23', 'U23 Value'); values.set('valor21', 'U21 Value'); values.set('valor18', 'U18 Value'); values.set('salario', 'Salary'); values.set('valorUPSenior', 'LM Value'); values.set('valorUPSUB23', 'U23 LM Value'); values.set('valorUPSUB21', 'U21 LM Value'); values.set('valorUPSUB18', 'U18 LM Value'); values.set('edad', 'Age'); values.set('valor11', 'TOP 11/21'); values.set('valor11_23', 'U23 TOP 11/21'); values.set('valor11_21', 'U21 TOP 11/21'); values.set('valor11_18', 'U18 TOP 11/21'); values.set('noNac', 'Foreigners'); values.set('elo', 'ELO Score'); values.set('elo23', 'U23 ELO Score'); values.set('elo21', 'U21 ELO Score'); values.set('elo18', 'U18 ELO Score'); values.set('numJugadores', 'Number of players'); var default_value = GM_getValue("league_default_" + cat, defaults.get(cat)) GM_setValue("league_default_" + cat, default_value) var select = "" return select; } function createLeagueConfigOptionsListeners() { var defaults = new Map(); defaults.set('senior', 'valor'); defaults.set('u23', 'valor23'); defaults.set('u21', 'valor21'); defaults.set('u18', 'valor18'); defaults.forEach((valor, clave, mapa) => { document.getElementById("league_default_select_" + clave).addEventListener('change', function () { var selectElement = document.getElementById("league_default_select_" + clave); GM_setValue("league_default_" + clave, selectElement.value) }); }); document.getElementById("league_graph_check").addEventListener('click', function () { if (document.getElementById("league_graph_check").checked) { GM_setValue("league_graph_button", "checked") } else { GM_setValue("league_graph_button", "") } }); document.getElementById("league_report_check").addEventListener('click', function () { if (document.getElementById("league_report_check").checked) { GM_setValue("league_report_button", "checked") } else { GM_setValue("league_report_button", "") } }); document.getElementById("league_calendar_check").addEventListener('click', function () { if (document.getElementById("league_calendar_check").checked) { GM_setValue("league_calendar_button", "checked") } else { GM_setValue("league_calendar_button", "") } }); } function createModalMenu() { var newElement = document.createElement("div"); newElement.id = "legendDiv"; newElement.className = "stx_legend"; var txtToInsert= '
' if(GM_getValue("avaliable_new_version")=="yes"){ txtToInsert+='' } txtToInsert+='' txtToInsert+='
'; newElement.innerHTML=txtToInsert; var body = document.body; body.appendChild(newElement); var newModalElement = document.createElement('div'); newModalElement.innerHTML = '
aaa
' body.insertBefore(newModalElement, body.firstChild); if (GM_getValue("leagueFlag") === undefined) { GM_setValue("leagueFlag", true) } if (GM_getValue("matchFlag") === undefined) { GM_setValue("matchFlag", true) } if (GM_getValue("federationFlag") === undefined) { GM_setValue("federationFlag", true) } if (GM_getValue("playersFlag") === undefined) { GM_setValue("playersFlag", true) } if (GM_getValue("countryRankFlag") === undefined) { GM_setValue("countryRankFlag", true) } if (GM_getValue("league_graph_button") === undefined) { GM_setValue("league_graph_button", "checked") } if (GM_getValue("league_report_button") === undefined) { GM_setValue("league_report_button", "checked") } if (GM_getValue("league_calendar_button") === undefined) { GM_setValue("league_calendar_button", "checked") } if (GM_getValue("windowsConfig") === undefined) { GM_setValue("windowsConfig", true) } if (GM_getValue("tabsConfig") === undefined) { GM_setValue("tabsConfig", false) } if (GM_getValue("show_league_selects") === undefined) { GM_setValue("show_league_selects", true) } if (GM_getValue("league_image_size") === undefined) { GM_setValue("league_image_size", 20) } var leagueFlag = "", matchFlag = "", federationFlag = "", playersFlag = "", countryRankFlag = "" if (GM_getValue("federationFlag")) federationFlag = "checked" if (GM_getValue("matchFlag")) matchFlag = "checked" if (GM_getValue("leagueFlag")) leagueFlag = "checked" if (GM_getValue("playersFlag")) playersFlag = "checked" if (GM_getValue("countryRankFlag")) countryRankFlag = "checked" var newContent = '


Config
Line' + skills_names[q] + '
" + key + "" + Math.round(li_t[key][x] / li_t[key][li_t[key].length - 1] * 100) / 100 + "
ValueELOU21 ELOLMU21 LM
'; newContent += '' newContent += '' newContent += '' newContent += '' newContent += '' newContent += "
" newContent += "
" newContent += "

Leagues Config

" newContent += "" newContent += ""; newContent += ""; newContent += ""; newContent += ""; newContent += "" var checked_graph = GM_getValue("league_graph_button") var checked_report = GM_getValue("league_report_button") var checked_calendar = GM_getValue("league_calendar_button") newContent += "" newContent += ''; newContent += '' var checkedLeagueSelects = "" if (GM_getValue("show_league_selects")) { checkedLeagueSelects = "checked" } newContent += '' newContent += "
Default Senior Param: " + generateValuesSelect('senior') + "Default U23 Param: " + generateValuesSelect('u23') + "Default U21 Param: " + generateValuesSelect('u21') + "Default U18 Param: " + generateValuesSelect('u18') + "
" newContent += "" newContent += "
" newContent += "
" newContent += "

Tabs Config

" newContent += "
" var checkedTab = "" if (GM_getValue("tabsConfig")) { checkedTab = "checked" } var checkedWin = "" if (GM_getValue("windowsConfig")) { checkedWin = "checked" } newContent += ""; newContent += ""; newContent += "


" if(GM_getValue("avaliable_new_version")=="yes"){ newContent += '

New vesion avaliable: '+GM_getValue("stx_latest_version")+'

' newContent += '
' } newContent += '
' newContent += '

'; document.getElementById("contenido_modal_cargando").innerHTML = newContent createLeagueConfigOptionsListeners(); document.getElementById("contenido_modal_cargando").style.width = "75%"; document.getElementById("myModal_cargando").style.display = "none" getNativeTableStyles() document.getElementById("alert_tittle").style.backgroundColor = GM_getValue("bg_native") if(GM_getValue("avaliable_new_version")=="yes"){ document.getElementById("updateButton").addEventListener('click', function () { GM_setValue("date_checked_version","-") window.open("https://update.greasyfork.icu/scripts/491442/Stats%20Xente%20Script.user.js", "_blank"); }); } document.getElementById("legendDiv").addEventListener('click', function () { if (document.getElementById("myModal_cargando").style.display == "none") { document.getElementById("myModal_cargando").style.display = "flex"; } else { document.getElementById("myModal_cargando").style.display = "none"; } }); document.getElementById("closeButton").addEventListener('click', function () { document.getElementById("myModal_cargando").style.display = "none"; }); document.getElementById("saveButton").addEventListener('click', function () { window.location.reload(); }); (function () { document.getElementById("deleteButton").addEventListener('click', function () { var keys = GM_listValues(); keys.forEach(function (key) { GM_deleteValue(key); }); window.location.reload(); }); })(); // }, 3000); } function getNativeTableStyles() { var elemento = document.querySelector('.subheader.clearfix'); if (elemento) { var estilo = getComputedStyle(elemento); var bg = estilo.backgroundColor var color = "white" if (estilo.backgroundColor == "rgba(0, 0, 0, 0)") { bg = "#a9b0b4" } GM_setValue("bg_native", bg) GM_setValue("color_native", color) } } function createModalEventListeners() { setTimeout(function () { document.getElementById('leagueSelect').addEventListener('click', function () { GM_setValue("leagueFlag", !GM_getValue("leagueFlag")) }); document.getElementById('federationSelect').addEventListener('click', function () { GM_setValue("federationFlag", !GM_getValue("federationFlag")) }); document.getElementById('matchSelect').addEventListener('click', function () { GM_setValue("matchFlag", !GM_getValue("matchFlag")) }); document.getElementById('playersSelect').addEventListener('click', function () { GM_setValue("playersFlag", !GM_getValue("playersFlag")) }); document.getElementById('countryRankSelect').addEventListener('click', function () { GM_setValue("countryRankFlag", !GM_getValue("countryRankFlag")) }); document.getElementById('show_league_checkbox').addEventListener('click', function () { GM_setValue("show_league_selects", !GM_getValue("show_league_selects")) }); document.getElementById('windowsConfig').addEventListener('click', function () { if (document.getElementById('windowsConfig').checked) { document.getElementById('tabsConfig').checked = false; } else { document.getElementById('tabsConfig').checked = true; } GM_setValue("windowsConfig", !GM_getValue("windowsConfig")) GM_setValue("tabsConfig", !GM_getValue("tabsConfig")) }); document.getElementById('tabsConfig').addEventListener('click', function () { if (document.getElementById('tabsConfig').checked) { document.getElementById('windowsConfig').checked = false; } else { document.getElementById('windowsConfig').checked = true; } GM_setValue("windowsConfig", !GM_getValue("windowsConfig")) GM_setValue("tabsConfig", !GM_getValue("tabsConfig")) }); (function () { document.getElementById("slider_input").addEventListener('input', function () { document.getElementById("testImage").style.width = document.getElementById("slider_input").value + "px"; document.getElementById("testImage").style.height = document.getElementById("slider_input").value + "px"; document.getElementById("sizeImageLeagueSpan").innerText = "(" + document.getElementById("slider_input").value + ")" GM_setValue("league_image_size", document.getElementById("slider_input").value) }); })(); }, 5000); } function setLangSportCats() { var langs = new Map(); langs.set('es', 'SPANISH'); langs.set('ar', 'SPANISH') langs.set('en', 'ENGLISH'); langs.set('br', 'PORTUGUES'); langs.set('pt', 'PORTUGUES'); langs.set('pl', 'POLISH'); langs.set('ro', 'ROMANIAN'); langs.set('tr', 'TURKISH'); var lanCookie = getCookie("MZLANG"); if (langs.has(lanCookie)) { window.lang = langs.get(lanCookie); } else { window.lang = "ENGLISH"; } var sportCookie = getCookie("MZSPORT"); var lsport = "F" var sport_id = 1; if (sportCookie == "hockey") { lsport = "H"; sport_id = 2; } var cats = {}; cats["senior"] = "senior"; cats["world"] = "seniorw"; cats["u23"] = "SUB23"; cats["u21"] = "SUB21"; cats["u18"] = "SUB18"; cats["u23_world"] = "SUB23w"; cats["u21_world"] = "SUB21w"; cats["u18_world"] = "SUB18w"; window.cats = cats; window.sport = sportCookie; window.lsport = lsport; window.sport_id = sport_id; window.userLocal = navigator.languages && navigator.languages.length ? navigator.languages[0] : navigator.language; } function getUsernameData() { if ((GM_getValue("currency") === undefined) || (GM_getValue("currency") == "") ||(GM_getValue("soccer_team_id") === undefined) || (GM_getValue("soccer_team_id") == "") ||(GM_getValue("hockey_team_id") === undefined) || (GM_getValue("hockey_team_id") == "")) { var username = document.getElementById("header-username").innerText GM_xmlhttpRequest({ method: "GET", url: "http://www.managerzone.com/xml/manager_data.php?sport_id=" + window.sport_id + "&username=" + username, headers: { "Content-Type": "application/json" }, onload: function (response) { var parser = new DOMParser(); var xmlDoc = parser.parseFromString(response.responseText, "text/xml"); var userTeamsData = xmlDoc.getElementsByTagName("Team"); var index = 1; if (userTeamsData[0].getAttribute("sport")=="soccer"){ GM_setValue("soccer_team_id", userTeamsData[0].getAttribute("teamId")) } if (userTeamsData[0].getAttribute("sport")=="hockey"){ GM_setValue("hockey_team_id", userTeamsData[0].getAttribute("teamId")) } if (userTeamsData[1].getAttribute("sport")=="soccer"){ GM_setValue("soccer_team_id", userTeamsData[1].getAttribute("teamId")) } if (userTeamsData[1].getAttribute("sport")=="hockey"){ GM_setValue("hockey_team_id", userTeamsData[1].getAttribute("teamId")) } if (userTeamsData[0].getAttribute("sport") == window.sport) { index = 0; } GM_xmlhttpRequest({ method: "GET", url: "http://www.managerzone.com/xml/team_playerlist.php?sport_id=" + window.sport_id + "&team_id=" + userTeamsData[index].getAttribute("teamId"), headers: { "Content-Type": "application/json" }, onload: function (response) { var parser = new DOMParser(); var xmlDoc = parser.parseFromString(response.responseText, "text/xml"); var team_data = xmlDoc.getElementsByTagName("TeamPlayers"); GM_setValue("currency", team_data[0].getAttribute("teamCurrency")) } }); } }); } } function getActualDate(){ const fechaActual = new Date(); const year = fechaActual.getFullYear(); const month = String(fechaActual.getMonth() + 1).padStart(2, '0'); const day = String(fechaActual.getDate()).padStart(2, '0'); const fechaFormateada = `${year}-${month}-${day}`; return fechaFormateada; } function compareVersions(installedVersion, latestVersion) { const installedParts = installedVersion.split('.').map(Number); const latestParts = latestVersion.split('.').map(Number); for (let i = 0; i < Math.max(installedParts.length, latestParts.length); i++) { const installed = installedParts[i] || 0; const latest = latestParts[i] || 0; if (installed < latest) { GM_setValue("avaliable_new_version","yes") }else{ GM_setValue("avaliable_new_version","no") } } } function notifySnackBarNewVersion(){ if(GM_getValue("stx_notified_version")!=GM_getValue("stx_latest_version")){ GM_setValue("stx_notified_version",GM_getValue("stx_latest_version")) var x = document.getElementById("snackbar_stx"); var txt = " Stats Xente Script: New version avaliable

" txt+="" x.innerHTML = txt; x.className = "showSnackBar_stx"; document.getElementById("button-snackbar-update").addEventListener('click', function () { GM_setValue("date_checked_version","-") window.open("https://update.greasyfork.icu/scripts/491442/Stats%20Xente%20Script.user.js", "_blank"); }); setTimeout(function () { x.className = x.className.replace("showSnackBar_stx", ""); }, 8000); } } async function checkScriptVersion(){ const actual_date=getActualDate() if(actual_date!=GM_getValue("date_checked_version")){ notifySnackBarNewVersion() GM_setValue("date_checked_version", actual_date) const greasyForkURL = 'https://greasyfork.org/es/scripts/491442-stats-xente-script'; fetch(greasyForkURL) .then(response => response.text()) .then(data => { const parser = new DOMParser(); const doc = parser.parseFromString(data, 'text/html'); const versionElement = doc.querySelector('dd.script-show-version'); const latestVersion = versionElement ? versionElement.textContent.trim() : 'No se encontró versión'; const installedVersion = GM_info.script.version; GM_setValue("stx_latest_version",latestVersion) compareVersions(installedVersion, latestVersion); }) .catch(error => { console.error('Error al obtener la versión del script:', error); }); } } function putSortIcon(a, tabla_) { var filaEncabezado = tabla_.querySelector('thead tr'); var celdas = filaEncabezado.getElementsByTagName('th'); if (celdas.length == 0) { celdas = filaEncabezado.getElementsByTagName('td'); } var elementos = tabla_.querySelectorAll('.bi.bi-arrow-down-short'); elementos.forEach(function (elemento) { elemento.remove(); }) elementos = tabla_.querySelectorAll('.bi.bi-arrow-up-short'); elementos.forEach(function (elemento) { elemento.remove(); }) var iconDesc = '' var iconAsc = '' iconAsc = '' iconDesc = '' var icon = iconAsc; if (document.getElementById("ord_table").value == "descendente") { icon = iconDesc; } celdas[a].innerHTML = icon + celdas[a].innerHTML; } function ordenarTablaq(columna, byClassName, param) { if (byClassName) { var elems = document.getElementsByClassName(param); var tabla = elems[0] } else { tabla = document.getElementById(param) } var filas, switching, i, x, y, debeCambiar, direccion, cambioRealizado; switching = true; direccion = document.getElementById("ord_table").value while (switching) { switching = false; filas = tabla.rows; for (i = 1; i < (filas.length - 1); i++) { debeCambiar = false; x = filas[i].getElementsByTagName("td")[columna]; y = filas[i + 1].getElementsByTagName("td")[columna]; var xValue = parseFloat(x.innerHTML.replace(/\./g, "").replace(/[^0-9,-]+/g, "").replace(",", ".")); var yValue = parseFloat(y.innerHTML.replace(/\./g, "").replace(/[^0-9,-]+/g, "").replace(",", ".")); if (direccion == "ascendente") { if (isNaN(xValue)) { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { debeCambiar = true; break; } } else { if (xValue > yValue) { debeCambiar = true; break; } } } else if (direccion == "descendente") { if (isNaN(xValue)) { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { debeCambiar = true; break; } } else { if (xValue < yValue) { debeCambiar = true; break; } } } } if (debeCambiar) { filas[i].parentNode.insertBefore(filas[i + 1], filas[i]); switching = true; cambioRealizado = true; } else { if (!cambioRealizado && direccion == "descendente") { //direccion = "ascendente"; switching = true; } } } if (document.getElementById("ord_table").value == "descendente") { document.getElementById("ord_table").value = "ascendente"; } else { document.getElementById("ord_table").value = "descendente"; } filas = tabla.getElementsByTagName("tbody")[0].getElementsByTagName("tr"); for (i = 0; i < filas.length; i++) { var primerTd = filas[i].querySelector("td"); primerTd.innerHTML = (i + 1); } } function setCSSStyles(){ var link = document.createElement('link'); link.href = 'https://fonts.googleapis.com/css?family=Roboto&display=swap'; link.rel = 'stylesheet'; var link1 = document.createElement('link'); link1.href = 'https://cdn.jsdelivr.net/npm/bootstrap-icons@1.3.0/font/bootstrap-icons.css'; link1.rel = 'stylesheet'; document.head.appendChild(link) document.head.appendChild(link1) var inputHidden = document.createElement('input'); inputHidden.type = 'hidden'; inputHidden.id = 'ord_table'; inputHidden.value = 'ascendente'; document.body.appendChild(inputHidden); GM_addStyle(`#snackbar_stx { visibility: hidden; position: fixed; /*display: flex;*/ align-items: center; left: 50%; transform: translate(-50%, -50%); min-width: 350px; background-color: #323232; color: #ffffffb3; text-align: center; border-radius: 2px; padding: 16px; z-index: 1; bottom: 30px; font-size: 17px; border-radius: 5px; box-shadow: 0 3px 5px -1px #0003, 0 6px 10px #00000024, 0 1px 18px #0000001f; } #snackbar_stx.showSnackBar_stx { visibility: visible; -webkit-animation: fadein 0.5s, fadeout 0.5s 8s forwards; animation: fadein 0.5s, fadeout 0.5s 8s forwards; } @-webkit-keyframes fadein { from {bottom: 0; opacity: 0;} to {bottom: 30px; opacity: 1;} } @keyframes fadein { from {bottom: 0; opacity: 0;} to {bottom: 30px; opacity: 1;} } @-webkit-keyframes fadeout { from {bottom: 30px; opacity: 1;} to {bottom: 0; opacity: 0;} } @keyframes fadeout { from {bottom: 30px; opacity: 1;} to {bottom: 0; opacity: 0;} } .divAlert { width: 75%; padding: 4px 3px; border-radius: 4px; border-style: solid; border-width: 1px; font-size: 13px; background-color: #ffc107; color: #161515; border-color: #ffffff; font-weight: bold; text-shadow: 1px 1px #ffffff; }.modal_cargando { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 150; /* Sit on top */ padding-top: 25px; /* Location of the box */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgb(0, 0, 0); /* Fallback color */ background-color: rgba(0, 0, 0, 0.75); /* Black w/ opacity */ justify-content: center; align-items: center; } .modal-content_cargando { position:relative; border-radius:7px; background-color: #fefefe00; width: 90%; height: 40%; display: flex; justify-content: center; align-items: center; } .btn-save{ width:8em; border-color:transparent; border-radius: 3px; display: inline-block; padding: 10px 5px; text-shadow: 0 1px 0 rgba(255,255,255,0.3); box-shadow: 0 1px 1px rgba(0,0,0,0.3); cursor:pointer; color: white; font-family: 'Roboto', sans-serif; background-color: #3CC93F;/*Color de fondo*/ } .btn-save:hover{ background-color: #37B839;/*Color de fondo*/ } .btn-save:active{ background-color: #29962A;/*Color de fondo*/ } .btn-update{ width:8em; border-color:transparent; border-radius: 3px; display: inline-block; padding: 10px 5px; text-shadow: 0 1px 0 rgba(255,255,255,0.3); box-shadow: 0 1px 1px rgba(0,0,0,0.3); cursor:pointer; color: white; font-family: 'Roboto', sans-serif; background-color: #2da8ef;/*Color de fondo*/ } .btn-update:hover{ background-color: #2187c2;/*Color de fondo*/ } .btn-update:active{ background-color: #2187c2;/*Color de fondo*/ } .btn-delete{ width:8em; border-color:transparent; border-radius: 3px; display: inline-block; padding: 10px 5px; text-decoration: none; text-shadow: 0 1px 0 rgba(255,255,255,0.3); box-shadow: 0 1px 1px rgba(0,0,0,0.3); cursor:pointer; color: white; font-family: 'Roboto', sans-serif; background-color: #e6413e;/*Color de fondo*/ } .btn-delete:hover{ background-color: #C93832;/*Color de fondo*/ } .btn-delete:active{ background-color: #ad2a24;/*Color de fondo*/ } .cerrar { position: absolute; top: 0; right: 0; padding: 5px; cursor: pointer; color: #fff; } .close_cargando { color: #aaaaaa; float: right; font-size: 28px; font-weight: bold; } .close_cargando:hover, .close_cargando:focus { color: #000; text-decoration: none; cursor: pointer; }.stx_legend { z-index:300; position: fixed; bottom: 60%; right: 1px; border: 1px solid #2bacf5; padding-right: 13px; padding-left: 3px; padding-top: 3px; padding-bottom: 3px; width: 14px; font-size: 13px; border-radius: 4px; text-shadow: 1px 1px 3px #676767; background-color: #246355; color: #246355; cursor: default; cursor: pointer; }.loader { width: 100%; height: 15px; border-radius: 40px; color: #ffc107; border: 2px solid; position: relative; overflow: hidden; } .loader::before { content: ""; position: absolute; margin: 2px; width: 14px; top: 0; bottom: 0; left: -20px; border-radius: inherit; background: currentColor; box-shadow: -10px 0 12px 3px currentColor; clip-path: polygon(0 5%, 100% 0,100% 100%,0 95%,-30px 50%); animation: l14 1s infinite linear; } @keyframes l14 { 100% {left: calc(100% + 20px)} } .containerPeqAmarillo { display: block; position: relative; padding-left: 35px; margin-bottom: 12px; font-size:medium; padding-top:5px; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } /* Hide the browser's default checkbox */ .containerPeqAmarillo input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } /* Create a custom checkbox */ .checkmarkPeqAmarillo { position: absolute; top: 0; left: 0; height: 25px; width: 25px; background-color: #eee; } /* On mouse-over, add a grey background color */ .containerPeqAmarillo:hover input ~ .checkmarkPeqAmarillo { background-color: #ccc; } /* When the checkbox is checked, add a blue background */ .containerPeqAmarillo input:checked ~ .checkmarkPeqAmarillo { background-color: #FFCC00; } /* Create the checkmark/indicator (hidden when not checked) */ .checkmarkPeqAmarillo:after { content: ""; position: absolute; display: none; } /* Show the checkmark when checked */ .containerPeqAmarillo input:checked ~ .checkmarkPeqAmarillo:after { display: block; } /* Style the checkmark/indicator */ .containerPeqAmarillo .checkmarkPeqAmarillo:after { left: 9px; top: 5px; width: 5px; height: 10px; border: solid white; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } #showMenu { text-align: left; border-collapse: collapse; width: 75%; font-size: 14px; font-family: 'Roboto', sans-serif } /* #showMenu th,td { padding: 4px; }*/ #showMenu td { background-color: white; } #showMenu thead { background-color: #246355; border-bottom: solid 2px #0F362D; color: white; } #showMenu tfoot { font-family: 'Righteous', cursive; background-color: #246355; border-bottom: solid 5px #0F362D; font-size: 13px; color: white; } #showMenu tr td, th { border-top-right-radius: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } #showMenu th:first-child { border-top-left-radius: 5px; } #showMenu th:last-child { border-top-right-radius: 5px; } #showMenu tr { background-color: transparent; border-color: transparent; font-family: 'Roboto'; } #show3{ width: 75%; background-color: transparent; border-collapse: separate; border-spacing: 0; } #show3 td { background-color: white; } #show3 tr:last-child td:last-child { border-bottom-right-radius: 5px; } #show3 tr:last-child td:first-child { border-bottom-left-radius: 5px; } .caja_mensaje_50 { font-family: 'Roboto', sans-serif; background: #98D398; color: #FFFFFF; font-weight: bold; padding: 4px; text-align: center; width: 50%; font-size: 2.0em; border-radius: 5px; } .modal_div_content_main{ width: 100%; background-color: #f2f2f2; min-height: 115px; border-radius: 5px; } .expandable-icon { right: 0px; top: 0px; transform: rotateZ(45deg); border-radius: 5px; width: 20px; height: 20px; background: rgb(12, 47, 94); transition: all .3s; } .expandable-item.active .expandable-icon{ transform: rotateZ(0); } .expandable-icon .line { width: 15px; height: 2px; background: white; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; transition: all .4s; } .expandable-icon .line:nth-child(1) { transform: rotateZ(45deg); } .expandable-icon .line:nth-child(2) { transform: rotateZ(-45deg); } .imgMiddle { display: inline-block; vertical-align: middle; } .textMiddle { display: inline-block; vertical-align: middle; } table.matchValuesTable { border-collapse: collapse; width: 80%; margin: 5px 0; z-index:15; } table.matchValuesTable th, table.matchValuesTable td { border: 1px solid #ddd; text-align: center; padding: 6px; border: 0px; } table.matchValuesTable th { background-color: #e4c800; color: white; border: 0px; } table.matchValuesTable th:first-child { border-top: none; /* Quita el borde superior de la primera celda del encabezado */ } #button-snackbar-update{ color: #2da8ef; background-color: transparent; border: 1px solid #2da8ef; padding: .15rem .50rem; font-size: 0.90rem; line-height: 1.5; border-radius: .25rem; cursor:pointer; } #button-snackbar-update:hover{ color: white; background-color: #2da8ef; border: 1px solid #2da8ef; padding: .15rem .50rem; font-size: 0.90rem; line-height: 1.5; border-radius: .25rem; cursor:pointer; } `) } })();