var menuon,menuin=0;

function getObj(item){
  if(document.getElementById) return document.getElementById(item);
  else if(document.all) return document.all[item];
  else if(document.layers){ var obj = document.layers[item]; obj.style = document.layers[item]; return obj; }
	else return null;
}

// prend largeur,hauteur de base, retourne largeur,hauteur
function getPosAbsolute(objet,l,h){
	l += objet.offsetLeft;
	h += objet.offsetTop;
	if(objet.offsetParent == null) return new Array(l,h);
	else return getPosAbsolute(objet.offsetParent,l,h);
}

function cache_smenu(item){
	var b,c;
	if( item == null ) return true;
	c = getObj("smenuCase"+item);
	if( c == null ){ return true; }
	c.style.visibility = "hidden";
	if( menuon == item ) menuon = null;
	b = getObj("menuNiv0");
	b.style.visibility = "hidden";
	return true;
}

// utile si la souris n'est pas prise
function smenu_in(){
menuin = 1;
return true;
}

// utile si la souris n'est pas prise
// NE DOIT RETOURNER NI FALSE NI TRUE (sinon empeche le onclick sur une autre balise sous ie)
function smenu_out(){
	if( document.onmousemove == souris_bouge ) return;
	var delai=100;
	if( !menuin ) return;
	if( smenu_out.arguments.length == 1 ) delai = smenu_out.arguments[0];
	menuin = 0;
	setTimeout("smenu_probe()",delai);
	return;
}

// utile si la souris n'est pas prise
function smenu_probe(){
	if( !menuin ) cache_smenu(menuon);
	return true;
}

function souris_bouge (evt) {
	if( menuon == null ) return true;
	var b = getObj("menuNiv0");
	if( b == null ){ return true; }
	var sx=-1,sy=-1;
	if( evt != null && evt.pageX != null ) { sx = evt.pageX; sy = evt.pageY; }
	else if( event.clientX != null ) { sx = event.clientX + document.body.scrollLeft;	sy = event.clientY + document.body.scrollTop; }
	else { document.onmousemove=null; return true; }
	if( sy < b.offsetTop || sy > (b.offsetTop+b.offsetHeight) || sx < b.offsetLeft || sx > (b.offsetLeft+b.offsetWidth) ) {
		cache_smenu(menuon);
		return true
	}
	return true;
}

function affiche_smenu(item){
	var o,c,a,b;
	if( menuon != null && menuon != item ){ cache_smenu(menuon); }
	o = getObj("menuCase"+item);
	if( o == null ){ return true; }
	c = getObj("smenuCase"+item);
	if( c == null ){ return true; }
	a = getPosAbsolute(o,0,0);
	c.style.top = a[1] + o.offsetHeight;
	c.style.width = Math.max(o.offsetWidth,c.offsetWidth);
	c.style.left = a[0] + (o.offsetWidth-c.offsetWidth)/2;
	b = getObj("menuNiv0");
	if( b == null ){ return true; }
	b.style.top = a[1] - 5;
	b.style.height = c.offsetHeight + o.offsetHeight + 10;
	b.style.left = c.offsetLeft - 5;
	b.style.width = c.offsetWidth + 10;
	c.style.visibility = "visible";
	b.style.visibility = "visible";
	menuon = item;
	return true;
}

function resize_menu(){ affiche_smenu(menuon); }

function init_menu(){
	//window.onresize=resize_menu;
	document.onmousemove=souris_bouge;
}

function infos(o){
	var s="";
	var a,w=window.open('','_blank','');
	if( w == null ) return;
	for( a in o ) s = s + a + "=" + o[a] + "<br>";
	w.document.writeln("contenu:<br>"+s);
	w.focus();
}

