MediaWiki:Common.js
Aus Kitakien
(Unterschied zwischen Versionen)
(kode dodał, hlej http://hsb.wikipedia.org/w/index.php?title=Diskusija_z_wu%C5%BEiwarjom%3ADundak&diff=12498&oldid=12003) |
K (Korrektur) |
||
(Der Versionsvergleich bezieht 18 dazwischenliegende Versionen mit ein.) | |||
Zeile 1: | Zeile 1: | ||
- | /* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. | + | /* <source lang="javascript"> |
+ | Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. | ||
- | // ============================================================ | + | Execute function on page load ********************************************* |
- | + | * | |
+ | * Description: Wrapper around addOnloadHook() for backwards compatibility. | ||
+ | * Will be removed in the near future. | ||
+ | */ | ||
+ | /* z ruskeje wikipedije */ | ||
+ | /* Чтоб была возможность изменить поведение кнопки "+" (добавление новой темы) для страниц обсуждения */ | ||
+ | addOnloadHook(function(){ | ||
+ | var plus = document.getElementById('ca-addsection'); | ||
+ | if (!plus) return; | ||
+ | var custom = document.getElementById('add-custom-section'); | ||
+ | if (!custom) return; | ||
+ | plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href); | ||
+ | }) | ||
+ | |||
+ | //po ruskej wikipediji | ||
+ | //according to russian wikipedia | ||
+ | |||
+ | //import module | ||
+ | importedScripts = {} | ||
+ | function importScript2(page, lang) { | ||
+ | page = '?title=' + encodeURIComponent(page.replace(' ','_')) | ||
+ | if (lang) page = 'http://' + lang + '.wikipedia.org/w/index.php' + page | ||
+ | else page = wgScript + page | ||
+ | if (importedScripts[page]) return | ||
+ | importedScripts[page] = true | ||
+ | var s = document.createElement('script') | ||
+ | s.type = 'text/javascript' | ||
+ | s.src = page + '&action=raw&ctype=text/javascript' | ||
+ | document.getElementsByTagName('head')[0].appendChild(s) | ||
+ | } | ||
+ | // end import module | ||
+ | |||
+ | // ============================================================ | ||
+ | // BEGIN hasclass | ||
+ | //hasClass, from en.wp and ru.wp | ||
+ | var hasClass = (function (){ | ||
+ | var reCache = {} | ||
+ | return function (element, className){ | ||
+ | return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className) | ||
+ | } | ||
+ | })() | ||
+ | |||
+ | |||
+ | function addLoadEvent(f) {addOnloadHook(f)} //for backwards compatibility | ||
+ | // END hasclass | ||
+ | // ============================================================ | ||
+ | |||
+ | // ============================================================ | ||
+ | // BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles | ||
- | + | /** set to false in Special:Mypage/monobook.js to switch off this "feature" */ | |
- | + | var linkFA_enabled = true; | |
- | + | /** description that is displayed when cursor hovers above FA and GA interwiki links */ | |
- | + | var linkFA_description = "Dieser Artikel wurde als exzellent bewertet."; | |
- | + | var linkGA_description = "Dieser Artikel wurde als lesenswert bewertet."; | |
- | + | /** | |
- | + | * star logo for featured articles in other languages, | |
- | // early exit when | + | * see Template:Link_FA and MediaWiki:Common.css |
- | if (! | + | */ |
- | + | function linkFA() { | |
- | // links are to replaced in p-lang only | + | // early exit when disabled |
- | + | if (!linkFA_enabled) return; | |
- | + | ||
- | + | // skins need to be treated differently | |
- | + | if (skin == "monobook" || skin == "simple") { | |
- | + | newer(); | |
- | + | } | |
- | + | else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") { | |
- | + | older(); | |
- | + | } | |
- | + | ||
- | + | /** skin == "monobook" || skin == "simple" */ | |
- | + | function newer() { | |
- | + | // links are to replaced in p-lang only | |
+ | var pLang = document.getElementById("p-lang"); | ||
+ | if (!pLang) return; | ||
+ | var lis = pLang.getElementsByTagName("li"); | ||
+ | for (var i = 0; i < lis.length; i++) { | ||
+ | var li = lis[i]; | ||
+ | // only links with a corresponding Link_FA template are interesting | ||
+ | if (document.getElementById(li.className + "-fa")) { | ||
+ | // additional class so the template can be hidden with CSS | ||
+ | li.className += " FA"; | ||
+ | // change title | ||
+ | li.title = linkFA_description; | ||
+ | }else if (document.getElementById(li.className + "-ga")) { | ||
+ | // additional class so the template can be hidden with CSS | ||
+ | li.className += " GA"; | ||
+ | // change title | ||
+ | li.title = linkGA_description; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */ | ||
+ | function older() { | ||
+ | // these root elements can contain FA-links | ||
+ | var rootIds = new Array("topbar", "footer"); | ||
+ | for (var i=0; i<rootIds.length; i++) { | ||
+ | var rootId = rootIds[i]; | ||
+ | var root = document.getElementById(rootId); | ||
+ | if (!root) continue; | ||
+ | |||
+ | // if the root exists, try to decorate all the links within | ||
+ | var links = root.getElementsByTagName("a"); | ||
+ | for (var j=0; j<links.length; j++) { | ||
+ | var link = links[j]; | ||
+ | decorate(link); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /** id necessary, modify a link to show the FA-star (older) */ | ||
+ | function decorate(link) { | ||
+ | // exit if not a FA-link | ||
+ | var lang = link.title.split(":")[0]; // not precise enough | ||
+ | var fa = document.getElementById("interwiki-" + lang + "-fa"); | ||
+ | if (!fa) return; | ||
+ | // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special" | ||
+ | // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article | ||
+ | |||
+ | // build an image-node for the FA-star | ||
+ | var img = document.createElement("img"); | ||
+ | img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png"); | ||
+ | img.setAttribute("alt", linkFA_description); | ||
+ | img.setAttribute("style", "margin-right: 0.2em;"); | ||
+ | |||
+ | // decorate the link with the image | ||
+ | link.appendChild(img); | ||
+ | link.appendChild(link.removeChild(link.firstChild)); | ||
+ | link.setAttribute("title", linkFA_description); | ||
} | } | ||
- | + | } | |
- | + | // aOnloadFunctions[aOnloadFunctions.length] = linkFA; | |
- | + | addOnloadHook(linkFA); | |
- | + | // END Configuration for "star" logo in front of interwiki links to Featured Articles | |
- | + | ||
- | + | // ============================================================ | |
- | + | // BEGIN Enable multiple onload functions | |
- | + | // setup onload functions this way: | |
- | + | // aOnloadFunctions[aOnloadFunctions.length] = function_name; // without brackets! | |
- | + | if (!window.aOnloadFunctions) { | |
var aOnloadFunctions = new Array(); | var aOnloadFunctions = new Array(); | ||
- | + | } | |
- | + | window.onload = function() { | |
if (window.aOnloadFunctions) { | if (window.aOnloadFunctions) { | ||
for (var _i=0; _i<aOnloadFunctions.length; _i++) { | for (var _i=0; _i<aOnloadFunctions.length; _i++) { | ||
Zeile 53: | Zeile 158: | ||
} | } | ||
} | } | ||
- | + | } | |
- | + | ||
- | + | ||
- | + | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | + | // Z němskeje wikipedije | |
- | + | //================================================================================ | |
- | + | //*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]]) | |
+ | // Local Maintainer: [[Commons:User:Dschwen]] | ||
+ | |||
+ | function includePage(name) { | ||
+ | document.write('<script type="text/javascript" src="' + wgScript + '?title=' | ||
+ | + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>'); // smaxage=3600 | ||
+ | } | ||
+ | |||
+ | |||
+ | //================================================================================ | ||
+ | //*** import Onlyifuploading-functions | ||
+ | // SEE ALSO [[MediaWiki:Onlyifuploading.js]] | ||
+ | |||
+ | if (wgCanonicalSpecialPageName == "Upload") { | ||
+ | includePage("MediaWiki:Onlyifuploading.js"); | ||
+ | includePage("MediaWiki:Onlyifediting.js"); | ||
+ | } | ||
- | + | ||
- | var | + | // END Externhinweis |
- | + | // ============================================================ | |
+ | |||
+ | // ============================================================ | ||
+ | // BEGIN Dynamic Navigation Bars | ||
+ | // NEEDS Enable multiple onload functions | ||
+ | // nowa wersija po ruskej wikipediji | ||
+ | //Collapsible Tables and Divs, [[:ru:ВП:СБ]] | ||
+ | |||
+ | var autoCollapse = 0 | ||
+ | var collapseCaption = 'Verstecken' | ||
+ | var expandCaption = 'Anzeigen' | ||
+ | |||
+ | function collapsibleTables(){ | ||
+ | var Table, HRow, THs, Header, btn, a, tblIdx = 0, colTables = [] | ||
+ | var allTables = document.getElementsByTagName('table') | ||
+ | for (var i=0; Table = allTables[i]; i++){ | ||
+ | if (!hasClass(Table, 'collapsible')) continue | ||
+ | if (!(HRow = Table.rows[0])) continue | ||
+ | THs = HRow.getElementsByTagName('th') | ||
+ | if (THs.length == 0) continue | ||
+ | Header = THs[THs.length-1] //last TH, not 1st like in en.wp | ||
+ | Table.id = 'collapsibleTable' + tblIdx | ||
+ | btn = document.createElement('span') | ||
+ | btn.style.styleFloat = btn.style.cssFloat = 'right' | ||
+ | btn.style.fontWeight = 'normal' | ||
+ | a = document.createElement('a') | ||
+ | a.id = 'collapseButton' + tblIdx | ||
+ | a.href = 'javascript:collapseTable(' + tblIdx + ');' | ||
+ | a.appendChild(document.createTextNode(collapseCaption)) | ||
+ | btn.appendChild(document.createTextNode('[')) | ||
+ | btn.appendChild(a) | ||
+ | btn.appendChild(document.createTextNode(']')) | ||
+ | Header.insertBefore(btn, Header.childNodes[0]) | ||
+ | colTables[tblIdx++] = Table | ||
+ | } | ||
+ | for (var i=0; i < tblIdx; i++) | ||
+ | if ((tblIdx > autoCollapse && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed')) | ||
+ | collapseTable(i) | ||
+ | } | ||
+ | |||
+ | function collapseTable (idx){ | ||
+ | var Table = document.getElementById('collapsibleTable' + idx) | ||
+ | var btn = document.getElementById('collapseButton' + idx) | ||
+ | if (!Table || !btn) return false | ||
+ | var Rows = Table.rows | ||
+ | var isShown = (btn.firstChild.data == collapseCaption) | ||
+ | btn.firstChild.data = isShown ? expandCaption : collapseCaption | ||
+ | var disp = isShown ? 'none' : Rows[0].style.display | ||
+ | for (var i=1; i < Rows.length; i++) | ||
+ | Rows[i].style.display = disp | ||
+ | } | ||
+ | |||
+ | var NavigationBarHide = '[' + collapseCaption + ']' | ||
+ | var NavigationBarShow = '[' + expandCaption + ']' | ||
+ | var NavigationBarShowDefault = autoCollapse | ||
- | + | function collapsibleDivs(){ | |
- | + | var navIdx = 0, colNavs = [], i, NavFrame | |
- | + | var divs = document.getElementById('content').getElementsByTagName('div') | |
- | + | for (i=0; NavFrame = divs[i]; i++) { | |
- | + | if (!hasClass(NavFrame, 'NavFrame')) continue | |
- | + | NavFrame.id = 'NavFrame' + navIdx | |
- | + | var a = document.createElement('a') | |
- | + | a.className = 'NavToggle' | |
- | + | a.id = 'NavToggle' + navIdx | |
- | + | a.href = 'javascript:collapseDiv(' + navIdx + ');' | |
- | + | a.appendChild(document.createTextNode(NavigationBarHide)) | |
- | + | // 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(a) | |
- | + | colNavs[navIdx++] = NavFrame | |
- | + | } | |
- | + | for (i=0; i < navIdx; i++) | |
- | + | if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed')) | |
- | + | collapseDiv(i) | |
- | + | } | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | // ============================================================ | + | function collapseDiv(idx) { |
- | + | var div = document.getElementById('NavFrame' + idx) | |
+ | var btn = document.getElementById('NavToggle' + idx) | ||
+ | if (!div || !btn) return false | ||
+ | var isShown = (btn.firstChild.data == NavigationBarHide) | ||
+ | btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide | ||
+ | var disp = isShown ? 'none' : 'block' | ||
+ | for (var child = div.firstChild; child != null; child = child.nextSibling) | ||
+ | if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent')) | ||
+ | child.style.display = disp | ||
+ | } | ||
+ | |||
+ | addOnloadHook(collapsibleDivs); | ||
+ | addOnloadHook(collapsibleTables); | ||
+ | |||
+ | // END Dynamic Navigation Bars | ||
+ | // ============================================================ | ||
+ | |||
+ | // ============================================================ | ||
+ | // BEGIN Moving of the editsection links | ||
- | + | /* | |
- | + | * moveEditsection | |
- | + | * Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand | |
- | + | * direkt rechts neben die jeweiligen Überschriften. | |
- | + | * This script moves the [edit]-buttons from the right border of the window | |
- | + | * directly right next to the corresponding headings. | |
- | + | * | |
- | + | * Zum Abschalten die folgende Zeile (ohne führendes Sternchen) in die eigene | |
- | + | * monobook.js (zu finden unter [[Special:Mypage/monobook.js|Benutzer:Name/monobook.js]]) kopieren: | |
- | + | * var oldEditsectionLinks = true; | |
- | + | * | |
- | + | * dbenzhuser (de:Benutzer:Dbenzhuser) | |
- | + | */ | |
- | + | function moveEditsection() { | |
if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) { | if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) { | ||
var spans = document.getElementsByTagName("span"); | var spans = document.getElementsByTagName("span"); | ||
Zeile 233: | Zeile 309: | ||
} | } | ||
} | } | ||
- | + | } | |
- | + | // onload | |
- | + | addOnloadHook(moveEditsection); | |
- | + | // END Moving of the editsection links | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN import Onlyifediting-functions | |
- | + | // SEE ALSO [[MediaWiki:Onlyifediting.js]] | |
- | + | if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) { | |
document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); | document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); | ||
- | + | } | |
- | + | // END import Onlyifediting-functions | |
- | + | // ============================================================ | |
- | + | // ============================================================ | |
- | + | // BEGIN pageview counter | |
- | + | // SEE ALSO [[MediaWiki:Pagecounter.js]] | |
- | + | // Please talk to User:LeonWeber before changing anything or | |
- | + | // if there are any issues with this. | |
- | + | // disable the counter | |
- | + | var disable_counter = 0; | |
- | + | document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Pagecounter.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); | |
- | + | // END pageview counter | |
- | + | // ============================================================ | |
+ | |||
+ | // corrections for older Gecko browser than rv:1.9 (for example Firefxo 2, Seamonkey 1.1.11 ...) | ||
+ | document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Old-gecko.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); | ||
+ | |||
+ | /** Skript für Vorlage:Galerie */ | ||
+ | addOnloadHook(function() { | ||
+ | if (document.URL.match(/printable/g)) return; | ||
+ | |||
+ | function toggleImageFunction(group, remindex, shwindex) { | ||
+ | return function() { | ||
+ | document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none"; | ||
+ | document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block"; | ||
+ | return false; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | var divs = document.getElementsByTagName("div"); | ||
+ | var i = 0, j = 0; | ||
+ | var units, search; | ||
+ | var currentimage; | ||
+ | var UnitNode; | ||
+ | for (i = 0; i < divs.length; i++) { | ||
+ | if (divs[i].className !== "ImageGroup") { continue; } | ||
+ | UnitNode = undefined; | ||
+ | search = divs[i].getElementsByTagName("div"); | ||
+ | for (j = 0; j < search.length; j++) { | ||
+ | if (search[j].className !== "ImageGroupUnits") { continue; } | ||
+ | UnitNode=search[j]; | ||
+ | break; | ||
+ | } | ||
+ | if (UnitNode === undefined) { continue; } | ||
+ | units = []; | ||
+ | for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { | ||
+ | var temp = UnitNode.childNodes[j]; | ||
+ | if (temp.className === "center") { units.push(temp); } | ||
+ | } | ||
+ | var rightlink = undefined; | ||
+ | var commentText = undefined; | ||
+ | for (j = 0; j < units.length; j++) { | ||
+ | currentimage = units[j]; | ||
+ | currentimage.id = "ImageGroupsGr" + i + "Im" + j; | ||
+ | var leftlink = document.createElement("a"); | ||
+ | if (commentText !== undefined) { | ||
+ | leftlink.setAttribute("title", commentText); | ||
+ | } | ||
+ | var comment; | ||
+ | if (typeof(currentimage.getAttribute("title")) !== "string") { | ||
+ | commentText = (j+1) + "/" + units.length; | ||
+ | comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")")); | ||
+ | } | ||
+ | else { | ||
+ | commentText = currentimage.getAttribute("title"); | ||
+ | comment = document.createElement("span").appendChild(document.createTextNode(commentText)); | ||
+ | currentimage.removeAttribute("title"); | ||
+ | } | ||
+ | if(rightlink !== undefined) { | ||
+ | rightlink.setAttribute("title", commentText); | ||
+ | } | ||
+ | var imghead = document.createElement("div"); | ||
+ | rightlink = document.createElement("a"); | ||
+ | if (j != 0) { | ||
+ | leftlink.href = "#"; | ||
+ | leftlink.onclick = toggleImageFunction(i, j, j-1); | ||
+ | leftlink.appendChild(document.createTextNode("◀")); | ||
+ | } | ||
+ | if (j != units.length - 1) { | ||
+ | rightlink.onclick = toggleImageFunction(i, j, j+1); | ||
+ | rightlink.appendChild(document.createTextNode("▶")); | ||
+ | } | ||
+ | imghead.style["fontSize"] = "110%"; | ||
+ | imghead.style["fontweight"] = "bold"; | ||
+ | imghead.appendChild(leftlink); | ||
+ | imghead.appendChild(document.createTextNode("\xA0")); | ||
+ | imghead.appendChild(comment); | ||
+ | imghead.appendChild(document.createTextNode("\xA0")); | ||
+ | imghead.appendChild(rightlink); | ||
+ | if (units.length > 1) { | ||
+ | currentimage.insertBefore(imghead,currentimage.childNodes[0]); | ||
+ | } | ||
+ | if (j != 0) { | ||
+ | currentimage.style["display"] = "none"; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | // </source> |
Aktuelle Version vom 19:02, 17. Okt. 2010
/* <source lang="javascript"> Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. Execute function on page load ********************************************* * * Description: Wrapper around addOnloadHook() for backwards compatibility. * Will be removed in the near future. */ /* z ruskeje wikipedije */ /* Чтоб была возможность изменить поведение кнопки "+" (добавление новой темы) для страниц обсуждения */ addOnloadHook(function(){ var plus = document.getElementById('ca-addsection'); if (!plus) return; var custom = document.getElementById('add-custom-section'); if (!custom) return; plus.firstChild.setAttribute('href', custom.getElementsByTagName('A')[0].href); }) //po ruskej wikipediji //according to russian wikipedia //import module importedScripts = {} function importScript2(page, lang) { page = '?title=' + encodeURIComponent(page.replace(' ','_')) if (lang) page = 'http://' + lang + '.wikipedia.org/w/index.php' + page else page = wgScript + page if (importedScripts[page]) return importedScripts[page] = true var s = document.createElement('script') s.type = 'text/javascript' s.src = page + '&action=raw&ctype=text/javascript' document.getElementsByTagName('head')[0].appendChild(s) } // end import module // ============================================================ // BEGIN hasclass //hasClass, from en.wp and ru.wp var hasClass = (function (){ var reCache = {} return function (element, className){ return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className) } })() function addLoadEvent(f) {addOnloadHook(f)} //for backwards compatibility // END hasclass // ============================================================ // ============================================================ // BEGIN Configuration for "star" logo in front of interwiki links to Featured Articles /** set to false in Special:Mypage/monobook.js to switch off this "feature" */ var linkFA_enabled = true; /** description that is displayed when cursor hovers above FA and GA interwiki links */ var linkFA_description = "Dieser Artikel wurde als exzellent bewertet."; var linkGA_description = "Dieser Artikel wurde als lesenswert bewertet."; /** * star logo for featured articles in other languages, * see Template:Link_FA and MediaWiki:Common.css */ function linkFA() { // early exit when disabled if (!linkFA_enabled) return; // skins need to be treated differently if (skin == "monobook" || skin == "simple") { newer(); } else if (skin == "cologneblue" || skin == "nostalgia" || skin == "standard") { older(); } /** skin == "monobook" || skin == "simple" */ function newer() { // links are to replaced in p-lang only var pLang = document.getElementById("p-lang"); if (!pLang) return; var lis = pLang.getElementsByTagName("li"); for (var i = 0; i < lis.length; i++) { var li = lis[i]; // only links with a corresponding Link_FA template are interesting if (document.getElementById(li.className + "-fa")) { // additional class so the template can be hidden with CSS li.className += " FA"; // change title li.title = linkFA_description; }else if (document.getElementById(li.className + "-ga")) { // additional class so the template can be hidden with CSS li.className += " GA"; // change title li.title = linkGA_description; } } } /** skin == "cologneblue" || skin == "nostalgia" || skin == "standard" */ function older() { // these root elements can contain FA-links var rootIds = new Array("topbar", "footer"); for (var i=0; i<rootIds.length; i++) { var rootId = rootIds[i]; var root = document.getElementById(rootId); if (!root) continue; // if the root exists, try to decorate all the links within var links = root.getElementsByTagName("a"); for (var j=0; j<links.length; j++) { var link = links[j]; decorate(link); } } } /** id necessary, modify a link to show the FA-star (older) */ function decorate(link) { // exit if not a FA-link var lang = link.title.split(":")[0]; // not precise enough var fa = document.getElementById("interwiki-" + lang + "-fa"); if (!fa) return; // possible problem owing the standard skin: "Link FA" template is transcluded with a non-interwiki parameter, for example "Special" // result: links to special pages in the topbar and/or footer might also be marked as a Featured Article // build an image-node for the FA-star var img = document.createElement("img"); img.setAttribute("src", "http://upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png"); img.setAttribute("alt", linkFA_description); img.setAttribute("style", "margin-right: 0.2em;"); // decorate the link with the image link.appendChild(img); link.appendChild(link.removeChild(link.firstChild)); link.setAttribute("title", linkFA_description); } } // aOnloadFunctions[aOnloadFunctions.length] = linkFA; addOnloadHook(linkFA); // END Configuration for "star" logo in front of interwiki links to Featured Articles // ============================================================ // 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](); } } } // Z němskeje wikipedije //================================================================================ //*** force the loading of another JavaScript file (Kopie von [[Commons:Common.js]]) // Local Maintainer: [[Commons:User:Dschwen]] function includePage(name) { document.write('<script type="text/javascript" src="' + wgScript + '?title=' + name + '&action=raw&ctype=text/javascript&dontcountme=s"><\/script>'); // smaxage=3600 } //================================================================================ //*** import Onlyifuploading-functions // SEE ALSO [[MediaWiki:Onlyifuploading.js]] if (wgCanonicalSpecialPageName == "Upload") { includePage("MediaWiki:Onlyifuploading.js"); includePage("MediaWiki:Onlyifediting.js"); } // END Externhinweis // ============================================================ // ============================================================ // BEGIN Dynamic Navigation Bars // NEEDS Enable multiple onload functions // nowa wersija po ruskej wikipediji //Collapsible Tables and Divs, [[:ru:ВП:СБ]] var autoCollapse = 0 var collapseCaption = 'Verstecken' var expandCaption = 'Anzeigen' function collapsibleTables(){ var Table, HRow, THs, Header, btn, a, tblIdx = 0, colTables = [] var allTables = document.getElementsByTagName('table') for (var i=0; Table = allTables[i]; i++){ if (!hasClass(Table, 'collapsible')) continue if (!(HRow = Table.rows[0])) continue THs = HRow.getElementsByTagName('th') if (THs.length == 0) continue Header = THs[THs.length-1] //last TH, not 1st like in en.wp Table.id = 'collapsibleTable' + tblIdx btn = document.createElement('span') btn.style.styleFloat = btn.style.cssFloat = 'right' btn.style.fontWeight = 'normal' a = document.createElement('a') a.id = 'collapseButton' + tblIdx a.href = 'javascript:collapseTable(' + tblIdx + ');' a.appendChild(document.createTextNode(collapseCaption)) btn.appendChild(document.createTextNode('[')) btn.appendChild(a) btn.appendChild(document.createTextNode(']')) Header.insertBefore(btn, Header.childNodes[0]) colTables[tblIdx++] = Table } for (var i=0; i < tblIdx; i++) if ((tblIdx > autoCollapse && hasClass(colTables[i], 'autocollapse')) || hasClass(colTables[i], 'collapsed')) collapseTable(i) } function collapseTable (idx){ var Table = document.getElementById('collapsibleTable' + idx) var btn = document.getElementById('collapseButton' + idx) if (!Table || !btn) return false var Rows = Table.rows var isShown = (btn.firstChild.data == collapseCaption) btn.firstChild.data = isShown ? expandCaption : collapseCaption var disp = isShown ? 'none' : Rows[0].style.display for (var i=1; i < Rows.length; i++) Rows[i].style.display = disp } var NavigationBarHide = '[' + collapseCaption + ']' var NavigationBarShow = '[' + expandCaption + ']' var NavigationBarShowDefault = autoCollapse function collapsibleDivs(){ var navIdx = 0, colNavs = [], i, NavFrame var divs = document.getElementById('content').getElementsByTagName('div') for (i=0; NavFrame = divs[i]; i++) { if (!hasClass(NavFrame, 'NavFrame')) continue NavFrame.id = 'NavFrame' + navIdx var a = document.createElement('a') a.className = 'NavToggle' a.id = 'NavToggle' + navIdx a.href = 'javascript:collapseDiv(' + navIdx + ');' a.appendChild(document.createTextNode(NavigationBarHide)) // 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(a) colNavs[navIdx++] = NavFrame } for (i=0; i < navIdx; i++) if ((navIdx > NavigationBarShowDefault && !hasClass(colNavs[i], 'expanded')) || hasClass(colNavs[i], 'collapsed')) collapseDiv(i) } function collapseDiv(idx) { var div = document.getElementById('NavFrame' + idx) var btn = document.getElementById('NavToggle' + idx) if (!div || !btn) return false var isShown = (btn.firstChild.data == NavigationBarHide) btn.firstChild.data = isShown ? NavigationBarShow : NavigationBarHide var disp = isShown ? 'none' : 'block' for (var child = div.firstChild; child != null; child = child.nextSibling) if (hasClass(child, 'NavPic') || hasClass(child, 'NavContent')) child.style.display = disp } addOnloadHook(collapsibleDivs); addOnloadHook(collapsibleTables); // END Dynamic Navigation Bars // ============================================================ // ============================================================ // BEGIN Moving of the editsection links /* * moveEditsection * Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand * direkt rechts neben die jeweiligen Überschriften. * This script moves the [edit]-buttons from the right border of the window * directly right next to the corresponding headings. * * Zum Abschalten die folgende Zeile (ohne führendes Sternchen) in die eigene * monobook.js (zu finden unter [[Special:Mypage/monobook.js|Benutzer:Name/monobook.js]]) kopieren: * var oldEditsectionLinks = true; * * dbenzhuser (de:Benutzer:Dbenzhuser) */ function moveEditsection() { if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) { var spans = document.getElementsByTagName("span"); for(var i = 0; i < spans.length; i++) { if(spans[i].className == "editsection") { spans[i].style.fontSize = "x-small"; spans[i].style.fontWeight = "normal"; spans[i].style.cssFloat = "none"; spans[i].style.marginLeft = "0px"; spans[i].parentNode.appendChild(document.createTextNode(" ")); spans[i].parentNode.appendChild(spans[i]); } } } } // onload addOnloadHook(moveEditsection); // END Moving of the editsection links // ============================================================ // ============================================================ // BEGIN import Onlyifediting-functions // SEE ALSO [[MediaWiki:Onlyifediting.js]] if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) { document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>'); } // END import Onlyifediting-functions // ============================================================ // ============================================================ // BEGIN pageview counter // SEE ALSO [[MediaWiki:Pagecounter.js]] // Please talk to User:LeonWeber before changing anything or // if there are any issues with this. // disable the counter var disable_counter = 0; document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Pagecounter.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); // END pageview counter // ============================================================ // corrections for older Gecko browser than rv:1.9 (for example Firefxo 2, Seamonkey 1.1.11 ...) document.write('<script type="text/javascript" src="/w/index.php?title=MediaWiki:Old-gecko.js&action=raw&ctype=text/javascript&dontcountme=s&smaxage=3600"></script>'); /** Skript für Vorlage:Galerie */ addOnloadHook(function() { if (document.URL.match(/printable/g)) return; function toggleImageFunction(group, remindex, shwindex) { return function() { document.getElementById("ImageGroupsGr" + group + "Im" + remindex).style["display"] = "none"; document.getElementById("ImageGroupsGr" + group + "Im" + shwindex).style["display"] = "block"; return false; }; } var divs = document.getElementsByTagName("div"); var i = 0, j = 0; var units, search; var currentimage; var UnitNode; for (i = 0; i < divs.length; i++) { if (divs[i].className !== "ImageGroup") { continue; } UnitNode = undefined; search = divs[i].getElementsByTagName("div"); for (j = 0; j < search.length; j++) { if (search[j].className !== "ImageGroupUnits") { continue; } UnitNode=search[j]; break; } if (UnitNode === undefined) { continue; } units = []; for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) { var temp = UnitNode.childNodes[j]; if (temp.className === "center") { units.push(temp); } } var rightlink = undefined; var commentText = undefined; for (j = 0; j < units.length; j++) { currentimage = units[j]; currentimage.id = "ImageGroupsGr" + i + "Im" + j; var leftlink = document.createElement("a"); if (commentText !== undefined) { leftlink.setAttribute("title", commentText); } var comment; if (typeof(currentimage.getAttribute("title")) !== "string") { commentText = (j+1) + "/" + units.length; comment = document.createElement("tt").appendChild(document.createTextNode("("+ commentText + ")")); } else { commentText = currentimage.getAttribute("title"); comment = document.createElement("span").appendChild(document.createTextNode(commentText)); currentimage.removeAttribute("title"); } if(rightlink !== undefined) { rightlink.setAttribute("title", commentText); } var imghead = document.createElement("div"); rightlink = document.createElement("a"); if (j != 0) { leftlink.href = "#"; leftlink.onclick = toggleImageFunction(i, j, j-1); leftlink.appendChild(document.createTextNode("◀")); } if (j != units.length - 1) { rightlink.onclick = toggleImageFunction(i, j, j+1); rightlink.appendChild(document.createTextNode("▶")); } imghead.style["fontSize"] = "110%"; imghead.style["fontweight"] = "bold"; imghead.appendChild(leftlink); imghead.appendChild(document.createTextNode("\xA0")); imghead.appendChild(comment); imghead.appendChild(document.createTextNode("\xA0")); imghead.appendChild(rightlink); if (units.length > 1) { currentimage.insertBefore(imghead,currentimage.childNodes[0]); } if (j != 0) { currentimage.style["display"] = "none"; } } } }); // </source>