lukie80 / Indeed.com: Highlight jobs by different colors

// ==UserScript==
// @name           Indeed.com: Highlight jobs by different colors
// @namespace      localhost
// @description    Highlight sponsored and non-sponsored jobs by different colors. Allows to delete sponsored jobs (see code).

// @include        *.indeed.com/*
// @include        *.indeed.co.uk/*
// @include        *.indeed.*/*
// @run-at         document-end

// @author         lukie80
// @copyright      Creative Commons Attribution-ShareAlike 3.0 Unported (CC-BY-SA 3.0)
// @license        http://creativecommons.org/licenses/by-sa/3.0/
// @version        1.1
// @lastupdated    2016.06.15
// 
// ==/UserScript==
//-------------------------------------------------------------------------------------------------------------------

//source: http://stackoverflow.com/a/9496574 - not needed for script, just here for educational purposes
function getAllElementsWithAttribute(attribute)
{
  var matchingElements = [];
  var allElements = document.getElementsByTagName('*');
  for (var i = 0, n = allElements.length; i < n; i++)
  {
    if (allElements[i].getAttribute(attribute) !== null)
    {
      // Element exists with attribute. Add to array.
      matchingElements.push(allElements[i]);
    }
  }
  return matchingElements;
}

//source: http://stackoverflow.com/a/4275177 - needed
function getElementsStartsWithId( id ) {
  var children = document.body.getElementsByTagName('*');
  var elements = [], child;
  for (var i = 0, length = children.length; i < length; i++) {
    child = children[i];
    if (child.id.substr(0, id.length) == id)
      elements.push(child);
  }
  return elements;
}

var badDivs = getElementsStartsWithId("pj_");
var goodDivs = getElementsStartsWithId("p_");

for (var i = 0; i < goodDivs.length; i++){
  goodDivs[i].style.background = '#F8F8F8';
}
for (var i = 0; i < badDivs.length; i++){
  badDivs[i].style.background = '#fff5ff';
  //badDivs[i].remove(); 
  //this can remove the sponsored jobs but this is not suggested 
  //because they are not qualitative spam. However they are 
  //quantitative spam.
}


//-------------------------------------------------------------------------------------------------------------------