// ==UserScript==
// @name           Hide Google sponsored links
// @namespace      http://djce.org.uk/greasemonkey
// @description    Hides Google sponsored links by default
// @include        http://www.google.co.uk/search?*
// @include        http://www.google.com/search?*
// ==/UserScript==

try {
	{
		if (!(document.title.match(/- Google Search/)))
			return;

		function make_toggler(ele)
		{
			var l = document.createElement("a");
			l.style.display = "block";
			l.appendChild(document.createTextNode("toggle ads"));
			l.setAttribute("href", "javascript:");

			var orig_display = ele.style.display;

			var h = function(evt) {
				with (ele.style)
				{
					display = ((display == orig_display) ? "none" : orig_display);
				}
				if (evt) evt.stopPropagation();
			};

			l.addEventListener("click", h, false);

			var tl = ele.offsetLeft;
			var tt = ele.offsetTop;
			l.style.position = "absolute";
			l.style.left = tl+"px";
			l.style.top = (tt-10)+"px";

			l.style.background = "#fff";
			l.style.color = "#ccc";

			ele.parentNode.insertBefore(l, table);
			h(null);
		}

		// Finds right-hand links table
		var t = document.getElementsByTagName("table");
		for (var i=0; i<t.length; ++i)
		{
			var table = t[i];

			var txt = table.innerHTML;
			if (!txt) continue;
			if (!txt.match(/Sponsored Links/)) continue;

			var bw = document.body.offsetWidth;
			var tw = table.offsetWidth;
			var tl = table.offsetLeft;
			if (!(tw < bw/2 && tl > bw/2)) continue;

			make_toggler(table);
		}

		// Finds top-of-results links div
		var t = document.getElementById("tads");
		if (t) make_toggler(t);
	}
} catch(e) {
	alert("Error: "+e);
}

