// ==UserScript==
// @name           KalluX AD-remover
// @namespace      http://www.kallux.com/
// @description    Removes unwanted advertising elements
// @include        *
// ==/UserScript==

	var patterns = new Array(
		"emediate",
		"admeta",
		"adsby",
		"adicate",
		"facebook.com/ac.php",
		"flingwebads",
		"yourminis.com",
		"sidebar_ads",
		"epicserve.net",
		"banner_iframe.php",
		"67.228.130.66",
		"fbexchange.com",
		"mnjump.com",
		"banners.adultfriendfinder",
		"socialcash.com",
		"fmpub.net",
		"fb.rockyou.com/ams/ad",
		"fbads-",
		"pop6.com",
		"media.tattomedia",
		"ads.ak",
		"socialmedia.com",
		"adcontent.",
		"ads.socialmedia.com",
		"2mdn.net",
		"comclick.com",
		"google_ads_frame",
		"adheader",
		"adlink",
		"annons",
		"pagead",
		"services.google",
		"googlesyndication",
		"ar.atwola",
		"ad.tomshardware",
		"doubleclick.",
		"adserver",
		"adtech",
		"ad.aftonbladet.se",
		"ad1.",
		"ad2.",
		"webtraffic",
		"mediaplex",
		"ads.pr.",
		"valueclick",
		"tradedoubler",
		"itrack.it",
		"adaction",
		"adtoma",
		"connextra",
		"admeta",
		"serving-sys.com",
		"extern.prisjakt",
		"adfair",
		"adsense",
		"sponsoredlinks",
		"adfarm",
		"tribalfusion",
		"atdmt",
		"2mdn.net",
		"adimage",
		"fastclick",
		"ad.uk"
	);

	var allElements, thisElement;
	
	allElements = document.getElementsByTagName('*');
	//GM_log(allElements.length);
	for (var i = 0; i < allElements.length; i++) 
	{
		thisElement = allElements[i];
		for (var j = 0; j < patterns.length; j++) 
		{
			try
			{
				if (thisElement.id.match(patterns[j]) || thisElement.src.match(patterns[j]))
				{	
					//GM_log("Removed: "+ thisElement);
					if(thisElement.parentNode && thisElement.width)
						thisElement.parentNode.replaceChild(createImageFrom(thisElement), thisElement);
					else
						thisElement.style.display = "none";
				}
			}
			catch (err){}
		}
	}

	function createImageFrom(element)
	{
		newElement = document.createElement('img');
		newElement.src = 'data:image/gif;base64,R0lGODlhDQAOAJEAANno6wBmZgAAAAAAACH5BAAAAAAALAAAAAANAA4AQAIjjI8Iyw3GhACSQecutsFV3nzgNi7SVEbo06lZa66LRib2UQAAOw%3D%3D';
		newElement.width = element.width;
		newElement.height = element.height;
		newElement.style.width = element.style.width;
		newElement.style.height = element.style.height;
		newElement.style.display = "block";
		return newElement;
	}
