// ==UserScript==
// @name           Fantasy Baseball Price Guide for Yahoo
// @namespace      http://www.lastplayerpicked.com/priceguide/index.php?t=12&l=MLB&m=255&b=1&ds=10P&dis=250&spl=Y&hs=60&ps=40&AVG=Y&R=Y&RBI=Y&HR=Y&SB=Y&W=Y&S=Y&ERA=Y&WHIP=Y&K=Y&C=1&1B=1&2B=1&3B=1&SS=1&OF=3&LF=0&CF=0&RF=0&CI=0&MI=0&IF=0&Util=2&mg=5&SP=5&RP=3&P=0&ms=5&mr=5
// @copyright      2010, Mays Copeland (http://www.lastplayerpicked.com)
// @include        http://baseball.fantasysports.yahoo.com/*
// ==/UserScript==
(function() {

var priceGuideURL = "http://www.lastplayerpicked.com/priceguide/index.php?t=12&l=MLB&m=255&b=1&ds=10P&dis=250&spl=Y&hs=60&ps=40&AVG=Y&R=Y&RBI=Y&HR=Y&SB=Y&W=Y&S=Y&ERA=Y&WHIP=Y&K=Y&C=1&1B=1&2B=1&3B=1&SS=1&OF=3&LF=0&CF=0&RF=0&CI=0&MI=0&IF=0&Util=2&mg=5&SP=5&RP=3&P=0&ms=5&mr=5&o=S"
var players = new Array();

getPlayers();

function getPlayers()
{
GM_xmlhttpRequest(
{
    method: 'GET',
    url: priceGuideURL,
    onload: function( responseDetails )
    {
      buildPlayersArray(responseDetails.responseText);
      showValues();
    },
});
}

function buildPlayersArray(playersCSV)
{
   var playerValues = playersCSV.split("\n");

   for (var i = 0; i < playerValues.length - 1; i++)
   {
      players[i] = new Object();

      var player = playerValues[i].split(",");

      players[i].playerID = player[0];
      if (player[1] > 0)
      {
         players[i].dollarValue = "$" + Number(player[1]).toFixed(0);
      }
      else
      {
         players[i].dollarValue =  "-$" + Math.abs(Number(player[1]).toFixed(0));
      }
   }
}

function showValues()
{
   var playerMatch = /.*sports\.yahoo\.com\/mlb\/players\/(\d\d\d\d)$/;

   var tags = document.getElementsByTagName("a");

   for (var i = 0; i < tags.length; i++)
   {
      var result = tags[i].href.match(playerMatch);

      if (result != null)
      {
         var playerID = result[1];
         for (var j = 0; j < players.length; j++)
         {
            if (playerID == players[j].playerID)
            {
               if (tags[i].innerHTML.indexOf(players[j].dollarValue) < 0)
               {
                  tags[i].innerHTML = tags[i].innerHTML + " " + players[j].dollarValue;
               }
               break;
            }
         }
      }
   }
}

})();
