Bienvenue sur JurisPedia! Vous êtes invités à créer un compte et à contribuer après avoir confirmé votre adresse de courriel. Dès lors, vous pouvez ajouter un article en commençant par lui donner un titre en renseignant ce champ:

Les lecteurs et contributeurs ne doivent pas oublier de consulter les avertissements juridiques. Il y a actuellement 3 533 articles en construction permanente...

MediaWiki:Monobook.js : Différence entre versions

Un article de JurisPedia, le droit partagé.
Aller à : Navigation, Rechercher
 
(10 révisions intermédiaires par un utilisateur sont masquées)
Ligne 1 : Ligne 1 :
/* <pre> */
+
/* <pre> <nowiki> */
/* From http://fr.wikipedia.org/wiki/MediaWiki:Monobook.js  */
+
// From http://fr.wikipedia.org/wiki/MediaWiki:Monobook.js  */
/* under a GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html */
+
// under a GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html */
/* tooltips and access keys */
+
 
 +
 
 +
//============================================================
 +
//
 +
// Info-bulle et touches de raccourci
 +
//
 +
//============================================================
 +
 
 
ta = new Object();
 
ta = new Object();
ta['pt-userpage'] = new Array('.','Ma page utilisateur');  
+
ta['pt-userpage']           = new Array('.', 'Ma page utilisateur');  
ta['pt-anonuserpage'] = new Array('.','La page utilisateur pour l\'adresse IP que vous utilisez');  
+
ta['pt-anonuserpage']       = new Array('.', 'La page utilisateur pour l\'adresse IP que vous utilisez');  
ta['pt-mytalk'] = new Array('N','Ma page de discussion');  
+
ta['pt-mytalk']             = new Array('N', 'Ma page de discussion');  
ta['pt-anontalk'] = new Array('N','La page de discussion pour cette adresse');  
+
ta['pt-anontalk']           = new Array('N', 'La page de discussion pour cette adresse');  
ta['pt-preferences'] = new Array('','Mes préférences');  
+
ta['pt-preferences']       = new Array('', 'Mes préférences');  
ta['pt-watchlist'] = new Array('L','La liste des pages que vous suivez');  
+
ta['pt-watchlist']         = new Array('L', 'La liste des pages que vous suivez');  
ta['pt-mycontris'] = new Array('Y','La liste de mes contributions');  
+
ta['pt-mycontris']         = new Array('Y', 'La liste de mes contributions');  
/*
+
ta['ca-talk']               = new Array('T', 'Discussion pour cette page');  
ta['pt-login'] = new Array('O','Vous êtes encouragé à vous connecter; mais ce n\'est pas obligatoire.');
+
ta['ca-edit']               = new Array('E', 'Vous pouvez modifier cette page. Merci de prévisualiser avant d\'enregistrer.');  
ta['pt-anonlogin'] = new Array('O','Vous êtes encouragé à vous connecter; mais ce n\'est pas obligatoire.');
+
ta['ca-addsection']         = new Array('+', 'Ajouter un commentaire à cette discussion.');  
ta['pt-logout'] = new Array('O','Déconnexion');
+
ta['ca-viewsource']         = new Array('E', 'Cette page est protégée. Vous pouvez toutefois en voir le contenu.');  
*/
+
ta['ca-history']           = new Array('H', 'Les auteurs et versions précédentes de cette page.');  
ta['ca-talk'] = new Array('T','Discussion pour cette page');  
+
ta['ca-protect']           = new Array('=', 'Pour protéger cette page.');  
ta['ca-edit'] = new Array('E','Vous pouvez modifier cette page. Merci de prévisualiser avant d\'enregistrer.');  
+
ta['ca-delete']             = new Array('D', 'Pour supprimer cette page.');  
ta['ca-addsection'] = new Array('+','Ajouter un commentaire à cette discussion.');  
+
ta['ca-undelete']           = new Array('D', 'Pour restaurer cette page.');  
ta['ca-viewsource'] = new Array('E','Cette page est protégée. Vous pouvez toutefois en voir le contenu.');  
+
ta['ca-move']               = new Array('M', 'Pour déplacer ou renommer cette page.');  
ta['ca-history'] = new Array('H','Les versions précédentes de cette page.');  
+
ta['ca-nomove']             = new Array('', 'Vous n\'avez pas la permission de déplacer cette page.');  
ta['ca-protect'] = new Array('=','Pour protéger cette page.');  
+
ta['ca-watch']             = new Array('W', 'Ajoutez cette page à votre liste de suivi.');  
ta['ca-delete'] = new Array('D','Pour supprimer cette page.');  
+
ta['ca-unwatch']           = new Array('W', 'Retirez cette page de votre liste de suivi.');  
ta['ca-undelete'] = new Array('D','Pour restaurer cette page.');  
+
ta['search']               = new Array('F', 'Pour effectuer une recherche.');  
ta['ca-move'] = new Array('M','Pour déplacer ou renommer cette page.');  
+
ta['p-logo']               = new Array('', 'Page principale.');  
ta['ca-nomove'] = new Array('','Vous n\'avez pas la permission de déplacer cette page.');  
+
ta['n-mainpage']           = new Array('Z', 'Pour afficher la page principale.');  
ta['ca-watch'] = new Array('W','Ajoutez cette page à votre liste de suivi.');  
+
ta['n-portal']             = new Array('', 'À propos du projet.');  
ta['ca-unwatch'] = new Array('W','Retirez cette page de votre liste de suivi.');  
+
ta['n-currentevents']       = new Array('', 'Trouvez des informations sur les événements récents.');  
ta['search'] = new Array('F','Pour effectuer une recherche.');  
+
ta['n-recentchanges']       = new Array('R', 'La liste des modifications récentes.');  
ta['p-logo'] = new Array('','Page principale.');  
+
ta['n-randompage']         = new Array('X', 'Afficher une page au hasard.');  
ta['n-mainpage'] = new Array('Z','Pour afficher la page principale.');  
+
ta['n-help']               = new Array('', 'Aide.');  
ta['n-portal'] = new Array('','À propos du projet.');  
+
ta['n-sitesupport']         = new Array('', 'Pour soutenir le projet.');  
ta['n-currentevents'] = new Array('','Trouvez des informations sur les événements récents.');  
+
ta['t-whatlinkshere']       = new Array('J', 'Liste des pages liées à celle-ci.');  
ta['n-recentchanges'] = new Array('R','La liste des modifications récentes.');  
+
ta['t-recentchangeslinked'] = new Array('K', 'Liste des modifications récentes des pages liées à celle-ci.');  
ta['n-randompage'] = new Array('X','Afficher une page au hasard.');  
+
ta['feed-rss']             = new Array('', 'Alimenter le flux RSS pour cette page.');  
ta['n-help'] = new Array('','Aide.');  
+
ta['feed-atom']             = new Array('', 'Alimenter le flux Atom pour cette page.');  
ta['n-sitesupport'] = new Array('','Les recherches effectuées le mois dernier.');  
+
ta['t-contributions']       = new Array('', 'Voir la liste des contributions de cet utilisateur.');  
ta['t-whatlinkshere'] = new Array('J','Liste des pages liées à celle-ci.');  
+
ta['t-emailuser']           = new Array('', 'Envoyer un courriel à cet utilisateur.');  
ta['t-recentchangeslinked'] = new Array('K','Liste des modifications récentes des pages liées à celle-ci.');  
+
ta['t-upload']             = new Array('U', 'Importer une image ou fichier média sur le serveur.');  
ta['feed-rss'] = new Array('','Alimenter le flux RSS pour cette page.');  
+
ta['t-specialpages']       = new Array('Q', 'Liste des pages spéciales.');  
ta['feed-atom'] = new Array('','Alimenter le flux Atom pour cette page.');  
+
ta['ca-nstab-main']         = new Array('C', 'Afficher le contenu de cette page.');  
ta['t-contributions'] = new Array('','Voir la liste des contributions de cet utilisateur.');  
+
ta['ca-nstab-user']         = new Array('C', 'Afficher la page utilisateur.');  
ta['t-emailuser'] = new Array('','Envoyer un courriel à cet utilisateur.');  
+
ta['ca-nstab-media']       = new Array('C', 'Afficher la page média.');  
ta['t-upload'] = new Array('U','Importer une image ou fichier média sur le serveur.');  
+
ta['ca-nstab-special']     = new Array('', 'Ceci est une page spéciale, vous ne pouvez pas la modifier.');  
ta['t-specialpages'] = new Array('Q','Liste des pages spéciales.');  
+
ta['ca-nstab-wp']           = new Array('A', 'Afficher la page du projet.');  
ta['ca-nstab-main'] = new Array('C','Afficher le contenu de cette page.');  
+
ta['ca-nstab-image']       = new Array('C', 'Afficher la page de description de l\'image.');  
ta['ca-nstab-user'] = new Array('C','Afficher la page utilisateur.');  
+
ta['ca-nstab-mediawiki']   = new Array('C', 'Afficher le message système.');  
ta['ca-nstab-media'] = new Array('C','Afficher la page média.');  
+
ta['ca-nstab-template']     = new Array('C', 'Afficher le modèle.');  
ta['ca-nstab-special'] = new Array('','Ceci est une page spéciale, vous ne pouvez pas la modifier.');  
+
ta['ca-nstab-help']         = new Array('C', 'Afficher la page d\'aide.');  
ta['ca-nstab-wp'] = new Array('A','Afficher la page du projet.');  
+
ta['ca-nstab-category']     = new Array('C', 'Afficher la page de catégorie.');
ta['ca-nstab-image'] = new Array('C','Afficher la page de description de l\'image.');  
+
ta['ca-nstab-mediawiki'] = new Array('C','Afficher le message système.');  
+
ta['ca-nstab-template'] = new Array('C','Afficher le modèle.');  
+
ta['ca-nstab-help'] = new Array('C','Afficher la page d\'aide.');  
+
ta['ca-nstab-category'] = new Array('C','Afficher la page de catégorie.');
+
  
// ============================================================
+
//============================================================
// BEGIN Enable multiple onload functions
+
//
 +
// Fonctions de gestion
 +
//
 +
//============================================================
  
// setup onload functions this way:
 
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
 
  
if (!window.aOnloadFunctions) {
+
/**
   var aOnloadFunctions = new Array();
+
* Installation d'une nouvelle fonction de cette façon:
 +
* aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses)
 +
*/
 +
if (!window.aOnloadFunctions) {  
 +
   var aOnloadFunctions = new Array();  
 
}
 
}
  
window.onload = function() {
+
window.onload = function()  
 +
{
 
   if (window.aOnloadFunctions) {
 
   if (window.aOnloadFunctions) {
 
     for (var _i=0; _i<aOnloadFunctions.length; _i++) {
 
     for (var _i=0; _i<aOnloadFunctions.length; _i++) {
Ligne 74 : Ligne 82 :
 
}
 
}
  
// END Enable multiple onload functions
 
// ============================================================
 
  
 +
/**
 +
* Ajouter une nouvelle fonction a excuter au chargement de la page.
 +
*/
 +
function addLoadEvent(func)
 +
{
 +
  if (window.addEventListener)
 +
    window.addEventListener("load", func, false);
 +
  else if (window.attachEvent)
 +
    window.attachEvent("onload", func);
 +
}
  
// ============================================================
 
// BEGIN Dynamic Navigation Bars
 
  
// set up the words in your language
+
//============================================================
var NavigationBarHide = 'Enrouler';
+
//
var NavigationBarShow = 'Dérouler';
+
// Caractères spéciaux
 +
//
 +
//============================================================
  
// set up max count of Navigation Bars on page,
+
/**
// if there are more, all will be hidden
+
* Ajoutez le menu pour choisir des sous-ensembles de caractères spéciaux
// NavigationBarShowDefault = 0; // all bars will be hidden
+
* @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
+
*/
var NavigationBarShowDefault = 1;
+
function addCharSubsetMenu() {
 +
  var specialchars = document.getElementById('specialchars');
  
 +
  if (specialchars) {
 +
    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
 +
    menu += "<option>Wiki</option>";
 +
    menu += "<option>Mathématiques</option>";
 +
    menu += "<option>API</option>";
 +
    menu += "<option>Latin/Romain</option>";
 +
    menu += "<option>Grec</option>";
 +
    menu += "<option>Cyrillique</option>";
 +
    menu += "<option>AHD</option>";
 +
    menu += "<option>Allemand</option>";
 +
    menu += "<option>Arabe</option>";
 +
    menu += "<option>Catalan</option>";
 +
    menu += "<option>Croate</option>";
 +
    menu += "<option>Espagnol</option>";
 +
    menu += "<option>Espéranto</option>";
 +
    menu += "<option>Estonien</option>";
 +
    menu += "<option>Gallois</option>";
 +
    menu += "<option>Hawaien</option>";
 +
    menu += "<option>Hébreu</option>";
 +
    menu += "<option>Hiéroglyphe</option>";
 +
    menu += "<option>Hollandais</option>";
 +
    menu += "<option>Hongrois</option>";
 +
    menu += "<option>Indo-européen</option>";
 +
    menu += "<option>Irlandais</option>";
 +
    menu += "<option>Islandais</option>";
 +
    menu += "<option>Italien</option>";
 +
    menu += "<option>Letton</option>";
 +
    menu += "<option>Lituanien</option>";
 +
    menu += "<option>Maltais</option>";
 +
    menu += "<option>Navajo & Apache</option>";
 +
    menu += "<option>Pinyin</option>";
 +
    menu += "<option>Polonais</option>";
 +
    menu += "<option>Portugais</option>";
 +
    menu += "<option>Rōmaji</option>";
 +
    menu += "<option>Roumain</option>";
 +
    menu += "<option>Scandinave</option>";
 +
    menu += "<option>Serbe</option>";
 +
    menu += "<option>Tchèque</option>";
 +
    menu += "<option>Turc</option>";
 +
    menu += "<option>Vieil anglais</option>";
 +
    menu += "<option>Vietnamien</option>";
 +
    menu += "<option>Yiddish</option>";
 +
    menu += "</select>";
 +
    specialchars.innerHTML = menu + specialchars.innerHTML;
  
// shows and hides content and picture (if available) of navigation bars
+
    /* default subset - try to use a cookie some day */
// Parameters:
+
    chooseCharSubset(0);
//     indexNavigationBar: the index of navigation bar to be toggled
+
  }
function toggleNavigationBar(indexNavigationBar)
+
}
 +
 
 +
/* select subsection of special characters */
 +
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';
 +
  }
 +
}
 +
 
 +
addLoadEvent(addCharSubsetMenu);
 +
 
 +
 
 +
//============================================================
 +
//
 +
// Choix de l'affichage des références
 +
//
 +
//============================================================
 +
 
 +
/**
 +
* 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 NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
+
  var specialBib = document.getElementById('specialBib');
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
+
  
    if (!NavFrame || !NavToggle) {
+
  if (specialBib)  
        return false;
+
  {
     }
+
    specialBib.style.display = 'block';
 +
     var menu = "<select style=\"display:inline;\" onChange=\"chooseBibSubset(selectedIndex)\">";
 +
    menu += "<option>Liste</option>";
 +
    menu += "<option>WikiNorme</option>";
 +
    menu += "<option>BibTeX</option>";
 +
    menu += "<option>ISBD</option>";
 +
    menu += "<option>ISO690</option>";
 +
    menu += "</select>";
 +
    specialBib.innerHTML = specialBib.innerHTML + menu;
 +
  }
 +
    /* default subset - try to use a cookie some day */
 +
    chooseBibSubset(0);
 +
}
  
    // if shown now
+
/* select subsection of special characters */
    if (NavToggle.firstChild.data == NavigationBarHide) {
+
function chooseBibSubset(s)  
        for (
+
{
                var NavChild = NavFrame.firstChild;
+
  var l = document.getElementsByTagName('div');
                NavChild != null;
+
  for (var i = 0; i < l.length ; i++)  
                NavChild = NavChild.nextSibling
+
  {
            ) {
+
        if(l[i].className == 'BibList')   l[i].style.display = s == 0 ? 'block' : 'none';
            if (NavChild.className == 'NavPic') {
+
    else if(l[i].className == 'WikiNorme') l[i].style.display = s == 1 ? 'block' : 'none';
                NavChild.style.display = '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';
            if (NavChild.className == 'NavContent') {
+
    else if(l[i].className == 'ISO690')    l[i].style.display = s == 4 ? 'block' : 'none';
                NavChild.style.display = 'none';
+
  }
            }
+
}
            if (NavChild.className == 'NavToggle') {
+
                NavChild.firstChild.data = NavigationBarShow;
+
            }
+
        }
+
  
    // if hidden now
+
addLoadEvent(addBibSubsetMenu);
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
+
 
        for (
+
 
                var NavChild = NavFrame.firstChild;
+
 
                NavChild != null;
+
//============================================================
                NavChild = NavChild.nextSibling
+
//
            ) {
+
// Prévisualisation rapide
            if (NavChild.className == 'NavPic') {
+
//
                NavChild.style.display = 'block';
+
//============================================================
            }
+
 
            if (NavChild.className == 'NavContent') {
+
/**
                NavChild.style.display = 'block';
+
* Script de ajoutant une option de prévisualisation rapide.
            }
+
*
            if (NavChild.className == 'NavToggle') {
+
*
                NavChild.firstChild.data = NavigationBarHide;
+
* English: Add a Quick View option on the Edit pages.
            }
+
* This script add 2 new buttons into the "editButtons" div.
        }
+
* When QuickPrev button is press, the content of edit window
 +
* is retreived and parsed using regular expressions.
 +
*
 +
* @author: fr:user:aoineko
 +
* @version: 0.2
 +
*/
 +
function addQuickPreview()  
 +
{
 +
  var QuickPreviewBtnTitle  = "Prévisualisation rapide de vos modifications [Alt + Q]";
 +
  var QuickPreviewBtnValue  = "Prévisualisation rapide";
 +
  var QuickPrevHideBtnTitle = "Cacher la prévisualisation rapide [Alt + H]";
 +
  var QuickPrevHideBtnValue = "Cacher";
 +
 
 +
  var div = document.getElementsByTagName('div');
 +
  for(var i = 0; i < div.length ; i++)
 +
  {
 +
    if(div[i].className == "editButtons") // search "editButtons" div
 +
    {
 +
      div[i].appendChild(document.createElement("br")); // add a <br/>
 +
 
 +
      var wpQuick = document.createElement("input"); // create and set the "QuickPrev" button
 +
      wpQuick.setAttribute("id",        "wpQuick");
 +
      wpQuick.setAttribute("name",      "wpQuick");
 +
      wpQuick.setAttribute("title",    QuickPreviewBtnTitle);
 +
      wpQuick.setAttribute("value",    QuickPreviewBtnValue);
 +
      wpQuick.setAttribute("type",      "button");
 +
      wpQuick.setAttribute("onclick",  "doQuickPreview();");
 +
      wpQuick.setAttribute("tabindex",  "8");
 +
      wpQuick.setAttribute("accesskey", "Q");
 +
      div[i].appendChild(wpQuick);
 +
 
 +
      var wpHide = document.createElement("input"); // create and set the "Hide" button
 +
      wpHide.setAttribute("id",        "wpHide");
 +
      wpHide.setAttribute("name",      "wpHide");
 +
      wpHide.setAttribute("title",    QuickPrevHideBtnTitle);
 +
      wpHide.setAttribute("value",    QuickPrevHideBtnValue);
 +
      wpHide.setAttribute("type",      "button");
 +
      wpHide.setAttribute("onclick",  "hideQuickPreview();");
 +
      wpHide.setAttribute("tabindex",  "9");
 +
      wpHide.setAttribute("accesskey", "H");
 +
      div[i].appendChild(wpHide);
 
     }
 
     }
 +
  }
 
}
 
}
  
// adds show/hide-button to navigation bars
+
/// Retreive current code and parse it
function createNavigationBarToggleButton()
+
function doQuickPreview()  
 
{
 
{
    var indexNavigationBar = 0;
+
  var wpQuickPreview = document.getElementById("wpQuickPreview");
     // iterate over all <div>-elements
+
  if(!wpQuickPreview)
     for(
+
  {
            var i=0;  
+
     /*var l = document.getElementsByTagName('div');
            NavFrame = document.getElementsByTagName("div")[i];  
+
     for(var i = 0; i < l.length ; i++)
            i++
+
      if(l[i].className == "previewnote")
        ) {
+
        wpQuickPreview = l;
        // if found a navigation bar
+
   
        if (NavFrame.className == "NavFrame") {
+
    if(!wpQuickPreview)*/
 +
    {
 +
      wpQuickPreview = document.createElement("div");
 +
      wpQuickPreview.setAttribute("style", "border:solid 1px gray; width:100%; margin-top:1em; margin-bottom:1em; padding:0.5em;");
 +
      var wpSummaryLabel = document.getElementById("wpSummaryLabel");
 +
      wpSummaryLabel.parentNode.insertBefore(wpQuickPreview, wpSummaryLabel);
 +
    }
 +
    wpQuickPreview.setAttribute("id",    "wpQuickPreview");
 +
  }
 +
  wpQuickPreview.style.display = "block";
  
            indexNavigationBar++;
+
  wpTextbox1 = document.getElementById("wpTextbox1");
            var NavToggle = document.createElement("a");
+
  var str = "=Prévisualisation rapide=\n" + wpTextbox1.value;
            NavToggle.className = 'NavToggle';
+
  var qp = new QuickPreview(str);
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
+
  wpQuickPreview.innerHTML = qp.Parse();
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
+
}
  
            var NavToggleText = document.createTextNode(NavigationBarHide);
+
function QuickPreview(wiki)
            NavToggle.appendChild(NavToggleText);
+
{
 +
  this.line = wiki.split(/\n/);
 +
  this.html = new String;
 +
 
 +
  this.list = 0; // current list depth
 +
  this.tab  = 0; // current tabulation depth
 +
  this.pre  = false; /// inside a <pre> tag
 +
  this.para = false; /// inside a paragraph
  
            // add NavToggle-Button as first div-element
+
  this.HandlePre = function(i)
            // in <div class="NavFrame">
+
  {
            NavFrame.insertBefore(
+
      if(this.line[i][0] == ' ')
                NavToggle,
+
      {
                NavFrame.firstChild
+
        if(this.para)
            );
+
        {
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
+
          this.para = false;
 +
          this.html += "</p>\n";
 
         }
 
         }
    }
+
        if(!this.pre)
    // if more Navigation Bars found than Default: hide all
+
         {
    if (NavigationBarShowDefault < indexNavigationBar) {
+
          this.pre = true;
         for(
+
          this.html += "<pre>\n";
                var i=1;  
+
                i<=indexNavigationBar;
+
                i++
+
        ) {
+
            toggleNavigationBar(i);
+
 
         }
 
         }
 +
        this.html += this.line[i] + "\n";
 +
        return true;
 +
      }
 +
      else if(this.pre)
 +
      {
 +
        this.pre = false;
 +
        this.html += "</pre>\n";
 +
      }
 +
      return false;
 +
  };
 +
 +
  this.HandleH = function(i)
 +
  {
 +
    if(res = this.line[i].match(/^(={1,6})(.*)\1(.*)$/))
 +
    {
 +
        this.line[i] = "<h" + res[1].length + ">" + res[2] + "</h" + res[1].length + ">" + res[3];
 +
        return true;
 
     }
 
     }
 +
    return false;
 +
  };
 +
 
 +
  this.Parse = function()
 +
  {
 +
    this.html = "";
  
}
+
    for(var i = 0; i < this.line.length ; i++)
 +
    {
 +
      var p = true;
 +
   
 +
      if(this.HandlePre(i))
 +
        continue;
  
aOnloadFunctions[aOnloadFunctions.length] = createNavigationBarToggleButton;
+
      if(this.HandleH(i))
 +
        p = false;
 +
     
 +
      if(p && !this.para)
 +
      {
 +
        this.para = true;
 +
        this.html += "<p>";
 +
      }
  
// END Dynamic Navigation Bars
+
      this.html += this.line[i]
// ============================================================
+
  
 +
      // Sign //
 +
      .replace(/~{5}/g, Date())
 +
      .replace(/~{4}/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px yellow;'>Signature</span> "+Date())
 +
      .replace(/~{3}/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px yellow;'>Signature</span>")
  
 +
      // Style //
 +
      .replace(/'''''(.*?)''(.*?)'''/g, "<strong><em>$1</em>$2</strong>")
 +
      .replace(/'''''(.*?)'''(.*?)''/g, "<em><strong>$1</strong>$2</em>")
 +
      .replace(/'''(.*?)''(.*?)'''''/g, "<strong>$1<em>$2</em></strong>")
 +
      .replace(/'''''(.*?)''''/g,      "<strong><em>\'$1</em></strong>")
 +
      .replace(/''''(.*?)''''/g,        "<strong><em>$1</em></strong>")
 +
      .replace(/''''(.*?)'''/g,        "<strong>\'$1</strong>")
 +
      .replace(/'''(.*?)'''/g,          "<strong>$1</strong>")
 +
      .replace(/'''(.*?)''/g,          "<em>\'$1</em>")
 +
      .replace(/''(.*?)''/g,            "<em>$1</em>")
  
// ============================================================
+
      // List //
// BEGIN Add Disclaimers link in navigation tab
+
      .replace(/^\*(.*)/g,  "<li>$1</li>")
 +
      .replace(/^#(.*)/g,  "<li>$1</li>")
 +
      .replace(/^:(.*)/g,  "<li>$1</li>")
  
function addLoadEvent(func)
+
      // Link //
{
+
      .replace(/\{\{([^\|]*).*}}/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px lightgreen;'>Modèle : $1</span>")
  if (window.addEventListener)  
+
      .replace(/\[\[[Ii]mage:([^\|]*)[^\[]*\]\]/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px lightblue;'>Image : $1</span>")
    window.addEventListener("load", func, false);
+
      .replace(/\[\[[Cc]atégorie:([^\|]*)[^\[]*\]\]/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px #FF8080;'><a href='/wiki/Catégorie:$1' title='$1'>Catégorie : $1</a></span>")
  else if (window.attachEvent)  
+
      .replace(/\[\[([^\[.]*)\|([^\[.]*)\]\]/g, "<a href='/wiki/$1' title='$1'>$2</a>")
    window.attachEvent("onload", func);
+
      .replace(/\[\[([^\[.]*)\]\]/g,      "<a href='/wiki/$1' title='$1'>$1</a>")
}
+
/*
 +
      // Special //
 +
      .replace(/\n\n/g,         "\n\n<br/>")
 +
      .replace(/(^|\n)-{4}(?!~)/g, "<hr/>")
  
function LienAvertissements()  
+
      // Table //
 +
      .replace(/(^|\n)\{\|(.*)/g, "$1<table $2>")
 +
      .replace(/(^|\n)\|}/g, "$1</table>")
 +
      .replace(/(^|\n)(\|.*)\|\|/g, "$1$2</td><td>")
 +
      .replace(/(^|\n)\|[^-}](.*)/g, "$1</td>$2<td>")
 +
      .replace(/(^|\n)(!.*)!!/g, "$1$2</th><th>")
 +
      .replace(/(^|\n)![^-](.*)/g, "$1</th>$2<th>")
 +
*/
 +
      ;
 +
      this.html += "\n";
 +
    }
 +
 
 +
    return this.html;
 +
  };
 +
};
 +
 
 +
/// Hide
 +
function hideQuickPreview()  
 
{
 
{
   var a = document.getElementById("p-navigation");
+
   var wpQuickPreview = document.getElementById("wpQuickPreview");
   if (a)  
+
   if(wpQuickPreview)  
 
   {
 
   {
     b = a.getElementsByTagName("ul");
+
     wpQuickPreview.style.display = 'none';
    if(b.length > 0)
+
    {
+
      b[0].innerHTML = b[0].innerHTML
+
      + '<li id="n-avertissements">'
+
      + '<a href="/index.php/Jurispedia:Avertissements juridiques">'
+
      + 'Avertissements</a></li>'
+
    }
+
 
   }
 
   }
 
}
 
}
     
 
addLoadEvent(LienAvertissements);
 
  
// END Add Disclaimers link in navigation tab
+
addLoadEvent(addQuickPreview);
// ============================================================
+
 
 +
//============================================================
 +
//
 +
// Barre d'outil
 +
//
 +
//============================================================
 +
 
 +
//============================================================
 +
// Générateur de tableaux
 +
//============================================================
 +
 
 +
/**
 +
*
 +
* English: Generate an array using Mediawiki syntax
 +
*
 +
* @author: fr:user:dake
 +
* @version: 0.1
 +
*/
 +
 +
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine)
 +
{
 +
var code = "\n";
 +
if (styleHeader==1) {
 +
code += '{{entête tableau charte}}\n';
 +
} else {
 +
code += '{| border="' + border + '"\n';
 +
code += '|+ Titre du tableau\n';
 +
}
 +
 +
for (var i=0;i<nbCol;i++) code += '! en-tête ' + i + '\n'
 +
 +
for (var j=0;j<nbRow;j++) {
 +
if ((j+1)%2==0 && styleLine==1) {
 +
code += '|-{'+'{ligne grise}'+'}\n'
 +
} else {
 +
code += '|-----\n'
 +
}
 +
 +
for (var i=0;i<nbCol;i++) code += '| élément\n';
 +
}
 +
 +
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();
 +
}
 +
 
 +
 
 +
 
 +
/*
 +
* VraiTitre : Ajout du titre réel d'un article pour lequel MediaWiki n'affiche pas correctement
 +
*/
 +
 
 +
function VraiTitre()
 +
{
 +
  var balise = document.getElementById("vrai_titre");
 +
  if (!balise) return;
 +
  vrai_titre = balise.childNodes[0].nodeValue;
 +
  var titre = document.getElementsByTagName("H1")[0];
 +
  rectificatif = titre.appendChild(document.createElement("span"));
 +
  rectificatif.setAttribute ("style","color:#AAAAAA; font-size:0.7em; font-style:italic; display:inline;");
 +
  rectificatif.appendChild(document.createTextNode(" ("+ vrai_titre +")"));
 +
}
 +
addLoadEvent(VraiTitre);
 +
 
 +
 
  
/* </pre> */
+
/* </nowiki> </pre> */

Version actuelle en date du 15 avril 2006 à 14:25

/* <pre> <nowiki> */
// From http://fr.wikipedia.org/wiki/MediaWiki:Monobook.js  */
// under a GNU Free Documentation License http://www.gnu.org/copyleft/fdl.html */


//============================================================
// 
// Info-bulle et touches de raccourci
// 
//============================================================

ta = new Object();
ta['pt-userpage']           = new Array('.', 'Ma page utilisateur'); 
ta['pt-anonuserpage']       = new Array('.', 'La page utilisateur pour l\'adresse IP que vous utilisez'); 
ta['pt-mytalk']             = new Array('N', 'Ma page de discussion'); 
ta['pt-anontalk']           = new Array('N', 'La page de discussion pour cette adresse'); 
ta['pt-preferences']        = new Array('',  'Mes préférences'); 
ta['pt-watchlist']          = new Array('L', 'La liste des pages que vous suivez'); 
ta['pt-mycontris']          = new Array('Y', 'La liste de mes contributions'); 
ta['ca-talk']               = new Array('T', 'Discussion pour cette page'); 
ta['ca-edit']               = new Array('E', 'Vous pouvez modifier cette page. Merci de prévisualiser avant d\'enregistrer.'); 
ta['ca-addsection']         = new Array('+', 'Ajouter un commentaire à cette discussion.'); 
ta['ca-viewsource']         = new Array('E', 'Cette page est protégée. Vous pouvez toutefois en voir le contenu.'); 
ta['ca-history']            = new Array('H', 'Les auteurs et versions précédentes de cette page.'); 
ta['ca-protect']            = new Array('=', 'Pour protéger cette page.'); 
ta['ca-delete']             = new Array('D', 'Pour supprimer cette page.'); 
ta['ca-undelete']           = new Array('D', 'Pour restaurer cette page.'); 
ta['ca-move']               = new Array('M', 'Pour déplacer ou renommer cette page.'); 
ta['ca-nomove']             = new Array('',  'Vous n\'avez pas la permission de déplacer cette page.'); 
ta['ca-watch']              = new Array('W', 'Ajoutez cette page à votre liste de suivi.'); 
ta['ca-unwatch']            = new Array('W', 'Retirez cette page de votre liste de suivi.'); 
ta['search']                = new Array('F', 'Pour effectuer une recherche.'); 
ta['p-logo']                = new Array('',  'Page principale.'); 
ta['n-mainpage']            = new Array('Z', 'Pour afficher la page principale.'); 
ta['n-portal']              = new Array('',  'À propos du projet.'); 
ta['n-currentevents']       = new Array('',  'Trouvez des informations sur les événements récents.'); 
ta['n-recentchanges']       = new Array('R', 'La liste des modifications récentes.'); 
ta['n-randompage']          = new Array('X', 'Afficher une page au hasard.'); 
ta['n-help']                = new Array('',  'Aide.'); 
ta['n-sitesupport']         = new Array('',  'Pour soutenir le projet.'); 
ta['t-whatlinkshere']       = new Array('J', 'Liste des pages liées à celle-ci.'); 
ta['t-recentchangeslinked'] = new Array('K', 'Liste des modifications récentes des pages liées à celle-ci.'); 
ta['feed-rss']              = new Array('',  'Alimenter le flux RSS pour cette page.'); 
ta['feed-atom']             = new Array('',  'Alimenter le flux Atom pour cette page.'); 
ta['t-contributions']       = new Array('',  'Voir la liste des contributions de cet utilisateur.'); 
ta['t-emailuser']           = new Array('',  'Envoyer un courriel à cet utilisateur.'); 
ta['t-upload']              = new Array('U', 'Importer une image ou fichier média sur le serveur.'); 
ta['t-specialpages']        = new Array('Q', 'Liste des pages spéciales.'); 
ta['ca-nstab-main']         = new Array('C', 'Afficher le contenu de cette page.'); 
ta['ca-nstab-user']         = new Array('C', 'Afficher la page utilisateur.'); 
ta['ca-nstab-media']        = new Array('C', 'Afficher la page média.'); 
ta['ca-nstab-special']      = new Array('',  'Ceci est une page spéciale, vous ne pouvez pas la modifier.'); 
ta['ca-nstab-wp']           = new Array('A', 'Afficher la page du projet.'); 
ta['ca-nstab-image']        = new Array('C', 'Afficher la page de description de l\'image.'); 
ta['ca-nstab-mediawiki']    = new Array('C', 'Afficher le message système.'); 
ta['ca-nstab-template']     = new Array('C', 'Afficher le modèle.'); 
ta['ca-nstab-help']         = new Array('C', 'Afficher la page d\'aide.'); 
ta['ca-nstab-category']     = new Array('C', 'Afficher la page de catégorie.');

//============================================================
//
// Fonctions de gestion
//
//============================================================


/**
 * Installation d'une nouvelle fonction de cette façon:
 * aOnloadFunctions[aOnloadFunctions.length] = nom_de_la_fonction; // (sans parenthèses)
 */
if (!window.aOnloadFunctions) { 
  var aOnloadFunctions = new Array(); 
}

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


/**
 * Ajouter une nouvelle fonction a excuter au chargement de la page.
 */ 
function addLoadEvent(func) 
{
  if (window.addEventListener) 
    window.addEventListener("load", func, false);
  else if (window.attachEvent) 
    window.attachEvent("onload", func);
}


//============================================================
//
// Caractères spéciaux
//
//============================================================

/**
 * Ajoutez le 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) {
    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
    menu += "<option>Wiki</option>";
    menu += "<option>Mathématiques</option>";
    menu += "<option>API</option>";
    menu += "<option>Latin/Romain</option>";
    menu += "<option>Grec</option>";
    menu += "<option>Cyrillique</option>";
    menu += "<option>AHD</option>";
    menu += "<option>Allemand</option>";
    menu += "<option>Arabe</option>";
    menu += "<option>Catalan</option>";
    menu += "<option>Croate</option>";
    menu += "<option>Espagnol</option>";
    menu += "<option>Espéranto</option>";
    menu += "<option>Estonien</option>";
    menu += "<option>Gallois</option>";
    menu += "<option>Hawaien</option>";
    menu += "<option>Hébreu</option>";
    menu += "<option>Hiéroglyphe</option>";
    menu += "<option>Hollandais</option>";
    menu += "<option>Hongrois</option>";
    menu += "<option>Indo-européen</option>";
    menu += "<option>Irlandais</option>";
    menu += "<option>Islandais</option>";
    menu += "<option>Italien</option>";
    menu += "<option>Letton</option>";
    menu += "<option>Lituanien</option>";
    menu += "<option>Maltais</option>";
    menu += "<option>Navajo & Apache</option>";
    menu += "<option>Pinyin</option>";
    menu += "<option>Polonais</option>";
    menu += "<option>Portugais</option>";
    menu += "<option>Rōmaji</option>";
    menu += "<option>Roumain</option>";
    menu += "<option>Scandinave</option>";
    menu += "<option>Serbe</option>";
    menu += "<option>Tchèque</option>";
    menu += "<option>Turc</option>";
    menu += "<option>Vieil anglais</option>";
    menu += "<option>Vietnamien</option>";
    menu += "<option>Yiddish</option>";
    menu += "</select>";
    specialchars.innerHTML = menu + specialchars.innerHTML;

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

/* select subsection of special characters */
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';
  }
}

addLoadEvent(addCharSubsetMenu);


//============================================================
//
// Choix de l'affichage des références
//
//============================================================

/**
 * 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) 
  {
    specialBib.style.display = 'block';
    var menu = "<select style=\"display:inline;\" onChange=\"chooseBibSubset(selectedIndex)\">";
    menu += "<option>Liste</option>";
    menu += "<option>WikiNorme</option>";
    menu += "<option>BibTeX</option>";
    menu += "<option>ISBD</option>";
    menu += "<option>ISO690</option>";
    menu += "</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';
  }
}

addLoadEvent(addBibSubsetMenu);



//============================================================
//
// Prévisualisation rapide 
//
//============================================================

/**
 * Script de ajoutant une option de prévisualisation rapide.
 * 
 *
 * English: Add a Quick View option on the Edit pages.
 * This script add 2 new buttons into the "editButtons" div.
 * When QuickPrev button is press, the content of edit window 
 * is retreived and parsed using regular expressions.
 *
 * @author: fr:user:aoineko
 * @version: 0.2
 */
function addQuickPreview() 
{
  var QuickPreviewBtnTitle  = "Prévisualisation rapide de vos modifications [Alt + Q]";
  var QuickPreviewBtnValue  = "Prévisualisation rapide";
  var QuickPrevHideBtnTitle = "Cacher la prévisualisation rapide [Alt + H]";
  var QuickPrevHideBtnValue = "Cacher";

  var div = document.getElementsByTagName('div');
  for(var i = 0; i < div.length ; i++)
  {
    if(div[i].className == "editButtons") // search "editButtons" div
    {
      div[i].appendChild(document.createElement("br")); // add a <br/>

      var wpQuick = document.createElement("input"); // create and set the "QuickPrev" button
      wpQuick.setAttribute("id",        "wpQuick");
      wpQuick.setAttribute("name",      "wpQuick");
      wpQuick.setAttribute("title",     QuickPreviewBtnTitle);
      wpQuick.setAttribute("value",     QuickPreviewBtnValue);
      wpQuick.setAttribute("type",      "button");
      wpQuick.setAttribute("onclick",   "doQuickPreview();");
      wpQuick.setAttribute("tabindex",  "8");
      wpQuick.setAttribute("accesskey", "Q");
      div[i].appendChild(wpQuick);

      var wpHide = document.createElement("input"); // create and set the "Hide" button
      wpHide.setAttribute("id",        "wpHide");
      wpHide.setAttribute("name",      "wpHide");
      wpHide.setAttribute("title",     QuickPrevHideBtnTitle);
      wpHide.setAttribute("value",     QuickPrevHideBtnValue);
      wpHide.setAttribute("type",      "button");
      wpHide.setAttribute("onclick",   "hideQuickPreview();");
      wpHide.setAttribute("tabindex",  "9");
      wpHide.setAttribute("accesskey", "H");
      div[i].appendChild(wpHide);
    }
  }
}

/// Retreive current code and parse it
function doQuickPreview() 
{
  var wpQuickPreview = document.getElementById("wpQuickPreview");
  if(!wpQuickPreview) 
  {
    /*var l = document.getElementsByTagName('div');
    for(var i = 0; i < l.length ; i++)
      if(l[i].className == "previewnote")
        wpQuickPreview = l;
    
    if(!wpQuickPreview)*/
    {
      wpQuickPreview = document.createElement("div");
      wpQuickPreview.setAttribute("style", "border:solid 1px gray; width:100%; margin-top:1em; margin-bottom:1em; padding:0.5em;");
      var wpSummaryLabel = document.getElementById("wpSummaryLabel");
      wpSummaryLabel.parentNode.insertBefore(wpQuickPreview, wpSummaryLabel);
    }
    wpQuickPreview.setAttribute("id",    "wpQuickPreview");
  }
  wpQuickPreview.style.display = "block";

  wpTextbox1 = document.getElementById("wpTextbox1");
  var str = "=Prévisualisation rapide=\n" + wpTextbox1.value;
  var qp = new QuickPreview(str);
  wpQuickPreview.innerHTML = qp.Parse();
}

function QuickPreview(wiki)
{
  this.line = wiki.split(/\n/);
  this.html = new String;
  
  this.list = 0; // current list depth
  this.tab  = 0; // current tabulation depth
  this.pre  = false; /// inside a <pre> tag
  this.para = false; /// inside a paragraph

  this.HandlePre = function(i)
  {
      if(this.line[i][0] == ' ')
      {
        if(this.para)
        {
          this.para = false;
          this.html += "</p>\n";
        }
        if(!this.pre)
        {
          this.pre = true;
          this.html += "<pre>\n";
        }
        this.html += this.line[i] + "\n";
        return true;
      }
      else if(this.pre)
      {
        this.pre = false;
        this.html += "</pre>\n";
      }
      return false;
  };

  this.HandleH = function(i)
  {
    if(res = this.line[i].match(/^(={1,6})(.*)\1(.*)$/))
    {
        this.line[i] = "<h" + res[1].length + ">" + res[2] + "</h" + res[1].length + ">" + res[3];
        return true;
    }
    return false;
  };
  
  this.Parse = function()
  {
    this.html = "";

    for(var i = 0; i < this.line.length ; i++)
    {
      var p = true;
    
      if(this.HandlePre(i))
        continue;

      if(this.HandleH(i))
        p = false;
      
      if(p && !this.para)
      {
        this.para = true;
        this.html += "<p>";
      }

      this.html += this.line[i]

      // Sign //
      .replace(/~{5}/g, Date())
      .replace(/~{4}/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px yellow;'>Signature</span> "+Date())
      .replace(/~{3}/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px yellow;'>Signature</span>")

      // Style //
      .replace(/'''''(.*?)''(.*?)'''/g, "<strong><em>$1</em>$2</strong>")
      .replace(/'''''(.*?)'''(.*?)''/g, "<em><strong>$1</strong>$2</em>")
      .replace(/'''(.*?)''(.*?)'''''/g, "<strong>$1<em>$2</em></strong>")
      .replace(/'''''(.*?)''''/g,       "<strong><em>\'$1</em></strong>")
      .replace(/''''(.*?)''''/g,        "<strong><em>$1</em></strong>")
      .replace(/''''(.*?)'''/g,         "<strong>\'$1</strong>")
      .replace(/'''(.*?)'''/g,          "<strong>$1</strong>")
      .replace(/'''(.*?)''/g,           "<em>\'$1</em>")
      .replace(/''(.*?)''/g,            "<em>$1</em>")

      // List //
      .replace(/^\*(.*)/g,  "<li>$1</li>")
      .replace(/^#(.*)/g,   "<li>$1</li>")
      .replace(/^:(.*)/g,   "<li>$1</li>")

      // Link //
      .replace(/\{\{([^\|]*).*}}/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px lightgreen;'>Modèle : $1</span>")
      .replace(/\[\[[Ii]mage:([^\|]*)[^\[]*\]\]/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px lightblue;'>Image : $1</span>")
      .replace(/\[\[[Cc]atégorie:([^\|]*)[^\[]*\]\]/g, "<span style='padding:0.2em; margin:0.5em; border:dashed 1px #FF8080;'><a href='/wiki/Catégorie:$1' title='$1'>Catégorie : $1</a></span>")
      .replace(/\[\[([^\[.]*)\|([^\[.]*)\]\]/g, "<a href='/wiki/$1' title='$1'>$2</a>")
      .replace(/\[\[([^\[.]*)\]\]/g,      "<a href='/wiki/$1' title='$1'>$1</a>")
/*
      // Special //
      .replace(/\n\n/g,          "\n\n<br/>")
      .replace(/(^|\n)-{4}(?!~)/g, "<hr/>")

      // Table //
      .replace(/(^|\n)\{\|(.*)/g, "$1<table $2>")
      .replace(/(^|\n)\|}/g, "$1</table>")
      .replace(/(^|\n)(\|.*)\|\|/g, "$1$2</td><td>")
      .replace(/(^|\n)\|[^-}](.*)/g, "$1</td>$2<td>")
      .replace(/(^|\n)(!.*)!!/g, "$1$2</th><th>")
      .replace(/(^|\n)![^-](.*)/g, "$1</th>$2<th>")
*/
      ;
      this.html += "\n";
    }

    return this.html;
  };
};

/// Hide
function hideQuickPreview() 
{
  var wpQuickPreview = document.getElementById("wpQuickPreview");
  if(wpQuickPreview) 
  {
    wpQuickPreview.style.display = 'none';
  }
}

addLoadEvent(addQuickPreview);

//============================================================
//
// Barre d'outil
//
//============================================================

//============================================================
// Générateur de tableaux
//============================================================

/**
 *
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake
 * @version: 0.1
 */
 
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine)
{
	var code = "\n";
	if (styleHeader==1) {
		code += '{{entête tableau charte}}\n';
	} else {
		code += '{| border="' + border + '"\n';
		code += '|+ Titre du tableau\n';
	}
	
	for (var i=0;i<nbCol;i++) code += '! en-tête ' + i + '\n'
	
	for (var j=0;j<nbRow;j++) {
		if ((j+1)%2==0 && styleLine==1) {
			code += '|-{'+'{ligne grise}'+'}\n'
		} else {		
			code += '|-----\n'
		}
		
		for (var i=0;i<nbCol;i++) code += '| élément\n';
	}
	
	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();
}



/*
 * VraiTitre : Ajout du titre réel d'un article pour lequel MediaWiki n'affiche pas correctement
 */

function VraiTitre() 
{
   var balise = document.getElementById("vrai_titre");
   if (!balise) return;
   vrai_titre = balise.childNodes[0].nodeValue;
   var titre = document.getElementsByTagName("H1")[0];
   rectificatif = titre.appendChild(document.createElement("span"));
   rectificatif.setAttribute ("style","color:#AAAAAA; font-size:0.7em; font-style:italic; display:inline;");
   rectificatif.appendChild(document.createTextNode(" ("+ vrai_titre +")"));
}
addLoadEvent(VraiTitre);



/* </nowiki> </pre> */