// JavaScript Document

if (window.addEventListener) {
  window.addEventListener('load',buildPopMenus,true);
} else if (window.attachEvent) {
  window.attachEvent('onload',buildPopMenus);
}

function buildPopMenus() {
  document.body.innerHTML = document.body.innerHTML + 
    "<div id=popElement style='position:absolute;top:0px;left:0px'></div>";	
  popElement = document.getElementById('popElement');
  var children = document.getElementsByTagName("*");
   for (var i = 0; i < children.length; i++)  {
     if (children[i].getAttribute('menuSrc')) {
	   var nodeId = children[i].id
	  var menuWait = 500;
      if (children[i].getAttribute('menuWait'))
    	 menuWait = children[i].getAttribute('menuWait') ;
  	 children[i].onmouseover = function() {popMenu(this.id, menuWait);}
 	 children[i].onmouseout = function() {closeMenu(this.id);}
	 children[i].style.cursor = "pointer"
   }   
   }
     if (popElement.addEventListener){
    popElement.addEventListener('mouseover', function() {
      window.clearTimeout(popTimer);
    }, false); 
    popElement.addEventListener('mouseout', function() {
      popTimer = window.setTimeout(function() {
  	    popElement.style.visibility = "hidden";	   
      }, 500);
    }, false); 
  } else if (popElement.attachEvent){
    popElement.attachEvent('onmouseover', function() {
 	  window.clearTimeout(popTimer);
    });
    popElement.attachEvent('onmouseout', function() {
     popTimer = window.setTimeout(function() {
  	    popElement.style.visibility = "hidden";	   
      }, 500);
    });
  }
  document.body.appendChild(popElement);
 }
  var popElement;
  var menuTimer = 0;
  var popTimer = 0;


 function popMenu(e,wait) {
   e = document.getElementById(e);
   menuTimer = window.setTimeout( function () {
     var epos = getPosition(e);
	 popElement.style.top = (epos.y + e.offsetHeight - e.offsetHeight + 3) + "px";
     popElement.style.left = (epos.x + 3) + "px";
	 popElement.style.visibility = "visible";
	 popElement.innerHTML = "<br>";
	 LoadMenu(e.getAttribute('menuSrc'),popElement); 
    }, wait);
 }
 
 function closeMenu(e) {
   if(menuTimer) {
     window.clearTimeout(menuTimer);
   }
 }
 
 function LoadMenu ( URLtext, TARGET) {
    var http = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        http = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        http = new ActiveXObject("Microsoft.XMLHTTP");
    }
	http.open('GET', URLtext, true);
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.onreadystatechange = function() {
		if (http.readyState == 4) {
			TARGET.innerHTML = "<br>" + http.responseText ;
    	}
    }
    http.send(null);
    return false; 
 } 

function getPosition(e){
	var left = 0;
	var top  = 0;
	while (e.offsetParent){
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}
	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

	return {x:left, y:top};

}
Number.prototype.NaN0=function(){return isNaN(this)?0:this;}
