Filler or not

It's a script for the site AnimeFansFTW that adds a tag in parenthesis to indicate if the episode is a filler or not.

// ==UserScript==
// @name        Filler or not
// @author      One Shade
// @namespace   http://lifenanime.blogspot.ca/
// @include     http://www.animefansftw.org/*
// @description It's a script for the site AnimeFansFTW that adds a tag in parenthesis to indicate if the episode is a filler or not.
// @version     1.1
// @grant       GM_xmlhttpRequest
// ==/UserScript==
function findFirstDescendant(parent, tagname)
{
  ancestor = document.getElementById(parent);
  var descendants = ancestor.getElementsByTagName(tagname);
  if (descendants.length)
  return descendants[0];
  return null;
}
function findAllDescendantsTag(target, parent, tagname)
{
  ancestor = target.getElementById(parent);
  var descendants = ancestor.getElementsByTagName(tagname);
  if (descendants.length)
  return descendants;
  return null;
}
//In the anime individual section list

/**if (document.URL.indexOf('/anime/') >= 0)
{
  var newList = findAllDescendantsTag(document, 'content', 'li');
  for (i = 0; i < newList.length; i++)
  {
    searchForFiller(newList[i]);
  }
} 
else if ((document.URL.indexOf('/latest-anime-episodes/') >= 0) || (document.URL.indexOf('/page/') >= 0) || (document.URL.split('.com')[1] == '/')) //In the latest anime episodes list
{
  var animeList = findAllDescendantsTag(document, 'updates', 'h4');
  for (i = 0; i < animeList.length; i++)
  {
    searchForFiller(animeList[i]);
  }
} 
else
//Individual anime post
{
  var header = findFirstDescendant('main-content', 'h1');
  searchForFiller(header);
}**/
//Primary function that searches and add the (filler) tag when necessary
var animeList = findAllDescendantsTag(document, 'main-content', 'h1');
if (animeList == null)
{
    animeList = findAllDescendantsTag(document, 'main-content', 'li');
}
for (i = 0; i < animeList.length; i++)
{
  searchForFiller(animeList[i]);
}

function searchForFiller(parent)
{
  //if (parent.innerHTML.indexOf('</a>') != -1)
  //{
    //var animeInfo = parent.getElementsByTagName('a');
    //animeInfo = animeInfo[0].innerHTML;
    /**var indInfo = animeInfo.indexOf('</span>');
    if (indInfo != - 1)
    {
      animeInfo = animeInfo.split('</span>') [1];
    }**/
     var animeInfo = parent.textContent;
    
    //Remove Tabs and line breaks from the anime info
    animeInfo = animeInfo.replace(/\t|\n/g, '');
    //Seperate the anime name and number
    var urlName = animeInfo.split(' Episode ') [0];
    var episodeNum = animeInfo.split(' Episode ') [1];
    //Prepare url name for web format
    urlName = urlName.replace(/ /g, '-');
    urlName = urlName.replace(/!/g, '');
    //EXCEPTIONS
    urlName = urlName.replace(/Shippuuden/g, 'shippuden');
    //All to lower
    urlName = urlName.toLowerCase();
    //Open request for page source code
    var filler = false;
    var sourceCode = '';
    var url = 'http://www.animefillerlist.com/shows/' + urlName + '/';
    var ret = GM_xmlhttpRequest({
      method: 'GET',
      url: url,
      onload: function (response) {
        sourceCode = response.responseText;
        //If the anime does not have a page for fillers
        var indexName = sourceCode.indexOf('EpisodeList');
        if (indexName != - 1)
        {
          //Skim through code to get the status of filler or not for the episode number
          var firstToCut = sourceCode.indexOf('<table');
          var lastToCut = sourceCode.indexOf('</table>');
          var sourceCode = sourceCode.substr(firstToCut, lastToCut - firstToCut);
          //Remove bits from the number
          episodeNum = episodeNum.split(' Final') [0];
          episodeNum = episodeNum.split('-') [0];
         
          firstToCut = sourceCode.indexOf('eps-' + episodeNum);
          lastToCut = sourceCode.indexOf('</span>', firstToCut);
          sourceCode = sourceCode.substr(firstToCut, lastToCut - firstToCut);
          //If filler mark as true
          if (sourceCode.indexOf('Filler') != - 1)
          {
            filler = true;
          }
          var textToAdd = '';
          if (filler == true)
          {
            textToAdd = 'Filler';
          }
          //Add the tag in parenthesis

          if (textToAdd != '')
          {
            parent.innerHTML += ' ' + '(' + textToAdd + ')';
          }
        }
      }
    });
  //}
}