Fark Anal Reverteresque ReDux

By Smiths Last update Oct 28, 2008 — Installed 1,050 times.

There are 5 previous versions of this script.

Add Syntax Highlighting (this will take a few seconds, probably freezing your browser while it works)

// ==UserScript==
// @name           Fark Anal Reverteresque ReDux
// @namespace      Smiths
// @include        http://*.fark.com/*
// @include        http://*.totalfark.com/*
// @include        http://*.foobies.com/*
// @include        http://www.blender.com/fark/*
// ==/UserScript==
GM_registerMenuCommand('Fark Anal Reverteresque Redux Options', showOptions);

var urlfilter = GM_getValue('urlfilter');
var tagfilter = GM_getValue('tagfilter');
var hideads = GM_getValue('hideads');
var hideshirts = GM_getValue('hideshirts');
var PITA = GM_getValue('PITA');
if (!urlfilter) { urlfilter = ""; GM_setValue('urlfilter',urlfilter); }
if (!tagfilter) { tagfilter = ""; GM_setValue('tagfilter',tagfilter); }
if (!hideads) { hideads = 0; GM_setValue('hideads',hideads); }
if (!hideshirts) { hideshirts = 0; GM_setValue('hideshirts',hideshirts); }
if (!PITA) { PITA = 0; GM_setValue('PITA',PITA); }
urls = urlfilter.split("@@@");
filteredtags = tagfilter.split("@@@");

function setOptions()
{
	var urlfilter = GM_getValue('urlfilter');
	urls = urlfilter.split("@@@");
	for (var z=0;z<urls.length;z++)
		document.getElementById("urlfilters").innerHTML+='<option value="'+urls[z]+'">'+urls[z]+'</option>';
	var tagfilter = GM_getValue('tagfilter');
	filteredtags = tagfilter.split("@@@");
	for (var z=0;z<filteredtags.length;z++)
		document.getElementById("tagfilters").innerHTML+='<option value="'+filteredtags[z]+'">'+filteredtags[z]+'</option>';
	var hideads = GM_getValue('hideads');
		(hideads) ? document.getElementById('hideadson').checked = true : document.getElementById('hideadsoff').checked = true;
	var hideshirts = GM_getValue('hideshirts');
		(hideshirts) ? document.getElementById('hideshirtson').checked = true : document.getElementById('hideshirtsoff').checked = true;
	var PITA = GM_getValue('PITA');
		(PITA) ? document.getElementById('PITAon').checked = true : document.getElementById('PITAoff').checked = true;

}

function saveOptions()
{
	(document.getElementById('hideadson').checked) ? GM_setValue('hideads', 1 ) : GM_setValue('hideads', 0 );
	(document.getElementById('hideshirtson').checked) ? GM_setValue('hideshirts', 1 ) : GM_setValue('hideshirts', 0 );
	(document.getElementById('PITAon').checked) ? GM_setValue('PITA', 1 ) : GM_setValue('PITA', 0 );
}

function hideOptions()
{
	document.getElementById("optionsDiv").className="hidden";
	document.getElementById("modalDiv").className="hidden";
}

function delURLFilter(value)
{
	var urlfilter = GM_getValue('urlfilter');
	urls = urlfilter.split("@@@");
	for (var i = 0; i < urls.length; i++)
	{
		if (value == urls[i]) 
			urls.splice(i,1);
	}
	urlfilter = urls.join("@@@");
	document.getElementById("urlfilters").innerHTML="";
	for (var z=0;z<urls.length;z++)
		document.getElementById("urlfilters").innerHTML+='<option value="'+urls[z]+'">'+urls[z]+'</option>';
	GM_setValue('urlfilter',urlfilter);
}

function addURLFilter(newURL)
{
	var urlfilter = GM_getValue('urlfilter');
	urls = urlfilter.split("@@@");
	already = 0;
	for (var i=0; i<urls.length;i++)
		if (newURL == urls[i]) already = 1;
	if (already==1)
		alert("Keyword already exists");
	else
		(urlfilter=="") ? urlfilter = newURL : urlfilter += "@@@" + newURL;
	GM_setValue('urlfilter',urlfilter);
	urls = urlfilter.split("@@@");
	document.getElementById("urlfilters").innerHTML="";
	for (var z=0;z<urls.length;z++)
		document.getElementById("urlfilters").innerHTML+='<option value="'+urls[z]+'">'+urls[z]+'</option>';
}

function deltagFilter(value)
{
	var tagfilter = GM_getValue('tagfilter');
	tags = tagfilter.split("@@@");
	for (var i = 0; i < tags.length; i++)
	{
		if (value == tags[i]) 
			tags.splice(i,1);
	}
	tagfilter = tags.join("@@@");
	document.getElementById("tagfilters").innerHTML="";
	for (var z=0;z<tags.length;z++)
		document.getElementById("tagfilters").innerHTML+='<option value="'+tags[z]+'">'+tags[z]+'</option>';
	GM_setValue('tagfilter',tagfilter);
}

function addtagFilter(newtag)
{
	var tagfilter = GM_getValue('tagfilter');
	tags = tagfilter.split("@@@");
	already = 0;
	for (var i=0; i<tags.length;i++)
		if (newtag == tags[i]) already = 1;
	if (already==1)
		alert("Keyword already exists");
	else
		(tagfilter=="") ? tagfilter = newtag : tagfilter += "@@@" + newtag;
	GM_setValue('tagfilter',tagfilter);
	tags = tagfilter.split("@@@");
	document.getElementById("tagfilters").innerHTML="";
	for (var z=0;z<tags.length;z++)
		document.getElementById("tagfilters").innerHTML+='<option value="'+tags[z]+'">'+tags[z]+'</option>';
}

function showOptions()
{
	
	var div1=document.getElementById("modalDiv");
	if (div1==null)
	{
		GM_addStyle("#modalDiv{position:fixed; top:0px; left:0px; z-index:200; width:100%; height:100%; background-color:black; opacity:0.75;}");
		GM_addStyle(".hidden{display:none; visibility:hidden;}");
		div1=document.createElement("DIV");
		div1.id="modalDiv";
		div1.className="hidden";
		div1.title="Click to cancel and close";
		document.body.appendChild(div1);
		div1.addEventListener("click",hideOptions,false);
	}
	var div2=document.getElementById("optionsDiv");
	if (div2==null)
	{
		GM_addStyle(".optionsTable{border-width: 1px 1px 1px 1px; border-spacing: 2px; border-style: solid solid solid solid; border-color: black black black black; border-collapse: collapse;}");
		GM_addStyle("#optionsDiv{position:fixed; top:10%; left:20%; z-index:210; width:50%; height:80%; background-color:white; border:solid 3px #0033CC; overflow:auto;}");
		div2=document.createElement("DIV");
		div2.id="optionsDiv";
		div2.className="hidden";
		div2.setAttribute("style","text-align:justify;padding:10px");
		var text1="<center><u><b><font size=\"+1\">Fark Anal Reverteresque ReDux Options</b></font></u><br><font size=\"-2\">Another <a href=\"http://userscripts.org/scripts/show/8821\" target=\"_blank\">Smiths Greasemonkey Script</a></font></center><p>";
		text1+="<form id=\"FAR\" name=\"titleform\">"
		text1+="<table class=\"optionsTable\" width=\"100%\"><tr><td width=33%>Current URL Filters:</td><td width=33%><select id=\"urlfilters\"></select></td>"
		text1+="<td width=33%><input id=\"delfilterbutton\" type=\"button\" value=\"Remove URL Filter\"></button></td></tr>"
		text1+="<p><tr><td width=33%>Add URL Keyword:</td><td width=33%><input id=\"newURL\" type=\"text\"></td><td width=33%><input id=\"addfilterbutton\" type=\"button\" value=\"Add URL Filter\"></button></td></tr></table>"
		text1+="<p><table class=\"optionsTable\" width=\"100%\"><tr><td width=33%>Current Tag Filters:</td><td width=33%><select id=\"tagfilters\"></select></td>"
		text1+="<td width=33%><input id=\"deltagfilterbutton\" type=\"button\" value=\"Remove Tag Filter\"></button></td></tr>"
		text1+="<p><tr><td width=33%>Add Tag Keyword:</td><td width=33%><input id=\"newtag\" type=\"text\"></td><td width=33%><input id=\"addtagfilterbutton\" type=\"button\" value=\"Add Tag Filter\"></button></td></tr></table>"
		text1+="<p><table class=\"optionsTable\" width=\"100%\">"
		text1+="<p><tr><td width=33%>Hide advertisements:<br><input type=\"radio\" id=\"hideadson\" name=\"embed\" value=\"1\"/> Enabled<br><input type=\"radio\" id=\"hideadsoff\" name=\"embed\" value=\"0\"/> Disabled<br></td></tr></table>"
		text1+="<p><table class=\"optionsTable\" width=\"100%\">"
		text1+="<p><tr><td width=33%>Hide t-shirt icons:<br><input type=\"radio\" id=\"hideshirtson\" name=\"embed2\" value=\"1\"/> Enabled<br><input type=\"radio\" id=\"hideshirtsoff\" name=\"embed2\" value=\"0\"/> Disabled<br></td></tr></table>"
		text1+="<p><table class=\"optionsTable\" width=\"100%\">"
		text1+="<p><tr><td width=33%>Hide Political Meter:<br><input type=\"radio\" id=\"PITAon\" name=\"embed3\" value=\"1\"/> Enabled<br><input type=\"radio\" id=\"PITAoff\" name=\"embed3\" value=\"0\"/> Disabled<br></td></tr></table>"
		text1+="<p><center><input type=\"button\" value=\"Ok\" id=\"okButton\" />   <input type=\"button\" value=\"Cancel\" id=\"cancelButton\" /></center></form>";
		div2.innerHTML=text1;
		
		document.body.appendChild(div2);
		document.getElementById("delfilterbutton").addEventListener("click",function(){delURLFilter(document.getElementById("urlfilters").options[document.getElementById("urlfilters").selectedIndex].value);},false);
		document.getElementById("addfilterbutton").addEventListener("click",function(){addURLFilter(document.getElementById("newURL").value);document.getElementById("newURL").value = "";},false);
		document.getElementById("deltagfilterbutton").addEventListener("click",function(){deltagFilter(document.getElementById("tagfilters").options[document.getElementById("tagfilters").selectedIndex].value);},false);
		document.getElementById("addtagfilterbutton").addEventListener("click",function(){addtagFilter(document.getElementById("newtag").value);document.getElementById("newtag").value = "";},false);
		document.getElementById("okButton").addEventListener("click",function(){saveOptions();hideOptions();location.reload(true);},false);
		document.getElementById("cancelButton").addEventListener("click",function(){hideOptions();},false);
	}
	document.getElementById("optionsDiv").className="";
	document.getElementById("modalDiv").className="";
	setOptions();
	div1.className="";
	div2.className="";
}

//Comments Farky Style
if (document.location.href.match(/http:\/\/[^fc].*\.f[oa][or][bk].*\.com/) != null) //fark or foobies
{
	var headlines = document.evaluate('//tr[@class="headlineRow"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

	//record comments on click (thread||comments)
	function recordcomments(id)
	{
		postcounts = GM_getValue('postcounts');
		if (!postcounts) { postcounts = ""; }
		currentcheck = postcounts.split(",");
		for (var i=0; i<currentcheck.length; i++)
		{
			if (id.substr(0,7) == currentcheck[i].substr(0,7))
			{ 
				currentcheck.splice(i,1);
				document.getElementById(id).innerHTML = "(" + id.substr(9) + ")";
			}
		}
		postcounts = currentcheck.join();
		(postcounts == "") ? postcounts = id : postcounts += "," + id;
		GM_setValue('postcounts',postcounts);
	}

	function pluscomments(post)
	{
		postcounts = GM_getValue('postcounts');
		if (!postcounts) { postcounts = ""; }
		oldcheck = postcounts.split(",");
		if (oldcheck.length > 300) oldcheck.splice(0, 50); //store only the last 300 clicked, just for size's sake, trim by 50 each time
		if (post.substr(9,1).match(/\d/) != null) document.getElementById(post).innerHTML = "(+" + post.substr(9) + ")";
		for (var i=0; i<oldcheck.length; i++)
		{
			if (post.substr(0,7) == oldcheck[i].substr(0,7))
			{ 
				//this has been clicked before, compare values -- not sure how it'll work for the "too many" and "sq root"
				if (post.substr(9,1).match(/[0-9]/) != null)
				{
					newposts = post.substr(9) - oldcheck[i].substr(9);
					if (newposts > 0) document.getElementById(post).innerHTML = "(" + oldcheck[i].substr(9) + " + " + newposts + ")";
					else if (newposts == 0) document.getElementById(post).innerHTML = "(" + post.substr(9) + ")";
				}
				if (oldcheck[i].substr(9,1).match(/[0-9]/) == null)//it found the thread but the old click had special characters (lots, too many)
					document.getElementById(post).innerHTML = "(" + post.substr(9) + ")";
			}
		}
	
	}
	
	//add listener for comment links to record on click, and see if it's been clicked before
	for (var i = 0; i < headlines.snapshotLength; i++)
	{
		if (headlines.snapshotItem(i).innerHTML.match(/More .* links \.\.\./) > -1)
		{
			j=1;
			if (headlines.snapshotItem(i).getElementsByTagName('a').item(1).href.indexOf('ordershirt.pl') > -1) j = 2;
			thread = headlines.snapshotItem(i).getElementsByTagName('a').item(j).href.match(/.*IDLink=([0-9]{7})/)[1];
			comments = headlines.snapshotItem(i).getElementsByTagName('a').item(j).innerHTML.match(/\((.*)\)/)[1];
			commentamounts = headlines.snapshotItem(i).getElementsByTagName('a').item(j);
			commentamounts.setAttribute("id",thread + "||" + comments);
			commentamounts.addEventListener('click', function(){recordcomments(this.id);}, true);
			pluscomments(commentamounts.id); //check if it's been clicked and compare comments
		}
	}

}


//Remove referrer, underline sources, oldschool, move or remove tshirts
if (document.location.href.match(/http:\/\/[^fc].*\.f[oa][or][bk].*\.com/) != null) //fark or foobies
{
	var headlines = document.evaluate('//tr[@class="headlineRow"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
	var theLink, theComments;
	for (var i = 0; i < headlines.snapshotLength; i++) {
		if (headlines.snapshotItem(i).getElementsByTagName('a').item(0) != null) {
			theLink = headlines.snapshotItem(i).getElementsByTagName('a').item(0);
			j=1;
			if (headlines.snapshotItem(i).getElementsByTagName('a').item(1).href.indexOf('ordershirt.pl') > -1)
			{
				shirtlink = headlines.snapshotItem(i).getElementsByTagName('a').item(1);
				//shirtlink.getElementsByTagName('img').item(0).setAttribute('hspace','10');
				comments = headlines.snapshotItem(i).getElementsByTagName('a').item(2);
				(hideshirts) ? shirtlink.parentNode.removeChild(shirtlink) : comments.parentNode.insertBefore(shirtlink, comments.nextsibling);
			}
			theComments = headlines.snapshotItem(i).getElementsByTagName('a').item(j);
			theLink.href = unescape(theLink.href.replace(/http:\/\/go.fark.com\/cgi\/fark\/go.pl\?i=[^>]+&l=/g, ''));
			theLink.href = unescape(theLink.href.replace(/http:\/\/www.totalfark.com\/cgi\/fark\/go.pl\?i=[^>]+&l=/g, ''));
			if (theLink.innerHTML.indexOf('img') != 1)
			{
				theLink.innerHTML = theLink.innerHTML.replace(/\(([^<]+)\)/,"(<u>$1</u>)");
			}
			theComments.innerHTML = theComments.innerHTML.replace(/\(([^<]+)\)/,"(<u>$1</u>)");
			theComments.target = "_blank";
		}
	}

	var tags = document.evaluate('//td[@width="38"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
	for (var j = 0; j < urls.length; j++)
	{
		for (var i = 0; i < headlines.snapshotLength; i++)
		{
			if ((urls[j] != "") && (headlines.snapshotItem(i).getElementsByTagName('a').item(0) != null) && (headlines.snapshotItem(i).getElementsByTagName('td').item(0).innerHTML.search(urls[j]) != -1))
				headlines.snapshotItem(i).parentNode.removeChild(headlines.snapshotItem(i));
		}
	}
	for (var j = 0; j < filteredtags.length; j++)
	{
		for (var i = 0; i < tags.snapshotLength; i++)
		{
			if ((filteredtags[j] != "") && (tags.snapshotItem(i).innerHTML.search(filteredtags[j]) != -1))
				headlines.snapshotItem(i).parentNode.removeChild(headlines.snapshotItem(i));
		}
	}
}

if (hideads) //remove some adbars
{
	var remove = ['bodyRightSideContainer', 'topAd728x90', 'footer','rightSideLeftMenubar'];
	for (var i = 0; i < remove.length; i++) 
	{
		var adSidebar = document.getElementById(remove[i]);
		if (adSidebar) 
		{
			adSidebar.parentNode.removeChild(adSidebar);
		}
	}
	if (document.getElementById('bodyHeadlineContainer')) document.getElementById('bodyHeadlineContainer').style.width = "90%";
	if (document.getElementById('TFbodyHeadlineContainer')) document.getElementById('TFbodyHeadlineContainer').style.width = "90%";
	if (document.getElementById('bodycontentframe')) document.getElementById('bodycontentframe').style.width="90%";
}

//Screw the stupid PITA Meter thingy
if (PITA)
{
	var trs = document.evaluate('//tr', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
	for (var i = 0; i < trs.snapshotLength; i++)
	{
		if (trs.snapshotItem(i).getElementsByTagName('td').item(0).innerHTML.indexOf("Fark.com's&nbsp;&nbsp;<span style=\"font-si") > -1)
		{
			trs.snapshotItem(i).parentNode.removeChild(trs.snapshotItem(i));
			trs.snapshotItem(i+1).parentNode.removeChild(trs.snapshotItem(i+1));
		}
	}
}

//remove MyFark from the top bar
var navbar, myfark, topbarmyfark;
myfark = document.getElementsByTagName('li');
for (var i = 0; i < myfark.length; i++) {
    topbarmyfark = myfark[i];
    if ((topbarmyfark.innerHTML.indexOf('users.pl?self=1') != -1) || (topbarmyfark.innerHTML.indexOf('Contests.html') != -1 )){
	topbarmyfark.innerHTML = '';
	}
}

//Farkyish posts -- improved w/less external loading -- based off of the excellent mikeruhlin script "Farkyish Comments"
//http://userscripts.org/scripts/show/8954
if (document.location.href.match(/cgi\/fark/) == null) {

GM_xmlhttpRequest({
	method:"GET",
	url:"http://cgi.fark.com/cgi/fark/users.pl?self=1",
	headers:{"User-Agent":"monkeyagent"},
	onload:function(details)
	{
		var myThreads = new Array();
		details.responseText = details.responseText.replace(/\*/g,'B');
		myThreads = details.responseText.match(/last post.*\/td>\s*.*\/td>\s*.*\/td>\s*.*<a target=\"_blank\" href=\"http:\/\/forums\.fark\.com\/cgi\/fark\/comments\.pl\?IDLink=([0-9]{7})\">/g);
		var headline = document.evaluate('//tr[@class="headlineRow"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
		for(i=0; i<headline.snapshotLength; i++){
			for(j=0; j<myThreads.length; j++){
				threadno = myThreads[j].match(/IDLink=([0-9]{7})/)
				if(headline.snapshotItem(i).getElementsByTagName('a').item(1))
				{
					k=1;
					if (headlines.snapshotItem(i).getElementsByTagName('a').item(1).href.indexOf('ordershirt.pl') > -1) k = 2;
					if(headline.snapshotItem(i).getElementsByTagName('a').item(k).href.search(threadno[1]) > -1){
						//I've commented here!
						headline.snapshotItem(i).getElementsByTagName('a').item(k).style.color = "red";
						headline.snapshotItem(i).getElementsByTagName('a').item(k).style.fontWeight = "bold";
					}
				}
			}
		}
	}
});

}
//makeTab function to add MyFark back on the bar, create your own!
function makeTab(text, classname, href, nextto)
{
    nextto == null ? navbar = document.getElementById("bodyTabTFVoting") : navbar = document.getElementById(nextto);
	if (navbar) 
	{
		newTab = document.createElement('a');
		newTab.setAttribute('href', href);
		newTab.setAttribute('id', classname);
		var tabText = document.createTextNode(text);
		newTab.appendChild(tabText);
		navbar.parentNode.insertBefore(newTab, navbar.nextSibling);
	}
}

//non-TF voting tab; I like having it too
makeTab("Voting","bodyTabVoting","http://www.fark.com/LinkVote.html","bodyTabAll");
//MyFark
makeTab("MyFark","bodyTabSports","http://cgi.fark.com/cgi/fark/users.pl?self=1","bodyTabVoting");
//Foobies
makeTab("Foobies","bodyTabShowbiz","http://www.foobies.com/","bodyTabVoting");

//add a little "arrow" if post mentions your name
if (document.location.href.match(/http:\/\/forums\.fark\.com/) != null) 
{
	var myname = document.body.innerHTML.match(/Logged in as '(.*)'/)[1];
	myname = myname.toLowerCase();
	var highlight = "data:image/gif,GIF89a%10%00%10%00%F7%00%00%00%00%00%FF%FF%FF%F8%FA%F9%F5%F7%F6%AD%E1%BE%7D%A2%89%82%9A%8A%DB%F3%E3%EA%F0%EC%E6%EC%E8%F5%F8%F6%19%C5P%1F%DF%5B%17%A8D!%D5X'%F1f%18%95%3E(%D7%5D%26%C6W%1D%8E%3F%1A%7F85%F4n7%F6q%14P%26%19%5C-%1C%5B%2FP%F1%80D%80Wj%C6%86%81%EC%A2%86%F3%A73%5B%3F2W%3DL%7D%5B%9D%E9%B5T%7C%60%5D%86j%5D%85i%5E%85jz%9F%85%7D%9D%87%C2%F0%D0%7D%9B%86%83%9D%8B%CC%EF%D7%D8%F1%E0%19u4*%BBT%1F%89%3D%1Bn3%19c.%3F%F1r%26%93D%3D%E7m-%ABP%26%91D3%BFZ-%A5N%13F%223%B6W%23h7X%ED%83G%B6g%20M-0kA%2B%5E%3Av%FC%9C4oE2d%40%83%F7%A4DwS%8E%F7%AC%97%FD%B3%95%FA%B1AjMLzYJwWb%92p%A1%EF%B7%A7%E2%B8%2B%9DJ*%97G%1Fi2%20j3%3C%C0_.%91GG%D1k%2CyA%2Bf%3Ab%E7%85R%B7me%CD%81%7F%F8%9E%84%E7%9D%90%F5%AA~%D0%93%9B%FD%B5%9A%FC%B3%9C%FD%B5R%85_%5E%8Aj%A9%F5%BD%9E%E5%B1%8F%CA%9Ec%85lc%82k2%97K%25o7%26p7%25n6D%C6dD%C4dR%EBxP%DEsF%BFb1%84D%5C%E7%7C%40%97T9%7DJh%DE%85%5D%C4vf%D2%80%B1%F9%C3%93%CA%A0%B9%FB%C8%5C%7Cd6%8FJ%3E%9DR3%81D5%84F%3E%9ARV%CAoK%B1%60j%ED%85%7C%D6%8FM%81X%96%EA%A8JpR%9B%D2%A7%95%CA%A1%40%93OG%A1XB%93QU%BAiv%F8%90k%DF%80%3E%81Ks%EC%89N%9A%5C%97%F6%A9%96%F0%A8%8C%D0%99%EA%EF%EBJ%A0YH%9CWf%CEwM%9CZh%CExU%A8br%DD%83%9F%EE%AC%93%D2%9DR%A1%5Ez%E5%8A%7B%DC%89%3FmF%3EiDm%C5wL%87S%93%D8%9B%7C%D0%84~%CF%85%95%E5%96%7C%BB%7B%93%D7%8F%B5%E3%A6%B4%DA%9F%06%06%04%0A%0A%07%0E%0E%0A%07%07%05%16%16%10%0B%0B%08%1E%1E%16%0F%0F%0B%1F%1F%17%1B%1B%14%17%17%11%1C%1C%15%14%14%0F%10%10%0C%0C%0C%09%08%08%06%04%04%03%15%15%10%0D%0D%0A%09%09%07%01%01%01%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%C6%00%2C%00%00%00%00%10%00%10%00%00%08%FF%00%8D%11%C3U%8BW%AE%5B%BAz%0D%03%16%AC%18%00%00%C6hE%A8%20%04%09%181a%92%1C%F1%D0A%04%8B%16%00d%BD%A8%B1%E5%CC%9EE%8A%F8%E8)%E3%24%C5%01%02%C5%86%E5%E0%B1%A1%84%09%13%23%C6%80%B2%D4%C5%CC%13%0E%C1~Eqs%A5%89%80%00%01NdP%F5%C9%D0%17%1F%B2%88%DD%A0B%A7%CE%10%04H%13%04A%95%EA%92%16_%B4%60%EC%883i%D5%05%14H%07%F4I%14%0A%CF%AE%60%14lX%89%C4%EAU%A94H%03%18%00%91%87W0%17P%E4tr%05%CB%14%9A%BC%2B%3E%DC%E1%15%2BF%15B%A7Z%E9P%81T%01%99C%88%B2%EC%226%C5%CF%23ID0!E%00%84R%25%2F%3D%7C%D9Z%23%08%0B%89%A3%01%0A%60%20%05%89K%11%0D%B2%86%B1%F9%A1%84%C9%92%10F%EC%8C*%04g%86%85%07%C1dI%99%13%C8%11'Q%9E6%0Dz%83C%82%03%06%C5h%C9h%03%88%91%A6L%8D%FE%A8%14%A11%01B%83%05%10%07%16%CC%95K%97%B0Y%0C%1DB%0C%08%00%3B";
	var posts = document.evaluate('//div[@class="ctext"]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

	var myNameCount = 0;
	for (var i = 0; i < posts.snapshotLength; i++)
	{
		if (posts.snapshotItem(i).innerHTML.toLowerCase().indexOf(myname) > -1)
		{
			highlighttag = document.createElement('span');
			tagHTML = '<a href="#mentions_' +myname+ '_' +(myNameCount+1)+ '" name="mentions_' +myname+ '_' +(myNameCount)+ '" id="mentions_' +myname+ '_' +(myNameCount)+ '">';
			tagHTML += '<img style="float:left;position:relative; left:-10px;top:1px;" src="' + highlight + '" border="0">';
			tagHTML += '</a>';
			highlighttag.innerHTML = tagHTML;
			posts.snapshotItem(i).parentNode.insertBefore(highlighttag, posts.snapshotItem(i));
			myNameCount++;
		}
	}
	if(myNameCount > 0){
		// Link the last tag back to the first.
		var lastMyName = document.getElementById('mentions_' +myname+ '_' + (myNameCount-1));
		lastMyName.href = '#mentions_' + myname + '_0';
	}

	// Add total count...
	myNameCountLink = '<br><a href="#mentions_' + myname + '_0">' + myNameCount + ' Comment' + ((myNameCount>1)?'s':'') +' mentioned you.</a><br>';

	// Top of page
	var commentsHeader = document.getElementById("commentsHeader");
	commentsHeader.innerHTML += myNameCountLink;
	// Bottom of page
	bottomSpan = document.createElement('span');
	bottomSpan.innerHTML = myNameCountLink;
	var bottomOfPage = document.getElementById("commentsPostingArea");
	bottomOfPage.parentNode.insertBefore(bottomSpan, bottomOfPage);
}