//// This code is available under the GPLv3 licence.// Any distribution or modification will have to leave the mention of its initial author, Gilles Karmasyn.////// Affichette dynamique et notes avec option de persistance...// Ca en jette comme titre, hein?//// Copyright Gilles Karmasyn 2000-2007//// En cas de "recuperation", merci de laisser le copyright dans le code...// Parce que je me suis vraiment presse le cervelat pour tout cela...// Et puis pour que ça marche de NS4 à Safari 3 en passant par IE6 et Firefox, bonjour...//charge    = false;refnum    = false;oldNote   = false;attente   = 0;      // temps de fermeture apres onMouseOut de la referencesurLaNote = false;tempoIE   = 0;      // tempo de fermeture pour IE, necessaire pour Mac                     // car la detection de la sortie de la note se fait par                     // rapport au bas du curseur et non au haut du curseur...                    // cette tempo donne le temps de cliquer sur un lien                    // eventuel...IsIEMac       = false;                    IsOldNetscape = false;IsMozilla     = false;IsIE          = false;IsSaf         = false; // necessaire poure gerer une difference sur style.topIsOldIE		  = false;IsNew		  = false;ecartBordIE   = 0;eloignementVert = 0; // pour les legendes (plus eloignees que les notes)bDebug=0;bSetParameters=false;bIsThereParameters=false;bSetNavigateur=false;bIsThereNavigateur=false;if ((document.layers) || (!document.getElementById)) //navigator.appName == "Netscape")){	adresseCourante = top.location.pathname;	alert("Vous utilisez un navigateur version 4 ou anterieure. Les pages de PHDN sont mieux visualisees avec des navigateurs plus recents. En attendant, vous etes transporte vers une version du site lisible par votre navigateur actuel (mais incomplete...).");	top.location = "http://gilkarm.free.fr/phdn"+adresseCourante;}if (!document.layers) // || (PAS navigator.appName == "Netscape")){    // On passe ici avec Firefox    document.write("<style type='text/css'>");    document.write("A.appel-note {margin-left: 1px;}");    document.write("</style>");}    /* Copyright (c) 2007 Marlin Forbes (http://www.datashaman.com)      * Dual licensed under the MIT      * (http://www.opensource.org/licenses/mit-license.php)      * and GPL      * (http://www.opensource.org/licenses/gpl-license.php) licenses.      */      /* function setupParameters      * Creates an object property window.location.parameters which      * is an associative array of the URL querystring parameters used      * when requesting the current document.      * If the parameter is present but has no value, such as the parameter      * flag in http://example.com/index.php?flag&id=blah, null is stored.      */function setupParameters() {    bSetParameters = true;    if (window.location.search.length > 0)    {        bIsThereParameters = true;    }    else return(0);            var parameters = new Object();    var paramArray = window.location.search.substr(1).split('&');    var length = paramArray.length;                    for (var index = 0;index <length; index++ )     {        var param = paramArray[index].split('=');        var name  = param[0];        if (typeof param[1] == "string")        {            parameters[name]=decodeURIComponent(param[1].replace(/\+/g, ' '));        }        else        {            parameters[name]=null;         }    }                    window.location.parameters = parameters;                }function getParameter(name) {    if(bSetParameters==false)    {        setupParameters();    }    if (bIsThereParameters)     {        return window.location.parameters[name];    }    else return(null);}      function setupNavigateur() {    bSetNavigateur = true;        var isDebug=getParameter("debug");    if (isDebug)    {        if (isDebug==1) bDebug=1;    }    var nOccurence = 0;    var navigateur = new Object();	var nomApplication      = navigator.appVersion;	var typeMachine         = navigator.platform;    var nomcourtApplication = navigator.appName;	if (bDebug) // defini dans notes-script.js	{		alert("platform: "+typeMachine+"  --  appname: "+nomcourtApplication+"  --  appVersion :"+nomApplication);	}        navigateur["nomcourt"] = nomcourtApplication;    navigateur["machine"]  = "inconnu";    navigateur["nav"]      = "inconnu";        nOccurrence = nomApplication.indexOf("Win");    if ( (typeMachine == "Win32") || (nOccurrence != -1) )    {        navigateur["machine"]="pc";    }    else    {        nOccurrence = typeMachine.indexOf("Mac", 0);        if (nOccurrence == 0)        {            navigateur["machine"]="mac";        }    }    nOccurrence = nomApplication.indexOf("MSIE 5", 0);    if (nOccurrence > -1)    {        navigateur["nav"]="oldIE";    }    else     {        nOccurrence = nomApplication.indexOf("MSIE 6", 0);        if (nOccurrence > -1)        {            navigateur["nav"]="oldIE";        }    }    nOccurrence = nomcourtApplication.indexOf("Netscape")    if (nOccurrence > -1)    {            navigateur["nav"]="mozilla";    }    else    {        nOccurrence = nomApplication.indexOf("Safari", 0);        if (nOccurrence > 0)        {            nOccurrence=nomApplication.indexOf("Version/3", 0)            if (nOccurrence > 0)            {                navigateur["nav"]="mozilla";            }            else navigateur["nav"]="oldSaf";        }    }        window.location.navigateur = navigateur;}function getNavigateur(propriete) {    if(bSetNavigateur==false)    {        setupNavigateur();    }        return window.location.navigateur[propriete];}          function testnavigateur(){	if (bDebug) // defini dans notes-script.js	{		document.write("<B>"+navigator.platform+"</B><BR />");		document.write("<B>"+navigator.appName+"</B><BR />");		document.write("<B>"+navigator.appVersion+"</B><BR />");	}}// 2007: http://www.howtocreate.co.uk/tutorials/javascript/browserwindowfunction getTailleFenetre() {  largeur=0;  hauteur=0;    if( typeof( window.innerWidth ) == 'number' )   {    //Non-IE    largeur = window.innerWidth;    hauteur = window.innerHeight;  }   else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )   {    //IE 6+ in 'standards compliant mode'    largeur = document.documentElement.clientWidth;    hauteur = document.documentElement.clientHeight;  }  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )   {    //IE 4 compatible    largeur = document.body.clientWidth;    hauteur = document.body.clientHeight;  }}// 2007: http://www.howtocreate.co.uk/tutorials/javascript/browserwindow// on calcule le decalage horizontal mais on ne le renvoie pas (2007: pas besoin)function getDistanceParcourueY() {  var scrOfX = 0, scrOfY = 0;    if( typeof( window.pageYOffset ) == 'number' )   {    //Netscape compliant    scrOfY = window.pageYOffset;    scrOfX = window.pageXOffset;  }   else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )   {    //DOM compliant    scrOfY = document.body.scrollTop;    scrOfX = document.body.scrollLeft;  }   else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )   {    //IE6 standards compliant mode    scrOfY = document.documentElement.scrollTop;    scrOfX = document.documentElement.scrollLeft;  }    return(scrOfY);}// 2007: http://www.howtocreate.co.uk/tutorials/javascript/eventinfofunction getCoordonneesEvent(e) {  if( !e )   {    if( window.event )     {      //Internet Explorer      e = window.event;    } else {      //total failure, we have no way of referencing the event      return;    }  }    if( typeof( e.pageX ) == 'number' )   {    //most browsers    var xcoord = e.pageX;    var ycoord = e.pageY;  }   else if( typeof( e.clientX ) == 'number' )   {    //Internet Explorer and older browsers    //other browsers provide this, but follow the pageX/Y branch    var xcoord = e.clientX;    var ycoord = e.clientY;        var badOldBrowser = ( window.navigator.userAgent.indexOf( 'Opera' ) + 1 ) ||     ( window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1 ) ||     ( navigator.vendor == 'KDE' );         if( !badOldBrowser )     {      if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )       {        //IE 4, 5 & 6 (in non-standards compliant mode)        xcoord += document.body.scrollLeft;        ycoord += document.body.scrollTop;      }       else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )       {        //IE 6 (in standards compliant mode)        xcoord += document.documentElement.scrollLeft;        ycoord += document.documentElement.scrollTop;      }    }  }  else   {    //total failure, we have no way of obtaining the mouse coordinates    return;  }    return [xcoord, ycoord];}function re_init(){    getTailleFenetre();    if(document.getElementById)	{		divBandeauNord=document.getElementById("cartouche1");		if (largeur<875)		{			divBandeauNord.style.visibility="hidden";		}		else		{			divBandeauNord.style.visibility="visible";		}	}	}// initialisation et capture de la taille de l'ecran, tout ca...function init(){    var isDebug=getParameter("debug");    if (isDebug)    {        if (isDebug==1) bDebug=1;    }        if (document.layers) // || (navigator.appName == "Netscape"))    {            if (bDebug)  alert ("debug 1");        largeur = window.innerWidth;        hauteur = window.innerHeight;         charge  = true;        // IsOldNetscape = true;    }    if (document.all) // IE    {        if (bDebug) alert ("document.all");        largeur = document.body.offsetWidth;        hauteur = document.body.offsetHeight;        charge  = true;        IsIE    = true;        tempoIE = 500;        if (navigator.appVersion.indexOf("Win") != -1)        {            ecartBordIE = 15; // le bord droit est hors du cadre        }                     // sur NS Windows !        else ecartBordIE = 0;        	    // desactivation des notes pour IE4 non Windows	    // Mais si IE5, on active...	    // le calcul de la hauteur de fenetre change aussi... :-(	    nomApplication = navigator.appVersion;	    nOccurrence = nomApplication.indexOf("MSIE 5", 0);	    if (navigator.platform != "Win32")	    {	        if (nOccurrence > 0) // IE5	        {	            charge  = true;	            hauteur = document.body.clientHeight; 	            IsIEMac = true;	        }	        else charge=false;	    }	    		if (nOccurrence > 0) IsOldIE=true;	    nOccurrence = nomApplication.indexOf("MSIE 6", 0);		if (nOccurrence > 0) IsOldIE=true;           }        // -------------------    // NS6 deb => Firefox    if (document.getElementById && !IsIE)    {        if (bDebug) alert ("isMozilla");        if (bDebug) alert ("document.body.clientHeight="+document.body.clientHeight);                IsMozilla   = true;        largeur = window.innerWidth;        hauteur = window.innerHeight;         charge  = true;                        // on identifie Safari 2 et on ne distingue pas Safari 3        if (navigator.appVersion.indexOf("Safari", 0) > 0)        {              if (bDebug) alert ("safari");                        IsSaf = true;            if (navigator.appVersion.indexOf("Version/3", 0) > 0)            {                IsSaf = false;            }        }    }       // NS6 fin    // -------------------    if (navigator.appName == "Opera")    {        IsMozilla  = true;        IsIE   = false;    }    // Mise à plat de hauteur et largeur en 2007    getTailleFenetre();    if(document.getElementById)	{		divBandeauNord=document.getElementById("cartouche1");		if (largeur<875)		{			divBandeauNord.style.visibility="hidden";		}		else		{			divBandeauNord.style.visibility="visible";		}	}	    if (bDebug) alert("largeur = " +largeur + " et hauteur = "+ hauteur);    setInterval("re_init()", 4000);}// ---------------------------------------// reload()// Teste si la page est dans le bon frame// top si boolself est true...  // pagecourante contient la reference// a la page qui *doit* etre dans top// ---------------------------------------function reload(pagecourante, boolSelf) {    // routeSiWorldnet();             if (boolSelf)    {        if (top.location != self.location) top.location=pagecourante;    }    else    {        if (top.location == self.location) top.location=pagecourante;        }         init();}// -----------------------------------------------------// Initialisation des reflexes onMouseOver et onMouseOut // de la Layer/note courante// Appele uniquement s'il y a un lien dans la note...//// nb layers: Netscape: document.layers.length//            IE:       document.all.tags('SPAN').length//// On aura note que le fonctionnement pour IE et NC n'est// pas tout a fait le meme...// Comme dirait un gourou unix de ma connaissance: // bestial... :-)// // -----------------------------------------------------function initReflexesNote(){    if (IsOldNetscape)    {        if (bDebug) alert("debug: initReflexesNote netscape");                document[refnum].onmouseover = new Function ("SignalerOnMouseOver();");        document[refnum].onmouseout  = new Function ("fermerNoteBrute();");    }        if (document.all)    {        if (bDebug) alert("debug: initReflexesNote IE");              document.all[refnum].onmouseover = new Function ("SignalerOnMouseOver();");        document.all[refnum].onmouseout  = new Function ("SignalerOnMouseOut();");    }    if (IsMozilla)    {          if (bDebug) alert("debug: initReflexesNote NS6");          document.getElementById(refnum).onmouseover = new Function ("SignalerOnMouseOver();");          document.getElementById(refnum).onmouseout  = new Function ("SignalerOnMouseOut();");     //     document.getElementById(refnum).onmouseout  = new Function ("fermerNoteBrute();");    }}function riendutout(){    // rien du tout!    // puissant, hein?}// ----------------------// La grosse fonction qui tue de positionnement// de la note dynamique// -----------------function ouvrirFenDyn(event, note, largeurFen){    if (charge)    {        ouvert = true;        refnum = note;                my_pageYOffset   = getDistanceParcourueY();        var tCoordonnees = getCoordonneesEvent(event);                abscisse = tCoordonnees[0];        ordonnee = tCoordonnees[1];         if (bDebug) alert ("abscisseGEN="+abscisse+" et ordonneeGEN="+ordonnee);                if (IsNew) // A FINIR!!!       	{            layerNote = document.getElementById(note);            // ---------------------------------            // gestion des grosses notes            myClass = layerNote.className;                        if (myClass == "notesmax-dyn")            {                if (abscisse>(largeur/2))                {                    layerNote.style.width = abscisse - 50 + "px";                } else                 {                    layerNote.style.width  = largeur - abscisse - 50 + "px";                }            }            // fin gestion des grosses notes            // ---------------------------------                        lHauteurNote=layerNote.offsetHeight;                       if (ordonnee>(hauteur/2)) // appel dans la partie inferieure de la fenetre            {                h = lHauteurNote+5 + eloignementVert; // note au dessus                diffH = ordonnee - h; 				  // pour gestion depassement vertical            }             else             {                h = -5 - eloignementVert;   // note en dessous                diffH = hauteur - ordonnee + 5 - lHauteurNote;            }                          // A FINIR => ORDONNEE POSE PB                     return;     	}                   // -------------------        // NS6 deb        if (IsMozilla)        {                    abscisse=event.clientX;             ordonnee=event.clientY; // ordonnee par rapport au haut *visible* de la fenetre                                    // pour le positionnement on rajoutera le pageYOffset                                    // qui mesure la distance de decalage due au deplacement                                    // par l'ascenceur            layerNote = document.getElementById(note);            if (bDebug) alert ("abscisse="+abscisse+" et ordonnee="+ordonnee);            // ---------------------------------            // gestion des grosses notes            myClass = layerNote.className;                        if (myClass == "notesmax-dyn")            {                if (abscisse>(largeur/2))                {                    layerNote.style.width = abscisse - 50 + "px";                } else                 {                    layerNote.style.width  = largeur - abscisse - 50 + "px";                }            }            // fin gestion des grosses notes            // ---------------------------------                        lHauteurNote=layerNote.offsetHeight;            if (bDebug) alert ("lHauteurNote="+lHauteurNote+" et pageYOffset="+my_pageYOffset);                        if (ordonnee>(hauteur/2)) // appel dans la partie infŽrieure de la fentre            {                // h = (document.getElementById(note).style.clip.height+5); // note au dessus                                h = (layerNote.offsetHeight+5) + eloignementVert; // note au dessus                diffH = ordonnee - h; // pour gestion dŽpassement vertical            }             else             {                h = -5 - eloignementVert;   // note en dessous                diffH = hauteur - ordonnee + 5 - layerNote.offsetHeight;            }                        // ---------------------------            // gestion de Safari. Difference dans la definition de style.top (ou event.clientY ???)            if (IsSaf && my_pageYOffset>0)            {                if ( (ordonnee-my_pageYOffset)<(hauteur/2) ) // note en dessous                {                    h = -5 - eloignementVert;   // note en dessous                    diffH = hauteur - (ordonnee - my_pageYOffset) + 5 - layerNote.offsetHeight;                }                else                 {                    h = (layerNote.offsetHeight+5) + eloignementVert; // note au dessus                    diffH = ordonnee - my_pageYOffset - h; // pour gestion depassement vertical                                    }            }            // fin gestion de Safari            // ---------------------------                        var sommet = my_pageYOffset + ordonnee - h;                        // pageYOffset = decalage de la partie sup. gauche de la partie            //               visible de la page ˆ l'intŽrieur de la fenetre            largeurFen = layerNote.offsetWidth;            if (bDebug) alert ("lHauteurNote="+lHauteurNote+" et largeurFen="+largeurFen);                          if (abscisse>(largeur/2))            {                l = largeurFen + 10 ;            } else             {                l = -5;            }                             var cote_gauche = abscisse - l;                        // --------------------------------------            // Gestion du dŽpassement horizontal (cas Netscape 7)            // dŽpassement ˆ  gauche ou ˆ droite => on dŽcale            //            if (cote_gauche < 0) cote_gauche = 5;             if ( (cote_gauche+largeurFen) >  (largeur-15)) cote_gauche = largeur - largeurFen - 15;            //            // fin gestion dŽpassement horizontal            // -----------------------------------------            // --------------------------------------            // Gestion du depassement vertical            if (diffH-15 < 0) // note trop grande verticalement pour tre vue en entier            {                            if (bDebug) alert ("dŽpassement");                                cote_gauche = 0 + 5;                layerNote.style.width = largeur - 50+"px";                                // l'elargissement entraine un changement de hauteur a gerer si                // la note est au dessus....                                // On gere le cas Safari... pour lequel la condition de depassement est diffŽrente                // car la definition de ordonnee = event.clientY semble differente de Gecko                // Dans les deux cas de depassement le code conditionne est le meme car dans                // dans le cas de Safari, il y a un rattrapage plus bas                                if (!IsSaf && (ordonnee>(hauteur/2)) )                {                    h = (layerNote.offsetHeight+5) + eloignementVert;                    sommet = my_pageYOffset + ordonnee - h;                }                                if (IsSaf && ((ordonnee-my_pageYOffset)>(hauteur/2)) )                {                    h = (layerNote.offsetHeight+5) + eloignementVert;                    sommet = my_pageYOffset + ordonnee - h;                }            }            // fin gestion depassement vertical            // -----------------------------------------            // Pb avec Safari: style.top prend le dŽbut rŽel de la page et non le dŽbut affichŽ =>            // Il ne faut pas prendre pageYOffset, le dŽfilement, en compte            if (IsSaf) sommet = sommet - my_pageYOffset;            // fin Safari            if (bDebug) alert("sommet="+sommet+" et cote-gauche="+cote_gauche);                        layerNote.style.left       = cote_gauche +"px";            layerNote.style.top        = sommet +"px";            layerNote.style.visibility = "visible";        }        // NS6 fin        // -------------------            if (IsOldNetscape) // Netscape        {            if (bDebug) alert ("debug: ouvrirFenDyn IsOldNetscape");                    abscisse=event.pageX; //  abscisse=event.screenX;            ordonnee=event.pageY; //  ordonnee=event.screenY;                        layerNote = document[note];                        // ---------------------------------            // gestion des grosses notes            // PAS DE GESTION POSSIBLE POUR NETSCAPE 4!!!            // CAR LES LAYER NE SE RESIZENT PAS...            // => GERER PAR POSITIONNEMENT + INTELLIGENT                      // fin gestion des grosses notes            // ---------------------------------                        largeurFen = layerNote.clip.width;                        if (abscisse>(largeur/2))            {                l = largeurFen+5 ;                                // gestion grosse note => positionnement intelligent                // trop fort le mec!                if ( largeurFen > abscisse ) l = abscisse - 5;            }             else             {                l = -5;                                // gestion grosse note => positionnement intelligent                // trop fort le mec!                if ( (largeur-abscisse) < largeurFen) l = abscisse - largeur + largeurFen + 5;                          }                    // pageYOffset = decalage de la partie sup. gauche de la partie            //               visible de la page ˆ l'intŽrieur de la fenetre                                            if (ordonnee>my_pageYOffset + (hauteur/2))            {                h = (layerNote.clip.height+5) + eloignementVert; // note au dessus            } else             {                h = -5 - eloignementVert;   // note en dessous            }                       var cote_gauche = abscisse - l;            var sommet      = ordonnee - h;                   layerNote.left       = cote_gauche;            layerNote.top        = sommet;            layerNote.visibility = "show";        }                if (document.all) //IE        {            abscisse=event.clientX;            ordonnee=event.clientY;            if (bDebug) alert ("abscisse="+abscisse+" et ordonnee="+ordonnee);                     layerNote = document.all[note];                if (layerNote.offsetWidth> (largeur/2))            {                layerNote.style.width = ((largeur/2)-15);            }                    // ---------------------------------            // gestion des grosses notes            myClass = document.getElementById(note).className;            if (myClass == "notesmax-dyn")            {                if (abscisse>(largeur/2))                {                    layerNote.style.width = abscisse - 15;                } else                 {                    layerNote.style.width  = largeur - abscisse - 30 - ecartBordIE;                }            }            // fin gestion des grosses notes            // ---------------------------------            if (ordonnee>(hauteur/2))            {                h = (layerNote.offsetHeight+5) + eloignementVert;                diffH = ordonnee - h; // pour gestion dŽpassement vertical            } else             {                h = -5 - eloignementVert;                diffH = hauteur - ordonnee + 5 - layerNote.offsetHeight;            }           // var sommet = document.body.scrollTop  + ordonnee - h;            var sommet = my_pageYOffset + ordonnee - h;            if (abscisse>(largeur/2))            {                l = layerNote.offsetWidth+5 ;            } else             {                l = -10;            }                     var cote_gauche = document.body.scrollLeft + abscisse - l;             // --------------------------------------            // Gestion du dŽpassement vertical            if (diffH-15 < 0) // note trop grande verticalement pour tre vue ne entier            {                cote_gauche = 0 + 5;                layerNote.style.width = largeur - 15 - ecartBordIE +"px";                                // l'Žlargissement entra”ne un changement de hauteur ˆ gŽrer si                // la note est au dessus....                if (ordonnee>(hauteur/2))                {                    h = (layerNote.offsetHeight+5) + eloignementVert;                    // sommet = document.body.scrollTop  + ordonnee - h;                    sommet = my_pageYOffset + ordonnee - h;                }            }            // fin gestion dŽpassement vertical            // -----------------------------------------            layerNote.style.pixelTop   = sommet;            layerNote.style.pixelLeft  = cote_gauche;            layerNote.style.visibility = "visible";        }    }    else // affichettes non fonctionnelles    {        // rien du tout    }}function fermerNoteBrute(){    if (refnum && ouvert)    {        if (IsOldNetscape)        {            document[refnum].visibility = "hide";        }        if (document.all)        {            document.all[refnum].style.visibility = "hidden";        }                if (IsMozilla)        {            document.getElementById(refnum).style.visibility = "hidden";        }        ouvert    = false;        surLaNote = false;    }}// ---------------------------------------// fermeture de la note seulement si on // n'est pas sur la Layer note// ---------------------------------------function fermerNoteIntelligent(){    if (!surLaNote) // le test sur refnum et ouvert    {               // est dans fermerNoteBrute        fermerNoteBrute();    }}// ---------------------------------------// Appele par onMouseOver de la Layer note// ---------------------------------------function SignalerOnMouseOver(){    surLaNote = true; }// ---------------------------------------// Appele par onMouseOut de la Layer note// ---------------------------------------function SignalerOnMouseOut(){    surLaNote = false; }// ---------------------------------------// fermerNote()// Entree principale de fermeture de note// Fermeture selon tempo avec enclenchement// de la mecanique de detection d'entree// sortie de la layer// ---------------------------------------function fermerNote(boolFermerImmediat){    if (refnum && ouvert)    {        if (attente == 0 || boolFermerImmediat)        {               fermerNoteBrute();        }         else // cas d'une note contenant des liens: on doit             // pouvoir se positionner dessus...         {            initReflexesNote();            oldNote = refnum; 	        tempo = setTimeout("enfinFermerNote()", attente);	    }	}} // ---------------------------------------// enfinFermerNote()// Tentative de fermeture initiale si hors// de la layer, puis mecanique de detection// de sortie de la layer  // ---------------------------------------function enfinFermerNote(){    if (refnum == oldNote) // sinon on a ouvert une autre note avant l'Žcoulement de la seconde    {        fermerNoteIntelligent(); // ferme la note si on n'est pas dessus            if (ouvert)              // note non fermee => on est dessus         {            if (IsOldNetscape) document.captureEvents(Event.MOUSEMOVE); // bestial!            document.onmousemove = dedansDehors;        }   }}// ---------------------------------------// dedansDehors()// Ferme la note des que l'on sort de la // Layer note// ---------------------------------------function dedansDehors(e) {    if (IsInside(e) == false)    {        tempo = setTimeout("fermerNoteBrute()", tempoIE);    	if (IsOldNetscape)        {	       document.releaseEvents(Event.MOUSEMOVE);        }    	if (document.all)    	{	       document.onmousemove = null;    	}     	if (IsMozilla)    	{	       document.onmousemove = null;    	}     }} // ---------------------------------------// IsInside()// Informe si on est dans ou hors de la// Layer note  // Surtout utile pour IE5 Mac, mais utilise// pour IE5 systematiquement... En attendant de// tester l'aute mecanisme sur IE5 PC// ---------------------------------------function IsInside(e){    my_pageYOffset=getDistanceParcourueY();	if (IsOldNetscape)	{       wecy      = e.pageY;       wecx      = e.pageX;       layerNote = document[refnum];              som       = layerNote.top;       cote_gau  = layerNote.left;       larg      = layerNote.clip.right;       haut      = layerNote.clip.bottom;    }    	if (document.all)	{       wecy      = window.event.clientY + document.body.scrollTop;       wecx      = window.event.clientX + document.body.scrollLeft;       layerNote = document.all[refnum];              som       = layerNote.offsetTop;            cote_gau  = layerNote.offsetLeft;       larg      = layerNote.offsetWidth;       haut      = layerNote.offsetHeight;	}	if (IsMozilla)	{       wecy      = e.clientY + my_pageYOffset;       wecx      = e.clientX;       layerNote = document.getElementById(refnum);              som       = parseInt(layerNote.style.top);                   cote_gau  = layerNote.offsetLeft;       larg      = layerNote.offsetWidth;       haut      = layerNote.offsetHeight;	} 		// Et maintenant, Zeu formule of calcule top astucieuse    if((wecy>som && wecy<som+haut) && (wecx>cote_gau && wecx<cote_gau+larg)) 	{       surLaNote = true; 	   return true;	}	else 	{       surLaNote = false;	   return false;	}}function ouvrirNote(event, note){    if (refnum && ouvert) fermerNoteBrute();        if (document.getElementById)    {        myClass = document.getElementById(note).className;        if (myClass == "legende1")        {            eloignementVert = 15;        }        else eloignementVert = 0;    }        ouvrirFenDyn(event, note, 300);    attente = 1000;}function ouvrirCommentaire(event, note){    if (refnum && ouvert) fermerNoteBrute();    ouvrirFenDyn(event, note, 120);    attente = 0;}// --------------------------------------------------------------// --------------------------------------------------------------// --------------------------------------------------------------function getRealLeft(el) {    xPos   = el.offsetLeft;    tempEl = el.offsetParent;    while (tempEl != null)    {        xPos += tempEl.offsetLeft;        tempEl = tempEl.offsetParent;    }    return xPos;}xLeftLegende  = 100; // valeur moyenne crŽdible si on a oubliŽ "referenceLegende"wLargeurWidth = 100;bPasPasse     = true;bParLegende2  = false;bPasPasseIE   = true;function ouvrirlegende (note){     if (refnum && ouvert) fermerNoteBrute();    refnum = note;    layerNote = document.getElementById(note);        // 2007: suppression de ce code car obsolete avec nouvelle CSS à 600px/*  if (bPasPasseIE && IsIE && !IsIEMac) // Putain de d?passement ? droite sur IE6 Win!    if (0)    {        xPosition     = layerNote.offsetLeft + layerNote.offsetParent.offsetLeft;        wLargeurWidth = largeur - xPosition - 40 - ecartBordIE;        bPasPasseIE = false;    }    // 2007    // if (IsIE && !IsIEMac) layerNote.style.width = wLargeurWidth;*/ 	layerNote.style.visibility = "visible";}function ouvrirlegende2 (event, note){    layerNote = document.getElementById(note);    my_pageYOffset=getDistanceParcourueY();        if (bPasPasse)    {        layerReference = document.getElementById("referenceLegende");        if (layerReference != null)         {            xLeftLegende   = getRealLeft(layerReference);            bPasPasse      = false;                        if (IsIE && !IsIEMac) // bizarre offsetLeft sur IE5.5 win            {                xLeftLegende = layerReference.offsetLeft;            }        }    }        if (!document.all)     {        sommet = event.pageY - layerNote.offsetHeight - 25;    }    else    {           // sommet = event.clientY + document.body.scrollTop  - layerNote.offsetHeight - 23;        sommet = event.clientY + my_pageYOffset - layerNote.offsetHeight - 23;    }    layerNote.style.top = sommet+"px";    layerNote.style.left = xLeftLegende+"px"; // getRealLeft() d'un blockquote legende normal                                         // => style position asbolute avec left=0 au dŽpart    bParLegende2 = true;    ouvrirlegende(note);    bParLegende2 = false;}function fermerlegende (note){     layerNote = document.getElementById(note);    layerNote.style.visibility = "hidden";    ouvert = false;}function fermerlegende2 (note){     attente = 500;    ouvert = true;    refnum = note;    fermerNote(false);       attente = 0;}