User:Dto/monobook.js/poem

/* By User:Dto. Adapt/use it if it helps. */ var dto = { lastText: null // for undo functionality };

dto.addEditButton = function(button) { var b = document.getElementById("wpDiff"); if(!b) return false; while(b.nextSibling.nodeName.toLowerCase == "input") b = b.nextSibling; if(!b.nextSibling) b.parentNode.appendChild(button); else b.parentNode.insertBefore(button, b.nextSibling); return true; };

dto.makeButton = function(bId, bValue, clickhandler) { var b = document.createElement("input"); b.setAttribute("type", "button"); b.setAttribute("id", bId); b.setAttribute("name", bId); b.setAttribute("value", bValue); b.onclick = clickhandler; return b; };

dto.detectSonnetNumber = function { var sonnet = parseInt(wgTitle.substring(wgTitle.lastIndexOf("/") + 1, wgTitle.length)); return isNaN(sonnet) ? -1 : sonnet; }

dto.onLoad = function { if(wgNamespaceNumber == 0) // Main namespace dto.addEditButton(			dto.makeButton( "dtoFeelinglucky", "I'm Feeling Lucky ", function { var textbox = document.getElementById("wpTextbox1"); if(!textbox) return;

var txt = textbox.value; // txt will be passed through the functions, in order var functs = [dto.utf8emdashes, dto.detectPoem, dto.removeLineBreaks, dto.removeNonBreakingSpaces]; for(var i = 0; i < functs.length; i++) { if(!(txt = functs[i](txt))) return; textbox.value = txt; }

var editsummary = document.getElementById("wpSummary"); if(editsummary && editsummary.value == '') { editsummary.value = "use "; var minor = document.getElementById("wpMinoredit"); if(minor) minor.checked = true; }

var diff = document.getElementById("wpDiff"); if(diff) diff.click; return true; }			)		);	else if(wgNamespaceNumber == 1) // Talk namespace dto.addEditButton(			dto.makeButton( "dtoFeelingluckyTalk", "I'm Feeling Lucky (textinfo)", function { var textbox = document.getElementById("wpTextbox1"); if(!textbox) return false;

var page = window.prompt("Page identifier (&pg=XXX) in the original edition?"); var page2 = window.prompt("Page identifier (&pg=XXX) in the 1883 edition?");

textbox.value = "" + (textbox.value == "" ? "" : "\n\n") + textbox.value;

var editsummary = document.getElementById("wpSummary"); if(editsummary && editsummary.value == '') editsummary.value = "textinfo";

var preview = document.getElementById("wpPreview"); if(preview) preview.click; return false; }			)		); };

dto.utf8emdashes = function(txt) { return txt.replace(/&mdash;/g, "—"); };

dto.detectPoem = function(txt) { var i = txt.indexOf("\n\n"); if(i < 0) return false; i += 2; txt = txt.substr(0, i) + " \n" + txt.substring(i, txt.length); i = txt.lastIndexOf("\n\n"); if(i < 0) return false; txt = txt.substr(0, i) + "\n " + txt.substring(i, txt.length); return txt; };

dto.removeLineBreaks = function(txt) { return txt.replace(/ /g, ""); };

dto.removeNonBreakingSpaces = function(txt) { if(wgTitle.indexOf("The Rime of the Ancyent Marinere") >= 0) return txt.replace(/ /g, "  "); return txt.replace(/     /g, "    "); };

hookEvent("load", dto.onLoad); /* */