مدیاویکی:Gadget-Extra-Editbuttons.js
ظاهر
اگر تغییری در کدها میدهید، وپ:تست را برای دیدن اینکه تستی خراب نشده باشد بررسی کنید. لطفاً روند توسعهٔ آزمونمحور را رعایت کنید، برای تغییرتان تا جای ممکن آزمون بنویسید و ترجیحاً تست را به حالت خود قرمز شده رها نکنید. |
اگر ماژول جدیدی به ابزارهای ویرایش اضافه یا نام یکی از ماژولهایش را عوض میکنید، حتماً مدیاویکی:Gadget-Extra-Editbuttons-sisters.js را بهروزرسانی کنید که این ابزار در ویکیهای خواهر از کار نیفتد. |
/*<pre>*/
// این اسکریپت دکمههای ویرایشی پس از انتخاب توسط کاربر به ویکیپدیا اضافه میکند
// بخش زیادی از این ابزار توسط [[User:Behaafarid]] نوشته شدهاست.
function applyOnSelection(callback) {
var txtarea = document.editform.wpTextbox1;
var selText;
if (document.selection && document.selection.createRange) { // IE/Opera
// get current selection
txtarea.focus();
var range = document.selection.createRange();
selText = range.text;
if (selText) {
range.text = callback.apply(this, [selText]);
range.select();
} else {
txtarea.value = callback.apply(this, [txtarea.value]);
}
} else if (txtarea.selectionStart || txtarea.selectionStart == '0') { // Mozilla
// get current selection
txtarea.focus();
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd;
selText = txtarea.value.substring(startPos, endPos);
//insert tags
if (selText) {
txtarea.value = txtarea.value.substring(0, startPos) + callback.apply(this, [selText]) + txtarea.value.substring(endPos, txtarea.value.length);
txtarea.selectionStart = startPos + selText.length;
txtarea.selectionEnd = txtarea.selectionStart;
} else {
txtarea.value = callback.apply(this, [txtarea.value]);
}
}
}
function setFocusToFirstInput() {
for (var i = 0; i < document.forms.length; i++)
for (var j = 0; j < document.forms[i].elements.length; j++)
if (document.forms[i].elements[j].type != 'hidden' && document.forms[i].elements[j].style.display != 'none' && document.forms[i].elements[j].style.visibility != 'hidden' && document.forms[i].elements[j].className == 'wrong') {
document.forms[i].elements[j].focus();
if (document.forms[i].elements[j].type == 'text' || document.forms[i].elements[j].type == 'password') document.forms[i].elements[j].select();
return true;
}
for (var i = 0; i < document.forms.length; i++)
for (var j = 0; j < document.forms[i].elements.length; j++)
if (document.forms[i].elements[j].type != 'hidden' && document.forms[i].elements[j].style.display != 'none' && document.forms[i].elements[j].style.visibility != 'hidden') {
document.forms[i].elements[j].focus();
if (document.forms[i].elements[j].type == 'text' || document.forms[i].elements[j].type == 'password') document.forms[i].elements[j].select();
return true;
}
return true;
}
// slightly modified by mohsens
function fromEntityToUtf8(obj, isStr) {
var f = function (s, n, ofs, all) {
return String.fromCharCode(n);
};
if (isStr) {
return obj.replace(/&#([0-9]+);/g, f);
} else {
obj.value = obj.value.replace(/&#([0-9]+);/g, f);
}
}
function fromUtf8ToEntity(obj_id) {
var obj = document.getElementById(obj_id);
obj.value = obj.value.replace(/([^\x00-\x7f])/g, function (s, c, ofs, all) {
c = String(c);
return "&#" + c.charCodeAt(0) + ";";
});
}
function escapeHTMLEntities(obj_id) {
var obj = document.getElementById(obj_id);
s = obj.value;
s = s.replace(/&/g, '&');
s = s.replace(/</g, '<');
s = s.replace(/>/g, '>');
s = s.replace(/'/g, ''');
s = s.replace(/"/g, '"');
obj.value = s;
}
function unescapeHTMLEntities(obj_id) {
var obj = document.getElementById(obj_id);
s = obj.value;
s = s.replace(/</g, '<');
s = s.replace(/>/g, '<');
s = s.replace(/'/g, '\'');
s = s.replace(/"/g, '"');
s = s.replace(/&/g, '&');
obj.value = s;
}
function AtSignReplace(obj) {
var s = obj.value;
s = s.replace(/([^\s]+?)@([^\s]+?)/g, '$1[[تصویر:At-sign.gif]]$2');
obj.value = s;
}
function URLfix(obj) {
s = obj.value;
var old = "";
while (old != s) {
old = s;
s = s.replace(/(http[^\s]+?)\%20/g, '$1\u200c\u200c\u200c_\u200c\u200c\u200c');
}
s = s.replace(/(http[^\s]+)/g, function (s, p) {
return decodeURI(p)
});
s = s.replace(/\u200c\u200c\u200c_\u200c\u200c\u200c/g, '%20');
obj.value = s;
}
function YKarabic(obj, selectionMode) {
var f = function (s) {
var sold = s;
//ي --> ی و ك --> ک
//برای جلوگیری از خرابکاری در پیوند تصویرها و میان\u200cویکی
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)ي(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)ك(.*?)\]\]/g, '[[$1\u200c\u200c\u200cک\u200c\u200c\u200c$2]]');
while (sold != s) {
sold = s;
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)ي(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)ك(.*?)\]\]/g, '[[$1\u200c\u200c\u200cک\u200c\u200c\u200c$2]]');
}
s = s.replace(/ي/g, 'ی');
s = s.replace(/ك/g, 'ک');
s = s.replace(/\u200c\u200c\u200cی\u200c\u200c\u200c/g, 'ي');
s = s.replace(/\u200c\u200c\u200cک\u200c\u200c\u200c/g, 'ك');
//اصلاح ی و ک در متنهای عربی
sold = s;
s = s.replace(/\{\{عربی([^(\}\})]*?)ی(.*?)\}\}/g, '{{عربی$1ي$2}}');
s = s.replace(/\{\{عربی([^(\}\})]*?)ک(.*?)\}\}/g, '{{عربی$1ك$2}}');
s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ي$2پایان عربی}}');
s = s.replace(/\{\{شروع\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ي$2پایان عربی}}');
s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ك$2پایان عربی}}');
s = s.replace(/\{\{شروع\sعربی\}\}([^پایان\sعربی(\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ك$2پایان عربی}}');
s = s.replace(/\[\[ar:(.*?)ی(.*?)\]\]/g, '[[ar:$1ي$2]]');
s = s.replace(/\[\[ar:(.*?)ک(.*?)\]\]/g, '[[ar:$1ك$2]]');
while (sold != s) {
sold = s;
s = s.replace(/\{\{عربی([^(\}\})]*?)ی(.*?)\}\}/g, '{{عربی$1ي$2}}');
s = s.replace(/\{\{عربی([^(\}\})]*?)ک(.*?)\}\}/g, '{{عربی$1ك$2}}');
s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ي$2پایان عربی}}');
s = s.replace(/\{\{شروع\sعربی\}\}([^(پایان\sعربی\}\})]*?)ی(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ي$2پایان عربی}}');
s = s.replace(/\{\{آغاز\sعربی\}\}([^(پایان\sعربی\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{آغاز عربی}}$1ك$2پایان عربی}}');
s = s.replace(/\{\{شروع\sعربی\}\}([^پایان\sعربی(\}\})]*?)ک(.*?)پایان\sعربی\}\}/g, '{{شروع عربی}}$1ك$2پایان عربی}}');
s = s.replace(/\[\[ar:(.*?)ی(.*?)\]\]/g, '[[ar:$1ي$2]]');
s = s.replace(/\[\[ar:(.*?)ک(.*?)\]\]/g, '[[ar:$1ك$2]]');
}
//حدف نویسهٔ ممنوع ۰۶۴۹
sold = s;
//جلوگیری از تغییر متن نشان عربی خورده و تصویر و پیوندهای میانویکی
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)ى(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]');
s = s.replace(/\{\{عربی(.*?)ى(.*?)\}\}/g, '{{عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2}}');
s = s.replace(/\{\{آغاز عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{آغاز عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}');
s = s.replace(/\{\{شروع عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{شروع عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}');
while (sold != s) {
sold = s;
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)ى(.*?)\]\]/g, '[[$1\u200c\u200c\u200cی\u200c\u200c\u200c$2]]');
s = s.replace(/\{\{عربی(.*?)ى(.*?)\}\}/g, '{{عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2}}');
s = s.replace(/\{\{آغاز عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{آغاز عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}');
s = s.replace(/\{\{شروع عربی(.*?)ى(.*?)پایان عربی\}\}/g, '{{شروع عربی$1\u200c\u200c\u200cی\u200c\u200c\u200c$2پایان عربی}}');
}
s = s.replace(/ى/g, 'ی');
s = s.replace(/\u200c\u200c\u200cی\u200c\u200c\u200c/g, 'ى');
sold = s;
//اصلاح ردهها
s = s.replace(/\[\[(رده|Category|category):(.*?)(ى|ي)(.*?)\]\]/g, '[[$1:$2ی$4]]');
s = s.replace(/\[\[(رده|Category|category):(.*?)ك(.*?)\]\]/g, '[[$1:$2ک$3]]');
while (sold != s) {
sold = s;
s = s.replace(/\[\[(رده|Category|category):(.*?)(ى|ي)(.*?)\]\]/g, '[[$1:$2ی$4]]');
s = s.replace(/\[\[(رده|Category|category):(.*?)ك(.*?)\]\]/g, '[[$1:$2ک$3]]');
}
return s;
};
if (selectionMode) {
applyOnSelection(f);
} else {
obj.value = f(obj.value);
}
}
function FM(obj, selectionMode) {
var f = function (s) {
//بنهای ماضی
var a01 = "(آراست|آرامید|آزرد|آزمود|آسود|آشامید|آشفت|آغازید|آغشت|آفرید|آگند|آلود|آمد|آمرزید";
var a02 = "|آموخت|آمیخت|آورد|آویخت|آهیخت|ارزید|افتاد|افراشت|افروخت|افزود|افسرد|افشاند|افگند";
var a03 = "|انباشت|انجامید|انداخت|اندوخت|اندود|اندیشید|انگاشت|انگیخت|اوباشت|ایستاد|باخت";
var a04 = "|بارید|بافت|بالید|بایست|بخشود|بخشید|برازید|برد|برید|بست|بسود|بسیجید|بلعید|بود";
var a05 = "|بوسید|بویید|بیخت|پاشید|پالود|پخت|پذیرفت|پراکند|پرداخت|پرستید|پرسید|پرورد|پرید";
var a06 = "|پژمرد|پژوهید|پسندید|پلاسید|پلکید|پناهید|پنداشت|پوسید|پوشید|پویید|پیچید|پیراست";
var a07 = "|پیمود|پیوست|تاخت|تافت|تپید|تراشید|تراوید|ترسید|ترشید|ترکید|تکاند|تکانید|تنید|توانست";
var a08 = "|جست|جُست|جَست|جنبید|جنگید|جوشید|جوید|جهید|چاپید|چایید|چپید|چربید|چرخید|چرید|چسبید|چشید";
var a09 = "|چکید|چلاند|چلانید|چمید|چید|خارید|خاست|خایید|خراشید|خرامید|خروشید|خرید|خزید|خست";
var a10 = "|خشکید|خلید|خمید|خوابید|خواست|خواند|خورد|خوفید|خیسید|داد|داشت|دانست|درخشید|دروید";
var a11 = "|درید|دزدید|دمید|دوخت|دوشید|دوید|دیدم|ربود|رخشید|رسید|رست|رَست|رُست|رشت|رفت|رُفت|روفت";
var a12 = "|رقصید|رمید|رنجید|رندید|رویید|ریخت|رید|زارید|زایید|زد|زدود|زیست|ساخت|سپرد|سپوخت";
var a13 = "|ستد|سترد|ستود|ستیزید|سرود|سرشت|سرید|سزید|سفت|سگالید|سنجید|سوخت|سود|شاشید|شایست";
var a14 = "|شتافت|شد|شست|شکافت|شکست|شکفت|شکیفت|شگفت|شمرد|شناخت|شنید|شورید|طلبید|طوفید|غارتید";
var a15 = "|غرید|غلطید|غنود|فرستاد|فرسود|فرمود|فروخت|فریفت|فشرد|فهمید|قاپید|قبولاند|کاست";
var a16 = "|کاشت|کاوید|کرد|کشت|کشید|مکشید|کفت|کفید|کند|کوچید|کوشید|کوفت|گایید|گداخت|گذاشت";
var a17 = "|گذشت|گرازید|گرایید|گردید|گرفت|گروید|گریخت|گریست|گزارد|گزید|گُزید|گَزید|گسارد|گسترد|گسست";
var a18 = "|گشت|گشود|گفت|گماشت|گنجید|گندید|گوارید|گوزید|لرزید|لغزید|لمدنی|لندید|لنگید|لهید";
var a19 = "|لیسید|ماسید|مالید|ماند|مرد|مکید|مولید|مویید|نازید|نالید|نامید|نشست|نکوهید|نگاشت";
var a20 = "|نگریست|نمود|نواخت|نوردید|نوشت|نوشید|نهاد|نهفت|نیوشید|ورزید|وزید|هراسید|هشت";
var a21 = "|یارست|یازید|یافت)";
var verbs = a01 + a02 + a03 + a04 + a05 + a06 + a07 + a08 + a09 + a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + a21;
var hoohaahaahaa = "(می|نمی)" + verbs + "(م|ی|یم|ید|ند|\\s|\\.|،|!|؛)"
var re = new RegExp(hoohaahaahaa, "g");
s = s.replace(re, '$1\u200c$2$3');
//بنهای مضارع
var b01 = "(آرای|آرام|آزار|آزمای|آسای|آشام|آشوب|آغاز|آغار|آفرین|آگن|آلای|آی|آمرز";
var b02 = "|آموز|آمیز|آور|آویز|آهنج|ارز|افت|افراز|افروز|افزای|افسر|افشان|افگن";
var b03 = "|انبار|انجام|انداز|اندوز|اندای|اندیش|انگار|انگیز|اوبار|ایست|باز";
var b04 = "|بار|باش|باف|بال|بای|بخشای|بخش|براز|بر|بُر|بَر|بند|بساو|بسیج|بلع|بو";
var b05 = "|بوس|بوی|بیز|پاش|پالای|پز|پذیر|پراکن|پرداز|پرست|پرس|پرور|پر";
var b06 = "|پژمر|پژوه|پسند|پلاس|پلک|پناه|پندار|پوس|پوش|پوی|پیچ|پیرای";
var b07 = "|پیمای|پیوند|تاز|تاب|تپ|توپ|تراش|تراو|ترس|ترش|ترک|تکان|تن|توان";
var b08 = "|جه|جوی|جنب|جنگ|جوش|جو|چاپ|چای|چپ|چرب|چرخ|چر|چسب|چش";
var b09 = "|چک|چلان|چم|چین|خار|خیز|خای|خراش|خرام|خروش|خر|خز|خست";
var b10 = "|خشک|خل|خم|خواب|خواه|خوان|خور|خوف|خیس|ده|دار|دان|درخش|درو";
var b11 = "|در|دزد|دم|دوز|دوش|دو|بین|ربای|رخش|رس|ره|روی|رشت|رو|روب";
var b12 = "|رقص|رم|رنج|رند|روی|ریز|رین|زار|زای|زن|زدای|زی|ساز|سپر|سپوز";
var b13 = "|ستان|ستر|ستان|ستیز|سرای|سرشت|سر|سز|سنب|سگال|سنج|سوز|سای|شاش|شای";
var b14 = "|شتاب|شو|شوی|شکاف|شکن|شکوف|شکیب|شمر|شناس|شنو|شور|طلب|طوف|غارت";
var b15 = "|غر|غلط|غنو|فرست|فرسای|فرمای|فروش|فریب|فشر|فهم|قاپ|قبولان|کاه";
var b16 = "|کار|کاو|کن|کار|کُش|کش|کِش|کَش|کف|کن|کوچ|کوش|کوب|گای|گداز|گذار";
var b17 = "|گذر|گراز|گرای|گرد|گیر|گرو|گریز|گری|گزار|گز|گزین|گسار|گستر|گسل";
var b18 = "|گشای|گو|گمار|گنج|گند|گوار|گوز|لرز|لغز|لم|لند|لنگ|له";
var b19 = "|لیس|ماس|مال|مان|میر|مک|مول|موی|ناز|نال|نام|نشین|نکوه|نگار";
var b20 = "|نگر|نمای|نواز|نورد|نویس|نوش|نه|نهنب|نیوش|ورز|وز|هراس|هل";
var b21 = "|یار|یاز|یاب)";
var verbs = b01 + b02 + b03 + b04 + b05 + b06 + b07 + b08 + b09 + b10 + b11 + b12 + b13 + b14 + b15 + b16 + b17 + b18 + b19 + b20 + b21;
var hoohbbhbbhbb = "(می|نمی)" + verbs + "(م|ی|د|یم|ید|ند)"
var re = new RegExp(hoohbbhbbhbb, "g");
s = s.replace(re, '$1\u200c$2$3');
//ای «توان» ناقلا!
s = s.replace(/(می|نمی)توان/g, "$1\u200cتوان");
//تبدیل الگو {{فم}} به نویسه
s = s.replace(/\{\{فم\}\}/g, '\u200c');
//تبدیل چند فاصلهٔ مجازی پشت\u200cسرهم به یک فاصله مجازی.
s = s.replace(/(\u200c)+/g, '\u200c');
//حذف فاصلهٔ مجازی بعد از آادذرزژو . ، « »
s = s.replace(/([\.،«»\:؛\sزرذدواژؤإأآءةa-zA-Z])\u200c/g, '$1');
// اول و آخر هم خط اگر فاصلهٔ مجازی باشد، حذف شود
s = s.replace(/(^\u200c|\u200c$)/mg, '');
//حذف فاصلهٔ مجازی پیش از حروف لاتین و نیز نشانههای سجاوندی
s = s.replace(/\u200c([\w\[\]\n\s\.،«»\:؛])/g, '$1');
//اصلاح می پیشوندی
s = s.replace(/\sمی\s/g, ' می\u200c');
s = s.replace(/\sنمی\s/g, ' نمی\u200c');
s = s.replace(/\sمی\u200cو\s/g, ' می و');
//فعلهای مصدر بودن
s = s.replace(/ه\sام([\]\.،\:»\)\s])/g, 'ه\u200cام$1');
s = s.replace(/ه\sای([\]\.،\:»\)\s])/g, 'ه\u200cای$1');
s = s.replace(/([^ا])ه\sاست([\]\.،\:»\)\s])/g, '$1ه\u200cاست$2');
s = s.replace(/ه\sایم([\]\.،\:»\)\s])/g, 'ه\u200cایم$1');
s = s.replace(/ه\sاید([\]\.،\:»\)\s])/g, 'ه\u200cاید$1');
s = s.replace(/ه\sاند([\]\.،\:»\)\s])/g, 'ه\u200cاند$1');
/*چسباندن ها بر اساس مفاد دستور خط فرهنگستان و شیوه\u200cنامهٔ ویکی\u200cپدیا:*/
//تمام «ها» با فاصلهٔ مجازی میچسبند. و این مطابق مفاد آخرین شیوهنامه غلط نیست.
s = s.replace(/\sها([\]\.،\:»\)\s])/g, '\u200cها$1');
s = s.replace(/\sها(ی|یی|یم|یت|یش|مان|تان|شان)([\]\.،\:»\)\s])/g, '\u200cها$1$2');
//موارد جزئی دیگر: هرچند ربطی به ZWNJ ندارد. ولی فعلاً اینجا میگذاریمشان تا بعداً بفرستیمشان جایی دیگر.
s = s.replace(/ا\sً/g, 'اً');
// ویکی پدیا و ویکیپدیا به ویکیپدیا
s = s.replace(/ویکی\s?پدیا/g, 'ویکی\u200cپدیا');
// اسثنائات، اینها بایست که بعداً به طور دقیقتری بررسی شوند
// می۸ به می ۸ تبدیل شود، به خاطر replace(/\sمی\s/g, ' می\u200c') اشتباه شده
s = s.replace(/\sمی\u200c[\d۰-۹]\s/g, ' می $1');
// میوزیک؟ می + بن مضارع وز + ی
s = s.replace(/میوزیک/g, "میوزیک");
// لوییز می الکات، با replace(/\sمی\s/g, ' می\u200c') تغییر میکند
s = s.replace(/میالکات/g, "می الکات");
return s;
};
if (selectionMode) {
applyOnSelection(f);
} else {
obj.value = f(obj.value);
}
}
function NonStandard(obj, selectionMode) {
var f = function (s) {
//همزه روی ی
s = s.replace(/ه\u200cی\s/g, 'هٔ ');
s = s.replace(/ه\u200eی\s/g, 'هٔ ');
s = s.replace(/ه\sی\s/g, 'هٔ ');
s = s.replace(/(ۀ|هٓ)/g, 'هٔ');
s = s.replace(/هء /g, 'هٔ ');
s = s.replace(/هیی/g, 'های');
//نویسهٔ غیراستاندارد برای تنوین
s = s.replace(/ا"/g, 'اً')
//تبدیل الگو {{ی}} به نویسه
s = s.replace(/\{\{ی\}\}/g, 'ٔ');
//فارسیسازی گیومه
s = s.replace(/"(.*?)"/g, '«$1»');
s = s.replace(/«([\w]*?)»/g, '"$1"');
s = s.replace(/(\w)=«([^"]*?)»/g, '$1="$2"'); // to fix the problem with HTML double quotes.
return s;
};
if (selectionMode) {
applyOnSelection(f);
} else {
obj.value = f(obj.value);
}
}
function bringBackLDigits(r, s) {
//Given the regular expression this function brings back L Numerals
var subs = s.match(r);
if (subs !== null){
for(var iter = 0;iter<subs.length;iter++){
var la = subs[iter];
la = la.replace(/۱/g, "1");
la = la.replace(/۲/g, "2");
la = la.replace(/۳/g, "3");
la = la.replace(/۴/g, "4");
la = la.replace(/۵/g, "5");
la = la.replace(/۶/g, "6");
la = la.replace(/۷/g, "7");
la = la.replace(/۸/g, "8");
la = la.replace(/۹/g, "9");
la = la.replace(/۰/g, "0");
la = la.replace(/٫/g, ".");
la = la.replace(/٪/g, "%");
s = s.replace(subs[iter],la);
}
}
return s;
}
function digits(obj, mohsenMode) {
// Convert Codes to Characters
var f = function (s) {
s = fromEntityToUtf8(s, true);
var sold="";
while (sold != s) {
sold = s;
//برای جلوگیری از خرابکاری در پیوند تصویرها و میانویکی
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)1(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۱\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)2(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۲\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)3(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۳\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)4(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۴\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)5(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۵\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)6(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۶\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)7(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۷\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)8(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۸\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)9(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۹\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)0(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۰\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)\%(.*?)\]\]/g, '[[$1\u200c\u200c\u200c٪\u200c\u200c\u200c$2]]');
// برای جلوگیری از خرابکاری در پیوند به بیرون
s = s.replace(/(http[^\s]+?)1/g, '$1\u200c\u200c\u200c۱\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)2/g, '$1\u200c\u200c\u200c۲\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)3/g, '$1\u200c\u200c\u200c۳\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)4/g, '$1\u200c\u200c\u200c۴\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)5/g, '$1\u200c\u200c\u200c۵\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)6/g, '$1\u200c\u200c\u200c۶\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)7/g, '$1\u200c\u200c\u200c۷\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)8/g, '$1\u200c\u200c\u200c۸\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)9/g, '$1\u200c\u200c\u200c۹\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)0/g, '$1\u200c\u200c\u200c۰\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)\%/g, '$1\u200c\u200c\u200c٪\u200c\u200c\u200c');
// برای جلوگیری از خرابکاری در فرمولهای ریاضی
s = s.replace(/\<math\>(.*?)1(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۱\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)2(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۲\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)3(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۳\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)4(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۴\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)5(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۵\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)6(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۶\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)7(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۷\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)8(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۸\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)9(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۹\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)0(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c۰\u200c\u200c\u200c$2</math>');
s = s.replace(/\<math\>(.*?)%(.*?)\<\/math\>/g, '<math>$1\u200c\u200c\u200c٪\u200c\u200c\u200c$2</math>');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)1(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۱\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)2(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۲\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)3(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۳\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)4(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۴\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)5(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۵\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)6(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۶\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)7(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۷\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)8(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۸\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)9(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۹\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)0(.*?)\]\]/g, '[[$1\u200c\u200c\u200c۰\u200c\u200c\u200c$2]]');
s = s.replace(/\[\[([^\]]*?\:[^\]]*?)\%(.*?)\]\]/g, '[[$1\u200c\u200c\u200c٪\u200c\u200c\u200c$2]]');
s = s.replace(/(http[^\s]+?)1/g, '$1\u200c\u200c\u200c۱\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)2/g, '$1\u200c\u200c\u200c۲\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)3/g, '$1\u200c\u200c\u200c۳\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)4/g, '$1\u200c\u200c\u200c۴\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)5/g, '$1\u200c\u200c\u200c۵\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)6/g, '$1\u200c\u200c\u200c۶\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)7/g, '$1\u200c\u200c\u200c۷\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)8/g, '$1\u200c\u200c\u200c۸\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)9/g, '$1\u200c\u200c\u200c۹\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)0/g, '$1\u200c\u200c\u200c۰\u200c\u200c\u200c');
s = s.replace(/(http[^\s]+?)\%/g, '$1\u200c\u200c\u200c٪\u200c\u200c\u200c');
}
s = s.replace(/1/g, '۱');
s = s.replace(/\u200c\u200c\u200c۱\u200c\u200c\u200c/g, '1');
s = s.replace(/2/g, '۲');
s = s.replace(/\u200c\u200c\u200c۲\u200c\u200c\u200c/g, '2');
s = s.replace(/3/g, '۳');
s = s.replace(/\u200c\u200c\u200c۳\u200c\u200c\u200c/g, '3');
s = s.replace(/4/g, '۴');
s = s.replace(/\u200c\u200c\u200c۴\u200c\u200c\u200c/g, '4');
s = s.replace(/5/g, '۵');
s = s.replace(/\u200c\u200c\u200c۵\u200c\u200c\u200c/g, '5');
s = s.replace(/6/g, '۶');
s = s.replace(/\u200c\u200c\u200c۶\u200c\u200c\u200c/g, '6');
s = s.replace(/7/g, '۷');
s = s.replace(/\u200c\u200c\u200c۷\u200c\u200c\u200c/g, '7');
s = s.replace(/8/g, '۸');
s = s.replace(/\u200c\u200c\u200c۸\u200c\u200c\u200c/g, '8');
s = s.replace(/9/g, '۹');
s = s.replace(/\u200c\u200c\u200c۹\u200c\u200c\u200c/g, '9');
s = s.replace(/0/g, '۰');
s = s.replace(/\u200c\u200c\u200c۰\u200c\u200c\u200c/g, '0');
s = s.replace(/\%/g, '٪');
s = s.replace(/\u200c\u200c\u200c٪\u200c\u200c\u200c/g, '%');
// آوردن دخل ارقام عربی:
s = s.replace(/٠/g, '۰');
s = s.replace(/١/g, '۱');
s = s.replace(/٢/g, '۲');
s = s.replace(/٣/g, '۳');
s = s.replace(/٤/g, '۴');
s = s.replace(/٥/g, '۵');
s = s.replace(/٦/g, '۶');
s = s.replace(/٧/g, '۷');
s = s.replace(/٨/g, '۸');
s = s.replace(/٩/g, '۹');
// ممیز و هزارگان
s = s.replace(/([۱۲۳۴۵۶۷۸۹۰])\.([۱۲۳۴۵۶۷۸۹۰])/g, '$1٫$2');
s = s.replace(/([۱۲۳۴۵۶۷۸۹۰]),([۱۲۳۴۵۶۷۸۹۰])/g, '$1٬$2');
// لاتینکردن شمارهٔ ISBN
s = bringBackLDigits(/ISBN[\s\-]?([۱۲۳۴۵۶۷۸۹۰]?[\s\-]?){9,13}/g, s);
// لاتینکردن عددهای تگ math
s = bringBackLDigits(/\<math\>.*?\<\/math\>/g, s);
// لاتینکردن اندازهٔ تصویر در الگوها که با px میآید.
s = bringBackLDigits(/[۱۲۳۴۵۶۷۸۹۰]*px/g, s);
// لاتین کردن اعداد کد رنگ
s = bringBackLDigits(/#[۱۲۳۴۵۶۷۸۹۰\w\d]{3,6}/g, s);
// لاتین کردن مقادیر ویژگیهای اکسامال
s = bringBackLDigits(/=\s?"[^"]*"/g, s);
// لاتین کردن رقمها در زیرمتن لاتین
s = bringBackLDigits(/\w[\s,]*[۱۲۳۴۵۶۷۸۹۰]+[۱۲۳۴۵۶۷۸۹۰,\s]*[\w\.\)]/g, s);
// خصوصیاتی که برای ورودی انگلیسی قرار میگیرند
// میتوانند پارامتر جدول، تگ اکسامال، کلمات جادویی یا الگو باشند
s = bringBackLDigits(/\w\s*=\s*[\w۰-۹\d_\-\,]*/g, s);
// اگر یک پارامتر الگو انگلیسی باشد
s = bringBackLDigits(/\w[۰-۹]+\s*=/g, s)
return s;
};
if (mohsenMode) {
applyOnSelection(f);
} else {
obj.value = f(obj.value);
}
}
function Punctuation(obj, selectionMode) {
var f = function (s) {
s = s.replace(/\<br \/\>/g, "{{سخ}}");
// s=s.replace(/([^\n^\r])([\(«])/g,'$1 $2');
// s=s.replace(/([^(\<pre\>)])\ئ+/g,'$1 ');
s = s.replace(/ ([؟،:!\.\}])/g, "$1");
s = s.replace(/([،\.])([^\s\.\(\)«»\"\[\]\<\>\d\w\{\}\|۰-۹])/g, "$1 $2");
s = s.replace(/([\(«])\s/g, '$1');
s = s.replace(/\s([\)»])/g, '$1');
s = s.replace(/٬\s/g, "، ");
s = s.replace(/(\<\/ref\>)\s+(\<ref)/g, "$1$2");
// تغییرات جزئی که برای رباتها تعریف شده بود
s = s.replace(/^(\=+)\s*(.*?)\s*(\=+)$/mg, "$1 $2 $3");
s = s.replace(/((?:^|\n)\=.*?\=\n)\n*/g, "$1");
s = s.replace(/([^=])\n+(\=.*?\=\n)/g, "$1\n\n$2");
s = s.replace(/^([*#]+)([^*#:\s])/mg, "$1 $2");
// پاک کردن فاصلهها بین خطوط * دار
s = s.replace(/(\n\*.*?)\n(?=\n\*)/g, '$1');
// فاصله را از آخر خط پاک میکند
s = s.replace(/([^ =]) *$/mg, "$1");
// اصلاح {{•}}
s = s.replace(/ ?( )?(\{\{?[•·ن]\}\}|•) ?/g, "{{•}}");
s = s.replace(/\{\{•\}\}/g, "{{•}} ");
// برای گذاشتن گیومه برای خاصیتهای برچسب طبق اکسامال
// اشکال مشخصی که دارد این است که همهٔ نویسههای قابل قبول برای اکسامال را نمیپذیرد، چه نویسههایی لازم است؟
var sold = "";
while (sold != s) {
sold = s;
s = s.replace(/(\<\w*(?:\s\w*=['"\w\d]+)*\s+\w*=)([\w\d_]+)((?:\s\w*=['"\w\d]+)*\s?\/?\>)/g, "$1\"$2\"$3")
// first version: .replace(/\<(\w*\s+\w*=)(\w+[\w\d]*)\>/, "<$1\"$2\">");
}
return s;
};
if (selectionMode) {
applyOnSelection(f);
} else {
obj.value = f(obj.value);
}
}
function SuperTool(obj, selectionMode) {
YKarabic(obj, selectionMode);
FM(obj, selectionMode);
NonStandard(obj, selectionMode);
digits(obj, selectionMode);
Punctuation(obj, selectionMode);
}
function toggleDir(obj) {
var isrtl = 0;
if (obj) {
isrtl = obj.style.direction != 'ltr';
if (isrtl) {
obj.style.textAlign = "left";
obj.style.direction = "ltr";
} else {
obj.style.textAlign = "right";
obj.style.direction = "rtl";
}
}
}
function InterwikiSorter(obj) {
var ref = /\[\[(\w\w\w?|bat-smg|be-x-old|cbk-zam|fiu-vro|nds-nl|roa-tara|ru-sib|simple|tokipona|zh-classical|zh-min-nan|zh-yue)\:(.*?)\]\]\r?\n?(\s*)/g
var s = obj.value;
//extract interwiki's and delete them temporarily from the string
interwikis = s.match(ref);
if (interwikis == null) return;
s = s.replace(ref, "");
//sort interwikis
interwikis = interwikis.sort();
//put interwiki's back
s = s + interwikis.join("");
//update string.
obj.value = s;
}
function SortText(obj, selectionMode) {
function sortPreparation(instr){ // solve persian problem on sorting by replace characters in strings
return instr.replace(/ی/g,"ي")
.replace(/ک/g,"ك")
.replace(/گ/g,"كی")
.replace(/ژ/g,"زی")
.replace(/چ/g,"جی")
.replace(/پ/g,"بی");
}
var f = function (s) {
temp = s.split('\n');
temp.sort(function(a,b){
var keyA = sortPreparation(a);
var keyB = sortPreparation(b);
if (keyA < keyB) return -1;
if (keyA > keyB) return 1;
return 0;
});
var result = temp.join('\n');
return result;
};
if (selectionMode) {
applyOnSelection(f);
} else {
obj.value = f(obj.value);
}
}
function buttonHTMLGenerator(javascriptCode, imageSuffix, title) {
return "<a href=\"javascript:" + javascriptCode + "\"><img src=" +
"\"http://upload.wikimedia.org/wikipedia/" + imageSuffix + "\"" +
" title=\"" + title + "\"></a>";
}
/* تغییر جهت */
var toggleDirection = buttonHTMLGenerator(
"toggleDir(document.editform.wpTextbox1);", "fa/d/d0/Button_toggle_dir.png", "تغییر جهت جعبه ویرایش"
);
/* ی ک */
var YKArabic = buttonHTMLGenerator(
"YKarabic(document.editform.wpTextbox1);", "fa/8/88/Button_YehKeh.png", "اصلاح کاف و یا"
);
/* فاصله مجازی */
var zwnj = buttonHTMLGenerator(
"FM(document.editform.wpTextbox1);", "fa/d/d0/Button_ZWNJ.png", "فاصلهٔ مجازی"
);
/* نویسهٔ غیراستاندارد */
var nonS = buttonHTMLGenerator(
"NonStandard(document.editform.wpTextbox1);", "fa/9/94/Button_non_standard.png", "نویسه غیر استاندارد"
);
/* فارسیسازی ارقام */
var Dig = buttonHTMLGenerator(
"digits(document.editform.wpTextbox1,true);", "fa/4/4a/Button_numbers.png", "فارسی سازی ارقام"
);
/* تبدیل به یونیکد در آدرسهای وب */
var URLFIX = buttonHTMLGenerator(
"URLfix(document.editform.wpTextbox1);", "fa/b/ba/Button_decode_URI.png", "تبدیل به یونیکد در آدرسهای وب"
);
/* اَبَرابزار */
var STool = buttonHTMLGenerator(
"SuperTool(document.editform.wpTextbox1);", "fa/f/fc/Button_super_tool.png", "ابر ابزار"
);
/* اصلاح علامت @ */
var AtSignFix = buttonHTMLGenerator(
"AtSignReplace(document.editform.wpTextbox1);", "fa/7/7f/Button_at_sign.png", "اصلاح علامت @"
);
/* ویکیسازی */
var Wikify = buttonHTMLGenerator(
"void(document.editform.wpTextbox1.value='{{ویکیسازی}}\\n'+document.editform.wpTextbox1.value);", "fa/3/38/Button_wikify.png", "ویکیسازی"
);
/* شد! */
var Wikify = buttonHTMLGenerator(
"void(document.editform.wpTextbox1.value=document.editform.wpTextbox1.value+'\n:{{شد}}--~~~~');", "commons/5/5b/Button_check.png", "شد"
);
/* بدون منبع */
var NoS = buttonHTMLGenerator(
"void(document.editform.wpTextbox1.value='{{بدون منبع}}\\n'+document.editform.wpTextbox1.value)", "fa/8/8a/Button_no_source_fa.png", "بدون منبع"
);
/* ملزومات مقاله */
var AddEssentialThings = buttonHTMLGenerator(
"insertTags('== جستارهای وابسته ==\\n\\n== منابع ==\\n\\n{{پانویس}}','','');", "commons/e/ef/Add_note.jpg", "ملزومات مقاله"
);
/* حق تکثیر مشکوک */
var Sus = "<a href=\"javascript:document.editform.wpTextbox1.value='{{حق تکثیر مشکوک}}\\n'+document.editform.wpTextbox1.value;void(document.getElementById('wpSummary').value='حق تکثیر مشکوک')\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/c/c7/Button_Sus.png\" title=\"حق تکثیر مشکوک\"></a>";
/* نقض حق تکثیر */
var CopyR = "<a href=\"javascript:document.editform.wpTextbox1.value='';insertTags('{{جا:نقض حق تکثیر|url=','}}','Address');void(document.getElementById('wpSummary').value='نقض حق تکثیر');\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/6/6f/Button_CopyR.png\" title=\"نقض حق تکثیر\"></a>";
/* لحن نامناسب */
var Tone = "<a href=\"javascript:document.editform.wpTextbox1.value='{{لحن نامناسب}}\\n'+document.editform.wpTextbox1.value;void(document.getElementById('wpSummary').value='لحن نامناسب')\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/f/fc/Button_Tone.png\" title=\"لحن نامناسب\"></a>";
/* اصلاحات نقطه گذاری */
var Punc = "<a href=\"javascript:Punctuation(document.editform.wpTextbox1)\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/e/ed/Button_punctuation.png\" title=\"نقطهگذاری\"></a>";
/* اصلاح ترتیب میانویکیها */
var InterW = "<a href=\"javascript:InterwikiSorter(document.editform.wpTextbox1)\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/9/96/Button_interwiki.png\" title=\"اصلاح ترتیب میانویکیها\"></a>";
/* چپچین */
var ChapChin = "<a href=\"javascript:insertTags('{{چپچین}}\\n','\\n{{پایان چپچین}}','متن چپچین شده')\"><img src=\"http://upload.wikimedia.org/wikipedia/en/e/ea/Button_align_left.png\" title=\"چپچین کردن متن\"></a>";
/* سر سطر */
var SareSatr = "<a href=\"javascript:insertTags('<br />','','');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png\" title=\"سر سطر\"></a>";
/* اندیس بالا */
var UpperText = "<a href=\"javascript:insertTags('<sup>','</sup>','اندیس');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png\" title=\"اندیس بالا\"></a>";
/* اندیس پایین */
var LowerText = "<a href=\"javascript:insertTags('<sub>','</sub>','اندیس');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png\" title=\"اندیس پایین\"></a>";
/* حذف سریع */
var SpeedyDel = "<a href=\"javascript:temp1=document.editform.wpTextbox1;temp2=temp1.value;temp1.value='';insertTags('{{حذف سریع|','}}\\n'+temp2,'معیار');void(document.getElementById('wpSummary').value='حذف سریع');\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/c/c1/Button_delete_vote.png\" title=\"حذف سریع\"></a>";
/* منبع تصویر نامعلوم */
var PicSource = "<a href=\"javascript:document.editform.wpTextbox1.value='{{منبع تصویر نامعلوم}}\\n'+ document.editform.wpTextbox1.value;void(document.getElementById('wpSummary').value='منبع تصویر نامعلوم')\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/5/59/Button_image_source.png\" title=\"منبع تصویر نامعلوم\"></a>";
/* حق تکثیر تصویر نامعلوم */
var PicCopy = "<a href=\"javascript:document.editform.wpTextbox1.value='{{جا:حق تکثیر تصویر نامعلوم}}\\n'+ document.editform.wpTextbox1.value;void(document.getElementById('wpSummary').value='حق تکثیر تصویر نامعلوم')\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/7/7e/Button_image_copyright.png\" title=\"حق تکثیر تصویر نامعلوم\"></a>";
/* تمیزکاری */
var Cleanup = "<a href=\"javascript:void(document.editform.wpTextbox1.value='{{تمیزکاری}}\\n'+document.editform.wpTextbox1.value);\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/2/2e/Button_broom.png\" title=\"تمیزکاری\"></a>";
/* تغییر مسیر */
var RedirectButton = "<a href=\"javascript:document.editform.wpTextbox1.value='';insertTags('#تغییرمسیر [[',']]','پیوند');void(document.getElementById('wpSummary').value='تغییر مسیر');\"><img src=\"http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png\" title=\"تغيير مسير\"></a>";
/* سال میلادی */
var GregYear = "<a href=\"javascript:insertTags('{{میلادی|','|ماه\u200cاختیاری|روز\u200cاختیاری|قبل\u200cاز\u200cمیلاد\u200cاختیاری}}','سال');\"><img src=\"http://upload.wikimedia.org/wikibooks/fa/a/a7/Button_cal.png\" title=\"سال میلادی\"></a>";
/* کد */
var CodeButton = "<a href=\"javascript:insertTags('<code>','</code>','کد');\"><img src=\"http://upload.wikimedia.org/wikibooks/fa/2/23/Button_code.png\" title=\"کد\"></a>";
/* خوشامدید */
var Welcome = "<a href=\"javascript:insertTags('{{جا:خوشامدید|~~~~}}','','');void(document.getElementById('wpSummary').value='خوشامد')\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/4/4a/Smilies_Alien_cool.png\" title=\"خوشامد\"></a>";
/* جدول */
var TableButton = "<a href=\"javascript:insertTags('\\n{| border=1 \\n|- \\n| ش۱ || ش۲ \\n|- \\n| ش۳ || ش۴','\\n|}\\n','');\"><img src=\"http://upload.wikimedia.org/wikibooks/fa/6/60/Button_insert_table.png\" title=\"جدول\"></a>";
/* توضیح */
var CommentButton = "<a href=\"javascript:insertTags('<!--','-->','توضیح');\"><img src=\"http://upload.wikimedia.org/wikibooks/fa/3/34/Button_hide_comment.png\" title=\"توضیح\"></a>";
/* گالری */
var GalleryButton = "<a href=\"javascript:insertTags('\\n<gallery>\\n','\\n</gallery>','تصویر:PictureFileName.jpg|شرح\\nتصویر:PictureFileName.jpg|شرح');\"><img src=\"http://upload.wikimedia.org/wikibooks/fa/1/12/Button_gallery.png\" title=\"گالری\"></a>";
/* متن خط خورده */
var StrikeTextButton = "<a href=\"javascript:insertTags('<s>','</s>','متن خط خورده');\"><img src=\"http://upload.wikimedia.org/wikibooks/fa/c/c9/Button_strike.png\" title=\"متن خط خورده\"></a>";
/* اخطار نگاره */
var ImgWarn = "<a href=\"javascript:document.editform.wpTextbox1.value='';insertTags('{{جا:اخطار نگاره|','}}','نگاره');void(document.getElementById('wpSummary').value='اخطار نگاره');\"><img src=\"http://upload.wikimedia.org/wikipedia/commons/e/ec/Button_aviso.png\" title=\"اخطار نگاره\"></a>";
/* پیوند ویکی */
var wikilink = "<a href=\"javascript:insertTags('[[',']]','مقاله');\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/d/d0/Button_in_wikify.png\" title=\"پیوند\"></a>";
/* مرتب سازی */
var sorttext = "<a href=\"javascript:SortText(document.editform.wpTextbox1,true);\"><img src=\"http://upload.wikimedia.org/wikipedia/fa/3/33/Button_sort.png\" title=\"مرتب سازی\"></a>";
var Spacer = " ";
var NewRow = "<br />";
if (typeof(mytools) === "undefined") {
var mytools = '';
}
function InsertButtonsToToolBar() {
var before = document.getElementById("wpTextbox1");
if (before == null) {
return;
}
var tooly = document.createElement("tooly");
tooly.innerHTML = toggleDirection + Spacer + mytools + Spacer + YKArabic + zwnj + nonS + Dig + Punc + STool + Spacer + URLFIX + InterW + Spacer + Welcome + AddEssentialThings + NoS + Sus + CopyR + Tone + Wikify + Cleanup + SpeedyDel + Spacer + RedirectButton + GregYear + UpperText + LowerText + StrikeTextButton + ChapChin + TableButton + CommentButton + Spacer + sorttext + NewRow;
before.parentNode.insertBefore(tooly, before);
}
hookEvent('load', InsertButtonsToToolBar);
/*</pre>*/