/*javascript for Bubble Tooltips by Alessandro Fulciniti
- http://pro.html.it - http://web-graphics.com */

/*
modified - YB
 - http://www.journaldunet.com/developpeur/tutoriel/dht/060512-5-javascripts-vraiment-utiles.shtml
*/

function getElementsByClass(node, searchClass, tag) {
  var classElements = new Array();
  var i,j;
  if ( node == null )
    node = document;
  if ( tag == null )
    tag = '*';
  var els = node.getElementsByTagName(tag);
  var elsLen = els.length;
  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
  for ( i = 0, j = 0; i < elsLen; i++) {
    if ( pattern.test(els[i].className) ) {
      classElements[j] = els[i];
      j++;
    }
  }
  return classElements;
}


function enableTooltips(){
  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);

  links=getElementsByClass(document,'tooltiplink','a')
  for(i=0;i<links.length;i++){
    Prepare(links[i]);
  }

}

function Prepare(el){
  var tooltip,t,b,s,l;
  t=el.getAttribute("title");
  var arrayT = t.split("-");
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("img","top");
  s.setAttribute("src",arrayT[0]);
  if (arrayT.length>1) {
    s.setAttribute("width",arrayT[1]);
    s.setAttribute("height",arrayT[2]);
  }
  tooltip.appendChild(s);
  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-50)+"px";
  //document.getElementById("btc").style.left= (posx-20-document.getElementById("btc").offsetWidth)+"px";
  document.getElementById("btc").style.left= (posx-20-620)+"px";
}


