addLoadEvent(setNav);
addLoadEvent(setNavLink);
addLoadEvent(enableToolTips);

function addLoadEvent(func){
    var oldonload = window.onload;
    if (typeof window.onload != 'function'){
        window.onload = func;
    }
    else{
        window.onload = function(){ 
            oldonload();
            func();
        } 
    }
}

function getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements);
}

function setNav(){
    var div = document.getElementById('navigation');
    var listItems = div.getElementsByTagName('li');
    for (var i=0; i<listItems.length; i++){

        listItems[i].onmouseover = function(){
            var navId = this.getAttribute('id');
            var temp = new Array();
            temp = navId.split('_');
            var navName = temp[0];
            if (temp[1] == 'on'){
               return;
            }
            hoverSwapOn(this, navName);
        }
        listItems[i].onmouseout = function(){
            var navId = this.getAttribute('id');
            var temp = new Array();
            temp = navId.split('_');
            var navName = temp[0];
            if (temp[1] == 'on'){
               return;
            }
            hoverSwapOff(this, navName); 
        }
        listItems[i].onclick = function(){
            var navId = this.getAttribute('id');
            var temp = new Array();
            temp = navId.split('_');
            var navName = temp[0];
            if (temp[1] == 'on'){
               return;
            }
            goToLink(this, navName); 
        }
    }
}
function hoverSwapOn(myobj, navName){
  if (myobj){
      myobj.style.background = "url(/style/dr/images/nav/nav_"+navName+"_on.gif) no-repeat";
   }
}
function hoverSwapOff(myobj, navName){
  if (myobj){
      myobj.style.background = "url(/style/dr/images/nav/nav_"+navName+"_off.gif) no-repeat";
  }
}
function goToLink(myobj, navName){
  if (myobj){
    location = navName+'.php';
  }
}
function currentOn(myobj, navName){
  if (myobj){
      myobj.setAttribute('id', navName+"_on");
   }
}

function setNavLink(){
    var url = new Array();
    url = location.pathname.split('/');
    var navName = url[1].split('.php')[0];
    if (navName == ''){
        navName = 'index';
    }
    var navObj = document.getElementById(navName+'_mli');
    currentOn(navObj, navName);
}
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=getElementsByClassName(document, "a", "glossary");
    for(i=0;i<links.length;i++){
        prepareLinks(links[i]);
    }
}

function prepareLinks(el){
    rel=el.getAttribute("rel");
    if(rel==null || rel.length==0) return;
    defEl = document.getElementById("tt"+rel);
    if (!defEl) return; 
    defText = defEl.innerHTML;
    topdiv=createEl("div", "tttopbg");
    botdiv=createEl("div", "ttbotbg");
    tooltip=createEl("span","tooltip");
    topSpan=createEl("span","top");
    topSpan.innerHTML = defText;
    tooltip.appendChild(topdiv);
    tooltip.appendChild(topSpan);
    tooltip.appendChild(botdiv);
    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:92)";
  el.style.KHTMLOpacity="0.92";
  el.style.MozOpacity="0.92";
  el.style.opacity="0.92";
}
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+10)+"px";
  document.getElementById("btc").style.left=(posx-20)+"px";
}
