Advertisement
SPennLUE

Citizenslick 3.4.1

Jan 8th, 2013
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name CitizenSlick
  3. // @namespace citizenray, Shinseinaryu, icemouse
  4. // @description  Version 3.4.1.
  5. // @include http://endoftheinter.net/*
  6. // @include http://boards.endoftheinter.net/*
  7. // @include http://links.endoftheinter.net/*
  8. // @include https://endoftheinter.net/*
  9. // @include https://boards.endoftheinter.net/*
  10. // @include https://links.endoftheinter.net/*
  11. // @include http://archives.endoftheinter.net/*
  12. // @include http://boards.clouds.endoftheinter.net/showtopics.php?board=*
  13. // @include https://boards.clouds.endoftheinter.net/showtopics.php?board=*
  14. // @include http://boards.clouds.endoftheinter.net/showmessages.php*
  15. // @include https://boards.clouds.endoftheinter.net/showmessages.php*
  16. // @include http://archives.clouds.endoftheinter.net/*
  17. // @include https://archives.clouds.endoftheinter.net/*
  18.  
  19. // ==/UserScript==
  20.  
  21. // CHANGELOG for v3.4.1
  22. // +  Changed domain name from LL D:
  23. // +  Removed the  "Force links to use www" options
  24.  
  25.  
  26. var scripts=[];
  27. var descrip=[];
  28. scripts[0]="Dramalinks";
  29. descrip[0]="Display the dramalinks ticker.";
  30. scripts[1]="Buddy List";
  31. descrip[1]="Show LL Buddy List.";
  32. scripts[2]="Userbar";
  33. descrip[2]="Display userbar on bottom of topic pages.";
  34. scripts[3]="TC Noter";
  35. descrip[3]="Denote the TC when possible.";
  36. scripts[4]="Toggle Spoilers";
  37. descrip[4]="Add Toggle Spoilers link in topics.";
  38. scripts[5]="i480";
  39. descrip[5]="Add i480 link in topics.";
  40. scripts[6]="Links2Images";
  41. descrip[6]="Add Links2Images link in topics.";
  42. scripts[7]="FilterMe";
  43. descrip[7]="Add Filter Me link in topics.";
  44. scripts[8]="PM Link";
  45. descrip[8]="Add PM link to post headers.";
  46. scripts[9]="Wiki Link";
  47. descrip[9]="Add Wiki link to post headers.";
  48. scripts[10]="Youtube Embed";
  49. descrip[10]="Add [embed] link next to youtube links.";
  50. scripts[11]="Youtube Revealer";
  51. descrip[11]="Enable Youtube title reveal on mouseover.";
  52. scripts[12]="TimeLapse";
  53. descrip[12]="Display time between posts.";
  54. scripts[13]="Wider Boxes";
  55. descrip[13]="Make posting boxes wider.";
  56. scripts[14]="AutoPost";
  57. descrip[14]="When the post timer runs out, post message.";
  58. scripts[15]="%n";
  59. descrip[15]="%n%n%n%n%n%n%n <span style='color: red;'>THIS WILL BREAK YOUR SHIT DON'T USE IT JESUS CHRIST</span>";
  60. scripts[16]="Search Highlighter";
  61. descrip[16]="Highlight your terms in the search results.";
  62. scripts[17]="MH Link";
  63. descrip[17]="Display Mostly Harmless board link in menu.";
  64. scripts[18]="Top Rated";
  65. descrip[18]="Change Top Voted Links back to Top Rated.";
  66. scripts[19]="LL Mart";
  67. descrip[19]="Enable LL Mart helper.";
  68. scripts[20]="Token Count";
  69. descrip[20]="Display earned CTs in a link.";
  70. scripts[21]="LUEfaqs";
  71. descrip[21]="Make LL use the gfaqs browsing style (LUEfaqs)";
  72. scripts[22]="No Updates";
  73. descrip[22]="Do not have Citizenslick automatically check for updates (Useful if you like using an old version).";
  74. scripts[23]="Wikileaks";
  75. descrip[23]="Include Wikileaks in dramalinks";
  76.  
  77. function getUrlVars(urlz)
  78. {
  79.     var vars = [], hash;
  80.     var hashes = urlz.slice(urlz.indexOf('?') + 1).split('&');
  81.      
  82.     for(var i = 0; i < hashes.length; i++)
  83.     {
  84.         hash = hashes[i].split('=');
  85.         vars.push(hash[0]);
  86.         vars[hash[0]] = hash[1];
  87.         if (hash[1]!=null && hash[1].indexOf("#")>=0)
  88.         {
  89.             vars[hash[0]]=hash[1].slice(0,hash[1].indexOf("#"));
  90.         }
  91.     }
  92.      
  93.     return vars;
  94. }
  95. function readcookie(name)
  96. {
  97.     var nameEQ = name + "=";
  98.     var ca = document.cookie.split(';');
  99.         for(var i=0;i < ca.length;i++)
  100.         {
  101.             var c = ca[i];
  102.             while (c.charAt(0)==' ')
  103.                 {c = c.substring(1,c.length);}
  104.             if (c.indexOf(nameEQ) == 0)
  105.             {
  106.                 return c.substring(nameEQ.length,c.length);
  107.             }
  108.         }
  109.     return null;
  110. }
  111. function nextRealSibling(node)
  112. {
  113.     var cnode=node.nextSibling;
  114.     while (cnode.nodeName=="#text")
  115.     {
  116.         cnode=cnode.nextSibling;
  117.     }
  118.     return cnode;
  119. }
  120. Array.prototype.contains=function(obj)
  121. {
  122.     for (var i=0; i<this.length; i++)
  123.     {
  124.         if (this[i]==obj)
  125.         {
  126.             return true;
  127.         }
  128.     }
  129.     return false;
  130. }
  131. String.prototype.escape=function()
  132. {
  133.     return encodeURI(this);
  134. }
  135. String.prototype.decode=function()
  136. {
  137.     return decodeURI(this);
  138. }
  139.  
  140. var get=getUrlVars(window.location.href);
  141. var truebody=document.body.firstChild.parentNode;
  142. var page=location.pathname;
  143. var divs=document.getElementsByTagName("div");
  144. var as=document.getElementsByTagName("a");
  145.  
  146. if (readcookie("slickvars")==null)
  147. {
  148.     var tt="";
  149.     for (var i=0; i<scripts.length; i++)
  150.     {
  151.         tt+="0";
  152.     }
  153.     var expires=new Date;
  154.     expires.setTime((new Date()).getTime()+3600000*24*10000);
  155.     document.cookie="slickvars="+tt+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  156. }
  157. var slickvarsraw=readcookie("slickvars").split("");
  158. var slickvars=[];
  159. for (var i=0; i<slickvarsraw.length; i++)
  160. {
  161.     slickvars[scripts[i]]=slickvarsraw[i];
  162. }
  163. var slickfields=[];
  164. slickfields["topichighlight"]=readcookie("topichighlight") || "";
  165. slickfields["topicignore"]=readcookie("topicignore") || "";
  166. slickfields["userignore"]=readcookie("userignore") || "";
  167. slickfields["buddylist"]=readcookie("buddylist") || "";
  168. slickfields["highlightcolor"]=readcookie("highlightcolor") || "green";
  169. if (page=="/editprofile.php" && get["slick"]=="settings")
  170. {
  171.     document.title="End of The Internet - Slick Settings";
  172.     var div=document.createElement("div");
  173.     var str="";
  174.     str+="<div id='message' style='color:red;font-weight:bold;'></div>";
  175.     str+="<table class='grid' id='slicktable'><tr><th colspan='2'>Slick Settings - Go to the Slick <a href='http://www.luerpg.net/slick/'>Homepage</a></th></tr>";
  176.     for (var i=0; i<scripts.length; i++)
  177.     {
  178.         str+="<tr><td style='width:2em;'><input type='checkbox' id='slickvar"+i+"'"+(slickvarsraw[i]=="1"?" checked='checked'":"")+"/></td><td>"+descrip[i]+"</td></tr>";
  179.     }
  180.     str+="<tr><td colspan='2'><button onclick='slicksave();'>Save</button></td></tr>";
  181.     str+="</table><table class='grid'>";
  182.     str+="<tr><th colspan='2'>More Settings (separate lists with commas)</th></tr>";
  183.     str+="<tr><td style='width:10em;'>Words to highlight in topic titles:</td><td><textarea id='topichighlight' rows='2' cols='40'>"+slickfields["topichighlight"].decode()+"</textarea></td></tr>";
  184.     str+="<tr><td style='width:10em;'>Ignore topics containing these words:</td><td><textarea id='topicignore' rows='2' cols='40'>"+slickfields["topicignore"].decode()+"</textarea></td></tr>";
  185.     str+="<tr><td style='width:10em;'>Users to include on buddy list (userids):</td><td><textarea id='buddylist' rows='2' cols='40'>"+slickfields["buddylist"].decode()+"</textarea></td></tr>";
  186.     str+="<tr><td style='width:10em;'>Users to ignore (usernames):</td><td><textarea id='userignore' rows='2' cols='40'>"+slickfields["userignore"].decode()+"</textarea></td></tr>";
  187.     str+="<tr><td style='width:10em;'>Highlight color:</td><td><input type='text' id='highlightcolor' value='"+slickfields["highlightcolor"]+"'/></td></tr>";
  188.     str+="<tr><td colspan='2'><button onclick='slicksave();'>Save</button></td></tr>";
  189.     str+="</table>";
  190.     div.innerHTML=str;
  191.     var forms=document.getElementsByTagName("form");
  192.     for (var i=forms.length-1; i>=0; i--)
  193.     {
  194.         if (forms[i].action=="editprofile.php");
  195.         {
  196.             forms[i].parentNode.insertBefore(div,forms[i]);
  197.             forms[i].parentNode.removeChild(forms[i]);
  198.         }
  199.     }
  200.     (document.getElementsByTagName("h1"))[0].innerHTML="Edit Slick Settings";
  201.     unsafeWindow.slicksave=function() {
  202.         var t="";
  203.         for (var i=0; i<scripts.length; i++)
  204.         {
  205.             if (document.getElementById("slickvar"+i).checked)
  206.             {
  207.                 t+="1";
  208.             }
  209.             else
  210.             {
  211.                 t+="0";
  212.             }
  213.         }
  214.         var expires=new Date;
  215.         expires.setTime((new Date()).getTime()+3600000*24*10000);
  216.         document.cookie="slickvars="+t+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  217.         document.cookie="topichighlight="+document.getElementById("topichighlight").value.escape()+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  218.         document.cookie="topicignore="+document.getElementById("topicignore").value.escape()+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  219.         document.cookie="buddylist="+document.getElementById("buddylist").value.escape()+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  220.         document.cookie="userignore="+document.getElementById("userignore").value.escape()+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  221.         document.cookie="highlightcolor="+document.getElementById("highlightcolor").value.escape()+";expires="+expires.toGMTString()+";domain=.endoftheinter.net";
  222.         document.getElementById("message").innerHTML="Your preferences have been saved!";
  223.         window.scrollTo(0,0);
  224.     };
  225. }
  226. if (page!="/l.php" && page!="/u.php" && page!="/index.php")
  227. {
  228.     if (page=="/profile.php" && get["user"]==readcookie("userid"))
  229.     {
  230.         var ntr=document.createElement("tr");
  231.         var ntd=document.createElement("td");
  232.         ntd.colSpan="2";
  233.         ntd.innerHTML="<a href='editprofile.php?slick=settings'>Edit Slick Settings</a>";
  234.         ntr.appendChild(ntd);
  235.         var as=document.getElementsByTagName("a");
  236.         for (var i=0; i<as.length; i++)
  237.         {
  238.             if (as[i].innerHTML=="Edit My Password")
  239.             {
  240.                 as[i].parentNode.parentNode.parentNode.insertBefore(ntr,as[i].parentNode.parentNode);
  241.             }
  242.         }
  243.     }
  244.     //Begin scripts
  245.     //-----------------------------------------------------------------------------------------------
  246.     if (slickvars["Userbar"]==1 && (page=="/showmessages.php" || page=="/showtopics.php"))
  247.     {
  248.         var reading;
  249.         for (var i=0; i<divs.length; i++)
  250.         {
  251.             if (divs[i].className=="infobar")
  252.             {
  253.                 reading=divs[i];
  254.             }
  255.         }
  256.         for (var i=0; i<divs.length; i++)
  257.         {
  258.             if (divs[i].className=="userbar")
  259.             {
  260.                 var nub=document.createElement("div");
  261.                 nub.className="infobar";
  262.                 nub.innerHTML=divs[i].innerHTML;
  263.                 reading.parentNode.insertBefore(nub,reading.nextSibling);
  264.                 break;
  265.             }
  266.         }
  267.     }
  268.     if (slickvars["TC Noter"]==1 && page=="/showmessages.php")
  269.     {
  270.         var tc;
  271.         var numba1=null;
  272.         if (get["page"]=="1" || get["page"]==null)
  273.         {
  274.             for (var i=0; i<divs.length; i++)
  275.             {
  276.                 if (divs[i].className=="message-top")
  277.                 {
  278.                     numba1=divs[i];
  279.                     break;
  280.                 }
  281.             }
  282.         }
  283.         if (get["tc"]!=null || numba1!=null)
  284.         {
  285.             if (numba1!=null)
  286.             {
  287.                 var as2=numba1.getElementsByTagName("a");
  288.                 tc=as2[0].innerHTML;
  289.             }
  290.             else
  291.             {
  292.                 tc=get["tc"].decode();
  293.                 if (tc.indexOf("#")>-1)
  294.                 {
  295.                     tc=tc.slice(0,tc.indexOf("#"));
  296.                 }
  297.             }
  298.             for (var i=0; i<divs.length; i++)
  299.             {
  300.                 if (divs[i].className=="message-top")
  301.                 {
  302.                     var as2=divs[i].getElementsByTagName("a");
  303.                     if (as2[0].innerHTML==tc)
  304.                     {
  305.                         var s=document.createElement("i");
  306.                         s.innerHTML=" (tc)";
  307.                         divs[i].insertBefore(s,as2[0].nextSibling);
  308.                     }
  309.                 }
  310.                 if (divs[i].className=="infobar")
  311.                 {
  312.                     var as2=divs[i].getElementsByTagName("a");
  313.                     for (var j=0; j<as2.length; j++)
  314.                     {
  315.                         if (as2[j].href.indexOf("showmessages.php?")>0)
  316.                         {
  317.                             as2[j].href=as2[j].href+"&tc="+escape(tc);
  318.                         }
  319.                     }
  320.                 }
  321.             }
  322.         }
  323.     }
  324.     if (slickvars["Search Highlighter"]==1 && (page=="/search.php" || (page=="/links.php" && get["mode"]=="as")))
  325.     {
  326.         var terms=get['s_aw'].split("+");
  327.         var tables=document.getElementsByTagName("table");
  328.         for (var i=0; i<tables.length; i++)
  329.         {
  330.             if (tables[i].className=="grid")
  331.             {
  332.                 for (var j=0; j<tables[i].rows.length; j++)
  333.                 {
  334.                     var asi=tables[i].rows[j].cells[0].getElementsByTagName("a");
  335.                     for (var k=0; k<asi.length; k++)
  336.                     {
  337.                         for (var l=0; l<terms.length; l++)
  338.                         {
  339.                             asi[k].innerHTML=asi[k].innerHTML.replace(eval("/("+terms[l]+")/i"),"<span style='background-color: "+slickfields["highlightcolor"]+";'>$1</span>");
  340.                         }
  341.                     }
  342.                 }
  343.             }
  344.         }
  345.     }
  346.     if ((slickfields["topicignore"]!="" || slickfields["topichighlight"]!="" || slickfields["userignore"]!="") && page=="/showtopics.php")
  347.     {
  348.         var trs=document.getElementsByTagName("tr");
  349.         var terms=slickfields["topicignore"].toLowerCase().replace("/, /",",").split(",");
  350.         var terms2=slickfields["topichighlight"].toLowerCase().replace("/, /",",").split(",");
  351.         var dealtwith;
  352.         for (var i=trs.length-1; i>=0; i--)
  353.         {
  354.             if (trs[i].className=="r0" || trs[i].className=="r1")
  355.             {
  356.                
  357.                 dealtwith=false;
  358.                 //Is we ignoring because of terms?
  359.                 var asi=trs[i].getElementsByTagName("a");
  360.                 var words=asi[0].innerHTML.toLowerCase().replace(/[^a-z0-9 ]/gi,"").split(" ");
  361.                 if (slickfields["topicignore"]!="")
  362.                 {
  363.                     for (var j=0; j<words.length; j++)
  364.                     {
  365.                         if (words[j]!=" " && words[j]!="" && terms.contains(words[j]))
  366.                         {
  367.                             trs[i].parentNode.removeChild(trs[i]);
  368.                             dealtwith=true;
  369.                             break;
  370.                         }
  371.                     }
  372.                 }
  373.                 //k what aboot the user though eh?
  374.                 if (!dealtwith && slickfields["userignore"]!="")
  375.                 {
  376.                     if (slickfields["userignore"].toLowerCase().replace("/, /",",").split(",").contains(asi[1].innerHTML.toLowerCase()))
  377.                     {
  378.                         trs[i].parentNode.removeChild(trs[i]);
  379.                         dealtwith=true;
  380.                     }
  381.                 }
  382.                 //aight then can we highlight this shit?
  383.                 if (!dealtwith && slickfields["topichighlight"]!="")
  384.                 {
  385.                     for (var j=0; j<words.length; j++)
  386.                     {
  387.                         if (terms2.contains(words[j].toLowerCase()))
  388.                         {
  389.                             asi[0].innerHTML=asi[0].innerHTML.replace(eval("/("+words[j]+")/ig"),"<span style='background-color: "+slickfields["highlightcolor"]+";'>$1</span>");
  390.                         }
  391.                     }
  392.                 }
  393.             }
  394.         }
  395.     }
  396.     if ((slickvars["Toggle Spoilers"]==1 || slickvars["i480"]==1 || slickvars["Links2Images"]==1 || slickvars["FilterMe"]) && (page=="/showmessages.php" || page=="/linkme.php"))
  397.     {
  398.         for (var i=0; i<divs.length; i++)
  399.         {
  400.             if (divs[i].className=="infobar")
  401.             {
  402.                 if (slickvars["Toggle Spoilers"]==1) divs[i].innerHTML=divs[i].innerHTML+" | <a href='javascript:void(0);' onclick='var spans=document.getElementsByTagName(\"span\"); for (var i=0; i<spans.length; i++) { if (spans[i].className==\"spoiler_on_close\") { var nnode=spans[i].firstChild; while (nnode.nodeName!=\"A\") { nnode=nnode.nextSibling; } toggle_spoiler(nnode); } }' title='Toggler All Spoilers'>Toggle Spoilers</a>";
  403.                 if (slickvars["i480"]==1) divs[i].innerHTML=divs[i].innerHTML+" | <a href='javascript:void(0);' onclick='var i480=document.getElementsByTagName(\"img\"); for (var i=0; i<i480.length; i++) {i480[i].height=\"480\";}' title='Activate i480'>i480</a>";
  404.                 if (slickvars["Links2Images"]==1)
  405.                 {
  406.                     var cod="";
  407.                     cod+="var as=document.getElementsByTagName('a'); ";
  408.                     cod+="for (var i=0; i<as.length; i++) { ";
  409.                     cod+="if (as[i].className=='l') { ";
  410.                     cod+="var dots=as[i].href.split('.'); switch (dots[dots.length-1].toLowerCase()) { ";
  411.                     cod+="case 'jpg': case 'gif': case 'png': case 'bmp': case 'jpeg': ";
  412.                     cod+="as[i].innerHTML='<img src='+as[i].href+' border=0/>'; ";
  413.                     cod+="break; default: break; }}}";
  414.                     divs[i].innerHTML=divs[i].innerHTML+" | <a href='javascript:void(0);' onclick=\""+cod+"\"  title='Turn image links into images'>links2images</a>";
  415.                 }
  416.                 if (slickvars["FilterMe"]==1 && page=="/showmessages.php") divs[i].innerHTML=divs[i].innerHTML+" | <a href='showmessages.php?board="+get["board"]+"&topic="+get["topic"]+"&u="+readcookie("userid")+"' title='Filter Yoself'>Filter Me</a>";
  417.                 break;
  418.             }
  419.         }
  420.     }
  421.     if ((slickvars["PM Link"]==1 || slickvars["Wiki Link"]==1) && page=="/showmessages.php")
  422.     {
  423.         for (var i=0; i<divs.length; i++)
  424.         {
  425.             if (divs[i].className=="message-top")
  426.             {
  427.                 var asi=divs[i].getElementsByTagName("a");
  428.                 if (slickvars["PM Link"]==1)
  429.                 {
  430.                     divs[i].innerHTML+=" | <a href='priv.php?userid="+getUrlVars(asi[0].href)["user"]+"'>PM</a>";
  431.                 }
  432.                 if (slickvars["Wiki Link"]==1)
  433.                 {
  434.                     var asb=asi[0].innerHTML;
  435.                     divs[i].innerHTML+=" | <a href='http://wiki.endoftheinter.net/index.php/User:"+escape(asb.replace(/ /g,"_"))+"'>Wiki</a>";
  436.                 }
  437.             }
  438.         }
  439.     }
  440.     if (slickvars["Youtube Embed"]==1 && page=="/showmessages.php")
  441.     {
  442.         for (var i=0; i<as.length; i++)
  443.         {
  444.             if (as[i].innerHTML.indexOf("youtube.com/watch?v=")>=0)
  445.             {
  446.                 var sp=document.createElement("span");
  447.                 var vv=getUrlVars(as[i].href);
  448.                 sp.innerHTML=" <a href='javascript:void(0);' onclick='this.parentNode.innerHTML=\"<div><object width=\\\"425\\\" height=\\\"344\\\"><param name=\\\"movie\\\" value=\\\"http://www.youtube.com/v/"+vv['v']+"&hl=en&fs=1\\\"></param><param name=\\\"allowFullScreen\\\" value=\\\"true\\\"></param><embed src=\\\"http://www.youtube.com/v/"+vv['v']+"&hl=en&fs=1\\\" type=\\\"application/x-shockwave-flash\\\" allowfullscreen=\\\"true\\\" width=\\\"425\\\" height=\\\"344\\\"></embed></object></div>\"'>[embed]</a>";
  449.                 as[i].parentNode.insertBefore(sp,as[i].nextSibling);
  450.             }
  451.         }
  452.     }
  453.     if (slickvars["Youtube Revealer"]==1)
  454.     {
  455.         for (var i=0; i<as.length; i++)
  456.         {
  457.             if (as[i].href.search(/http:\/\/([A-Za-z0-9]+\.)*youtube\.com\/watch/i)-0>=0)
  458.             {
  459.                 var vid=as[i].href.match(/v=[A-Za-z0-9_\-]+/i);
  460.                 vid=(vid+"").slice(2);
  461.                 as[i].id=vid;
  462.                 as[i].title="Title loading...";
  463.                
  464.                 GM_xmlhttpRequest({
  465.                     method: 'GET',
  466.                     url: as[i].href,
  467.                     headers: {
  468.                         'User-agent': 'Mozilla/4.0 (compatible) Youtube Link Revealer',
  469.                     },
  470.                     onload: function(responseDetails) {
  471.                         var id=responseDetails.responseText;
  472.                         id=id.slice(id.indexOf("var pageVideoId = '")+19);
  473.                         id=id.slice(0,id.indexOf("'"));
  474.                         var t=responseDetails.responseText;
  475.                         t=t.slice(t.indexOf("<title>")+7);
  476.                         t=t.slice(0,t.indexOf("</title>"));
  477.                         var as=document.getElementsByTagName("a");
  478.                         for (var i=0; i<as.length; i++)
  479.                         {
  480.                             if (as[i].id==id)
  481.                             {
  482.                                 as[i].title=t;
  483.                             }
  484.                         }
  485.                     }
  486.                 });
  487.             }
  488.         }
  489.     }
  490.     if (slickvars["Wider Boxes"]==1)
  491.     {
  492.         if (page=="/postmsg.php")
  493.         {
  494.             var mbox=document.getElementById("message");
  495.             if (mbox!=null)
  496.             {
  497.                 mbox.cols=75;
  498.             }
  499.         }
  500.     }
  501.     if (slickvars["AutoPost"]==1 && page=="/postmsg.php")
  502.     {
  503.         if (document.getElementById("countdown")!=null)
  504.         {
  505.             unsafeWindow.tryAndSubmitDisBitch = function ()
  506.             {
  507.                 var cd=document.getElementById("countdown");
  508.                 if (cd.innerHTML!="0")
  509.                 {
  510.                     setTimeout("tryAndSubmitDisBitch()",100);
  511.                 }
  512.                 else
  513.                 {
  514.                     var forms=document.getElementsByTagName("form");
  515.                     for (var i=0; i<forms.length; i++)
  516.                     {
  517.                         if (forms[i].action.indexOf("postmsg.php")>=0)
  518.                         {
  519.                             var pb=document.createElement("input");
  520.                             pb.type="hidden";
  521.                             pb.name="submit";
  522.                             pb.value="Post Message";
  523.                             forms[i].appendChild(pb);
  524.                             forms[i].submit();
  525.                             break;
  526.                         }
  527.                     }
  528.                 }
  529.             }
  530.             setTimeout("tryAndSubmitDisBitch()",100);
  531.         }
  532.     }
  533.     if ((page=="/showmessages.php" || page=="/showtopics.php" || page=="/showfavorites.php") && slickvars["%n"]==1)
  534.     {
  535.         /*var reading;
  536.         for (var i=0; i<divs.length; i++)
  537.         {
  538.             if (divs[i].className=="userbar")
  539.             {
  540.                 reading=divs[i];
  541.             }
  542.         }
  543.         var asi=reading.getElementsByTagName("a");
  544.         asi=asi[0].innerHTML.slice(0,asi[0].innerHTML.indexOf("(")-1);
  545.         document.body.innerHTML=document.documentElement.innerHTML.replace(/%n/g,asi);*/
  546.         alert("srsly turn off %n k");
  547.     }
  548.     if (slickvars["MH Link"]==1)
  549.     {
  550.         for (var i=0; i<as.length; i++)
  551.         {
  552.             if (as[i].innerHTML=="Boards")
  553.             {
  554.                 var s=document.createElement("span");
  555.                 s.innerHTML=" | <a href='http://endoftheinter.net/showtopics.php?board=58'>Mostly Harmless</a>";
  556.                 as[i].parentNode.appendChild(s);
  557.             }
  558.         }
  559.     }
  560.     if (slickvars["Top Rated"]==1)
  561.     {
  562.         for(var x = 0; x < as.length; x++)
  563.         {
  564.             if(as[x].innerHTML == "Top voted links")
  565.             {
  566.                 as[x].href = 'links.php?mode=top';
  567.                 as[x].innerHTML= "Top rated links";
  568.                 break;
  569.             }
  570.         }
  571.     }
  572.     if (slickfields["userignore"]!="" && page=="/showmessages.php")
  573.     {
  574.         var ignored=slickfields["userignore"].decode().replace(/, /,",").split();
  575.         for (var i=0; i<divs.length; i++)
  576.         {
  577.             if (divs[i].className=="message-top")
  578.             {
  579.                 var asi=divs[i].getElementsByTagName("a");
  580.                 for (var j=0; j<ignored.length; j++)
  581.                 {
  582.                     if (asi[0].innerHTML.toLowerCase()==ignored[j].toLowerCase())
  583.                     {
  584.                         var np=divs[i].nextSibling;
  585.                         while (np.nodeName.toLowerCase()=="#text")
  586.                         {
  587.                             np=np.nextSibling;
  588.                         }
  589.                         np.parentNode.removeChild(np);
  590.                         divs[i].parentNode.removeChild(divs[i]);
  591.                         i--;
  592.                         break;
  593.                     }
  594.                 }
  595.             }
  596.         }
  597.     }
  598.     //Dramalinks, oh god
  599.     var dbgcol;
  600.     if (slickvars["Dramalinks"]==1 && page=="/showtopics.php")
  601.     {
  602.         var ticker=document.createElement("center");
  603.         var update=document.createElement("center");
  604.         ticker.innerHTML="Dramalinks loading...";
  605.         ticker.id="dramalinks_ticker";
  606.         update.innerHTML="";
  607.         update.id="dramalinks_update";
  608.         for (var i=0; i<divs.length; i++)
  609.         {
  610.             if (divs[i].className=="userbar")
  611.             {
  612.                 divs[i].parentNode.insertBefore(ticker,divs[i]);
  613.                 divs[i].parentNode.insertBefore(update,divs[i]);
  614.                 break;
  615.             }
  616.         }
  617.  
  618.         GM_xmlhttpRequest({
  619.             method: 'GET',
  620.             url: 'http://wiki.endoftheinter.net/index.php?title=Dramalinks/current&action=raw&section=0&maxage=30',
  621.             headers: {
  622.                 'User-agent': 'Mozilla/4.0 (compatible) Dramalinks Script',
  623.             },
  624.             onload: function(responseDetails) {
  625.                 var t=responseDetails.responseText;
  626.                 t=t.replace(/\[\[(.+?)(\|(.+?))\]\]/g,"<a href=\"http://wiki.endoftheinter.net/index.php/$1\">$3</a>");
  627.                 t=t.replace(/\[\[(.+?)\]\]/g,"<a href=\"http://wiki.endoftheinter.net/index.php/$1\">$1</a>");
  628.                 t=t.replace(/\[(.+?)\]/g,"<a href=\"$1\" style=\"padding-left: 0px\"><img src=\"http://wiki.endoftheinter.net/skins/monobook/external.png\"></a>");
  629.                 t=t.replace(/href="\/index\.php/g,"href=\"http://wiki.endoftheinter.net/index.php");
  630.                 t=t.replace(/style=/gi,"");
  631.                 t=t.replace(/<script/gi,"<i");
  632.                 t=t.replace(/(on)([A-Za-z]*)(=)/gi,"");
  633.                 t=t.slice(t.indexOf("<!--- NEW STORIES GO HERE --->")+29);
  634.                 var dramas=t.slice(0,t.indexOf("<!--- NEW STORIES END HERE --->"));
  635.                 t=t.slice(t.indexOf("<!--- CHANGE DRAMALINKS COLOR CODE HERE --->"));
  636.                 t=t.slice(t.indexOf("{{")+2);
  637.                 dbgcol=t.slice(0,t.indexOf("}}"));
  638.                 var col;
  639.                 var bgcol;
  640.                 var kermit=false;
  641.                 switch (dbgcol.toLowerCase())
  642.                 {
  643.                     case "kermit":
  644.                     document.getElementById("dramalinks_ticker").style.border="2px solid #990099";
  645.                     bgcol="black";
  646.                     kermit=true;
  647.                     case "black":
  648.                     case "blue":
  649.                     case "green":
  650.                     col="white";
  651.                     break;
  652.                     default:
  653.                     col="black";
  654.                     break;
  655.                 }
  656.                 if (!kermit)
  657.                 {
  658.                 dramas="<span style='text-transform:capitalize'>Current Dramalinks Level: <font color='" + dbgcol + "'>" + dbgcol + "</font></span><div style='background-color: "+dbgcol+"; color: "+col+";'>" + dramas.slice(2).replace(/\*/g,"&nbsp;&nbsp;&nbsp;&nbsp;")+"</div>";
  659.                 }
  660.                 else
  661.                 {
  662.                 dramas="Current Dramalinks Level: <blink><font color='" + bgcol + "'>CODE KERMIT</font></blink><div style='background-color: "+bgcol+"; color: "+col+";'>" + dramas.slice(2).replace(/\*/g,"&nbsp;&nbsp;&nbsp;&nbsp;")+"</div>";
  663.                 }
  664.  
  665.                 document.getElementById("dramalinks_ticker").innerHTML=dramas;
  666.             }
  667.         });
  668.     }
  669. if (slickvars["Wikileaks"]==1 && slickvars["Dramalinks"] && page=="/showtopics.php")
  670.     {
  671.         var ticker=document.createElement("center");
  672.         var update=document.createElement("center");
  673.         ticker.innerHTML="Wikileaks loading...";
  674.         ticker.id="wikileaks_ticker";
  675.         update.innerHTML="";
  676.         update.id="wikileaks_update";
  677.         for (var i=0; i<divs.length; i++)
  678.         {
  679.             if (divs[i].className=="userbar")
  680.             {
  681.                 divs[i].parentNode.insertBefore(ticker,divs[i]);
  682.                 divs[i].parentNode.insertBefore(update,divs[i]);
  683.                 break;
  684.             }
  685.         }
  686.  
  687.         GM_xmlhttpRequest({
  688.             method: 'GET',
  689.             url: 'http://wiki.endoftheinter.net/index.php?title=WikiLeaks&action=raw&section=0&maxage=30',
  690.             headers: {
  691.                 'User-agent': 'Mozilla/4.0 (compatible) Dramalinks Script',
  692.             },
  693.             onload: function(responseDetails) {
  694.                 var t=responseDetails.responseText;
  695.                 t=t.replace(/\[\[(.+?)(\|(.+?))\]\]/g,"<a href=\"http://wiki.endoftheinter.net/index.php/$1\">$3</a>");
  696.                 t=t.replace(/\[\[(.+?)\]\]/g,"<a href=\"http://wiki.endoftheinter.net/index.php/$1\">$1</a>");
  697.                 t=t.replace(/\[(.+?)\]/g,"<a href=\"$1\" style=\"padding-left: 0px\"><img src=\"http://wiki.endoftheinter.net/skins/monobook/external.png\"></a>");
  698.                 t=t.replace(/href="\/index\.php/g,"href=\"http://wiki.endoftheinter.net/index.php");
  699.                 t=t.replace(/style=/gi,"");
  700.                 t=t.replace(/<script/gi,"<i");
  701.                 t=t.replace(/(on)([A-Za-z]*)(=)/gi,"");
  702.                 t=t.slice(t.indexOf("<!--- NEW STORIES GO HERE --->")+29);
  703.                 var dramas=t.slice(0,t.indexOf("<!--- NEW STORIES END HERE --->"));
  704.                 var col;
  705.                 var bgcol = dbgcol.toLowerCase();
  706.                 var kermit=false;
  707.                 switch (bgcol)
  708.                 {
  709.                     case "kermit":
  710.                     document.getElementById("wikilinks_ticker").style.border="2px solid #990099";
  711.                     bgcol="black";
  712.                     kermit=true;
  713.                     case "black":
  714.                     case "blue":
  715.                     case "green":
  716.                     col="white";
  717.                     break;
  718.                     default:
  719.                     col="black";
  720.                     break;
  721.                 }
  722.             dramas="<div style='background-color: "+bgcol+"; color: "+col+";'>" + dramas.slice(2).replace(/\*/g,"&nbsp;&nbsp;&nbsp;&nbsp;")+"</div>";
  723.                 document.getElementById("wikileaks_ticker").innerHTML=dramas;
  724.             }
  725.         });
  726.     }
  727.     if (slickvars["LL Mart"]==1)
  728.     {
  729.         for (var i=0; i<as.length; i++)
  730.         {
  731.             if (as[i].innerHTML=="Boards")
  732.             {
  733.                 var s=document.createElement("span");
  734.                 s.innerHTML=" | <a href='http://endoftheinter.net/showtopics.php?board=419'>LL Mart</a>";
  735.                 as[i].parentNode.appendChild(s);
  736.             }
  737.         }
  738.         // Feedback link
  739.         if (page=="/showmessages.php" && (get["board"]==419 || get["board"]==418))
  740.         {
  741.             for (var i=0; i<divs.length; i++)
  742.             {
  743.                 if (divs[i].className=="message-top")
  744.                 {
  745.                     //http://endoftheinter.net/search.php?s_aw=USERNAME&board=418&submit=Submit
  746.                     var as=divs[i].getElementsByTagName("a");
  747.                     divs[i].innerHTML+=" | <a href='http://endoftheinter.net/search.php?s_aw="+as[0].innerHTML.replace(/ /g,"+")+"&board=418&submit=Submit'>Feedback</a>";
  748.                 }
  749.             }
  750.         }
  751.  
  752.         // Markers
  753.         if (page=="/showtopics.php" && get["board"]==419)
  754.         {
  755.             var today = new Date();
  756.             today.setTime( today.getTime() );
  757.             var expplus=60*60*24*21; //three weeks; change 21 to the number of days you want
  758.             var expires_date = new Date(today.getTime()+(expplus));
  759.             var expired_date = new Date(today.getTime()-3600);
  760.  
  761.             var tables=document.getElementsByTagName("table");
  762.             for (var j=tables.length-1; j>=0; j--)
  763.             {
  764.                 if (tables[j].className=="grid")
  765.                 {
  766.                     var trs=tables[j].getElementsByTagName("tr");
  767.                     for (var i=0; i<trs.length; i++)
  768.                     {
  769.                         if (trs[i].innerHTML.indexOf("<th>Topic</th>")>-1)
  770.                         {
  771.                             var th=document.createElement("th");
  772.                             th.innerHTML="!";
  773.                             trs[i].insertBefore(th,trs[i].firstChild);
  774.                         }
  775.                         //if (trs[i].className=="r0" || trs[i].className=="r1")
  776.                         if (trs[i].innerHTML.indexOf('profile.php?') > 0)
  777.                         {
  778.                             var td=document.createElement("td");
  779.                             if (trs[i].innerHTML.indexOf('<b>')>0)
  780.                             {
  781.                                 td.innerHTML="&nbsp";
  782.                             }
  783.                             else
  784.                             {
  785.                                 var as=trs[i].getElementsByTagName("a");
  786.                                 as=getUrlVars(as[0].href);
  787.                                 if (readcookie("llmarttag_"+as["topic"])=="on")
  788.                                 {
  789.                                     td.innerHTML="<img src='http://luerpg.net/slick/onbutton.png' onclick=\"document.cookie='llmarttag_"+as["topic"]+"=off; expires="+expired_date.getTime()+"'; this.src='http://luerpg.net/slick/offbutton.png';\"/>";
  790.                                 }
  791.                                 else
  792.                                 {
  793.                                     td.innerHTML="<img src='http://luerpg.net/slick/offbutton.png' onclick=\"document.cookie='llmarttag_"+as["topic"]+"=on; expires="+expires_date.getTime()+"'; this.src='http://luerpg.net/slick/onbutton.png';\"/>";
  794.                                 }
  795.                             }
  796.                             trs[i].insertBefore(td,trs[i].firstChild);
  797.                         }
  798.                     }
  799.                     break;
  800.                 }
  801.             }
  802.         }
  803.  
  804.         // Filter links
  805.         if (get["board"]==419 && page=="/showtopics.php")
  806.         {
  807.             for (var i=0; i<divs.length; i++)
  808.             {
  809.                 if (divs[i].className=="infobar"  && divs[i].innerHTML.indexOf("Page")>=0)
  810.                 {
  811.                     var as=divs[i].getElementsByTagName("a");
  812.                     for (var j=0; j<as.length; j++)
  813.                     {
  814.                         if (get["llm_show"]!=null && as[j].href.indexOf("&llm_show=")<0)
  815.                         {
  816.                             as[j].href+="&llm_show="+get["llm_show"];
  817.                         }
  818.                     }
  819.                     var span=document.createElement("span");
  820.                     var str="";
  821.                     if (get["llm_show"]!="buy")
  822.                     {
  823.                         str+=" | <a href='showtopics.php?board=419"+(get["page"]==null?"":"&page="+get["page"])+"&llm_show=buy'>Show Buying</a>";
  824.                     }
  825.                     if (get["llm_show"]!="sell")
  826.                     {
  827.                         str+=" | <a href='showtopics.php?board=419"+(get["page"]==null?"":"&page="+get["page"])+"&llm_show=sell'>Show Selling</a>";
  828.                     }
  829.                     if (get["llm_show"]!=null)
  830.                     {
  831.                         str+=" | <a href='showtopics.php?board=419"+(get["page"]==null?"":"&page="+get["page"])+"'>Show All</a>";
  832.                     }
  833.                     span.innerHTML=str;
  834.                     divs[i].appendChild(span);
  835.                 }
  836.             }
  837.             if (get["llm_show"]!=null)
  838.             {
  839.                 var tables=document.getElementsByTagName("table");
  840.                 for (var j=tables.length-1; j>=0; j--)
  841.                 {
  842.                     if (tables[j].className=="grid")
  843.                     {
  844.                         var trs=tables[j].getElementsByTagName("tr");
  845.                         for (var i=trs.length-1; i>=0; i--)
  846.                         {
  847.                             //if (trs[i].className=="r0" || trs[i].className=="r1")
  848.                             if (trs[i].innerHTML.indexOf('profile.php?') > 0)
  849.                             {
  850.                                 var as=trs[i].getElementsByTagName("a");
  851.                                 var rem=false;
  852.                                 if (get["llm_show"]=="buy")
  853.                                 {
  854.                                     if (as[0].innerHTML.toLowerCase().indexOf("[buy")<0 && as[0].innerHTML.toLowerCase().indexOf("buy]")<0)
  855.                                     {
  856.                                         rem=true;
  857.                                     }
  858.                                 }
  859.                                 if (get["llm_show"]=="sell")
  860.                                 {
  861.                                     if (as[0].innerHTML.toLowerCase().indexOf("[sell")<0 && as[0].innerHTML.toLowerCase().indexOf("auction]")<0 && as[0].innerHTML.toLowerCase().indexOf("[auct")<0 && as[0].innerHTML.toLowerCase().indexOf("sell]")<0)
  862.                                     {
  863.                                         rem=true;
  864.                                     }
  865.                                 }
  866.                                 if (rem)
  867.                                 {
  868.                                     trs[i].parentNode.removeChild(trs[i]);
  869.                                 }
  870.                             }
  871.                         }
  872.                     }
  873.                 }
  874.             }
  875.         }
  876.     }
  877.     if (slickvars["TimeLapse"]==1 && page=="/showmessages.php")
  878.     {
  879.         var previousminutes=-1;
  880.         for (var i=0; i<divs.length; i++)
  881.         {
  882.             if (divs[i].className=="message-top")
  883.             {
  884.                 var timestring=divs[i].innerHTML.substr(divs[i].innerHTML.indexOf("Posted:</b> ")+12);
  885.                 timestring=timestring.substr(0,timestring.indexOf(" |"));
  886.                
  887.                 var pieces=timestring.split(" ");
  888.                 var minutes=0;
  889.                 var temp=pieces[0].split("/");
  890.                 var numdays=0;
  891.                 switch (temp[0])
  892.                 {
  893.                     case 2:
  894.                     numdays=28;
  895.                     break;
  896.                     case 9:
  897.                     case 4:
  898.                     case 6:
  899.                     case 11:
  900.                     numdays=30;
  901.                     break;
  902.                     default:
  903.                     numdays=31;
  904.                 }
  905.  
  906.                 minutes+=temp[0]*numdays*24*60;
  907.                 minutes+=temp[1]*24*60;
  908.                 minutes+=(temp[2]-2004)*365*24*60;
  909.  
  910.                 temp=pieces[1].split(":");
  911.                 minutes+=temp[0]*60;
  912.                 minutes+=temp[1]*1;
  913.                 if (pieces[2]=="PM")
  914.                 {
  915.                     minutes+=12*60;
  916.                 }
  917.                 if (previousminutes>0 && minutes-previousminutes>0)
  918.                 {
  919.                     var hours=Math.floor((minutes-previousminutes)/60);
  920.                     //divs[i].innerHTML+=" <i>*"+(minutes-previousminutes)+" minutes later...*</a>";
  921.                     var nnode=document.createElement('div');
  922.                     if (hours>0)
  923.                     {
  924.                         nnode.innerHTML="<i>*"+hours+" hours, "+(minutes-previousminutes-(hours*60))+" minutes later...*</i>";
  925.                     }
  926.                     else
  927.                     {
  928.                         nnode.innerHTML="<i>*"+(minutes-previousminutes)+" minutes later...*</i>";
  929.                     }
  930.                     divs[i].parentNode.insertBefore(nnode,divs[i]);
  931.                     //var nnode=document.createElement("div");
  932.                     //nnode.appendChild(document.createTextNode("*"+(previousminutes-minutes)+" pass*"));
  933.                     //divs[i].insertBefore(nnode,divs[i]);
  934.                 }
  935.                 previousminutes=minutes;
  936.             }
  937.         }
  938.     }
  939.     if (slickvars["Buddy List"]==1)
  940.     {
  941.         var buddylist_outer=document.createElement("div");
  942.         buddylist_outer.style.position="fixed";
  943.         buddylist_outer.style.right="0px";
  944.         buddylist_outer.style.bottom="0px";
  945.         buddylist_outer.style.backgroundColor="#B0B0FF";
  946.         buddylist_outer.style.color="#000000";
  947.         buddylist_outer.style.border="1px outset #B0B0FF";
  948.         buddylist_outer.style.width="150px";
  949.         buddylist_outer.innerHTML="<div>LL Buddy List <a href='javascript:void(0);' onclick=\"var ifrs=document.getElementById('llbuddylist_inner'); ifrs.style.display=(ifrs.style.display=='none'?'block':'none'); if (ifrs.style.display!='none') {document.cookie='llbuddyup=up';} else {document.cookie='llbuddyup=down';}\">(toggle)</a></div>";
  950.         var buddylist_inner=document.createElement("div");
  951.         buddylist_inner.style.display=readcookie("llbuddyup")=="down"?"none":"block";
  952.         buddylist_inner.style.backgroundColor="#FFFFFF";
  953.         buddylist_inner.id="llbuddylist_inner";
  954.         buddylist_inner.style.margin="2px";
  955.         buddylist_inner.style.padding="2px";
  956.         buddylist_inner.style.fontSize="8pt";
  957.         if (slickfields["buddylist"]=="")
  958.         {
  959.             buddylist_inner.innerHTML="You don't have any buddies listed.";
  960.         }
  961.         else
  962.         {
  963.             buddylist_inner.innerHTML="BuddyList loading...";
  964.             GM_xmlhttpRequest({
  965.                 method: 'GET',
  966.                 url: "http://boards.endoftheinter.net/friendstatus.php?users="+slickfields["buddylist"].replace(/, /,",").split(",").join("|"),
  967.                 headers: {
  968.                     'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/CitizenSlick',
  969.                 },
  970.                 onload: function(responseDetails) {
  971.                     var now=(new Date()).getTime()/1000;
  972.                     var users=responseDetails.responseText.split(":");
  973.                     var activelist=[];
  974.                     var offlinelist=[];
  975.                     for (var i=0; i<users.length; i++)
  976.                     {
  977.                         var user=users[i].split("|");
  978.                         var minutes=Math.floor((now-user[2])/60);
  979.                         if (minutes<=15)
  980.                         {
  981.                             activelist[activelist.length]="<a href='profile.php?user="+user[0]+"' style='color: #000000;'>"+user[1]+"</a> - "+minutes+" mins ago";
  982.                         }
  983.                         else
  984.                         {
  985.                             offlinelist[offlinelist.length]="<a href='profile.php?user="+user[0]+"' style='color: #999999; font-style: italic;'>"+user[1]+"</a> - "+minutes+" mins ago";
  986.                         }
  987.                     }
  988.                     document.getElementById("llbuddylist_inner").innerHTML=activelist.join("<br/>")+"<hr/>"+offlinelist.join("<br/>");
  989.                 }
  990.             });
  991.         }
  992.         buddylist_outer.appendChild(buddylist_inner);
  993.         document.body.appendChild(buddylist_outer);
  994.     }
  995.     if (slickvars["Token Count"]==1)
  996.     {
  997.         function calctokens(score,votes)
  998.         {
  999.             return Math.round(Math.pow(votes*(score-5)/15.0,1/3.0)*100,2)/100;
  1000.         }
  1001.         if (page=="/links.php")
  1002.         {
  1003.             var tables=document.getElementsByTagName("table");
  1004.             for (var i=0; i<tables.length; i++)
  1005.             {
  1006.                 if (tables[i].className=="grid")
  1007.                 {
  1008.                     var trs=tables[i].getElementsByTagName("tr");
  1009.                     trs[0].innerHTML+="<th>CTs</th>";
  1010.                     var temp_column = (trs[0].cells.length == 7 ? 2 : 3)
  1011.                     for (var j=1; j<trs.length; j++)
  1012.                     {
  1013.                         var txt=trs[j].cells[temp_column].innerHTML;
  1014.                         txt=txt.slice(0,txt.indexOf(" votes"));
  1015.                         var score=txt.replace(/([0-9\.]+)(\/10 \(based on )([0-9]+)/i,"$1");
  1016.                         var votes=txt.replace(/([0-9\.]+)(\/10 \(based on )([0-9]+)/i,"$3");
  1017.                         var cts=calctokens(score,votes);
  1018.                         trs[j].innerHTML+="<td>"+cts+"</td>";
  1019.                     }
  1020.                     break;
  1021.                 }
  1022.             }
  1023.         }
  1024.         if (page=="/linkme.php")
  1025.         {
  1026.             var bs=document.getElementsByTagName("b");
  1027.             for (var i=0; i<bs.length; i++)
  1028.             {
  1029.                 if (bs[i].innerHTML=="Categories:")
  1030.                 {
  1031.                     var txt=bs[i].parentNode.innerHTML;
  1032.                     txt=txt.slice(txt.indexOf("Rating:</b> ")+12);
  1033.                     txt=txt.slice(0,txt.indexOf(" votes"));
  1034.                     var score=txt.replace(/([0-9\.]+)(\/10 \(based on )([0-9]+)/i,"$1");
  1035.                     var votes=txt.replace(/([0-9\.]+)(\/10 \(based on )([0-9]+)/i,"$3");
  1036.                     var cts=calctokens(score,votes);
  1037.                     var span=document.createElement("span");
  1038.                     span.innerHTML="<b>Earned CTs:</b> "+cts+"<br/>";
  1039.                     bs[i].parentNode.insertBefore(span,bs[i]);
  1040.                     break;
  1041.                 }
  1042.             }
  1043.         }
  1044.     }
  1045.     if (slickvars["LUEfaqs"]==1 && page=="/showmessages.php")
  1046.     {
  1047.         //assert(It's going to be OK)
  1048.         //iterate backwards because this fucks with the node order or some shit
  1049.         //fuck it I'm tired
  1050.         for (var i=divs.length-1; i>=0; i--)
  1051.         {
  1052.             if (divs[i].className=="messagetop")
  1053.             {
  1054.                 //fucking hell, this will not work
  1055.                 var posth=divs[i];
  1056.                 var postb=nextRealSibling(divs[i]);
  1057.                 posth.innerHTML=posth.innerHTML.replace(/ \| /g,"<br/>");
  1058.                 posth.innerHTML=posth.innerHTML.replace(/([0-9]+)(\/)([0-9]+)(\/)([0-9]+) /,"$1$2$3$4$5<br/>");
  1059.                 posth.style.textAlign="center";
  1060.                 var bs=posth.getElementsByTagName("b");
  1061.                 for (var j=bs.length-1; j>=0; j--)
  1062.                 {
  1063.                     posth.removeChild(bs[j]);
  1064.                 }
  1065.                 var asi=posth.getElementsByTagName("a");
  1066.                 asi[0].style.fontWeight="bold";
  1067.                 //Please excuse the field of CSS shit
  1068.                 var table=document.createElement("table");
  1069.                 table.cellSpacing="0";
  1070.                 table.style.margin="1px";
  1071.                 var tr=document.createElement("tr");
  1072.                 var tr2=document.createElement("tr");
  1073.                 var td1=document.createElement("td");
  1074.                 td1.style.verticalAlign="top";
  1075.                 td1.style.backgroundColor=window.getComputedStyle(posth,null).getPropertyValue("background-color");
  1076.                 td1.rowSpan="2";
  1077.                 var td2=document.createElement("td");
  1078.                 td2.style.verticalAlign="top";
  1079.                 td2.style.backgroundColor=window.getComputedStyle(postb,null).getPropertyValue("background-color");
  1080.                 td2.width="100%";
  1081.                 td2.height="100%";
  1082.                 var tds=document.createElement("td");
  1083.                 tds.rowSpan="2";
  1084.                 tds.style.padding="1px";
  1085.                 var td3=document.createElement("td");
  1086.                 td3.style.verticalAlign="bottom";
  1087.                 td3.style.backgroundColor=window.getComputedStyle(postb,null).getPropertyValue("background-color");
  1088.                 td3.width="100%";
  1089.                 var td3div=document.createElement("div");
  1090.                 td3.appendChild(td3div);
  1091.                 td3div.style.padding="2px";
  1092.                 table.appendChild(tr);
  1093.                 table.appendChild(tr2);
  1094.                 tr.appendChild(td1);
  1095.                 tr.appendChild(tds);
  1096.                 tr.appendChild(td2);
  1097.                 tr2.appendChild(td3);
  1098.                 posth.parentNode.insertBefore(table,posth);
  1099.                 td1.appendChild(posth);
  1100.                 posth.style.width="150px";
  1101.                 td2.appendChild(postb);
  1102.                 //sig 2 da bottom, tank u llamagui
  1103.                 for (var j=postb.childNodes.length-1; j>=0; j--)
  1104.                 {
  1105.                     if (postb.childNodes[j].nodeValue=="\n---")
  1106.                     {
  1107.                         //omg found a sig k put it on da bottom (insert determined anime face kawaii desu)
  1108.                         for (var k=postb.childNodes.length-1; k>=j; k--)
  1109.                         {
  1110.                             if (td3.firstChild==null)
  1111.                             {
  1112.                                 td3div.appendChild(postb.childNodes[k]);
  1113.                             }
  1114.                             else
  1115.                             {
  1116.                                 td3div.insertBefore(postb.childNodes[k],td3div.firstChild);
  1117.                             }
  1118.                         }
  1119.                         break;
  1120.                     }
  1121.                 }
  1122.             }
  1123.         }
  1124.     }
  1125.     //-----------------------------------------------------------------------------------------------
  1126.     //End scripts
  1127.    
  1128.     //fun bit for 500 Error
  1129.     if (document.title=="500 - Internal Server Error")
  1130.     {
  1131.         var div=document.createElement("div");
  1132.         div.innerHTML="lol";
  1133.         document.body.appendChild(div);
  1134.     }
  1135. }
  1136. if (page=="/profile.php" && get["user"]=="5563")
  1137. {
  1138.     var tds=document.getElementsByTagName("td");
  1139.     for (var i=0; i<tds.length; i++)
  1140.     {
  1141.         if (tds[i].innerHTML=="User Name")
  1142.         {
  1143.             var ptr=tds[i].parentNode;
  1144.             var ntr=document.createElement("tr");
  1145.             var ntd=document.createElement("td");
  1146.             ntd.colSpan=2;
  1147.             ntd.style.color="red";
  1148.             ntd.innerHTML="Hey, if you're gonna bother me about slick, don't. <a href='http://endoftheinter.net/profile.php?user=2041'>Shinseinaryu</a> is its keeper, now.";
  1149.             ntr.appendChild(ntd);
  1150.             ptr.parentNode.insertBefore(ntr,ptr);
  1151.             break;
  1152.         }
  1153.     }
  1154. }
  1155. if (slickvars["No Updates"]!=1)
  1156. {
  1157.     GM_xmlhttpRequest({
  1158.         method: 'GET',
  1159.         //userid sent for usage stats only
  1160.         url: "http://www.luerpg.net/slick/update.php?user="+readcookie("userid")+"&cv=3.4",
  1161.         headers: {
  1162.             'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/CitizenSlick',
  1163.         },
  1164.         onload: function(responseDetails) {
  1165.             eval(responseDetails.responseText);
  1166.         }
  1167.     });
  1168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement