E' in corso una procedura di uniformazione delle seconde edizioni
Dizionario demografico multilingue (seconda edizione armonizzata, volume italiano)
Differenze tra le versioni di "MediaWiki:RefToolbarNoDialogsTextTerm.js"
Dizionario demografico multilingue (seconda edizione unificata, volume italiano)
(From es-ii) |
|||
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 2: | Riga 2: | ||
var wikEdAutoUpdateUrl; | var wikEdAutoUpdateUrl; | ||
function refbuttons() { | function refbuttons() { | ||
− | if ( | + | if (mw.toolbar && (document.getElementById('toolbar') || document.getElementById('wikiEditor-ui-toolbar'))/* && wikEdAutoUpdateUrl == null*/) { |
if (document.getElementById('toolbar')) { | if (document.getElementById('toolbar')) { | ||
button = document.createElement('a'); | button = document.createElement('a'); | ||
Riga 28: | Riga 28: | ||
document.getElementById('wikiEditor-ui-toolbar').childNodes[0].childNodes[1].appendChild(button); | document.getElementById('wikiEditor-ui-toolbar').childNodes[0].childNodes[1].appendChild(button); | ||
//document.getElementById('reftoolbar-button').onclick = easyCiteMain; | //document.getElementById('reftoolbar-button').onclick = easyCiteMain; | ||
− | $ | + | $(document).on('click', '#reftoolbar-button', function() { easyCiteMain(); }); |
} | } | ||
if (navigator.userAgent.indexOf('MSIE') == -1) { | if (navigator.userAgent.indexOf('MSIE') == -1) { | ||
Riga 47: | Riga 47: | ||
else { | else { | ||
selection = '<div id="citeselect" style="display:none"><input type="button" value="Cite web" onclick="citeWeb()" />'+ | selection = '<div id="citeselect" style="display:none"><input type="button" value="Cite web" onclick="citeWeb()" />'+ | ||
− | + | '<input type="button" value="Cite book" onclick="citeBook()" />'+ | |
− | + | '<input type="button" value="Cite journal" onclick="citeJournal()" />'+ | |
− | + | '<input type="button" value="Cite news" onclick="citeNews()" />'+ | |
− | + | '<input type="button" value="Named ref" onclick="citeNamedRef()" />'+ | |
− | + | '<input type="button" value="Error check" onclick="dispErrors()" />'+ | |
− | + | '<input type="button" value="Cancel" onclick="hideInitial()" />'+ | |
− | + | '<input type="button" value="TextTerm" onclick="textTerm()" /></div>'; | |
document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML; | document.getElementById('editform').innerHTML = selection + document.getElementById('editform').innerHTML; | ||
} | } | ||
Riga 86: | Riga 86: | ||
var months = ['January', 'February', 'March', 'April', 'May', 'June', | var months = ['January', 'February', 'March', 'April', 'May', 'June', | ||
− | + | 'July', 'August', 'September', 'October', 'November', 'December']; | |
var citeGlobalDateFormat = "<date> <monthname> <year>"; | var citeGlobalDateFormat = "<date> <monthname> <year>"; | ||
function getTime() { | function getTime() { | ||
Riga 132: | Riga 132: | ||
} | } | ||
− | var texttermall = | + | var texttermall = []; |
− | var texttermcur = | + | var texttermcur = []; |
− | var textterminput = | + | var textterminput = []; |
var poffset=null, prange=null, noffset=null, nrange=null; | var poffset=null, prange=null, noffset=null, nrange=null; | ||
var section = ''; | var section = ''; | ||
Riga 161: | Riga 161: | ||
function texttermfill(subtext) { | function texttermfill(subtext) { | ||
− | var ref = | + | var ref = []; |
this.term = ''; | this.term = ''; | ||
this.note= ''; | this.note= ''; | ||
Riga 189: | Riga 189: | ||
switch (j) | switch (j) | ||
{ | { | ||
− | + | case 0 : this.term = ref[1]; break; | |
− | + | case 1 : this.note = ref[1]; break; | |
− | + | case 2 : this.section = ref[1]; break; | |
− | + | default : | |
− | + | if(ref[1].match(/^ *?EnglishEntry *?= *?(.*) *?$/)) | |
− | + | this.englishentry = ref[1].replace(/^ *?EnglishEntry *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?IndexEntry *?= *?(.*) *?$/)) | |
− | + | this.indexentry = ref[1].replace(/^ *?IndexEntry *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?OtherIndexEntry *?= *?(.*) *?$/)) | |
− | + | this.otherindexentry = ref[1].replace(/^ *?OtherIndexEntry *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?OtherIndexEntryTwo *?= *?(.*) *?$/)) | |
− | + | this.otherindexentrytwo = ref[1].replace(/^ *?OtherIndexEntryTwo *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?OtherIndexEntryThree *?= *?(.*) *?$/)) | |
− | + | this.otherindexentrythree = ref[1].replace(/^ *?OtherIndexEntryThree *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?OtherIndexEntryFour *?= *?(.*) *?$/)) | |
− | + | this.otherindexentryfour = ref[1].replace(/^ *?OtherIndexEntryFour *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?OtherIndexEntryFive *?= *?(.*) *?$/)) | |
− | + | this.otherindexentryfive = ref[1].replace(/^ *?OtherIndexEntryFive *?= *?(.*) *?$/,"$1"); | |
− | + | else if(ref[1].match(/^ *?EnglishEntry *?= *?(.*) *?$/)) | |
− | + | this.englishentry = ref[1].replace(/^ *?EnglishEntry *?= *?(.*) *?$/,"$1"); | |
− | + | else if(j==3){ | |
− | + | this.subnote = ref[1]; | |
− | + | }else{ | |
− | + | alert("texttermfill error j=" + j + " ref1= " +ref[1]); | |
− | + | //console.log("texttermfill error j=" + j + " ref1= " +ref[1]); | |
− | + | } | |
} | } | ||
j++; | j++; | ||
Riga 221: | Riga 221: | ||
} | } | ||
} while (nr==true); | } while (nr==true); | ||
+ | |||
+ | this.indexentry_i=this.term; // Plural doesn't seem to be necessary | ||
+ | this.otherindexentry_oi=this.indexentry_i.replace(/(.*) (.*)/, "$2. $1"); | ||
//console.log("j=" + j + " term=" + this.term + " note=" + this.note + " section=" + this.section +" subnote=" + this.subnote +" indexentry=" + this.indexentry + " otherindexentry=" + this.otherindexentry); | //console.log("j=" + j + " term=" + this.term + " note=" + this.note + " section=" + this.section +" subnote=" + this.subnote +" indexentry=" + this.indexentry + " otherindexentry=" + this.otherindexentry); | ||
} | } | ||
Riga 240: | Riga 243: | ||
offset = textarea.selectionStart; | offset = textarea.selectionStart; | ||
range = textarea.selectionEnd - textarea.selectionStart; | range = textarea.selectionEnd - textarea.selectionStart; | ||
− | + | realltxtterms = /({{TextTerm)|({{NewTextTerm)/gm; // works, finds after Term | |
− | var lstxtterm = textarea.value.substring(0,textarea.selectionEnd). | + | var lstxtterm =-1; |
+ | subtextt= textarea.value.substring(0,textarea.selectionEnd); | ||
+ | while ((nbtxt=realltxtterms.exec(subtextt))){ lstxtterm=realltxtterms.lastIndex- nbtxt[0].length} | ||
+ | //var lstxtterm = textarea.value.substring(0,textarea.selectionEnd). search("{{TextTerm|{{NewTextTerm") ; // Just before the string. No regex | ||
var lstcltxtterm = textarea.value.substring(0,textarea.selectionStart). lastIndexOf("}}") ; //might be for another purpose than TextTerm | var lstcltxtterm = textarea.value.substring(0,textarea.selectionStart). lastIndexOf("}}") ; //might be for another purpose than TextTerm | ||
// Looking for the section | // Looking for the section | ||
Riga 247: | Riga 253: | ||
var psectione = textarea.value.substring(0,textarea.selectionEnd). lastIndexOf("===") ; // Just before the string. No regex | var psectione = textarea.value.substring(0,textarea.selectionEnd). lastIndexOf("===") ; // Just before the string. No regex | ||
if(psectione != -1){ | if(psectione != -1){ | ||
− | + | var psections = textarea.value.substring(0,psectione). lastIndexOf("===") ; // Just before the string. No regex | |
− | + | if(psections != -1){ | |
− | + | section = textarea.value.substring(psections,psectione+3).match(/^=== *?(\d{3}) *?===$/)[1]; | |
− | + | } | |
} | } | ||
//console.log(" section |" + section); | //console.log(" section |" + section); | ||
Riga 256: | Riga 262: | ||
if ( (-1 == lstxtterm) || ((-1 < lstxtterm) && (lstxtterm < lstcltxtterm)) ) { // @{{TextTerm ...@}}...(...).. | if ( (-1 == lstxtterm) || ((-1 < lstxtterm) && (lstxtterm < lstcltxtterm)) ) { // @{{TextTerm ...@}}...(...).. | ||
− | + | // {{Refnumber }} ....! | |
− | + | // alert("We are after outside a previous TextTerm or no TextTerm before:" + textarea.value.substring(0,textarea.selectionStart )); | |
− | + | texttermcur = new texttermfill("|" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | |
− | + | //console.log(" We want to fill with the selection=" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | |
− | + | // On se retrouve avec du texte à ajouter et le curseur inchangé à textarea.selectionStart | |
} else if ( (lstxtterm > lstcltxtterm) && (lstcltxtterm > -1) ) { // @}}... @{{TextTerm ... (...).. | } else if ( (lstxtterm > lstcltxtterm) && (lstcltxtterm > -1) ) { // @}}... @{{TextTerm ... (...).. | ||
− | + | //alert("We are within a TextTerm or no closing }}:" + textarea.value.substring(lstcltxtterm, lstxtterm)); | |
− | + | ||
− | + | // ( textarea.value.substring(lstxtterm, textarea.selectionStart). search(new RegExp("}}")) == -1) { | |
− | + | var endtxterm= textarea.value.substring(textarea.selectionStart, textarea.value.length). search("}}"); | |
− | + | if( endtxterm == -1) | |
− | + | error(" Error no closing TextTerm; should be fixed:" + textarea.value.substring(textarea.selectionStart, textarea.value.length)); | |
− | + | else{ | |
− | + | endtxterm = endtxterm + textarea.selectionStart +2 ; // }} included | |
− | + | // Looking for @{{TextTerm....}}@ | |
− | + | // alert("We are within textterm " + lstxtterm + " to " + endtxterm + " soit:" + textarea.value.substring(lstxtterm,endtxterm) ); | |
− | + | //console.log(" Replacing with form result:" + textarea.value.substring(lstxtterm+"{{TextTerm".length,endtxterm-"}}".length)); | |
− | + | texttermcur = new texttermfill(textarea.value.substring(lstxtterm+"{{TextTerm".length,endtxterm-"}}".length) ); | |
− | + | // On devrait remplacer {{TextTerm ...}} par la forme, soit de lstxtterm endtxtterm | |
− | + | // On se fout de la sélection originale et la repositionne sur toute l'étendue du textterm. | |
− | + | // alert("After null before textarea.selectionStart is" + textarea.selectionStart + " end=" + textarea.selectionEnd); | |
− | + | // alert(" selection is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | |
− | + | textarea.selectionStart = lstxtterm; | |
− | + | textarea.selectionEnd = endtxterm; | |
− | + | // alert("After null textarea.selectionStart is" + textarea.selectionStart + " end=" + textarea.selectionEnd); | |
− | + | // alert(" selection is now:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | |
− | + | } //en endtxtterm | |
} // end @}}... @{{TextTerm ... (...).. | } // end @}}... @{{TextTerm ... (...).. | ||
}else{ // coming from a previous or next | }else{ // coming from a previous or next | ||
Riga 288: | Riga 294: | ||
// alert(" After next selection is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | // alert(" After next selection is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | ||
// alert("Coming from a previous or next modifing selectionStart start is an offsetstart =" + offset + " and range=" + range) | // alert("Coming from a previous or next modifing selectionStart start is an offsetstart =" + offset + " and range=" + range) | ||
− | + | // Previous | |
− | + | // selectionStart selectionEnd | |
− | + | // > < | |
− | + | // ^....@{{TextTerm....#}}.................@{{TextTerm ...}}! | |
− | + | // !<-range-------->! | |
− | + | // #<-offset--------->! | |
− | + | // Next | |
− | + | // selectionStart selectionEnd | |
− | + | // > < | |
− | + | // ^....@{{TextTerm....#}}.................@{{TextTerm ...}}! | |
− | + | // !<--range------->! | |
− | + | // #<-offset--------->! | |
// alert(" Before textarea.selectionStart=" + textarea.selectionStart + " textarea.selectionEnd=" + textarea.selectionEnd); | // alert(" Before textarea.selectionStart=" + textarea.selectionStart + " textarea.selectionEnd=" + textarea.selectionEnd); | ||
//alert(" Before is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | //alert(" Before is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd)); | ||
textarea.selectionStart = (offset > 0 ? textarea.selectionEnd + offset : textarea.selectionStart + offset -range); | textarea.selectionStart = (offset > 0 ? textarea.selectionEnd + offset : textarea.selectionStart + offset -range); | ||
textarea.selectionEnd = textarea.selectionStart + range; | textarea.selectionEnd = textarea.selectionStart + range; | ||
− | + | // Looking for the section | |
section = ''; | section = ''; | ||
var psectione = textarea.value.substring(0,textarea.selectionEnd). lastIndexOf("===") ; // Just before the string. No regex | var psectione = textarea.value.substring(0,textarea.selectionEnd). lastIndexOf("===") ; // Just before the string. No regex | ||
if(psectione != -1){ | if(psectione != -1){ | ||
− | + | var psections = textarea.value.substring(0,psectione). lastIndexOf("===") ; // Just before the string. No regex | |
− | + | if(psections != -1){ | |
− | + | section = textarea.value.substring(psections,psectione+3).match(/^=== *?(\d{3}) *?===$/)[1]; | |
− | + | } | |
} | } | ||
//console.log(" section Other |" + section); | //console.log(" section Other |" + section); | ||
Riga 318: | Riga 324: | ||
// alert(" After textarea.selectionStart=" + textarea.selectionStart + " textarea.selectionEnd=" + textarea.selectionEnd); | // alert(" After textarea.selectionStart=" + textarea.selectionStart + " textarea.selectionEnd=" + textarea.selectionEnd); | ||
//console.log("textterm cur is:" + textarea.value.substring(textarea.selectionStart+"{{TextTerm".length,textarea.selectionEnd-"}}".length)); | //console.log("textterm cur is:" + textarea.value.substring(textarea.selectionStart+"{{TextTerm".length,textarea.selectionEnd-"}}".length)); | ||
− | texttermcur = new texttermfill(textarea.value.substring(textarea.selectionStart+"{{TextTerm".length,textarea.selectionEnd-"}}".length) ); | + | // We are at the beginning of a selection or of a {{TextTerm or NewTextTerm and we should know the length until | |
+ | if(textarea.value.substring(textarea.selectionStart,textarea.selectionEnd).match("{{TextTerm")){ | ||
+ | var ctermtype="TextTerm"; | ||
+ | }else if (textarea.value.substring(textarea.selectionStart,textarea.selectionEnd).match("{{NewTextTerm")){ | ||
+ | var ctermtype="NewTextTerm"; | ||
+ | }else | ||
+ | var ctermtype=""; | ||
+ | |||
+ | // texttermcur = new texttermfill(textarea.value.substring(textarea.selectionStart+"{{TextTerm".length,textarea.selectionEnd-"}}".length) ); | ||
+ | |||
+ | texttermcur = new texttermfill(textarea.value.substring(textarea.selectionStart+ctermtype.length,textarea.selectionEnd-"}}".length) ); | ||
} | } | ||
}else{ | }else{ | ||
Riga 331: | Riga 347: | ||
// pstart pend | // pstart pend | ||
// !<--------offsetpstart------------>! | // !<--------offsetpstart------------>! | ||
− | // #<-offsetpsend---->! | + | // #<-offsetpsend---->! |
− | + | //realltxtterms = /({{TextTerm[^}]+)|({{NewTextTerm[^}]+)/gm; // works, finds end of }} | |
− | var pstart = textarea.value.substring(0,textarea.selectionStart). | + | realltxtterms = /({{TextTerm)|({{NewTextTerm)/gm; // works, finds after Term |
+ | var pstart=-1; | ||
+ | subtextt= textarea.value.substring(0,textarea.selectionStart); | ||
+ | while ((nbtxt=realltxtterms.exec(subtextt))){ pstart=realltxtterms.lastIndex- nbtxt[0].length} | ||
+ | // var pstart = textarea.value.substring(0,textarea.selectionStart). search("{{TextTerm|{{NewTextTerm"); | ||
if ( pstart == -1) { // No previous | if ( pstart == -1) { // No previous | ||
// alert( "NO previous : " + textarea.value.substring(0,textarea.selectionStart)); | // alert( "NO previous : " + textarea.value.substring(0,textarea.selectionStart)); | ||
Riga 340: | Riga 360: | ||
}else{ | }else{ | ||
// alert( "Previous pstart=" + pstart + " selectionStart=" + textarea.selectionStart + " pstart:selectionStart=" + textarea.value.substring(pstart,textarea.selectionStart)); | // alert( "Previous pstart=" + pstart + " selectionStart=" + textarea.selectionStart + " pstart:selectionStart=" + textarea.value.substring(pstart,textarea.selectionStart)); | ||
+ | // if(textarea.value.substring(pstart,textarea.selectionStart).match("{{TextTerm")){ | ||
+ | if(textarea.value.substring(pstart-"{{TextTerm".length,pstart).match("{{TextTerm")){ | ||
+ | var ptermtype="TextTerm"; | ||
+ | }else if (textarea.value.substring(pstart-"{{NewTextTerm".length,pstart).match("{{NewTextTerm")){ | ||
+ | var ptermtype="NewTextTerm"; | ||
+ | }else | ||
+ | var ptermtype=""; | ||
var pend = textarea.value.substring(pstart,textarea.selectionStart). search("}}") ; // Regex ? | var pend = textarea.value.substring(pstart,textarea.selectionStart). search("}}") ; // Regex ? | ||
// alert( "Previous pstart=" + pstart + " pend= " + pend + " selectionStart=" + textarea.selectionStart + " pstart:selectionStart=" + textarea.value.substring(pstart,textarea.selectionStart)); | // alert( "Previous pstart=" + pstart + " pend= " + pend + " selectionStart=" + textarea.selectionStart + " pstart:selectionStart=" + textarea.value.substring(pstart,textarea.selectionStart)); | ||
Riga 357: | Riga 384: | ||
// >< nrange > | // >< nrange > | ||
// #<-offsetnstart--->! | // #<-offsetnstart--->! | ||
− | var nstart = textarea.value.substring(textarea.selectionEnd,textarea.length). search("{{TextTerm") | + | var nstart = textarea.value.substring(textarea.selectionEnd,textarea.value.length). search("{{TextTerm|{{NewTextTerm") ; |
if ( nstart == -1) { // No next | if ( nstart == -1) { // No next | ||
− | // alert( "NO next TextTerm : " + textarea.value.substring(textarea.selectionEnd,textarea.length)); | + | // alert( "NO next TextTerm : " + textarea.value.substring(textarea.selectionEnd,textarea.value.length)); |
noffset = null; | noffset = null; | ||
nrange = null; | nrange = null; | ||
}else{ | }else{ | ||
− | var nend = textarea.value.substring(textarea.selectionEnd + nstart,textarea.length). search("}}") ; | + | if(textarea.value.substring(nstart,textarea.selectionStart).match("{{TextTerm")){ |
+ | var ntermtype="TextTerm"; | ||
+ | }else if (textarea.value.substring(textarea.selectionStart,textarea.selectionEnd).match("{{NewTextTerm")){ | ||
+ | var ntermtype="NewTextTerm"; | ||
+ | }else | ||
+ | var ntermtype=""; | ||
+ | var nend = textarea.value.substring(textarea.selectionEnd + nstart,textarea.value.length). search("}}") ; | ||
if ( nend == -1) { // Strange no ending | if ( nend == -1) { // Strange no ending | ||
− | stop( "NO ending }} in previous : " + textarea.value.substring(textarea.selectionEnd,textarea.length)) ; | + | stop( "NO ending }} in previous : " + textarea.value.substring(textarea.selectionEnd,textarea.value.length)) ; |
}else{ | }else{ | ||
noffset = nstart ; | noffset = nstart ; | ||
Riga 376: | Riga 409: | ||
oldFormHide(); | oldFormHide(); | ||
− | template = "TextTerm"; | + | if (!ctermtype) |
+ | template = "TextTerm"; | ||
+ | else | ||
+ | template = ctermtype; | ||
var legend; | var legend; | ||
if (template == "TextTerm") { | if (template == "TextTerm") { | ||
legend = "TextTerm source"; | legend = "TextTerm source"; | ||
+ | } else if (template == "NewTextTerm"){ | ||
+ | legend = "NewTextTerm source"; | ||
} else { | } else { | ||
legend = "Cite news source"; | legend = "Cite news source"; | ||
Riga 386: | Riga 424: | ||
numforms++; | numforms++; | ||
+ | var star_i=""; | ||
+ | var star_oi=""; | ||
+ | if(texttermcur.indexentry == ""){ | ||
+ | if(texttermcur.indexentry != texttermcur.indexentry_i){ | ||
+ | star_i=" style='background-color:red'"; //<td style="background-color:red"> | ||
+ | texttermcur.indexentry = texttermcur.indexentry_i; | ||
+ | } | ||
+ | } else { | ||
+ | star_i=""; | ||
+ | } | ||
+ | if(texttermcur.otherindexentry == ""){ | ||
+ | if(texttermcur.otherindexentry != texttermcur.otherindexentry_oi){ | ||
+ | star_oi=" style='background-color:red'"; // <td style="background-color:red"> | ||
+ | texttermcur.otherindexentry = texttermcur.otherindexentry_oi; | ||
+ | } | ||
+ | } else { | ||
+ | star_oi=""; | ||
+ | } | ||
form = '<div id="citediv'+numforms+'">'+ | form = '<div id="citediv'+numforms+'">'+ | ||
'<fieldset><legend>'+legend+'</legend>'+ | '<fieldset><legend>'+legend+'</legend>'+ | ||
Riga 402: | Riga 458: | ||
'<td width="40"><input type="text" tabindex=1 style="width:10%" id="section" value= "' + | '<td width="40"><input type="text" tabindex=1 style="width:10%" id="section" value= "' + | ||
texttermcur.section + '"></td>'+ | texttermcur.section + '"></td>'+ | ||
− | '<td width="120"><label for="indexentry"> IndexEntry: </label></td>'+ | + | '<td width="120"'+star_i+'><label for="indexentry"> IndexEntry: </label></td>'+ |
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="indexentry" value= "' + | '<td width="400"><input type="text" tabindex=1 style="width:100%" id="indexentry" value= "' + | ||
texttermcur.indexentry + '"></td></tr>'+ | texttermcur.indexentry + '"></td></tr>'+ | ||
− | '<tr><td width="120"><label for="otherindexentry"> OtherIndexEntry: </label></td>'+ | + | '<tr><td width="120"'+star_oi+'><label for="otherindexentry"> OtherIndexEntry:: </label></td>'+ |
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentry" value= "' + | '<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentry" value= "' + | ||
texttermcur.otherindexentry + '"></td>'+ | texttermcur.otherindexentry + '"></td>'+ | ||
Riga 664: | Riga 720: | ||
var savepos= textarea.selectionStart; | var savepos= textarea.selectionStart; | ||
if ('selectionStart' in textarea) { | if ('selectionStart' in textarea) { | ||
− | textarea.value=textarea.value.substring(0,textarea.selectionStart) + texttermchain + textarea.value.substring(textarea.selectionEnd, textarea.length); | + | textarea.value=textarea.value.substring(0,textarea.selectionStart) + texttermchain + textarea.value.substring(textarea.selectionEnd, textarea.value.length); |
//insertTags(texttermchain, '', ''); | //insertTags(texttermchain, '', ''); | ||
textarea.selectionStart = savepos; | textarea.selectionStart = savepos; | ||
Riga 699: | Riga 755: | ||
} | } | ||
cite = citebegin + citename + citeinner + "numforms=" + numforms + "}}</ref>"; | cite = citebegin + citename + citeinner + "numforms=" + numforms + "}}</ref>"; | ||
+ | $("#wpTextbox1").focus(); | ||
insertTags(cite, '', ''); | insertTags(cite, '', ''); | ||
document.getElementById('citediv'+numforms).style.display = 'none'; | document.getElementById('citediv'+numforms).style.display = 'none'; | ||
Riga 716: | Riga 773: | ||
regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //' | regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //' | ||
} | } | ||
− | var namedrefs = | + | var namedrefs = []; |
var i=0; | var i=0; | ||
var nr=true; | var nr=true; | ||
Riga 768: | Riga 825: | ||
name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value; | name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value; | ||
ref = '<ref name="'+name+'" />'; | ref = '<ref name="'+name+'" />'; | ||
+ | $("#wpTextbox1").focus(); | ||
insertTags(ref, '', ''); | insertTags(ref, '', ''); | ||
document.getElementById('citediv'+numforms).style.display = 'none'; | document.getElementById('citediv'+numforms).style.display = 'none'; | ||
Riga 780: | Riga 838: | ||
text = document.getElementById('wpTextbox1').value; | text = document.getElementById('wpTextbox1').value; | ||
regex = /< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim //" | regex = /< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim //" | ||
− | var allrefs = | + | var allrefs = []; |
var i=0; | var i=0; | ||
var nr=true; | var nr=true; | ||
Riga 811: | Riga 869: | ||
function errorCheck() { | function errorCheck() { | ||
var allrefs = getAllRefs(); | var allrefs = getAllRefs(); | ||
− | var allrefscontent = | + | var allrefscontent = []; |
− | var samecontentexclude = | + | var samecontentexclude = []; |
var sx=0; | var sx=0; | ||
− | var templateexclude = | + | var templateexclude = []; |
var tx=0; | var tx=0; | ||
var skipcheck = false; | var skipcheck = false; | ||
Riga 822: | Riga 880: | ||
} | } | ||
var namedrefs = getNamedRefs(false); | var namedrefs = getNamedRefs(false); | ||
− | var errorlist = | + | var errorlist = []; |
var q=0; | var q=0; | ||
unclosed = document.getElementById('unclosed').checked; | unclosed = document.getElementById('unclosed').checked; | ||
Riga 874: | Riga 932: | ||
} | } | ||
if (repeated) { | if (repeated) { | ||
− | var repeatnameexclude = | + | var repeatnameexclude = []; |
var rx=0; | var rx=0; | ||
for (var k=0; k<namedrefs.length; k++) { | for (var k=0; k<namedrefs.length; k++) { | ||
Riga 898: | Riga 956: | ||
} | } | ||
if (undef) { | if (undef) { | ||
− | var undefexclude = | + | var undefexclude = []; |
var ux=0; | var ux=0; | ||
for (var p=0; p<namedrefcalls.length; p++) { | for (var p=0; p<namedrefcalls.length; p++) { |
Versione attuale delle 20:44, 7 mag 2019
var numforms = 0;
var wikEdAutoUpdateUrl;
function refbuttons() {
if (mw.toolbar && (document.getElementById('toolbar') || document.getElementById('wikiEditor-ui-toolbar'))/* && wikEdAutoUpdateUrl == null*/) {
if (document.getElementById('toolbar')) {
button = document.createElement('a');
button.href = "javascript:easyCiteMain()";
button.title = "Insert citation";
buttonimage = document.createElement('img');
buttonimage.src = "http://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 = "http://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)
document.getElementById('wikiEditor-ui-toolbar').childNodes[0].childNodes[1].appendChild(button);
//document.getElementById('reftoolbar-button').onclick = easyCiteMain;
$(document).on('click', '#reftoolbar-button', function() { easyCiteMain(); });
}
if (navigator.userAgent.indexOf('MSIE') == -1) {
//alert("NO MSIE");
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") );
citemain.appendChild( addOption("textTerm()", "TextTerm") );
document.getElementById('wpTextbox1').parentNode.insertBefore(citemain, document.getElementById('wpTextbox1'));
}
else {
selection = '<div id="citeselect" style="display:none"><input type="button" value="Cite web" onclick="citeWeb()" />'+
'<input type="button" value="Cite book" onclick="citeBook()" />'+
'<input type="button" value="Cite journal" onclick="citeJournal()" />'+
'<input type="button" value="Cite news" onclick="citeNews()" />'+
'<input type="button" value="Named ref" onclick="citeNamedRef()" />'+
'<input type="button" value="Error check" onclick="dispErrors()" />'+
'<input type="button" value="Cancel" onclick="hideInitial()" />'+
'<input type="button" value="TextTerm" onclick="textTerm()" /></div>';
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 = "<date> <monthname> <year>";
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('<date>', date);
datestr = datestr.replace('<month>', month);
datestr = datestr.replace('<zdate>', zdate);
datestr = datestr.replace('<zmonth>', zmonth);
datestr = datestr.replace('<monthname>', months[DT.getUTCMonth()]);
datestr = datestr.replace('<year>', DT.getUTCFullYear().toString());
return (datestr);
}
function citeWeb() {
citeNewsWeb("cite web");
}
function citeNews() {
citeNewsWeb("cite news");
}
function textTerm() {
textTermf();
}
var texttermall = [];
var texttermcur = [];
var textterminput = [];
var poffset=null, prange=null, noffset=null, nrange=null;
var section = '';
var subnote = '';
function textTermf() {
textTermform(null,null);
}
function nexttextterm() {
//console.log("nexttexterm before noffset :" + noffset + " nrange=" + nrange);
savetextterms(); // Save if changed
if(noffset){ // If there is a next
textTermform(noffset, nrange); // Call with offset !{{TextTerm }}
}
}
function previoustextterm() {
//console.log("previoustexterm before poffset :" + poffset + " prange=" + prange);
savetextterms();
if(poffset){ // If there is a next
textTermform(poffset, prange); // Call with offset !{{TextTerm }}
}
}
function texttermfill(subtext) {
var ref = [];
this.term = '';
this.note= '';
this.section= '';
if(section != '')
this.section = section;
this.subnote = '';
if(subnote != '')
this.subnote = subnote;
this.englishentry= '';
this.indexentry= '';
this.otherindexentry = '';
this.otherindexentrytwo = '';
this.otherindexentrythree = '';
this.otherindexentryfour = '';
this.otherindexentryfive = '';
var j=0;
var nr=true;
regexbar= /\|([^|]*)/gm
//regexbar =/\|((.)*?)(?=[\||\n])/gm //"|programmes de population|1|933|IndexEntry=programme de population|OtherIndexEntry=population, programme de"
do {
ref = regexbar.exec(subtext);
//console.log(" subtext=" + subtext);
//console.log(" ref=" + ref);
if(ref != null){
switch (j)
{
case 0 : this.term = ref[1]; break;
case 1 : this.note = ref[1]; break;
case 2 : this.section = ref[1]; break;
default :
if(ref[1].match(/^ *?EnglishEntry *?= *?(.*) *?$/))
this.englishentry = ref[1].replace(/^ *?EnglishEntry *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?IndexEntry *?= *?(.*) *?$/))
this.indexentry = ref[1].replace(/^ *?IndexEntry *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?OtherIndexEntry *?= *?(.*) *?$/))
this.otherindexentry = ref[1].replace(/^ *?OtherIndexEntry *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?OtherIndexEntryTwo *?= *?(.*) *?$/))
this.otherindexentrytwo = ref[1].replace(/^ *?OtherIndexEntryTwo *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?OtherIndexEntryThree *?= *?(.*) *?$/))
this.otherindexentrythree = ref[1].replace(/^ *?OtherIndexEntryThree *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?OtherIndexEntryFour *?= *?(.*) *?$/))
this.otherindexentryfour = ref[1].replace(/^ *?OtherIndexEntryFour *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?OtherIndexEntryFive *?= *?(.*) *?$/))
this.otherindexentryfive = ref[1].replace(/^ *?OtherIndexEntryFive *?= *?(.*) *?$/,"$1");
else if(ref[1].match(/^ *?EnglishEntry *?= *?(.*) *?$/))
this.englishentry = ref[1].replace(/^ *?EnglishEntry *?= *?(.*) *?$/,"$1");
else if(j==3){
this.subnote = ref[1];
}else{
alert("texttermfill error j=" + j + " ref1= " +ref[1]);
//console.log("texttermfill error j=" + j + " ref1= " +ref[1]);
}
}
j++;
} else {
nr=false;
}
} while (nr==true);
this.indexentry_i=this.term; // Plural doesn't seem to be necessary
this.otherindexentry_oi=this.indexentry_i.replace(/(.*) (.*)/, "$2. $1");
//console.log("j=" + j + " term=" + this.term + " note=" + this.note + " section=" + this.section +" subnote=" + this.subnote +" indexentry=" + this.indexentry + " otherindexentry=" + this.otherindexentry);
}
function textTermform(offset,range){
// We search for TextTerm in wptexbox1 from cursor position (offset) and if selected (range)
// If called by a previous or next, they are not null {{TextTerm<-......>}}
// if outside of a TextTerm template, we will fill with the term with the selection
// in any case we compute the previous nextstart and previus end and next offset not real.
// if inside a TextTerm we fill the form
// if saveterm is necessary, we save and exit.
// if previous or next, we save if necessary and we call textTermform with a new offset >0 (next) or <0 (previous) and range
//
var textarea= document.getElementById('wpTextbox1');
if ('selectionStart' in textarea) {
if (offset == null){ // range should be null too
offset = textarea.selectionStart;
range = textarea.selectionEnd - textarea.selectionStart;
realltxtterms = /({{TextTerm)|({{NewTextTerm)/gm; // works, finds after Term
var lstxtterm =-1;
subtextt= textarea.value.substring(0,textarea.selectionEnd);
while ((nbtxt=realltxtterms.exec(subtextt))){ lstxtterm=realltxtterms.lastIndex- nbtxt[0].length}
//var lstxtterm = textarea.value.substring(0,textarea.selectionEnd). search("{{TextTerm|{{NewTextTerm") ; // Just before the string. No regex
var lstcltxtterm = textarea.value.substring(0,textarea.selectionStart). lastIndexOf("}}") ; //might be for another purpose than TextTerm
// Looking for the section
section = '';
var psectione = textarea.value.substring(0,textarea.selectionEnd). lastIndexOf("===") ; // Just before the string. No regex
if(psectione != -1){
var psections = textarea.value.substring(0,psectione). lastIndexOf("===") ; // Just before the string. No regex
if(psections != -1){
section = textarea.value.substring(psections,psectione+3).match(/^=== *?(\d{3}) *?===$/)[1];
}
}
//console.log(" section |" + section);
//textarea.value.substring(0,textarea.selectionStart). search(new RegExp("((({{TextTerm[^}]+)[^{]+)+)");
if ( (-1 == lstxtterm) || ((-1 < lstxtterm) && (lstxtterm < lstcltxtterm)) ) { // @{{TextTerm ...@}}...(...)..
// {{Refnumber }} ....!
// alert("We are after outside a previous TextTerm or no TextTerm before:" + textarea.value.substring(0,textarea.selectionStart ));
texttermcur = new texttermfill("|" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
//console.log(" We want to fill with the selection=" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
// On se retrouve avec du texte à ajouter et le curseur inchangé à textarea.selectionStart
} else if ( (lstxtterm > lstcltxtterm) && (lstcltxtterm > -1) ) { // @}}... @{{TextTerm ... (...)..
//alert("We are within a TextTerm or no closing }}:" + textarea.value.substring(lstcltxtterm, lstxtterm));
// ( textarea.value.substring(lstxtterm, textarea.selectionStart). search(new RegExp("}}")) == -1) {
var endtxterm= textarea.value.substring(textarea.selectionStart, textarea.value.length). search("}}");
if( endtxterm == -1)
error(" Error no closing TextTerm; should be fixed:" + textarea.value.substring(textarea.selectionStart, textarea.value.length));
else{
endtxterm = endtxterm + textarea.selectionStart +2 ; // }} included
// Looking for @{{TextTerm....}}@
// alert("We are within textterm " + lstxtterm + " to " + endtxterm + " soit:" + textarea.value.substring(lstxtterm,endtxterm) );
//console.log(" Replacing with form result:" + textarea.value.substring(lstxtterm+"{{TextTerm".length,endtxterm-"}}".length));
texttermcur = new texttermfill(textarea.value.substring(lstxtterm+"{{TextTerm".length,endtxterm-"}}".length) );
// On devrait remplacer {{TextTerm ...}} par la forme, soit de lstxtterm endtxtterm
// On se fout de la sélection originale et la repositionne sur toute l'étendue du textterm.
// alert("After null before textarea.selectionStart is" + textarea.selectionStart + " end=" + textarea.selectionEnd);
// alert(" selection is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
textarea.selectionStart = lstxtterm;
textarea.selectionEnd = endtxterm;
// alert("After null textarea.selectionStart is" + textarea.selectionStart + " end=" + textarea.selectionEnd);
// alert(" selection is now:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
} //en endtxtterm
} // end @}}... @{{TextTerm ... (...)..
}else{ // coming from a previous or next
// alert("After Next textarea.selectionStart is" + textarea.selectionStart + " end=" + textarea.selectionEnd);
// alert(" After next selection is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
// alert("Coming from a previous or next modifing selectionStart start is an offsetstart =" + offset + " and range=" + range)
// Previous
// selectionStart selectionEnd
// > <
// ^....@{{TextTerm....#}}.................@{{TextTerm ...}}!
// !<-range-------->!
// #<-offset--------->!
// Next
// selectionStart selectionEnd
// > <
// ^....@{{TextTerm....#}}.................@{{TextTerm ...}}!
// !<--range------->!
// #<-offset--------->!
// alert(" Before textarea.selectionStart=" + textarea.selectionStart + " textarea.selectionEnd=" + textarea.selectionEnd);
//alert(" Before is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
textarea.selectionStart = (offset > 0 ? textarea.selectionEnd + offset : textarea.selectionStart + offset -range);
textarea.selectionEnd = textarea.selectionStart + range;
// Looking for the section
section = '';
var psectione = textarea.value.substring(0,textarea.selectionEnd). lastIndexOf("===") ; // Just before the string. No regex
if(psectione != -1){
var psections = textarea.value.substring(0,psectione). lastIndexOf("===") ; // Just before the string. No regex
if(psections != -1){
section = textarea.value.substring(psections,psectione+3).match(/^=== *?(\d{3}) *?===$/)[1];
}
}
//console.log(" section Other |" + section);
// alert(" After is:" + textarea.value.substring(textarea.selectionStart,textarea.selectionEnd));
// alert(" After textarea.selectionStart=" + textarea.selectionStart + " textarea.selectionEnd=" + textarea.selectionEnd);
//console.log("textterm cur is:" + textarea.value.substring(textarea.selectionStart+"{{TextTerm".length,textarea.selectionEnd-"}}".length));
// We are at the beginning of a selection or of a {{TextTerm or NewTextTerm and we should know the length until |
if(textarea.value.substring(textarea.selectionStart,textarea.selectionEnd).match("{{TextTerm")){
var ctermtype="TextTerm";
}else if (textarea.value.substring(textarea.selectionStart,textarea.selectionEnd).match("{{NewTextTerm")){
var ctermtype="NewTextTerm";
}else
var ctermtype="";
// texttermcur = new texttermfill(textarea.value.substring(textarea.selectionStart+"{{TextTerm".length,textarea.selectionEnd-"}}".length) );
texttermcur = new texttermfill(textarea.value.substring(textarea.selectionStart+ctermtype.length,textarea.selectionEnd-"}}".length) );
}
}else{
alert("No selectionStart Internet Explorer < 9?");
}
// Looking for previous and next
// Previous
// ^....@{{TextTerm....#}}.................@{{TextTerm ...}}!
// poffset
// < prange ><
// >< ><
// pstart pend
// !<--------offsetpstart------------>!
// #<-offsetpsend---->!
//realltxtterms = /({{TextTerm[^}]+)|({{NewTextTerm[^}]+)/gm; // works, finds end of }}
realltxtterms = /({{TextTerm)|({{NewTextTerm)/gm; // works, finds after Term
var pstart=-1;
subtextt= textarea.value.substring(0,textarea.selectionStart);
while ((nbtxt=realltxtterms.exec(subtextt))){ pstart=realltxtterms.lastIndex- nbtxt[0].length}
// var pstart = textarea.value.substring(0,textarea.selectionStart). search("{{TextTerm|{{NewTextTerm");
if ( pstart == -1) { // No previous
// alert( "NO previous : " + textarea.value.substring(0,textarea.selectionStart));
poffset = null;
prange = null;
}else{
// alert( "Previous pstart=" + pstart + " selectionStart=" + textarea.selectionStart + " pstart:selectionStart=" + textarea.value.substring(pstart,textarea.selectionStart));
// if(textarea.value.substring(pstart,textarea.selectionStart).match("{{TextTerm")){
if(textarea.value.substring(pstart-"{{TextTerm".length,pstart).match("{{TextTerm")){
var ptermtype="TextTerm";
}else if (textarea.value.substring(pstart-"{{NewTextTerm".length,pstart).match("{{NewTextTerm")){
var ptermtype="NewTextTerm";
}else
var ptermtype="";
var pend = textarea.value.substring(pstart,textarea.selectionStart). search("}}") ; // Regex ?
// alert( "Previous pstart=" + pstart + " pend= " + pend + " selectionStart=" + textarea.selectionStart + " pstart:selectionStart=" + textarea.value.substring(pstart,textarea.selectionStart));
if ( pend == -1) { // Strange no ending
stop( "NO ending }} in previous : " + textarea.value.substring(0,textarea.selectionStart));
}else{
prange = pend + 2; // }} included
poffset = pstart + prange - textarea.selectionStart; // should be negative
// alert( " prange =" + prange + " poffset=" + poffset);
}
}
// Next
// ^....@{{TextTerm....#}}.................@{{TextTerm ...}}!
// !<--------offsetnend-------------->!
// #<-offsetnstart--->!
// noffset
// >< nrange >
// #<-offsetnstart--->!
var nstart = textarea.value.substring(textarea.selectionEnd,textarea.value.length). search("{{TextTerm|{{NewTextTerm") ;
if ( nstart == -1) { // No next
// alert( "NO next TextTerm : " + textarea.value.substring(textarea.selectionEnd,textarea.value.length));
noffset = null;
nrange = null;
}else{
if(textarea.value.substring(nstart,textarea.selectionStart).match("{{TextTerm")){
var ntermtype="TextTerm";
}else if (textarea.value.substring(textarea.selectionStart,textarea.selectionEnd).match("{{NewTextTerm")){
var ntermtype="NewTextTerm";
}else
var ntermtype="";
var nend = textarea.value.substring(textarea.selectionEnd + nstart,textarea.value.length). search("}}") ;
if ( nend == -1) { // Strange no ending
stop( "NO ending }} in previous : " + textarea.value.substring(textarea.selectionEnd,textarea.value.length)) ;
}else{
noffset = nstart ;
nrange = nend +2 ;// }}
}
}
// We do have offset or null, as well formfilled with a selection.
oldFormHide();
if (!ctermtype)
template = "TextTerm";
else
template = ctermtype;
var legend;
if (template == "TextTerm") {
legend = "TextTerm source";
} else if (template == "NewTextTerm"){
legend = "NewTextTerm source";
} else {
legend = "Cite news source";
}
newtime = getTime();
numforms++;
var star_i="";
var star_oi="";
if(texttermcur.indexentry == ""){
if(texttermcur.indexentry != texttermcur.indexentry_i){
star_i=" style='background-color:red'"; //<td style="background-color:red">
texttermcur.indexentry = texttermcur.indexentry_i;
}
} else {
star_i="";
}
if(texttermcur.otherindexentry == ""){
if(texttermcur.otherindexentry != texttermcur.otherindexentry_oi){
star_oi=" style='background-color:red'"; // <td style="background-color:red">
texttermcur.otherindexentry = texttermcur.otherindexentry_oi;
}
} else {
star_oi="";
}
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>'+legend+'</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td><label for="term"> *Term or expression: </label></td>'+
'<td colspan="3"><input type="text" tabindex=1 style="width:100%" id="term" value= "' +
texttermcur.term + '"></tr>'+
'<tr><td width="100"><label for="note"> *Note number (1, 2 etc .): </label></td>'+
'<td width="40"><input type="text" tabindex=1 style="width:10%" id="note" value= "' +
texttermcur.note + '"></td>'+
'<td width="100"><label for="subnote"> Subnote (2): </label></td>'+
'<td width="40"><input type="text" tabindex=1 style="width:10%" id="subnote" value= "' +
texttermcur.subnote + '"></td></tr>'+
'<tr><td width="300"><label for="section"> Section (102, 933 etc.): </label></td>'+
'<td width="40"><input type="text" tabindex=1 style="width:10%" id="section" value= "' +
texttermcur.section + '"></td>'+
'<td width="120"'+star_i+'><label for="indexentry"> IndexEntry: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="indexentry" value= "' +
texttermcur.indexentry + '"></td></tr>'+
'<tr><td width="120"'+star_oi+'><label for="otherindexentry"> OtherIndexEntry:: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentry" value= "' +
texttermcur.otherindexentry + '"></td>'+
'<td width="120"><label for="otherindexentrytwo"> OtherIndexEntryTwo: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentrytwo" value= "' +
texttermcur.otherindexentrytwo + '"></td></tr>'+
'<tr><td width="120"><label for="otherindexentrythree"> OtherIndexEntryThree: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentrythree" value= "' +
texttermcur.otherindexentrythree + '"></td>'+
'<td width="120"><label for="otherindexentryfour"> OtherIndexEntryFour: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentryfour" value= "' +
texttermcur.otherindexentryfour + '"></td></tr>'+
'<tr><td width="120"><label for="otherindexentryfive"> OtherIndexEntryFive: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="otherindexentryfive" value= "' +
texttermcur.otherindexentryfive + '"></td>'+
'<td width="120"><label for="englishentry"> EnglishEntry (for Chinese and Japanese): </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="englishentry" value= "' +
texttermcur.englishentry + '"></td></tr>'+
'</table>'+
'<input type="button" id="previous" value="(save &) previous TextTerm" onClick="previoustextterm()">'+
'<input type="button" value="(save &) exit" onClick="savetextterms()">'+
'<input type="button" id="next" value="(save &) next TextTerm" onClick="nexttextterm()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
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 = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>'+legend+'</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="url"> URL: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="title"> Title: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td></tr>'+
'<tr><td width="120"><label for="last"> Last name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="last"></td>'+
'<td width="120"><label for="first"> First name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors"> Coauthors: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="date"> Publication date: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="date"></td></tr>'+
'<tr><td width="120"><label for="work"> Work: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="work"></td>'+
'<td width="120"><label for="publisher"> Publisher: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td></tr>'+
'<tr><td width="120"><label for="pages"> Pages: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="pages"></td>'+
'<td width="120"><label for="language"> Language: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="language"></td></tr>'+
'<tr><td width="120"><label for="accessdate"> Access date: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate" value="'+ newtime +'"></td>'+
'<td width="120"><label for="location"> Location: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="location"></td></tr>'+
'<tr><td width="120"><label for="refname"> Reference name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="refname"></td></tr>'+
'</table>'+
'<input type="button" value="Add citation" onClick="addcites()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function citeBook() {
oldFormHide();
template = "cite book";
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>Cite book source</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="last"> Last name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="last"></td>'+
'<td width="120"><label for="first"> First name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors"> Coauthors: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="others"> Others: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="others"></td></tr>'+
'<tr><td width="120"><label for="title"> Title: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td>'+
'<td width="120"><label for="editor"> Editor: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="editor"></td></tr>'+
'<tr><td width="120"><label for="publisher"> Publisher: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="location"> Location: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="location"></td></tr>'+
'<tr><td width="120"><label for="date"> Publication date: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="date"></td>'+
'<td width="120"><label for="edition"> Edition: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="edition"></td></tr>'+
'<tr><td width="120"><label for="series"> Series: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="series"></td>'+
'<td width="120"><label for="volume"> Volume: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="volume"></td></tr>'+
'<tr><td width="120"><label for="pages"> Pages: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="pages"></td>'+
'<td width="120"><label for="chapter"> Chapter: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="chapter"></td></tr>'+
'<tr><td width="120"><label for="isbn"> ISBN: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="isbn"></td>'+
'<td width="120"><label for="oclc"> OCLC: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="oclc"></td></tr>'+
'<tr><td width="120"><label for="url"> URL: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate"> Access date: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate"></td></tr>'+
'<tr><td width="120"><label for="language"> Language: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="language"></td>'+
'<td width="120"><label for="refname"> Reference name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="refname"></td></tr>'+
'</table>'+
'<input type="button" value="Add citation" onClick="addcites()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function citeJournal() {
oldFormHide();
template = "cite journal";
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>Cite book source</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="last"> Last name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="last"></td>'+
'<td width="120"><label for="first"> First name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors"> Coauthors: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="date"> Publication date: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="date"></td></tr>'+
'<tr><td width="120"><label for="title"> Title: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td>'+
'<td width="120"><label for="journal"> Journal: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="journal"></td></tr>'+
'<tr><td width="120"><label for="publisher"> Publisher: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="location"> Location: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="location"></td></tr>'+
'<tr><td width="120"><label for="volume"> Volume: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="volume"></td>'+
'<td width="120"><label for="issue"> Issue: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="issue"></td></tr>'+
'<tr><td width="120"><label for="pages"> Pages: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="pages"></td>'+
'<td width="120"><label for="issn"> ISSN: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="issn"></td></tr>'+
'<tr><td width="120"><label for="oclc"> OCLC: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="oclc"></td>'+
'<td width="120"><label for="language"> Language: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="language"></td></tr>'+
'<tr><td width="120"><label for="url"> URL: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate"> Access date: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate"></td></tr>'+
'<tr><td width="120"><label for="refname"> Reference name: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="refname"></td></tr>'+
'</table>'+
'<input type="button" value="Add citation" onClick="addcites()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function saveinput(terminput) {
// terminput = document.getElementById('citediv'+numforms).getElementsByTagName('input');
this.term = '';
this.note= '';
this.section = '';
this.indexentry= '';
this.otherindexentry = '';
this.otherindexentrytwo = '';
this.otherindexentrythree = '';
this.otherindexentryfour = '';
this.otherindexentryfive = '';
this.englishentry = '';
for (var i=0; i<terminput.length-1; i++) {
if (terminput[i].id == "template" ){
;
}else if (terminput[i].id == "term" ){
this.term = terminput[i].value;
}else if(terminput[i].id == "note"){
this.note = terminput[i].value;
}else if(terminput[i].id == "section"){
this.section = terminput[i].value;
}else if(terminput[i].id == "subnote"){
this.subnote = terminput[i].value;
}else if(terminput[i].id == "indexentry"){
this.indexentry = terminput[i].value;
}else if(terminput[i].id == "otherindexentry"){
this.otherindexentry = terminput[i].value;
}else if(terminput[i].id == "otherindexentrytwo"){
this.otherindexentrytwo = terminput[i].value;
}else if(terminput[i].id == "otherindexentrythree"){
this.otherindexentrythree = terminput[i].value;
}else if(terminput[i].id == "otherindexentryfour"){
this.otherindexentryfour = terminput[i].value;
}else if(terminput[i].id == "otherindexentryfive"){
this.otherindexentryfive = terminput[i].value;
}else if(terminput[i].id == "englishentry"){
this.englishentry = terminput[i].value;
}else{
;;//alert(" SaveInput terminput[i].id = " + terminput[i].id + " terminput[i].value =" + terminput[i].value);
}
}
}
function savetextterms(template) {
var txtterminput = document.getElementById('citediv'+numforms).getElementsByTagName('input');
textterminput = new saveinput(txtterminput);
//alert("texttermcur=" + texttermcur);
//alert("textterminput=" + textterminput);
// Testing
var different = false;
if((textterminput.term != texttermcur.term) || (textterminput.note != texttermcur.note) ||
(textterminput.section != texttermcur.section) ||
(textterminput.subnote != texttermcur.subnote) ||
(textterminput.indexentry != texttermcur.indexentry) ||
(textterminput.otherindexentry != texttermcur.otherindexentry) ||
(textterminput.otherindexentrytwo != texttermcur.otherindexentrytwo) ||
(textterminput.otherindexentrythree != texttermcur.otherindexentrythree) ||
(textterminput.otherindexentryfour != texttermcur.otherindexentryfour) ||
(textterminput.otherindexentryfive != texttermcur.otherindexentryfive) ||
(textterminput.englishentry != texttermcur.englishentry) )
different = true;
if (different){
// alert(" They are different, have to save" );
var texttermchain="{{TextTerm";
texttermchain += '|' + (textterminput.term ? textterminput.term : '');
texttermchain += '|' + (textterminput.note ? textterminput.note : '');
texttermchain += (textterminput.section ? '|' + textterminput.section : '');
texttermchain += (textterminput.subnote ? '|' + textterminput.subnote : '');
texttermchain += (textterminput.indexentry ? '|IndexEntry='+ textterminput.indexentry : '');
texttermchain += (textterminput.otherindexentry ? '|OtherIndexEntry='+ textterminput.otherindexentry : '');
texttermchain += (textterminput.otherindexentrytwo ? '|OtherIndexEntryTwo='+ textterminput.otherindexentrytwo : '');
texttermchain += (textterminput.otherindexentrythree ? '|OtherIndexEntryThree='+ textterminput.otherindexentrythree : '');
texttermchain += (textterminput.otherindexentryfour ? '|OtherIndexEntryFour='+ textterminput.otherindexentryfour : '');
texttermchain += (textterminput.otherindexentryfive ? '|OtherIndexEntryFive='+ textterminput.otherindexentryfive : '');
texttermchain += (textterminput.englishentry ? '|EnglishEntry='+ textterminput.englishentry : '');
texttermchain += "}}";
var textarea= document.getElementById('wpTextbox1');
var savepos= textarea.selectionStart;
if ('selectionStart' in textarea) {
textarea.value=textarea.value.substring(0,textarea.selectionStart) + texttermchain + textarea.value.substring(textarea.selectionEnd, textarea.value.length);
//insertTags(texttermchain, '', '');
textarea.selectionStart = savepos;
textarea.selectionEnd = savepos + texttermchain.length;
}
else{
alert("No selectionStart firefox");
}
}
else{
;//alert(" They are similar, don't save" );
}
document.getElementById('citediv'+numforms).style.display = 'none';
}
function addcites(template) {
cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
var citebegin = '<ref';
var citename = '';
var citeinner = '';
for (var i=0; i<cites.length-1; i++) {
if (cites[i].value != '' && cites[i].id != "refname" && cites[i].id != "template") {
citeinner += "|" + cites[i].id + "=" + cites[i].value;
}
else if (cites[i].value != '' && cites[i].id == "refname" && cites[i].id != "template") {
citebegin += ' name="' + cites[i].value + '"';
}
else if (cites[i].value != '' && cites[i].id != "refname" && cites[i].id == "template") {
citename = '>{{' + cites[i].value;
}
}
cite = citebegin + citename + citeinner + "numforms=" + numforms + "}}</ref>";
$("#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 = '<div id="citediv'+numforms+'"><fieldset>'+
'<legend>References in text</legend>There are no named refs (<tt><ref name="Name"></tt>) in the text</fieldset></div>';
document.getElementById('citeselect').innerHTML += out;
}
else {
oldFormHide();
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>References in article</legend>'+
'<table cellspacing="5">'+
'<tr><td><label for="namedrefs"> Named references in text</label></td>'+
'<td><select name="namedrefs" id="namedrefs">';
for (var i=0;i<namedrefs.length;i++) {
form+= '<option value="'+namedrefs[i]+'">'+namedrefs[i]+'</option>';
}
form+= '</select>'+
'</td></tr></table>'+
'<input type="button" value="Add citation" onClick="addnamedcite()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
}
function addnamedcite() {
name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value;
ref = '<ref name="'+name+'" />';
$("#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(/</g, "<");
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<namedrefs.length; 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<allrefs.length; 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<allrefs.length; i++) {
if (allrefs[i].search(/< *?\/ *?ref *?>/) == -1 && unclosed) {
errorlist[q] = '<tr><td width="75%"><tt>'+allrefs[i]+'</tt></td>';
errorlist[q] += '<td width="25%">Unclosed <tt><ref></tt> tag</td></tr>';
q++;
}
if (samecontent) {
for (var d=0; d<samecontentexclude.length; d++) {
if (allrefscontent[i] == samecontentexclude[d]) {
skipcheck = true;
}
}
var p=0;
while (p<allrefs.length && !skipcheck) {
if (allrefscontent[i] == allrefscontent[p] && i != p) {
errorlist[q] = '<tr><td width="75%"><tt>'+allrefscontent[i]+'</tt></td>';
errorlist[q] += '<td width="25%">Multiple refs contain this content, a <a href="http://en.wikipedia.org/wiki/Wikipedia:Footnotes#Naming_a_ref_tag_so_it_can_be_used_more_than_once">named reference</a> should be used instead</td></tr>';
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<templateexclude.length; x++) {
if (allrefscontent[i] == templateexclude[x]) {
skipcheck = true;
}
}
if (!skipcheck) {
errorlist[q] = '<tr><td width="75%"><tt>'+allrefs[i]+'</tt></td>';
errorlist[q] += '<td width="25%">Does not use a <a href="http://en.wikipedia.org/wiki/Wikipedia:Citation_templates">citation template</a></td></tr>';
q++;
templateexclude[tx] = allrefscontent[i];
tx++;
}
skipcheck = false;
}
}
}
if (repeated) {
var repeatnameexclude = [];
var rx=0;
for (var k=0; k<namedrefs.length; k++) {
for (var d=0; d<repeatnameexclude.length; d++) {
if (namedrefs[k] == repeatnameexclude[d]) {
skipcheck = true;
}
}
var z=0;
while (z<namedrefs.length && !skipcheck) {
if (namedrefs[k] == namedrefs[z] && k != z) {
errorlist[q] = '<tr><td width="75%"><tt>'+namedrefs[k]+'</tt></td>';
errorlist[q] += '<td width="25%">Multiple references are given the same <a href="http://en.wikipedia.org/wiki/Wikipedia:Footnotes#Naming_a_ref_tag_so_it_can_be_used_more_than_once">name</a></td></tr>';
q++;
repeatnameexclude[rx] = namedrefs[z];
rx++;
break;
}
z++;
}
skipcheck = false;
}
}
if (undef) {
var undefexclude = [];
var ux=0;
for (var p=0; p<namedrefcalls.length; p++) {
for (var d=0; d<undefexclude.length; d++) {
if (allrefscontent[i] == undefexclude[d]) {
skipcheck = true;
}
}
if (!skipcheck) {
if (!NRcallError(namedrefs, namedrefcalls[p])) {
errorlist[q] = '<tr><td width="75%"><tt>'+namedrefcalls[p]+'</tt></td>';
errorlist[q] += '<td width="25%">A <a href="http://en.wikipedia.org/wiki/Wikipedia:Footnotes#Naming_a_ref_tag_so_it_can_be_used_more_than_once">named reference</a> is used but not defined</td></tr>';
q++;
undefexclude[ux] = namedrefs[p];
ux++;
}
}
skipcheck = false;
}
}
if (q > 0) {
return errorlist;
} else {
return 0;
}
}
function dispErrors() {
oldFormHide();
form = '<div id="errorform"><fieldset>'+
'<legend>Error checking</legend>'+
'<b>Check for:</b><br/>'+
'<input type="checkbox" id="unclosed" /> Unclosed <tt><ref></tt> tags<br/>'+
'<input type="checkbox" id="samecontent" /> References with the same content<br/>'+
'<input type="checkbox" id="templates" /> References not using a <a href="http://en.wikipedia.org/wiki/Wikipedia:Citation_templates">citation template</a><br/>'+
'<input type="checkbox" id="repeated" /> Multiple references with the same name<br/>'+
'<input type="checkbox" id="undef" /> Usage of undefined named references<br/>'+
'<input type="button" id="errorchecksubmit" value="Check for selected errors" onclick="doErrorCheck()"/>'+
'</fieldset></div>';
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 = '<div id="citediv'+numforms+'"><fieldset>'+
'<legend>Error checking</legend>No errors found.</fieldset></div>';
document.getElementById('citeselect').innerHTML += out;
}
else {
if (numforms != 0) {
document.getElementById('citediv'+numforms).style.display = 'none';
}
numforms++;
form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>Error checking</legend>'+
'<table border="1px">';
for (var i=0; i<errors.length; i++) {
form+=errors[i];
}
form+= '</table>'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
}
$( refbuttons );