Différences entre les pages « MediaWiki:Common.css » et « MediaWiki:Common.js »

De Les Mots de l'agronomie
(Différence entre les pages)
imported>Jacques Ducloy
m (1 version)
 
imported>Jacques Ducloy
 
Ligne 1 : Ligne 1 :
/* FEUILLE DE STYLE GLOBALE */
+
/**
/*
+
* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.
Cette page contrôle l'apparence pour toutes les skins.
+
*
Les modifications devant s'appliquer à l'apparence Monobook seulement
+
* ATTENTION : Avant de modifier cette page, veuillez tester vos changements avec votre propre
doivent aller dans [[MediaWiki:Monobook.css]].
+
* monobook.js. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des
 
+
* visiteurs), même plusieurs heures après la modification !
Après chaque modification, prière de vérifier cette feuille de style
+
*
avec le valideur CSS du W3C :
+
* Prière de ranger les nouvelles fonctions dans les sections adaptées :
http://jigsaw.w3.org/css-validator/validator?uri=http://fr.wikipedia.org/w/index.php?title=MediaWiki:Common.css%26action=raw%26ctype=text/css&usermedium=all&warning=2
+
* - Fonctions JavaScript
*/
+
* - Fonctions spécifiques pour MediaWiki
 +
* - Applications spécifiques à la fenêtre d'édition
 +
* - Applications qui peuvent être utilisées sur toute page
 +
* - Applications spécifiques à un espace de nom ou une page
 +
*
 +
* <nowiki> /!\ Ne pas retirer cette balise
 +
*/
  
/** CHANGEMENT DE L'INTERFACE PAR DÉFAUT **/
 
  
/* MODIFICATIONS RÉCENTES */
 
  
/* Nombre de caractères modifiés dans les modifications récentes et la liste de suivi. */
+
/*************************************************************/
.mw-plusminus-pos { color:#00B000 }
+
/* Fonctions JavaScript : pallient les limites de JavaScript */
.mw-plusminus-neg { color:#FF2050 }
+
/* Surveiller : http://www.ecmascript.org/                  */
.mw-plusminus-null { color:#999 }
+
/*************************************************************/
  
/* Symbole de modification non vérifiée dans les modifications récentes
+
/**
  et la liste de suivi. */
+
* insertAfter : insérer un élément dans une page
span.unpatrolled { color:#999 }
+
*/
 
+
function insertAfter(parent, node, referenceNode) {
/* REDIRECTIONS */
+
  parent.insertBefore(node, referenceNode.nextSibling);  
 
 
/* Redirections sur [[Special:Allpages]] et [[Special:Watchlist/edit]]. */
 
.allpagesredirect a, .watchlistredir a {
 
color:#0B0;
 
font-style:italic;
 
 
}
 
}
  
/* HISTORIQUE ET PAGES LIÉES */
+
/**
 
+
* getElementsByClass : rechercher les éléments de la page dont le paramètre "class" est celui recherché
/* Révisions dans l'historique et "(← liens)" dans les pages liées. */
+
*/
.history-size, .mw-whatlinkshere-tools { font-size:80% }
+
function getElementsByClass(searchClass, node, tag) {
 
+
  if (node == null) node = document;
/* DIFFS */
+
  if (tag == null) tag = '*';
 
+
  return getElementsByClassName(node, tag, searchClass);
/* Mise en évidence des diffs par du gras et de la couleur. */
 
table.diff {
 
padding:.5em;
 
}
 
table.diff td {
 
vertical-align:top;
 
}
 
td.diff-addedline {
 
background:#D8E4F6;
 
}
 
td.diff-addedline .diffchange {
 
background:#B0C0F0;
 
color:#001040;
 
font-weight:bold;
 
}
 
td.diff-deletedline {
 
background:#E4F6D8;
 
}
 
td.diff-deletedline .diffchange {
 
background:#B0E897;
 
color:#104000;
 
font-weight:bold;
 
}
 
td.diff-context {
 
background:#FEFEFE;
 
 
}
 
}
  
/* Couleur de fond transparente pour les diffs */
+
/**
table.diff, td.diff-otitle, td.diff-ntitle, td.diff-context {
+
* Diverses fonctions manipulant les classes
     background-color: transparent;
+
* 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);
 
}
 
}
  
/* TITRES */
+
function whichClass(element, classes) {
 
+
    var s=" "+element.className+" ";
/* affichage des coordonnées géo à côté du titre, pour tous les skins */
+
    for(var i=0;i<classes.length;i++)
#coordinates-title {
+
        if (s.indexOf(" "+classes[i]+" ")>=0) return i;
font-size: 90%;
+
    return -1;
margin-right: 1em;
 
margin-top: 1em;
 
float: right;
 
 
}
 
}
#coordinates-title img {
+
vertical-align: middle;
+
function hasClass(node, className) {
 +
  if (node.className == className) {
 +
    return true;
 +
  }
 +
  var reg = new RegExp('(^| )'+ className +'($| )')
 +
  if (reg.test(node.className)) {
 +
    return true;
 +
  }
 +
  return false;
 
}
 
}
 
+
/* Interligne suffisant si le titre prend plusieurs lignes. */
+
function addClass(node, className) {
.firstHeading { line-height:1.2em } /* monobookocentré */
+
    if (hasClass(node, className)) {
 
+
        return false;
/* Décoration des titres de sous-chapitre. */
+
    }
h1, h2 {padding-top:0.65em;} /* monobookocentré */
+
    node.className += ' '+ className;
h3 {padding-top:0.6em; border-bottom:dotted 1px #AAA } /* monobookocentré */
+
    return true;
h4, h5, h6 {padding-top:0.55em; border-bottom:dotted 1px #DDD } /* monobookocentré */
 
 
 
/* */
 
 
 
/* BALISES SOURCE, PRE, CODE */
 
 
 
code { background:transparent } /* monobookocentré */
 
 
 
/* PLACEMENT DU LIEN PATROLLINK */
 
 
 
/* Pour les admins, être sur que le lien de validation soit immédiatement
 
  visible même en cas d'élément flottant à droite. */
 
.patrollink { clear:both }
 
 
 
/* CATÉGORIES CACHÉES */
 
/* Si toutes les catégories d'un article sont cachées, les afficher quand même (comme ça le script peut afficher le "+") */
 
.catlinks-allhidden { display: block; }
 
 
 
/* SITENOTICE */
 
 
 
/* Apparence du message en haut, [[MediaWiki:Sitenotice]]. */
 
#siteNotice table {
 
background:transparent;
 
font-size:90%;
 
} /* monobookocentré */
 
 
 
/* OPTIONS RC */
 
.rcoptions, #mw-history-search {
 
clear: both;
 
margin: 0 0 2px 0;
 
padding:.5em;
 
border:1px solid #DDDDF7;
 
border-left:10px solid #DDDDF7;
 
background-color: #FFFFFF;
 
} /* monobookocentré */
 
 
 
/* Apparence de [[MediaWiki:Noarticletext]] */
 
div.noarticletext {
 
  background: #F9F9F9;
 
  margin-top:1em;
 
  width:auto;
 
  padding: 5px;
 
  border: 1px solid #aaa;
 
  border-right: 2px solid #aaa;
 
  border-bottom: 2px solid #aaa;
 
 
}
 
}
 
+
/* DAMIER SUR LES IMAGES */
+
function removeClass(node, className) {
 
+
  if (!hasClass(node, className)) {
/* Place un damier de vérification en arrière-plan dans la page de description
+
    return false;
  de l'image, visible seulement en cas d'image transparente ou semi-transparente. */
+
  }
#file img { background:url("http://upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png") }
+
  node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
 
+
  return true;
/* VERSION IMPRIMABLE */
 
 
 
/* Ne pas afficher le lien complet des URL externes sur la version imprimable
 
  (à faire manuellement, grâce à class="plainlinksneverexpand"). */
 
.plainlinksneverexpand a.external.text:after {
 
display:none !important;
 
}
 
.plainlinksneverexpand a.external.autonumber:after {
 
display:none !important;
 
 
}
 
}
  
/* Supprimer la flèche de lien externe pour ces liens. */
+
function eregReplace(search, replace, subject) {
.plainlinksneverexpand a {
+
    return subject.replace(new RegExp(search,'g'), replace);
background:none !important;
 
padding:0 !important;
 
 
}
 
}
  
/* La class hiddenStructure est utilisée à de nombreux endroits
 
  mais pour une raison inconnue n'est définie que pour le media=screen
 
  via le /skins-1.5/monobook/main.css?179. */
 
/* Ici il est étendu à tous les media, notamment le media=print */
 
.hiddenStructure {
 
  display: none;
 
}
 
/* Classe temporaire destinée à montrer les défauts des modèles basés sur .hiddenStructure */
 
.nohiddenStructure .hiddenStructure {
 
  display: table-row;
 
}
 
  
/* TALKPAGEHEADER : message-système des sous-pages de discussion */
+
/**
 
+
* Récupère la valeur du cookie
#talkpageheader {
+
*/
text-align: center;
+
function getCookieVal(name) {
border: 1px solid #aaa;
+
  var cookiePos = document.cookie.indexOf(name + "=");
margin: 1em 0;
+
  var cookieValue = false;
padding: 0 0 0.4em 0;
+
  if (cookiePos > -1) {
color: #707070;
+
    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;
 
}
 
}
#talkpageheader #talkpageheadertitle {
 
margin-top: -0.8em;
 
}
 
#talkpageheader #talkpageheadertitletext {
 
padding: 0 8px;
 
background: #ffffee;
 
}
 
#talkpageheader ul {
 
list-style-type: none;
 
margin: 0;
 
}
 
#talkpageheader li {
 
display: inline;
 
}
 
 
/** MODÈLES ET PERSONNALISATION **/
 
  
/* HOMONYMIE */
+
// 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
/* Classe servant à personnaliser l'apparence des liens vers les pages d'homonymie. */
+
function getTextContent(oNode) {
.homonymie {
+
  if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;}
padding-left:2em;
+
  switch (oNode.nodeType) {
padding-bottom:.5em;
+
    case 3: // TEXT_NODE
margin-bottom:.5em;
+
    case 4: // CDATA_SECTION_NODE
font-style:italic;
+
      return oNode.nodeValue;
border-bottom:1px #AAA solid;
+
      break;
} /* monobookocentré */
+
    case 7: // PROCESSING_INSTRUCTION_NODE
 
+
    case 8: // COMMENT_NODE
 
+
      if (getTextContent.caller!=getTextContent) {
/* ARTICLE DÉTAILLÉ */
+
        return oNode.nodeValue;
 
+
      }
/* Classes pour les modèles basés sur [[modèle:Article détaillé]] ainsi que [[Modèle:Article principal]],
+
      break;
  [[Modèle:Commonscat simple]], [[Modèle:Galerie détaillée]] et [[Modèle:...]] ;
+
    case 9: // DOCUMENT_NODE
  style décidé dans [[Wikipédia:Prise de décision/Unification des modèles : article détaillé et Loupe]]. */
+
    case 10: // DOCUMENT_TYPE_NODE
.detail, .details {
+
    case 12: // NOTATION_NODE
margin:0 0 .7em 2em;
+
      return null;
border:solid #E7E7E7;
+
      break;
border-width:1px 0;
+
  }
text-align:left;
+
  var _textContent = "";
font-size:95%;
+
  oNode = oNode.firstChild;
background:#FDFDFD url(http://upload.wikimedia.org/wikipedia/commons/thumb/6/61/Searchtool.svg/15px-Searchtool.svg.png) no-repeat left center;
+
  while (oNode) {
padding:1px 4px 1px 24px;
+
    _textContent += getTextContent(oNode);
}
+
    oNode = oNode.nextSibling;
.detail.commons {
+
  }
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/15px-Commons-logo.svg.png);
+
  return _textContent;
background-repeat:no-repeat;
 
}
 
.detail.principal {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Nuvola_apps_download_manager2-70%25.svg/15px-Nuvola_apps_download_manager2-70%25.svg.png);
 
background-repeat:no-repeat;
 
}
 
.detail.section {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Fairytale_waring.png/15px-Fairytale_waring.png);
 
background-repeat:no-repeat;
 
 
}
 
}
  
/* ICÔNES */
+
/**********************************************************************************************************/
 +
/* 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  */
 +
/**********************************************************************************************************/
  
/* Icônes en tête de pages pour les AdQ, les BA, etc. */
+
/*
.portlet li, li.IW {
+
* Fonction générales de lancement de fonctions ou de script
list-style-image:url("http://upload.wikimedia.org/wikipedia/en/1/18/Monobook-bullet.png")
+
* DÉPRÉCIÉ : utiliser addOnloadHook simplement
 +
*/
 +
function addLoadEvent(func) {
 +
  addOnloadHook(func);
 
}
 
}
li.AdQ { list-style-image:url("http://upload.wikimedia.org/wikipedia/commons/4/4c/Icone_AdQ.png") }
 
li.BA { list-style-image:url("http://upload.wikimedia.org/wikipedia/fr/8/86/Icone_BA.png") }
 
  
/* Pour permettre l'affichage des images générées par l'extension ImageMap en inline.
+
/**
  Il n'existe pour l'instant pas de paramètre dans l'extension pour le faire. Copié depuis WP:de */
+
* Insérer un JavaScript d'une page particulière, idée de Mickachu
.imagemap-inline div {
+
* DÉPRÉCIÉ : utiliser importScript qui fait partie du logiciel
display: inline;
+
*/
 +
function loadJs(page) {
 +
  importScript(page);
 
}
 
}
  
/* Classe pour afficher un icône de haut-parleur à gauche des liens audio. Utilisé par [[Modèle:Audio]], importé de WP:en */
+
/**
.audio a {
+
* Projet JavaScript
    background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Loudspeaker.svg/11px-Loudspeaker.svg.png") center left no-repeat !important;
+
*/
    padding-left: 16px !important;
+
function obtenir(name) {
    padding-right: 0 !important;
+
  importScript('MediaWiki:Gadget-' + name + '.js');
 
}
 
}
  
/* ÉCRITURES NON LATINES */
+
/**
 
+
* Transformer les pages du Bistro, du BA et les pages spécifiées en page de discussion
/* Taille et famille des polices pour les écritures non-latines ; voir aussi [[modèle:Lang]]. */
+
*/
 
+
function TransformeEnDiscussion() {
/* Écriture grecque, pour les langues : grec moderne (monotonique), grec ancien (polytonique) */
+
  if(  (wgPageName.search('Wikipédia:Le_Bistro') != -1)
:lang(grc), :lang(el) {
+
    || (wgPageName.search('Wikipédia:Bulletin_des_administrateurs') != -1)
font-family:"Arial Unicode MS", "DejaVu Sans", Athena, Gentium, "Palatino Linotype", "Lucida Sans Unicode", "Lucida Grande", Code2000, sans-serif;
+
    || document.getElementById('transformeEnPageDeDiscussion'))
 +
    document.body.className = 'ns-talk';
 
}
 
}
 +
addOnloadHook(TransformeEnDiscussion);
  
/* écriture thaïe, pour la langue : thaï */
+
/**
:lang(th) {
+
* Transformer certaines pages en pseudo-article
font-family:"Segoe UI", Tahoma, sans-serif;  
+
* c'est raisonnable ? --Tavernier
 +
*/
 +
function TransformeEnArticle() {
 +
  var transformeEnA = document.getElementById("transformeEnArticle");
 +
  if(transformeEnA) document.body.className = "ns-0";
 
}
 
}
 +
addOnloadHook(TransformeEnArticle);
  
/* CHIFFRES ROMAINS */
+
/**
 
+
* Ajouter un bouton à la fin de la barre d'outils
/* Affichage des chiffres romains, voir [[modèle:Rom]] ou [[modèle:Romain]]. */
+
*/
.romain {
+
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {
text-transform:lowercase;
+
  mwCustomEditButtons[mwCustomEditButtons.length] =
font-variant:small-caps;
+
    {"imageId": imageId,
 +
    "imageFile": imageFile,
 +
    "speedTip": speedTip,
 +
    "tagOpen": tagOpen,
 +
    "tagClose": tagClose,
 +
    "sampleText": sampleText};
 
}
 
}
  
/* TAILLE DES FORMULES DE MATHS */
 
  
.texhtml {
 
  font-size:120%;
 
}
 
  
/* RETRAIT DES LIENS MODIFIER */
+
/****************************************/
 +
/* Applications pour l'ensemble du site */
 +
/****************************************/
  
/* Pour supprimer le lien "modifier" à côté d'une section donnée, utiliser
+
/**
  <div class="noeditsection"></div> (voir notamment [[Portail:Biologie/Les articles]]). */
+
* Tout ce qui concerne la page d'édition
.noeditsection span.editsection { display:none }
+
* Voir MediaWiki:Common.js/edit.js pour ces fonctions
 
+
*/
/* COULEUR DES LIENS */
+
if( wgAction == 'edit' || wgAction == 'submit' ) {
 
+
  importScript( 'MediaWiki:Common.js/edit.js' );
/* Pour changer la couleur d'un lien, par exemple sur un fond coloré sombre ou clair, utiliser :
 
  - <div class="lienNoir"></div>
 
  - <div class="lienBlanc"></div>
 
  - <div class="lienClair"></div>
 
  Voir notamment [[Portail:Biologie/Les articles]] */
 
 
 
/* Lien noir */
 
.lienNoir a {
 
color:#000;
 
} /* et la charte graphique ? */
 
.lienNoir a:visited {
 
color:#707070;
 
 
}
 
}
  
/* Lien clair */
+
/**
.lienClair a {
+
  * Liens d'accès directs pour la navigation au clavier
  color:#A0A0A0;
+
*/
} /* et la charte graphique ? */
+
function showSkipLinks() {
.lienClair a:hover {
+
  var jump_to_nav = document.getElementById('jump-to-nav');
color:#A0A0A0;
+
  if( !jump_to_nav ) return;
text-decoration:underline;
+
  var skip_links = jump_to_nav.getElementsByTagName('A')[0];
}
+
  jump_to_nav.className='hidden';
.lienClair a:visited {
+
  skip_links.onfocus=function() {
color:#B9B9B9;
+
    jump_to_nav.className='';
 +
  }
 
}
 
}
 +
addOnloadHook(showSkipLinks);
  
/* Lien vers une ébauche */
+
/**
a.stub {
+
* Réécriture des titres
color:#339900;
+
*
}
+
* Fonction utilisée par [[Modèle:Titre incorrect]]
a.stub:visited {
+
*
color:#336600;
+
* La fonction cherche un bandeau de la forme
}
+
* <div id="RealTitleBanner">
 +
*  <span id="RealTitle">titre</span>
 +
* </div>
 +
*
 +
* Un élément comportant id="DisableRealTitle" désactive la fonction
 +
*/
 +
function rewritePageH1() {
 +
  var realTitleBanner = document.getElementById('RealTitleBanner');
 +
  if (realTitleBanner) {
 +
    if (!document.getElementById('DisableRealTitle')) {
 +
      var realTitle = document.getElementById('RealTitle');
 +
      var h1 = document.getElementsByTagName('h1')[0];
 +
      var realH1 = getTextContent(h1);   
 +
      if (realTitle && h1) {
 +
        var titleText = realTitle.innerHTML;
 +
        if (titleText == '') h1.style.display = 'none';
 +
        else h1.innerHTML = titleText;
 +
        realTitleBanner.style.display = 'none';
 +
        if(wgNamespaceNumber==0) {
 +
          var avert = document.createElement('p')
 +
          avert.style.fontSize = '90%';
 +
          avert.innerHTML = 'Titre à utiliser pour créer un lien interne: <b>'+realH1+'</b>';
 +
          insertAfter(document.getElementById('content'),avert,h1);
 +
        }
  
/** NOTES, RÉFÉRENCES, BIBLIOGRAPHIE **/
+
      }
 
+
    }
/* CROCHETS */
+
  }
 
 
/* Par défaut, cacher les crochets autour des notes. */
 
.cite_crochet { display:none }
 
 
 
/* Interligne */
 
 
 
/* Éviter d'obtenir un interlignage de taille variable. */
 
.reference, .exposant {
 
vertical-align:text-top;
 
position:relative;
 
font-size:.8em;
 
top:-5px;
 
}
 
.reference {
 
padding-left:1px;
 
 
}
 
}
 +
addOnloadHook(rewritePageH1);
  
ol.references > li{
+
/**
text-align:left;
+
* Icônes de titre
 +
*
 +
* Cherche les icônes de titre (class="icone_de_titre") et les
 +
* déplace à droite du titre de la page.
 +
* Doit être exécuté après une éventuelle correction de titre.
 +
*/
 +
function IconesDeTitre() {
 +
  var h1 = document.getElementsByTagName("h1")[0];
 +
  var icones = getElementsByClass( "icone_de_titre", document, "div" );
 +
  for( var j = icones.length; j > 0; --j ){
 +
    icones[j-1].style.display = "block"; /* annule display:none par défaut */
 +
    icones[j-1].style.borderWidth = "1px";
 +
    icones[j-1].style.borderStyle = "solid";
 +
    icones[j-1].style.borderColor = "white";
 +
    if( skin == "modern" ){
 +
      icones[j-1].style.marginTop = "0em";
 +
    }
 +
    h1.parentNode.insertBefore(icones[j-1], h1); /* déplacement de l'élément */
 +
  }
 
}
 
}
 +
addOnloadHook(IconesDeTitre);
  
/* https://bugs.webkit.org/show_bug.cgi?id=14691 */
+
/**
@media screen and (-webkit-min-device-pixel-ratio:0) {
+
* Déplacement de coordonnées qui apparaissent en haut de la page
   ol.references sup.exposant { position: static; vertical-align: super; }
+
*/
 +
function moveCoord() {
 +
   var h1 = document.getElementsByTagName("h1")[0];
 +
  var coord = document.getElementById('coordinates');
 +
  if ( !coord || !h1 ) return;
 +
  coord.id = "coordinates-title";
 +
  h1.parentNode.insertBefore(coord, h1); /* déplacement de l'élément */
 
}
 
}
 +
addOnloadHook(moveCoord);
  
/* MISE EN ÉVIDENCE */
+
/**
 
+
* Déplacement des [modifier]
/* Mise en surbrillance de la note ou de l'ouvrage de référence cliqué
+
*
  pour faciliter la navigation (de en.wikipedia). */
+
* Correction des titres qui s'affichent mal en raison de limitations dues à MediaWiki.
 
+
* Ce script devrait pouvoir être supprimé lorsque le [[bugzilla:11555]] sera résolu (comportement équivalent)
/* Contenu de la note */
+
*
ol.references > li:target, .ouvrage:target { background:#DEF }
+
* Copyright 2006, Marc Mongenet. Licence GPL et GFDL.
 
+
*
/* Renvoi */
+
* The function looks for <span class="editsection">, and move them
sup.reference:target { background:#DEF }
+
* at the end of their parent and display them inline in small font.
/*
+
* var oldEditsectionLinks=true disables the function.
 
+
*/
/* RÉFÉRENCE NÉCESSAIRE */
+
function setModifySectionStyle()
 
+
{
/* Style des modèles [[modèle:Référence nécessaire]] et [[modèle:Citation nécessaire]]. */
+
span.need_ref { border-bottom:1px solid #AAA }
+
        var process = function(list)
 
+
        {
div.need_ref {
+
                for(var i=0;i!=list.length;i++)
border:1px solid #AAA;
+
                {
padding:.5em;
+
                        var span=list[i].firstChild
 +
 +
                        if (span.className == "editsection")
 +
                        {
 +
                                span.style.fontSize = "xx-small";
 +
                                span.style.fontWeight = "normal";
 +
                                span.style.cssFloat = span.style.styleFloat = "none";
 +
                                span.parentNode.appendChild(document.createTextNode(" "));
 +
                                span.parentNode.appendChild(span);
 +
                        }
 +
                }
 +
        }
 +
 +
        try
 +
        {
 +
                if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
 +
                process(document.getElementsByTagName("h2"));
 +
                process(document.getElementsByTagName("h3"));
 +
                process(document.getElementsByTagName("h4"));
 +
                process(document.getElementsByTagName("h5"));
 +
                process(document.getElementsByTagName("h6"));
 +
 +
        }
 +
        catch (e) { }
 
}
 
}
 +
addOnloadHook(setModifySectionStyle);
  
/* Référence présente */
+
/**  
span.ref:hover { border-bottom:1px solid #AAA }
+
* Boîtes déroulantes
 
+
*
/* NORMES BIBLIOGRAPHIQUES */
+
* Pour [[Modèle:Méta palette de navigation]]
 
+
*/
/* Mode d'affichage par défaut des données dans l'espace référence. */
+
var autoCollapse = 2;
.BibList { display:block }
+
var collapseCaption = '[Enrouler]';
.WikiNorme, .BibTeX, .ISBD, .ISO690, .specialBib { display:none }
+
var expandCaption = '[Dérouler]';
 
 
/** BOÎTES ET MESSAGES **/
 
 
 
/* BANDEAUX D'AVERTISSEMENT */
 
/* style par défaut des bandeaux d'avertissement décidés sur
 
  Wikipédia:Prise de décision/Changement de style des messages d'avertissement
 
  Utilisé dans Modèle:Méta bandeau d'avertissement
 
*/
 
.bandeau { /* monobookocentré */
 
  text-align: left;
 
  margin: 8px 10% 12px;
 
  border-style: solid;
 
  border-width: 1px 1px 1px 10px;
 
  padding: 2px 10px;
 
}
 
.bandeau table { background-color: transparent }
 
 
 
.bandeau-niveau-grave      { border-color: #aa0044; background-color: #ffcccc }
 
.bandeau-niveau-modere      { border-color: #ff8822; background-color: #ffeedd }
 
.bandeau-niveau-ebauche    { border-color: #ff8822; background-color: #ffeedd }
 
.bandeau-niveau-information { border-color: #77ccff; background-color: #fbfbfb }
 
 
 
.bandeau-icone { vertical-align: middle; text-align: center; min-width: 45px; padding-right: 10px }
 
 
 
.bandeau-titre { font-size: 1em;  line-height: 1.4em; margin-bottom: 0.5em }
 
.bandeau-texte { font-size: 0.9em; line-height: 1.2em }
 
 
 
 
 
/* MESSAGES D'ALERTE */
 
 
 
/* Styles par défaut pour les bandeaux en haut des articles. Syntaxe :
 
  Styles décidés suite à [[Projet:Charte graphique/Harmonisation des messages d'avertissement]]
 
  et [[Wikipédia:Prise de décision/Harmonisation des messages d'avertissement]]. */
 
/* Classe pour toutes les alertes. */
 
.alerte { /* monobookocentré */
 
padding:.11em;
 
background:#FFD;
 
margin-bottom:.4em;
 
font-style:italic;
 
}
 
 
 
/* Classe supplémentaire pour les alertes graves. */
 
.grave { border:1px solid #F96 } /* monobookocentré */
 
 
 
/* MESSAGEBOX */
 
  
/* Styles des « messagebox » standard. Utilisation :
+
function collapseTable( tableIndex ) {
* class="messagebox" : voir [[modèle:Messagebox]].
+
  var Button = document.getElementById( "collapseButton" + tableIndex );
* class="messagebox merge" : inutilisé ?
+
  var Table = document.getElementById( "collapsibleTable" + tableIndex );
* class="messagebox cleanup" pour certains bandeaux de maintenance (exemple sur [[modèle:Résumé introductif]])
+
  if ( !Table || !Button ) return false;
* class="messagebox standard-talk" pour les bandeaux en page de discussion des aricles (exemple : [[modèle:Traduit de]])
 
*/
 
.messagebox { /* monobookocentré */
 
border:1px solid #AAA;
 
background:#F9F9F9;
 
width:80%;
 
margin:0 auto 1em auto;
 
padding:.2em;
 
text-align:justify;
 
}
 
  
.messagebox.merge { /* monobookocentré */
+
  var Rows = Table.getElementsByTagName( "tr" );  
border:1px solid #CF9FFF;
 
background:#F5EDF5;
 
text-align:center;
 
}
 
  
.messagebox.cleanup { /* monobookocentré */
+
  if ( Button.firstChild.data == collapseCaption ) {
border:1px solid #9F9FFF;
+
    for ( var i = 1; i < Rows.length; i++ ) {
background:#EFEFFF;
+
      Rows[i].style.display = "none";
text-align:center;
+
    }
 +
    Button.firstChild.data = expandCaption;
 +
  } else {
 +
    for ( var i = 1; i < Rows.length; i++ ) {
 +
      Rows[i].style.display = Rows[0].style.display;
 +
    }
 +
    Button.firstChild.data = collapseCaption;
 +
  }
 
}
 
}
  
.messagebox.standard-talk { /* monobookocentré */
+
function createCollapseButtons() {
border:1px solid #C0C090;
+
  var tableIndex = 0;
background:#F8EABA;
+
  var NavigationBoxes = new Object();
}
+
  var Tables = document.getElementsByTagName( "table" );
  
/* BANDEAUX DE PORTAIL */
+
   for ( var i = 0; i < Tables.length; i++ ) {
/* style par défaut des bandeaux de portail décidés sur
+
    if ( hasClass( Tables[i], "collapsible" ) ) {
  Wikipédia:Prise de décision/Bandeaux de portails
+
      NavigationBoxes[ tableIndex ] = Tables[i];
  Utilisé dans Modèle:Méta lien vers portails et Modèle:Portail
+
      Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
*/
 
#bandeau-portail {
 
   border: solid #AAAAAA 1px;
 
  padding: 4px;
 
  background-color: #F9F9F9;
 
  text-align: center;
 
  margin-top: 1em;
 
  margin-left: 0;
 
  clear: both;
 
}
 
  
#bandeau-portail li {display: inline}
+
      var Button    = document.createElement( "span" );
.bandeau-portail-element {white-space: nowrap; margin: auto 1.5em}
+
      var ButtonLink = document.createElement( "a" );
.bandeau-portail-icone {margin-right: 0.5em}
+
      var ButtonText = document.createTextNode( collapseCaption );
.bandeau-portail-texte {font-weight: bold}
 
  
/* BOÎTES POUR EXEMPLES */
+
      Button.style.styleFloat = "right";
 +
      Button.style.cssFloat = "right";
 +
      Button.style.fontWeight = "normal";
 +
      Button.style.textAlign = "right";
 +
      Button.style.width = "6em";
  
/* Boîtes utiles sur les pages d'aide. Voir par exemple [[Aide:Note#Notes à appel unique]]. */
+
      ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
.exemple {
+
      ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
margin:.5em;
+
      ButtonLink.appendChild( ButtonText );
padding:.5em;
 
border:dashed 1px #ADD8E6;
 
background:#FFF;
 
}
 
  
/* BOÎTES D'AVANCEMENT */
+
      Button.appendChild( ButtonLink );
  
/* Pour les boites d'avancement, voir [[modèle:Avancement]]. */
+
      var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
.avance_boite {
+
      /* only add button and increment count if there is a header row to work with */
position:relative;
+
      if (Header) {
margin:0;
+
        Header.insertBefore( Button, Header.childNodes[0] );
padding:0;
+
        tableIndex++;
width:100px;
+
      }
height:16px;
+
    }
background:#D3D3D3;
+
  }
border:solid 1px gray;
 
}
 
  
.avance_barre {
+
  for (var i = 0; i < tableIndex; i++) {
position:relative;
+
    if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) collapseTable( i );
margin:0;
+
  }
padding:0;
 
height:100%;
 
background:#A0A0FF;
 
border:0;
 
vertical-align:middle;
 
 
}
 
}
 +
addOnloadHook(createCollapseButtons);
  
.avance_texte {
+
/**
position:absolute;
+
  * Pour [[Modèle:Boîte déroulante]]  
top:50%;
 
left:0;
 
width:100px;
 
height:100%;
 
padding:0;
 
border:0;
 
margin:0;
 
margin-top:-0.5em;
 
text-align:center;
 
font-size:14px;
 
line-height:1em;
 
}
 
 
 
/* MESSAGES SYSTÈME */
 
 
 
/* Standardisation de quelques messages systèmes :
 
  * class="mw-alerte" : bandeaux d'alerte comme [[MediaWiki:Editinginterface]].
 
* class="mw-toolbox" : boîtes à outils comme sur [[MediaWiki:Sp-contributions-footer]].
 
 
  */
 
  */
 
+
var NavigationBarShowDefault = 0;
/* Bandeau jaune / rouge en cas de retard de la base de données. */
 
div.mw-lag-warn-normal, div.mw-lag-warn-high {
 
text-align:left !important;
 
width:50% !important;
 
}
 
 
 
/* suppression du message avertissant du lag de 1 seconde dans la liste de suivi*/
 
.mw-lag-warn-normal {
 
display:none;
 
}
 
 
 
/* Messages d'alerte */
 
.mw-alerte {
 
width:100%;
 
clear:both;
 
background:#FAEBD7;
 
border:2px solid #FF8C00;
 
}
 
 
 
/* Boîtes à outils */
 
.mw-toolbox { /* monobookocentré */
 
font-size:90%;
 
background:#F8F8F8;
 
border:1px solid #B8B8B8;
 
padding:.25em 1em .25em 1em;
 
clear:both;
 
}
 
/*  METADATA */
 
 
 
/* Tableau des métadonnées d'image (EXIF). */
 
table.metadata {
 
border:1px solid #AAA;
 
display:none;
 
speak:none;
 
}
 
.metadata-label {
 
color:#AAA;
 
}
 
 
 
/* Template:Creator */
 
 
 
/* Répare le style du tableau [[commons:Template:Creator|Creator]] utilisé sur Commons. */
 
table.creator {
 
text-align:left;
 
border-collapse:collapse;
 
background:#F0F0FF;
 
} /* monobookocentré */
 
 
 
table.creator th {
 
background:#E0E0EE;
 
vertical-align:top;
 
} /* monobookocentré */
 
 
 
table.creator td {
 
background:#F0F0FF;
 
vertical-align:top;
 
} /* monobookocentré */
 
 
 
table.creator td.creator-name {
 
font-weight:bold;
 
} /* monobookocentré */
 
 
 
/* En phase de test */
 
/* Quand est-ce qu'il finit ? */
 
/* DÉBUT DES SCHÉMAS DE COULEUR DE "CADRE À ONGLETS"
 
    Fonctionnement du [[Modèle:Cadre à onglets]]
 
    Modèle implanté par User:Peleguer de http://ca.wikipedia.org
 
    Actualisé par User:Joanjoc de http://ca.wikipedia.org
 
    Traduction et adaptation User:Antaya de http://fr.wikipedia.org
 
    Couleurs pour le [[Modèle:Cadre à onglets]]
 
 
 
Configuration des couleurs par défaut
 
Couleurs utilisées; 1; 8080ff 2; 9f9fff 3; c4c4ff 4; ddddff 5; eaeaff */
 
 
.mbBouton {
 
  background-color: #ddddff;
 
  border: 0.15em solid #000000;
 
  border-color: #eaeaff #c4c4ff #9f9fff #eaeaff;
 
  -moz-border-radius: .5em .5em 0em 0em; /* NE VALIDE PAS AU w3c VALIDATOR */
 
  cursor:pointer;
 
  display: inline;
 
  margin-right: 0.1em;
 
  padding: 0.2em 0.3em 0.2em 0.3em;
 
  position: relative;}
 
 
   
 
   
.mbBouton a,
+
function toggleNavigationBar(indexNavigationBar) {
.mbBouton strong {
+
   var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
   background: none !important;
+
   var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
   color:#8080ff !important;  /* 1 */
 
  font-size: 90%;
 
  font-weight: bold;
 
  padding: 0 !important;
 
  text-decoration: none !important;}
 
 
   
 
   
.mbBouton a:hover,
+
   if (!NavFrame || !NavToggle) return;
.mbBouton strong:hover {
 
   color: black !important;
 
  text-decoration: underline !important;}
 
 
   
 
   
.mbBoutonSel {
+
   // surcharge des libellés dérouler/enrouler grâce a l'attribut title
   background-color: #9f9fff; /* 2 */
+
   // exemple : title="[déroulade]/[enroulade]"
   border: 0.15em solid #000000;
+
   var caption = [expandCaption, collapseCaption];
  border-color: #c4c4ff #8080ff #9f9fff #c4c4ff;  /* 3 1 2 3 */
+
   if (NavFrame.title && NavFrame.title.length > 0) {
  -moz-border-radius: .5em .5em 0em 0em;
+
    caption = NavFrame.title.split("/");
  cursor: default;
+
    if (caption.length < 2) caption.push(collapseCaption);
   display: inline;
+
   }
   margin-right: 0.1em;
 
  padding: 0.2em 0.3em 0.2em 0.3em;
 
  position: relative;
 
   color:white;}
 
 
   
 
   
.mbBoutonSel a {
+
  // if shown now
  background: none !important;
+
  if (NavToggle.firstChild.data == caption[1]) {
  color:white !important;
+
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
  cursor: default;
+
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'none';
  font-size: 90%;
+
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'none';
  font-weight: bold;
+
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[0];
  padding: 0 !important;
+
    }
  text-decoration: none !important;}
 
 
   
 
   
.mbContenu {
+
   // if hidden now
   background-color: #f8f8ff;
+
   } else if (NavToggle.firstChild.data == caption[0]) {
   border: 0.2em solid #9f9fff; /* 2 */
+
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
  border-color: #9f9fff #8080ff #8080ff #9f9fff ; /* 2 1 1 2 */
+
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'block';
  -moz-border-radius: 0em .5em .5em 0em;
+
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'block';
  padding: 1em;
+
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[1];
  position: static;  }
+
    }
+
   }
.mbOnglet {
 
   background-color: #f8f8ff;
 
  border-color: #8080ff #c4c4ff #c4c4ff #8080ff; /* 1 3 3 1 */  width: 100%;
 
 
}
 
}
 
   
 
   
/* Configuration du Lilas 1;7050a0 2;9070c0 3;b090e0 4;d0b0ff 5;f0d0ff */
+
// adds show/hide-button to navigation bars
 +
function createNavigationBarToggleButton() {
 +
  var indexNavigationBar = 0;
 +
  var NavFrame;
 +
  // iterate over all < div >-elements
 +
  for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) {
 +
    // if found a navigation bar
 +
    if (hasClass(NavFrame, "NavFrame")) {
 +
      indexNavigationBar++;
 +
      var NavToggle = document.createElement("a");
 +
      NavToggle.className = 'NavToggle';
 +
      NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
 +
      NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
   
 
   
.mbLilas .mbBouton {
+
      // surcharge des libellés dérouler/enrouler grâce a l'attribut title
background-color: #d0b0ff; /* 4 */
+
      var caption = collapseCaption;
border-color: #f0d0ff #b090e0 #9070c0 #f0d0ff; /* 5 3 2 5 */}
+
      if (NavFrame.title && NavFrame.title.indexOf("/") > 0) {
+
        caption = NavFrame.title.split("/")[1];
.mbLilas .mbBouton a,
+
      }
.mbLilas .mbBouton strong {
+
 
  color:#8080ff !important;  /* 1 */
+
      var NavToggleText = document.createTextNode(caption);
  font-size:90%}
+
      NavToggle.appendChild(NavToggleText);
 
   
 
   
.mbLilas .mbBouton a:hover,
+
      // add NavToggle-Button as first div-element
.mbLilas .mbBouton strong:hover {
+
      // in <div class="NavFrame">
  color: black !important;
+
      NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
  text-decoration: underline;}
+
      NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
+
    }
.mbLilas .mbBoutonSel {
+
   }
  background-color: #9070c0; /* 2 */
+
   // if more Navigation Bars found than Default: hide all
  border-color: #b090e0 #7050a0 #9070c0 #b090e0;  /* 3 1 2 3 */}
+
   if (NavigationBarShowDefault < indexNavigationBar) {
+
    for( var i=1; i<=indexNavigationBar; i++ ) {
.mbLilas .mbContenu {
+
      toggleNavigationBar(i);
  background-color: #f5fffa;
+
    }
  border-color: #9070c0 #7050a0 #7050a0 #9070c0 ; /* 2 1 1 2 */}
+
   }
 
.mbLilas .mbOnglet {
 
  background-color: #f5fffa;
 
  border-color: #7050a0 #b090e0 #b090e0 #7050a0; /* 1 3 3 1 */}
 
 
 
/* Configuration du Vert 1;60b030 2;75c045 3;90d060 4;a5e085 5;c0f090 */
 
 
.mbVert .mbBouton {
 
background-color: #a5e085; /* 4 */
 
border-color: #c0f090 #90d060 #75c045 #c0f090;  /* 5 3 2 5 */}
 
 
.mbVert .mbBouton a,
 
.mbVert .mbBouton strong {
 
  color:#60b030 !important; /* 1 */
 
  font-size:90%}
 
 
.mbVert .mbBouton a:hover,
 
.mbVert .mbBouton strong:hover {
 
  color: black !important;
 
  text-decoration: underline;}
 
 
.mbVert .mbBoutonSel {
 
  background-color: #75c045; /* 2 */
 
   border-color: #90d060 #60b030 #75c045 #90d060;  /* 3 1 2 3 */}
 
 
.mbVert .mbContenu {
 
  background-color: #f5fffa;
 
   border-color: #75c045 #60b030 #60b030 #75c045 ; /* 2 1 1 2 */}
 
 
.mbVert .mbOnglet {
 
  background-color: #f5fffa;
 
   border-color: #60b030 #90d060 #90d060 #60b030; /* 1 3 3 1 */}
 
 
 
/* Configuration du Bleu 1;3379de 2;5b8dd6 3;88abde 4;a7c1e6 5;c8d6e9 */
 
 
.mbBleu .mbBouton {
 
background-color: #a7c1e6; /* 4 */
 
border-color: #c8d6e9 #88abde #5b8dd6 #c8d6e9;  /* 5 3 2 5 */}
 
 
.mbBleu .mbBouton a,
 
.mbBleu .mbBouton strong {
 
  color:#3379de !important;  /* 1 */
 
  font-size:90%}
 
 
.mbBleu .mbBouton a:hover
 
.mbBleu .mbBouton strong:hover {
 
  color: black !important;
 
  text-decoration: underline;}
 
 
.mbBleu .mbBoutonSel {
 
  background-color: #5b8dd6; /* 2 */
 
  border-color: #88abde #3379de #5b8dd6 #88abde;  /* 3 1 2 3 */}
 
 
.mbBleu .mbContenu {
 
  background-color: #f0f8ff;
 
  border-color: #5b8dd6 #3379de #3379de #5b8dd6; /* 2 1 1 2 */}
 
 
.mbBleu .mbOnglet {
 
  background-color: #f0f8ff;
 
  border-color: #3379de #88abde #88abde #3379de; /* 1 3 3 1 */}
 
 
 
/* Configuration du Orange 1;ff820e 2;ff9d42 3;ffac5d 4;ffbd7f 5;ffd0a4 6;ffeedd */
 
 
.mbOrange .mbBouton {
 
background-color: #ffbd7f; /* 4 */
 
border-color: #ffd0a4 #ffac5d #ff9d42 #ffd0a4;  /* 5 3 2 5 */}
 
 
.mbOrange .mbBouton a,
 
.mbOrange .mbBouton strong {
 
  color:#ff820e !important;  /* 1 */
 
  font-size:90%}
 
 
.mbOrange .mbBouton a:hover
 
.mbOrange .mbBouton strong:hover {
 
  color: black !important;
 
  text-decoration: underline;}
 
 
.mbOrange .mbBoutonSel {
 
  background-color: #ff9d42; /* 2 */
 
  border-color: #ffac5d #ff820e #ff9d42 #ffac5d;  /* 3 1 2 3 */}
 
 
.mbOrange .mbContenu {
 
  background-color: #ffeedd; /* 6 */
 
   border-color: #ff9d42 #ff820e #ff820e #ff9d42; /* 2 1 1 2 */}
 
 
.mbOrange .mbOnglet {
 
  background-color: #ffeedd; /* 6 */
 
  border-color: #ff820e #ffac5d #ffac5d #ff820e; /* 1 3 3 1 */}
 
 
/* Configuration du Gris 1;666666 2;868686 3;9f9f9f 4;b9b9b9 5;cfcfcf */
 
 
.mbGris .mbBouton {
 
background-color: #b9b9b9; /* 4 */
 
border-color: #cfcfcf #9f9f9f #868686 #cfcfcf;  /* 5 3 2 5 */}
 
 
.mbGris .mbBouton a,
 
.mbGris .mbBouton strong {
 
  color:#666666 !important;  /* 1 */
 
  font-size:90%}
 
 
.mbGris .mbBouton a:hover
 
.mbGris .mbBouton strong:hover {
 
  color: black !important;
 
  text-decoration: underline;}
 
 
.mbGris .mbBoutonSel {
 
  background-color: #868686; /* 2 */
 
  border-color: #9f9f9f #666666 #868686 #9f9f9f;  /* 3 1 2 3 */}
 
 
.mbGris .mbContenu {
 
  background-color: #fffce8;
 
  border-color: #868686 #666666 #666666 #868686; /* 2 1 1 2 */}
 
 
.mbGris .mbOnglet {
 
  background-color: #fffce8;
 
  border-color: #666666 #9f9f9f #9f9f9f #666666; /* 1 3 3 1 */}
 
 
 
/* Configuration du Jaune 1;aa8800 2;eabb00 3;ffd52b 4;ffe16a 5;ffeeaa */
 
 
.mbJaune .mbBouton {
 
background-color: #ffe16a; /* 4 */
 
border-color: #ffeeaa #ffd52b #eabb00 #ffeeaa;  /* 5 3 2 5 */}
 
 
.mbJaune .mbBouton a,
 
.mbJaune .mbBouton strong {
 
  color:#aa8800!important;  /* 1 */
 
  font-size:90%}
 
 
.mbJaune .mbBouton a:hover
 
.mbJaune .mbBouton strong:hover {
 
  color: black !important;
 
  text-decoration: underline;}
 
 
.mbJaune .mbBoutonSel {
 
  background-color: #eabb00; /* 2 */
 
  border-color: #ffd52b #aa8800 #eabb00 #ffd52b;  /* 3 1 2 3 */}
 
 
.mbJaune .mbContenu {
 
  background-color: #fffce8;
 
  border-color: #eabb00 #aa8800 #aa8800 #eabb00; /* 2 1 1 2 */}
 
 
.mbJaune .mbOnglet {
 
  background-color: #fffce8;
 
  border-color: #aa8800 #ffd52b #ffd52b #aa8800; /* 1 3 3 1 */}
 
 
 
/* Configuration du Rouge 1;993300 2;ca4200 3;ff6215 4;ff9b6a 5;ffc6aa */
 
 
.mbRouge .mbBouton {
 
background-color: #ff9b6a; /* 4 */
 
border-color: #ffc6aa #ff6215 #ca4200 #ffc6aa;  /* 5 3 2 5 */}
 
 
.mbRouge .mbBouton a,
 
.mbRouge .mbBouton strong {
 
  color:#993300!important;  /* 1 */
 
  font-size:90%}
 
 
.mbRouge .mbBouton a:hover
 
.mbRouge .mbBouton strong:hover {
 
  color: black !important;
 
  text-decoration: underline;}
 
 
.mbRouge .mbBoutonSel {
 
  background-color: #ca4200; /* 2 */
 
  border-color: #ff6215 #993300 #ca4200 #ff6215;  /* 3 1 2 3 */}
 
 
.mbRouge .mbContenu {
 
  background-color: #fffce8;
 
  border-color: #ca4200 #993300 #993300 #ca4200; /* 2 1 1 2 */}
 
 
.mbRouge .mbOnglet {
 
  background-color: #fffce8;
 
  border-color: #993300 #ff6215 #ff6215 #993300; /* 1 3 3 1 */}
 
/* ^^^ plus de 50 classes pour quelque chose d'inutile ^^^ */
 
 
/*FIN DES SCHÉMAS DE COULEUR DE "CADRE À ONGLETS"*/
 
 
 
/* BOÎTES DÉROULANTES */
 
 
 
/* Styles des boîtes déroulantes, voir [[Modèle:Boîte déroulante/Documentation]]. */
 
div.NavFrame {
 
margin:0;
 
padding:2px;
 
border:1px #AAA;
 
text-align:center;
 
border-collapse:collapse;
 
font-size:95%;
 
} /* monobookocentré début */
 
 
 
div.NavFrame + div.NavFrame {
 
border-top-style:hidden;
 
 
}
 
}
 +
addOnloadHook(createNavigationBarToggleButton);
  
div.NavPic {
+
/**
  background:#FFF;
+
* WikiMiniAtlas
  margin:0;
+
*
padding:2px;
+
  * voir WP:WMA
float:left;
+
  */
 +
if (wgServer == "https://secure.wikimedia.org") {
 +
  var metaBase = "https://secure.wikimedia.org/wikipedia/meta";
 +
} else {
 +
  var metaBase = "http://meta.wikimedia.org";
 
}
 
}
 +
importScriptURI(metaBase+"/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400")
  
div.NavFrame div.NavHead {
+
var wma_settings = {  
height:1.6em;
+
  buttonImage: 'http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Geographylogo.svg/18px-Geographylogo.svg.png'
font-weight:bold;
 
font-size:100%;
 
background:#EFEFEF;
 
 
}
 
}
  
div.NavFrame p,
+
/**
div.NavFrame div.NavContent,
+
* Affiche un modèle Information sur la page de téléchargement de fichiers [[Spécial:Téléchargement]]
div.NavFrame div.NavContent p { font-size:100% }
+
* Voir aussi [[MediaWiki:Onlyifuploading.js]]
 +
*/
  
div.NavEnd {
+
function includePage(name) {
margin:0;
+
    document.write('<script type="text/javascript" src="' + wgScript + '?title='
padding:0;
+
        + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');   // smaxage=3600
line-height:1px;
 
clear:both;
 
 
}
 
}
  
.NavToggle {
+
if (wgCanonicalSpecialPageName == "Upload") {
font-size:x-small;
+
    includePage("MediaWiki:Onlyifuploading.js");
float:right;
 
} /* monobookocentré fin */
 
 
 
/* Styles de [[Modèle:Méta palette de navigation]] */
 
table.navbox {
 
background:#F9F9F9;
 
border:1px solid #AAA;
 
clear:both;
 
font-size:90%;
 
margin:1em 0 0;
 
padding:2px;
 
text-align:center;
 
width:100%;
 
 
}
 
}
 
   
 
   
table.navbox th {
+
 
background:#CCF;
+
/**
  padding-left:1em;
+
  * Utilisation du modèle Modèle:Images
  padding-right:1em;
+
  */
}
+
function toggleImage(group, remindex, shwindex) {
+
  document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
table.navbox td.group {
+
  document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
background:#DDF;
 
vertical-align:middle;
 
width:150px;
 
padding-left:1em;
 
padding-right:1em;
 
font-weight: bold;
 
}
 
 
table.navbox td.list {
 
text-align:left
 
}
 
 
table.navbox td.even {
 
background:#EEF
 
 
}
 
}
 
table.navbox td.below {
 
background:#CCF;
 
vertical-align:middle;
 
padding-left:1em;
 
padding-right:1em;
 
}
 
 
/* Fin styles de [[Modèle:Méta palette de navigation]] */
 
  
/** TABLEAUX ET INFOBOX **/
+
function imageGroup(){
 
+
  if (document.URL.match(/printable/g)) return;
/* WIKITABLE */
+
  var bc=document.getElementById("bodyContent");
 
+
  if( !bc ) bc = document.getElementById("mw_contentholder");
/* Classe pour tableaux standards, légèrement grisés. Syntaxe : {| class="wikitable" */
+
  if( !bc ) return;
 
+
  var divs=bc.getElementsByTagName("div");
/* Tableaux selon la charte graphique. Ils sont centrés par défaut. */
+
  var i = 0, j = 0;
table.wikitable { /* monobookocentré debut */
+
  var units, search;
margin-top:1em;
+
  var currentimage;
margin-bottom:1em;
+
  var UnitNode;
background:#F9F9F9;
+
  for (i = 0; i < divs.length ; i++) {
border:1px #AAA solid;
+
    if (divs[i].className != "ImageGroup") continue;
border-collapse:collapse;
+
    UnitNode=undefined;
 +
    search=divs[i].getElementsByTagName("div");
 +
    for (j = 0; j < search.length ; j++) {
 +
      if (search[j].className != "ImageGroupUnits") continue;
 +
      UnitNode=search[j];
 +
      break;
 +
    }
 +
    if (UnitNode==undefined) continue;
 +
    units=Array();
 +
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
 +
      var temp = UnitNode.childNodes[j];
 +
      if (temp.className=="center") units.push(temp);
 +
    }
 +
    for (j = 0 ; j < units.length ; j++) {
 +
      currentimage=units[j];
 +
      currentimage.id="ImageGroupsGr"+i+"Im"+j;
 +
      var imghead = document.createElement("div");
 +
      var leftlink;
 +
      var rightlink;
 +
      if (j != 0) {
 +
        leftlink = document.createElement("a");
 +
        leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
 +
        leftlink.innerHTML="◀";
 +
      } else {
 +
        leftlink = document.createElement("span");
 +
        leftlink.innerHTML="&nbsp;";
 +
      }
 +
      if (j != units.length - 1) {
 +
        rightlink = document.createElement("a");
 +
        rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
 +
        rightlink.innerHTML="▶";
 +
      } else {
 +
        rightlink = document.createElement("span");
 +
        rightlink.innerHTML="&nbsp;";
 +
      }
 +
      var comment = document.createElement("tt");
 +
      comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
 +
      with(imghead) {
 +
        style.fontSize="110%";
 +
        style.fontweight="bold";
 +
        appendChild(leftlink);
 +
        appendChild(comment);
 +
        appendChild(rightlink);
 +
      }
 +
      currentimage.insertBefore(imghead,currentimage.childNodes[0]);
 +
      if (j != 0) currentimage.style.display="none";
 +
    }
 +
  }
 
}
 
}
 +
addOnloadHook(imageGroup);
  
table.wikitable th, table.wikitable td {
+
/**
border:1px #AAA solid;
+
* Ajout d'un style particulier aux liens interlangues vers un bon article ou
padding:.3em;
+
* un article de qualité
 +
*/
 +
function lienAdQouBAouPdQ() {
 +
  // links are only replaced in p-lang
 +
  if(window.disableFeaturedInterwikiLinks!=undefined) return
 +
  var pLang = document.getElementById("p-lang");
 +
  if (!pLang) return;
 +
  var lis = pLang.getElementsByTagName("li");
 +
  var l = lis.length
 +
 
 +
  if(wgNamespaceNumber==0)
 +
for (var i=0; i<l; i++)
 +
{
 +
// ADQ- est intentionnel pour correspondre au modèle Lien AdQ, on
 +
// ne doit pas le corriger.
 +
if (document.getElementById("BA-" + lis[i].className)) {
 +
lis[i].className += " BA";
 +
lis[i].title = "Lien vers un bon article";
 +
} else if (document.getElementById("ADQ-" + lis[i].className)) {
 +
lis[i].className += " AdQ";
 +
lis[i].title = "Lien vers un article de qualité";
 +
}
 +
}
 +
  else if(wgNamespaceNumber==100)
 +
for (var i=0; i<l; i++)
 +
{
 +
if (document.getElementById("PdQ-" + lis[i].className)) {
 +
lis[i].className += " AdQ";
 +
lis[i].title = "Lien vers un portail de qualité";
 +
}
 +
}
 
}
 
}
 +
addOnloadHook(lienAdQouBAouPdQ);
  
table.wikitable th, .wikitable_header {
+
/**
background:#F2F2F2;
+
* Redirect vers wikibooks etc.
text-align:center;
+
*
}
+
*/
 +
var redirectedFromArticleDatas = new Array(
 +
  new Array('Wikipédia:Redirect_vers_Wikibooks', 'wikibooks'),
 +
  new Array('Wikipédia:Redirect_vers_Wikisource', 'wikisource'),
 +
  new Array('Wikipédia:Redirect_vers_Wikiversité', 'wikiversity'),
 +
  new Array('Wikipédia:Redirect_vers_Wikiquote', 'wikiquote'),
 +
  new Array('Wikipédia:Redirect_vers_Wikinews', 'wikinews'),
 +
  new Array('Wikipédia:Redirect_vers_Wiktionnaire', 'wiktionary')
 +
);
  
table.wikitable caption {
+
function redirectedFromArticle() {
margin-left:inherit;
+
  if (wgIsArticle == false)
margin-right:inherit;
+
      return;
} /* monobookocentré fin */
+
  for (var i = 0; i < redirectedFromArticleDatas.length; ++i) {
 +
    var page_match = redirectedFromArticleDatas[i];
 +
    var index = wgPageName.indexOf(page_match[0]);
 +
    if (index == 0) {
 +
        var div = document.getElementById('contentSub');
 +
        var span = document.getElementById('redirected_from');
 +
        // real target is always encoded in the anchor.
 +
        target = window.location.hash;
 +
        if (!div || !span || target == '')
 +
            break;
  
/* Alignement du tableau : flottant à droite ou à gauche, ou centré. On peut aligner à droite ou à gauche
+
        target = target.slice(1);
  sans flottement en ajoutant le [[modèle:clr]] en bas du tableau, ou en précisant style="float:none"
+
        // Konqueror 3.5 work around
  dans l'en-tête du tableau. */
+
        if (target.indexOf('#') == 0)
table.gauche, table.left {
+
            target = target.slice(1);
float:left;
+
        target = target.split('.23');
margin:0 1em 1em 0;
+
        target[0] = target[0].replace(/\.([0-9A-Z][0-9A-Z])/g, '%$1');
}
+
        var quoted = target[0]
 +
        if (target[1].length)
 +
            quoted += '#' + target[1]
 +
        quoted = quoted.replace(/%2F/g, '/');
 +
        var display = target[2]
 +
        display = display.replace(/\.([0-9A-Z][0-9A-Z])/g, '%$1');
 +
        display = decodeURI(display);
 +
        display = display.replace(/_/g, ' ');
  
table.droite, table.right {
+
        var e = document.createElement('A');
float:right;
+
        e.href = 'http://fr.' + page_match[1] + '.org/wiki/' + quoted;
margin:0 0 1em 1em;
+
        e.innerHTML = display;
 +
        span.replaceChild(e, span.firstChild);
 +
        break;
 +
    }
 +
  }
 
}
 
}
 +
addOnloadHook(redirectedFromArticle);
  
table.centre, table.center {
+
/**
  margin:1em auto;
+
* Déplace les liens portails vers la boite de catégorie
}
+
*
 +
* Copyright 2007, fr:user:Aoineko. Licence GFDL et GPL.
 +
  */
 +
var gUseMovePortalToCategoryBox = 1;
  
/* SPORTTABLE */
+
function movePortalToCategoryBox() {
 +
  if(!gUseMovePortalToCategoryBox)
 +
      return;
  
/* Tableau préformaté permettant lignes blanches et lignes grises. Syntaxe : class="sporttable"
+
  // search for portails
   Exemple sur [[Équipe d'Angleterre de rugby à XV#Statistiques sur les matchs|cet article]]. */
+
  var div_portal = document.getElementById('portallinks');
table.sporttable { /* monobookocentré debut */
+
   if(div_portal && (div_portal.className == 'movable')) {
margin:1em 1em 1em 0;
+
      div_portal.style.display = 'none'; // hide the portail div
background:#F9F9F9;
+
      var div_cat = document.getElementById('catlinks'); // get cat div
border:1px #AAA solid;
+
      if(!div_cat) { // no category box ? then create it
border-collapse:collapse;
+
        var div_foot;
 +
        var divs = document.getElementsByTagName('div');
 +
        for(var i = 0; i < divs.length ; i++)
 +
            if(divs[i].className == 'printfooter')
 +
              div_foot = divs[i];
 +
        div_cat = document.createElement("div");
 +
        div_cat.setAttribute('id', 'catlinks');
 +
        div_foot.parentNode.insertBefore(div_cat, div_foot);  
 +
      }
 +
      div_cat.innerHTML = div_portal.innerHTML + '<hr/>' + div_cat.innerHTML;
 +
  }
 
}
 
}
 +
addOnloadHook(movePortalToCategoryBox);
  
table.sporttable th, table.sporttable td {
+
/**
  border:1px #AAA solid;
+
* Permet d'afficher les catégories cachées pour les contributeurs enregistrés, en ajoutant un (+) à la manière des boîtes déroulantes
  padding:.2em;
+
*/
 +
function hiddencat()
 +
{
 +
if(document.URL.indexOf("printable=yes")!=-1) return;
 +
var cl = document.getElementById('catlinks'); if(!cl) return;
 +
if( !(hc = document.getElementById('mw-hidden-catlinks')) ) return;
 +
if( hasClass(hc, 'mw-hidden-cats-user-shown') ) return;
 +
var nc = document.getElementById('mw-normal-catlinks');
 +
if( !nc )
 +
{
 +
  var catline = document.createElement('div');
 +
  catline.id = 'mw-normal-catlinks';
 +
  var a = document.createElement('a');
 +
  a.href = '/wiki/Catégorie:Accueil';
 +
  a.title = 'Catégorie:Accueil';
 +
  a.appendChild(document.createTextNode('Catégories'));
 +
  catline.appendChild(a);
 +
  catline.appendChild(document.createTextNode(' : '));
 +
  nc = cl.insertBefore(catline, cl.firstChild);
 +
}
 +
  else nc.appendChild(document.createTextNode(' | '));
 +
var lnk = document.createElement('a');
 +
lnk.id = 'mw-hidden-cats-link';
 +
lnk.title = 'Cet article contient des catégories cachées';
 +
lnk.style.cursor = 'pointer';
 +
lnk.style.color = 'black';
 +
lnk.onclick = toggleHiddenCats;
 +
lnk.appendChild(document.createTextNode('[+]'));
 +
  hclink = nc.appendChild(lnk);
 
}
 
}
 
+
function toggleHiddenCats()
table.sporttable th {
+
{
  font-weight:bold;
+
  if( hasClass(hc, 'mw-hidden-cats-hidden') )
} /* monobookocentré fin */
+
{
 
+
  removeClass(hc, 'mw-hidden-cats-hidden');
table.wikitable caption {
+
  addClass(hc, 'mw-hidden-cat-user-shown');
margin-left:inherit;
+
  changeText(hclink, '[–]');
margin-right:inherit;
+
}
 +
else
 +
{
 +
  removeClass(hc, 'mw-hidden-cat-user-shown');
 +
  addClass(hc, 'mw-hidden-cats-hidden');
 +
  changeText(hclink, '[+]');
 +
}
 
}
 
}
 +
addOnloadHook(hiddencat);
  
/* INFOBOX */
+
/**
 +
* Script pour alterner entre deux cartes de géolocalisation
 +
*/
 +
addOnloadHook(function(){
 +
  var cont;
 +
  if(!(wgAction=="view")) return
  
/* Style commun aux infobox ; utiliser :
+
  cont=getElementsByClass('img_toogle', document.getElementById('bodyContent'), 'div');
  * class="infobox" dans l'en-tête.
+
  if(cont.length==0) return
  * class="infoboximage" pour l'image et sa description
 
  * class="infoboxsoustitre" pour le sous-titre.
 
  Voir [[Aide:Infobox]] et [[Projet:InfoBox]]. */
 
.infobox {
 
background:#EEE; /* couleur correspondant aux titres / colonne de gauche, th */
 
color:#000;
 
float:right;
 
clear:right;
 
font-size:95%;
 
border-collapse:collapse;
 
margin:0 0 .5em 1em;
 
width:250px;
 
} /* monobookocentré debut */
 
  
.infobox caption {
+
  for (var i = 0; i < cont.length ; i++) {
background:#C0C0C0;
+
    cont.box = getElementsByClass('geobox',cont[i]);
border-left:1px solid #AAA;
+
    cont.box[0].style.display='none';
border-top:1px solid #AAA;
+
    cont.box[1].style.borderTop='0';
border-right:1px solid #AAA;
+
    var toogle = document.createElement('a');
padding:.2em;
+
    toogle.appendChild(document.createTextNode(cont.box[0].getElementsByTagName('img')[0].alt));
margin-left:.57em;
+
    toogle.href='#';
font-weight:bolder;
+
    toogle.className='a_toogle';
text-align:center;
+
    toogle.status = 1;
color:#FFF;
+
    toogle.onclick = function() {
font-size:160%;
+
      this.removeChild(this.firstChild);
}
+
      div0 = getElementsByClass('geobox',this.parentNode)[0];
 +
      div1 = getElementsByClass('geobox',this.parentNode)[1];
 +
      alt0 = div0.getElementsByTagName('img')[0].alt;
 +
      alt1 = div1.getElementsByTagName('img')[0].alt;
 +
      if(this.status==0) {
 +
        div0.style.display='none';
 +
        div1.style.display='';
 +
        this.status=1;
 +
        this.appendChild(document.createTextNode(alt0));
 +
      } else {
 +
        div0.style.display='';
 +
        div1.style.display='none';
 +
        this.status=0;
 +
        this.appendChild(document.createTextNode(alt1));
 +
      }
 +
      return false;
 +
    }
 +
  cont[i].insertBefore(toogle, cont.box[1].nextSibling);
 +
  }
 +
});
  
.infobox th, .infobox td {
+
/**
vertical-align:middle;
+
* permet d'ajouter un petit lien (par exemple d'aide) à la fin du titre d'une page.
border:1px solid #AAA;
+
* known bug : conflit avec le changement de titre classique.
padding:.2em .2em .2em .5em;
+
* Pour les commentaires, merci de contacter [[user:Plyd|Plyd]].
 +
*/
 +
function rewritePageH1bis() {
 +
  try {
 +
    var helpPage = document.getElementById("helpPage");
 +
    if (helpPage) {
 +
      var helpPageURL = document.getElementById("helpPageURL");
 +
      var h1 = document.getElementsByTagName("h1")[0];
 +
      if (helpPageURL && h1) {
 +
        h1.innerHTML = h1.innerHTML + '<span id="h1-helpPage">' + helpPageURL.innerHTML + '</span>';
 +
        helpPage.style.display = "none";
 +
      }
 +
    }
 +
  } catch (e) {
 +
    /* Something went wrong. */
 +
  }
 
}
 
}
 +
addOnloadHook(rewritePageH1bis);
  
.infobox td {
+
/**
  text-align:center;
+
  * application de [[Wikipédia:Prise de décision/Système de cache]]
  background:#F9F9F9;
+
* un <span class="noarchive"> autour du lien l'empêche d'être pris en compte
}
+
* pour celui-ci uniquement
 +
  * un no_external_cache=true dans un monobouc personnel désactive le script
 +
*/
  
.infobox th {
+
addOnloadHook(function () {
font-weight:normal;
 
text-align:left;
 
}
 
  
.infobox .infoboximage { /* emplacement pour les photos et une description */
+
  if (wgNamespaceNumber == 0) {
background:#FFF;
+
    if ((typeof no_external_cache != "undefined") && (no_external_cache)) return;
padding:0;
+
    addcache();
  margin-top:0;
+
  }
color:#000;
+
   
text-align:center;
+
  function addcache() {
}
+
    var external_links;
 +
    if (document.getElementsByClassName) {
 +
      external_links = document.getElementsByClassName('external');
 +
    } else {
 +
      external_links = getElementsByClass('external',document.getElementById("bodyContent"),'a');
 +
    }
  
.infobox .infoboxsoustitre { /* sous-titre */
+
    for( i = 0;i < external_links.length;i++)
color:#000;
+
    {
font-weight:bold;
+
      var chemin = external_links[i].href;
font-size:115%;
 
line-height:2;
 
text-align:center;
 
}
 
  
.infobox dl { clear:both }
+
      if(chemin.indexOf("http://wikiwix.com/cache/")==-1 && chemin.indexOf("http://web.archive.org/web/*/")==-1 && chemin.indexOf("wikipedia.org")==-1 && chemin.indexOf("wikimedia.org")==-1 && chemin.indexOf("stable.toolserver.org")==-1)
.infobox dt {
+
      {
  float:left;
+
      var li = external_links[i].parentNode;
  clear:left;
+
      if (li.className == "noarchive") continue;
width:35%;
+
      var depth = 0;
 +
      while ((depth < 3) && (li.tagName != "OL") && (li.parentNode != null)) {
 +
        li = li.parentNode;
 +
        depth++;
 +
      }
 +
   
 +
      if (li.tagName != "OL" || !(hasClass(li, 'references')) ) continue;
 +
      var titre = getTextContent(external_links[i]);
 +
      var last = document.createElement("small");
 +
      last.setAttribute("class", "cachelinks");
 +
      last.style.color = "#3366BB";
 +
      last.appendChild(document.createTextNode("\u00a0["));
 +
      insertAfter(external_links[i].parentNode, last, external_links[i]);
 +
   
 +
      var link = document.createElement("a");
 +
      link.setAttribute("href", "http://wikiwix.com/cache/?url=" + chemin.replace(/&/g, "%26"));
 +
      link.setAttribute("title", "archive de "+ titre);
 +
      link.appendChild(document.createTextNode("archive"));
 +
      link.style.color = "#3366BB";
 +
      last.appendChild(link);
 +
      last.appendChild(document.createTextNode("]"));
 +
      }
 +
    }
 +
  }
 
}
 
}
.infobox dd { margin-left:40% } /* monobookocentré fin */
+
);
  
/** PROJETS ET PORTAILS **/
+
/**
 +
* Application de [[Wikipédia:Prise de décision/Lien interprojet]]
 +
* Copie les liens interprojets du modèle {{Autres projets}}
 +
* dans le menu en colonne de gauche.
 +
* remove_other_projects = true; dans le monobook personnel pour activer
 +
* en plus la suppression du modèle {{Autres projets}} en bas des articles.
 +
* no_other_projects = true; dans le monobook personnel pour désactiver
 +
* entièrement le script et l'ajout dans la colonne de gauche.
 +
*/
  
/* PORTAILS MODULAIRES */
+
function autresProjets() {
 +
  if ((typeof no_other_projects != "undefined") && (no_other_projects)) return;
 +
  if(!(wgNamespaceNumber==0)) return;
 +
  if(!(wgAction=="view")) return;
 +
  var div = document.getElementById('autres_projets');
 +
  if(!div) return;
 +
  var list = div.getElementsByTagName('LI');
 +
  var newlist = document.createElement("UL");
 +
  for (var i = 0; i < list.length ; i++) {
 +
    list.link = list[i].getElementsByTagName('A')[0];
 +
    list.text = list.link.getElementsByTagName('SPAN')[0];
 +
    var newlistitem = document.createElement("LI");
 +
    var newlink = document.createElement("A");
 +
    var newlinktext = document.createTextNode(getTextContent(list.text));
 +
    newlink.appendChild(newlinktext);
 +
    newlink.title=getTextContent(list.link);
 +
    newlink.href=list.link.href;
 +
    newlistitem.appendChild(newlink);
 +
    newlist.appendChild(newlistitem);
 +
  }
 +
  var interProject = document.createElement("DIV");
 +
  interProject.className = 'portlet';
 +
  interProject.innerHTML = '<h5>Autres projets<\/h5><div class="pBody"><ul>'+newlist.innerHTML+'</ul></div>';
 +
  insertAfter(document.getElementById('column-one'),interProject,document.getElementById('p-tb'));
 +
  if ((typeof remove_other_projects != "undefined") && (remove_other_projects)) {
 +
    document=document.getElementById('bodyContent').removeChild(div);
 +
  }
 +
}
 +
 +
addOnloadHook(autresProjets);
  
/* Styles pour les portails en « modules », voir [[Aide:Créer un portail]]. */
 
  
/* une case typique pour portail modulaire */
+
/************************************************************/
.portailCase {
+
/* Strictement spécifiques à un espace de nom ou à une page */
border:1px solid #AAA;
+
/************************************************************/
display:block;
 
margin:5px 0;
 
padding:0;
 
padding-bottom:1px;
 
vertical-align:top;
 
width:100%;
 
} /* monobookocentré debut */
 
  
/* le titre de cette case, apparaissant sur un fond différent */
+
// ESPACE DE NOM 'ARTICLE'
.portailCase h2 {
+
if( wgNamespaceNumber == 0 ) {
font-weight:bold;
 
font-size:100%;
 
margin:0 0;
 
margin-bottom:5px;
 
padding:4px;
 
text-align:center;
 
}
 
  
/* le lien editer (en bas) tout à droite */
 
.portailLienEdition {
 
display:block;
 
font-size:x-small;
 
text-align:right;
 
clear:both;
 
} /* suffgisamment générique ? */
 
  
/* classe destinée à remplacer la classe portailCase */
+
} // Fin du code concernant l'espace de nom 'Article'
.portailCase_v2 {
 
border:1px solid #AAA;
 
color:#000;
 
font-size:100%;
 
}
 
  
h2.portailCase_v2 {
 
font-weight:bold;
 
margin:0;
 
padding:3px;
 
text-align:center;
 
}
 
  
div.portailCase_v2 {
+
// PAGE D'ACCUEIL
border-top:0 solid white;
+
if( wgTitle == 'Accueil' ) {
margin-bottom:1ex;
 
padding:5px 5px 0 5px;
 
} /* monobookocentré fin */
 
  
/* ÉGYPTOPÉDIA */
+
/**
 
+
* Suppression du titre sur la page d'accueil,
/* Cadre du calendrier */
+
* changement de l'onglet et lien vers la liste complète des Wikipédias depuis l'accueil
div.egy_calendrier#cadre {
+
*/
border:1px solid #CC9;
+
function mainPageTransform(){
background:#FFF;
+
  if(wgPageName != 'Accueil' && wgPageName != 'Discuter:Accueil') return;
text-align:center;
+
  try {
font-size:smaller;
+
    document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Accueil';
} /* monobookocentré */
+
  } catch (e) { /* Erreur : l'apparence ne gère la pas les onglets */ }
 
+
  if(wgPageName == 'Accueil' && wgIsArticle) addPortletLink('p-lang', 'http://www.wikipedia.org/', 'Liste complète', 'interwiki-listecomplete', 'Liste complète des Wikipédias');
/* Style du lien du calendrier */
 
div.egy_calendrier#lien {
 
background:#CC9;
 
padding:.2em;
 
 
}
 
}
 +
addOnloadHook(mainPageTransform);
  
/* Style du jour du calendrier */
+
/**
div.egy_calendrier#jour {
+
* Cache cadres de l'accueil
  font-size:medium;  
+
*
}
+
* Ajoute un lien sur la page d'accueil pour cacher facilement les cadres
 +
* Mémorisé par cookie.
 +
  * Copyright 2007, fr:user:Plyd et fr:User:IAlex. Licence GFDL et GPL.
 +
*/
 +
/** var cookieCacheCadresName = "cacheCadresAccueil";
 +
var CacheCadresVal = {};
 +
var totalCadresAccueil = 0;
  
/* Style des tableaux de navigation */
+
function affCadreAccueil(id) {
table.egyleft, .egybox {
+
  visible = CacheCadresVal[id] = (!CacheCadresVal[id]);
float:right;
+
  getElementsByClass('accueil_contenu',null,'div')[id].style.display = visible ? 'block' : 'none';
margin:.5em .5em 1em 1em;
+
  document.getElementById('CacheCadreAccueil' + id).innerHTML = visible ? 'masquer' : 'afficher';
border:1px solid #AAAA80;
+
  sauverCookieAccueil();
background:#EFEFDD;
 
text-align:center;
 
width:170px;
 
 
}
 
}
  
table.egyptopedia {
+
function sauverCookieAccueil() {
float:right;
+
  var date = new Date();
margin:.5em .5em 1em 1em;
+
  date.setTime(date.getTime() + 30*86400*1000);
border:1px solid #AAAA80;
+
  var val = 0;
border-collapse:collapse;
+
  for ( var i=0; i< totalCadresAccueil ; i++ ) {
background:#EFEFDD;
+
    if (!CacheCadresVal[i]) val = val | Math.pow(2,i);
text-align:center;
+
  }
width:170px;
+
  document.cookie = cookieCacheCadresName + "=" + val + "; expires="+date.toGMTString() + "; path=/";
 
}
 
}
  
table.egyptopedia th, table.egyptopedia td {
+
function LiensCadresAccueil() {
border-width:1px;
+
  if (wgPageName != "Accueil") return;
border-style:solid;
+
  cookieCadresAccueil = getCookieVal(cookieCacheCadresName);
border-color:#AAAA80;
+
  for ( var i=0; i<5; i++) {
border-collapse:collapse;
+
    var titre = getElementsByClass('headergris',document,'h2')[i];
} /* monobookocentré fin */
+
    if (!titre) break;
 
+
    titre.innerHTML += " <span style='font-size: xx-small; font-weight: normal; float: none; margin-right:100px' class='editsection'>[<a id='CacheCadreAccueil" + i + "' href='javascript:affCadreAccueil(" + i + ");'>masquer</a>]</span>";
/** PAGES PARTICULIÈRES **/
+
    CacheCadresVal[i] = true;
 
+
    totalCadresAccueil++;
/* Boîte Special:Userlogin */
+
  }
form#userlogin {
+
  cookieCadresAccueil = getCookieVal(cookieCacheCadresName);
padding:1em 1em .7em 1em;
+
  for ( var i=0; i< totalCadresAccueil ; i++ ) {
background:#FFFFE6;
+
    n =Math.pow(2,i);
border:2px solid #FC6;
+
    aff = !(cookieCadresAccueil & n);
color:#000;
+
    if (!aff) affCadreAccueil(i);
margin-right:2em;
+
  }
} /* monobookocentré */
 
 
 
form#userlogin table {
 
background:#ffffe6;
 
color:#000;
 
} /* monobookocentré */
 
 
 
/* ACCUEIL */
 
 
 
.page-Accueil .firstHeading {
 
display:none;
 
}
 
.page-Accueil #ca-nstab-main a {
 
content:"Accueil";
 
}
 
#interwiki-listecomplete {
 
font-weight: bold;
 
 
}
 
}
 +
addOnloadHook(LiensCadresAccueil); **/
 +
} // Fin du code concernant la page d'accueil
  
#accueil_titre {
 
margin-top:1.5em;
 
} /* monobookocentré */
 
  
.globegris {
+
// ESPACE DE NOM 'SPECIAL'
background:
+
if( wgNamespaceNumber == -1 ) {
    url(http://upload.wikimedia.org/wikipedia/commons/b/b4/Wikipedia-logo-transparent-200px.png)
 
} /* monobookocentré */
 
  
.headergris { /* monobookocentré */
+
/**
background:#F0F0F0 url("http://upload.wikimedia.org/wikipedia/commons/1/1b/Wikibar2.png") no-repeat right;
+
* Afficher une explication au nombre d'octets dans la liste de suivi
margin:0;
+
*/
font-size:120%;
+
function toolTipPlusMinus() {
font-weight:bold;
+
  if(wgCanonicalSpecialPageName != "Watchlist") return
border:1px solid #a3b0bf;
+
  var tt = "Nombre d'octets d'écart entre les deux dernières versions de la page";
text-align:left;
+
  var elmts = document.getElementsByTagName("span");
color:#000;
+
  for(var cpt = 0; cpt < elmts.length; cpt++) {
padding:.15em .4em;
+
    if (/mw-plusminus-(pos|neg|null)/.test(elmts[cpt].className) || /mw-plusminus-(pos|neg|null)/.test(elmts[cpt].getAttribute("class")))
}
+
      elmts[cpt].title = tt;
 
+
  }
.cadregris { /* monobookocentré */
 
border:1px solid #AAA;
 
background:#fcfcfc;
 
vertical-align:top;
 
padding:7px;
 
margin-bottom:.6em;
 
 
}
 
}
 +
addOnloadHook(toolTipPlusMinus);
  
.accueil_cadre_lien { /* monobookocentré */
+
/**
  text-align:right;
+
  * Modifie Special:Search pour pouvoir utiliser différents moteurs de recherche,
  margin-right:.5em;
+
  * disponibles dans une boîte déroulante.
  font-size:xx-small;
+
  * Auteurs : Jakob Voss, Guillaume, importé depuis la Wiki allemande
}
+
* <pre><nowiki>
 +
*/
  
/* [[Special:Statistics]] */
+
function externalSearchEngines() {
 +
  if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
 +
  if (wgPageName != "Spécial:Recherche") return;
  
/* Suppression du group "boardvote" */
+
  var mainNode = document.getElementById("powersearch");
.statistics-group-boardvote {
+
  if (!mainNode) mainNode = document.getElementById("search");
display: none;
+
  if (!mainNode) return;
}
 
  
/* MODÈLES DE COORDONNÉES */
+
  var beforeNode = document.getElementById("mw-search-top-table");
 +
  if (!beforeNode) return;
 +
  beforeNode = beforeNode.nextSibling;
 +
  if (!beforeNode) return;
 +
 +
  var firstEngine = "mediawiki";
 +
 +
  var choices = document.createElement("div");
 +
  choices.setAttribute("id","searchengineChoices");
 +
  choices.style.textAlign = "center";
 +
 +
  var lsearchbox = document.getElementById("searchText");
 +
  var initValue = lsearchbox.value;
 +
 +
  var space = "";
  
/* Voir [[Modèle:Coord]] pour l'utilité de ces classes.  
+
  for (var id in searchEngines) {
   Notez que les classes "geo", "longitude", et "latitude" ne sont pas simplement des styles
+
    var engine = searchEngines[id];
  mais servent aussi à l'export au Geo microformat, il ne faut pas les renommer. */
+
if(engine.ShortName)
.geo-default { display:inline }
+
   {
.geo-nondefault { display:none }
+
    if (space) choices.appendChild(space);
.geo-dms { display:inline }
+
    space = document.createTextNode(" ");
.geo-dec { display:inline }
+
.geo-multi-punct { display:none }
+
    var attr = {  
 
+
      type: "radio",
.longitude .latitude { white-space:nowrap }
+
      name: "searchengineselect",
 
+
      value: id,
/* This is used for the Geo microformat, but no style is needed for now other than .geo-dec. */
+
      onFocus: "changeSearchEngine(this.value)",
.geo {}
+
      id: "searchengineRadio-"+id
 
+
    };
#portallinks {
+
  border-width: 1px;
+
    var html = "<input";
  border-style: solid;
+
    for (var a in attr) html += " " + a + "='" + attr[a] + "'";
  border-color: #aaaaaa;
+
    html += " />";
  background-color: #f9f9f9;
+
    var span = document.createElement("span");
  padding: 5px;
+
     span.innerHTML = html;
  margin-top: 1em;
 
  clear: both;
 
}
 
 
 
/************************************************
 
***     Infobox V2 - En phase de test        ***
 
*** Voir : [[Utilisateur:Antaya/Infobox V2]] ***
 
************************************************/
 
 
   
 
   
.infobox_v2 { /* monobookocentré debut */
+
    choices.appendChild( span );
background: #f9f9f9;
+
    var label
color: #000;
+
    if (engine.Template.indexOf('http') == 0) {
font-size:90%;
+
      label = document.createElement("a");
line-height:1.1em;  
+
      label.href = engine.Template.replace("{searchTerms}", initValue).replace("{language}", "fr");
float:right;
+
    } else {
clear:right;
+
      label = document.createElement("label");
margin:0 0 .5em 1em; /* haut droite bas gauche */
+
    }
width:300px;
+
 
  border: 1px solid #aaa;
+
    label.appendChild( document.createTextNode( engine.ShortName ) );
padding: 0.1em;
+
    choices.appendChild( label );
}
+
  }
 +
  }
 +
  mainNode.insertBefore(choices, beforeNode);
 
   
 
   
.infobox_v2 th {
+
  var input = document.createElement("input");
vertical-align:top;
+
  input.id = "searchengineextraparam";
text-align:left;
+
  input.type = "hidden";
}
 
 
   
 
   
/* Option désactivée : empêche les liens internes d'apparaître en bleu
+
  mainNode.insertBefore(input, beforeNode);
.infobox_v2 th a {
 
color:black; * désactive la couleur des liens à gauche *
 
}
 
*/
 
  
.infobox_v2 .entete {
+
  changeSearchEngine(firstEngine, initValue);
height:45px;
 
vertical-align:middle;
 
text-align:center;
 
font-size:150%;
 
font-weight:bolder;
 
line-height:1.2em;
 
color:#000
 
 
}
 
}
  
.infobox_v2 .media { /* css V2 pour [[Modèle:Son]], [[Modèle:Vidéo]], etc. */
+
function changeSearchEngine(selectedId, searchTerms) {
height:35px;
 
vertical-align:middle;
 
text-align:center;
 
font-weight:bolder;
 
color:#000
 
}
 
  
/* graphiques transparents d'entêtes des infobox V2 */
+
  var currentId = document.getElementById("searchengineChoices").currentChoice;
.entete.defaut      {}
+
  if (selectedId == currentId) return;
 +
 +
  document.getElementById("searchengineChoices").currentChoice = selectedId;
 +
  var radio = document.getElementById('searchengineRadio-' + selectedId);
 +
  radio.checked = "checked";
 +
 +
  var engine = searchEngines[selectedId];
 +
  var p = engine.Template.indexOf('?');
 +
  var params = engine.Template.substr(p+1);
 +
 +
  var form;
 +
  if (document.forms["search"]) {
 +
    form = document.forms["search"];
 +
  } else {
 +
    form = document.getElementById("powersearch");
 +
  }
 +
  form.setAttribute("action", engine.Template.substr(0,p));
 
   
 
   
.entete.auteur          {background: url("http://upload.wikimedia.org/wikipedia/commons/1/1e/Picto_infobox_auteur.png")       no-repeat top right;}
+
  var l = ("" + params).split("&");
.entete.bd              {background: url("http://upload.wikimedia.org/wikipedia/commons/2/2c/Picto_infobox_comicballoon.png") no-repeat top right;}
+
  for (var idx = 0;idx < l.length;idx++) {
.entete.biere          {background: url("http://upload.wikimedia.org/wikipedia/commons/0/04/Picto_infobox_beer.png")          no-repeat top right;}
+
    var p = l[idx].split("=");
.entete.canada          {background: url("http://upload.wikimedia.org/wikipedia/commons/6/6a/Picto_infobox_Canada.png")        no-repeat top right;}
+
    var pValue = p[1];
.entete.cinema          {background: url("http://upload.wikimedia.org/wikipedia/commons/e/ea/Picto_infobox_cinema.png")        no-repeat top right;}
 
.entete.communication  {background: url("http://upload.wikimedia.org/wikipedia/commons/a/a2/Picto_infobox_antenna.png")      no-repeat top right;}
 
.entete.humain          {background: url("http://upload.wikimedia.org/wikipedia/commons/8/82/Picto_infobox_manwoman.png")      no-repeat top right;}
 
.entete.jeuvideo        {background: url("http://upload.wikimedia.org/wikipedia/commons/2/2d/Picto_infobox_gamepad.png")       no-repeat bottom right;}
 
.entete.map            {background: url("http://upload.wikimedia.org/wikipedia/commons/7/7a/Picto_infobox_map.png")          no-repeat top right;}
 
.entete.montreal-metro  {background: url("http://upload.wikimedia.org/wikipedia/fr/b/ba/Picto_infobox_Mtl_metro.png")         no-repeat top right;}
 
.entete.montreal-train  {background: url("http://upload.wikimedia.org/wikipedia/fr/9/99/Picto_infobox_Mtl_train.png")          no-repeat top right;}
 
.entete.musique        {background: url("http://upload.wikimedia.org/wikipedia/commons/6/60/Picto_infobox_music.png")        no-repeat top right;}
 
.entete.persofiction    {background: url("http://upload.wikimedia.org/wikipedia/commons/3/37/Picto_infobox_masks.png")        no-repeat top right;}
 
.entete.projet          {background: url("http://upload.wikimedia.org/wikipedia/commons/c/cb/Picto_infobox_tools.png")        no-repeat top right;}
 
.entete.quebec          {background: url("http://upload.wikimedia.org/wikipedia/commons/2/21/Picto_infobox_Quebec.png")        no-repeat top right;}
 
.entete.science-fiction {background: url("http://upload.wikimedia.org/wikipedia/commons/e/ed/Picto_infobox_fliyingsaucer.png") no-repeat top right;}
 
.entete.sport          {background: url("http://upload.wikimedia.org/wikipedia/commons/8/8e/Picto_infobox_Olympic.png")      no-repeat top right;}
 
.media.audio            {background: url("http://upload.wikimedia.org/wikipedia/commons/thumb/a/a6/Gnome-speakernotes.png/35px-Gnome-speakernotes.png") no-repeat top left;}
 
.media.video            {background: url("http://upload.wikimedia.org/wikipedia/en/thumb/2/20/Tango-video-x-generic.png/35px-Tango-video-x-generic.png") no-repeat top left;}
 
 
   
 
   
/* Fin de la phase de test Infobox V2 */ /* monobookocentré fin */
+
    if (pValue == "{language}") {
 +
    } else if (pValue == "{searchTerms}") {
 +
      var input;
 +
      input = document.getElementById("searchText");
 +
 +
      input.name = p[0];
 +
    } else {
 +
      var input = document.getElementById("searchengineextraparam");
 +
 +
      input.name = p[0];
 +
      input.value = pValue;
 +
    }
 +
  }
 +
}
  
/* Classe de masquage, remplace display:none. Contenu non affiché mais lisible par les lecteurs d'écrans */
+
if (wgPageName == "Spécial:Recherche") {
.hidden {
+
var searchEngines = {
position: absolute;
+
  mediawiki: {
left: 0;
+
    ShortName: "Recherche interne",
top: -5000px;
+
    Template: "/wicri-base.fr/index.php?search={searchTerms}"
width: 1px;
+
  },
height: 1px;
+
  wicriInpl: {
overflow: hidden;
+
    ShortName: "Wicri (Inpl) via Google",
}
+
    Template: "http://www.google.fr/search?as_sitesearch=ticri.inpl-nancy.fr&hl={language}&q={searchTerms}"
/* liens d'accès directs pour la navigation au clavier */
+
  },
#jump-to-nav {
+
  exalead: {
display: block;
+
    ShortName: "Exalead",
text-align: right;
+
    Template: "http://www.exalead.com/search/wikipedia/results/?q={searchTerms}&language=fr"
}
+
  },
#column-one {
+
  google: {
zoom: 1; /* pour que la tabulation soit fonctionnelle dans IE6-7 */
+
    ShortName: "Google",
 +
    Template: "http://www.google.fr/search?as_sitesearch=fr.wikipedia.org&hl={language}&q={searchTerms}"
 +
  },
 +
  wikiwix: {
 +
    ShortName: "Wikiwix",
 +
    Template: "http://fr.wikiwix.com/index.php?action={searchTerms}&lang={language}"
 +
  },
 +
 +
  wlive: {
 +
    ShortName: "Windows Live",
 +
    Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://fr.wikipedia.org"
 +
  },
 +
  yahoo: {
 +
    ShortName: "Yahoo!",
 +
    Template: "http://fr.search.yahoo.com/search?p={searchTerms}&vs=fr.wikipedia.org"
 +
  },
 +
globalwpsearch: {
 +
    ShortName: "Global WP",
 +
    Template: "http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?timeout=120&search={searchTerms}"
 +
  }
 +
};
 +
addOnloadHook(externalSearchEngines);
 
}
 
}
  
/* Image du [[Portail:Réalisation audiovisuelle]] et [[Portail:Cinéma]] : en-tête */
+
} // Fin du code concernant l'espace de nom 'Special'
.realisateur-bandeau {
 
    background-image: url("http://upload.wikimedia.org/wikipedia/fr/9/98/Banni%C3%A8re_portail.png"); 
 
    background-position : center;
 
    height:136px;
 
    background-repeat: no-repeat;
 
}
 
  
.cinema-bandeau {
 
    background-image: url("http://upload.wikimedia.org/wikipedia/fr/6/68/Bandeau_portail_cin%C3%A9ma.png"); 
 
    background-position : left;
 
    height:35px;
 
    background-repeat: no-repeat;
 
}
 
  
 +
// ESPACE DE NOM 'UTILISATEUR'
 +
if( wgNamespaceNumber == 2 ) {
  
/* Encarts dans un texte, signalés par une icône */
+
/* En phase de test */
.encart p {
+
/* DÉBUT DU CODE JAVASCRIPT DE "CADRE À ONGLETS"
text-indent: 20px;
+
    Fonctionnement du [[Modèle:Cadre à onglets]]
line-height: 1.5em;
+
    Modèle implanté par User:Peleguer de http://ca.wikipedia.org
background: no-repeat left 0.15em;
+
    Actualisé par User:Joanjoc de http://ca.wikipedia.org
font-style: italic;
+
    Traduction et adaptation User:Antaya de http://fr.wikipedia.org
}
+
*/
 +
function CadreOngletInit(){
 +
// retour si ailleurs que sur l'espace utilisateur,
 +
// sachant que c'est une horreur au niveau de l'accessibilité
 +
// et qu'il est impossible de "récupérer" ou de recycler ce script
 +
// (celui-ci fonctionnant par inclusion de sous pages)
 +
if (wgCanonicalNamespace != 'User') return;
 +
  var i=0     
 +
  for (i=0;i<=9;i++){
 +
    var vMb = document.getElementById("mb"+i);
 +
    if (!vMb) break;
 
   
 
   
/* encart accessibilité */
+
    var j=1   
.aide_accessibilite p {
+
    var vOgIni = 0 
background-image: url("http://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Gnome-preferences-desktop-accessibility.svg/18px-Gnome-preferences-desktop-accessibility.svg.png");
+
    for (j=1;j<=9;j++){
}
+
        var vBt = document.getElementById("mb"+i+"bt"+j);
 +
        if (!vBt) break;
 +
        vBt.onclick = CadreOngletVoirOnglet;         
 +
        if (vBt.className=="mbBoutonSel") vOgIni=j;
 +
    }
  
/* Géolocalisation dynamique */
+
    if (vOgIni == 0) {
.NavContent .img_toogle {
+
        vOgIni = 1+Math.floor((j-1)*Math.random()) ;
zoom: 1; /* be kind to IE7 */
+
        document.getElementById("mb"+i+"og"+vOgIni).style.display = "block";
clear: both/* be kind to IE7 */
+
        document.getElementById("mb"+i+"og"+vOgIni).style.visibility = "visible";
}
+
        document.getElementById("mb"+i+"bt"+vOgIni).className="mbBoutonSel";
.img_toogle, .img_toogle * {
+
    }
margin: 0 !important;
+
  }
padding: 0 !important;
+
}
}
+
   
.img_toogle .a_toogle {
+
function CadreOngletVoirOnglet(){
display: block;
+
  var vMbNom = this.id.substr(0,3);  
text-align: center !important;
+
  var vIndex = this.id.substr(5,1);  
font-size: 0.95em;
+
}
+
  var i=1
.img_toogle .geobox {
+
  for (i=1;i<=9;i++){      
position: relative;
+
        var vOgElem = document.getElementById(vMbNom+"og"+i);
}
+
        if (!vOgElem) break;
.img_toogle .geobox +.geobox {
+
        if (vIndex==i){
border-top: 5px solid #aaa;
+
                vOgElem.style.display = "block";
}
+
                vOgElem.style.visibility = "visible";
.img_toogle .geopoint {
+
                document.getElementById(vMbNom+"bt"+i).className="mbBoutonSel";
position: absolute;
+
        } else {           
width: 5px;
+
                vOgElem.style.display = "none";
height: 5px;
+
                vOgElem.style.visibility = "hidden";
font-size: 1px;
+
                document.getElementById(vMbNom+"bt"+i).className="mbBouton";
border: 1px solid #000;
+
        }
background:#F00;
+
  }
 +
  return false;  
 
}
 
}
 +
addOnloadHook(CadreOngletInit);
 +
/*FIN DU CODE JAVASCRIPT DE "CADRE À ONGLETS"*/
 +
} // Fin du code concernant l'espace de nom 'Utilisateur'
  
/*Gallery un peu moins moches... */
 
table.gallery{
 
background-color:#F9F9F9;
 
margin:auto;
 
}
 
  
table.gallery caption{
+
// ESPACE DE NOM 'RÉFÉRENCE'
margin:auto
+
if( wgNamespaceNumber == 104 ) {
}
 
  
table.gallery td{
+
/*
background-color:#F9F9F9;
+
* Choix du mode d'affichage des références
border:2px solid #F9F9F9;
+
* Devraient en principe se trouver côté serveur
}
+
* @note L'ordre de cette liste doit correspondre a celui de Modèle:Édition !
div.gallerytext{
+
*/
font-size:80%;
 
}
 
.gallery_left table.gallery {
 
margin: auto 0;
 
}
 
  
 +
function addBibSubsetMenu() {
 +
  var specialBib = document.getElementById('specialBib');
 +
  if (!specialBib) return;
  
/* Be kind to IE6, formulaire d'édition */
+
  specialBib.style.display = 'block';
#editpage-copywarn{
+
  menu = '<select style="display:inline;" onChange="chooseBibSubset(selectedIndex)">'
zoom: 1
+
  + '<option>Liste</option>'
 +
  + '<option>WikiNorme</option>'
 +
  + '<option>BibTeX</option>'
 +
  + '<option>ISBD</option>'
 +
  + '<option>ISO690</option>'
 +
  + '</select>';
 +
  specialBib.innerHTML = specialBib.innerHTML + menu;
 +
 
 +
  /* default subset - try to use a cookie some day */
 +
  chooseBibSubset(0);
 
}
 
}
  
/* Affichage du [[Projet:Impression]] */
+
// select subsection of special characters
#listeImprimeurs {
+
function chooseBibSubset(s) {
text-align: left;
+
  var l = document.getElementsByTagName('div');
background: white;
+
  for (var i = 0; i < l.length ; i++) {
display: none;
+
    if(l[i].className == 'BibList')  l[i].style.display = s == 0 ? 'block' : 'none';
position:absolute;
+
    else if(l[i].className == 'WikiNorme') l[i].style.display = s == 1 ? 'block' : 'none';
left:66%;
+
    else if(l[i].className == 'BibTeX')    l[i].style.display = s == 2 ? 'block' : 'none';
padding:0;
+
    else if(l[i].className == 'ISBD')      l[i].style.display = s == 3 ? 'block' : 'none';
margin:0;
+
    else if(l[i].className == 'ISO690')    l[i].style.display = s == 4 ? 'block' : 'none';
border-collapse: collapse;
+
  }
 
}
 
}
 +
addOnloadHook(addBibSubsetMenu);
 +
} // Fin du code concernant l'espace de nom 'Référence'
  
#listeImprimeurs table {
+
if(!Array.indexOf){
border: 0px solid #AAA;
+
Array.prototype.indexOf = function(obj){
padding:0;
+
for(var i=0; i<this.length; i++){
margin:0;
+
if(this[i]==obj){
border-collapse: collapse;
+
return i;
 +
}
 +
}
 +
return -1;
 +
}
 
}
 
}
  
#listeImprimeurs table tr {
+
/*
padding:0;
+
* Fonction
margin:0;
+
*
 +
* Récupère la valeur d'une variable globale en gérant le cas lorsque cette variable n'existe pas
 +
* @param nom_variable Nom de la variable dont on veut connaître la valeur
 +
* @param val_defaut Valeur par défaut si la variable n'existe pas
 +
* @return La valeur de la variable, ou val_defaut si la variable n'existe pas
 +
*
 +
* Auteur : Sanao
 +
* Dernière révision : 22 novembre 2007
 +
*/
 +
function getVarValue(nom_variable, val_defaut)
 +
{
 +
var result = null;
 +
 +
try
 +
{
 +
result = eval(nom_variable.toString());
 +
}
 +
catch (e)
 +
{
 +
result = val_defaut;
 +
}
 +
 +
return(result);
 
}
 
}
  
#listeImprimeurs table tr td {
+
/*
border: 1px solid #AAA;
+
* Fonction
padding: 3px;
+
*
margin:0;
+
* Retourne une chaîne de caractères de la date courante selon dans un certain format
border-collapse: collapse;
+
* @param format Format de la date "j" pour le jour, "m" pour le mois et "a" pour l'année. Ainsi si l'on est le 21 novembre 2007 et l'on passe en paramètre cette chaîne "a_m_d", la chaîne retournée sera "2007_novembre_21"
width: 220px;
+
* Auteur : Sanao
 +
* Dernière révision : 21 novembre 2007
 +
*/
 +
function getStrDateToday(format)
 +
{
 +
  var str_mois = new Array();
 +
  with (str_mois)
 +
  {
 +
    push("janvier");
 +
    push("février");
 +
    push("mars");
 +
    push("avril");
 +
    push("mai");
 +
    push("juin");
 +
    push("juillet");
 +
    push("août");
 +
    push("septembre");
 +
    push("octobre");
 +
    push("novembre");
 +
    push("décembre");
 +
  }
 +
  var today = new Date();
 +
  var day = today.getDate();
 +
  var year = today.getYear();
 +
  if (year < 2000)
 +
  {
 +
    year = year + 1900;
 +
  }
 +
  var str_date = format;
 +
 +
  //Création de la chaîne
 +
  var regex = /j/gi;
 +
  str_date = str_date.replace(regex, day.toString());
 +
  regex = /a/gi;
 +
  str_date = str_date.replace(regex, year.toString());
 +
  regex = /m/gi;
 +
  str_date = str_date.replace(regex, str_mois[today.getMonth()]);
 +
 +
  return (str_date);
 
}
 
}
  
/* Modèle:Autres projets */
+
/*
#autres_projets, .interprojet {
+
  Outil pour permettre l'affichage immédiat d'un javascript pour tous les utilisateurs en même temps.
border: 1px solid #aaa;
+
  Même s'ils ne rechargent pas Wikipédia avec CTRL+R.
padding: 4px;
+
  Utile initialement pour prévoir une bonne réactivité et un lancement général du [[Projet:Impression]].
font-size: 90%;
+
  Plyd - 12 octobre 2008
background: #f9f9f9;
+
  tag urgentsynchronejs inclus (pas encore) dans [[MediaWiki:Copyright]]
float: right;
+
*/
clear: right;
+
function urgentSynchroneJsLoad() {
margin: 1em 0 1em 1em;
+
  if (document.getElementById('urgentsynchronejs')) {
width: 250px;
+
    jsname = "MediaWiki:Common.js/"+document.getElementById('urgentsynchronejs').title;
}
+
    loadJs(jsname);
#autres_projets p, .interprojet p {
+
  }
text-align:center;
 
margin: 5px 0;
 
}
 
#autres_projets ul, .interprojet ul {
 
list-style-type: none;
 
list-style-image: none;
 
margin: 0;
 
padding: 0;
 
}
 
#autres_projets li, .interprojet li {
 
margin: 0;
 
padding: 7px 0 7px 35px;
 
background: no-repeat left center;
 
}
 
.interprojet li.interprojet_top {
 
background-position: left top;
 
}
 
#autres_projets li.commons, .interprojet li.commons {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/25px-Commons-logo.svg.png);
 
}
 
#autres_projets li.species, .interprojet li.species {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikispecies-logo.svg/25px-Wikispecies-logo.svg.png);
 
}
 
#autres_projets li.dictionary, .interprojet li.dictionary {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Wiktprintable_without_text.svg/25px-Wiktprintable_without_text.svg.png);
 
}
 
#autres_projets li.versity, .interprojet li.versity {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/9/91/Wikiversity-logo.svg/25px-Wikiversity-logo.svg.png);
 
}
 
#autres_projets li.books, .interprojet li.books {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Wikibooks-logo-fr.png/25px-Wikibooks-logo-fr.png);
 
}
 
#autres_projets li.source, .interprojet li.source {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/25px-Wikisource-logo.svg.png);
 
}
 
#autres_projets li.quote, .interprojet li.quote {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/25px-Wikiquote-logo.svg.png);
 
}
 
#autres_projets li.news, .interprojet li.news {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/2/24/Wikinews-logo.svg/25px-Wikinews-logo.svg.png);
 
}
 
#autres_projets li.meta, .interprojet li.meta {
 
background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Wikimedia_Community_Logo.svg/25px-Wikimedia_Community_Logo.svg.png);
 
}
 
#autres_projets li a, .interprojet li a {
 
font-weight: bold;
 
font-style: italic;
 
 
}
 
}
 +
addLoadEvent(urgentSynchroneJsLoad);
  
/* Classes pour modèles de sommaires allégés */
+
/* Permet d'afficher un compte à rebours sur une page avec le modèle [[Modèle:Compte à rebours]] */
/* [[Modèle: TOC_1]] */
+
/* Plyd - 3 février 2009 */
.toc_niveau_1 ul ul {
+
function Rebours() {
display: none;
+
  if(wgNamespaceNumber==0) return;
}
+
  try {
/* [[Modèle: TOC_2]] */
+
  if (document.getElementById("rebours")) {
.toc_niveau_2 ul ul ul {
+
      destime = document.getElementById("rebours").title.split(";;");
display: none;
+
      Maintenant = (new Date).getTime();
 +
      Future = new Date(Date.UTC(destime[0], (destime[1]-1), destime[2], destime[3], destime[4], destime[5])).getTime();
 +
      Diff = (Future-Maintenant);
 +
      if (Diff < 0) {Diff = 0}
 +
      TempsRestantJ = Math.floor(Diff/(24*3600*1000));
 +
      TempsRestantH = Math.floor(Diff/(3600*1000)) % 24;
 +
      TempsRestantM = Math.floor(Diff/(60*1000)) % 60;
 +
      TempsRestantS = Math.floor(Diff/1000) % 60;
 +
      TempsRestant = "" + destime[6] + " ";
 +
      if (TempsRestantJ == 1) {
 +
        TempsRestant = TempsRestant + TempsRestantJ + " jour ";
 +
      } else if (TempsRestantJ > 1) {
 +
        TempsRestant = TempsRestant + TempsRestantJ + " jours ";
 +
      }
 +
      TempsRestant = TempsRestant + TempsRestantH + " h " + TempsRestantM  + " min " + TempsRestantS + " s";
 +
      document.getElementById("rebours").innerHTML = TempsRestant;
 +
      setTimeout("Rebours()", 1000)
 +
    }
 +
  } catch (e) {}
 
}
 
}
 +
addLoadEvent(Rebours);
  
/* Patch temporaire pour bug de rendu des liens externes hors des articles */
+
/* Ajoute la date de dernière modification sur le bandeau événement récent */
 +
/* Plyd - 12 juin 2009 */
 +
function LastModCopy() {
 +
  /* classical monobook */
 +
  if (document.getElementById("lastmodcopy") != null) {
 +
    document.getElementById("lastmodcopy").innerHTML = document.getElementById("lastmod").innerHTML;
 +
  }
 +
  /* new theme */
 +
  if (document.getElementById("foot-info-lastmod") != null) {
 +
    document.getElementById("foot-info-lastmod").innerHTML = document.getElementById("foot-info-lastmod").innerHTML;
 +
  }
  
#bodyContent a.external, #bodyContent a[href^="gopher://"] {
 
padding:0 13px 0 0;
 
}
 
//Boites déroulantes
 
div.BoxenVerschmelzen, div.NavFrame {
 
    margin:0px;
 
    padding:2px;
 
    border:1px solid #AAAAAA;
 
    text-align:center;
 
    border-collapse:collapse;
 
    font-size:95%;
 
 
}
 
}
 +
addLoadEvent(LastModCopy);
  
div.BoxenVerschmelzen div.NavFrame {
+
/* Désactivation de la MISE EN GRAS DE L'ONGLET MODIFIER (copié de en:)
    border-style:none;
+
ET de la MISE EN BLANC SUR FOND BLEU DE L'ONGLET MODIFIER (copié de pl:) */
    border-style:hidden;
+
if (window.BoutonModifier==true)
 +
{
 +
  importStylesheet('MediaWiki:AncienBoutonModifier.css');
 
}
 
}
  
div.NavFrame + div.NavFrame {
+
/* WikiForm pour la génération facilité de modèles */
    border-top-style:none;
+
/* Plyd - 10/02/2008 */
    border-top-style:hidden;
+
if (document.getElementById("WikiForm")) {
 +
  importScript("MediaWiki:Gadget-WikiForm.js");
 
}
 
}
  
div.NavPic {
 
    background-color:#FFFFFF;
 
    margin:0px;
 
    padding:2px;
 
    float:left;
 
}
 
  
div.NavFrame div.NavHead {
+
/* petites fonctions pratiques  - Darkoneko, 09/01/2008 */
    height:1.6em;
 
    font-weight:bold;
 
    font-size:100%;
 
    background-color:#EFEFEF;
 
}
 
  
div.NavFrame p {
+
//créé un lien et le retourne.
    font-size:100%;
+
//le parametre onclick est facultatif.
}
+
function createAdressNode(href, texte, onclick) {
 +
  var a = document.createElement('a')
 +
  a.href = href
 +
  a.appendChild(document.createTextNode( texte ) )
 +
  if(arguments.length == 3) {  a.setAttribute("onclick", onclick )  }
  
div.NavFrame div.NavContent {
+
  return a
    font-size:100%;
 
 
}
 
}
  
div.NavFrame div.NavContent p {
+
//Créé un cookie. il n'existais qu'une version dédiée à l'accueil. Celle ci est plus générique
    font-size:100%;
+
//le parametre duree est en jours
 +
function setCookie(nom, valeur, duree ) {
 +
  var expDate = new Date()
 +
  expDate.setTime(expDate.getTime() + ( duree * 24 * 60 * 60 * 1000))
 +
  document.cookie = nom + "=" + escape(valeur) + ";expires=" + expDate.toGMTString() + ";path=/"
 
}
 
}
  
div.NavEnd {
+
/*
    margin:0px;
+
/!\ incompatible avec IE dans sa forme actuelle /!\
    padding:0px;
 
    line-height:1px;
 
    clear:both;
 
}
 
  
 +
get_editcounts() TODO :
 +
* rendre le morceau d'ajax compatible avec IE (users[a].attributes['editcount'].value est bon sous FF mais renvoie null sous IE)
 +
    voir l'évolution du truc avec alert(http_request); alert(http_request.responseXML); ....
 +
* splitter la requete API en plusieurs morceaux s'il y a trop de noms (probablement lié à la taille de l'url).
 +
      pour l'instant, la requete échouera si l'on demande plus de ~350 users à la fois. => couper le tableau avec .slice()
  
 +
*/
 +
function get_editcounts(noms) {
 +
  var http_request;
 +
  if (window.XMLHttpRequest) { // Mozilla, Safari, ...
 +
      http_request = new XMLHttpRequest()
 +
      if (http_request.overrideMimeType)
 +
        http_request.overrideMimeType('text/xml')
 +
  } else {
 +
      alert("la partie editcount de addContribLinkNearTalkPageInContributions n'est pas compatible internet explorer")
 +
      return;
 +
      /*
 +
        if (window.ActiveXObject) { // IE
 +
                try {
 +
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
 +
                } catch (e) {
 +
                        try {
 +
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
 +
                        } catch (e) {}
 +
                }
  
  
/* Standard Navigationsleisten */
+
      */
 +
  }
 +
  var address = "/w/api.php?format=xml&action=query&list=users&usprop=editcount&ususers=" + noms.join('|')
 +
  http_request.open('GET', address , false)
 +
  http_request.send(null)
  
div.BoxenVerschmelzen,
+
  var users = http_request.responseXML.documentElement.getElementsByTagName("user")
div.NavFrame {
+
  var usersEditCount =new Array() //tableau des valeurs (nom user => editcount)
        margin: 0px;
+
  for (var a=0 ; a < users.length ; a++) {  
        padding: 2px;
+
      //apparemment impossible de faire des clefs nommées, donc tant pis.
        border: 1px solid #aaaaaa;
+
     
        text-align: center;
+
      if( typeof( users[ a ].attributes['editcount'] ) != 'undefined' ) {
        border-collapse: collapse;
+
          usersEditCount[ users[ a ].attributes['name'].value  ] = users[a].attributes['editcount'].value
        font-size: 95%;
+
      } else { //cas d'une page de discussion utilisateur qui ne correspond pas à un compte (sinon ça plante)
}
+
          usersEditCount[ users[ a ].attributes['name'].value  ] = 'N/A'
div.BoxenVerschmelzen div.NavFrame {
+
      }
        border-style: none;
+
  }
        border-style: hidden;
+
   
}
+
  return usersEditCount
div.NavFrame + div.NavFrame {
 
        border-top-style: none;
 
        border-top-style: hidden;
 
}
 
div.NavPic {
 
        background-color: #ffffff;
 
        margin: 0px;
 
        padding: 2px;
 
        float: left;
 
}
 
div.NavFrame div.NavHead {
 
        height: 1.6em;
 
        font-weight: bold;
 
        font-size: 100%;
 
        background-color: #efefef;
 
}
 
div.NavFrame p {
 
        font-size: 100%;
 
}
 
div.NavFrame div.NavContent {
 
        font-size: 100%;
 
}
 
div.NavFrame div.NavContent p {
 
        font-size: 100%;
 
}
 
div.NavEnd {
 
        margin: 0px;
 
        padding: 0px;
 
        line-height: 1px;
 
        clear: both;
 
 
}
 
}
  
.NavToggle {
 
  
  font-size: x-small;
+
/* /petites fonctions pratiques */
  float:right;
 
 
 
}
 

Version du 19 juin 2011 à 08:33

/**
 * N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.
 * 
 * ATTENTION : Avant de modifier cette page, veuillez tester vos changements avec votre propre
 * monobook.js. Une erreur sur cette page peut faire bugger le site entier (et gêner l'ensemble des
 * visiteurs), même plusieurs heures après la modification !
 * 
 * Prière de ranger les nouvelles fonctions dans les sections adaptées :
 * - Fonctions JavaScript
 * - Fonctions spécifiques pour MediaWiki
 * - Applications spécifiques à la fenêtre d'édition
 * - Applications qui peuvent être utilisées sur toute page
 * - Applications spécifiques à un espace de nom ou une page
 * 
 * <nowiki> /!\ Ne pas retirer cette balise
 */



/*************************************************************/
/* Fonctions JavaScript : pallient les limites de JavaScript */
/* Surveiller : http://www.ecmascript.org/                   */
/*************************************************************/

/**
 * 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) {
  if (node.className == className) {
    return true;
  }
  var reg = new RegExp('(^| )'+ className +'($| )')
  if (reg.test(node.className)) {
    return true;
  }
  return false;
}
 
function addClass(node, className) {
    if (hasClass(node, className)) {
        return false;
    }
    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 (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;
}

/**********************************************************************************************************/
/* 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'))
    document.body.className = '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};
}



/****************************************/
/* Applications pour l'ensemble du site */
/****************************************/

/**
 * Tout ce qui concerne la page d'édition
 * Voir MediaWiki:Common.js/edit.js pour ces fonctions
 */
if( wgAction == 'edit' || wgAction == 'submit' ) {
  importScript( 'MediaWiki:Common.js/edit.js' );
}

/**
 * Liens d'accès directs pour la navigation au clavier
 */
function showSkipLinks() {
  var jump_to_nav = document.getElementById('jump-to-nav');
  if( !jump_to_nav ) return;
  var skip_links = jump_to_nav.getElementsByTagName('A')[0];
  jump_to_nav.className='hidden';
  skip_links.onfocus=function() {
    jump_to_nav.className='';
  }
}
addOnloadHook(showSkipLinks);

/**
 * Réécriture des titres
 *
 * Fonction utilisée par [[Modèle:Titre incorrect]]
 * 
 * La fonction cherche un bandeau de la forme
 * <div id="RealTitleBanner">
 *   <span id="RealTitle">titre</span>
 * </div>
 *
 * Un élément comportant id="DisableRealTitle" désactive la fonction
 */
function rewritePageH1() {
  var realTitleBanner = document.getElementById('RealTitleBanner');
  if (realTitleBanner) {
    if (!document.getElementById('DisableRealTitle')) {
      var realTitle = document.getElementById('RealTitle');
      var h1 = document.getElementsByTagName('h1')[0];
      var realH1 = getTextContent(h1);     
      if (realTitle && h1) {
        var titleText = realTitle.innerHTML;
        if (titleText == '') h1.style.display = 'none';
        else h1.innerHTML = titleText;
        realTitleBanner.style.display = 'none';
        if(wgNamespaceNumber==0) {
          var avert = document.createElement('p')
          avert.style.fontSize = '90%';
          avert.innerHTML = 'Titre à utiliser pour créer un lien interne: <b>'+realH1+'</b>';
          insertAfter(document.getElementById('content'),avert,h1);
        }

      }
    }
  }
}
addOnloadHook(rewritePageH1);

/**
 * Icônes de titre
 * 
 * Cherche les icônes de titre (class="icone_de_titre") et les
 * déplace à droite du titre de la page.
 * Doit être exécuté après une éventuelle correction de titre.
 */
function IconesDeTitre() {
  var h1 = document.getElementsByTagName("h1")[0];
  var icones = getElementsByClass( "icone_de_titre", document, "div" );
  for( var j = icones.length; j > 0; --j ){
    icones[j-1].style.display = "block"; /* annule display:none par défaut */
    icones[j-1].style.borderWidth = "1px";
    icones[j-1].style.borderStyle = "solid";
    icones[j-1].style.borderColor = "white";
    if( skin == "modern" ){
      icones[j-1].style.marginTop = "0em";
    }
    h1.parentNode.insertBefore(icones[j-1], h1); /* déplacement de l'élément */
  }
}
addOnloadHook(IconesDeTitre);

/**
 * Déplacement de coordonnées qui apparaissent en haut de la page 
 */
function moveCoord() {
  var h1 = document.getElementsByTagName("h1")[0];
  var coord = document.getElementById('coordinates');
  if ( !coord || !h1 ) return;
  coord.id = "coordinates-title";
  h1.parentNode.insertBefore(coord, h1); /* déplacement de l'élément */
}
addOnloadHook(moveCoord);

/**
 * Déplacement des [modifier]
 *
 * Correction des titres qui s'affichent mal en raison de limitations dues à MediaWiki.
 * Ce script devrait pouvoir être supprimé lorsque le [[bugzilla:11555]] sera résolu (comportement équivalent)
 *
 * Copyright 2006, Marc Mongenet. Licence GPL et GFDL.
 *
 * The function looks for <span class="editsection">, and move them
 * at the end of their parent and display them inline in small font.
 * var oldEditsectionLinks=true disables the function.
 */
function setModifySectionStyle() 
{
 
        var process = function(list)
        {
                for(var i=0;i!=list.length;i++)
                {
                        var span=list[i].firstChild
 
                        if (span.className == "editsection") 
                        {
                                span.style.fontSize = "xx-small";
                                span.style.fontWeight = "normal";
                                span.style.cssFloat = span.style.styleFloat = "none";
                                span.parentNode.appendChild(document.createTextNode(" "));
                                span.parentNode.appendChild(span);
                        }
                }
        }
 
        try 
        {
                if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
                process(document.getElementsByTagName("h2"));
                process(document.getElementsByTagName("h3"));
                process(document.getElementsByTagName("h4"));
                process(document.getElementsByTagName("h5"));
                process(document.getElementsByTagName("h6"));
 
        }
        catch (e) { }
}
addOnloadHook(setModifySectionStyle);

/** 
 * Boîtes déroulantes
 *
 * Pour [[Modèle:Méta palette de navigation]]
 */
var autoCollapse = 2;
var collapseCaption = '[Enrouler]';
var expandCaption = '[Dérouler]';

function collapseTable( tableIndex ) {
  var Button = document.getElementById( "collapseButton" + tableIndex );
  var Table = document.getElementById( "collapsibleTable" + tableIndex );
  if ( !Table || !Button ) return false;

  var Rows = Table.getElementsByTagName( "tr" ); 

  if ( Button.firstChild.data == collapseCaption ) {
    for ( var i = 1; i < Rows.length; i++ ) {
      Rows[i].style.display = "none";
    }
    Button.firstChild.data = expandCaption;
  } else {
    for ( var i = 1; i < Rows.length; i++ ) {
      Rows[i].style.display = Rows[0].style.display;
    }
    Button.firstChild.data = collapseCaption;
  }
}

function createCollapseButtons() {
  var tableIndex = 0;
  var NavigationBoxes = new Object();
  var Tables = document.getElementsByTagName( "table" );

  for ( var i = 0; i < Tables.length; i++ ) {
    if ( hasClass( Tables[i], "collapsible" ) ) {
      NavigationBoxes[ tableIndex ] = Tables[i];
      Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );

      var Button     = document.createElement( "span" );
      var ButtonLink = document.createElement( "a" );
      var ButtonText = document.createTextNode( collapseCaption );

      Button.style.styleFloat = "right";
      Button.style.cssFloat = "right";
      Button.style.fontWeight = "normal";
      Button.style.textAlign = "right";
      Button.style.width = "6em";

      ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
      ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
      ButtonLink.appendChild( ButtonText );

      Button.appendChild( ButtonLink );

      var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
      /* only add button and increment count if there is a header row to work with */
      if (Header) {
        Header.insertBefore( Button, Header.childNodes[0] );
        tableIndex++;
      }
    }
  }

  for (var i = 0; i < tableIndex; i++) {
    if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) collapseTable( i );
  }
}
addOnloadHook(createCollapseButtons);

/**
 * Pour [[Modèle:Boîte déroulante]] 
 */
var NavigationBarShowDefault = 0;
 
function toggleNavigationBar(indexNavigationBar) {
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
  if (!NavFrame || !NavToggle) return;
 
  // surcharge des libellés dérouler/enrouler grâce a l'attribut title
  // exemple : title="[déroulade]/[enroulade]"
  var caption = [expandCaption, collapseCaption];
  if (NavFrame.title && NavFrame.title.length > 0) {
    caption = NavFrame.title.split("/");
    if (caption.length < 2) caption.push(collapseCaption);
  }
 
  // if shown now
  if (NavToggle.firstChild.data == caption[1]) {
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'none';
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'none';
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[0];
    }
 
  // if hidden now
  } else if (NavToggle.firstChild.data == caption[0]) {
    for ( var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
      if (hasClass(NavChild, 'NavPic')) NavChild.style.display = 'block';
      if (hasClass(NavChild, 'NavContent')) NavChild.style.display = 'block';
      if (hasClass(NavChild, 'NavToggle')) NavChild.firstChild.data = caption[1];
    }
  }
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton() {
  var indexNavigationBar = 0;
  var NavFrame;
  // iterate over all < div >-elements
  for( var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++ ) {
    // if found a navigation bar
    if (hasClass(NavFrame, "NavFrame")) {
      indexNavigationBar++;
      var NavToggle = document.createElement("a");
      NavToggle.className = 'NavToggle';
      NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
      NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
      // surcharge des libellés dérouler/enrouler grâce a l'attribut title
      var caption = collapseCaption;
      if (NavFrame.title && NavFrame.title.indexOf("/") > 0) {
         caption = NavFrame.title.split("/")[1];
      }

      var NavToggleText = document.createTextNode(caption);
      NavToggle.appendChild(NavToggleText);
 
      // add NavToggle-Button as first div-element 
      // in <div class="NavFrame">
      NavFrame.insertBefore( NavToggle, NavFrame.firstChild );
      NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
    }
  }
  // if more Navigation Bars found than Default: hide all
  if (NavigationBarShowDefault < indexNavigationBar) {
    for( var i=1; i<=indexNavigationBar; i++ ) {
      toggleNavigationBar(i);
    }
  }
}
addOnloadHook(createNavigationBarToggleButton);

/**
 * WikiMiniAtlas
 *
 * voir WP:WMA 
 */
if (wgServer == "https://secure.wikimedia.org") {
  var metaBase = "https://secure.wikimedia.org/wikipedia/meta";
} else {
  var metaBase = "http://meta.wikimedia.org";
}
importScriptURI(metaBase+"/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400")

var wma_settings = { 
  buttonImage: 'http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Geographylogo.svg/18px-Geographylogo.svg.png'
}

/**
 * Affiche un modèle Information sur la page de téléchargement de fichiers [[Spécial:Téléchargement]]
 * Voir aussi [[MediaWiki:Onlyifuploading.js]]
 */

function includePage(name) {
    document.write('<script type="text/javascript" src="' + wgScript + '?title='
        + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>');    // smaxage=3600
}

if (wgCanonicalSpecialPageName == "Upload") {
    includePage("MediaWiki:Onlyifuploading.js");
}
 

/**
 * Utilisation du modèle Modèle:Images
 */
function toggleImage(group, remindex, shwindex) {
  document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
  document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
}

function imageGroup(){
  if (document.URL.match(/printable/g)) return;
  var bc=document.getElementById("bodyContent");
  if( !bc ) bc = document.getElementById("mw_contentholder");
  if( !bc ) return;
  var divs=bc.getElementsByTagName("div");
  var i = 0, j = 0;
  var units, search;
  var currentimage;
  var UnitNode;
  for (i = 0; i < divs.length ; i++) {
    if (divs[i].className != "ImageGroup") continue;
    UnitNode=undefined;
    search=divs[i].getElementsByTagName("div");
    for (j = 0; j < search.length ; j++) {
      if (search[j].className != "ImageGroupUnits") continue;
      UnitNode=search[j];
      break;
    }
    if (UnitNode==undefined) continue;
    units=Array();
    for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
      var temp = UnitNode.childNodes[j];
      if (temp.className=="center") units.push(temp);
    }
    for (j = 0 ; j < units.length ; j++) {
      currentimage=units[j];
      currentimage.id="ImageGroupsGr"+i+"Im"+j;
      var imghead = document.createElement("div");
      var leftlink;
      var rightlink;
      if (j != 0) {
        leftlink = document.createElement("a");
        leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
        leftlink.innerHTML="◀";
      } else {
        leftlink = document.createElement("span");
        leftlink.innerHTML="&nbsp;";
      }
      if (j != units.length - 1) {
        rightlink = document.createElement("a");
        rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
        rightlink.innerHTML="▶";
      } else {
        rightlink = document.createElement("span");
        rightlink.innerHTML="&nbsp;";
      }
      var comment = document.createElement("tt");
      comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
      with(imghead) {
        style.fontSize="110%";
        style.fontweight="bold";
        appendChild(leftlink);
        appendChild(comment);
        appendChild(rightlink);
      }
      currentimage.insertBefore(imghead,currentimage.childNodes[0]);
      if (j != 0) currentimage.style.display="none";
    }
  }
}
addOnloadHook(imageGroup);

/**
 * Ajout d'un style particulier aux liens interlangues vers un bon article ou
 * un article de qualité
 */
function lienAdQouBAouPdQ() {
  // links are only replaced in p-lang
  if(window.disableFeaturedInterwikiLinks!=undefined) return
  var pLang = document.getElementById("p-lang");
  if (!pLang) return;
  var lis = pLang.getElementsByTagName("li");
  var l = lis.length
  
  if(wgNamespaceNumber==0)
	for (var i=0; i<l; i++) 
	{
		// ADQ- est intentionnel pour correspondre au modèle Lien AdQ, on
		// ne doit pas le corriger.
		if (document.getElementById("BA-" + lis[i].className)) {
		lis[i].className += " BA";
		lis[i].title = "Lien vers un bon article";
		} else if (document.getElementById("ADQ-" + lis[i].className)) {
		lis[i].className += " AdQ";
		lis[i].title = "Lien vers un article de qualité";
		} 
	}
  else if(wgNamespaceNumber==100)
	for (var i=0; i<l; i++) 
	{
		if (document.getElementById("PdQ-" + lis[i].className)) {
		lis[i].className += " AdQ";
		lis[i].title = "Lien vers un portail de qualité";
		}
	}
}
addOnloadHook(lienAdQouBAouPdQ);

/**
 * Redirect vers wikibooks etc.
 *
 */
var redirectedFromArticleDatas = new Array(
   new Array('Wikipédia:Redirect_vers_Wikibooks', 'wikibooks'),
   new Array('Wikipédia:Redirect_vers_Wikisource', 'wikisource'),
   new Array('Wikipédia:Redirect_vers_Wikiversité', 'wikiversity'),
   new Array('Wikipédia:Redirect_vers_Wikiquote', 'wikiquote'),
   new Array('Wikipédia:Redirect_vers_Wikinews', 'wikinews'),
   new Array('Wikipédia:Redirect_vers_Wiktionnaire', 'wiktionary')
);

function redirectedFromArticle() {
   if (wgIsArticle == false)
       return;
   for (var i = 0; i < redirectedFromArticleDatas.length; ++i) {
     var page_match = redirectedFromArticleDatas[i];
     var index = wgPageName.indexOf(page_match[0]);
     if (index == 0) {
        var div = document.getElementById('contentSub');
        var span = document.getElementById('redirected_from');
        // real target is always encoded in the anchor.
        target = window.location.hash;
        if (!div || !span || target == '')
            break;

        target = target.slice(1);
        // Konqueror 3.5 work around
        if (target.indexOf('#') == 0)
            target = target.slice(1);
        target = target.split('.23');
        target[0] = target[0].replace(/\.([0-9A-Z][0-9A-Z])/g, '%$1');
        var quoted = target[0]
        if (target[1].length)
            quoted += '#' + target[1]
        quoted = quoted.replace(/%2F/g, '/');
        var display = target[2]
        display = display.replace(/\.([0-9A-Z][0-9A-Z])/g, '%$1');
        display = decodeURI(display);
        display = display.replace(/_/g, ' ');

        var e = document.createElement('A');
        e.href = 'http://fr.' + page_match[1] + '.org/wiki/' + quoted;
        e.innerHTML = display;
        span.replaceChild(e, span.firstChild);
        break;
     }
   }
}
addOnloadHook(redirectedFromArticle);

/**
 * Déplace les liens portails vers la boite de catégorie
 * 
 * Copyright 2007, fr:user:Aoineko. Licence GFDL et GPL.
 */
var gUseMovePortalToCategoryBox = 1;

function movePortalToCategoryBox() {
   if(!gUseMovePortalToCategoryBox)
      return;

   // search for portails
   var div_portal = document.getElementById('portallinks');
   if(div_portal && (div_portal.className == 'movable')) {
      div_portal.style.display = 'none'; // hide the portail div
      var div_cat = document.getElementById('catlinks'); // get cat div
      if(!div_cat) { // no category box ? then create it
         var div_foot;
         var divs = document.getElementsByTagName('div');
         for(var i = 0; i < divs.length ; i++)
            if(divs[i].className == 'printfooter')
               div_foot = divs[i];
         div_cat = document.createElement("div");
         div_cat.setAttribute('id', 'catlinks');
         div_foot.parentNode.insertBefore(div_cat, div_foot); 
      }
      div_cat.innerHTML = div_portal.innerHTML + '<hr/>' + div_cat.innerHTML;
   }
}
addOnloadHook(movePortalToCategoryBox);

/**
 * Permet d'afficher les catégories cachées pour les contributeurs enregistrés, en ajoutant un (+) à la manière des boîtes déroulantes
 */
function hiddencat()
{
 if(document.URL.indexOf("printable=yes")!=-1) return;
 var cl = document.getElementById('catlinks'); if(!cl) return;
 if( !(hc = document.getElementById('mw-hidden-catlinks')) ) return;
 if( hasClass(hc, 'mw-hidden-cats-user-shown') ) return;
 var nc = document.getElementById('mw-normal-catlinks');
 if( !nc )
 {
  var catline = document.createElement('div');
  catline.id = 'mw-normal-catlinks';
  var a = document.createElement('a');
  a.href = '/wiki/Catégorie:Accueil';
  a.title = 'Catégorie:Accueil';
  a.appendChild(document.createTextNode('Catégories'));
  catline.appendChild(a);
  catline.appendChild(document.createTextNode(' : '));
  nc = cl.insertBefore(catline, cl.firstChild);
 }
 else nc.appendChild(document.createTextNode(' | '));
 var lnk = document.createElement('a');
 lnk.id = 'mw-hidden-cats-link';
 lnk.title = 'Cet article contient des catégories cachées';
 lnk.style.cursor = 'pointer';
 lnk.style.color = 'black';
 lnk.onclick = toggleHiddenCats;
 lnk.appendChild(document.createTextNode('[+]'));
 hclink = nc.appendChild(lnk);
}
function toggleHiddenCats()
{
 if( hasClass(hc, 'mw-hidden-cats-hidden') )
 {
  removeClass(hc, 'mw-hidden-cats-hidden');
  addClass(hc, 'mw-hidden-cat-user-shown');
  changeText(hclink, '[–]');
 }
 else
 {
  removeClass(hc, 'mw-hidden-cat-user-shown');
  addClass(hc, 'mw-hidden-cats-hidden');
  changeText(hclink, '[+]');
 }
}
addOnloadHook(hiddencat);

/**
 * Script pour alterner entre deux cartes de géolocalisation
 */
addOnloadHook(function(){ 
  var cont;
  if(!(wgAction=="view")) return

  cont=getElementsByClass('img_toogle', document.getElementById('bodyContent'), 'div');
  if(cont.length==0) return

  for (var i = 0; i < cont.length ; i++) {
    cont.box = getElementsByClass('geobox',cont[i]);
    cont.box[0].style.display='none';
    cont.box[1].style.borderTop='0';
    var toogle = document.createElement('a');
    toogle.appendChild(document.createTextNode(cont.box[0].getElementsByTagName('img')[0].alt));
    toogle.href='#';
    toogle.className='a_toogle';
    toogle.status = 1;
    toogle.onclick = function() {
      this.removeChild(this.firstChild);
      div0 = getElementsByClass('geobox',this.parentNode)[0];
      div1 = getElementsByClass('geobox',this.parentNode)[1];
      alt0 = div0.getElementsByTagName('img')[0].alt;
      alt1 = div1.getElementsByTagName('img')[0].alt;
      if(this.status==0) {
        div0.style.display='none';
        div1.style.display='';
        this.status=1;
        this.appendChild(document.createTextNode(alt0));
      } else {
        div0.style.display='';
        div1.style.display='none';
        this.status=0;
        this.appendChild(document.createTextNode(alt1));
      }
      return false;
    }
  cont[i].insertBefore(toogle, cont.box[1].nextSibling);
  }
});

/**
 * permet d'ajouter un petit lien (par exemple d'aide) à la fin du titre d'une page.
 * known bug : conflit avec le changement de titre classique.
 * Pour les commentaires, merci de contacter [[user:Plyd|Plyd]].
 */
function rewritePageH1bis() {
  try {
    var helpPage = document.getElementById("helpPage");
    if (helpPage) {
      var helpPageURL = document.getElementById("helpPageURL");
      var h1 = document.getElementsByTagName("h1")[0];
      if (helpPageURL && h1) {
        h1.innerHTML = h1.innerHTML + '<span id="h1-helpPage">' + helpPageURL.innerHTML + '</span>';
        helpPage.style.display = "none";
      }
    }
  } catch (e) {
    /* Something went wrong. */
  }
}
addOnloadHook(rewritePageH1bis);

/**
 * application de [[Wikipédia:Prise de décision/Système de cache]]
 * un <span class="noarchive"> autour du lien l'empêche d'être pris en compte
 * pour celui-ci uniquement
 * un no_external_cache=true dans un monobouc personnel désactive le script
 */

addOnloadHook(function () {

  if (wgNamespaceNumber == 0) {
    if ((typeof no_external_cache != "undefined") && (no_external_cache)) return;
    addcache();
  }
 
  function addcache() {
    var external_links;
    if (document.getElementsByClassName) {
      external_links = document.getElementsByClassName('external');
    } else {
      external_links = getElementsByClass('external',document.getElementById("bodyContent"),'a');
    }

    for( i = 0;i < external_links.length;i++) 
    {
      var chemin = external_links[i].href;

      if(chemin.indexOf("http://wikiwix.com/cache/")==-1 && chemin.indexOf("http://web.archive.org/web/*/")==-1 && chemin.indexOf("wikipedia.org")==-1 && chemin.indexOf("wikimedia.org")==-1 && chemin.indexOf("stable.toolserver.org")==-1)
      {
      var li = external_links[i].parentNode;
      if (li.className == "noarchive") continue;
      var depth = 0;
      while ((depth < 3) && (li.tagName != "OL") && (li.parentNode != null)) {
        li = li.parentNode;
        depth++;
      }
 
      if (li.tagName != "OL" || !(hasClass(li, 'references')) ) continue;
      var titre = getTextContent(external_links[i]); 
      var last = document.createElement("small");
      last.setAttribute("class", "cachelinks");
      last.style.color = "#3366BB";
      last.appendChild(document.createTextNode("\u00a0["));
      insertAfter(external_links[i].parentNode, last, external_links[i]);
 
      var link = document.createElement("a");
      link.setAttribute("href", "http://wikiwix.com/cache/?url=" + chemin.replace(/&/g, "%26"));
      link.setAttribute("title", "archive de "+ titre);
      link.appendChild(document.createTextNode("archive"));
      link.style.color = "#3366BB";
      last.appendChild(link);
      last.appendChild(document.createTextNode("]"));
      }
    }
  }
}
);

/**
 * Application de [[Wikipédia:Prise de décision/Lien interprojet]]
 * Copie les liens interprojets du modèle {{Autres projets}}
 * dans le menu en colonne de gauche.
 * remove_other_projects = true; dans le monobook personnel pour activer
 * en plus la suppression du modèle {{Autres projets}} en bas des articles.
 * no_other_projects = true; dans le monobook personnel pour désactiver
 * entièrement le script et l'ajout dans la colonne de gauche.
 */

function autresProjets() {
  if ((typeof no_other_projects != "undefined") && (no_other_projects)) return;
  if(!(wgNamespaceNumber==0)) return;
  if(!(wgAction=="view")) return;
  var div = document.getElementById('autres_projets');
  if(!div) return;
  var list = div.getElementsByTagName('LI');
  var newlist = document.createElement("UL");
  for (var i = 0; i < list.length ; i++) {
    list.link = list[i].getElementsByTagName('A')[0];
    list.text = list.link.getElementsByTagName('SPAN')[0];
    var newlistitem = document.createElement("LI");
    var newlink = document.createElement("A");
    var newlinktext = document.createTextNode(getTextContent(list.text));
    newlink.appendChild(newlinktext);
    newlink.title=getTextContent(list.link);
    newlink.href=list.link.href;
    newlistitem.appendChild(newlink);
    newlist.appendChild(newlistitem);
  }
  var interProject = document.createElement("DIV");
  interProject.className = 'portlet';
  interProject.innerHTML = '<h5>Autres projets<\/h5><div class="pBody"><ul>'+newlist.innerHTML+'</ul></div>';
  insertAfter(document.getElementById('column-one'),interProject,document.getElementById('p-tb'));
  if ((typeof remove_other_projects != "undefined") && (remove_other_projects)) {
    document=document.getElementById('bodyContent').removeChild(div);
  }
}
 
addOnloadHook(autresProjets);


/************************************************************/
/* Strictement spécifiques à un espace de nom ou à une page */
/************************************************************/

// ESPACE DE NOM 'ARTICLE'
if( wgNamespaceNumber == 0 ) {


} // Fin du code concernant l'espace de nom 'Article'


// PAGE D'ACCUEIL
if( wgTitle == 'Accueil' ) {

/**
 * Suppression du titre sur la page d'accueil, 
 * changement de l'onglet et lien vers la liste complète des Wikipédias depuis l'accueil
 */
function mainPageTransform(){
  if(wgPageName != 'Accueil' && wgPageName != 'Discuter:Accueil') return;
  try {
    document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Accueil';
  } catch (e) { /* Erreur : l'apparence ne gère la pas les onglets */ }
  if(wgPageName == 'Accueil' && wgIsArticle) addPortletLink('p-lang', 'http://www.wikipedia.org/', 'Liste complète', 'interwiki-listecomplete', 'Liste complète des Wikipédias');
}
addOnloadHook(mainPageTransform);

/**
 * Cache cadres de l'accueil
 *
 * Ajoute un lien sur la page d'accueil pour cacher facilement les cadres
 * Mémorisé par cookie.
 * Copyright 2007, fr:user:Plyd et fr:User:IAlex. Licence GFDL et GPL.
 */
/** var cookieCacheCadresName = "cacheCadresAccueil";
var CacheCadresVal = {};
var totalCadresAccueil = 0;

function affCadreAccueil(id) {
  visible = CacheCadresVal[id] = (!CacheCadresVal[id]);
  getElementsByClass('accueil_contenu',null,'div')[id].style.display = visible ? 'block' : 'none';
  document.getElementById('CacheCadreAccueil' + id).innerHTML = visible ? 'masquer' : 'afficher';
  sauverCookieAccueil();
}

function sauverCookieAccueil() {
  var date = new Date();
  date.setTime(date.getTime() + 30*86400*1000);
  var val = 0;
  for ( var i=0; i< totalCadresAccueil ; i++ ) {
    if (!CacheCadresVal[i]) val = val | Math.pow(2,i);
  }
  document.cookie = cookieCacheCadresName + "=" + val + "; expires="+date.toGMTString() + "; path=/";
}

function LiensCadresAccueil() {
  if (wgPageName != "Accueil") return;
  cookieCadresAccueil = getCookieVal(cookieCacheCadresName);
  for ( var i=0; i<5; i++) { 
    var titre = getElementsByClass('headergris',document,'h2')[i];
    if (!titre) break;
    titre.innerHTML += " <span style='font-size: xx-small; font-weight: normal; float: none; margin-right:100px' class='editsection'>[<a id='CacheCadreAccueil" + i + "' href='javascript:affCadreAccueil(" + i + ");'>masquer</a>]</span>";
    CacheCadresVal[i] = true;
    totalCadresAccueil++;
  }
  cookieCadresAccueil = getCookieVal(cookieCacheCadresName);
  for ( var i=0; i< totalCadresAccueil ; i++ ) {
    n =Math.pow(2,i);
    aff = !(cookieCadresAccueil & n);
    if (!aff) affCadreAccueil(i);
  }
}
addOnloadHook(LiensCadresAccueil); **/
} // Fin du code concernant la page d'accueil


// ESPACE DE NOM 'SPECIAL'
if( wgNamespaceNumber == -1 ) {

/**
 * Afficher une explication au nombre d'octets dans la liste de suivi
 */
function toolTipPlusMinus() {
  if(wgCanonicalSpecialPageName != "Watchlist") return
  var tt = "Nombre d'octets d'écart entre les deux dernières versions de la page";
  var elmts = document.getElementsByTagName("span");
  for(var cpt = 0; cpt < elmts.length; cpt++) {
    if (/mw-plusminus-(pos|neg|null)/.test(elmts[cpt].className) || /mw-plusminus-(pos|neg|null)/.test(elmts[cpt].getAttribute("class")))
      elmts[cpt].title = tt;
  }
}
addOnloadHook(toolTipPlusMinus);

/**
 * Modifie Special:Search pour pouvoir utiliser différents moteurs de recherche,
 * disponibles dans une boîte déroulante.
 * Auteurs : Jakob Voss, Guillaume, importé depuis la Wiki allemande
 * <pre><nowiki>
 */

function externalSearchEngines() {
  if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
  if (wgPageName != "Spécial:Recherche") return;

  var mainNode = document.getElementById("powersearch");
  if (!mainNode) mainNode = document.getElementById("search");
  if (!mainNode) return;

  var beforeNode = document.getElementById("mw-search-top-table");
  if (!beforeNode) return;
  beforeNode = beforeNode.nextSibling;
  if (!beforeNode) return;
 
  var firstEngine = "mediawiki";
 
  var choices = document.createElement("div");
  choices.setAttribute("id","searchengineChoices");
  choices.style.textAlign = "center";
 
  var lsearchbox = document.getElementById("searchText");
  var initValue = lsearchbox.value;
 
  var space = "";

  for (var id in searchEngines) {
    var engine = searchEngines[id];
if(engine.ShortName)
   {
    if (space) choices.appendChild(space);
    space = document.createTextNode(" ");
 
    var attr = { 
      type: "radio", 
      name: "searchengineselect",
      value: id,
      onFocus: "changeSearchEngine(this.value)",
      id: "searchengineRadio-"+id
    };
 
    var html = "<input";
    for (var a in attr) html += " " + a + "='" + attr[a] + "'";
    html += " />";
    var span = document.createElement("span");
    span.innerHTML = html;
 
    choices.appendChild( span );
    var label
    if (engine.Template.indexOf('http') == 0) {
      label = document.createElement("a");
      label.href = engine.Template.replace("{searchTerms}", initValue).replace("{language}", "fr");
    } else {
      label = document.createElement("label");
    }
  
    label.appendChild( document.createTextNode( engine.ShortName ) );
    choices.appendChild( label );
  }
 }
  mainNode.insertBefore(choices, beforeNode);
 
  var input = document.createElement("input");
  input.id = "searchengineextraparam";
  input.type = "hidden";
 
  mainNode.insertBefore(input, beforeNode);

  changeSearchEngine(firstEngine, initValue);
}

function changeSearchEngine(selectedId, searchTerms) {

  var currentId = document.getElementById("searchengineChoices").currentChoice;
  if (selectedId == currentId) return;
 
  document.getElementById("searchengineChoices").currentChoice = selectedId;
  var radio = document.getElementById('searchengineRadio-'  + selectedId);
  radio.checked = "checked";
 
  var engine = searchEngines[selectedId];
  var p = engine.Template.indexOf('?');
  var params = engine.Template.substr(p+1);
 
  var form;
  if (document.forms["search"]) {
    form = document.forms["search"];
  } else {
    form = document.getElementById("powersearch");
  }
  form.setAttribute("action", engine.Template.substr(0,p));
 
  var l = ("" + params).split("&");
  for (var idx = 0;idx < l.length;idx++) {
    var p = l[idx].split("=");
    var pValue = p[1];
 
    if (pValue == "{language}") {
    } else if (pValue == "{searchTerms}") {
      var input;
      input = document.getElementById("searchText");
 
      input.name = p[0];
    } else {
      var input = document.getElementById("searchengineextraparam");
 
      input.name = p[0];
      input.value = pValue;
    }
  }
}

if (wgPageName == "Spécial:Recherche") {
var searchEngines = {
  mediawiki: {
    ShortName: "Recherche interne",
    Template: "/wicri-base.fr/index.php?search={searchTerms}"
  },
  wicriInpl: {
    ShortName: "Wicri (Inpl) via Google",
    Template: "http://www.google.fr/search?as_sitesearch=ticri.inpl-nancy.fr&hl={language}&q={searchTerms}"
  },
  exalead: {
    ShortName: "Exalead",
    Template: "http://www.exalead.com/search/wikipedia/results/?q={searchTerms}&language=fr"
  },
  google: {
    ShortName: "Google",
    Template: "http://www.google.fr/search?as_sitesearch=fr.wikipedia.org&hl={language}&q={searchTerms}"
  },
  wikiwix: {
    ShortName: "Wikiwix",
    Template: "http://fr.wikiwix.com/index.php?action={searchTerms}&lang={language}"
  },
 
  wlive: {
    ShortName: "Windows Live",
    Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://fr.wikipedia.org"
  },
  yahoo: {
    ShortName: "Yahoo!",
    Template: "http://fr.search.yahoo.com/search?p={searchTerms}&vs=fr.wikipedia.org"
  },
globalwpsearch: {
    ShortName: "Global WP",
    Template: "http://vs.aka-online.de/cgi-bin/globalwpsearch.pl?timeout=120&search={searchTerms}"
  }
};
addOnloadHook(externalSearchEngines);
}

} // Fin du code concernant l'espace de nom 'Special'


// ESPACE DE NOM 'UTILISATEUR'
if( wgNamespaceNumber == 2 ) {

/* En phase de test */
/* DÉBUT DU CODE JAVASCRIPT DE "CADRE À ONGLETS"
    Fonctionnement du [[Modèle:Cadre à onglets]]
    Modèle implanté par User:Peleguer de http://ca.wikipedia.org
    Actualisé par User:Joanjoc de http://ca.wikipedia.org
    Traduction et adaptation User:Antaya de http://fr.wikipedia.org
*/
function CadreOngletInit(){
 // retour si ailleurs que sur l'espace utilisateur, 
 // sachant que c'est une horreur au niveau de l'accessibilité
 // et qu'il est impossible de "récupérer" ou de recycler ce script
 // (celui-ci fonctionnant par inclusion de sous pages)
 if (wgCanonicalNamespace != 'User') return;  
  var i=0       
  for (i=0;i<=9;i++){
     var vMb = document.getElementById("mb"+i);
     if (!vMb) break;
 
     var j=1    
     var vOgIni = 0  
     for (j=1;j<=9;j++){
        var vBt = document.getElementById("mb"+i+"bt"+j);
        if (!vBt) break;
        vBt.onclick = CadreOngletVoirOnglet;          
        if (vBt.className=="mbBoutonSel") vOgIni=j;  
     }

     if (vOgIni == 0) { 
         vOgIni = 1+Math.floor((j-1)*Math.random()) ;
         document.getElementById("mb"+i+"og"+vOgIni).style.display = "block";
         document.getElementById("mb"+i+"og"+vOgIni).style.visibility = "visible";
         document.getElementById("mb"+i+"bt"+vOgIni).className="mbBoutonSel";
     } 
  }
 }
 
 function CadreOngletVoirOnglet(){
  var vMbNom = this.id.substr(0,3); 
  var vIndex = this.id.substr(5,1); 
 
  var i=1
  for (i=1;i<=9;i++){        
        var vOgElem = document.getElementById(vMbNom+"og"+i);
        if (!vOgElem) break;
        if (vIndex==i){ 
                vOgElem.style.display = "block";
                vOgElem.style.visibility = "visible";
                document.getElementById(vMbNom+"bt"+i).className="mbBoutonSel";
        } else {             
                vOgElem.style.display = "none";
                vOgElem.style.visibility = "hidden";
                document.getElementById(vMbNom+"bt"+i).className="mbBouton";
        }
  }
  return false; 
}
addOnloadHook(CadreOngletInit);
/*FIN DU CODE JAVASCRIPT DE "CADRE À ONGLETS"*/
} // Fin du code concernant l'espace de nom 'Utilisateur'


// ESPACE DE NOM 'RÉFÉRENCE'
if( wgNamespaceNumber == 104 ) {

/*
 * Choix du mode d'affichage des références
 * Devraient en principe se trouver côté serveur
 * @note L'ordre de cette liste doit correspondre a celui de Modèle:Édition !
 */

function addBibSubsetMenu() {
  var specialBib = document.getElementById('specialBib');
  if (!specialBib) return;

  specialBib.style.display = 'block';
  menu = '<select style="display:inline;" onChange="chooseBibSubset(selectedIndex)">'
   + '<option>Liste</option>'
   + '<option>WikiNorme</option>'
   + '<option>BibTeX</option>'
   + '<option>ISBD</option>'
   + '<option>ISO690</option>'
   + '</select>';
  specialBib.innerHTML = specialBib.innerHTML + menu;
  
  /* default subset - try to use a cookie some day */
  chooseBibSubset(0);
}

// select subsection of special characters
function chooseBibSubset(s) {
  var l = document.getElementsByTagName('div');
  for (var i = 0; i < l.length ; i++) {
    if(l[i].className == 'BibList')   l[i].style.display = s == 0 ? 'block' : 'none';
    else if(l[i].className == 'WikiNorme') l[i].style.display = s == 1 ? 'block' : 'none';
    else if(l[i].className == 'BibTeX')    l[i].style.display = s == 2 ? 'block' : 'none';
    else if(l[i].className == 'ISBD')      l[i].style.display = s == 3 ? 'block' : 'none';
    else if(l[i].className == 'ISO690')    l[i].style.display = s == 4 ? 'block' : 'none';
  }
}
addOnloadHook(addBibSubsetMenu);
} // Fin du code concernant l'espace de nom 'Référence'

if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++){
			if(this[i]==obj){
				return i;
			}
		}
		return -1;
	}
}

/*
* Fonction
*
* Récupère la valeur d'une variable globale en gérant le cas lorsque cette variable n'existe pas
* @param nom_variable Nom de la variable dont on veut connaître la valeur
* @param val_defaut Valeur par défaut si la variable n'existe pas
* @return La valeur de la variable, ou val_defaut si la variable n'existe pas
*
* Auteur : Sanao
* Dernière révision : 22 novembre 2007
*/
function getVarValue(nom_variable, val_defaut)
{
	var result = null;
 
	try
	{
		result = eval(nom_variable.toString());
	}
	catch (e)
	{
		result = val_defaut;
	}
 
	return(result);
}

/*
* Fonction
*
* Retourne une chaîne de caractères de la date courante selon dans un certain format
* @param format Format de la date "j" pour le jour, "m" pour le mois et "a" pour l'année. Ainsi si l'on est le 21 novembre 2007 et l'on passe en paramètre cette chaîne "a_m_d", la chaîne retournée sera "2007_novembre_21"
* Auteur : Sanao
* Dernière révision : 21 novembre 2007
*/
function getStrDateToday(format)
{
  var str_mois = new Array();
  with (str_mois)
  {
    push("janvier");
    push("février");
    push("mars");
    push("avril");
    push("mai");
    push("juin");
    push("juillet");
    push("août");
    push("septembre");
    push("octobre");
    push("novembre");
    push("décembre");
  }
  var today = new Date();
  var day = today.getDate();
  var year = today.getYear();
  if (year < 2000)
  {
    year = year + 1900;
  }
  var str_date = format;
 
  //Création de la chaîne
  var regex = /j/gi;
  str_date = str_date.replace(regex, day.toString());
  regex = /a/gi;
  str_date = str_date.replace(regex, year.toString());
  regex = /m/gi;
  str_date = str_date.replace(regex, str_mois[today.getMonth()]);
 
  return (str_date);
}

/*
   Outil pour permettre l'affichage immédiat d'un javascript pour tous les utilisateurs en même temps.
   Même s'ils ne rechargent pas Wikipédia avec CTRL+R.
   Utile initialement pour prévoir une bonne réactivité et un lancement général du [[Projet:Impression]].
   Plyd - 12 octobre 2008
   tag urgentsynchronejs inclus (pas encore) dans [[MediaWiki:Copyright]]
*/
function urgentSynchroneJsLoad() {
  if (document.getElementById('urgentsynchronejs')) {
    jsname = "MediaWiki:Common.js/"+document.getElementById('urgentsynchronejs').title;
    loadJs(jsname);
  }
}
addLoadEvent(urgentSynchroneJsLoad);

/* Permet d'afficher un compte à rebours sur une page avec le modèle [[Modèle:Compte à rebours]] */
/* Plyd - 3 février 2009 */
function Rebours() {
  if(wgNamespaceNumber==0) return;
  try {
   if (document.getElementById("rebours")) {
      destime = document.getElementById("rebours").title.split(";;");
      Maintenant = (new Date).getTime();
      Future = new Date(Date.UTC(destime[0], (destime[1]-1), destime[2], destime[3], destime[4], destime[5])).getTime();
      Diff = (Future-Maintenant);
      if (Diff < 0) {Diff = 0}
      TempsRestantJ = Math.floor(Diff/(24*3600*1000));
      TempsRestantH = Math.floor(Diff/(3600*1000)) % 24;
      TempsRestantM = Math.floor(Diff/(60*1000)) % 60;
      TempsRestantS = Math.floor(Diff/1000) % 60;
      TempsRestant = "" + destime[6] + " ";
      if (TempsRestantJ == 1) {
         TempsRestant = TempsRestant + TempsRestantJ + " jour ";
      } else if (TempsRestantJ > 1) {
         TempsRestant = TempsRestant + TempsRestantJ + " jours ";
      }
      TempsRestant = TempsRestant + TempsRestantH + " h " + TempsRestantM  + " min " + TempsRestantS + " s";
      document.getElementById("rebours").innerHTML = TempsRestant;
      setTimeout("Rebours()", 1000)
    }
  } catch (e) {}
}
addLoadEvent(Rebours);

/* Ajoute la date de dernière modification sur le bandeau événement récent */
/* Plyd - 12 juin 2009 */
function LastModCopy() {
  /* classical monobook */
  if (document.getElementById("lastmodcopy") != null) {
    document.getElementById("lastmodcopy").innerHTML = document.getElementById("lastmod").innerHTML;
  }
  /* new theme */
  if (document.getElementById("foot-info-lastmod") != null) {
    document.getElementById("foot-info-lastmod").innerHTML = document.getElementById("foot-info-lastmod").innerHTML;
  }

}
addLoadEvent(LastModCopy);

/* Désactivation de la MISE EN GRAS DE L'ONGLET MODIFIER (copié de en:) 
ET de la MISE EN BLANC SUR FOND BLEU DE L'ONGLET MODIFIER (copié de pl:) */
if (window.BoutonModifier==true)
{
   importStylesheet('MediaWiki:AncienBoutonModifier.css');
}

/* WikiForm pour la génération facilité de modèles */
/* Plyd - 10/02/2008 */
if (document.getElementById("WikiForm")) {
   importScript("MediaWiki:Gadget-WikiForm.js");
}


/* petites fonctions pratiques  - Darkoneko, 09/01/2008 */

//créé un lien et le retourne.
//le parametre onclick est facultatif.
function createAdressNode(href, texte, onclick) {
  var a = document.createElement('a')
  a.href = href
  a.appendChild(document.createTextNode( texte ) )
  if(arguments.length == 3) {   a.setAttribute("onclick", onclick )  }

  return a
}

//Créé un cookie. il n'existais qu'une version dédiée à l'accueil. Celle ci est plus générique
//le parametre duree est en jours
function setCookie(nom, valeur, duree ) {
   var expDate = new Date()
   expDate.setTime(expDate.getTime() + ( duree * 24 * 60 * 60 * 1000)) 
   document.cookie = nom + "=" + escape(valeur) + ";expires=" + expDate.toGMTString() + ";path=/"
}

/*
/!\ incompatible avec IE dans sa forme actuelle /!\

get_editcounts() TODO :
* rendre le morceau d'ajax compatible avec IE (users[a].attributes['editcount'].value est bon sous FF mais renvoie null sous IE)
    voir l'évolution du truc avec alert(http_request); alert(http_request.responseXML); ....
* splitter la requete API en plusieurs morceaux s'il y a trop de noms (probablement lié à la taille de l'url). 
      pour l'instant, la requete échouera si l'on demande plus de ~350 users à la fois. => couper le tableau avec .slice()

*/
function get_editcounts(noms) {
   var http_request;
   if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      http_request = new XMLHttpRequest()
      if (http_request.overrideMimeType)
         http_request.overrideMimeType('text/xml')
   } else { 
      alert("la partie editcount de addContribLinkNearTalkPageInContributions n'est pas compatible internet explorer")
      return;
      /*
         if (window.ActiveXObject) { // IE
                try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                        try {
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                }


       */
   }
   var address = "/w/api.php?format=xml&action=query&list=users&usprop=editcount&ususers=" + noms.join('|')
   http_request.open('GET', address , false)
   http_request.send(null)

   var users = http_request.responseXML.documentElement.getElementsByTagName("user")
   var usersEditCount =new Array() //tableau des valeurs (nom user => editcount)
   for (var a=0 ; a < users.length ; a++) { 
       //apparemment impossible de faire des clefs nommées, donc tant pis.
       
       if( typeof( users[ a ].attributes['editcount'] ) != 'undefined' ) {
           usersEditCount[ users[ a ].attributes['name'].value  ] = users[a].attributes['editcount'].value
       } else {  //cas d'une page de discussion utilisateur qui ne correspond pas à un compte (sinon ça plante)
           usersEditCount[ users[ a ].attributes['name'].value  ] = 'N/A'
       }
   }
    
   return usersEditCount
}


/* /petites fonctions pratiques */