MediaWiki:Common.js: Perbedaan antara revisi

Dari In-Christ Wiki, Wiki Kristen Indonesia
Loncat ke navigasi Loncat ke pencarian
Bennylin (bicara | kontrib)
Tidak ada ringkasan suntingan
Bennylin (bicara | kontrib)
Tidak ada ringkasan suntingan
Baris 1: Baris 1:
/* JavaScript yang ada di sini akan diterapkan untuk semua kulit. */
//<source lang="javascript">


/**
/* Import more specific scripts if necessary */
 
JavaScript yang ada di sini akan diterapkan untuk semua kulit.
if (wgAction == "edit" || wgAction == "submit") //scripts specific to editing pages
__TOC__
{
== Deklarasi variabel ==
    importScript("MediaWiki:Common.js/edit.js")
}
Variabel-variabel yang dipakai secara global */
else if (wgPageName == "Special:Watchlist") //watchlist scripts
{
var ScriptPrefix = '<script type="text/javascript" src="/w/index.php?title=';
    importScript("MediaWiki:Common.js/watchlist.js")
var ScriptSuffix = '&action=raw&ctype=text/javascript&dontcountme=s"></script>';
}
var LoadInterProject = true;
else if (wgPageName == "Special:Search") //scripts specific to Special:Search
var LoadLinkFA = true;
{
var LoadNavFrame = true;
    importScript("MediaWiki:Common.js/search.js")
var load_edittools = true;
}
var LoadExtraPortlet = true;
 
var LoadStripe = true;
 
var LoadEditTop = true;
/** Sysop Javascript *******************************************************
var LoadExtraEditButtons = true;
  *
var load_extratabs = false;
  * Description: Allows for sysop-specific Javascript at [[MediaWiki:Sysop.js]].
var LoadPageCounter = false;
  */
function sysopFunctions() {
/**
    if ( wgUserGroups && !window.disableSysopJS ) {
== Variabel saklar per pengguna ==
        for ( var g = 0; g < wgUserGroups.length; ++g ) {
   
            if ( wgUserGroups[g] == "sysop" ) {
Ubah [[Istimewa:Mypage/switches.js]] untuk mengatur fitur yang ingin Anda
                importScript( "MediaWiki:Sysop.js" );
aktifkan atau matikan */
                break;
            }
document.write( ScriptPrefix + 'Pengguna:' + wgUserName + '/switches.js' + ScriptSuffix );
        }
    }
/**
}
== Library functions ==
 
addOnloadHook( sysopFunctions );
Librari fungsi yang digunakan oleh fungsi-fungsi lain. */
 
/* Scripts specific to Internet Explorer */
// Fix tampilan untuk IE
 
if (navigator.appName == "Microsoft Internet Explorer")
if (window.showModalDialog && document.compatMode && document.compatMode == "CSS1Compat")
{
  {
    /** Internet Explorer bug fix **************************************************
     var oldWidth;
    *
    var docEl = document.documentElement;
    * Description: Fixes IE horizontal scrollbar bug
    function fixIEScroll()
    *  Maintainers: [[User:Tom-]]?
    {
     */
          if (!oldWidth || docEl.clientWidth > oldWidth)
   
              doFixIEScroll();
    var oldWidth;
          else
    var docEl = document.documentElement;
              setTimeout(doFixIEScroll, 1);
   
          oldWidth = docEl.clientWidth;
    function fixIEScroll()
    }
    {
    function doFixIEScroll() {
        if (!oldWidth || docEl.clientWidth > oldWidth)
          docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
            doFixIEScroll();
    }
        else
    document.attachEvent("onreadystatechange", fixIEScroll);
            setTimeout(doFixIEScroll, 1);
    attachEvent("onresize", fixIEScroll);
       
}
        oldWidth = docEl.clientWidth;
    }
// addLoadEvent, menambahkan event
   
    function doFixIEScroll() {
function addLoadEvent(func)
        docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
{
    }
     if (window.addEventListener)
   
          window.addEventListener("load", func, false);
    document.attachEvent("onreadystatechange", fixIEScroll);
     else if (window.attachEvent)
    document.attachEvent("onresize", fixIEScroll);
          window.attachEvent("onload", func);
   
}
   
    /**
/**
     * Remove need for CSS hacks regarding MSIE and IPA.
== MainPageTransform ==
     */
   
Menghilangkan judul [[Halaman Utama]] dan mengganti nama tab. */
    if (document.createStyleSheet) {
        document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";');
var mpTitle = "Halaman Utama";
    }
var isMainPage = (document.title.substr(0, mpTitle.length) == mpTitle)
   
var isDiff = (document.location.search && (
   
    document.location.search.indexOf("diff=") != -1 ||
    //Import scripts specific to Internet Explorer 6
    document.location.search.indexOf("oldid=") != -1 ||
    if (navigator.appVersion.substr(22, 1) == "6")
    document.location.search.indexOf("action=history") != -1
    {
));
        importScript("MediaWiki:Common.js/IE60Fixes.js")
if ( isMainPage && !isDiff && (wgCanonicalNamespace != 'Special') )
    }
{
}
    document.write('<style type="text/css"> #siteSub, #contentSub, h1.firstHeading { display: none!important; } #content, #content div.thumb, #p-cactions li a, #p-cactions li a:hover, #p-cactions li.selected a { background: #fff!important; } </style>');
 
    var mpSmallEnabled;
 
    var mpMinWidth = 700;
/* Test if an element has a certain class **************************************
    function mainPageTransform()
*
    {
  * Description: Uses regular expressions and caching for better performance.
          var mpContentEl = document.getElementById("bodyContent");
  * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
          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);
}
function mainpg() {
    if ((isMainPage || /[\/=:]Halaman_Utama/.test(document.location)) && document.getElementById('ca-nstab-main')) {
          document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Utama';
    }  
}
addOnloadHook(mainpg);
/**
== LowcaseTitle ==
   
  Judul dengan [[Template:Judul|huruf pertama kecil]]. */
if (document.URL.indexOf("=edit") > 0 || document.URL.indexOf("=submit") > 0) {var noJS;}
else {
      document.write('<style type="text/css">#title-override {display: none; speak: none;}<\/style>');
      function pTitle() {
          if (document.getElementById("title-override")) {
                var pTitle = document.getElementById("pTitle").innerHTML;
                document.getElementsByTagName("h1")[0].innerHTML = pTitle;
          }
      }
      hookEvent("load", pTitle);
}
/**
== LinkFA ==
Menambahkan bintang di InterWiki
  */
  */
if (LoadLinkFA == true) {
 
function LinkFA()
var hasClass = (function () {
{
    var reCache = {};
    if ( document.getElementById( "p-lang" ) ) {
    return function (element, className) {
        var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
        for ( var i = 0; i < InterwikiLinks.length; i++ ) {
})();
            if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) {
 
                InterwikiLinks[i].className += " FA"
 
                InterwikiLinks[i].title = "Ini adalah artikel pilihan pada bahasa lain.";
/** Collapsible tables *********************************************************
            }
*
        }
  *  Description: Allows tables to be collapsed, showing only the header.
    }
*
}
addOnloadHook( LinkFA );
}
/**
== Pranala luar pilihan ==
   
Menandai pranala luar pilihan. Gunakan templat {{tl|extlink-fa}} di depan atau belakang pranala luar. Ini akan memberikan suatu objek "span" kosong yang akan dikenali oleh JavaScript yang akan mengubah style bulletnya.
  */
  */
function linkExtLinkFA() {
  oSpans = document.getElementById( "bodyContent" ).getElementsByTagName( "span" );
  for ( var i = 0; i < oSpans.length; i++ ) {
    if ( oSpans[i].className == 'extlink-fa' ) {
      var oParent = oSpans[i].parentNode;
      if ( oParent.tagName == 'LI' ) {
        oParent.className += ' FA';
        oParent.title = 'Pranala pilihan';
      }
    }
  }
}
addOnloadHook( linkExtLinkFA )
/**
== InterProject ==
InterProject, link di menu samping untuk proyek lain.
<nowiki> */
if (LoadInterProject == true) {
document.write('<style type="text/css">#interProyek {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}<\/style>');
function iProject() {
    if (document.getElementById("interProyek")) {
          var iProject = document.getElementById("interProyek").innerHTML;
          var interProject = document.createElement("div");
          interProject.style.marginTop = "0.7em";
          interProject.innerHTML = '<h5>Proyek lain<\/h5><div class="pBody">'+iProject+'<\/div>';
          document.getElementById("p-tb").appendChild(interProject);
    }
}
addLoadEvent(iProject);
}
/* </nowiki> */
/**


== CollapsibleTable ==
var autoCollapse = 2;
var collapseCaption = "hide";
var expandCaption = "show";
 
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;
    }
}
 
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 = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            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 );
        }
    }
}
 
addOnloadHook( createCollapseButtons );
 
 
/** Dynamic Navigation Bars (experimental) *************************************
*
*  Description:
*  Maintainers:
  */
  */
var autoCollapse = 2;
 
var collapseCaption = "sembunyikan";
// set up the words in your language
var expandCaption = "tampilkan";
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
function hasClass( element, className ) {
 
  var Classes = element.className.split( " " );
// shows and hides content and picture (if available) of navigation bars
  for ( var i = 0; i < Classes.length; i++ ) {
// Parameters:
     if ( Classes[i] == className ) {
//    indexNavigationBar: the index of navigation bar to be toggled
      return ( true );
function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
     if (!NavFrame || !NavToggle) {
        return false;
     }
     }
  }
 
  return ( false );
    // if shown now
}
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
function collapseTable( tableIndex )
            if ( hasClass( NavChild, 'NavPic' ) ) {
{
                NavChild.style.display = 'none';
    var Button = document.getElementById( "collapseButton" + tableIndex );
            }
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
            if ( hasClass( NavChild, 'NavContent') ) {
                NavChild.style.display = 'none';
    if ( !Table || !Button ) {
            }
        return false;
        }
    }
    NavToggle.firstChild.data = NavigationBarShow;
 
    var Rows = Table.getElementsByTagName( "tr" );  
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
    if ( Button.firstChild.data == collapseCaption ) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
        for ( var i = 1; i < Rows.length; i++ ) {
            if (hasClass(NavChild, 'NavPic')) {
            Rows[i].style.display = "none";
                NavChild.style.display = 'block';
        }
            }
        Button.firstChild.data = expandCaption;
            if (hasClass(NavChild, 'NavContent')) {
    } else {
                NavChild.style.display = 'block';
        for ( var i = 1; i < Rows.length; i++ ) {
            }
            Rows[i].style.display = Rows[0].style.display;
        }
        }
        NavToggle.firstChild.data = NavigationBarHide;
        Button.firstChild.data = collapseCaption;
    }
    }
}
}
 
// adds show/hide-button to navigation bars
function createCollapseButtons()
function createNavigationBarToggleButton()
{
{
    var tableIndex = 0;
    var indexNavigationBar = 0;
    var NavigationBoxes = new Object();
    // iterate over all < div >-elements
    var Tables = document.getElementsByTagName( "table" );
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
    for ( var i = 0; i < Tables.length; i++ ) {
        // if found a navigation bar
        if ( hasClass( Tables[i], "collapsible" ) ) {
        if (hasClass(NavFrame, "NavFrame")) {
            NavigationBoxes[ tableIndex ] = Tables[i];
 
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            var Button    = document.createElement( "span" );
            NavToggle.className = 'NavToggle';
            var ButtonLink = document.createElement( "a" );
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            var ButtonText = document.createTextNode( collapseCaption );
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
            Button.style.styleFloat = "right";
            var NavToggleText = document.createTextNode(NavigationBarHide);
            Button.style.cssFloat = "right";
            for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            Button.style.fontWeight = "normal";
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
            Button.style.textAlign = "right";
                    if (NavChild.style.display == 'none') {
            Button.style.width = "6em";
                        NavToggleText = document.createTextNode(NavigationBarShow);
                        break;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
                    }
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
                }
            ButtonLink.appendChild( ButtonText );
            }
 
            Button.appendChild( document.createTextNode( "[" ) );
            NavToggle.appendChild(NavToggleText);
            Button.appendChild( ButtonLink );
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            Button.appendChild( document.createTextNode( "]" ) );
            for(var j=0; j < NavFrame.childNodes.length; j++) {
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
            var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
                    NavFrame.childNodes[j].appendChild(NavToggle);
            /* only add button and increment count if there is a header row to work with */
                }
            if (Header) {
            }
                Header.insertBefore( Button, Header.childNodes[0] );
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
                tableIndex++;
        }
            }
    }
        }
}
    }
 
addOnloadHook( createNavigationBarToggleButton );
    for ( var i = 0; i < tableIndex; i++ ) {
 
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
 
            collapseTable( i );
/** "Technical restrictions" title fix *****************************************
        }
  *
    }
  *  Description: For pages that have something like Template:Wrongtitle, replace
}
  *              the title, but only if it is cut-and-pasteable as a valid
  *              wikilink. For instance, "NZR WB class" can be changed to
addOnloadHook( createCollapseButtons );
  *              "NZR W<sup>B</sup> class", but [[C#]] is not an equivalent wikilink,
  *              so [[C Sharp]] doesn't have its main title changed.
/* End of CollapsibleTable */
  *
  *              The function looks for a banner like this:
/**
  *              <div id="RealTitleBanner"> ... <span id="RealTitle">title</span> ... </div>
   
  *              An element with id=DisableRealTitle disables the function.
== NavFrame ==
  *  Maintainers: Remember_the_dot
  */
  Memberikan bagian yang bisa disembunyikan */
 
   
if (wgIsArticle) //prevents the "Editing " prefix from disappearing during preview
  if (LoadNavFrame == true) {
{
   
    addOnloadHook(function()
  // set up the words in your language
    {
var NavigationBarHide = '[ Sembunyikan ]';
        var realTitle = document.getElementById("RealTitle")
  var NavigationBarShow = '[ Tampilkan ]';
       
  // set up max count of Navigation Bars on page,
        if (realTitle)
  // if there are more, all will be hidden
        {
  // NavigationBarShowDefault = 0; // all bars will be hidden
            //normalizes a title or a namespace name (but not both)
  // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
            //trims leading and trailing underscores and converts (possibly multiple) spaces and underscores to single underscores
  var NavigationBarShowDefault = 0;
            function normalizeTitle(title)
  // shows and hides content and picture (if available) of navigation bars
            {
// Parameters:
                return title.replace(/^_+/, "").replace(/_+$/, "").replace(/[\s_]+/g, "_")
// indexNavigationBar: the index of navigation bar to be toggled
            }
function toggleNavigationBar(indexNavigationBar)
           
{
            if (realTitle.textContent) //everyone but IE
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
            {
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
                var realTitleText = realTitle.textContent
    if (!NavFrame || !NavToggle) {
            }
          return false;
            else //IE
    }
            {
    // if shown now
                var realTitleText = realTitle.innerText
    if (NavToggle.firstChild.data == NavigationBarHide) {
            }
          for (
           
              var NavChild = NavFrame.firstChild;
            var normalizedRealTitle
              NavChild != null;
            var normalizedPageTitle
              NavChild = NavChild.nextSibling
            var indexOfColon = realTitleText.indexOf(":")
          ) {
            var normalizedNamespaceName = normalizeTitle(realTitleText.substring(0, indexOfColon)).toLowerCase()
              if (NavChild.className == 'NavPic') {
           
                    NavChild.style.display = 'none';
            //make namespace prefix lowercase and uppercase the first letter of the title
              }
            if (indexOfColon == -1 || wgCanonicalNamespace.toLowerCase() != normalizedNamespaceName) //no namespace prefix - either no colon or a nonsensical namespace prefix (for example, "Foo" in "Foo: The Story of My Life")
              if (NavChild.className == 'NavContent') {
            {
                     NavChild.style.display = 'none';
                normalizedRealTitle = normalizeTitle(realTitleText)
              }
                normalizedRealTitle = normalizedRealTitle.charAt(0).toUpperCase() + normalizedRealTitle.substring(1)
          }
                normalizedPageTitle = wgPageName.charAt(0).toUpperCase() + wgPageName.substring(1)
          NavToggle.firstChild.data = NavigationBarShow;
            }
    // if hidden now
            else //using a namespace prefix
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
            {
          for (
                var normalizedRealPageTitle = normalizeTitle(realTitleText.substring(indexOfColon + 1))
              var NavChild = NavFrame.firstChild;
               
              NavChild != null;
                normalizedRealTitle = normalizedNamespaceName
              NavChild = NavChild.nextSibling
                if (normalizedNamespaceName != "") //namespace 0 is a special case where the leading colon should never be shown
          ) {
                {
                 if (NavChild.className == 'NavPic') {
                     normalizedRealTitle += ":"
                    NavChild.style.display = 'block';
                }
                normalizedRealTitle += normalizedRealPageTitle.charAt(0).toUpperCase() + normalizedRealPageTitle.substring(1)
                normalizedPageTitle = wgPageName.substring(0, wgPageName.indexOf(":") + 1).toLowerCase() + wgPageName.substring(wgPageName.indexOf(":") + 1)
            }
           
            if (normalizedRealTitle == normalizedPageTitle) //normalized titles match, so we can do full replacement
            {
                var h1 = document.getElementsByTagName("h1")[0]
               
                //remove all child nodes, including text
                 while (h1.firstChild)  
                {
                    h1.removeChild(h1.firstChild)
                 }
                 }
                 if (NavChild.className == 'NavContent') {
                  
                    NavChild.style.display = 'block';
                //populate with nodes of real title
                while (realTitle.firstChild) //the children are moved to a new parent element
                {
                    h1.appendChild(realTitle.firstChild)
                 }
                 }
          }
               
          NavToggle.firstChild.data = NavigationBarHide;
                //delete the real title banner since the problem is solved
    }
                var realTitleBanner = document.getElementById("RealTitleBanner")
}
                realTitleBanner.parentNode.removeChild(realTitleBanner)
// adds show/hide-button to navigation bars
            }
function createNavigationBarToggleButton()
           
{
            //no matter what, correct the page title
    var indexNavigationBar = 0;
            document.title = realTitleText + " - Wiki Indonesia Kristen In-Christ"
    // 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);
/** Secure upload link fix ************************************************
  *
  *  Description: Fix "Upload file" link when using the secure proxy.
  *              This is a workaround that can be removed when [[bugzilla:10843]] is fixed.
  *  Maintainers: [[User:Remember the dot]]
  */
 
addOnloadHook(function()
{
    if (document.getElementById("t-upload"))
    {
        document.getElementById("t-upload").getElementsByTagName("a")[0].href = wgArticlePath.replace("$1", "Bantuan:Pemuatan")
    }
})
 
 
/** 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;
 
/***** uploadwizard_newusers ********
* Switches in a message for non-autoconfirmed users at [[Bantuan:Pemuatan]]
*
*  Maintainers: [[User:Krimpet]]
****/
function uploadwizard_newusers() {
  if (wgNamespaceNumber == 4 && wgTitle == "Upload" && wgAction == "view") {
    var oldDiv = document.getElementById("autoconfirmedusers"),
        newDiv = document.getElementById("newusers");
    if (oldDiv && newDiv) {
      if (typeof wgUserGroups == "object" && wgUserGroups) {
        for (i = 0; i < wgUserGroups.length; i++) {
          if (wgUserGroups[i] == "autoconfirmed") {
            oldDiv.style.display = "block";
            newDiv.style.display = "none";
            return;
           }
           }
    }
        }
}
      }
addLoadEvent(createNavigationBarToggleButton);
      oldDiv.style.display = "none";
      newDiv.style.display = "block";
}
      return;
    }
/**
== Edittools ==
Drop down box for the Special character menu in [[MediaWiki:Edittools]]
Adapted from:
http://de.wiktionary.org/wiki/MediaWiki:Onlyifediting.js ,
http://de.wikipedia.org/wiki/MediaWiki:Onlyifediting.js and
http://en.wiktionary.org/wiki/MediaWiki:Monobook.js
<pre><nowiki> */
function addCharSubsetMenu() {
    if ( load_edittools != true ) return;
  var specialchars = document.getElementById('specialchars');
  if (specialchars) {
  var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
  menu += "<option>Standar</option>";
  menu += "<option>Templat</option>";
  menu += "<option>Arab</option>";
  menu += "<option>Ceko</option>";
  menu += "<option>Devanāgarī</option>";
  menu += "<option>Esperanto</option>";
  menu += "<option>Estonia</option>";
  menu += "<option>Hawaii</option>";
  menu += "<option>Hungaria</option>";
  menu += "<option>IPA</option>";
  menu += "<option>Ibrani</option>";
  menu += "<option>Inggris kuno</option>";
  menu += "<option>Islandia</option>";
  menu += "<option>Italia</option>";
  menu += "<option>Jawa Kuna</option>";
  menu += "<option>Jerman</option>";
  menu += "<option>Katalan</option>";
  menu += "<option>Latin</option>";
  menu += "<option>Latvia</option>";
  menu += "<option>Malta</option>";
  menu += "<option>Perancis</option>";
  menu += "<option>Pinyin</option>";
  menu += "<option>Polandia</option>";
  menu += "<option>Portugis</option>";
  menu += "<option>Romaji</option>";
  menu += "<option>Rumania</option>";
  menu += "<option>Serbia</option>";
  menu += "<option>Sirilik</option>";
  menu += "<option>Skandinavia</option>";
  menu += "<option>Spanyol</option>";
  menu += "<option>Turki</option>";
  menu += "<option>Vietnam</option>";
  menu += "<option>Wales</option>";
  menu += "<option>Yiddish</option>";
  menu += "<option>Yunani</option>";
  menu += "</select>";
  specialchars.innerHTML = menu + specialchars.innerHTML;
  // Standard-CharSubset
  chooseCharSubset(0);
   }
   }
  }
}
   
addOnloadHook(uploadwizard_newusers);
  // CharSubset selection
 
  function chooseCharSubset(s) {
 
   var l = document.getElementById('specialchars').getElementsByTagName('p');
/** IPv6 AAAA connectivity testing *******************************************************
  for (var i = 0; i < l.length ; i++) {
  *
  l[i].style.display = i == s ? 'inline' : 'none';
  *  Description: Uses hidden images to measure the possible negative impact of IPv6
  // l[i].style.visibility = i == s ? 'visible' : 'hidden';
  *  enabling the Wikimedia sites.
  }
  *  This works by adding a hidden div to the footer with several image tags.
}
  *  The source addresses of the image tags are set to domainnames which have v4, v6 and
  * both address types set.  The script times how long objects take to load.
// Menu insertion
  * Results are sent back to the server. http://ipv6and4.labs.wikimedia.org/stats.html
addOnloadHook( addCharSubsetMenu );
  * Based on http://www.braintrust.co.nz/ipv6wwwtest/
// Move the toolbar to the top
  * Contact: [[User:Gmaxwell]], [[User:Mark Bergsma]], [[User:Mindspillage]]
function fixToolbar() {
   */
    if ( load_edittools != true ) return;
 
    var wpEditToolbar = document.getElementById( "toolbar" );
var __ipv6wwwtest_factor = 100;
    var editTools = document.getElementById( "specialchars" );
var __ipv6wwwtest_done = 0;
    elementMoveto( editTools, wpEditToolbar , 'after' );
if ((wgServer != "https://secure.wikimedia.org") && (Math.floor(Math.random()*__ipv6wwwtest_factor)==42)) {
    if( editTools ) editTools.style.display = "block";
        var __ipv6wwwtest_timeoutMsec = 10000; // Timeout for 'final' result message in milliseconds
    var editspecialchars = document.getElementById( "editpage-specialchars" );
        var __ipv6wwwtest_hostSuffix = ".labs.wikimedia.org"; // Suffix to go on the IMG hostnames
    elementMoveto( editTools, wpEditToolbar , 'after' );
        var __ipv6wwwtest_stopAtTimeout = true; // Whether to stop when the timeout is reached or not
}
 
onloadFuncts.push( fixToolbar );
        var __ipv6wwwtest_pageLoadTime;
        var __ipv6wwwtest_timeout = false;
  // Helper function to move DOM element
        var __ipv6wwwtest_ipv4LoadTime = false;
function elementMoveto( node, refNode, pos ) {
        var __ipv6wwwtest_ipv4relLoadTime = false;
if(node && refNode){
        var __ipv6wwwtest_ipv6LoadTime = false;
var parent=refNode.parentNode;
        var __ipv6wwwtest_ipv6bigLoadTime = false;
if (pos && pos=='after') { refNode=refNode.nextSibling; }
        var __ipv6wwwtest_ipv6and4LoadTime = false;
try {
        var __ipv6wwwtest_id = Math.floor(Math.random()*Math.pow(2,31));
parent.insertBefore( node, refNode );
 
} catch ( DOMException ) {};
        function __ipv6wwwtest_startTest() {
}
                __ipv6wwwtest_pageLoadTime = new Date();
}
                document.getElementById("__ipv6wwwtest_ipv4Img").src = "http://ipv4" + __ipv6wwwtest_hostSuffix +"/ipv4.gif?id=" + __ipv6wwwtest_id;
/* </nowiki></pre> */
                document.getElementById("__ipv6wwwtest_ipv4relImg").src = "//ipv4" + __ipv6wwwtest_hostSuffix +"/ipv4.gif?rel=1&id=" + __ipv6wwwtest_id;
                document.getElementById("__ipv6wwwtest_ipv6Img").src = "http://ipv6" + __ipv6wwwtest_hostSuffix +"/ipv6.gif?id=" + __ipv6wwwtest_id;
/**
                document.getElementById("__ipv6wwwtest_ipv6and4Img").src = "http://ipv6and4" + __ipv6wwwtest_hostSuffix +"/ipv6and4.gif?id=" + __ipv6wwwtest_id;
                document.getElementById("__ipv6wwwtest_ipv6bigImg").src = "http://ipv6" + __ipv6wwwtest_hostSuffix +"/ipv6big.gif?id=" + __ipv6wwwtest_id;
== Stripe ==
        }
 
[[Bantuan:Tabel|Tabel cantik]] */
        function __ipv6wwwtest_sendResults(stage) {
                document.getElementById("__ipv6wwwtest_resultsImg").src = "http://results" + __ipv6wwwtest_hostSuffix +"/results.gif?id=" + __ipv6wwwtest_id + "&stage=" + stage + "&timeout=" + __ipv6wwwtest_timeoutMsec + "&stop_at_timeout=" + __ipv6wwwtest_stopAtTimeout + "&ipv4=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv4LoadTime) + "&ipv6=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv6LoadTime) + "&ipv6and4=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv6and4LoadTime) + "&ipv6big=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv6bigLoadTime) +"&ipv4rel="+ __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv4relLoadTime) + "&rate=" + __ipv6wwwtest_factor;
if (LoadStripe == true) {
        };
 
var stripe = function()
        function __ipv6wwwtest_getLoadTime(item) {
{
                if (item == false) {
// This function will add stripes to all tables that have the "wikitable-striped" class attribute.
                        return "NaN";
var tables = document.getElementsByTagName("table");
                } else {
for (var a = 0; a != tables.length; a++) {
                        return (item.getTime() - __ipv6wwwtest_pageLoadTime.getTime());
      var table = tables[a];
      if (!table) { return; } // If there are no tables, abort.
      if (table.getAttribute("class") == "tabelcantik") {
          var tbodies = table.getElementsByTagName("tbody");
          for (var b = 0; b < tbodies.length; b++) {
                var even = true; // We start with an even stripe.
                var trs = tbodies[b].getElementsByTagName("tr");
                for (var c = 0; c < trs.length; c++) {
                    if (even) {
                          trs[c].className += "even";
                    } else {
                          trs[c].className += "odd";
                    }
                    even = !even;
                 }
                 }
          }
        }
      } else
 
      if (table.getAttribute("class") == "tabelcantikcyan") {
        function __ipv6wwwtest_checkFinished() {
          var tbodies = table.getElementsByTagName("tbody");
                if ( (! __ipv6wwwtest_ipv6LoadTime) || (! __ipv6wwwtest_ipv4LoadTime) || (! __ipv6wwwtest_ipv6and4LoadTime) || (! __ipv6wwwtest_ipv6bigLoadTime) || (! __ipv6wwwtest_getLoadTime)) {
          for (var b = 0; b < tbodies.length; b++) {
                        if (!__ipv6wwwtest_timeout) {
                var even = true; // We start with an even stripe.
                                __ipv6wwwtest_timeout = window.setTimeout('__ipv6wwwtest_sendFinalResults()',__ipv6wwwtest_timeoutMsec);
                var trs = tbodies[b].getElementsByTagName("tr");
                        }
                for (var c = 0; c < trs.length; c++) {
                        __ipv6wwwtest_sendResults('partial');
                    if (even) {
                } else {
                          trs[c].className += "evencyan";
                        __ipv6wwwtest_sendFinalResults();
                    } else {
                          trs[c].className += "oddcyan";
                    }
                    even = !even;
                 }
                 }
          }
        }
      } else
 
      if (table.getAttribute("class") == "tabelcantikmerah") {
        function __ipv6wwwtest_sendFinalResults() {
          var tbodies = table.getElementsByTagName("tbody");
                if (__ipv6wwwtest_done==0) {
          for (var b = 0; b < tbodies.length; b++) {
                  if (__ipv6wwwtest_timeout) {
                var even = true; // We start with an even stripe.
                          window.clearTimeout(__ipv6wwwtest_timeout);
                var trs = tbodies[b].getElementsByTagName("tr");
                  }
                for (var c = 0; c < trs.length; c++) {
                  __ipv6wwwtest_sendResults('final');
                    if (even) {
 
                          trs[c].className += "evenmerah";
                  if (__ipv6wwwtest_stopAtTimeout) {
                    } else {
                          document.getElementById("__ipv6wwwtest_ipv4Img").src = "";
                           trs[c].className += "oddmerah";
                          document.getElementById("__ipv6wwwtest_ipv4relImg").src = "";
                    }
                          document.getElementById("__ipv6wwwtest_ipv6Img").src = "";
                    even = !even;
                          document.getElementById("__ipv6wwwtest_ipv6and4Img").src = "";
                           document.getElementById("__ipv6wwwtest_ipv6bigImg").src = "";
                  }
                 }
                 }
          }
                __ipv6wwwtest_done=1;
      }
        }
}
   addOnloadHook(function() {
}
        v6sub=document.getElementById("footer");
// Perform the striping.
        v6sub.innerHTML=v6sub.innerHTML+'<div style="visibility: hidden;"> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv4Img" onload="__ipv6wwwtest_ipv4LoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv4relImg" onload="__ipv6wwwtest_ipv4relLoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv6and4Img" onload="__ipv6wwwtest_ipv6and4LoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv6Img" onload="__ipv6wwwtest_ipv6LoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv6bigImg" onload="__ipv6wwwtest_ipv6bigLoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_resultsImg" /> </div>';
hookEvent("load", stripe);
      if (document.getElementById("__ipv6wwwtest_ipv4Img") && document.getElementById("__ipv6wwwtest_ipv6Img") && document.getElementById("__ipv6wwwtest_ipv6and4Img") && document.getElementById("__ipv6wwwtest_ipv6bigImg")) {
        __ipv6wwwtest_startTest();
}
      }
   });
/**
}
== ExtraEditButtons ==
 
<pre><nowiki> */
//</source>
   function addCustomEditButton( imageFile, speedTip, tagOpen, tagClose, sampleText ) {
  var imagePath = 'http://upload.wikimedia.org/wikipedia/commons/';
  mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile"  : imagePath + imageFile,
    "speedTip"  : speedTip,
    "tagOpen"    : tagOpen,
    "tagClose"  : tagClose,
    "sampleText" : sampleText
  };
  }
if ( mwCustomEditButtons && LoadExtraEditButtons ) {
  addCustomEditButton( "e/e9/Button_headline2.png", "Subbagian tingkat 2",
  "\n=== ", " ===\n", "Subbagian2" );
  addCustomEditButton( "3/3a/Button_headline3.png", "Subbagian tingkat 3",
  "\n==== ", " ====\n", "Subbagian3" );
  addCustomEditButton( "f/fd/Button_underline.png", "Garis bawah",
  "<u>", "</u>", "Text garis bawah" );
  addCustomEditButton( "c/c9/Button_strike.png", "Coret",
  "<s>", "</s>", "Text dicoret" );
  addCustomEditButton( "6/6a/Button_sup_letter.png", "Superscript",
  "<sup>", "</sup>", "Teks superscript" );
  addCustomEditButton( "a/aa/Button_sub_letter.png", "Subscript",
  "<sub>", "</sub>", "Teks subscript" );
  addCustomEditButton( "0/01/Button_includeonly_green.png", "Inklud onli", "<includeonly>", "</includeonly>", "Teks" );
  addCustomEditButton( "c/ce/Button_no_include.png", "No inklud", "<noinclude>", "</noinclude>", "Teks" );
  addCustomEditButton( "8/82/Nowiki_icon.png", "No-wiki", "<nowiki>", "</nowiki>", "Teks" );
  addCustomEditButton( "e/eb/Button_plantilla.png", "Templat",
  "{{", "}}", "Templat" );
  addCustomEditButton( "c/c6/Button_Kat.png", "Kategori",
  "[[Kategori:", "|{{PAGENAME}}]]", "Kategori" );
  addCustomEditButton( "7/79/Button_reflink.png", "Rujukan", "<ref>",
  "</ref>", "Rujukan" );
  addCustomEditButton( "3/3b/Button_template_alt.png", "Catatan kaki",
  "\n== Catatan kaki ==\n\n" + "{{" + "reflist" + "}}" + "\n", "", "" );
  addCustomEditButton( "c/c8/Button_redirect.png", "Pengalihan",
  "#ALIH [[", "]]", "Artikel" );
  addCustomEditButton( "7/74/Button_comment.png", "Komentar",
  "<!-- ", " -->", "Komentar" );
  addCustomEditButton( "9/9e/Btn_toolbar_gallery.png", "Galeri gambar",
  "\n<gallery>\n", "\n</gallery>", "Berkas:Contoh.jpg|Judul1\nBerkas:Contoh.jpg|Judul2" );
  addCustomEditButton( "0/04/Button_array.png", "Tabel",
  '{| class="wikitable"\n|-\n', "\n|}", "! kepala1\n! kepala2\n|-\n" +
  "| baris1, kolom1\n| baris1, kolom2\n|-\n| baris2, kolom1\n| baris2, kolom2" );
  addCustomEditButton( "1/11/Btn_toolbar_liste.png", "Daftar biasa",
  "\n* ", "\n* Elemen contoh B\n* Elemen contoh C", "Elemen contoh A" );
  addCustomEditButton( "8/88/Btn_toolbar_enum.png", "Daftar bernomor",
  "\n# ", "\n# Elemen contoh 2\n# Elemen contoh 3", "Elemen contoh 1" );
  addCustomEditButton( "d/d3/Button_definition_list.png", "Daftar definisi",
  "\n; ", "\n: Contoh item 1\n: Contoh item 2", "Contoh definisi" );
  addCustomEditButton( "c/c7/Signature_icon.png", "Tanda tangan", "~~", "~~", "" );
  addCustomEditButton( "", " &nbsp;─", "&nbsp;", "", "" );
  addCustomEditButton( "", " &amp;─", "&amp;", "", "" );
  addCustomEditButton( "", " DEFAULTSORT─", "{{DEFAULTSORT:", "}}", "Urutan" );
  addCustomEditButton( "", " PAGENAME─", "{{PAGENAME", "}}", "" );
  addCustomEditButton( "", " plainlinks", "<span class=plainlinks>", "</span>", " " );
}
/*</nowiki></pre>*/
/**
== Portlet tambahan ==
=== Jumlah suntingan ===
*/
function addEditcountPortlet() {
  if ( document.getElementById("t-contributions") ) {
  var sServer = 'idwiki';
  switch ( wgServer ) {
    case 'http://id.wikibooks.org':
    sServer = 'idwikibooks';
    break;
    case 'http://id.wiktionary.org':
    sServer = 'idwiktionary';
    break;
    case 'http://id.wikiquote.org':
    sServer = 'idwikiquote';
    break;
    case 'http://id.wikisource.org':
    sServer = 'idwikisource';
    break;
  }
  var sText = 'Statistik pengguna';
  var sLink = 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?' +
    'dbname=' + sServer + '_p&user=' + wgTitle;
  addPortletLink( 'p-tb', sLink, sText, 't-editcount',
    'Jumlah suntingan pengguna', null, document.getElementById( 't-contributions' ).nextSibling );
  }
}
addOnloadHook( addEditcountPortlet );
/**
=== Sunting bagian 0 ===
*/
function addEdittopPortletLink() {
  if(wgCanonicalNamespace == 'Special') return;
  if(document.getElementById("wikiPreview")) return;
  if(document.getElementById("histlegend‎")) return;
  if(document.getElementById("difference‎")) return;
  if(document.getElementById("watchdetails")) return;
  if ( document.getElementById( "ca-edit" ) ) {
  var sElm = document.getElementById( "ca-addsection" ) ? 'ca-addsection' : 'ca-edit';
  var sText = '↑';
   var sLink = wgScriptPath + "/index.php?title=" + wgPageName +
    "&action=edit&section=0";
  addPortletLink( 'p-cactions', sLink, sText, 'ca-edittop',
    'Suntingan bagian atas halaman ini', null, document.getElementById( sElm ).nextSibling );
  }
}
addOnloadHook( addEdittopPortletLink );

Revisi per 28 Agustus 2008 12.17

//<source lang="javascript">

/* Import more specific scripts if necessary */

if (wgAction == "edit" || wgAction == "submit") //scripts specific to editing pages
{
    importScript("MediaWiki:Common.js/edit.js")
}
else if (wgPageName == "Special:Watchlist") //watchlist scripts
{
    importScript("MediaWiki:Common.js/watchlist.js")
}
else if (wgPageName == "Special:Search") //scripts specific to Special:Search
{
    importScript("MediaWiki:Common.js/search.js")
}


/** 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;
            }
        }
    }
}

addOnloadHook( sysopFunctions );

/* 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);
    
    
    /**
     * Remove need for CSS hacks regarding MSIE and IPA.
     */
    
    if (document.createStyleSheet) {
        document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";');
    }
    
    
    //Import scripts specific to Internet Explorer 6
    if (navigator.appVersion.substr(22, 1) == "6")
    {
        importScript("MediaWiki:Common.js/IE60Fixes.js")
    }
}


/* 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);
    };
})();


/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header.
 *
 */

var autoCollapse = 2;
var collapseCaption = "hide";
var expandCaption = "show";

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;
    }
}

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 = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            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 );
        }
    }
}

addOnloadHook( createCollapseButtons );


/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: 
 *  Maintainers: 
 */

// 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
function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);

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

    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if ( hasClass( NavChild, 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
            if ( hasClass( NavChild, '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 (hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
            if (hasClass(NavChild, '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 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "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);
            for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if (NavChild.style.display == 'none') {
                        NavToggleText = document.createTextNode(NavigationBarShow);
                        break;
                    }
                }
            }

            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 (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}

addOnloadHook( createNavigationBarToggleButton );


/** "Technical restrictions" title fix *****************************************
 *
 *  Description: For pages that have something like Template:Wrongtitle, replace
 *               the title, but only if it is cut-and-pasteable as a valid
 *               wikilink. For instance, "NZR WB class" can be changed to
 *               "NZR W<sup>B</sup> class", but [[C#]] is not an equivalent wikilink,
 *               so [[C Sharp]] doesn't have its main title changed.
 *
 *               The function looks for a banner like this: 
 *               <div id="RealTitleBanner"> ... <span id="RealTitle">title</span> ... </div>
 *               An element with id=DisableRealTitle disables the function.
 *  Maintainers: Remember_the_dot
 */

if (wgIsArticle) //prevents the "Editing " prefix from disappearing during preview
{
    addOnloadHook(function()
    {
        var realTitle = document.getElementById("RealTitle")
        
        if (realTitle)
        {
            //normalizes a title or a namespace name (but not both)
            //trims leading and trailing underscores and converts (possibly multiple) spaces and underscores to single underscores
            function normalizeTitle(title)
            {
                return title.replace(/^_+/, "").replace(/_+$/, "").replace(/[\s_]+/g, "_")
            }
            
            if (realTitle.textContent) //everyone but IE
            {
                var realTitleText = realTitle.textContent
            }
            else //IE
            {
                var realTitleText = realTitle.innerText
            }
            
            var normalizedRealTitle
            var normalizedPageTitle
            var indexOfColon = realTitleText.indexOf(":")
            var normalizedNamespaceName = normalizeTitle(realTitleText.substring(0, indexOfColon)).toLowerCase()
            
            //make namespace prefix lowercase and uppercase the first letter of the title
            if (indexOfColon == -1 || wgCanonicalNamespace.toLowerCase() != normalizedNamespaceName) //no namespace prefix - either no colon or a nonsensical namespace prefix (for example, "Foo" in "Foo: The Story of My Life")
            {
                normalizedRealTitle = normalizeTitle(realTitleText)
                normalizedRealTitle = normalizedRealTitle.charAt(0).toUpperCase() + normalizedRealTitle.substring(1)
                normalizedPageTitle = wgPageName.charAt(0).toUpperCase() + wgPageName.substring(1)
            }
            else //using a namespace prefix
            {
                var normalizedRealPageTitle = normalizeTitle(realTitleText.substring(indexOfColon + 1))
                
                normalizedRealTitle = normalizedNamespaceName
                if (normalizedNamespaceName != "") //namespace 0 is a special case where the leading colon should never be shown
                {
                    normalizedRealTitle += ":"
                }
                normalizedRealTitle += normalizedRealPageTitle.charAt(0).toUpperCase() + normalizedRealPageTitle.substring(1)
                normalizedPageTitle = wgPageName.substring(0, wgPageName.indexOf(":") + 1).toLowerCase() + wgPageName.substring(wgPageName.indexOf(":") + 1)
            }
            
            if (normalizedRealTitle == normalizedPageTitle) //normalized titles match, so we can do full replacement
            {
                var h1 = document.getElementsByTagName("h1")[0]
                
                //remove all child nodes, including text
                while (h1.firstChild) 
                {
                    h1.removeChild(h1.firstChild)
                }
                
                //populate with nodes of real title
                while (realTitle.firstChild) //the children are moved to a new parent element
                {
                    h1.appendChild(realTitle.firstChild)
                }
                
                //delete the real title banner since the problem is solved
                var realTitleBanner = document.getElementById("RealTitleBanner")
                realTitleBanner.parentNode.removeChild(realTitleBanner)
            }
            
            //no matter what, correct the page title
            document.title = realTitleText + " - Wiki Indonesia Kristen In-Christ"
        }
    })
}


/** Secure upload link fix ************************************************
  *
  *  Description: Fix "Upload file" link when using the secure proxy.
  *               This is a workaround that can be removed when [[bugzilla:10843]] is fixed.
  *  Maintainers: [[User:Remember the dot]]
  */

addOnloadHook(function()
{
    if (document.getElementById("t-upload"))
    {
        document.getElementById("t-upload").getElementsByTagName("a")[0].href = wgArticlePath.replace("$1", "Bantuan:Pemuatan")
    }
})


/** 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;

/***** uploadwizard_newusers ********
 * Switches in a message for non-autoconfirmed users at [[Bantuan:Pemuatan]]
 *
 *  Maintainers: [[User:Krimpet]]
 ****/
function uploadwizard_newusers() {
  if (wgNamespaceNumber == 4 && wgTitle == "Upload" && wgAction == "view") {
    var oldDiv = document.getElementById("autoconfirmedusers"),
        newDiv = document.getElementById("newusers");
    if (oldDiv && newDiv) {
      if (typeof wgUserGroups == "object" && wgUserGroups) {
        for (i = 0; i < wgUserGroups.length; i++) {
          if (wgUserGroups[i] == "autoconfirmed") {
            oldDiv.style.display = "block";
            newDiv.style.display = "none";
            return;
          }
        }
      }
      oldDiv.style.display = "none";
      newDiv.style.display = "block";
      return;
    }
  }
}
addOnloadHook(uploadwizard_newusers);


/** IPv6 AAAA connectivity testing *******************************************************
  *
  *  Description: Uses hidden images to measure the possible negative impact of IPv6
  *  enabling the Wikimedia sites.
  *  This works by adding a hidden div to the footer with several image tags. 
  *  The source addresses of the image tags are set to domainnames which have v4, v6 and
  *  both address types set.  The script times how long objects take to load.
  *  Results are sent back to the server. http://ipv6and4.labs.wikimedia.org/stats.html
  *  Based on http://www.braintrust.co.nz/ipv6wwwtest/
  *  Contact: [[User:Gmaxwell]], [[User:Mark Bergsma]], [[User:Mindspillage]]
  */

var __ipv6wwwtest_factor = 100;
var __ipv6wwwtest_done = 0;
if ((wgServer != "https://secure.wikimedia.org") && (Math.floor(Math.random()*__ipv6wwwtest_factor)==42)) {
        var __ipv6wwwtest_timeoutMsec = 10000; // Timeout for 'final' result message in milliseconds
        var __ipv6wwwtest_hostSuffix = ".labs.wikimedia.org"; // Suffix to go on the IMG hostnames
        var __ipv6wwwtest_stopAtTimeout = true; // Whether to stop when the timeout is reached or not

        var __ipv6wwwtest_pageLoadTime;
        var __ipv6wwwtest_timeout = false;
        var __ipv6wwwtest_ipv4LoadTime = false;
        var __ipv6wwwtest_ipv4relLoadTime = false;
        var __ipv6wwwtest_ipv6LoadTime = false;
        var __ipv6wwwtest_ipv6bigLoadTime = false;
        var __ipv6wwwtest_ipv6and4LoadTime = false;
        var __ipv6wwwtest_id = Math.floor(Math.random()*Math.pow(2,31));

        function __ipv6wwwtest_startTest() {
                __ipv6wwwtest_pageLoadTime = new Date();
                document.getElementById("__ipv6wwwtest_ipv4Img").src = "http://ipv4" + __ipv6wwwtest_hostSuffix +"/ipv4.gif?id=" + __ipv6wwwtest_id;
                document.getElementById("__ipv6wwwtest_ipv4relImg").src = "//ipv4" + __ipv6wwwtest_hostSuffix +"/ipv4.gif?rel=1&id=" + __ipv6wwwtest_id;
                document.getElementById("__ipv6wwwtest_ipv6Img").src = "http://ipv6" + __ipv6wwwtest_hostSuffix +"/ipv6.gif?id=" + __ipv6wwwtest_id;
                document.getElementById("__ipv6wwwtest_ipv6and4Img").src = "http://ipv6and4" + __ipv6wwwtest_hostSuffix +"/ipv6and4.gif?id=" + __ipv6wwwtest_id;
                document.getElementById("__ipv6wwwtest_ipv6bigImg").src = "http://ipv6" + __ipv6wwwtest_hostSuffix +"/ipv6big.gif?id=" + __ipv6wwwtest_id;
        }

        function __ipv6wwwtest_sendResults(stage) {
                document.getElementById("__ipv6wwwtest_resultsImg").src = "http://results" + __ipv6wwwtest_hostSuffix +"/results.gif?id=" + __ipv6wwwtest_id + "&stage=" + stage + "&timeout=" + __ipv6wwwtest_timeoutMsec + "&stop_at_timeout=" + __ipv6wwwtest_stopAtTimeout + "&ipv4=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv4LoadTime) + "&ipv6=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv6LoadTime) + "&ipv6and4=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv6and4LoadTime) + "&ipv6big=" + __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv6bigLoadTime) +"&ipv4rel="+ __ipv6wwwtest_getLoadTime(__ipv6wwwtest_ipv4relLoadTime) + "&rate=" + __ipv6wwwtest_factor;
        };

        function __ipv6wwwtest_getLoadTime(item) {
                if (item == false) {
                        return "NaN";
                } else {
                        return (item.getTime() - __ipv6wwwtest_pageLoadTime.getTime());
                }
        }

        function __ipv6wwwtest_checkFinished() {
                if ( (! __ipv6wwwtest_ipv6LoadTime) || (! __ipv6wwwtest_ipv4LoadTime) || (! __ipv6wwwtest_ipv6and4LoadTime) || (! __ipv6wwwtest_ipv6bigLoadTime) || (! __ipv6wwwtest_getLoadTime)) {
                        if (!__ipv6wwwtest_timeout) {
                                __ipv6wwwtest_timeout = window.setTimeout('__ipv6wwwtest_sendFinalResults()',__ipv6wwwtest_timeoutMsec);
                        }
                        __ipv6wwwtest_sendResults('partial');
                } else {
                        __ipv6wwwtest_sendFinalResults();
                }
        }

        function __ipv6wwwtest_sendFinalResults() {
                if (__ipv6wwwtest_done==0) {
                  if (__ipv6wwwtest_timeout) {
                          window.clearTimeout(__ipv6wwwtest_timeout);
                  }
                  __ipv6wwwtest_sendResults('final');

                  if (__ipv6wwwtest_stopAtTimeout) {
                          document.getElementById("__ipv6wwwtest_ipv4Img").src = "";
                          document.getElementById("__ipv6wwwtest_ipv4relImg").src = "";
                          document.getElementById("__ipv6wwwtest_ipv6Img").src = "";
                          document.getElementById("__ipv6wwwtest_ipv6and4Img").src = "";
                          document.getElementById("__ipv6wwwtest_ipv6bigImg").src = "";
                  }
                }
                __ipv6wwwtest_done=1;
        }
  addOnloadHook(function() {
        v6sub=document.getElementById("footer");
        v6sub.innerHTML=v6sub.innerHTML+'<div style="visibility: hidden;"> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv4Img" onload="__ipv6wwwtest_ipv4LoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv4relImg" onload="__ipv6wwwtest_ipv4relLoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv6and4Img" onload="__ipv6wwwtest_ipv6and4LoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv6Img" onload="__ipv6wwwtest_ipv6LoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_ipv6bigImg" onload="__ipv6wwwtest_ipv6bigLoadTime = new Date(); __ipv6wwwtest_checkFinished();" /> <img height="1" width="1" src="" id="__ipv6wwwtest_resultsImg" /> </div>';
       if (document.getElementById("__ipv6wwwtest_ipv4Img") && document.getElementById("__ipv6wwwtest_ipv6Img") && document.getElementById("__ipv6wwwtest_ipv6and4Img") && document.getElementById("__ipv6wwwtest_ipv6bigImg")) {
         __ipv6wwwtest_startTest();
       }
   });
}

//</source>