Depth Chart Position On Roster Page

sdfsdf

  1. // ==UserScript==
  2. // @name Depth Chart Position On Roster Page
  3. // @namespace pbr/dcp
  4. // @include http://goallineblitz.com/game/roster.pl?team_id=*
  5. // @copyright 2010, pabst
  6. // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/
  7. // @version 10.12.21
  8. // @description sdfsdf
  9. // ==/UserScript==
  10.  
  11. window.setTimeout( function() {
  12. setupTabs();
  13.  
  14. var input = document.createElement("input");
  15. input.type = "button";
  16. input.value = "Load Depth Chart";
  17. input.id = "buttonLoadDepthChart";
  18.  
  19. var input2 = document.createElement("input");
  20. input2.type.checked = false;
  21. input2.type = "checkbox";
  22. input2.value = "Load Special Teams";
  23. input2.id = "buttonLoadSecialTeams";
  24. input2.style.marginLeft = "5px";
  25. var text = document.createElement("text");
  26. text.textContent = " Load Special Teams";
  27.  
  28. var content = document.getElementById("content_depth");
  29. content.insertBefore(text, content.childNodes[0]);
  30. content.insertBefore(input2, content.childNodes[0]);
  31. content.insertBefore(input, content.childNodes[0]);
  32.  
  33. input.addEventListener("click",main,false);
  34. }, 1000);
  35.  
  36. var attsO = ["Pos","Name","Lvl","QB","HB","FB","WR","WR1","WR2","WR3","WR4","WR5","TE","C","LOT","ROT","LG","RG"];
  37. var attsD = ["Pos","Name","Lvl","NT","DT","LDE","RDE","LOLB","LILB","RILB","ROLB","CB","CB1","CB2","CB3","CB4","CB5","SS","FS"];
  38. var attsK = ["Pos","Name","Lvl","K","P"];
  39. var attsKO = ["Pos","Name","Lvl","KOS","OU1","OU2","OU3","OU4","OU5","OU6","IN1","IN2","IN3","IN4"];
  40. var attsKR = ["Pos","Name","Lvl","KRS","OU1","OU2","OU3","OU4","FW1","FW2","FW3","BW1","BW2","BW3","KR"];
  41. var attsP = ["Pos","Name","Lvl","LT","LG","LS","RG","RT","SE1","SE2","SB1","SB2","PP"];
  42. var attsPR = ["Pos","Name","Lvl","SE1","SE2","ER1","ER2","DL1","DL2","DL3","DL4","PP1","PP2","PR"];
  43. var attsFG = ["Pos","Name","Lvl","UB1","TE1","LT","LG","LS","RG","RT","TE2","UB2","PH"];
  44. var attsFGB = ["Pos","Name","Lvl","DE1","DT1","NT","DT2","DE2","LB1","LB2","LB3","FS","FL1","FL2"];
  45.  
  46.  
  47. var fullRoster = "";
  48.  
  49. function setupTabs() {
  50. fullRoster = document.createElement("thead");
  51.  
  52. var div = document.createElement("div");
  53. div.setAttribute("id","tab_depth");
  54. div.setAttribute("class","subtab_off");
  55. div.innerHTML = "<a onclick=\"changeTab('depth', 1)\" href=\"javascript:;\">Depth</a>";
  56.  
  57. var content = document.createElement("div");
  58. content.setAttribute("id","content_depth");
  59. content.setAttribute("class","content_container");
  60. content.style.display = "none"
  61. content.style.visibility = "hidden";
  62.  
  63. var headings = [attsO,attsD,attsK];
  64. var titles = ["blah","Offense","Defense","Kicker"];
  65. for (var i=1; i<titles.length; i++) {
  66. var title = document.createElement("div");
  67. title.setAttribute("class","medium_head");
  68. title.innerHTML = titles[i]+" Depth";
  69. content.appendChild(title);
  70.  
  71. var table = document.createElement("table");
  72. table.setAttribute("class","players rowstyle-alternating_color2 onload-zebra no-arrow");
  73.  
  74. var thead = document.createElement("thead");
  75. var tr = document.createElement("tr");
  76. for (var j=0; j<headings[i-1].length; j++) {
  77. var th = document.createElement("th");
  78. th.setAttribute("class","sortable-numeric fd-column-"+j);
  79. th.innerHTML = "<a class=\"fdTableSortTrigger\" title=\"Sort on “"+headings[i-1][j]+"”\" href=\"#\">"+headings[i-1][j]+"</a>";
  80. tr.appendChild(th);
  81. }
  82. thead.appendChild(tr);
  83.  
  84. var roster = document.getElementById("fd-table-"+i);
  85. for (var j=1; j<roster.rows.length; j++) {
  86. var tr = document.createElement("tr");
  87. tr.setAttribute("class","alternating_color"+(((j+1)%2)+1));
  88.  
  89. var td1 = document.createElement("td");
  90. td1.setAttribute("class",roster.rows[j].cells[7].className);
  91. td1.innerHTML = roster.rows[j].cells[7].innerHTML;
  92. tr.appendChild(td1);
  93.  
  94. var td2 = document.createElement("td");
  95. td2.setAttribute("class",roster.rows[j].cells[3].className);
  96. td2.innerHTML = roster.rows[j].cells[3].innerHTML.split("<img")[0];
  97. tr.appendChild(td2);
  98.  
  99. fullRoster.appendChild(tr.cloneNode(true));
  100. thead.appendChild(tr);
  101. }
  102.  
  103. table.appendChild(thead);
  104. table.rows[0].cells[0].setAttribute("class",table.rows[0].cells[0].getAttribute("class").replace("-numeric","-text"));
  105. table.rows[0].cells[1].setAttribute("class",table.rows[0].cells[1].getAttribute("class").replace("-numeric","-text"));
  106. table.rows[0].cells[1].style.width = "250px";
  107. content.appendChild(table);
  108.  
  109. }
  110.  
  111. document.getElementById("content").appendChild(content);
  112. var tabs = document.getElementsByClassName("tabs")[0];
  113. tabs.appendChild(div);
  114. }
  115.  
  116. function main() {
  117. var btn = document.getElementById("buttonLoadDepthChart");
  118. btn.disabled = true;
  119. var btn2 = document.getElementById("buttonLoadSpecialTeams");
  120. btn.disabled = true;
  121.  
  122. var addr = "http://goallineblitz.com/game/depth_chart.pl?team_id=";
  123. getInetPage(addr+window.location.toString().split("=")[1], handleDepthChart);
  124. }
  125.  
  126. function handleDepthChart(address, page) {
  127. var code = page.responseText;
  128. code = code.split("<script>")[1].split("</script>")[0];
  129. // console.log(code);
  130. var roster = [];
  131. var rosterById = [];
  132. var positionIds = [];
  133.  
  134. eval(code);
  135. positionIds["krkr"] = positionIds["kr"];
  136. positionIds["prpr"] = positionIds["pr"];
  137. positionIds["pls"] = positionIds["ls"];
  138. positionIds["fgph"] = positionIds["ph"];
  139.  
  140. var content = document.getElementById("content_depth");
  141.  
  142. //add offense
  143. insertion(content.getElementsByTagName("table")[0], attsO, positionIds);
  144.  
  145. //add defense
  146. insertion(content.getElementsByTagName("table")[1], attsD, positionIds);
  147.  
  148. //add kicker
  149. insertion(content.getElementsByTagName("table")[2], attsK, positionIds);
  150.  
  151. var btn = document.getElementById("buttonLoadSecialTeams");
  152. if (btn.checked == true) {
  153. var headings = [attsKO, attsKR, attsP, attsPR, attsFG, attsFGB];
  154. var titles = ["blah", "Kickoff", "Kickoff Return", "Punt", "Punt Return", "Field Goal", "Field Goal Block"];
  155. for (var i=1; i<titles.length; i++) {
  156. var title = document.createElement("div");
  157. title.setAttribute("class","medium_head");
  158. title.innerHTML = titles[i]+" Depth";
  159. content.appendChild(title);
  160.  
  161. var table = document.createElement("table");
  162. table.setAttribute("class","players rowstyle-alternating_color2 onload-zebra no-arrow");
  163. table.style.visibility = "hidden";
  164. table.style.display = "none";
  165.  
  166. table.appendChild(fullRoster.cloneNode(true));
  167.  
  168. var tr = table.insertRow(0);
  169. for (var j=0; j<headings[i-1].length; j++) {
  170. var th = document.createElement("th");
  171. th.setAttribute("class","sortable-numeric fd-column-"+j);
  172. th.innerHTML = "<a class=\"fdTableSortTrigger\" title=\"Sort on “"+headings[i-1][j]+"”\" href=\"#\">"+headings[i-1][j]+"</a>";
  173. tr.appendChild(th);
  174. }
  175.  
  176. table.rows[0].cells[0].setAttribute("class",table.rows[0].cells[0].getAttribute("class").replace("-numeric","-text"));
  177. table.rows[0].cells[1].setAttribute("class",table.rows[0].cells[1].getAttribute("class").replace("-numeric","-text"));
  178. table.rows[0].cells[1].style.width = "250px";
  179. content.appendChild(table);
  180. }
  181.  
  182. //add s-teams
  183. insertion(content.getElementsByTagName("table")[3], attsKO, positionIds);
  184. insertion(content.getElementsByTagName("table")[4], attsKR, positionIds, "kr");
  185. insertion(content.getElementsByTagName("table")[5], attsP, positionIds, "p");
  186. insertion(content.getElementsByTagName("table")[6], attsPR, positionIds, "pr");
  187. insertion(content.getElementsByTagName("table")[7], attsFG, positionIds, "fg");
  188. insertion(content.getElementsByTagName("table")[8], attsFGB, positionIds, "fg");
  189. }
  190. fullRoster = null;
  191.  
  192. //add levels
  193. var content = document.getElementById("content_depth");
  194. var tbl = content.getElementsByTagName("table");
  195. for (var tidx=0; tidx<tbl.length; tidx++) {
  196. for (var ridx=1; ridx<tbl[tidx].rows.length; ridx++) {
  197. var pid = tbl[tidx].rows[ridx].cells[1].getElementsByTagName("a")[0].href.split("=")[1];
  198. var lvl = rosterById[pid].level;
  199. tbl[tidx].rows[ridx].insertCell(2);
  200. tbl[tidx].rows[ridx].cells[2].innerHTML = "<div style='text-align:center'>"+lvl+"</div>";
  201. }
  202. }
  203.  
  204. var tables = content.getElementsByTagName("table");
  205. for (var i=0; i<tables.length; i++) {
  206. if (i > 2) {
  207. if (btn.checked == true) {
  208. for (var r=tables[i].rows.length-1; r>0; r--) {
  209. var empty = true;
  210. for (var c=3; c<tables[i].rows[r].cells.length; c++) {
  211. if (tables[i].rows[r].cells[c].firstChild.innerHTML != " - ") {
  212. empty = false;
  213. break;
  214. }
  215. }
  216. if (empty == true) {
  217. tables[i].deleteRow(r);
  218. }
  219. }
  220. tables[i].style.visibility = "visible";
  221. tables[i].style.display = "block";
  222. }
  223. }
  224. else {
  225. tables[i].style.visibility = "visible";
  226. tables[i].style.display = "block";
  227. }
  228. }
  229. }
  230.  
  231. function insertion(tbl, pos, positionIds, prefix) {
  232. if (prefix == null) prefix = "";
  233. for (var ridx=1; ridx<tbl.rows.length; ridx++) {
  234. var pid = tbl.rows[ridx].cells[1].getElementsByTagName("a")[0].href.split("=")[1];
  235.  
  236. for (var i=3; i<pos.length; i++) {
  237. var a = prefix+pos[i].toLowerCase();
  238. var td = document.createElement("td");
  239. td.innerHTML = "<div style='text-align:center'> - </div>";
  240. if (positionIds[a] != null) {
  241. var depth = positionIds[a].indexOf(pid);
  242. if (depth != -1) {
  243. // console.log(pid+":"+a+") "+positionIds[a]+" !!!!! "+depth);
  244. td.innerHTML = "<div style='text-align:center'>"+(depth+1)+"</div>";
  245. }
  246. }
  247. tbl.rows[ridx].appendChild(td);
  248. }
  249. }
  250. }
  251.  
  252. function changeTab(pos) {
  253. return;
  254. }
  255.  
  256. function getInetPage(address, func) {
  257. // console.log("getInetPage : "+address);
  258. var req = new XMLHttpRequest();
  259. req.open( 'GET', address, true );
  260. req.onload = function() {
  261. if (this.status != 200) {
  262. alert("pbr gm script: Error "+this.status+" loading "+address);
  263. }
  264. else {
  265. // console.log("loaded: "+address)
  266. func(address,this);
  267. }
  268. };
  269.  
  270. req.send(null);
  271. return req;
  272. }
  273.  
  274.  

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址