کارور:پسر آمل/movaghat.js

ویکی‌پدیا، آزادِ دانشنومه، جه

نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
/** Magic editintros ****************************************************
 *
 *  Description: Adds editintros on disambiguation pages and BLP pages.
 *  Maintainers: [[User:RockMFR]]
 */

function addEditIntro(name) {
  var el = document.getElementById('ca-edit');
  if (!el) return;
  el = el.getElementsByTagName('a')[0];
  if (el) el.href += '&editintro=' + name;
}

if (wgNamespaceNumber == 0) {
  addOnloadHook(function () {
    if (document.getElementById('disambig') || document.getElementById('disambigbox')) addEditIntro('Template:Disambig_editintro');
  });

  addOnloadHook(function () {
    var cats = document.getElementById('mw-normal-catlinks');
    if (!cats) return;
    cats = cats.getElementsByTagName('a');
    for (var i = 0; i < cats.length; i++) {
      if (cats[i].title == 'رده:افراد زنده') {
        addEditIntro('Template:BLP_editintro');
        break;
      }
    }
  });
}

/** Sysop Javascript *******************************************************
 *
 *  Description: Allows for sysop-specific Javascript at [[MediaWiki:Sysop.js]].
 */

function sysopFunctions() {
  if (wgUserGroups && !window.disableSysopJS) {
    for (var g = 0; g < wgUserGroups.length; ++g) {
      if (wgUserGroups[g] == "sysop") {
        importScript("MediaWiki:Sysop.js");
        break;
      }
    }
  }
}

$(sysopFunctions);

/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.', 'صفحهٔ کاربری من');
ta['pt-anonuserpage'] = new Array('.', 'صفحهٔ‌ کاربری برای آی‌پی که در حال ویرایش آن هستید.');
ta['pt-mytalk'] = new Array('n', 'صفحهٔ بحث من');
ta['pt-anontalk'] = new Array('n', 'بحث پیرامون ویرایش‌هایی که صاحب این نشانی آی‌پی‌ انجام داده است.');
ta['pt-preferences'] = new Array('', 'ترجیحات من');
ta['pt-watchlist'] = new Array('l', 'فهرست صفحه‌هایی که می‌خواهید از تغییراتشان آگاه شوید.');
ta['pt-mycontris'] = new Array('y', 'فهرست مشارکت‌های من');
ta['pt-login'] = new Array('o', 'ورود به سیستم به شما توصیه می‌شود، اگرچه این کار الزامی نیست.');
ta['pt-anonlogin'] = new Array('o', 'ورود به سیستم به شما توصیه می‌شود، اگرچه این کار الزامی نیست.');
ta['pt-logout'] = new Array('o', 'خروج از سامانه');
ta['ca-talk'] = new Array('t', 'بحث درباره‌ٔ همین صفحه');
ta['ca-edit'] = new Array('e', 'شما می‌توانید این صفحه را ویرایش کنید. لطفاً قبل از ذخیره‌سازی از کلید «پیش‌نمایش یابد» استفاده کنید.');
ta['ca-addsection'] = new Array('+', 'بحث جدیدی در این صفحه وارد کنید.');
ta['ca-viewsource'] = new Array('e', 'از این صفحه محافظت می‌شود. شما تنها می‌توانید کد مبدأ آن را مشاهده کنید.');
ta['ca-history'] = new Array('h', 'نمایش ویرایش‌های پیشین این صفحه');
ta['ca-protect'] = new Array('=', 'از این صفحه محافظت شود');
ta['ca-delete'] = new Array('d', 'این صفحه حذف شود');
ta['ca-undelete'] = new Array('d', 'بازگرداندن ویرایش‌های انجام‌شده روی این صفحه پیش از حذف آن');
ta['ca-move'] = new Array('m', 'این صفحه انتقال داده شود');
ta['ca-nomove'] = new Array('', 'شما اجازهٔ انتقال این صفحه را ندارید');
ta['ca-watch'] = new Array('w', 'این صفحه را به فهرست پی‌گیری‌های خود اضافه کنید');
ta['ca-unwatch'] = new Array('w', 'حذف این صفحه از فهرست پی‌گیری‌ها');
ta['search'] = new Array('f', 'جستجو در ویکی');
ta['p-logo'] = new Array('', 'صفحه‌ٔ اصلی');
ta['n-mainpage'] = new Array('z', 'مشاهدهٔ صفحهٔ اصلی');
ta['n-portal'] = new Array('', 'دربارهٔ پروژه، چه کارهایی می‌توانید انجام دهید و هرچیز را کجا پیدا کنید');
ta['n-currentevents'] = new Array('', 'یافتن اطلاعات پیش‌زمینه پیرامون رخدادهای تازه');
ta['n-recentchanges'] = new Array('r', 'فهرست آخرین تغییرات ویکی‌پدیا');
ta['n-randompage'] = new Array('x', 'آوردن یک صفحه‌ٔ تصادفی');
ta['n-help'] = new Array('', 'مکانی برای راهنمایی گرفتن');
ta['n-sitesupport'] = new Array('', 'ما را حمایت کنید');
ta['t-whatlinkshere'] = new Array('j', 'فهرست تمامی صفحه‌های ویکی‌پدیا که به اینجا پیوند دارند');
ta['t-recentchangeslinked'] = new Array('k', 'آخرین تغییرات صفحه‌هایی که به اینجا پیوند دارند');
ta['feed-rss'] = new Array('', 'RSS feed برای این صفحه');
ta['feed-atom'] = new Array('', 'Atom feed برای این صفحه');
ta['t-contributions'] = new Array('', 'مشاهدهٰ فهرست مشارکت‌های این کاربر');
ta['t-emailuser'] = new Array('', 'ارسال پست الکترونیک به این کاربر');
ta['t-upload'] = new Array('u', 'بارگذاری پرونده‌های تصویری یا صوتی');
ta['t-specialpages'] = new Array('q', 'فهرست تمامی صفحه‌های ویژه');
ta['ca-nstab-main'] = new Array('c', 'نمایش صفحهٔ مقاله');
ta['ca-nstab-user'] = new Array('c', 'نمایش صفحهٔ کاربر');
ta['ca-nstab-media'] = new Array('c', 'نمایش صفحهٔ رسانه');
ta['ca-nstab-special'] = new Array('', 'این یک صفحهٔ ویژه است. شما نمی‌توانید این صفحه را ویرایش کنید.');
ta['ca-nstab-wp'] = new Array('a', 'نمایش صفحهٔ ویکی‌پدیا');
ta['ca-nstab-image'] = new Array('c', 'نمایش صفحهٔ تصویر');
ta['ca-nstab-mediawiki'] = new Array('c', 'نمایش پیغام سیستم');
ta['ca-nstab-template'] = new Array('c', 'نمایش الگو');
ta['ca-nstab-help'] = new Array('c', 'نمایش صفحهٔ راهنما');
ta['ca-nstab-category'] = new Array('c', 'نمایش صفحهٔ رده‌بندی');



if (navigator.appName == "Microsoft Internet Explorer") {
  var oldWidth;
  var docEl = document.documentElement;

  function fixIEScroll() {
    if (!oldWidth || docEl.clientWidth > oldWidth) doFixIEScroll();
    else setTimeout(doFixIEScroll, 1);

    oldWidth = docEl.clientWidth;
  }

  function doFixIEScroll() {
    docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
  }

  document.attachEvent("onreadystatechange", fixIEScroll);
  attachEvent("onresize", fixIEScroll);
}

function addLoadEvent(func) {
  if (window.addEventListener) window.addEventListener("load", func, false);
  else if (window.attachEvent) window.attachEvent("onload", func);
}

function LinkFA() {
  // iterate over all <span>-elements
  for (var i = 0; a = document.getElementsByTagName("span")[i]; i++) {
    // if found a FA span
    if (a.className == "FA") {
      // iterate over all <li>-elements
      for (var j = 0; b = document.getElementsByTagName("li")[j]; j++) {
        // if found a FA link
        if (b.className == "interwiki-" + a.id) {
          b.className += " FA";
          b.title = "این مقاله، یک مقاله برگزیده ‌است";
        }
      }
    }
  }
}

addLoadEvent(LinkFA);


//=================GA articles link=========

function LinkGA() {
  // iterate over all <span>-elements
  for (var i = 0; a = document.getElementsByTagName("span")[i]; i++) {
    // if found a GA span
    if (a.className == "GA") {
      // iterate over all <li>-elements
      for (var j = 0; b = document.getElementsByTagName("li")[j]; j++) {
        // if found a GA link
        if (b.className == "interwiki-" + a.id) {
          b.className += " GA";
          b.title = "این مقاله، یک مقاله خوب است";
        }
      }
    }
  }
}

addLoadEvent(LinkGA);

//=================FL articles link=========

function LinkFL() {
  // iterate over all <span>-elements
  for (var i = 0; a = document.getElementsByTagName("span")[i]; i++) {
    // if found a FL span
    if (a.className == "FL") {
      // iterate over all <li>-elements
      for (var j = 0; b = document.getElementsByTagName("li")[j]; j++) {
        // if found a FL link
        if (b.className == "interwiki-" + a.id) {
          b.className += " FL";
          b.title = "این مقاله، یک فهرست برگزیده است";
        }
      }
    }
  }
}

addLoadEvent(LinkFL);


// ==============================
// BEGIN Dynamic Navigation Bars (experimantal)
// Documentation at [[Wikipedia:NavFrame]]
// set up the words in your language
var NavigationBarHide = '[نهفتن]';
var NavigationBarShow = '[نمایش]';

// set up max count of Navigation Bars on page,
// if there are more, all will be hidden
// NavigationBarShowDefault = 0; // all bars will be hidden
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
var NavigationBarShowDefault = 1;


// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled

function toggleNavigationBar(indexNavigationBar) {
  var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

  if (!NavFrame || !NavToggle) {
    return false;
  }


  /* در انبار */

  function commonsLink(e) {
    e = (e) ? e : event;
    if (document.getElementById("t-upload")) {
      document.getElementById("t-upload").innerHTML += ' / <a href="http://commons.wikimedia.org/wiki/Special:Upload">در انبار</a>';
    }
  }
  addLoadEvent(commonsLink);


  // if shown now
  if (NavToggle.firstChild.data == NavigationBarHide) {
    for (
    var NavChild = NavFrame.firstChild;
    NavChild != null;
    NavChild = NavChild.nextSibling) {
      if (NavChild.className == 'NavPic') {
        NavChild.style.display = 'none';
      }
      if (NavChild.className == 'NavContent') {
        NavChild.style.display = 'none';
      }
    }
    NavToggle.firstChild.data = NavigationBarShow;

    // if hidden now
  } else if (NavToggle.firstChild.data == NavigationBarShow) {
    for (
    var NavChild = NavFrame.firstChild;
    NavChild != null;
    NavChild = NavChild.nextSibling) {
      if (NavChild.className == 'NavPic') {
        NavChild.style.display = 'block';
      }
      if (NavChild.className == 'NavContent') {
        NavChild.style.display = 'block';
      }
    }
    NavToggle.firstChild.data = NavigationBarHide;
  }
}

// adds show/hide-button to navigation bars

function createNavigationBarToggleButton() {
  var indexNavigationBar = 0;
  // iterate over all < div >-elements
  for (
  var i = 0;
  NavFrame = document.getElementsByTagName("div")[i];
  i++) {
    // if found a navigation bar
    if (NavFrame.className == "NavFrame") {

      indexNavigationBar++;
      var NavToggle = document.createElement("a");
      NavToggle.className = 'NavToggle';
      NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
      NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');

      var NavToggleText = document.createTextNode(NavigationBarHide);
      NavToggle.appendChild(NavToggleText);
      // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
      for (
      var j = 0;
      j < NavFrame.childNodes.length;
      j++) {
        if (NavFrame.childNodes[j].className == "NavHead") {
          NavFrame.childNodes[j].appendChild(NavToggle);
        }
      }
      NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
    }
  }
  // if more Navigation Bars found than Default: hide all
  if (NavigationBarShowDefault < indexNavigationBar) {
    for (
    var i = 1;
    i <= indexNavigationBar;
    i++) {
      toggleNavigationBar(i);
    }
  }

}

addLoadEvent(createNavigationBarToggleButton);

// END Dynamic Navigation Bars
// ==============================
/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               [[Wikipedia:NavFrame]].
 *  Maintainers: [[User:R. Koot]]
 */

var autoCollapse = 2;
var collapseCaption = "نهفتن";
var expandCaption = "نمایش";

function collapseTable(tableIndex) {
  var Button = document.getElementById("collapseButton" + tableIndex);
  var Table = document.getElementById("collapsibleTable" + tableIndex);

  if (!Table || !Button) {
    return false;
  }

  var Rows = Table.rows;

  if (Button.firstChild.data == collapseCaption) {
    for (var i = 1; i < Rows.length; i++) {
      Rows[i].style.display = "none";
    }
    Button.firstChild.data = expandCaption;
  } else {
    for (var i = 1; i < Rows.length; i++) {
      Rows[i].style.display = Rows[0].style.display;
    }
    Button.firstChild.data = collapseCaption;
  }
}


/* Test if an element has a certain class **************************************
  *
  * Description: Uses regular expressions and caching for better performance.
  * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
  */

var hasClass = (function () {
  var reCache = {};
  return function (element, className) {
    return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
  };
})();

function createCollapseButtons() {
  var tableIndex = 0;
  var NavigationBoxes = new Object();
  var Tables = document.getElementsByTagName("table");

  for (var i = 0; i < Tables.length; i++) {
    if (hasClass(Tables[i], "collapsible")) {

      /* only add button and increment count if there is a header row to work with */
      var HeaderRow = Tables[i].getElementsByTagName("tr")[0];
      if (!HeaderRow) continue;
      var Header = HeaderRow.getElementsByTagName("th")[0];
      if (!Header) continue;

      NavigationBoxes[tableIndex] = Tables[i];
      Tables[i].setAttribute("id", "collapsibleTable" + tableIndex);

      var Button = document.createElement("span");
      var ButtonLink = document.createElement("a");
      var ButtonText = document.createTextNode(collapseCaption);

      Button.style.styleFloat = "left";
      Button.style.cssFloat = "left";
      Button.style.fontWeight = "normal";
      Button.style.textAlign = "left";
      Button.style.width = "6em";

      ButtonLink.style.color = Header.style.color;
      ButtonLink.setAttribute("id", "collapseButton" + tableIndex);
      ButtonLink.setAttribute("href", "javascript:collapseTable(" + tableIndex + ");");
      ButtonLink.appendChild(ButtonText);

      Button.appendChild(document.createTextNode("["));
      Button.appendChild(ButtonLink);
      Button.appendChild(document.createTextNode("]"));

      Header.insertBefore(Button, Header.childNodes[0]);
      tableIndex++;
    }
  }

  for (var i = 0; i < tableIndex; i++) {
    if (hasClass(NavigationBoxes[i], "collapsed") || (tableIndex >= autoCollapse && hasClass(NavigationBoxes[i], "autocollapse"))) {
      collapseTable(i);
    }
  }
}
$(createCollapseButtons);

// == END Collapsible tables =============================
var mpTitle = "Main Page";
var isMainPage = (/(title=|\/wiki\/)([Tt]alk:|)[Mm]ain[ _][Pp]age/.test(document.location));
var isMainPageFront = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle);
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));

if (isMainPage) {

  if (isMainPageFront && !isDiff) {
    document.write('<style type="text/css">/*<![CDATA[*/ #lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>');
  }

  var mpSmallEnabled;
  var mpMinWidth = 700;

  function mainPageTransform() {
    if (isMainPage && document.getElementById('ca-nstab-main')) {
      document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Main Page';
    }
    if (((isMainPageFront && !isDiff) || /[\/=:]Main_Page/.test(document.location)) && document.getElementById('ca-nstab-main')) var mpContentEl = document.getElementById("bodyContent");
    var mpBrowseEl = document.getElementById("EnWpMpBrowse");
    var mpContainEl = document.getElementById("EnWpMpBrowseContainer");
    var mpMarginEl = document.getElementById("EnWpMpMargin");
    var mpEl = document.getElementById("EnWpMainPage");

    if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl) return;

    if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth) {
      mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
      mpBrowseEl.className = "EnWpMpBrowseBottom";
      mpMarginEl.style.marginRight = 0;
      mpSmallEnabled = true;
    }
    else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth) {
      mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
      mpBrowseEl.className = "EnWpMpBrowseRight";
      mpMarginEl.style.marginRight = "13.8em";
      mpSmallEnabled = false;
    }
  }

  var onloadFuncts = [mainPageTransform];

  if (window.addEventListener) window.addEventListener("resize", mainPageTransform, false);
  else if (window.attachEvent) window.attachEvent("onresize", mainPageTransform);

}

/* add a redirect button to the edit page toolbar */
/*
if (mwCustomEditButtons) {
  mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
    "speedTip": "Redirect",
    "tagOpen": "#REDIRECT [[",
    "tagClose": "]]",
    "sampleText": "Insert text"};
};
*/

// ==============================
// BEGIN pageview counter
//  Please talk to de:User:LeonWeber before changing anything or 
//  if there are any issues with that.
// this should be adjusted to a good value.
// BE CAREFULL, you will break zedler if it's too low!
// And then DaB. will kill Leon :-(
var disable_counter = 0;
var counter_factor = 6000;

function pgcounter_setup() {
  if (disable_counter == 0) {
    var url = window.location.href;
    if (Math.floor(Math.random() * counter_factor) == 42) // the probability thing
    {
      if (wgIsArticle == true || wgArticleId == 0) // do not count history pages etc.
      {
        var pgcountNs = wgCanonicalNamespace;
        if (wgCanonicalNamespace == "") {
          pgcountNs = "0";
        }
        var cnt_url = "http://pgcount.wikimedia.de/index.png?ns=" + pgcountNs + "&title=" + encodeURI(wgTitle) + "&factor=" + counter_factor + "&wiki=enwiki";
        var img = new Image();
        img.src = cnt_url;
      }
    }
  }
}
// Do not use aOnloadFunctions[aOnloadFunctions.length] = pgcounter_setup;, some browsers don't like that.
pgcounter_setup();

// END pageview counter 
// ==============================
// Force IP to preview before saving changes.
// Copyright Marc Mongenet, 2006

function forcePreview() {
  if (wgUserName != null) return;
  if (document.getElementById('editpage-copywarn')) {
    var saveButton = document.getElementById("wpSave");
    var oldHTML = document.getElementById('editpage-copywarn').innerHTML;
    var newHTML = oldHTML + '<p style="width:100%;background-color:#FFE4E1;border:2px solid #700050; color:#000000; font-size:90%; padding:2px;">&nbsp;با <a href="http://mzn.wikipedia.org/w/index.php?title=وپ:نام">نام کاروری </a>  وارد شوید یا  برای فعال شدن دکمه «صفحه ذخیره شود»، ابتدا از دکمه «پیش نمایش» استفاده کنید.</p>';
    if (!saveButton) return;
    if (location.search.search(/&action=edit/) == -1) return;
    document.getElementById('editpage-copywarn').innerHTML = newHTML;
    saveButton.disabled = true;
    saveButton.style.fontWeight = "normal";
    document.getElementById("wpPreview").style.fontWeight = "bold";
  }
  }
  addLoadEvent(forcePreview);

/*

*/

  /** Import module *************************************************************
   *
   *  Description: Includes a raw wiki page as javascript or CSS, 
   *               used for including user made modules.
   *  Source: English Wikipedi: MediaWiki:Commons.js
   */
  importedScripts = {}; // object keeping track of included scripts, so a script ain't included twice

  function importScript(page) {
    if (importedScripts[page]) {
      return;
    }
    importedScripts[page] = true;
    var url = wgScriptPath + '/index.php?title=' + encodeURIComponent(page.replace(' ', '_')) + '&action=raw&ctype=text/javascript&dontcountme=s';
    var scriptElem = document.createElement('script');
    scriptElem.setAttribute('src', url);
    scriptElem.setAttribute('type', 'text/javascript');
    document.getElementsByTagName('head')[0].appendChild(scriptElem);
  }

  function importStylesheet(page) {
    var sheet = '@import "' + wgScriptPath + '/index.php?title=' + encodeURIComponent(page.replace(' ', '_')) + '&action=raw&ctype=text/css";'
    var styleElem = document.createElement('style');
    styleElem.setAttribute('type', 'text/css');
    styleElem.appendChild(document.createTextNode(sheet));
    document.getElementsByTagName('head')[0].appendChild(styleElem);
  }

  // Begin sortable  
  // Table sort for Persian and Arabic digits , [[User:Mmehdi.g]]
  // Improve /skins-1.5/common/wikibits.js sorting Arabic and Persian digits
  // function ts_parseFloat(num)  & function ts_resortTable(lnk)

  function ts_resortTable(lnk) {
    // get the span
    var span = lnk.getElementsByTagName('span')[0];

    var td = lnk.parentNode;
    var tr = td.parentNode;
    var column = td.cellIndex;

    var table = tr.parentNode;
    while (table && !(table.tagName && table.tagName.toLowerCase() == 'table'))
    table = table.parentNode;
    if (!table) return;

    // Work out a type for the column
    if (table.rows.length <= 1) return;

    // Skip the first row if that's where the headings are
    var rowStart = (table.tHead && table.tHead.rows.length > 0 ? 0 : 1);

    var itm = "";
    for (var i = rowStart; i < table.rows.length; i++) {
      if (table.rows[i].cells.length > column) {
        itm = ts_getInnerText(table.rows[i].cells[column]);
        itm = itm.replace(/^[\s\xa0]+/, "").replace(/[\s\xa0]+$/, "");
        if (itm != "") break;
      }
    }

    sortfn = ts_sort_caseinsensitive;
    if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/)) sortfn = ts_sort_date;
    if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/)) sortfn = ts_sort_date;
    if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/)) sortfn = ts_sort_date;
    if (itm.match(/^[\u00a3$\u20ac]/)) // pound dollar euro
    sortfn = ts_sort_currency;
    if (itm.match(/^[\d.,]+\%?$/)) sortfn = ts_sort_numeric;
    if (itm.match(/^[۱۲۳۴۵۶۷۸۹۰٫٬]+٪?$/)) // Persian Digits
    sortfn = ts_sort_numeric;
    if (itm.match(/^[١٢٣٤٥٦٧٨٩٠٫٬]+٪?$/)) // Arabic Digits
    sortfn = ts_sort_numeric;

    var reverse = (span.getAttribute("sortdir") == 'down');

    var newRows = new Array();
    for (var j = rowStart; j < table.rows.length; j++) {
      var row = table.rows[j];
      var keyText = ts_getInnerText(row.cells[column]);
      var oldIndex = (reverse ? -j : j);

      newRows[newRows.length] = new Array(row, keyText, oldIndex);
    }

    newRows.sort(sortfn);

    var arrowHTML;
    if (reverse) {
      arrowHTML = '<img src="' + ts_image_path + ts_image_down + '" alt="&darr;"/>';
      newRows.reverse();
      span.setAttribute('sortdir', 'up');
    } else {
      arrowHTML = '<img src="' + ts_image_path + ts_image_up + '" alt="&uarr;"/>';
      span.setAttribute('sortdir', 'down');
    }

    // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
    // don't do sortbottom rows
    for (var i = 0; i < newRows.length; i++) {
      if ((" " + newRows[i][0].className + " ").indexOf(" sortbottom ") == -1) table.tBodies[0].appendChild(newRows[i][0]);
    }
    // do sortbottom rows only
    for (var i = 0; i < newRows.length; i++) {
      if ((" " + newRows[i][0].className + " ").indexOf(" sortbottom ") != -1) table.tBodies[0].appendChild(newRows[i][0]);
    }

    // Delete any other arrows there may be showing
    var spans = getElementsByClassName(tr, "span", "sortarrow");
    for (var i = 0; i < spans.length; i++) {
      spans[i].innerHTML = '<img src="' + ts_image_path + ts_image_none + '" alt="&darr;"/>';
    }
    span.innerHTML = arrowHTML;

    ts_alternate(table);
  }

  function ts_parseFloat(num) {
    if (!num) return 0;
    //digits : Arabic to English
    num = num.replace(/٠/g, '0'); //U+0660
    num = num.replace(/١/g, '1');
    num = num.replace(/٢/g, '2');
    num = num.replace(/٣/g, '3');
    num = num.replace(/٤/g, '4');
    num = num.replace(/٥/g, '5');
    num = num.replace(/٦/g, '6');
    num = num.replace(/٧/g, '7');
    num = num.replace(/٨/g, '8');
    num = num.replace(/٩/g, '9'); //U+0669
    //digits : Persian to English
    num = num.replace(/۰/g, '0'); //U+06F0
    num = num.replace(/۱/g, '1');
    num = num.replace(/۲/g, '2');
    num = num.replace(/۳/g, '3');
    num = num.replace(/۴/g, '4');
    num = num.replace(/۵/g, '5');
    num = num.replace(/۶/g, '6');
    num = num.replace(/۷/g, '7');
    num = num.replace(/۸/g, '8');
    num = num.replace(/۹/g, '9'); //U+06F9
    num = num.replace(/\s/g, ""); // remove whitespaces
    num = num.replace(/٫/g, "."); // Momayyez
    num = num.replace(/٬/g, ""); // dec-seperator
    num = num.replace(/,/g, "");
    num = parseFloat(num);
    return (isNaN(num) ? 0 : num);
  }
  // End sortable
  //For Change [[Special:Upload]] to [[Project:Upload]]

  function ModifySidebar(action, section, name, link) {
    try {
      switch (section) {
      case "languages":
        var target = "p-lang";
        break;
      case "toolbox":
        var target = "p-tb";
        break;
      case "navigation":
        var target = "p-navigation";
        break;
      default:
        var target = "p-" + section;
        break;
      }

      if (action == "add") {
        var node = document.getElementById(target).getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

        var aNode = document.createElement('a');
        var liNode = document.createElement('li');

        aNode.appendChild(document.createTextNode(name));
        aNode.setAttribute('href', link);
        liNode.appendChild(aNode);
        liNode.className = 'plainlinks';
        node.appendChild(liNode);
      }

      if (action == "remove") {
        var list = document.getElementById(target).getElementsByTagName('div')[0].getElementsByTagName('ul')[0];

        var listelements = list.getElementsByTagName('li');

        for (var i = 0; i < listelements.length; i++) {
          if (listelements[i].getElementsByTagName('a')[0].innerHTML == name || listelements[i].getElementsByTagName('a')[0].href == link) {

            list.removeChild(listelements[i]);
          }
        }
      }

    } catch (e) {
      // lets just ignore what's happened
      return;
    }
  }

  function CustomizeModificationsOfSidebar() {
    //adds [[wikipedia:upload]] to toolbox
    ModifySidebar("add", "toolbox", "باربیه‌شته‌ن فایل", "http://mzn.wikipedia.org/wiki/Wikipedia:%D8%A8%D8%A7%D8%B1%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C");
    //removes [[Special:Upload]] from toolbox
    ModifySidebar("remove", "toolbox", "باربیه‌شته‌ن فایل", "http://mzn.wikipedia.org/wiki/%D8%B4%D8%A7:%D8%A8%D8%A7%D8%B1%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C_%D9%BE%D8%B1%D9%88%D9%86%D8%AF%D9%87");
  }

  addOnloadHook(CustomizeModificationsOfSidebar); /* Scripts specific to Internet Explorer */

  if (navigator.appName == "Microsoft Internet Explorer") {
    /** Internet Explorer bug fix **************************************************
     *
     *  Description: Fixes IE horizontal scrollbar bug
     *  Maintainers: [[User:Tom-]]?
     */

    var oldWidth;
    var docEl = document.documentElement;

    function fixIEScroll() {
      if (!oldWidth || docEl.clientWidth > oldWidth) doFixIEScroll();
      else setTimeout(doFixIEScroll, 1);

      oldWidth = docEl.clientWidth;
    }

    function doFixIEScroll() {
      docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
    }

    document.attachEvent("onreadystatechange", fixIEScroll);
    document.attachEvent("onresize", fixIEScroll);

    // In print IE (7?) does not like line-height
    appendCSS('@media print { sup, sub, p, .documentDescription { line-height: normal; }}');

    // IE overflow bug
    appendCSS('div.overflowbugx { overflow-x: scroll !important; overflow-y: hidden !important; } div.overflowbugy { overflow-y: scroll !important; overflow-x: hidden !important; }');

    // IE zoomfix
    //Use to fix right floating div/table inside tables.
    appendCSS('.iezoomfix div, .iezoomfix table { zoom: 1;}');

    //Import scripts specific to Internet Explorer 6
    if (navigator.appVersion.substr(22, 1) == "6") {
      importScript("MediaWiki:Common.js/IE60Fixes.js")
    }
  }

  /** Main Page layout fixes *********************************************************
   *
   *  Description: Adds an additional link to the complete list of languages available.
   *  Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]
   */

  if (wgPageName == 'صفحهٔ_اصلی' || wgPageName == 'بحث:صفحه_اصلی') addOnloadHook(function () {
    mw.util.addPortletLink('p-lang', 'http://meta.wikimedia.org/wiki/List_of_Wikipedias', 'فهرست کامل', 'interwiki-completelist', 'فهرست کامل')
    var nstab = document.getElementById('ca-nstab-main')
    if (nstab && wgUserLanguage == 'fa') nstab.firstChild.firstChild.nodeValue = 'صفحهٔ_اصلی'
  })

/*
 * Description: Stay on the secure server as much as possible
 * Maintainers: [[User:TheDJ]]
 */
  if (wgServer == 'https://secure.wikimedia.org') {
    importScript('MediaWiki:Common.js/secure.js');
  }

  /** Table sorting fixes ************************************************
   *
   *  Description: Disables code in table sorting routine to set classes on even/odd rows
   *  Maintainers: [[User:Random832]]
   */

  ts_alternate_row_colors = false;



  //</source>