User:Taw/monobook.js
< User:Taw
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
The accompanying .css page for this skin can be added at User:Taw/monobook.css. |
// Copy&paste from de
// ============================================================
// BEGIN Enable multiple onload functions
// setup onload functions this way:
// aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets!
if (!window.aOnloadFunctions) {
var aOnloadFunctions = new Array();
}
window.onload = function() {
if (window.aOnloadFunctions) {
for (var _i=0; _i<aOnloadFunctions.length; _i++) {
aOnloadFunctions[_i]();
}
}
}
// Multilingual messages support
function setLang()
{
// Set your linguistic preferences here
var pref = ["pl", "en"];
/***********************************************/
// The code follows
// index_all_lang_toggle doesn't have to be a global variable,
// we only add new toggles inside this function
var index_all_lang_toggle = 0;
var divs = document.getElementsByTagName("div");
for(var i=0; i<divs.length; i++)
{
var d = divs[i];
if (d.className == "multi_lang") {
var cn = d.childNodes;
var available = new Array();
for(var j=0; j<cn.length; j++)
{
var child = cn.item(j);
/* In HTML it's "DIV", in XHTML it's "div".
* For forward compatibility, both cases must be supported.
*/
if(child.tagName == "DIV" || child.tagName == "div") {
var clang = child.getAttribute("lang");
if(clang)
available[clang] = true;
}
}
/* We know what's available and we know user preferences,
* Decide what to keep.
*
* If we hid anything, display a switch to show/hide other languages
*/
var hid_something = false;
var preferred_language;
for(var j=0; j<pref.length; j++)
{
var p = pref[j];
// A match, finally
if(available[p])
{
hid_something = hide_extra_lang_divs(cn, p);
preferred_language = p;
break;
}
}
if(hid_something)
{
var all_lang_toggle = document.createElement("a");
all_lang_toggle.className = 'all_lang_toggle';
all_lang_toggle.setAttribute('href', 'javascript:show_all_lang('+index_all_lang_toggle+',\''+preferred_language+'\')');
all_lang_toggle.setAttribute('id', 'all_lang_toggle_' + index_all_lang_toggle);
var all_lang_toggle_text = document.createTextNode("(show other languages)");
all_lang_toggle.appendChild(all_lang_toggle_text);
d.insertBefore(all_lang_toggle, d.firstChild);
index_all_lang_toggle ++;
}
}
}
}
function hide_extra_lang_divs(div_list, preferred_language)
{
var hid_something = false;
for(var k=0; k<div_list.length; k++)
{
var child = div_list.item(k);
if(child.tagName == "DIV" || child.tagName == "div") {
var clang = child.getAttribute("lang");
if (clang && clang != preferred_language) {
child.style.display = 'none';
hid_something = true;
}
}
}
return hid_something;
}
function show_all_lang(i, preferred_language)
{
var all_lang_toggle = document.getElementById('all_lang_toggle_' + i);
var cn = all_lang_toggle.parentNode.childNodes;
for(var k=0; k<cn.length; k++)
{
var child = cn.item(k);
if(child.tagName == "DIV" || child.tagName == "div") {
child.style.display = 'block';
}
}
all_lang_toggle.firstChild.data = "(hide other languages)";
all_lang_toggle.setAttribute('href', 'javascript:hide_other_lang('+i+',\''+preferred_language+'\')');
}
function hide_other_lang(i, preferred_language)
{
var all_lang_toggle = document.getElementById('all_lang_toggle_' + i);
hide_extra_lang_divs(all_lang_toggle.parentNode.childNodes, preferred_language);
all_lang_toggle.firstChild.data = "(show other languages)";
all_lang_toggle.setAttribute('href', 'javascript:show_all_lang('+i+',\''+preferred_language+'\')');
}
aOnloadFunctions[aOnloadFunctions.length] = setLang;