/** 
 * Renvoie à la page "location" si l'action spécifiée par "msg" a été confirmée
 *
 * @param location string, l'url vers où il faut rediriger la page en cas de confirmation
 * @param msg string, le message de confirmation 
 * @return
 */
function Confirmer(location, msg) {
	if (confirm(msg)) {
		window.document.location.href = location;
	}
}


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) { //v4.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);
  if(!x && document.getElementById) x=document.getElementById(n); 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];}
}



/** 
 * Affiche le message de confirmation pour la déconnexion du portail
 *
 * Renvoie true si l'utilisateur souhaite se déconnecter
 * @return bool
 */
function Confirmation()	{
    if (confirm('Etes-vous sûr de vouloir vous déconnecter ?')) return true;
    return false;
}



/** 
 * Ouvre une popup centrée
 *
 * @param string url, Url d'accès à la page
 * @param int iwidth, largeur de la popup
 * @param int iheight, hauteur de la popup
 * @param string, argument optionnel, permet de personnaliser la popup suivant les propriétés JS 
 * @return
 */

function open_popup(url,iwidth,iheight) { 
    
    // Check des paramètres optionnels
    if (open_popup.arguments.length == 4) {
        options = open_popup.arguments[3] + ',';
    } else {
        options = '';
    }
    
    var hauteur = (screen.height / 2) - (iheight / 2);
    var largeur = (screen.width / 2) - (iwidth / 2); 
    var Infowindow=window.open(url, "Infos" , options + "resizable=yes, top=" + hauteur + ", left=" + largeur + ", width=" + iwidth + ",height=" + iheight + "");
    Infowindow.focus();
}


// Ouvre une popup centrée
function Openwindow(page,largeur,hauteur,options) {
	var top	 = (screen.height-hauteur) /2;
	var left = (screen.width-largeur)  /2;
	fenetre = window.open(page, "popup", "top=" + top + ",left=" + left + ",width=" + largeur + ",height=" + hauteur + "," + options);
    fenetre.focus();
}


/** 
 * Script popup centrée*/

function spop( fichier, nom, largeur, hauteur, options )
		{
			var id = Math.round( Math.random() * 100 );
			var gauche = ( screen.width - largeur ) / 2;
	  		var haut = ( screen.height - hauteur ) / 2;
			if ( options )
				{
					options = 'width=' + largeur + 'px, height=' + hauteur + 'px,  top=' + haut + ', left=' + gauche + ', ' + options;
				}
			else
				{
					options = 'width=' + largeur + 'px, height=' + hauteur + 'px,  top=' + haut + ', left=' + gauche;
				}
			document.open( fichier, nom + id, options );
}


/** 
 * Teste l'équivalence de deux champs
 *
 * @param val1, l'objet de formulaire contenant la première valeur à tester
 * @parma val2, l'objet de formulaire contenant la seconde valeur à tester
 * @param nom1, libellé du premier objet
 * @param nom2, libellé du second objet
 * @return
 */
function IsEqual(val1, val2, nom1, nom2)
{
	value1 = val1.value;
	value2 = val2.value;
	
	if (value1 != value2)
	{
		alert("La valeur du champ \""+ nom1 +"\" ne correspond pas à celle du champ \""+ nom2 +"\". Merci de vérifier");
		val2.focus();
		return false;
	}
	
	return true;
}



/** 
 * Teste un champ obligatoire
 *
 * @param champ, l'objet du formulaire à vérifier
 * @param nom, le libellé de l'objet
 * @return
 */
function IsEmpty(champ, nom) {
	str = champ.value;
	
	if (str == "") {
 		alert("Merci de saisir une valeur pour le champ \""+ nom +"\"");
 		champ.focus();
 		return(false);
	}
	
	return true;
}



/** 
 * Fonction appelée dans bandeau.htm pour l'affichage de la popup "Veuillez patienter"
 *
 * @return void
 */
function Chargement() {
	chg.visibility = "hidden";
}


// Vérification d'une date
// CheckDate(theform.jour, theform.mois, theform.annee); // et non CheckDate(12, 04, 1979)
// ou CheckDate(theform.jour, theform.mois, theform.annee, 'amin', 'amax')
function CheckDate1(jour,mois,annee) {
    
    // Arguments optionnels
    if (CheckDate1.arguments.length == 3) {
        var amin=1970; // année mini
        var amax=2037; // année maxi    
    } else {
        var amin=CheckDate1.arguments[3];
        var amax=CheckDate1.arguments[4];
    }
    
    var j=jour.value;
    var m=mois.value;
    var a=annee.value;
    
    if ( ((isNaN(j))||(j<1)||(j>31)) ) {
        alert("La date saisie semble incorrecte. Merci de vérifier.");
        jour.focus();
        return(false);
    }
    
    if ( ((isNaN(m))||(m<1)||(m>12)) ) {
        alert("La date saisie semble incorrecte. Merci de vérifier.");
        mois.focus();
        return(false);
    }
    
    if ( ((isNaN(a))||(a<amin)||(a>amax)) ) {
        alert("La date saisie semble incorrecte. Merci de vérifier.");
        annee.focus();
        return(false);
    }
    
    ok=1;
    
    if (ok==1) {
        var d2=new Date(a,m-1,j);
        j2=d2.getDate();
        m2=d2.getMonth()+1;
        a2=d2.getFullYear();
        
        if (a2<=100) {a2=1900+a2; alert(a);}
        
        if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date saisie semble incorrecte. Merci de vérifier.");
            return(false);
            verif=1;
        }
        else {
            verif=0;
        }
    }
    
    if (verif==1) {
        return(false);
    }
    else {
        return(true)
    }
}


// On ne passe plus la date décomposée en jour, mois, année mais directement au format jj/mm/aaaa.
function CheckDate2(Date_var) {
    // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
    
    // Arguments optionnels
    if (CheckDate2.arguments.length == 1) {
        var amin=1970; // année mini
        var amax=2037; // année maxi    
    } else {
        var amin=CheckDate2.arguments[1];
        var amax=CheckDate2.arguments[2];
    }
    
    var DateData = Date_var.value;
    
    pos_first_slash = DateData.indexOf("/");
    pos_last_slash  = DateData.lastIndexOf("/");
   
    var j = DateData.substring(0,pos_first_slash);
    var m = DateData.substring( (pos_first_slash +1), pos_last_slash);
    var a = DateData.substring( (pos_last_slash +1 ) , DateData.length);
  
    if (((isNaN(j))||(j<1)||(j>31)) ) {
        alert("La date saisie semble incorrecte. Merci de vérifier.");
        Date_var.focus();
        return(false);
    }
    
    if ( ((isNaN(m))||(m<1)||(m>12)) ) {
        alert("La date saisie semble incorrecte. Merci de vérifier.");
        Date_var.focus();
        return(false);
    }
    
    if ( ((isNaN(a))||(a<amin)||(a>amax)) ) {
        alert("La date saisie semble incorrecte. Merci de vérifier.");
        Date_var.focus();
        return(false);
    }
    
    ok=1;
    
    if (ok==1) {
        var d2=new Date(a,m-1,j);
        j2=d2.getDate();
        m2=d2.getMonth()+1;
        a2=d2.getFullYear();
        
        if (a2<=100) {a2=1900+a2; alert(a);}
        
        if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
            alert("La date saisie semble incorrecte. Merci de vérifier.");
            Date_var.focus();
            return(false);
            verif=1;    
        }
        else {
            verif=0;
        }
    }
    
    if (verif==1) {
        return(false);
    }
    else {
        return(true)
    }
}


// Masque de saisie pour les dates
// Ex d'un appel : <input type="text" size="12" maxlength="11" value="" name="date_deb" onFocus="FormatDate(this)" onKeyPress="FormatDate(this)" onKeyUp="FormatDate(this)" onBlur="FormatDate(this)">
function FormatDate(champ_date) {
    var value_date = champ_date.value;
    
    if ( (value_date.length == 2) && (value_date.indexOf("/") == -1) ) {
        value_date = value_date  + "/";
        champ_date.value = value_date;
    }
    
    if ( (value_date.length == 5) && (value_date.lastIndexOf("/") == 2) ) {
        value_date = value_date  + "/";
        champ_date.value = value_date;
    }
    
    // Empêche la double saisie d'un "/"
    p = "\/\/";
    if (value_date.match(p)) {
        value_date = value_date.replace(p, "/");
        champ_date.value = value_date;
    }
    
}

// Ex d'utilisation : 
// IsDecimal(test, 'test') => vérifiera un nombre décimal d'une précision 2 positif avec un point comme séparateur
// IsDecimal(test, 'test', ',' , '4', 'false') => vérifiera un nombre décimal d'une précision 4 signé avec une virgule comme séparateur
function IsDecimal(champ, libelle) {
    // Paramétrage
    if (IsDecimal.arguments.length == 2) {
        separateur = '.';
        precision  = 2;
        positif    = true;
    } else {
        separateur = IsDecimal.arguments[2];
        precision  = IsDecimal.arguments[3];
        positif    = IsDecimal.arguments[4];;
    }
    // Vérifie la numérotation avec un "." comme séparateur
    tmp_val = champ.value;
    
    // On passe en point
    p = /[,]/; // chaine à rechercher
    valeur  = tmp_val.replace(p, '\.');
    
    // si le champ vaut 0, on arrête les traitements
    if (valeur == 0) {
        return true;
    }
    
    // Déclaration objet Number
    var valeur = new Number(valeur);
    
    // Vérifie qu'il s'agit d'un nombre décimal
    if (!parseFloat(valeur)) {
        alert("Le champ \"" + libelle +"\" doit être un nombre décimal.");
        champ.focus();
        return false;
    }
    
    // Vérifie valeur positive
    if ( (positif) && (valeur<0) ) {
        alert("Le champ \"" + libelle +"\" doit être un nombre décimal positif.");
        champ.focus();
        return false;
    }
    
    // Limite le nombre de chiffre après la virgule à la précision spécifiée
    valeur = valeur.toFixed(precision); 
    
    // Si c'est ',' en tant que séparateur décimal
    if (separateur == ',') {
        p       = '\.';  // à rechercher
        tmp_val = valeur;
        valeur  = tmp_val.replace(p, ',');
    }
    
    // Retour du résultat
    champ.value=valeur;
    return true;
}


// Vérification sur un nombre entier
function IsNumber(champ, libelle)
{
    if (champ.value != parseInt(champ.value) || champ.value=="") {
        alert("Le champ \"" + libelle +"\" doit être un nombre entier.");
        champ.value = "";
        champ.focus();   
        return false;   
    }
    else {
        return true;
   }
}


// Convertit un nombre décimal dont le séparateur est une virgule en point
function VirguleEnPoint(tmp_val) {
    p = /[,]/; // chaine à rechercher
    valeur  = tmp_val.replace(p, '\.');
    return valeur;
}


// Teste si la valeur de champ est compris entre iMin et iMax
function IsBetween(champ, libelle, iMin, iMax) {
    valeur = VirguleEnPoint(champ.value);
    
    if ((valeur < iMin) || (valeur > iMax)) {
        alert('Le champ ' + libelle + ' doit être compris entre ' + iMin + ' et ' + iMax + '.');
        champ.focus();
        return false;
    } else {
        return true;
    }
}


// Vérifie si le formulaire a été validé et affiche un msg d'attente si double validation
// Ex d'utilisation : <form onSubmit="return HasBeenSubmited(this);">
var Submitted = 0;
function HasBeenSubmited(formulaire) {
    if(Submitted) {
        alert("Le formulaire est déjà en cours de transfert (appuyez sur Ok et patientez SVP).");
        return false;
    } else {
        Submitted = 1;
        return true;
    }
}

// Limite le nombre de caractères max d'un champ de type textarea
function Compter(Target, max) {
	StrLen = Target.value.length;

	if (StrLen > max ) {
		Target.value = Target.value.substring(0,max);
		CharsLeft = max;
	}
}


// Va vers l'ancre spécifiée par num
function GoToAnchor(num) {
    if (num != '' ) {
        window.document.location.href= "#" + num;
    }
}

/** ACCESSIBILITE DES CALQUES **/
if (!document.getElementById) {
    layerAdr="document.all";
    openTag="[";
    endTag="]";
    
    // Raccourci pour s'adresser directement à un style par le nom (et non par l'objet)
    layerRef="document.all['";
	styleSwitch="'].style.";
}
else {
    layerAdr="document.getElementById";
    openTag="(";
    endTag=")";
    
    // Raccourci pour s'adresser directement à un style par le nom (et non par l'objet)
    layerRef="document.getElementById('";
	styleSwitch="').style.";
}

/**
  * Change la couleur d'une balise TD
  * @params champ => identifiant de l'objet
  *         color => couleur de remplacement en hexa
  */

function highligth(objet, color) {
    eval(layerAdr + openTag + "objet.id" + endTag + ".style.backgroundColor = '" + color + "';");
}


/**
 * Gère la couleur d'une ligne d'un tableau
 * @params  row   => l'objet ligne (<tr></tr>)
 *          event => évènement javascript :
 *                      "over" pour "onMouseOver"
 *                      "click" pour "onClik"
 *                      "out" pour "onMouseOut"
 *          color => couleur à affecter à la ligne
 * @exemple <tr bgcolor="#FEFEFE" id="row_1" onClick="setRowColor(this, '#FFCF9C', 'click')" onMouseOver="setRowColor(this, '#CEFFCE', 'over')" onMouseOut="setRowColor(this, '', 'out')">
 */

var wichRow = new Array();

function setRowColor(row, color, event) {
    
    // Colorisation de la ligne sur l'évènement "onClick"
    if (event == 'click') {
        
        // La ligne n'était pas encore cliquée
        if (!wichRow[row.id]) {
            wichRow[row.id] = 1;
            highligth(row, color);
        }
        // La ligne était déjà cliquée
        else  {
            wichRow[row.id] = false;
            highligth(row, '');
        }
    }
    
    // Colorisation de la ligne sur l'évènement "onMouseOver"
    else if (event == 'over' && (!wichRow[row.id])) {
        highligth(row, color);
    }
    
    // Colorisation de la ligne sur l'évènement "onMouseOut"
    else if (event == 'out' && (!wichRow[row.id])) {
        highligth(row, color);
    }
}

/** 
 * Compte le nombre d'éléments sélectionnés dans une liste de type "select"
 *
 * @params liste, l'objet "select"
 * @return int le nombre d'éléments sélectionnés dans la liste
 */
function countSelOpt(liste) {
    nbselect = 0;
    
    for (i=0; i!=liste.length; i++) {
        if (liste.options[i].selected == true) {
            nbselect++;
        }
    }
    
    return nbselect;
}


/**
* Coche / décoche un groupe de case à cocher.
*
* @param Le nombre de checkbox à cocher/décocher    
* @param idStartText L'id des checkBoxs doivent être composées de la sorte : idStartText + Number (example : id="checkBox1", id="checkBox2" => idStartText = checkBox)
* @param formulaire L'objet formulaire
*
* <code>
* <form name="formulaire">
* <input type="checkbox" id="toggle" name="toggle" onClick="checkAll('checkBox', 5, document.formulaire)">Tous / Aucun<br>
* 
* <input type="checkbox" id="checkBox1">1<br>
* <input type="checkbox" id="checkBox2">2<br>
* <input type="checkbox" id="checkBox3">3<br>
* <input type="checkbox" id="checkBox4">4<br>
* 
* </form>
* </code>
*/
function checkAll(idStartText, n, formulaire) {
    var f = formulaire;
	var c = f.toggle.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + idStartText + i );
		if (cb) {
			cb.checked = c;
			n2++;
		}
	}
}

/** 
 * Retourne le timestamp d'une date précisée par "date_fr" au format français MM/JJ/AAAA
 *
 * @param string date_fr (mm/jj/aaaa)
 * @return timestamp
 */
function DateFrToTimeStamp(date_fr) {
    pos_first_slash = date_fr.indexOf("/");
    pos_last_slash  = date_fr.lastIndexOf("/");
    
    j = date_fr.substring(0, pos_first_slash);
    m = date_fr.substring((pos_first_slash +1), pos_last_slash);
    a = date_fr.substring((pos_last_slash +1 ), date_fr.length);
    
    objetDate = new Date(a, m, j);
    
    return Date.parse(objetDate);
}

/** 
 * Les deux fonctions ci-dessous (HideTip & ShowTip)servent à faire apparaître une bulle d'aide
 *
 * <code>
 * <div class="CTooltip" id="tt1"> Un lien se traduit en HTML par l'emploi de la balise [HREF]...</div>
 * <div class="CTooltip" id="tt2"> Un tooltip peut être placé sur n'importe quel élément html, du moment que les évnèments javascript OnmouseOver &amp; ONmouseOut soient acceptés</div>
 * <a href="toto" onmouseover="ShowTip(1);" onmouseout="HideTip(1);">Exemple sur un lien HREF</a>
 * <br>
 * <table border="1">
 *   <tr>
 *     <th colspan="2" onmouseover="ShowTip(2);" onmouseout="HideTip(2);">Entete de colonne</th>  
 *   </tr>
 *   <tr>
 *     <td>Colonne 1</td>
 *     <td>Colonne 2</td>
 *   </tr>
 * </table>
 * </code>
 */
function ShowTip(fArg)
{
	var tooltipOBJ = (document.getElementById) ? document.getElementById('tt' + fArg) : eval("document.all['tt" + fArg + "']");
	if (tooltipOBJ != null) {
		var tooltipLft = (document.body.offsetWidth?document.body.offsetWidth:document.body.style.pixelWidth) - (tooltipOBJ.offsetWidth?tooltipOBJ.offsetWidth:(tooltipOBJ.style.pixelWidth?tooltipOBJ.style.pixelWidth:380)) - 30;
		if (navigator.appName != 'Netscape') {
			var tooltipTop = (document.body.scrollTop>=0?document.body.scrollTop+10:event.clientY+10);
			if ((event.clientX > tooltipLft) && (event.clientY < (tooltipOBJ.scrollHeight?tooltipOBJ.scrollHeight:tooltipOBJ.style.pixelHeight) + 10)) {
				tooltipTop = (document.body.scrollTop?document.body.scrollTop:document.body.offsetTop) + event.clientY + 20;
			}
			tooltipOBJ.style.pixelLeft = tooltipLft; tooltipOBJ.style.pixelTop = tooltipTop;
		}
		else {
			var tooltipTop = 10;
			tooltipOBJ.style.left = tooltipLft; tooltipOBJ.style.top = tooltipTop;
		}
		tooltipOBJ.style.visibility = "visible";
	}
}
function HideTip(fArg)
{
	var tooltipOBJ = (document.getElementById) ? document.getElementById('tt' + fArg) : eval("document.all['tt" + fArg + "']");
	if (tooltipOBJ != null) {
		tooltipOBJ.style.visibility = "hidden";
	}
}

// Valide un email
function IsMail(champ)
{
	str = champ.value;
    
    error = "Votre adresse email est invalide.";
    
	if (str.indexOf('@', 0) == -1)
	{
		alert(error);
		champ.focus();
		return false;
	}

	if (str.indexOf('.', 0) == -1)
	{
		alert(error);
		champ.focus();
		return false;
	}
	
	return true;
}


/**************** Fonctions pour rollovers ************************/

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) { //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_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];}
} 

/****************************************************************************************************/

// Permet l'affichage de commentaires sur les hypertextes de son choix

var IB=new Object; 
var posX=0;posY=0; 
var xOffset=10;yOffset=10; 
function 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["bulle"].document.write(contenu); 
document.layers["bulle"].document.close(); 
document.layers["bulle"].top=posY+yOffset; 
document.layers["bulle"].left=finalPosX; 
document.layers["bulle"].visibility="show";} 
if (document.all) { 
//var f=window.event; 
//doc=document.body.scrollTop; 
bulle.innerHTML=contenu; 
document.all["bulle"].style.top=posY+yOffset; 
document.all["bulle"].style.left=finalPosX;//f.x-xOffset; 
document.all["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("bulle").innerHTML=contenu; 
document.getElementById("bulle").style.top=posY+yOffset; 
document.getElementById("bulle").style.left=finalPosX; 
document.getElementById("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 HideBulle() { 
if (document.layers) {document.layers["bulle"].visibility="hide";} 
if (document.all) {document.all["bulle"].style.visibility="hidden";} 
else if (document.getElementById){document.getElementById("bulle").style.visibility="hidden";} 
} 

function 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='bulle' top=0 left=0 visibility='hide'></LAYER>"); 
} 
if (document.all) { 
document.write("<DIV id='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='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></DIV>"); 
} 

} 


//script cv pour bandeau défilant verticalement sur la page d'accueil 

function Ultimate(Utype,Umsgs,Ucursor,Uwidth,Uheight,Ubgcolor,Ubackground,Uspeed,Udelay,Ufirst) {
		
	document.writeln('<span id="Ubox" style="position:relative;width:'+Uwidth+';height:'+Uheight+';overflow:hiden;background-color:'+Ubgcolor+' ;background-image:url('+Ubackground+')">')
	document.writeln('<div style="position:absolute;width:'+Uwidth+';height:'+Uheight+';clip:rect(0 '+Uwidth+' '+Uheight+' 0);left:0;top:0">')
	
	if (Utype==0) {
		document.writeln('<div id="Utxt" style="position:absolute;width:'+Uwidth+';left:0;top:'+Uheight+';">')
		document.write(Umsgs[Ufirst]);
		Uscroll(Utxt,Umsgs,Uheight,Uspeed,Udelay,Ufirst);
	}
	if (Utype==1) {
		document.writeln('<div id="Utxt"  style="position:absolute;width:'+Uwidth+';left:'+Uwidth+';top:0;">')
		document.write(Umsgs[Ufirst]);
		Uside(Utxt,Umsgs,Uwidth,Uspeed,Udelay,Ufirst);
	}
	if (Utype==2) {
		document.writeln('<div id="Utxt"  style="position:absolute;width:'+Uwidth+';left:'+(Uwidth*-1)+';top:0;">')
		document.write(Umsgs[Ufirst]);
		Ureverseside(Utxt,Umsgs,Uwidth,Uspeed,Udelay,Ufirst,false);
	}
	if (Utype==3) {
		document.writeln('<div id="Utxt"  style="position:absolute;width:'+Uwidth+';left:0;top:0;overflow:hiden;background-color:'+Ubgcolor+' ;">')
		document.write(Umsgs[Ufirst]);
		document.writeln('</div>')
		document.writeln('<div id="Umask"  style="position:absolute;width:'+Uwidth+';left:0;top:0;overflow:hiden;background-color:'+Ubgcolor+' ;">')
		document.write(Ucursor);
		Utouch(Utxt,Umask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ufirst,1,false);
	}
	document.writeln('</div>')
	document.writeln('</div>')
	document.writeln('</span>')
}

function Uscroll(IDdiv,Umsgs,Uheight,Uspeed,Udelay,Ufirst){
	ttxt=eval(IDdiv);
	Ustep=eval(Ufirst);
	if (ttxt.style.pixelTop>0&&ttxt.style.pixelTop<=5){
	ttxt.style.pixelTop=0;
	setTimeout("Uscroll(ttxt,Umsgs,Uheight,Uspeed,Udelay,Ustep)",Udelay);
	return
	}
	else {
		if (ttxt.style.pixelTop>=ttxt.offsetHeight*-1){
		ttxt.style.pixelTop-=5
		setTimeout("Uscroll(ttxt,Umsgs,Uheight,Uspeed,Udelay,Ustep)",Uspeed);
		return
		}
		else {
		ttxt.style.pixelTop=Uheight;
		if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
		ttxt.innerHTML=Umsgs[Ustep];
		Uscroll(ttxt,Umsgs,Uheight,Uspeed,Udelay,Ustep);
		}
	}
}

function Uside(IDdiv,Umsgs,Uwidth,Uspeed,Udelay,Ufirst){
	ttxt=eval(IDdiv);
	Ustep=eval(Ufirst);
	if (ttxt.style.pixelLeft>0&&ttxt.style.pixelLeft<=5){
	ttxt.style.pixelLeft=0;
	setTimeout("Uside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep)",Udelay);
	return
	}
	else {
		if (ttxt.style.pixelLeft>=ttxt.offsetWidth*-1){
		ttxt.style.pixelLeft-=5
		setTimeout("Uside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep)",Uspeed);
		return
		}
		else {
		ttxt.style.pixelLeft=Uwidth;
		if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
		ttxt.innerHTML=Umsgs[Ustep];
		Uside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep);
		}
	}
}

function Ureverseside(IDdiv,Umsgs,Uwidth,Uspeed,Udelay,Ufirst,stop){
	ttxt=eval(IDdiv);
	Ustep=eval(Ufirst);
	if (ttxt.style.pixelLeft>0&&ttxt.style.pixelLeft<=5&&(!stop)) {
	setTimeout("Ureverseside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep,true)",Udelay);
	return
	}
	else {
		if (ttxt.style.pixelLeft<ttxt.offsetWidth){
		ttxt.style.pixelLeft+=5;
		setTimeout("Ureverseside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep)",Uspeed);
		return
		}
		else {
		ttxt.style.pixelLeft=Uwidth*-1;
		if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
		ttxt.innerHTML=Umsgs[Ustep];
		Ureverseside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep);
		}
	}
}

function Utouch(IDdiv,IDmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ufirst,Ufirstsens,stop){
	ttxt=eval(IDdiv);
	tmask=eval(IDmask);
	Ustep=eval(Ufirst);
	Usens=eval(Ufirstsens);
	if (tmask.style.pixelLeft>Uwidth){
	tmask.style.pixelLeft=Uwidth;
	setTimeout("Utouch(ttxt,tmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ustep,-1)",Udelay);
	return
	}
	else if (tmask.style.pixelLeft>=-5&&tmask.style.pixelLeft<0&&(!stop)){
	tmask.style.pixelLeft=-5;
	if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
	ttxt.innerHTML=Umsgs[Ustep];
	setTimeout("Utouch(ttxt,tmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ustep,1,true)",Udelay);
	return
	}
	else {
		tmask.style.pixelLeft+=(5*Usens);
		setTimeout("Utouch(ttxt,tmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ustep,Usens)",Uspeed);
		return
	}
}



//script cv pour bandeau défilant verticalement sur la page d'accueil 

function Ultimate(Utype,Umsgs,Ucursor,Uwidth,Uheight,Ubgcolor,Ubackground,Uspeed,Udelay,Ufirst) {
		
	document.writeln('<span id="Ubox" style="position:relative;width:'+Uwidth+';height:'+Uheight+';overflow:hiden;background-color:'+Ubgcolor+' ;background-image:url('+Ubackground+')">')
	document.writeln('<div style="position:absolute;width:'+Uwidth+';height:'+Uheight+';clip:rect(0 '+Uwidth+' '+Uheight+' 0);left:0;top:0">')
	
	if (Utype==0) {
		document.writeln('<div id="Utxt" style="position:absolute;width:'+Uwidth+';left:0;top:'+Uheight+';">')
		document.write(Umsgs[Ufirst]);
		Uscroll(Utxt,Umsgs,Uheight,Uspeed,Udelay,Ufirst);
	}
	if (Utype==1) {
		document.writeln('<div id="Utxt"  style="position:absolute;width:'+Uwidth+';left:'+Uwidth+';top:0;">')
		document.write(Umsgs[Ufirst]);
		Uside(Utxt,Umsgs,Uwidth,Uspeed,Udelay,Ufirst);
	}
	if (Utype==2) {
		document.writeln('<div id="Utxt"  style="position:absolute;width:'+Uwidth+';left:'+(Uwidth*-1)+';top:0;">')
		document.write(Umsgs[Ufirst]);
		Ureverseside(Utxt,Umsgs,Uwidth,Uspeed,Udelay,Ufirst,false);
	}
	if (Utype==3) {
		document.writeln('<div id="Utxt"  style="position:absolute;width:'+Uwidth+';left:0;top:0;overflow:hiden;background-color:'+Ubgcolor+' ;">')
		document.write(Umsgs[Ufirst]);
		document.writeln('</div>')
		document.writeln('<div id="Umask"  style="position:absolute;width:'+Uwidth+';left:0;top:0;overflow:hiden;background-color:'+Ubgcolor+' ;">')
		document.write(Ucursor);
		Utouch(Utxt,Umask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ufirst,1,false);
	}
	document.writeln('</div>')
	document.writeln('</div>')
	document.writeln('</span>')
}

function Uscroll(IDdiv,Umsgs,Uheight,Uspeed,Udelay,Ufirst){
	ttxt=eval(IDdiv);
	Ustep=eval(Ufirst);
	if (ttxt.style.pixelTop>0&&ttxt.style.pixelTop<=5){
	ttxt.style.pixelTop=0;
	setTimeout("Uscroll(ttxt,Umsgs,Uheight,Uspeed,Udelay,Ustep)",Udelay);
	return
	}
	else {
		if (ttxt.style.pixelTop>=ttxt.offsetHeight*-1){
		ttxt.style.pixelTop-=5
		setTimeout("Uscroll(ttxt,Umsgs,Uheight,Uspeed,Udelay,Ustep)",Uspeed);
		return
		}
		else {
		ttxt.style.pixelTop=Uheight;
		if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
		ttxt.innerHTML=Umsgs[Ustep];
		Uscroll(ttxt,Umsgs,Uheight,Uspeed,Udelay,Ustep);
		}
	}
}

function Uside(IDdiv,Umsgs,Uwidth,Uspeed,Udelay,Ufirst){
	ttxt=eval(IDdiv);
	Ustep=eval(Ufirst);
	if (ttxt.style.pixelLeft>0&&ttxt.style.pixelLeft<=5){
	ttxt.style.pixelLeft=0;
	setTimeout("Uside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep)",Udelay);
	return
	}
	else {
		if (ttxt.style.pixelLeft>=ttxt.offsetWidth*-1){
		ttxt.style.pixelLeft-=5
		setTimeout("Uside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep)",Uspeed);
		return
		}
		else {
		ttxt.style.pixelLeft=Uwidth;
		if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
		ttxt.innerHTML=Umsgs[Ustep];
		Uside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep);
		}
	}
}

function Ureverseside(IDdiv,Umsgs,Uwidth,Uspeed,Udelay,Ufirst,stop){
	ttxt=eval(IDdiv);
	Ustep=eval(Ufirst);
	if (ttxt.style.pixelLeft>0&&ttxt.style.pixelLeft<=5&&(!stop)) {
	setTimeout("Ureverseside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep,true)",Udelay);
	return
	}
	else {
		if (ttxt.style.pixelLeft<ttxt.offsetWidth){
		ttxt.style.pixelLeft+=5;
		setTimeout("Ureverseside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep)",Uspeed);
		return
		}
		else {
		ttxt.style.pixelLeft=Uwidth*-1;
		if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
		ttxt.innerHTML=Umsgs[Ustep];
		Ureverseside(ttxt,Umsgs,Uwidth,Uspeed,Udelay,Ustep);
		}
	}
}

function Utouch(IDdiv,IDmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ufirst,Ufirstsens,stop){
	ttxt=eval(IDdiv);
	tmask=eval(IDmask);
	Ustep=eval(Ufirst);
	Usens=eval(Ufirstsens);
	if (tmask.style.pixelLeft>Uwidth){
	tmask.style.pixelLeft=Uwidth;
	setTimeout("Utouch(ttxt,tmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ustep,-1)",Udelay);
	return
	}
	else if (tmask.style.pixelLeft>=-5&&tmask.style.pixelLeft<0&&(!stop)){
	tmask.style.pixelLeft=-5;
	if (Ustep>=Umsgs.length-1)
			Ustep=0
			else		
			Ustep++;
	ttxt.innerHTML=Umsgs[Ustep];
	setTimeout("Utouch(ttxt,tmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ustep,1,true)",Udelay);
	return
	}
	else {
		tmask.style.pixelLeft+=(5*Usens);
		setTimeout("Utouch(ttxt,tmask,Umsgs,Ucursor,Uwidth,Uspeed,Udelay,Ustep,Usens)",Uspeed);
		return
	}
}



function popupcentree(page,largeur,hauteur,options) {     var top=(screen.height-hauteur)/2;     var left=(screen.width-largeur)/2;    window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options); }


function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


