Benutzer:Sweets/monobook.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
//Links in Titelleiste
var time = new Date();
var monthnames = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
var sites = new Array(
"Kategorie:Wikipedia:Schnelllöschen",
"Spezial:Newpages",
"Wikipedia:Ich brauche Hilfe",
"Wikipedia:Löschkandidaten/"+time.getDate()+". "+monthnames[time.getMonth()]+" "+(time.getYear()+((time.getYear() < 1900) ? 1900 : 0))
);
function insert()
{
var link = "";
var linktext = "";
for (var i = 0; i < sites.length; i++)
{
var space = document.createTextNode(" | ");
link = document.createElement("a");
linktext = document.createTextNode(sites[i]);
link.appendChild(linktext);
link.setAttribute("href", "http://de.wikipedia.org/wiki/"+sites[i]);
link.setAttribute("style", "text-decoration:none;color:brown");
document.getElementById("contentTop").appendChild(space);
document.getElementById("contentTop").appendChild(link);
}
}
// Bausteinbox
/* Idee der he-Wikipedia, siehe dortige History fuer die Autoren */
var Templates = new Array (100);
var CurlyBracket = "}";
Templates[9] = "'''''' bezeichnet\n*\n*\n";
Templates[10] = "";
Templates[11] = "\n{{Begriffsklärung}" + CurlyBracket;
Templates[19] = "{{Dieser Artikel|behandelt . Für weitere Bedeutungen siehe'' [[";
Templates[20] = "Name";
Templates[21] = " (Begriffsklärung)|]].}}";
Templates[29] = "#REDIRECT [[";
Templates[30] = "";
Templates[31] = "]]";
Templates[39] = "{{Personendaten|\n NAME=\n|ALTERNATIVNAMEN=\n|KURZBESCHREIBUNG=\n|GEBURTSDATUM=\n|GEBURTSORT=\n";
Templates[40] = "";
Templates[41] = "|STERBEDATUM=\n|STERBEORT=\n}" + CurlyBracket;
Templates[49] = "{{Subst:Löschantrag}" + CurlyBracket +"\n''";
Templates[50] = "";
Templates[51] = "'' --~~"+"~~\n----\n";
Templates[59] = "{{Löschen}" + CurlyBracket + "\n''";
Templates[60] = "";
Templates[61] = "'' --~~"+"~~\n----\n";
Templates[69] = "\n{{URV}" + CurlyBracket + " [http://";
Templates[70] = "www.beispiel.com";
Templates[71] = "] --~~"+"~~\n";
Templates[79] = "\n{{Neutralität}" + CurlyBracket;
Templates[80] = "";
Templates[81] = "\n";
Templates[89] = "\n[[Kategorie:";
Templates[90] = "";
Templates[91] = "]]";
function InsertTemplate(TemplateIndex)
{
if (TemplateIndex>0) insertTags(Templates[TemplateIndex*10-1],Templates[TemplateIndex*10+1],Templates[TemplateIndex*10]);
};
function box() {
document.getElementById("contentSub").innerHTML = '\nTextbaustein einfügen:\n<select name="x" style="vertical-align: baseline;float:right" onchange="InsertTemplate(this.selectedIndex);this.selectedIndex=0;this.focus();">\n <option>Textbaustein auswählen...</option>\n <option>Begriffsklärung</option>\n <option>Begriffsklärung II</option>\n <option>Weiterleitung</option>\n <option>Personendaten</option>\n <option>Löschantrag</option>\n <option>Schnelllöschen</option>\n <option>URV</option>\n <option>Neutralität</option>\n <option>Kategorie</option>\n</select>';
}
// Inhalts-Verbergefunktion
var hidetext = "verbergen";
var showtext = "zeigen";
var fol = null;
function showHideToggle() {
if(document.getElementById) {
var alldivs = document.getElementsByTagName("div");
for (var i=0;i<alldivs.length;i++) {
if (alldivs[i].className == "hide") {
fol = alldivs[i].lastChild;
fol.setAttribute("id", "hidebody"+i);
fol = alldivs[i].firstChild;
fol.innerHTML += '[<a href="javascript:toggleHide(' + i + ')" id="toggleLink'+i+'">' + hidetext + '</a>]';
}
}
}
}
function toggleHide(hiden) {
var hide = document.getElementById("hidebody" + hiden);
var showhidelink = document.getElementById("toggleLink" + hiden);
if(hide.style.display == 'none') {
hide.style.display = 'inline';
fol = showhidelink.firstChild;
fol.nodeValue = hidetext;
} else {
hide.style.display = 'none';
fol = showhidelink.firstChild;
fol.nodeValue = showtext;
}
}
// Tabellensortierung
var sortingOn = true; // set to false to deactivate sorting function
var num, order, oldtable = new Array(), numbering = new Array();
var texts = new Array();
texts['sortalphabetic'] = "nach Alphabet sortieren";
texts['sortnumeric'] = "numerisch sortieren";
texts['hidenumbering'] = "Nummerierung verbergen";
texts['shownumbering'] = "Nummerierung anzeigen";
texts['restoretable'] = "ursprüngliche Tabelle wiederherstellen";
var special = new Array();
special["ä"] = "a";
special["ö"] = "o";
special["ü"] = "u";
special["ß"] = "s";
var month = new Array();
month["Januar"] = "01";
month["Februar"] = "02";
month["März"] = "03";
month["April"] = "04";
month["Mai"] = "05";
month["Juni"] = "06";
month["Juli"] = "07";
month["August"] = "08";
month["September"] = "09";
month["Oktober"] = "10";
month["November"] = "11";
month["Dezember"] = "12";
function plain(text) {
text = text.replace(/<[^>]*>/gi, "").replace(/\s+/gi, " ");
if ((order == "123") || (order == "321")) {
var monthnames = "";
for (var mname in month) monthnames += mname + "|";
var regex = RegExp("(\\d+)\\. (" + monthnames.substring(0, monthnames.length - 1) + ") (\\d*)", "");
var match = regex.exec(text);
if (match) {
if (match[1].length == 1) match[1] = "0" + match[1];
text = text.replace(match[0], match[3] + month[match[2]] + match[1]);
}
}
text = text.toLowerCase();
for (var rep in special) text = text.replace(RegExp(rep, "g"), special[rep]);
text = text.replace(/\./g, "").replace(/,/g, ".").replace(/ /g, " ").replace(/^ +/g, "").replace(/ +$/g, "");
return text;
}
function getbgcolor(node) {
var an = node;
var bgc = 'transparent';
while (bgc == 'transparent') {
if (an.currentStyle) bgc = an.currentStyle.backgroundColor;
else bgc = window.getComputedStyle(an, "").getPropertyValue('background-color');
an = an.parentNode;
}
bgc.match(/rgb\((\d+), (\d+), (\d+)\)/);
var r = parseInt(RegExp.$1);
var g = parseInt(RegExp.$2);
var b = parseInt(RegExp.$3);
if ((r + g + b < 350) || ((r + g + 20) < b)) return 'rgb(220, 220, 220)';
return 'rgb(0, 0, 255)';
}
function arrSort(a, b) {
if ((order == '123') || (order == 'abc')) var s = 1;
else if ((order == '321') || (order == 'cba')) var s = -1;
var h1;
var h2;
if (a.childNodes[columnnum]) h1 = plain(a.childNodes[columnnum].innerHTML);
else h1 = "";
if (b.childNodes[columnnum]) h2 = plain(b.childNodes[columnnum].innerHTML);
else h2 = "";
if ((order == '123') || (order == '321')) {
if ((isNaN(h1) == false) && (isNaN(h2) == false)) return (h2 - h1) * s;
else if ((isNaN(h1) == true) && (isNaN(h2) == false)) return -1;
else if ((isNaN(h1) == false) && (isNaN(h2) == true)) return 1;
}
if (h1 == h2) return 0;
else if (h1 > h2) return -1 * s;
else return 1 * s;
}
function sort(column, table, offset) {
var revorder;
if ((order == "abc") || (order == "cba")) {
if (order == "abc") revorder = "cba";
else revorder = "abc";
var slinkabc = document.getElementById("changelinkabc_" + table + '_' + column + '_' + offset);
slinkabc.setAttribute("href", 'javascript:order=\'' + revorder + '\';sort('+column+', '+table+', '+offset+')');
slinkabc.removeChild(slinkabc.firstChild);
slinkabc.appendChild(document.createTextNode(revorder));
}
else if ((order == "123") || (order == "321")) {
if (order == "123") revorder = "321";
else revorder = "123";
var slink321 = document.getElementById("changelink321_" + table + '_' + column + '_' + offset);
slink321.setAttribute("href", 'javascript:order=\'' + revorder + '\';sort('+column+', '+table+', '+offset+')');
slink321.removeChild(slink321.firstChild);
slink321.appendChild(document.createTextNode(revorder));
}
columnnum = column + numbering[table];
var ntable = document.getElementById("table" + table);
var ntbody = ntable.lastChild;
var nth, ntds = new Array();
var ntrs = ntbody.childNodes;
nth = ntrs[offset].cloneNode(true);
i = 0;
do {
ntds[i] = ntrs[i + offset + 1].cloneNode(true);
i++;
} while ((i + offset + 1 < ntrs.length) && (ntrs[i + offset + 1].lastChild.tagName != "TH"));
for (var j=offset;j<i + offset + 1;j++) ntbody.removeChild(ntrs[offset]);
ntds.sort(arrSort);
ntbody.insertBefore(nth, ntbody.childNodes[offset]);
for (var j=0;j<i;j++) ntbody.insertBefore(ntds[j], ntbody.childNodes[offset + 1]);
}
function donumbering(table) {
var ntable = document.getElementById("table" + table);
var ntrs = ntable.lastChild.childNodes;
var ntd, text, c = 1;
if (numbering[table] == false) {
numbering[table] = true;
var st = document.getElementById("numberingstyle_" + table);
var sttext = document.createTextNode(".donumbering_" + table + "{display:none}");
st.appendChild(sttext);
for (var i=0;i<ntrs.length;i++) {
if ((ntrs[i].lastChild.tagName == "TH")) {
ntd = document.createElement("th");
ntd.style.verticalAlign = "top";
var numlink = document.createElement("a");
numlink.setAttribute("title", texts['hidenumbering']);
numlink.setAttribute("href", "javascript:donumbering(" + table + ");");
numlink.appendChild(document.createTextNode("->"));
ntd.appendChild(numlink);
c = 1;
}
else {
ntd = document.createElement("td");
ntd.style.verticalAlign = "top";
ntd.innerHTML = c + ".";
c++;
}
ntrs[i].insertBefore(ntd, ntrs[i].firstChild);
}
}
else {
numbering[table] = false;
var st = document.getElementById("numberingstyle_" + table);
var sttext = document.createTextNode(".donumbering_" + table + "{display:block}");
st.appendChild(sttext);
for (var i=0;i<ntrs.length;i++) ntrs[i].removeChild(ntrs[i].firstChild);
}
}
// restores table on sorting delivered with HTML code
function restoreTable(table) {
var ts = document.getElementsByTagName("table");
ts[table].parentNode.replaceChild(oldtable[table].cloneNode(true), ts[table]);
if (numbering[table] == true) {
numbering[table] = false;
var st = document.getElementById("numberingstyle_" + table);
var sttext = document.createTextNode(".donumbering_" + table + "{display:block}");
st.appendChild(sttext);
}
}
// sets links for sorting and strips textnodes in Mozillas
function setSortLinks() {
if (sortingOn == true) {
var trs, inh = "", ths, th, tds, tr, col = 0, row = 0, ntbody, newtbody, bgc, sattr = "";
var numstyle;
var head = document.getElementsByTagName("HEAD")[0];
var style = document.createElement("style");
style.setAttribute( 'type', 'text/css');
var styletext = document.createTextNode(".donumbering{position:relative;width:100%;}\n.restlinkcontainer{position:relative;width:100%;}\n.numberinglink{position:absolute;left:-25px;}\n.restorelink{position:absolute;left:-10px;}\n.sortlinkcontainer{position:relative;height:10px;width:100%;}\n.sortlinksup{font-size:smaller;position:absolute;top:0;right:0;}");
style.appendChild(styletext);
head.appendChild(style);
var ts = document.getElementsByTagName("table");
var numts = new Array(ts.length);
for (var i=0;i<ts.length;i++) {
if ((ts[i].className.indexOf("nosort") == -1) && (ts[i].id != "toc")) {
numstyle = document.createElement("style");
numstyle.setAttribute("id", "numberingstyle_" + i);
head.appendChild(numstyle);
ts[i].id = "table"+i;
ntbody = ts[i].lastChild;
newtbody = ntbody.cloneNode(false);
trs = ntbody.childNodes;
row = 0;
for (var j=0;j<trs.length;j++) {
if (trs[j].nodeType == 1) {
tr = trs[j].cloneNode(false);
if (trs[j].lastChild.tagName == "TH") {
ths = trs[j].childNodes;
col = 0;
for (var k=0;k<ths.length;k++) {
th = ths[k].cloneNode(true);
if (th.nodeType == 1) {
inh = plain(th.innerHTML);
if ((th.className.indexOf("nosort") == -1) && (trs[j].className.indexOf("nosort") == -1) && (th.colSpan == 1) && (inh.length > 3) && (trs[j].childNodes.length > 2)) {
th.style.verticalAlign = "top";
sattr = getbgcolor(ths[k]);
var div = document.createElement("div");
div.setAttribute("class", "sortlinkcontainer");
var sup = document.createElement("sup");
sup.setAttribute("class", "sortlinksup");
var slinkabc = document.createElement("a");
slinkabc.setAttribute("href", 'javascript:order=\'abc\';sort('+col+', '+i+', '+row+')');
slinkabc.setAttribute("title", texts['sortalphabetic']);
slinkabc.setAttribute("style", "color:" + sattr);
slinkabc.setAttribute("id", 'changelinkabc_'+i+'_'+col+'_'+row);
slinkabc.appendChild(document.createTextNode("abc"));
var slink321 = document.createElement("a");
slink321.setAttribute("href", 'javascript:order=\'321\';sort('+col+', '+i+', '+row+')');
slink321.setAttribute("title", texts['sortnumeric']);
slink321.setAttribute("style", "color:" + sattr);
slink321.setAttribute("id", 'changelink321_'+i+'_'+col+'_'+row);
slink321.appendChild(document.createTextNode("321"));
sup.appendChild(document.createTextNode("["));
sup.appendChild(slinkabc);
sup.appendChild(document.createTextNode("] [")); // be careful! space is nonbreaking
sup.appendChild(slink321);
sup.appendChild(document.createTextNode("]"));
div.appendChild(sup);
th.insertBefore(div, th.firstChild);
numts[i] = true;
}
col += th.colSpan;
tr.appendChild(th);
}
}
}
else {
tds = trs[j].childNodes;
for (var k=0;k<tds.length;k++) {
if (tds[k].nodeType == 1) {
tr.appendChild(tds[k].cloneNode(true));
}
}
}
row++;
newtbody.appendChild(tr);
}
}
ts[i].replaceChild(newtbody, ntbody);
}
}
for (var i=0;i<ts.length;i++) {
numbering[i] = false;
if (numts[i] == true) {
trs = ts[i].lastChild.childNodes;
for (var j=0;j<trs.length;j++) {
if ((trs[j].lastChild.tagName == "TH") && (trs[j].firstChild.colSpan == 1)) {
var div = document.createElement("div");
div.setAttribute("class", "donumbering donumbering_" + i);
var numlink = document.createElement("a");
numlink.setAttribute("title", texts['shownumbering']);
numlink.setAttribute("class", "numberinglink");
numlink.setAttribute("href", "javascript:donumbering(" + i + ");");
numlink.appendChild(document.createTextNode("<-"));
div.appendChild(numlink);
var restlink = document.createElement("a");
restlink.setAttribute("title", texts['restoretable']);
restlink.setAttribute("class", "restorelink");
restlink.setAttribute("href", "javascript:restoreTable(" + i + ");");
restlink.appendChild(document.createTextNode("R"));
rdiv = div.cloneNode(false);
rdiv.setAttribute("class", "restlinkcontainer");
rdiv.appendChild(restlink);
trs[j].firstChild.insertBefore(div, trs[j].firstChild.firstChild);
trs[j].firstChild.insertBefore(rdiv, trs[j].firstChild.firstChild);
trs[j].firstChild.style.paddingLeft = "25px";
}
}
oldtable[i] = ts[i].cloneNode(true);
}
}
}
}
function getSchweiz() {
var x = document.getElementsByTagName("html")[0].innerHTML;
x = x.replace(/ß/, "ss");
}
// Funktionen starten
function start() {
if (document.getElementById("editform") != null) box();
insert();
showHideToggle();
setSortLinks();
getSchweiz();
}
window.onload = start;