Source for "digg - add mirrors"

By Jordi De Groof
Has 8 other scripts.


// ==UserScript==
// @name        digg - add mirrors
// @namespace   http://jordi.degroof.googlepages.com/
// @description Adds links to DuggMirror (http://dugmirror.com/), Coral Cache (http://www.coralcdn.org/), DuggBack (http://www.duggback.com/) and Archive.org wayback machine (http://web.archive.org) to every story on digg
// @source       http://userscripts.org/scripts/show/7585
// @identifier http://userscripts.org/scripts/review/7585?format=txt
// @version     1.6.6
// @date        2007-11-11
// @include     http://digg.com/*
// @include     http://*.digg.com/*
// @include     *#digg_link=*
// @include     http://*duggmirror.com/*
// ==/UserScript==

// Version History
// 1.6..6 -- speed improvement
// 1.6.5 -- opera fixes: apparrently Opera doesn't like firebug's console object, nor GM_xmlhttprequest
// 1.6.4 -- no injection on compact widgets
//	aesthetic update: mirrors are displayed centered
//	update to make it work with ADC v0.9
// 1.6.3.1 -- fixed an error in autoupdate
// 1.6.3 -- update autoupdate to work with new userscripts.org layout
// 1.6.2 -- improved ADC compability
//	Now works correctly with digg's new comment system (thanks to jackyyll)
// 1.6.1 -- changed coral to use port 8080, instead of the deprecated 8090
//	Improved availability check
// 1.6 -- added automatic availability check of stories
//	Wayback now redirects automatically to most recent page
//	Replaced Google cache by DuggBack
// 1.5.3  -- fixed update code again, hope it works properly now
// 1.5.2 -- fixed update code
// 1.5.1 -- forgot to include reference to *#digg_link=*, so the mirrors are added with ADC, but invisible because the frame is to small
// 1.5 -- added support for Add Digg Control


if(!GM_xmlhttpRequest)
{
  // Dummy GM_xmlhttpRequest to keep opera happy
  function GM_xmlhttpRequest(details) {
  return false;
  }
}

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);
}

function addStyle()
{
//console.time("digg - add mirrors - addstyle");
	var duggmirroricon	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs%2B9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAF%2FSURBVHjaJM6%2Fq9pAAAfwr5cQbQJnBE%2BHJ0UQIVOXgrh0cJJHwalDt46dSvc3dOjWtZtL1%2Fc3FOnQrYqPiNAlYsQKgj8bPHIXzXHXoZ%2B%2F4FMYDofgnD9XSjHf95%2FK5XKhWCz%2B8DyPKqVwu92ibrf73pZSgjH2qVQqtY7H47vL5fInCIJeEASQUiKKopdpmn6x6%2FX642AweOu6Lkaj0c8wDL8xxmStVnvGOcf1esVsNvtcGI%2FHptPpQAiB%2BXwOzjk8zwOlFJvNBkIIEEJAhBCXNE0RxzF2ux0YY6CUYrvdghCCdrsNrfVfe7lcvlmtVh%2FzPK8CiGzbftXv95utVgvGGCwWC0gpYSulRkmSZEqpe9%2F3H4wxX6WUH5IkgTEGp9MJzWYTdp7nL3q93iOl9G4ymfzSWmee52G9XkMIAdd1%2Fz%2B11q%2Br1epdo9GAZVkPaZpW4jjGfr%2FH%2BXzG4XCAZVkV23Gc39PpNHQcR0spvxNCjmEYPmVZBmMMpJSoVCr83wBXhcvVuvlWzQAAAABJRU5ErkJggg%3D%3D";
	var coralcacheicon	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs%2B9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89%2BbN%2FrXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz%2FSMBAPh%2BPDwrIsAHvgABeNMLCADATZvAMByH%2Fw%2FqQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf%2BbTAICd%2BJl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA%2Fg88wAAKCRFRHgg%2FP9eM4Ors7ONo62Dl8t6r8G%2FyJiYuP%2B5c%2BrcEAAAOF0ftH%2BLC%2BzGoA7BoBt%2FqIl7gRoXgugdfeLZrIPQLUAoOnaV%2FNw%2BH48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl%2FAV%2F1s%2BX48%2FPf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H%2FLcL%2F%2Fwd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s%2BwM%2B3zUAsGo%2BAXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93%2F%2B8%2F%2FUegJQCAZkmScQAAXkQkLlTKsz%2FHCAAARKCBKrBBG%2FTBGCzABhzBBdzBC%2FxgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD%2FphCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8%2BQ8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8%2BxdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR%2BcQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI%2BksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG%2BQh8lsKnWJAcaT4U%2BIoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr%2Bh0uhHdlR5Ol9BX0svpR%2BiX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK%2BYTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI%2BpXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q%2FpH5Z%2FYkGWcNMw09DpFGgsV%2FjvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY%2FR27iz2qqaE5QzNKM1ezUvOUZj8H45hx%2BJx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4%2FOBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up%2B6Ynr5egJ5Mb6feeb3n%2Bhx9L%2F1U%2FW36p%2FVHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm%2Beb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw%2B6TvZN9un2N%2FT0HDYfZDqsdWh1%2Bc7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc%2BLpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26%2FuNu5p7ofcn8w0nymeWTNz0MPIQ%2BBR5dE%2FC5%2BVMGvfrH5PQ0%2BBZ7XnIy9jL5FXrdewt6V3qvdh7xc%2B9j5yn%2BM%2B4zw33jLeWV%2FMN8C3yLfLT8Nvnl%2BF30N%2FI%2F9k%2F3r%2F0QCngCUBZwOJgUGBWwL7%2BHp8Ib%2BOPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo%2Bqi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt%2F87fOH4p3iC%2BN7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi%2FRNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z%2Bpn5mZ2y6xlhbL%2BxW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a%2FzYnKOZarnivN7cyzytuQN5zvn%2F%2FtEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1%2B1dT1gvWd%2B1YfqGnRs%2BFYmKrhTbF5cVf9go3HjlG4dvyr%2BZ3JS0qavEuWTPZtJm6ebeLZ5bDpaql%2BaXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO%2FPLi8ZafJzs07P1SkVPRU%2BlQ27tLdtWHX%2BG7R7ht7vPY07NXbW7z3%2FT7JvttVAVVN1WbVZftJ%2B7P3P66Jqun4lvttXa1ObXHtxwPSA%2F0HIw6217nU1R3SPVRSj9Yr60cOxx%2B%2B%2Fp3vdy0NNg1VjZzG4iNwRHnk6fcJ3%2FceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w%2B0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb%2B%2B6EHTh0kX%2Fi%2Bc7vDvOXPK4dPKy2%2BUTV7hXmq86X23qdOo8%2FpPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb%2F1tWeOT3dvfN6b%2FfF9%2FXfFt1%2Bcif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v%2B3Njv3H9qwHeg89HcR%2FcGhYPP%2FpH1jw9DBY%2BZj8uGDYbrnjg%2BOTniP3L96fynQ89kzyaeF%2F6i%2FsuuFxYvfvjV69fO0ZjRoZfyl5O%2FbXyl%2FerA6xmv28bCxh6%2ByXgzMV70VvvtwXfcdx3vo98PT%2BR8IH8o%2F2j5sfVT0Kf7kxmTk%2F8EA5jz%2FGMzLdsAAAAEZ0FNQQAAsY58%2B1GTAAAAIGNIUk0AAHolAACAgwAA%2Bf8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAC4SURBVHjajJAxCsJAEEX%2FBg9gYyEodilT7AHEC8TCItVcIidwT2BvnzqFOUByghRpAilsNmBhoZ7gWxjNGkT98BkGHm9gFEmYwjRZk03KUzmGEz3V19APz2ZlfCWp2KRKZvgSCaRVMCD%2BiCeBtL8gCaQFyZjcNiTodndbUu%2F1RVKxJGOQzIdQX%2BYPERcfwWMUsQBYAKylN76ddiEXBslRp8%2BfrUXs0KjI13e8bs4BbACsu%2F0AIL0PALvCrkT4yHQjAAAAAElFTkSuQmCC";
	var waybackicon		= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAvSURBVHjaYlipZfAfCBiQaQYGBgzMxIADADUxItM4FaKDEaxwlbbhf2QaGwAIMACO7RsUdiuurwAAAABJRU5ErkJggg==";
	var duggbackicon	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAABPUlEQVR42j2PsU7CYBgA7//5i61NpUaUgg4OMrRGSePiI7CYuPkUjhDewsTVTRMd7dDd3ZDUxaExxsmEoAJOBpB+Dkanu/FOXRsj3yKgFPwRfh1QSmEg0d8iOM0mWycnUK0yA2bAchhSPz6m8DzmIhiUYi2O2T09pVyr8Xh+jlOpsN/pYAcBb3nObDLBiAivd3eU63WqcYwXhgStFgvg4eKC0fMzXqmEujRGZiIstGYlitg+OmI6GpEnCdPBAEdrbEj0X7DjeWyEIV/DIcqyWN/ZwbVt9O8aGhH8MOTw7IxGu81TmvKRZRx0u7R6PbTrIiJolMKPIuwg4ClNmQ4GjPt93rOM1b098H0KEdSVMVK4LmZzk/HLC0vzORowvo/VaPCZ57iLRaJujLmdi1AUBapU+m8SEQoRtNZYcP8DP4x3gFrOVxsAAAAASUVORK5CYII=";

	var style= ".diggmirror a{float:left; background: none; opacity: 0.7; width: 10px; height: 10px; padding-bottom: 0px;} ";
	style+= ".diggmirror a:hover{opacity: 1;} ";
	style+= ".diggmirror a{margin: 4px 0px 0px 2px; padding: 0px 0px 0px 0px;} ";
	style+= "li.digg-it, li.undigg-it, li.dugg-it, li.buried-it{float:none; margin-top: 0.1px;} ";
	style+= ".diggmirror:after{content: '.'; visibility: hidden;} ";
	
	style+= ".duggmirror{background: no-repeat url("+ duggmirroricon +") center center !important; margin-left: 1px;} ";
	style+= ".coralcache{background: no-repeat url("+ coralcacheicon +") center center !important;} ";
	style+= ".duggback{background: no-repeat url("+ duggbackicon +") center center !important;} ";
	style+= ".wayback{background: no-repeat url("+ waybackicon +") center center !important;} ";
	
	addGlobalStyle(style);
//console.timeEnd("digg - add mirrors - addstyle");
}

function checkMirrors(link, dugglink)
{
	GM_xmlhttpRequest({
		method: 'HEAD',
		url: link.href,
		onload: function(responseDetails) {
		//GM_log("finished successful; status: " + responseDetails.status);
			if(Math.floor(responseDetails.status/100) === 5)
			{
				//GM_log(link.href + ": " + responseDetails.status);
				link.href= dugglink.replace(/digg\.com/, "duggmirror.com");
			}
		}
	});
	return;
}

function addIcons(node, target, href, dugglink)
{
	var anchor;
	
	// add container
	var container = document.createElement("li");
	container.className = "dugg-it diggmirror";

	//add duggmirror cache link
	anchor = document.createElement("a");
	anchor.href = dugglink.replace(/digg\.com/, "duggmirror.com");
	anchor.target = target;
	anchor.title = "DuggMirror";
	anchor.className= "duggmirror";
	container.appendChild(anchor);

	//add coral cache link
	anchor = document.createElement("a");
	anchor.href = href;
	anchor.host += ".nyud.net:8080";
	anchor.target = target;
	anchor.title = "Coral Cache - The Coral Content Distribution Network";
	anchor.className= "coralcache";
	container.appendChild(anchor);

	//add duggBack link
	anchor = document.createElement("a");
	anchor.href = dugglink.replace(/digg\.com/, "duggback.com");
	anchor.target = target;
	anchor.title = "DuggBack";
	anchor.className= "duggback";
	container.appendChild(anchor);
	
	// add archive.org link
	anchor = document.createElement("a");
	anchor.href = "http://web.archive.org/" + href;
	anchor.target = target;
	anchor.title = "Archive.org Wayback Machine";
	anchor.className= "wayback";
	container.appendChild(anchor);
	
	node.parentNode.appendChild(container);	// Add mirrors created in memory to real-life dom
}

function addMirrorList(link, idx)
{
	var node, dugglink;
	
	if(idx === null)	// The page contains only one diggbutton (eg story page)
	{
		node= document.getElementById("diglink1");
		dugglink= window.location.href.replace(/\/all/, '');
	}
	else 
	{
		node= document.getElementById("diglink" + idx);
		dugglink= document.getElementById("diggs" + idx).href;
	}
	
	if(!node && (idx === null))	// In case you perform a search, and only one item is found
	{
		node= document.getElementById("diglink0");
		dugglink= document.getElementById("diggs0").href;
	}
	
	if(!node) return;	// Exit when the node can't be found
	
	var href= link.href;
	var target= link.target; // Get target from link so all links on the page act the same (open in new tab or open in the same tab)
	
	addIcons(node, target, href, dugglink);
	
	checkMirrors(link, dugglink);
}

function addmirrors()
{
//console.time("digg - add mirrors");
	if ( location.pathname.indexOf('diggthis.php') !== -1 && window.location.hash.toString().indexOf('#adc_diggthis') === 0) // embedded widget?
	{
		var node= document.getElementById("diglink1");
		var target= "_top";
		var href= document.referrer;
		var dugglink= location.search;
			dugglink= dugglink.substring(3, dugglink.length);
		
		addIcons(node, target, href, dugglink);
	}
	else if( location.hostname.indexOf('digg.com') !== -1 )	//are we on the main digg site?
	{
		var xpath  = "//div[@class='news-body']/h3/a[@href][1]";
		var result = document.evaluate ( xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
		
		var resultLength= result.snapshotLength;
		
		if(resultLength < 1) return;

		if(resultLength === 1) addMirrorList (result.snapshotItem(0), null );
		else 
		{		
			var i= 0, j= 0;
			// Check wether a user has a #1 story set
			if(result.snapshotItem(0).parentNode.id === "title-1")
			{
				addMirrorList (result.snapshotItem(0), -1 );
				resultLength= resultLength-1;
			}
			else if(window.location.href.match(/users/))
			{
				i= 0;
				j= -1;
			}
			else
			{
				i=-1;
				j=-1;
			}
			
			// Add mirrors to all other stories
			var k= resultLength;
			do
			{
				addMirrorList (result.snapshotItem(k+j), k+i );
			} while(--k);
		}
	}
//console.timeEnd("digg - add mirrors");
}

//Are we on a page with ADC box?
if ( location.hash.indexOf('#digg_link=') === 0 || location.hostname.indexOf("duggmirror.com") === 0 )
{
	var controlIframe= document.getElementById("diggControlIframe");
	if(controlIframe) // Resize ADC box when found, else wait till page is loaded
	{
		controlIframe.height= 100;
	}
	else
		window.addEventListener("load", function(){var controlIframe= document.getElementById("diggControlIframe"); if(controlIframe) controlIframe.height= 100;}, false);		
}
else if(location.href.indexOf('&s=compact') === -1) // No need to execute when the control is compact, no mirrors will be displayed anyway
{
	addStyle();
	addmirrors();
}

// update automatically (http://userscripts.org/scripts/show/2296)
var SCRIPT = {
		name: "digg - add mirrors",
		namespace: "http://jordi.degroof.googlepages.com/",
		source: "http://userscripts.org/scripts/show/7585",			// script homepage
		identifier: "http://userscripts.org/scripts/review/7585?format=txt",
		version: "1.6.6",								// version
		date: (new Date(2007, 11 -1, 11))		// update date
		.valueOf()
};
try {
	window.addEventListener("load", function () {
		try {
			unsafeWindow.UserScriptUpdates.requestAutomaticUpdates(SCRIPT);
		} catch (ex) {}
	}, false);
} catch (ex) {}