مدیاویکی:RefToolbarLegacy.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
var numforms = 0;
var wikEdAutoUpdateUrl;
var citeUserDateFormat;
var refTagURL;
var defaultRefTagURL = '//reftag.appspot.com/';
var refToolDebug;
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
};
function refbuttons() {
if (document.getElementById('toolbar') ) {
var button = document.createElement('a');
button.href = "javascript:easyCiteMain()";
button.title = "درج یادکرد";
var buttonimage = document.createElement('img');
buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png";
buttonimage.alt = "درج یادکرد";
button.appendChild(buttonimage);
var toolbar = document.getElementById('toolbar');
if (navigator.userAgent.indexOf('MSIE') == -1) {
toolbar.appendChild(button);
var citemain = document.createElement('div');
citemain.style.display = 'none';
citemain.style.margin = '6px 0 0';
citemain.style.clear = 'both';
citemain.style.height = 'auto';
citemain.setAttribute('Id', 'citeselect');
citemain.appendChild( addOption("citeWeb()", "وب") );
citemain.appendChild( addOption("citeNews()", "خبر") );
citemain.appendChild( addOption("citeBook()", "کتاب") );
citemain.appendChild( addOption("citeJournal()", "ژورنال") );
citemain.appendChild( addOption("citeNamedRef()", "پانویسهای نامدار") );
citemain.appendChild( addOption("dispErrors()", "بررسی خطا") );
citemain.appendChild( addOption("showMore()", "بیشتر") );
citemain.appendChild( addOption("hideInitial()", "لغو") );
var citemore = document.createElement('div');
citemore.style.display = 'none';
citemore.setAttribute('Id', 'citemore');
citemore.appendChild( addOption("citeEncyclopedia()", "دانشنامه") );
citemore.appendChild( addOption("citePressRelease()", "اعلامیه مطبوعاتی") );
citemore.appendChild( addOption("citeMap()", "نقشه") );
citemore.appendChild( addOption("showRefSectionOptions()", "بخش پانویس") );
citemain.appendChild(citemore);
$( citemain ).insertAfter( $( toolbar ) );
}
else {
toolbar.appendChild(button);
var citeselect = document.createElement('div');
citeselect.id = 'citeselect';
citeselect.style.display = "none";
citeselect.innerHTML = '<input type="button" value="وب" onclick="citeWeb()" />'+
'<input type="button" value="خبر" onclick="citeNews()" />'+
'<input type="button" value="کتاب" onclick="citeBook()" />'+
'<input type="button" value="ژورنال" onclick="citeJournal()" />'+
'<input type="button" value="پانویسهای نامدار" onclick="citeNamedRef()" />'+
'<input type="button" value="بررسی خطا" onclick="dispErrors()" />'+
'<input type="button" value="بیشتر" onclick="showMore()" />'+
'<input type="button" value="لغو" onclick="hideInitial()" />'+
'<div id="citemore" style="display:none">\
<input type="button" value="دانشنامه" onclick="citeEncyclopedia()" />\
<input type="button" value="اعلامیه مطبوعاتی" onclick="citePressRelease()" />\
<input type="button" value="نقشه" onclick="citeMap()" />\
<input type="button" value="بخش پانویس" onclick="showRefSectionOptions()" />\
</div>';
document.getElementById('editform').insertBefore(citeselect, document.getElementById('editform').firstChild ) ;
}
var reftoolformarea = document.createElement( 'span' );
reftoolformarea.id = 'refToolFormArea';
document.getElementById('citeselect').appendChild( 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 easyCiteMain() {
document.getElementById('citeselect').style.display = '';
document.getElementById('citemore').style.display = 'none';
}
function showMore() {
document.getElementById('citemore').style.display = '';
}
var months = ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن',
'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'];
var citeGlobalDateFormat = "<date> <monthname> <year>";
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('<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 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<fields.length; 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<fields.length; 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("یادکرد وب");
}
function citeNews() {
citeNewsWeb("یادکرد خبر");
}
function citeNewsWeb(templatename) {
oldFormHide();
var template = templatename;
var legend;
if (template == "یادکرد وب") {
legend = "منبع یادکرد وب";
} else {
legend = "منبع یادکرد خبر";
}
var newtime = getTime();
numforms++;
var 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"> نشانی وب: </label></td>'+
'<td width="400"><input type="image" src="//upload.wikimedia.org/wikipedia/commons/6/62/Arrow_out_condensed.png" tabindex=1 alt="واکشی" title="' + ((template == 'یادکرد خبر') ? 'برای نشانی وب یک نوشتار نیویورک تایمز، واکشی دادههای نوشتار و واردکردن آنها. برای دیگر نشانیهای وب، عنوان صفحه را واکشی میکند.' : 'عنوان صفحه را واکشی میکند. بخشهای نامرتبط اغلب باید به طور دستی پس از آن حذف شوند.') + '" onClick="pullURL(); return false;" style="float:left"><span style="display: block;overflow: hidden;"><input type="text" tabindex=1 style="width:97%" id="url"></span></td>'+
'<td width="120"><label for="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"> نام خانوادگی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="last"></td>'+
'<td width="120"><label for="first"> نام: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors"> همکاران نویسنده: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="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"> ' + ((template == 'یادکرد خبر') ? 'روزنامه' : 'اثر') + ': </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="work"></td>'+
'<td width="120"><label for="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"> صفحهها: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="pages"></td>'+
'<td width="120"><label for="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"> تاریخ بازبینی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate" value="'+ newtime +'"></td>'+
'<td width="120"><label for="location"> مکان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="location"></td></tr>';
if (template == 'یادکرد وب') {
form += '<tr><td width="120"><label for="archiveurl"> نشانی بایگانی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="archiveurl"></td>'+
'<td width="120"><label for="archivedate"> تاریخ بایگانی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="archivedate"></td></tr>';
}
form += '<tr><td width="120"><label for="refname"> نام پانویس: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:60%" id="refname"><input type="button" value="<نام خانوادگی" onClick="lastNameToRefname()"></td></tr>'+
'</table>'+
' <input type="button" value="افزودن یادکرد" onClick="addcites()">'+
' <input type="button" value="پیشنمایش یادکرد" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<input type="checkbox" tabindex=1 name="verbose" id="verbose" value="verbose"><label for="verbose">فرم عمودی</label>'+
'<span style="float:left"><a href="//fa.wikipedia.org/wiki/الگو:'+template.replace(/ /g, '_')+'" target="_blank">[توضیحات الگو]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeBook() {
oldFormHide();
var template = "یادکرد کتاب";
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>منبع یادکرد کتاب</legend>';
form += '<table cellspacing="5" width="100%"> \
<tr><td><label for="title">عنوان: </label></td> \
<td colspan=5><input type="text" tabindex=1 style="width:100%" id="title"></td></tr>';
for (var i=1;i<=3;i++) {
var i_str = i == 1 ? '': ' '+i;
form += '<tr> \
<td width="130"><label for="last'+i+'">نام خانوادگی نویسنده'+i_str+': </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="last'+i+'"></td> \
<td><label for="first'+i+'"> نام: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="first'+i+'"></td> \
<td><label for="authorlink'+i+'"> پیوند نویسنده: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="authorlink'+i+'"> \
<!--<a id="authorLinkAnchor'+i+'"><img id="authorLinkButton'+i+'" src="static/progress.gif" border="0" style="visibility: hidden" /></a> \
<a href="//fa.wikipedia.org/wiki/%s" target="_blank"><img id="authorTryLink'+i+'" src="static/external.png" border="0" style="visibility: hidden" /></a> --> \
</td> \
</tr>';
}
form += '<tr><td><label for="coauthors">همکاران نویسنده: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="coauthors"></td> \
<td><label for="editor"> ویراستار: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="editor"></td> \
<td><label for="others"> دیگران: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="others"></td></tr> \
</table> \
<table cellspacing="5" width="100%"> \
<tr><td width="130"><label for="publisher">ناشر: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="publisher"></td> \
<td><label for="location"> مکان: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="location"></td></tr> \
\
<tr><td><label for="date">تاریخ یا سال انتشار: </label></td> \
<td><input type="text" tabindex=1 style="width:140px" id="date"> \
<input id="dmy" name="dateformat" value="dmy" type="radio" tabindex=1 onclick="reformatDates()"><label for="dmy">dmy</label> \
<input id="mdy" name="dateformat" value="mdy" type="radio" tabindex=1 onclick="reformatDates()"><label for="mdy">md, y</label> \
<input id="ymd" name="dateformat" value="ymd" type="radio" tabindex=1 onclick="reformatDates()"><label for="ymd">y-m-d</label> \
</td> \
<td><label for="edition"> ویرایش: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="edition"></td></tr> \
\
<tr><td><label for="series">سری: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="series"></td> \
<td><label for="volume"> جلد: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="volume"></td></tr> \
\
<tr><td><label for="pages">شماره صفحه(ها):</label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="pages" name="pages" onFocus="this.style.backgroundColor=\'\';"></td> \
<td><label for="chapter"> فصل: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="chapter"></td></tr> \
\
<tr><td><label for="isbn">شابک: </label></td> \
<td><input type="image" src="//upload.wikimedia.org/wikipedia/commons/6/62/Arrow_out_condensed.png" tabindex=1 alt="واکشی" title="دادههای یادکرد را بر اساس شابک از ابزار Diberri وارد میکند." onClick="pullISBN(); return false;" style="float:left"><span style="display: block;overflow: hidden;"><input type="text" tabindex=1 style="width:97%" id="isbn"></span></td> \
<td><label for="language"> زبان: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="language"></td></tr> \
\
<tr><td><label for="url">نشانی وب: </label></td> \
<td><input type="image" src="//upload.wikimedia.org/wikipedia/commons/6/62/Arrow_out_condensed.png" tabindex=1 alt="واکشی" title="دادههای یادکرد را بر اساس یک نشانی وب کتابهای گوگل وارد میکند." onClick="pullJs(); return false;" style="float:left"><span style="display: block;overflow: hidden;"><input type="text" tabindex=1 style="width:97%" id="url"></span></td> \
<td><label for="accessdate"> تاریخ بازبینی:</label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="accessdate"></td></tr> \
\
<tr><td><label for="otherfields">فیلدهای دیگر:</label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="otherfields"></td> \
<td><label for="refname"> نام پانویس: </label></td> \
<td><input type="text" tabindex=1 style="width:100%" id="refname"></td> \
</tr> \
</table> \
\
<input type="radio" tabindex=1 name="template" id="cite_book" value="cite_book" checked="1"><label for="cite_book">{{یادکرد کتاب}}</label> <sup><a href="//fa.wikipedia.org/wiki/الگو:یادکرد_کتاب" target="_blank">[توضیحات]</a></sup> \
<input type="radio" tabindex=1 name="template" id="citation" value="citation"><label for="citation">{{یادکرد}}</label> <sup><a href="//fa.wikipedia.org/wiki/الگو:یادکرد" target="_blank">[توضیحات]</a></sup> \
<input type="radio" tabindex=1 name="template" id="plain" value="plain"><label for="plain">ویکیمتن ساده (آزمایشی)</label> \
<input type="checkbox" tabindex=1 name="verbose" id="verbose" value="verbose"><label for="verbose">فرم عمودی</label> \
<input type="checkbox" tabindex=1 name="extraparams" id="extraparams" value="extraparams"><label for="extraparams">پارامترهای اضافی</label> \
<br /><input type="button" value="افزودن یادکرد" onClick="makeCiteBook()"> \
<input type="button" value="پیشنمایش یادکرد" onClick="previewCitationBook()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" /> \
\
</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeJournal() {
oldFormHide();
var template = "یادکرد ژورنال";
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>منبع یادکرد ژورنال</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="last"> نام خانوادگی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="last"></td>'+
'<td width="120"><label for="first"> نام: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors"> همکاران نویسنده: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="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"> عنوان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td>'+
'<td width="120"><label for="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"> ناشر: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="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"> جلد: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="volume"></td>'+
'<td width="120"><label for="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"> صفحهها: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="pages"></td>'+
'<td width="120"><label for="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"> مکرپ: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="oclc"></td>'+
'<td width="120"><label for="doi"> ندش: </label></td>'+
'<td width="400"><input type="image" src="//upload.wikimedia.org/wikipedia/commons/6/62/Arrow_out_condensed.png" tabindex=1 alt="واکشی" title="واکشی دادههای یادکرد برای یک ندش از crossref.org و واردکردن در فیلدهای دیگر." onClick="pullDOI(); return false;" style="float:left"><span style="display: block;overflow: hidden;"><input type="text" tabindex=1 style="width:97%" id="doi"></span></td></tr>'+
'<tr><td width="120"><label for="pmid"> نپابمد: </label></td>'+
'<td width="400"><input type="image" src="//upload.wikimedia.org/wikipedia/commons/6/62/Arrow_out_condensed.png" tabindex=1 alt="واکشی" title="واکشی دادههای یادکرد برای یک نپابمد" onClick="pullPMID(); return false;" style="float:left;visibility:hidden"><span style="display: block;overflow: hidden;"><input type="text" tabindex=1 style="width:97%" id="pmid"></span></td>'+
'<td width="120"><label for="quote"> گفتاورد: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="quote"></td></tr>'+
'<tr><td width="120"><label for="url"> نشانی وب: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate"> تاریخ بازبینی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate"></td></tr>'+
'<tr><td width="120"><label for="language"> زبان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="language"></td>'+
'<td width="120"><label for="refname"> نام پانویس: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:60%" id="refname"><input type="button" value="<نام خانوادگی" onClick="lastNameToRefname()"></td></tr>'+
'</table>'+
'<input type="button" value="افزودن یادکرد" onClick="addcites()">'+
' <input type="button" value="پیشنمایش یادکرد" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<input type="checkbox" tabindex=1 name="verbose" id="verbose" value="verbose"><label for="verbose">فرم عمودی</label>'+
'<span style="float:left"><a href="//fa.wikipedia.org/wiki/الگو:'+template.replace(/ /g, '_')+'" target="_blank">[توضیحات الگو]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeEncyclopedia() {
oldFormHide();
var template = "یادکرد دانشنامه";
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>منبع یادکرد دانشنامه</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="last"> نام خانوادگی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="last"></td>'+
'<td width="120"><label for="first"> نام: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="first"></td></tr>'+
'<tr><td width="120"><label for="coauthors"> همکاران نویسنده: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="coauthors"></td>'+
'<td width="120"><label for="editors"> ویراستاران: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="editors"></td></tr>'+
'<tr><td width="120"><label for="title"> عنوان نوشته: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td>'+
'<td width="120"><label for="encyclopedia"> دانشنامه: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="encyclopedia"></td></tr>'+
'<tr><td width="120"><label for="publisher"> ناشر: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="location"> مکان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="location"></td></tr>'+
'<tr><td width="120"><label for="year"> سال: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="year"></td>'+
'<td width="120"><label for="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"> صفحهها: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="pages"></td>'+
'<td width="120"><label for="isbn"> شابک: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="isbn"></td></tr>'+
'<tr><td width="120"><label for="url"> نشانی وب: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate"> تاریخ بازبینی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate"></td></tr>'+
'<tr><td width="120"><label for="language"> زبان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="language"></td>'+
'<td width="120"><label for="refname"> نام پانویس: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="refname"></td></tr>'+
'</table>'+
'<input type="button" value="افزودن یادکرد" onClick="addcites()">'+
' <input type="button" value="پیشنمایش یادکرد" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<input type="checkbox" tabindex=1 name="verbose" id="verbose" value="verbose"><label for="verbose">فرم عمودی</label>'+
'<span style="float:left"><a href="//fa.wikipedia.org/wiki/الگو:'+template.replace(/ /g, '_')+'" target="_blank">[توضیحات الگو]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function citePressRelease() {
oldFormHide();
var template = "cite press release";
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>یادکرد مطلب مطبوعاتی</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="title"> عنوان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td>'+
'<td width="120"><label for="publisher"> ناشر: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td></tr>'+
'<tr><td width="120"><label for="date"> تاریخ: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="date"></td>'+
'<td width="120"><label for="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"> نشانی وب: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate"> تاریخ بازبینی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate" value="'+ getTime() +'"></td></tr>'+
'<tr><td width="120"><label for="refname"> نام پانویس: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="refname"></td></tr>'+
'</table>'+
'<input type="button" value="افزودن یادکرد" onClick="addcites()">'+
' <input type="button" value="پیشنمایش یادکرد" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<input type="checkbox" tabindex=1 name="verbose" id="verbose" value="verbose"><label for="verbose">فرم عمودی</label>'+
'<span style="float:left"><a href="//fa.wikipedia.org/wiki/الگو:'+template.replace(/ /g, '_')+'" target="_blank">[توضیحات الگو]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function citeMap() {
oldFormHide();
var template = "cite map";
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>یادکرد نقشه</legend>'+
'<table cellspacing="5">'+
'<input type="hidden" value="'+template+'" id="template">'+
'<tr><td width="120"><label for="publisher"> ناشر: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="publisher"></td>'+
'<td width="120"><label for="title"> عنوان: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="title"></td></tr>'+
'<tr><td width="120"><label for="url"> نشانی وب: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="url"></td>'+
'<td width="120"><label for="accessdate"> تاریخ بازبینی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="accessdate"></td></tr>'+
'<tr><td width="120"><label for="edition"> ویرایش: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="edition"></td>'+
'<td width="120"><label for="date"> تاریخ یا سال: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="date"></td></tr>'+
'<tr><td width="120"><label for="cartography"> نقشهکشی: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="cartography"></td>'+
'<td width="120"><label for="scale"> مقیاس: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="scale"></td></tr>'+
'<tr><td width="120"><label for="series"> سری: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="series"></td>'+
'<td width="120"><label for="page"> صفحه: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="page"></td></tr>'+
'<tr><td width="120"><label for="section"> بخش: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="section"></td>'+
'<td width="120"><label for="inset"> الحاق: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="inset"></td></tr>'+
'<tr><td width="120"><label for="isbn"> شابک: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="isbn"></td>'+
'<td width="120"><label for="refname"> نام پانویس: </label></td>'+
'<td width="400"><input type="text" tabindex=1 style="width:100%" id="refname"></td></tr>'+
'</table>'+
'<input type="button" value="افزودن یادکرد" onClick="addcites()">'+
' <input type="button" value="پیشنمایش یادکرد" onClick="previewCitationDefault()"> \
<img id="progress" src="//upload.wikimedia.org/wikipedia/commons/5/59/RefToolbar_spinning_throbber.gif" style="visibility: hidden" />'+
'<input type="checkbox" tabindex=1 name="verbose" id="verbose" value="verbose"><label for="verbose">فرم عمودی</label>'+
'<span style="float:left"><a href="//fa.wikipedia.org/wiki/الگو:'+template.replace(/ /g, '_')+'" target="_blank">[توضیحات الگو]</a></span>'+
'</fieldset><span id="previewSpan"></span></div>';
document.getElementById('refToolFormArea').innerHTML = form;
}
function showRefSectionOptions() {
oldFormHide();
var template = "یادکرد دانشنامه";
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>افزودن بخش پانویس</legend>\
عنوان:<br />\
<input id="references" name="headline" type="radio" tabindex=1 checked="checked"><label for="references">== پانویس ==</label><br /> \
<input id="notes" name="headline" type="radio" tabindex=1><label for="notes">== یادداشتها ==</label><br /> \
گونه:<br /> \
<input id="type-references" name="type" type="radio" tabindex=1><label for="type-references"><references/></label><br /> \
<input id="type-reflist" name="type" type="radio" tabindex=1 checked="checked"><label for="type-reflist">{{پانویس}}</label><br /> \
<input id="type-reflist2" name="type" type="radio" tabindex=1><label for="type-reflist2">{{پانویس|۲}}</label><br /> \
<input type="checkbox" tabindex=1 id="ldr"><label for="ldr">پانویسهای فهرستتعریفشده</label> (<a href="//en.wikipedia.org/wiki/Wikipedia:Footnotes#List-defined_references" target="_blank">اطلاعات ۱</a>, <a href="//en.wikipedia.org/wiki/Help:Footnotes#List-defined_references" target="_blank">اطلاعات ۲</a>)<br />\
<input type="button" value="افزودن بخش پانویس" onClick="addRefSection()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
function makeCiteCode() {
cites = document.getElementById('citediv'+numforms).getElementsByTagName('input');
var template = '';
var citebegin = '<ref';
var citename = '';
var citeinner = '';
for (var i=0; i<cites.length; 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 != 'یادکرد دانشنامه') {
citeid = "صفحه"; //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 = "سال"; // Use year= instead of date= if only the year is specified
}
citeinner += "|" + citeid + "=" + citevalue;
}
}
}
cite = citebegin + citename + citeinner + "}}</ref>";
return cite;
}
function addcites(template) {
var cite = makeCiteCode();
$("#wpTextbox1").focus();
insertTags(cite, '', '');
//document.getElementById('citediv'+numforms).style.display = 'none';
oldFormHide();
}
function addRefSection() {
var wikicode = "\n";
if (document.getElementById('references').checked) {
wikicode += "== پانویس ==\n";
}
else if (document.getElementById('notes').checked) {
wikicode += "== یادداشتها ==\n";
}
else {alert('عنوانی انتخاب نشدهاست!');}
if (document.getElementById('type-references').checked) {
if (document.getElementById('ldr').checked) {
wikicode += "<references>\n\n</references>\n";
}
else {
wikicode += "<references/>\n";
}
}
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 += "{{پانویس" + col2 + "|پانویسها=\n\n}}\n";
}
else {
wikicode += "{{پانویس" + col2 + "}}\n";
}
}
else {alert('No type selected!');}
$("#wpTextbox1").focus();
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 = '<div id="citediv'+numforms+'"><fieldset>'+
'<legend>پانویسها در متن</legend>پانویس نامداری (<tt dir="ltr"><ref name="Name"></tt>) در متن وجود ندارد</fieldset></div>';
document.getElementById('citeselect').innerHTML += out;
}
else {
oldFormHide();
numforms++;
var form = '<div id="citediv'+numforms+'">'+
'<fieldset><legend>پانویسها در نوشتار</legend>'+
'<table cellspacing="5">'+
'<tr><td><label for="namedrefs"> پانویسهای نامدار در متن</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="افزودن یادکرد" onClick="addnamedcite()">'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
}
function addnamedcite() {
var name = document.getElementById('citediv'+numforms).getElementsByTagName('select')[0].value;
var 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();
}
}
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(/</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 = 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<allrefs.length; 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<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%">برچسب <tt><ref></tt> باز</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%">چندین پانویس شامل این محتوا میشوند، یک <a href="//en.wikipedia.org/wiki/Wikipedia:Footnotes#Naming_a_ref_tag_so_it_can_be_used_more_than_once">پانویس نامدار</a> باید جایش استفاده شود</td></tr>';
q++;
samecontentexclude[sx] = allrefscontent[i]
sx++;
break;
}
p++;
}
skipcheck=false;
}
if (templates) {
if (allrefscontent[i].search(/\{\{cite/i) == -1 && allrefscontent[i].search(/\{\{یادکرد/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%">از <a href="//en.wikipedia.org/wiki/Wikipedia:Citation_templates">الگوی یادکردی</a> استفاده نمیکند</td></tr>';
q++;
templateexclude[tx] = allrefscontent[i];
tx++;
}
skipcheck = false;
}
}
}
if (repeated) {
var repeatnameexclude = new Array();
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%">چندین پانویس <a href="//en.wikipedia.org/wiki/Wikipedia:Footnotes#Naming_a_ref_tag_so_it_can_be_used_more_than_once">نام</a> یکسان دارند</td></tr>';
q++;
repeatnameexclude[rx] = namedrefs[z];
rx++;
break;
}
z++;
}
skipcheck = false;
}
}
if (undef) {
var undefexclude = new Array();
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 href="//en.wikipedia.org/wiki/Wikipedia:Footnotes#Naming_a_ref_tag_so_it_can_be_used_more_than_once">پانویس نامدار</a> استفاده شده اما تعریف نشدهاست</td></tr>';
q++;
undefexclude[ux] = namedrefs[p];
ux++;
}
}
skipcheck = false;
}
}
if (q > 0) {
return errorlist;
} else {
return 0;
}
}
function dispErrors() {
oldFormHide();
var form = '<div id="errorform"><fieldset>'+
'<legend>بررسی خطا</legend>'+
'<b>Check for:</b><br/>'+
'<input type="checkbox" id="unclosed" /> برچسبهای <tt><ref></tt> باز<br/>'+
'<input type="checkbox" id="samecontent" /> پانویسها با محتوای یکسان<br/>'+
'<input type="checkbox" id="templates" /> پانویسهایی که از <a href="//en.wikipedia.org/wiki/Wikipedia:Citation_templates">الگوی یادکردی</a> استفاده نمیکنند<br/>'+
'<input type="checkbox" id="repeated" /> چندین پانویس با نام یکسان<br/>'+
'<input type="checkbox" id="undef" /> استفاده از پانویسهای نامدار تعریفنشده<br/>'+
'<input type="button" id="errorchecksubmit" value="بررسی برای وجود خطاهای انتخابشده" 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>خطایی یافت نشد.</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>بررسی خطا</legend>'+
'<table border="1px">';
for (var i=0; i<errors.length; i++) {
form+=errors[i];
}
form+= '</table>'+
'</fieldset></div>';
document.getElementById('citeselect').innerHTML += form;
}
}
function makeBookCitationCode(callback) {
var cite = '<ref';
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 += 'یادکرد کتاب';
}
else if (document.getElementById('citation').checked) {
cite += 'یادکرد';
}
else {alert('الگویی انتخاب نشدهاست.');}
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 = '|پیوند نویسنده' + i + '=' + authorlink + authorcite;
}
if (/\S/.test(last)) {
authorcite = '|نام خانوادگی' + i + '=' + last + '|نام' + i + '=' + first + authorcite;
prevauthor = 1;
}
/*else if (/\S/.test(author)) {
authorcite = '|author' + i + '=' + author + authorcite;
prevauthor = 1;
}*/
}
cite += authorcite;
var simplefields = ["کوشش", "ویراستار", "دیگران", "عنوان", "نشانی وب", "تاریخ بازبینی","ویرایش","سری","جلد","تاریخ","ناشر","مکان","زبان","شابک","صفحات","فصل"];
for (var i=0;i<simplefields.length;i++) {
var fieldname = simplefields[i];
var value = document.getElementById(fieldname).value;
if (/\S/.test(value) || fieldname == "عنوان") {
if (fieldname == "صفحات") {
if (/^\w+$/.test(value)) {
fieldname = "صفحه"; //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 == "تاریخ" && /^\d\d\d\d$/.test(value)) {
fieldname = "سال"; // 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 += '|ترجمه عنوان=';
}
cite += '|قالب=';
cite += '|origyear=';
cite += '|oclc=';
cite += '|doi=';
cite += '|bibcode=';
cite += '|id=';
if (/\S/.test(document.getElementById('chapter').value)) {
if (!document.getElementById('citation').checked) {
cite += '|ترجمه فصل=';
}
cite += '|نشانی فصل=';
}
cite += '|گفتاورد=';
cite += '|laysummary=';
cite += '|laydate=';
}
cite += "}}</ref>";
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(/یادکرد کتاب/, "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 = sajax_init_object(); // 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(/<span.*?>/ig, '');
expanded = expanded.replace(/<\/span>/ig, '');
expanded = expanded.replace(/<nowiki\/?>/ig, '');
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('پرسوجو خطایی برگرداند.');
}
}
xmlhttpExpand.open("GET",url,true);
xmlhttpExpand.send(null);
}
else {alert('خطای ای۱');}
}
else {
if (document.getElementById('verbose').checked) {
cite = cite.replace(/\|/g, "\n|");
}
callback(cite);
}
}
function makeCiteBook() {
makeBookCitationCode(function(cite) {
$("#wpTextbox1").focus();
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.getUTCFullYear();
month = DT.getUTCMonth()+1;
date = DT.getUTCDate()+1;
}
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('<date>', date);
datestr = datestr.replace('<month>', month);
datestr = datestr.replace('<zdate>', zdate);
datestr = datestr.replace('<zmonth>', zmonth);
datestr = datestr.replace('<monthname>', months[month-1]);
datestr = datestr.replace('<year>', year.toString());
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 = '<date> <monthname> <year>'}
else if (document.getElementById('mdy').checked) {dateformat = '<monthname> <date>، <year>'}
else if (document.getElementById('ymd').checked) {dateformat = '<year>-<zmonth>-<zdate>'}
}
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 += '<references />';
var url = "api.php?action=parse&format=xml&prop=text&text=" + encodeURIComponent(wikitext);
var xmlhttp = sajax_init_object(); // 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="//fa.wikipedia.org/');
document.getElementById('previewSpan').innerHTML = '<fieldset><legend>پیشنمایش یادکرد</legend>' + previewHTML + '</fieldset>';
}
else
alert('پرسوجو خطایی برگرداند.');
}
};
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('بدون شابک.');
}
}
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('بدون ندش.');
}
}
function pullPMID() {
alert('هنوز پیادهسازی نشدهاست...');
/*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('بدون ندش.');
}*/
}
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('بدون نشانی وب.');
}
}
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<bookdata.authors.length && i<=2;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<authors.length && i<=2;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<bookdata.authors.length;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<data.authors.length;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(', '); }
}
}
$( refbuttons );