mw.loader.implement("ext.centralNotice.bannerController",function(){(function($,mw){var rPlus=/\+/g;function decode(s){try{return decodeURIComponent(s.replace(rPlus,' '));}catch(e){return'';}}mw.centralNotice={data:{getVars:{},bannerType:'default',bucket:null,testing:false},bannerData:{},events:{},alreadyRan:false,deferredObjs:{},loadBanner:function(){if(mw.centralNotice.data.getVars.banner){mw.centralNotice.loadTestingBanner(mw.centralNotice.data.getVars.banner,'none','testing');}else{mw.centralNotice.loadRandomBanner();}},loadTestingBanner:function(bannerName,campaign){var bannerPageQuery;mw.centralNotice.data.testing=true;bannerPageQuery={title:'Special:BannerLoader',banner:bannerName,campaign:campaign,uselang:mw.config.get('wgUserLanguage'),db:mw.config.get('wgDBname'),project:mw.config.get('wgNoticeProject'),country:mw.centralNotice.data.country,device:mw.centralNotice.data.device};$.ajax({url:mw.config.get('wgCentralPagePath')+'?'+$.param(bannerPageQuery),dataType:'script',cache: true});},loadRandomBanner:function(){var RAND_MAX=30;var bannerDispatchQuery={uselang:mw.config.get('wgUserLanguage'),sitename:mw.config.get('wgSiteName'),project:mw.config.get('wgNoticeProject'),anonymous:mw.config.get('wgUserName')===null,bucket:mw.centralNotice.data.bucket,country:mw.centralNotice.data.country,device:mw.centralNotice.data.device,slot:Math.floor(Math.random()*RAND_MAX)+1};var scriptUrl=mw.config.get('wgCentralBannerDispatcher')+'?'+$.param(bannerDispatchQuery);$.ajax({url:scriptUrl,dataType:'script',cache:true});},insertBanner:function(bannerJson){window.insertBanner(bannerJson);},toggleNotice:function(){window.toggleNotice();},hideBanner:function(){window.hideBanner();},recordImpression:function(data){var url=mw.config.get('wgCentralBannerRecorder')+'?'+$.param(data);(new Image()).src=url;},loadQueryStringVariables:function(){document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g,function(str,p1,p2){mw.centralNotice.data.getVars[decode(p1)]=decode(p2);});}, getBucket:function(){var dataString=$.cookie('centralnotice_bucket')||'',bucket=dataString.split('-')[0],validity=dataString.split('-')[1],expValidity=mw.config.get('wgNoticeNumberOfBuckets')+'.'+mw.config.get('wgNoticeNumberOfControllerBuckets');if((bucket===null)||(validity!==expValidity)){bucket=Math.floor(Math.random()*mw.config.get('wgNoticeNumberOfControllerBuckets'));$.cookie('centralnotice_bucket',bucket+'-'+expValidity,{expires:mw.config.get('wgNoticeBucketExpiry'),path:'/'});}return bucket;},initialize:function(){if(mw.centralNotice.alreadyRan){return;}mw.centralNotice.alreadyRan=true;mw.centralNotice.loadQueryStringVariables();mw.centralNotice.data.bucket=mw.centralNotice.getBucket();mw.centralNotice.data.country=mw.centralNotice.data.getVars.country||Geo.country||'XX';mw.centralNotice.isPreviewFrame=(mw.config.get('wgCanonicalSpecialPageName')==='BannerPreview');mw.centralNotice.data.device=mw.centralNotice.data.getVars.device||mw.config.get('wgMobileDeviceName','desktop'); if(mw.config.get('wgNamespaceNumber')==-1&&!mw.centralNotice.isPreviewFrame){return;}mw.centralNotice.deferredObjs.bannerLoaded=$.Deferred();mw.centralNotice.events.bannerLoaded=mw.centralNotice.deferredObjs.bannerLoaded.promise();$('#siteNotice').prepend('
');if(mw.centralNotice.data.country==='XX'){$.ajax({url:'//geoiplookup.wikimedia.org/',dataType:'script',cache:true,complete:function(){if(Geo.country){mw.centralNotice.data.country=Geo.country;}else{mw.centralNotice.data.country='XX';}mw.centralNotice.loadBanner();}});}else{mw.centralNotice.loadBanner();}}};window.insertBanner=function(bannerJson){var url,targets,data;var impressionData={country:mw.centralNotice.data.country,uselang:mw.config.get('wgUserLanguage'),project:mw.config.get('wgNoticeProject'),db:mw.config.get('wgDBname'),bucket:mw.centralNotice.data.bucket,anonymous:mw.config.get('wgUserName')===null,device:mw.centralNotice.data.device};var impressionResultData=null;if(!bannerJson){ impressionResultData={result:'hide',reason:'empty'};}else{mw.centralNotice.data.bannerType=(bannerJson.fundraising?'fundraising':'default');if(typeof mw.centralNotice.bannerData.preload==='function'&&!mw.centralNotice.bannerData.preload()){impressionResultData={result:'hide',reason:'preload'}}else if(bannerJson.priority<3&&!mw.centralNotice.data.testing&&$.cookie('centralnotice_'+encodeURIComponent(mw.centralNotice.data.bannerType))==='hide'){impressionResultData={result:'hide',reason:'cookie'}}else{mw.centralNotice.bannerData.bannerName=bannerJson.bannerName;$('div#centralNotice').attr('class',mw.html.escape('cn-'+mw.centralNotice.data.bannerType)).prepend(bannerJson.bannerHtml);if(bannerJson.autolink){url=mw.config.get('wgNoticeFundraisingUrl');if((bannerJson.landingPages!==null)&&bannerJson.landingPages.length){targets=String(bannerJson.landingPages).split(',');if($.inArray(mw.centralNotice.data.country,mw.config.get('wgNoticeXXCountries'))!==-1){mw.centralNotice.data.country='XX';} url+="?"+$.param({landing_page:targets[Math.floor(Math.random()*targets.length)].replace(/^\s+|\s+$/,''),utm_medium:'sitenotice',utm_campaign:bannerJson.campaign,utm_source:bannerJson.bannerName,language:mw.config.get('wgUserLanguage'),country:mw.centralNotice.data.country});$('#cn-landingpage-link').attr('href',url);}}var bannerShown=true;if(typeof mw.centralNotice.bannerData.alterImpressionData==='function'){bannerShown=mw.centralNotice.bannerData.alterImpressionData(impressionData);}if(bannerShown){impressionResultData={banner:bannerJson.bannerName,campaign:bannerJson.campaign,result:'show'};}else{impressionResultData={result:'hide'};}}}impressionResultData=$.extend(impressionResultData,impressionData);if(!mw.centralNotice.data.testing){mw.centralNotice.recordImpression(impressionResultData);}mw.centralNotice.deferredObjs.bannerLoaded.resolve(impressionResultData);};window.hideBanner=function(){$('#centralNotice').hide();var bannerType=mw.centralNotice.data.bannerType||'default';var d=new Date();d.setSeconds(d.getSeconds()+mw.config.get('wgNoticeCookieShortExpiry'));$.cookie('centralnotice_'+encodeURIComponent(bannerType),'hide',{expires:d,path:'/'});};window.toggleNotice=function(){window.hideBanner();};$(function(){mw.centralNotice.initialize();});})(jQuery,mediaWiki);;},{},{});mw.loader.implement("ext.centralauth.centralautologin",function(){(function(mw){if(mw.config.get('wgUserName')!==null){return;}if(mw.config.get('wgCanonicalSpecialPageName')!=='Userlogin'){if('localStorage'in window&&+localStorage.getItem('CentralAuthAnon')>new Date().getTime()){return;}if(/(^|; )CentralAuthAnon=1/.test(document.cookie)){return;}}var url,params,len,param,i;url=mw.config.get('wgServer')+mw.config.get('wgArticlePath').replace('$1','Special:CentralAutoLogin/start');url+=(url.indexOf('?')<0?'?':'&')+'type=script';if(mw.config.get('wgCanonicalSpecialPageName')==='Userlogin'){url+='&return=1';params=location.search.slice(1).split('&');len=params.length;for(i=0;i'+'
'+'
'+''+''+'
'+'
'+''+'
'+'
'+'
'+'

'+'
'+'
'+'
'+'
'+'

'+'
'+'
'+'
'+'
'+'
'+ '
'+'

'+'
'+'
'+'
'+'
'+'
'+''+'
'+''+'
'+'
'+'
'+''+'
'+''+'
'+'
'+'
'+'
'+'
'+'
'+''+ ''+'
'+'
'+'';function DisplaySettings($parent){this.name=$.i18n('ext-uls-display-settings-title-short');this.description=$.i18n('ext-uls-display-settings-desc');this.$template=$(template);this.uiLanguage=this.getUILanguage();this.contentLanguage=this.getContentLanguage();this.$webfonts=null;this.$parent=$parent;}DisplaySettings.prototype={constructor:DisplaySettings,render:function(){this.$parent.$settingsPanel.empty();this.$webfonts=$('body').data('webfonts');this.$parent.$settingsPanel.append(this.$template);this.prepareLanguages();this.prepareUIFonts();this.prepareContentFonts();this.i18n();this.$webfonts.refresh();this.listen();this.dirty=false;this.savedRegistry=$.extend(true,{},mw.webfonts.preferences);},prepareLanguages:function(){var loginUri,$loginCta,displaySettings=this,SUGGESTED_LANGUAGES_NUMBER=3,anonsAllowed=mw.config.get( 'wgULSAnonCanChangeLanguage'),languagesForButtons,$languages,suggestedLanguages,lang,i,language,$button;if(!anonsAllowed&&mw.user.isAnon()){loginUri=new mw.Uri();loginUri.query={title:'Special:UserLogin'};$loginCta=$('

').attr('id','uls-display-settings-anon-log-in-cta');this.$template.find('.uls-display-settings-language-tab').empty().append($('

').append($('').addClass('uls-display-settings-anon-label').html($.i18n('ext-uls-display-settings-anon-label')+' '),$('').text($.i18n('ext-uls-display-settings-anon-same-as-content'))),$loginCta);new mw.Api().parse($.i18n('ext-uls-display-settings-anon-log-in-cta')).done(function(parsedCta){$loginCta.html(parsedCta);});return;}$languages=this.$template.find('div.uls-ui-languages');suggestedLanguages=this.frequentLanguageList().concat(['en','zh','fr']);languagesForButtons=[this.contentLanguage];$languages.find('button').remove();if(this.uiLanguage!==this.contentLanguage){languagesForButtons.push(this.uiLanguage);}for(lang in suggestedLanguages){if($.inArray(suggestedLanguages[lang],languagesForButtons)>-1){continue;}languagesForButtons.push(suggestedLanguages[lang]);if(languagesForButtons.length>=SUGGESTED_LANGUAGES_NUMBER){break;}}function buttonHandler(button){return function(){displaySettings.markDirty();displaySettings.uiLanguage=button.data('language')||displaySettings.uiLanguage;$('div.uls-ui-languages button.button').removeClass('down');button.addClass('down');displaySettings.prepareUIFonts();displaySettings.$template.attr('lang',displaySettings.uiLanguage);displaySettings.preview(displaySettings.uiLanguage);};}for(i=0;i').addClass('button uls-language-button').text($.uls.data.getAutonym(language)).prop({lang:language,dir:$.uls.data.getDir(language)});if(language===this.uiLanguage){$button.addClass('down');}$button.data('language',language);$languages.append($button);$button.on('click',buttonHandler($button));}this. prepareMoreLanguages();},prepareMoreLanguages:function(){var displaySettings=this,$languages,$moreLanguagesButton;$languages=this.$template.find('div.uls-ui-languages');$moreLanguagesButton=$(''+''+''+'

'+ '
'+'
'+''+''+'
'+'
'+'';function InputSettings($parent){this.name=$.i18n('ext-uls-input-settings-title-short');this.description=$.i18n('ext-uls-input-settings-desc');this.$template=$(template);this.uiLanguage=this.getInterfaceLanguage();this.contentLanguage=this.getContentLanguage();this.$imes=null;this.$parent=$parent;this.dirty=false;this.savedRegistry=$.extend(true,{},$.ime.preferences.registry);}InputSettings.prototype={constructor:InputSettings,render:function(){var $enabledOnly;this.$parent.$settingsPanel.empty();this.$imes=$('body').data('ime');this.$parent.$settingsPanel.append(this.$template);$enabledOnly=this.$template.find('.enabled-only');if($.ime.preferences.isEnabled ()){$enabledOnly.removeClass('hide');}else{$enabledOnly.addClass('hide');}this.prepareLanguages();this.prepareToggleButton();this.$template.i18n();$('body').data('webfonts').refresh();this.listen();},markDirty:function(){this.dirty=true;this.$template.find('button.uls-input-settings-apply').prop('disabled',false);},disableApplyButton:function(){this.$template.find('button.uls-input-settings-apply').prop('disabled',true);},prepareInputmethods:function(language){var index,inputSettings,$imeListContainer,defaultInputmethod,imes,selected,imeId,$imeListTitle;imes=$.ime.languages[language];$imeListTitle=this.$template.find('.ext-uls-input-settings-imes-title');$imeListContainer=this.$template.find('.uls-input-settings-inputmethods-list');$imeListContainer.find('label').remove();if(!imes){$imeListContainer.append($('
').addClass('uls-ime-help').text($.i18n('ext-uls-ime-help')).attr('href',mw.msg('uls-ime-helppage').replace('$1',imeId)).attr('target','_blank');if(!inputmethod){name=$.ime.sources[imeId].name;description='';}else{name=inputmethod.name;description=$.ime.inputmethods[imeId].description;}}$imeLabel.append($('').text(name),$('').text(description),$helplink);return $imeLabel;},prepareLanguages:function(){var inputSettings=this,SUGGESTED_LANGUAGES_NUMBER=3,selectedImeLanguage=$.ime.preferences.getLanguage(),languagesForButtons,$languages,suggestedLanguages,lang,i,language,$button,$caret;$languages=this.$template.find('.uls-ui-languages');suggestedLanguages=this.frequentLanguageList().concat(['en','zh','fr']);languagesForButtons=[this.contentLanguage];$languages.empty();if($.uls.data.languages[selectedImeLanguage]&&$.inArray(selectedImeLanguage,languagesForButtons)===-1){languagesForButtons.push(selectedImeLanguage);}if(this.uiLanguage!==this.contentLanguage&&$.uls.data. languages[this.uiLanguage]&&$.inArray(this.uiLanguage,languagesForButtons)===-1){languagesForButtons.push(this.uiLanguage);}for(lang in suggestedLanguages){if($.inArray(suggestedLanguages[lang],languagesForButtons)>-1){continue;}languagesForButtons.push(suggestedLanguages[lang]);if(languagesForButtons.length>=SUGGESTED_LANGUAGES_NUMBER){break;}}function buttonHandler(button){return function(){var language=button.data('language');if(language!==$.ime.preferences.getLanguage()){inputSettings.markDirty();$.ime.preferences.setLanguage(language);}$('.uls-ui-languages .button').removeClass('down');button.addClass('down');inputSettings.prepareInputmethods(language);};}selectedImeLanguage=selectedImeLanguage||this.contentLanguage;for(i=0;i').addClass('button uls-language-button').text($.uls.data.getAutonym(language)).prop({lang:language,dir:$.uls.data.getDir(language)});$button.data('language',language);$caret=$ ('').addClass('uls-input-settings-caret');$languages.append($button,$caret);$button.on('click',buttonHandler($button));if(language===selectedImeLanguage){$button.click();}}this.prepareMoreLanguages();},prepareMoreLanguages:function(){var inputSettings=this,$languages,$moreLanguagesButton;$languages=this.$template.find('.uls-ui-languages');$moreLanguagesButton=$('