// ==UserScript==
// @name          SoftPedia Ignore Feature
// @author        Ciuly  
// @namespace     http://www.ciuly.com
// @description   ignores specific users on a thread
// @include       http://forum.softpedia.com/index.php?showtopic=341255*
// @require       http://www.ciuly.com/greasemonkey/aa_all_common.user.js
// @require       http://www.ciuly.com/greasemonkey/aa_sp_common.user.js
// ==/UserScript==

(function(wnd){
var ignoredIDs = [];
// nicks are case sensitive. so "Nick" is differnt from "nick"
var ignoredNicks = [];


// DO NOT EDIT below this line, unless you know what you are doing

if (ignoredIDs.length != ignoredNicks.length){
  alert("You have an error in your IPB Ignored Users script. The number of IDs "+ignoredIDs.length+" does not equal the number of nicks "+ignoredNicks.length);
}
else
if (ignoredIDs.length == 0){
  alert("You did not add any user to the ignored users list.");
} 
else
{

var table, tables, span, uid, text, doIgnore, divs, div, links, link;

tables = document.getElementsByTagName("table");

for (var i = 0; i<tables.length; i++){
  table = tables.item(i);
  if (table.className == "ipbtable" && table.getAttribute("cellspacing") == "1"){
    aa = table.getElementsByTagName("a");
    if (aa.length == 0) {
      continue;
    }
    text = aa.item(1).getAttribute("href");
    var j = text.indexOf("showuser=");
    if (j>-1){
      uid = text.substr(j+9, text.length);
      doIgnore = false;

      for (var k=0; k<ignoredIDs.length; k++){
        if (uid == ignoredIDs[k]){ 
          doIgnore = true;
          break;
        }
      }

      if (doIgnore){
        table.getElementsByTagName("a").item(1).setAttribute("href", "http://forum.softpedia.com/index.php?showuser=0");
        table.getElementsByTagName("a").item(1).innerHTML = "Ignored User";
        table.getElementsByTagName("div").item(1).innerHTML = "";
        table.getElementsByTagName("tr").item(1).getElementsByTagName("span").item(0).innerHTML = "Ignored User <br />You don't care about his/her stats.<br /><br />";
        table.getElementsByTagName("tr").item(1).getElementsByTagName("td").item(1).innerHTML = "Ignored User <br />You don't care what he/she says.<br />";
      } else {
        var tmp = table.getElementsByTagName("tr").item(1).getElementsByTagName("span").item(0).innerHTML;
        table.getElementsByTagName("tr").item(1).getElementsByTagName("span").item(0).innerHTML = "";
        var post = table.getElementsByTagName("tr").item(1).getElementsByTagName("td").item(1);
        divs = post.getElementsByTagName("div");
        for (var k=0; k<divs.length; k++){
          div = divs.item(k);
          if (div.className == "quotetop"){
            text = div.innerHTML;
            if (text.length < 8)
              continue;
            text = text.substr(7, text.length);
            m = text.indexOf("@");
            if (m == -1)
              m = text.indexOf("&#064;");
            if (m == -1)
              m = text.indexOf(" ")+1;
            if (m == -1)
              continue;
            text = text.substr(0, m-1);
            for (var ii=0; ii<ignoredNicks.length; ii++){
              if ( text == ignoredNicks[ii]){
                div.innerHTML = "Ignored user";
                k++;
                div = divs.item(k);
                div.innerHTML = "You don't care what he/she said.";
                break;
              }
            }
          }
        }
        table.getElementsByTagName("tr").item(1).getElementsByTagName("span").item(0).innerHTML = tmp;
      }
    }
  }
}

if (wnd.is_opera)
  divs = document.body.getElementsByTagName("div");
else
  divs = document.getElementsByTagName("div");

var ignored;

ignored = 0;

for (var i = divs.length-1; i>=0; i--){
  div = divs.item(i);
  if (div.className == "row1"){
    links = div.getElementsByTagName("a");
    for (var j = 0; j<links.length; j++){
      link = links.item(j);

      text = link.getAttribute("href");
      var k = text.indexOf("showuser=");
      if (k>-1){
        uid = text.substr(k+9, text.length);
        doIgnore = false;

        for (var ii=0; ii<ignoredIDs.length; ii++){
          if (uid == ignoredIDs[ii]){ 
            doIgnore = true;
            break;
          }
        }

        if (doIgnore){
          link.setAttribute("href", "http://forum.softpedia.com/index.php?showuser=0");
          link.innerHTML = "Ignored User";
          ignored++;
        }
      }
    }
    break;
  }
}

for (var i = divs.length-1; i>=0; i--){
  div = divs.item(i);
  if (div.className == "formsubtitle"){
    text = div.innerHTML;
    div.innerHTML = text.substr(0, text.length-1) + " and " + ignored + " Ignored Users)";
    break;
  }
}

}

})(window.wrappedJSObject || window);