function GetCookie (CookieName)
{
  var CookieBegin = document.cookie.indexOf(CookieName + '=');
  if (CookieBegin == -1) { return null; }
  
  var CookieEnd = document.cookie.indexOf(';', CookieBegin);
  if (CookieEnd == -1) { CookieEnd = document.cookie.length; }
  
  return unescape(document.cookie.substring(CookieBegin + CookieName.length + 1, CookieEnd));
}

function get_url_param(GetParameter)
{
  GetParameter = GetParameter.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+GetParameter+"=([^&#]*)", "i");
  var results = regex.exec(window.location.href);
  if (results == null)
  {
    return null;
  }
  else
  {
    return results[1];
  }
}

var CampaignString = GetCookie('s_cpm');  // Get the campaign history
if (CampaignString != null)               // Get the most recent campaign
{
  eval('var CampaignArray = ' + CampaignString);
  var LastCampaign = CampaignArray[CampaignArray.length - 1][0]; 
}
else                                      // Just in case the cookie hasn't been created yet (Omniture code is usually the last thing on the page)
{
  LastCampaign = get_url_param('cmp');
}
if (LastCampaign)
{
  var AppLinks = [];                      // Find the relevant links
  for (var LinkIndex in document.links)
  {
    if ((document.links[LinkIndex].className != undefined) && (document.links[LinkIndex].className.indexOf('applink') != -1))
    {
      AppLinks[AppLinks.length] = document.links[LinkIndex];
    }
  }
  if (AppLinks.length > 0)
  {
    var CampaignToIBMaps = [{'IBCode': 'FX_EDU_LLC',
                            'Campaigns': ['SFS-70160000000Cv5JAAS', 'SFS-70160000000Cv6cAAC', 'SFS-70160000000Cv4qAAC',   // forextradingblog.com
                                          'SFS-70160000000D7raAAC', 'SFS-70160000000D7rfAAC', 'SFS-70160000000D7rkAAC',   // bestwaytoinvest.com
                                          'SFS-70160000000D7ruAAC', 'SFS-70160000000D7s4AAC', 'SFS-70160000000D7s9AAC',
                                          'SFS-70160000000D7sJAAS', 'SFS-70160000000D7sOAAS', 'SFS-70160000000D7sTAAS',
                                          'SFS-70160000000D7sYAAS', 'SFS-70160000000D7sdAAC', 'SFS-70160000000D7siAAC',
                                          'SFS-70160000000D7snAAC', 'SFS-70160000000D7ssAAC', 'SFS-70160000000D7sxAAC',
                                          'SFS-70160000000D7t2AAC', 'SFS-70160000000D7sZAAS', 'SFS-70160000000D7seAAC',
                                          'SFS-70160000000D7tCAAS', 'SFS-70160000000D7syAAC', 'SFS-70160000000D7tHAAS',
                                          'SFS-70160000000D64QAAS', 'SFS-70160000000D7tIAAS', 'SFS-70160000000D7tRAAS',
                                          'SFS-70160000000D7tbAAC', 'SFS-70160000000D7sAAAS', 'SFS-70160000000D7sUAAS',
                                          'SFS-70160000000D7tlAAC', 'SFS-70160000000D7tqAAC', 'SFS-70160000000D7tvAAC',
                                          'SFS-70160000000D7u0AAC', 'SFS-70160000000D7u5AAC', 'SFS-70160000000D7u6AAC',
                                          'SFS-70160000000D7uAAAS', 'SFS-70160000000D7uUAAS', 'SFS-70160000000D7uZAAS',
                                          'SFS-70160000000D7vmAAC', 'SFS-70160000000D7vrAAC', 'SFS-70160000000D7vwAAC',
                                          'SFS-70160000000D7w1AAC', 'SFS-70160000000D7wBAAS', 'SFS-70160000000D7uPAAS',
                                          'SFS-70160000000DoKP', 'SFS-70160000000DoKU', 'SFS-70160000000DoKZ',
                                          'SFS-70160000000DoKe', 'SFS-70160000000DoKj', 'SFS-70160000000DoKo',
                                          'SFS-70160000000DoKQ']},
                            
                            /*{'IBCode': 'otherCompany',
                            'Campaigns': ['SFS-Test', 'SFS-Test2']},*/
                            ];

    var NewURL = '';
    var CampaignFound = false;
    for (var MapIndex in CampaignToIBMaps)
    {
      for (var CampaignIndex in CampaignToIBMaps[MapIndex].Campaigns)
      {
        if (CampaignToIBMaps[MapIndex].Campaigns[CampaignIndex] == LastCampaign)    // We found a relevant campaign
        {
          for (var AppLinkIndex in AppLinks)    // Replace the ib for all our application links
          {
            NewURL = AppLinks[AppLinkIndex].href.replace(/([?&])(ib=)([^&]*)(&|$)/, '$1$2' + CampaignToIBMaps[MapIndex].IBCode + '$4');
            if (NewURL == AppLinks[AppLinkIndex].href)
            {
              NewURL = AppLinks[AppLinkIndex].href + (AppLinks[AppLinkIndex].href.indexOf('?') == -1 ? '?' : '&') + 'ib=' + CampaignToIBMaps[MapIndex].IBCode;
            }
            AppLinks[AppLinkIndex].href = NewURL;
          }
          
          CampaignFound = true;
          break;
        }
      }
      if (CampaignFound) { break; }
    }
  }
}