/**
 *  checkMouseEnter / checkMouseLeave :
 *  fonctions pour éviter que le onmouseover/out d'un élément soit passé aux éléments fils
 *
 *  cf. http://www.faqts.com/knowledge_base/view.phtml/aid/1606
 */

	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);
	  }
	}

/* exemple :

<div style="border: 1px solid green;" onmouseover="if (checkMouseEnter(this, event)) {alert('over');}" onmouseout="if (checkMouseLeave(this, event)) {alert('out');}">
	Contenu niveau 1
	<p> Contenu niveau 2 (le onmouseout n'est plus activé par le paragraphe) </p>
	Contenu niveau 1
</div>

*/

