// Sub-Boards in Boards Cell v2 by Chris
// Do not redistribute without permission of the creator

var dontShow = [ // IDs of the boards to not have the sub-boards shown for
   "test2",
   "board2" // No comma on last line
];

var beforeText = "<font size='1'>Sub Boards: "; // Text before all the sub-boards
var afterText = "</font>"; // Text after all the sub-boards
var middleText = " | "; // Text between each sub-board

// Don't edit
var aTD = document.getElementsByTagName("TD");
var aSE = document.getElementsByTagName("SELECT");
var subRe = /\s\(\d+ sub-boards?\)/i;

function analyzePage(){
   // Adds the div's with IDs
   for(a=4;a<aTD.length;a++){
      if(aTD[a].width == "66%" && aTD[a].innerHTML.match(subRe)){
         var d = document.createElement("div");
         d.id = "sub_"+aTD[a].getElementsByTagName("A")[0].href.split(/board=/i)[1];
         if(aTD[a].lastChild.nodeName.toLowerCase() == "font")
            aTD[a].appendChild(d);
         else
            aTD[a].insertBefore(d,aTD[a].lastChild);
            aTD[a].innerHTML = aTD[a].innerHTML.replace(subRe,"");
            a = a+4;
      }
   }
}

function addListing(){
   for(a=0;a<aSE.length;a++)
      if(aSE[a].options[0].text == "Forum Jump")
         break;

   for(b=0;b<aSE[a].options.length;b++){
      if(aSE[a].options[b].value != "" && aSE[a].options[b].text.match(/^-\s/i)){
         var bid = aSE[a].options[b].value.split(/board=/i)[1];
         if(!document.getElementById("sub_"+bid) || dontShow.toString().indexOf(bid) != -1)
            continue;
         var data = "";
         while(aSE[a].options[b+1] && aSE[a].options[b+1].text.match(/---\s/i)){
            b++;
            data += (data == ""?"":middleText)+"<a href='"+aSE[a].options[b].value+"'>"+aSE[a].options[b].text.replace(/---\s/,"")+"</a>";
         }
         document.getElementById("sub_"+bid).innerHTML = beforeText+data+afterText;
      }
   }
}

if(location.href.match(/action=(change|home)/i) || !location.href.match(/action=/i)){
   analyzePage();
   addListing();
}