/* ---- bubbleTooltips.js ---- */
// 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;
	h=document.createElement("span");
	h.id="btc";
	h.setAttribute("id","btc");
	h.style.position = "absolute";

	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++){Prepare(links[i]);}
}

function Prepare(el){
    var tooltip, t, b, s, l;
	t=el.getAttribute("title");
	if(t==null || t.length==0) t=":-)";
	el.removeAttribute("title");
	tooltip=CreateEl("span","tooltip");
	s = CreateEl("span", "top");

    //customized appendChild section to check for br tags in title and add them as necessary to output
	if (t.indexOf("<br />")>0) {
	    var subT = t.split("<br />");
	    for (x = 0; x < subT.length; x++) {
	        if (subT[x] != "") {
	            s.appendChild(document.createTextNode(subT[x]));
	            s.appendChild(document.createElement("br"));
	        }
	    }
	}
	else {
	    s.appendChild(document.createTextNode(t));
	} 	
	
	tooltip.appendChild(s);
	b=CreateEl("span","bottom");
	l=el.getAttribute("href");
	if(l.length>30) l=l.substr(0,27)+"...";
	b.appendChild(document.createTextNode(l));
	tooltip.appendChild(b);
	setOpacity(tooltip);
	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:95)";
	el.style.KHTMLOpacity="0.95";
	el.style.MozOpacity="0.95";
	el.style.opacity="0.95";
}
function CreateEl(t,c){var x=document.createElement(t); x.className=c; x.style.display="block"; return(x);}
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;}
		}
	document.getElementById("btc").style.top=(posy+15)+"px";
	document.getElementById("btc").style.left=(posx-0)+"px";
}
