   function showmenu(e,which)
/* 
   11-jan-2007 / Karel Altmann 
   javaScript for popup menu, from www.jswelt.de
   Pop-it menu- by http://www.dynamicdrive.com
*/ 
{
   if (!document.all&&!document.getElementById&&!document.layers) return
   clearhidemenu()
   menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
   menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj

   if (ie4||ns6) 
      menuobj.innerHTML=which
   else 
   {  
      menuobj.document.writeln('<layer name=gui bgColor=#E6E6E6 width=165');
      menuobj.document.writeln(' onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>');
      menuobj.document.writeln(' onmouseout="hidemenu()">'+which+'</layer>');
      menuobj.document.close();
   }

   menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
   menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
   eventX=ie4? event.clientX : ns6? e.clientX : e.x
   eventY=ie4? event.clientY : ns6? e.clientY : e.y

// Find out how close the mouse is to the corner of the window
   var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
   var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY

/* if the horizontal distance isn't enough to accomodate the width of the context menu
   -> disabled for static horizontal menu position, 
   if (rightedge<menuobj.contentwidth)
//    move the horizontal position of the menu to the left by it's width
      menuobj.thestyle.left=ie4? 
      document.body.scrollLeft+eventX-menuobj.contentwidth : ns6? 
      window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
   else
//    position the horizontal position of the menu where the mouse was clicked
      menuobj.thestyle.left=ie4? 
      document.body.scrollLeft+eventX : ns6? 
      window.pageXOffset+eventX : eventX
*/
// same concept with the vertical position
   if (bottomedge<menuobj.contentheight)
      menuobj.thestyle.top=ie4? 
      document.body.scrollTop+eventY-menuobj.contentheight : ns6? 
      window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
   else
      menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? 
      window.pageYOffset+eventY : eventY

   menuobj.thestyle.visibility="visible"
   return false
}
// ---------------------------------------------------------------------------
   function contains_ns6(a, b) 
/* 
   Determines if 1 element in contained in another - by Brainjar.com
*/ 
{
   while (b.parentNode)
   if ((b = b.parentNode) == a) return true;
   return false;
}
// ---------------------------------------------------------------------------
   function hidemenu()
{
   if (window.menuobj)
   menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}
// ---------------------------------------------------------------------------
   function dynamichide(e)
{
   if      (ie4&&!menuobj.contains(e.toElement))
            hidemenu()
   else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
            hidemenu()
}
// ---------------------------------------------------------------------------
   function delayhidemenu()
{
   if (ie4||ns6||ns4) delayhide=setTimeout("hidemenu()",500)
}
// ---------------------------------------------------------------------------
   function clearhidemenu()
{
   if (window.delayhide) clearTimeout(delayhide)
}
// ---------------------------------------------------------------------------
   function highlightmenu(e,state)
{
   if      (document.all)            source_el=event.srcElement
   else if (document.getElementById) source_el=e.target

   if (source_el.className=="menuitems")
   {
      source_el.id=(state=="on")? "mouseoverstyle" : ""
   }
   else 
   {
      while (source_el.id!="popmenu")
      {
            source_el=document.getElementById? source_el.parentNode : source_el.parentElement
            if (source_el.className=="menuitems")
            {
               source_el.id=(state=="on")? "mouseoverstyle" : ""
            }
      }
   }
}
