MediaWiki:RefToolbarNoDialogs.js
var numforms = 0;
var wikEdAutoUpdateUrl;
function refbuttons() {
if (mw.toolbar && (document.getElementById('toolbar') || document.getElementById('wikiEditor-section-main'))/* && wikEdAutoUpdateUrl == null*/) {
if (document.getElementById('toolbar')) {
button = document.createElement('a');
button.href = "javascript:easyCiteMain()";
button.title = "Insert citation";
buttonimage = document.createElement('img');
buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/0/00/Button_easy_cite_%281%29.png";
buttonimage.alt = "Insert footnote";
button.appendChild(buttonimage);
document.getElementById('toolbar').appendChild(button);
} else {
button = document.createElement('a');
button.href = "#";
button.title = "Insert citation";
button.id = 'reftoolbar-button';
buttonimage = document.createElement('img');
buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Curly_Brackets.svg/22px-Curly_Brackets.svg.png";
buttonimage.alt = "Insert citation";
button.classname = "tool tool-button";
buttonimage.style.width = "22px";
buttonimage.style.height = "17px";
buttonimage.style.paddingTop = "5px";
buttonimage.style.paddingLeft = "3px";
button.appendChild(buttonimage);
$('#wikiEditor-section-main .group-insert').append( button );
$(button).click( function() { easyCiteMain(); });
}
if (navigator.userAgent.indexOf('MSIE') == -1) {
citemain = document.createElement('div');
citemain.style.display = 'none';
citemain.setAttribute('Id', 'citeselect');
citemain.appendChild( addOption("citeWeb()", "Cite web") );
citemain.appendChild( addOption("citeBook()", "Cite book") );
citemain.appendChild( addOption("citeJournal()", "Cite journal") );
citemain.appendChild( addOption("citeNews()", "Cite news") );
citemain.appendChild( addOption("citeNamedRef()", "Named ref") );
citemain.appendChild( addOption("dispErrors()", "Error check") );
citemain.appendChild( addOption("hideInitial()", "Cancel") );
document.getElementById('wpTextbox1').parentNode.insertBefore(citemain, document.getElementById('wpTextbox1'));
}
else {
selection = '
';document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML;
}
}
}
function addOption(script, text) {
option = document.createElement('input');
option.setAttribute('type', 'button');
option.setAttribute('onclick', script);
option.setAttribute("value", text);
return option;
}
function hideInitial() {
document.getElementById('citeselect').style.display = 'none';
oldFormHide();
}
function oldFormHide() {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
if (document.getElementById('errorform') != null) {
document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
}
}
function easyCiteMain() {
document.getElementById('citeselect').style.display = '';
}
var months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
var citeGlobalDateFormat = "
function getTime() {
var datestr = '';
if (typeof citeUserDateFormat != 'undefined') {
datestr = citeUserDateFormat;
} else {
datestr = citeGlobalDateFormat;
}
var DT = new Date();
var zmonth = '';
var month = DT.getUTCMonth()+1;
if (month < 10) {
zmonth = "0"+month.toString();
} else {
zmonth = month.toString();
}
month = month.toString();
var zdate = '';
var date = DT.getUTCDate()
if (date < 10) {
zdate = "0"+date.toString();
} else {
zdate = date.toString();
}
date = date.toString()
datestr = datestr.replace('
datestr = datestr.replace('
datestr = datestr.replace('
datestr = datestr.replace('
datestr = datestr.replace('
datestr = datestr.replace('
return (datestr);
}
function citeWeb() {
citeNewsWeb("cite web");
}
function citeNews() {
citeNewsWeb("cite news");
}
function citeNewsWeb(templatename) {
oldFormHide();
template = templatename;
var legend;
if (template == "cite web") {
legend = "Cite web source";
} else {
legend = "Cite news source";
}
newtime = getTime();
numforms++;
form = '
'
document.getElementById('citeselect').innerHTML += form;
}
function citeBook() {
oldFormHide();
template = "cite book";
numforms++;
form = '
'
document.getElementById('citeselect').innerHTML += form;
}
function citeJournal() {
oldFormHide();
template = "cite journal";
numforms++;
form = '
'
document.getElementById('citeselect').innerHTML += form;
}
function addcites(template) {
cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
$("#wpTextbox1").focus();
insertTags(cite, , );
document.getElementById('citediv'+numforms).style.display = 'none';
}
function getNamedRefs(calls) {
if (typeof(wikEdUseWikEd) != 'undefined') {
if (wikEdUseWikEd == true) {
WikEdUpdateTextarea();
}
}
text = document.getElementById('wpTextbox1').value;
var regex;
if (calls) {
regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?\/ *?>/gi //'
} else {
regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //'
}
var namedrefs = [];
var i=0;
var nr=true;
do {
ref = regex.exec(text);
if(ref != null){
if (ref[5]) {
namedrefs[i] = ref[5];
} else if (ref[3]) {
namedrefs[i] = ref[3];
} else {
namedrefs[i] = ref[6];
}
i++;
} else {
nr=false;
}
} while (nr==true);
return namedrefs;
}
function citeNamedRef() {
namedrefs = getNamedRefs(false);
if (namedrefs == '') {
oldFormHide();
numforms++;
out = '
';document.getElementById('citeselect').innerHTML += out;
}
else {
oldFormHide();
numforms++;
form = '
'
document.getElementById('citeselect').innerHTML += form;
}
}
function addnamedcite() {
name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value;
$("#wpTextbox1").focus();
insertTags(ref, , );
document.getElementById('citediv'+numforms).style.display = 'none';
}
function getAllRefs() {
if (typeof(wikEdUseWikEd) != 'undefined') {
if (wikEdUseWikEd == true) {
WikEdUpdateTextarea();
}
}
text = document.getElementById('wpTextbox1').value;
regex = /< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim //"
var allrefs = [];
var i=0;
var nr=true;
do {
ref = regex.exec(text);
if(ref != null){
if (ref[0].search(/[^\s]{150}/) != -1) {
ref[0] = ref[0].replace(/\|([^\s])/g, "| $1");
}
ref[0] = ref[0].replace(/
ref[0] = ref[0].replace(/>/g, ">");
allrefs[i] = ref[0];
i++;
} else {
nr=false;
}
} while (nr==true);
return allrefs;
}
function NRcallError(namedrefs, refname) {
for (var i=0; i if (namedrefs[i] == refname) { return true; } } return false; } function errorCheck() { var allrefs = getAllRefs(); var allrefscontent = []; var samecontentexclude = []; var sx=0; var templateexclude = []; var tx=0; var skipcheck = false; var namedrefcalls = getNamedRefs(true); for (var i=0; i allrefscontent[i] = allrefs[i].replace(/< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim, "$8"); //" } var namedrefs = getNamedRefs(false); var errorlist = []; var q=0; unclosed = document.getElementById('unclosed').checked; samecontent = document.getElementById('samecontent').checked; templates = document.getElementById('templates').checked; repeated = document.getElementById('repeated').checked; undef = document.getElementById('undef').checked; for (var i=0; i if (allrefs[i].search(/< *?\/ *?ref *?>/) == -1 && unclosed) { errorlist[q] = ' errorlist[q] += ' q++; } if (samecontent) { for (var d=0; d if (allrefscontent[i] == samecontentexclude[d]) { skipcheck = true; } } var p=0; while (p if (allrefscontent[i] == allrefscontent[p] && i != p) { errorlist[q] = ' errorlist[q] += ' q++; samecontentexclude[sx] = allrefscontent[i] sx++; break; } p++; } skipcheck=false; } if (templates) { if (allrefscontent[i].search(/\{\{cite/i) == -1 && allrefscontent[i].search(/\{\{citation/i) == -1 && allrefscontent[i].search(/\{\{Comic (book|strip) reference/i) == -1 && allrefscontent[i].search(/\{\{Editorial cartoon reference/i) == -1 && allrefscontent[i].search(/\{\{harv/i) == -1) { for (var x=0; x if (allrefscontent[i] == templateexclude[x]) { skipcheck = true; } } if (!skipcheck) { errorlist[q] = ' errorlist[q] += ' q++; templateexclude[tx] = allrefscontent[i]; tx++; } skipcheck = false; } } } if (repeated) { var repeatnameexclude = []; var rx=0; for (var k=0; k for (var d=0; d if (namedrefs[k] == repeatnameexclude[d]) { skipcheck = true; } } var z=0; while (z if (namedrefs[k] == namedrefs[z] && k != z) { errorlist[q] = ' errorlist[q] += ' q++; repeatnameexclude[rx] = namedrefs[z]; rx++; break; } z++; } skipcheck = false; } } if (undef) { var undefexclude = []; var ux=0; for (var p=0; p for (var d=0; d if (allrefscontent[i] == undefexclude[d]) { skipcheck = true; } } if (!skipcheck) { if (!NRcallError(namedrefs, namedrefcalls[p])) { errorlist[q] = ' errorlist[q] += ' q++; undefexclude[ux] = namedrefs[p]; ux++; } } skipcheck = false; } } if (q > 0) { return errorlist; } else { return 0; } } function dispErrors() { oldFormHide(); form = ' document.getElementById('citeselect').innerHTML += form; } function doErrorCheck() { var errors = errorCheck(); document.getElementById('citeselect').removeChild(document.getElementById('errorform')); if (errors == 0) { if (numforms != 0) { document.getElementById('citediv'+numforms).style.display = 'none'; } numforms++; out = ' document.getElementById('citeselect').innerHTML += out; } else { if (numforms != 0) { document.getElementById('citediv'+numforms).style.display = 'none'; } numforms++; form = ' ' document.getElementById('citeselect').innerHTML += form; } } $( refbuttons ); ';'+allrefs[i]+' ';
Unclosed <ref> tag ';'+allrefscontent[i]+' ';
Multiple refs contain this content, a named reference should be used instead ';'+allrefs[i]+' ';
Does not use a citation template ';'+namedrefs[k]+' ';
Multiple references are given the same name ';'+namedrefcalls[p]+' ';
A named reference is used but not defined