مدیاویکی:Common.js: تفاوت میان نسخه‌ها

از ویکی حسین
پرش به ناوبری پرش به جستجو
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
 
(۵۱ نسخهٔ میانی ویرایش شده توسط ۲ کاربر نشان داده نشد)
خط ۱: خط ۱:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
$('#mw-content-text').html(farsi_number($('#mw-content-text').html()));
/* $('#mw-content-text').not(":has('#editform')").each(function(){
 
    $(this).html(farsi_number($(this).html()));
})


function farsi_number(html_string){
function farsi_number(html_string){
html_array=html_string.split("");
    html_array=html_string.split("");
var in_tag=false;
    var in_tag=false;
if(html_array){
    if(html_array){
for(var x in html_array){
        for(var x in html_array){
character=html_array[x];
            character=html_array[x];
if(character=='<'){
            if(character=='<'){
in_tag=true;continue;
                in_tag=true;continue;
}
            }
if(character==">"){
            if(character==">"){
in_tag=false;continue;
                in_tag=false;continue;
}
            }
if(!in_tag){
            if(!in_tag){
character=num2fa(character);
                character=num2fa(character);
html_array[x]=character;
                html_array[x]=character;
}
            }
}
        }
html_string=html_array.join("");
        html_string=html_array.join("");
}
    }
return html_string;
    return html_string;
}
}
function num2fa(string){
function num2fa(string){
farsi_array=new Array("0","1","2","3","4","5","6","7","8","9");
    farsi_array=new Array("0","1","2","3","4","5","6","7","8","9");
english_array=new Array("0","1","2","3","4","5","6","7","8","9");
    english_array=new Array("0","1","2","3","4","5","6","7","8","9");
for(var x in english_array){
    for(var x in english_array){
string=string.replace(new RegExp(english_array[x],"g"),farsi_array[x]);
        string=string.replace(new RegExp(english_array[x],"g"),farsi_array[x]);
}
    }
return string;
    return string;
}
*/
 
var autoCollapse = 2;
var collapseCaption = "نهفتن";
var expandCaption = "نمایش";
var expandCaption_more = "ادامه مطلب";
 
function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
/**
  * AMDEADMAN Edit for readmore collapse added if
  */
    if ($("#collapsibleTable" + tableIndex).hasClass('readmore') & Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption_more;
    } else 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;
    }
}
 
function createCollapseButtons() {
    var tableIndex = 0;
    var NavigationBoxes = {};
    var Tables = document.getElementsByTagName( 'table' );
    var i;
 
    function handleButtonLink( index, e ) {
        window.collapseTable( index );
        e.preventDefault();
    }
 
    for ( i = 0; i < Tables.length; i++ ) {
        if ( $( Tables[i] ).hasClass( '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.className = 'collapseButton';  /* Styles are declared in Common.css */
 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( 'href', '#' );
            $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( '[' ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( ']' ) );
/**
  * AMDEADMAN Edit for readmore collapse
  */
            if($( Tables[i] ).hasClass( 'readmore' )){
                $(Header).html($(Header).text()).append(Button);
            } else {
                Header.insertBefore( Button, Header.firstChild );
            }
            tableIndex++;
        }
    }
 
    for ( i = 0;  i < tableIndex; i++ ) {
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
            window.collapseTable( i );
        }
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
            var element = NavigationBoxes[i];
            while ((element = element.parentNode)) {
                if ( $( element ).hasClass( 'outercollapse' ) ) {
                    window.collapseTable ( i );
                    break;
                }
            }
        }
    }
}
 
$( createCollapseButtons );
 
/*</pre>
===Dynamic Navigation Bars ===
<pre> */
 
/** Dynamic Navigation Bars (experimental) *************************************
*
*  Description: See [[Wikipedia:NavFrame]].
*  Maintainers: UNMAINTAINED
*/
 
// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
 
// shows and hides content and picture (if available) of navigation bars
// Parameters:
//    indexNavigationBar: the index of navigation bar to be toggled
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
    var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
    var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
    var NavChild;
 
    if ( !NavFrame || !NavToggle ) {
        return false;
    }
 
    /* if shown now */
    if ( NavToggle.firstChild.data === NavigationBarHide ) {
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
 
    /* if hidden now */
    } else if ( NavToggle.firstChild.data === NavigationBarShow ) {
        for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
            if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
 
    event.preventDefault();
};
 
/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton() {
    var indexNavigationBar = 0;
    var NavFrame;
    var NavChild;
    /* iterate over all < div >-elements */
    var divs = document.getElementsByTagName( 'div' );
    for ( var i = 0; (NavFrame = divs[i]); i++ ) {
        /* if found a navigation bar */
        if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {
 
            indexNavigationBar++;
            var NavToggle = document.createElement( 'a' );
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
            NavToggle.setAttribute( 'href', '#' );
            $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );
 
            var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
            /**
            * Check if any children are already hidden.  This loop is here for backwards compatibility:
            * the old way of making NavFrames start out collapsed was to manually add style="display:none"
            * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
            * the content visible without JavaScript support), the new recommended way is to add the class
            * "collapsed" to the NavFrame itself, just like with collapsible tables.
            */
            for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
                if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
                    if ( NavChild.style.display === 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if ( isCollapsed ) {
                for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
                    if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : 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] ).hasClass( 'NavHead' ) ) {
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
                    NavFrame.childNodes[j].appendChild( NavToggle );
                }
            }
            NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
        }
    }
}
 
function align_mp_box() {
  var firstColumn = $('.first-column-container');
  var secondColumn = $('.second-column-container');
 
  var firstColumnLastChild = firstColumn.children().last();
  var secondColumnLastChild = secondColumn.children().last();
 
  var firstChildDataPaddingBottom = firstColumnLastChild.data('padding-bottom');
  var secondChildDataPaddingBottom = secondColumnLastChild.data('padding-bottom');
 
  if (typeof firstChildDataPaddingBottom == 'undefined') {
    firstChildDataPaddingBottom = Math.round(parseInt(firstColumnLastChild.css('padding-bottom')));
    firstColumnLastChild.data('padding-bottom', firstChildDataPaddingBottom);
  }
 
  if (typeof secondChildDataPaddingBottom == 'undefined') {
    secondChildDataPaddingBottom = Math.round(parseInt(secondColumnLastChild.css('padding-bottom')));
    secondColumnLastChild.data('padding-bottom', secondChildDataPaddingBottom);
  }
 
  firstColumnLastChild.css('padding-bottom', firstChildDataPaddingBottom)
  secondColumnLastChild.css('padding-bottom', secondChildDataPaddingBottom)
 
  var firstColumnHeight = firstColumn.height();
  var secondColumnHeight = secondColumn.height();
 
  var diff = Math.round(firstColumnHeight - secondColumnHeight);
 
 
  var lastChild = null;
  var lastChildPaddingBottom = null;
  if (diff > 0) {
    lastChild = secondColumn.children().last();
    lastChildPaddingBottom = secondChildDataPaddingBottom;
  } else {
    lastChild = firstColumn.children().last();
    lastChildPaddingBottom = firstChildDataPaddingBottom;
    diff = Math.abs(diff);
  }
 
  lastChild.css('padding-bottom', (lastChildPaddingBottom + diff));
}
 
function showModal() {
  var modalHtml = '<div class="modal fade" id="popUpOverlay">\n' +
    '  <div class="modal-dialog">\n' +
    '    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">\n' +
    '      <i class="fa fa-close"></i>\n' +
    '    </button>\n' +
    '    <a href="https://www.wikihussain.com/campaign" target="_blank">\n' +
    '      <img src="/assets/images/popup.png" class="img-responsive">\n' +
    '    </a>\n' +
    '  </div>\n' +
    '</div>\n';
 
  if (typeof(Storage) !== "undefined") {
    var showModal = localStorage.getItem("donatePopup");
 
    if (!showModal) {
      jQuery('body').append(modalHtml);
      jQuery('#popUpOverlay').modal('show');
      localStorage.setItem("donatePopup", "1");
    }
  }
}
 
/*
function replaceText1(selector, text, newText) {
    var matcher = new RegExp(text, 'g');
    jQuery(selector).each(function () {
        var $this = jQuery(this);
        if($this.prop("tagName")!='STYLE' && $this.prop("tagName")!='SCRIPT' && $this.prop("tagName")!='IMG' && $this.prop("tagName")!='PRE' && !$this.children().length )
            $this.text($this.text().replace(matcher, newText));
       
    });
}
 
 
function replaceText2(searchText, replacement, searchNode) {
  if (!searchText || typeof replacement === 'undefined') {
      // Throw error here if you want...
      return;
  }
  var regex = typeof searchText === 'string' ?
              new RegExp(searchText, 'g') : searchText,
      childNodes = (searchNode || document.body).childNodes,
      cnLength = childNodes.length,
      excludes = 'html,head,style,title,link,meta,script,object,iframe';
  while (cnLength--) {
      var currentNode = childNodes[cnLength];
      if (currentNode.nodeType === 1 &&
          (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) {
          arguments.callee(searchText, replacement, currentNode);
      }
      if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) {
          continue;
      }
      var parent = currentNode.parentNode,
          frag = (function(){
              var html = currentNode.data.replace(regex, replacement),
                  wrap = document.createElement('div'),
                  frag = document.createDocumentFragment();
              wrap.innerHTML = html;
              while (wrap.firstChild) {
                  frag.appendChild(wrap.firstChild);
              }
              return frag;
          })();
      parent.insertBefore(frag, currentNode);
      parent.removeChild(currentNode);
  }
}
 
function replaceText3(element, pattern, replacement) {
  for (let node of element.childNodes) {
      switch (node.nodeType) {
          case Node.ELEMENT_NODE:
              replaceText3(node, pattern, replacement);
              break;
          case Node.TEXT_NODE:
              node.textContent = node.textContent.replace(pattern, replacement);
              break;
          case Node.DOCUMENT_NODE:
              replaceText3(node, pattern, replacement);
      }
  }
}
}
*/
jQuery(document).ready(function () {
align_mp_box();
  // showModal();
});
jQuery(window).on('load', function () {
  align_mp_box();
});
jQuery(window).on('resize', function () {
  align_mp_box();
});
  if (
    window.location.hostname != 'localhost'
    && window.location.hostname != '127.0.0.1'
    && window.location.hostname != 'wiki'
    && window.location.hostname != 'fa.wiki'
    && window.location.hostname != 'en.wiki'
    && window.location.hostname != 'fr.wiki'
  ) {
    (function (i, s, o, g, r, a, m) {
      i['GoogleAnalyticsObject'] = r;
      i[r] = i[r] || function () {
        (i[r].q = i[r].q || []).push(arguments)
      }, i[r].l = 1 * new Date();
      a = s.createElement(o),
        m = s.getElementsByTagName(o)[0];
      a.async = 1;
      a.src = g;
      m.parentNode.insertBefore(a, m)
    })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
    ga('create', 'UA-85669311-1', 'auto');
    ga('send', 'pageview');
  }
 
  /*
 
  if(window.location.hostname == 'fa.wikihussain.com') {
    var faNum=['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'];
    for(k in faNum){
      replaceText1(document.body,k,faNum[k]);   
      //replaceText2(document.body,k,faNum[k]);   
      replaceText3(document.body,k,faNum[k]);   
    }
  }
  */

نسخهٔ کنونی تا ‏۷ فوریهٔ ۲۰۲۲، ساعت ۱۶:۲۴

/* Any JavaScript here will be loaded for all users on every page load. */
/* $('#mw-content-text').not(":has('#editform')").each(function(){
    $(this).html(farsi_number($(this).html()));
})

function farsi_number(html_string){
    html_array=html_string.split("");
    var in_tag=false;
    if(html_array){
        for(var x in html_array){
            character=html_array[x];
            if(character=='<'){
                in_tag=true;continue;
            }
            if(character==">"){
                in_tag=false;continue;
            }
            if(!in_tag){
                character=num2fa(character);
                html_array[x]=character;
            }
        }
        html_string=html_array.join("");
    }
    return html_string;
}

function num2fa(string){
    farsi_array=new Array("0","1","2","3","4","5","6","7","8","9");
    english_array=new Array("0","1","2","3","4","5","6","7","8","9");
    for(var x in english_array){
        string=string.replace(new RegExp(english_array[x],"g"),farsi_array[x]);
    }
    return string;
}
*/

var autoCollapse = 2;
var collapseCaption = "نهفتن";
var expandCaption = "نمایش";
var expandCaption_more = "ادامه مطلب";

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

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

    var Rows = Table.rows;
/**
  * AMDEADMAN Edit for readmore collapse added if
  */
    if ($("#collapsibleTable" + tableIndex).hasClass('readmore') & Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption_more;
    } else 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;
    }
}

function createCollapseButtons() {
    var tableIndex = 0;
    var NavigationBoxes = {};
    var Tables = document.getElementsByTagName( 'table' );
    var i;

    function handleButtonLink( index, e ) {
        window.collapseTable( index );
        e.preventDefault();
    }

    for ( i = 0; i < Tables.length; i++ ) {
        if ( $( Tables[i] ).hasClass( '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.className = 'collapseButton';  /* Styles are declared in Common.css */

            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
            ButtonLink.setAttribute( 'href', '#' );
            $( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
            ButtonLink.appendChild( ButtonText );

            Button.appendChild( document.createTextNode( '[' ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( ']' ) );
/**
  * AMDEADMAN Edit for readmore collapse
  */
            if($( Tables[i] ).hasClass( 'readmore' )){
                $(Header).html($(Header).text()).append(Button);
            } else {
                Header.insertBefore( Button, Header.firstChild );
            }
            tableIndex++;
        }
    }

    for ( i = 0;  i < tableIndex; i++ ) {
        if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
            window.collapseTable( i );
        }
        else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
            var element = NavigationBoxes[i];
            while ((element = element.parentNode)) {
                if ( $( element ).hasClass( 'outercollapse' ) ) {
                    window.collapseTable ( i );
                    break;
                }
            }
        }
    }
}

$( createCollapseButtons );

/*</pre>
===Dynamic Navigation Bars ===
<pre> */

/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */

// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';

// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
window.toggleNavigationBar = function ( indexNavigationBar, event ) {
    var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );
    var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );
    var NavChild;

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

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

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

    event.preventDefault();
};

/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton() {
    var indexNavigationBar = 0;
    var NavFrame;
    var NavChild;
    /* iterate over all < div >-elements */
    var divs = document.getElementsByTagName( 'div' );
    for ( var i = 0; (NavFrame = divs[i]); i++ ) {
        /* if found a navigation bar */
        if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {

            indexNavigationBar++;
            var NavToggle = document.createElement( 'a' );
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );
            NavToggle.setAttribute( 'href', '#' );
            $( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );

            var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );
            /**
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for ( NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling ) {
                if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
                    if ( NavChild.style.display === 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if ( isCollapsed ) {
                for ( NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling ) {
                    if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : 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] ).hasClass( 'NavHead' ) ) {
                    NavToggle.style.color = NavFrame.childNodes[j].style.color;
                    NavFrame.childNodes[j].appendChild( NavToggle );
                }
            }
            NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );
        }
    }
}

function align_mp_box() {
  var firstColumn = $('.first-column-container');
  var secondColumn = $('.second-column-container');

  var firstColumnLastChild = firstColumn.children().last();
  var secondColumnLastChild = secondColumn.children().last();

  var firstChildDataPaddingBottom = firstColumnLastChild.data('padding-bottom');
  var secondChildDataPaddingBottom = secondColumnLastChild.data('padding-bottom');

  if (typeof firstChildDataPaddingBottom == 'undefined') {
    firstChildDataPaddingBottom = Math.round(parseInt(firstColumnLastChild.css('padding-bottom')));
    firstColumnLastChild.data('padding-bottom', firstChildDataPaddingBottom);
  }

  if (typeof secondChildDataPaddingBottom == 'undefined') {
    secondChildDataPaddingBottom = Math.round(parseInt(secondColumnLastChild.css('padding-bottom')));
    secondColumnLastChild.data('padding-bottom', secondChildDataPaddingBottom);
  }

  firstColumnLastChild.css('padding-bottom', firstChildDataPaddingBottom)
  secondColumnLastChild.css('padding-bottom', secondChildDataPaddingBottom)

  var firstColumnHeight = firstColumn.height();
  var secondColumnHeight = secondColumn.height();

  var diff = Math.round(firstColumnHeight - secondColumnHeight);


  var lastChild = null;
  var lastChildPaddingBottom = null;
  if (diff > 0) {
    lastChild = secondColumn.children().last();
    lastChildPaddingBottom = secondChildDataPaddingBottom;
  } else {
    lastChild = firstColumn.children().last();
    lastChildPaddingBottom = firstChildDataPaddingBottom;
    diff = Math.abs(diff);
  }

  lastChild.css('padding-bottom', (lastChildPaddingBottom + diff));
}

function showModal() {
  var modalHtml = '<div class="modal fade" id="popUpOverlay">\n' +
    '  <div class="modal-dialog">\n' +
    '    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">\n' +
    '      <i class="fa fa-close"></i>\n' +
    '    </button>\n' +
    '    <a href="https://www.wikihussain.com/campaign" target="_blank">\n' +
    '      <img src="/assets/images/popup.png" class="img-responsive">\n' +
    '    </a>\n' +
    '  </div>\n' +
    '</div>\n';

  if (typeof(Storage) !== "undefined") {
    var showModal = localStorage.getItem("donatePopup");

    if (!showModal) {
      jQuery('body').append(modalHtml);
      jQuery('#popUpOverlay').modal('show');
      localStorage.setItem("donatePopup", "1");
    }
  }
}

/*
function replaceText1(selector, text, newText) {
    var matcher = new RegExp(text, 'g');
    jQuery(selector).each(function () {
        var $this = jQuery(this);
        if($this.prop("tagName")!='STYLE' && $this.prop("tagName")!='SCRIPT' && $this.prop("tagName")!='IMG' && $this.prop("tagName")!='PRE' && !$this.children().length )
            $this.text($this.text().replace(matcher, newText));
        
    });
}


function replaceText2(searchText, replacement, searchNode) {
  if (!searchText || typeof replacement === 'undefined') {
      // Throw error here if you want...
      return;
  }
  var regex = typeof searchText === 'string' ?
              new RegExp(searchText, 'g') : searchText,
      childNodes = (searchNode || document.body).childNodes,
      cnLength = childNodes.length,
      excludes = 'html,head,style,title,link,meta,script,object,iframe';
  while (cnLength--) {
      var currentNode = childNodes[cnLength];
      if (currentNode.nodeType === 1 &&
          (excludes + ',').indexOf(currentNode.nodeName.toLowerCase() + ',') === -1) {
          arguments.callee(searchText, replacement, currentNode);
      }
      if (currentNode.nodeType !== 3 || !regex.test(currentNode.data) ) {
          continue;
      }
      var parent = currentNode.parentNode,
          frag = (function(){
              var html = currentNode.data.replace(regex, replacement),
                  wrap = document.createElement('div'),
                  frag = document.createDocumentFragment();
              wrap.innerHTML = html;
              while (wrap.firstChild) {
                  frag.appendChild(wrap.firstChild);
              }
              return frag;
          })();
      parent.insertBefore(frag, currentNode);
      parent.removeChild(currentNode);
  }
}

function replaceText3(element, pattern, replacement) {
  for (let node of element.childNodes) {
      switch (node.nodeType) {
          case Node.ELEMENT_NODE:
              replaceText3(node, pattern, replacement);
              break;
          case Node.TEXT_NODE:
              node.textContent = node.textContent.replace(pattern, replacement);
              break;
          case Node.DOCUMENT_NODE:
              replaceText3(node, pattern, replacement);
      }
  }
}
*/
jQuery(document).ready(function () {

align_mp_box();
  // showModal();
});

jQuery(window).on('load', function () {
  align_mp_box();
});

jQuery(window).on('resize', function () {
  align_mp_box();
});


  if (
    window.location.hostname != 'localhost'
    && window.location.hostname != '127.0.0.1'
    && window.location.hostname != 'wiki'
    && window.location.hostname != 'fa.wiki'
    && window.location.hostname != 'en.wiki'
    && window.location.hostname != 'fr.wiki'
  ) {

    (function (i, s, o, g, r, a, m) {
      i['GoogleAnalyticsObject'] = r;
      i[r] = i[r] || function () {
        (i[r].q = i[r].q || []).push(arguments)
      }, i[r].l = 1 * new Date();
      a = s.createElement(o),
        m = s.getElementsByTagName(o)[0];
      a.async = 1;
      a.src = g;
      m.parentNode.insertBefore(a, m)
    })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');

    ga('create', 'UA-85669311-1', 'auto');
    ga('send', 'pageview');
  }
  
  /*
  
  if(window.location.hostname == 'fa.wikihussain.com') {
    var faNum=['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'];
    for(k in faNum){
      replaceText1(document.body,k,faNum[k]);    
      //replaceText2(document.body,k,faNum[k]);    
      replaceText3(document.body,k,faNum[k]);    

    }

  }
  */