// ==UserScript== // @name MZ Oppponent Age Counter // @namespace http://tampermonkey.net/ // @version 0.87 // @description Count players by age on other teams' player pages // @author You // @match https://www.managerzone.com/?p=players&tid=* // @grant GM_addStyle // @downloadURL none // ==/UserScript== (function () { "use strict"; const ageCountMap = new Map(); document .querySelectorAll("#players_container .playerContainer") .forEach((player) => { let ageElement = player.querySelector("td"); if (ageElement) { let age = parseInt(ageElement.textContent.replace(/\D/g, "").trim()); if (ageCountMap.has(age)) { ageCountMap.set(age, ageCountMap.get(age) + 1); } else { ageCountMap.set(age, 1); } } }); const playerFiltersElement = document.querySelector("#player_filters"); if (playerFiltersElement) { const table = document.createElement("table"); table.id = "ageTable"; const thead = document.createElement("thead"); const tbody = document.createElement("tbody"); const headerRow = document.createElement("tr"); const ageHeader = document.createElement("th"); ageHeader.textContent = "Age"; const countHeader = document.createElement("th"); countHeader.textContent = "Count"; headerRow.appendChild(ageHeader); headerRow.appendChild(countHeader); thead.appendChild(headerRow); table.appendChild(thead); const tableEntries = Array.from(ageCountMap.entries()); tableEntries.sort((a, b) => a[0] - b[0]); tableEntries.forEach(([age, count]) => { const row = document.createElement("tr"); const ageCell = document.createElement("td"); ageCell.textContent = age; const countCell = document.createElement("td"); countCell.textContent = count; row.appendChild(ageCell); row.appendChild(countCell); tbody.appendChild(row); }); table.appendChild(tbody); playerFiltersElement.appendChild(table); } })(); GM_addStyle(` #ageTable { border-collapse: separate; border-spacing: 0; color: white; width: 30%; } #ageTable th, #ageTable td { padding: 5px 10px; color: white; /* Adding this line to ensure white font */ } #ageTable thead tr { background-color: #000080; /* Navy */ color: #FFFF00; /* Yellow */ } #ageTable tbody tr:nth-child(even) { background-color: #000080; /* Navy */ } #ageTable tbody tr:nth-child(odd) { background-color: #FF1493; /* Pinky Red */ } #ageTable tbody tr:hover { background-color: #00BFFF; color: black; } #ageTable th, #ageTable td { font-weight: normal; border: 1px solid #1E90FF; text-align: center; } #ageTable th { border-top: 2px solid #00BFFF; border-bottom: 2px solid #0000FF; } @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap'); `);