Dari In-Christ Wiki, Wiki Kristen Indonesia
(Perbedaan antar revisi)
Revisi per 02:52, 4 Juni 2008
/* JavaScript yang ada di sini akan diterapkan untuk semua kulit. */
/**
JavaScript yang ada di sini akan diterapkan untuk semua kulit.
__TOC__
== Deklarasi variabel ==
Variabel-variabel yang dipakai secara global */
var ScriptPrefix = '<script type="text/javascript" src="/w/index.php?title=';
var ScriptSuffix = '&action=raw&ctype=text/javascript&dontcountme=s"></script>';
var LoadInterProject = true;
var LoadLinkFA = true;
var LoadNavFrame = true;
var load_edittools = true;
var LoadExtraPortlet = true;
var LoadStripe = true;
var LoadEditTop = true;
var LoadExtraEditButtons = true;
var load_extratabs = false;
var LoadPageCounter = false;
/**
== Variabel saklar per pengguna ==
Ubah [[Istimewa:Mypage/switches.js]] untuk mengatur fitur yang ingin Anda
aktifkan atau matikan */
document.write( ScriptPrefix + 'Pengguna:' + wgUserName + '/switches.js' + ScriptSuffix );
/**
== Library functions ==
Librari fungsi yang digunakan oleh fungsi-fungsi lain. */
// Fix tampilan untuk IE
if (window.showModalDialog && document.compatMode && document.compatMode == "CSS1Compat")
{
var oldWidth;
var docEl = document.documentElement;
function fixIEScroll()
{
if (!oldWidth || docEl.clientWidth > oldWidth)
doFixIEScroll();
else
setTimeout(doFixIEScroll, 1);
oldWidth = docEl.clientWidth;
}
function doFixIEScroll() {
docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
}
document.attachEvent("onreadystatechange", fixIEScroll);
attachEvent("onresize", fixIEScroll);
}
// addLoadEvent, menambahkan event
function addLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
/**
== MainPageTransform ==
Menghilangkan judul [[Halaman Utama]] dan mengganti nama tab. */
var mpTitle = "Halaman Utama";
var isMainPage = (document.title.substr(0, mpTitle.length) == mpTitle)
var isDiff = (document.location.search && (
document.location.search.indexOf("diff=") != -1 ||
document.location.search.indexOf("oldid=") != -1 ||
document.location.search.indexOf("action=history") != -1
));
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;
function mainPageTransform()
{
var mpContentEl = document.getElementById("bodyContent");
var mpBrowseEl = document.getElementById("EnWpMpBrowse");
var mpContainEl = document.getElementById("EnWpMpBrowseContainer");
var mpMarginEl = document.getElementById("EnWpMpMargin");
var mpEl = document.getElementById("EnWpMainPage");
if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl)
return;
if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth)
{
mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
mpBrowseEl.className = "EnWpMpBrowseBottom";
mpMarginEl.style.marginRight = 0;
mpSmallEnabled = true;
}
else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth)
{
mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
mpBrowseEl.className = "EnWpMpBrowseRight";
mpMarginEl.style.marginRight = "13.8em";
mpSmallEnabled = false;
}
}
var onloadFuncts = [ mainPageTransform ];
if (window.addEventListener)
window.addEventListener("resize", mainPageTransform, false);
else if (window.attachEvent)
window.attachEvent("onresize", mainPageTransform);
}
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()
{
if ( document.getElementById( "p-lang" ) ) {
var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
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.";
}
}
}
}
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 = "sembunyikan";
var expandCaption = "tampilkan";
function hasClass( element, className ) {
var Classes = element.className.split( " " );
for ( var i = 0; i < Classes.length; i++ ) {
if ( Classes[i] == className ) {
return ( true );
}
}
return ( false );
}
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.getElementsByTagName( "tr" );
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" ) ) {
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.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.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
for(
var i=0;
NavFrame = document.getElementsByTagName("div")[i];
i++
) {
// if found a navigation bar
if (NavFrame.className == "NavFrame") {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var NavToggleText = document.createTextNode(NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
for(var j=0; j < NavFrame.childNodes.length; j++ ) {
if (NavFrame.childNodes[j].className == "NavHead") {
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
// if more Navigation Bars found than Default: hide all
if (NavigationBarShowDefault < indexNavigationBar) {
for( var i=1; i<=indexNavigationBar; i++ ) {
toggleNavigationBar(i);
}
}
}
addLoadEvent(createNavigationBarToggleButton);
}
/**
== 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);
}
}
// 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;
}
}
} else
if (table.getAttribute("class") == "tabelcantikcyan") {
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 += "evencyan";
} else {
trs[c].className += "oddcyan";
}
even = !even;
}
}
} else
if (table.getAttribute("class") == "tabelcantikmerah") {
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 += "evenmerah";
} else {
trs[c].className += "oddmerah";
}
even = !even;
}
}
}
}
}
// Perform the striping.
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 ) {
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( "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( "e/eb/Button_plantilla.png", "Templat",
"{{", "}}", "Templat" );
addCustomEditButton( "b/b4/Button_category03.png", "Kategori",
"[[Kategori:", "]]", "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",
"#REDIRECT[[", "]]", "Artikel" );
addCustomEditButton( "7/74/Button_comment.png", "Komentar tersembunyi",
"<!-- ", " -->", "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" );
}
/*</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§ion=0";
addPortletLink( 'p-cactions', sLink, sText, 'ca-edittop',
'Suntingan bagian atas halaman ini', null, document.getElementById( sElm ).nextSibling );
}
}
addOnloadHook( addEdittopPortletLink );