// ==UserScript==
// @name        Add relevant links to epguides.com tv-show grid
// @namespace   http://tefra.fi/software/greasemonkey/
// @include     http://epguides.com/grid/
// @include     http://*.epguides.com/grid/
// ==/UserScript==

// Link icon container system ripped from Slashdot add mirrors ( http://www.cs.uni-magdeburg.de/~vlaube/Projekte/GreaseMonkey/ )


var piratebayicon = "data:image/x-icon;base64,Qk04AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAAAAADgTAAA4EwAAAAAAAAAAAAA/////////////////////////////////////////////////////v7+/////////////Pz8vb297Ozs////////////////////////////////4uLiSUlJ3d3d////////8/PzEhIScnJy8fHx////////////////////8fHxwsLCWFhYAAAAyMjI////////5+fnEBAQICAgQkJCV1dXZWVli4uLiYmJUlJSKioqPT09bm5uHh4eYWFhwcHBubm5bGxsQEBAp6end3d3FBQUAAAAFBQUOTk5ISEhGRkZPT09WVlZQkJCKioqJycnenp6AAAAQUFBPz8/YGBgjo6O0dHR+/v7////////7+/vxcXFnZ2dg4ODExMTQEBAv7+/AAAAgoKCjo6OpaWltra2qqqqpqampaWlpKSkra2tr6+vsbGx5eXll5eXW1tb1NTUcXFxmJiYAwMDAAAANzc3VFRUGxsbAAAAX19fPDw8ERERAAAAQUFB/v7+/Pz8////////nJycAAAAAAAAAAAAHx8fCwsLAAAAJiYmBQUFAAAAAAAAKysr+vr6////////////nJycAAAAAAAADw8PAAAAAAAAAAAAAAAADQ0NAwMDAAAANjY2+vr6////////////rq6uAAAANjY25eXlWVlZHx8fJycnIyMj0dHRhoaGAAAAV1dX////////////////r6+vAAAALS0t0tLSX19fsrKy2dnZZWVlsrKyiIiIAAAAWVlZ////////////////r6+vAAAAAAAABQUFAgICExMTEBAQAwMDAwMDAQEBAAAAWlpa////////////////q6urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVFRU////////////////19fXSUlJQUFBQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQkJCQkJCqKio/////////////////////////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+////////////AAA=";
// just the google icon to fill in blanks
var genericicon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAiklEQVQY02MUjfmmFxPFgAuIxnz7jwNcU9BngSjae%2FbDxJUPj1z%2BxMDAYKPLlx8u72wswMDAwASRnrjyIQMDw%2BoW3XfbbfPD5SFchOGCHof2nHmPaTgTpmuEPA8LeR6GsKHSNrp8E1c%2B3Hv2A8QKG10%2BiDjUaRD7Qmsuw51GlMcYnXcE4AqSyRn3Abz4culPbiCuAAAAAElFTkSuQmCC";

var background_left   = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAOCAYAAADqtqZhAAAAZklEQVQI153OuwmAMBhF4ZOk%2BBuFgJbqCu7gBI6UWZzAEawcRC0VhNikCFj4wNpbna%2B7CqAbmxpw6o5BRKwGnIjYsqjQQJtlOcYYNECapAAXnv2GP%2FyLfttWYoxowIUQ9nmZUN%2BjJzhhGYq8ft%2BLAAAAAElFTkSuQmCC";
var background_middle = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAOCAYAAADuQ3ZcAAAAHElEQVQI12NYdMzpP5O6mgYDEwMDAznEzVs3GADbhgXE7HIXAgAAAABJRU5ErkJggg%3D%3D";
var background_right  = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAOCAYAAADqtqZhAAAAdklEQVQI153OIQ6DQBQA0elfsaYkJFtZegU8aoOr6wl6Fs6CqyonQOIQXAGQJWmymC82raAC3XHPDXVXPuuuzAEOj%2F76UdU34CU7X7DWpkAlxhicOwHcBCA5JgAIu%2F5GWMOGGCPL8gJoZJpHfjuVqGoD%2BHvRDl9lDiMntdjqogAAAABJRU5ErkJggg%3D%3D";

function addGlobalStyle(css)
{
	var head, style;
	head = document.getElementsByTagName('head')[0];
	if (!head) { return; }
	style = document.createElement('style');
	style.type = 'text/css';
	style.innerHTML = css;
	head.appendChild(style);
}

addGlobalStyle("a.piratebayicon, a.genericicon { padding-left: 15px; background: center no-repeat;}");
addGlobalStyle("a.piratebayicon { background-image: url(" + piratebayicon + ");}");
addGlobalStyle("a.genericicon { background-image: url(" + genericicon + ");}");
addGlobalStyle("a.piratebayicon:hover, a.mininovaicon:hover, a.genericicon:hover { opacity: 0.5; }");
addGlobalStyle("div.container { display:inline; white-space:nowrap;}");
addGlobalStyle("div.backgroundimage_left, div.backgroundimage_middle, div.backgroundimage_right { display: inline; background-repeat: no-repeat; background-position: center;}");
addGlobalStyle("div.backgroundimage_left { padding-left: 3px; background-image:url(" +  background_left + ");}");
addGlobalStyle("div.backgroundimage_middle { background-image:url(" +  background_middle + "); background-repeat: repeat-x; }");
addGlobalStyle("div.backgroundimage_right { padding-left: 3px; background-image:url(" +  background_right + ");}");


var allLinks, thisLink;
// find all links that have a href starting with "../"
allLinks = document.evaluate(
    '//a[starts-with(@href, "../")]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
    
for (var i = 0; i < allLinks.snapshotLength; i++) {    
    link = allLinks.snapshotItem(i);

    // add container
	container = document.createElement("div");
	container.className = "container";
	link.parentNode.insertBefore(container, link.nextSibling);
	
	// add background
	background_left = document.createElement("div");
	background_left.className = "backgroundimage_left";
	container.appendChild(background_left);	
	background_middle = document.createElement("div");
	background_middle.className = "backgroundimage_middle";
	container.appendChild(background_middle);	
	background_right = document.createElement("div");
	background_right.className = "backgroundimage_right";
	container.appendChild(background_right);

	// piratebay
	anchor = document.createElement("a");
	anchor.href = "http://thepiratebay.org/search.php?q="+link.innerHTML+"&video=on";
	anchor.title = "The Pirate Bay";
	anchor.className = "piratebayicon";
	background_middle.appendChild(anchor);
			
	// mininova
	anchor = document.createElement("a");
	anchor.href = "http://www.mininova.org/search/?search="+link.innerHTML+"&cat=8";
	anchor.title = "Mininova";
	anchor.className = "genericicon";
	background_middle.appendChild(anchor);

	// torrentspy	
	anchor = document.createElement("a");
	anchor.href = "http://www.torrentspy.com/search.asp?query="+link.innerHTML;
	anchor.title = "Torrentspy";
	anchor.className = "genericicon";
	background_middle.appendChild(anchor);
}
