// ==UserScript==
// @name           Fantasy Baseball Price Guide for Yahoo
// @namespace      http://www.lastplayerpicked.com
// @copyright      2009, 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=260&b=1&ds=09S&dis=250&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=1&mg=5&SP=2&RP=2&P=3&ms=5&mr=5";

priceGuideURL = priceGuideURL + "&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].statsID = 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 yahooMatch = /.*sports\.yahoo\.com\/mlb\/players\/(\d\d\d\d)$/;

   var ahrefs = document.getElementsByTagName("a");

   for (var i = 0; i < ahrefs.length; i++)
   {
      var result = ahrefs[i].href.match(yahooMatch);

      if (result != null)
      {
         var statsID = result[1];
         for (var j = 0; j < players.length; j++)
         {
            if (statsID == players[j].statsID)
            {
               ahrefs[i].innerHTML = ahrefs[i].innerHTML + " " + players[j].dollarValue;
               break;
            }
         }
      }
   }
}

})();