/**
 * javascript for Bubble Tooltips by Alessandro Fulciniti
 *
 * http://pro.html.it - http://web-graphics.com 
 */

function enableTooltips(id) {
	var links, i, h;

	if (!document.getElementById || !document.getElementsByTagName) {
		return;
	}

	if (!document.getElementById('btc')) {
		AddCss();

		h = document.createElement("div");
		h.id = "btc";
		h.setAttribute("id", "btc");
		h.style.position = "absolute";
		h.style.zIndex ="9000";

		document.getElementsByTagName("body")[0].appendChild(h);
	}

	if (id == null) {
		links = document.getElementsByTagName("a");
	} else {
		links = document.getElementById(id).getElementsByTagName("a");
	}

	for (i=0; i<links.length; i++) {
		if (links[i].getAttribute("title") && !links[i].getAttribute("rel")) {
			Prepare(links[i]);
		}
	}
}

function Prepare(el){
	var tooltip,t,b,s,l;

	t=el.getAttribute("title");

	if (t==null || t.length==0) {
		t="link:";
	}

	el.removeAttribute("title");
	tooltip=CreateEl("span","tooltip");
	s=CreateEl("span","top");

	s.appendChild(document.createTextNode(t));

	tooltip.appendChild(s);

	b = CreateEl("b", "bottom");
	l = el.getAttribute("href");

	if (l && l.length > 30) {
		l = l.substr(0,27) + "...";
	}
	/*
	b.appendChild(document.createTextNode(l));
	*/
	tooltip.appendChild(b);
	setOpacity(tooltip);

	var inner = tooltip.innerHTML;
	inner = inner.replace(/&lt;/g, "<");
	inner = inner.replace(/&gt;/g, ">");
	tooltip.innerHTML = inner;
	/*alert(inner);*/
	el.tooltip = tooltip;
	el.onmouseover = showTooltip;
	el.onmouseout = hideTooltip;
	el.onmousemove = Locate;
}

function showTooltip(e){
	document.getElementById("btc").appendChild(this.tooltip);
	Locate(e);
}

function hideTooltip(e){
	var d = document.getElementById("btc");
	
	if (d.childNodes.length > 0) {
		d.removeChild(d.firstChild);
	}
}

function setOpacity(el){
	/*
	el.style.filter="alpha(opacity:90)";
	el.style.KHTMLOpacity="0.90";
	el.style.MozOpacity="0.90";
	el.style.opacity="0.90";
	*/
}

function CreateEl(t, c){
	var x=document.createElement(t);
	x.className = c;
	x.style.display = "block";
	return(x);
}

function AddCss(){
	var l = CreateEl("link");

	l.setAttribute("type","text/css");
	l.setAttribute("rel","stylesheet");
	l.setAttribute("href","/jscript/lib/bubbletooltips/bubbletooltips.css");
	l.setAttribute("media","screen, projection");
	
	document.getElementsByTagName("head")[0].appendChild(l);
}

function Locate(e){
	var posx=0, posy=0;

	if (e == null) {
		e = window.event;
	}
	if (e.pageX || e.pageY){
		posx = e.pageX;
		posy = e.pageY;
    } else if (e.clientX || e.clientY) {
		if (document.documentElement.scrollTop){
			posx = e.clientX+document.documentElement.scrollLeft;
			posy = e.clientY+document.documentElement.scrollTop;
        } else {
			posx = e.clientX+document.body.scrollLeft;
			posy = e.clientY+document.body.scrollTop;
        }
	}
	
	var viewDim = document.viewport.getDimensions();
	var viewOffset = document.viewport.getScrollOffsets();
	var deltaX = 15;

	if (viewDim && viewDim.width && (viewDim.width - 215) < posx) {
		deltaX = -215;
	}

	//document.getElementById("btc").innerHTML = viewDim.width+' - '+viewOffset.left+' - '+posx;

	document.getElementById("btc").style.top = (posy+15)+"px";
	document.getElementById("btc").style.left = (posx+deltaX)+"px";
}

addOnLoadListener(enableTooltips, null);