
//Pop-it menu- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

////No need to edit beyond here

var ie4 = document.all && navigator.userAgent.indexOf("Opera") == -1
var ns6 = document.getElementById && ! document.all
var ns4 = document.layers
var lastLayer;

//function showmenu( e, which )
function showmenu( e, layerName )
{
  if ( ! document.all && ! document.getElementById && ! document.layers )
  return
  
  clearhidemenu()
  
  //var layerName = 'popmenu';
  menuobj = ie4 ? document.all[layerName]
          : ns6 ? document.getElementById(layerName) 
          : ns4 ? document.layerName 
          : "";
  menuobj.thestyle = ( ie4 || ns6 ) ? menuobj.style : menuobj;
  //menuobj.thestyle.position   = 'absolute';
  
  if( this.lastLayer && this.lastLayer == layerName )
  {
    menuobj.thestyle.visibility = 'hidden';
    this.lastLayer = '';
    return;
  }

  this.lastLayer = layerName

  /*
  if ( ie4 || ns6 )
    menuobj.innerHTML = which
  else{
    menuobj.document.write(  '<layer name="gui" bgColor="#E6E6E6" width="465"' );
    menuobj.document.write(  ' onmouseover="clearhidemenu()" onmouseout="hidemenu()">'  );
    menuobj.document.write(  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
  
  //alert( menuobj.contentwidth + "\n" + menuobj.contentheight + "\n" + eventX + "\n" + eventY );

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

  //alert( rightedge + "\n" + bottomedge );


  //if the horizontal distance isn't enough to accomodate the width of the context menu
  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
  
  //alert( menuobj.thestyle.top + "\n" + menuobj.thestyle.left );

  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";
    //menuobj.thestyle.position   = 'relative';
}

function dynamichide(e){
  if ( ie4 && ! menuobj.contains( e.toElement ) )
    hidemenu()
  else if ( ns6 && e.currentTarget != e.relatedTarget && ! contains_ns6( e.currentTarget, e.relatedTarget ) )
    hidemenu()
  this.lastLayer = '';
}

function delayhidemenu(){
  if ( ie4 || ns6 || ns4 )
    delayhide = setTimeout( "hidemenu()", 500 )
}

function clearhidemenu(){
  if ( window.delayhide )
    clearTimeout( delayhide )
  else
    hidemenu();
}

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" : ""
      }
    }
  }
}

function showD ( ID )
{
  for( i = 0; i<document.all.length; i++ )
  {
    if( 'b' == document.all[i].id.charAt( 0 ) && ID != document.all[i].id )
    {
      document.all[i].style.visibility = 'hidden';
    }
    if( 'b' == document.all[i].id.charAt( 0 ) )
    {
      document.all[i].style.zIndex = -1;
    }
  }
  div = document.all[ID].style;
  vis = div.visibility;
  div.backgroundColor = ( vis == 'visible' ) ? 'black' : 'red';
  div.visibility = ( vis == 'visible' ) ? 'hidden' : 'visible';
  div.zIndex = 100;
}

/*
if ( ie4 || ns6 )
document.onclick=hidemenu
*/
