﻿
function createContextMenu(id, cssClass, normalItemCssClass, hoveredItemCssClass, handler) {
  var menuDescriptor = new Object();

  menuDescriptor = createPopUpPanel(id, cssClass);
  menuDescriptor.normalItemCssClass = normalItemCssClass;
  menuDescriptor.hoveredItemCssClass = hoveredItemCssClass;
  menuDescriptor.handler = handler;
  return menuDescriptor;
}

function addContextMenuItem(menuDescriptor, text, value) {
  var itemElement = document.createElement('div');
  var itemId = menuDescriptor.id + 'item' + menuDescriptor.element.childNodes.length;

  itemElement.setAttribute('id', itemId);
  setElementClassAttribute(itemElement, menuDescriptor.normalItemCssClass);
  attachEventHandler(itemElement, 'onmousemove', 'setMenuItemClass(\'' + itemId + '\', \'' + menuDescriptor.hoveredItemCssClass + '\');');
  attachEventHandler(itemElement, 'onmouseout', 'setMenuItemClass(\'' + itemId + '\', \'' + menuDescriptor.normalItemCssClass + '\');');
  attachEventHandler(itemElement, 'onclick', menuDescriptor.handler + '(\'' + value + '\');');
  itemElement.setAttribute('value', value);
  itemElement.innerHTML = text;
  addChildElement(menuDescriptor, itemElement);
}

function setMenuItemClass(id, className) {  
  setElementClassAttribute(elementById(id), className);
}

function showContextMenu(menuDescriptor, x, y) {
  showPopUpPanel(menuDescriptor, x, y);
}

function hideContextMenu() {
  hidePopUpPanel();
}