Stats Xente Script

Stats Xente script for inject own data on Managerzone site

目前為 2024-08-21 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Stats Xente Script
// @namespace    http://tampermonkey.net/
// @version      0.91
// @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
// ==/UserScript==

(function() {
    'use strict';

    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 4.5s;
  animation: fadein 0.5s, fadeout 0.5s 4.5s;
}

@-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-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{

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;
    }




  `)

    /*var keys = GM_listValues();
    keys.forEach(function(key) {
        console.log(key+" "+GM_getValue(key))
    });*/

    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/[email protected]/font/bootstrap-icons.css';
    link1.rel = 'stylesheet';
    document.head.appendChild(link)
    document.head.appendChild(link1)

    createModalMenu()
    createModalEventListeners()

    setLangSportCats()
    getUsernameData()


    var inputHidden = document.createElement('input');
    inputHidden.type = 'hidden';
    inputHidden.id = 'ord_table';
    inputHidden.value = 'descendente';
    document.body.appendChild(inputHidden);




    setTimeout(function () {

        var urlParams = new URLSearchParams(window.location.search);
        if((urlParams.has('p')) && (urlParams.get('p') === 'league')&&(GM_getValue("leagueFlag"))){
            leagues();
        }

        if((urlParams.has('p')) && (urlParams.get('p') === 'federations')&& (urlParams.get('sub') === 'clash')&&(GM_getValue("federationFlag"))){
            clash();
        }

        if((urlParams.has('p')) && (urlParams.get('p') === 'match')&& (urlParams.get('sub') === 'result')&&(GM_getValue("matchFlag"))){
            match();
        }


        if((urlParams.has('p')) && (urlParams.get('p') === 'federations')&& (urlParams.get('sub') === 'league')&&(GM_getValue("federationFlag"))){

            clashLeagues();

        }


        if((urlParams.has('p')) && (urlParams.get('p') === 'players')&&(!urlParams.has('pid')) &&(GM_getValue("playersFlag"))){
            playersPage()
        }

        if((urlParams.has('p')) && (urlParams.get('p') === 'players') && (urlParams.has('pid'))){
            playersPageStats()
        }


        if((urlParams.has('p')) && (urlParams.get('p') === 'rank')&&(urlParams.get('sub') === 'countryrank')
            &&(GM_getValue("countryRankFlag"))){
            countryRank();
        }

        if((urlParams.has('p')) && (urlParams.get('p') === 'clubhouse')){
            nextMatchesClubhouse()
        }


        if((urlParams.has('p')) && (urlParams.get('p') === 'friendlyseries')&&(urlParams.get('sub') === 'standings')){
            friendlyCupsAndLeagues()
        }



        if((urlParams.has('p')) && (urlParams.get('p') === 'cup')&&(urlParams.get('sub') === 'groupplay')){
            friendlyCupsAndLeagues()
        }


        if((urlParams.has('p')) && (urlParams.get('p') === 'private_cup')&&(urlParams.get('sub') === 'groupplay')){
            friendlyCupsAndLeagues()
        }















    }, 2000);


    (function () {

        if(document.getElementById("league_tab_table")!==null) {
            document.getElementById("league_tab_table").addEventListener('click', function () {
                if(document.getElementById("showMenu")===null) {
                    leagues()
                }
            });

        }


    })();












    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')){
                            friendlyCupsAndLeagues()
                        }else{
                            clashLeagues()
                        }


                    }
                });

            }
        })();



        (function () {

            if(document.getElementById("ui-id-4")!==null) {
                document.getElementById("ui-id-4").parentNode.addEventListener('click', function () {
                    if(document.getElementById("showMenu")===null) {
                        friendlyCupsAndLeagues()
                    }
                });

            }
        })();





    }, 2000);


    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);
                    console.log(jsonResponse)
                    resolve(jsonResponse)
                },
                onerror: function(error) {
                    reject("no");
                }
            });
        });
    }



    async function match(){

        setTimeout(async function() {



            const elementos = document.querySelectorAll('.player_link');
            elementos.forEach(function(elemento) {
                elemento.addEventListener('click', function() {

                    setTimeout(function() {
                        playersPageStats()

                    }, 1000);



                });
            });

            var team_div=document.getElementsByClassName("flex-grow-0 textCenter team-table block")

            var teams_=[]


            for(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":""}

            }


            var elems = document.getElementsByClassName("hitlist "+window.sport+" statsLite marker tablesorter");
            for(var 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]={"team_name":as[0].innerHTML,"team_id":tidValue,"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 = "<img src='https://statsxente.com/MZ1/View/Images/etiqueta_bota.png' width='20px' height='20px' id='but" + pid + "' style='cursor:pointer;'/>";
                            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);


                        }




                    }
                }
            }
        }, 1000);

    }

    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 elems = document.getElementsByClassName("top-pane__deadline");
        var tabla = elems[0]

        var contenidoNuevo="</br></br><center><table><tr><td class='subheader clearfix'>Clash Compare</td></tr><tr><td><center><img id=clashCompare src='https://www.statsxente.com/MZ1/View/Images/clash_icon.png' style='width:45px; height:45px; cursor:pointer;'/></center></td></tr></table></center>";
        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="+encodeURIComponent(names[0].innerText)+"&fede1="+encodeURIComponent(names[1].innerText)+"&idioma="+window.lang+"&divisa="+GM_getValue("currency")+"&sport="+window.sport;
            openWindow(link,0.95,1.25);
        });

    }


    var teams_data="";
    var searchClassName=""

    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=""
        setTimeout(function() {

            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 = '<div id=testClick><center>'


            getNativeTableStyles();

            var idProgress="noProgress";
            if(urlParams.get('type')=="senior"){
                idProgress="divProgress"
            }


            var widthTable="1.5em"
///MENU TABLE
            contenidoNuevo+="<center><table id=showMenu border=0><thead style='background-color:"+GM_getValue("bg_native")+"; color:"+GM_getValue("color_native")+";'><tr>";
            contenidoNuevo+='<th align=center style="padding:4px;">Stats</th><th align=center style="padding:4px;">Graph</th>';
            contenidoNuevo+="<th align=center style='padding:4px;'>History</th>";
            contenidoNuevo+="<th align=center style='padding:4px;'>Top Players</th></tr></thead>";
            contenidoNuevo+= "<tr>";
            contenidoNuevo+= "<td style='padding:4px; max-width: "+widthTable+"; width:"+widthTable+";'><center><img id='detailDivision' style='cursor:pointer;' src=https://statsxente.com/MZ1/View/Images/detail.png width=25 height=25/></center></td>";

            contenidoNuevo+= "<td style='padding:4px; max-width:"+widthTable+";  width:"+widthTable+";'><center><img id='graphDivision' style='cursor:pointer;' src=https://statsxente.com/MZ1/View/Images/report.png width=31 height=25/></center></td>";
            if(idProgress=="noProgress"){
                contenidoNuevo+= "<td style='padding:4px; max-width: "+widthTable+";  width: "+widthTable+";'><center><img id='"+idProgress+"' style='cursor:pointer;' src=https://statsxente.com/MZ1/View/Images/graph_disabled.png width=25 height=25/></center></td>";
            }else{
                contenidoNuevo+= "<td style='padding:4px; max-width: "+widthTable+";  width: "+widthTable+";'><center><img id='"+idProgress+"' style='cursor:pointer;' src=https://statsxente.com/MZ1/View/Images/graph.png width=25 height=25/></center></td>";
            }
            contenidoNuevo+= "<td style='padding:4px; max-width: "+widthTable+";  width: "+widthTable+";'><center><img id='topPlayersDivision' style='cursor:pointer;' src=https://statsxente.com/MZ1/View/Images/top-10.png width=25 height=25/></center></td>";

            contenidoNuevo+= "</tr>";





            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+= "<tr><td></td><td colspan='2'>";

            contenidoNuevo+='<center><div id="moreInfo" class="expandable-icon'+styleIcon+'" style="cursor:pointer; background-color:'+GM_getValue("bg_native")+';"><div id="line1" class="line"></div><div  id="line2" class="line"></div></div></center>';

            contenidoNuevo+= "</td><td></td></tr>";

            contenidoNuevo+= "<tr><td colspan='5' id='separatorTd'"+styleSep+"></td></tr>";



            contenidoNuevo+= "</table></center>";



            contenidoNuevo+='<table id=show3 border="0"'+styleTable+'><tr><td><label>';

            if((urlParams.get('type')=='senior')||(urlParams.get('type')=='world')){
                if("valor"==initialValues[urlParams.get('type')]){
                    contenidoNuevo+='<input class="statsxente" type="checkbox" checked id="valor" value="Value">Value</label></td>';
                }else{
                    contenidoNuevo+='<input class="statsxente" type="checkbox" id="valor" value="Value">Value</label></td>';
                }
            }else{
                contenidoNuevo+='<input class="statsxente" type="checkbox" id="valor" value="Value">Value</label></td>';
            }

            values.forEach(function(valor, clave) {

                if(clave=="valorUPSenior"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="valor11"){
                    contenidoNuevo+="</tr><tr>";
                }
                if(clave=="elo"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="leagues"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="leagues_all"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="cup"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave==initialValues[urlParams.get('type')]){
                    contenidoNuevo+='<td><label><input class="statsxente" type="checkbox" checked value="'+valor+'" id="'+clave+'">'+valor+'</label></td>';
                }else{
                    contenidoNuevo+='<td><label><input class="statsxente" type="checkbox" value="'+valor+'" id="'+clave+'">'+valor+'</label></td>';
                }
            });
            contenidoNuevo+="</tr></table></center>"
            contenidoNuevo+="</div></br>";


            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';



            ser = document.getElementsByClassName("seriesHeader")
            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+="<input type='hidden' id='team_"+id+"' value='"+equipo+"'/>"
                }

            }
            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 = "<center><img src='https://statsxente.com/MZ1/View/Images/detail.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but"+id+"' style='cursor:pointer;'/>";
                            if(GM_getValue("league_graph_button")=="checked"){
                                buttonDisplay=""
                            }else{
                                buttonDisplay="display:none;";
                            }
                            iner += "<img src='https://statsxente.com/MZ1/View/Images/graph.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but1"+id+"' style='cursor:pointer; "+buttonDisplay+"'/>";

                            if(GM_getValue("league_report_button")=="checked"){
                                buttonDisplay=""
                            }else{
                                buttonDisplay="display:none;";
                            }
                            iner += "<img src='https://statsxente.com/MZ1/View/Images/report.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but2"+id+"' style='cursor:pointer; "+buttonDisplay+"'/>";

                            if(GM_getValue("league_calendar_button")=="checked"){
                                buttonDisplay=""
                            }else{
                                buttonDisplay="display:none;";
                            }
                            iner += " <img src='https://statsxente.com/MZ1/View/Images/calendar.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but3"+id+"' style='cursor:pointer; "+buttonDisplay+"'/>";
                            iner +="</center>";
                            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() {
                            ordenarTabla(index,true,"nice_table");
                        });
                    });
                }
            });
        }, 2500);

    }


    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 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 ordenarTabla(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 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="<select id='league_default_select_"+cat+"' style='width:115px;'>";
        values.forEach((valor, clave, mapa) => {
            var checked=""
            if(clave==default_value){
                checked="selected"
            }
            select+="<option "+checked+" value='"+clave+"'>"+valor+"</option>";
        });
        select+="</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() {
        //setTimeout(function () {
        var newElement = document.createElement("div");
        newElement.id = "legendDiv";
        newElement.className = "stx_legend";
        newElement.innerHTML = '<div style="writing-mode: tb-rl;-webkit-writing-mode: vertical-rl;"><center><img src="https://statsxente.com/MZ1/View/Images/etiqueta_bota.png" style="width:25px;height:25px;"/></center></div>';
        var body = document.body;
        body.appendChild(newElement);

        var newModalElement = document.createElement('div');
        newModalElement.innerHTML = '<center><div id="snackbar"></div></center><div id="myModal_cargando" class="modal_cargando"><div class="modal-content_cargando" id="modal_content_div_cargando"><div id="contenido_modal_cargando" style="background-color:#f2f2f200;"></div></div></div>'
        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='<center><img id="closeButton" src="https://statsxente.com/MZ1/View/Images/error.png" style="width:40px; height:40px; cursor:pointer;"/></br></br><div id=alert_tittle class="caja_mensaje_50">Config</div><div id="div1" class="modal_div_content_main"></br><table border=0><tbody><tr>';
        newContent+= '<td><label class="containerPeqAmarillo">League<input type="checkbox" id="leagueSelect" ' + leagueFlag + '><span class="checkmarkPeqAmarillo"></span></td>'
        newContent+= '<td><label class="containerPeqAmarillo">Federation<input type="checkbox" id="federationSelect" ' + federationFlag + '><span class="checkmarkPeqAmarillo"></span></td>'
        newContent += '<td><label class="containerPeqAmarillo">Match<input type="checkbox" id="matchSelect" ' + matchFlag + '><span class="checkmarkPeqAmarillo"></span></td>'
        newContent += '<td><label class="containerPeqAmarillo">Players<input type="checkbox" id="playersSelect" ' + playersFlag + '><span class="checkmarkPeqAmarillo"></span></td>'
        newContent += '<td><label class="containerPeqAmarillo">Country Rank<input type="checkbox" id="countryRankSelect" ' + countryRankFlag + '><span class="checkmarkPeqAmarillo"></span></td>'
        newContent+="</tr></tbody></table>"

        newContent+="<hr>"
        newContent+="<h3 style='text-align: left; padding-left:7px;'>Leagues Config</h3>"

        newContent+="<table border='0'><tr>"
        newContent+="<td>Default Senior Param: <td>"+generateValuesSelect('senior')+"</td>";
        newContent+="<td>Default U23 Param: <td>"+generateValuesSelect('u23')+"</td>";
        newContent+="<td>Default U21 Param: <td>"+generateValuesSelect('u21')+"</td>";
        newContent+="<td>Default U18 Param: <td>"+generateValuesSelect('u18')+"</td>";

        newContent+="</tr><tr>"


        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+="<td colspan='8'><center><table><tr><td><label><input "+checked_graph+" type='checkbox' value='graph' class='textMiddle' id='league_graph_check'><img class='textMiddle' src='https://statsxente.com/MZ1/View/Images/graph.png' width='20px' height='20px'/> <span class='textMiddle'>Progress</span></label></td>"
        newContent+="<td><center><label><input "+checked_report+" type='checkbox' value='graph' id='league_report_check' class='textMiddle'><img class='textMiddle' src='https://statsxente.com/MZ1/View/Images/report.png' width='20px' height='20px'/> <span class='textMiddle'>Graph</span></label></td>"

        newContent+="<td><center><label><input "+checked_calendar+" type='checkbox' value='graph' id='league_calendar_check' class='textMiddle'><img  class='textMiddle' src='https://statsxente.com/MZ1/View/Images/calendar.png' width='20px' height='20px'/> <span class='textMiddle'>ELO Matches</span></label></td></tr></table></td>"

        newContent+='</tr><tr>';

        newContent+='<td colspan="4"><center><label><span class="textMiddle">Icons Size</span> <input class="textMiddle" id="slider_input" class="range-slider_input" type="range" value="'+GM_getValue("league_image_size")+'" min="10" max="30">'
        newContent+='<img class="textMiddle" id="testImage" src="https://statsxente.com/MZ1/View/Images/calendar.png" width="20px" height="20px"/>'
        newContent+='<span class="textMiddle" style="padding-left:10px;" id="sizeImageLeagueSpan"> ('+GM_getValue("league_image_size")+')</span></label></center></td>'



        var checkedLeagueSelects=""
        if(GM_getValue("show_league_selects")){
            checkedLeagueSelects="checked"
        }

        newContent+='<td colspan="4"><center><label class="textMiddle"><input '+checkedLeagueSelects+' type="checkbox" class="textMiddle" value="graph" id="show_league_checkbox">Show selects</label></center></td>'
        newContent+="</tr></table>"
        newContent+="<hr>"
        newContent+="<h3 style='text-align: left; padding-left:7px;'>Tabs Config</h3>"
        newContent+="<table style='display:flex;'><tr><td>"

        var checkedTab=""
        if(GM_getValue("tabsConfig")){
            checkedTab="checked"
        }

        var checkedWin=""
        if(GM_getValue("windowsConfig")){
            checkedWin="checked"
        }


        newContent+="<label><input type='checkbox' id='windowsConfig' "+checkedWin+">Windows</label>";
        newContent+="<label><input type='checkbox' id='tabsConfig' "+checkedTab+">Tabs</label>";
        newContent+="</td></tr></table></br></br>"




        newContent+='<div style=padding-bottom:10px;><button class="btn-save" id="saveButton"><i class="bi bi-house-door-fill" style="font-style:normal;">Save</i></button><button id="deleteButton"class="btn-delete" style="margin-left:10px;"><i class="bi bi-trash-fill" style="font-style:normal;">Reset</i></button></div>'
        newContent+='</div></center></br></br>';
        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")

        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") =="")) {
            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")==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 clashLeagues(){

        var urlParams = new URLSearchParams(window.location.search);
        setTimeout(function() {





            document.getElementById("division-select").addEventListener('change', function () {
                clashLeagues()
            });


            document.getElementById("season-select").addEventListener('change', function () {
                clashLeagues()
            });




            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');

            var contenidoNuevo = '<div id=testClick><center>'
            getNativeTableStyles();
            var idProgress="noProgress";
            if(urlParams.get('type')=="senior"){
                idProgress="divProgress"
            }

///MENU TABLE
            contenidoNuevo+="<center><table id=showMenu border=1><thead style='background-color:"+GM_getValue("bg_native")+"; color:"+GM_getValue("color_native")+";'><tr>";
            contenidoNuevo+='<th align=center style="padding:4px;" colspan="3">Values</th></tr></thead>';
            contenidoNuevo+= "<tr>";
            contenidoNuevo+= "</tr></table></center>";
            contenidoNuevo+='<table id=show3 border="0"><tr><td><label>';
            contenidoNuevo+='<input class="statsxente" type="checkbox" checked id="value" value="Value">Value</label></td>';


            values.forEach(function(valor, clave) {
                contenidoNuevo+='<td><label><input class="statsxente" type="checkbox" value="'+valor+'" id="'+clave+'">'+valor+'</label></td>';
            });
            contenidoNuevo+="</tr></table></center>"
            contenidoNuevo+="</div></br>";

            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';
            ser = document.getElementsByClassName("seriesHeader")
            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 = "<center><img src='https://statsxente.com/MZ1/View/Images/detail.png' width='20px' height='20px' id='but"+id+"' style='cursor:pointer;'/>";
                        iner +="</center>";
                        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");
                });
            });



        }, 3000);

    }

    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
    }



    var players=[]
    var lines=[]
    var gk_line=""
    var skills_names=[]
    var su_line="unsetted";

    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 = '<span id=but'+ids[0].textContent+' class="player_icon_placeholder"><a href="#" onclick="return false"'
        txt += 'title="Stats Xente" class="player_icon"><span class="player_icon_wrapper">'
        txt += '<span class="player_icon_image" style="background-image: url(\'https://www.statsxente.com/MZ1/View/Images/etiqueta_bota_mini.png\'); width: 21px; height: 20px; background-size: auto;'
        txt += 'z-index: 0;"></span><span class="player_icon_text"></span></span></a></span>'
        elementos_[0].innerHTML += txt;
        (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[0].textContent,tid,window.sport,window.lang,"[undefined]",playerName);
    }


    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 = '<span id=but'+ids[0].textContent+' class="player_icon_placeholder"><a href="#" onclick="return false"'
                txt += 'title="Stats Xente" class="player_icon"><span class="player_icon_wrapper">'
                txt += '<span class="player_icon_image" style="background-image: url(\'https://www.statsxente.com/MZ1/View/Images/etiqueta_bota_mini.png\'); width: 21px; height: 20px; background-size: auto;'
                txt += 'z-index: 0;"></span><span class="player_icon_text"></span></span></a></span>'

                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_tabs")
                var contenidoNuevo = "<div id='containerTactics' style='background-color: #e3e3e3;'></br><center>"
                contenidoNuevo += "<div id=selectDiv>Choose Tactic: <select id=tactics_select>"
                contenidoNuevo += "<option value='All Team'>All Team</option>"
                for (var x = 0; x < tactics_list.length; x++) {
                    var selected = ""
                    if (x == 0) {
                        selected = "selected=''";
                    }
                    contenidoNuevo += "<option " + selected + " value='" + tactics_list[x] + "'>" + tactics_list[x] + "</option>"
                }
                contenidoNuevo += "</select></div></br><div id=divMenu></div></center></div>"
                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="<center><table id=showMenu border=1 style='width:95%;font-size:13px;'><thead style='background-color:"+GM_getValue("bg_native")+"; color:"+GM_getValue("color_native")+";'><tr>";
        contenidoNuevo+='<th align=center style="padding:4px;">Line</th>'
        for(var q=0;q<skills_names.length;q++){
            contenidoNuevo+='<th align=center style="padding:4px;">'+skills_names[q]+'</th>'
        }
        contenidoNuevo+='</tr></thead>';
        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+= "<tr>";
                contenidoNuevo+= "<td align=center style='padding:2px;'><strong>"+key+"</strong></td>";
                for(var x=0;x<li_t[key].length-1;x++){
                    contenidoNuevo+= "<td align=center style='padding:2px;'>"+ Math.round(li_t[key][x]/li_t[key][li_t[key].length-1] * 100) / 100+"</td>";
                }
                contenidoNuevo+= "</tr>";

            }
        }
        container.innerHTML+=contenidoNuevo;
    }


    function countryRank(){
        var table_values=["players","age","value","top11","salary","elo","elo21","lm","lmu21"]
        var newContent = "<center><div>";
        newContent+='<label><input class="statsxente" type="checkbox" checked id="value" value="Value">Value</label>';
        if(window.sport=="soccer"){
            newContent+='<label><input class="statsxente" type="checkbox" id="top11" value="TOP 11">TOP 11</label>';
        }else{
            newContent+='<label><input class="statsxente" type="checkbox" id="top11" value="TOP 21">TOP 21</label>';
        }

        newContent+='<label><input class="statsxente" type="checkbox" id="players" value="Players">Players</label>';
        newContent+='<label><input class="statsxente" type="checkbox" id="salary" value="Salary">Salary</label>';
        newContent+='<label><input class="statsxente" type="checkbox" id="age" value="Age">Age</label>';
        newContent+='<label><input class="statsxente" type="checkbox" checked id="elo" value="Elo">ELO</label>';
        newContent+='<label><input class="statsxente" type="checkbox" checked id="elo21" value="U21 ELO">U21 ELO</label>';
        newContent+='<label><input class="statsxente" type="checkbox" checked id="lm" value="LM">LM</label>';
        newContent+='<label><input class="statsxente" type="checkbox" checked id="lmu21" value="U21 LM">U21 LM</label>';

        var contenedor = document.getElementById('countryRankTable');
        contenedor.insertAdjacentHTML('beforebegin',newContent);

        GM_xmlhttpRequest({
            method: "GET",
            url: "https://statsxente.com/MZ1/Functions/tamper_national_teams.php?currency="+GM_getValue("currency")+"&sport="+window.sport,
            headers: {
                "Content-Type": "application/json"
            },
            onload: function(response) {
                var jsonResponse = JSON.parse(response.responseText);
                var data=jsonResponse;

                var type=1;
                if(window.sport=="soccer"){
                    type=2
                }
                var table = document.getElementById('countryRankTable');
                for (var i = 0; i < table.rows.length; i++) {
                    var row = table.rows[i];
                    var insertIndex = row.cells.length - 1;
                    var raw_str=row.cells[3].innerHTML
                    row.deleteCell(3);
                    var cell_name = row.cells[2]
                    if(i>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 = "<th id='players_th' style='display:none;' class='header'><a href='#'>Players</a></th>";
                        cell1.outerHTML = "<th id='age_th' class='header' style='display:none;'><a href='#'>Age</a></th>";
                        cell2.outerHTML = "<th id='value_th' class='header' style='display:table-cell;'><a href='#'>Value</a></th>";
                        cell3.outerHTML = "<th id='top11_th' class='header' style='display:none;'><a href='#'>Top11</a></th>";
                        cell4.outerHTML = "<th id='salary_th' class='header' style='display:none;'><a href='#'>Salary</a></th>";
                        cell5.outerHTML = "<th id='elo_th' class='header' style='display:table-cell;'><a href='#'>ELO</a></th>";
                        cell6.outerHTML = "<th id='elo21_th' class='header' style='display:table-cell;'><a href='#'>U21 ELO</a></th>";
                        cell7.outerHTML = "<th id='lm_th' class='header' style='display:table-cell;'><a href='#'>LM</a></th>";
                        cell8.outerHTML = "<th id='lmu21_th' class='header' style='display:table-cell;'><a href='#'>U21 LM</a></th>";
                        cell9.outerHTML = "<th id='image' class='header' style='display:table-cell;'><a href='#'></a></th>";
                    } 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 = '<img style="cursor:pointer;" src="https://statsxente.com/MZ1/View/Images/calendar.png" width="20" height="20">'
                        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")
                            });
                            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);
            }
        });
    }



    function nextMatchesClubhouse(){
        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 = `
    <div id="tour-container" class="widgets-container">
        <div class="flex-wrap hub-widget-container">
            <div class="flex-grow-1 box_dark">
                <div id="clubhouse-widget-tour" class="widget-content clearfix">
                    <i class="fa minimize-button fa-minus-square" aria-hidden="true" data-time="1722549599"></i>
                    <span class="fa fa-stack fa-2x floatRight">
                        <i class="fa fa-circle fa-stack-2x fa-inverse"></i>
                        <i class="fa fa-thumbs-up fa-stack-1x green" aria-hidden="true"></i>
                </span>
                <h3 style="background-image: url('https://www.statsxente.com/MZ1/View/Images/etiqueta_bota.png');">Stats Xente</h3>
                <div class="widget-content-wrapper">
                    <div class="flex-wrap" style="margin-bottom: 35px;">
                        <div class="flex-grow-0" style="margin: 0 auto">
                            <img src="https://www.statsxente.com/MZ1/View/Images/etiqueta_bota.png" alt="" width="114" height="127">
                        </div>
                        <div class="flex-grow-1 textLeft">`

                            data.forEach(function(match_data) {

                                var dateObj1 = new Date(last_date);
                                var dateObj2 = new Date(match_data['fecha']);


                                var icon_="fa-check-square"
                                var style_=""
                                var flagFriendly=false;
                                if (dateObj1 < dateObj2) {
                                    icon_="fa-calendar-minus-o"
                                    style_="style='color:#e5ac00;'"
                                    flagFriendly=true;
                                }else{

                                    if(matchesDate.includes(match_data['rival_id']+"-"+match_data['fecha'])){
                                        if(window.sport=="hockey"){
                                            style_="style='color:#6d93fd;'"
                                        }
                                    }else{
                                        icon_="fa-times-square"
                                        style_="style='color:#AD4039;'"
                                        flagFriendly=true;


                                    }

                                }


                                var match='<img src="https://www.managerzone.com/dynimg/badge.php?team_id='+match_data['idEquipoLocal']+'&sport="'+window.sport+' width="15px" height="15px"/> '
                                    +team_name+' - '+match_data['rival_name']+' <img src="https://www.managerzone.com/dynimg/badge.php?team_id='+match_data['idEquipoVisitante']+'&sport="'+window.sport+' width="15px" height="15px"/>'
                                if(match_data['field']=="away"){
                                    match='<img src="https://www.managerzone.com/dynimg/badge.php?team_id='+match_data['idEquipoLocal']+'&sport="'+window.sport+' width="15px" height="15px"/> '
                                        +match_data['rival_name']+' - '+team_name+' <img src="https://www.managerzone.com/dynimg/badge.php?team_id='+match_data['idEquipoVisitante']+'&sport="'+window.sport+' width="15px" height="15px"/>'
                                }


                                newContent+='<fieldset class="grouping self box_light_on_dark flex-nowrap" style="max-width: 555px; margin-left: 10px;">'
                                newContent+='<legend>'+match_data['clash_name']+'</legend>'
                                newContent+='<div class="flex-grow-0 mission-icon">'
                                newContent+='<i class="fa '+icon_+' green fa-2x t-checked" aria-hidden="true" '+style_+'></i>'
                                newContent+='</div>'
                                newContent+='<div class="flex-grow-1 mission">'

                                var link="CompAmis_CALENDAR_View.php?"+'id='+match_data['idComp']
                                if(match_data['comp']=="cup"){
                                    link='CompAmis_Cup_CALENDAR_View.php?grupo='+match_data['grupo']+'&id='+match_data['idComp']
                                }


                                newContent+='<p><b><a href="https://www.statsxente.com/MZ1/View/'+link+'" target="_blank">'+match+'</a></b>'
                                newContent+="</br></p>"
                                newContent+='Date: '+match_data['fecha']
                                if(flagFriendly){
                                    newContent+="<a href='https://www.managerzone.com/?p=challenges&challenge-tid="+match_data['rival_id']+"'><i class='fa fa-thumbs-up fa-lg challenge-thumb' aria-hidden='true'></i></a>"
                                }


                                newContent+='</p>'
                                newContent+='</div>'
                                newContent+='</fieldset>'
                            });




                            newContent+=`</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>`;




                            var contenedor = document.getElementById('tour-container');
                            if(data.length>0){
                                contenedor.insertAdjacentHTML('beforebegin',newContent);

                            }


                        }

                    });

                }


            }
        });

    }


    function checkClassNameExists(element, className){

        if(className==""){
            return true;
        }else{
            return element.classList.contains(className);
        }
        return false;

    }





    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");
                }
            });
        });
    }



    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=""
        setTimeout(function() {

            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 = '<div id=testClick><center>'


            getNativeTableStyles();

            var idProgress="noProgress";
            if(urlParams.get('type')=="senior"){
                idProgress="divProgress"
            }


            var widthTable="1.5em"
///MENU TABLE
            contenidoNuevo+="<center><table id=showMenu border=0><thead style='background-color:"+GM_getValue("bg_native")+"; color:"+GM_getValue("color_native")+";'><tr>";
            contenidoNuevo+='<th align=center style="padding:4px;" colspan="4">Stats Xente</th>';
            contenidoNuevo+="</tr></thead>";
            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+= "<tr><td></td><td style='padding-top:5px' colspan='2'>";

            contenidoNuevo+='<center><div id="moreInfo" class="expandable-icon'+styleIcon+'" style="cursor:pointer; background-color:'+GM_getValue("bg_native")+';"><div id="line1" class="line"></div><div  id="line2" class="line"></div></div></center>';

            contenidoNuevo+= "</td><td></td></tr>";

            contenidoNuevo+= "<tr><td colspan='5' id='separatorTd'"+styleSep+"></td></tr>";



            contenidoNuevo+= "</table></center>";



            contenidoNuevo+='<table id=show3 border="0"'+styleTable+'><tr><td><label>';

            if((urlParams.get('type')=='senior')||(urlParams.get('type')=='world')){
                if("valor"==initialValues[detected_cat]){
                    contenidoNuevo+='<input class="statsxente" type="checkbox" checked id="valor" value="Value">Value</label></td>';
                }else{
                    contenidoNuevo+='<input class="statsxente" type="checkbox" id="valor" value="Value">Value</label></td>';
                }
            }else{
                contenidoNuevo+='<input class="statsxente" type="checkbox" id="valor" value="Value">Value</label></td>';
            }

            values.forEach(function(valor, clave) {

                if(clave=="valorUPSenior"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="valor11"){
                    contenidoNuevo+="</tr><tr>";
                }
                if(clave=="elo"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="leagues"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="leagues_all"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave=="cup"){
                    contenidoNuevo+="</tr><tr>";
                }

                if(clave==initialValues[detected_cat]){
                    contenidoNuevo+='<td><label><input class="statsxente" type="checkbox" checked value="'+valor+'" id="'+clave+'">'+valor+'</label></td>';
                }else{
                    contenidoNuevo+='<td><label><input class="statsxente" type="checkbox" value="'+valor+'" id="'+clave+'">'+valor+'</label></td>';
                }
            });
            contenidoNuevo+="</tr></table></center>"
            contenidoNuevo+="</div></br>";


            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+="<input type='hidden' id='team_"+id+"' value='"+equipo+"'/>"
                }

            }



            ///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 = "<center><img src='https://statsxente.com/MZ1/View/Images/detail.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but"+id+"' style='cursor:pointer;'/>";
                            if(GM_getValue("league_graph_button")=="checked"){
                                buttonDisplay=""
                            }else{
                                buttonDisplay="display:none;";
                            }
                            iner += "<img src='https://statsxente.com/MZ1/View/Images/graph.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but1"+id+"' style='cursor:pointer; "+buttonDisplay+"'/>";

                            if(GM_getValue("league_report_button")=="checked"){
                                buttonDisplay=""
                            }else{
                                buttonDisplay="display:none;";
                            }
                            iner += "<img src='https://statsxente.com/MZ1/View/Images/report.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but2"+id+"' style='cursor:pointer; "+buttonDisplay+"'/>";

                            if(GM_getValue("league_calendar_button")=="checked"){
                                buttonDisplay=""
                            }else{
                                buttonDisplay="display:none;";
                            }
                            iner += " <img src='https://statsxente.com/MZ1/View/Images/calendar.png' width='"+GM_getValue("league_image_size")+"px' height='"+GM_getValue("league_image_size")+"px' id='but3"+id+"' style='cursor:pointer; "+buttonDisplay+"'/>";
                            iner +="</center>";

                            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");
                        });
                    });
                }
            });
        }, 2500);

    }





})();