- // ==UserScript==
- // @name Depth Chart Position On Roster Page
- // @namespace pbr/dcp
- // @include http://goallineblitz.com/game/roster.pl?team_id=*
- // @copyright 2010, pabst
- // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/
- // @version 10.12.21
- // @description sdfsdf
- // ==/UserScript==
-
- window.setTimeout( function() {
- setupTabs();
-
- var input = document.createElement("input");
- input.type = "button";
- input.value = "Load Depth Chart";
- input.id = "buttonLoadDepthChart";
-
- var input2 = document.createElement("input");
- input2.type.checked = false;
- input2.type = "checkbox";
- input2.value = "Load Special Teams";
- input2.id = "buttonLoadSecialTeams";
- input2.style.marginLeft = "5px";
- var text = document.createElement("text");
- text.textContent = " Load Special Teams";
-
- var content = document.getElementById("content_depth");
- content.insertBefore(text, content.childNodes[0]);
- content.insertBefore(input2, content.childNodes[0]);
- content.insertBefore(input, content.childNodes[0]);
-
- input.addEventListener("click",main,false);
- }, 1000);
-
- var attsO = ["Pos","Name","Lvl","QB","HB","FB","WR","WR1","WR2","WR3","WR4","WR5","TE","C","LOT","ROT","LG","RG"];
- var attsD = ["Pos","Name","Lvl","NT","DT","LDE","RDE","LOLB","LILB","RILB","ROLB","CB","CB1","CB2","CB3","CB4","CB5","SS","FS"];
- var attsK = ["Pos","Name","Lvl","K","P"];
- var attsKO = ["Pos","Name","Lvl","KOS","OU1","OU2","OU3","OU4","OU5","OU6","IN1","IN2","IN3","IN4"];
- var attsKR = ["Pos","Name","Lvl","KRS","OU1","OU2","OU3","OU4","FW1","FW2","FW3","BW1","BW2","BW3","KR"];
- var attsP = ["Pos","Name","Lvl","LT","LG","LS","RG","RT","SE1","SE2","SB1","SB2","PP"];
- var attsPR = ["Pos","Name","Lvl","SE1","SE2","ER1","ER2","DL1","DL2","DL3","DL4","PP1","PP2","PR"];
- var attsFG = ["Pos","Name","Lvl","UB1","TE1","LT","LG","LS","RG","RT","TE2","UB2","PH"];
- var attsFGB = ["Pos","Name","Lvl","DE1","DT1","NT","DT2","DE2","LB1","LB2","LB3","FS","FL1","FL2"];
-
-
- var fullRoster = "";
-
- function setupTabs() {
- fullRoster = document.createElement("thead");
-
- var div = document.createElement("div");
- div.setAttribute("id","tab_depth");
- div.setAttribute("class","subtab_off");
- div.innerHTML = "<a onclick=\"changeTab('depth', 1)\" href=\"javascript:;\">Depth</a>";
-
- var content = document.createElement("div");
- content.setAttribute("id","content_depth");
- content.setAttribute("class","content_container");
- content.style.display = "none"
- content.style.visibility = "hidden";
-
- var headings = [attsO,attsD,attsK];
- var titles = ["blah","Offense","Defense","Kicker"];
- for (var i=1; i<titles.length; i++) {
- var title = document.createElement("div");
- title.setAttribute("class","medium_head");
- title.innerHTML = titles[i]+" Depth";
- content.appendChild(title);
-
- var table = document.createElement("table");
- table.setAttribute("class","players rowstyle-alternating_color2 onload-zebra no-arrow");
-
- var thead = document.createElement("thead");
- var tr = document.createElement("tr");
- for (var j=0; j<headings[i-1].length; j++) {
- var th = document.createElement("th");
- th.setAttribute("class","sortable-numeric fd-column-"+j);
- th.innerHTML = "<a class=\"fdTableSortTrigger\" title=\"Sort on “"+headings[i-1][j]+"”\" href=\"#\">"+headings[i-1][j]+"</a>";
- tr.appendChild(th);
- }
- thead.appendChild(tr);
-
- var roster = document.getElementById("fd-table-"+i);
- for (var j=1; j<roster.rows.length; j++) {
- var tr = document.createElement("tr");
- tr.setAttribute("class","alternating_color"+(((j+1)%2)+1));
-
- var td1 = document.createElement("td");
- td1.setAttribute("class",roster.rows[j].cells[7].className);
- td1.innerHTML = roster.rows[j].cells[7].innerHTML;
- tr.appendChild(td1);
-
- var td2 = document.createElement("td");
- td2.setAttribute("class",roster.rows[j].cells[3].className);
- td2.innerHTML = roster.rows[j].cells[3].innerHTML.split("<img")[0];
- tr.appendChild(td2);
-
- fullRoster.appendChild(tr.cloneNode(true));
- thead.appendChild(tr);
- }
-
- table.appendChild(thead);
- table.rows[0].cells[0].setAttribute("class",table.rows[0].cells[0].getAttribute("class").replace("-numeric","-text"));
- table.rows[0].cells[1].setAttribute("class",table.rows[0].cells[1].getAttribute("class").replace("-numeric","-text"));
- table.rows[0].cells[1].style.width = "250px";
- content.appendChild(table);
-
- }
-
- document.getElementById("content").appendChild(content);
- var tabs = document.getElementsByClassName("tabs")[0];
- tabs.appendChild(div);
- }
-
- function main() {
- var btn = document.getElementById("buttonLoadDepthChart");
- btn.disabled = true;
- var btn2 = document.getElementById("buttonLoadSpecialTeams");
- btn.disabled = true;
-
- var addr = "http://goallineblitz.com/game/depth_chart.pl?team_id=";
- getInetPage(addr+window.location.toString().split("=")[1], handleDepthChart);
- }
-
- function handleDepthChart(address, page) {
- var code = page.responseText;
- code = code.split("<script>")[1].split("</script>")[0];
- // console.log(code);
- var roster = [];
- var rosterById = [];
- var positionIds = [];
-
- eval(code);
- positionIds["krkr"] = positionIds["kr"];
- positionIds["prpr"] = positionIds["pr"];
- positionIds["pls"] = positionIds["ls"];
- positionIds["fgph"] = positionIds["ph"];
-
- var content = document.getElementById("content_depth");
-
- //add offense
- insertion(content.getElementsByTagName("table")[0], attsO, positionIds);
-
- //add defense
- insertion(content.getElementsByTagName("table")[1], attsD, positionIds);
-
- //add kicker
- insertion(content.getElementsByTagName("table")[2], attsK, positionIds);
-
- var btn = document.getElementById("buttonLoadSecialTeams");
- if (btn.checked == true) {
- var headings = [attsKO, attsKR, attsP, attsPR, attsFG, attsFGB];
- var titles = ["blah", "Kickoff", "Kickoff Return", "Punt", "Punt Return", "Field Goal", "Field Goal Block"];
- for (var i=1; i<titles.length; i++) {
- var title = document.createElement("div");
- title.setAttribute("class","medium_head");
- title.innerHTML = titles[i]+" Depth";
- content.appendChild(title);
-
- var table = document.createElement("table");
- table.setAttribute("class","players rowstyle-alternating_color2 onload-zebra no-arrow");
- table.style.visibility = "hidden";
- table.style.display = "none";
-
- table.appendChild(fullRoster.cloneNode(true));
-
- var tr = table.insertRow(0);
- for (var j=0; j<headings[i-1].length; j++) {
- var th = document.createElement("th");
- th.setAttribute("class","sortable-numeric fd-column-"+j);
- th.innerHTML = "<a class=\"fdTableSortTrigger\" title=\"Sort on “"+headings[i-1][j]+"”\" href=\"#\">"+headings[i-1][j]+"</a>";
- tr.appendChild(th);
- }
-
- table.rows[0].cells[0].setAttribute("class",table.rows[0].cells[0].getAttribute("class").replace("-numeric","-text"));
- table.rows[0].cells[1].setAttribute("class",table.rows[0].cells[1].getAttribute("class").replace("-numeric","-text"));
- table.rows[0].cells[1].style.width = "250px";
- content.appendChild(table);
- }
-
- //add s-teams
- insertion(content.getElementsByTagName("table")[3], attsKO, positionIds);
- insertion(content.getElementsByTagName("table")[4], attsKR, positionIds, "kr");
- insertion(content.getElementsByTagName("table")[5], attsP, positionIds, "p");
- insertion(content.getElementsByTagName("table")[6], attsPR, positionIds, "pr");
- insertion(content.getElementsByTagName("table")[7], attsFG, positionIds, "fg");
- insertion(content.getElementsByTagName("table")[8], attsFGB, positionIds, "fg");
- }
- fullRoster = null;
-
- //add levels
- var content = document.getElementById("content_depth");
- var tbl = content.getElementsByTagName("table");
- for (var tidx=0; tidx<tbl.length; tidx++) {
- for (var ridx=1; ridx<tbl[tidx].rows.length; ridx++) {
- var pid = tbl[tidx].rows[ridx].cells[1].getElementsByTagName("a")[0].href.split("=")[1];
- var lvl = rosterById[pid].level;
- tbl[tidx].rows[ridx].insertCell(2);
- tbl[tidx].rows[ridx].cells[2].innerHTML = "<div style='text-align:center'>"+lvl+"</div>";
- }
- }
-
- var tables = content.getElementsByTagName("table");
- for (var i=0; i<tables.length; i++) {
- if (i > 2) {
- if (btn.checked == true) {
- for (var r=tables[i].rows.length-1; r>0; r--) {
- var empty = true;
- for (var c=3; c<tables[i].rows[r].cells.length; c++) {
- if (tables[i].rows[r].cells[c].firstChild.innerHTML != " - ") {
- empty = false;
- break;
- }
- }
- if (empty == true) {
- tables[i].deleteRow(r);
- }
- }
- tables[i].style.visibility = "visible";
- tables[i].style.display = "block";
- }
- }
- else {
- tables[i].style.visibility = "visible";
- tables[i].style.display = "block";
- }
- }
- }
-
- function insertion(tbl, pos, positionIds, prefix) {
- if (prefix == null) prefix = "";
- for (var ridx=1; ridx<tbl.rows.length; ridx++) {
- var pid = tbl.rows[ridx].cells[1].getElementsByTagName("a")[0].href.split("=")[1];
-
- for (var i=3; i<pos.length; i++) {
- var a = prefix+pos[i].toLowerCase();
- var td = document.createElement("td");
- td.innerHTML = "<div style='text-align:center'> - </div>";
-
- if (positionIds[a] != null) {
- var depth = positionIds[a].indexOf(pid);
- if (depth != -1) {
- // console.log(pid+":"+a+") "+positionIds[a]+" !!!!! "+depth);
- td.innerHTML = "<div style='text-align:center'>"+(depth+1)+"</div>";
- }
- }
- tbl.rows[ridx].appendChild(td);
- }
- }
- }
-
- function changeTab(pos) {
- return;
- }
-
- function getInetPage(address, func) {
- // console.log("getInetPage : "+address);
- var req = new XMLHttpRequest();
- req.open( 'GET', address, true );
- req.onload = function() {
- if (this.status != 200) {
- alert("pbr gm script: Error "+this.status+" loading "+address);
- }
- else {
- // console.log("loaded: "+address)
- func(address,this);
- }
- };
-
- req.send(null);
- return req;
- }
-
-