User:ST48/monobook.js

document.write(' ');

importScript('User:Lupin/popups.js'); importScript('User:AzaToth/morebits.js'); importScript('User:ST47/twinklefluff.js'); importScript('Wikipedia:WikiProject User scripts/Scripts/Add LI menu'); importStylesheet('Wikipedia:WikiProject User scripts/Scripts/Add LI menu/css'); importScript('User:AzaToth/twinklewarn.js'); importScript('User:AzaToth/twinklearv.js'); importScript('User:AzaToth/twinklespeedy.js'); importScript('User:AzaToth/twinklediff.js'); importScript('User:AzaToth/twinkleprotect.js'); importScript('User:AzaToth/twinkleprod.js'); importScript('User:AzaToth/twinklexfd.js'); importScript('User:AzaToth/salt.js'); importScript('User:AzaToth/twinkleimage.js');

TwinkleConfig = { revertMaxRevisions             :       50, userTalkPageMode               :       'window', showSharedIPNotice             :       false, openTalkPage                   :       [ 'vand' ], openTalkPageOnAutoRevert       :       false, openAOLAnonTalkPage            :       true, summaryAd                      :       "", deletionSummaryAd              :       "", protectionSummaryAd            :       "", watchSpeedyPages               :       [ ], watchProdPages                 :       false, openUserTalkPageOnSpeedyDelete :       [ 'g1', 'g2', 'g10', 'g11', 'g12', 'a1', 'a7', 'i3', 'i4', 'i7', 'u3', 't1' ], watchRevertedPages             :       [ ], markRevertedPagesAsMinor       :       [ 'agf', 'norm', 'vand', 'torev' ], deleteTalkPageOnDelete         :       false, watchWarnings                  :       false, markAIVReportAsMinor           :       true, markSpeedyPagesAsMinor         :       true, markProdPagesAsMinor           :       true, confirmUsernameToAIV           :       true, toolboxButtons                 :       [ ] };

importScript('User:GeorgeMoney/UserScripts/hacks/FilterLinksearchMainspace'); importScript('User:GeorgeMoney/UserScripts/RemExternalLinks');

//////////////////////////////////////////////////////////////// // =-=-=- HELPER FUNCTIONS -=-=-=- function addlilink(tabs, url, name, id, title, key) { //check for duplicates if (document.getElementById(id)){return;} //cologne blue bypass if (document.getElementById('quickbar')) {  if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0]) {     addquickbarlink(url, name, id, title, 'Edit'); }  if (document.getElementById('footer') && !document.getElementById('bodyContent')) {     addfooterlink(url, name, id, title); }  return; } //monobook var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); if(id) li.id = id; li.appendChild(na); tabs.appendChild(li); if(id) {       if(key && title) {           ta[id] = [key, title]; }       else if(key) {           ta[id] = [key, '']; }       else if(title) {           ta[id] = ['', title]; }   }    // re-render the title and accesskeys from existing code in wikibits.js    akeytt; return li; }

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

function prependChild(parent, node) { parent.insertBefore(node, parent.firstChild); }

function addToolboxLink(url, name, id, key) {   if (document.getElementById('p-tb')) {var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];} addlilink(tb, url, name, id, key); }

function addTab(url, name, id, title, key) { //monobook if (document.getElementById('p-cactions')) {var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];} //cologneblue else { if (document.getElementById('quickbar')) {var tabs = document.getElementById('quickbar').getElementsByTagName('h6')[2];} if (document.getElementById('footer')) {var tabs = document.getElementById('footer').getElementsByTagName('td')[0];} return addquickbarlink(url, name, id, 'Edit'); }     return addlilink(tabs, url, name, id, title, key); }

/////////////// //cologneblue tab/link adder function addquickbarlink(url, name, id, title, header) { var header = ' ' + header + ' '; var tabs = document.getElementById('quickbar'); if (tabs.innerHTML.indexOf(header) ==-1) {return;} var add_html = ' ' + name + ' '; var section_html = tabs.innerHTML.split(header)[1].split(' ')[0]; var next_section = ' ' + tabs.innerHTML.split(header)[1].split(' ')[1].split(' ')[0] + ' '; tabs.innerHTML = tabs.innerHTML.split(header)[0] + header + section_html + add_html + next_section + tabs.innerHTML.split(next_section)[1]; }

function addfooterlink(url, name, id, title) { var tabs = document.getElementById('footer').getElementsByTagName('td')[1]; var add_html = ' ' + name + ' '; tabs.innerHTML = add_html + ' | ' + tabs.innerHTML; } ///////////////

function addLink(where, url, name, id, title, key, after){ var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); if(id) li.id = id; li.appendChild(na); var tabs = document.getElementById(where).getElementsByTagName('ul')[0]; if(after) { tabs.insertBefore(li,document.getElementById(after)); } else { tabs.appendChild(li); }   if(id) { if(key && title) { ta[id] = [key, title]; } else if(key) { ta[id] = [key, '']; } else if(title) { ta[id] = ['', title];} }   // re-render the title and accesskeys from existing code in wikibits.js    akeytt; return li; } /////////////////////////////////////////////

/**** Add generic tab ****/

function addlilink_simple(tabs, url, name, id){ var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.appendChild(na); tabs.appendChild(li); return li; }

function addlimenu(tabs, name, id) {   var na = document.createElement('a'); na.href = '#'; var mn = document.createElement('ul'); na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.className = 'tabmenu'; li.appendChild(na); li.appendChild(mn); tabs.appendChild(li); return li; }

///////// //These are simplier versions of the above, except they add the links on top, not on botton function addnavbox_link(URL,Name,ID) { //cologne blue bypass if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0]) {     var tabs = document.getElementById('quickbar'); addquickbarlink(URL, Name, ID, Name, 'Browse'); return; } //monobook var portlet = document.getElementById('p-navigation'); var links = portlet.getElementsByTagName('ul')[0]; links.innerHTML += '' + Name + ''; } //////////

function URLEncoding(input) {       var encodedInputString=escape(input); encodedInputString=encodedInputString.replace(/\+/g, "%2B"); encodedInputString=encodedInputString.replace(/\//g,"%2F"); encodedInputString=encodedInputString.replace(/&/g,"%26"); var outputurl=encodedInputString; return outputurl; }

function toRegExp(what) { what = what.replace(/\\/g,"\\\\"); what = what.replace(/\(/g,"\\(").replace(/\)/g,"\\)"); what = what.replace(/\{/g,"\\{").replace(/\}/g,"\\}"); what = what.replace(/\[/g,"\\[").replace(/\]/g,"\\]"); what = what.replace(/\|/g,"\\|"); what = what.replace(/\./g,"\\."); what = what.replace(/\$/g,"\\$"); what = what.replace(/\+/g,"\\+"); what = what.replace(/\^/g,"\\^"); what = what.replace(/\?/g,"\\?"); what = what.replace(/\*/g,"\\*"); what = what.replace(/\//g,"\\/"); return what; }

if (document.implementation.createDocument) {var gml_xmlparser = new DOMParser;}

function standard_XMLParse(string) { if (document.implementation.createDocument) {   return gml_xmlparser.parseFromString(string, "text/xml"); }  else if (window.ActiveXObject) {   string = string.replace(//, ''); rer = string.match(//)[0].replace(/&/g, '&'); if (rer) {string = string.replace(//, rer);} var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM"); gml_xmldoc.async = false; ret = gml_xmldoc.loadXML(string); myErr = gml_xmldoc.parseError; if (myErr.errorCode || !ret) {			showError("Error: " + ERROR_XML + myErr.reason); return null; }		return gml_xmldoc.documentElement } return null; }

function HTTPClient { var xml_http = false; if(window.XMLHttpRequest) xml_http = new XMLHttpRequest; else if (IE){ try{ xml_http = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ try{ xml_http = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } }	if (!xml_http) showError(ERROR_XML); return xml_http };

//

function add_text { var target = unescape(location.href.split('&jstext=')[1].split('&')[0]); var f = document.editform, t = f.wpTextbox1; if (t.value.search(//) ==-1) return; t.value = t.value.replace(//g,target); f.wpSummary.value += "JS: adding " + target; }

//

//A clock that autoupdates //From the user scripts project $(loadclock) function loadclock { //monobook if (document.getElementById('pt-userpage')) {     var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0]; addlilink(toplinks, '/w/index.php?title=' + wgPageName.replace(/&/g,'%26') + '&action=purge', '', 'utcdate'); } //cologneblue else if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0]) {      var toplinks = document.getElementById('quickbar'); addquickbarlink('/w/index.php?title=' + wgPageName.replace(/&/g,'%26') + '&action=purge', 'Current time', 'utcdate','Browse') }   showtime; }

function showtime {   var timerID; var now = new Date; var timeValue = now.toUTCString.substring(0,22) + " UTC"; if (document.getElementById('utcdate')) {document.getElementById('utcdate').firstChild.innerHTML = timeValue;} timerID = setTimeout('showtime', 1000); } // END

document.getElementById('ca-addsection').firstChild.textContent = "+";