/* our grossly elaborate pop-up informational bubbles ...
	used almost exclusively in the homepage footer */

function enableTooltips(id) {	// fetch all the titles and enable the popup box
  var links, i, h;

	if (!document.getElementById || !document.getElementsByTagName) return;
	AddCss ();
	h = document.createElement ("span");
	h.id = "helper_window";
	h.setAttribute("id","helper_window");
	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;

	t = el.getAttribute("title"); // check for the title; it's the info that goes in the bubble
	  if (t == null || t.length == 0) return; // if there's no title in the link, return nothing

	el.removeAttribute("title");
	tooltip = CreateEl("span","tooltip");
	s = CreateEl("span","top");
	s.appendChild(document.createTextNode(t));
	tooltip.appendChild(s);
	b = CreateEl("b","bottom");
	tooltip.appendChild(b);
	setOpacity(tooltip);
	el.tooltip = tooltip;
	el.onmouseover = showTooltip;
	el.onmouseout = hideTooltip;
	el.onmousemove = Locate;
}

function showTooltip(e) {
	document.getElementById("helper_window").appendChild(this.tooltip);
	Locate(e);
}

function hideTooltip(e) {	// make the thing go away when you're done
  var d = document.getElementById("helper_window");

	if(d.childNodes.length>0) d.removeChild(d.firstChild);
}

function setOpacity(el) {	// optional opacity setting for transparency effects.
	el.style.filter = "alpha(opacity:100)";
	el.style.KHTMLOpacity = "1.0";
	el.style.MozOpacity = "1.0";
	el.style.opacity = "1.0";
}

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","helper.css");
//	l.setAttribute("media","screen");

	document.getElementsByTagName("head")[0].appendChild(l);
}

function Locate(e) {	// placement
  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("helper_window").style.top = (posy-10)+"px";
	document.getElementById("helper_window").style.left = (posx+10)+"px";
}