<?xml version="1.0" encoding="ISO-8859-15"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslc="http://xslcomponents.org/TR/WD-xslc" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="html" indent="no" omit-xml-declaration="yes" encoding="ISO-8859-1"/>
<xsl:template name="xslc:ContextMenu.Head">
<script language="javascript">
<xsl:if test="/document/XMLC_Params/XMLC_NavigatorName='Mozilla'"><![CDATA[window.captureEvents(Event.CLICK); ]]></xsl:if><![CDATA[var openedMenu = '';
var openedSubMenu = '';]]><![CDATA[function ScrollPosX() {
  if (document.documentElement && document.documentElement.scrollLeft)
    return document.documentElement.scrollLeft;
  else if (document.body.scrollLeft)
    return document.body.scrollLeft;
  else
    return 0;
}]]><![CDATA[function ScrollPosY() {
  if (document.documentElement && document.documentElement.scrollTop)
    return document.documentElement.scrollTop;
  else if (document.body.scrollTop)
    return document.body.scrollTop;
  else
    return 0;
}]]><![CDATA[function showContextMenu(e, Name) {
  var srcObj;
  var obj;

  e = GetEventObj(e);
  srcObj = GetEventTarget(e);
  if (srcObj != null && srcObj.onclick)
    srcObj.onclick();
  hideContextMenu(e, openedMenu);
  if (Name == null || Name == '')
    Name = 'ContextMenu';
  obj = getObject(Name);
  openedMenu = Name;
  document.body.onclick = hideContextMenu;
  obj.style.left = e.clientX + ScrollPosX() + 5;
  // obj.style.top = GetObjectPosY(srcObj) + ScrollPosY(); // + GetObjectHeight(srcObj);
  obj.style.top = e.clientY + ScrollPosY();
  Show(obj);
  CancelEvent(e);
  return true;
}]]><![CDATA[function ShowSubContextMenu(e, ID) {
  // e = GetEventObj(e);
  obj = getObject(ID);
  if (openedSubMenu != '' && openedSubMenu != ID)
    hide(openedSubMenu);
  openedSubMenu = ID;
  Show(obj);

  // todo: move submenu to optimal position
  return false;
}]]><![CDATA[function hideContextMenu(e, Name) {
  if (Name == null || Name == '')
    Name = openedMenu;
  if (Name == null || Name == '')
    Name = 'ContextMenu';
  Hide(Name);
  hideSubContextMenu('');
  openedMenu = '';
  document.body.onclick = null;
}]]><![CDATA[function hideSubContextMenu(Current) {
  if (openedSubMenu == '')
    return;
  if (Current != openedSubMenu)
  {
    Hide(openedSubMenu);
    openedSubMenu = '';
  }
}]]></script>
<link rel="stylesheet" type="text/css" href="{$XMLC_SkinPath}contextmenu/contextmenu.css"/>
</xsl:template>
<xsl:template name="xslc:ContextMenu">
<xsl:param name="Name">ContextMenu</xsl:param>
<xsl:param name="ContextMenu" select="/document/ContextMenu/*"/>
<xsl:param name="Width"/>
<xsl:variable name="VContextMenu" select="msxsl:node-set($ContextMenu)"/>
<div id="{$Name}" style="display: none; position: absolute; z-index: 10000;">
<table border="0" cellpadding="0" cellspacing="0" class="ContextMenu">
<xsl:if test="$Width != ''">
<xsl:attribute name="Width"><xsl:value-of select="$Width"/></xsl:attribute>
</xsl:if>
<xsl:apply-templates select="$VContextMenu/Item" mode="ContextMenu"/>
</table>
</div>
</xsl:template>
<xsl:template match="Item" mode="ContextMenu">
<xsl:param name="SubMenuID"/>
<xsl:param name="CurrentID">
<xsl:choose>
<xsl:when test="(@ID) and (@ID != '')">
<xsl:value-of select="@ID"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="generate-id()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:choose>
<xsl:when test="@Separator = '1'">
<tr id="{$CurrentID}">
<td class="ContextMenuImage"/>
<td class="ContextMenuSeparator" colspan="3">
<img alt="" border="0" src="{$XMLC_SkinPath}contextmenu/contextmenu_separator.gif" width="100%"/>
</td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr id="{$CurrentID}">
<td class="ContextMenuImage">
<xsl:if test="@ImagePath != ''">
<img align="absmiddle" alt="" src="{@ImagePath}"/>
</xsl:if>
</td>
<td nowrap="" class="ContextMenuLabel">
<xsl:variable name="ElementName">
<xsl:choose>
<xsl:when test="@HRef != ''">a</xsl:when>
<xsl:otherwise>span</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="{$ElementName}">
<xsl:if test="@HRef != ''">
<xsl:attribute name="href"><xsl:value-of select="@HRef"/></xsl:attribute>
<xsl:if test="@Target != ''">
<xsl:attribute name="target"><xsl:value-of select="@Target"/></xsl:attribute>
</xsl:if>
</xsl:if>
<xsl:attribute name="onclick"><xsl:if test="@OnClick != ''"><xsl:value-of select="@OnClick"/>hideContextMenu();</xsl:if></xsl:attribute>
<div class="ContextMenuItem" onmouseout="this.className='ContextMenuItem';">
<xsl:attribute name="onmouseover">this.className='ContextMenuItemOver';<xsl:choose><xsl:when test="Item">ShowSubContextMenu(event, 'SubMenu<xsl:value-of select="$CurrentID"/>');</xsl:when><xsl:otherwise>hideSubContextMenu('<xsl:value-of select="$SubMenuID"/>');</xsl:otherwise></xsl:choose></xsl:attribute>
<xsl:value-of select="@Caption"/>
</div>
</xsl:element>
</td>
<td>
<xsl:if test="Item">
<img align="absmiddle" alt="" src="{$XMLC_SkinPath}contextmenu/submenu.gif" style="float: right;"/>
</xsl:if>
</td>
<td valign="top">
<div id="SubMenu{$CurrentID}" style="display: none; position: absolute; z-index: 10000;">
<table border="0" cellpadding="0" cellspacing="0" class="ContextMenu">
<xsl:apply-templates select="Item" mode="ContextMenu">
<xsl:with-param name="SubMenuID">SubMenu<xsl:value-of select="$CurrentID"/>
</xsl:with-param>
</xsl:apply-templates>
</table>
</div>
</td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
