Inscris-toi pour écrire dans l'encyclopédie Wikimini!

Utilisateur:Dr Brains/monobook.js

Aller à : navigation, rechercher

Note : après avoir enregistré tes préférences, tu devras forcer son rechargement complet en ignorant le contenu actuel du cache de ton explorateur pour voir les changements : Mozilla / Firefox / Konqueror / Safari : maintiens la touche Majuscule (Shift) en cliquant le bouton Actualiser (Reload,) ou presse Maj-Ctrl-R (Maj-Cmd-R sur Apple Mac) ; Internet Explorer / Opera : maintiens la touche Ctrl en cliquant le bouton Actualiser ou presse Ctrl-F5.

//__NORICHEDITOR__ // Pas de WYGSYG sur ma page Javascript

/////////////////////////////////////////////////////////////////////// Redirection automatique vers le skin monobook
///////////////////////////////////////////////////////////////////////

var AdresseURL = window.location.href;

// Fonction de récupération des arguments de l'URL

function recuperesArgumentURL(argumentARecuperer){
   urlPage = window.location.href;
   listeArguments = urlPage.split(new RegExp(argumentARecuperer+"=", "g"));
   if(listeArguments.length == 1)   {
        return false;
   }else{
      argumentRecherche = listeArguments[1].split(new RegExp("&", "g"));
   }
   return argumentRecherche[0];
}

// Ajout d'un lien dans les liens personnels pour revenir au skin wikimini

addOnloadHook (function(){
        recuperesArgumentURL('useskin');
        if(recuperesArgumentURL('useskin')!='wikimini'){
                var UlPerso = document.getElementById('p-personal').getElementsByTagName('ul')[0];
                UlPerso.innerHTML = '<li><a href="' + AdresseURL.split('monobook').join('wikimini') + '" title="Revenir à l\'habillage Wikimini" >Wikimini</a></li>' + UlPerso.innerHTML;
        }
});

importScript('MediaWiki:Wikimini.js');

////////////////////////////////////////////////////////////////////////////////// FIN DE GESTION DE LA REDIRECTION ///////////////////////////////////////////////////////


var showFCKEditor = 0;
var popup = false; //pointer to popup document
var firstLoad = false;
var editorMsgOn = "''Rich Editor''";
var editorMsgOff = "Désactiver ''Rich Editor''";
var editorLink = "Désactiver ''Rich Editor''";
var saveSetting = 0;
var RTE_VISIBLE = 1;
var RTE_TOGGLE_LINK = 2;
var RTE_POPUP = 4;


var oFCKeditor = new FCKeditor( "wpTextbox1" ) ;

//Set config
oFCKeditor.BasePath = "/w/extensions/FCKeditor/fckeditor/" ;
oFCKeditor.Config["CustomConfigurationsPath"] = "/w/extensions/FCKeditor/fckeditor_config.js" ;oFCKeditor.Config["EditorAreaCSS"] = "/w/extensions/FCKeditor/css/fckeditor.css" ;
oFCKeditor.ToolbarSet = "Wikimini" ;
oFCKeditor.ready = false;
oFCKeditor.Config["showreferences"] = false;
oFCKeditor.Config["showsource"] = false; 















/////////////////////////////////////////////////////////////////////// Fonctions génériques  
/////////////////////////////////////////////////////////////////// 

function insertAfter(parent, node, referenceNode) {
  parent.insertBefore(node, referenceNode.nextSibling); 
}

function hasClass(node, className) {
  if (node.className == className) {
    return true;
  }
  var reg = new RegExp('(^| )'+ className +'($| )')
  if (reg.test(node.className)) {
    return true;
  }
  return false;
}
 
function addClass(node, className) {
    if (hasClass(node, className)) {
        return false;
    }
    node.className += ' '+ className;
    return true;
}
 
function removeClass(node, className) {
  if (!hasClass(node, className)) {
    return false;
  }
  node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
  return true;
}

function eregReplace(search, replace, subject) {
    return subject.replace(new RegExp(search,'g'), replace);
}

function get_nextsibling(n){
x=n.nextSibling;
if(x==null) return false;
while (x.nodeType!=1)  {
  x=x.nextSibling;
  if(x==null) return false;
  }
return x;
}

function get_previoussibling(n){
x=n.previousSibling;
if(x==null) return false;
while (x.nodeType!=1)  {
  x=x.previousSibling;
  if(x==null) return false;
  }
return x;
}

function getTextContent(oNode) {
  if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;}
  switch (oNode.nodeType) {
    case 3: // TEXT_NODE
    case 4: // CDATA_SECTION_NODE
      return oNode.nodeValue;
      break;
    case 7: // PROCESSING_INSTRUCTION_NODE
    case 8: // COMMENT_NODE
      if (getTextContent.caller!=getTextContent) {
        return oNode.nodeValue;
      }
      break;
    case 9: // DOCUMENT_NODE
    case 10: // DOCUMENT_TYPE_NODE
    case 12: // NOTATION_NODE
      return null;
      break;
  }
  var _textContent = "";
  oNode = oNode.firstChild;
  while (oNode) {
    _textContent += getTextContent(oNode);
    oNode = oNode.nextSibling;
  }
  return _textContent;
}

function setCookie (cookieName, cookieValue, expires, path) {
        document.cookie = escape(cookieName) + '=' + escape(cookieValue) + (expires ? '; EXPIRES=' + expires.toGMTString() : '') + "; PATH=/" ; 
}
  
function getCookie(cookieName) {
        var cookieValue = null;
        var posName = document.cookie.indexOf(escape(cookieName) + '=' );
        if (posName != -1) {
                        var posValue = posName + (escape(cookieName) + '=' ).length;
                        var endPos = document.cookie.indexOf(';', posValue) ;
                if (endPos != -1) {
                        cookieValue = unescape(document.cookie.substring(posValue, endPos));
                } else {
                        cookieValue = unescape(document.cookie.substring(posValue));
                }
        }
        return decodeURIComponent(cookieValue);
}

/////////////////////////////////////////////////////////////////////// Ouverture des liens externes dans un nouvel onglet 
/////////////////////////////////////////////////////////////////////// 
 
addOnloadHook(function() {
    var alinks = document.getElementsByTagName('a');
    var tablink, sitename;
    for (var i = 0, leng = alinks.length; i < leng; i++) {
        tablink = alinks[i];
        if (tablink.className.indexOf("external") != -1 && tablink.href.indexOf(wgServer) == -1)
            tablink.target = "_blank";
    }
});
 
/////////////////////////////////////////////////////////////////////// Lors du passage de la souris au dessus d'un lien de section "modifier", colore la section à modifier. 
/////////////////////////////////////////////////////////////////////// 
 
/* copié de http://en.wikipedia.org/wiki/User:Magnus_Manske/HighlightEditSections.js */
 
addOnloadHook ( extendededitlinks ) ;
 
function extendededitlinks_get_event_target ( e ) {
  var targ ;
  if (!e) var e = window.event;
  if (e.target) targ = e.target;
  else if (e.srcElement) targ = e.srcElement;
  if (targ.nodeType == 3) targ = targ.parentNode; // defeat Safari bug
  while ( targ.nodeType != 1 || targ.className != "editsection" ) targ = targ.parentNode ;
  return targ ;
} 
function extendededitlinks_is_relevant_heading ( current , compare ) {
  if ( current.nodeType != 1 ) return false ;
  if ( current.tagName.length != 2 ) return false ;
  if ( current.tagName.substr ( 0 , 1 ) != "H" ) return false ;
  if ( current.tagName> compare.tagName) return false ;
  return true ;
} 
function extendededitlinks_onmouseover ( e ) {
  var target = extendededitlinks_get_event_target ( e ) ; 
  var h2 = target ;
  while ( h2.nodeType != 1 || h2.tagName.substr(0,1) != "H" ) h2 = h2.parentNode; 
  var newdiv = document.createElement ( "div" ) ;
  newdiv.style.backgroundColor = "#DDDDDD" ;
//  newdiv.style.border = "1px solid black" ;
//  newdiv.style.padding = "2px" ; 
  h2.parentNode.insertBefore ( newdiv , h2 ) ;
  newdiv = h2.previousSibling ; // Unneccessary? 
  var x = h2 ;
  do {
    var y = x ;
    x = x.nextSibling ;
    newdiv.appendChild ( y ) ;
  } while ( x && !extendededitlinks_is_relevant_heading ( x , h2 ) ) ;
} 
function extendededitlinks_onmouseout ( e ) {
  var target = extendededitlinks_get_event_target ( e ) ; 
  var h2 = target ;
  while ( h2.nodeType != 1 || h2.tagName.substr(0,1) != "H" ) h2 = h2.parentNode; 
  var newdiv = h2 ;
  while ( newdiv.nodeType != 1 || newdiv.tagName != "DIV" ) newdiv = newdiv.parentNode; 
  for ( var y = newdiv.firstChild ; y ; y = z ) {
    z = y.nextSibling ;
    newdiv.parentNode.insertBefore ( y , newdiv ) ;
  }
  newdiv.parentNode.removeChild ( newdiv ) ;
}
function extendededitlinks () {
  var spans = document.getElementsByTagName( "span" );
  for ( var i = 0 ; i < spans.length ; i++ ) {
    if ( spans[i].className != "editsection" ) continue ;
    var a = spans[i].getElementsByTagName("a")[0] ;
    a.onmouseover = extendededitlinks_onmouseover ;
    a.onmouseout = extendededitlinks_onmouseout ;
  }
}

///////////////////////////////////////// Liste de suivi Deluxe : Retirer/ajouter des pages de sa liste de suivi plus facilement ///////////////////////////////////////// 
 
var suiviManagerAllPages = new Array();
 
function SuiviManagerRegexp(regexp){
        var match = new RegExp(regexp); 
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
                if (match.test(pageName)) {
                        suiviManagerAllPages[i].childNodes[0].checked=true;
                }
        }
}
 
function countPages(regexp){
        var match = new RegExp(regexp);
        var count = 0;
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                var pageName = suiviManagerAllPages[i].childNodes[0].getAttribute("value");
                if (match.test(pageName)) {
                        count = (count+1);
                }
        }
        return count;
}
 
function SuiviManagerLiensRouges(){
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                if (suiviManagerAllPages[i].childNodes[1].className == "new"
                    && (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
                        || suiviManagerAllPages[i].childNodes[3].className == "new") ) { 
                        suiviManagerAllPages[i].childNodes[0].checked=true;
                }
        }
}
 
function countLiensRouges(){
        var count = 0;
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                if (suiviManagerAllPages[i].childNodes[1].className == "new"
                    && (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
                        || suiviManagerAllPages[i].childNodes[3].className == "new") ) { 
                        count = (count+1);;
                }
        }
        return count;
}
 
function SuiviManagerRedirects(){
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                if (suiviManagerAllPages[i].childNodes[1].className == "watchlistredir"
                    && (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
                        || suiviManagerAllPages[i].childNodes[3].className == "watchlistredir") ) {
                        suiviManagerAllPages[i].childNodes[0].checked=true;
                }
        }
}
 
function countRedirects(){
        var count = 0;
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                if (suiviManagerAllPages[i].childNodes[1].className == "watchlistredir"
                    && (suiviManagerAllPages[i].childNodes[1].title.indexOf('/') == -1
                        || suiviManagerAllPages[i].childNodes[3].className == "watchlistredir") ) { 
                        count = (count+1);
                }
        }
        return count;
}
 
function SuiviManagerDeselect(){
        for (var i=0;i<suiviManagerAllPages.length;i++) {
                suiviManagerAllPages[i].childNodes[0].checked=false;
        }
}
 
function SuiviManager() {
 
 
        //////////////////////////////////////////////////
        // Expressions régulières et liens de l'interface
        //
        // besoin d'aide pour les regexp ?
        // http://www.commentcamarche.net/javascript/jsregexp.php3
        //////////////////////////////////////////////////
 
        var a=0;
        var b=0;
        var c=0;
        var interfaceMsg = new Array();
        var regexpList = new Array();
        var regexpLien = new Array();
 
        interfaceMsg[a++]       = "Utilisateur";
        regexpList[b++]         = "^Utilisateur:";
        regexpLien[c++]         = "#editwatchlist-ns2";
 
        interfaceMsg[a++]       = "Wikimini";
        regexpList[b++]         = "^Wikimini:";
        regexpLien[c++]         = "#editwatchlist-ns4";
 
        interfaceMsg[a++]       = "Fichier";
        regexpList[b++]         = "^Fichier:";
        regexpLien[c++]         = "#editwatchlist-ns6";
 
 
        interfaceMsg[a++]       = "MediaWiki";
        regexpList[b++]         = "^MediaWiki:";
        regexpLien[c++]         = "#editwatchlist-ns8";
 
        interfaceMsg[a++]       = "Modèle";
        regexpList[b++]         = "^Modèle:";
        regexpLien[c++]         = "#editwatchlist-ns10";
 
        interfaceMsg[a++]       = "Aide";
        regexpList[b++]         = "^Aide:";
        regexpLien[c++]         = "#editwatchlist-ns12";
 
        interfaceMsg[a++]       = "Catégorie";
        regexpList[b++]         = "^Catégorie:";
        regexpLien[c++]         = "#editwatchlist-ns14";
 
        interfaceMsg[a++]       = "Fil de discussion";
        regexpList[b++]         = "^Fil de discussion:";
        regexpLien[c++]         = "#editwatchlist-ns90";
 
        interfaceMsg[a++]       = "Résumé";
        regexpList[b++]         = "^Résumé:"; 
        regexpLien[c++]         = "#editwatchlist-ns92";
 
        interfaceMsg[a++]       = "Quizz";
        regexpList[b++]         = "^Quizz:"; 
        regexpLien[c++]         = "#editwatchlist-ns100";
// ----------------------------------------------------------
 
        var m=0;
        var n=0;
        var interfaceMsgTer = new Array();
        var regexpListTer = new Array();
 
        interfaceMsgTer[m++]       = "Utilisateurs IP";
        regexpListTer[n++]         = "^Utilisateur:[0-9].*";
 
// ----------------------------------------------------------
 
        var z=0;
        var y=0;
        var interfaceMsgBis = new Array();
        var regexpListBis = new Array();
 
        interfaceMsgBis[z++]       = "Mes sous-pages";
        regexpListBis[y++]         = "^Utilisateur:" + wgUserName.replace(/_/g," ") + "\/";
 
        //////////////////////////////////////////////////
        var topTag = document.getElementById("contentSub") 
                // récupère toutes les pages
	var bc = document.getElementById("bodyContent");
        if(!bc) bc = document.getElementById("article");
        if(!bc) bc = document.getElementById("mw_contentholder");
        if(!bc) bc = document.body; 
        var watchlist = bc.getElementsByTagName("li"); 
        for (var u=0;u<watchlist.length;u++) {
            if(watchlist[u].firstChild.tagName == "INPUT") {
                suiviManagerAllPages.push(watchlist[u]);
            }
        } 
        // prépare la mini-interface
        var str = "<div style=\"background-color:#8ecfe4;height:8px;border:1px solid #AAAAAA;-moz-border-radius-topright:0.5em;-moz-border-radius-topleft:0.5em;margin-top:-1em;\"></div>"
                + "<div style=\"border:1px solid #6ac1de;border-top:0px solid white;margin-bottom:2em;padding:0.5em;text-align:center;-moz-border-radius-bottomright:0.5em;-moz-border-radius-bottomleft:0.5em;\">" 
        str += "<a href=\"javascript:SuiviManagerRegexp('^.*')\" title=\"Tout cocher\">"
                + "<b>Tout cocher</b>"
                + "</a> ("
                + countPages('^.*')
                + ") · ";
 
        str += "<a href=\"javascript:SuiviManagerDeselect()\" title=\"Tout décocher\">"
                + "<b>Tout décocher</b>"
                + "</a> ("
                + countPages('^.*')
                + ")"; 
        str += "<hr style=\"margin:0.5em;\">";
        str += "<b>Espaces de noms</b><br/>";
        for (var cpt = 0; cpt < interfaceMsg.length; cpt ++) {
                if(cpt==5) str += '<br/>';
                str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpList[cpt] + "')\" title=\"Cocher les pages de l'espace de noms : " + interfaceMsg[cpt] + "\">"
                        + interfaceMsg[cpt]
                        + "</a> ("
                        + "<a href=\"http://fr.wikipedia.org/wiki/Spécial:Liste_de_suivi/edit"
                        + regexpLien[cpt]
                        + "\" title=\"Voir les pages suivies dans cet espace de noms\">↓</a> "
                        + countPages(regexpList[cpt])
                        + ") · ";
        } 
        str += "<hr style=\"margin:0.5em;\">";
        str += "<b>Sous-pages</b><br/>";
        for (var cpt = 0; cpt < interfaceMsgBis.length; cpt ++) {
                str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpListBis[cpt] + "')\" title=\"Cocher : " + interfaceMsgBis[cpt] + "\">"
                        + interfaceMsgBis[cpt]
                        + "</a> ("
                        + countPages(regexpListBis[cpt])
                        + ") · ";
        } 
        str += "<hr style=\"margin:0.5em;\">";
        str += "<b>Autres</b><br/>";
        str += "<a href=\"javascript:SuiviManagerLiensRouges()\" title=\"Cocher : Liens Rouges\">"
                + "Liens rouges"
                + "</a> ("
                + countLiensRouges()
                + ") · "; 
        str += "<a href=\"javascript:SuiviManagerRedirects()\" title=\"Cocher : Redirections\" >"
                + "Redirections"
                + "</a> ("
                + countRedirects()
                + ") · "; 
        for (var cpt = 0; cpt < interfaceMsgTer.length; cpt ++) {
                str += "<a href=\"javascript:SuiviManagerRegexp('" + regexpListTer[cpt] + "')\" title=\"Cocher : " + interfaceMsgTer[cpt] + "\" >"
                        + interfaceMsgTer[cpt]
                        + "</a> ("
                        + countPages(regexpListTer[cpt])
                        + ") · ";
        }
        str += "<hr style=\"margin:0.5em;\">";
        str += "<input type=\"submit\" value=\"Retirer les titres sélectionnés\"\/>"; 
        var buttonPlus = document.createElement("div");
        buttonPlus.setAttribute("style", "text-align:center;");
        buttonPlus.innerHTML = "<br clear=all />" + str + "</div>";
        var CibleBouton = document.getElementsByTagName("fieldset")[0];
        CibleBouton.insertBefore(buttonPlus,CibleBouton.firstChild);
}
if((wgCanonicalSpecialPageName == "Watchlist") && document.URL.indexOf("edit") != -1 ) {
        addOnloadHook(SuiviManager);                              
}
 
////////////////////////////////////////////////////////////////////////////////////
Wikiboo Outils personnels