// ==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+='
Value
LM Value
'
teamTable+='
'+top+'
ELO
'
teamTable+='
Age
'
teamTable+='
Salary
'
teamTable+='
Players
'
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+='
";
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 += '
Stats Xente
';
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 += "
";
}
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+='
Value
LM Value
'
teamTable+='
'+top+'
ELO
'
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+='
'
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 = ''
txt += ''
elementos_[0].innerHTML += txt;
if (flagStats) {
var flag_gk = false;
var age_div = elementos[i].getElementsByClassName('dg_playerview_info');
var age_table = age_div[0].getElementsByTagName('table')[0];
var ini_age = age_table.getElementsByTagName('td')[0].textContent.indexOf(":")
var age = age_table.getElementsByTagName('td')[0].textContent.substring(ini_age + 2, ini_age + 4);
if ((window.sport == "soccer") && (player_images[i].innerHTML.includes("gk=1"))) {
flag_gk = true
}
var tactics = elementos[i].getElementsByClassName('player_tactic gradientSunriseIcon');
player_values = {
"id": ids[0].textContent,
"skills": [],
"lines": [],
"tactics-position": {},
"tactics": [],
"age": parseInt(age)
}
for (var j = 0; j < tactics.length; j++) {
var fin = 0;
var line = ""
var ini = tactics[j].textContent.indexOf('(');
var tactic = tactics[j].textContent.substring(0, ini - 1);
if (window.sport == "hockey") {
if (!tactics[j].textContent.includes(":")) {
ini = tactics[j].textContent.indexOf('(');
fin = tactics[j].textContent.indexOf(')');
line = tactics[j].textContent.substring(ini + 2, fin - 1);
gk_line = line;
} else {
ini = tactics[j].textContent.indexOf('(');
fin = tactics[j].textContent.indexOf(':');
line = tactics[j].textContent.substring(ini + 2, fin);
}
} else {
ini = tactics[j].textContent.indexOf('(');
fin = tactics[j].textContent.indexOf(')');
line = tactics[j].textContent.substring(ini + 2, fin - 1);
if (flag_gk) {
gk_line = line;
}
if (tactics[j].textContent.includes(",")) {
ini = tactics[j].textContent.indexOf('(');
fin = tactics[j].textContent.indexOf(',');
su_line = tactics[j].textContent.substring(ini + 2, fin);
}
}
if (!player_values['lines'].includes(line)) {
player_values['lines'].push(line);
}
if (!player_values['tactics'].includes(tactic)) {
player_values['tactics'].push(tactic);
}
player_values['tactics-position'][tactic] = line
if ((!lines.includes(line))) {
lines.push(line);
}
if (!tactics_list.includes(tactic)) {
tactics_list.push(tactic);
}
}
var skills = elementos[i].getElementsByClassName('skillval');
if (window.sport == "hockey") {
for (j = 1; j < skills.length; j++) {
var cleanedText = skills[j].textContent.replace(')', '');
cleanedText = cleanedText.replace('(', '');
let number = parseInt(cleanedText, 10);
player_values['skills'].push(number);
}
} else {
for (j = 0; j < skills.length - 1; j++) {
cleanedText = skills[j].textContent.replace(')', '');
cleanedText = cleanedText.replace('(', '');
let number = parseInt(cleanedText, 10);
player_values['skills'].push(number);
}
}
players.push(player_values)
}
}
if (flagStats) {
const container = document.getElementById("squad-search-toggle")
var contenidoNuevo = "
"
contenidoNuevo += "
Choose Tactic:
"
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 = "
';
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
'
newContent +='
';
newContent += '
'
newContent += '
'
newContent += '
'
newContent += '
'
newContent += '
'
newContent += "
"
newContent += ""
newContent += "
Leagues Config
"
newContent += "
"
newContent += "
Default Senior Param:
" + generateValuesSelect('senior') + "
";
newContent += "
Default U23 Param:
" + generateValuesSelect('u23') + "
";
newContent += "
Default U21 Param:
" + generateValuesSelect('u21') + "
";
newContent += "
Default U18 Param:
" + generateValuesSelect('u18') + "
";
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 += "
"
newContent += '
';
newContent += '
'
var checkedLeagueSelects = ""
if (GM_getValue("show_league_selects")) {
checkedLeagueSelects = "checked"
}
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 += "