/*javascript for Bubble Tooltips by Alessandro Fulciniti
- http://pro.html.it - http://web-graphics.com */
/* MODIFIED by Ben
	1) added "BB_" infront of a number of function names and 
	globals to stop conflict with layercrossfader code used also on pages
	
	2) Put hide timer in to stop flicker in IE when sliding mouse
	  over the object with tooltip.
*/

var BB_opacity = 90;

function enableTooltips(id){
	var links,i,h;
	if(!document.getElementById || !document.getElementsByTagName) return;
	BB_AddCss();
	h=document.createElement("span");
	h.id="btc";
	h.setAttribute("id","btc");
	h.style.position="absolute";
	document.getElementsByTagName("body")[0].appendChild(h);

	var tags = new Array('span'); // Chris : swopped to 'span' tags rather than 'div' tags
	
	//var tags = new Array('table');
	for(var x=0; x<tags.length; x++){
		if(id==null) links=document.getElementsByTagName(tags[x]);
		else links=document.getElementById(id).getElementsByTagName(tags[x]);
		for(i=0;i<links.length;i++){
			BB_Prepare(links[i]);
		}
	}
}

function BB_Prepare(el){
	var tooltip,t,b,p,i,s,l;
	t=el.getAttribute("title");
	if(t==null || t.length==0) return;
	el.removeAttribute("title");

	tooltip=BB_CreateEl("span","tooltip");
	var bits = t.split('~');
	if(bits.length>1) {  
		i = BB_CreateEl("img","");
		i.setAttribute("src",bits[1]);
		tooltip.appendChild(i);
		if(bits.length>1) {
			b = BB_CreateEl("i","");
			b.appendChild(document.createTextNode(bits[0]));
			tooltip.appendChild(b);
			if(bits.length>2) { 
				p = BB_CreateEl("p","");
				p.appendChild(document.createTextNode(bits[2]));
				tooltip.appendChild(p);
			}
		}
	}
	BB_setOpacity(tooltip,BB_opacity);
	el.tooltip=tooltip;
	el.onmouseover=BB_showTooltip;
	el.onmouseout=BB_hideTooltip;
	//el.onmousemove=BB_Locate;
}

function WORKINGPrepare(el){
	var tooltip,t,b,s,l;
	t=el.getAttribute("title");
	if(t==null || t.length==0) return;
	el.removeAttribute("title");
	tooltip=BB_CreateEl("span","tooltip");
	s=BB_CreateEl("span","top");
	s.appendChild(document.createTextNode(t));
	tooltip.appendChild(s);
	//l=el.getAttribute("href");
	//if(l.length>30) l=l.substr(0,27)+"...";
	//b.appendChild(document.createTextNode(l));
	BB_setOpacity(tooltip,BB_opacity);
	el.tooltip=tooltip;
	el.onmouseover=BB_showTooltip;
	el.onmouseout=BB_hideTooltip;
	//el.onmousemove=BB_Locate;
}

var TID=null;
function BB_showTooltip(e){
	var d=document.getElementById("btc");
	if(d.childNodes.length>0) d.removeChild(d.firstChild);
	d.appendChild(this.tooltip);
	BB_Locate(e);
	if (TID) clearTimeout(TID);
}

//-----------------------------------------------------
// mod by Ben to stop flicker of picture in IE
function BB_hideTooltip(e){
	TID=setTimeout("BB_timed_hideTooltip()",100);
}


function BB_timed_hideTooltip(){
	var d=document.getElementById("btc");
	if(d.childNodes.length>0) d.removeChild(d.firstChild);
}

//-------------------------------------------------------


//Ben:  used same function code as layerfader
	function BB_setOpacity(obj, opacity) {
		// IE/Win							// problem with IE opacity filter and jpgs found 16/10/2006
		if (opacity ==100){
			obj.style.filter = "";
			opacity = 99.999;
		}else{
			obj.style.filter = "alpha(opacity:"+opacity+")";
		}
		// Safari<1.2, Konqueror
		obj.style.KHTMLOpacity = opacity/100;
		// Older Mozilla and Firefox
		obj.style.MozOpacity = opacity/100;
		// Safari 1.2, newer Firefox and Mozilla, CSS3
		obj.style.opacity = opacity/100;
	}



function BB_CreateEl(t,c){
	var x=document.createElement(t);
	x.className=c;
	x.style.display="block";
	return(x);
}

function BB_AddCss(){
	var l=BB_CreateEl("link");
	l.setAttribute("type","text/css");
	l.setAttribute("rel","stylesheet");
	l.setAttribute("href","/css/tooltip.css");
	l.setAttribute("media","screen");
	document.getElementsByTagName("head")[0].appendChild(l);
}

function BB_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-20)+"px";
}