/* ================================================================================ * * Fonction JavaScript diverses (mais nez en moins tres utiles) * * ================================================================================ */ /* ******************************************************************************** * Tente de reconnaître le browser actuel */ function TestBrowser() { this.ver = navigator.appVersion ; this.agent = navigator.userAgent ; this.dom = 0 ; this.ie6 = 0 ; this.ie5 = 0 ; this.ie4 = 0 ; this.ie = this.ie4 || this.ie5 || this.ie6 ; this.mac = 0 ; this.ns7 = 0 ; this.ns6 = 0 ; this.ns4 = 0 ; this.ns = this.ns6 || this.ns7 ; this.opera = 0 ; this.moz = 1 ; this.bw = (this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera || this.moz) ; // alert('dom : ' + this .dom + ' - opera : ' + this.opera + ' - ie6 : ' + this.ie6 + ' - ie5 : ' + this.ie5 + ' - ie4 : ' + this.ie4 + ' - ns6 : ' + this.ns6 + ' - ns4 : ' + this.ns4) ; return this ; } function Rediriger(entree) { if (screen.width >= 1024) { /* * Si l'ecran est en plus de 800x600 et que la page n'est pas appelee * par sa frame englobante, alors on reconstruit l'ensemble des frames * sinon, on ne reconstruit que l'ecran d'accueil */ if (parent.frames.length == 0) self.location = "index.php?Entree=" + entree ; } else { /* * Si l'ecran est de 800x600, on passe quand meme par la page * d'accueil */ if (parent.frames.length == 0) self.location = "accueil.php?Entree=" + entree ; } } /* ******************************************************************************** * Ouvre une fenêtre annexe * * URL URL complete, parametres y compris * Nom Nom interne de la fenetre * Largeur Largeur en pixels de la fenetre * Longueur Longueur en pixels de la fenetre */ function ouvrirFenetre(URL, Nom, Largeur, Hauteur) { Fenetre = window.open(URL, Nom, 'scrollbars=yes,resizable=yes,toolbar=no,menubar=no,location=no,titlebar=yes,width=' + Largeur + ',height=' + Hauteur) ; Fenetre.focus() ; } /* ================================================================================ * Interface 'portable' d'acces aux objets de la page et * de manipulation de leur style * * Modules d'apres ceux de Chris Nott disponibles sur http://www.dithered.com */ /* ******************************************************************************** * Retourne l'objet dont on a passe le nom. * Point de passage obligatoire avant de manipuler l'objet, les autres * fonctions utilisant ce qui est retourné ici */ function getObject (e,f) { if (document.layers) { f = (f) ? f : self ; var V = f.document.layers ; if (V[e]) return V[e] ; for (var W = 0 ; W < V.length ; ) t = getObject (e, V[W++]) ; return t ; } if (document.all) return document.all[e] ; return document.getElementById(e) ; } /* ******************************************************************************** * Dans le cas de Netscape 6, les valeurs de taille et position dans les * styles sont suivis de 'px' * Cette fonction supprime le 'px' */ function clean(Coord) { if ((Coord == '') || (Coord == 0)) return (Coord) ; else return (parseInt(Coord)) ; } /* ******************************************************************************** * Rend un objet visible */ function showObject (e) { if (document.layers) e.visibility = 'show' ; else e.style.visibility = 'visible' ; } /* ******************************************************************************** * Cache un objet */ function hideObject (e) { if (document.layers) e.visibility = 'hide' ; else e.style.visibility = 'hidden' ; } /* ******************************************************************************** * Lit l'ordre d'empilement (z-index) d'un objet */ function getZIndex (e) { if (document.layers) return (e.zIndex) ; else return (e.style.zIndex) ; } /* ******************************************************************************** * Change l'ordre d'empilement (z-index) d'un objet */ function setZIndex (e,z) { if (document.layers) e.zIndex = z ; else e.style.zIndex = z ; } /* ******************************************************************************** * Lit la position horizontale d'un objet */ function getLeft (e) { if (document.layers) return (e.left) ; else if (Browser.opera) return (e.style.pixelLeft) ; else return (clean(e.style.left) * 10 / 10) ; } /* ******************************************************************************** * Change la position horizontale d'un objet */ function setLeft (e,x) { if (document.layers) e.left = x ; else if (Browser.opera) e.style.pixelLeft = x ; else e.style.left = x + px ; } /* ******************************************************************************** * Lit la position verticale d'un objet */ function getTop (e) { if (document.layers) return (e.top) ; else if (Browser.opera) return (e.style.pixelTop) ; else return (clean(e.style.top) * 10 / 10) ; } /* ******************************************************************************** * Change la position verticale d'un objet */ function setTop (e,y) { if (document.layers) e.top = y ; else if (Browser.opera) e.style.pixelTop = y ; else e.style.top = y + px ; } /* ******************************************************************************** * Lit la largeur d'un objet */ function getWidth (e) { if (document.layers) return (e.clip.width) ; else if (Browser.opera) return (e.style.pixelWidth) ; else return (clean(e.style.width)) ; } /* ******************************************************************************** * Change la largeur d'un objet */ function setWidth (e,w) { if (document.layers) e.clip.width = w ; else if (Browser.opera) e.style.pixelWidth = w ; else e.style.width = w + px ; } /* ******************************************************************************** * Lit la hauteur d'un objet */ function getHeight (e) { if (document.layers) return (e.clip.height) ; else if (Browser.opera) return (e.style.pixelHeight) ; else return (clean(e.style.height)) ; } // ---------[ setHeight ]---------------------------------------------------------- // // Change la hauteur d'un objet // // En entree : // e Reference de l'objet // h Hauteur a affecter a l'objet // function setHeight (e,h) { if (document.layers) e.clip.height = h ; else if (Browser.opera) e.style.pixelHeight = h ; else e.style.height = h + px ; } // ---------[ setClip ]------------------------------------------------------------ // // Definit la zone visible d'un objet (clipping) // // En entree : // e Reference de l'objet // t Coordonnee du haut du rectangle (top) // r Coordonnee de droite du rectangle (right) // b Coordonnee du bas du rectangle (bottom) // x Coordonnee de gauche du rectangle (left) // function setClip(e,t,r,b,x) { if (document.layers) { X = e.clip ; X.top = t ; X.right = r ; X.bottom = b ; X.left = x ; } else e.style.clip = 'rect(' + t + px + ' ' + r + px + ' ' + b + px + ' ' + x + px + ')' ; } // ---------[ writeHTML ]--------------------------------------------------------- // // Change le contenu HTML d'un objet // // En entree : // e Reference de l'objet // h HTML a injecter // function writeHTML (e,h) { if (document.layers) { alert(e + ' - ' + h) ; e.document.open() ; e.document.write(h) ; e.document.close() ; } if (e.innerHTML) e.innerHTML = h ; } // ---------[ getBGColor ]-------------------------------------------------------- // // Recupere la couleur de fond d'un objet // // En entree : // e Reference de l'objet // function getBGColor(e) { return(e.style.backgroundColor) ; } // ---------[ setBGColor ]-------------------------------------------------------- // // Change la couleur de fond d'un objet // // En entree : // e Reference de l'objet // c Nouvelle couleur // function setBGColor(e, c) { e.style.backgroundColor = c ; } // ---------[ getFGColor ]-------------------------------------------------------- // // Recupere la couleur de texte d'un objet // // En entree : // e Reference de l'objet // function getFGColor(e) { return(e.style.color) ; } // ---------[ setFGColor ]-------------------------------------------------------- // // Change la couleur de texte d'un objet // // En entree : // e Reference de l'objet // c Nouvelle couleur // function setFGColor(e, c) { e.style.color = c ; } // ---------[ setBorderColor ]---------------------------------------------------- // // Change la couleur des bordures d'un objet // // En entree : // e Reference de l'objet // t Nouvelle couleur de la bordure haute // r Nouvelle couleur de la bordure droite // b Nouvelle couleur de la bordure basse // l Nouvelle couleur de la bordure gauche // function setBorderColor(e, t, r, b, l) { if (t != '') e.style.borderTopColor = t ; if (r != '') e.style.borderRightColor = r ; if (b != '') e.style.borderBottomColor = b ; if (l != '') e.style.borderLeftColor = l ; } /* ================================================================================ * PageScroll * Copyright (C) 2001 Thomas Brattli * This script was released at DHTMLCentral.com * Visit for more great scripts! * This may be used and changed freely as long as this msg is intact! * We will also appreciate any links you could give us. * * Made by /dhtmlcentral/thomas_brattli.asp - Thomas Brattli */ // The speed of the timeout between each scroll. timSpeed = 50 ; // The height of the container (change this when it scrolls to much or to little) contHeight = 380 ; /* ******************************************************************************** * Other variables */ var scrollTim = 1 ; var active = 0 ; var oControl ; var oScroll ; /* ******************************************************************************** * This is the object constructor function, which applies * methods and properties to the Cross-browser layer object */ function makeScrollObj(obj,nest) { nest = (! nest) ? "" : 'document.' + nest + '.' ; this.el = Browser.dom ? document.getElementById(obj) : Browser.ie4 ? document.all[obj] : Browser.ns4 ? eval(nest + 'document.' + obj) : 0 ; this.css = Browser.dom ? document.getElementById(obj).style : Browser.ie4 ? document.all[obj].style : Browser.ns4 ? eval(nest + 'document.' + obj) : 0 ; this.height = Browser.ns4 ? this.css.document.height:this.el.offsetHeight ; this.top = b_gettop ; return this ; } /* ******************************************************************************** * Getting the top for the top method */ function b_gettop() { var gtop = (Browser.ns4 || Browser.ns6) ? parseInt(this.css.top) : eval(this.css.pixelTop) ; return gtop ; } /* ******************************************************************************** * The scroll function. Checks what way to scroll and checks if the * layer is not already on top or bottom. */ function scroll(speed) { clearTimeout (scrollTim) ; way = speed > 0 ? 1 : 0 ; if ((!way && oScroll[active].top() > -oScroll[active].height + contHeight) || (oScroll[active].top() < 0 && way)) { oScroll[active].css.top = (oScroll[active].top()+speed) + px ; scrollTim = setTimeout("scroll(" + speed + ")", timSpeed) ; } } /* ******************************************************************************** * Clears the timeout so the scroll stops, this is called onmouseout. */ function noScroll() { clearTimeout(scrollTim) ; } /* ******************************************************************************** * Changes the active layer. Hides the one that's visible and * shows the "new" one. Also set's the new layers top to 0 * so it starts at top. */ function changeActive(num) { oScroll[active].css.visibility = "hidden" ; active = num ; oScroll[active].css.top = 0 + px ; oScroll[active].css.visibility = "visible" ; } /* ******************************************************************************** * Initializes the page, makes a oScroll Array and calls the object constructor. * Here you can add as many scrollObjects as you want */ function scrollInit() { oScroll = new Array() // You can add and remove scrollObjects here. // throw 'entree dans le debugger' ; for (i = 0 ; i < NbOnglets ; i++) { Page = 'id_0' + (i + 1) ; oScroll[i] = new makeScrollObj(Page, 'Conteneur') ; } oControl = new makeScrollObj('Conteneur') ; oControl.css.visibility = 'visible' ; oScroll[0].css.left = 0 + px ; oScroll[0].css.top = 0 + px ; oScroll[0].css.visibility = 'visible' ; SourisClick(Section) } // ================================================================================ /* * Initialisations */ var Browser = new TestBrowser() ; var px = ((Browser.ie) || (Browser.ns6)) ? 'px' : '' ; // ----------------------------------------------------------------------- // Creation des tableaux des jours et mois pour les fonctions de // conversion des dates alphabetiques // ----------------------------------------------------------------------- MoisFR = new Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre") ; JoursFR = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi") ; MoisEN = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December") ; JoursEN = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") ; // ---------[ coderDateNumerique ]---------------------------------------- // // Conversion d'une date en chaine alphabetique (sans l'heure) // // En entree : // laDate Date qu'il faut convertir // // En sortie : // Retour Chaine contenant la date formatee // function coderDateAlphabetique(laDate) { var DateCourante = new Date(laDate) ; var lAnnee = DateCourante.getFullYear() ; var leMois = MoisFR[DateCourante.getMonth()] ; var leJour = JoursFR[DateCourante.getDay()] ; return leJour + " " + DateCourante.getDate() + " " + leMois + " " + lAnnee ; } // ---------[ coderHeureAlphabetique ]------------------------------------ // // Conversion d'une date et d'une heure en chaine alphabetique // // En entree : // laDate Date qu'il faut convertir // // En sortie : // Retour Chaine contenant la date formatee // function coderDateHeureAlphabetique(laDate) { var DateCourante = new Date(laDate) ; var lAnnee = DateCourante.getFullYear() ; var leMois = MoisFR[DateCourante.getMonth()] ; var leJour = JoursFR[DateCourante.getDay()] ; return leJour + " " + DateCourante.getDate() + " " + leMois + " " + lAnnee + " à " + DateCourante.getHours() + " heures " + DateCourante.getMinutes() ; } // ---------[ coderDateNumerique ]---------------------------------------- // // Conversion d'une date en chaine numerique (sans l'heure) // // En entree : // laDate Date qu'il faut convertir // // En sortie : // Retour Chaine contenant la date formatee // function coderDateNumerique(laDate) { DateCourante = new Date(laDate) ; leMois = new String(DateCourante.getMonth() + 1) ; if (leMois.length == 1) { leMois = "0" + leMois ; } leJour = new String(DateCourante.getDate()) ; if (leJour.length == 1 ) { leJour = "0" + leJour ; } return leJour + "/" + leMois + "/" + DateCourante.getFullYear() ; } // ---------[ coderDateHeureNumerique ]----------------------------------- // // Conversion d'une date et d'une heure en chaine numerique // // En entree : // laDate Date qu'il faut convertir // // En sortie : // Retour Chaine contenant la date formatee // function coderDateHeureNumerique(laDate) { DateCourante = new Date(laDate) ; leMois = new String(DateCourante.getMonth() + 1) ; if (leMois.length == 1) { leMois = "0" + leMois ; } leJour = new String(DateCourante.getDate()) ; if (leJour.length == 1 ) { leJour = "0" + leJour ; } lHeure = new String(DateCourante.getHours()) if (lHeure.length == 1 ) { lHeure = "0" + lHeure ; } laMinute = new String(DateCourante.getMinutes()) if (laMinute.length == 1 ) { laMinute = "0" + laMinute ; } return leJour + "/" + leMois + "/" + DateCourante.getFullYear() + " " + lHeure + ":" + laMinute ; } // ---------[ coderHeureNumerique ]--------------------------------------- // // Conversion d'une heure en chaine numerique // // En entree : // laDate Date qu'il faut convertir // // En sortie : // Retour Chaine contenant l'heure formatee // function coderHeureNumerique(laDate) { DateCourante = new Date(laDate) ; lHeure = new String(DateCourante.getHours()) if (lHeure.length == 1 ) { lHeure = "0" + lHeure ; } laMinute = new String(DateCourante.getMinutes()) if (laMinute.length == 1 ) { laMinute = "0" + laMinute ; } return lHeure + ":" + laMinute ; } // ---------[ initChampTexte ]------------------------------------------- // // Initialisation des caracteristiques d'un champ texte // // En entree : // Nom Nom du champ a traiter // Longueur Taille du champ en pixels // Hauteur Hauteur du champ en pixels // Modifiable Flag indiquant se le champ est saisissable // Alignement 'left' ou 'right' selon l'alignement voulu // function initChampTexte(Nom, Longueur, Hauteur, Modifiable, Alignement) { Objet = getObject(Nom) ; if (Objet) { for (i = 0 ; i < arguments.length ; i++) { switch(i) { case 1 : if (Longueur != 0) setWidth(Objet, Longueur) ; break ; case 2 : if (Hauteur != 0) setHeight(Objet, Hauteur) ; break ; case 3 : if (Modifiable) { Objet.readOnly = false ; setBGColor(Objet, '#eeeeee') ; } else { Objet.readOnly = true ; setBGColor(Objet, '#d0d0d0') ; setFGColor(Objet, '#484848') ; } break ; case 4 : Objet.style.textAlign = Alignement ; break ; } } } } // ---------[ changerBoutonRadio ]--------------------------------------- // // Changement de l'etat d'un bouton radio 'image' // // En entree : // Champ Nom du champ qui contient le nom du bouton actuellement selectionne // Nom Nom du bouton a basculer // // En sortie : // Le bouton initialement selectionne est a l'etat normal // Le bouton clique est a l'etat coche // Le champ 'Champ' contient 'Nom' // function changerBoutonRadio(Champ, Nom) { var Formulaire, Cible, Bouton ; Formulaire = document.formulaire ; Cible = eval('Formulaire.' + Champ) ; if (Cible.value != Nom) { if (Cible.value != '') { Bouton = getObject(Cible.value) ; Bouton.src = 'images/rbn_normal.gif' ; } Bouton = getObject(Nom) ; Bouton.src = 'images/rbn_checked.gif' ; Cible.value = Nom ; } traiterComplement(Nom) ; } // ---------[ changerCaseACocher ]--------------------------------------- // // Changement de l'etat d'une case a cocher 'image' // // En entree : // Le champ 'Champ' contient la combinaison des noms des cases actuellement cochees // Le bouton 'Nom' est celui a cocher // Etat est a vide, 'on' ou 'off' selon ce qu'on veut // // En sortie : // Le bouton clique est a l'etat coche ou decoche // Le champ 'Champ' contient la nouvelle combinaison des noms des cases cochees // function changerCaseACocher(Champ, Nom, Etat) { var Formulaire, Cible, Bouton, NbChamps, Trouve, i ; var Boutons = new Array() ; Formulaire = document.formulaire ; Cible = eval('Formulaire.' + Champ) ; if (Cible.value != '') { Boutons = Cible.value.split('|') ; NbChamps = Boutons.length ; Trouve = false ; for (i = 0 ; i < NbChamps ; i++) { if ((Boutons[i] == Nom) && ((Etat == '') || (Etat == 'off'))) { // Bouton coche -> On le decoche // et on le supprime de la liste Trouve = true ; Bouton = getObject(Nom) ; Bouton.src = 'images/cbx_normal.gif' ; Boutons.splice(i, 1) ; break ; } } if ((! Trouve) && ((Etat == '') || (Etat == 'on'))) { // Bouton pas encore coche -> On le coche // et on le rajoute a la liste Bouton = getObject(Nom) ; Bouton.src = 'images/cbx_checked.gif' ; Boutons.push(Nom) ; } Cible.value = Boutons.join('|') ; } else { if ((Etat == '') || (Etat == 'on')) { // Rien de coche initialement -> on coche le bouton clique Bouton = getObject(Nom) ; Bouton.src = 'images/cbx_checked.gif' ; Cible.value = Nom ; } } } // ---------[ verifierEmail ]--------------------------------------- // // Verification de la validite structurelle d'une adresse email // // En entree : // adresse Adresse a verifier // // En sortie : // Retour 'faux' si adresse incorrecte // 'vrai' sinon // function verifierEmail (adresse) { var emailPattern = /^(.+)@(.+)$/ ; var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" ; var validChars = "\[^\\s" + specialChars + "\]" ; var quotedUser = "(\"[^\"]*\")" ; var ipDomainPattern = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ ; var atom = validChars + '+' ; var word = "(" + atom + "|" + quotedUser + ")" ; var userPattern = new RegExp("^" + word + "(\\." + word + ")*$") ; var domainPattern = new RegExp("^" + atom + "(\\." + atom +")*$") ; // // On commence par separer la partie nom d'utilisateur // de la partie nom de domaine // var matchArray = adresse.match(emailPattern) ; if (matchArray == null) { // L'adresse email semble incorrecte return false ; } var user = matchArray[1] ; var domaine = matchArray[2] ; // // On verifie ensuite le nom d'utilisateur // if (user.match(userPattern) == null) { // Le nom d'utilisateur semble invalide return false ; } // // Dans le cas ou le domaine est une adresse IP au lieu d'un nom, // on verifie que l'adresse est correcte // var IPArray = domaine.match(ipDomainPattern) ; if (IPArray != null) { // Ca ressemble a une adresse IP... for (var i = 1 ; i <= 4 ; i++) { if (IPArray[i] > 255) { // ...mais ca n'en est pas une return false ; } } return true } // // On s'assure que le nom de domaine a une syntaxe acceptable // var domainArray = domaine.match(domainPattern) ; if (domainArray == null) { // ce qui ne semble pas etre le cas return false ; } // // La syntaxe du nom de domaine semble valide, mais il faut // maintenant s'assurer qu'on a bien une terminaison sur deux ou // trois lettres, precedee d'un point et d'un autre nom // // // On isole chacun des composants du nom de domaine // var atomPattern = new RegExp(atom,"g") ; domainArray = domaine.match(atomPattern) ; var len = domainArray.length ; if (domainArray[domainArray.length - 1].length < 2 || domainArray[domainArray.length - 1].length > 3) { // La derniere partie ne fait pas deux ou trois caracteres return false ; } // // On verifie maintenant l'avant-derniere partie // if (len < 2) { // Elle n'est pas assez longue return false ; } // Si on arrive la, c'est que l'adresse semble valide return true ; } // === Fonctions de gestion des cookies ================================================== function lireValeurCookie(offset) { var endstr = document.cookie.indexOf (";", offset) ; if (endstr == -1) endstr = document.cookie.length ; return (unescape(document.cookie.substring(offset, endstr))) ; } function lireCookie(nom) { var arg = nom + "=" ; var alen = arg.length ; var clen = document.cookie.length ; var i = 0 ; while (i < clen) { var j = i + alen ; if (document.cookie.substring(i, j) == arg) return lireValeurCookie(j) ; i = document.cookie.indexOf(" ", i) + 1 ; if (i == 0) break ; } return (null) ; } function ecrireCookie(nom, valeur) { var argv = ecrireCookie.arguments ; var argc = ecrireCookie.arguments.length ; var expires = (argc > 2) ? argv[2] : null ; var path = (argc > 3) ? argv[3] : null ; var domain = (argc > 4) ? argv[4] : null ; var secure = (argc > 5) ? argv[5] : false ; document.cookie = nom + "=" + escape(valeur) + ((expires==null) ? "" : ("; expires=" + expires.toGMTString())) + ((path==null) ? "" : ("; path=" + path)) + ((domain==null) ? "" : ("; domain=" + domain)) + ((secure==true) ? "; secure" : "") ; } function effacerCookie(nom) { date = new Date ; date.setFullYear(date.getFullYear() - 1) ; ecrireCookie(nom, null, date) ; } // === Fonctions de gestion des tooltips ================================================== var TipNom = '' ; var TipAffiche = false ; var TipX = 0 ; var TipY = 0 ; function getEcranLargeur() { if (! Browser.ie) return (parent.window.innerWidth) ; else return (parent.document.body.clientWidth) ; } function getEcranHauteur() { if (! Browser.ie) return (parent.window.innerHeight) ; else return (parent.document.body.clientHeight) ; } function afficherTooltip(e, Nom) { var Objet, Texte ; if (! Bulles) return ; TipNom = Nom ; if (! Browser.ie) { TipX = e.layerX ; TipY = e.layerY ; } else { TipX = event.x + document.body.scrollLeft ; TipY = event.y + document.body.scrollTop ; } Ecran = getEcranLargeur() ; if (TipX + 260 > Ecran) TipX -= 260 ; else TipX += 10 ; TipY += 5 ; TipAffiche = true ; setTimeout('montrerTooltip()', 500) ; } function montrerTooltip() { if (TipNom == '') return ; Objet = getObject('tooltip') ; Objet.innerHTML = lireValeurTooltip(TipNom) ; setTop(Objet, TipY) ; setLeft(Objet, TipX) ; if (TipAffiche) showObject(Objet) ; } function cacherTooltip() { var Objet ; if ((! Bulles) || (! TipAffiche)) return ; if (TipAffiche) { Objet = getObject('tooltip') ; hideObject(Objet) ; TipAffiche = false ; } } function getOption(Nom) { var NbOptions ; var Options = new Array() ; var Valeurs = new Array() ; var Chaine ; // Les options sont cookiesees sous la forme 'option1|option2|...' Chaine = lireCookie('options') ; // window.status = Chaine ; if (Chaine == null) return (false) ; Options = Chaine.split('|') ; NbOptions = Options.length ; for (i = 0 ; i < NbOptions ; i++) { Valeurs = Options[i].split('=') ; if (Valeurs.length == 1) { if (Options[i] == Nom) return (true) ; } else { if (Valeurs[0] == Nom) return (Valeurs[1]) ; } } return(false) ; } function getPosition(Nom, PType) { var Positions = new Array() ; var Valeurs = new Array() ; var Chaine, NbPositions ; if (PType == 'top') PType = 1 ; else PType = 2 ; Chaine = lireCookie('positions') ; if (Chaine == null) return (0) ; Positions = Chaine.split('|') ; NbPositions = Positions.length ; for (i = 0 ; i < NbPositions ; i++) { // Les positions sont cookiesees sous la forme 'nom:top:left' Valeurs = Positions[i].split(':') if (Valeurs[0] == Nom) return (Valeurs[PType]) ; } return(0) ; } function savePosition(Objet, PosTop, PosLeft) { var Positions = new Array() ; var Valeurs = new Array() ; var Cookie, Fin, NbPositions ; Cookie = '' ; Chaine = lireCookie('positions') ; if (Chaine != null) { Positions = Chaine.split('|') ; NbPositions = Positions.length ; for (i = 0 ; i < NbPositions ; i++) { // Les positions sont cookiesees sous la forme 'nom:top:left' Valeurs = Positions[i].split(':') if (Valeurs[0] != Objet.id) { if (Cookie != '') Cookie += '|' ; Cookie += Positions[i] ; } } } if (Cookie != '') Cookie += '|' ; Cookie += Objet.id + ':' + PosTop + ':' + PosLeft ; Fin = new Date ; Fin.setFullYear(Fin.getFullYear() + 1) ; ecrireCookie('positions', Cookie, Fin) ; // Chaine = lireCookie('positions') ; // window.status = 'Nom : ' + Objet.id + ' - Top : ' + PosTop + ' - Left : ' + PosLeft + ' - Positions : ' + Chaine ; } function changerStyleNS() { var NbStyles, Styles ; if (! Browser.ns) return ; NbStyles = parent.document.styleSheets[0].cssRules.length ; Styles = parent.document.styleSheets[0].cssRules ; for (i = 0 ; i < NbStyles ; i++) { if (Styles[i].selectorText == '.dialogue_out') { Styles[i].style.top = '0px' ; Styles[i].style.left = '0px' ; break ; } } } function setConteneur(Valeur) { Conteneur = Valeur ; }