// =============================================================
// Script d'Orlodrim pour évaluer les articles qui ont un 
// portail, mais pas d'évaluation du projet correspondant en pdd
// =============================================================

importScript('User:Orlodrim/portail-eval.js');

// =============================================================
// Liens dans le menu latéral "Général"
// =============================================================

$(function() {
	mw.util.addPortletLink(
		'p-tb',
		'//fr.wikipedia.orghttps://wikines.com/fr/Utilisateur:Daehan/Brouillon',
		'Brouillon'
	);
});

// =============================================================
// ImageMapEdit
// https://meta.wikimedia.orghttps://wikines.com/fr/User:Dapete/ImageMapEdit#English
// =============================================================

if (mw.config.get('wgNamespaceNumber')==6 && mw.config.get('wgAction')=='view') {
	mw.loader.load('//tools.wmflabs.org/imagemapedit/ime.js');
}

// =============================================================
// Enrouler/dérouler les sections
// https://darkoneko.wordpress.com/2010/03/08/personnalisons-wikipedia-enroulerderouler-des-sections/
// =============================================================

/* Cette fonction ajoute un "onclick" sur chaque titre, qui lancera un appel à toggleTitle() lors d'un clic sur ceux ci */
function ImplementToggleOnclick() {

   for( var titleLevel = 1 ; titleLevel < 7 ; titleLevel++) {
      var titleList = document.getElementsByTagName('h' + titleLevel)
      var nb = titleList.length
      for( var b = 0 ; b < nb ; b++) {
          titleList.setAttribute('onclick', "toggleTitle(this)");
      }
   }
}
$(ImplementToggleOnclick)

/* Cette fonction, quand invoquée, fait disparaitre ou réaparaitre le contenu placé sous un titre jusqu'au prochain titre de niveau egal ou supérieur
(= un h3 s'arrete au prochain h2 ou h3 mais continuera s'il rencontre un h4 ou h5) */
function toggleTitle(p_this) {
  var p_niveau = p_this.nodeName.substring(1,2) //le 1 de h1 (ou 2 de h2, etc.)

  //construction de l'expression reguliere permettant le trouver le prochain titre de niveau égal ou supérieur
  var stopMatch = "(h1"
  for(var a = 2 ; a <= p_niveau ; a++)  {
    stopMatch += "|h"+a
  }
  stopMatch += ")"
  reg = new RegExp(stopMatch, "i" )

  //on ajoute une classe (neko_toggle_cache) au titre pour savoir s'il est en mode replié
  if( p_this.className != "neko_toggle_cache") { //il faut  replier
     p_this.className = "neko_toggle_cache"
     var display_to_put = "none"
  } else { //il faut faire déplier
     p_this.className = ""
     var display_to_put = "block"
  }

  var nextSiblingNode = p_this.nextSibling

  while( nextSiblingNode ) {
     if(  nextSiblingNode.nodeName.match(reg) ) break; //on a atteint le titre "bloquant" suivant = stop

     if( nextSiblingNode.style) { //certains nodes sont des nodes texte et n'ont pas de style.
        nextSiblingNode.style.display = display_to_put
        if( nextSiblingNode.className = "neko_toggle_cache") nextSiblingNode.className = "" // x
     }
     nextSiblingNode = nextSiblingNode.nextSibling //on passe au voisin suivant
  }
}

// ==========================================================================
// Ajoute un élément « Vérifier renvoi biblio. » dans le menu/onglet « Plus »
// ==========================================================================

importScript('Utilisateur:Lgd/refErrors/refErrors.js') ;

// ReferenceTooltips
mw.loader.load( "/w/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&action=raw&ctype=text/javascript" );

// ==========================================================================
// Script d'affichage et édition des courtes descriptions sur Wikidata
// ==========================================================================

mw.loader.getScript( 'https://en.wikipedia.org/w/load.php?modules=ext.gadget.libSettings' ).then( function() {
	mw.loader.load( 'https://en.wikipedia.org/w/load.php?modules=ext.gadget.Shortdesc-helper' );
})