User:Jossi/monobook.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
//Interiot's javascript edit counter if (document.title.indexOf('User:Interiot/Tool2/code.js') != -1) { document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Interiot/Tool2/code.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } // install [[User:Cacycle/diff]] text diff code document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/diff.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); // install [[User:Pilaf/Live_Preview]] page preview tool document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); // install [[User:Cacycle/editor]] edit tool document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); //<nowiki> // [[User:Lupin/popups.js]] - please include this line document.write('<script type="text/javascript" src="' + 'http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js' + '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); simplePopups=true; function addlilink(tabs, url, name){ var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.appendChild(na); tabs.appendChild(li); return li; } ////////////////////////////////////////// // Tabs by Korath // returns <li><a href="url">name</a></li> ///////////////////////////////////////// function addlilink(url, name) { var na = document.createElement('a'); na.setAttribute('href', url); var txt = document.createTextNode(name); na.appendChild(txt); var li = document.createElement('li'); li.appendChild(na); return li; } // appends msg to the currently-editted page, sets the summary to summ, // and marks or unmarks the Watch this page checkbox according to watch. function edit_summary_watch(msg, summ, watch, line) { var f = document.editform, t = f.wpTextbox1; if ((t.value.length > 0) && (line == 1)) t.value += '\n'; t.value += msg; f.wpSummary.value = summ; f.wpWatchthis.checked = watch; } function vfddelete(){ document.forms.deleteconfirm.wpReason.value = '[[Wikipedia:Articles for deletion/' + unescape(window.location.href.replace(/^.*\?title=([^&]+)&action=delete.*$/, '$1').replace(/_/g, ' ')).replace(/^(Talk|Wikipedia( talk)?):/, '') + ']]'; } // adds various tabs to call the above function add_tabs() { var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; // Only add for pages with "Editing User talk:" somewhere in the title if (document.title.indexOf("Editing User talk:") != -1) { tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:User:Jossi/Welcome}} ~" + "~" + "~" + "~", "{{" + "welcome}}", false, 1)',"Welc")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:User:Jossi/welcomeip}} ~" + "~" + "~" + "~", "{{welcomeip}}", false, 1)',"WelcIP")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:bv-n|}} ~" + "~" + "~" + "~\n", "warning", false, 1)',"BV")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test-n|}} ~" + "~" + "~" + "~\n", "Your test", false, 1)',"T1")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test2-n|}} ~" + "~" + "~" + "~\n", "2nd Warning", false, 1)',"T2")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test2a-n|}} ~" + "~" + "~" + "~\n", "2nd Warning", false, 1)',"T2a")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test2b}} ~" + "~" + "~" + "~\n", "2nd Warning", false, 1)',"T2b")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test3-n|}} ~" + "~" + "~" + "~\n", "3rd Warning", false, 1)',"T3")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test4}} ~" + "~" + "~" + "~\n", "Last warning before block", false, 1)',"T4")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:test5}} ~"+ "~" + "~" + "~\n", "Blocked for vandalism of Wikipedia", false, 1)',"T5")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:vblock|period" + "}}", "Blocked for vandalism of Wikipedia", false, 1)',"BL")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:nothanks-sd|pg=page|url=source}}~" + "~" + "~" + "~\n", "{{" + "nothanks}}", false, 1)',"NT")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:spam1}} ~" + "~" + "~" + "~\n", "{{" + "spam1}}", false, 1)',"S1")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:spam2}} ~" + "~" + "~" + "~\n", "{{" + "spam2}}", false, 1)',"S2")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:rvfd}} ~" + "~" + "~" + "~\n", "{{" + "rvfd}}", false, 1)',"RVFD")); tabs.appendChild(addlilink('javascript:edit_summary_watch("{{" + "subst:blanking}} ~" + "~" + "~" + "~\n", "{{" + "blanking}}", false, 1)',"Blank")); } if(document.title.indexOf("Confirm delete - Delete") != -1) { tabs.appendChild(addlilink('javascript:vfddelete()', 'VFD', '')); } } if (window.addEventListener) window.addEventListener("load", add_tabs, false); else if (window.attachEvent) window.attachEvent("onload", add_tabs); function hidevfd(){ var divs = document.getElementsByTagName("div"); for(var x = 0; x < divs.length; ++x) if(divs[x].className.indexOf("vfd") != -1) divs[x].style.display = "none"; document.getElementById('footer').style.display = 'none'; } function showvfd(){ var divs = document.getElementsByTagName("div"); for(var x = 0; x < divs.length; ++x) if(divs[x].className.indexOf("vfd") != -1) divs[x].style.display = ""; document.getElementById('footer').style.display = ''; } function vfdlinks(){ var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; if(document.title.indexOf("Wikipedia:Articles for deletion") == 0){ add_link2('javascript:hidevfd()', 'hide'); add_link2('javascript:showvfd()', 'show'); } } if (window.addEventListener) window.addEventListener("load",vfdlinks,false); else if (window.attachEvent) window.attachEvent("onload",vfdlinks); /////////////////////////////////////////////////////////////////// // AutoVFD by Korath // This needs to change depending on skin used. ////////////////////////////////////////////////////////////////// function add_link2(url, name) { var na = document.createElement('a'); na.setAttribute('href', url); na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.appendChild(na); var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; tabs.appendChild(li); } function strip_namespace(target) { var colon = target.indexOf(':'); if (colon != -1) { var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category'); var ns = target.substring(0, colon); if (ns == '' || ns == 'Talk') return target.substring(colon + 1); else for (var i = 0; i < spaces.length; ++i) { if (ns == spaces[i] || ns == spaces[i] + '_talk') return target.substring(colon + 1); } } return target; } function copyvio() { document.editform.wpTextbox1.value = '{' + '{' + 'copyvio|url=}}'; document.editform.wpSummary.value = 'copyvio'; var target = document.editform.action; target = target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit')); var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); var date = new Date(); date = months[date.getUTCMonth()] + '_' + date.getUTCDate(); var pagename = strip_namespace(target); window.open('/w/index.php?title=Wikipedia:Copyright_problems&action=edit&fakeaction=copyviolist&faketarget=' + pagename, 'status,toolbar,location,menubar,directories,resizeable,scrollbars'); } function autocopyvio() { if (document.title.indexOf('Editing ') == 0) { var action = ''; var target = ''; if (location.search) { var l = location.search.substring(1).split('&'); for (var i = 0; i < l.length; ++i) { var eq = l[i].indexOf('='); var name = l[i].substring(0, eq); if (name == 'fakeaction') action = l[i].substring(eq + 1); else if (name == 'faketarget') target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' '); } } if (action == 'copyviolist') { var index = document.editform.wpTextbox1.value.lastIndexOf("\n==Footer=="); if (index == -1) { window.alert("Couldn't find footer\n\n"); } else { var firsthalf = document.editform.wpTextbox1.value.substr(0,index); var secondhalf = document.editform.wpTextbox1.value.substr(index); document.editform.wpTextbox1.value = firsthalf + '*' + '[[' + target + ']]' + ' from [' + '] ~' + '~~' + '~\n' + secondhalf; // document.editform.wpTextbox1.SelectionStart = document.editform.wpTextbox1.Text.Length; // document.editform.wpTextbox1.SelectionLength = 0; // document.editform.wpTextbox1.ScrollToCaret(); document.editform.wpSummary.value = 'Copyvio ' + '[[' + target + ']]'; } } //else // add_link2('javascript:copyvio()', 'copyvio'); } } if (window.addEventListener) window.addEventListener('load', autocopyvio, false); else if (window.attachEvent) window.attachEvent('onload', autocopyvio); function vfd() { document.editform.wpTextbox1.value = '{' + '{' + 'subst:afd}}\n' + document.editform.wpTextbox1.value; document.editform.wpSummary.value = 'AfD'; document.editform.wpWatchthis.checked = true; var target = document.editform.action; target = target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit')); var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); var date = new Date(); date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate(); var pagename = strip_namespace(target); window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/' + pagename + '&action=edit&fakeaction=vfdsub&faketarget=' + target, 'Vfd ' + unescape(target), 'status,toolbar,location,menubar,directories,resizable,scrollbars'); window.open('/w/index.php?title=Wikipedia:Articles_for_deletion/Log/' + date + '&action=edit&fakeaction=vfdlist&faketarget=' + pagename, 'VfdLog ' + unescape(target), 'status,toolbar,location,menubar,directories,resizable,scrollbars'); } function closevfd(result) { if(result == 1) { document.editform.wpTextbox1.value = "{{" + "subst:afd top}} \'\'\'KEEP\'\'\'. -~" + "~" + "~" + "~\n" + document.editform.wpTextbox1.value; edit_summary_watch("{{" + "subst:afd bottom}}", "close - keep", false, 0); } else if(result == 2) { document.editform.wpTextbox1.value = "{{" + "subst:afd top}} \'\'\'MERGE\'\'\' to \'\' \'\'. -~" + "~" + "~" + "~\n" + document.editform.wpTextbox1.value; edit_summary_watch("{{" + "subst:afd bottom}}", "close - merge+redir", false, 0); } else if(result == 3) { document.editform.wpTextbox1.value = "{{" + "subst:afd top}} \'\'\'REDIRECT\'\'\' to \'\' \'\'. -~" + "~" + "~" + "~\n" + document.editform.wpTextbox1.value; edit_summary_watch("{{" + "subst:afd bottom}}", "close - redir", false, 0); } else if (result ==4) { document.editform.wpTextbox1.value = "{{" + "subst:afd top}} \'\'\'DELETE\'\'\'. -~" + "~" + "~" + "~\n" + document.editform.wpTextbox1.value; edit_summary_watch("{{" + "subst:afd bottom}}", "close - delete", false, 0); } else if (result ==5) { document.editform.wpTextbox1.value = "{{" + "subst:afd top}} \'\'\'NO CONSENSUS\'\'\'. -~" + "~" + "~" + "~\n" + document.editform.wpTextbox1.value; edit_summary_watch("{{" + "subst:afd bottom}}", "close - no consensus", false, 0); } } function vfdvote(vote) { if (vote == 1) edit_summary_watch("*\'\'\'Delete\'\'\' -~"+"~"+"~"+"~", document.editform.wpSummary.value + "delete", true, 0); else if (vote == 2) edit_summary_watch("*\'\'\'Keep\'\'\' -~"+"~"+"~"+"~", document.editform.wpSummary.value + "keep", true, 0); else if (vote == 3) edit_summary_watch("*\'\'\'Merge\'\'\' -~"+"~"+"~"+"~", document.editform.wpSummary.value + "merge", true, 0); else if (vote == 4) edit_summary_watch("*\'\'\'Redirect\'\'\' -~"+"~"+"~"+"~", document.editform.wpSummary.value + "redirect", true, 0); } function vfdtalk(result) { boiler1 = "=" + "=Articles for Deletion debate=" + "=\nThis article "; boiler2 = " an [" + "[Wikipedia:Articles for deletion|Articles for Deletion]" + "] debate. The discussion can be found [" + "[Wikipedia:Articles for deletion/{" + "{subst" + ":PAGENAME}" + "}|here]" + "]. -~" + "~" + "~" + "~"; if(result == 1) edit_summary_watch(boiler1 + "survived" + boiler2, document.editform.wpSummary.value + "link to AfD", false, 0); else if (result == 2) edit_summary_watch(boiler1 + "was merged with and redirected to \'\' \'\' as a result of" + boiler2, document.editform.wpSummary.value + "link to AfD", false, 0); else if (result == 3) edit_summary_watch(boiler1 + "was redirected to \'\' \'\' as a result of" + boiler2, document.editform.wpSummary.value + "link to AfD", false, 0); } function deletiontags() { if (document.title.indexOf("Editing Wikipedia:Votes for deletion") != -1 || document.title.indexOf("Editing Wikipedia:Pages for deletion") != -1 || document.title.indexOf("Editing Wikipedia:Articles for deletion") != -1) { add_link2('javascript:vfdvote(1)', 'v - d'); add_link2('javascript:vfdvote(2)', 'v - k'); add_link2('javascript:vfdvote(3)', 'v - m'); add_link2('javascript:vfdvote(4)', 'v - r'); add_link2('javascript:closevfd(1)', 'c - k'); add_link2('javascript:closevfd(2)', 'c - m'); add_link2('javascript:closevfd(3)', 'c - r'); add_link2('javascript:closevfd(4)', 'c - d'); add_link2('javascript:closevfd(5)', 'c - nc'); } else if (document.title.indexOf("Editing Wikipedia:Votes for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Pages for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Articles for deletion") == -1 && document.title.indexOf("Editing Talk:") == -1 && document.title.indexOf("Editing User talk:") == -1) { add_link2('javascript:vfd()', 'vfd'); add_link2('javascript:copyvio()', 'copyvio'); } else if (document.title.indexOf("Editing Wikipedia:Votes for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Pages for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Articles for deletion") == -1 && document.title.indexOf("Editing Talk:") != -1 && document.title.indexOf("Editing User talk:") == -1) { add_link2('javascript:vfdtalk(1)','afd - k'); add_link2('javascript:vfdtalk(2)','afd - m'); add_link2('javascript:vfdtalk(3)','afd - r'); } } function autovfd() { if (document.title.indexOf('Editing ') == 0) { var action = ''; var target = ''; if (location.search) { var l = location.search.substring(1).split('&'); for (var i = 0; i < l.length; ++i) { var eq = l[i].indexOf('='); var name = l[i].substring(0, eq); if (name == 'fakeaction') action = l[i].substring(eq + 1); else if (name == 'faketarget') target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' '); } } if (action == 'vfdlist') { document.editform.wpTextbox1.value += '{{' + 'subst:afd3|pg=' + target + '}}\n'; document.editform.wpSummary.value = '[[Wikipedia:Articles for deletion/' + target + ']]'; document.editform.wpWatchthis.checked = false; } else if (action == 'vfdsub') { if (document.editform.wpTextbox1.value.length > 0) { target = document.editform.action; target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' '); window.alert("There's an old vfd at the default location already.\n\n" + 'Please either move it out of the way (and update existing links to it), or file the Vfd by hand in another location (such as [[' + target + ' (2)]]).'); } else { document.editform.wpTextbox1.value += "{{" + "subst:afd2|pg=" + target + "|text=\'\'\'Delete\'\'\'}} -~" + "~" + "~" + "~"; document.editform.wpSummary.value = 'Nominate'; document.editform.wpWatchthis.checked = true; } } else deletiontags(); } } if (window.addEventListener) window.addEventListener('load', autovfd, false); else if (window.attachEvent) window.attachEvent('onload', autovfd); // Returns <li><a href="url">name</a></li> function addlilink(url, name) { var na = document.createElement('a'); na.setAttribute('href', url); var txt = document.createTextNode(name); na.appendChild(txt); var li = document.createElement('li'); li.appendChild(na); return li; } //function do_onload() //{ // if (document.title.indexOf('User:') == 0 // || document.title.indexOf('User talk:') == 0) // add_block_tab(); //} // Adds a "blocklog" tab and fills in the username field on Special:Blockip, if a "&faketarget=username" is present. function do_blockip_stuff() { // focus on Reason field document.getElementsByName('wpBlockReason')[0].focus(); // Look for a &faketarget= for the username/ip var l = location.search.substring(1).split('&'); var target = ''; for (var i = 0; i < l.length; ++i) { var n = l[i].indexOf('='); if (l[i].substring(0, n) == 'faketarget') { target = l[i].substring(n + 1); break; } } if (target == '') return; // put account name in "IP Address/username" field var addr = document.getElementsByName('wpBlockAddress')[0]; addr.value = unescape(target); // add "blocklog" tab var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target, 'blocklog')); } // Opens the block log in the current window, and Special:Blockip in a popup. // Width, height, top, and left are chosen for a 1600x1200 display. function blockpage_and_log(target) { window.open('/w/index.php?title=Special%3ABlockip&faketarget=' + target, 'Block', 'width=1400,height=525,top=525,left=0'); document.location.href = 'http://en.wikipedia.org/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + target; } // Adds "block" and "blocklog" tabs to User: and User talk: pages. function add_block_tab() { var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; // use the "edit this page" tab to get already-tidied url var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href; // cut everything up to "title=" from the start and everything past "&action=edit" from the end editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit')); editlk = editlk.substring(editlk.indexOf(':') + 1); var slloc = editlk.indexOf('/'); if (slloc > 0) editlk = editlk.substring(0, slloc); // add "block" tab //tabs.appendChild(addlilink('/w/index.php?title=Special%3ABlockip&faketarget=' + editlk, 'block')); // To open the block page and block log simultaneously, replace the above line with: tabs.appendChild(addlilink('javascript:blockpage_and_log("' + editlk + '")', 'Block')); // and uncomment the blockpage_and_log() function above. // add "blocklog" tab tabs.appendChild(addlilink('/w/index.php?title=Special%3ALog&type=block&user=&page=User%3A' + editlk, 'blocklog')); //add "contributions" tab tabs.appendChild(addlilink('/w/wiki.phtml?title=Special:Contributions&target=User%3A' + editlk, 'contributions')); } function do_onload() { if (document.title.indexOf('User:') == 0 || document.title.indexOf('User talk:') == 0) add_block_tab(); else if (document.title.indexOf('Block user') == 0) // could stand to be more robust do_blockip_stuff(); } if (window.addEventListener) window.addEventListener("load", do_onload, false); else if (window.attachEvent) window.attachEvent("onload", do_onload); if ( document.createElement && window.addEventListener ) { function SoFixItInit() // pre-load, (don't want to slow down loading of article's content, though) { } function SoFixItLoad() // post-load { UserMenu = new PortletMenu( 'p-personal' ); PageMenu = new PortletMenu( 'p-cactions' ); NavMenu = new PortletMenu( 'p-navigation' ); //ToolMenu = new PortletMenu( 'p-tb' ); // This is inefficient and not particularly robust. // This comes first, I want this link to come up as // fast as possible. // function GetByClass( sElem, sClass ) { var i, a2 = [], a = document.getElementsByTagName( sElem ); for ( i = 0; i < a.length; i++ ) if ( a[ i ].className == sClass ) a2.push( a[ i ] ); return a2; } var a, td = GetByClass( 'td', 'diff-otitle' ); if ( ( td = td[ 0 ] ) && ( a = td.getElementsByTagName( 'a' )[ 0 ] ) ) a.href = a.href + '&action=edit'; // need to change text, later var userName = UserMenu.getText( 'pt-userpage' ); // personal (top-most) menu // // Splash Talk Prefs Watch List Contribs Kate Logs #IRC Out // UserMenu.setText( 'pt-mytalk' , 'talk' ); UserMenu.setText( 'pt-preferences', 'prefs' ); UserMenu.setText( 'pt-watchlist' , 'watch' ); UserMenu.setText( 'pt-mycontris' , 'contribs' ); UserMenu.setText( 'pt-logout' , 'out' ); // UserMenu.setHref( 'pt-mycontris', 'http://en.wikipedia.org/w/index.php?title=Special:Contributions&target=' + userName + '&offset=0&limit=500' ); // // // it seems there is a stylesheet that makes them lowercase // // ok, the lowercased menu items are starting to really bug me: // document.getElementById( 'p-personal' ).getElementsByTagName( 'ul' )[0].style.textTransform = 'none'; // UserMenu.insertBefore( 'pt-mycontris', 'pt-list', 'list', '/wiki/Special:Watchlist/edit' ); UserMenu.insertBefore( 'pt-logout' , 'pt-logs', 'logs', '/w/index.php?title=Special%3ALog&user=' + userName ); UserMenu.insertBefore( 'pt-logout' , 'pt-irc' , '#irc', 'irc://irc.freenode.net/wikipedia' ); UserMenu.insertBefore( 'pt-logs' , 'pt-kate', 'kate', 'javascript:void InlineKate( "' + userName + '" )' ); // so I always know what time it is in UTC land: // UserMenu.append( 'pt-utc', UTCTime(), 'javascript:void UserMenu.setText("pt-utc",UTCTime())' ); // article-actions menu, (the "tabs") // if ( PageMenu[ 'ca-history' ] ) // theory: if it has a history tab, then it's purgable { PageMenu.insertBefore( 'ca-history', 'ca-lastdiff', 'Last Diff', PageMenu.getHref( 'ca-history' ).replace( /action=history/, 'diff=0' ) ); PageMenu.append( 'ca-purge', 'Purge', PageMenu.getHref( 'ca-history' ).replace( /action=history/, 'action=purge' ) ); } var x = 1; //NavMenu.append( 'n-' + x++, 'monobook.js', '/wiki/User:' + userName + '/monobook.js' ); NavMenu.append( 'n-' + x++, 'Cat:Wikipedia', '/wiki/Category:Wikipedia' ); NavMenu.append( 'n-' + x++, 'Cat:Policies', '/wiki/Category:Wikipedia_policies_and_guidelines' ); NavMenu.append( 'n-' + x++, 'Cat:Official', '/wiki/Category:Wikipedia_official_policy' ); NavMenu.append( 'n-' + x++, 'Templates', '/wiki/Wikipedia:Template' ); NavMenu.append( 'n-' + x++, 'Cleanup tags', '/wiki/Wikipedia:Template_messages/Cleanup' ); NavMenu.append( 'n-' + x++, 'Stub sorts', '/wiki/Stub_types' ); } function PortletMenu( id ) // constructor { this.menu = document.getElementById( id ); this.list = this.menu.getElementsByTagName( 'ul' )[ 0 ]; // bypass "<h5>Views</h5>", etc. // sigh...as far as I can figure, there is empty whitespace being treated // as TextNodes.... // var LIs = this.list.getElementsByTagName( 'li' ); for ( var i = 0; i < LIs.length; i++ ) { this[ LIs[ i ].id ] = LIs[ i ]; } this.newItem = function( id, txt, url ) { var li = document.createElement( 'li' ); li.id = id; var a = document.createElement( 'a' ); a.href = url; a.appendChild( document.createTextNode( txt ) ); li.appendChild( a ); this[ id ] = li; // watch this!!! return li; } this.append = function( id, txt, url ) { this.list.appendChild( this.newItem( id, txt, url ) ); } this.insertBefore = function( old, id, txt, url ) { this.list.insertBefore( this.newItem( id, txt, url ), this[ old ] ); } // the ByTagName here is a bit annoying, but in Safari, I was picking // up TextNodes by using this[ id ].firstChild.firstChild // this.getText = function( id ) { return this[ id ].getElementsByTagName( 'a' )[ 0 ].firstChild.data } this.setText = function( id, txt ) { this[ id ].getElementsByTagName( 'a' )[ 0 ].firstChild.data = txt } this.getHref = function( id ) { return this[ id ].getElementsByTagName( 'a' )[ 0 ].href } this.setHref = function( id, url ) { this[ id ].getElementsByTagName( 'a' )[ 0 ].href = url } // I add em as I need em.... } function InlineKate( user ) { var kate = 'http://kohl.wikimedia.org/~kate/cgi-bin/count_edits?dbname=enwiki&user=' + user; var div = document.createElement( 'div' ); div.id = 'inlineKateDiv'; div.style.position = 'absolute'; div.style.zIndex = 1000; div.style.left = '20px'; div.style.top = '20px'; div.style.backgroundColor = '#FFFFFF'; div.style.borderStyle = 'solid'; div.style.borderWidth = ' medium'; div.style.borderColor = '#000000'; var top = document.createElement( 'div' ); top.id = 'inlineKateTop'; top.style.textAlign = 'right'; top.style.margin = '8px'; top.style.backgroundColor = '#DDDDDD'; var a = document.createElement( 'a' ); a.appendChild( document.createTextNode( "Go to Kate's" ) ); a.href = kate; a.target = '_parent'; a.style.margin = '8px'; top.appendChild( a ); a = document.createElement( 'a' ); a.appendChild( document.createTextNode( 'Close' ) ); a.href = "javascript:void RemoveNode('inlineKateDiv')"; a.style.margin = '8px'; top.appendChild( a ); div.appendChild( top ); var iframe = document.createElement( 'iframe' ); iframe.id = 'inlineKateBot'; iframe.style.width = '300px'; iframe.style.height = '400px'; iframe.style.margin = '8px'; iframe.style.borderStyle = 'solid'; iframe.style.borderWidth = 'thin'; iframe.style.borderColor = '#000000'; iframe.src = kate; div.appendChild( iframe ); document.body.appendChild( div ); } function RemoveNode( id ) { var node = document.getElementById( id ) node.parentNode.removeChild( node ); } function UTCTime() { // Get a date stamp for the time in UTC-land. // // for the future: a format arg // var s = '', d = new Date(), a = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' '); return d.getUTCDate() + ' ' + a[ d.getUTCMonth() ] + ' ' + d.getUTCFullYear() + ' ' + ( '0' + d.getUTCHours() ).substr( -2 ) + ':' + ( '0' + d.getUTCMinutes() ).substr( -2 ) + ' ' + 'UTC'; } SoFixItInit(); window.addEventListener( 'load', SoFixItLoad, false ); } // Released into the public domain by [[User:Func]] function NUPatrol() { if ( window.location.href.indexOf( 'Special:Log/newusers' ) < 0 && window.location.href.indexOf( '&type=newusers' ) < 0 ) return; var items, item, i, links, user, name, talk, contribs, insertLoc, link; items = document.getElementById( 'bodyContent' ).getElementsByTagName( 'ul' )[ 0 ].getElementsByTagName( 'li' ); function NewLink( txt, url, plainlinks, linkColor ) { var a = document.createElement( 'a' ); a.appendChild( document.createTextNode( txt ) ); a.href = url; if ( plainlinks ) a.className = 'plainlinks'; if ( linkColor ) { if ( typeof linkColor == "string" ) a.style.color = linkColor; else a.style.color = '#FF0000'; // old default behavior } return a; } for ( i = 0; i < items.length; i++ ) { item = items[ i ]; links = item.getElementsByTagName( 'a' ); user = links[ 0 ]; name = user.firstChild.nodeValue; talk = links[ 2 ]; talk.firstChild.nodeValue = 'talk'; // lowercase 'Talk' for consistency contribs = links[ 3 ]; insertLoc = user.nextSibling; // ' newusers ' item.insertBefore( document.createTextNode( ' ( ' ), insertLoc ); item.insertBefore( talk, insertLoc ); item.insertBefore( document.createTextNode( ', ' ), insertLoc ); item.insertBefore( contribs, insertLoc ); item.insertBefore( document.createTextNode( ', ' ), insertLoc ); item.insertBefore( NewLink( 'actions', '/w/index.php?title=Special%3ALog&user=' + name, true, '#000088' ), insertLoc ); item.insertBefore( document.createTextNode( ', ' ), insertLoc ); item.insertBefore( NewLink( 'blocks', '/w/index.php?title=Special%3ALog&type=block&page=User%3A' + name, true, '#008800' ), insertLoc ); item.insertBefore( document.createTextNode( ', ' ), insertLoc ); item.insertBefore( NewLink( 'is blocked?', '/wiki/Special:Ipblocklist?action=search&ip=' + name, true, '#888800' ), insertLoc ); item.insertBefore( document.createTextNode( ', ' ), insertLoc ); item.insertBefore( NewLink( 'do block!', '/w/index.php?title=Special:Blockip&ip=' + name, true, '#880000' ), insertLoc ); item.insertBefore( document.createTextNode( ' )' ), insertLoc ); item.removeChild( insertLoc.nextSibling ); // should remove the span item.removeChild( insertLoc ); // should remove ' newusers ' text } } if ( window.addEventListener ) window.addEventListener( 'load', NUPatrol, false ); else if ( window.attachEvent ) window.attachEvent( 'onload', NUPatrol ); //</nowiki>