pbr Game Scout uilib - NEWGEN

library for GLB

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greatest.deepsurf.us/scripts/473628/1239278/pbr%20Game%20Scout%20uilib%20-%20NEWGEN.js

  1. // ==UserScript==
  2. // @name pbr Game Scout uilib - NEWGEN
  3. // @namespace pbr
  4. // @include https://glb.warriorgeneral.com/*
  5. // @copyright 2008, pabst / 2023, nikkoum
  6. // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/
  7. // @version 23.22.08
  8. // ==/UserScript==
  9.  
  10. function getEmptyTables() {
  11. var tableParent = document.createElement('span');
  12. var bar = document.createElement('span');
  13. bar.setAttribute("id","gsbar");
  14.  
  15. var t1 = document.createElement('div');
  16. //t1.appendChild(document.createTextNode("Game Scout: "));
  17. //t1.setAttribute("class","medium_head");
  18.  
  19. var b1 = document.createElement('a');
  20. b1.appendChild(document.createTextNode("Total"));
  21. b1.setAttribute("class","medium_head");//subhead_link_bar");
  22. b1.setAttribute("id","gsbar0");
  23. b1.addEventListener('click', function() { changeVisibility(0,2); }, true);
  24.  
  25. var b2 = document.createElement('span');
  26. b2.appendChild(document.createTextNode(" | "));
  27.  
  28. var b3 = document.createElement('a');
  29. b3.appendChild(document.createTextNode("Rushing"));
  30. //b3.setAttribute("class","subhead_link_bar");
  31. b3.setAttribute("id","gsbar3");
  32. b3.addEventListener('click', function() { changeVisibility(3,5); }, true);
  33.  
  34. var b4 = document.createElement('span');
  35. b4.appendChild(document.createTextNode(" | "));
  36.  
  37. var b5 = document.createElement('a');
  38. b5.appendChild(document.createTextNode("Passing"));
  39. //b5.setAttribute("class","subhead_link_bar");
  40. b5.setAttribute("id","gsbar6");
  41. b5.addEventListener('click', function() { changeVisibility(6,10); }, true);
  42.  
  43. var b6 = document.createElement('span');
  44. b6.appendChild(document.createTextNode(" | "));
  45.  
  46. var b7 = document.createElement('a');
  47. b7.appendChild(document.createTextNode("Special Teams"));
  48. //b7.setAttribute("class","subhead_link_bar");
  49. b7.setAttribute("id","gsbar11");
  50. b7.addEventListener('click', function() { changeVisibility(11,15); }, true);
  51.  
  52. var b8 = document.createElement('span');
  53. b8.appendChild(document.createTextNode(" | "));
  54.  
  55.  
  56. var b9 = document.createElement('a');
  57. b9.appendChild(document.createTextNode("Defense"));
  58. //b9.setAttribute("class","subhead_link_bar");
  59. b9.setAttribute("id","gsbar16");
  60. b9.addEventListener('click', function() { changeVisibility(16,17); }, true);
  61.  
  62. var b10 = document.createElement('span');
  63. b10.appendChild(document.createTextNode(" | "));
  64.  
  65.  
  66. var b11 = document.createElement('a');
  67. b11.appendChild(document.createTextNode("Everything"));
  68. //b11.setAttribute("class","subhead_link_bar");
  69. b11.setAttribute("id","gsbar-1");
  70. b11.addEventListener('click', function() { changeVisibility(-1); }, true);
  71.  
  72. bar.appendChild(t1);
  73.  
  74. bar.appendChild(b1);
  75. bar.appendChild(b2);
  76. bar.appendChild(b3);
  77. bar.appendChild(b4);
  78. bar.appendChild(b5);
  79. bar.appendChild(b6);
  80. bar.appendChild(b7);
  81. bar.appendChild(b8);
  82. bar.appendChild(b9);
  83. bar.appendChild(b10);
  84. bar.appendChild(b11);
  85. tableParent.appendChild(bar);
  86.  
  87. var arr = new Array();
  88. arr.push(getQuarterTable(0,5));
  89. arr.push(getQuarterTable(1,5));
  90. arr.push(getPenaltyTable(0,[]));
  91. arr.push(getPenaltyTable(1,[]));
  92. arr.push(getDriveTable(0,[]));
  93. arr.push(getDriveTable(1,[]));
  94. arr.push(getRushingTable(0));
  95. arr.push(getRushingTable(1));
  96. arr.push(getRushingByDownTable(0));
  97. arr.push(getRushingByDownTable(1));
  98. arr.push(getRushingTargetTable(0,[]));
  99. arr.push(getRushingTargetTable(1,[]));
  100. arr.push(getPassingTable(0));
  101. arr.push(getPassingTable(1));
  102. arr.push(getPassingDistanceTable(0));
  103. arr.push(getPassingDistanceTable(1));
  104. arr.push(getPassingByDownTable(0));
  105. arr.push(getPassingByDownTable(1));
  106. arr.push(getQuarterbacksTable(0,[]));
  107. arr.push(getQuarterbacksTable(1,[]));
  108. arr.push(getPassingTargetTable(0,[]));
  109. arr.push(getPassingTargetTable(1,[]));
  110. arr.push(getKickingTable(0,[]));
  111. arr.push(getKickingTable(1,[]));
  112. arr.push(getKickReturnTable(0,[]));
  113. arr.push(getKickReturnTable(1,[]));
  114. arr.push(getPuntingTable(0,[]));
  115. arr.push(getPuntingTable(1,[]));
  116. arr.push(getPuntReturnTable(0,[]));
  117. arr.push(getPuntReturnTable(1,[]));
  118. arr.push(getSTDefenseTable(0,[]));
  119. arr.push(getSTDefenseTable(1,[]));
  120. arr.push(getRushDefenseTable(0,[]));
  121. arr.push(getRushDefenseTable(1,[]));
  122. arr.push(getPassDefenseTable(0,[]));
  123. arr.push(getPassDefenseTable(1,[]));
  124.  
  125. var tables = document.createElement("table");
  126. tables.setAttribute("id","gamescout");
  127. tables.setAttribute("style","visibility: hidden; display: none;");
  128. for (var i=0; i<arr.length/2; i++) {
  129. var qrow = document.createElement("tr");
  130. qrow.setAttribute('id','row'+i);
  131. qrow.setAttribute('valign','top');
  132. var qd1 = document.createElement("td");
  133. var qd2 = document.createElement("td");
  134. qd1.appendChild(arr[i*2]);
  135. qd2.appendChild(arr[i*2+1]);
  136. qrow.appendChild(qd1);
  137. qrow.appendChild(qd2);
  138. tables.appendChild(qrow);
  139. }
  140. tableParent.appendChild(tables);
  141. return tableParent;
  142. }
  143.  
  144. function addRowToTable(t,data) {
  145. var tr = document.createElement("tr");
  146. tr.setAttribute("class","alternating_color"+((t.rows.length%2)+1)+" pbp_pbr_title_row");
  147. for (var i=0; i<data.length; i++) {
  148. var td = document.createElement("td");
  149. if (i != 0) td.setAttribute("align","center");
  150. td.innerHTML = data[i]+"";
  151. tr.appendChild(td);
  152. }
  153. t.appendChild(tr);
  154. }
  155.  
  156. function getQuarterTable(index, length) {
  157. var title = "Quarter";
  158. var columns = ["","Total","1st","2nd","3rd","4th","OT"];
  159. var rows = ["Time of Poss.", "Plays", "Yards", "Yards / Play", "Penalties",
  160. " ",
  161. "Rush Att","Rush Yards","Yards / Att","Success Rate",
  162. " ",
  163. "Pass Comp","Pass Att", "Comp. Pct","Pass Yards", "Hurries"];
  164.  
  165. var c;
  166. if (length == 1) c = new Array(length+1);
  167. else c = new Array(length+2);
  168.  
  169. for (var i=0; i<c.length; i++) {
  170. c[i] = columns[i];
  171. }
  172. return getTable(title,rows,c,index,"q");
  173. }
  174.  
  175. function getRushingTable(index) {
  176. var title = "Team Rushing";
  177. var columns = ["","Far Left","Left","Middle","Right","Far Right"];
  178. var rows = ["Attempts","Yards","Yards / Att","Success Rate","Line Yards"];
  179.  
  180. return getTable(title,rows,columns,index,"r");
  181. }
  182.  
  183. function getPassingTable(index) {
  184. var title = "Team Passing";
  185. var columns = ["","Left","Middle","Right"];
  186. var rows = ["Completions","Attempts","Comp. Pct","Yards"];
  187.  
  188. return getTable(title,rows, columns,index,"p");
  189. }
  190.  
  191. function getRushingByDownTable(index) {
  192. var title = "Rushing By Down";
  193. var columns = ["","First","Second","Third","Fourth"];
  194. var rows = ["Attempts","Yards","Yards / Att","Success Rate","Line Yards","First Downs"];
  195.  
  196. return getTable(title,rows,columns,index,"rbd");
  197. }
  198.  
  199. function getPassingByDownTable(index) {
  200. var title = "Passing By Down";
  201. var columns = ["","First","Second","Third","Fourth"];
  202. var rows = ["Completions","Attempts","Comp. Pct","Yards","First Downs", "Hurries"];
  203.  
  204. return getTable(title,rows,columns,index,"pbd");
  205. }
  206.  
  207. function getPassingDistanceTable(index) {
  208. var title = "Passing Distance";
  209. var columns = ["","Left","Middle","Right","Total"];
  210. var rows = ["Long","Medium","Short","Backfield","Total"];
  211.  
  212. return getTable(title,rows,columns,index,"pd");
  213. }
  214.  
  215. function getQuarterbacksTable(index, rows) {
  216. var title = "Quarterbacks";
  217. var columns = ["Name","Att","Cmp","Yards","TD","Int","Drop","PD","Bad","Hur"];
  218.  
  219. var r = rows;
  220. if (rows == null) r = [];
  221. else if (rows.length == 0) r = [];
  222. return getTable(title,r,columns,index,"tq",true);
  223. }
  224.  
  225. function getPassingTargetTable(index, rows) {
  226. var title = "Receivers";
  227. var columns = ["Name","Att","Cmp","Drop","PD","KL","Pct.","Yards","Lng","FD","BrTk"];
  228.  
  229. var r = rows;
  230. if (rows == null) r = [];
  231. else if (rows.length == 0) r = [];
  232. return getTable(title,r,columns,index,"tp",true);
  233. }
  234.  
  235. function getRushingTargetTable(index, rows) {
  236. var title = "Runners";
  237. var columns = ["Name","Att","Yards","YPC","Lng","Succ","FD","BrTk"];
  238.  
  239. var r = rows;
  240. if (rows == null) r = [];
  241. else if (rows.length == 0) r = [];
  242. return getTable(title,r,columns,index,"tr",true);
  243. }
  244.  
  245. function getRushDefenseTable(index, rows) {
  246. var columns = ["Name","Tkl","Miss","YPT","Stop","Dft"];
  247.  
  248. var r = rows;
  249. if (rows == null) r = [];
  250. else if (rows.length == 0) r = [];
  251. return getTable("Run Defenders",r,columns,index,"defr",true);
  252. }
  253. function getPassDefenseTable(index, rows) {
  254. // var columns = ["Name","Tkl","Miss","YPT","Stop","Defeat","PD"];
  255. var columns = ["Name","Tkl","Miss","YPT","Stop","Dft","Int","PD","KL"];
  256.  
  257. var r = rows;
  258. if (rows == null) r = [];
  259. else if (rows.length == 0) r = [];
  260. return getTable("Pass Defenders",r,columns,index,"defp",true);
  261. }
  262. function getSTDefenseTable(index, rows) {
  263. var title = " Defenders";
  264. var columns = ["Name","Tackles","Missed","YPT"];
  265. var r = rows;
  266. if (rows == null) r = [];
  267. else if (rows.length == 0) r = [];
  268. return getTable(title,r,columns,index,"defst",true);
  269. }
  270.  
  271. function getKickingTable(index, rows) {
  272. var title = "Kicking";
  273. var columns = ["Name","Kickoffs","Yards","Avg","Net","Lng","TB","In 20"];
  274.  
  275. var r = rows;
  276. if (rows == null) r = [];
  277. else if (rows.length == 0) r = [];
  278. return getTable(title,r,columns,index,"k",true);
  279. }
  280.  
  281. function getPuntingTable(index, rows) {
  282. var title = "Punting";
  283. var columns = ["Name","Punts","Yards","Avg","Net","Lng","TB","In 20"];
  284.  
  285. var r = rows;
  286. if (rows == null) r = [];
  287. else if (rows.length == 0) r = [];
  288. return getTable(title,r,columns,index,"pu",true);
  289. }
  290.  
  291. function getPuntReturnTable(index, rows) {
  292. var title = "Punt Returns";
  293. var columns = ["Name","Returns","Yards","Avg","Yrd%","Lng","TD","BrTk"];
  294.  
  295. var r = rows;
  296. if (rows == null) r = [];
  297. else if (rows.length == 0) r = [];
  298. return getTable(title,r,columns,index,"pr",true);
  299. }
  300.  
  301. function getKickReturnTable(index, rows) {
  302. var title = "Kick Returns";
  303. var columns = ["Name","Returns","Yards","Avg","Yrd%","Lng","TD","BrTk"];
  304.  
  305. var r = rows;
  306. if (rows == null) r = [];
  307. else if (rows.length == 0) r = [];
  308. return getTable(title,r,columns,index,"kr",true);
  309. }
  310.  
  311. function getPenaltyTable(index, rows) {
  312. var title = "Penalties";
  313. var columns = ["Name","Total", "False Start","Encroachment"];
  314.  
  315. var r = rows;
  316. if (rows == null) r = [];
  317. else if (rows.length == 0) r = [];
  318. return getTable(title,r,columns,index,"pn",true);
  319. }
  320.  
  321. function getDriveTable(idx,arr) {
  322. var columns = ["Start Time","Time Poss","Drive Began",
  323. "# of Plays","Net Yards","Result"];
  324. var rows = [];
  325. for (const d of arr) {
  326. rows.push(d.quarter);
  327. }
  328. return getTable("Drives",rows,columns,idx,"dr");
  329. }
  330.  
  331. function getTable(title, rows, columns, index, prefix, sortable) {
  332. var t = document.createElement("table");
  333. t.setAttribute("border","1");
  334. t.setAttribute("cellspacing","0");
  335. t.setAttribute("style","width: 485px;visibility: visible;");
  336. t.setAttribute('id','scout-'+prefix+""+index+'-table');
  337.  
  338. var tr = document.createElement("tr");
  339. tr.setAttribute('class','nonalternating_color pbp_pbr_title');
  340.  
  341. var td = document.createElement("td");
  342. td.setAttribute('id','team'+index+""+prefix);
  343. td.setAttribute('colspan',columns.length+1);
  344. td.setAttribute('align','center');
  345. td.appendChild(document.createTextNode(title));
  346. tr.appendChild(td);
  347. t.appendChild(tr);
  348.  
  349. var tr2 = document.createElement("tr");
  350. tr2.setAttribute('class','nonalternating_color2 pbp_pbr_title');
  351. var first = document.createElement("td");
  352. first.setAttribute("align","left");
  353. first.appendChild(document.createTextNode(columns[0]));
  354. tr2.appendChild(first);
  355. if (sortable == true) {
  356. tr2.addEventListener("click",sortEvent,true);
  357. }
  358. for (var x=1; x<columns.length; x++) {
  359. var colname = document.createElement("td");
  360. var colname = document.createElement("td");
  361. colname.setAttribute('align','center');
  362. var tn = document.createTextNode(columns[x]);
  363. colname.appendChild(tn);
  364. tr2.appendChild(colname);
  365. }
  366. t.appendChild(tr2);
  367.  
  368. for (var y=0; y<rows.length; y++) {
  369. var tr3 = document.createElement("tr");
  370. tr3.setAttribute('class','alternating_color'+(y%2+1)+' pbp_pbr_title_row');
  371. var rowname = document.createElement("td");
  372. rowname.appendChild(document.createTextNode(rows[y]));
  373. tr3.appendChild(rowname);
  374. for (var x=1; x<columns.length; x++) {
  375. var stat = document.createElement("td");
  376. stat.setAttribute('id',prefix+'-'+(x-1)+'-'+y+'-'+index);
  377. stat.setAttribute('align','center');
  378. stat.appendChild(document.createTextNode('('+(x-1)+','+y+')'));
  379. tr3.appendChild(stat);
  380. }
  381. t.appendChild(tr3);
  382. }
  383. return t;
  384. }
  385.  
  386. function sortEvent(evt) {
  387. sortTable(evt.target.parentNode.parentNode,evt.target.cellIndex);
  388. return true;
  389. }
  390.  
  391. function sortTable(table, column) {
  392. var rows = table.rows;
  393. var viz = table.getAttribute("style");
  394. table.setAttribute("style","visibility: hidden;");
  395. for (var i=2; i<rows.length-1; i++) {
  396. var idx = i;
  397. for (var j=i; j<rows.length-1; j++) {
  398. var lrow = rows.item(idx);
  399. var lcell = lrow.cells.item(column);
  400. var rrow = rows.item(j+1);
  401. var rcell = rrow.cells.item(column);
  402. var left = parseFloat(lcell.innerHTML);
  403. var right = parseFloat(rcell.innerHTML);
  404. if (isNaN(left) || isNaN(right)) {
  405. left = lcell.innerHTML.toLowerCase();
  406. right = rcell.innerHTML.toLowerCase();
  407. if (left > right) {
  408. idx = j+1;
  409. }
  410. }
  411. else {
  412. if (left < right) {
  413. idx = j+1;
  414. }
  415. }
  416. }
  417. if (idx != -1) {
  418. var r = table.rows.item(idx);
  419. table.deleteRow(idx);
  420. var newRow = table.insertRow(i);
  421. newRow.setAttribute("class","alternating_color"+(i%2+1)+" pbp_pbr_title_row");
  422. for (var x=0; x<r.cells.length; x++) {
  423. var cell = newRow.insertCell(x);
  424. cell.setAttribute("align",r.cells.item(x).getAttribute("align"));
  425. cell.setAttribute("id",r.cells.item(x).getAttribute("id"));
  426. cell.innerHTML = r.cells.item(x).innerHTML;
  427. }
  428. }
  429. }
  430. if (rows.length != 2) {
  431. var lastRow = table.rows.item(rows.length-1);
  432. lastRow.setAttribute("class","alternating_color"+((rows.length-1)%2+1)+" pbp_pbr_title_row");
  433. }
  434. table.setAttribute("style",viz);
  435. }
  436.  
  437. function changeVisibility(start,end) {
  438. var gs=document.getElementById("gamescout");
  439. gs.setAttribute("style","visibility: visible;");
  440. for (var i=-1; i<17; i++) {
  441. var t=document.getElementById("gsbar"+i);
  442. if (t != null) {
  443. t.setAttribute("style","visibility: visible;");
  444. t.setAttribute("class","");//"subhead_link_bar");
  445. }
  446. }
  447. var t=document.getElementById("gsbar"+start);
  448. t.setAttribute("class","medium_head");
  449.  
  450. if (start == "-1") {
  451. start = 0;
  452. end = 17;
  453. }
  454. var idx=0;
  455. var t=document.getElementById("row"+idx);
  456. while (t != null) {
  457. t.setAttribute("style","visibility: collapse;");
  458. idx++;
  459. t=document.getElementById("row"+idx);
  460. }
  461. for (var idx=start; idx<=end; idx++) {
  462. var t = document.getElementById("row"+idx);
  463. t.setAttribute("style","visibility: visible;");
  464. }
  465.  
  466. /*
  467. for (var idx=0; true; idx++) {
  468. var t = document.getElementById("row"+idx);
  469. if (t == null) break;
  470. else t.setAttribute("style","visibility: visible;");
  471. }
  472. */
  473. }
  474.  
  475. function fillTables(stats) {
  476.  
  477. for (var i=0; i<2; i++) {
  478.  
  479. //quarter table assignment
  480. document.getElementById('team'+i+'q').innerHTML = stats.team_name[i] +" Totals By Quarter";
  481.  
  482. var q=quarter;
  483. if (quarter != 1) {
  484. q++;
  485. }
  486. q=6; //fix me
  487. for (var x=0; x<q; x++) {
  488. var idx = i*6;
  489. var secs = "" + (stats.team_possession[x+idx] % 60);
  490. while (secs.length < 2) secs = "0" + secs;
  491. document.getElementById("q-"+x+"-0-"+i).innerHTML = Math.floor(stats.team_possession[x+idx] / 60) + ":" + secs;
  492. document.getElementById("q-"+x+"-4-"+i).innerHTML = stats.team_penalty[x+idx];
  493. }
  494. for (var x=0; x<q; x++) {
  495. var idx = i*7;
  496. var p = stats.team_quarter_totals[x][0+idx] + stats.team_quarter_totals[x][4+idx];
  497. document.getElementById("q-"+x+"-1-"+i).innerHTML = p;
  498. var y = stats.team_quarter_totals[x][1+idx] + stats.team_quarter_totals[x][5+idx];
  499. document.getElementById("q-"+x+"-2-"+i).innerHTML = y.toFixed(0);
  500. var num = (y/p).toFixed(2);
  501. if (isNaN(num) == true) {
  502. num = 0.00;
  503. }
  504. document.getElementById("q-"+x+"-3-"+i).innerHTML = num;
  505.  
  506. document.getElementById("q-"+x+"-5-"+i).innerHTML = "";
  507.  
  508. document.getElementById("q-"+x+"-6-"+i).innerHTML = stats.team_quarter_totals[x][0+idx];
  509. document.getElementById("q-"+x+"-7-"+i).innerHTML = stats.team_quarter_totals[x][1+idx].toFixed(0);
  510. var num = (stats.team_quarter_totals[x][1+idx] / stats.team_quarter_totals[x][0+idx]).toFixed(2);
  511. if (isNaN(num) == true) {
  512. num = 0.00;
  513. }
  514. document.getElementById("q-"+x+"-8-"+i).innerHTML = num;
  515. num = (100*stats.team_quarter_totals[x][2+idx] / stats.team_quarter_totals[x][0+idx]).toFixed(0);
  516. if (isNaN(num) == true) {
  517. num = 0;
  518. }
  519. document.getElementById("q-"+x+"-9-"+i).innerHTML = num + "%";
  520.  
  521. document.getElementById("q-"+x+"-10-"+i).innerHTML = "";
  522.  
  523. document.getElementById("q-"+x+"-11-"+i).innerHTML = stats.team_quarter_totals[x][3+idx];
  524. document.getElementById("q-"+x+"-12-"+i).innerHTML = stats.team_quarter_totals[x][4+idx];
  525. num = (100*stats.team_quarter_totals[x][3+idx] / stats.team_quarter_totals[x][4+idx]).toFixed(0);
  526. if (isNaN(num) == true) {
  527. num = 0;
  528. }
  529. document.getElementById("q-"+x+"-13-"+i).innerHTML = num + "%";
  530. document.getElementById("q-"+x+"-14-"+i).innerHTML = stats.team_quarter_totals[x][5+idx].toFixed(0);
  531. num = (100*stats.team_quarter_totals[x][6+idx] / stats.team_quarter_totals[x][4+idx]).toFixed(0);
  532. if (isNaN(num) == true) {
  533. num = 0;
  534. }
  535. document.getElementById("q-"+x+"-15-"+i).innerHTML = num + "%";
  536. }
  537. //end quarter table assignment
  538.  
  539. //rushing table assignment
  540. document.getElementById('team'+i+'r').innerHTML = stats.team_name[i] +" Rushing Direction";
  541. for (x=0; x<5; x++) {
  542. var idx = i*5;
  543. document.getElementById("r-"+x+"-0-"+i).innerHTML = stats.team_att[x+idx];
  544. document.getElementById("r-"+x+"-1-"+i).innerHTML = stats.team_yards[x+idx].toFixed(0);
  545. num = (stats.team_yards[x+idx] / stats.team_att[x+idx]).toFixed(2);
  546. if (isNaN(num) == true) {
  547. num = 0.00;
  548. }
  549. document.getElementById("r-"+x+"-2-"+i).innerHTML = num;
  550. num = (100*stats.team_success[x+idx] / stats.team_att[x+idx]).toFixed(0);
  551. if (isNaN(num) == true) {
  552. num = 0;
  553. }
  554. document.getElementById("r-"+x+"-3-"+i).innerHTML = num + "%";
  555. num = (stats.team_lyards[x+idx] / stats.team_att[x+idx]).toFixed(2);
  556. if (isNaN(num) == true) {
  557. num = 0;
  558. }
  559. document.getElementById("r-"+x+"-4-"+i).innerHTML = num;
  560. //document.getElementById("r-"+x+"-4-"+i).innerHTML = stats.team_firsts[x+idx];;
  561. }
  562. //end rushing table assignment
  563.  
  564. //rushing by down table assignment
  565. document.getElementById('team'+i+'rbd').innerHTML = stats.team_name[i] +" Rushing By Down";
  566. for (x=0; x<4; x++) {
  567. var idx = i*4;
  568. document.getElementById("rbd-"+x+"-0-"+i).innerHTML = stats.team_att_down[x+idx];
  569. document.getElementById("rbd-"+x+"-1-"+i).innerHTML = stats.team_yards_down[x+idx].toFixed(0);
  570. num = (stats.team_yards_down[x+idx] / stats.team_att_down[x+idx]).toFixed(2);
  571. if (isNaN(num) == true) {
  572. num = 0.00;
  573. }
  574. document.getElementById("rbd-"+x+"-2-"+i).innerHTML = num;
  575. num = (100*stats.team_success_down[x+idx] / stats.team_att_down[x+idx]).toFixed(0);
  576. if (isNaN(num) == true) {
  577. num = 0;
  578. }
  579. document.getElementById("rbd-"+x+"-3-"+i).innerHTML = num + "%";
  580. num = (stats.team_lyards_down[x+idx] / stats.team_att_down[x+idx]).toFixed(2);
  581. if (isNaN(num) == true) {
  582. num = 0.00;
  583. }
  584. document.getElementById("rbd-"+x+"-4-"+i).innerHTML = num;
  585. document.getElementById("rbd-"+x+"-5-"+i).innerHTML = stats.team_firsts_down[x+idx];
  586. }
  587. //end rushing by down table assignment
  588.  
  589. //passing table assignment
  590. document.getElementById('team'+i+'p').innerHTML = stats.team_name[i] +" Passing Direction";
  591. for (x=0; x<3; x++) {
  592. var idx = i*3;
  593. document.getElementById("p-"+x+"-0-"+i).innerHTML = stats.team_pass_comp[x+idx];
  594. document.getElementById("p-"+x+"-1-"+i).innerHTML = stats.team_pass_att[x+idx];
  595. num = (100*stats.team_pass_comp[x+idx] / stats.team_pass_att[x+idx]).toFixed(0);
  596. if (isNaN(num) == true) {
  597. num = 0;
  598. }
  599. document.getElementById("p-"+x+"-2-"+i).innerHTML = num + "%";
  600. document.getElementById("p-"+x+"-3-"+i).innerHTML = stats.team_pass_yards[x+idx].toFixed(0);
  601. }
  602. //end passing table assignment
  603.  
  604.  
  605. //passing by down table assignment
  606. document.getElementById('team'+i+'pbd').innerHTML = stats.team_name[i] +" Passing By Down";
  607. for (x=0; x<4; x++) {
  608. var idx = i*4;
  609. document.getElementById("pbd-"+x+"-0-"+i).innerHTML = stats.team_pass_comp_down[x+idx];
  610. document.getElementById("pbd-"+x+"-1-"+i).innerHTML = stats.team_pass_att_down[x+idx];
  611. num = (100*stats.team_pass_comp_down[x+idx] / stats.team_pass_att_down[x+idx]).toFixed(0);
  612. if (isNaN(num) == true) {
  613. num = 0;
  614. }
  615. document.getElementById("pbd-"+x+"-2-"+i).innerHTML = num + "%";
  616. document.getElementById("pbd-"+x+"-3-"+i).innerHTML = stats.team_pass_yards_down[x+idx].toFixed(0);
  617. document.getElementById("pbd-"+x+"-4-"+i).innerHTML = stats.team_pass_firsts_down[x+idx];
  618. num = (100*stats.team_pass_pressure_down[x+idx] / stats.team_pass_att_down[x+idx]).toFixed(0);
  619. if (isNaN(num) == true) {
  620. num = 0;
  621. }
  622. document.getElementById("pbd-"+x+"-5-"+i).innerHTML = num + "%";
  623. }
  624. //end passing by down table assignment
  625.  
  626. //distance table assignment
  627. document.getElementById("team"+i+"pd").innerHTML = stats.team_name[i] +" Passing Distance";
  628. for (x=0; x<3; x++) {
  629. var idx = x*3 + i*9;
  630. document.getElementById("pd-"+x+"-0-"+i).innerHTML = stats.distanceStats[0][idx]+" for "+stats.distanceStats[0][idx+2].toFixed(0);
  631. document.getElementById("pd-"+x+"-1-"+i).innerHTML = stats.distanceStats[1][idx]+" for "+stats.distanceStats[1][idx+2].toFixed(0);
  632. document.getElementById("pd-"+x+"-2-"+i).innerHTML = stats.distanceStats[2][idx]+" for "+stats.distanceStats[2][idx+2].toFixed(0);
  633. document.getElementById("pd-"+x+"-3-"+i).innerHTML = stats.distanceStats[3][idx]+" for "+stats.distanceStats[3][idx+2].toFixed(0);
  634. }
  635.  
  636. for (var x=0; x<4; x++) {
  637. var idx = i*9;
  638. var n = (stats.distanceStats[x][idx] + stats.distanceStats[x][idx+3] +stats.distanceStats[x][idx+6])
  639. + " for " +
  640. (stats.distanceStats[x][idx+2]+stats.distanceStats[x][idx+5]+stats.distanceStats[x][idx+8]).toFixed(0);
  641.  
  642. document.getElementById("pd-3-"+x+"-"+i).innerHTML = n;
  643. }
  644.  
  645. for (var x=0; x<3; x++) {
  646. var idx = i*9;
  647. var n = (stats.distanceStats[0][x*3+idx] + stats.distanceStats[1][x*3+idx] +
  648. stats.distanceStats[2][x*3+idx] + stats.distanceStats[3][x*3+idx]) +
  649. " for " +
  650. (stats.distanceStats[0][x*3+idx+2] + stats.distanceStats[1][x*3+idx+2] +
  651. stats.distanceStats[2][x*3+idx+2] + stats.distanceStats[3][x*3+idx+2]).toFixed(0);
  652. document.getElementById("pd-"+x+"-4-"+i).innerHTML = n;
  653. }
  654. document.getElementById("pd-3-4-"+i).innerHTML = "";
  655. //distance table assignment
  656.  
  657. document.getElementById("team"+i+"tq").innerHTML = stats.team_name[i] +" Passers";
  658. if (stats.playerPassingName[i] != null) {
  659. var t = document.getElementById("scout-tq"+i+"-table");
  660. while (t.rows.length > 2) {
  661. t.deleteRow(2);
  662. }
  663. for (x=0; x<stats.playerPassingName[i].length; x++) {
  664. var data = [];
  665. data.push(stats.playerPassingName[i][x]);
  666. data.push(stats.playerPassingStats[i][x][1]);
  667. data.push(stats.playerPassingStats[i][x][0]);
  668. data.push(stats.playerPassingStats[i][x][2].toFixed(0));
  669. data.push(stats.playerPassingStats[i][x][3]);
  670. data.push(stats.playerPassingStats[i][x][4]);
  671. data.push(stats.playerPassingStats[i][x][5]);
  672. data.push(stats.playerPassingStats[i][x][6]);
  673. data.push(stats.playerPassingStats[i][x][7]);
  674. data.push(stats.playerPassingStats[i][x][8]);
  675. addRowToTable(t,data);
  676. }
  677. sortTable(t,3);
  678. }
  679.  
  680. document.getElementById("team"+i+"tr").innerHTML = stats.team_name[i] +" Runners";
  681. if (stats.playerRushingName[i] != null) {
  682. var t = document.getElementById("scout-tr"+i+"-table");
  683. while (t.rows.length > 2) {
  684. t.deleteRow(2);
  685. }
  686. for (x=0; x<stats.playerRushingName[i].length; x++) {
  687. var data = [];
  688. data.push(stats.playerRushingName[i][x]);
  689. data.push(stats.playerRushingStats[i][x][0]);
  690. data.push(stats.playerRushingStats[i][x][1].toFixed(0));
  691.  
  692. num = (stats.playerRushingStats[i][x][1] / stats.playerRushingStats[i][x][0]).toFixed(2);
  693. if (isNaN(num) == true) {
  694. num = 0.00;
  695. }
  696. data.push(num);
  697. data.push(stats.playerRushingStats[i][x][2].toFixed(0));
  698.  
  699. num = (100*stats.playerRushingStats[i][x][3] / stats.playerRushingStats[i][x][0]).toFixed(0);
  700. if (isNaN(num) == true) {
  701. num = 0;
  702. }
  703. data.push(num + "%");
  704.  
  705. data.push(stats.playerRushingStats[i][x][4]);
  706. data.push(stats.playerRushingStats[i][x][5]);
  707.  
  708. addRowToTable(t,data);
  709. }
  710. sortTable(t,1);
  711. }
  712.  
  713. document.getElementById("team"+i+"tp").innerHTML = stats.team_name[i] +" Receivers";
  714. if (stats.playerReceivingName[i] != null) {
  715. var t = document.getElementById("scout-tp"+i+"-table");
  716. while (t.rows.length > 2) {
  717. t.deleteRow(2);
  718. }
  719. for (x=0; x<stats.playerReceivingName[i].length; x++) {
  720. var data = [];
  721. data.push(stats.playerReceivingName[i][x]);
  722. data.push(stats.playerReceivingStats[i][x][1]);
  723. data.push(stats.playerReceivingStats[i][x][0]);
  724. data.push(stats.playerReceivingStats[i][x][2].toFixed(0));
  725. data.push(stats.playerReceivingStats[i][x][6]);
  726. data.push(stats.playerReceivingStats[i][x][9]);
  727.  
  728. num = (100*stats.playerReceivingStats[i][x][0] / stats.playerReceivingStats[i][x][1]).toFixed(0);
  729. if (isNaN(num) == true) {
  730. num = 0;
  731. }
  732. data.push(num + "%");
  733.  
  734. data.push(stats.playerReceivingStats[i][x][3].toFixed(0));
  735. data.push(stats.playerReceivingStats[i][x][4].toFixed(0));
  736. data.push(stats.playerReceivingStats[i][x][7]);
  737. data.push(stats.playerReceivingStats[i][x][8]);
  738. addRowToTable(t,data);
  739. }
  740. sortTable(t,1);
  741. }
  742.  
  743. document.getElementById("team"+i+"k").innerHTML = stats.team_name[i] +" Kickers";
  744. if (stats.playerKickingName[i] != null) {
  745. var t = document.getElementById("scout-k"+i+"-table");
  746. while (t.rows.length > 2) {
  747. t.deleteRow(2);
  748. }
  749. for (x=0; x<stats.playerKickingName[i].length; x++) {
  750. var data = [];
  751. data.push(stats.playerKickingName[i][x]);
  752. data.push(stats.playerKickingStats[i][x][0]);
  753. data.push(stats.playerKickingStats[i][x][1].toFixed(0));
  754. num = (stats.playerKickingStats[i][x][1] / stats.playerKickingStats[i][x][0]).toFixed(1);
  755. if (isNaN(num) == true) {
  756. num = 0;
  757. }
  758. data.push(num);
  759. num = (stats.playerKickingStats[i][x][5] / stats.playerKickingStats[i][x][0]).toFixed(1);
  760. if (isNaN(num) == true) {
  761. num = 0;
  762. }
  763. data.push(num);
  764. data.push(stats.playerKickingStats[i][x][2].toFixed(0));
  765. data.push(stats.playerKickingStats[i][x][3]);
  766. data.push(stats.playerKickingStats[i][x][4]);
  767.  
  768. addRowToTable(t,data);
  769. }
  770. sortTable(t,1);
  771. }
  772.  
  773. document.getElementById("team"+i+"pu").innerHTML = stats.team_name[i] +" Punters";
  774. if (stats.playerPuntingName[i] != null) {
  775. var t = document.getElementById("scout-pu"+i+"-table");
  776. while (t.rows.length > 2) {
  777. t.deleteRow(2);
  778. }
  779. for (x=0; x<stats.playerPuntingName[i].length; x++) {
  780. var data = [];
  781. data.push(stats.playerPuntingName[i][x]);
  782. data.push(stats.playerPuntingStats[i][x][0]);
  783. data.push(stats.playerPuntingStats[i][x][1].toFixed(0));
  784. num = (stats.playerPuntingStats[i][x][1] / stats.playerPuntingStats[i][x][0]).toFixed(1);
  785. if (isNaN(num) == true) {
  786. num = 0;
  787. }
  788. data.push(num);
  789. num = (stats.playerPuntingStats[i][x][5] / stats.playerPuntingStats[i][x][0]).toFixed(1);
  790. if (isNaN(num) == true) {
  791. num = 0;
  792. }
  793. data.push(num);
  794. data.push(stats.playerPuntingStats[i][x][2].toFixed(0));
  795. data.push(stats.playerPuntingStats[i][x][3]);
  796. data.push(stats.playerPuntingStats[i][x][4]);
  797.  
  798. addRowToTable(t,data);
  799. }
  800. sortTable(t,1);
  801. }
  802.  
  803. document.getElementById("team"+i+"kr").innerHTML = stats.team_name[i] +" Kick Returns";
  804. if (stats.playerKickReturnName[i] != null) {
  805. var t = document.getElementById("scout-kr"+i+"-table");
  806. while (t.rows.length > 2) {
  807. t.deleteRow(2);
  808. }
  809. for (x=0; x<stats.playerKickReturnName[i].length; x++) {
  810. var data = [];
  811. data.push(stats.playerKickReturnName[i][x]);
  812. data.push(stats.playerKickReturnStats[i][x][0]);
  813. data.push(stats.playerKickReturnStats[i][x][1].toFixed(0));
  814. num = (stats.playerKickReturnStats[i][x][1] / stats.playerKickReturnStats[i][x][0]).toFixed(1);
  815. if (isNaN(num) == true) {
  816. num = 0;
  817. }
  818. data.push(num);
  819. num = (100*stats.playerKickReturnStats[i][x][5] / stats.playerKickReturnStats[i][x][0]).toFixed(1);
  820. if (isNaN(num) == true) {
  821. num = 0;
  822. }
  823. data.push(num);
  824. data.push(stats.playerKickReturnStats[i][x][2].toFixed(0));
  825. data.push(stats.playerKickReturnStats[i][x][3]);
  826. data.push(stats.playerKickReturnStats[i][x][4]);
  827.  
  828. addRowToTable(t,data);
  829. }
  830. sortTable(t,1);
  831. }
  832.  
  833. document.getElementById("team"+i+"pr").innerHTML = stats.team_name[i] +" Punt Returns";
  834. if (stats.playerPuntReturnName[i] != null) {
  835. var t = document.getElementById("scout-pr"+i+"-table");
  836. while (t.rows.length > 2) {
  837. t.deleteRow(2);
  838. }
  839. for (x=0; x<stats.playerPuntReturnName[i].length; x++) {
  840. var data = [];
  841. data.push(stats.playerPuntReturnName[i][x]);
  842. data.push(stats.playerPuntReturnStats[i][x][0]);
  843. data.push(stats.playerPuntReturnStats[i][x][1].toFixed(0));
  844. num = (stats.playerPuntReturnStats[i][x][1] / stats.playerPuntReturnStats[i][x][0]).toFixed(1);
  845. if (isNaN(num) == true) {
  846. num = 0;
  847. }
  848. data.push(num);
  849. num = (100*stats.playerPuntReturnStats[i][x][5] / stats.playerPuntReturnStats[i][x][0]).toFixed(1);
  850. if (isNaN(num) == true) {
  851. num = 0;
  852. }
  853. data.push(num);
  854. data.push(stats.playerPuntReturnStats[i][x][2].toFixed(0));
  855. data.push(stats.playerPuntReturnStats[i][x][3]);
  856. data.push(stats.playerPuntReturnStats[i][x][4]);
  857.  
  858. addRowToTable(t,data);
  859. }
  860. sortTable(t,1);
  861. }
  862.  
  863. document.getElementById("team"+i+"pn").innerHTML = stats.team_name[i] +" Penalties";
  864. if (stats.playerPuntReturnName[i] != null) {
  865. var t = document.getElementById("scout-pn"+i+"-table");
  866. while (t.rows.length > 2) {
  867. t.deleteRow(2);
  868. }
  869. for (x=0; x<stats.playerPenaltyName[i].length; x++) {
  870. var data = [];
  871. data.push(stats.playerPenaltyName[i][x]);
  872.  
  873. num = arraySum(stats.playerPenaltyStats[i][x],0);
  874. if (isNaN(num) == true) {
  875. num = 0;
  876. }
  877. data.push(num);
  878.  
  879. data.push(stats.playerPenaltyStats[i][x][0]);
  880. //data.push(stats.playerPenaltyStats[i][x][1]);
  881. data.push(stats.playerPenaltyStats[i][x][2]);
  882. addRowToTable(t,data);
  883. }
  884. sortTable(t,1);
  885. }
  886. document.getElementById("team"+i+"defr").innerHTML = stats.team_name[i] +" Run Defenders";
  887. if (stats.playerDefensiveRushName[i] != null) {
  888. var t = document.getElementById("scout-defr"+i+"-table");
  889. while (t.rows.length > 2) {
  890. t.deleteRow(2);
  891. }
  892. for (x=0; x<stats.playerDefensiveRushName[i].length; x++) {
  893. var data = [];
  894. data.push(stats.playerDefensiveRushName[i][x]);
  895. data.push(stats.playerDefensiveRushStats[i][x][0]);
  896. data.push(stats.playerDefensiveRushStats[i][x][1]);
  897.  
  898. var num = (stats.playerDefensiveRushStats[i][x][2] /
  899. stats.playerDefensiveRushStats[i][x][0]).toFixed(2);
  900. if (isNaN(num) == true) num = 0.00;
  901. data.push(num);
  902.  
  903. data.push(stats.playerDefensiveRushStats[i][x][3]);
  904. data.push(stats.playerDefensiveRushStats[i][x][4]);
  905. //data.push(stats.playerDefensiveRushStats[i][x][5]);//FF
  906. if (arraySum(data,1) == 0) continue;
  907. addRowToTable(t,data);
  908. }
  909. sortTable(t,1);
  910. }
  911. document.getElementById("team"+i+"defp").innerHTML = stats.team_name[i] +" Pass Defenders";
  912. if (stats.playerDefensivePassName[i] != null) {
  913. var t = document.getElementById("scout-defp"+i+"-table");
  914. while (t.rows.length > 2) {
  915. t.deleteRow(2);
  916. }
  917. for (x=0; x<stats.playerDefensivePassName[i].length; x++) {
  918. var data = [];
  919. data.push(stats.playerDefensivePassName[i][x]);
  920. data.push(stats.playerDefensivePassStats[i][x][0]);
  921. data.push(stats.playerDefensivePassStats[i][x][1]);
  922.  
  923. var num = (stats.playerDefensivePassStats[i][x][2] /
  924. stats.playerDefensivePassStats[i][x][0]).toFixed(2);
  925. if (isNaN(num) == true) num = 0.00;
  926. data.push(num);
  927. data.push(stats.playerDefensivePassStats[i][x][3]);
  928. data.push(stats.playerDefensivePassStats[i][x][4]);
  929. //data.push(stats.playerDefensivePassStats[i][x][5]); //FF
  930. data.push(stats.playerDefensivePassStats[i][x][6]); //INT
  931. data.push(stats.playerDefensivePassStats[i][x][7]);
  932. data.push(stats.playerDefensivePassStats[i][x][8]);
  933. if (arraySum(data,1) == 0) continue;
  934. addRowToTable(t,data);
  935. }
  936. sortTable(t,1);
  937. }
  938. document.getElementById("team"+i+"defst").innerHTML = stats.team_name[i] +" Defenders";
  939. if (stats.playerDefensiveSTName[i] != null) {
  940. var t = document.getElementById("scout-defst"+i+"-table");
  941. while (t.rows.length > 2) {
  942. t.deleteRow(2);
  943. }
  944. for (x=0; x<stats.playerDefensiveSTName[i].length; x++) {
  945. var data = [];
  946. data.push(stats.playerDefensiveSTName[i][x]);
  947. data.push(stats.playerDefensiveSTStats[i][x][0]);
  948. data.push(stats.playerDefensiveSTStats[i][x][1]);
  949.  
  950. var num = (stats.playerDefensiveSTStats[i][x][2] /
  951. stats.playerDefensiveSTStats[i][x][0]).toFixed(2);
  952. if (isNaN(num) == true) num = 0.00;
  953. data.push(num);
  954.  
  955. //data.push(stats.playerDefensiveSTStats[i][x][3]);
  956. if (arraySum(data,1) == 0) continue;
  957. addRowToTable(t,data);
  958. }
  959. sortTable(t,1);
  960. }
  961. if ((window.location+"").match("&mode=pbp") != null) {
  962. //drive table start
  963. document.getElementById('team'+i+"dr").innerHTML = stats.team_name[i] +" Drive Chart (not 100% correct)";
  964. if (stats.driveList[i] != null) {
  965. var t = document.getElementById("scout-dr"+i+"-table");
  966. while (t.rows.length > 2) {
  967. t.deleteRow(2);
  968. }
  969. for (x=0; x<stats.driveList[i].length; x++) {
  970. var drive = stats.driveList[i][x];
  971. var data = [];
  972. data.push(drive.startTime);
  973. var start = convertTime(drive.startTime);
  974. var end = convertTime(drive.endTime);
  975. if (start < end) start += 900;
  976. var time = start - end;
  977. var timestr = time%60 + "";
  978. while (timestr.length < 2) timestr = "0"+timestr;
  979. timestr = parseInt(time/60)+":"+timestr;
  980. data.push(timestr);
  981. data.push(drive.driveBegan);
  982. data.push(drive.numOfPlays);
  983. data.push(yardDiff(drive.driveBegan,drive.driveEnded));
  984. data.push(drive.result);
  985. addRowToTable(t,data);
  986. }
  987. }
  988. //drive table end
  989. }
  990. else {
  991. var t = document.getElementById("scout-dr"+i+"-table");
  992. t.setAttribute("style","visibility: hidden; display: none;");
  993. }
  994. }
  995. }