GLB Player Navigation - Season 5

By raiderdav Last update Sep 23, 2008 — Installed 175 times.

There are 1 previous version of this script.

// ==UserScript==
// @name           GLB Player Navigation - Season 5
// @namespace      KHMI - Greasemonkey
// @modder	   Modified by raiderdav
// @description    Adds a dropdown menu to a player page to aid in navigation, the menu is based on the players found on the user home page. Modified by raiderdav to avoid "Spend" on all dropdowns for Season 5.
// @include        http://goallineblitz.com/game/home.pl
// @include        http://goallineblitz.com/game/player.pl?player_id=*
// @include        http://goallineblitz.com/game/player_awards.pl?player_id=*
// @include        http://goallineblitz.com/game/equipment.pl?player_id=*
// @include        http://goallineblitz.com/game/player_tactics.pl?player_id=*
// @include        http://goallineblitz.com/game/skill_points.pl?player_id=*
// @include        http://goallineblitz.com/game/offers.pl?player_id=*
// ==/UserScript==

var timeout = 0;

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

   if(url == "http://goallineblitz.com/game/home.pl"){
      // collect a list of my players from the home page and save them
      var re = /player_id=(\d{1,7})">(.+)<\/a>/g;
      var matches = document.body.innerHTML.match(re);
      var players = [];
      
      for(var i=0;i<matches.length;i++) {
         var key = matches[i].replace(re, "$1");
         var value = matches[i].replace(re, "$2");                  
	 if(value != "spend") {
           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];
         }
         
         addNavigation(myPlayers);
      }
   }
},timeout);

function addNavigation(playerInfo){
   var url = window.location.href;
   var currentId = url.substring(window.location.href.indexOf('_id=')+4, url.length);
   var currentPage = url.substring(0, url.indexOf('_id=')+4);
   
   if(playerInfo[currentId] && playerInfo.length > 1){   
      var html = '<ul class="nav"><li style="font-weight:700;"><span style="margin-right:5px;">' + playerInfo[currentId] + '</span><ul>';
      for (var key in playerInfo){ 
         if(key != currentId){
            html = html + '<li><a href="' + currentPage + key + '">' + playerInfo[key] + '</a></li>';
         }
      }      
      html = html + '</ul></li></ul>';
      
      var players = getElementsByClassName("big_head subhead_head",document);
      players[0].innerHTML = html;
      
      // inject the CSS
      var css = 'ul.nav, .nav ul{ background-color:#FBFBF8;margin: 0; padding: 0; cursor: default; list-style-type: none; display: inline;} ' +
         'ul.nav{ display: table;} ' +
         'ul.block{ width: 100%; table-layout: fixed;} ' +
         'ul.nav>li{display: table-cell;position: relative;padding: 2px 6px;background-position:right;background-repeat: no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAaCAIAAAF7nxqgAAAAB3RJTUUH2AYbDS8ZRE4SIgAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAABsSURBVHjaY/z9+wcDAwMTAxigUgxAOSYoF4QZIWqBgAWIlzoqooghWDDt6Cx0HdjUIWSxSBInBLGGaLOoYCOJQojQg4Do/feZIBScT3t3YTGeKH1DQxELMgc5rBmQwhmUvtHQAhtJNJEhG04ALZNRuimStFYAAAAASUVORK5CYII=)} ' +
         'ul.nav li:hover{background-position:right;background-repeat: no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAaCAIAAAF7nxqgAAAAB3RJTUUH2AYbDS8nhS8PiQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAABpSURBVHjaY1xgI8nAwMDEAAaoFANQjgnKBWFGiFogYAHi6P33UcQQLJh2dBa6DmzqELJYJIkTglhDtFlUsJFEIUToQcBSR0UmCAXn095dWIwnSt/QUMSCzEEOawakcMYSBEClcOkhHk4AyZAdx5IhKz0AAAAASUVORK5CYII=)} ' +
         'ul.nav li>ul{display: none;position: absolute;max-width: 40ex;margin-left: -6px;margin-top: 2px;} ' +
         'ul.nav li:hover>ul{display : block;z-index:1000;} ' +
         '.nav ul li a{display: block;padding: 2px 10px;} ' +
         '/*Menu styles*/ ' +
         'ul.nav,.nav ul,.nav ul li a{background-color:#FBFBF8;color: #a03c19;} ' +
         'ul.nav li:hover,.nav ul li a:hover{background-color: #a03c19;color: #fff;} ' +
         'ul.nav li:active,.nav ul li a:active{background-color: #036;color: #fff;} ' +
         'ul.nav,.nav ul{border: 1px solid #fbdacf;} ' +
         '.nav a{text-decoration: none;} ';
      addGlobalStyle(css);      
   }
}

function getElementsByClassName(classname, par){
	var a=[];   
	var re = new RegExp('\\b' + classname + '\\b');    	
	var els = par.getElementsByTagName("*"); 
	for(var i=0,j=els.length; i<j; i++){       
		if(re.test(els[i].className)){	
			a.push(els[i]);
		}
	}
	return a;
};

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}