/* generated javascript */
var skin = 'monobook';
var stylepath = '/skins';

/* MediaWiki:Common.js */
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */

/* Test if an element has a certain class **************************************
 *
 * Description: Uses regular expressions and caching for better performance.
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 */
 
var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
})();

/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               [[Wikipedia:NavFrame]].
 *  Maintainers: [[User:R. Koot]]
 */
 
var autoCollapse = 2;
var collapseCaption = "cacher";
var expandCaption = "montrer";
 
function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
 
    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" ) ) {
 
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;
 
            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.className = "collapseButton";  //Styles are declared in Common.css
 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );
 
            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 );
        } 
        else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) {
            var element = NavigationBoxes[i];
            while (element = element.parentNode) {
                if ( hasClass( element, "outercollapse" ) ) {
                    collapseTable ( i );
                    break;
                }
            }
        }
    }
}
 
addOnloadHook( createCollapseButtons );

/* MediaWiki:Monobook.js */
/* <pre> <nowiki> */

//============================================================
// 
// 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-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['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-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.');
ta['pt-login']              = new Array('',  'Vous êtes encouragé à vous connecter ou à créer un compte.');
ta['pt-logout']             = new Array('',  'Se déconnecter');


//============================================================
//
// 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);
}

//============================================================
//
// Boites deroulantes
//
//============================================================
 // BEGIN Dynamic Navigation Bars (experimantal)
 
 // set up the words in your language
 var NavigationBarHide = '[ Enrouler ]';
 var NavigationBarShow = '[ Dérouler ]';
 
 // set up max count of Navigation Bars on page,
 // if there are more, all will be hidden
 // NavigationBarShowDefault = 0; // all bars will be hidden
 // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 var NavigationBarShowDefault = 0;
 
 
 // shows and hides content and picture (if available) of navigation bars
 // Parameters:
 //     indexNavigationBar: the index of navigation bar to be toggled
 function toggleNavigationBar(indexNavigationBar)
{
   var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
   var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

   if (!NavFrame || !NavToggle) {
       return false;
   }

   // if shown now
   if (NavToggle.firstChild.data == NavigationBarHide) {
       for (
               var NavChild = NavFrame.firstChild;
               NavChild != null;
               NavChild = NavChild.nextSibling
           ) {
           if (NavChild.className == 'NavPic') {
               NavChild.style.display = 'none';
           }
           if (NavChild.className == 'NavContent') {
               NavChild.style.display = 'none';
           }
           if (NavChild.className == 'NavToggle') {
               NavChild.firstChild.data = NavigationBarShow;
           }
       }

   // if hidden now
   } else if (NavToggle.firstChild.data == NavigationBarShow) {
       for (
               var NavChild = NavFrame.firstChild;
               NavChild != null;
               NavChild = NavChild.nextSibling
           ) {
           if (NavChild.className == 'NavPic') {
               NavChild.style.display = 'block';
           }
           if (NavChild.className == 'NavContent') {
               NavChild.style.display = 'block';
           }
           if (NavChild.className == 'NavToggle') {
               NavChild.firstChild.data = NavigationBarHide;
           }
       }
   }
}

// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
   var indexNavigationBar = 0;
   // iterate over all < div >-elements
   for(
           var i=0; 
           NavFrame = document.getElementsByTagName("div")[i]; 
           i++
       ) {
       // if found a navigation bar
       if (NavFrame.className == "NavFrame") {

           indexNavigationBar++;
           var NavToggle = document.createElement("a");
           NavToggle.className = 'NavToggle';
           NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
           NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

           var NavToggleText = document.createTextNode(NavigationBarHide);
           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);
       }
   }

}
 
 addLoadEvent(createNavigationBarToggleButton);
 
 // END Dynamic Navigation Bars

//============================================================
//
// 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 + '\n' + tpl + '\n' + c2;
}

function InitPaV(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 à vérifier -->";
    var tpl = '{{subst:' + 'Initialiser PàV|' + page_name + '|~~~~}}';
    return c1 + '\n' + tpl + '\n' + 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 + '\n' + tpl + '\n' + 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:' + 'Initialiser IàS|' + page_name + '|~~~~|jour={{subst:CURRENTDAY}}|mois={{subst:CURRENTMONTH}}}}';
    return c1 + '\n' + tpl + '\n' + c2;
}

function InitPAdQ(page_name)
{
    var c1 = "<!--\n     À la création de la page, suivez les consignes ci-dessous pour proposer l'article.\n\n     ATTENTION : Veuillez ne rien effacer !\n-->";
    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 + '\n\n' + tpl + '\n' + c2 + '\n' + tpl2 + '\n\n' + c3 + '\n\n' + c4 + '\n' + c5  + '\n' + c6 + '}}\n';
}

function InitIaA(page_name)
{
    var c1 = "<!-- Sauvegarder la page pour l'initialiser puis suivre les instructions -->";
    return c1 + '\n{{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 + '\n' + tpl + '\n' + c2;
}

function InitArbReq(page_name)
{
    var c1 = "<" + "!-- Remplissez les champs (???) puis sauvegardez --" + ">\n";
    var c2 = "[[Catégorie:Arbitrage en cours]]\n{" + "{Page d'arbitrage}}\n\nArbitre coordinateur :\n\n";
    var c3 = "Arbitre(s) ne participant pas à cet arbitrage :\n\n";
    var c4 = "== Description du conflit ==\n\n'''Demande déposée par''' : [[Utilisateur:X|X]] le ??? à ???\n\n";
    var c5 = "''Parties concernées par le conflit'' : ??? et [[Utilisateur:???|]] (et [[Utilisateur:???|]]).\n\n";
    var c6 = "''Nature du conflit''  : ???\n\n";
    var c7 = "''Recevabilité'' :\n\n''Décision'' :\n\n";
    var c8 = "== Arguments de ??? ==\n{" + "{CAr limite des arguments}}\n\n";
    var c9 = c8;
    var c10 = "== Recevabilité ==\n\n== Mesures conservatoires ==\n<" + "!-- Mesures telles que protection de page, interdiction d'édition ou blocage, décidée par le coordinateur, avec justification. Les autres arbitres y réagissent ici. --" + ">\n\n== Discussion sur le fond ==\n\n=== Commentaires des arbitres ===\n\n";
    var c11 = "=== Propositions ===\n\n==== Proposition 1 ====\n\n<u>Proposition :</u>\n\n<u>Vote :</u>";
    return c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 + c9 + c10 + c11;
}

var init_if_empty = new Array(
    new Array('Wikip%C3%A9dia:Pages_%C3%A0_supprimer/', InitPaS),
    new Array('Wikip%C3%A9dia:Pages_%C3%A0_v%C3%A9rifier/', InitPaV),
    new Array('Wikip%C3%A9dia:Liste_des_articles_non_neutres/', InitLANN),
    new Array('Wikip%C3%A9dia:Images_%C3%A0_supprimer/', InitIaS),
    new Array('Wikip%C3%A9dia:Proposition_articles_de_qualit%C3%A9/', InitPAdQ),
    new Array('Wikip%C3%A9dia:Pages_soup%C3%A7onn%C3%A9es_de_violation_de_copyright/', InitPCP),
    new Array('Wikip%C3%A9dia:Comit%C3%A9_d%27arbitrage/Arbitrage/', InitArbReq)
);

/**
 * 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()
{
    // TODO, il faut tester l'existence de l'edit box et la longueur
    // du texte  en dehors de la boucle
    ugly_url = 'http://fr.wikipedia.org/w/index.php?title=';
    for (var i = 0; i < init_if_empty.length; ++i) {
      var page_name = document.URL;
      var page_match = init_if_empty[i][0];
      var index = page_name.indexOf(ugly_url + page_match);
      if (index != -1) {
	var text_area = document.editform.wpTextbox1;
	if (text_area.value.length == 0) {
           page_name = page_name.slice((ugly_url + page_match).length);
           page_name = page_name.split('&')[0];
           page_name = decodeURI(page_name);
           page_name = page_name.replace(/_/g, ' ')
	   text_area.value = init_if_empty[i][1](page_name);
           break;
	}
      }
    }
}

addLoadEvent(InitPage);


//============================================================
//
// 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);

//============================================================
//
// 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();
}

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

/**
 * Ajoute quelques boutons sur la barre d'outil
 * Inspiré de mon code précédent et des icônes sur he:
 * @author: fr:user:dake
 * @version: 0.1
 */
/*function ImprovedToolbar()
{
 tooly = document.getElementById('toolbar');
 if (tooly == null) return;

 StrikeTextButton = "<a href=\"javascript:insertTags('<s>','</s>','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/3/30/Btn_toolbar_rayer.png\" alt=\"Rayer\" title=\"Rayer\"></a>";
 EnumTextButton = "<a href=\"javascript:insertTags('\\n# élément 1\\n# élément 2\\n# élément 3','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/8/88/Btn_toolbar_enum.png\" alt=\"Énumération\" title=\"Énumération\"></a>";
 ListTextButton = "<a href=\"javascript:insertTags('\\n* élément A\\n* élément B\\n* élément C','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/1/11/Btn_toolbar_liste.png\" alt=\"Liste\" title=\"Liste\"></a>";
 GalleryButton = "<a href=\"javascript:insertTags('\\n<gallery>\\nImage:Vista-openbsd.png|Légende\\nImage:AMule.png|Légende\\nImage:Cyberduck icon.png|Légende\\n</gallery>','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/9/9e/Btn_toolbar_gallery.png\" alt=\"Galerie d'images\" title=\"Galerie d'images\"></a>";
 CommentTextButton = "<a href=\"javascript:insertTags('<!--','-->','');\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/3/37/Btn_toolbar_commentaire.png\" alt=\"Commentaire\" title=\"Commentaire\"></a>";
 RedirectButton = "<a href=\"javascript:insertTags('#REDIRECT [[',']]','nom de la destination');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png\" alt=\"Redirection\" title=\"Redirection\"></a>";
 ArrayButton = "<a href=\"javascript:popupTableau();\"><img src=\"http://upload.wikimedia.org/wikipedia/fr/0/04/Button_array.png\" alt=\"Tableau\" title=\"Tableau\"></a>";

 tooly.innerHTML = tooly.innerHTML + StrikeTextButton + EnumTextButton + 
ListTextButton + CommentTextButton + GalleryButton + RedirectButton + ArrayButton ;
}*/

//addLoadEvent(ImprovedToolbar);

//Remplit la variable mwCustomEditButtons (voir /skins-1.5/commons/wikibits.js) pour ajouter des boutons à la barre d'outils
function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText)
{
 mwCustomEditButtons[mwCustomEditButtons.length] =
 {"imageFile": imageFile,
  "speedTip": speedTip,
  "tagOpen": tagOpen,
  "tagClose": tagClose,
  "sampleText": sampleText};
}

addCustomButton('http://upload.wikimedia.org/wikipedia/fr/3/30/Btn_toolbar_rayer.png','Rayer',"<s>","</s>",'');
addCustomButton('http://upload.wikimedia.org/wikipedia/fr/8/88/Btn_toolbar_enum.png','Énumération',"\\n# élément 1\\n# élément 2\\n# élément 3","",'');
addCustomButton('http://upload.wikimedia.org/wikipedia/fr/1/11/Btn_toolbar_liste.png','Liste',"\\n* élément A\\n* élément B\\n* élément C","",'');
addCustomButton('http://upload.wikimedia.org/wikipedia/fr/9/9e/Btn_toolbar_gallery.png','Galerie d\'images',"\\n<gallery>\\nImage:M63.jpg|[[M63]]\\nImage:Mona Lisa.jpg|[[La Joconde]]\\nImage:Truite arc-en-ciel.jpg|Une [[truite]]\\n</gallery>","",'');
addCustomButton('http://upload.wikimedia.org/wikipedia/fr/3/37/Btn_toolbar_commentaire.png','Commentaire',"<!--","-->",'');
addCustomButton('http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png','Redirection',"#REDIRECT [[","]]",'nom de la destination');

//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
function marque_tab()
{
 var toolbar = document.getElementById('toolbar');
 if (!toolbar) return false;
 
 var textbox = document.getElementById('wpTextbox1');
 if (!textbox) return false;
 
 if (!document.selection && textbox.selectionStart == null)
 return false;
 
 var image = document.createElement("img");
 image.width = 23;
 image.height = 22;
 image.src = 'http://upload.wikimedia.org/wikipedia/fr/0/04/Button_array.png';
 image.border = 0;
 image.alt = 'Tableau';
 image.title = 'Tableau';
 image.style.cursor = "pointer";
 image.onclick = function() {
   popupTableau();
   return false;
 }
 toolbar.appendChild(image);
}

addLoadEvent(marque_tab);




//============================================================
// 
// Divers
// 
//============================================================

/**
 * Transformer les pages du Bistro en page de discussion
 */
function DiscussionBistro() 
{
  if(  (document.title.search("Wikipédia:Le Bistro") != -1)
    || (document.title.search("Wikipédia:Bulletin des administrateurs") != -1))
    document.body.className = "ns-1";
}
     
addLoadEvent(DiscussionBistro);

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

addLoadEvent(TransformeEnDiscussion);

/**
 * Ajout d'un style particulier aux liens interlangues vers des articles de qualités
 */
function LienAdQ() 
{
   var lang = document.getElementById("p-lang"); // fin language link list
   if(lang)
   {
      var span = document.getElementsByTagName("span");
      for(i=0; i<span.length; i++) // iterate over all <span>-elements
      {
         // if found a AdQ span
         if(span[i].className == "AdQ") {
            var li = lang.getElementsByTagName("li");
            for(j=0; j<li.length; j++) {
               if(li[j].className == "interwiki-" + span[i].id) { // if found a AdQ link
                  li[j].style.padding = "0 0 0 16px";
                  li[j].style.backgroundImage = "url('http://upload.wikimedia.org/wikipedia/fr/3/36/Icone_etoile.png')";
                  li[j].style.backgroundRepeat = "no-repeat";
                  li[j].title = "Lien vers un article de qualité";
               }
            }
         }
      }
   }
}

addLoadEvent(LienAdQ);

/*
 * 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);

/****************************************/
function mwInsertEditButton(parent, item) {
        var image = document.createElement("img");
        image.width = 23;
        image.height = 22;
        image.src = item.imageFile;
        image.border = 0;
        image.style.cursor = "pointer";
        var ref = document.createElement("a")
        ref.setAttribute("href", "javascript:insertTags(\"" + item.tagOpen + "\",\"" + item.tagClose + "\",\"" + item.sampleText + "\");")
        ref.setAttribute("title", item.speedTip);
        ref.appendChild(image);
        
        parent.appendChild(ref);
}

/************
 * IconesDeTitre : fait en sorte que le modèle {{Icône de titre}} puisse être utilisé plusieurs fois
 */

function IconesDeTitre(){
  var icones = document.getElementsByTagName ("div");
  var icones2= new Array();
  var j = 0;
  var i = 0;
  for (i = 0; i < icones.length ; i++) {
    if (icones[i].getAttribute("class") == "icone de titre"){
      icones2[j++] = icones[i];
    }
  }
  for (i=0 ; i < icones2.length ; i++) {
    icones2[i].style.right= (50*i+10)+"px";
  }
}
addLoadEvent (IconesDeTitre);

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