// This script checks all mailto: links in a webpage
// to remove annoying anti-spam measures.
//
// Author: Joost Schalken

function removeSpamBlock() {
  for(i = 0; i < document.links.length; i++) {
    var thisEmailAdress = "";
    var thisEmailAdressRep = "";
    var thisLinkAddendum = "";

    var thisHref=document.links[i].href;
    thisHref = thisHref.toLowerCase();
    if(thisHref.indexOf("mailto:") == 0) {
      var thisEmail = document.links[i].innerHTML;
      if(thisEmail.indexOf("<") == -1) {
        thisEmailAdress = thisEmail;
        thisLinkAddendum = "";
      }
      else {
        thisEmailAdress = thisEmail.substr(0, thisEmail.indexOf("<"));
        thisLinkAddendum = thisEmail.substr(thisEmail.indexOf("<"));
      }
      thisEmailAdressRep = thisEmailAdress;

      // &shy;:  decimal=&#173; hexadecimal=AD;
      thisEmailAdress = thisEmailAdress.replace(/\&shy;/gi,"");
      thisEmailAdress = thisEmailAdress.replace(/\xAD/gi,"");

      thisEmailAdress = thisEmailAdress.replace(/[A-Za-z0-9.]*spam[A-Za-z0-9.]*/gi,"");
      thisEmailAdress = thisEmailAdress.replace(/dot/gi,".");
      thisEmailAdress = thisEmailAdress.replace(/at/gi,"@");
      thisEmailAdress = thisEmailAdress.replace(/ /gi,"");

      thisEmailAdressRep = thisEmailAdressRep.replace(/[A-Za-z0-9.]*spam[A-Za-z0-9.]*/gi,"");
      thisEmailAdressRep = thisEmailAdressRep.replace(/dot/gi,".");
      thisEmailAdressRep = thisEmailAdressRep.replace(/at/gi,"@");
      thisEmailAdressRep = thisEmailAdressRep.replace(/ /gi,"");


      document.links[i].innerHTML = thisEmailAdressRep + thisLinkAddendum;
      document.links[i].href = "mailto:" + thisEmailAdress;
    }
  }
}
