/*

Link Thumbnail v1.9.1
(c) Arc90, Inc.

http://www.arc90.com
http://lab.arc90.com

Licensed under : Creative Commons Attribution 2.5 http://creativecommons.org/licenses/by/2.5/

*/

/* Globals */
var linkthumb_navigator = navigator.userAgent.toLowerCase();
var linkthumb_isOpera = linkthumb_navigator.indexOf('opera') >= 0? true: false;
var linkthumb_isIE = linkthumb_navigator.indexOf('msie') >= 0 && !linkthumb_isOpera? true: false;
var linkthumb_isSafari = linkthumb_navigator.indexOf('safari') >= 0 || linkthumb_navigator.indexOf('khtml') >= 0? true: false;
var linkthumb_linkThumbUseClassName = true;

function linkthumb_linkpic() {
	var b = document.domain;
	var A = document.getElementsByTagName('A');

	for (var i = 0, l = A.length, c = 0; i < l; i++) {
		var a = A[i];
		var h = a.href;
		if ((b == '' || h.indexOf(b) < 0) && h.indexOf('://') > 0 && ((linkthumb_linkThumbUseClassName && a.className.indexOf('linkthumb') >= 0) || !linkthumb_linkThumbUseClassName)) {
			try {
				a.className += ' linkthumb_linkpicLNK';
				if (a.id == '')
					a.id = 'linkthumb_link'+ i;
				var d = linkthumb_newNode('div', 'linkthumb_linkpic'+ i, 'linkthumb_linkpic');
				var m = linkthumb_newNode('img', '', 'linkthumb_linkpicIMG');
				var n = h.replace(/[^:]*:\/\/([^:\/]*)(:{0,1}\/{1}.*)/, '$1');
//				m.src = 'http://thumbnails.alexa.com/image_server.cgi?size=small&url=http://'+ n;
//alert(debugmenow);
m.src = 'http://msnsearch.srv.girafa.com/srv/i?s=MSNSEARCH&r='+ n;
				m.border = 0;
				m.alt = '[Picture of '+ n +']';
				m.title = a.title;
				d.style.zIndex = '9999';
				d.style.position = 'absolute';

				d.appendChild(m);
				document.body.appendChild(d);

				linkthumb_addEvent(a, 'mouseover',	function () { linkthumb_showThumb(linkthumb_isIE? event.srcElement.id: this.id); } );
				linkthumb_addEvent(a, 'mouseout',	function () { linkthumb_hideThumb(linkthumb_isIE? event.srcElement.id: this.id); } );
			} catch(err) {
				a = null;
			}

		}
		else
		{
			
			if ((b == '' || h.indexOf(b) > 0) && ((linkthumb_linkThumbUseClassName && a.className.indexOf('internalthumb') >= 0)))
			{
					a.className += ' linkthumb_linkpicLNK';
					if (a.id == '')
						a.id = 'linkthumb_link'+ i;
					var InternalUrlPrefix = '?page=';
					var d = linkthumb_newNode('div', 'linkthumb_linkpic'+ i, 'linkthumb_linkpic');
					var m = linkthumb_newNode('img', '', 'linkthumb_linkpicIMG');
			//alert(debugmenow);
					var n = h.substr(h.indexOf(InternalUrlPrefix) + InternalUrlPrefix.length);
					n = n.replace(/[^:]*:\/\/([^:\/]*)(:{0,1}\/{1}.*)/, '$1');
	//				m.src = 'http://thumbnails.alexa.com/image_server.cgi?size=small&url=http://'+ n;
	
					//m.src = 'sb/simatek-bulk.stepwise.dk__page_'+ n + '.jpg';
					m.src = '\\common\\imggen.asp?url='+ n + '_lang_' + cG_ASP_LangIdent;
	//alert("m.src: " + m.src);
					m.border = 0;
					m.alt = '[Picture of '+ n +']';
					m.title = a.title;
					d.style.zIndex = '9999';
					d.style.position = 'absolute';
					d.style.display = 'none';
	
					d.appendChild(m);
					document.body.appendChild(d);
	
					linkthumb_addEvent(a, 'mouseover',	function () { linkthumb_showThumb(linkthumb_isIE? event.srcElement.id: this.id); } );
					linkthumb_addEvent(a, 'mouseout',	function () { linkthumb_hideThumb(linkthumb_isIE? event.srcElement.id: this.id); } );
			}		
		}
	}
}

function linkthumb_showThumb(id) {
///	try {
		var k = document.getElementById(id);
		var top = linkthumb_findDimension(k, 'Top');
		var lnh = linkthumb_getStyle(k, 'lineHeight', 'font-size');
		var default_height = 20;

		if (!lnh)
			lnh = default_height;
		else if (lnh.indexOf('pt') > 0)
			lnh = parseInt(lnh) * 1.3;
		else if (lnh.indexOf('em') > 0)
			lnh = parseInt(lnh) * 10;
		else if (lnh.indexOf('px') > 0)
			lnh = parseInt(lnh);
		else if (linkthumb_isNumeric(lnh))
			lnh = parseInt(linkthumb_isIE? lnh * 10: linkthumb_isOpera? lnh/100: lnh); // IE brings back em units
		else
			lnh = default_height;
		var lft = linkthumb_findDimension(k, 'Left') + 50;
		var nlf = linkthumb_findMatchingDimensionViaNodes(k, 'Left', lft, 0);
		var pid = id.replace(/linkthumb_link/, 'linkthumb_linkpic');
		var p = document.getElementById(pid);
		p.style.display = 'block';
//		p.style.top = (top + lnh + (linkthumb_isIE && nlf? lnh + 8: 0) + 4) + 'px';
		p.style.top = (top + (linkthumb_isIE && nlf? lnh + 8: 4) + lnh) + 'px';
		p.style.left = lft + 'px';
///var w = document.body.scrollWidth;
///p.style.visibility = 'hidden';
/* // Code to offset pics that show up on the right and go off the page, causes flickering though
var pw = linkthumb_findDimension(p, 'Width');
window.scrollBy(pw,0);
var nw = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft; //linkthumb_getWindowWidth();
window.scrollBy(pw * -1, 0);
if (nw > 0 && nw <= pw)
	lft -= nw;
p.style.left = lft + 'px';
p.style.visibility = 'visible';
*/
///	} catch(err) { return; }
}

function linkthumb_hideThumb(id) {
	try {
		var k = document.getElementById(id);
		var pid = id.replace(/linkthumb_link/, 'linkthumb_linkpic');
		var p = document.getElementById(pid);
		p.style.display = 'none';
	} catch(err) { return; }
}

function linkthumb_getStyle(obj, styleIE, styleMoz) {
	if (linkthumb_isString(obj)) obj = document.getElementById(obj);
	if (obj.currentStyle)
		return obj.currentStyle[styleIE];
	else if (window.getComputedStyle)
		return document.defaultView.getComputedStyle(obj, null).getPropertyValue(styleMoz);
}

function linkthumb_findDimension(obj, pType) {
	if (linkthumb_isString(obj)) obj = document.getElementById(obj);
	var cur = 0;
	if(obj.offsetParent)
		while(obj.offsetParent) {
			switch(pType.toLowerCase()) {
			case "width":
				cur += obj.offsetWidth; break;
			case "height":
				cur += obj.offsetHeight; break;
			case "top":
				cur += obj.offsetTop; break;
			case "left":
				cur += obj.offsetLeft; break;
			}
			obj = obj.offsetParent;
		}
	return cur;
}

function linkthumb_findMatchingDimensionViaNodes(obj, pType, matching, notMatching) {
	var cur = 0, counter = 0;
	notMatching = notMatching == null? -1: notMatching;
	if(obj.parentNode)
		while(obj.parentNode) {
			cur = linkthumb_findDimension(obj, pType);
			if (cur == matching && cur != notMatching)
				counter++;
			if (counter >= 2) return true;
			obj = obj.parentNode;
		}
	return false;
}

/* Events */
function linkthumb_isString(o) { return (typeof(o) == "string"); }

function linkthumb_isNumeric(o) { return (typeof(parseFloat(o).toString() == 'NaN'? 'xxx': parseFloat(o)) == "number" && parseFloat(o) != ''); }

function linkthumb_addEvent(e, meth, func, cap) {
	if (linkthumb_isString(e))	e = document.getElementById(e);

	if (e.addEventListener){
		e.addEventListener(meth, func, cap);
    	return true;
	}	else if (e.attachEvent)
		return e.attachEvent("on"+ meth, func);
	return false;
}

/* Nodes */
function linkthumb_newNode(t, i, s, x, c) {
	var node = document.createElement(t);
	if (x != null && x != '') {
		var n = document.createTextNode(x);
		node.appendChild(n);
	}
	if (i != null && i != '')
		node.id = i;
	if (s != null && s != '')
		node.className = s;
	if (c != null && c != '')
		node.appendChild(c);
	return node;
}

/* Onload */
linkthumb_addEvent(window, 'load', linkthumb_linkpic);


