mw.loader.using('mediawiki.util', function () {

/**
 * Ouvre et ferme toutes le boîboîtes de la page.
 * auteur : http://fr.wikipedia.orghttps://wiki95.com/fr/Utilisateur:Lgd
 * licence : MIT
 *
 * Aide et paramétrage : http://fr.wikipedia.orghttps://wiki95.com/fr/Utilisateur:Lgd/ouvreBoites
 */

var openIt = function ($) {
  var openText = 'Tout ouvrir';
  var closeText = 'Tout fermer';
  var toggleOpen = '';
  var toggleClose = '';
  var toggleState = true;
  var toggleFirst = true;
  var $toggleNavbox;
  var $toggleNavcontent;
  var $toggleLinks;
  var openLinkFooter = $('<li style="text-align: right;"><a href="#ca-open-all-footer" id="ca-open-all-footer">' + openText + '</a></li>');

  var openLink = mw.util.addPortletLink( 'p-cactions', '#', openText, 'ca-open-all');
  $('#footer-info').prepend(openLinkFooter);
  var $toggleAllLinks = $('#ca-open-all a, #ca-open-all-footer');

  function openAll() {
    $toggleNavbox.css('display', 'table-row');
    $toggleNavcontent.css('display', 'block');
    $toggleLinks.text(toggleClose);
    $('.mw-collapsible-toggle-collapsed, .fr-collapsible-toggle-collapsed:not(".fr-collapsible-group-toggle-all")').each(function(event){
      $(this).click()
    });
    $toggleAllLinks.text(closeText);
    toggleState = false;
  }

  function closeAll() {
    $toggleNavbox.not(':first-child').css('display', 'none');
    $toggleNavcontent.css('display', 'none');
    $toggleLinks.text(toggleOpen);
    $('.mw-collapsible-toggle-expanded, .fr-collapsible-toggle-expanded:not(".fr-collapsible-group-toggle-all")').each(function(event){
       $(this).click()
    });
    $toggleAllLinks.text(openText);
    toggleState = true;
  }

  function initToggle() {
    $toggleNavbox = $('.collapsible tr').not(':first-child');
    $toggleNavcontent = $('div.NavContent');
    $toggleLinks = $('.navboxToggle a, .NavToggle');
    toggleFirst = false;
    if($toggleLinks.length == 0) {$toggleAllLinks.css('color', '#aaa')}
  }

  $(openLink).click( function () {
    if(toggleFirst) {
      initToggle();
    }
    if(toggleState) {
      openAll();
    } else {
      closeAll();
    }    
    return false;
  });
  $('#ca-open-all-footer').click( function (event) {
    $(openLink).click();
  });
}
$(document).ready(openIt);

});