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
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Externe Links in neuem Fenster öffnen, sofern sie nicht in dieses Wiki mit unterbundener Weiterleitung ([[Vorlage:KeinRedirect]]) führen
//---------------------------------------------------------------------------
jQuery( document ).ready(function() {
$j(".external").each(function( i ) {
var url = $j(this).attr("href");
if ((url.indexOf("stargate-wiki.de/")!=-1)&&((url.indexOf("redirect=no")!=-1)||(url.indexOf("unhide=1")!=-1)))
$j(this).attr("target","_self");
else
$j(this).attr("target","_blank");
});
});
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Fügt eine Betreffzeile auf leeren Diskussionsseiten ein
//---------------------------------------------------------------------------
jQuery( document ).ready(function() {
if(wgNamespaceNumber != 0 && wgNamespaceNumber != 1) return;
var tab = document.getElementById( 'ca-talk' );
if( !tab || tab.className != 'new' ) return;
var link = tab.getElementsByTagName( 'a' )[0];
if( !link ) return;
link.href += '§ion=new';
});
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// import Onlyifuploading-functions
// SEE ALSO [[MediaWiki:Onlyifuploading.js]]
//---------------------------------------------------------------------------
if (wgCanonicalSpecialPageName == "Upload") {
importScript("MediaWiki:Onlyifuploading.js");
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Einbinden von [[Vorlage:Mentorenliste]]
//---------------------------------------------------------------------------
importScript('Vorlage:Mentorenliste');
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Darstellung der Abschnitte in der Kategorie für wichtige SG1-Episoden
// nach einzelnen Staffeln
//---------------------------------------------------------------------------
jQuery( document ).ready(function() {
if (wgPageName != "Kategorie:Stargate_Kommando_SG-1_Wichtige_Episode") return;
$j("div#mw-pages h3").html(function(i, text)
{
return (text.substr(0, 1) == "@")?"10"+text.substr(1):text;
});
});
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Dynamic Navigation Bars
//---------------------------------------------------------------------------
// set up the words in your language
var NavigationBarHide = 'Einklappen';
var NavigationBarShow = 'Ausklappen';
var NavigationBarToggleAll = 'Alle umklappen';
// 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
if (typeof NavigationBarShowDefault == 'undefined' ) {
var NavigationBarShowDefault = 0;
}
// adds show/hide-button to navigation bars
jQuery( document ).ready(function() {
// shows and hides content and picture (if available) of navigation bars
// Parameters:
// indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(NavToggle, NavFrame)
{
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';
}
if (NavChild.className == 'NavToggle') {
NavChild.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';
}
if (NavChild.className == 'NavToggle') {
NavChild.firstChild.data = NavigationBarHide;
}
}
}
}
function toggleNavigationBarFunction(NavToggle, NavFrame) {
return function() {
toggleNavigationBar(NavToggle, NavFrame);
return false;
};
}
// Shows/hides all navigation bars at once
function toggleNavigationBars() {
var NavFrames = getElementsByClassName(document.getElementById("content"), "div", "NavFrame");
for (var i=0; i<NavFrames.length; i++)
toggleNavigationBar(getElementsByClassName(NavFrames[i], "a", "NavToggle")[0], NavFrames[i]);
}
function toggleNavigationBarsFunction() {
return function() {
toggleNavigationBars();
return false;
};
}
// iterate over all NavFrames
var content = document.getElementById("content");
var NavFrames = getElementsByClassName(content, "div", "NavFrame");
// if more Navigation Bars found and not template namespace than Default: hide all
var initiallyToggle = NavigationBarShowDefault < NavFrames.length && wgNamespaceNumber != 10;
for (var i=0; i<NavFrames.length; i++) {
var NavFrame = NavFrames[i];
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('href', '#');
var NavToggleText = document.createTextNode(NavigationBarHide);
NavToggle.appendChild(NavToggleText);
// add NavToggle-Button as first div-element
// in < div class="NavFrame" >
NavFrame.insertBefore(NavToggle, NavFrame.firstChild);
NavToggle.onclick = toggleNavigationBarFunction(NavToggle, NavFrame);
if (initiallyToggle) {
toggleNavigationBar(NavToggle, NavFrame);
}
}
var NavFrameToggleAlls = getElementsByClassName(content, "div", "NavFrameToggleAll");
for (var i=0; i<NavFrameToggleAlls.length; i++) {
var NavFrameToggleAll = NavFrameToggleAlls[i];
var NavToggleAll = document.createElement("a");
NavToggleAll.className = 'NavToggleAll';
NavToggleAll.setAttribute('href', '#');
var NavToggleAllText = document.createTextNode(NavigationBarToggleAll);
NavToggleAll.appendChild(NavToggleAllText);
// add NavToggleAll-Button as first div-element
// in < div class="NavFrameToggleAll" >
NavFrameToggleAll.insertBefore(NavToggleAll, NavFrameToggleAll.firstChild);
NavToggleAll.onclick = toggleNavigationBarsFunction();
}
});
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Zeilen der Infoboxen abwechselnd einfärben
//---------------------------------------------------------------------------
jQuery( document ).ready(function() {
$j("tr[class*='blauzebra']:not(.spoiler):even").addClass("zebrablau");
$j("tr[class*='blauzebra']:not(.spoiler):odd").removeClass("zebrablau");
$j("tr[class*='grünzebra']:not(.spoiler):even").addClass("zebragrün");
$j("tr[class*='grünzebra']:not(.spoiler):odd").removeClass("zebragrün");
});
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Wenige Einzelnachweise in nur einer Spalte darstellen
//---------------------------------------------------------------------------
jQuery( document ).ready(function() {
if ($('.references li').size() < 6)
$('.references').css({ 'column-count': '1', '-moz-column-count': '1', '-webkit-column-count': '1' });
});
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Sortierung von Datum und Zeit der Form „11:58, 21. Jul. 2012“ in Tabellen
//---------------------------------------------------------------------------
if ($("table.sortable").length) {
mw.loader.using("jquery.tablesorter", function() {
if ($ && $.tablesorter) {
$.tablesorter.addParser({
id: "sgwDateTime",
is: function(s) {
return /(\d\d):(\d\d), (\d\d)\. (...)\. (\d{4})/.test(s);
},
format: function(s) {
s = $.trim(s.toLowerCase());
for (var i=0; i<12; ++i)
s = s.replace($.tablesorter.monthNames[1][i+1], i);
var x = /(\d\d):(\d\d), (\d\d)\. (\d?)\. (\d{4})/.exec(s);
return !x?0:$.tablesorter.formatFloat(new Date(x[5], x[4], x[3], x[1], x[2], 0).getTime());
},
type: "numeric"
});
}
});
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Zählt die Anzahl der Bearbeitungen eines Benutzers
// Siehe auch [[Benutzer:CF/revisionMainspaceCounter.js]]
// Bearbeitung von [[MediaWiki:Gadget-revisionCounter.js]]
//---------------------------------------------------------------------------
var revisionMainspaceCounter =
{
queryUrl : function(i) {
if (i < revisionMainspaceCounter.queries.length && i >= 0 && revisionMainspaceCounter.queries[i] == null)
return null;
if (revisionMainspaceCounter.queries[i].Namespaces == '-100')
return wgScriptPath + '/api.php?action=query&list=logevents&leuser=' + encodeURIComponent(revisionMainspaceCounter.queries[i].User) + '&letype=upload&lepropf=ids&format=json&lelimit=max&callback=revisionMainspaceCounter.queryResult&requestid=' + i;
else
return wgScriptPath + '/api.php?action=query&list=usercontribs&ucuser=' + encodeURIComponent(revisionMainspaceCounter.queries[i].User) + '&ucnamespace=' + revisionMainspaceCounter.queries[i].Namespaces + '&ucprop=ids&format=json&uclimit=max&callback=revisionMainspaceCounter.queryResult&requestid=' + i;
},
queries : [
/*{
revisionCountUser : 0,
User : wgUserName,
Namespaces : '0',
InputId : 'revisionMainspaceCounter',
OutputId : 'revisionMainspaceCounterTarget',
ReplaceFirstChild : false
}*/
],
execute : function()
{
for (var i=0; i<revisionMainspaceCounter.queries.length; ++i)
if (revisionMainspaceCounter.queryUrl(i))
importScriptURI(revisionMainspaceCounter.queryUrl(i));
},
queryResult : function(res)
{
if (!res['query'] || !res['requestid'] || res.requestid >= revisionMainspaceCounter.queries.length || res.requestid < 0 || revisionMainspaceCounter.queries[res.requestid] === null) return;
var continu = false;
var i = res.requestid;
if (revisionMainspaceCounter.queries[res.requestid].Namespaces == '-100') {
if (!res['query']['logevents'])
return;
var revs = res['query']['logevents'];
revisionMainspaceCounter.queries[i].revisionCountUser += revs.length;
if (res && res['query-continue'])
{
importScriptURI(revisionMainspaceCounter.queryUrl(i) + '&lestart=' + encodeURIComponent(res['query-continue'].logevents.lestart));
continu = true;
}
}
else {
if (!res['query']['usercontribs'])
return;
var revs = res['query']['usercontribs'];
revisionMainspaceCounter.queries[i].revisionCountUser += revs.length;
if (res && res['query-continue'])
{
importScriptURI(revisionMainspaceCounter.queryUrl(i) + '&ucstart=' + encodeURIComponent(res['query-continue'].usercontribs.ucstart));
continu = true;
}
}
if (!continu && document.getElementById(revisionMainspaceCounter.queries[i].OutputId))
{
var info = document.createElement("span");
info.appendChild(document.createTextNode(revisionMainspaceCounter.queries[i].revisionCountUser));
var infoTitle = document.createAttribute("title");
infoTitle.nodeValue = revisionMainspaceCounter.queries[i].User + " hat " + revisionMainspaceCounter.queries[i].revisionCountUser + " Bearbeitungen i" + (revisionMainspaceCounter.queries[i].Namespaces==="0" ? "m Hauptnamensraum." : ((revisionMainspaceCounter.queries[i].Namespaces.indexOf("|")>-1 ? "n den Namensräumen ": "m Namensraum ") + revisionMainspaceCounter.queries[i].Namespaces + "."));
info.setAttributeNode(infoTitle);
var e = document.getElementById(revisionMainspaceCounter.queries[i].OutputId);
if (revisionMainspaceCounter.queries[i].ReplaceFirstChild) e.replaceChild(info, e.firstChild);
else e.appendChild(info);
var input = document.getElementById(revisionMainspaceCounter.queries[i].InputId);
var header = $(input).parents("table.sortable")[0];
if (input && input.parentNode)
{
input.parentNode.removeChild(input);
if (header && $(header).find("span.revisionMainspaceCounter").length == 0)
{
$(header).find(".headerSort").unbind("click");
$(header).tablesorter();
}
}
revisionMainspaceCounter.queries[i] = null;
}
},
findCounter : function()
{
var found = 0;
$j("span.revisionMainspaceCounter").each(function()
{
var i = this.innerHTML.split("#");
if (i.length == 4 && ++found)
revisionMainspaceCounter.queries.push({
revisionCountUser : 0,
User : i[0],
Namespaces : i[1].replace(/ /g,"").split(",").join("|"),
InputId : this.id,
OutputId : i[2],
ReplaceFirstChild : i[3]==="j"
});
});
if (found) revisionMainspaceCounter.execute();
}
};
jQuery( document ).ready(revisionMainspaceCounter.findCounter);
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Versteckt Inhalte
// [[Vorlage:Spoiler]]
//---------------------------------------------------------------------------
mw.SGWSpoiler = {
showAll: false,
init: function() {
if ($(".spoiler").size()>0) {
var vector = $("body.skin-vector").size()>0;
var node = mw.util.addPortletLink(vector ? "p-views" : "p-cactions", "#", "Spoiler aufdecken", "ca-spoiler", "Vorhandene Spoiler auf- und zudecken", "s", $("#ca-watch")[0] || $("#ca-unwatch")[0]);
if (node) {
node.onclick = mw.SGWSpoiler.toggleAll;
if (vector)
$("#ca-spoiler a").html('<img width="24" height="24" alt="Spoiler auf- oder zudecken" src="http://www.stargate-wiki.de/w/images/thumb/1/17/System-search.svg/24px-System-search.svg.png" style="position:relative; top: -5px;" />');
}
}
},
toggleNext: function(obj) {
if (mw.SGWSpoiler.showAll) return;
$(obj).next(".spoiler").toggleClass("spoilerShow");
},
toggleNextRow: function(obj) {
if (mw.SGWSpoiler.showAll) return;
$(obj).parent().parent().next("tr.spoiler").toggleClass("spoilerShow");
},
toggleAll: function(obj) {
mw.SGWSpoiler.showAll ^= true;
if (mw.SGWSpoiler.showAll) {
$(".spoiler").addClass("spoilerShowAll");
$("#ca-spoiler").addClass("selected");
if (obj) $(obj).removeClass("spoilerShow");
}
else {
$(".spoiler").removeClass("spoilerShowAll");
$("#ca-spoiler").removeClass("selected");
}
return false;
}
}
jQuery( document ).ready( mw.SGWSpoiler.init );
//---------------------------------------------------------------------------
// Einbinden vom virtuellen Schneefall
// -----Immer im Dezember und Januar soll die folgende Zeile eingesetzt bzw. die "// " davor entfernt werden.-----
// importScript('Benutzer:CF/Schnee.js');
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/**
Toggles the display of elements on a page
Author/contact: Austin Che http://openwetware.org/wiki/User:Austin
*/
// indexed array of toggler ids to array of associated toggle operations
// each operation is a two element array, the first being the type, the second a class name or array of elements
// operation types are strings like "_reset" or "" for the default toggle operation
var togglers = new Array();
var allClasses = new Object(); // associative map of class names to page elements
function toggler(id)
{
var toBeToggled = togglers[id];
if (!toBeToggled)
return;
// if some element is in list more than once, it will be toggled multiple times
for (var i = 0; i < toBeToggled.length; i++)
{
// get array of elements to operate on
var toggles = toBeToggled[i][1];
if (typeof(toggles) == "string")
{
if (toggles.charAt(0) == '-')
{
// treat as an element ID, not as class
toggles = document.getElementById(toggles.substring(1));
if (toggles)
toggles = new Array(toggles);
}
else
toggles = allClasses[toggles];
}
if (!toggles || !toggles.length)
continue;
var op = toBeToggled[i][0]; // what the operation will be
switch (op)
{
case "_reset":
for (var j in toggles)
toggles[j].style.display = toggles[j]._toggle_original_display;
break;
case "_show":
for (var j in toggles)
toggles[j].style.display = '';
break;
case "_hide":
for (var j in toggles)
toggles[j].style.display = 'none';
break;
case "":
default:
// Toggle
for (var j in toggles)
toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
break;
}
}
}
function createTogglerLink(toggler, id)
{
var toggle = document.createElement("a");
toggle.className = 'toggler-link';
toggle.setAttribute('id', 'toggler' + id);
toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
var child = toggler.firstChild;
toggler.removeChild(child);
toggle.appendChild(child);
toggler.insertBefore(toggle, toggler.firstChild);
}
function toggleInit()
{
var togglerElems = new Array();
var toggleGroup = new Array();
// make list of all document classes
var elems = document.getElementsByTagName("*");
var numelems = elems.length;
for (var i = 0; i < elems.length; i++)
{
var elem = elems[i];
if (!elem.className)
continue;
elem._toggle_original_display = elem.style.display;
var togglerID = -1;
var elemClasses = elem.className.split(' '); // get list of classes
for (var j = 0; j < elemClasses.length; j++)
{
var elemClass = elemClasses[j];
if (! allClasses[elemClass])
allClasses[elemClass] = new Array();
allClasses[elemClass].push(elem);
// all the special classes begin with _toggle
if (elemClass.substring(0, 7) != "_toggle")
continue;
if (elemClass == "_togglegroup")
toggleGroup = new Array();
else if (elemClass == "_toggle")
toggleGroup.push(elem);
else if (elemClass.substring(0, 12) == "_toggle_init")
{
// set initial value for display (ignore the original CSS set value)
// understands _toggle_initshow and _toggle_inithide
var disp = elemClass.substring(12);
if (disp == "show")
elem.style.display = '';
else if (disp == "hide")
elem.style.display = 'none';
elem._toggle_original_display = disp;
}
else if (elemClass.substring(0, 8) == "_toggler")
{
if (togglerID == -1)
{
togglerID = togglers.length;
togglers[togglerID] = new Array();
togglerElems[togglerID] = elem;
}
// all classes are of form _toggler_op-CLASS
// figure out what class we're toggling
// if none is specified, then we use the current toggle group
var toBeToggled;
var hyphen = elemClass.indexOf('-');
if (hyphen != -1)
toBeToggled = elemClass.substring(hyphen+1);
else
{
toBeToggled = toggleGroup;
hyphen = elemClass.length;
}
var op = elemClass.substring(8, hyphen);
togglers[togglerID].push(new Array(op, toBeToggled));
}
}
}
// add javascript links to all toggler elements
for (var i = 0; i < togglerElems.length; i++)
createTogglerLink(togglerElems[i], i);
}
addOnloadHook(toggleInit);
function unToggle()
{
var path=window.location.href;
var parts=path.split("#");
if(parts.length > 1)
{
path=parts[parts.length-1];
parts=path.split(".23");
var untogglerGroup = new Array();
var untogglerClass = new Array();
// make list of all document classes
var elems = document.getElementsByTagName("*");
var numelems = elems.length;
for (var c=0; c < parts.length; c++)
{
for (var i = 0; i < elems.length; i++)
{
var elem = elems[i];
if (!elem.className)
continue;
var elemClasses = elem.className.split(' '); // get list of classes
for (var j = 0; j < elemClasses.length; j++)
{
var elemClass=elemClasses[j];
if (elemClass != parts[c])
continue;
else
{
untogglerGroup.push(elem);
untogglerClass.push(elemClass);
}
}
}
}
// add javascript links to all toggler elements
for (var i = 0; i < untogglerGroup.length; i++)
{
untogglerGroup[i].style.display = '';
}
}
}