function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;
  if(!d) d=document; 
  if((p=n.indexOf("?"))>0 && parent.frames.length) 
  	{
    d=parent.frames[n.substring(p+1)].document; 
	n=n.substring(0,p);
	}
  if(!(x=d[n]) && d.all) x=d.all[n]; 
  for (i=0;!x && i<d.forms.length;i++) x=d.forms[i][n];
  for (i=0;!x && d.layers && i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); 
  return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  {
	if ((obj=MM_findObj(args[i]))!=null)
	{
		v=args[i+2];
		//récupétration de l'id de la div
		var id = obj.id;
	    if (obj.style)
		{
			
			obj=obj.style;
			v=(v=='show')?'visible':(v='hide')?'hidden':v;
			if (v=='visible') {
				HideSelect(id);
				}
			else {
				ShowSelect();
				}
		    
		}
		obj.visibility=v; 
		//eval('parent.frames[\'bas\'].'+args[0]+'.style.visibility=v');	
	 }
   }
}

/**********************************************************************************************
Fonction : navigate
Description : 
	Appelle le serveur lorque l'utilisateur a sélectionné une fonction
	- positionne le champ caché _HiddenText à l'id de la fonction 
	- provoque le clique sur le bouton de navigation
Paramètres : 
	- IdClient : valeur générée par .Net et construite dynamiquement par le serveur
	- IdFonctions : id de la fonction sélectionnée
************************************************************************************************/
function Navigate(IdClient,IdFonctions)
{
	try
	{
		// Vérification des modification en cours	
		var toNavigate = (!window.top.ISMODIFIED) || (window.confirm(window.top.CONFIRM_NAVIGATE));
		if (toNavigate) {
			// Masquage de l'écran
			if (MasquerPage) MasquerPage();
		
			//var hiddenText = IdClient+'_HiddenText';
			var hiddenText = "HiddenText"
			document.getElementById(hiddenText).value = IdFonctions;
		
			//var Id = IdClient + '_ButtonNavigation';
			var Id = 'ButtonNavigation';
			document.getElementById(Id).click();
		}
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript Navigate");
		// Restauration de l'affichage de la page
		if (RestaurerPage) MasquerPage();
	}
}
/**********************************************************************************************
Fonction : HideSelect
Description : 
	Cache les éléments de type SELECT
Paramètres : 
	- idDiv  : id de la div qui s'affiche
************************************************************************************************/
function HideSelect(idDiv) 
{
	try
	{
		//la div du menu
		var div= document.getElementById(idDiv);
		//récupération dans la page de tous les éléments de type select
		oSelects = document.getElementsByTagName('SELECT');
		if (oSelects.length > 0) {
			for (i = 0; i < oSelects.length; i++) {
				var basDiv = div.offsetTop + div.offsetHeight;
				var topSelect = calculerTopElement(oSelects[i]);
				//on ne cach l'élément que si la div chevauche le select
				if (basDiv >= topSelect)
				{
					oSelects[i].style.visibility = 'hidden'; 
				}
			} 
		}
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript HideSelect");
	}
}

/**********************************************************************************************
Fonction : calculerTopElement
Description : 
	Calcule le tiop de l'élément
Paramètres : 
	- elt  : element
************************************************************************************************/
function calculerTopElement(elt) 
{
	try
	{
		var currentElt = elt;
		var valeurTop = elt.offsetTop;
		while (currentElt.currentStyle.position != 'absolute')
		{
			currentElt = currentElt.offsetParent;
			valeurTop += currentElt.offsetTop;
		}
		//on retranche à cette valeur le scrollTop de la div divBas
		valeurTop -= document.getElementById("divBas").scrollTop;
		return valeurTop
		
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript calculerTopElement");
	}
}
/**********************************************************************************************
Fonction : ShowSelect
Description : 
	Affiche les éléments de type SELECT
Paramètres : 
	
************************************************************************************************/
function ShowSelect() 
{  
	try
	{
		oSelects = document.getElementsByTagName('SELECT');
		if (oSelects.length > 0) { 
			for (i = 0; i < oSelects.length; i++) {
				oSelects[i].style.visibility = 'visible'; 
			} 
		}
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript ShowSelect");
	}
}

/**********************************************************************************************
Fonction : resizeBas
Description : 
	Redimensionne la div 'divBas' lorsque la taille du navigateur change
Paramètres : 
	
************************************************************************************************/
function resizeBas()
{
	try
	{
		//resize si la fenêtre est > au top de la div
		var divbas = document.getElementById("divBas");
		var topDiv = parseInt( ((isNaN(divbas.currentStyle.top)) ? divbas.offsetTop : divbas.currentStyle.top), 10);
		if (document.body.clientHeight>topDiv)
		{
			divbas.style.height = document.body.clientHeight - topDiv;
			divbas.style.width = document.body.clientWidth;
		}
		//resize si la fenêtre est > au top de la div
		resizeDivErreurs()
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript resizeBas");
	}
}

/**********************************************************************************************
Fonction : resizeDivErreurs
Description : 
	Redimensionne la div 'divErreurs' lorsque la taille du navigateur change
Paramètres : 
	
************************************************************************************************/
function resizeDivErreurs()
{
	try
	{
		//resize si la fenêtre est > au top de la div
		var _divErreurs = document.getElementById("divErreurs");
		var _tableGeneral = document.getElementById("tableGeneral");
		var topDiv = 120;
		var leftDiv = 650;
		if (_tableGeneral) {
			divErreurs.style.overflow = "auto";
			divErreurs.style.width = Math.max(document.body.clientWidth - leftDiv - 15,0);
			divErreurs.style.height = Math.max(_tableGeneral.offsetTop - 15,0);
		}
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript resizeDivErreurs");
	}
}

/**********************************************************************************************
Fonction : lancerAppliExterne
Description : 
	Lance une application externe au portail
Paramètres : 
	appli : nom de l'exécutable à lancer
************************************************************************************************/
function lancerAppliExterne(appli, name)
{
	try
	{
		//var Wsh = new ActiveXObject("WScript.Shell");
		//Wsh.Run(appli);
		window.open(appli, name ? name : 'new');
	}
	catch (exception) 
	{
		alert("Erreur dans la methode javascript lancerAppliExterne : " + exception.description);
	}
}

/**********************************************************************************************
Fonction : getParametre
Description : 
	//TO DO
Paramètres : 
	url :
	cle : 
************************************************************************************************/
function getParametre ( url, cle ) 
{
	try
	{
		var valeur = "";
		var iDebutParams = url.indexOf("?");
		if ( iDebutParams >= 0 ) 
		{
			var iDebut = url.indexOf(cle+"=",iDebutParams);
			if ( iDebut >= 0 ) 
			{
				var iFin = url.indexOf("&",iDebut);
				var iDebutValeur = iDebut+cle.length+1 ;
				if ( iFin >= 0 ) 
				{
					valeur = url.substr(iDebutValeur, iFin-iDebutValeur);
				} else 
				{
					valeur = url.substr(iDebutValeur, url.length);
				}
			}
		}
		return valeur 
	}
	catch (exception) 
	{
		alert("Erreur : "+ exception.description+" dans la méthode javascript getParametre");
	}
}

