// ==UserScript== // @name Cumulative Team Results // @namespace pbr/trb // @include http://goallineblitz.com/game/team.pl?*team_id=* // @include http://glb.warriorgeneral.com/game/team.pl?*team_id=* // @copyright 2011, pabst // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/ // @version 13.12.29 // @description Get a teams cumulative GLB record. // @downloadURL https://update.greasyfork.icu/scripts/1362/Cumulative%20Team%20Results.user.js // @updateURL https://update.greasyfork.icu/scripts/1362/Cumulative%20Team%20Results.meta.js // ==/UserScript== var blowout = 55; var maxLeaders = 10; var gamelinks = [ ]; window.setTimeout(function() { boxSetup(); }, 3000); var teamPageName = null; var teamPageId = parseInt(document.location.toString().split("team_id=")[1]); var earliestSeason = null; var currentSeason = null; var useAllGames = false; var gameTotals = new Array(); var gameHistory = new Array(); function getSeasons() { var inp = document.getElementById("seasonsTRB"); var seasons = inp.value.split(","); var output = []; for (var i=0; i 1) { var first = parseInt(seasons[i].split("-")[0]); var second = parseInt(seasons[i].split("-")[1]) for (var j=Math.min(first,second); j<=Math.max(first,second); j++) { output.push(j); } } else { output.push(parseInt(seasons[i])); } } return output.sort(function(a,b) { return a-b; }); } function mainHistorical() { var btn = document.getElementById("rbtbutton"); btn.disabled = true; useAllGames = document.getElementById("allGamesTeam").checked; var links = new Array(); var href = document.location.toString(); if (href.match("season") != null) { href = href.split("season=")[0]+href.split("&")[1]; } var seasons = getSeasons(); for (var i=0; i"); var season = parseInt(address.split("season=")[1]); gameTotals[season] = new Array(); var count = 0; var links = div.getElementsByTagName("a"); for (var i=0; i") != -1) obj.type = "r"; else if (b.indexOf(" (T)") != -1) obj.type = "t"; gameTotals[season].push(obj); if (gameHistory.indexOf(parseInt(obj.oppid)) == -1) { gameHistory.push(parseInt(obj.oppid)); } } } if (data.length > 0) { console.log(data.length+": "+data[0]); getInetPage(data[0], getGameLinks, data.slice(1)); } else { console.log(gamelinks.length+" games requested"); document.getElementById("rbtbutton").value = "Calculating Seasons. This might take a while."; console.log("calculating seasons"); seasonTotals(); document.getElementById("rbtbutton").value = "Calculating Teams. This might take a while."; console.log("calculating teams"); historicalTotals(); document.getElementById("rbtbutton").value = "Done."; } } function createRecordTBody(title) { var tbody = document.createElement("tbody"); var hrow = document.createElement("tr"); hrow.setAttribute("class", "nonalternating_color"); var head = ["","Overall","Playoff","<"+1*blowout,"<"+2*blowout,"<"+3*blowout,">"+3*blowout,"Ranked","Tourn.","Scrim."]; for (var i=0; i"+opp+""; for (var i=0; i<3; i++) { str += ""+record[i]+""; } for (var i=0; i<3; i++) { str += ""+playoff[i]+""; } for (var i=0; i<4; i++) { for (var j=0; j<3; j++) { if ((spreads[i] == null) || (spreads[i][j] == null)) { str += "0"; } else { str += ""+spreads[i][j]+""; } } } for (var i=0; i<3; i++) { str += ""+ranked[i]+""; } for (var i=0; i<3; i++) { str += ""+tourn[i]+""; } for (var i=0; i<3; i++) { str += ""+scrimmage[i]+""; } str += ""; tbody.innerHTML += str; } table.appendChild(tbody); for (var i=2; i (r1w+r1l+r1t)) { table.insertRow(i); table.rows[i].innerHTML = table.rows[j+1].innerHTML; var r = table.deleteRow(j+1); } else if (((r2w+r2l+r2t) == (r1w+r1l+r1t)) && (r2l < r1l)) { table.insertRow(i); table.rows[i].innerHTML = table.rows[j+1].innerHTML; var r = table.deleteRow(j+1); } table.rows[i].setAttribute("class","alternating_color"+((i%2)+1)); } } var div = document.createElement("div"); div.appendChild(table); document.getElementById("footer").parentNode.appendChild(div); } function seasonTotals() { var table = document.createElement("table"); table.setAttribute("class","bscTable"); table.cellSpacing = "0"; table.cellPadding = "0"; table.style.marginBottom = "0px"; table.style.width = "960px"; var tbody = createRecordTBody("Season"); var totals = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; for (var s=0; s"; str += ""+s+""; for (var z=0; z"; totals[i] += record[i]; } for (var i=0; i<3; i++) { str += ""+playoff[i]+""; totals[i+3] += playoff[i]; } for (var i=0; i<4; i++) { for (var j=0; j<3; j++) { if ((spreads[i] == null) || (spreads[i][j] == null)) { str += "0"; } else { str += ""+spreads[i][j]+""; totals[3+3+i*3+j] += spreads[i][j]; } } } for (var i=0; i<3; i++) { str += ""+ranked[i]+""; totals[i+18] += ranked[i]; } for (var i=0; i<3; i++) { str += ""+tourn[i]+""; totals[i+21] += tourn[i]; } for (var i=0; i<3; i++) { str += ""+scrimmage[i]+""; totals[i+24] += scrimmage[i]; } str += ""; tbody.innerHTML += str; } } var str = "Total"; for (var i=0; i"; } str += ""; tbody.innerHTML += str; table.appendChild(tbody); var div = document.createElement("div"); div.appendChild(table); document.getElementById("footer").parentNode.appendChild(div); } function boxSetup() { var div = document.createElement("div"); div.style.clear = "both"; var button = document.createElement("input"); button.setAttribute("value","Collect Team History"); button.setAttribute("type","button"); button.setAttribute("id","rbtbutton"); button.addEventListener("click",mainHistorical,false); div.appendChild(button); var checkBox = document.createElement("input"); checkBox.setAttribute("type","checkbox"); checkBox.setAttribute("id","allGamesTeam"); checkBox.setAttribute("class","GScheckbox"); checkBox.style.marginLeft = "3px"; checkBox.style.marginRight = "3px"; div.appendChild(checkBox); var span = document.createElement("span"); span.innerHTML = "Use All Games"; div.appendChild(span); var selects = document.getElementsByTagName("select"); for (var i=0; i parseFloat(b[bidx].cells[sortidx].textContent)) { output.push(a[aidx++]); } else { output.push(b[bidx++]); } } for (; aidx 2) { tbl.deleteRow(2); } var time = new Date() - stime; console.log("delete time : "+time.toFixed(0)+"ms"); var stime = new Date(); for (var i=0; i (maxLeaders+2)) { results[i].style.visibility = "hidden"; results[i].style.display = "none"; } else { results[i].style.visibility = "visible"; results[i].style.display = null; } } tbl.appendChild(results[i]); } results = null; var time = new Date() - stime; console.log("append time : "+time.toFixed(0)+"ms"); tbl.style.visibility = "visible"; } function getInetPage(address, func, data) { var req = new XMLHttpRequest(); req.open( 'GET', address, true ); req.onload = function() { if (this.status != 200) { inetErrors++; func(address, this, data); } else { func(address, this, data); } }; req.send(null); return req; }