// Provient de http://www.asp-php.net/scripts/scripting/jsieselect.php?page=4
/*
Récupère la position réelle d'un objet dans la page (en tenant compte de tous ses parents)
IN 	: Obj => Javascript Object ; Prop => Offset voulu (offsetTop,offsetLeft,offsetBottom,offsetRight)
OUT	: Numérique => position réelle d'un objet sur la page.
*/
function GetDomOffset( Obj, Prop ) {
	var iVal = 0;
	while (Obj && Obj.tagName != 'BODY') {
		eval('iVal += Obj.' + Prop + ';');
		Obj = Obj.offsetParent;
	}
	return iVal;
}
/*
Affiche ou masque un objet (identifié par son ID) et fait disparaître les select gênant (en cas d'affichage)
Va déterminer si un (ou plus) des selectbox de la page est en "collision" avec l'objet dont l'id est fourni
IN	: sId => Id de l'objet à afficher par-dessus les selects ; sVisibility => Etat à mettre à l'objet (hidden ou visible)  ; exclude => Id des selects à ne pas masquer, même en cas de collision
*/
if (navig_IE_6)
	SwapSelect=function(sId,sVisibility,exclude) 
	{
	var agent = navigator.userAgent.toLowerCase();
	var major = parseInt(navigator.appVersion);
	// Détection du navigateur
	if  ((agent.indexOf("msie") != -1) &&	(agent.indexOf("opera") == -1) && (major == 4) &&(agent.indexOf("msie 6.") != -1) && (agent.indexOf("msie 7.") == -1) )
		{
		//constitue la chaine pour gérer les exclusions
		exclude=';'+((exclude==='')?'undefined':exclude)+';';
		//Récupère l'objet et lui applique la visibilité choisie
		var oObj = document.getElementById(sId);
		oObj.style.visibility=sVisibility;
		//Récupère les coordonnées exacte de l'objet sur la page
		var Top_Element  = GetDomOffset(oObj, 'offsetTop');
		var Left_Element  = GetDomOffset(oObj, 'offsetLeft');
		var Largeur_Element  = oObj.offsetWidth;
		var Hauteur_Element  = oObj.offsetHeight;
		//Récupère la liste des select de la page
		var oSelects = document.getElementsByTagName('SELECT');
		if (oSelects.length > 0) {
			//Parcours la liste des selects
			for (var i = 0; i < oSelects.length; i++) 
				{
				var oSlt = oSelects[i];
				//Compare l'ID du select en cours de lecture avec la liste des ID à exclure
				if (exclude.indexOf(';'+oSlt.id+';')!=-1) continue;
				//Si il n'est pas exclue on se retourve ici
				//Recupere les coordonnées exacte du select sur la page
				var Top_Select = GetDomOffset(oSlt, 'offsetTop');
				var Left_Select = GetDomOffset(oSlt, 'offsetLeft');
				var Largeur_Select = oSlt.offsetWidth;
				var Hauteur_Select = oSlt.offsetHeight;
				//Compare les positions de l'objet et du select pour savoir s'ils ont des pixels en collision (qui se chevauche)
				var isLeft = false;
				if ((Left_Element > (Left_Select - Largeur_Element)) && (Left_Element < (Left_Select + Largeur_Select)))
					isLeft = true;
				var isTop = false;
				if ((Top_Element > (Top_Select - Hauteur_Element)) && (Top_Element < (Top_Select + Hauteur_Select)))
					isTop = true;
				if (isLeft && isTop) 
					{
					//S'il y a collision, on fait disparaitre le select
					var sVis = (oObj.style.visibility == 'hidden') ? 'visible' : 'hidden';
					if (oSlt.style.visibility != sVis) 
						oSlt.style.visibility = sVis;
					} 
				else
					//Sinon, on le remet visible
					if (oSlt.style.visibility != 'visible') 
						oSlt.style.visibility = 'visible';
				}
			}
		}
	}