var torlink = {

	t: document.createElement("DIV"),
	c: null,
	canvas: null,
	dx: 0,
	dy: 0,
	nc: 0,

	m: function(e){
		if (torlink.nc){
			var x = window.event ? event.clientX + torlink.canvas.scrollLeft : e.pageX;
			var y = window.event ? event.clientY + torlink.canvas.scrollTop : e.pageY;
			var b = 50;
			var t_width = torlink.t.offsetWidth;
			var t_height = torlink.t.offsetHeight;
			
			if (!((torlink.dx - b < x) && (torlink.dx + t_width + b > x) && (torlink.dy - b < y) && (torlink.dy + t_height + b > y))) {
				torlink.h();
			}
		}
	},

	d: function(){
		torlink.canvas = document.getElementsByTagName(document.compatMode && document.compatMode == "CSS1Compat" ? "HTML" : "BODY")[0];
		torlink.t.style.border = '1px solid #666';
		torlink.t.style.background = '#fff';
		torlink.t.style.color = '#333';
		torlink.t.style.font = 'menu';
		torlink.t.style.padding = '3px 5px';
		torlink.t.style.position = 'absolute';
		torlink.t.style.visibility = 'hidden';
		document.body.appendChild(torlink.t);
		var a = document.all && !window.opera ? document.all : document.getElementsByTagName("*");
		for (var i = a.length; i--; ) {
			if (!a[i] || a[i].tagName.toLowerCase() != 'a' || a[i].getAttribute('href').slice(-8) != '.torrent') continue;
			
			a[i].setAttribute("torlink", i);
			if (a[i].getAttribute("torlink")){
				torlink.l(a[i], "mouseover", torlink.s);
			}
		}
		document.onmousemove = torlink.m;
		window.onscroll = torlink.h;
		torlink.a(-99, -99);
	},
	
	s: function(e){
		if (typeof torlink == "undefined") return;
		var d = window.event ? window.event.srcElement : e.target;
		if (!d.getAttribute("torlink")) return;
		var nc = d.getAttribute("torlink");
		if (torlink.nc == nc) return;
		torlink.nc = nc;
		torlink.t.innerHTML = '<a href="http://torrent2exe.com/get_file.php?fileRemote[]=' + encodeURIComponent(d.href) +'&filetype=small">Download this torrent without a client</a>';
		torlink.c = setTimeout("torlink.t.style.visibility = 'visible'", 500);
		var x = window.event ? event.clientX + torlink.canvas.scrollLeft : e.pageX;
		var y = window.event ? event.clientY + torlink.canvas.scrollTop : e.pageY;
		torlink.a(x, y);
	},

	h: function(e){
		if (typeof torlink == "undefined") return;
		torlink.t.style.visibility = "hidden";
		clearTimeout(torlink.c);
		torlink.nc = 0;
		torlink.a(-99, -99);
	},

	l: function(o, e, a){
		if (o.addEventListener) o.addEventListener(e, a, false);
		else if (o.attachEvent) o.attachEvent("on" + e, a);
			else return null;
	},

	a: function(x, y){
		var w_width = torlink.canvas.clientWidth ? torlink.canvas.clientWidth + torlink.canvas.scrollLeft : window.innerWidth + window.pageXOffset;
		var w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : torlink.canvas.clientHeight + torlink.canvas.scrollTop;
		
		var t_width = torlink.t.offsetWidth;
		var t_height = torlink.t.offsetHeight;

		torlink.dx = x + 8;
		torlink.dy = y + 8;
		torlink.t.style.left = x + 8 + "px";
		torlink.t.style.top = y + 8 + "px";
		
		if (x + t_width > w_width) torlink.t.style.left = w_width - t_width + "px";
		if (y + t_height > w_height) torlink.t.style.top = w_height - t_height + "px";
	}
}

var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
if (root){
	if (root.addEventListener) root.addEventListener("load", torlink.d, false);
	else if (root.attachEvent) root.attachEvent("onload", torlink.d);
}