// NB: Inclure un <div... dans le body (cf. exemple ci dessous)
//$body .= "<div id=\"DIDynCmbDiv\" style=\"position:absolute;height:300;visibility:hidden;border-width:1;border-style:solid;border-color:black;overflow-x:hidden;overflow-y:scroll;\">\n";
//$body .= "</div>\n" ;

var DIDynCmb_vis = false;
var DIDynCmb_Lib = "N";
var DIDynInput0;
var DIDynInput1;
var DIDynInput2;
var DIDynInput_Nbr;

// Génération de la liste Dynamique
function DIDynCmb(DIDynObj, DIDynUrl, DIDynNbr)
{
	// Masquer la liste si actuellement visible
	if (DIDynCmb_vis == true)
	{
		DIDynCmbDiv.style.visibility="hidden";
		document.getElementById('DIDynCmbDiv').innerHTML="&nbsp;";
		DIDynCmb_vis = false;
	}
	else
	{
		// Appeller le programme de chargement de la liste
		var url = DIDynUrl + '&XMLHttpRequest=yes&DIDynCmbLst=yes';
		makeRequest(url,'DIDynCmbDiv',false);

		// Récupère le nom de l'input précédent le bouton
		//		DIDynBtn = DIDynObj.parentNode;
		//		DIDynInput = DIDynBtn.previousSibling;
		DIDynInput0 = DIDynObj.previousSibling;
		// Récupère le nom des imputs suivants le bouton (fonction du nombre de zones à renvoyer)
		DIDynInput_Nbr = DIDynNbr;
		if (DIDynInput_Nbr > 1) { DIDynInput1 = DIDyngetNext(DIDynObj, 'input'); }
		if (DIDynInput_Nbr > 2) { DIDynInput2 = DIDyngetNext(DIDynInput1, 'input'); }

		// Taille de la fenetre
		if (document.body)
		{
			var winWidth = (document.body.clientWidth);
			var winHeight = (document.body.clientHeight);
		}
		else
		{
			var winWidth = (window.innerWidth);
			var winHeight = (window.innerHeight);
		}
		//		leftpos = DIDynCmb_Left(DIDynInput0);
		//		if (leftpos > (winWidth - 320)) { leftpos = winWidth - 320; }
		//		Toppos  = DIDynCmb_Top(DIDynInput0) + DIDynInput0.offsetHeight ;
		//		if (Toppos > (winHeight - 300))
		//		{
		//			Toppos  = DIDynCmb_Top(DIDynInput0) - 300 ;
		//		}
		leftpos = DIDynCmb_getMouseX() - DIDynInput0.offsetWidth;
		Toppos  = DIDynCmb_getMouseY() + DIDynInput0.offsetHeight ;
		//if (leftpos > (winWidth  - DIDynCmbDiv.offsetWidth))  { leftpos = DIDynCmb_getMouseX() - DIDynCmbDiv.offsetWidth; }
		if (leftpos > (winWidth  - 320)) { leftpos = winWidth - 320; }
		if (Toppos  > (winHeight - DIDynCmbDiv.offsetHeight)) { Toppos  = DIDynCmb_getMouseY() - DIDynInput0.offsetHeight - DIDynCmbDiv.offsetHeight; }

		DIDynCmbDiv.style.pixelLeft = leftpos;
		DIDynCmbDiv.style.pixelTop  = Toppos;

		// Afficher la liste
		DIDynCmbDiv.style.visibility="visible";
		DIDynCmb_vis = true;

	}
}


// Affichage de la liste Dynamique
function DIDynCmb_aff(DIDynObj, DIDynUrl)
{
	// Masquer la liste si actuellement visible
	if (DIDynCmb_vis == true)
	{
		document.getElementById('DIDynCmbDiv').style.visibility = "hidden";
		document.getElementById('DIDynCmbDiv').innerHTML = "&nbsp;";
		DIDynCmb_vis = false;
	}
	else
	{
		// Appeller le programme de chargement de la liste
		var url = DIDynUrl + '&XMLHttpRequest=yes&DIDynCmbLst=yes';
		makeRequest(url,'DIDynCmbDiv',false);


		// Taille de la fenetre
		if (document.body)
		{
			var winWidth = (document.body.clientWidth);
			var winHeight = (document.body.clientHeight);
		}
		else
		{
			var winWidth = (window.innerWidth);
			var winHeight = (window.innerHeight);
		}
	
	
if(document.getElementById('DIDocutheque'))
{

		leftpos = DIDynCmb_getMouseX() + DIDynObj.offsetWidth + 5 ;
		Toppos  = DIDynCmb_getMouseY() ;
}
else
{
	leftpos = PWSPosAbs_Left(DIDynObj) + DIDynObj.offsetWidth + 5 ;
		Toppos  = PWSPosAbs_Top(DIDynObj) ;
}
		if (leftpos > (winWidth - 300)) { leftpos = winWidth - 300; }

		document.getElementById('DIDynCmbDiv').style.pixelLeft = leftpos;
		document.getElementById('DIDynCmbDiv').style.pixelTop  = Toppos;
		
		// Afficher la liste
		document.getElementById('DIDynCmbDiv').style.visibility = "visible";
		DIDynCmb_vis = true;
	}
}


// Ajout VA du 18/08/2008
// Affichage de la liste Dynamique avec une div relative (la bulle se met a l'emplacement du div mais on peut faire varier les emplacements avec les nbPixel)
// Remarque : si nbPixelTop est négatif alors la bulle montera
function DIDynCmb_aff_relative(DIDynObj, DIDynUrl, nbPixelLeft, nbPixelTop)
{
	// Masquer la liste si actuellement visible
	if (DIDynCmb_vis == true)
	{
		DIDynCmbDiv.style.visibility="hidden";
		document.getElementById('DIDynCmbDiv').innerHTML="&nbsp;";
		DIDynCmb_vis = false;
	}
	else
	{
		// Appeller le programme de chargement de la liste
		var url = DIDynUrl + '&XMLHttpRequest=yes&DIDynCmbLst=yes';
		makeRequest(url,'DIDynCmbDiv',false);

		// Taille de la fenetre
		if (document.body)
		{
			var winWidth = (document.body.clientWidth);
			var winHeight = (document.body.clientHeight);
		}
		else
		{
			var winWidth = (window.innerWidth);
			var winHeight = (window.innerHeight);
		}

		// GB le 20080816
//		leftpos = DIDynCmb_Left(DIDynObj) + nbPixelLeft ;
//		Toppos  = DIDynCmb_Top(DIDynObj) + nbPixelTop ;
		leftpos = PWSPosAbs_Left(DIDynObj) + nbPixelLeft ;
		Toppos  = PWSPosAbs_Top(DIDynObj) + nbPixelTop ;

		DIDynCmbDiv.style.pixelLeft = leftpos;
		DIDynCmbDiv.style.pixelTop  = Toppos;

		// Afficher la liste
		DIDynCmbDiv.style.visibility="visible";
		DIDynCmb_vis = true;
	}
}




// Masquage de la liste Dynamique
//function DIDynCmb_msq(DIDynObj, DIDynUrl)
//{
//	DIDynCmbDiv.style.visibility="hidden";
//	document.getElementById('DIDynCmbDiv').innerHTML="&nbsp;";
//	DIDynCmb_vis = false;
//}
function DIDynCmb_msq(DIDynObj, DIDynUrl)
{
	document.getElementById('DIDynCmbDiv').style.visibility="hidden";
	document.getElementById('DIDynCmbDiv').innerHTML="&nbsp;";
	DIDynCmb_vis = false;
}



/* trouve le tag "SuivantTagName" suivant de "element" */
function DIDyngetNext(element, SuivantTagName) {
	if ( ! element )
	return null;
	else if ( element.nodeType == 1 && element.nextSibling.tagName.toLowerCase() == SuivantTagName.toLowerCase() )
	return element.nextSibling;
	else
	return DIDyngetNext(element.nextSibling, SuivantTagName);
}

// Affichage de l'élément sélectionné dans le champ texte
// 1/ si parametre "propertyretour" non défini => renvoi des 1ere colonnes du tableau
function DIDynCmbSel()
{
	var cellule=event.srcElement;
	var ligne=cellule.parentNode;
	// Renvoi la valeur
	var obj = ligne.firstChild;
	DIDynInput0.value=ligne.firstChild.innerHTML;
	// Renvoi des zones supplémentaires
	var obj1 = obj.nextSibling;
	if (DIDynInput_Nbr > 1) { DIDynInput1.value = obj1.innerHTML; }
	var obj2 = obj1.nextSibling;
	if (DIDynInput_Nbr > 2) { DIDynInput2.value = obj2.innerHTML; }
	// Masquer la liste
	DIDynCmbDiv.style.visibility="hidden";
	document.getElementById('DIDynCmbDiv').innerHTML="&nbsp;";
	DIDynCmb_vis = false;
}
// 2/ si parametre "propertyretour" défini => renvoi des valeurs correspondantes (4 paramètres maxi)
function DIDynCmbSelProp(prop0, prop1, prop2, prop3)
{
	// Renvoi des valeurs
	if (prop0 != "") { DIDynInput0.value = prop0; }
	if (prop1 != "") { DIDynInput1.value = prop1; }
	if (prop2 != "") { DIDynInput2.value = prop2; }
	if (prop3 != "") { DIDynInput3.value = prop3; }
	// Masquer la liste
	DIDynCmbDiv.style.visibility="hidden";
	document.getElementById('DIDynCmbDiv').innerHTML="&nbsp;";
	DIDynCmb_vis = false;
}

// GB le 20080816 : remplacé par PWSPosAbs_Left et PWSPosAbs_Top de PWSFonction.js
// Position left absolue de elem
//function DIDynCmb_Left(elem)
//{
//	var p = elem.offsetParent
//	if(!p)
//	return elem.offsetLeft
//	else
//	return elem.offsetLeft+DIDynCmb_Left(p)
//}
//
//// Position Top absolue de elem
//function DIDynCmb_Top(elem)
//{
//	var p = elem.offsetParent
//	if(!p)
//	return elem.offsetTop
//	else
//	return elem.offsetTop+DIDynCmb_Top(p)
//}

// Mise en sur brillance de l'élément survolé.
function DIDynCmbOvr()
{
	var cellule=event.srcElement;
	var ligne=cellule.parentNode;
	//ligne.style.backgroundColor="highlight";
	ligne.style.backgroundColor="#ffcc99";
}

// Retour à l'état normal de l'élément de la liste.
function DIDynCmbOut()
{
	var cellule=event.srcElement;
	var ligne=cellule.parentNode;
	ligne.style.backgroundColor="white";
}

// Affichage de l'info bulle
function DIDynCmb_affIB(DIDynObj, DIDynUrl)
{
	if (DIDynObj.value != '')
	{
		// Appeller le programme de chargement de la liste
		var url = DIDynUrl + '&XMLHttpRequest=yes&infobulle=yes&DIDynCmbval=' + DIDynObj.value;
		makeRequest(url,'DIDynCmbBulle',false);

		// Taille de la fenetre
		if (document.body)
		{
			var winWidth = (document.body.clientWidth);
			var winHeight = (document.body.clientHeight);
		}
		else
		{
			var winWidth = (window.innerWidth);
			var winHeight = (window.innerHeight);
		}
		//		leftpos = DIDynCmb_Left(DIDynObj);
		//		if (leftpos > (winWidth - 300)) { leftpos = winWidth - 300; }
		//		Toppos  = DIDynCmb_Top(DIDynObj) - DIDynObj.offsetHeight ;
		leftpos = DIDynCmb_getMouseX();
		Toppos  = DIDynCmb_getMouseY() - DIDynObj.offsetHeight -20 ;
		if (leftpos > (winWidth - 300)) { leftpos = winWidth - 300; }

		document.getElementById('DIDynCmbBulle').style.pixelLeft = leftpos;
		document.getElementById('DIDynCmbBulle').style.pixelTop  = Toppos;

		// Afficher la liste
		document.getElementById('DIDynCmbBulle').style.visibility="visible";
	}
}

// Masquage de l'info bulle
function DIDynCmb_msqIB(DIDynObj, DIDynUrl)
{
	//DIDynCmbBulle.style.visibility="hidden";
	document.getElementById('DIDynCmbBulle').style.visibility="hidden";
	document.getElementById('DIDynCmbBulle').innerHTML="&nbsp;";
}

// Position X de la souris
function DIDynCmb_getMouseX(e){
	if (!e) var e = window.event;
	if(window.opera)                                               //OP6
	return e.clientX;
	else if(document.all)                                           //IE4,IE5,IE6
	return document.body.scrollLeft+e.clientX;
	else if(document.layers||document.getElementById)               //N4,N6,Moz
	return e.pageX;
}
// Position Y de la souris
function DIDynCmb_getMouseY(e){
	if (!e) var e = window.event;
	if(window.opera)                                                //OP6
	return e.clientY;
	else if(document.all)                                           //IE4,IE5,IE6
	return document.body.scrollTop+e.clientY;
	else if(document.layers||document.getElementById)               //N4,N6,Moz
	return e.pageY;
}

//var IB=new Object;
//var posX=0;posY=0;
//var xOffset=10;yOffset=10;
//function DIDynCmb_AffBulle(texte) {
//  contenu="<TABLE border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><TR bgcolor='"+IB.ColContour+"'><TD>
//<TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><TR><TD><FONT size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</FONT></TD></TR></TABLE>
//</TD></TR></TABLE>&nbsp;";
//  var finalPosX=posX-xOffset;
//  if (finalPosX<0) finalPosX=0;
//  if (document.layers) {
//    document.layers["DIDynCmb_bulle"].document.write(contenu);
//    document.layers["DIDynCmb_bulle"].document.close();
//    document.layers["DIDynCmb_bulle"].top=posY+yOffset;
//    document.layers["DIDynCmb_bulle"].left=finalPosX;
//    document.layers["DIDynCmb_bulle"].visibility="show";}
//  if (document.all) {
//    //var f=window.event;
//    //doc=document.body.scrollTop;
//    DIDynCmb_bulle.innerHTML=contenu;
//    document.all["DIDynCmb_bulle"].style.top=posY+yOffset;
//    document.all["DIDynCmb_bulle"].style.left=finalPosX;//f.x-xOffset;
//    document.all["DIDynCmb_bulle"].style.visibility="visible";
//  }
//  //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
//  else if (document.getElementById) {
//    document.getElementById("DIDynCmb_bulle").innerHTML=contenu;
//    document.getElementById("DIDynCmb_bulle").style.top=posY+yOffset;
//    document.getElementById("DIDynCmb_bulle").style.left=finalPosX;
//    document.getElementById("DIDynCmb_bulle").style.visibility="visible";
//  }
//}
//function getMousePos(e) {
//  if (document.all) {
//  posX=event.x+document.body.scrollLeft; //modifs CL 09/2001 - IE : regrouper l'évènement
//  posY=event.y+document.body.scrollTop;
//  }
//  else {
//  posX=e.pageX; //modifs CL 09/2001 - NS6 : celui-ci ne supporte pas e.x et e.y
//  posY=e.pageY;
//  }
//}
//function DIDynCmb_Hidebulle() {
//	if (document.layers) {document.layers["DIDynCmb_bulle"].visibility="hide";}
//	if (document.all) {document.all["DIDynCmb_bulle"].style.visibility="hidden";}
//	else if (document.getElementById){document.getElementById("DIDynCmb_bulle").style.visibility="hidden";}
//}
//
//function DIDynCmb_Initbulle(ColTexte,ColFond,ColContour,NbPixel) {
//	IB.ColTexte=ColTexte;
//	IB.ColFond=ColFond;
//	IB.ColContour=ColContour;
//	IB.NbPixel=NbPixel;
//	if (document.layers) {
//		window.captureEvents(Event.MOUSEMOVE);
//		window.onMouseMove=getMousePos;
//		document.write("<LAYER name='DIDynCmb_bulle' top=0 left=0 visibility='hide'></LAYER>");
//	}
//	if (document.all) {
//		document.write("<DIV id='DIDynCmb_bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
//		document.onmousemove=getMousePos;
//	}
//	//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
//	else if (document.getElementById) {
//	        document.onmousemove=getMousePos;
//	        document.write("<DIV id='DIDynCmb_bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>");
//	}
//
//}
