/*javascript for Bubble Tooltips by Alessandro Fulciniti
- loosely based upon http://pro.html.it - http://web-graphics.com */
/* Re-written to work well by Chris Rigg-Milner */

function enableTooltips()
{
	// input parameters in c argc argv format
	var ArgumentCount;
	var ArgumentValues;
	var id,inKlass,inEltType;

	var i,h;
	var links = new Array();
	
	// Does browser support the DOM
	if(!document.getElementById || !document.getElementsByTagName) 
		return;
	
	ArgumentValues = enableTooltips.arguments;
	ArgumentCount = enableTooltips.arguments.length;

	if(ArgumentCount<3)
		return;
			
	id = (ArgumentCount > 0) ? ArgumentValues[0] : null;
	inEltType = (ArgumentCount > 1) ? ArgumentValues[1] : null;
	inKlass = (ArgumentCount > 2) ? ArgumentValues[2] : null;
	
	AddCss();

	// create a span tag and store in the documents <body> tag
	// for use later to attach the tooltip to for displaying
	h=document.createElement("span");
	h.id="btc";
	h.setAttribute("id","btc");
	h.style.position="absolute";
	document.getElementsByTagName("body")[0].appendChild(h);

	links = document.getElementById(id).getElementsByTagName(inEltType);			// get all div tags in whole document

	var n=0;
	for (i=0;i<links.length;i++)
	{
		var klass = links[i].className;
		if ( klass!= null || klass==undefined)
		{
			if (klass == inKlass)
			{
				Prepare( links[i] );
				n++;
			}
		}
	}		
}

function Prepare(el){
	var tooltip,titleTxt,s1,s2;
	titleTxt=el.getAttribute("title");
	if(titleTxt!=null && titleTxt.length>0) 
	{
		// remove the title attribute from our element
		el.removeAttribute("title");
		tooltip=CreateEl("div","tooltip");
		s1=CreateEl("div","inner");
		s2=CreateEl("div","txt");
		//s2.appendChild(document.createTextNode(titleTxt));
		s2.innerHTML = titleTxt;
		s1.appendChild(s2);
		tooltip.appendChild(s1);
	}
	setOpacity(tooltip);
	el.tooltip=tooltip;
	el.onmouseover=showTooltip;
	el.onmouseout=hideTooltip;
	el.onmousemove=Locate;
}

function CreateEl(sTag,sClass){
	var x=document.createElement(sTag);
	x.className=sClass;
	return(x);
}

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 AddCss(){
	var l=CreateEl("link");
	l.setAttribute("type","text/css");
	l.setAttribute("rel","stylesheet");
	l.setAttribute("href","style/bt.css");
	l.setAttribute("media","screen");
	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;
	        }
	    }
	document.getElementById("btc").style.top=(posy+10)+"px";
	document.getElementById("btc").style.left=(posx+10)+"px";
}