User:Writ Keeper/Scripts/legacyRefToolbar.js
//
var numforms = 0;
var wikEdAutoUpdateUrl;
var citeUserDateFormat;
var refTagURL;
var defaultRefTagURL = '';
var refToolDebug;
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
};
function easyCiteMain() {
document.getElementById('citeselect').style.display = '';
document.getElementById('citemore').style.display = 'none';
}
function refbuttons() {
if (mw.toolbar) {
mw.toolbar.addButton( {
imageFile: "//upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png",
speedTip: "Insert citation",
onClick: easyCiteMain,
imageId: "mw-toolbar-editbutton"
} );
if (navigator.userAgent.indexOf('MSIE') == -1) {
var citemain = document.createElement('div');
citemain.style.display = 'none';
citemain.style.margin = '0 0 6px';
citemain.style.clear = 'both';
citemain.style.height = 'auto';
citemain.setAttribute('Id', 'citeselect');
citemain.appendChild( addOption("citeWeb()", "Web") );
citemain.appendChild( addOption("citeNews()", "News") );
citemain.appendChild( addOption("citeBook()", "Book") );
citemain.appendChild( addOption("citeJournal()", "Journal") );
citemain.appendChild( addOption("citeNamedRef()", "Named references") );
citemain.appendChild( addOption("dispErrors()", "Error check") );
citemain.appendChild( addOption("showMore()", "More") );
citemain.appendChild( addOption("hideInitial()", "Cancel") );
var citemore = document.createElement('div');
citemore.style.display = 'none';
citemore.setAttribute('Id', 'citemore');
citemore.appendChild( addOption("citeEncyclopedia()", "Encyclopedia") );
citemore.appendChild( addOption("citePressRelease()", "Press release") );
citemore.appendChild( addOption("citeMap()", "Map") );
citemore.appendChild( addOption("showRefSectionOptions()", "Ref Section") );
citemain.appendChild(citemore);
$( citemain ).insertAfter( $( "#toolbar" ) );
}
else {
var citeselect = document.createElement('div');
citeselect.id = 'citeselect';
citeselect.style.display = "none";
citeselect.innerHTML = ''+
''+
''+
''+
''+
''+
''+
''+
'
';document.getElementById('editform').insertBefore(citeselect, document.getElementById('editform').firstChild ) ;
}
var reftoolformarea = document.createElement( 'span' );
reftoolformarea.id = 'refToolFormArea';
$("#citeselect").append( reftoolformarea );
}
if (typeof EditTools == "object") {
var placeholder = document.getElementById("editpage-specialchars");
EditTools.createEditTools (placeholder);
}
}
function addOption(script, text) {
var 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';
//}
document.getElementById('refToolFormArea').innerHTML = '';
if (document.getElementById('errorform') !== null) {
document.getElementById('citeselect').removeChild(document.getElementById('errorform'));
}
}
function showMore() {
document.getElementById('citemore').style.display = '';
}
var months = ['January', 'February', 'March', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December'];
var citeGlobalDateFormat = "
function getTime() {
var datestr = '';
if (citeUserDateFormat) {
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 lastNameToRefname() {
//Note: This only works if field 'refname' comes after field 'last', but it always does
var lastName;
var fields = document.getElementById('citediv'+numforms).getElementsByTagName('input');
for (var i=0; i if(fields[i].id == 'last') { lastName = fields[i].value; } else if(fields[i].id == 'refname') { fields[i].value = lastName.replace(/^\s*(.*?)\s*$/, "$1"); return; } } } function setAccessDateToday() { document.getElementById('accessdate').value = getTime(); /* var fields = document.getElementById('citediv'+numforms).getElementsByTagName('input'); for (var i=0; i if(fields[i].id == 'accessdate') { fields[i].value = getTime(); return; } } } function getLastName(authornum) { if (/\S/.test(document.getElementById('last'+authornum).value)) { return document.getElementById('last'+authornum).value; } else { var author = document.getElementById('author'+authornum).value; var match = /(\S+)\s*$/.exec(author); if (match) { return match[1]; } else { return ''; } } } function makeRefname() { var refname; if (document.getElementById('last1')) { refname = document.getElementById('last1').value + document.getElementById('last2').value; } else{ refname = document.getElementById('last').value; } if (/\S/.test(refname)) { var date = document.getElementById('date').value; var match = /[0-9]{4}/.exec(date); if (match) { refname += match[0]; } } else { refname = document.getElementById('title').value; } document.getElementById('refname').value = refname; } function citeWeb() { citeNewsWeb("cite web"); } function citeNews() { citeNewsWeb("cite news"); } function citeNewsWeb(templatename) { oldFormHide(); var template = templatename; var legend; if (template == "cite web") { legend = "Cite web source"; } else { legend = "Cite news source"; } var newtime = getTime(); numforms++; var form = ' ' document.getElementById('refToolFormArea').innerHTML = form; } function citeBook() { oldFormHide(); var template = "cite book"; numforms++; var form = ' '
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeJournal() {
oldFormHide();
var template = "cite journal";
numforms++;
var form = '
'
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeEncyclopedia() {
oldFormHide();
var template = "cite encyclopedia";
numforms++;
var form = '
'
document.getElementById('refToolFormArea').innerHTML = form;
}
function citePressRelease() {
oldFormHide();
var template = "cite press release";
numforms++;
var form = '
'
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeMap() {
oldFormHide();
var template = "cite map";
numforms++;
var form = '
'
document.getElementById('refToolFormArea').innerHTML = form;
}
function showRefSectionOptions() {
oldFormHide();
var template = "cite encyclopedia";
numforms++;
var form = '
'
document.getElementById('refToolFormArea').innerHTML = form;
}
function makeCiteCode() {
cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
var template = '';
var citebegin = '
var citename = ''; var citeinner = ''; for (var i=0; i var citeid = cites[i].id; var citevalue = cites[i].value; citevalue = citevalue.trim(); //Trim leading and trailing whitespace if (citeid == "verbose") { if (cites[i].checked) { citeinner = citeinner.replace(/\|/g, "\n|"); } } else if (citevalue !== '' && cites[i].type !== 'button' && cites[i].type !== 'image') { if (citeid === "refname") { citebegin += ' name="' + citevalue + '"'; } else if (citeid == "template") { citename = '>\{\{' + citevalue; template = citevalue; } else { if (citeid === "pages") { if (citevalue.match(/^\w+$/) && template != 'cite encyclopedia') { citeid = "page"; //Use page= instead of pages= if only one page. Makes p. 5 instead of pp. 5. } else { citevalue = citevalue.replace(/-/g, "–"); //Replace hyphens with en dashes WP:ENDASH } } else if (citeid == "date" && citevalue.match(/^\d\d\d\d$/)) { citeid = "year"; // Use year= instead of date= if only the year is specified } citeinner += "|" + citeid + "=" + citevalue; } } } cite = citebegin + citename + citeinner + "}}
return cite;
}
function addcites(template) {
var cite = makeCiteCode();
$("#wpTextbox1").focus();
mw.toolbar.insertTags(cite, , );
//document.getElementById('citediv'+numforms).style.display = 'none';
oldFormHide();
}
function addRefSection() {
var wikicode = "\n";
if (document.getElementById('references').checked) {
wikicode += "== References ==\n";
}
else if (document.getElementById('notes').checked) {
wikicode += "== Notes ==\n";
}
else {alert('No headline selected!');}
if (document.getElementById('type-references').checked) {
if (document.getElementById('ldr').checked) {
wikicode += "
}
else {
wikicode += "
}
}
else if (document.getElementById('type-reflist').checked || document.getElementById('type-reflist2').checked) {
var col2 = document.getElementById('type-reflist2').checked ? '|2' : '' ;
if (document.getElementById('ldr').checked) {
wikicode += "\{\{Reflist" + col2 + "|refs=\n\n}}\n";
}
else {
wikicode += "\{\{Reflist" + col2 + "}}\n";
}
}
else {alert('No type selected!');}
$("#wpTextbox1").focus();
mw.toolbar.insertTags(wikicode, , );
document.getElementById('citediv'+numforms).innerHTML = '';
}
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 = new Array();
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() {
var namedrefs = getNamedRefs(false);
if (namedrefs == '') {
oldFormHide();
numforms++;
var out = '
';document.getElementById('refToolFormArea').innerHTML = out;
}
else {
oldFormHide();
numforms++;
var form = '
'
document.getElementById('refToolFormArea').innerHTML = form;
}
}
function addnamedcite() {
var name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value;
$("#wpTextbox1").focus();
mw.toolbar.insertTags(ref, , );
document.getElementById('citediv'+numforms).style.display = 'none';
}
function getAllRefs() {
if (typeof(wikEdUseWikEd) != 'undefined') {
if (wikEdUseWikEd == true) {
WikEdUpdateTextarea();
}
}
var text = document.getElementById('wpTextbox1').value;
var regex = /< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim //"
var allrefs = new Array();
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 = new Array(); var samecontentexclude = new Array(); var sx=0; var templateexclude = new Array(); 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 = new Array(); var q=0; var unclosed = document.getElementById('unclosed').checked; var samecontent = document.getElementById('samecontent').checked; var templates = document.getElementById('templates').checked; var repeated = document.getElementById('repeated').checked; var 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 = new Array(); 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 = new Array(); 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(); var 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; } } function makeBookCitationCode(callback) { var cite = '
var refname = document.getElementById('refname').value; if (/\S/.test(refname)) { cite += ' name="' + refname + '"'; } cite += '>\{\{'; if (document.getElementById('cite_book').checked || document.getElementById('plain').checked) { cite += 'cite book'; } else if (document.getElementById('citation').checked) { cite += 'citation'; } else {alert('No template selected.');} var authorcite = ''; var prevauthor = 0; for (var i=3;i>=1;i--) { //var author = document.getElementById('author' + i).value; var last = document.getElementById('last' + i).value; var first = document.getElementById('first' + i).value; var authorlink = document.getElementById('authorlink' + i).value; if (i==1 && !prevauthor) { i = ''; } if (/\S/.test(authorlink)) { authorcite = '|authorlink' + i + '=' + authorlink + authorcite; } if (/\S/.test(last)) { authorcite = '|last' + i + '=' + last + '|first' + i + '=' + first + authorcite; prevauthor = 1; } /*else if (/\S/.test(author)) { authorcite = '|author' + i + '=' + author + authorcite; prevauthor = 1; }*/ } cite += authorcite; var simplefields = ["coauthors", "editor", "others", "title", "url", "accessdate","edition","series","volume","date","publisher","location","language","isbn","pages","chapter"]; for (var i=0;i var fieldname = simplefields[i]; var value = document.getElementById(fieldname).value; if (/\S/.test(value) || fieldname == "title") { if (fieldname == "pages") { if (/^\w+$/.test(value)) { fieldname = "page"; //Use page= instead of pages= if only one page. Makes p. 5 instead of pp. 5. } else { value = value.replace(/-/g, "–"); //Replace hyphens with en dashes WP:ENDASH value = value.replace(/,\s*\s?/g, ", "); //One space after each comma } } else if (fieldname == "date" && /^\d\d\d\d$/.test(value)) { fieldname = "year"; // Use year= instead of date= if only the year is specified } cite += '|' + fieldname + '=' + value; } } var otherfields = document.getElementById('otherfields').value; if (/\S/.test(otherfields)) { cite += '|' + otherfields; } if (document.getElementById('extraparams').checked) { cite += '|authormask='; if (!document.getElementById('citation').checked) { cite += '|trans_title='; } cite += '|format='; cite += '|origyear='; cite += '|oclc='; cite += '|doi='; cite += '|bibcode='; cite += '|id='; if (/\S/.test(document.getElementById('chapter').value)) { if (!document.getElementById('citation').checked) { cite += '|trans_chapter='; } cite += '|chapterurl='; } cite += '|quote='; cite += '|laysummary='; cite += '|laydate='; } cite += "}} if (document.getElementById('plain').checked) { var match = /^(.*?)(\{\{.*}})(.*?)$/.exec(cite); if (match) { var citebeg = match[1]; var citemid = match[2]; var citeend = match[3]; citemid = citemid.replace(/cite book/, "Vancite book"); //alert(citebeg + ':::' + citemid + ':::' + citeend); //document.getElementById('fullcite').value = 'Updating...'; var url = 'api.php?action=expandtemplates&format=xml&text=' + encodeURIComponent(citemid); document.getElementById('progress').style.visibility = "visible"; var xmlhttpExpand = new XMLHttpRequest(); xmlhttpExpand.onreadystatechange=function() { if(xmlhttpExpand.readyState==4) { if(xmlhttpExpand.status==200) { document.getElementById('progress').style.visibility = "hidden"; var xmlDoc=xmlhttpExpand.responseXML.documentElement; var expanded = xmlDoc.getElementsByTagName("expandtemplates")[0].textContent; if (expanded == undefined) { expanded = xmlDoc.getElementsByTagName("expandtemplates")[0].childNodes[0].nodeValue; } expanded = expanded.replace(/ expanded = expanded.replace(/<\/span>/ig, ''); expanded = expanded.replace(/ expanded = expanded.replace(/\&\#32\;/ig, ' '); expanded = expanded.replace(/\&\#59\;/ig, ';'); expanded = expanded.replace(/\&\#91\;/ig, '['); expanded = expanded.replace(/\&\#93\;/ig, ']'); plaincite = citebeg + expanded + citeend; //alert(plaincite); callback(plaincite); } else alert('The query returned an error.'); } } xmlhttpExpand.open("GET",url,true); xmlhttpExpand.send(null); } else {alert('Error A1');} } else { if (document.getElementById('verbose').checked) { cite = cite.replace(/\|/g, "\n|"); } callback(cite); } } function makeCiteBook() { makeBookCitationCode(function(cite) { $("#wpTextbox1").focus(); mw.toolbar.insertTags(cite, , ); if (!refToolDebug) { oldFormHide(); } }); } function formatDate(datein, dateformat) { if (dateformat == '') {return (datein);} datein = datein.replace(/^\s*(.*?)\s*$/, "$1"); //Trim whitespace var year = -1; var month = -1; var date = -1; var match = /^(\d\d\d\d)-(\d\d?)(-(\d\d?))?$/.exec(datein); if(match) { //alert(' match[1]=' + match[1] + ' match[2]=#' + match[2] + '# match[3]=' + match[3] + ' match[4]=' + match[4] ); year = parseInt(match[1], 10); //10 forces decimal conversion month = parseInt(match[2], 10); if (match[4]) { date = parseInt(match[4], 10); } } else if (/^\d\d? \w+ \d\d\d\d$/.test(datein) || /^\w+ \d\d?, \d\d\d\d$/.test(datein)) { var DT = new Date(datein); year = DT.getFullYear(); month = DT.getMonth()+1; date = DT.getDate(); } else if (datein == 'today') { var DT = new Date(); year = DT.getUTCFullYear(); month = DT.getUTCMonth()+1; date = DT.getUTCDate(); } else {return (datein);} //alert('datein=' + datein + ', y=' + year + ', m=' + month + ', d=' + date); var zmonth = ''; if (month < 10) { zmonth = "0"+month.toString(); } else { zmonth = month.toString(); } month = month.toString(); var zdate = ''; if (date > -1) { if (date < 10) { zdate = "0"+date.toString(); } else { zdate = date.toString(); } date = date.toString() } else { date = ''; } var datestr = dateformat; datestr = datestr.replace(' datestr = datestr.replace(' datestr = datestr.replace(' datestr = datestr.replace(' datestr = datestr.replace(' datestr = datestr.replace(' datestr = datestr.replace(/\s+/, ' ').replace(/^\s+/, ).replace(/(\D),/, '$1').replace(/-$/, ); return (datestr); } function getDateFormat() { var dateformat = ''; if (document.getElementById('dmy')){ if (document.getElementById('dmy').checked) {dateformat = ' else if (document.getElementById('mdy').checked) {dateformat = ' else if (document.getElementById('ymd').checked) {dateformat = ' } else if (citeUserDateFormat) { dateformat = citeUserDateFormat; } else { dateformat = citeGlobalDateFormat; } return (dateformat); } function reformatDates() { var dateformat = getDateFormat(); //alert(':' + dateformat + ':'); document.getElementById('accessdate').value = formatDate(document.getElementById('accessdate').value, dateformat); document.getElementById('date').value = formatDate(document.getElementById('date').value, dateformat); //document.getElementById('dateformat_hidden').value = getDateFormatShort(); } /*function updateGetButton() { document.getElementById('urlget').disabled = document.getElementById('url').value == ''; }*/ function preview(wikitext) { document.getElementById('progress').style.visibility = "visible"; wikitext += ' var url = "api.php?action=parse&format=xml&prop=text&text=" + encodeURIComponent(wikitext); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState==4) { if(xmlhttp.status==200) { document.getElementById('progress').style.visibility = "hidden"; var xmlDoc=xmlhttp.responseXML.documentElement; var previewHTML = xmlDoc.getElementsByTagName("text")[0].textContent; if (previewHTML == undefined) { previewHTML = xmlDoc.getElementsByTagName("text")[0].childNodes[0].nodeValue; } //alert(previewHTML); previewHTML = previewHTML.replace(/href="\//gi, 'href="//en.wikipedia.org/'); document.getElementById('previewSpan').innerHTML = ' } else alert('The query returned an error.'); } }; xmlhttp.open("GET", url, true); xmlhttp.send(null) } function previewCitationBook() { makeBookCitationCode(preview); } function previewCitationDefault() { var wikitext = makeCiteCode(); preview(wikitext); } function pullJs() { var book_url = document.getElementById('url').value; if (book_url) { document.getElementById('progress').style.visibility = "visible"; var book_url_enc = encodeURIComponent(book_url); if(!refTagURL) {refTagURL = defaultRefTagURL;} var baseurl = refTagURL + 'googlebooksjs.py'; var url = baseurl + '?book_url=' + book_url_enc + '&callback=setFormValues'; /*var script = document.createElement("script"); script.setAttribute("src",url); script.setAttribute("type","text/javascript"); document.body.appendChild(script);*/ JsonRequest(url); }else{ alert('No URL.'); } } function pullISBN() { var isbn = document.getElementById('isbn').value; isbn = isbn.replace(/[^0-9]/g,""); //Digits only if (isbn) { document.getElementById('progress').style.visibility = "visible"; if(!refTagURL) {refTagURL = defaultRefTagURL;} var baseurl = refTagURL + 'getdiberri.py'; var url = baseurl + '?isbn=' + isbn + '&callback=useDiberriData'; /*var script = document.createElement("script"); script.setAttribute("src",url); script.setAttribute("type","text/javascript"); document.body.appendChild(script);*/ JsonRequest(url); }else{ alert('No ISBN.'); } } function pullDOI() { var doi = document.getElementById('doi').value; if (doi) { document.getElementById('progress').style.visibility = "visible"; if(!refTagURL) {refTagURL = defaultRefTagURL;} var baseurl = refTagURL + 'doifetchjs.py'; var url = baseurl + '?doi=' + encodeURIComponent(doi) + '&callback=useDoiData'; JsonRequest(url); }else{ alert('No DOI.'); } } function pullPMID() { alert('Not implemented yet...'); /*var doi = document.getElementById('doi').value; if (doi) { document.getElementById('progress').style.visibility = "visible"; if(!refTagURL) {refTagURL = defaultRefTagURL;} var baseurl = refTagURL + 'doifetchjs.py'; var url = baseurl + '?doi=' + encodeURIComponent(doi) + '&callback=useDoiData'; JsonRequest(url); }else{ alert('No DOI.'); }*/ } function pullURL() { var url = document.getElementById('url').value; if (url) { document.getElementById('progress').style.visibility = "visible"; if(!refTagURL) {refTagURL = defaultRefTagURL;} var baseurl = refTagURL + 'urlfetchjs.py'; var url = baseurl + '?url=' + encodeURIComponent(url) + '&callback=useUrlData'; JsonRequest(url); }else{ alert('No URl.'); } } function JsonRequest(url) { //mw.loader.load(url) //Bad: does not import the same script more than once var script = document.createElement("script"); script.setAttribute("src",url); script.setAttribute("type","text/javascript"); //document.body.appendChild(script); document.getElementsByTagName('head')[0].appendChild(script); } function setFormValues(bookdata) { document.getElementById('progress').style.visibility = "hidden"; //alert(bookdata); //alert(bookdata.page); if (bookdata.title.length != 0) { document.getElementById('title').value = bookdata.title; } if (bookdata.isbn.length != 0) { document.getElementById('isbn').value = bookdata.isbn; } if (bookdata.publisher.length != 0) { document.getElementById('publisher').value = bookdata.publisher; } if (bookdata.pages.length != 0) { document.getElementById('pages').value = bookdata.pages; document.getElementById('pages').style.backgroundColor = '#FFFF99'; } if (bookdata.url.length != 0) { document.getElementById('url').value = bookdata.url; } if (bookdata.date.length != 0) { document.getElementById('date').value = bookdata.date; } for (var i=0;i authorn = i+1; var author = bookdata.authors[i]; var match = /(.+)\s+(.+)/.exec(author); if (match) { document.getElementById('first' + authorn).value = match[1]; document.getElementById('last' + authorn).value = match[2]; } else { document.getElementById('last' + authorn).value = author; } } document.getElementById('coauthors').value = bookdata.authors.splice(3).join(', ') setAccessDateToday() makeRefname() } function useDiberriData(bookdata) { document.getElementById('progress').style.visibility = "hidden"; if (bookdata.title.length != 0) { document.getElementById('title').value = bookdata.title; } if (bookdata.isbn.length != 0) { document.getElementById('isbn').value = bookdata.isbn; } if (bookdata.publisher.length != 0) { document.getElementById('publisher').value = bookdata.publisher; } if (bookdata.location.length != 0) { document.getElementById('location').value = bookdata.location; } if (bookdata.year.length != 0) { document.getElementById('date').value = bookdata.year; } if (bookdata.authors.length != 0) { authors = bookdata.authors.split(';', 4); for (var i=0;i authorn = i+1; nameparts = authors[i].split(',', 2); document.getElementById('last' + authorn).value = nameparts[0].trim(); if (nameparts.length == 2) { document.getElementById('first' + authorn).value = nameparts[1].trim(); } } if (authors[3]) { document.getElementById('coauthors').value = authors[3].trim(); } } makeRefname() } function useDoiData(bookdata) { document.getElementById('progress').style.visibility = "hidden"; if (bookdata.title) { document.getElementById('title').value = bookdata.title; } //if (bookdata.isbn.length != 0) { document.getElementById('isbn').value = bookdata.isbn; } //if (bookdata.publisher.length != 0) { document.getElementById('publisher').value = bookdata.publisher; } //if (bookdata.location.length != 0) { document.getElementById('location').value = bookdata.location; } if (bookdata.year) { document.getElementById('date').value = bookdata.year; } if (bookdata.issn) { document.getElementById('issn').value = bookdata.issn; } if (bookdata.journal) { document.getElementById('journal').value = bookdata.journal; } if (bookdata.volume) { document.getElementById('volume').value = bookdata.volume; } if (bookdata.issue) { document.getElementById('issue').value = bookdata.issue; } if (bookdata.pages) { document.getElementById('pages').value = bookdata.pages; } if (bookdata.authors) { var coauthors = []; for (var i=0;i var authorn = i+1; var author = bookdata.authors[i]; if (authorn == 1) { if (author.last) { document.getElementById('last').value = author.last.trim(); } if (author.first) { document.getElementById('first').value = author.first.trim(); } } else { var authorparts = []; if (author.first) { authorparts.push( author.first.trim() ); } if (author.last) { authorparts.push( author.last.trim() ); } coauthors.push(authorparts.join(' ')); } } if (coauthors[0]) { document.getElementById('coauthors').value = coauthors.join(', '); } } makeRefname(); } function useUrlData(data) { document.getElementById('progress').style.visibility = "hidden"; if (data.title) { document.getElementById('title').value = data.title; } if (data.work) { document.getElementById('work').value = data.work; } if (data.page) { document.getElementById('pages').value = data.page; } if (data.date) { document.getElementById('date').value = formatDate(data.date, getDateFormat()); } /*if (data.author) { var authors = data.author.replace(/ [Aa]nd /, ', '); var match = /(.+),\s*(.+)/.exec(authors); var firstauthor = ''; if (match) { firstauthor = match[1]; var coauthors = match[2]; document.getElementById('coauthors').value = coauthors; } else { firstauthor = data.author; } var match = /(.+)\s+(.+)/.exec(firstauthor); if (match) { document.getElementById('first').value = match[1]; document.getElementById('last').value = match[2]; } else { document.getElementById('last').value = author; } }*/ if (data.authors) { var coauthors = []; for (var i=0;i var authorn = i+1; var author = data.authors[i]; if (authorn == 1) { var match = /(.+)\s+(.+)/.exec(author); if (match) { document.getElementById('first').value = match[1].trim(); document.getElementById('last').value = match[2].trim(); } else { document.getElementById('last').value = author.trim(); } } else { coauthors.push(author); } } if (coauthors[0]) { document.getElementById('coauthors').value = coauthors.join(', '); } } } mw.hook('mw.toolbar').add(function () { 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