﻿var mx,my;
var tempFunction;
var contextMenus = new Array();
var contextMenuCount=0;
var displayingContextMenu=false;

function handleMouseMove(e)
{
  if(!e)e=window.event;
  mx=e.clientX;
  my=e.clientY;
  try{
  if(handleMouseDrag)
    handleMouseDrag();
  }catch(e){}
}

// Register a context menu and enable context menu settings
function registerContextMenu(id)
{
  document.oncontextmenu = handleContextMenu;
  document.onmousemove = handleMouseMove;
  
  var menuRoot = document.getElementById(id);
  menuRoot.style.display = "none";
  
  contextMenus[contextMenuCount] = menuRoot;
  
  var rows=menuRoot.getElementsByTagName("TR");
  for(var i=0;i<rows.length;i++){
    setRowFunctions(rows[i]);
  }
  
  return contextMenuCount++;
}

function setRowFunctions(row)
{
  var temp=row;  
  row.onmouseover=function(){
    temp.className="hover";
  }
  row.onmouseout=function(){
    temp.className="";
  }
}

function displayContextMenu(index)
{
  displayingContextMenu=true;
  tempFunction = document.onmouseup;
  document.onmouseup = hideContextMenus;
  
  var menuRoot = contextMenus[index];
  var left = mx + getScrollX();
  var top = my + getScrollY();
  menuRoot.style.left = left+"px";
  menuRoot.style.top = top+"px";
  menuRoot.style.display = "";
}

function hideContextMenus()
{
  displayingContextMenu=false;
    
  for(var i=0;i<contextMenuCount;i++){
    contextMenus[i].style.display = "none";
    contextMenus[i].style.left = "0px";
  }
  document.onmouseup = tempFunction;
}

function handleContextMenu()
{
  // Prevent the browser showing its menu
  if(displayingContextMenu){
    return false;
  }
}

