function getRealTop(element)
{
	yPos = element.offsetTop;
	tempElement = element.offsetParent;
	while (tempElement != null)
	{
		yPos += tempElement.offsetTop;
		tempElement = tempElement.offsetParent;
	}
return yPos;
}

function getRealLeft(element){
	xPos = element.offsetLeft;
	tempElement = element.offsetParent;
	while (tempElement != null){
		xPos += tempElement.offsetLeft;
		tempElement = tempElement.offsetParent;
	}
	return xPos;
}

function show(idobjet,idparent,idtopbutton,xoffset,yoffset){
document.getElementById(idobjet).style.visibility="visible";
document.getElementById(idobjet).style.top=getRealTop(document.getElementById(idtopbutton))+yoffset;
document.getElementById(idobjet).style.left=getRealLeft(document.getElementById(idparent))+xoffset;
}

function hide(idobjet){
document.getElementById(idobjet).style.visibility="hidden";
}


function xposition(e){
x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
return x;
}

function yposition(e){
y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
return y;
}

function verifieraffichage(e,idbox,idbutton){
	if (document.getElementById(idbox).style.visibility=="visible"){
		xboxmin = getRealLeft(document.getElementById(idbox));
		xboxmax = getRealLeft(document.getElementById(idbox))+document.getElementById(idbox).offsetWidth;

		yboxmin = getRealTop(document.getElementById(idbox));
		yboxmax = getRealTop(document.getElementById(idbox))+document.getElementById(idbox).offsetHeight;
	
		xbuttonmin = getRealLeft(document.getElementById(idbutton))-20; 
		/*20 pour l'espace entre le bouton et la popup en fait c'est moins mais tant pis*/
		xbuttonmax = getRealLeft(document.getElementById(idbutton))+document.getElementById(idbutton).offsetWidth;

		ybuttonmin = getRealTop(document.getElementById(idbutton));
		ybuttonmax = getRealTop(document.getElementById(idbutton))+document.getElementById(idbutton).offsetHeight;
	
		if ( !((xposition(e)>=xboxmin)&&(xposition(e)<=xboxmax)&&(yposition(e)>=yboxmin)&&(yposition(e)<=yboxmax))){
			if ( !((xposition(e)>=xbuttonmin)&&(xposition(e)<=xbuttonmax)&&(yposition(e)>=ybuttonmin)&&(yposition(e)<=ybuttonmax))){
				hide(idbox);
			}
		}
	}
//window.status = "Souris x:"+xposition(e)+" | y:"+yposition(e)+"  "+xmin+"  "+xmax+"  "+ymin+"  "+ymax;
}

function onmove(e){
//	verifieraffichage(e,"laabox","laabutton");
	verifieraffichage(e,"retraitesrcbox","retraitesrcbutton");
	verifieraffichage(e,"liensdirectsbox","liensdirectsbutton");
	verifieraffichage(e,"servicesbox","servicesbutton");
}

if (navigator.appName.substring(0,3) == "Net") document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = onmove;
