MediaWiki:Common.js : Différence entre versions
De Casio Universal Wiki
(nom d'utilisateur retiré) (Page créée avec « →* * Pour Modèle:Boîte déroulante : var BoiteDeroulante_Enrouler = '[masquer]'; var BoiteDeroulante_Derouler = '[afficher]'; var BoiteDeroulante_max = 0; ... ») |
(nom d'utilisateur retiré) |
||
(5 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | /*alignement des infobox*/ | ||
+ | function infoboxTableInit() { | ||
+ | var infoboxTableA=1; | ||
+ | var infoboxTableAmax=0; | ||
+ | var infoboxTableTemp; | ||
+ | while(document.getElementById("infoboxTableA"+infoboxTableA)!= null) | ||
+ | { | ||
+ | if(document.getElementById("infoboxTableA"+infoboxTableA).offsetHeight>infoboxTableAmax){infoboxTableAmax=document.getElementById("infoboxTableA"+infoboxTableA).offsetHeight;} | ||
+ | infoboxTableA++; | ||
+ | } | ||
+ | infoboxTableTemp=1; | ||
+ | while(infoboxTableTemp<=infoboxTableA) | ||
+ | { | ||
+ | if(document.getElementById("infoboxTableA"+infoboxTableTemp)!=null){document.getElementById("infoboxTableA"+infoboxTableTemp).style.height=infoboxTableAmax+"px"} | ||
+ | infoboxTableTemp++; | ||
+ | }} | ||
+ | window.onload = infoboxTableInit; | ||
+ | |||
+ | |||
+ | /** | ||
+ | * insertAfter : insérer un élément dans une page | ||
+ | */ | ||
+ | function insertAfter(parent, node, referenceNode) { | ||
+ | parent.insertBefore(node, referenceNode.nextSibling); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * getElementsByClass : rechercher les éléments de la page dont le paramètre "class" est celui recherché | ||
+ | */ | ||
+ | function getElementsByClass(searchClass, node, tag) { | ||
+ | if (node == null) node = document; | ||
+ | if (tag == null) tag = '*'; | ||
+ | return getElementsByClassName(node, tag, searchClass); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Diverses fonctions manipulant les classes | ||
+ | * Utilise des expressions régulières et un cache pour de meilleures perfs | ||
+ | * isClass et whichClass depuis http://fr.wikibooks.org/w/index.php?title=MediaWiki:Common.js&oldid=140211 | ||
+ | * hasClass, addClass, removeClass et eregReplace depuis http://drupal.org.in/doc/misc/drupal.js.source.html | ||
+ | * surveiller l'implémentation de .classList http://www.w3.org/TR/2008/WD-html5-diff-20080122/#htmlelement-extensions | ||
+ | */ | ||
+ | function isClass(element, classe) { | ||
+ | return hasClass(element, classe); | ||
+ | } | ||
+ | |||
+ | function whichClass(element, classes) { | ||
+ | var s=" "+element.className+" "; | ||
+ | for(var i=0;i<classes.length;i++) | ||
+ | if (s.indexOf(" "+classes[i]+" ")>=0) return i; | ||
+ | return -1; | ||
+ | } | ||
+ | |||
+ | function hasClass(node, className) { | ||
+ | var haystack = node.className; | ||
+ | if(!haystack) return false; | ||
+ | if (className === haystack) { | ||
+ | return true; | ||
+ | } | ||
+ | return (" " + haystack + " ").indexOf(" " + className + " ") > -1; | ||
+ | } | ||
+ | |||
+ | function addClass(node, className) { | ||
+ | if (hasClass(node, className)) { | ||
+ | return false; | ||
+ | } | ||
+ | var cache = node.className; | ||
+ | if (cache) { | ||
+ | node.className = cache + ' ' + className; | ||
+ | } else { | ||
+ | node.className = className; | ||
+ | } | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function removeClass(node, className) { | ||
+ | if (!hasClass(node, className)) { | ||
+ | return false; | ||
+ | } | ||
+ | node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className); | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | function eregReplace(search, replace, subject) { | ||
+ | return subject.replace(new RegExp(search,'g'), replace); | ||
+ | } | ||
+ | |||
+ | |||
+ | /** | ||
+ | * Récupère la valeur du cookie | ||
+ | */ | ||
+ | function getCookieVal(name) { | ||
+ | var cookiePos = document.cookie.indexOf(name + "="); | ||
+ | var cookieValue = false; | ||
+ | if (cookiePos > -1) { | ||
+ | cookiePos += name.length + 1; | ||
+ | var endPos = document.cookie.indexOf(";", cookiePos); | ||
+ | if (endPos > -1) | ||
+ | cookieValue = document.cookie.substring(cookiePos, endPos); | ||
+ | else | ||
+ | cookieValue = document.cookie.substring(cookiePos); | ||
+ | } | ||
+ | return cookieValue; | ||
+ | } | ||
+ | |||
+ | // Récupère proprement le contenu textuel d'un noeud et de ses noeuds descendants | ||
+ | // Copyright Harmen Christophe, http://openweb.eu.org/articles/validation_avancee, CC | ||
+ | function getTextContent(oNode) { | ||
+ | if(!oNode) return null; | ||
+ | if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;} | ||
+ | switch (oNode.nodeType) { | ||
+ | case 3: // TEXT_NODE | ||
+ | case 4: // CDATA_SECTION_NODE | ||
+ | return oNode.nodeValue; | ||
+ | break; | ||
+ | case 7: // PROCESSING_INSTRUCTION_NODE | ||
+ | case 8: // COMMENT_NODE | ||
+ | if (getTextContent.caller!=getTextContent) { | ||
+ | return oNode.nodeValue; | ||
+ | } | ||
+ | break; | ||
+ | case 9: // DOCUMENT_NODE | ||
+ | case 10: // DOCUMENT_TYPE_NODE | ||
+ | case 12: // NOTATION_NODE | ||
+ | return null; | ||
+ | break; | ||
+ | } | ||
+ | var _textContent = ""; | ||
+ | oNode = oNode.firstChild; | ||
+ | while (oNode) { | ||
+ | _textContent += getTextContent(oNode); | ||
+ | oNode = oNode.nextSibling; | ||
+ | } | ||
+ | return _textContent; | ||
+ | } | ||
+ | |||
+ | // Array.indexOf : recherche un élément dans un tableau | ||
+ | |||
+ | if (!Array.prototype.indexOf) { | ||
+ | Array.prototype.indexOf = function(obj) { | ||
+ | for (var i=0; i<this.length; i++) { | ||
+ | if (this[i] == obj){ | ||
+ | return i; | ||
+ | } | ||
+ | } | ||
+ | return -1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if(!String.prototype.HTMLize){ | ||
+ | String.prototype.HTMLize = function() { | ||
+ | var chars = new Array('&','<','>','"'); | ||
+ | var entities = new Array('amp','lt','gt','quot'); | ||
+ | var string = this; | ||
+ | for (var i=0; i<chars.length; i++) { | ||
+ | var regex = new RegExp(chars[i], "g"); | ||
+ | string = string.replace(regex, '&' + entities[i] + ';'); | ||
+ | } | ||
+ | return string; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | /**********************************************************************************************************/ | ||
+ | /* Fonctions générales MediaWiki (pallient les limitations du logiciel) */ | ||
+ | /* Surveiller : http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js?view=log */ | ||
+ | /**********************************************************************************************************/ | ||
+ | |||
+ | /* | ||
+ | * Fonction générales de lancement de fonctions ou de script | ||
+ | * DÉPRÉCIÉ : utiliser addOnloadHook simplement | ||
+ | */ | ||
+ | function addLoadEvent(func) { | ||
+ | addOnloadHook(func); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Insérer un JavaScript d'une page particulière, idée de Mickachu | ||
+ | * DÉPRÉCIÉ : utiliser importScript qui fait partie du logiciel | ||
+ | */ | ||
+ | function loadJs(page) { | ||
+ | importScript(page); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Projet JavaScript | ||
+ | */ | ||
+ | function obtenir(name) { | ||
+ | importScript('MediaWiki:Gadget-' + name + '.js'); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Transformer les pages du Bistro, du BA et les pages spécifiées en page de discussion | ||
+ | */ | ||
+ | function TransformeEnDiscussion() { | ||
+ | if( (wgPageName.search('Wikipédia:Le_Bistro') != -1) | ||
+ | || (wgPageName.search('Wikipédia:Bulletin_des_administrateurs') != -1) | ||
+ | || document.getElementById('transformeEnPageDeDiscussion')) { | ||
+ | removeClass(document.body, 'ns-subject'); | ||
+ | addClass(document.body, 'ns-talk'); | ||
+ | } | ||
+ | } | ||
+ | addOnloadHook(TransformeEnDiscussion); | ||
+ | |||
+ | /** | ||
+ | * Transformer certaines pages en pseudo-article | ||
+ | * c'est raisonnable ? --Tavernier | ||
+ | */ | ||
+ | function TransformeEnArticle() { | ||
+ | var transformeEnA = document.getElementById("transformeEnArticle"); | ||
+ | if(transformeEnA) document.body.className = "ns-0"; | ||
+ | } | ||
+ | addOnloadHook(TransformeEnArticle); | ||
+ | |||
+ | /** | ||
+ | * Ajouter un bouton à la fin de la barre d'outils | ||
+ | */ | ||
+ | function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) { | ||
+ | mwCustomEditButtons[mwCustomEditButtons.length] = | ||
+ | {"imageId": imageId, | ||
+ | "imageFile": imageFile, | ||
+ | "speedTip": speedTip, | ||
+ | "tagOpen": tagOpen, | ||
+ | "tagClose": tagClose, | ||
+ | "sampleText": sampleText}; | ||
+ | } | ||
+ | |||
+ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
+ | /** | ||
+ | * Boîtes déroulantes | ||
+ | * | ||
+ | * Pour [[Modèle:Méta palette de navigation]] | ||
+ | */ | ||
+ | |||
+ | var Palette_Enrouler = '[masquer]'; | ||
+ | var Palette_Derouler = '[afficher]'; | ||
+ | |||
+ | var Palette_max = 1; | ||
+ | var Palette_index = -1; | ||
+ | |||
+ | function Palette_toggle(indexPalette){ | ||
+ | var Button = document.getElementById( "collapseButton" + indexPalette); | ||
+ | var Table = document.getElementById( "collapsibleTable" + indexPalette); | ||
+ | if (!Table || !Button) return false; | ||
+ | |||
+ | var Rows = Table.rows; | ||
+ | var RowDisplay = "none"; | ||
+ | if (Button.firstChild.data == Palette_Derouler) { | ||
+ | Button.firstChild.data = Palette_Enrouler; | ||
+ | RowDisplay = Rows[0].style.display; | ||
+ | } else { | ||
+ | Button.firstChild.data = Palette_Derouler; | ||
+ | } | ||
+ | for (var i = 1; i < Rows.length; i++) { | ||
+ | Rows[i].style.display = RowDisplay | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function Palette(Element){ | ||
+ | if(!Element) Element = document; | ||
+ | var TableIndex = 0; | ||
+ | var TableIndexes = new Array(); | ||
+ | var Tables = Element.getElementsByTagName( "table" ); | ||
+ | for ( var i = 0; i < Tables.length; i++ ) { | ||
+ | if ( hasClass( Tables[i], "collapsible" ) ) { | ||
+ | var Table = Tables[i]; | ||
+ | var Header = Table.getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; | ||
+ | /* only add button and increment count if there is a header row to work with */ | ||
+ | if (Header) { | ||
+ | TableIndex++ | ||
+ | Palette_index++; | ||
+ | TableIndexes[Palette_index] = Table; | ||
+ | Table.setAttribute( "id", "collapsibleTable" + Palette_index ); | ||
+ | var Button = document.createElement( "span" ); | ||
+ | var ButtonLink = document.createElement( "a" ); | ||
+ | var ButtonText = document.createTextNode( Palette_Enrouler ); | ||
+ | Button.className = "navboxToggle"; | ||
+ | ButtonLink.setAttribute( "id", "collapseButton" + Palette_index ); | ||
+ | ButtonLink.setAttribute( "href", "javascript:;" ); | ||
+ | addHandler( ButtonLink, "click", new Function( "evt", "Palette_toggle(" + Palette_index + " ); return killEvt( evt );") ); | ||
+ | ButtonLink.appendChild( ButtonText ); | ||
+ | Button.appendChild( document.createTextNode("\u00a0")); //ajout d'un espace insécable pour décoller ce bouton du texte de la celulle | ||
+ | Button.appendChild( ButtonLink ); | ||
+ | Header.insertBefore( Button, Header.childNodes[0] ); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | for(var index in TableIndexes){ | ||
+ | var Table = TableIndexes[index]; | ||
+ | if(hasClass(Table,"collapsed")||(TableIndex>Palette_max && hasClass(Table,"autocollapse"))) | ||
+ | Palette_toggle(index); | ||
+ | } | ||
+ | } | ||
+ | addOnloadHook(Palette); | ||
+ | |||
+ | |||
/** | /** | ||
* Pour [[Modèle:Boîte déroulante]] | * Pour [[Modèle:Boîte déroulante]] |
Version actuelle datée du 27 juin 2012 à 18:13
/*alignement des infobox*/ function infoboxTableInit() { var infoboxTableA=1; var infoboxTableAmax=0; var infoboxTableTemp; while(document.getElementById("infoboxTableA"+infoboxTableA)!= null) { if(document.getElementById("infoboxTableA"+infoboxTableA).offsetHeight>infoboxTableAmax){infoboxTableAmax=document.getElementById("infoboxTableA"+infoboxTableA).offsetHeight;} infoboxTableA++; } infoboxTableTemp=1; while(infoboxTableTemp<=infoboxTableA) { if(document.getElementById("infoboxTableA"+infoboxTableTemp)!=null){document.getElementById("infoboxTableA"+infoboxTableTemp).style.height=infoboxTableAmax+"px"} infoboxTableTemp++; }} window.onload = infoboxTableInit; /** * insertAfter : insérer un élément dans une page */ function insertAfter(parent, node, referenceNode) { parent.insertBefore(node, referenceNode.nextSibling); } /** * getElementsByClass : rechercher les éléments de la page dont le paramètre "class" est celui recherché */ function getElementsByClass(searchClass, node, tag) { if (node == null) node = document; if (tag == null) tag = '*'; return getElementsByClassName(node, tag, searchClass); } /** * Diverses fonctions manipulant les classes * Utilise des expressions régulières et un cache pour de meilleures perfs * isClass et whichClass depuis http://fr.wikibooks.org/w/index.php?title=MediaWiki:Common.js&oldid=140211 * hasClass, addClass, removeClass et eregReplace depuis http://drupal.org.in/doc/misc/drupal.js.source.html * surveiller l'implémentation de .classList http://www.w3.org/TR/2008/WD-html5-diff-20080122/#htmlelement-extensions */ function isClass(element, classe) { return hasClass(element, classe); } function whichClass(element, classes) { var s=" "+element.className+" "; for(var i=0;i<classes.length;i++) if (s.indexOf(" "+classes[i]+" ")>=0) return i; return -1; } function hasClass(node, className) { var haystack = node.className; if(!haystack) return false; if (className === haystack) { return true; } return (" " + haystack + " ").indexOf(" " + className + " ") > -1; } function addClass(node, className) { if (hasClass(node, className)) { return false; } var cache = node.className; if (cache) { node.className = cache + ' ' + className; } else { node.className = className; } return true; } function removeClass(node, className) { if (!hasClass(node, className)) { return false; } node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className); return true; } function eregReplace(search, replace, subject) { return subject.replace(new RegExp(search,'g'), replace); } /** * Récupère la valeur du cookie */ function getCookieVal(name) { var cookiePos = document.cookie.indexOf(name + "="); var cookieValue = false; if (cookiePos > -1) { cookiePos += name.length + 1; var endPos = document.cookie.indexOf(";", cookiePos); if (endPos > -1) cookieValue = document.cookie.substring(cookiePos, endPos); else cookieValue = document.cookie.substring(cookiePos); } return cookieValue; } // Récupère proprement le contenu textuel d'un noeud et de ses noeuds descendants // Copyright Harmen Christophe, http://openweb.eu.org/articles/validation_avancee, CC function getTextContent(oNode) { if(!oNode) return null; if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;} switch (oNode.nodeType) { case 3: // TEXT_NODE case 4: // CDATA_SECTION_NODE return oNode.nodeValue; break; case 7: // PROCESSING_INSTRUCTION_NODE case 8: // COMMENT_NODE if (getTextContent.caller!=getTextContent) { return oNode.nodeValue; } break; case 9: // DOCUMENT_NODE case 10: // DOCUMENT_TYPE_NODE case 12: // NOTATION_NODE return null; break; } var _textContent = ""; oNode = oNode.firstChild; while (oNode) { _textContent += getTextContent(oNode); oNode = oNode.nextSibling; } return _textContent; } // Array.indexOf : recherche un élément dans un tableau if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(obj) { for (var i=0; i<this.length; i++) { if (this[i] == obj){ return i; } } return -1; } } if(!String.prototype.HTMLize){ String.prototype.HTMLize = function() { var chars = new Array('&','<','>','"'); var entities = new Array('amp','lt','gt','quot'); var string = this; for (var i=0; i<chars.length; i++) { var regex = new RegExp(chars[i], "g"); string = string.replace(regex, '&' + entities[i] + ';'); } return string; } } /**********************************************************************************************************/ /* Fonctions générales MediaWiki (pallient les limitations du logiciel) */ /* Surveiller : http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/skins/common/wikibits.js?view=log */ /**********************************************************************************************************/ /* * Fonction générales de lancement de fonctions ou de script * DÉPRÉCIÉ : utiliser addOnloadHook simplement */ function addLoadEvent(func) { addOnloadHook(func); } /** * Insérer un JavaScript d'une page particulière, idée de Mickachu * DÉPRÉCIÉ : utiliser importScript qui fait partie du logiciel */ function loadJs(page) { importScript(page); } /** * Projet JavaScript */ function obtenir(name) { importScript('MediaWiki:Gadget-' + name + '.js'); } /** * Transformer les pages du Bistro, du BA et les pages spécifiées en page de discussion */ function TransformeEnDiscussion() { if( (wgPageName.search('Wikipédia:Le_Bistro') != -1) || (wgPageName.search('Wikipédia:Bulletin_des_administrateurs') != -1) || document.getElementById('transformeEnPageDeDiscussion')) { removeClass(document.body, 'ns-subject'); addClass(document.body, 'ns-talk'); } } addOnloadHook(TransformeEnDiscussion); /** * Transformer certaines pages en pseudo-article * c'est raisonnable ? --Tavernier */ function TransformeEnArticle() { var transformeEnA = document.getElementById("transformeEnArticle"); if(transformeEnA) document.body.className = "ns-0"; } addOnloadHook(TransformeEnArticle); /** * Ajouter un bouton à la fin de la barre d'outils */ function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) { mwCustomEditButtons[mwCustomEditButtons.length] = {"imageId": imageId, "imageFile": imageFile, "speedTip": speedTip, "tagOpen": tagOpen, "tagClose": tagClose, "sampleText": sampleText}; } /* Any JavaScript here will be loaded for all users on every page load. */ /** * Boîtes déroulantes * * Pour [[Modèle:Méta palette de navigation]] */ var Palette_Enrouler = '[masquer]'; var Palette_Derouler = '[afficher]'; var Palette_max = 1; var Palette_index = -1; function Palette_toggle(indexPalette){ var Button = document.getElementById( "collapseButton" + indexPalette); var Table = document.getElementById( "collapsibleTable" + indexPalette); if (!Table || !Button) return false; var Rows = Table.rows; var RowDisplay = "none"; if (Button.firstChild.data == Palette_Derouler) { Button.firstChild.data = Palette_Enrouler; RowDisplay = Rows[0].style.display; } else { Button.firstChild.data = Palette_Derouler; } for (var i = 1; i < Rows.length; i++) { Rows[i].style.display = RowDisplay } } function Palette(Element){ if(!Element) Element = document; var TableIndex = 0; var TableIndexes = new Array(); var Tables = Element.getElementsByTagName( "table" ); for ( var i = 0; i < Tables.length; i++ ) { if ( hasClass( Tables[i], "collapsible" ) ) { var Table = Tables[i]; var Header = Table.getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0]; /* only add button and increment count if there is a header row to work with */ if (Header) { TableIndex++ Palette_index++; TableIndexes[Palette_index] = Table; Table.setAttribute( "id", "collapsibleTable" + Palette_index ); var Button = document.createElement( "span" ); var ButtonLink = document.createElement( "a" ); var ButtonText = document.createTextNode( Palette_Enrouler ); Button.className = "navboxToggle"; ButtonLink.setAttribute( "id", "collapseButton" + Palette_index ); ButtonLink.setAttribute( "href", "javascript:;" ); addHandler( ButtonLink, "click", new Function( "evt", "Palette_toggle(" + Palette_index + " ); return killEvt( evt );") ); ButtonLink.appendChild( ButtonText ); Button.appendChild( document.createTextNode("\u00a0")); //ajout d'un espace insécable pour décoller ce bouton du texte de la celulle Button.appendChild( ButtonLink ); Header.insertBefore( Button, Header.childNodes[0] ); } } } for(var index in TableIndexes){ var Table = TableIndexes[index]; if(hasClass(Table,"collapsed")||(TableIndex>Palette_max && hasClass(Table,"autocollapse"))) Palette_toggle(index); } } addOnloadHook(Palette); /** * Pour [[Modèle:Boîte déroulante]] */ var BoiteDeroulante_Enrouler = '[masquer]'; var BoiteDeroulante_Derouler = '[afficher]'; var BoiteDeroulante_max = 0; var BoiteDeroulante_index = -1; function BoiteDeroulante_toggle(indexBoiteDeroulante){ var NavFrame = document.getElementById("NavFrame" + indexBoiteDeroulante); var NavToggle = document.getElementById("NavToggle" + indexBoiteDeroulante); var CaptionContainer = document.getElementById("NavCaption" + indexBoiteDeroulante); if (!NavFrame || !NavToggle || !CaptionContainer) return; var caption = new Array(); var CaptionSpans = CaptionContainer.getElementsByTagName('span'); caption[0] = CaptionSpans[0].innerHTML; caption[1] = CaptionSpans[1].innerHTML; var Contents = NavFrame.getElementsByTagName('div'); if (NavToggle.innerHTML == caption[1]) { NavToggle.innerHTML = caption[0]; for(var a=0,m=Contents.length;a<m;a++){ if(hasClass(Contents[a], "NavContent")){ Contents[a].style.display = 'none'; return; } } }else{ NavToggle.innerHTML = caption[1]; for(var a=0,m=Contents.length;a<m;a++){ if(hasClass(Contents[a], "NavContent")){ Contents[a].style.display = 'block'; return; } } } } function BoiteDeroulante(Element){ if(!Element) Element = document; var NavFrameCount = -1; var NavFrames = Element.getElementsByTagName("div"); for(var i=0,l=NavFrames.length;i<l;i++){ if(hasClass(NavFrames[i], "NavFrame")){ var NavFrame = NavFrames[i]; NavFrameCount++; BoiteDeroulante_index++; if (NavFrame.title && NavFrame.title.indexOf("/")!=-1) { var Enrouler = NavFrame.title.HTMLize().split("/")[1]; var Derouler = NavFrame.title.HTMLize().split("/")[0]; }else{ var Enrouler = BoiteDeroulante_Enrouler; var Derouler = BoiteDeroulante_Derouler; } NavFrame.title=''; var CaptionContainer = document.createElement('span'); CaptionContainer.id = 'NavCaption' + BoiteDeroulante_index; CaptionContainer.style.display = "none"; CaptionContainer.innerHTML = '<span>' + Derouler + '</span><span>' + Enrouler + '</span>'; NavFrame.appendChild(CaptionContainer); var NavToggle = document.createElement("a"); NavToggle.className = 'NavToggle'; NavToggle.id = 'NavToggle' + BoiteDeroulante_index; NavToggle.href = 'javascript:BoiteDeroulante_toggle(' + BoiteDeroulante_index + ');'; var NavToggleText = document.createTextNode(Enrouler); NavToggle.appendChild(NavToggleText); NavFrame.insertBefore( NavToggle, NavFrame.firstChild ); NavFrame.id = 'NavFrame' + BoiteDeroulante_index; if (BoiteDeroulante_max <= NavFrameCount) { BoiteDeroulante_toggle(BoiteDeroulante_index); } } } } addOnloadHook(BoiteDeroulante);