ميدياويكي:Gadget-GlobalWatchlist.js

من كوبتيكبيديا
اذهب إلى التنقلاذهب الى البحث
لم تعد النسخة القابلة للطباعة مدعومة وقد تحتوي على أخطاء في العرض. يرجى تحديث علامات متصفحك المرجعية واستخدام وظيفة الطباعة الافتراضية في متصفحك بدلا منها.

ملاحظة: بعد النشر، أنت قد تحتاج إلى إفراغ الكاش الخاص بمتصفحك لرؤية التغييرات.

  • فايرفوكس / سافاري: أمسك Shift أثناء ضغط Reload، أو اضغط على إما Ctrl-F5 أو Ctrl-R (⌘-R على ماك)
  • جوجل كروم: اضغط Ctrl-Shift-R (⌘-Shift-R على ماك)
  • إنترنت إكسبلورر/إيدج: أمسك Ctrl أثناء ضغط Refresh، أو اضغط Ctrl-F5
  • أوبرا: اضغط Ctrl-F5.
// {{Catégorisation JS|GlobalWatchlist}}
//<source lang=javascript>
// <pre><nowiki>
  
/////////////////////////////// PARTIE PERSONNALISABLE /////////////////////////////
 
//// Liste des wikis disponibles ////
if(typeof(GlobalWatchlist_WikiList) == 'undefined'){
 
// wikis globaux
window.GlobalWatchlist_WikiList = [
    '//www.mediawiki.org',
    '//meta.wikimedia.org',
    '//commons.wikimedia.org',
    '//species.wikimedia.org',
    '//www.wikidata.org',
    '//translatewiki.net',
];

// wikis multi-langues
var GlobalWatchlist_WikiListLang = [
    'aa',
    'ab',
    'ace',
    'af',
    'ak',
    'als',
    'am',
    'an',
    'ang',
    'ar',
    'arc',
    'arz',
    'as',
    'ast',
    'av',
    'ay',
    'az',
    'ba',
    'bar',
    'bat-smg',
    'bcl',
    'be',
    'be-x-old',
    'bg',
    'bh',
    'bi',
    'bm',
    'bn',
    'bo',
    'bpy',
    'br',
    'bs',
    'bug',
    'bxr',
    'ca',
    'cbk-zam',
    'cdo',
    'ce',
    'ceb',
    'ch',
    'cho',
    'chr',
    'chy',
    'ckb',
    'co',
    'cr',
    'crh',
    'cs',
    'csb',
    'cu',
    'cv',
    'cy',
    'cz',
    'da',
    'de',
    'diq',
    'dk',
    'dsb',
    'dv',
    'dz',
    'ee',
    'el',
    'eml',
    'en',
    'eo',
    'epo',
    'es',
    'et',
    'eu',
    'ext',
    'fa',
    'ff',
    'fi',
    'fiu-vro',
    'fj',
    'fo',
    'fr',
    'frp',
    'fur',
    'fy',
    'ga',
    'gan',
    'gd',
    'gl',
    'glk',
    'gn',
    'got',
    'gu',
    'gv',
    'ha',
    'hak',
    'haw',
    'he',
    'hi',
    'hif',
    'ho',
    'hr',
    'hsb',
    'ht',
    'hu',
    'hy',
    'hz',
    'ia',
    'id',
    'ie',
    'ig',
    'ii',
    'ik',
    'ilo',
    'io',
    'is',
    'it',
    'iu',
    'ja',
    'jbo',
    'jp',
    'jv',
    'ka',
    'kaa',
    'kab',
    'kg',
    'ki',
    'kj',
    'kk',
    'kl',
    'km',
    'kn',
    'ko',
    'kr',
    'ks',
    'ksh',
    'ku',
    'kv',
    'kw',
    'ky',
    'la',
    'lad',
    'lb',
    'lbe',
    'lg',
    'li',
    'lij',
    'lmo',
    'ln',
    'lo',
    'lt',
    'lv',
    'map-bms',
    'mdf',
    'mg',
    'mh',
    'mhr',
    'mi',
    'minnan',
    'mk',
    'ml',
    'mn',
    'mo',
    'mr',
    'ms',
    'mt',
    'mus',
    'mwl',
    'my',
    'myv',
    'mzn',
    'na',
    'nah',
    'nan',
    'nap',
    'nb',
    'nds',
    'nds-nl',
    'ne',
    'new',
    'ng',
    'nl',
    'nn',
    'no',
    'nomcom',
    'nov',
    'nrm',
    'nv',
    'ny',
    'oc',
    'om',
    'or',
    'os',
    'pa',
    'pag',
    'pam',
    'pap',
    'pcd',
    'pdc',
    'pi',
    'pih',
    'pl',
    'pms',
    'pnb',
    'pnt',
    'ps',
    'pt',
    'qu',
    'rm',
    'rmy',
    'rn',
    'ro',
    'roa-rup',
    'roa-tara',
    'ru',
    'rw',
    'sa',
    'sah',
    'sc',
    'scn',
    'sco',
    'sd',
    'se',
    'sg',
    'sh',
    'si',
    'simple',
    'sk',
    'sl',
    'sm',
    'sn',
    'so',
    'sq',
    'sr',
    'srn',
    'ss',
    'st',
    'stq',
    'su',
    'sv',
    'sw',
    'szl',
    'ta',
    'te',
    'tet',
    'tg',
    'th',
    'ti',
    'tk',
    'tl',
    'tn',
    'to',
    'tp',
    'tpi',
    'tr',
    'ts',
    'tt',
    'tum',
    'tw',
    'ty',
    'udm',
    'ug',
    'uk',
    'ur',
    'uz',
    've',
    'vec',
    'vi',
    'vls',
    'vo',
    'wa',
    'war',
    'wo',
    'wuu',
    'xal',
    'xh',
    'yi',
    'yo',
    'za',
    'zea',
    'zh',
    'zh-cfr',
    'zh-classical',
    'zh-min-nan',
    'zh-yue',
    'zu',
];
 
for(var a=0;a<GlobalWatchlist_WikiListLang.length;a++){
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikipedia.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikibooks.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wiktionary.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikinews.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikiquote.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikisource.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikiversity.org');
      GlobalWatchlist_WikiList.push('//'+GlobalWatchlist_WikiListLang[a]+'.wikivoyage.org');
}
} 
 
if(typeof(GlobalWatchlist_Classes) == 'undefined'){
  window.GlobalWatchlist_Classes = {};
  GlobalWatchlist_Classes['www.mediawiki.org'] = 'wwwmediawiki';
  GlobalWatchlist_Classes['meta.wikimedia.org'] = 'metawiki';
  GlobalWatchlist_Classes['commons.wikimedia.org'] = 'commons';
  GlobalWatchlist_Classes['species.wikimedia.org'] = 'wikispecies';
  GlobalWatchlist_Classes['www.wikidata.org'] = 'wikidata';
  GlobalWatchlist_Classes['.wikipedia.org'] = 'wikipedia';
  GlobalWatchlist_Classes['.wikibooks.org'] = 'wikibooks';
  GlobalWatchlist_Classes['.wiktionary.org'] = 'wiktionary';
  GlobalWatchlist_Classes['.wikinews.org'] = 'wikinews';
  GlobalWatchlist_Classes['.wikiquote.org'] = 'wikiquote';
  GlobalWatchlist_Classes['.wikisource.org'] = 'wikisource';
  GlobalWatchlist_Classes['.wikiversity.org'] = 'wikiversity';
  GlobalWatchlist_Classes['.wikivoyage.org'] = 'wikivoyage';

}

var GlobalWatchlist_Options = [];
var GlobalWatchlist_TimeCorrection = "00:00";

var GlobalWatchlist_Bugs = [];

//// نصوص الروابط ////
if (typeof (GlobalWatchlist_Text ) == 'undefined') {
  window.GlobalWatchlist_Text  = {};

  GlobalWatchlist_Text  ["Specialpage_Title"] = "المراقبة الشاملة";
  GlobalWatchlist_Text  ["Specialpage_Desc"] = 'قائمة المراقبة الشاملة لمختلف مواقع الويكي';

  GlobalWatchlist_Text  ["Specialpage_FormLegend"] = 'خيارات المراقبة الشاملة';
  GlobalWatchlist_Text  ["Wikis_Tip"] = 'لاختيار موقع عدة أبق الضغط على زر التحكم Ctrl';
  GlobalWatchlist_Text  ["Wikis_All"] = 'القائمة الشاملة';
  GlobalWatchlist_Text  ["Wikis_Search"] = 'ابحث في موقع في القائمة';
  GlobalWatchlist_Text  ["Wikis_Selected"] = 'المواقع المختارة';
  GlobalWatchlist_Text  ["Wiki_Del"] = '<';
  GlobalWatchlist_Text  ["Wiki_Del_title"] = 'إزالة موقع من القائمة';
  GlobalWatchlist_Text  ["Wiki_Add"] = '>' ;
  GlobalWatchlist_Text  ["Wiki_Add_title"] = 'إضافة موقع آخر للقائمة';
  GlobalWatchlist_Text  ["OK"] = 'تحديث';
  GlobalWatchlist_Text  ["OK_title"] = 'تحديث قائمة المراقبة الشاملة';

  GlobalWatchlist_Text  ["Hide_bots"] = 'إخفاء البوتات';
  GlobalWatchlist_Text  ["Hide_anon"] = 'إخفاء المستخدمين المجهولين';
  GlobalWatchlist_Text  ["Hide_users"] = 'إخفاء المستخدمين المسجلين';
  GlobalWatchlist_Text  ["Hide_minor"] = 'إخفاء التعديلات الطفيفة';
  GlobalWatchlist_Text  ["Hide_self"] = 'إخفاء تعديلاتي';
  GlobalWatchlist_Text  ["Hide_logs"] = 'إخفاء السجلات';
  GlobalWatchlist_Text  ["Hide_all"] = 'إظهار أحدث التغييرات فقط';
  GlobalWatchlist_Text  ["Show_notif"] = 'أبرز <b> بخط غليظ </b> الصفحات التي عدلت بعد آخر مرة فتحت قائمة المراقبة';
  GlobalWatchlist_Text  ["Show_grouped"] = 'رتب التعديلات حسب الصفحات';

  GlobalWatchlist_Text  ["ToggleLink_opened_Title"] = 'إخفاء هذه التعديلات';
  GlobalWatchlist_Text  ["ToggleLink_closed_Title"] = 'التعديلات';
  GlobalWatchlist_Text  ["ToggleLink_opened_Text"] = '▼';
  GlobalWatchlist_Text  ["ToggleLink_closed_Text"] = '►';

  GlobalWatchlist_Text  ["Timecorrection"] = "التوقيت المحلي";

  GlobalWatchlist_Text  ["Link_pagetalk_title"] = "نقاش المقالة";
  GlobalWatchlist_Text  ["Link_pagetalk_text"] = "نقاش";
  GlobalWatchlist_Text  ["Link_diff_title"] = "فرق النسختين";
  GlobalWatchlist_Text  ["Link_diff_text"] = "الفرق";
  GlobalWatchlist_Text  ["Link_log_title"] = "السجل";
  GlobalWatchlist_Text  ["Link_log_text"] = "السجل";
  GlobalWatchlist_Text  ["Link_hist_title"] = "التاريخ";
  GlobalWatchlist_Text  ["Link_hist_text"] = "تاريخ";
  GlobalWatchlist_Text  ["Link_edit_title"] = "تحرير";
  GlobalWatchlist_Text  ["Link_edit_text"] = "تحرير";
  GlobalWatchlist_Text  ["Link_unwatch_title"] = "لا تراقب";
  GlobalWatchlist_Text  ["Link_unwatch_text"] = "لا تراقب";
  GlobalWatchlist_Text  ["Link_usertalk_title"] = "نقاش المستخدم";
  GlobalWatchlist_Text  ["Link_usertalk_text"] = "نقاش";
  GlobalWatchlist_Text  ["Link_usercontrib_title"] = "مساهمات المستخدم";
  GlobalWatchlist_Text  ["Link_usercontrib_text"] = "مساهمات";

  GlobalWatchlist_Text  ["BugReport_Class"] = '<b><u>بلاغ الأخطاء</u> </b><br> أبلغ $1 عن الخطأ: <pre>  \n';

  GlobalWatchlist_Text  ["Tags"] = {
    "ثانوي": '<abbr class="minoredit" title="تعديل طفيف.">ط</abbr>',
    "bot": '<abbr class="botedit" title="تعديل بوت.">ب</abbr>'/*,
    "patrol": '<abbr class="unpatrolled" title="تعديل غير مراجع.">ر </abbr>'*/
  };


  GlobalWatchlist_Text  ["MonthNames"] = {
                                          "1": "يناير",
                                          "2": "فبراير",
                                          "3": "مارس",
                                          "4": "نيسان",
                                          "5": "مايو",
                                          "6": "يونيو",
                                          "7": "يوليو",
                                          "8": "أغسطس",
                                          "9": "سبتمبر",
                                          "10": "أكتوبر",
                                          "11": "نوفمبر",
                                          "12": "ديسمبر"
  };


}

/////////////////////////////// FIN DE LA PARTIE PERSONNALISABLE /////////////////////////////
 
 
// Mise à jour du cookie

window.GlobalWatchlist_SetCookie=function(cookieName, cookieValue) {
        mw.cookie.set(cookieName, cookieValue, 86400 * 365);
};
 
// Interrogation du cookie

window.GlobalWatchlist_GetCookie=function(cookieName) {
        return mw.cookie.get(cookieName);
};

// Ajax
var GlobalWatchlist_ajax = {
  http:function(bundle){ var xmlhttp; try{ xmlhttp = new XMLHttpRequest(); }catch(e){ try{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ xmlhttp = false; }}}; if(xmlhttp){ xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState == 4){ GlobalWatchlist_ajax.httpComplete(xmlhttp,bundle);}}; xmlhttp.open(bundle.method ? bundle.method : "GET",bundle.url,bundle.async === false ? false : true); if (bundle.headers) { for (var field in bundle.headers){ try{ xmlhttp.setRequestHeader(field,bundle.headers[field]); }catch(err){}}}; xmlhttp.send(bundle.data ? bundle.data : null); }; return xmlhttp;},
  httpComplete: function(xmlhttp,bundle){ if(xmlhttp.status == 200 || xmlhttp.status == 302){ if(bundle.onSuccess) bundle.onSuccess(xmlhttp,bundle); }else if(bundle.onFailure){ bundle.onFailure(xmlhttp,bundle); }else{ }}
};


 
// Mise en forme de la page

window.GlobalWatchlist_Init=function(){ 
       GlobalWatchlist_getShowOptions();
       GlobalWatchlist_getTimeOptions();
       $(document.body).addClass("GlobalWatchlist");
       var Title = document.getElementsByTagName('title')[0];
       Title.innerHTML = GlobalWatchlist_Text ["Specialpage_Title"];  
       var FirstHeading = document.getElementById("firstHeading"); 
       FirstHeading.innerHTML = GlobalWatchlist_Text ["Specialpage_Title"];  
       var Content = document.getElementById("mw-content-text"); 
       while(Content.firstChild){ Content.removeChild(Content.firstChild); } 
       var Options = GlobalWatchlist_GetCookie("GlobalWatchlistOptions");
       if(Options !== null){
              GlobalWatchlist_Options = new Array();
              OptionsSplit = decodeURIComponent(Options).split("SPLIT")
              for(var a=0;a<OptionsSplit.length;a++) {
                     if (OptionsSplit[a] != '' && OptionsSplit[a] != 'null') {
                            GlobalWatchlist_Options.push(OptionsSplit[a]);
                     }
              }
       }
       var WikiTime = GlobalWatchlist_GetCookie("GlobalWatchlistTimeCorrection");
       if(WikiTime != null) GlobalWatchlist_TimeCorrection = decodeURIComponent(WikiTime);
       var tip = '&nbsp;<sup><small><abbr title="'+GlobalWatchlist_Text ["Wikis_Tip"]+'">(?)</abbr></small></sup>';
       var GlobalWatchlist_Form = '<fieldset><legend>'+GlobalWatchlist_Text ["Specialpage_FormLegend"]+'</legend>'
       +'<table align="center" style="background-color:transparent;"><tr><td>'
       + '<ul id="showOptions">'
       +'<li><select id="timecorrection" >';
       for(var a=-23,l=24;a<l;a++){
         var time = (a<0 ? "-" : (a>0 ? "+" : ""))+( (a*a)<100 ? "0"+Math.abs(a) : Math.abs(a))+":00";
         GlobalWatchlist_Form +=''
         + '<option value="'+time+'" '+ ( (time==GlobalWatchlist_TimeCorrection)? 'selected="selected" ' : '' )
         +'>'+time+'</option>';
       }
       GlobalWatchlist_Form +=''
       +'</select>&nbsp;<label for="timecorrection">'+GlobalWatchlist_Text ["Timecorrection"]+'</label></li>'
       +'<li><input type="checkbox" id="hideBots" '
       +'value="!bot" '+(GlobalWatchlist_Options.indexOf("!bot")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideBots">'+GlobalWatchlist_Text ["Hide_bots"]+'</label></li>'
       +'<li><input type="checkbox" id="hideAnon" '
       +'value="!anon" '+(GlobalWatchlist_Options.indexOf("!anon")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideAnon">'+GlobalWatchlist_Text ["Hide_anon"]+'</label></li>'
       +'<li><input type="checkbox" id="hideRegistred" '
       +'value="anon" '+(GlobalWatchlist_Options.indexOf("anon")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideRegistred">'+GlobalWatchlist_Text ["Hide_users"]+'</label></li>'
       +'<li><input type="checkbox" id="hideMinor" '
       +'value="!minor" '+(GlobalWatchlist_Options.indexOf("!minor")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideMinor">'+GlobalWatchlist_Text ["Hide_minor"]+'</label></li>'
       +'<li><input type="checkbox" id="hideMyself" '
       +'value="!self" '+(GlobalWatchlist_Options.indexOf("!self")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideMyself">'+GlobalWatchlist_Text ["Hide_self"]+'</label></li>'
       +'<li><input type="checkbox" id="hideLogs" '
       +'value="!log" '+(GlobalWatchlist_Options.indexOf("!log")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideLogs">'+GlobalWatchlist_Text ["Hide_logs"]+'</label></li>'
       +'<li><input type="checkbox" id="hideAll" '
       +'value="!all" '+(GlobalWatchlist_Options.indexOf("!all")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="hideAll">'+GlobalWatchlist_Text ["Hide_all"]+'</label></li>'
       +'<li><input type="checkbox" id="showGrouped" '
       +'value="grouped" '+(GlobalWatchlist_Options.indexOf("grouped")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="showGrouped">'+GlobalWatchlist_Text ["Show_grouped"]+'</label></li>'
       +'<li><input type="checkbox" id="showNotif" onclick="GlobalWatchlist_checkNotifShow()" '
       +'value="notif" '+(GlobalWatchlist_Options.indexOf("notif")!=-1 ? 'checked="checked" ': '')+'/>'
       +'&nbsp;<label for="showNotif">'+GlobalWatchlist_Text ["Show_notif"]+'</label></li>'
       +'</ul>'
       +'</td><td width="3%">'
       +'</td><td>'
       +'<center><span style="margin:0.3em;"><b>'+GlobalWatchlist_Text ["Wikis_All"]+tip+'</b></span></center>'
       +'<center><input type="text" id="searchwiki" size="28" style="padding-top:0;padding-bottom:0;" '
       + 'onkeyup="GlobalWatchlist_Search();" title="'+GlobalWatchlist_Text ["Wikis_Search"]+'"/></center>';
       GlobalWatchlist_Form +=''
       +'<select id="ListWiki" name="ListWiki" align="top" size="12" multiple="multiple">';
       GlobalWatchlist_WikiList.sort();
       for (var i=0; i<GlobalWatchlist_WikiList.length; i++) {
              GlobalWatchlist_Form += '<option value="'+GlobalWatchlist_WikiList[i]+'">'+GlobalWatchlist_WikiList[i].split("//").join("")+'</option>'
       }
       GlobalWatchlist_Form +='</select>'
       +'</td><td>'
       +'<center><input type="button" name="Wiki_Del" '
       +'value="'+GlobalWatchlist_Text ["Wiki_Del"]+'" '
       +'title="'+GlobalWatchlist_Text ["Wiki_Del_title"]+'" '
       +'onclick="GlobalWatchlist_SupprWiki();" onselect="GlobalWatchlist_SupprWiki();" />'
       +'<input type="button" name="Wiki_Add" '
       +'value="'+GlobalWatchlist_Text ["Wiki_Add"]+'" '
       +'title="'+GlobalWatchlist_Text ["Wiki_Add_title"]+'" '
       +'onclick="GlobalWatchlist_AddWiki();" onselect="GlobalWatchlist_AddWiki();" /></center>'
       +'<center><input type="button" name="OK" '
       +'value="'+GlobalWatchlist_Text ["OK"]+'" '
       +'title="'+GlobalWatchlist_Text ["OK_title"]+'" '
       +'style="padding:0;" '
       +'onclick="GlobalWatchlist_Init();" onselect="GlobalWatchlist_Init();" /></center>'
       +'</td><td><center><span style="margin:0.3em;"><b>'+GlobalWatchlist_Text ["Wikis_Selected"]+tip+'</b></span></center>'
       +'<select id="WatchWiki" name="WatchWiki" align="top" size="13" multiple="multiple">'; 
       var WikiList = GlobalWatchlist_GetCookie("GlobalWatchlist");
       if(WikiList != null){
              var GlobalWatchlist_WikiSuivis = new Array();
              WikiListSplit = WikiList.split("SPLIT")
              for (var a=0;a<WikiListSplit.length;a++) {
                     if (WikiListSplit[a] != '' && WikiListSplit[a] != 'null') {
                            GlobalWatchlist_WikiSuivis.push (WikiListSplit[a]);
                     }
              }
       }else{
              var GlobalWatchlist_WikiSuivis = new Array();
              GlobalWatchlist_WikiSuivis.push(mw.config.get('wgServer'));
       }
       for(var a=0;a<GlobalWatchlist_WikiSuivis.length;a++){
              GlobalWatchlist_Form += '<option value="'+GlobalWatchlist_WikiSuivis[a]+'" style="color:red;">'+GlobalWatchlist_WikiSuivis[a].split("//").join("")+'</option>';
       }
       GlobalWatchlist_Form += '</select>'
       + '</td></tr><tr></table>'
       + '<div id="GlobalWatchlist_bugreport" style="display:none;"></div></fieldset><div id="GlobalWatchlist_edits"></div>'; 
       Content.innerHTML += GlobalWatchlist_Form;
       GlobalWatchlist_checkNotifShow();
       GlobalWatchlist_Launch();       
};

window.GlobalWatchlist_deleteNotShowOptions=function(Text){
  var unwantedoptions = ["!self","!all","!log", "notif", "grouped"];
  for(var a=0,l=unwantedoptions.length;a<l;a++){ Text = Text.split(unwantedoptions[a]).join(""); }
  Text = Text.split("||").join("");
  return Text;
};

window.GlobalWatchlist_checkNotifShow=function(){
  var notifInput = document.getElementById("showNotif");
  if(notifInput.checked) $(document.body).addClass("mw-special-GlobalWatchlist");
  else $(document.body).removeClass("mw-special-GlobalWatchlist");
};


// Affiche un lien vers la liste de suivi globale dans les outils personnels

window.GlobalWatchlist_Link=function(){
        var LienWatchlist = document.getElementById('pt-watchlist');
        if(LienWatchlist!=null){
                var LienGlobalWatchlist = document.createElement('li');
                LienGlobalWatchlist.id = 'pt-Gwatchlist';
                if((mw.config.get('wgCanonicalSpecialPageName')=="Blankpage")&&(mw.config.get('wgTitle').split("/")[1]==="GlobalWatchlist"))
                  LienGlobalWatchlist.className = "active";
                LienGlobalWatchlist.innerHTML = '<a href="'+mw.config.get('wgArticlePath').split("$1").join("Special:Blankpage/GlobalWatchlist")+'" title="'+GlobalWatchlist_Text ["Specialpage_Desc"]+'" >'+GlobalWatchlist_Text ["Specialpage_Title"]+'</a>';
                LienWatchlist.parentNode.insertBefore(LienGlobalWatchlist,LienWatchlist);
        }else if(mw.config.get('skin')=="cologneblue"){
                var LienWatchlist = document.getElementById('topbar').getElementsByTagName('a')[6];
                var Separator = document.createTextNode(' | ');
                var LienGlobalWatchlist = document.createElement('a');
                if((mw.config.get('wgCanonicalSpecialPageName')=="Blankpage")&&(mw.config.get('wgTitle').split("/")[1]==="GlobalWatchlist"))
                  LienGlobalWatchlist.className = "active";
                LienGlobalWatchlist.href = mw.config.get('wgArticlePath').split("$1").join("Special:Blankpage/GlobalWatchlist");
                LienGlobalWatchlist.innerHTML = GlobalWatchlist_Text ["Specialpage_Title"];
                LienGlobalWatchlist.title = GlobalWatchlist_Text ["Specialpage_Desc"];
                LienWatchlist.parentNode.insertBefore(Separator,LienWatchlist);
                LienWatchlist.parentNode.insertBefore(LienGlobalWatchlist,Separator);   
        }
};
 
// Ajoute un wiki à la liste de suivi

window.GlobalWatchlist_AddWiki=function(){
        var ListeCompleteSelect = document.getElementById('ListWiki');
        var ListeWikisSelect = document.getElementById('WatchWiki');
        var ListeComplete = ListeCompleteSelect.getElementsByTagName('option');
        var ListeWikis = ListeWikisSelect.getElementsByTagName('option');
        var AncienneListe = new Array();
        var NouvelleListe = new Array();
        for(var a=0;a<ListeWikis.length;a++){
                var WikiName = ListeWikis[a].value;
                AncienneListe.push(WikiName);
                NouvelleListe.push(WikiName);
        }
        for(var a=0;a<ListeComplete.length;a++){
                if(!ListeComplete[a].selected) continue;
                var WikiSelectedName = ListeComplete[a].value;
                if(NouvelleListe.indexOf(WikiSelectedName)==-1) NouvelleListe.push(WikiSelectedName);
                ListeComplete[a].selected = false;
        }
        var CookieValue = '';
        for(var b=0;b<NouvelleListe.length;b++){
                var NewWiki = NouvelleListe[b];
                CookieValue += NewWiki + 'SPLIT';
                if(AncienneListe.indexOf(NewWiki)==-1){
                        var opt = document.createElement('option');
                        opt.value = NewWiki;
                        opt.innerHTML = NewWiki.split("//").join("");
                        opt.style.color = "red";
                        ListeWikisSelect.appendChild(opt);
                }
        }
        GlobalWatchlist_SetCookie('GlobalWatchlist',CookieValue);
};
 
// Supprime un wiki de la liste de suivi

window.GlobalWatchlist_SupprWiki=function(){
        var ListeWikisSelect = document.getElementById('WatchWiki');
        var ListeWikis = ListeWikisSelect.getElementsByTagName('option');
        var NouvelleListe = new Array();
        var CookieValue = '';
        for(var a=0;a<ListeWikis.length;a++){
                var opt = ListeWikis[a];
                if(!opt) continue;
                if(opt.selected){
                        opt.parentNode.removeChild(opt);
                        a--
                }else{
                        var WikiName = opt.value;
                        NouvelleListe.push(WikiName);
                        CookieValue += WikiName + 'SPLIT';
                }
        }
        GlobalWatchlist_SetCookie('GlobalWatchlist',CookieValue);
};

window.GlobalWatchlist_Search=function(){
  var searchwiki = document.getElementById("searchwiki");
  var Select = document.getElementById("ListWiki");
  if(!searchwiki || !Select) return;
  var text = "//"+searchwiki.value;
  if(text === "//") return;
  var Options = Select.getElementsByTagName('option');
  for(var a=0,l=Options.length;a<l;a++){
    var opt = Options[a];
    if(opt.value.indexOf(text)==0){
      GlobalWatchlist_ScrollToOption(Options[(l-1)]);
      GlobalWatchlist_ScrollToOption(opt);
      return;
    }
  }
};

window.GlobalWatchlist_ScrollToOption=function(opt){
  if(!opt) return;
  var isSelected = (opt.selected ? "selected" : false);
  opt.selected = false;
  opt.selected = "selected";
  opt.selected = isSelected;
};

window.GlobalWatchlist_Launch=function(){
  var Target = document.getElementById("GlobalWatchlist_edits");
  var Select = document.getElementById("WatchWiki");
  if(!Target || !Select) return;
  while(Target.firstChild){ Target.removeChild(Target.firstChild); };
  if(GlobalWatchlist_Options.indexOf("!bot")!=-1) $(Target).addClass("nobots");
  else $(Target).removeClass("nobots");
  if(GlobalWatchlist_Options.indexOf("!minor")!=-1) $(Target).addClass("nominors");
  else  $(Target).removeClass("nominors");
  var Options = Select.getElementsByTagName('option');
  if(Options.length===0) return;
  var Servers = new Array();
  for(var a=0,l=Options.length;a<l;a++){
    var Option = Options[a];
    Option.style.color = "red";
    Servers.push(Option.value);
  }
  GlobalWatchlist_Request(Servers, 0);
};

window.GlobalWatchlist_getShowOptions=function(){
  var ShowOptions = document.getElementById("showOptions");
  if(!ShowOptions) return;
  GlobalWatchlist_Options = new Array();
  var opts = ShowOptions.getElementsByTagName('input');
  for(var a=0,l=opts.length;a<l;a++){
    var opt = opts[a];
    if(opt.type != "checkbox") continue;
    var thisopt = opt.value;
    if(opt.checked){
      GlobalWatchlist_Options.push(thisopt);
    }
  }
  GlobalWatchlist_SetCookie('GlobalWatchlistOptions', GlobalWatchlist_Options.join("SPLIT"));
};

window.GlobalWatchlist_getTimeOptions=function(){
  var Select = document.getElementById("timecorrection");
  if(!Select) return;
  var Time = Select.value;
  GlobalWatchlist_TimeCorrection = Time;
  GlobalWatchlist_SetCookie('GlobalWatchlistTimeCorrection', GlobalWatchlist_TimeCorrection);
};

var GlobalWatchlist_StandardURL = ''
  + '/w/api.php?format=xml&action=query&list=watchlist'
  + '&wllimit=499'
  + '&wlprop=ids|title|flags|user|userid|comment|parsedcomment|timestamp|sizes|notificationtimestamp|loginfo'
  + '&wltype=new|edit'; // |external

window.GlobalWatchlist_Request=function(Servers, position){
  var Server = Servers[position];
  if(!Server){
    if(GlobalWatchlist_Options.indexOf("grouped")!=-1) GlobalWatchlist_GroupEdits();
    return;
  }
  if(Server == mw.config.get('wgServer')){
    var URL = Server + GlobalWatchlist_StandardURL;
    if(GlobalWatchlist_Options.indexOf("!log")==-1) URL += '|log';
    if(GlobalWatchlist_Options.indexOf("!all")==-1) URL += '&wlallrev';
    if(GlobalWatchlist_Options.indexOf("!self")!=-1) URL += '&wlexcludeuser=' + encodeURIComponent(mw.config.get('wgUserName'));
    var otherShowOptions = GlobalWatchlist_deleteNotShowOptions(GlobalWatchlist_Options.join("|"));
    if(otherShowOptions != "") URL += '&wlshow=' + otherShowOptions;
    GlobalWatchlist_ajax.http({
          url: URL,
          servers:Servers,
          serverpos: position,
          onSuccess:GlobalWatchlist_FillEditsDiv,
          onFailure:GlobalWatchlist_FillEditsDiv
    });
  }else{
    var URL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?format=xml&action=centralauthtoken';
    GlobalWatchlist_ajax.http({
          url: URL,
          servers:Servers,
          serverpos: position,
          onSuccess:GlobalWatchlist_ManageCentralAuthToken,
          onFailure:GlobalWatchlist_ManageCentralAuthToken
    });
  }
};

window.GlobalWatchlist_ManageCentralAuthToken=function(Req, data){
  var centralauthtoken = false;
  try{
    var XML = Req.responseXML;
    var Tokens = XML.getElementsByTagName('centralauthtoken')[0];
    centralauthtoken = Tokens.getAttribute('centralauthtoken');
  }catch(e){ }
  if(!centralauthtoken) return GlobalWatchlist_Request(data.servers, (data.serverpos+1));;
  var Server = data.servers[data.serverpos];
  var URL = Server + GlobalWatchlist_StandardURL
  if(GlobalWatchlist_Options.indexOf("!log")==-1) URL += '|log';
  if(GlobalWatchlist_Options.indexOf("!all")==-1) URL += '&wlallrev';
  if(GlobalWatchlist_Options.indexOf("!self")!=-1) URL += '&wlexcludeuser=' + encodeURIComponent(mw.config.get('wgUserName'));
  var otherShowOptions = GlobalWatchlist_deleteNotShowOptions(GlobalWatchlist_Options.join("|"));
  if(otherShowOptions!="") URL += '&wlshow=' + otherShowOptions;
  URL += '&origin='+encodeURIComponent(window.location.protocol+mw.config.get('wgServer'))
       + '&centralauthtoken='+encodeURIComponent(centralauthtoken);
  GlobalWatchlist_ajax.http({
          url: URL,
          servers:data.servers,
          serverpos: data.serverpos,
          onSuccess:GlobalWatchlist_FillEditsDiv,
          onFailure:GlobalWatchlist_FillEditsDiv
  });
};

window.GlobalWatchlist_FillEditsDiv=function(Req, data){
  var Target = document.getElementById("GlobalWatchlist_edits");
  var Select = document.getElementById("WatchWiki");
  if(!Target || !Select) return;
  var XML = Req.responseXML;
  if(!XML){
    GlobalWatchlist_Request(data.servers, (data.serverpos+1));
    return;
  }
  var api = XML.getElementsByTagName('api')[0];
  if(!api || api.firstChild.nodeName == "error"){
    GlobalWatchlist_Request(data.servers, (data.serverpos+1));
    return;
  }
  var query = api.getElementsByTagName('query')[0];
  if(!query){
    GlobalWatchlist_Request(data.servers, (data.serverpos+1));
    return;
  }
  var Server = data.servers[data.serverpos];
  var items = api.getElementsByTagName('item');
  for(var a=0,l=items.length;a<l;a++){
    var item = items[a];
    var watchtimestamp = GlobalWatchlist_FillEditsDiv_ManageTimestamp(item.getAttribute('timestamp'));
    var watchpage = item.getAttribute('title');
    var bot = (item.getAttribute('bot')==="");
    var minor = (item.getAttribute('minor')==="");
    var patrolled = (item.getAttribute('patrolled')==="");
    var watchtype = item.getAttribute('type');
    var watchlogtype = item.getAttribute('logtype');
    var watchaction = item.getAttribute('logaction');
    var notificationtimestamp = item.getAttribute('notificationtimestamp');
    var date = parseInt(watchtimestamp.split("T")[0].split("-").join(""));
    var oldUL = document.getElementById(date);
    if(!oldUL){
      var uladded = false;
      oldUL = document.createElement('ul');
      oldUL.id = date;
      oldUL.className = "special";
      var AllUl = Target.getElementsByTagName('ul');
      if(AllUl.length===0){
        uladded = true;
        Target.appendChild(oldUL);
      }else{
        for(var u=0,ulen=AllUl.length;u<ulen;u++){
          if(uladded) continue;
          var ul = AllUl[u];
          var ulid = parseInt(ul.id);
          if(ulid < date){
            ul.parentNode.insertBefore(oldUL, ul.previousSibling);
            uladded = true;
          }
        }
      }
      if(!uladded) Target.appendChild(oldUL);
      var DateLi = document.createElement("h4");
      DateLi.className = "DateLi";
      oldUL.parentNode.insertBefore(DateLi, oldUL);
      var FormattedDate = watchtimestamp.split("T")[0].split("-");
      FormattedDate = parseInt(FormattedDate[2]) + " " + GlobalWatchlist_Text ["MonthNames"][parseInt(FormattedDate[1])] + " " + FormattedDate[0];
      DateLi.innerHTML = FormattedDate;
    }
    var NotifyText = GlobalWatchlist_FillEditsDiv_CreateLiContent(item, Server);
    var LiTs = parseInt(watchtimestamp.split("T").join("").split("Z").join("").split("-").join("").split(":").join(""));
    var Li = document.createElement('li');
    Li.id = LiTs;
    Li.title = Server;
    for(var servername in GlobalWatchlist_Classes){
        if(Server.indexOf(servername)!=-1) Li.className = GlobalWatchlist_Classes[servername];
    }
    $(Li).addClass("GWLpage-"+GlobalWatchlist_FillEditsDiv_SanitizeClass(Server+"-_-"+watchpage));
    if(watchtype === "log"){
       $(Li).addClass("mw-changeslist-line-log");
       $(Li).addClass("mw-changeslist-line-"+watchlogtype);
       $(Li).addClass("mw-changeslist-line-"+watchlogtype+"-"+watchaction);
    }
    if(notificationtimestamp==="") $(Li).addClass("mw-changeslist-line-not-watched");
    else $(Li).addClass("mw-changeslist-line-watched");
    if(bot) $(Li).addClass("bot");
    if(minor) $(Li).addClass("minor"); 
    if(patrolled) $(Li).addClass("patrolled");
    Li.innerHTML = NotifyText;
    var addedli = false;
    var alllis = oldUL.getElementsByTagName('li');
    if(alllis.length===0){
      oldUL.appendChild(Li);
      addedli = true;
    }else{
      for(var u=0,ulen=alllis.length;u<ulen;u++){
        if(addedli) continue;
        var li = alllis[u];
        var liid = parseInt(li.id);
        if(liid < LiTs){
          li.parentNode.insertBefore(Li, li);
          addedli = true;
        }
      }
    }
    if(!addedli) oldUL.appendChild(Li);
    GlobalWatchlist_FillEditsDiv_ManageLiContent(Li, Server);
  }
  var Options = Select.getElementsByTagName('option');
  for(var a=0,l=Options.length;a<l;a++){
    var Option = Options[a];
    if(Option.value != Server) continue;
    Option.style.color = "green";
  }  
  GlobalWatchlist_Request(data.servers, (data.serverpos+1));
};

window.GlobalWatchlist_FillEditsDiv_SanitizeClass=function(ClassName){
  ClassName = ClassName.replace(/[\/ "'’`,;:~!%#&^\*\+\\\(\)\[\]\{\}\.\$\?]/g, "_");
//  ClassName = ClassName.replace(/[\/ "'’,;:~!%#&^\*\+\\\(\)\[\]\{\}\.\$\?]/g, "_"); // For tests
  return ClassName;
};

window.GlobalWatchlist_FillEditsDiv_CreateLiContent=function(item, Server){
    var watchtimestamp = GlobalWatchlist_FillEditsDiv_ManageTimestamp(item.getAttribute('timestamp'));
    var watchtype = item.getAttribute('type');
    var watchlogtype = item.getAttribute('logtype');
    var watchaction = item.getAttribute('logaction');
    var watchpageid = item.getAttribute('pageid');
    var watcholdrevid = item.getAttribute('old_revid');
    var watchrevid = item.getAttribute('revid');
    var watchpage = item.getAttribute('title');
    var watchuser = item.getAttribute('user');
    var watchsum = item.getAttribute('parsedcomment');
    var oldlen = parseInt(item.getAttribute('oldlen'));
    var newlen = parseInt(item.getAttribute('newlen'));
    var codedpage = encodeURIComponent(watchpage);
    var codeduser = encodeURIComponent(watchuser);
    var Time = watchtimestamp.split("T")[1].split("Z").join("");
    var Type = (Server == mw.config.get('wgServer') ? 'target="_blank" ' : 'class="extiw" target="_blank" ' );
    var PageLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+codedpage+'" '
                 + 'title="'+watchpage+'">'+watchpage+'</a>';

    var DiffLink = "";
    if(watchtype=="new"){
      DiffLink = GlobalWatchlist_Text ["Link_diff_text"];
    }else if(watchtype=="edit"){
      DiffLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+codedpage+'&diff='+watchrevid+'&oldid='+watcholdrevid+'" '
                 + 'title="'+GlobalWatchlist_Text ["Link_diff_title"]+'">'+GlobalWatchlist_Text ["Link_diff_text"]+'</a>';
    }else if(watchtype=="log"){
      DiffLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title=Special:Log&type='+watchlogtype+'&page='+codedpage+'&user='+codeduser+'" '
                 + 'title="'+GlobalWatchlist_Text ["Link_log_title"]+' '+watchtype+'">'+GlobalWatchlist_Text ["Link_log_text"]+' '+watchlogtype+'/'+watchaction+'</a>';
    }
    var HistLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+codedpage+'&action=history" '
                 + 'title="'+GlobalWatchlist_Text ["Link_hist_title"]+'">'+GlobalWatchlist_Text ["Link_hist_text"]+'</a>';
    var EditLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+codedpage+'&action=edit" '
                 + 'title="'+GlobalWatchlist_Text ["Link_edit_title"]+'">'+GlobalWatchlist_Text ["Link_edit_text"]+'</a>';
    var StopLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+codedpage+'&action=unwatch" '
                 + 'title="'+GlobalWatchlist_Text ["Link_unwatch_title"]+'">'+GlobalWatchlist_Text ["Link_unwatch_text"]+'</a>';
    var UserLink = '<a '+Type+'href="'+Server+mw.config.get('wgArticlePath').split('$1').join('User:'+codeduser)+'" '
                 + 'title="User:'+watchuser+'">'+watchuser+'</a>';
    var UserTalkLink = '<a '+Type+'href="'+Server+mw.config.get('wgArticlePath').split('$1').join('User talk:'+codeduser)+'" '
                 + 'title="'+GlobalWatchlist_Text ["Link_usertalk_title"]+'">'+GlobalWatchlist_Text ["Link_usertalk_text"]+'</a>';
    var UserContribLink = '<a '+Type+'href="'+Server + mw.config.get('wgArticlePath').split('$1').join('Special:Contributions/'+codeduser)+'" '
                 + 'title="'+GlobalWatchlist_Text ["Link_usercontrib_title"]+'">'+GlobalWatchlist_Text ["Link_usercontrib_text"]+'</a>';
    var sizespan = "";
    var loginfos = "";
    if(watchtype!="log"){    
        var diffsize = (newlen-oldlen);
        var sizeclass="mw-plusminus-null";
        if(diffsize<0) sizeclass="mw-plusminus-neg";
        if(diffsize>0) sizeclass="mw-plusminus-pos";
        sizespan = '<span class="mw-sizespan '+sizeclass+'">'+((diffsize*diffsize>250000)?'<b>('+diffsize+')</b>':'('+diffsize+')' )+'</span>';
    }else{
        loginfos = GlobalWatchlist_FillEditsDiv_getItemLogIfos(item, Server);
    }
    var tags = "";
    for(var tag in GlobalWatchlist_Text ["Tags"]){
      tags += GlobalWatchlist_Text ["Tags"][tag];
    }
    var NotifyText = '$00 <span class="mw-changeslist-date" title="$01">$02</span> (<span class="mw-difflink">$04</span>|$05|$06|$07) <span class="mw-changeslist-separator">. .</span> <span class="mw-title">$03</span> <span class="mw-changeslist-separator">. .</span> $12 <span class="mw-changeslist-separator">. .</span> <span class="mw-user">$08</span> <span class="mw-usertoollinks">($09|$10)</span> <span class="comment">($11)</span>';
    if(watchtype=="log"){
        NotifyText = '$00 <span class="mw-changeslist-date" title="$01">$02</span> (<span class="mw-difflink">$04</span>) <span class="mw-changeslist-separator">. .</span> <span class="mw-title">$03</span> <span class="mw-changeslist-separator">. .</span> <span class="mw-user">$08</span> <span class="mw-usertoollinks">($09|$10)</span> $13 <span class="comment">($11)</span>';
    }
    NotifyText = NotifyText.split('$00').join(tags);
    NotifyText = NotifyText.split('$01').join(Server);
    NotifyText = NotifyText.split('$02').join(Time);
    NotifyText = NotifyText.split('$03').join(PageLink);
    NotifyText = NotifyText.split('$04').join(DiffLink);
    NotifyText = NotifyText.split('$05').join(HistLink);
    NotifyText = NotifyText.split('$06').join(EditLink);
    NotifyText = NotifyText.split('$07').join(StopLink);
    NotifyText = NotifyText.split('$08').join(UserLink);
    NotifyText = NotifyText.split('$09').join(UserTalkLink);
    NotifyText = NotifyText.split('$10').join(UserContribLink); 
    NotifyText = NotifyText.split('$11').join(watchsum);
    NotifyText = NotifyText.split('$12').join(sizespan);
    NotifyText = NotifyText.split('$13').join(loginfos);
    return NotifyText;
};

window.GlobalWatchlist_FillEditsDiv_getItemLogIfos=function(item, Server){
  var loginfos = "";
  var watchlogtype = item.getAttribute('logtype');
  var watchaction = item.getAttribute('logaction');
  var Type = (Server == mw.config.get('wgServer') ? 'target="_blank" ' : 'class="extiw" target="_blank" ' );
  switch (watchlogtype) {
      case 'protect': 
        try{ loginfos = item.firstChild.firstChild.nodeValue; }catch(e){ }
        break;
      case 'move': 
        try{ 
        var newtitle = item.firstChild.getAttribute("new_title");
        if(!newtitle) newtitle = item.firstChild.getAttribute("target_title");
        loginfos = "→‎"+'<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+encodeURIComponent(newtitle)+'" '
                 + 'title="'+newtitle+'">'+newtitle+'</a>';
        }catch(e){ }
        break;
      case 'block':
        try{ 
        var itemFSAttr = item.firstChild.attributes;
        for(var a=0,l=itemFSAttr.length;a<l;a++){
          var attrname = itemFSAttr[a].name;
          var attrvalue = itemFSAttr[a].value;
          loginfos = (loginfos=="" ? "" : "|" ) + attrname + "="+(attrname=="expiry" ? GlobalWatchlist_FillEditsDiv_ManageTimestamp(attrvalue) : attrvalue);
        }
        }catch(e){ }
        break;
  }
  return "["+loginfos+"]";
};

window.GlobalWatchlist_FillEditsDiv_ManageTimestamp=function(ts){
    var Correction = parseInt(GlobalWatchlist_TimeCorrection.split(":")[0]);
    var TS = ts.replace(/\D/g, "|").split("|");
    var year = parseInt(TS[0]);
    var month = (parseInt(TS[1])-1);
    var day = parseInt(TS[2]);
    var hours = parseInt(TS[3]);
    var minutes = parseInt(TS[4]);
    var seconds = parseInt(TS[5]);    
    var TSDate = (new Date(year, month, day, hours, minutes, seconds)).getTime();
    var CorrectedTSDate = TSDate+(Correction*1000*60*60);
    var RD = new Date();
    RD.setTime(CorrectedTSDate);
    function AddZ(txt){ return ((parseInt(txt)<10)?"0"+txt:txt); }
    var RDS = {
      "y":RD.getFullYear(),
      "M":AddZ(RD.getMonth()+1),
      "d":AddZ(RD.getDate()),
      "h":AddZ(RD.getHours()),
      "m":AddZ(RD.getMinutes()),
      "s":AddZ(RD.getSeconds())
    }
    var correctedts = RDS["y"]+"-"+RDS["M"]+"-"+RDS["d"]+"T"+RDS["h"]+":"+RDS["m"]+":"+RDS["s"]+"Z";
    return correctedts;
};

window.GlobalWatchlist_FillEditsDiv_ManageLiContent=function(Li, Server){
    if(Server == mw.config.get('wgServer')) return;
    var Links =  $.makeArray( $(Li).find('span.comment a') );
    for(var a=0,l=Links.length;a<l;a++){
        var Link = Links[a];
        if(!$(Link).hasClass("extiw")){
            Link.href = Server + Link.href.split(window.location.protocol+mw.config.get('wgServer')).join("").split(mw.config.get('wgServer')).join("");
            $(Link).addClass("extiw");
        }
        Link.target = "_blank";
    }
};

window.GlobalWatchlist_GroupEdits=function(){
    GlobalWatchlist_Bugs = new Array();
    var Div = document.getElementById("GlobalWatchlist_edits");
    if(!Div) return;
    var Uls = $.makeArray( $(Div).find('ul.special') );
    for(var a=0,l=Uls.length;a<l;a++){
        GlobalWatchlist_GroupULEdits(Uls[a]);
    }
    GlobalWatchlist_GroupEdits_ReportBugs();
};
 
window.GlobalWatchlist_GroupULEdits=function(UL){
    var Li = UL.firstChild;
    while(Li){
        var infos = "";
        var Classes = Li.className.split(" ");
        for(var a=0,l=Classes.length;a<l;a++){
            var ThisClass = Classes[a];
            if(ThisClass.indexOf("GWLpage-")===0) infos = ThisClass;
        }
        if(infos!==""){
            try{
                var AllLis = $.makeArray( $(UL).find('li.'+infos) );
                if(AllLis.length>1){
                    var NewLi = document.createElement("li");
                    Li.parentNode.insertBefore(NewLi, Li);
                    var NewUL = document.createElement("ul");
                    NewLi.appendChild(NewUL);
                    for(var a=0,l=AllLis.length;a<l;a++){
                        var thisli = AllLis[a];
                        thisli.parentNode.removeChild(thisli);
                        NewUL.appendChild(thisli);
                    }
                    GlobalWatchlist_GroupULEdits_EditLiContent(NewLi);
                    Li = NewLi;
                }
            }catch(e){
                if(GlobalWatchlist_Bugs.indexOf(infos)==-1) GlobalWatchlist_Bugs.push(infos);
            }
        }
        Li = Li.nextSibling;
        if(!Li) break;
    }
    var ToggleLinks = $.makeArray( $(UL).find('a.GlobalWatchlist-toggleLink') );
    for(var a=0,l=ToggleLinks.length;a<l;a++){ GlobalWatchlist_ToggleEdits(ToggleLinks[a]); }
};

window.GlobalWatchlist_GroupEdits_ReportBugs=function(){
    var BugDiv = document.getElementById("GlobalWatchlist_bugreport");
    var BugLength = GlobalWatchlist_Bugs.length;
    if(BugLength===0){
        BugDiv.innerHTML = "";
        BugDiv.style.display = "none";
        return;
    }
    var DevLink = '<a href="//fr.wikipedia.org/wiki/Discussion_utilisateur:Dr_Brains">Dr Brains</a>';
    var Text = GlobalWatchlist_Text ["BugReport_Class"].split("$1").join(DevLink);
    for(var a=0,l=BugLength;a<l;a++){
        Text += '* '+GlobalWatchlist_Bugs[a] + '\n';
    }
    Text += '</pre>';
    BugDiv.innerHTML = Text;
    BugDiv.style.display = "";
};

window.GlobalWatchlist_GroupULEdits_EditLiContent=function(NewLi){
    var Lis = $.makeArray( $(NewLi).find('li'));
    var FirstOldLi = Lis[0];
    var Title = $.makeArray( $(FirstOldLi).find('span.mw-title a'))[0].innerHTML;
    var Server = FirstOldLi.title;
    var Type = (Server == mw.config.get('wgServer') ? 'target="_blank" ' : 'class="extiw" target="_blank" ' );
    var Time = $.makeArray( $(FirstOldLi).find('span.mw-changeslist-date'))[0].innerHTML;
    var PageLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+encodeURIComponent(Title)+'" '
                 + 'title="'+Title+'">'+Title+'</a>';
    var HistLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+encodeURIComponent(Title)+'&action=history" '
                 + 'title="'+GlobalWatchlist_Text ["Link_hist_title"]+'">'+GlobalWatchlist_Text ["Link_hist_text"]+'</a>';
    var EditLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+encodeURIComponent(Title)+'&action=edit" '
                 + 'title="'+GlobalWatchlist_Text ["Link_edit_title"]+'">'+GlobalWatchlist_Text ["Link_edit_text"]+'</a>';
    var StopLink = '<a '+Type+'href="'+Server+mw.config.get('wgScript')+'?title='+encodeURIComponent(Title)+'&action=unwatch" '
                 + 'title="'+GlobalWatchlist_Text ["Link_unwatch_title"]+'">'+GlobalWatchlist_Text ["Link_unwatch_text"]+'</a>';
    var Users = new Array();
    var watchmissing = false;
    var diffsize = 0;
    for(var a=0,l=Lis.length;a<l;a++){
        if($(Lis[a]).hasClass("mw-changeslist-line-watched")) watchmissing = true;
        var User = $.makeArray( $(Lis[a]).find('span.mw-user a'))[0].innerHTML;
        var UserLink = '<a '+Type+'href="'+Server+'/wiki/User:'+encodeURIComponent(User)+'" '
                 + 'title="User:'+User+'">'+User+'</a>';
        Users.push(UserLink);
        var SizeSpan = $.makeArray( $(Lis[a]).find('span.mw-sizespan'))[0];
        if(SizeSpan){
            var ThisSize = parseInt(SizeSpan.innerHTML.replace(/[^0-9\-]/g, ""));
            diffsize = diffsize + ThisSize;
        }
        var PageTitle = $.makeArray( $(Lis[a]).find('span.mw-title a'))[0];
        PageTitle.parentNode.removeChild(PageTitle);
        var FirstSeperator = $.makeArray( $(Lis[a]).find('span.mw-changeslist-separator'))[0];
        FirstSeperator.parentNode.removeChild(FirstSeperator);
    }
    var UserLinks = new Array();
    var UserLinksCount = new Array();
    for(var a=0,l=Users.length;a<l;a++){
      var ThisUserLink = Users[a];
      var index = UserLinks.indexOf(ThisUserLink);
      if(index==-1){
        UserLinks.push(ThisUserLink);
        UserLinksCount.push(1);
      }else{
        UserLinksCount[index] = (UserLinksCount[index]+1);
      }
    }
    for(var a=0,l=UserLinks.length;a<l;a++){
      if(UserLinksCount[a]>1) UserLinks[a] = UserLinks[a] + "("+UserLinksCount[a]+"×)";
    }
    var tags = "";
    for(var tag in GlobalWatchlist_Text ["Tags"]){
      tags += GlobalWatchlist_Text ["Tags"][tag];
    }  
    var sizeclass="mw-plusminus-null";
    if(diffsize<0) sizeclass="mw-plusminus-neg";
    if(diffsize>0) sizeclass="mw-plusminus-pos";
    var sizespan = '<span class="mw-sizespan '+sizeclass+'">'+((diffsize*diffsize>250000)?'<b>('+diffsize+')</b>':'('+diffsize+')' )+'</span>';
    var NotifyText = '<span class="notag">$00 </span><span class="mw-changeslist-date" title="$01">$02</span> ($05|$06|$07) <span class="mw-changeslist-separator">. .</span> <span class="mw-title">$03</span> <span class="mw-changeslist-separator">. .</span> $12 <span class="mw-changeslist-separator">. .</span> <span class="changedby">[$14]</span>';
    NotifyText = NotifyText.split('$00').join(tags);
    NotifyText = NotifyText.split('$01').join(Server);
    NotifyText = NotifyText.split('$02').join(Time);
    NotifyText = NotifyText.split('$03').join(PageLink);
    NotifyText = NotifyText.split('$05').join(HistLink);
    NotifyText = NotifyText.split('$06').join(EditLink);
    NotifyText = NotifyText.split('$07').join(StopLink);
    NotifyText = NotifyText.split('$12').join(sizespan);
    NotifyText = NotifyText.split('$14').join(UserLinks.join("; "));
    for(var servername in GlobalWatchlist_Classes){
        if(Server.indexOf(servername)!=-1) $(NewLi).addClass(GlobalWatchlist_Classes[servername]);
    }

    if(watchmissing) $(NewLi).addClass("mw-changeslist-line-watched");
    else $(NewLi).addClass("mw-changeslist-line-not-watched");
    var Span = document.createElement('span');
    Span.innerHTML = NotifyText;
    NewLi.insertBefore(Span, NewLi.firstChild);
    NewLi.insertBefore(GlobalWatchlist_GroupULEdits_CreateToggleLink(NewLi), NewLi.firstChild);
};

window.GlobalWatchlist_GroupULEdits_CreateToggleLink=function(NewLi){
   var Link = document.createElement('a');
   Link.className = "GlobalWatchlist-toggleLink";
   Link.title = GlobalWatchlist_Text ["ToggleLink_opened_Title"];
   Link.innerHTML = GlobalWatchlist_Text ["ToggleLink_opened_Text"];
   Link.href = "javascript:;";
   Link.onclick = function(){ GlobalWatchlist_ToggleEdits(this); return false; }
   return Link;
};

window.GlobalWatchlist_ToggleEdits=function(ToggleLink){
  if(!ToggleLink) return;
  var Li = ToggleLink.parentNode;
  var Ul = Li.getElementsByTagName('ul')[0];
  if(!Ul) return;
  if(ToggleLink.title == GlobalWatchlist_Text ["ToggleLink_closed_Title"]){
    Ul.style.display = "";
    ToggleLink.title = GlobalWatchlist_Text ["ToggleLink_opened_Title"];
    ToggleLink.innerHTML = GlobalWatchlist_Text ["ToggleLink_opened_Text"];
  }else{
    Ul.style.display = "none";
    ToggleLink.title = GlobalWatchlist_Text ["ToggleLink_closed_Title"];
    ToggleLink.innerHTML = GlobalWatchlist_Text ["ToggleLink_closed_Text"];
  }
  ToggleLink.blur();
};

// Fonction de lancement

if((mw.config.get('wgCanonicalSpecialPageName')=="Blankpage")&&(mw.config.get('wgTitle').split("/")[1]==="GlobalWatchlist")){
  mw.loader.load('//fr.wikipedia.org/w/index.php?title=MediaWiki:Gadget-GlobalWatchlist.css&action=raw&ctype=text/css', 'text/css');
  mw.loader.using(['user','mediawiki.cookie'],function(){
    $(GlobalWatchlist_Init);
  });
}
$(GlobalWatchlist_Link);

// </nowiki></pre></source>