<!--

//////////////////////////////
// Settings 

var menuPos = "b"; // b = bottom, r = right, t = top, l = left
var parentMenuMouseOverBGColor = "";
var parentMenuMouseOutBGColor = "";
var menuHideTimeout = 500;
var menuVerticalOffSet = -130;
var menuHorizontalOffSet =  -110;
var menuHorizontalCenter = 0;
var menuVerticalCenter = 0;

//////////////////////////////

var hideTimeout;
var mnuObject;
var mnuEvent;

function menuBar( theMenu, hoverFlag, color ) {

	if ( color != "" ){
		if ( hoverFlag ) {
					document.getElementById(theMenu).style.background = color;
		} else {
					document.getElementById(theMenu).style.background = color;
		}
	}
}

function menuItem( element, hoverFlag, color ) {
	if ( hoverFlag ) {
				element.style.backgroundColor = color;
	} else {
				element.style.backgroundColor = color;
	}
}

function menuBarClick( tableCellRef, navStyle, url ) {
	window.location.href = url;
}
var mnuActive=false;
var mnuButtonActive=false;
var mnuActiveName='';
var mnuButtonName='';

var ie4=false;
var dom=false;
var ns4=false;

var ns4=document.layers;
var ie4=document.all;
var dom=document.getElementById;


var hideTimeout;
var layer2Hide;

function timeOut(hide){
	hideTimeout = window.setTimeout(hide, menuHideTimeout);
	layer2Hide = hide;
}

function clearTime(){
	window.clearTimeout(hideTimeout);
}

function hideLayer() {
	deactivateOpen();
}

function activate(theLayer, theObject)
{

	if(layer2Hide == "hideLayer()") window.clearTimeout(hideTimeout);

	deactivateOpen();
	
	mnuActive = true;
	mnuActiveName = theLayer;
	mnuButtonActive = true;
	mnuButtonName = theObject
	
	menuBar(theObject, 1, parentMenuMouseOverBGColor);

	var coords = getPageCoords(theLayer, theObject,menuVerticalOffSet,menuHorizontalOffSet,menuHorizontalCenter,menuVerticalCenter,menuPos);

  if (ie4) 
  {
    document.all[theLayer].style.visibility = "visible";
    document.all[theLayer].style.left = coords.x + "px";
    document.all[theLayer].style.top = coords.y + "px";
    document.all[theLayer].style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
    
    /*for (var i=0; i< document.Form1.length; i++) {
			if (document.Form1.elements[i].type == 'select-one' | document.Form1.elements[i].type == 'select-multiple') {
				Form1.elements[i].style.visibility = 'hidden';
			}
		}
		
		for (var i=0; i< document.applets.length; i++) {
			document.applets[i].style.visibility = 'hidden';
		}*/
  }
  else if(dom)
  {
      document.getElementById(theLayer).style.visibility="visible";
      document.getElementById(theLayer).style.left = coords.x + "px";
			document.getElementById(theLayer).style.top = coords.y + "px";
			
			/*for (var i=0; i< document.applets.length; i++) {
			document.applets[i].style.visibility = 'hidden';
		}*/
  }

  //hideFlashElementsBehindMenus(theLayer,1);

}

function deactivateOpen()
{
	if (mnuButtonActive) {
		menuBar(mnuButtonName, 0, parentMenuMouseOutBGColor);
		mnuButtonActive = false;
		mnuButtonName = '';
	}
	if (mnuActive) {
		
		theLayer = mnuActiveName;

		if (ie4)
		{
			document.all[theLayer].style.visibility = "hidden";
	    
			/*for (var i=0; i< document.Form1.length; i++) {
				if (document.Form1.elements[i].type == 'select-one' | document.Form1.elements[i].type == 'select-multiple') {
					Form1.elements[i].style.visibility = 'visible';
				}
			}
			
			for (var i=0; i< document.applets.length; i++) {
				document.applets[i].style.visibility = 'visible';
			}*/ 
		}
		else if (dom) 
		{
				document.getElementById(theLayer).style.visibility="hidden";
				
				/*for (var i=0; i< document.applets.length; i++) {
				document.applets[i].style.visibility = 'visible';
			} */
		}
	  
		mnuActive = false;
		mnuActiveName = '';

    //hideFlashElementsBehindMenus(theLayer,0);

	}
}

function deactivate(theLayer,theObject,theEvent)
{
  if (ie4)
  {
    if(!theObject.contains(theEvent.toElement))
    {
      document.all[theLayer].style.visibility = "hidden";
      
      /*for (var i=0; i< document.Form1.length; i++) {
				if (document.Form1.elements[i].type == 'select-one' | document.Form1.elements[i].type == 'select-multiple') {
					Form1.elements[i].style.visibility = 'visible';
				}
			}
			
			for (var i=0; i< document.applets.length; i++) {
				document.applets[i].style.visibility = 'visible';
			}*/
			
			if (mnuButtonActive) {
				menuBar(mnuButtonName, 0, parentMenuMouseOutBGColor);
				mnuButtonActive = false;
				mnuButtonName = '';
			}
    }    
  }
  else if (dom) 
  {
    if (!containsNN6(theObject,theEvent.relatedTarget))
    {
        document.getElementById(theLayer).style.visibility="hidden";
			
			/*for (var i=0; i< document.applets.length; i++) {
				document.applets[i].style.visibility = 'visible';
			}*/
			
			if (mnuButtonActive) {
				menuBar(mnuButtonName, 0, parentMenuMouseOutBGColor);
				mnuButtonActive = false;
				mnuButtonName = '';
			}
    }
  }
}

function getPageCoords (childId,parentId,vOffSet,hOffSet,hCenter,vCenter,pos) {
  var coords = {x: 0, y: 0}
  var parentElement;
  var childElement;
  var parentHeight;
  var parentWidth;

  if (document.all){
    parentElement = document.all[parentId];
    childElement = document.all[childId];
  }
  else if (document.getElementById){
    parentElement = document.getElementById(parentId);
    childElement = document.getElementById(childId);
  }

  parentHeight = parentElement.offsetHeight;
  parentWidth = parentElement.offsetWidth;
  childHeight = childElement.offsetHeight;
  childWidth = childElement.offsetWidth;

  while (parentElement) {
    coords.x += parentElement.offsetLeft;
    coords.y += parentElement.offsetTop;
    
    parentElement = parentElement.offsetParent;
  }

  if(hCenter == 1){
    hOffSet = (parentWidth / 2) - (childWidth / 2) + hOffSet;
  }
  else if(vCenter == 1){
    vOffSet = (parentHeight / 2) - (childHeight / 2) + vOffSet;
  }

  if(pos == "r"){
    hOffSet = hOffSet + parentWidth;
  }
  else if(pos == "l"){
    hOffSet = hOffSet - parentWidth - childWidth;
  }
  else if(pos == "t"){
    //hOffSet = hOffSet - parentWidth - childWidth;
  }
  else if(pos == "b"){
    vOffSet = vOffSet + parentHeight;
    //alert("vOffSet = " + vOffSet + " | parentHeight = " + parentHeight + " | parentId = " + parentId);
  }
  coords.x = coords.x + hOffSet;
  coords.y = coords.y + vOffSet;
  return coords;
}


function containsNN6 (container, containee) 
{
  var isParent = false;
  do 
  {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function hideFlashElementsBehindMenus(theLayer,hideFlag) {
  if (theLayer) {

    if (ie4) {

    }
    else if(dom){

      // Find the absolute position of the overlay
      var menuElement = document.getElementById(theLayer);
      var menuLeftX = getElementOffsetPosition(menuElement,"left");
      var menuRightX = menuLeftX + menuElement.offsetWidth;
      var menuTopY = getElementOffsetPosition(menuElement,"top");
      var menuBottomY = menuTopY + menuElement.offsetHeight;
//alert(menuBottomY + " = " + menuTopY + " + " + menuElement.offsetHeight);

      var objectList = document.getElementsByTagName('OBJECT');
      for (var j=0;j<objectList.length;j++) {
        listTopY = getElementOffsetPosition(objectList[j],"top");
alert(listTopY + " < " + menuBottomY + " && " + isBehindMenu(objectList[j], menuLeftX, menuRightX, menuTopY, menuBottomY, listTopY));
        if ((listTopY < menuBottomY) && (isBehindMenu(objectList[j], menuLeftX, menuRightX, menuTopY, menuBottomY, listTopY)) && (hideFlag == 1)){
          objectList[j].style.visibility = 'hidden';
        }
        else{
          objectList[j].style.visibility = 'visible';
        }
      }
    }
  }
}

function isBehindMenu(object, menuLeftX, menuRightX, menuTopY, menuBottomY, ListTopY) {
  var listLeftX = getElementOffsetPosition(object,"left");
  var listRightX = listLeftX + parseInt(object.width);
  var listBottomY = listTopY + parseInt(object.height);
//alert(listTopY + " < " + menuBottomY + " && " + listBottomY + " > " + menuTopY + " && " + listLeftX + " < " + menuRightX + " && " + listRightX + " > " + menuLeftX);
  return (((listTopY < menuBottomY) && (listBottomY > menuTopY)) && ((listLeftX < menuRightX) && (listRightX > menuLeftX)));
}

function getElementOffsetPosition(SomeElement, OffsetType) {
  var TotalOffset = 0;
  while (SomeElement != null) {
    TotalOffset += (OffsetType == 'left') ? SomeElement.offsetLeft : SomeElement.offsetTop;
    SomeElement = SomeElement.offsetParent;
  }
  return TotalOffset;
}


//-->
