function findPosX(obj)
{
	var curleft = 0;
	if (obj!=null && obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}else if (obj!=null && obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	var printstring = '';
	if (obj!=null && obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			printstring += ' element ' + obj.tagName + ' has ' + obj.offsetTop;
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj!=null && obj.y)
		curtop += obj.y;
	window.status = printstring;
	return curtop;
}
function getObj(name)
{
 if (document.getElementById)
 {
	   this.obj = document.getElementById(name);
	   this.style = document.getElementById(name).style;
 }
 else if (document.all)
 {
	   this.obj = document.all[name];
	   this.style = document.all[name].style;
 }
 else if (document.layers)
 {
	   if (document.layers[name])
	   {
	   	this.obj = document.layers[name];
	   	this.style = document.layers[name];
	   }
	   else
	   {
	    this.obj = document.layers.testP.layers[name];
	    this.style = document.layers.testP.layers[name];
	   }
 }
}
	function setMenuLyr(obj,lyr,xloc,yloc)
	{

		var newX = findPosX(obj);
		var newY = findPosY(obj);

		var x = new getObj(lyr);

		var totalY=(Number(newY)+Number(yloc));
		var totalX=(Number(newX)+Number(xloc));

		// places the div in the proper position for the initial load
		x.style.position = "absolute";
		x.style.top = totalY + 'px';
		x.style.left = totalX + 'px';

		// shows the layer when activated
		x.style.visibility = 'visible';
	}
	
function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

	function startMenu(obj,lyr,x,y) {

		//Clear Menus
		//clearMenus();

		// set location of drop down and set visible
		setMenuLyr(obj,lyr,x,y);

	}
	function closeLayer(obj,e){
		if (checkMouseLeave(obj, e)) { obj.style.visibility = 'hidden'; }

	}
