// Procédures globales du projet
function PGNMESSAGEATTENTE_PGNARRETERTRAITEMENT( )
{
	{
	gArretTrtJauge=true;
	clWDAJAXMain.AJAXExecuteAsynchrone("PGA_RENVOYER_ARRET_TRT","", "",gArretTrtJauge);
	gArretTrtJauge=false;
}
}
function PGNJS_AFFICHE_GFI()
{	
	if (typeof(xCalqueGFI)== "undefined" ) xCalqueGFI = document.getElementById("GFI");
	// On recupere les dimensions de la page principale
//	var xHauteurDispo = PGNJS_NAV_HAUTEUR(); // Hauteur Fixe
//	var xLargeurDispo = PGNJS_NAV_LARGEUR();//parent.document.body.offsetWidth; // Largeur de la fenetre principale
	
	
	// Pour cacher les eventuelles scrollbar lors de l'affichage du GFI qui peut etre plus grand que la page
	document.body.style.overflowXOld = document.body.style.overflowX;
	document.body.style.overflowX = "hidden";
	

	// Si le calque GFI existe, on l'affiche
	if (xCalqueGFI) {
		//xCalqueGFI.style.visibility = "visible";		
//		xCalqueGFI.style.display = "block";
		
		$(xCalqueGFI).fadeIn("slow");
		
	}else{ // sinon on le crée et on l'affiche
		// On determine premierement où va etre placé la cellule GFI(dans quel conteneur)
		var xConteneur = document.getElementsByTagName("FORM")[0];
		if (!xConteneur) { xConteneur = getElementsByTagName("DIV")[0];}
		if (!xConteneur) { xConteneur = document.body;}
		
		var xPosConteneur = PGNJS_GET_POSITION(xConteneur);
		
		// Création d'un nouveau calque GFI (pour grisé l'arriere plan)
		// La cellule qui imite le GFI de WinDev prend toute la dimension de la page
		// Elle est semi transparente
		xCalqueGFI = document.createElement("DIV");
		xCalqueGFI.name = "GFI";
		xCalqueGFI.id = "GFI";
		xCalqueGFI.style.position = "absolute";
		xCalqueGFI.style.top  = "0px" //- xConteneur.style.top ;
		xCalqueGFI.style.left = "0px" //- xConteneur.style.left ;

		
		//alert(PGNJS_NAV_HAUTEUR());
		xCalqueGFI.style.height = (PGNJS_DOC_HAUTEUR()- xPosConteneur[0])+"px";
		
		//alert(PGNJS_NAV_LARGEUR());
		xCalqueGFI.style.width = (PGNJS_NAV_LARGEUR()- xPosConteneur[1])+"px";
		
		//alert(xCalqueGFI.style.width +" = "+ PGNJS_NAV_LARGEUR()+" - "+ xPosConteneur[1]);
		
		xCalqueGFI.style.filter = "alpha(opacity=00)";
		xCalqueGFI.style.opacity = 0.00;
		xCalqueGFI.style.visibility = "visible";
		
		//	xCalqueGFI.style.visibility = "hidden";
//		xCalqueGFI.style.backgroundColor = "#DDDDDD";
		xCalqueGFI.style.backgroundColor = "#FFFFFF";
		xCalqueGFI.style.zIndex = 1000; 
		
		xConteneur.appendChild(xCalqueGFI);
		//document.body.appendChild(xCalqueGFI);
		
		
		$(window).resize(function(){
		
			var xPosConteneur = PGNJS_GET_POSITION(xCalqueGFI.parentNode);
			
			xCalqueGFI.style.height = (PGNJS_DOC_HAUTEUR()- xPosConteneur[0])+"px";
			xCalqueGFI.style.width = (PGNJS_NAV_LARGEUR()- xPosConteneur[1])+"px";
			
//			xCalqueGFI.style.width = PGNJS_NAV_LARGEUR();
//			xCalqueGFI.style.height = PGNJS_NAV_HAUTEUR();
		});
		
		$(xCalqueGFI).fadeTo("slow",0.6);
	
	}
}

function PGNJS_CACHE_GFI()
{
	if (typeof(xCalqueGFI)== "undefined" ) xCalqueGFI = document.getElementById("GFI");
	
	//var xCalqueGFI = document.getElementById("GFI");	
	
	// Si le calque GFI existe, on le cache
	if (xCalqueGFI){
		// pour remettre les scrollbar tel qu'elles étaient à l'origine
		document.body.style.overflowX = document.body.style.overflowXOld;	
		
		$(xCalqueGFI).fadeOut("normal",0);
		//xCalqueGFI.style.visibility = "hidden";
		
	}
}

function PGNJS_AFFICHE_MESSAGE(pMessage , pLargeur , pHauteur ,pJauge,pJaugeMax , pSansLeGFI, pSansImageAttente)
{
	if (typeof(xCalqueAttente)== "undefined" ) xCalqueAttente = document.getElementById("CEL_MESSAGE_ATTENTE");
	
	var xLargeur = (parseInt(pLargeur,10) > 0)?Math.max(parseInt(pLargeur,10),400):600;
	var xHauteur = (parseInt(pHauteur,10) > 0)?Math.max(parseInt(pHauteur,10),150):150;
	var xLargeurJauge = pSansImageAttente?xLargeur-30:xLargeur-200 ;//(parseInt(pLargeur) > 0)?((parseInt(pLargeur))-200):(600-200);
	var xLargeurMessage = pSansImageAttente?xLargeur-30:xLargeur-150 ;
	var xCouleur = "FFFFFF";
	var xCouleurBordure = "999999";
	var xConteneur;
//	var xPosTopConteneur;
//	var xPosLeftConteneur;
	// On recupere les dimensions de la page principale
	var xLargeurDispo = PGNJS_NAV_LARGEUR();
	var xHauteurDispo = PGNJS_NAV_HAUTEUR();
	
	var xContenuHTML ;
	var xMessage = pMessage.replace(/\r\n/,"<br>");
	var xContenuJauge =""; 
	
	// construction de la jauge si besoin
	if (pJauge && pJaugeMax && pJauge > 0 && pJaugeMax > 0 ) {
		xContenuJauge+= 			"<DIV  id=CONTENEUR_JAUGE  STYLE=\"  width:" + xLargeurJauge + "px; height:24px;   display:block; border:1px solid #666666;  overflow:hidden; \"> "
		xContenuJauge+= 			"	<DIV id=AVANCEMENT_JAUGE   class=\"Jauge\"  STYLE=\"  width:"+Math.floor((pJauge/pJaugeMax)*xLargeurJauge)+"px; height:24px;  \"> "
		xContenuJauge+= 			"	</DIV> "		
		xContenuJauge+= 			"	<DIV id=POURCENTAGE_JAUGE  STYLE=\"  width:"+xLargeurJauge+"px; height:24px;   position:relative;  top:-24px; overflow:hidden; \"> "
		xContenuJauge+= 				Math.floor((pJauge/pJaugeMax)*100) +" %"		
		xContenuJauge+= 			"	</DIV> "
		xContenuJauge+= 			"</DIV> "
	}
	
	if (xCalqueAttente) {
		//if (xCalqueAttente.style.visibility != "visible"){ // s'il n'est pas visible, on l'affiche
		if (xCalqueAttente.style.display == "none"){ // s'il n'est pas visible, on l'affiche

			if (!pSansLeGFI) { // on affiche d'abord le GFI
				PGNJS_AFFICHE_GFI();
			}else{
				PGNJS_CACHE_GFI();
				//		alert("sans le gfi");
			}
		
//			xPosTopConteneur = PGNJS_GET_POSITION(xCalqueAttente.offsetParent)[0];
//			xPosLeftConteneur = PGNJS_GET_POSITION(xCalqueAttente.offsetParent)[1];
			
			xCalqueAttente.style.width = xLargeur +"px";
			xCalqueAttente.style.height = xHauteur +"px";
			xCalqueAttente.style.top  = (( xHauteurDispo - xHauteur ) / 2 )+document.body.scrollTop+"px";//- xPosTopConteneur ;
			xCalqueAttente.style.left = (( xLargeurDispo - xLargeur ) / 2 )+"px";//- xPosLeftConteneur ;	
			
			// On memorise ces valeurs pour pouvoir tester plus tard ce qu'il faut reactualiser.
			xCalqueAttente.Largeur = xLargeur;
			xCalqueAttente.Hauteur = xHauteur;		
			xCalqueAttente.HauteurDispo = xHauteurDispo;
			xCalqueAttente.SansImageAttente = pSansImageAttente;
		
			if (!pSansImageAttente){
				document.getElementById("ImageAttente").style.width = "120px";
				document.getElementById("ImageAttenteBordDroit").style.width = "15px";
				document.getElementById("ImageAttente").className = "Image-Attente";
			}else{
				document.getElementById("ImageAttente").style.width = "0px";
				document.getElementById("ImageAttenteBordDroit").style.width = "0px";
				document.getElementById("ImageAttente").className = "";
			}

			document.getElementById("TableMessage").style.height = (xHauteur-18)+"px"
			document.getElementById("TableMessagePremiereCellule").style.height = (xHauteur-18)+"px"
			document.getElementById("MESSAGE_INFO").style.height = (xHauteur-18-26)+"px"
			document.getElementById("MESSAGE_INFO").style.width = xLargeurMessage+"px"
			
			$(xCalqueAttente).fadeIn("slow");
			
			document.getElementById("MESSAGE_INFO").innerHTML = xMessage;
			document.getElementById("JAUGE").innerHTML = xContenuJauge;

		}else{ // si le calque existe et est deja affiché, on actualise seulement ce qui change (pour eviter les clignotement sous FF)

			//alert(xCalqueAttente.Largeur + "  " +xCalqueAttente.Hauteur)

			
			if (xCalqueAttente.SansImageAttente != pSansImageAttente){
				if (!pSansImageAttente) {
					document.getElementById("ImageAttente").style.width = "120px";
					document.getElementById("ImageAttenteBordDroit").style.width = "15px";
					document.getElementById("ImageAttente").className = "Image-Attente";
				}else{
					document.getElementById("ImageAttente").style.width = "0px";
					document.getElementById("ImageAttenteBordDroit").style.width = "0px";
					document.getElementById("ImageAttente").className = "";
				}
				
				xCalqueAttente.SansImageAttente = pSansImageAttente;
			}


			if(xCalqueAttente.Largeur != xLargeur || xCalqueAttente.Hauteur != xHauteur ) {
				xCalqueAttente.style.width = xLargeur +"px";
				xCalqueAttente.style.height = xHauteur +"px";
				xCalqueAttente.style.top  = (( xHauteurDispo - xHauteur ) / 2 )+document.body.scrollTop+"px";//- xPosTopConteneur ;
				xCalqueAttente.style.left = (( xLargeurDispo - xLargeur ) / 2 )+"px";//- xPosLeftConteneur ;	
				// On memorise ces valeurs pour pouvoir tester plus tard ce qu'il faut reactualiser.
				xCalqueAttente.Largeur = xLargeur;
				xCalqueAttente.Hauteur = xHauteur;
				xCalqueAttente.HauteurDispo = xHauteurDispo;
					
				document.getElementById("TableMessage").style.height = (xHauteur-18)+"px"
				document.getElementById("TableMessagePremiereCellule").style.height = (xHauteur-18)+"px"
				document.getElementById("MESSAGE_INFO").style.height = (xHauteur-18-26)+"px"
				document.getElementById("MESSAGE_INFO").style.width = xLargeurMessage+"px"	
			}

			
		
			if (document.getElementById("MESSAGE_INFO").innerHTML != xMessage)	document.getElementById("MESSAGE_INFO").innerHTML = xMessage;

			// Jauge 
			if (pJauge && pJaugeMax && pJauge > 0 && pJaugeMax > 0 ) {
				if (document.getElementById("AVANCEMENT_JAUGE") ){
					document.getElementById("AVANCEMENT_JAUGE").style.width = Math.floor((pJauge/pJaugeMax)*xLargeurJauge)+"px";
					document.getElementById("POURCENTAGE_JAUGE").innerHTML = Math.floor((pJauge/pJaugeMax)*100) +" %"
					document.getElementById("POURCENTAGE_JAUGE").style.width = xLargeurJauge+"px";
					document.getElementById("CONTENEUR_JAUGE").style.width = xLargeurJauge+"px";
				}else{
					document.getElementById("JAUGE").innerHTML = xContenuJauge;
					
				}
			}else{
				document.getElementById("JAUGE").innerHTML = ""
			}
			
	
			//if (document.getElementById("JAUGE").innerHTML != xContenuJauge)	document.getElementById("JAUGE").innerHTML = xContenuJauge;
		
		}
		
	}else{ // sinon on le crée et on l'affiche
		
		// On determine premierement où va etre placé la cellule GFI(dans quel conteneur)
//		xConteneur = document.getElementsByTagName("FORM")[0];
//		if (!xConteneur) { xConteneur = getElementsByTagName("DIV")[0];}
		if (!xConteneur) { xConteneur = document.body;}
		
		if (!pSansLeGFI) {
			
			PGNJS_AFFICHE_GFI();
		}else{
			PGNJS_CACHE_GFI();
			//		alert("sans le gfi");
		}
		
		
//		xPosTopConteneur = PGNJS_GET_POSITION(xConteneur)[0];
//		xPosLeftConteneur = PGNJS_GET_POSITION(xConteneur)[1];
		
		// Création d'un nouveau calque GFI (pour grisé l'arriere plan)
		// La cellule qui imite le GFI de WinDev prend toute la dimension de la page
		// Elle est semi transparente
		xCalqueAttente = document.createElement("DIV");
		xCalqueAttente.name = "CEL_MESSAGE_ATTENTE";
		xCalqueAttente.id = "CEL_MESSAGE_ATTENTE";
		xCalqueAttente.style.position = "absolute";
		xCalqueAttente.style.width = xLargeur +"px";
		xCalqueAttente.style.height = xHauteur +"px";
		xCalqueAttente.style.top  = (( xHauteurDispo - xHauteur ) / 2)+document.body.scrollTop +"px";//- xPosTopConteneur ;
		xCalqueAttente.style.left = (( xLargeurDispo - xLargeur ) / 2) +"px";//- xPosLeftConteneur ;	

		// On memorise ces valeurs pour pouvoir tester plus tard ce qu'il faut reactualiser.
		xCalqueAttente.Largeur = xLargeur;
		xCalqueAttente.Hauteur = xHauteur;
		xCalqueAttente.HauteurDispo = xHauteurDispo;
		xCalqueAttente.SansImageAttente = pSansImageAttente;

//		xCalqueAttente.style.filter = "alpha(opacity=75)";
//		xCalqueAttente.style.opacity = 0.75;
		xCalqueAttente.style.filter = "alpha(opacity=0)";
		xCalqueAttente.style.opacity = 0;

		xCalqueAttente.style.visibility = "visible";		
		//xCalqueAttente.style.backgroundColor = "#FFFFFF";
		xCalqueAttente.style.zIndex = 999999; 
		
		// Construction du contenu du calque (mise en forme)		
		xContenuHTML = "";
		xContenuHTML+= "<div style=\"margin:0 9px; display:block; overflow:hidden; height:1px; background:#"+xCouleurBordure	+";\" ></div>";
		xContenuHTML+= "<div style=\"margin:0 7px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:2px solid #"+xCouleurBordure+"; border-right:2px solid #"+xCouleurBordure+";  \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 5px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 4px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 3px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 2px; display:block; overflow:hidden; height:2px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";    \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 1px; display:block; overflow:hidden; height:2px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		
		xContenuHTML+= "<TABLE id=\"TableMessage\" class=\"Table-Message\"  style=\"height:"+(xHauteur-18)+"px;  width:100%; border-left:1px #"+xCouleurBordure+" solid; border-right:1px #"+xCouleurBordure+" solid;   background:#"+xCouleur+"; border-collapse:collapse; \"  cellspacing=0>";
		xContenuHTML+= "		<TR  id='LigneMessage' >";

		// Construction du corps du message
		xContenuHTML+= "			<TD  id=\"TableMessagePremiereCellule\" style=\"width:15px; height:"+(xHauteur-18)+"px;\" valign=middle rowspan=2> </TD>";
		xContenuHTML+= "			<TD  id='ImageAttente'  style=\"width:";		
		if (!pSansImageAttente) {xContenuHTML+="120px";}else{xContenuHTML+="0px";}
		xContenuHTML+= "; height:120px; vertical-align:middle;\"  valign=middle rowspan=2  ";
		if (!pSansImageAttente) {xContenuHTML+="class=\"Image-Attente\" ";}else{xContenuHTML+="class=\"\" ";}		
		xContenuHTML+= "> </TD><TD  id='ImageAttenteBordDroit'  style=\"width:";
		if (!pSansImageAttente) {xContenuHTML+="0px";}else{xContenuHTML+="15px";}
		xContenuHTML+=";\" valign=middle rowspan=2> </TD>";
		
		xContenuHTML+= "			<TD  id=\"MESSAGE_INFO\"  style=\"height:"+(xHauteur-18-26)+"px; width:"+xLargeurMessage+"px;\"   valign=middle  CLASS=\"Message-Attente\" >";
		xContenuHTML+= 				xMessage;
		xContenuHTML+= "			</TD>";

		xContenuHTML+= "		</TR>";
		// Jauge
		xContenuHTML+= "		<TR  id='LigneJauge' >";
		xContenuHTML+= "			<TD  id=JAUGE   style=\"height:24px;\" valign=middle  CLASS=\"Message-Attente\" >";
		xContenuHTML+= 	xContenuJauge
		xContenuHTML+= "			</TD>";
		xContenuHTML+= "		</TR>";
		xContenuHTML+= "</TABLE>";
		xContenuHTML+= "<div style=\"margin:0 1px; display:block; overflow:hidden; height:2px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 2px; display:block; overflow:hidden; height:2px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";    \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 3px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 4px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 5px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:1px solid #"+xCouleurBordure+"; border-right:1px solid #"+xCouleurBordure+";   \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 7px; display:block; overflow:hidden; height:1px; background:#"+xCouleur		+";  border-left:2px solid #"+xCouleurBordure+"; border-right:2px solid #"+xCouleurBordure+";  \" ></div>";
		xContenuHTML+= "<div style=\"margin:0 9px; display:block; overflow:hidden; height:1px; background:#"+xCouleurBordure	+";\" ></div>";
		
		xCalqueAttente.innerHTML = xContenuHTML;
		
		xConteneur.appendChild(xCalqueAttente);
		
		$(window).resize(function(){
//			var xLargeurDispo = PGNJS_NAV_LARGEUR();
//			var xHauteurDispo = PGNJS_NAV_HAUTEUR();
//
//			xCalqueAttente.style.top  = ( xHauteurDispo - xCalqueAttente.style.height ) / 2 ;
//			xCalqueAttente.style.left = ( xLargeurDispo - xCalqueAttente.style.width ) / 2 ;
		});
		
		
		
		$(xCalqueAttente).fadeTo("slow",0.85);
		//$(xCalqueAttente).show("scale",{},500);
		
	}
}


$(window).scroll(function () { 
	xCalqueAttente = document.getElementById("CEL_MESSAGE_ATTENTE");
	if (xCalqueAttente) {
		xCalqueAttente.style.top  = (( xCalqueAttente.HauteurDispo - xCalqueAttente.Hauteur ) / 2)+document.body.scrollTop+"px";
	}
});

function PGNJS_CACHE_MESSAGE()
{
	if (typeof(xCalqueAttente)== "undefined" ) xCalqueAttente = document.getElementById("CEL_MESSAGE_ATTENTE");

	// Si le calque existe, on le cache
	if (xCalqueAttente) {
	
		$(xCalqueAttente).fadeOut("slow");
		
		//$(xCalqueAttente).hide("scale",{},500);
		
		//xCalqueMessage.style.visibility = "hidden";
	}
	
	PGNJS_CACHE_GFI();
}


