// Functions to show and hide the Actions Menu

// Variables
	menustate = 0;  // menu hidden initially
	var IE = document.all?true:false;
    var itemId = "action-item-";
    var focusItem = 0;

function processKeyUp(event) {

    var keyPressed = event.keyCode;

    if (keyPressed == 38) {
        if (focusItem==0) {
            toggleMenu();
        }
        else {
            focusItem--;
            document.getElementById(itemId + focusItem).focus();
        }
    }
    else if (keyPressed == 40) {
        if (focusItem==menuItems) {
            toggleMenu();
        }
        else {
            focusItem++;
            document.getElementById(itemId + focusItem).focus();
        }
    }
    else if (keyPressed != 13) {
        setTimeout("toggleMenu();", 0);
    }        
    return true;
}

function processMouseOver(itemId) {

    document.getElementById(itemId).focus();

    return true;
}

function toggleMenu(){	

    var theMenu = document.getElementById("action-menu");
	var theLink = document.getElementById("action-link");

    var leftPos = getLeftPosition(theLink);
    var topPos = getTopPosition(theLink);

	switch (menustate)
	{
		case 0:
            if (menuItems > -1) {
			    theMenu.style.visibility = "visible";
			    theMenu.style.top = topPos + 20;
			    theMenu.style.left = leftPos;
                focusItem=0;
                document.getElementById(itemId + focusItem).focus();
			    menustate++;
            }
            break
		case 1:
            theLink.focus();
            theMenu.style.visibility = "hidden";
			menustate--;
			break
		default:
            theLink.focus();
			theMenu.style.visibility = "hidden";
			menustate--;
			break
	}
	return true;
}


function getLeftPosition(element){

   var isIE = document.all ? true : false;

   var leftPos = element.offsetLeft;
   var parentElement = element.offsetParent;

   while (parentElement != null)   {
      if(isIE)      {
         if(parentElement.tagName == "TD"){
            leftPos += parentElement.clientLeft;
         }
      }
      else {
         if(parentElement.tagName == "TABLE"){
            var parentBorder = parseInt(parentElement.border);
            if(isNaN(parentBorder)) {
               var parentFrame = parentElement.getAttribute('frame');
               if(parentFrame != null) {
                  leftPos += 1;
               }
            }
            else if(parentBorder > 0) {
               leftPos += parentBorder;
            }
         }
      }

      leftPos += parentElement.offsetLeft; 
      parentElement = parentElement.offsetParent;
   }
   return leftPos;
}

function getTopPosition(element){

   var isIE = document.all ? true : false;

   var topPos = element.offsetTop;
   var parentElement = element.offsetParent;

   while (parentElement != null){ 
      if(isIE){
         if(parentElement.tagName == "TD") {
            topPos += parentElement.clientTop;
         }
      }
      else {
         if(parentElement.tagName == "TABLE"){
            var parentBorder = parseInt(parentElement.border);
            if(isNaN(parentBorder)) {
               var parentFrame = parentElement.getAttribute('frame');
               if(parentFrame != null) {
                  topPos += 1;
               }
            }
            else if(parentBorder > 0) {
               topPos += parentBorder;
            }
         }
      }
      topPos += parentElement.offsetTop;
      parentElement = parentElement.offsetParent;
   }
   return topPos;
}
