Difference between revisions of "MediaWiki:Common.js"

From Kiwix
Jump to navigation Jump to search
(New page: /* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée. == Fonctions générales == <pre><nowiki> * Fonctions générales de lanceme...)
(No difference)

Revision as of 10:08, 9 April 2007

/* N'importe quel JavaScript ici sera chargé pour n'importe quel utilisateur et pour chaque page accédée.

== Fonctions générales ==

<pre><nowiki>
 * Fonctions générales de lancement de fonctions ou de script
 */

/**
 * Installation d'une nouvelle fonction de cette façon :
 * addOnloadHook(nom_de_la_fonction); (sans parenthèses)
 * La procédure suivante ne doit plus être utilisée
 */
if (!window.aOnloadFunctions) { 
  var aOnloadFunctions = new Array(); 
}

window.onload = function() 
{
  if (window.aOnloadFunctions) {
    for (var _i=0; _i<aOnloadFunctions.length; _i++) {
      aOnloadFunctions[_i]();
    }
  }
}

function addLoadEvent(func) {
        hookEvent('load', func);
}

/**
 * insertAfter : insérer un élément dans une page
 */
function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

/**
 * Insérer un javascript d'une page particulière, idée de Mickachu
 */
function loadJs(page)
{
 document.write('<script type="text/javascript" src="' +
                'http://fr.wikipedia.org/w/index.php?title=' + page +
                '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
}

/**
 * Projet JavaScript
 */
function obtenir(name)
{
  loadJs('MediaWiki:JSScripts/' + name);
}

/* Fin des fonctions générales</nowiki></pre>

== Fonctions de remplissage automatique ==

<pre><nowiki>
 * Fonctions de remplissage automatique
 */

function InitPaS(page_name)
{
    var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    var c2 = "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des Pages à supprimer -->";
    var tpl = '{{subst:' + 'Initialiser PàS|' + page_name 
      + '|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}';
    return c1 + '
' + tpl + '
' + c2;
}

function InitLANN(page_name)
{
    var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    var c2 = "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des articles non neutres -->";
    var tpl = '{{subst:' + 'Initialiser LANN|' + page_name + '|~~~~}}';
    return c1 + '
' + tpl + '
' + c2;
}

function InitIaS(page_name)
{
    var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    var c2 = "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des Images à supprimer -->";
    var tpl = '{{subst:' + 'Préchargement Image à Supprimer|' + page_name + '|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}';
    return c1 + '
' + tpl + '
' + c2;
}

function InitPAdQ(page_name)
{
    var c1 = "<!--
     À la création de la page, suivez les consignes ci-dessous pour proposer l'article.

     ATTENTION : Veuillez ne rien effacer !
-->";
    var tpl = '{{subst:' + 'Initialiser PAdQ|' + page_name 
      + '|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}';
    var c2 = "| 1. Indiquez sur la ligne ci-dessous la raison pour laquelle vous proposez cet article. Vous n'avez pas besoin de signer/dater, ni de voter par la suite : votre proposition tient lieu de vote 'Pour'. |";
    var tpl2 = "Je propose cet article car... (votre motivation)";
    var c3 = "| 2. Sauvegardez cette page et créez un lien vers elle dans Wikipédia:Proposition articles de qualité.";
    var c4 = "Pour cela, choisissez une thématique dans la page, modifiez-la et ajoutez un lien sous la forme :";
    var c5 = "** [[/" + page_name + "]] proposé le ~~~~~ ";
    var c6 = "Vous devez créer cette référence dans la section 'Phase I' de la thématique choisie (suivez les autres exemples).";
    return c1 + '

' + tpl + '
' + c2 + '
' + tpl2 + '

' + c3 + '

' + c4 + '
' + c5  + '
' + c6 + '}}
';
}

function InitIaA(page_name)
{
    var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    return c1 + '
{{subst:Amélioration image}}';
}

function InitPCP(page_name)
{
    var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    var c2 = "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale des articles soupçonnées de violation de copyright -->";
    var tpl = '{{subst:' + 'Initialiser PCP|' + page_name + '|~~~~}}';
    return c1 + '
' + tpl + '
' + c2;
}

function InitArbReq(page_name)
{
   var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
   var c2 = "<!-- N'oubliez pas d'ajouter un lien vers cette page sur [[Wikipédia:Comité d'arbitrage/Arbitrage]] -->";
   var tpl = '{{subst:' + 'Wikipédia:Comité d\'arbitrage/Arbitrage/Modèle}}'
   return c1 + '
' + tpl + '
' + c2;
}

function InitCdl(page_name)
{
    var c1   = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    var c2   = "<!-- N'oubliez pas d'ajouter le lien vers cette page dans la page principale du comité de lecture -->";
    var tpl  = '{{subst:' + 'Initialiser Comité de lecture|' + page_name + '|~~~~}}';
    var tpl2 = '<noinclude' + '>{{subst:' + 'Initialiser Comité de lecture2' + '}}<' + '/noinclude>';
    return c1 + '
' + c2 + '
' + '
' + tpl2 + '
' + tpl;
}

function InitProjetTraduction(page_name)
{
 var mustSkip=wgPageName.indexOf('Projet:Traduction/*/');
 if (mustSkip == -1) {
    var c1 = "{{subst:Initialiser la page de traduction|" + "{{subst:SUBPAGENAME}}" + "|~~~~|
";
    c1 += "<!--  À la création de la page, suivez les consignes ci-dessous pour proposer l'article.    
";
    c1 += "      ATTENTION : Veuillez ne rien effacer !                                             -->
";
    c1 += "1. Indiquez ci-dessous la langue de l'article à traduire (ex: en de es it pt...)
";
    c1 += "|en|
";
    c1 += "2. Indiquez ci-dessous le nom de l'article original (ex: Frankreich)
";
    c1 += "|Nom original ici| 
";
    c1 += "3. Indiquez ci-dessous en une phrase l'intérêt de la traduction
";
    c1 += "|article très bien|
"; 
    c1 += "4. Ajoutez éventuellement un court commentaire 
"; 
    c1 += "|commentaire très intéressant ici|
"; 
    c1 += "| 5. C'est fini, vous pouvez désormais sauvegarder cette page.
"; 
    c1 += "}}"; 
    return c1;
 }
 else {
    return '';
 }
}

function InitPBA(page_name)
{
var c1 = "<!--
     À la création de la page, suivez les consignes ci-dessous pour proposer l'article.

     ATTENTION : Veuillez ne rien effacer !
-->";
var tpl = '{{subst:' + 'Initialiser PBA|' + page_name 
      + '|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}';
var c2 = "| 1. Indiquez sur la ligne ci-dessous la raison pour laquelle vous proposez cet article. Vous n'avez pas besoin de signer/dater, ni de voter par la suite : votre proposition tient lieu de vote 'Pour'. |";
var tpl2 = "Je propose cet article car... (votre motivation)";
var c3 = "| 2. Sauvegardez cette page et créez un lien vers elle dans Wikipédia:Proposition bons articles.";
var c4 = "Pour cela, choisissez une thématique dans la page, modifiez-la et ajoutez un lien sous la forme :";
var c5 = "** [[/" + page_name + "]] proposé le ~~~~~ ";
var c6 = "Vous devez créer cette référence dans la section 'Phase I' de la thématique choisie (suivez les autres exemples).";
return c1 + '

' + tpl + '
' + c2 + '
' + tpl2 + '

' + c3 + '

' + c4 + '
' + c5  + '
' + c6 + '}}
';
}

var init_if_empty = new Array(
   new Array('Wikipédia:Pages_à_supprimer/', InitPaS),
   new Array('Wikipédia:Liste_des_articles_non_neutres/', InitLANN),
   new Array('Wikipédia:Images_à_supprimer/', InitIaS),
   new Array('Wikipédia:Proposition_articles_de_qualité/', InitPAdQ),
   new Array('Wikipédia:Pages_soupçonnées_de_violation_de_copyright/', InitPCP),
   new Array('Wikipédia:Comité_d\'arbitrage/Arbitrage/', InitArbReq),
   new Array('Wikipédia:Comité_de_lecture/', InitCdl),
   new Array('Projet:Traduction/', InitProjetTraduction),
   new Array('Wikipédia:Proposition_bons_articles/', InitPBA)
);

/**
 * Remplit la zone d'édition si elle est vide avec le texte retourné par
 * un pointeur de fonction sélectionné par le nom de la page.
 */
function InitPage()
{
   // Tester si editform et wpTextbox1 existe sinon il y a une erreur lorsqu'on
   // ouvre l'historique d'une page qui match un des noms de init_if_empty[],
   // tester seulement le nom de la page n'est pas suffisant.
   if (document.editform == undefined ||
       document.editform.wpTextbox1 == undefined)
     return;
   var text_area = document.editform.wpTextbox1;
   if (text_area.value.length != 0)
     return;

   for (var i = 0; i < init_if_empty.length; ++i) {
     var page_match = init_if_empty[i][0];
     var index = wgPageName.indexOf(page_match);
     if (index != -1) {
        page_name = wgPageName.slice(page_match.length);
        page_name = page_name.replace(/_/g, ' ');
	text_area.value = init_if_empty[i][1](page_name);
        break;
     }
   }
}
addOnloadHook(InitPage);


/* Fin des fonctions de remplissage automatique</nowiki></pre>

== Caractères spéciaux ==

<pre><nowiki>
 * Ajouter un menu pour choisir des sous-ensembles de caractères spéciaux
 * @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
 */

function addCharSubsetMenu() {
  var specialchars = document.getElementById('specialchars');
  if (!specialchars) return;

  var charSubsetSelect = document.createElement("select");
  charSubsetSelect.setAttribute("style", "display:inline");
  // hard to find something that works both on IE and Fx...
  charSubsetSelect.onchange = function () { chooseCharSubset(this.selectedIndex); };

  var options = [
   "Wiki",
   "Mathématiques",
   "API",
   "Latin/Romain",
   "Grec",
   "Cyrillique",
   "AHD",
   "Diacritiques",
   "Allemand",
   "Arabe",
   "Berbère",
   "Catalan",
   "Croate",
   "Espagnol",
   "Espéranto",
   "Estonien",
   "Gallois",
   "Hawaïen",
   "Hébreu",
   "Hiéroglyphe",
   "Hongrois",
   "Indo-européen",
   "Irlandais",
   "Islandais",
   "Italien",
   "Letton",
   "Lituanien",
   "Maltais",
   "Navajo & Apache",
   "Néerlandais",
   "Pinyin",
   "Polonais",
   "Portugais",
   "Rōmaji",
   "Roumain",
   "Scandinave",
   "Serbe",
   "Tchèque",
   "Turc",
   "Vieil anglais",
   "Vietnamien",
   "Yiddish" ];
  
  for (var i in options) {
    var opt = document.createElement("option");
    var txt = document.createTextNode(options[i]);
    opt.appendChild(txt);
    charSubsetSelect.appendChild(opt);
  }

  specialchars.insertBefore(charSubsetSelect, specialchars.childNodes[0]);

  /* default subset - try to use a cookie some day */
  chooseCharSubset(0);
}

/* choisir la section de caractères spéciaux */
function chooseCharSubset(s) {
  var l = document.getElementById('specialchars').getElementsByTagName('p');
  for (var i = 0; i < l.length ; i++) {
    l[i].style.display = i == s ? 'inline' : 'none';
    l[i].style.visibility = i == s ? 'visible' : 'hidden';
  }
}
addOnloadHook(addCharSubsetMenu);

/* Fin des caractères spéciaux</nowiki></pre>

== Espace Référence ==

<pre><nowiki>
 * Choix du mode d'affichage des références
 * @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 de l'espace Référence</nowiki></pre>

== Barre d'outil ==

<pre><nowiki>
 * Ajout de boutons à la barre d'outils 
 */

/**
 * Générateur de tableaux
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake
 * @version: 0.1<nowiki>
 */

function generateTableau(nbCol, nbRow, border, styleHeader, styleLine)
{
     var code = "
";
     if (styleHeader==1) {
           code += '{{entête';
           code += ' tableau charte}}
';
     } else {
           code += '{| border="' + border + '"
';
           code += '|+ Titre du tableau
';
     }
     
     for (var i=0; i<nbCol; i++) code += '! en-tête ' + i + '
';
     
     for (var j=0; j<nbRow; j++) {
           if ((j+1)%2==0 && styleLine==1) {
                 code += '|-{'+'{ligne grise}'+'}
';
           } else {		
                 code += '|-----
';
           }
           
           for (var i=0; i<nbCol; i++) code += '| élément
';
     }
     
     code += '|}';
     insertTags('','', code);
}

/**
 *
 * English: Open a popup with parameters to generate an array. 
 * The number of rows/columns can be modified. Some additional
 * parameters are related to templates available on :fr
 *
 * @author: fr:user:dake
 * @version: 0.1
 */

function popupTableau()
{
  var popup = window.open('','name','height=400,width=500');
  
  javaCode =  '<script type="text/javascript">function insertCode(){';
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ';
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ';
  javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); ';
  javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; ';
  javaCode += 'var styleLine = document.paramForm.inputLine.checked; ';
  javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine); ';
  javaCode += '}</script>';
  
  popup.document.write('<html><head><title>Paramètres du tableau</title>');
  popup.document.write('<script type="text/javascript" src="/skins-1.5/common/wikibits.js"><!-- wikibits js --></script>');
  popup.document.write('<style type="text/css" media="screen projection">/*<![CDATA[*/ @import "/skins-1.5/monobook/main.css?5"; /*]]>*/</style>');
  popup.document.write(javaCode); 
  popup.document.write('</head><body>');
  popup.document.write('<p>Veuillez entrer les paramètres du tableau : </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('Nombre de lignes : <input type="text" name="inputRow" value="3" ><p>');
  popup.document.write('Nombre de colonnes : <input type="text" name="inputCol" value="3" ><p>');
  popup.document.write('Largeur de la bordure : <input type="text" name="inputBorder" value="1" ><p>');
  popup.document.write('En-tête en gris (style « charte graphique ») : <input type="checkbox" name="inputHeader" checked="1" ><p>');
  popup.document.write('Lignes grises alternées (style « charte graphique ») : <input type="checkbox" name="inputLine" checked="1" ><p>');
  popup.document.write('</form">');
  popup.document.write('<p><a href="javascript:insertCode()"> Insérer le code dans la fenêtre d\'édition</a></p>');
  popup.document.write('<p><a href="javascript:self.close()"> Fermer</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}

/**
 * Insertion de nouveaux boutons dans la barre d'outil
 */

function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText, imageId) {
   mwCustomEditButtons[mwCustomEditButtons.length] =
    {"imageId": imageId,
     "imageFile": imageFile,
     "speedTip": speedTip,
     "tagOpen": tagOpen,
     "tagClose": tagClose,
     "sampleText": sampleText};
}

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png','Tableau','{|
|-
|
|
|}','','','mw-editbutton-array');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png','Rayer','<s>','</s>','');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Énumération','
# élément 1
# élément 2
# élément 3','','');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png','Liste','
* élément A
* élément B
* élément C','','');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/9/9e/Btn_toolbar_gallery.png','Galerie d\'images','
<gallery>
Image:Exemple.jpg|[[Tournesol]]
Image:Exemple1.jpg|[[La Joconde]]
Image:Exemple2.jpg|Un [[hamster]]
</gallery>','','');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Commentaire','<!--','-->','');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Redirection','#REDIRECT [[',']]','nom de la destination');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Catégorie','[[Catégorie:',']]','nom de la catégorie');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png','Référence','<ref>','</ref>','référence, citation ou lien');

addCustomButton('http://upload.wikimedia.org/wikipedia/commons/3/3b/Button_template_alt.png','Index des références','== Notes et références ==
<references /> <!-- aide : http://fr.wikipedia.org/wiki/Aide:Notes et références -->','','');

var voirAussi = '<!-- Suggestion de présentation des annexes. Aide : http://fr.wikipedia.org/wiki/Aide:Notes et références -->
'
 + '== Notes et références de l\'article ==
'
 + '<references/>
'
 + '== Voir aussi ==
'
 + '=== Articles connexes ===
'
 + '* [[À remplacer]]
'
 + '*
'
 + '=== Liens et documents externes ===
'
 + '*
';
addCustomButton('http://upload.wikimedia.org/wikipedia/commons/b/bb/Seealso.png','Section Voir aussi',voirAussi,'','');

// Changer le lien du bouton de création de tableau
function button_tab()
{
 toolbarArray = document.getElementById('mw-editbutton-array');
 if (!toolbarArray) return false;
 
 toolbarArray.onclick = function() {
   popupTableau();
   return false;
 }
}
hookEvent('load', button_tab);

/* Fin de la barre d'outils</nowiki></pre>

== Page de recherche ==

<pre><nowiki>
 * Amélioration de la page de recherche v3
 * Auteur : Marc Mongenet
 * Sous licence GFDL & GPL<nowiki>
 */
function SpecialSearchEnhanced3() 
{

 function SearchForm(search_action_url, engine_url, engine_name, logo_url,
                     search_field_name, search_field_value, site_field_name, site_field_value)
 {
   var span = document.createElement("div");
   span.style.marginRight = "1em";
   span.style.width="100%";
   span.style.whiteSpace = "nowrap";

   var form = document.createElement("form");
   form.method = "get";
   form.action = search_action_url;
   form.style.display = "inline";
   span.appendChild(form);

   var input = document.createElement("input");
   input.type = "hidden";
   input.name = search_field_name;
   form.appendChild(input);

   var site = document.createElement("input");
   site.type = "hidden";
   site.name = site_field_name;
   site.value = site_field_value;
   form.appendChild(site);

   var submit = document.createElement("input");
   submit.type = "submit";
   submit.value = "Recherche";
   form.appendChild(submit);

   form.onsubmit = function() {
     input.value = document.getElementById("lsearchbox").value;
   }

   var a = document.createElement("a");
   a.href = engine_url;
   span.appendChild(a);

   var img = document.createElement("img");
   img.src = logo_url;
   img.alt = engine_name;
   img.style.borderWidth = "0";
   img.style.padding = "5px";
   a.appendChild(img);

   return span;
 }

 if (typeof SpecialSearchEnhanced3Disabled != 'undefined') return;
 if (wgPageName != "Special:Search") return;

 var mainNode = document.getElementsByTagName("form");
 if (!mainNode) return;
 mainNode = mainNode[0];
 mainNode.appendChild(document.createElement("center"));
 mainNode = mainNode.lastChild;

 var searchValue = document.getElementById("lsearchbox").value;
 var engine;
 engine = SearchForm("http://partner.exalead.fr/search", "http://www.exalead.fr/", "Exalead",
                     "http://www.wikipedia.fr/exalead.gif", "q", searchValue,
                     "site", "fr.wikipedia.org");
 mainNode.appendChild(engine);
 engine = SearchForm("http://www.google.fr/search", "http://www.google.fr/", "Google",
                     "http://www.google.com/logos/Logo_25wht.gif", "q", searchValue,
                     "as_sitesearch", "fr.wikipedia.org");
 mainNode.appendChild(engine);
 engine = SearchForm("http://www.wikipediasearch.net/index.php", "http://www.wikipediasearch.net", "Wikipedia Search",
                     "http://www.wikipediasearch.net/logo_mini.png", "action", searchValue,
                     "lang", "fr");
 mainNode.appendChild(engine);
 engine = SearchForm("http://search.live.com/results.aspx", "http://search.live.com/", "Live",
                     "http://search.live.com/s/affillogoLive.gif", "q", searchValue,
                     "q1", "site:http://fr.wikipedia.org");
 mainNode.appendChild(engine);
 engine = SearchForm("http://fr.search.yahoo.com/search", "http://fr.search.yahoo.com/", "Yahoo!",
                     "http://us.yimg.com/i/yahootogo/y88red2.gif", "p", searchValue,
                     "vs", "fr.wikipedia.org");
 mainNode.appendChild(engine);
}
addOnloadHook(SpecialSearchEnhanced3);
/* Fin de la page de recherche</nowiki></pre>

== Désactiver le bouton Sauvegarder à la première édition ==

<pre><nowiki>
 * Force IP to preview before saving changes.
 * Copyright Marc Mongenet, 2006
 */
function forcePreview()
{
     if (wgUserName != null) return;
     saveButton = document.getElementById("wpSave");
     if (!saveButton) return;
     if (location.search.search(/&action=edit/) == -1) return;
     saveButton.disabled = true;
     saveButton.style.fontWeight = "normal";
     document.getElementById("wpPreview").style.fontWeight = "bold";
}
addLoadEvent(forcePreview);

/* Fin du forcePreview</nowiki></pre>

== Fonctions de mise en page ==

<pre><nowiki>
 * Transformer les pages du Bistro en page de discussion
 */
function DiscussionBistro()
{
  if(  (wgPageName.search('Wikipédia:Le_Bistro') != -1)
    || (wgPageName.search('Wikipédia:Bulletin_des_administrateurs') != -1))
    document.body.className = 'ns-1';
}
addOnloadHook(DiscussionBistro);

/**
 * Transformer certaines pages en page de discussion avec le modèle {&#123;page de discussion}}
 */
function TransformeEnDiscussion()
{
   transformeEnPDD = document.getElementById("transformeEnPageDeDiscussion");
   if(transformeEnPDD)
     document.body.className = "ns-1";
}
addOnloadHook(TransformeEnDiscussion);

/**
 * Afficher une explication au nombre de caractères dans la liste de suivi
 */
function toolTipPlusMinus() {
       var tt = "Nombre de caractères 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|mw-plusminus-neg|mw-plusminus-null/.test(elmts[cpt].className) || /mw-plusminus-pos|mw-plusminus-neg|mw-plusminus-null/.test(elmts[cpt].getAttribute("class")))
                       elmts[cpt].title = tt;
       }
}
addLoadEvent(toolTipPlusMinus);

/* Fin des fonctions de mise en page</nowiki></pre>

== Liens d'aide des pages spéciales ==

<pre><nowiki>
 * permet d'ajouter un petit lien (par exemple d'aide) à la fin du titre d'une page.
 * EN TEST : ne pas généraliser l'utilisation pour l'instant.
 * Pour les commentaires, merci de contacter Plyd.
 */
rewritePageH1bis = function() {
       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);

/* Fin de l'aide sur page spéciales</nowiki></pre>

== Redirect vers wikibooks etc. ==

<pre><nowiki>
*/
var redirected_from_article_datas = 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')
);

function redirected_from_article()
{
   if (wgIsArticle == false)
       return;
   for (var i = 0; i < redirected_from_article_datas.length; ++i) {
     var page_match = redirected_from_article_datas[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);
        target = target.split('.23');
        target[0] = target[0].replace(/.([0-9A-Z][0-9A-Z])/g, '%$1');
        if (target.length > 1)
            target = target[0] + '#' + target[1]
        else
            target = target[0];
        target = target.replace(/%2F/g, '/');
        quoted_target = target;
        target = target.replace(/.([0-9A-Z][0-9A-Z])/g, '%$1');
        target = decodeURI(target);

        // special case for self-referrer
        if (target == page_match[0])
            break;
        target = target.replace(/_/g, ' ');

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

addLoadEvent(redirected_from_article);

// Fin Redirect vers wikibooks etc.</nowiki></pre>