//Rich HTML Balloon Tooltip: http://www.dynamicdrive.com/dynamicindex5/balloontooltip.htm
//Created: September 10th, 2006

var disappeardelay=250  //tooltip disappear delay (in miliseconds)
var verticaloffset=0 //vertical offset of tooltip from anchor link, if any
var enablearrowhead=1 //0 or 1, to disable or enable the arrow image
var arrowheadimg=["http://healthit.ahrq.gov/menu_script/arrowdown.gif", "http://healthit.ahrq.gov/menu_script/arrowup.gif"] //path to down and up arrow images
var arrowheadheight=11 //height of arrow image (amount to reveal)

/////No further editting needed

var ie=document.all
var ns6=document.getElementById&&!document.all
verticaloffset=(enablearrowhead)? verticaloffset+arrowheadheight : verticaloffset

function ballonGetposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function ballonShowhide(obj, e){
ballonDropmenuobj.style.left=ballonDropmenuobj.style.top="-500px"
if (e.type=="mouseover")
obj.visibility="visible"
}

function ballonIecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ballonClearbrowseredge(obj, whichedge){
if (whichedge=="rightedge"){
edgeoffsetx=0
var windowedge=ie && !window.opera? ballonIecompattest().scrollLeft+ballonIecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
ballonDropmenuobj.contentmeasure=ballonDropmenuobj.offsetWidth
if (windowedge-ballonDropmenuobj.x < ballonDropmenuobj.contentmeasure)
edgeoffsetx=ballonDropmenuobj.contentmeasure-obj.offsetWidth
return edgeoffsetx
}
else{
edgeoffsety=0
var topedge=ie && !window.opera? ballonIecompattest().scrollTop : window.pageYOffset
var windowedge=ie && !window.opera? ballonIecompattest().scrollTop+ballonIecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
ballonDropmenuobj.contentmeasure=ballonDropmenuobj.offsetHeight
if (windowedge-ballonDropmenuobj.y < ballonDropmenuobj.contentmeasure) //move up?
edgeoffsety=ballonDropmenuobj.contentmeasure+obj.offsetHeight+(verticaloffset*2)
return edgeoffsety
}
}

function displayballoontip(obj, e){ //main ballooon tooltip function
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
if (typeof ballonDropmenuobj!="undefined") //hide previous tooltip?
ballonDropmenuobj.style.visibility="hidden"
ballonClearhidemenu()
//obj.onmouseout=ballonDelayhidemenu
ballonDropmenuobj=document.getElementById(obj.getAttribute("rel"))
ballonShowhide(ballonDropmenuobj.style, e)
ballonDropmenuobj.x=ballonGetposOffset(obj, "left")
ballonDropmenuobj.y=ballonGetposOffset(obj, "top")+verticaloffset
ballonDropmenuobj.style.left=ballonDropmenuobj.x-ballonClearbrowseredge(obj, "rightedge")+"px"
ballonDropmenuobj.style.top=ballonDropmenuobj.y-ballonClearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
if (enablearrowhead)
displaytiparrow()
}

function displaytiparrow(){ //function to display optional arrow image associated with tooltip
tiparrow=document.getElementById("arrowhead")
tiparrow.src=(edgeoffsety!=0)? arrowheadimg[0] : arrowheadimg[1]
var ieshadowwidth=(ballonDropmenuobj.filters && ballonDropmenuobj.filters[0])? ballonDropmenuobj.filters[0].Strength-1 : 0
//modify "left" value depending on whether there's no room on right edge of browser to display it, respectively
tiparrow.style.left=(edgeoffsetx!=0)? parseInt(ballonDropmenuobj.style.left)+ballonDropmenuobj.offsetWidth-tiparrow.offsetWidth-10+"px" : parseInt(ballonDropmenuobj.style.left)+5+"px"
//modify "top" value depending on whether there's no room on right edge of browser to display it, respectively
tiparrow.style.top=(edgeoffsety!=0)? parseInt(ballonDropmenuobj.style.top)+ballonDropmenuobj.offsetHeight-tiparrow.offsetHeight-ieshadowwidth+arrowheadheight+"px" : parseInt(ballonDropmenuobj.style.top)-arrowheadheight+"px"
tiparrow.style.visibility="visible"
}

function ballonDelayhidemenu(){
delayhide=setTimeout("ballonDropmenuobj.style.visibility='hidden'; ballonDropmenuobj.style.left=0; if (enablearrowhead) tiparrow.style.visibility='hidden'",disappeardelay)
}

function ballonClearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

function reltoelement(linkobj){ //tests if a link has "rel" defined and it's the ID of an element on page
var relvalue=linkobj.getAttribute("rel")
return (relvalue!=null && relvalue!="" && document.getElementById(relvalue)!=null && document.getElementById(relvalue).className=="balloonstyle")? true : false
}

function initalizetooltip(){
var all_links=document.getElementsByTagName("a")
if (enablearrowhead){
tiparrow=document.createElement("img")
tiparrow.setAttribute("src", arrowheadimg[0])
tiparrow.setAttribute("id", "arrowhead")
document.body.appendChild(tiparrow)
}
for (var i=0; i<all_links.length; i++){
if (reltoelement(all_links[i])){ //if link has "rel" defined and it's the ID of an element on page
all_links[i].onmouseover=function(e){
var evtobj=window.event? window.event : e
displayballoontip(this, evtobj)
}
all_links[i].onmouseout=ballonDelayhidemenu
}
}
}
