//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var ss_detect=navigator.userAgent.toLowerCase();  // Variable comprenant les infos du navigateur du visiteur
strAgentName=new String(ss_detect); // String comprenant les infos du navigateur du visiteur
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var ss_version=0; // version du browser du visiteur 
var ss_browser=''; // le browser du visiteur
var ss_OS_info='';// Information  brutes sur le OS du visiteur
var ss_OS='';// Information finales et traitees sur leOS du visiteur
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var chosen_style=''; // style choisi selon les differents browser, version et OS
var chosen_folder=' '; // localisation du repertoire des CSS
var chosenURL='';	// pour la nouvelle fonction a cause du re-writing de URL
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
var regex; 
var bnq_fureteur;
var isNetscape=false;





//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//  Detection du OS  
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
regex = /.*(windows|macintosh|mac_powerpc).*/i;
//  Traite tous les systemes   
if (regex.test(ss_detect)){ss_OS_info = regex.exec(ss_detect); if (ss_OS_info){ss_OS = ss_OS_info[1];}}// fin du if (regex.test(ss_detect))
 // Si macOs, on 	
	if ((ss_OS == "macintosh") || (ss_OS == "mac_powerpc")) {ss_OS = "MAC";}
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	// Detection OPERA
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		if(strAgentName.indexOf('opera') != -1) {ss_version = parseFloat(navigator.appVersion);ss_browser = 'opera';
			}else{
		//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		// Detection NETSCAPE, IE et autres
		//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
			if ((ss_browser == "" ) || (ss_version == "")){
				regex = /.*(firefox|msie|opera|netscape)[0-9]?[ \/]{0,3}([0-9.,]+).*/ig;
				ss_browser_info = regex.exec(ss_detect);	
			// IE > 5, Netscape > 6
					if (ss_browser_info){ss_browser = ss_browser_info[1];ss_version = ss_browser_info[2];
					}else{//Netscape 4.7x		
							regex = /^\s*mozilla\/([0-9.]+).*/i;
							ss_browser_info = regex.exec(ss_detect);
							if (ss_browser_info){ss_version = ss_browser_info[1];ss_browser = "netscape";
							}
					} 
			}	
} 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// --- Choix de la feuille de style et de sa localisation
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

switch (ss_browser){ 
	case "msie" 		: 	ss_browser = "Internet Explorer"; break;
	case "netscape" 	: 	ss_browser = "Netscape Navigator"; isNetscape=true;break;
	case "opera" 		: 	ss_browser = "Opera"; break;		
	case "mozilla"  	: 	ss_browser = "Mozilla"; break;		
	case "firefox"		:	ss_browser = "Mozilla"; break;		
	default				:	ss_browser = "Internet Explorer"; // Par defaut, on pointe sur IE...
	} // fin du switch (ss_browser)
	
function choosestyle(localisation){
// Localisation : localisation du repertoire des css: pour extranet et autre
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(localisation){localisation = parseInt(localisation);}else{localisation = 1;}
switch (localisation){	
	case 1 		: 		chosen_folder="/css/";break; 
	case 2 		: 		chosen_folder="/css/extranet/"; break;
	case 3 		: 		chosen_folder="/css/laboratoire/"; break;
	default 		: 		chosen_folder="/css/";
	}// switch
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 var NumVersion = parseFloat(ss_version);
 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


if (ss_OS == "MAC") // Si on est avec MAC
   {
 	   switch(ss_browser){
			case "Internet Explorer" 		: 		chosen_style = bnq_assembleurURL (chosen_folder + "mac_ie.css");break;
			case "Netscape Navigator" 	:  if (NumVersion  >= 7)
										{chosen_style = bnq_assembleurURL (chosen_folder + "mac.css");}
										else 	{chosen_style = bnq_assembleurURL (chosen_folder + "mac_ns.css");}break;
			case "Opera" 						:		chosen_style = bnq_assembleurURL (chosen_folder + "mac_opera.css");break;				
			case "Mozilla" 					:		chosen_style = bnq_assembleurURL (chosen_folder + "mac.css");break;				
			default 								:		chosen_style = bnq_assembleurURL (chosen_folder + "mac.css");	
			}// switch
  } else{  //if ss_OS  
	   switch(ss_browser)
		{		
			case "Internet Explorer" :  if (NumVersion  >= 7)
										{chosen_style = bnq_assembleurURL (chosen_folder + "ie_7.css");}
										else if (NumVersion  > 5.5)
										{chosen_style = bnq_assembleurURL (chosen_folder + "ie.css");}
										else
										{chosen_style = bnq_assembleurURL (chosen_folder + "ie_55.css");}
										break;
			case "Netscape Navigator" :	
			    //si version 4 on utilise ns47.css
   				
				if ((NumVersion >= 4) && (NumVersion < 5)){chosen_style = bnq_assembleurURL (chosen_folder + "ns47.css");
				}else{ 
				// autrement on utilise
				 if (ss_version == "6.2.1"){chosen_style = bnq_assembleurURL (chosen_folder + "ns_621.css");}else{chosen_style = bnq_assembleurURL (chosen_folder + "ns.css");}}break;
			case "Opera" :chosen_style = bnq_assembleurURL (chosen_folder + "opera.css");break;
			case "Mozilla" :chosen_style = bnq_assembleurURL (chosen_folder + "ns.css");break;										
			//case "Mozilla" :	if (NumVersion >= 1.7){chosen_style = bnq_assembleurURL (chosen_folder + "moz_17.css");}else{chosen_style = bnq_assembleurURL (chosen_folder + "ns.css");}break;										
			default :chosen_style = bnq_assembleurURL (chosen_folder + "default.css");
			}// switch
     }  // end if
	//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	
	// C'est la ligne suivante qui écrit l'appel au CSS qui sera utilisé par le browser.
	// Note: Comme c'est un "document.write", il n'y aura PAS dans le "source" du browser
	// de ligne du genre: <LINK rel="stylesheet" href="/css/ie.css" type="text/css">
 	document.write(chosen_style);
	
	// Enlever le commentaire de la ligne suivante permet d'afficher
	// dans le haut des pages du portails la feuille CSS que ce dernier recoit. Très utile.
	
	// document.write('<textarea name="textfield" cols="95" rows="3">' + chosen_style + 'browser= '+ss_browser+' ver= '+NumVersion+'</textarea>')
		
	
} //end choosestyle


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//--- Fonction qui permet de rendre accessible le URL pour la re-ecriture des URL  via le gateway
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function bnq_assembleurURL(URLchoisi){return ('<LINK rel="stylesheet" href="'+ URLchoisi + '" type="text/css">');}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Construit variable bnq_fureteur pour le moteur de redirection. Rend disponible le url dans une variable
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if ((!ss_OS == "") || (!ss_browser == "") || (!ss_version == "") ){bnq_fureteur = "<" + ss_OS + ">_<" + ss_browser + ">_<" + ss_version + ">";}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// -- Fonctions standards pour les roll-overs (origine Macromedia)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  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); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
// -- Fonction écrite au départ par Macromedia, changé par Denis Forveille pour
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  // La variable targetURL fait partie des variables qui seront ré-écrite apr el redierctor 
  // (C'est a dire qu'on va concatener le nom du gateway devant l'URL)
  var targetURLToRewrite = selObj.options[selObj.selectedIndex].value;
  eval(targ + ".location='" + targetURLToRewrite + "'");
  if (restore) selObj.selectedIndex=0;
}
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// -- Fonction pour imprimer la fenetre actuelle (en conjonction avec les CSS)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   function BNQ_printWindow() {
      bV = parseInt(navigator.appVersion);
      if (bV >= 4) window.print();
   }
   
 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// -- Fonction custom pour ouvrir les nouvelles fenetres en pop-up.
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function MM_openBrWindow(theURL,winName,features, myWidth, myHeight, isCenter) { //v3.0
  if(window.screen)if(isCenter)if(isCenter=="true"){
    var myLeft = (screen.width-myWidth)/2;
    var myTop = (screen.height-myHeight)/2;
    features+=(features!='')?',':'';
    features+=',left='+myLeft+',top='+myTop;
  }
  window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// -- Fonction pour ouvrir une nouvelle fenetre (pop-up)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function bnq_nv_fenetre(URL, w, h, scroll)
{
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	day = new Date();
	id = day.getTime();
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,frameborder=no';
//	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=" + scroll + ",location=0,statusbar=0,menubar=0,resizable=1,width=" + w + ",height=" + h + ",left = 10,top = 10');");
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=" + scroll + ",location=0,statusbar=0,menubar=1,resizable=1,width=" + w + ",height=" + h + ",left = 10,top = 10');");
//Modifié par AC le 28-1-2005 à la demande de P. Meunier
//Actif: le toolbar et le menu bar seulement
}

function banq_nv_fen_centre(page,largeur,hauteur,scroll) {
  var top=(screen.height-hauteur)/2;
  var left=(screen.width-largeur)/2;
  window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+",'toolbar=0,scrollbars=" + scroll + ",location=0,statusbar=0,menubar=0,resizable=0");
//Créé par Charles le 31-03-2006 pour affichage centré des popup dans la BD Revues Journaux
//Actif: Uniquement le scrollbar s'il est à 1
}



function bnq_nv_fenetre_adr(URL, w, h, scroll)
{
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	day = new Date();
	id = day.getTime();
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,frameborder=no';
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=" + scroll + ",location=1,statusbar=0,menubar=1,resizable=1,width=" + w + ",height=" + h + ",left = 10,top = 10');");
}
//Modifié par AC le 28-1-2005 à la demande de P. Meunier
//Actif: la location (adresse bar),le toolbar et le menu bar 


// ###############################################################################
// bnq_nv_fenetre_sans()
//
// Fonction qui créé une fenetre popup sans 'toolbar', sans 'statusbar', sans 'menu'.
// ###############################################################################

function bnq_nv_fenetre_sans(URL, w, h, scroll)
{
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	day = new Date();
	id = day.getTime();
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,frameborder=no';
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=" + scroll + ",location=0,statusbar=0,menubar=0,resizable=1,width=" + w + ",height=" + h + ",left = 10,top = 10');");
}
//Modifié par AC le 28-1-2005 à la demande de P. Meunier
//Actif: rien n'est actif pour cette fonction






//Fonction pour permettre la ré-écriture des URL avec la passerelle
function bnq_reecrire_URL(theurl){
	var targetURLToRewrite=theurl;
	return targetURLToRewrite;
}
	
//*******************************************************************
// A ne pas enlever - constructeurs pour les fonctions qui sont dans d'autres JS	
function gTexteSimple(facteur){}
function init(){}
//**************************************************************************



// #######################################################
// Fonction affichage code HTML durant une période précise
// #######################################################
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Fonction affichant du code HTML durant une période de temps
// comprise entre une date de début et une date de fin.
// Le code HTML à afficher doit être précisé dans la variable globale "gCodeHTML"
// et cette variable doit etre placée dans la meme page appelant la présente fonction.
//
// Les parametres de date de début et de fin doit etre au format: AAAAMMJJ (ex: 20060131)
//
// Cette fonction va chercher la date actuelle via JSP. 
// Pour l'implanter dans une page, il faut:
//
// 1. Inscrire les 2 appels JSP suivant:
// <%@ page import="java.util.*, java.text.*" %>
// <%@ include file="/techno/date_serveur.jsp" %>
//
// 2. Déclarer ces 2 variables globales:
//
// var gDate_serveur_JSP = <%= Date_serveur_JSP%>;
// var gCodeHTML = "Code HTML ici";
//
// Appeler la fonction. Exemple:
// expirateur("20061101","20061119"); // Date début, date de fin
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


function expirateur(pDateDebut,pDateFin){

// Dates de début et de fin
var DateDebutAffichage = pDateDebut;
var DateFinAffichage = pDateFin;

// Code HTML à écrire durant la période comprise entre "pDateDebut" et "pDateFin".
var CodeHTML = gCodeHTML;   // gCodeHTML est une variable globale devant être déclarée
							// dans la page ou la présente fonction est appelée.

// Date actuelle. Via JSP.

var DateActuelle = gDate_serveur_JSP ;

// C'est ici que la fonction écrit le code HTML précisé dans la variable globale.

if ((DateActuelle < DateFinAffichage) && (DateActuelle >= DateDebutAffichage))

{ document.write(CodeHTML); }

} // Fin fonction expirateur()



// #######################################################
// Fonctions pour afficher/cacher un DIV
// #######################################################
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Pour un exemple, voir page login de l'Extranet. En cliquant sur un 
// hyperlien, on affiche un bloc de texte, etc.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function show( element ) {
//hide_all();
document.getElementById(element).style.display = "block";
}

function hide( element ) {
document.getElementById(element).style.display = "none";
}



// ###########################################################
// Ensemble de fonctions pour afficher/cacher un ou plusieurs 
// conteneurs (ex: DIV). Exemple d'utilisation: section 
// "Ressources en ligne/Baladodiffusion" 
// ###########################################################

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// L'ensemble contient: DivStatus(), CacheTout() et MontreTout()
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


<!-- Script créé par KevBrok ;-) -->

/* Montre / Cache un DIV */
function DivStatus( nom, numero )
	{
		var divID = nom + numero;
		if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents
			{
				Pdiv = document.getElementById( divID );
				PcH = true;
			}
		else if ( document.all && document.all[ divID ] ) // Pour les veilles versions
			{
				Pdiv = document.all[ divID ];
				PcH = true;
			}
		else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions
			{
				Pdiv = document.layers[ divID ];
				PcH = true;
			}
		else
			{
				
				PcH = false;
			}
		if ( PcH )
			{
				Pdiv.className = ( Pdiv.className == 'cachediv' ) ? '' : 'cachediv';
			}
	}
	
/* Cache tous les DIV ayant le même préfixe */
function CacheTout( nom )
	{	
		var NumDiv = 1;
		if ( document.getElementById ) // Pour les navigateurs récents
			{
				while ( document.getElementById( nom + NumDiv) )
					{
						SetDiv = document.getElementById( nom + NumDiv );
						if ( SetDiv && SetDiv.className != 'cachediv' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.all ) // Pour les veilles versions
			{
				while ( document.all[ nom + NumDiv ] )
					{
						SetDiv = document.all[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != 'cachediv' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.layers ) // Pour les très veilles versions
			{
				while ( document.layers[ nom + NumDiv ] )
					{
						SetDiv = document.layers[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != 'cachediv' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
	}

	/* Montre tous les DIV ayant le même préfixe */
function MontreTout( nom )
	{	
		var NumDiv = 1;
		if ( document.getElementById ) // Pour les navigateurs récents
			{
				while ( document.getElementById( nom + NumDiv) )
					{
						SetDiv = document.getElementById( nom + NumDiv );
						if ( SetDiv && SetDiv.className != '' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.all ) // Pour les veilles versions
			{
				while ( document.all[ nom + NumDiv ] )
					{
						SetDiv = document.all[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != '' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
		else if ( document.layers ) // Pour les très veilles versions
			{
				while ( document.layers[ nom + NumDiv ] )
					{
						SetDiv = document.layers[ nom + NumDiv ];
						if ( SetDiv && SetDiv.className != '' )
							{
								DivStatus( nom, NumDiv );
							}
						NumDiv++;
					}
			}
	}
	

// ################################################################
// (FIN) Ensemble de fonctions pour afficher/cacher un ou plusieurs 
// conteneurs (ex: DIV).  
// ################################################################

//document.write('<form name="monform"><textarea name="textfield" cols="65" rows="1">' + vForm_actif_Mon_dossier + '</textarea></form>')


// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// CORRECTION DE LA TRANSPARENCE DES PNG POUR IE5.5 ET 6
// faire la fonction sur le onload du <body>
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function correctPNG() 
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)                       
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}
