Utilisateur:Spartan.arbinger/common.js

Cet article abordera le sujet de Utilisateur:Spartan.arbinger/common.js en profondeur, explorant ses différentes facettes et révélant son importance dans le contexte actuel. Utilisateur:Spartan.arbinger/common.js fait l'objet d'intérêt et de débats depuis longtemps, en raison de son impact sur divers domaines de la vie quotidienne. Au fil des années, Utilisateur:Spartan.arbinger/common.js a suscité de nombreuses réflexions et analyses, démontrant sa pertinence et son influence dans la société actuelle. A travers cet article, nous chercherons à faire la lumière sur Utilisateur:Spartan.arbinger/common.js, en fournissant une vision complète et détaillée qui permet au lecteur de comprendre sa portée et son importance dans le monde d'aujourd'hui.
mw.loader.load("//www.wikidata.org/w/index.php?title=User:Yair rand/WikidataInfo.js&action=raw&ctype=text/javascript");
var markblocked_contributions = 'Special:Contributions';
mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-markblocked.js&bcache=1&maxage=259200&action=raw&ctype=text/javascript');
obtenir("LiveRC");
importScript('Utilisateur:LD/PV.js')
obtenir('PagesSansBandeauDePortail');
// ]
//mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Krinkle/RTRC.js&action=raw&ctype=text/javascript');
importScript('User:Orlodrim/portail-eval.js');
window.alwaysEval = true; //mettez cette valeur à ''true'' si vous voulez que l'évaluation soit lancée automatiquement (à éviter en temps normal)
window.initEvalProjectNames = function()
{
	evalProjectNames= ;//liste de vos projets
	evalProjectNames.push("Cinéma") ;
	evalProjectNames.push("Iran") ;//mettre ici autant de lignes comme celle-ci que de projets que vous voulez évaluer
};
// boutone de barre de luxe
var bdl_buttons = [
  // Définition des boutons.
    {
	  tagOpen: "==== {{S|",
	  tagClose: "}} ====",
	  imageFileNameOOUI: "thumb/3/35/OOjs_UI_icon_italic-s.svg/24px-OOjs_UI_icon_italic-s.svg.png",
	  tooltip: "Section",
	  buttonId: "Section-tag",
	  group: "insert",
	},
    {
	  tagOpen: "{{date|",
	  tagClose: "|lang=fr}} ",
	  imageFileNameOOUI: "thumb/d/dd/OOjs_UI_icon_clock.svg/24px-OOjs_UI_icon_clock.svg.png",
	  tooltip: "Date",
	  buttonId: "Date-tag",
	  group: "insert",
	},
	{
	  tagOpen: "{{ébauche-étym|",
	  tagClose: "}}",
	  imageFileNameOOUI: "thumb/a/ac/OOjs_UI_icon_ongoingConversation-ltr.svg/24px-OOjs_UI_icon_ongoingConversation-ltr.svg.png",
	  tooltip: "Eb-étym",
	  buttonId: "Ebétym-tag",
	  group: "insert",
	},
    {
	  tagOpen: "{{pron|",
	  tagClose: "|fr}} ",
	  imageFileNameOOUI: "thumb/8/8a/OOjs_UI_icon_volumeUp-rtl.svg/24px-OOjs_UI_icon_volumeUp-rtl.svg.png",
	  tooltip: "Prononciation",
	  buttonId: "Prononciation-tag",
	  group: "insert",
	},
    {
	  tagOpen: "#* {{exemple|",
	  tagClose: "|source=|lien=|lang=fr}}\n",
	  imageFileNameOOUI: "thumb/b/b3/OOjs_UI_icon_ellipsis.svg/24px-OOjs_UI_icon_ellipsis.svg.png",
	  tooltip: "Ébauche-exe",
	  buttonId: "Ébauche-exe-tag",
	  group: "insert",
	},
	{
	  tagOpen: "\n==== {{S|traductions}} ====\n{{trad-début}}",
	  tagClose: "\n{{trad-fin}}\n",
	  imageFileNameOOUI: "thumb/4/43/OOjs_UI_icon_language-ltr.svg/24px-OOjs_UI_icon_language-ltr.svg.png",
	  tooltip: "Traductions",
	  buttonId: "Traductions-tag",
	  group: "insert",
	},
];

// <nowiki>
// Licence : Domaine public

if(mw.config.get('wgNamespaceNumber')==14){ 
     addOnloadHook(BandeauxPortailsBOT_AddLink);
}

function BandeauxPortailsBOT_AddLink(){
     var OngletsCactions = document.getElementById('p-cactions').getElementsByTagName('ul');
     OngletsCactions.innerHTML += '<li><a href="javascript:BandeauxPortailsBOT_OpenMenu();">Portail (bot)</a></li>';
}

function BandeauxPortailsBOT_getScreenSize(){
     var HauteurEcran = 0;
     if( typeof( window.innerHeight ) == 'number' ) {
          HauteurEcran = parseInt(window.innerHeight);
     }else if( document.documentElement && document.documentElement.clientHeight ){
          HauteurEcran = parseInt(document.documentElement.clientHeight);
     }else if( document.body && document.body.clientHeight ){
          HauteurEcran = parseInt(document.body.clientHeight);
     }
     var LargeurEcran = 0;
     if( typeof( window.innerWidth ) == 'number' ) {
          LargeurEcran = parseInt(window.innerWidth);
     }else if( document.documentElement && document.documentElement.clientWidth ){
          LargeurEcran = parseInt(document.documentElement.clientWidth);
     }else if( document.body && document.body.clientWidth ){
          LargeurEcran = parseInt(document.body.clientWidth);
     }
     var ScreenSize = new Object();
     ScreenSize.H = HauteurEcran;
     ScreenSize.W = LargeurEcran;
     return ScreenSize;
}

function BandeauxPortailsBOT_OpenMenu(){
    if(document.getElementById('BandeauxPortailsBOT_Menu')) return;
     var ScreenSize = BandeauxPortailsBOT_getScreenSize();
     var HauteurEcran = ScreenSize.H;
     var LargeurEcran = ScreenSize.W;
     var Menu = document.createElement('div');
     Menu.id='BandeauxPortailsBOT_Menu';
     Menu.className = 'BandeauxPortailsBOT_Menu';
     Menu.style.position='fixed';
     Menu.style.zIndex= 500;
     Menu.style.padding='5px';
     Menu.style.backgroundColor='white';
     Menu.style.border='3px double black';
     Menu.style.width= 'auto';
     document.body.appendChild(Menu);
     var MenuContent = ''
     + '<fieldset id="OptionsValue" ><legend>Modification des bandeaux de portail</legend>'
     + '<table id="BandeauxPortailsBOT_OptionsTable"><tr><td width="280px" valign="middle" align="center">'
     + '<label for="RemoveBandeau">Bandeaux à retirer</label>'
     + '</td><td valign="middle" align="center">'
     + '<label for="linkedModifs">Liaison</label>'
     + '</td><td width="280px" valign="middle" align="center">'
     + '<label for="RemoveBandeau">Bandeaux à ajouter</label>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input type="text" id="RemoveBandeau1" class="RemoveBandeau" value="" size="40"/>'
     + '</td><td valign="middle" align="center">'
     + '<input type="checkbox" class="linkedModifs" style="cursor:pointer;" />'
     + '</td><td valign="middle" align="center">'
     + '<input type="text" class="AddBandeau" value="" size="40"/>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input type="text" class="RemoveBandeau" value="" size="40"/>'
     + '</td><td valign="middle" align="center">'
     + '<input type="checkbox" class="linkedModifs" style="cursor:pointer;" />'
     + '</td><td valign="middle" align="center">'
     + '<input type="text" class="AddBandeau" value="" size="40"/>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input type="text" class="RemoveBandeau" value="" size="40"/>'
     + '</td><td valign="middle" align="center">'
     + '<input type="checkbox" class="linkedModifs" style="cursor:pointer;" />'
     + '</td><td valign="middle" align="center">'
     + '<input type="text" class="AddBandeau" value="" size="40"/>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input type="text" class="RemoveBandeau" value="" size="40"/>'
     + '</td><td valign="middle" align="center">'
     + '<input type="checkbox" class="linkedModifs" style="cursor:pointer;" />'
     + '</td><td valign="middle" align="center">'
     + '<input type="text" class="AddBandeau" value="" size="40"/>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input type="text" class="RemoveBandeau" value="" size="40"/>'
     + '</td><td valign="middle" align="center">'
     + '<input type="checkbox" class="linkedModifs" style="cursor:pointer;" />'
     + '</td><td valign="middle" align="center">'
     + '<input type="text" class="AddBandeau" value="" size="40"/>'
     + '</td></tr><tr><td valign="middle" align="center">'
     + '<input type="text" class="RemoveBandeau" value="" size="40"/>'
     + '</td><td valign="middle" align="center">'
     + '<input type="checkbox" class="linkedModifs" style="cursor:pointer;" />'
     + '</td><td valign="middle" align="center">'
     + '<input type="text" class="AddBandeau" value="" size="40"/>'
     + '</td></tr></table></fieldset>'
     + '<center id="OptionsButtons" >'
     + '<input type="checkbox" id="SousCats" style="cursor:pointer;" />'
     + '<label for="SousCats">Traiter les sous-catégories ?</label>'
     + '&nbsp;&nbsp;'
     + '<input type="checkbox" id="Autoconfirm" style="cursor:pointer;" />'
     + '<label for="Autoconfirm">Publier sans confirmation manuelle ?</label>'
     + '&nbsp;&nbsp;'
     + '<input type="checkbox" id="AutoWatch" style="cursor:pointer;" />'
     + '<label for="AutoWatch">Suivre les pages modifiées ?</label>'
     + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
     + '<input type="button" style="cursor:pointer;" '
     + ' value="OK" title="Appliquer" '
     + ' onclick="BandeauxPortailsBOT_GetOptions(true);" onselect="BandeauxPortailsBOT_GetOptions(true);"/>'
     + '&nbsp;&nbsp;'
     + '<input type="button" style="cursor:pointer;" '
     + ' value="Fermer" title="Fermer le menu" '
     + ' onclick="BandeauxPortailsBOT_CloseMenu();" onselect="BandeauxPortailsBOT_CloseMenu();"/>'
     + '</center>';
     Menu.innerHTML = MenuContent;
     PositionGauche = parseInt((LargeurEcran-Menu.clientWidth)/2) ;
     PositionHaut = parseInt((HauteurEcran-Menu.clientHeight)/3) ;
     Menu.style.left=PositionGauche + 'px';
     Menu.style.top=PositionHaut + 'px'; 
     document.getElementById("RemoveBandeau1").focus();
}

 
function BandeauxPortailsBOT_CloseMenu(){
     var Menu = document.getElementById('BandeauxPortailsBOT_Menu');
     if(Menu) Menu.parentNode.removeChild(Menu);
}


function BandeauxPortailsBOT_GetOptions(First){
     var Options = new Object();
     Options.SousCats = (document.getElementById("SousCats").checked ? true : false);
     Options.Autoconfirm = (document.getElementById("Autoconfirm").checked ? true : false);
     Options.AutoWatch = (document.getElementById("AutoWatch").checked ? true : false);
     Options.Changes = new Array();
     var Table = document.getElementById("BandeauxPortailsBOT_OptionsTable");
     var TRs = Table.getElementsByTagName("tr");
     for(var a=0,l=TRs.length;a<l;a++){
          var TR = TRs;
          var RemoveBandeau = $.makeArray( $(TR).find('input.RemoveBandeau') );
          var AddBandeau = $.makeArray( $(TR).find('input.AddBandeau') );
          var linkedModifs = $.makeArray( $(TR).find('input.linkedModifs') );
          if(!RemoveBandeau || !AddBandeau || !linkedModifs ) continue;
          RemoveBandeau = RemoveBandeau.value;
          AddBandeau = AddBandeau.value;
          if(!RemoveBandeau && !AddBandeau) continue;
          linkedModifs = (linkedModifs.checked ? true : false);
          Options.Changes.push({"RemoveBandeau":RemoveBandeau,"AddBandeau":AddBandeau,"linkedModifs":linkedModifs}); 
     }
     if(Options.Changes.length==0) return;
     Options.APIlimit = ( (mw.config.get('wgUserGroups').indexOf("sysop")!=-1)||(mw.config.get('wgUserGroups').indexOf("bot")!=-1) ? 4999 : 499 );
     Options.categorylist = new Array(mw.config.get('wgPageName').replace(/_/g," "));
     Options.pagelist = new Array();
     Options.first = true;
     if(First) BandeauxPortailsBOT_Run(Options);
     else BandeauxPortailsBOT_RunAgain(Options);
}

function BandeauxPortailsBOT_UpdateMenu(Options){
     var Menu = document.getElementById('BandeauxPortailsBOT_Menu');
     if(!Menu) return;
     var CatList = document.createElement('fieldset');
     CatList.id = 'BandeauxPortailsBOT_MenuCats'
     var CatListContent = ''
     + '<legend>Sélectionner les catégories à prendre en compte</legend>'
     + '<div id="BandeauxPortailsBOT_MenuCatsList" style="max-height:250px;overflow-y:auto;">'
     + '<ul>'
     var AllCats = Options.categorylist;
     for(var a=0,l=AllCats.length;a<l;a++){
          CatListContent += '<li style="white-space:nowrap;">'
          + '<input type="checkbox" checked="checked" value="'+AllCats+'" class="CatListCheckbox" '
          + (AllCats == mw.config.get('wgPageName').replace(/_/g," ") ? 'disabled="disabled" ' : '') +'/>'
          + '&nbsp;'+AllCats.split(mw.config.get('wgFormattedNamespaces')+':').join("")
          + '</li>'
     }
     CatListContent += '</ul></div>';
     CatList.innerHTML = CatListContent;
     var CatButtons = document.createElement('center');
     var CatButtonsContent = ''
     + '<input type="button" style="cursor:pointer;" '
     + ' value="OK" title="Appliquer" '
     + ' onclick="BandeauxPortailsBOT_GetOptions(false);" onselect="BandeauxPortailsBOT_GetOptions(false);"/>'
     + '&nbsp;&nbsp;'
     + '<input type="button" style="cursor:pointer;" '
     + ' value="Fermer" title="Fermer le menu" '
     + ' onclick="BandeauxPortailsBOT_CloseMenu();" onselect="BandeauxPortailsBOT_CloseMenu();"/>'
     CatButtons.innerHTML = CatButtonsContent;
     var OptionsValue = document.getElementById("OptionsValue");
     if(OptionsValue) OptionsValue.style.display = "none";
     var OptionsButtons = document.getElementById("OptionsButtons");
     if(OptionsButtons) OptionsButtons.style.display = "none";
     Menu.appendChild(CatList);
     Menu.appendChild(CatButtons);
     var ScreenSize = BandeauxPortailsBOT_getScreenSize();
     var LargeurEcran = ScreenSize.W;
     var HauteurEcran = ScreenSize.H;
     PositionGauche = parseInt((LargeurEcran-Menu.clientWidth)/2) ;
     PositionHaut = parseInt((HauteurEcran-Menu.clientHeight)/3) ;
     Menu.style.left=PositionGauche + 'px';
     Menu.style.top=PositionHaut + 'px'; 
}

function BandeauxPortailsBOT_RunAgain(Options){
     var MenuCats = document.getElementById('BandeauxPortailsBOT_MenuCatsList');
     if(!MenuCats) return;
     Options.categorylist = new Array(mw.config.get('wgPageName').replace(/_/g," "));
     var CatList = $.makeArray( $(MenuCats).find('input.CatListCheckbox') );
     for(var a=0,l=CatList.length;a<l;a++){
          var Cat = CatList;
          if(Cat.checked && Options.categorylist.indexOf(Cat.value)==-1) Options.categorylist.push(Cat.value);
     }
     Options.first = false;
     BandeauxPortailsBOT_Run(Options);
}


function BandeauxPortailsBOT_Run(Options){   
      if(!Options.categorycontinue) Options.categorycontinue = '';
      if(!Options.categoryCount) Options.categoryCount = 0;
      var NouvelleRequete = sajax_init_object()
      var AdresseRequete = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=query&list=categorymembers'
                         + '&cmlimit='+Options.APIlimit
                         + '&cmtitle=' + encodeURIComponent(Options.categorylist) 
                         + Options.categorycontinue;
      NouvelleRequete.open("GET", AdresseRequete, true);
      NouvelleRequete.onreadystatechange = function() {
            if(NouvelleRequete.readyState != 4 || NouvelleRequete.status != 200) return;
            var ElementTraitement = NouvelleRequete.responseXML;
            var Pages = ElementTraitement.getElementsByTagName('cm');
            for(a=0;a<Pages.length;a++){
                  var PageNamespace = parseInt(Pages.getAttribute('ns'));
                  if((PageNamespace!=0)&&(PageNamespace!=1)&&(PageNamespace!=14)) continue;
                  var TitrePage = Pages.getAttribute('title');
                  TitrePage = TitrePage.split(mw.config.get('wgFormattedNamespaces') + ':').join("");
                  if((TitrePage.indexOf(mw.config.get('wgFormattedNamespaces') + ':')!=-1)&&(Options.SousCats)){
                        if(Options.first && Options.categorylist.indexOf(TitrePage)==-1)
                              Options.categorylist.push(TitrePage);
                  }else if(TitrePage.indexOf(mw.config.get('wgFormattedNamespaces') + ':')==-1){
                        if(Options.pagelist.indexOf(TitrePage)==-1) Options.pagelist.push(TitrePage);
                   }
            } 
            var MustContinue = ElementTraitement.getElementsByTagName('cmcontinue');
            if(MustContinue){
                  Options.categorycontinue = "&cmcontinue="+encodeURIComponent(MustContinue.fistChild.getAttribute("cmcontinue"));
                  BandeauxPortailsBOT_Run(Options);
            }else{
                  Options.categoryCount = (Options.categoryCount+1)
                  Options.categorycontinue = "";
                  var NewCategory = Options.categorylist;
                  if(NewCategory){
                        BandeauxPortailsBOT_Run(Options);
                  }else{
                        if(Options.first && Options.SousCats) BandeauxPortailsBOT_UpdateMenu(Options);
                        else BandeauxPortailsBOT_SortList(Options);
                  }
            }
      }
      NouvelleRequete.send(null);
}

function BandeauxPortailsBOT_SortList(Options){
      var PopContent = 'Nombre de pages à vérifier : ' + Options.pagelist.length ;
      Options.pageCount = 0
      var Pop = confirm(PopContent);
      if(Pop) BandeauxPortailsBOT_AddBandeau(Options); 
      else BandeauxPortailsBOT_CloseMenu();      
}

function BandeauxPortailsBOT_AddNextBandeau(Options){
      Options.pageCount++
      BandeauxPortailsBOT_AddBandeau(Options);
}

function BandeauxPortailsBOT_AddBandeau(Options){
      if(!Options.pageCount) Options.pageCount = 0;
      var Page = Options.pagelist;
      if(!Page){ alert('Travail terminé'); window.location.reload(); }
      var url = mw.config.get('wgServer') + mw.config.get('wgScript') + '?title=' + encodeURIComponent(Page) + '&action=edit';
      var NouvelleRequete = sajax_init_object();      
      NouvelleRequete.open("GET", url, true);
      NouvelleRequete.onreadystatechange = function() {
            if(NouvelleRequete.readyState != 4 || NouvelleRequete.status != 200) return;
            while(document.body.firstChild){ document.body.removeChild(document.body.firstChild);}
            var ElementTraitement = document.createElement('div');
            document.body.appendChild(ElementTraitement);
            ElementTraitement.innerHTML = NouvelleRequete.responseText; 
            var TextArea = document.getElementById('wpTextbox1');
            if(!TextArea){alert(url); return; }
            var OldText = TextArea.value;
            if((OldText.indexOf('#REDIRECT')!=-1)||(OldText.indexOf('#redirect')!=-1)||(OldText=='')){
                  BandeauxPortailsBOT_AddNextBandeau(Options); 
                  return;
            }
            var NewValues = BandeauxPortailsBOT_reallyAddBandeau(Options, OldText);
            if(!NewValues) return;
            var TexteFinal = NewValues.Text;
            var Sommaire = NewValues.Comment;
            var SommaireFinal = Sommaire + ' ; (])'
            document.getElementById('wpTextbox1').value = TexteFinal;
            document.getElementById('wpSummary').value = SommaireFinal;
            document.getElementById('wpMinoredit').checked = "checked";
            document.getElementById('wpWatchthis').checked = (Options.AutoWatch ? "checked" : false);

            if(!Options.Autoconfirm){
                  var SurEtCertain = confirm('Sommaire : ' + Sommaire);
                  if(!SurEtCertain){
                        var SurEtCertainBis = confirm('Page suivante ?');
                        if(!SurEtCertainBis){
                              window.location.reload();
                              return;
                        }else{
                              BandeauxPortailsBOT_AddNextBandeau(Options);
                              return;
                        }
                  }
            }
            var action = document.getElementById("editform").action;
            var boundary = '--------123xyz';
            var data = '';
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpTextbox1"\n\n' + TexteFinal + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSection"\n\n' + document.editform.wpSection.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpSummary"\n\n' + SommaireFinal + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpMinoredit"\n\n' + document.editform.wpMinoredit.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpWatchthis"\n\n' + document.editform.wpWatchthis.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpStarttime"\n\n' + document.editform.wpStarttime.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEdittime"\n\n' + document.editform.wpEdittime.value + '\n'
            data += '--' + boundary + '\nContent-Disposition: form-data; name="wpEditToken"\n\n' + document.editform.wpEditToken.value + '\n'
            var ajaxSubmit = sajax_init_object();
            ajaxSubmit.open('POST', action, true);
            ajaxSubmit.setRequestHeader('Content-Type', 'multipart/form-data; boundary='+boundary);
            ajaxSubmit.onreadystatechange = function(){
                  if (ajaxSubmit.readyState != 4) return;
                  while(document.body.firstChild){document.body.removeChild(document.body.firstChild);}
                  var ElementTraitementBis = document.createElement('div');
                  document.body.appendChild(ElementTraitementBis);
                  ElementTraitementBis.innerHTML = ajaxSubmit.responseText; 
                  if(!document.getElementById("editform")){
                        BandeauxPortailsBOT_AddNextBandeau(Options);
                  }else{
                        var DeuxiemeEssai = confirm('Problème !\n\nRéessayer ?');
                        if(DeuxiemeEssai) BandeauxPortailsBOT_AddBandeau(Options);         
                  }
            }
            ajaxSubmit.send(data + '--' + boundary);
      }
      NouvelleRequete.send(null);
}


function BandeauxPortailsBOT_reallyAddBandeau(Options, OldText){
      OldText = OldText.replace(/\{\{Portail /ig, "\{\{Portail\|"); // {{Portail Truc}} -> {{Portail|Truc}}
      var Changes = Options.Changes;
      var PortailRegExp = new RegExp('\\{\\{( |_)*(p|P)ortail( |_)*\\|+\\}\\}(\n)*', 'g');
      var OldPortailMatch = OldText.match(PortailRegExp);
      var AllParams = new Array();
      var PortailIndex = -1;
      if(OldPortailMatch!=null){
            PortailIndex = OldText.indexOf(OldPortailMatch);
            for(var a=0,l=OldPortailMatch.length;a<l;a++){
                  var ThisTemplate = BandeauxPortailsBOT_CleanModele(OldPortailMatch);
                  var AllParamsInThisTemplate = ThisTemplate.split("|");   
                  for(var m=1,p=AllParamsInThisTemplate.length;m<p;m++){
                        var ThisParam = AllParamsInThisTemplate;
                        if(!ThisParam) continue;
                        ThisParam = ThisParam.replace(/(\||\})/g, "");
                        ThisParam = ThisParam.replace(/_/g, " ");
                        ThisParam = ThisParam.replace(/^ /g, "");
                        ThisParam = ThisParam.replace(/ $/g, "");                              
                        if(ThisParam && AllParams.indexOf(AllParams)==-1) AllParams.push(ThisParam);
                  }
                  OldText = OldText.replace(OldPortailMatch, "");
            }
      }
      var OldParams = AllParams.join("|");
      for(var a=0,l=Options.Changes.length;a<l;a++){
            var ThisChangeOptions = Options.Changes;
            var RemoveBandeau = ThisChangeOptions.RemoveBandeau;
            var AddBandeau = ThisChangeOptions.AddBandeau;
            var linkedModifs = ThisChangeOptions.linkedModifs;

            if(AddBandeau && RemoveBandeau){
                  var paramIndex = AllParams.indexOf(RemoveBandeau);
                  if(linkedModifs){                        
                        if(paramIndex!=-1) AllParams.splice(paramIndex, 1, AddBandeau);
                        else if(RemoveBandeau=="*" && AllParams.length!=0) AllParams = new Array(AddBandeau);
                  }else{
                        if(paramIndex!=-1) AllParams.splice(paramIndex, 1);
                        if(RemoveBandeau=="*") AllParams = new Array(AddBandeau);
                        else if(AllParams.indexOf(AddBandeau)==-1) AllParams.push(AddBandeau);
                  }
            }else if(AddBandeau){
                  if(AllParams.indexOf(AddBandeau)==-1) AllParams.push(AddBandeau);
            }else if(RemoveBandeau){
                  var paramIndex = AllParams.indexOf(RemoveBandeau);
                  if(paramIndex!=-1) AllParams.splice(paramIndex, 1);
                  else if(RemoveBandeau=="*") AllParams = new Array();
            }
      }
      var NewParams = AllParams.join("|");
      if(OldParams==NewParams){
            BandeauxPortailsBOT_AddNextBandeau(Options);
            return false;
      }
      var BOT = ( (mw.config.get('wgUserGroups').indexOf("bot")!=-1) ? ' ' : '');
      var Sommaire = BOT+'Modification automatique de {{Portail}} : "'+OldParams+'" →‎ "'+NewParams+'"';      
      var NouveauModele = "{{Portail|$1}}\n";
      NouveauModele = NouveauModele.split("$1").join(AllParams.join("|"));
      if(AllParams.length==0) NouveauModele = "";
      if(PortailIndex==-1){
            var DefaultsortCatIndex = OldText.match(new RegExp("\\{\\{DEFAULTSORT:","g"));
            if(DefaultsortCatIndex!=null){
                  PortailIndex = OldText.indexOf(DefaultsortCatIndex);
            }else{
                  var AnyCatIndex = OldText.match(new RegExp("\\[\\[(c|C)(ategory|atégorie):","g"));
                  if(AnyCatIndex!=null){
                        PortailIndex = OldText.indexOf(AnyCatIndex);
                  }else{
                        var interWikiIndex = OldText.match(new RegExp('^\\s*\\.?(x?-]+)?|simple|tokipona):(]*)\\]\\]\\s*$'));
                        if(interWikiIndex!=null){
                              PortailIndex = OldText.indexOf(interWikiIndex);
                        }else{
                              PortailIndex = OldText.length;
                        }
                  }
            }
      }
      var NewText = OldText.substring(0,PortailIndex)+NouveauModele+ OldText.substring(PortailIndex,OldText.length);
      var Result = new Object();
      Result.Text = NewText;
      Result.Comment = Sommaire;
      return Result;
}
 
function BandeauxPortailsBOT_CleanModele(Modele){
      Modele = Modele.replace(/\n/g,"");
      Modele = Modele.replace(/\| /g,"\|");
      Modele = Modele.replace(/ \|/g,"\|");
      Modele = Modele.replace(/\|\}/g,"\}");
      Modele = Modele.replace(/\|\|/g,"\|");
      return Modele;
}

// </nowiki>

xpatrolEnableClear = true; // Active la fonctionnalité de blanchiment de page
xpatrolEnableBanner = true; // Active la fonctionnalité d'ajout de bandeau
xpatrolEnablePurge = true; // Active la fonctionnalité de demande de purge d'historique

xpatrolPurgeWarnEditor = true; // Coche par défaut la case pour avertir le contributeur concerné lors d'une demande de purge d'historique
xpatrolSignatureRegistered = 'Merci d\'avance~~' + '~~'; // Modifie la signature utilisée pour les demandes de purge d'historique automatisées
xpatrolSignatureAnonymous = 'Cordialement~~' + '~~'; // Modifie la signature utilisée pour les messages d'avertissement automatisés
xpatrolCopyvioWarningTemplate = 'Bienvenue Copyvio 1'; // Modifie le modèle utilisé pour les messages d'avertissement automatisés

xpatrolWatchMain = true;   // Ajoute les articles blanchis dans la liste de suivi
xpatrolWatchOthers = true; 

//importScript('User:Arkanosis/xpatrol.js');