var agt = navigator.userAgent.toLowerCase();
var is_safari = (agt.indexOf("safari") != -1);

function showDropdown(whichMenu) {
	var dropdown = getDropdown(whichMenu);	
	dropdown.left = document.getElementById(whichMenu).offsetLeft;
	dropdown.top = document.getElementById(whichMenu).offsetTop + document.getElementById(whichMenu).offsetHeight;	
	dropdown.visibility = "visible";	
}

function hideDropdown(whichMenu, eventObj) {
	var eventSource = (eventObj.fromElement) ? eventObj.fromElement : eventObj.target;
	var fudgeFactor = 5;
	if (!is_safari) {		
		if ((eventObj.clientX <= (document.getElementById(whichMenu).offsetLeft + fudgeFactor)) ||
			(eventObj.clientX >= (document.getElementById(whichMenu).offsetLeft + eventSource.offsetWidth) - fudgeFactor) ||
			(eventObj.clientY <= ((document.getElementById(whichMenu).offsetTop - document.body.scrollTop) + fudgeFactor))) {   
			var dropdown = getDropdown(whichMenu);		
			dropdown.visibility = "hidden"; 
		}
	}
	else {
		if ((eventObj.clientX <= (document.getElementById(whichMenu).offsetLeft + fudgeFactor)) ||
			(eventObj.clientX >= (document.getElementById(whichMenu).offsetLeft + eventSource.offsetWidth) - fudgeFactor) ||
			(eventObj.clientY <= (document.getElementById(whichMenu).offsetTop + fudgeFactor))) {  
			var dropdown = getDropdown(whichMenu);		
			dropdown.visibility = "hidden"; 
		}	
	}	
}

function getDropdown(whichMenu) {

	switch (whichMenu) {
		case "who_we_are": {
			return document.getElementById('whoweare').style;
			break;
		}
		case "where_we_help": {
			return document.getElementById('wherewehelp').style;
			break;
		}
		case "how_we_work": {
			return document.getElementById('howwework').style;
			break;
		}
		case "our_offerings": {
			return document.getElementById('ourofferings').style;
			break;
		}
		case "our_clients": {
			return document.getElementById('ourclients').style;
			break;
		}
		case "our_research": {
			return document.getElementById('ourresearch').style;
			break;
		}								
	}
	
}

function hideLayer(layer) {
	document.getElementById(layer).style.visibility = "hidden"; 
}

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 && !is_safari) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement && !is_safari) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}