MediaWiki:Common.js

Dari In-Christ Wiki, Wiki Kristen Indonesia
(Perbedaan antar revisi)
Langsung ke: navigasi, cari
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( "[" ) );
+
-
            Button.appendChild( ButtonLink );
+
-
            Button.appendChild( document.createTextNode( "]" ) );
+
-
+
-
            var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
+
-
            /* only add button and increment count if there is a header row to work with */
+
-
            if (Header) {
+
-
                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 );
+
-
+
-
/* End of CollapsibleTable */
+
-
+
-
/**
+
-
+
-
== NavFrame ==
+
-
+
-
Memberikan bagian yang bisa disembunyikan */
+
-
+
-
if (LoadNavFrame == true) {
+
-
+
-
// set up the words in your language
+
-
var NavigationBarHide = '[ Sembunyikan ]';
+
-
var NavigationBarShow = '[ Tampilkan ]';
+
-
// set up max count of Navigation Bars on page,
+
-
// if there are more, all will be hidden
+
-
// NavigationBarShowDefault = 0; // all bars will be hidden
+
-
// NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
+
-
var NavigationBarShowDefault = 0;
+
-
// 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 (NavChild.className == 'NavPic') {
+
-
                    NavChild.style.display = 'none';
+
-
              }
+
-
              if (NavChild.className == 'NavContent') {
+
-
                     NavChild.style.display = 'none';
+
-
              }
+
-
          }
+
-
          NavToggle.firstChild.data = NavigationBarShow;
+
-
    // if hidden now
+
-
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
+
-
          for (
+
-
              var NavChild = NavFrame.firstChild;
+
-
              NavChild != null;
+
-
              NavChild = NavChild.nextSibling
+
-
          ) {
+
-
                if (NavChild.className == 'NavPic') {
+
-
                    NavChild.style.display = 'block';
+
                 }
                 }
-
                 if (NavChild.className == 'NavContent') {
+
            }
-
                    NavChild.style.display = 'block';
+
 
 +
            NavToggle.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);
                 }
                 }
-
          }
+
            }
-
          NavToggle.firstChild.data = NavigationBarHide;
+
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
-
    }
+
-
}
+
-
// adds show/hide-button to navigation bars
+
-
function createNavigationBarToggleButton()
+
-
{
+
-
    var indexNavigationBar = 0;
+
-
    // iterate over all < div >-elements
+
-
    for(
+
-
          var i=0;
+
-
          NavFrame = document.getElementsByTagName("div")[i];
+
-
          i++
+
-
        ) {
+
-
        // if found a navigation bar
+
-
        if (NavFrame.className == "NavFrame") {
+
-
            indexNavigationBar++;
+
-
            var NavToggle = document.createElement("a");
+
-
            NavToggle.className = 'NavToggle';
+
-
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
+
-
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');           
+
-
            var NavToggleText = document.createTextNode(NavigationBarHide);
+
-
            NavToggle.appendChild(NavToggleText);
+
-
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
+
-
            for(var j=0; j < NavFrame.childNodes.length; j++ ) {
+
-
                  if (NavFrame.childNodes[j].className == "NavHead") {
+
-
                      NavFrame.childNodes[j].appendChild(NavToggle);
+
-
                  }
+
-
            }
+
-
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
+
         }
         }
-
    }
+
    }
-
    // if more Navigation Bars found than Default: hide all
+
}
-
    if (NavigationBarShowDefault < indexNavigationBar) {
+
 
-
          for( var i=1; i<=indexNavigationBar; i++ ) {
+
addOnloadHook( createNavigationBarToggleButton );
-
              toggleNavigationBar(i);
+
 
-
          }
+
 
-
    }
+
/** "Technical restrictions" title fix *****************************************
-
}
+
  *
-
addLoadEvent(createNavigationBarToggleButton);
+
  * 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.
-
== Edittools ==
+
  *
-
   
+
  *              The function looks for a banner like this:
-
  Drop down box for the Special character menu in [[MediaWiki:Edittools]]
+
  *              <div id="RealTitleBanner"> ... <span id="RealTitle">title</span> ... </div>
-
  Adapted from:
+
*              An element with id=DisableRealTitle disables the function.
-
http://de.wiktionary.org/wiki/MediaWiki:Onlyifediting.js ,
+
*  Maintainers: Remember_the_dot
-
  http://de.wikipedia.org/wiki/MediaWiki:Onlyifediting.js and
+
*/
-
  http://en.wiktionary.org/wiki/MediaWiki:Monobook.js
+
 
-
  <pre><nowiki> */
+
if (wgIsArticle) //prevents the "Editing " prefix from disappearing during preview
-
   
+
{
-
  function addCharSubsetMenu() {
+
    addOnloadHook(function()
-
    if ( load_edittools != true ) return;
+
    {
-
  var specialchars = document.getElementById('specialchars');
+
        var realTitle = document.getElementById("RealTitle")
-
   
+
       
-
  if (specialchars) {
+
        if (realTitle)
-
  var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
+
        {
-
  menu += "<option>Standar</option>";
+
            //normalizes a title or a namespace name (but not both)
-
  menu += "<option>Templat</option>";
+
            //trims leading and trailing underscores and converts (possibly multiple) spaces and underscores to single underscores
-
  menu += "<option>Arab</option>";
+
            function normalizeTitle(title)
-
  menu += "<option>Ceko</option>";
+
            {
-
  menu += "<option>Devanāgarī</option>";
+
                return title.replace(/^_+/, "").replace(/_+$/, "").replace(/[\s_]+/g, "_")
-
  menu += "<option>Esperanto</option>";
+
            }
-
  menu += "<option>Estonia</option>";
+
           
-
  menu += "<option>Hawaii</option>";
+
            if (realTitle.textContent) //everyone but IE
-
  menu += "<option>Hungaria</option>";
+
            {
-
  menu += "<option>IPA</option>";
+
                var realTitleText = realTitle.textContent
-
  menu += "<option>Ibrani</option>";
+
            }
-
  menu += "<option>Inggris kuno</option>";
+
            else //IE
-
  menu += "<option>Islandia</option>";
+
            {
-
  menu += "<option>Italia</option>";
+
                var realTitleText = realTitle.innerText
-
  menu += "<option>Jawa Kuna</option>";
+
            }
-
  menu += "<option>Jerman</option>";
+
           
-
  menu += "<option>Katalan</option>";
+
            var normalizedRealTitle
-
  menu += "<option>Latin</option>";
+
            var normalizedPageTitle
-
  menu += "<option>Latvia</option>";
+
            var indexOfColon = realTitleText.indexOf(":")
-
  menu += "<option>Malta</option>";
+
            var normalizedNamespaceName = normalizeTitle(realTitleText.substring(0, indexOfColon)).toLowerCase()
-
  menu += "<option>Perancis</option>";
+
           
-
  menu += "<option>Pinyin</option>";
+
            //make namespace prefix lowercase and uppercase the first letter of the title
-
  menu += "<option>Polandia</option>";
+
            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")
-
  menu += "<option>Portugis</option>";
+
            {
-
  menu += "<option>Romaji</option>";
+
                normalizedRealTitle = normalizeTitle(realTitleText)
-
  menu += "<option>Rumania</option>";
+
                normalizedRealTitle = normalizedRealTitle.charAt(0).toUpperCase() + normalizedRealTitle.substring(1)
-
  menu += "<option>Serbia</option>";
+
                normalizedPageTitle = wgPageName.charAt(0).toUpperCase() + wgPageName.substring(1)
-
  menu += "<option>Sirilik</option>";
+
            }
-
  menu += "<option>Skandinavia</option>";
+
            else //using a namespace prefix
-
  menu += "<option>Spanyol</option>";
+
            {
-
  menu += "<option>Turki</option>";
+
                var normalizedRealPageTitle = normalizeTitle(realTitleText.substring(indexOfColon + 1))
-
  menu += "<option>Vietnam</option>";
+
               
-
  menu += "<option>Wales</option>";
+
                normalizedRealTitle = normalizedNamespaceName
-
  menu += "<option>Yiddish</option>";
+
                if (normalizedNamespaceName != "") //namespace 0 is a special case where the leading colon should never be shown
-
  menu += "<option>Yunani</option>";
+
                 {
-
  menu += "</select>";
+
                    normalizedRealTitle += ":"
-
  specialchars.innerHTML = menu + specialchars.innerHTML;
+
-
+
-
  // Standard-CharSubset
+
-
  chooseCharSubset(0);
+
-
  }
+
-
}
+
-
+
-
// CharSubset selection
+
-
function chooseCharSubset(s) {
+
-
  var l = document.getElementById('specialchars').getElementsByTagName('p');
+
-
  for (var i = 0; i < l.length ; i++) {
+
-
  l[i].style.display = i == s ? 'inline' : 'none';
+
-
  // l[i].style.visibility = i == s ? 'visible' : 'hidden';
+
-
  }
+
-
}
+
-
+
-
// Menu insertion
+
-
addOnloadHook( addCharSubsetMenu );
+
-
// Move the toolbar to the top
+
-
function fixToolbar() {
+
-
    if ( load_edittools != true ) return;
+
-
    var wpEditToolbar = document.getElementById( "toolbar" );
+
-
    var editTools = document.getElementById( "specialchars" );
+
-
    elementMoveto( editTools, wpEditToolbar , 'after' );
+
-
    if( editTools ) editTools.style.display = "block";
+
-
    var editspecialchars = document.getElementById( "editpage-specialchars" );
+
-
    elementMoveto( editTools, wpEditToolbar , 'after' );
+
-
}
+
-
onloadFuncts.push( fixToolbar );
+
-
+
-
  // Helper function to move DOM element
+
-
function elementMoveto( node, refNode, pos ) {
+
-
if(node && refNode){
+
-
var parent=refNode.parentNode;
+
-
if (pos && pos=='after') { refNode=refNode.nextSibling; }
+
-
try {
+
-
parent.insertBefore( node, refNode );
+
-
} catch ( DOMException ) {};
+
-
}
+
-
}
+
-
/* </nowiki></pre> */
+
-
+
-
/**
+
-
+
-
== Stripe ==
+
-
+
-
[[Bantuan:Tabel|Tabel cantik]] */
+
-
+
-
if (LoadStripe == true) {
+
-
+
-
var stripe = function()
+
-
{
+
-
// This function will add stripes to all tables that have the "wikitable-striped" class attribute.
+
-
var tables = document.getElementsByTagName("table");
+
-
for (var a = 0; a != tables.length; a++) {
+
-
      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;
+
                 }
                 }
-
          }
+
                normalizedRealTitle += normalizedRealPageTitle.charAt(0).toUpperCase() + normalizedRealPageTitle.substring(1)
-
      } else
+
                normalizedPageTitle = wgPageName.substring(0, wgPageName.indexOf(":") + 1).toLowerCase() + wgPageName.substring(wgPageName.indexOf(":") + 1)
-
      if (table.getAttribute("class") == "tabelcantikcyan") {
+
            }
-
          var tbodies = table.getElementsByTagName("tbody");
+
           
-
          for (var b = 0; b < tbodies.length; b++) {
+
            if (normalizedRealTitle == normalizedPageTitle) //normalized titles match, so we can do full replacement
-
                var even = true; // We start with an even stripe.
+
            {
-
                 var trs = tbodies[b].getElementsByTagName("tr");
+
                 var h1 = document.getElementsByTagName("h1")[0]
-
                 for (var c = 0; c < trs.length; c++) {
+
               
-
                    if (even) {
+
                //remove all child nodes, including text
-
                          trs[c].className += "evencyan";
+
                 while (h1.firstChild)  
-
                    } else {
+
                {
-
                          trs[c].className += "oddcyan";
+
                    h1.removeChild(h1.firstChild)
-
                    }
+
-
                    even = !even;
+
                 }
                 }
-
          }
+
               
-
      } else
+
                 //populate with nodes of real title
-
      if (table.getAttribute("class") == "tabelcantikmerah") {
+
                 while (realTitle.firstChild) //the children are moved to a new parent element
-
          var tbodies = table.getElementsByTagName("tbody");
+
                 {
-
          for (var b = 0; b < tbodies.length; b++) {
+
                    h1.appendChild(realTitle.firstChild)
-
                 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 += "evenmerah";
+
-
                    } else {
+
-
                          trs[c].className += "oddmerah";
+
-
                    }
+
-
                    even = !even;
+
                 }
                 }
-
          }
+
               
 +
                //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";
-
// Perform the striping.
+
      return;
-
hookEvent("load", stripe);
+
     }
-
+
-
}
+
-
+
-
/**
+
-
== ExtraEditButtons ==
+
-
<pre><nowiki> */
+
-
  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 ) {
+
addOnloadHook(uploadwizard_newusers);
-
   addCustomEditButton( "e/e9/Button_headline2.png", "Subbagian tingkat 2",
+
 
-
  "\n=== ", " ===\n", "Subbagian2" );
+
 
-
  addCustomEditButton( "3/3a/Button_headline3.png", "Subbagian tingkat 3",
+
/** IPv6 AAAA connectivity testing *******************************************************
-
  "\n==== ", " ====\n", "Subbagian3" );
+
   *
-
  addCustomEditButton( "f/fd/Button_underline.png", "Garis bawah",
+
  *  Description: Uses hidden images to measure the possible negative impact of IPv6
-
  "<u>", "</u>", "Text garis bawah" );
+
  *  enabling the Wikimedia sites.
-
  addCustomEditButton( "c/c9/Button_strike.png", "Coret",
+
  *  This works by adding a hidden div to the footer with several image tags.
-
  "<s>", "</s>", "Text dicoret" );
+
  *  The source addresses of the image tags are set to domainnames which have v4, v6 and
-
  addCustomEditButton( "6/6a/Button_sup_letter.png", "Superscript",
+
  *  both address types set.  The script times how long objects take to load.
-
  "<sup>", "</sup>", "Teks superscript" );
+
  *  Results are sent back to the server. http://ipv6and4.labs.wikimedia.org/stats.html
-
  addCustomEditButton( "a/aa/Button_sub_letter.png", "Subscript",
+
  *  Based on http://www.braintrust.co.nz/ipv6wwwtest/
-
  "<sub>", "</sub>", "Teks subscript" );
+
  *  Contact: [[User:Gmaxwell]], [[User:Mark Bergsma]], [[User:Mindspillage]]
-
  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" );
+
var __ipv6wwwtest_factor = 100;
-
  addCustomEditButton( "e/eb/Button_plantilla.png", "Templat",
+
var __ipv6wwwtest_done = 0;
-
  "{{", "}}", "Templat" );
+
if ((wgServer != "https://secure.wikimedia.org") && (Math.floor(Math.random()*__ipv6wwwtest_factor)==42)) {
-
  addCustomEditButton( "c/c6/Button_Kat.png", "Kategori",
+
        var __ipv6wwwtest_timeoutMsec = 10000; // Timeout for 'final' result message in milliseconds
-
  "[[Kategori:", "|{{PAGENAME}}]]", "Kategori" );
+
        var __ipv6wwwtest_hostSuffix = ".labs.wikimedia.org"; // Suffix to go on the IMG hostnames
-
  addCustomEditButton( "7/79/Button_reflink.png", "Rujukan", "<ref>",
+
        var __ipv6wwwtest_stopAtTimeout = true; // Whether to stop when the timeout is reached or not
-
  "</ref>", "Rujukan" );
+
 
-
  addCustomEditButton( "3/3b/Button_template_alt.png", "Catatan kaki",
+
        var __ipv6wwwtest_pageLoadTime;
-
  "\n== Catatan kaki ==\n\n" + "{{" + "reflist" + "}}" + "\n", "", "" );
+
        var __ipv6wwwtest_timeout = false;
-
  addCustomEditButton( "c/c8/Button_redirect.png", "Pengalihan",
+
        var __ipv6wwwtest_ipv4LoadTime = false;
-
  "#ALIH [[", "]]", "Artikel" );
+
        var __ipv6wwwtest_ipv4relLoadTime = false;
-
  addCustomEditButton( "7/74/Button_comment.png", "Komentar",
+
        var __ipv6wwwtest_ipv6LoadTime = false;
-
  "<!-- ", " -->", "Komentar" );
+
        var __ipv6wwwtest_ipv6bigLoadTime = false;
-
  addCustomEditButton( "9/9e/Btn_toolbar_gallery.png", "Galeri gambar",
+
        var __ipv6wwwtest_ipv6and4LoadTime = false;
-
  "\n<gallery>\n", "\n</gallery>", "Berkas:Contoh.jpg|Judul1\nBerkas:Contoh.jpg|Judul2" );
+
        var __ipv6wwwtest_id = Math.floor(Math.random()*Math.pow(2,31));
-
  addCustomEditButton( "0/04/Button_array.png", "Tabel",
+
 
-
  '{| class="wikitable"\n|-\n', "\n|}", "! kepala1\n! kepala2\n|-\n" +
+
        function __ipv6wwwtest_startTest() {
-
  "| baris1, kolom1\n| baris1, kolom2\n|-\n| baris2, kolom1\n| baris2, kolom2" );
+
                __ipv6wwwtest_pageLoadTime = new Date();
-
  addCustomEditButton( "1/11/Btn_toolbar_liste.png", "Daftar biasa",  
+
                document.getElementById("__ipv6wwwtest_ipv4Img").src = "http://ipv4" + __ipv6wwwtest_hostSuffix +"/ipv4.gif?id=" + __ipv6wwwtest_id;
-
  "\n* ", "\n* Elemen contoh B\n* Elemen contoh C", "Elemen contoh A" );
+
                document.getElementById("__ipv6wwwtest_ipv4relImg").src = "//ipv4" + __ipv6wwwtest_hostSuffix +"/ipv4.gif?rel=1&id=" + __ipv6wwwtest_id;
-
  addCustomEditButton( "8/88/Btn_toolbar_enum.png", "Daftar bernomor",
+
                document.getElementById("__ipv6wwwtest_ipv6Img").src = "http://ipv6" + __ipv6wwwtest_hostSuffix +"/ipv6.gif?id=" + __ipv6wwwtest_id;
-
  "\n# ", "\n# Elemen contoh 2\n# Elemen contoh 3", "Elemen contoh 1" );
+
                document.getElementById("__ipv6wwwtest_ipv6and4Img").src = "http://ipv6and4" + __ipv6wwwtest_hostSuffix +"/ipv6and4.gif?id=" + __ipv6wwwtest_id;
-
  addCustomEditButton( "d/d3/Button_definition_list.png", "Daftar definisi",
+
                document.getElementById("__ipv6wwwtest_ipv6bigImg").src = "http://ipv6" + __ipv6wwwtest_hostSuffix +"/ipv6big.gif?id=" + __ipv6wwwtest_id;
-
  "\n; ", "\n: Contoh item 1\n: Contoh item 2", "Contoh definisi" );
+
        }
-
  addCustomEditButton( "c/c7/Signature_icon.png", "Tanda tangan", "~~", "~~", "" );
+
 
-
  addCustomEditButton( "", " &nbsp;─", "&nbsp;", "", "" );
+
        function __ipv6wwwtest_sendResults(stage) {
-
   addCustomEditButton( "", " &amp;─", "&amp;", "", "" );
+
                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;
-
  addCustomEditButton( "", " DEFAULTSORT─", "{{DEFAULTSORT:", "}}", "Urutan" );
+
        };
-
  addCustomEditButton( "", " PAGENAME─", "{{PAGENAME", "}}", "" );
+
 
-
  addCustomEditButton( "", " plainlinks", "<span class=plainlinks>", "</span>", " " );
+
        function __ipv6wwwtest_getLoadTime(item) {
-
}
+
                if (item == false) {
-
/*</nowiki></pre>*/
+
                        return "NaN";
-
/**
+
                } else {
-
+
                        return (item.getTime() - __ipv6wwwtest_pageLoadTime.getTime());
-
== Portlet tambahan ==
+
                }
-
+
        }
-
=== Jumlah suntingan ===
+
 
-
*/
+
        function __ipv6wwwtest_checkFinished() {
-
function addEditcountPortlet() {
+
                if ( (! __ipv6wwwtest_ipv6LoadTime) || (! __ipv6wwwtest_ipv4LoadTime) || (! __ipv6wwwtest_ipv6and4LoadTime) || (! __ipv6wwwtest_ipv6bigLoadTime) || (! __ipv6wwwtest_getLoadTime)) {
-
  if ( document.getElementById("t-contributions") ) {
+
                        if (!__ipv6wwwtest_timeout) {
-
  var sServer = 'idwiki';
+
                                __ipv6wwwtest_timeout = window.setTimeout('__ipv6wwwtest_sendFinalResults()',__ipv6wwwtest_timeoutMsec);
-
  switch ( wgServer ) {
+
                        }
-
    case 'http://id.wikibooks.org':
+
                        __ipv6wwwtest_sendResults('partial');
-
    sServer = 'idwikibooks';
+
                } else {
-
    break;
+
                        __ipv6wwwtest_sendFinalResults();
-
    case 'http://id.wiktionary.org':
+
                }
-
    sServer = 'idwiktionary';
+
        }
-
    break;
+
 
-
    case 'http://id.wikiquote.org':
+
        function __ipv6wwwtest_sendFinalResults() {
-
    sServer = 'idwikiquote';
+
                if (__ipv6wwwtest_done==0) {
-
    break;
+
                  if (__ipv6wwwtest_timeout) {
-
    case 'http://id.wikisource.org':
+
                          window.clearTimeout(__ipv6wwwtest_timeout);
-
    sServer = 'idwikisource';
+
                  }
-
    break;
+
                  __ipv6wwwtest_sendResults('final');
-
  }
+
 
-
  var sText = 'Statistik pengguna';
+
                  if (__ipv6wwwtest_stopAtTimeout) {
-
  var sLink = 'http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?' +
+
                          document.getElementById("__ipv6wwwtest_ipv4Img").src = "";
-
    'dbname=' + sServer + '_p&user=' + wgTitle;
+
                          document.getElementById("__ipv6wwwtest_ipv4relImg").src = "";
-
  addPortletLink( 'p-tb', sLink, sText, 't-editcount',
+
                          document.getElementById("__ipv6wwwtest_ipv6Img").src = "";
-
    'Jumlah suntingan pengguna', null, document.getElementById( 't-contributions' ).nextSibling );
+
                          document.getElementById("__ipv6wwwtest_ipv6and4Img").src = "";
-
  }
+
                          document.getElementById("__ipv6wwwtest_ipv6bigImg").src = "";
-
}
+
                  }
-
addOnloadHook( addEditcountPortlet );
+
                }
-
/**
+
                __ipv6wwwtest_done=1;
-
+
        }
-
=== Sunting bagian 0 ===
+
   addOnloadHook(function() {
-
*/
+
        v6sub=document.getElementById("footer");
-
function addEdittopPortletLink() {
+
        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(wgCanonicalNamespace == 'Special') return;
+
      if (document.getElementById("__ipv6wwwtest_ipv4Img") && document.getElementById("__ipv6wwwtest_ipv6Img") && document.getElementById("__ipv6wwwtest_ipv6and4Img") && document.getElementById("__ipv6wwwtest_ipv6bigImg")) {
-
  if(document.getElementById("wikiPreview")) return;
+
        __ipv6wwwtest_startTest();
-
  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';
+
//</source>
-
  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 12:17, 28 Agustus 2008

//<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>
Peralatan pribadi