User:Fischersc/monobook.js: Difference between revisions
Appearance
Content deleted Content added
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
// [[User:Lupin/popups.js]] |
|||
//* <nowiki> */ |
|||
// [[User:Lupin/popups.js]] - please include this line |
|||
simplePopups = true; |
|||
popupAdminLinks = true; |
|||
popupStructure='menus'; |
|||
document.write('<script type="text/javascript" src="' |
document.write('<script type="text/javascript" src="' |
||
+ 'http://en.wikipedia.org/enwiki/w/index.php?title=User:Lupin/popups.js' |
+ 'http://en.wikipedia.org/enwiki/w/index.php?title=User:Lupin/popups.js' |
||
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>'); |
||
//********************************* Show Last Diff ********************************* |
|||
//From User:JesseW/monobook.js (i.e. me) |
|||
function doLastDiff() { |
|||
z=document.getElementById("content").childNodes; |
|||
for (var n=0;n<z.length;n++) { |
|||
if (z[n].className=="firstHeading") { |
|||
var pname=textContent(z[n]); |
|||
}; |
|||
}; |
|||
var nurl="http://en.wikipedia.org/enwiki/w/index.php?title=" + pname + "&diff=cur&oldid=prev"; |
|||
document.location=nurl |
|||
} |
|||
//**************************** Tag images as {unverifiedimage} ****************************** |
|||
//From User:JesseW/monobook.js (i.e. me) |
|||
function doPUI() { |
|||
if (/title=Image:.*&action=edit/.test(document.location.href)) { |
|||
var form = document.editform; |
|||
form.wpTextbox1.value = form.wpTextbox1.value + "{"+"{PUI}}" |
|||
form.wpSummary.value += "{{PUI"; |
|||
//form.wpMinoredit.checked = true; |
|||
} |
|||
else if (/&action=edit/.test(document.location.href)) { |
|||
var form = document.editform; |
|||
if (/\[\[Image:/.test(form.wpTextbox1.value)) { |
|||
form.wpTextbox1.value = form.wpTextbox1.value.replace(/(\[\[Image:.+)\]\]/, "$1|thumb|{{unverifiedimage}}]]"); |
|||
form.wpSummary.value += "{{unverifiedimage"; |
|||
form.wpMinoredit.checked = true; |
|||
}; |
|||
} |
|||
} |
|||
//************************************ Next item in list ************************************ |
|||
//From User:JesseW/monobook.js (i.e. me) |
|||
function doNextItem() { |
|||
if (/lastpage=/.test(document.location)) { |
|||
var oldone=unescape(/lastpage=(.+)$/(document.location)[1]); |
|||
var z=document.links, nextone=0; |
|||
for (var n=0; n<z.length; n++) { |
|||
if (nextone==1 & z[n].innerHTML=="diff") { |
|||
oldone=String(z[n].href); |
|||
break; |
|||
}; |
|||
if (z[n].href==oldone) { nextone=1; } |
|||
}; |
|||
var baseul=new String(document.location); |
|||
baseul=baseul.replace(/[&?]lastpage=.+$/,""); |
|||
document.location=oldone+"&basepage="+escape(baseul); |
|||
}; |
|||
if (/basepage=/.test(document.location)) { |
|||
ul=new String(document.location); |
|||
nul=unescape(/basepage=(.+)$/(document.location)[1])+"?lastpage="+escape(ul.replace(/&basepage=.+$/,"")); |
|||
addlilink(document.getElementById("p-cactions").getElementsByTagName("ul")[0],nul,"Next one",""); |
|||
}; |
|||
}; |
|||
function startNextItem() { |
|||
var z=document.links; |
|||
for (var n=0;n<z.length;n++) { |
|||
if (z[n].innerHTML=="diff") { |
|||
oldone=String(z[n].href); |
|||
break;}}; |
|||
baseul=new String(document.location); |
|||
baseul=baseul.replace(/[&?]lastpage=.+$/,""); |
|||
document.location=oldone+"&basepage="+escape(baseul); |
|||
} |
|||
//************************************ Changes since I last edited **************************** |
|||
//From User:JesseW/monobook.js (i.e. me) |
|||
function addSinceTab() { |
|||
if (window.location.href.indexOf("&action=history&gotosince=true")!=-1) { |
|||
do_since_I_last_edited() |
|||
} |
|||
else if (!/Special:/.test(window.location.href)) { |
|||
var thetitle=document.title.slice(0, String(document.title).indexOf(" - ")); |
|||
var l=addLink('p-cactions', "/enwiki/w/index.php?title="+thetitle+"&action=history&gotosince=true", 'since', 'ca-since', 'Changes since I last edited', '', ''); |
|||
} |
|||
else { dump("Since error!"); } |
|||
} |
|||
function do_since_I_last_edited() { |
|||
var csub=document.getElementById("contentSub"); |
|||
var msg=document.createElement("p"); |
|||
msg.appendChild(document.createTextNode |
|||
("Parsing history... please wait...")); |
|||
msg.className="error"; |
|||
csub.insertBefore(msg, csub.firstChild) |
|||
var username=textContent(document.getElementById("pt-userpage")); |
|||
var hists=document.getElementById("pagehistory").childNodes; |
|||
for (n=0;n<hists.length;n++) { |
|||
if (hists[n].getElementsByTagName && textContent(hists[n].getElementsByTagName("span")[0])==username) { |
|||
document.location=hists[n].childNodes[1].href; |
|||
return; |
|||
} |
|||
} |
|||
msg.replaceChild(document.createTextNode |
|||
("You have not edited this page! (recently)"), |
|||
msg.firstChild); |
|||
} |
|||
//****************** Fix Diff Overflow ******************************* |
|||
//From: http://en.wikipedia.org/enwiki/w/index.php?title=User:CesarB/monobook.js&oldid=20012672 |
|||
//Reorganized(changed from 3 functions to one) (fixed duped variables, switched from string to regex className comparis. |
|||
function cesarb_fixDiffOverflowLoadListener(evt) |
|||
{ |
|||
var tables = document.getElementsByTagName("table"); |
|||
loop: |
|||
for (var i = 0; i < tables.length; i++) { |
|||
var table = tables[i]; |
|||
var classes = table.className.split(" "); |
|||
for (var j = 0; j < classes.length; j++) { |
|||
if (classes[j] == "diff") { |
|||
var cells = table.getElementsByTagName("td"); |
|||
for (var k = 0; k < cells.length; k++) { |
|||
var cell = cells[k]; |
|||
var classes2 = cell.className.split(" "); |
|||
for (var l = 0; l < classes2.length; l++) { |
|||
var tc=classes2[l]; |
|||
if (/diff-(context|addedline|deletedline|otitle|ntitle)/.test(classes2[l])) { |
|||
var div = document.createElement("div"); |
|||
div.style.overflow = "auto"; |
|||
cell.insertBefore(div, cell.firstChild); |
|||
while (div.nextSibling) { |
|||
div.appendChild(div.nextSibling); |
|||
} |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
break loop; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
//****************** Are you sure you don't want a Summary? ******************************* |
|||
//From http://en.wikipedia.org/enwiki/w/index.php?title=User:ABCD/monobook.js&oldid=19452182 |
|||
function addForceSummary(){ |
|||
if(!/&action=edit/.test(window.location.href)) return; |
|||
if(/§ion=new/.test(window.location.href)) return; |
|||
if(!document.forms.editform) return; |
|||
document.forms.editform.wpSave.onclick = forceSummary; |
|||
} |
|||
function forceSummary(){ |
|||
var form = document.forms.editform; |
|||
if(!form.wpSummary.value.replace(/^(\/\*.*\*\/)? *(.*) *$/,'$2')){ |
|||
var r = prompt('Are you sure you want to submit without adding a summary?\nTo add a summary, type it in the box below:',form.wpSummary.value); |
|||
if(r == null) return false; |
|||
form.wpSummary.value = r; |
|||
} |
|||
return true; |
|||
} |
|||
//************************************ Edit lead section ***************************** |
|||
//From http://en.wikipedia.org/enwiki/w/index.php?title=Wikipedia:WikiProject_User_scripts/Scripts/Add_edit_section_0&oldid=21025437 |
|||
function addEditSection0() { |
|||
ta['ca-edit-0'] = ['', 'Edit the zeroth section of this page']; |
|||
if (!document.getElementById) return; |
|||
x = document.getElementById('ca-edit'); |
|||
if(!x) return; |
|||
y = document.createElement('LI'); |
|||
y.id = 'ca-edit-0'; |
|||
if (x.className == 'selected') { |
|||
if (/&action=edit§ion=0$/.test(window.location.href)) { |
|||
x.className = 'istalk'; |
|||
y.className = 'selected'; |
|||
} else { |
|||
x.className = 'selected istalk'; |
|||
} |
|||
} else if (x.className == 'selected istalk') { |
|||
if (/&action=edit§ion=0$/.test(window.location.href)) { |
|||
x.className = 'istalk'; |
|||
y.className = 'selected istalk'; |
|||
} else { |
|||
y.className = 'istalk'; |
|||
} |
|||
} else { |
|||
y.className = x.className; |
|||
x.className = 'istalk'; |
|||
} |
|||
z = document.createElement('A'); |
|||
if (x.children) { |
|||
z.href = x.children[0].href + '§ion=0'; |
|||
z.appendChild(document.createTextNode('0')); |
|||
y.appendChild(z); |
|||
document.getElementById('p-cactions').children[1].insertBefore(y,x.nextSibling); |
|||
} else { |
|||
z.href = x.childNodes[0].href + '§ion=0'; |
|||
z.appendChild(document.createTextNode('0')); |
|||
y.appendChild(z); |
|||
document.getElementById('p-cactions').childNodes[3].insertBefore(y,x.nextSibling); |
|||
} |
|||
} |
|||
//************************************ Purge cache tab ***************************** |
|||
//From http://en.wikipedia.org/enwiki/w/index.php?title=User:Trilobite/Tools&oldid=17855224 |
|||
//Renamed by me. |
|||
function addPurgeTab() { |
|||
ta['ca-purge'] = ['g', 'Purge the internal cache for this page']; |
|||
if(!document.getElementById) return; |
|||
var x = document.getElementById('ca-history'); |
|||
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; |
|||
if(!x) return; |
|||
if(x.children) x = x.children[0]; |
|||
else x = x.childNodes[0]; |
|||
addlilink(tabs, x.href.replace(/=history/, "=purge"), 'purge', 'ca-purge'); |
|||
} |
|||
//************************************ Regexp replace tab ************************************ |
|||
//From http://en.wikipedia.org/enwiki/w/index.php?title=User:Trilobite/Tools&oldid=17855224 |
|||
//Renamed by me. |
|||
function regexpReplaceTab() { |
|||
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; |
|||
if(document.title.indexOf("Editing ") == 0) addLink('p-cactions', 'javascript:replace()', 'replace', 'ca-replace', 'Regexp replace for the edit window', '', 'ca-history'); |
|||
} |
|||
function replace() { |
|||
var s = prompt("Search regexp?"); |
|||
if(s) { |
|||
var r = prompt("Replace regexp?"); |
|||
if(!r && r != '') return; |
|||
var txt = document.editform.wpTextbox1; |
|||
txt.value = txt.value.replace(new RegExp(s, "g"), r); |
|||
} |
|||
} |
|||
//************************************ Tabs at bottom ************************************ |
|||
function tabsAtBottom() { |
|||
var tabs = document.getElementById('p-cactions').cloneNode(true); |
|||
tabs.id = 'bottom-p-cactions'; |
|||
var listitems = tabs.getElementsByTagName('LI'); |
|||
for (var i=0;i<listitems.length;i++) { |
|||
if(listitems[i].id) listitems[i].id = 'bottom-' + listitems[i].id; |
|||
} |
|||
document.getElementById('column-content').appendChild(tabs); |
|||
} |
|||
//************************************ Live Preview **************************************** |
|||
// Local copy of Live Preview script... |
|||
// Last update: 21:51, 15 Feb 2005 (UTC) |
|||
// Script to embed Live Preview in MediaWiki's edit page |
|||
function LivePreviewInstall() |
|||
{ |
|||
copywarn = document.getElementById('editpage-copywarn'); |
|||
if (copywarn != null) { |
|||
var cleaner = "<br style=\\'clear:both;\\' />"; |
|||
LivePreviewHTML = '<input type="button" value="Live Preview" onclick="document.getElementById(\'PreviewBox\').innerHTML = wiki2html(editform.wpTextbox1.value) + \'' + cleaner + '\';" />'; |
|||
//LivePreviewHTML = '<input type="button" value="Live Preview" onclick="document.getElementById(\'PreviewBox\').innerHTML = wiki2html(editform.wpTextbox1.value);" />'; |
|||
LivePreviewHTML += '<div style="margin-top: 5px; margin-bottom: 5px; padding: 5px; border: 3px double orange;" id="PreviewBox"></div>'; |
|||
copywarn.innerHTML = LivePreviewHTML + copywarn.innerHTML; |
|||
} |
|||
} |
|||
// User options |
|||
var wpUserName=wpUserName||'Wikipedian'; |
|||
var wpUserSignature=wpUserSignature||wpUserName; |
|||
var wpShowImages=wpShowImages||true; |
|||
// System options |
|||
var wpLanguageCode=wpLanguageCode||'en'; |
|||
var wpInterwikiCodes=wpInterwikiCodes||'ab|aa|af|ak|sq|als|am|ang|ar|an|arc|hy|roa-rup|as|ast|av|ay|az|bm|ba|eu|be|bn|bh|bi|bs|br|bg|my|ca|ch|ce|chr|chy|ny|zh|zh-tw|zh-cn|cho|cv|kw|co|cr|hr|cs|da|dv|nl|dz|en|eo|et|ee|fo|fj|fi|fr|fy|ff|gl|ka|de|got|el|kl|gn|gu|ht|ha|haw|he|hz|hi|ho|hu|is|io|ig|id|ia|ie|iu|ik|ga|it|ja|jv|kn|kr|csb|ks|kk|km|ki|rw|rn|tlh|kv|kg|ko|kj|ku|ky|lo|la|lv|li|ln|lt|jbo|nds|lg|lb|mk|mg|ms|ml|mt|gv|mi|minnan|mr|mh|zh-min-nan|mo|mn|mus|nah|na|nv|ne|se|no|nn|oc|or|om|pi|fa|pl|pt|pa|ps|qu|ro|rm|ru|sm|sg|sa|sc|gd|sr|sh|st|tn|sn|scn|simple|sd|si|sk|sl|so|st|es|su|sw|ss|sv|tl|ty|tg|ta|tt|te|th|bo|ti|tpi|to|tokipona|ts|tum|tr|tk|tw|uk|ur|ug|uz|ve|vi|vo|wa|cy|wo|xh|ii|yi|yo|za|zu'; |
|||
var wpBaseArticlePath=wpBaseArticlePath||'/wiki/'; |
|||
var wpMathBasePath=wpMathBasePath||'/math/'; |
|||
var wpImageBasePath=wpImageBasePath||'http:/upwiki/wikipedia/'+wpLanguageCode+'/'; |
|||
var wpImageFallbackPath=wpImageFallbackPath||'http:/upwiki/wikipedia/commons/'; |
|||
var wpDefaultThumbWidth=wpDefaultThumbWidth||180; |
|||
var wpSkinMagnifyClip=wpSkinMagnifyClip||'/skins/common/images/magnify-clip.png'; |
|||
var wpUserNamespace=wpUserNamespace||'User'; |
|||
var wpImageNamespace=wpImageNamespace||'Image'; |
|||
var wpCategoryNamespace=wpCategoryNamespace||'Category'; |
|||
// Packed code (DO NOT MODIFY) |
|||
function wiki2html(str) |
|||
{str=strip_cr(str);var w=new WikiCode();w.lines=str.split(/\n/);w.parse();return w.html;};var wpSignature='[['+wpUserNamespace+':'+wpUserName+'|'+wpUserSignature+']]';var wpBlockImage=new RegExp('^\\[\\['+wpImageNamespace+':.*?\\|.*?(?:frame|thumbnail|thumb|none|right|left|center)','i');function WikiCode() |
|||
{this.lines=new Array;this.html=new String;this._endline=function(str) |
|||
{this.html+=str;this.lines.shift();};this.parse=function() |
|||
{var p=false;do{if(h_match=this.lines[0].match(/^(={1,6})(.*)\1(.*)$/)){p=false;this._endline('<h'+h_match[1].length+'>'+_parse_inline_nowiki(h_match[2])+'</h'+h_match[1].length+'>'+h_match[3]);}else if(this.lines[0].match(/^[*#:;]/)){p=false;this._parse_list();}else if(this.lines[0].charAt(0)==' '){p=false;this._parse_pre();}else if(this.lines[0].substr(0,2)=='{|'){p=false;this._parse_table();}else if(this.lines[0].match(/^----+$/)){p=false;this._endline('<hr/>');}else if(this.lines[0].match(wpBlockImage)){p=false;this._parse_block_image();}else{if(this.lines[0]==''){if(p=(this.lines.length>1&&this.lines[1]=='')){this._endline('<p><br />');}}else{if(!p){this.html+='<p>';p=true;} |
|||
this.html+=_parse_inline_nowiki(this.lines[0])+' ';} |
|||
this.lines.shift();}}while(this.lines.length);};this._parse_list=function(){var prev=new String;var l_match,imatch,dt_match;while(this.lines.length&&(l_match=this.lines[0].match(/^([*#:;]+)(.*)$/))){this.lines.shift();imatch=str_imatch(prev,l_match[1]);for(var i=prev.length-1;i>=imatch;i--){if(prev.charAt(i)=='*'){this.html+='</ul>';}else if(prev.charAt(i)=='#'){this.html+='</ol>'}else{this.html+='</d'+((prev.charAt(i)==';')?'t':'d')+'>';switch(l_match[1].charAt(i)){case'':case'*':case'#':this.html+='</dl>';}}} |
|||
for(var i=imatch;i<l_match[1].length;i++){if(l_match[1].charAt(i)=='*'){this.html+='<ul>';}else if(l_match[1].charAt(i)=='#'){this.html+='<ol>';}else{switch(prev.charAt(i)){case'':case'*':case'#':this.html+='<dl>';} |
|||
this.html+='<d'+((l_match[1].charAt(i)==';')?'t':'d')+'>';}} |
|||
switch(l_match[1].charAt(l_match[1].length-1)){case'*':case'#':this.html+='<li>'+_parse_inline_nowiki(l_match[2]);break;case';':if(dt_match=l_match[2].match(/(.*?) (:.*?)$/)){this.html+=_parse_inline_nowiki(dt_match[1]);this.lines.unshift(dt_match[2]);break;} |
|||
case':':this.html+=_parse_inline_nowiki(l_match[2]);} |
|||
prev=l_match[1];} |
|||
for(i=prev.length-1;i>=0;i--){if(prev.charAt(i)=='*'){this.html+='</ul>';}else if(prev.charAt(i)=='#'){this.html+='</ol>';}else{this.html+='</d'+((prev.charAt(i)==';')?'t':'d')+'></dl>';}}};this._parse_table=function() |
|||
{var table_match;if(table_match=this.lines[0].match(/^\{\|( .*)$/)){this._endline('<table'+table_match[1]+'>');}else this._endline('<table>');do{if(this.lines[0].charAt(0)=='|'){switch(this.lines[0].charAt(1)){case'}':this._endline('</table>');return;case'-':this._endline('<tr '+this.lines[0].match(/\|-*(.*)/)[1]+'>');break;default:this._parse_table_data();}}else if(this.lines[0].charAt(0)=='!'){this._parse_table_data();}else{this.lines.shift();}}while(this.lines.length)};this._parse_table_data=function() |
|||
{var td_match,td_line;td_match=this.lines.shift().match(/^(\|\+|\||!)((?:([^[|]*?)\|(?!\|))?(.*))$/);if(td_match[1]=='|+'){this.html+='<caption';}else{this.html+='<t'+((td_match[1]=='|')?'d':'h');} |
|||
if(typeof td_match[3]!='undefined'){this.html+=' '+td_match[3];td_line=td_match[4].split('||');}else{td_line=td_match[2].split('||');} |
|||
this.html+='>';while(td_line.length>1){this.lines.unshift(td_match[1]+td_line.pop());} |
|||
this.html+=_parse_inline_nowiki(td_line[0]);var td=new WikiCode;var table_count=0;while(this.lines.length){if(this.lines[0].charAt(0)=='|'){if(table_count==0)break;else if(this.lines[0].charAt(1)=='}')table_count--;}else if(this.lines[0].charAt(0)=='!'&&table_count==0){break;}else if(this.lines[0].substr(0,2)=='{|')table_count++;td.lines.push(this.lines.shift());} |
|||
if(td.lines.length){td.parse();} |
|||
this.html+=td.html;};this._parse_pre=function() |
|||
{this.html+='<pre>';do{this._endline(_parse_inline_nowiki(this.lines[0].substring(1,this.lines[0].length))+"\n");}while(this.lines.length&&this.lines[0].charAt(0)==' ');this.html+='</pre>';};this._parse_block_image=function() |
|||
{this.html+=_parse_image(this.lines.shift());};};function _parse_image(str) |
|||
{var attr=str.substring(wpImageNamespace.length+3,str.length-2).split(/\s*\|\s*/);var filename=attr[0];var caption=attr[attr.length-1];var width,w_match;var thumb=false;var frame=false;var center=false;var align='';var html='';do{if(w_match=attr[0].match(/^(\d*)px$/)){width=w_match[1];}else switch(attr[0]){case'thumb':case'thumbnail':thumb=true;case'frame':frame=true;break;case'none':case'right':case'left':center=false;align=attr[0];break;case'center':center=true;align='none';} |
|||
attr.shift();}while(attr.length);if(frame){if(align=='')align='right';html+="<div class='thumb t"+align+"'>";if(thumb){if(!width)width=wpDefaultThumbWidth;html+="<div style='width:"+(2+parseInt(width))+"px;'>";html+=_make_image(filename,caption,width);html+="<div class='thumbcaption'><div class='magnify' style='float:right'><a href='"+wpBaseArticlePath+wpImageNamespace+':'+filename+"' class='internal' title='Enlarge'><img src='"+wpSkinMagnifyClip+"' /></a></div>"+_parse_inline_nowiki(caption)+"</div>";}else{html+='<div>';html+=_make_image(filename,caption);html+="<div class='thumbcaption'>"+_parse_inline_nowiki(caption)+"</div>";} |
|||
html+='</div></div>';}else if(align!=''){html+="<div class='float"+align+"'><span>"+_make_image(filename,caption,width)+"</span></div>";}else{return _make_image(filename,caption,width);} |
|||
if(center){return"<div class='center'>"+html+'</div>';}else{return html;}};this._parse_inline_nowiki=function(str) |
|||
{var start,lastend=0 |
|||
var substart=0,nestlev=0,open,close,subloop;var html='';while(-1!=(start=str.indexOf('<'+'nowiki>',substart))){html+=_parse_inline_wiki(str.substring(lastend,start));start+=8;substart=start;subloop=true;do{open=str.indexOf('<'+'nowiki>',substart);close=str.indexOf('</nowiki>',substart);if(close<=open||open==-1){if(close==-1){return html+html_entities(str.substr(start));} |
|||
substart=close+9;if(nestlev){nestlev--;}else{lastend=substart;html+=html_entities(str.substring(start,lastend-9));subloop=false;}}else{substart=open+8;nestlev++;}}while(subloop);} |
|||
return html+_parse_inline_wiki(str.substr(lastend));};function _make_image(filename,caption,width) |
|||
{filename=filename.charAt(0).toUpperCase()+filename.substr(1);filename=filename.replace(/ /g,'_');var md5=hex_md5(filename);var source=md5.charAt(0)+'/'+md5.substr(0,2)+'/'+filename;var img;if(wpShowImages){if(width){width="width='"+width+"px'";} |
|||
img="<img onerror='this.onerror=null;this.src=\""+wpImageFallbackPath+source+"\";' src='"+wpImageBasePath+source+"' alt='"+caption+"' "+width+"/>";}else{img=wpImageNamespace+':'+filename+" <em style='color:red;'>(images disabled)</em>";} |
|||
caption=_strip_inline_wiki(caption);return"<a class='image' title='"+caption+"' href='"+wpBaseArticlePath+wpImageNamespace+':'+filename+"'>"+img+"</a>";};function _parse_inline_images(str) |
|||
{var start,substart=0,nestlev=0;var loop,close,open,wiki,html;while(-1!=(start=str.indexOf('[[',substart))){if(str.substr(start+2).match(RegExp('^'+wpImageNamespace+':','i'))){loop=true;substart=start;do{substart+=2;close=str.indexOf(']]',substart);open=str.indexOf('[[',substart);if(close<=open||open==-1){if(close==-1)return str;substart=close;if(nestlev){nestlev--;}else{wiki=str.substring(start,close+2);html=_parse_image(wiki);str=str.replace(wiki,html);substart=start+html.length;loop=false;}}else{substart=open;nestlev++;}}while(loop);}else{break;}} |
|||
return str;};function _parse_inline_wiki(str) |
|||
{var aux_match,math_md5;str=_parse_inline_images(str);while(aux_match=str.match(/<(?:)math>(.*?)<\/math>/i)){math_md5=hex_md5(aux_match[1]);str=str.replace(aux_match[0],"<img src='"+wpMathBasePath+math_md5+'.png'+"' />");} |
|||
return str.replace(/'''''(.*?)''(.*?)'''/g,'<strong><em>$1</em>$2</strong>').replace(/'''''(.*?)'''(.*?)''/g,'<em><strong>$1</strong>$2</em>').replace(/'''(.*?)''(.*?)'''''/g,'<strong>$1<em>$2</em></strong>').replace(/'''(.*?)'''/g,'<strong>$1</strong>').replace(/''(.*?)''/g,'<em>$1</em>').replace(/~{5}(?!~)/g,Date()).replace(/~{4}(?!~)/g,wpSignature+' '+Date()).replace(/~{3}(?!~)/g,wpSignature).replace(RegExp('\\[\\[:((?:'+wpCategoryNamespace+'|'+wpInterwikiCodes+'):.*?)\\]\\]','gi'),"<a href='"+wpBaseArticlePath+"$1'>$1</a>").replace(RegExp('\\[\\[(?:'+wpCategoryNamespace+'|'+wpInterwikiCodes+'):.*?\\]\\]','gi'),'').replace(/\[\[([^|]*?)\]\](\w*)/g,"<a href='"+wpBaseArticlePath+"$1'>$1$2</a>").replace(/\[\[(.*?)\|([^\]]+?)\]\](\w*)/g,"<a href='"+wpBaseArticlePath+"$1'>$2$3</a>").replace(/\[\[([^\]]*?:)?(.*?)( *\(.*?\))?\|\]\]/g,"<a href='"+wpBaseArticlePath+"$1$2$3'>$2</a>").replace(/\[(http|news|ftp|mailto|gopher|irc):(\/*)([^\]]*?) (.*?)\]/g,"<a href='$1:$2$3'>$4</a>").replace(/\[http:\/\/(.*?)\]/g,"<a href='http://$1'>[#]</a>").replace(/\[(news|ftp|mailto|gopher|irc):(\/*)(.*?)\]/g,"<a href='$1:$2$3'>$1:$2$3</a>").replace(/(^| )(http|news|ftp|mailto|gopher|irc):(\/*)([^ $]*)/g,"$1<a href='$2:$3$4'>$2:$3$4</a>").replace('__NOTOC__','').replace('__NOEDITSECTION__','');};function _strip_inline_wiki(str) |
|||
{return str.replace(/\[\[[^\]]*\|(.*?)\]\]/g,'$1').replace(/\[\[(.*?)\]\]/g,'$1').replace(/''(.*?)''/g,'$1');};function max(a,b) |
|||
{if(a>b)return a;else return b;};function min(a,b) |
|||
{if(a<b)return a;else return b;};function str_imatch(str_a,str_b) |
|||
{var lim=min(str_a.length,str_b.length);for(var i=0;i<lim;i++){if(str_a.charAt(i)!=str_b.charAt(i))return i;} |
|||
return i;};function strip_cr(str) |
|||
{return str.replace(/\n\r/g,"\n").replace(/\r/g,'');};function html_entities(str) |
|||
{return str.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");};var chrsz=8;var hex_tab="0123456789abcdef";function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz));};function core_md5(x,len) |
|||
{x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16) |
|||
{var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);} |
|||
return Array(a,b,c,d);};function md5_cmn(q,a,b,x,s,t) |
|||
{return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);};function md5_ff(a,b,c,d,x,s,t) |
|||
{return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);};function md5_gg(a,b,c,d,x,s,t) |
|||
{return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);};function md5_hh(a,b,c,d,x,s,t) |
|||
{return md5_cmn(b^c^d,a,b,x,s,t);};function md5_ii(a,b,c,d,x,s,t) |
|||
{return md5_cmn(c^(b|(~d)),a,b,x,s,t);};function safe_add(x,y) |
|||
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);};function bit_rol(num,cnt) |
|||
{return(num<<cnt)|(num>>>(32-cnt));};function str2binl(str) |
|||
{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz) |
|||
bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);return bin;};function binl2hex(binarray) |
|||
{var str='';for(var i=0;i<binarray.length*4;i++) |
|||
{str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+ |
|||
hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);} |
|||
return str;}; // </math> |
|||
//**** End of copied file ***** |
|||
wpUserName = 'JesseW'; // User name to display in signatures |
|||
wpShowImages = true; // Enable downloading and displaying of images |
|||
function myLivePreviewInstall() |
|||
{ |
|||
/*Use editpage-copywarn div as a signal that we are on a edit page, and as the container for the Preview-stuff. */ |
|||
var copywarn = document.getElementById('editpage-copywarn'); |
|||
if (copywarn != null) { |
|||
var q=document.getElementsByTagName("input"); |
|||
for (var z=0;z<q.length;z++) { |
|||
var qq=q[z].attributes["accesskey"]; |
|||
if(qq&&qq.value=="p"){q[z].removeAttribute("accesskey");q[z].title="Preview your changes, please use this before saving!"}} |
|||
var cleaner = "<br style=\\'clear:both;\\' />"; |
|||
LivePreviewHTML = '<input type="button" value="Live Preview" accesskey="p" title="Preview locally [alt-p]" onclick="document.getElementById(\'PreviewBox\').innerHTML = wiki2html(editform.wpTextbox1.value) + \'' + cleaner + '\';" />'; |
|||
LivePreviewHTML += '<div style="margin-top: 5px; margin-bottom: 5px; padding: 5px; border: 3px double orange;" id="PreviewBox"></div>'; |
|||
copywarn.innerHTML = LivePreviewHTML + copywarn.innerHTML; |
|||
} |
|||
} |
|||
/* This is to keep track of who is using the Live Preview: [[User:Pilaf/livepreview.js]] */ |
|||
//************************************ Utility functions ************************************ |
|||
function addlilink(tabs, url, name, id) { |
|||
var na = document.createElement('a'); |
|||
na.href = url; |
|||
na.id = id; |
|||
na.appendChild(document.createTextNode(name)); |
|||
var li = document.createElement('li'); |
|||
li.id = id; |
|||
li.appendChild(na); |
|||
tabs.appendChild(li); |
|||
return li; |
|||
} |
|||
function addlilink2(tabs, url, name, id, title) { |
|||
var l=addlilink(tabs,url,name,id); |
|||
l.lastChild.title=title; |
|||
return l; |
|||
} |
|||
/**** Add tab as menu ****/ |
|||
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; |
|||
} |
|||
/**** Cross browser textContent ****/ |
|||
function textContent(el) { |
|||
if (el.textContent) |
|||
return el.textContent; |
|||
return el.innerText; |
|||
} |
|||
/**** Fix for the stupid lack of this in standard javascript. ****/ |
|||
function foreach(lst, func) {for (n=0;n<lst.length;n++) {func(lst[n])}} |
|||
/*** Improved version of addlilink ****/ |
|||
function addLink(where, url, name, id, title, key, after){ |
|||
//* where is the id of the toolbar where the button should be added; |
|||
// i.e. one of "p-cactions", "p-personal", or "p-navigation". |
|||
//* url is the URL which will be called when the button is clicked. |
|||
// javascript: urls can be used to do more complex things. |
|||
//* name is what will appear as the name of the button. |
|||
//* id is the id of the button; it's best to define one. |
|||
// Use a prefix to make sure its unique. Optional. |
|||
//* title is the tooltip title that gives a longer description |
|||
// of the button; if you define a accesskey, mention it here. Optional. |
|||
//* key is the char you want for the accesskey. Optional. |
|||
//* after is the id of the button you want to follow this one. Optional. |
|||
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(document.getElementById(after)) { |
|||
tabs.insertBefore(document.getElementById(after),li); |
|||
} 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; |
|||
} |
|||
//************************************ Edit automation ***(Not currently used)********* |
|||
//From (originally) http://en.wikipedia.org/enwiki/w/index.php?title=User:ABCD/monobook.js&oldid=19452182 |
|||
function automate(){ |
|||
if (/title=Image:.*&action=edit/.test(document.location.href)) { |
|||
var form = document.editform; |
|||
form.wpTextbox1.value = form.wpTextbox1.value + "{"+"{PUI}}" |
|||
form.wpSummary.value += "{{PUI"; |
|||
//form.wpMinoredit.checked = true; |
|||
} |
|||
} |
|||
//******* Begining of a way to automate putting pages on public watchlists ***** |
|||
function autoWikiWatchlist () { |
|||
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; |
|||
addlimenu(tabs, 'Watchlists', 'ca-watchlists-menu'); |
|||
var z=document.location.href.match(/&magiccodeupdatewatchlist=(.*)$/); |
|||
if (z) { |
|||
var pagename="*[["+unescape(z[1])+"]]"; |
|||
var form=document.editform; |
|||
var tb=form.wpTextbox1; |
|||
var p=tb.value.indexOf(pagename); |
|||
if (p==-1) { |
|||
tb.value = tb.value+pagename+"\n"; |
|||
form.wpMinoredit.checked = true; |
|||
form.wpSummary.value="Adding "+pagename; |
|||
form.submit(); |
|||
} |
|||
else { |
|||
if (confirm("Remove '"+unescape(z[1])+"' from watchlist?")) { |
|||
var p2=tb.value.indexOf("\n", p); |
|||
tb.value = tb.value.substring(0,p)+tb.value.substring(p2+1) |
|||
form.wpMinoredit.checked = true; |
|||
form.wpSummary.value="Removing "+pagename; |
|||
form.submit(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
function addWikiWatchlist (name, watchlist_loc) { |
|||
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href; |
|||
editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit')); |
|||
var url="http://en.wikipedia.org/enwiki/w/index.php?title="+watchlist_loc+name |
|||
url=url+"&action=edit&magiccodeupdatewatchlist="+escape(editlk); |
|||
var fullurl='javascript:void(window.open("'+url+'", "WikiWatchlist"))'; |
|||
addLink('ca-watchlists-menu', fullurl, name, 'watchlist-button-'+name, 'Add this page to your '+name+' watchlist.', '', ''); |
|||
} |
|||
//***************************************************************************************** |
|||
//************************************ Loading Section ************************************ |
|||
//***************************************************************************************** |
|||
window.onload = Main; |
|||
function Main() |
|||
{ |
|||
tabsAtBottom(); |
|||
addSinceTab(); /*Complicated if statements; need to find a neat way to do this...*/ |
|||
autoWikiWatchlist(); |
|||
myLivePreviewInstall(); |
|||
addForceSummary() |
|||
addWikiWatchlist("Interests", "User:JesseW/Watchlists/"); |
|||
addWikiWatchlist("Wikipedia", "User:JesseW/Watchlists/"); |
|||
addWikiWatchlist("Conversations", "User:JesseW/Watchlists/"); |
|||
addWikiWatchlist("News", "User:JesseW/Watchlists/"); |
|||
addLink('p-cactions', "javascript:doLastDiff()", 'last', 'ca-last',"Show most recent diff", "", ""); |
|||
//addlilink2('p-cactions', "javascript:doPUI()", 'PUI', 'ca-PUI', "Tag images as unverifiedimage"); |
|||
//doNextItem(); |
|||
regexpReplaceTab(); |
|||
addEditSection0(); |
|||
addPurgeTab(); |
|||
//automate(); |
|||
//cesarb_fixDiffOverflowLoadListener(); |
|||
} |
|||
//* </nowiki> */ |