Adds down and scrimmage lines to GLB replays viewed with the replay rewrite script.
// ==UserScript==
// @name Replay Rewrite - First Down Lines On Replay
// @description Adds down and scrimmage lines to GLB replays viewed with the replay rewrite script.
// @include http://*goallineblitz.com/game/replay.pl?game_id=*&pbp_id=*
// @include http://glb.warriorgeneral.com/game/replay.pl?game_id=*&pbp_id=*
// @copyright 2009, pabst
// @namespace pbr/fdlor
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/
// @version 13.12.291
// @require https://greasyfork.org/scripts/1371-libpbr2/code/libpbr2.js?version=3533
// ==/UserScript==
/*
*
* pabst did this 09/08/01+
*
*
*/
var scriptName = "First Down Lines";
var scriptVersion = "13.12.29";
var scriptWebpage = "http://userscripts.org/scripts/show/54522";
window.setTimeout(
function() {
try {
init();
}
catch (e) {
console.log(e);
}
}
, 100);
function activate(e) {
console.log("activate first down lines");
lock();
removeDownLines();
createDownLines();
unlock();
}
function removeDownLines() {
var ds = document.getElementById("ds");
if (ds != null) ds.parentNode.removeChild(ds);
var los = document.getElementById("los");
if (los != null) los.parentNode.removeChild(los);
var fdm = document.getElementById("fdm");
if (fdm != null) fdm.parentNode.removeChild(fdm);
}
function createDownLines() {
try {
//console.log("createDownLines");
var play_data = unsafeWindow.play_data[0];
var fdcolor = "yellow";
var play_container = document.getElementById("replay_area");
var header = document.getElementById("replay_header");
var dir = header.getElementsByTagName("h1")[0];
var dirText = dir.innerHTML;
var ytg = "";
if(dirText.indexOf(" inches ")!=-1) {
ytg = '.3';
}
else {
if(dirText.indexOf(" G on ")!=-1) {
// later
}
else {
var p2 = dirText.indexOf(" & ")+7;
var p1 = dirText.indexOf(" on ");
ytg = dirText.substring(p2,p1);
if (dirText.substring(p2-10,p2-9) == "4") {
fdcolor = "red";
}
}
}
if (play_data != null) {
//line of scrimmage
var greater=0;
for (var i=1; i<play_data.length; i++) {
if (play_data[i].y > play_data[0].y) greater++;
else greater--;
}
var diff = (greater / Math.abs(greater));
if (diff < 0) diff = -4;
else diff = 1;
//console.log("diff="+diff);
var pid = 999;
for (var i=0; i<document.images.length; i++) {
if (document.images[i].src.indexOf("/C.gif") != -1) {
pid = parseInt(document.images[i].parentNode.id.split("_")[2]);
break;
}
}
if (pid == 999) return;
for (var i=0; i<play_data.length; i++) {
if (play_data[i].id == pid) {
pid = i;
break;
}
}
if (play_data[pid] != null) {
var los = parseFloat(play_data[pid].y);
los = los * 3 + 40;
los = los + 1;
var div = document.createElement('div');
div.id = 'los';
div.style.top = (los + diff) + 'px';
div.style.position = "absolute";
div.style.width = '520px';
div.style.height = '2px';
div.style.backgroundColor = 'blue';
div.style.zIndex = playerLayerZ-32;
play_container.appendChild(div);
//end los
//first down marker
diff = Math.abs(diff)/diff * ytg * 9;
los = parseFloat(play_data[pid].y);
los = los * 3 + 40;
los = los + (Math.abs(diff)/diff)*2;
div = document.createElement('div');
div.id = 'fdm';
div.style.top = (los + diff) + 'px';
div.style.position = "absolute";
div.style.width = '520px';
div.style.height = '2px';
div.style.backgroundColor = fdcolor;
div.style.zIndex = playerLayerZ-32;
play_container.appendChild(div);
//end fdm
}
else {
console.log(play_data.length+" -- "+pid+" : play_data[0][pid] == null");
}
}
}
catch (e) {
console.log(e);
}
}