function OpenPop(u,n,w,h,t,l,d,s,m,sc,r,top,left){//url;name;width;height;toolbar;location;direction;status;menubar;scrollbar;resizable
  window.open(u,n,'toolbar='+t+',location='+l+',directories='+d+',status='+s+',menubar='+m+',scrollbars='+sc+',resizable='+r+',width='+w+',height='+h+',top='+top+',left='+left);
}

/* fonctions elementaires : */
  function montre(id) {
	  if (document.getElementById) {
		  document.getElementById(id).style.visibility="visible";
		} else if (document.all) {
		  document.all[id].style.visibility="visible";
		} else if (document.layers) {
		  document.layers[id].visibility="visible";
		} } 
		
    function cache(id) {
	  if (document.getElementById) {
		  document.getElementById(id).style.visibility="hidden";
		} else if (document.all) {
		  document.all[id].style.visibility="hidden";
		} else if (document.layers) {
		  document.layers[id].visibility="hidden";
		} }
		
/* fonctions de "haut niveau" */
		function montre_menu(num) {  
			/* num = numero du menu */
			cache_tout();			
			montre_menu2(num);
			}
		function montre_menu2(num) {  
			/* num = numero du menu */
			montre("sm"+num.toString());
			}

/* ************** Gestion du MouseOut ************** */
/* Pour decider si le MouseOut doit etre pris en compte ou non,
 on examine l'element ou le noeud associe. S'il fait partie du
 sous-menu, on ne fait rien. La methode change selon que le navigateur
 est compatible w3c ou bien est de la famille IE4+


 * Pour les navigateurs compatibles W3C :
 La fonction isAncestor(cur, descendant) retourne TRUE si
 @cur est un ancetre de @descendant, sinon FALSE.
 Pour cela, on remonte les parents de  @descendant jusqu'à ce qu'on 
 retrouve @cur (et on retourne TRUE). Si on arrive sur un parent vide,
 on arrete et on renvoie FALSE. On utilisera cette fonction pour 
 savoir si on est toujours dans l'objet DIV sur lequel on a mis
 un manipulateur onMouseOut 
 */

function isAncestor(cur, descendant) {
  while (descendant) {
    if (descendant == cur)  return true; 
    descendant = descendant.parentNode; //remonte l'arborescence
  }
  return false;
}

					  
/*  Pour IE4+, event.toElement donne l'element HTML dans lequel la souris
 est passee et on examine son ID. Ici, les seuls elements qui declenchent
 des "faux" MouseOut sont les liens des sous-menus et on leur a donne des
 ID commencant tous par le meme nom que le sous-menu
 (i.e. sm11, sm12, sm13, etc... pour le sous-menu no1). On prend donc
 les 3 premiers caractères et on regarde si on retrouve le nom du sous-menu.
 Evidemment, si vous reprenez ce code, il faudra conserver cette 
 denomination des sous-menus et de leur items, sinon vous devrez reprendre
 l'ecriture du test ci-dessous pour IE4+
  */

var max;
max = 4;

function cache_menu(num,evt,obj) {
	var nom="" ;
	var sousmenu="sm"+num.toString();		// id du sous-menu
  if (evt.toElement) {                // on est avec IE4+
     nom=evt.toElement.id;	          // id du nouvel element 
     if (nom.substring(0,3)  !=  sousmenu) { cache(sousmenu) }
     } else {                         // hyp: ne resterait que du w3c  
       if (!isAncestor(obj,evt.relatedTarget))  { cache(sousmenu) }
		 } 
  }
		
		
function cache_tout() {
	for (var i=1; i<max ; i++) { cache("sm"+i.toString()) }
	}

<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->