/***********************************************
* Show Hint script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(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 iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
    var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
    if (whichedge=="rightedge"){
        var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
        
        dropmenuobj.contentmeasure = dropmenuobj.offsetWidth
        if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
            edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
    }
    else{
        var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
        
        dropmenuobj.contentmeasure = dropmenuobj.offsetHeight
        if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
            edgeoffset = dropmenuobj.contentmeasure-obj.offsetHeight
    }
    return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
	
mx = e.screenX;
my = e.screenY;

var _toc = document.getElementById('toc');

tocW = _toc ? getTOCWidth() : 0;
toolbarH = 74;

if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth==""){
	tipwidth = '200px'
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")

if (menucontents.length < 300) {
    var offY = dropmenuobj.y - toolbarH
	dropmenuobj.style.width=tipwidth
	dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth - tocW + 'px'
	//dropmenuobj.style.top=dropmenuobj.y - toolbarH + 'px'
	if (parseInt(dropmenuobj.style.left) + parseInt(tipwidth) > (parseInt(window.innerWidth) - tocW + window.pageXOffset) ) {
		dropmenuobj.style.left = parseInt(window.innerWidth) - tocW - parseInt(tipwidth) - 50  + 'px'
        //dropmenuobj.style.top = parseInt(dropmenuobj.style.top) + 30  + 'px'
	}
    
    var contentElement = document.getElementById('main')
    if (!contentElement) {
        contentElement = document.getElementById('wrapper');
    }
    
    if (offY + dropmenuobj.offsetHeight < contentElement.scrollHeight) {
        dropmenuobj.style.top=offY + 'px'
    } else {
        dropmenuobj.style.top=offY - dropmenuobj.offsetHeight + 30 + 'px'
    }
} else {
	tipwidth = parseInt(tipwidth)*2 + 'px'
	dropmenuobj.style.width=tipwidth
    var offX = typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement.scrollLeft
    var offY = dropmenuobj.y - clearbrowseredge(obj, "bottomedge") + 150
    
    var pageW = typeof window.innerWidth != 'undefined' ? window.innerWidth : window.document.body.offsetWidth

	dropmenuobj.style.left=offX + parseInt(pageW)/2 - parseInt(tipwidth)/2  + 'px'
    
    var contentElement = document.getElementById('main')
    if (!contentElement) {
        contentElement = document.getElementById('wrapper');
    }
    
    if (offY + dropmenuobj.offsetHeight < contentElement.scrollHeight) {
        dropmenuobj.style.top=offY + 'px'
    } else {
        dropmenuobj.style.top=offY - dropmenuobj.offsetHeight - 100 + 'px'
    }
}
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
dropmenuobj.onmouseout=hidedrop
}
}

function hidetip(e){
	var accuracy = 5;
    var _toc = document.getElementById('toc');

    tocW = _toc ? getTOCWidth() : 0;
	
	ppl=parseInt(dropmenuobj.style.left) + tocW;
	ppt=parseInt(dropmenuobj.style.top) + 74;
	ppr=ppl + parseInt(dropmenuobj.offsetWidth);
	ppb=ppt + parseInt(dropmenuobj.offsetHeight);
    
    var b = document.body;
    var contentElement = document.getElementById('main')
    if (!contentElement) {
        contentElement = document.getElementById('wrapper');
    }
    
    e = typeof(e) == "undefined" ? window.event : e;
    var mx = parseInt(ie ? e.clientX + contentElement.scrollLeft : e.pageX);
    var my = parseInt(ie ? e.clientY + contentElement.scrollTop : e.pageY);

	if (mx < ppl || mx > ppr || my < ppt || my > ppb) {
		dropmenuobj.style.visibility="hidden"
		dropmenuobj.style.left="-500px"
	}
}
function hidedrop(e){
	//dropmenuobj.style.display='none'
	dropmenuobj.style.left="-500px"
	dropmenuobj.style.visibility="hidden"
}

function createhintbox(){
    var divblock=document.createElement("div")
    divblock.setAttribute("id", "hintbox")

    var wrapper = document.getElementById('wrapper');
    var content = document.getElementById('main');

    if (!wrapper && !content) {
        document.body.appendChild(divblock)
    } else if (!content) {
        wrapper.appendChild(divblock)
    } else
        content.childNodes[1].appendChild(divblock)
    }

function showDefinition(term, obj, e) {
    term = term.toUpperCase();
    var def = terms[term];
    
    if (def) {
        def = def.replace(/(\[\[|\]\])/g, '');
        showhint(def, obj, e, '200px');
    } else {
        showhint('<span style="color:#f00;">Error. Term is not defined</span>', obj, e, '150px');
    }
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox
