பயனர்:Jagwar/common.js
குறிப்பு - சேமித்த பின்னர், நீங்கள் செய்த மாற்றங்களைக் காண்பதற்கு உங்கள் உலவியின் இடைமாற்று அகற்றப்பட வேண்டும்.
- மொஸில்லா பயர்பாக்ஸ் / சபாரி: Shift+Reload, அல்லது Ctrl-F5 அல்லது Ctrl-R (⌘-R Mac ல்)
- கூகிள் குரோம் Ctrl-Shift-R அழுத்தவும். (⌘-Shift-R Mac ல்) ;
- இண்டர்நெட் எக்ஸ்ப்ளோரர்: Ctrl-Refresh அல்லது Ctrl-F5 ஐ அழுத்தவும்.
- ஒபேரா: Tools → Preferences இல் இடைமாற்றை அகற்றவும்;
importScript('User:Jagwar/Editor.js');
importScript('User:Jagwar/languagenametocode.js');
importScript('User:Jagwar/languagecodefinder.js');
//importScript('User:Jagwar/TabbedLanguages2.js');
importScript('User:Jagwar/TargetedTranslations.js');
importScript('User:Jagwar/rhymesedit.js');
importScript('User:Jagwar/adddefinition.js');
importScript('User:Jagwar/editor2.js');
importScript('User:Jagwar/newentrywiz.js');
/**
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;
/**
== InterProject ==
InterProject, link di menu samping untuk proyek lain.
<nowiki> */
if (LoadInterProject == true) {
mw.util.addCSS('#interProyek {display: none; speak: none;} #p-tb .pBody {padding-right: 0;}');
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>Tetikasa hasa<\/h5><div class="pBody">'+iProject+'<\/div>';
document.getElementById("p-tb").appendChild(interProject);
}
}
addOnloadHook(iProject);
}
/**
== MainPageTransform ==
Menghilangkan judul [[Halaman Utama]] dan mengganti nama tab. */
var mpTitle = "Wiktionary:Fandraisana";
var isMainPage = (wgTitle == 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') )
{
mw.util.addCSS('#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; }');
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 || /[\/=:]Wiktionary:Fandraisana/.test(document.location)) && document.getElementById('ca-nstab-main')) {
document.getElementById('ca-nstab-main').firstChild.innerHTML = '<span><a>Fandraisana<\/a><\/span>';
}
}
addOnloadHook(mainpg);
/*</pre>
== Visibility toggling ==
<pre>*/
var VisibilityToggles = {
// toggles[category] = [[show, hide],...]; statuses[category] = [true, false,...]; buttons = <li>
toggles: {}, statuses: {}, buttons: null,
// Add a new toggle, adds a Show/Hide category button in the toolbar,
// and will call show_function and hide_function once on register, and every alternate click.
register: function (category, show_function, hide_function) {
var id = 0;
if (!this.toggles[category]) {
this.toggles[category] = [];
this.statuses[category] = [];
} else {
id = this.toggles[category].length;
}
this.toggles[category].push([show_function, hide_function]);
this.statuses[category].push(this.currentStatus(category));
this.addGlobalToggle(category);
(this.statuses[category][id] ? show_function : hide_function)();
return function () {
var statuses = VisibilityToggles.statuses[category];
statuses[id] = !statuses[id]
VisibilityToggles.checkGlobalToggle(category);
return (statuses[id] ? show_function : hide_function)();
}
},
// Add a new global toggle to the side bar
addGlobalToggle: function(category) {
if (document.getElementById('p-visibility-'+category))
return;
if (!this.buttons) {
this.buttons = newNode('ul');
var collapsed = $.cookie("vector-nav-p-visibility") == "false", toolbox = newNode('div', {'class': "portal portlet "+(collapsed?"collapsed":"expanded"), 'id': 'p-visibility'},
newNode('h5', 'Visibility'),
newNode('div', {'class': "pBody body"}, collapsed?undefined:{'style':'display:block;'}, this.buttons)
);
var sidebar = document.getElementById('mw-panel') || document.getElementById('column-one');
var insert = null;
if (insert = (document.getElementById('p-lang') || document.getElementById('p-feedback')))
sidebar.insertBefore(toolbox, insert);
else
sidebar.appendChild(toolbox);
}
var status = this.currentStatus(category);
var newToggle = newNode('li', newNode('a', {
id: 'p-visibility-' + category,
style: 'cursor: pointer',
href: '#visibility-' + category,
click: function(e)
{
VisibilityToggles.toggleGlobal(category);
if (e && e.preventDefault)
e.preventDefault();
else
window.event.returnValue = false;
return false;
}},
(status ? 'Hide ' : 'Show ') + category));
for (var i=0; i < this.buttons.childNodes.length; i++) {
if (this.buttons.childNodes[i].id < newToggle.id) {
this.buttons.insertBefore(newToggle, this.buttons.childNodes[i]);
return;
}
}
this.buttons.appendChild(newToggle);
},
// Update the toggle-all buttons when all things are toggled one way
checkGlobalToggle: function(category) {
var statuses = this.statuses[category];
var status = statuses[0];
for (var i = 1; i < statuses.length; i++) {
if (status != statuses[i])
return;
}
document.getElementById('p-visibility-' + category).innerHTML = (status ? 'Hide ' : 'Show ') + category;
},
// Toggle all un-toggled elements when the global button is clicked
toggleGlobal: function(category) {
var status = document.getElementById('p-visibility-' + category).innerHTML.indexOf('Show ') == 0;
for (var i = 0; i < this.toggles[category].length; i++ ) {
if (this.statuses[category][i] != status) {
this.toggles[category][i][status ? 0 : 1]();
this.statuses[category][i] = status;
}
}
document.getElementById('p-visibility-' + category).innerHTML = (status ? 'Hide ' : 'Show ') + category;
var current = $.cookie('Visibility');
if (!current)
current = ";";
current = current.replace(';' + category + ';', ';');
if (status)
current = current + category + ";";
$.cookie('Visibility', current);
},
currentStatus: function(category) {
if ($.cookie('WiktionaryPreferencesShowNav') == 'true')
return true;
else if ($.cookie('Visibility') && $.cookie('Visibility').indexOf(';' + category + ';') >= 0)
return true;
return false; // TODO load this from category specific cookies
}
};
/*</pre>
=== DOM creation ===
<pre>*/
/**
* Create a new DOM node for the current document.
* Basic usage: var mySpan = newNode('span', "Hello World!")
* Supports attributes and event handlers*: var mySpan = newNode('span', {style:"color: red", focus: function(){alert(this)}, id:"hello"}, "World, Hello!")
* Also allows nesting to create trees: var myPar = newNode('p', newNode('b',{style:"color: blue"},"Hello"), mySpan)
*
* *event handlers, there are some issues with IE6 not registering event handlers on some nodes that are not yet attached to the DOM,
* it may be safer to add event handlers later manually.
**/
function newNode(tagname){
var node = document.createElement(tagname);
for( var i=1;i<arguments.length;i++ ){
if(typeof arguments[i] == 'string'){ //Text
node.appendChild( document.createTextNode(arguments[i]) );
}else if(typeof arguments[i] == 'object'){
if(arguments[i].nodeName){ //If it is a DOM Node
node.appendChild(arguments[i]);
}else{ //Attributes (hopefully)
for(var j in arguments[i]){
if(j == 'class'){ //Classname different because...
node.className = arguments[i][j];
}else if(j == 'style'){ //Style is special
node.style.cssText = arguments[i][j];
}else if(typeof arguments[i][j] == 'function'){ //Basic event handlers
try{ node.addEventListener(j,arguments[i][j],false); //W3C
}catch(e){try{ node.attachEvent('on'+j,arguments[i][j],"Language"); //MSIE
}catch(e){ node['on'+j]=arguments[i][j]; }}; //Legacy
}else{
node.setAttribute(j,arguments[i][j]); //Normal attributes
}
}
}
}
}
return node;
}
/*</pre>
=== NavBars ===
<pre>*/
var NavigationBarHide = '▲';
var NavigationBarShow = '▼';
function NavToggleCategory(navFrame)
{
var table = navFrame.getElementsByTagName('table')[0];
if (table && table.className == "translations")
return "translations";
var heading = navFrame.previousSibling;
while (heading) {
if (/[hH][4-6]/.test(heading.nodeName)) {
if (heading.getElementsByTagName('span')[1]) {
return heading.getElementsByTagName('span')[1].innerHTML.toLowerCase();
}
else {
return heading.getElementsByTagName('span')[0].innerHTML.toLowerCase();
}
}
else if (/[hH][1-3]/.test(heading.nodeName))
break;
heading = heading.previousSibling;
}
return "other boxes";
};
function createNavToggle(navFrame){
var navHead, navToggle, navContent;
for (var j=0; j < navFrame.childNodes.length; j++) {
var div = navFrame.childNodes[j];
switch (div.className) {
case 'NavHead':
navHead = div;
break;
case 'NavContent':
navContent = div;
break;
}
}
if (!navHead || !navContent)
return;
// Step 1, don't react when a subitem is clicked.
for (var i=0; i<navHead.childNodes.length; i++) {
var child = navHead.childNodes[i];
if (child.nodeType == 1) {
child.onclick = function (e)
{
if (e && e.stopPropagation)
e.stopPropagation();
else
window.event.cancelBubble = true;
}
}
}
// Step 2, toggle visibility when bar is clicked.
// NOTE This function was chosen due to some funny behaviour in Safari.
navToggle = newNode('a', {href: 'javascript:(function(){})()'}, '');
navHead.insertBefore(newNode('span', {'class': 'NavToggle'}, '', navToggle, ''), navHead.firstChild);
navHead.style.cursor = "pointer";
navHead.onclick = VisibilityToggles.register(NavToggleCategory(navFrame),
function show() {
navToggle.innerHTML = NavigationBarHide;
if (navContent)
navContent.style.display = "block";
},
function hide() {
navToggle.innerHTML = NavigationBarShow;
if (navContent)
navContent.style.display = "none";
});
};
$( function ()
{
var divs = $(".NavFrame");
for (var i=0; i<divs.length; i++) {
// NOTE: some templates use a class of NavFrame for the style, but for legacy reasons, are not NavFrames
if (divs[i].className == "NavFrame") {
createNavToggle(divs[i]);
}
}
});
/**
== ExtraEditButtons ==
<pre><nowiki> */
function addCustomEditButton( imageFile, speedTip, tagOpen, tagClose, sampleText ) {
var imagePath = '//upload.wikimedia.org/wikipedia/commons/';
mwCustomEditButtons[mwCustomEditButtons.length] = {
"imageFile" : imagePath + imageFile,
"speedTip" : speedTip,
"tagOpen" : tagOpen,
"tagClose" : tagClose,
"sampleText" : sampleText
};
}
if ( mwCustomEditButtons && LoadExtraEditButtons ) {
addCustomEditButton( "c/c8/Button_redirect.png", "Fihodinana",
"#FIHODINANA [[", "]]", "Lahatsoratra" );
addCustomEditButton( "e/eb/Button_plantilla.png", "Endrika",
"{{", "}}", "Endrika" );
addCustomEditButton( "1/1b/Button_hide_wiki_tag.png", "Resaka tsy haseho",
"<!-- ", " -->", "Resaka" );
addCustomEditButton( "f/fd/Button_underline.png", "Manipika ambany",
"<u>", "</u>", "Teks garis bawah" );
addCustomEditButton( "c/c9/Button_strike.png", "Manipika anivo",
"<s>", "</s>", "Tsipika ambon'ny soratra" );
addCustomEditButton( "f/f9/Button_onlyinclude_green.png", " Onlyinclude",
"<onlyinclude>", "</onlyinclude>", "Hanya teks ini yang ditransklusikan" );
addCustomEditButton( "0/01/Button_includeonly_green.png", "Includeonly",
"<includeonly>", "</includeonly>", "Teks hanya akan ditransklusikan" );
addCustomEditButton( "3/32/Button_noinclude_green.png", "Noinclude",
"<noinclude>", "</noinclude>", "Teks tidak akan ditransklusi" );
addCustomEditButton( "7/79/Button_reflink.png", "Rujukan",
"<ref>", "</ref>", "Rujukan" );
addCustomEditButton( "9/99/Button_sup_2.png", "Superscript",
"<sup>", "</sup>", "Teks superscript" );
addCustomEditButton( "e/e5/Button_sub_2.png", "Subscript",
"<sub>", "</sub>", "Teks subscript" );
addCustomEditButton( "1/17/Button_small_2.png", "small",
"<small>", "</small>", " " );
addCustomEditButton( "c/cb/Button_big_2.png", "big",
"<big>", "</big>", " " );
addCustomEditButton( "2/23/Button_code.png", "code",
"<code>", "</code>", " " );
addCustomEditButton( "5/5f/Button_center.png", "center",
"<center>", "</center>", " " );
addCustomEditButton( "3/3c/Button_pre.png", "pre",
"<pre>", "</pre>", " " );
addCustomEditButton( "8/8f/Button_poeme.png", "poem",
"<poem>", "</poem>", " " );
addCustomEditButton( "d/d4/Button_div.png", "div",
"<div>", "</div>", " " );
addCustomEditButton( "7/72/Button_span_2.png", "span",
"<span>", "</span>", " " );
addCustomEditButton( "2/26/Button_plainlinks.png", "plainlinks",
"<span class=plainlinks>", "</span>", " " );
addCustomEditButton( "9/9e/Btn_toolbar_gallery.png", "Galeri gambar",
"<gallery>\n", "\n</gallery>", "Berkas:Contoh.jpg|Judul1\nBerkas:Contoh.jpg|Judul2" );
addCustomEditButton( "c/c6/Button_Kat.png", "Kategori",
"[[Kategori:", "]]", "Kategori" );
addCustomEditButton( "3/3f/Button_en.png", "Interwiki Wikipedia Inggris",
"[[en:", "]]", "Interwiki en.wiki" );
addCustomEditButton( "7/7f/Interwiki-button-bg.png", "Interwiki templat en",
"[[en:Template:", "subst:PAGENAME}}]]", "{{" );
addCustomEditButton( "f/f7/Button_referencesR.png", "Referensi",
"\n== Referensi ==\n\n", "reflist}}" + "\n", "{{" );
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( "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( "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( "9/9f/Button_defaultsort.png", "DEFAULTSORT",
"", "DEFAULTSORT:}}", "{{" );
addCustomEditButton( "b/bf/Button_pagename.png", "PAGENAME",
"", "PAGENAME}}", "{{" );
addCustomEditButton( "5/55/Button_nbsp_1.png", "nbsp",
" ", "", "" );
}
/**
=== Notice di [[Wiktionary:Bak pasir]] dan [[Pembicaraan Wiktionary:Bak pasir]] ===
*/
function sandboxNotice() {
notice = document.createElement('div');
document.getElementById('bodyContent').insertBefore(notice, document.getElementById('jump-to-nav').nextSibling);
noticeLoader = sajax_init_object();
noticeLoader.open('GET', '//id.wiktionary.org/w/index.php?title=Templat:Bak_pasir&action=render', true);
noticeLoader.onreadystatechange = function()
{
if (noticeLoader.readyState == 4 && noticeLoader.status == 200) {
notice.innerHTML = noticeLoader.responseText;
}
};
noticeLoader.send('');
}
if (wgAction.match(/view|edit|submit/)) {
addOnloadHook(function() {
if (document.getElementsByTagName('body')[0].className.match(/page-(Pembicaraan_)?Wiktionary_Bak_pasir/)) {
return sandboxNotice();
}
});
}