Highlight My Players in Play by Play

By peteb Last update Jan 5, 2009 — Installed 10,455 times. Daily Installs: 10, 13, 11, 8, 6, 7, 5, 2, 12, 13, 6, 8, 12, 5, 6, 9, 3, 14, 2, 3, 9, 2, 9, 11, 4, 4, 5, 6, 10, 10, 5, 7

There are 2 previous versions of this script.

// ==UserScript==
// @name           Highlight My Players in Play by Play
// @namespace      KHMI - Greasemonkey
// @description    Highlight all of my players in the PBP list to make them easier to find.
// @include        http://goallineblitz.com/game/game.pl?game_id=*&mode=pbp
// @include        http://goallineblitz.com/game/home.pl
// ==/UserScript==

var timeout = 0;
var highlightStyle = "font-weight:700;background-color:yellow;";

window.setTimeout( function() {
   var url = window.location.href;
   var players = [];

   if(url == "http://goallineblitz.com/game/home.pl"){
      // collect a list of my players from the home page and save them
      var playerHead = getElements("*", "class", "large_title_bar playerhead");
      for(var i=0;i<playerHead.length;i++){
         var value = playerHead[i].childNodes[2].textContent;
         var playerUrl = playerHead[i].childNodes[2].attributes[1].textContent.split("player_id=");
         var key = playerUrl[1];         
         players.push(key);
         players.push(value);
      }
      GM_setValue("myPlayers", players.join());
   }else{
      // on all the other @include pages show the player navigation
      var savedPlayers = GM_getValue("myPlayers", null);
      var myPlayers= new Array();
      if(savedPlayers != null){      
         var players = savedPlayers.split(",");
         for(var i=0;i<players.length;i=i+2){
            myPlayers[players[i]] = players[i+1];
         }         
         
         highlightPlayers(myPlayers);
      }
   }
},timeout);

function highlightPlayers(myPlayers){
   var pbpinfo
   var allPBP = getElements("*", "class", "pbp_play");
   for (var i = 0; i < allPBP.length; i++) {
      for(var key in myPlayers){
         if (allPBP[i].innerHTML.indexOf(myPlayers[key]) != -1) {
            allPBP[i].innerHTML = allPBP[i].innerHTML.replace(myPlayers[key], "<span style='" + highlightStyle + "'>" + myPlayers[key] + "</span>");
         }
      }
   }
}

function getElements(element, classname, value){      
   var elements = [];   
   var xpathExp = "//" + element;   
   
   if(classname != undefined)
      if(value != undefined)
         xpathExp = xpathExp + "[@" + classname + "='" + value + "']";
      else
         xpathExp = xpathExp + "[@" + classname + "]";  
         
   var allElements = document.evaluate(xpathExp, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
   for (var i = 0; i < allElements.snapshotLength; i++)
      elements.push(allElements.snapshotItem(i))
      
   return elements;
}