MediaWiki:Common.js

Aus Uncyclopedia
Zur Navigation springen Zur Suche springen

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
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
 // <pre>
 // Import [[MediaWiki:Onlyifuploading.js]] 

 // top self
 
 if(top!=self)
 top.location=self.location;

 // ============================================================
 // 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]();
     }
   }
 }
 
 // END Enable multiple onload functions
 // ============================================================

 // ============================================================
 // 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="/wiki/index.php?title=MediaWiki:Onlyifediting.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 }
 
 // END import Onlyifediting-functions
 // ============================================================

 // ============================================================
 // BEGIN Tausche [[Special:Specialpages]] gegen [[Uncyclopedia:Spezialseiten]]
 // NEEDS Enable multiple onload functions
 
    function spezialtausch() {
     $('#t-specialpages').html("<a href='\/wiki\/Uncyclopedia:Spezialseiten'>Spezialseiten<\/a>");
     }
 
    aOnloadFunctions[aOnloadFunctions.length] = spezialtausch;
 
 // END Tausche [[Special:Specialpages]] gegen [[Uncyclopedia:Spezialseiten]]
 // ============================================================

 // ============================================================
 // START - Skins anpassen für Artikel
 // Instructions:
 // 1) Add the page title and namespace exactly ("Name_space:Page_name") as new skin, use 
 //   UNDERSCORES *NOT* SPACES: ("Main_Page": "", should be first line). The next parameter 
 //   is optionally an existing "MediaWiki:Skin/"-prefixed file (in which case you can skip 
 //   step 2).
 // 2) Create MediaWiki:Skin/Name_Space:Page_Name.css and place reskin CSS content there.
 
 reskin = {
    "Main_Page": ""
 //Make sure all lines in this list except the last one have a comma after!
 }
 var skinName;
 
 if (reskin[wgPageName] != undefined && wgIsArticle == true) {
     skinName = (reskin[wgPageName].length > 0) ? reskin[wgPageName] : wgPageName + '.css';
     document.write('<style type="text/css">/*<![CDATA[*/ @import "/index.php?title=MediaWiki:Skin/' + skinName + '&action=raw&ctype=text/css"; /*]]>*/</style>');
 }
 
 // ENDE - Skins anpassen für Artikel
 // ============================================================
 
 // ============================================================
 // START - zeigt einen Besucherähler auf jeder Seite diese Wikis
     document.write ("<div style='position:fixed; right:2px; bottom:2px; display:block; height:20px; width:100px'>");

    document.write ("<a href='http://www.counter-kostenlos.net/' target='_blank'><img src='http://www.counter-kostenlos.net/counter.php?id=113805' alt='' border='0'></a>");

    document.write ("</div>");
 // ENDE - zeigt einen Besucherähler auf jeder Seite diese Wikis
 // ============================================================

// **************************************************
// Experimental javascript countdown timer (Splarka)
// Version 0.0.3
// Bearbeitet von Tomsen
// **************************************************
//
// Usage example:
//  <span class="countdown" style="display:none;">
//  Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years.
//  </span>
//  <span class="nocountdown">Javascript disabled.</span>

function updatetimer(i) {
  var now = new Date();
  var then = timers[i].eventdate;
  var diff = count=Math.floor((then.getTime()-now.getTime())/1000);

  // catch bad date strings
  if(isNaN(diff)) { 
    timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **' ;
    return;
  }

  // determine plus/minus
  if(diff<0) {
    diff = -diff;
    var tpm = 'seit ';
  } else {
    var tpm = 'in ';
  }

  // calcuate the diff
  var left = (diff%60) + ' Sekunden';
    diff=Math.floor(diff/60);
  if(diff > 0) left = (diff%60) + ' Minuten ' + left;
    diff=Math.floor(diff/60);
  if(diff > 0) left = (diff%24) + ' Stunden ' + left;
    diff=Math.floor(diff/24);
  if(diff > 0) left = diff + ' Tagen ' + left
  timers[i].firstChild.nodeValue = tpm + left;

  // a setInterval() is more efficient, but calling setTimeout()
  // makes errors break the script rather than infinitely recurse
  timeouts[i] = setTimeout('updatetimer(' + i + ')',1000);
}

function checktimers() {
  //hide 'nocountdown' and show 'countdown'
  var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
  for(var i in nocountdowns) nocountdowns[i].style.display = 'none'
  var countdowns = getElementsByClassName(document, 'span', 'countdown');
  for(var i in countdowns) countdowns[i].style.display = 'inline'

  //set up global objects timers and timeouts.
  timers = getElementsByClassName(document, 'span', 'countdowndate');  //global
  timeouts = new Array(); // generic holder for the timeouts, global
  if(timers.length == 0) return;
  for(var i in timers) {
    timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
    updatetimer(i);  //start it up
  }
}
addOnloadHook(checktimers);

// **************************************************
//  - end -  Experimental javascript countdown timer
// ************************************************** 

/** Voting *******************************
  * By [[User:Spang|Spang]]
  * Voting system
  * Add "ratings.disabled = true" without the quotes to your JS to disable
  * **Compressed to save space/bandwidth etc. Use http://javascript.about.com/library/blformat.htm to see formatted source
  */

 //<nowiki>
 ratings=new Object();ratings.getCallback={success:function(o){var j=YAHOO.tools.JSONParse(o.responseText);try{with(j.query.wkvoteart[wgArticleId]){if(typeof votesavg!=undefined&&votesavg){ratings.avgVote=(5>=votesavg>=1?Math.round(votesavg*10)/10:5);ratings.text[0]=('Durchschnitt: '+ratings.avgVote)}if(typeof(uservote)!='undefined'&&uservote){ratings.myVote=uservote;ratings.hasVoted=true}else{ratings.hasVoted=false}ratings.paint(0)}}catch(e){}},failure:function(o){ratings.out('connection failure :(')}};ratings.vote=function(a){if(wgUserName==null){window.location='/wiki/Special:Userlogin?returnto='+wgPageName;return}var b=(ratings.hasVoted==true?'update':'insert');ratings.get=YAHOO.util.Connect.asyncRequest('GET','/api.php?format=json&action='+b+'&list=wkvoteart&wkuservote=1&wkctime=5&wkpage='+wgArticleId+'&wkvote='+a,ratings.voteCallback,null);ratings.myVote=a;ratings.paint(a,'Bewerten...');ratings.votingInProgress=true};ratings.voteCallback={success:function(o){var j=YAHOO.tools.JSONParse(o.responseText);if(j.item.wkvoteart[3]!=undefined&&ratings.retried!=true){ratings.retried=true;ratings.out('failed, retrying...');ratings.get=YAHOO.util.Connect.asyncRequest('GET','/api.php?format=json&action=delete&list=wkvoteart&wkpage='+wgArticleId,ratings.retry,null);return};try{with(j.item.wkvoteart[0]==undefined?j.item.wkvoteart:j.item.wkvoteart[0]){ratings.hasVoted=true;ratings.myVote=vote;ratings.avgVote=Math.round(avgvote*10)/10;if(ratings.avgVote>5)ratings.avgVote=5}}catch(e){ratings.out('Error: '+e);ratings.votingInProgress=false;return}ratings.votingInProgress=false;ratings.out('Danke für die Bewertung!');ratings.text[0]=('Durchschnittliche Bewertung: '+ratings.avgVote);ratings.timeout=setTimeout('ratings.paint(0)',1000)},failure:function(o){ratings.votingInProgress=false;ratings.out('Fehlgeschlagen :(')}};ratings.retry={success:function(o){ratings.get=YAHOO.util.Connect.asyncRequest('GET','/api.php?format=json&action=insert&list=wkvoteart&wkuservote=1&wkctime=5&wkpage='+wgArticleId+'&wkvote='+ratings.myVote,ratings.voteCallback,null)},failure:function(o){ratings.out('error')}};ratings.out=function(m){document.getElementById('ratingMsg').innerHTML=m};ratings.paint=function(n,m){if(ratings.votingInProgress==true)return;YAHOO.util.Dom.setStyle(['vote-1','vote-2','vote-3','vote-4','vote-5'],'backgroundPosition','0 0');for(var l=1;l<=n;l++){YAHOO.util.Dom.setStyle('vote-'+l,'backgroundPosition','0 -34px')}if(n===0&&(ratings.myVote!=false||ratings.avgVote!=undefined)){var a=ratings.hasVoted==true?'0 -34px':'0 -17px';var b=ratings.hasVoted!=false?ratings.myVote:ratings.avgVote;for(var l=1;l<=b;l++){YAHOO.util.Dom.setStyle('vote-'+l,'backgroundPosition',a)}if(l-ratings.avgVote<1&&l<=5&&ratings.hasVoted!=true){var p=ratings.avgVote-(l-1);var q=0;switch(true){case 0<p&&p<=.2:q='-51px';break;case.2<p&&p<=.4:q='-68px';break;case.4<p&&p<=.6:q='-85px';break;case.6<p&&p<=.8:q='-102px';break;case.8<p&&p<1:q='-119px';break;default:};document.getElementById('vote-'+l).style.backgroundPosition='0px '+q}};if(wgUserName==null&&n!=0)ratings.out('Bitte melde dich an');else if(m==undefined)ratings.out(ratings.text[n]);else ratings.out(m)};ratings.setup=function(){if(wgIsArticle==false||ratings.disabled==true)return;var a=document.getElementById('p-tb');if(!a)return false;ratings.p=document.createElement('div');ratings.p.innerHTML='<h5>Bewertung</h5><div id="ratingBody" class="pBody"><div><ul id="ratingStars" onmouseout="ratings.paint(0);"><li id="vote-1" class="voteStar" onmouseover="ratings.paint(1)" onclick="ratings.vote(1);">&nbsp;1</li><li id="vote-2" class="voteStar" onmouseover="ratings.paint(2)" onclick="ratings.vote(2);"> 2</li><li id="vote-3" class="voteStar" onmouseover="ratings.paint(3)" onclick="ratings.vote(3);"> 3</li><li id="vote-4" class="voteStar" onmouseover="ratings.paint(4)" onclick="ratings.vote(4);"> 4</li><li id="vote-5" class="voteStar" onmouseover="ratings.paint(5)" onclick="ratings.vote(5);"> 5&nbsp;</li></ul></div><span id="ratingMsg">Bewerte diesen Artikel!</span></div>';ratings.p.className='portlet';ratings.p.id='p-rating';document.getElementById('column-one').insertBefore(ratings.p,a);ratings.text=new Array('Bewerte diesen Artikel','totaler Schrott!','gerade so erträglich','lesenswert','ziemlich gut','wombastisch!');ratings.get=YAHOO.util.Connect.asyncRequest('GET','/api.php?format=json&action=query&list=wkvoteart&wkuservote=1&wkctime=5&wkpage='+wgArticleId,ratings.getCallback,null)};
 
 YAHOO.util.Event.onContentReady('column-one', ratings.setup);

// ================================================================================
//
//MW1.18+ ??? -> jQuery-Klapp standardmässig aktiviert (class mw-collapsible)
//
// Ein- und Ausblenden per Javascript
 
// mit den folgenden Funktionen lässt sich ein div-Konstrukt in ein Einblende-Ausblende-Ding verwandeln
//
// Variante 1 (Klick irgendwo blendet ein oder aus):
//	<div class="klapp">
//		<div class="klapp_t">Titel im ausgeblendeten Zustand</div>
//		<div class="klapp_e">Titel im ausgeblendeten Zustand</div>
//		<div class="klapp_i">Einzublendender Inhalt</div>
//	</div>
//
// Variante 2 (ein- und ausblenden nur mit Links):
//	<div class="klapp_x">
//		<div class="klapp_t">Titel im ausgeblendeten Zustand mit <span class="klapp">Einblendelink</span></div>
//		<div class="klapp_e">Titel im ausgeblendeten Zustand mit <span class="klapp">Ausblendelink</span></div>
//		<div class="klapp_i">Einzublendender Inhalt</div>
//	</div>
 
function ausklapp( element )
{
	var klapp_i = null;
	var klapp_e = null;
	var klapp_t = null;
 
	for (i=0; i<element.childNodes.length; i++)
	{
		if( element.childNodes[i].nodeType == 1 )
		{
			if ( element.childNodes[i].className == "klapp_i" )
				klapp_i = element.childNodes[i];
			else if ( element.childNodes[i].className == "klapp_t" )
				klapp_t = element.childNodes[i];
			else if ( element.childNodes[i].className == "klapp_e" )
				klapp_e = element.childNodes[i];
		}
 
		if ( klapp_i && klapp_t && klapp_e )
			break;
	}
 
	if( klapp_i.style.display != "none")
	{
		klapp_i.style.display = "none";
		klapp_e.style.display = "none";
		klapp_t.style.display = "block";
 
	}
	else
	{
		klapp_i.style.display = "block";
		klapp_e.style.display = "block";
		klapp_t.style.display = "none";
	}
 
}
 
function getKlappDiv( obj )
{
	while ( obj && obj.parentNode && obj.className != "klapp_x" )
		obj = obj.parentNode;
 
	return obj;
}
 
// Event-Handler für alle class="klapp"-Objekte zuweisen
function makeAusklapp()
{
	// klapp-div-Rahmen
	var a = document.getElementsByTagName("div"); 
	for ( div=0; div<a.length; div++ )
	{
		if ( a[div].className == "klapp" )
		{
			a[div].onclick = function () { ausklapp(this);}
		}
	}
 
	// klapp-spans-Rahmen als Link-Ersatz
	var a = document.getElementsByTagName("span"); 
	for ( span=0; span<a.length; span++ )
	{
		if ( a[span].className == "klapp" )
		{
			a[span].onclick = function () { ausklapp(getKlappDiv( this ));}
		}
	}
 
	urlKlapp();
}
 
/*
 * liest aus der URL aus, ob ein bestimmtes Objekt ausgeklappt werden soll.
 * angegeben werden kann eine oder mehrere Objekt-Id:
 * index.php?title=Hauptseite&klapp=id1/id2/id3
 */
function urlKlapp()
{
	var arg = location.href;
	var reg = new RegExp(/[?&]klapp=(.*?)($|[?&])/);
	arg = arg.match(reg);
	if( arg == null )
		return;
	arg = arg[0].replace(reg,"$1");
	if( arg == "" )
		return;
	arg = arg.split("/");
 
	for(var i=0; i<arg.length; i++)
	{
		try
		{
			ausklapp(document.getElementById(arg[i]));
		}
		catch(e)
		{
		}
	}
 
}
 
// Nach dem Laden des Fensters folgendes Ausführen:
addOnloadHook(makeAusklapp);

 /* jQuery + SpielScripte auf Uncyclopedia:JQuery-Spielwiese nachladen */

 if (wgPageName == "Uncyclopedia:JQuery-Spielwiese") {
   //importScript("http://de.uncyclopedia.org/skins/common/jquery.min.js");
   importScript("Uncyclopedia:JQuery-Spielwiese.js");
   importStylesheet("Uncyclopedia:JQuery-Spielwiese.css");
 }

// </pre>