MediaWiki:Common.js

//== hilfsfunktionen ========================================= /* Variablen füllen, damit's im Code etwas übersichtlicher bleibt */ var Seitenname  = mw.config.get( 'wgPageName' ); var NamensraumNr = mw.config.get( 'wgNamespaceNumber' ); var Aktion      = mw.config.get( 'wgAction' ); var Kamelname   = mw.config.get( 'wgUserName' ); /* nochn paar ehemalige globals für Dateihochladen... */ var wgScript = mw.config.get( 'wgScript' ); var wgAjaxUploadDestCheck = mw.config.get( 'wgAjaxUploadDestCheck' ); var wgAjaxLicensePreview = mw.config.get( 'wgAjaxLicensePreview' ); var wgUploadSourceIds = mw.config.get( 'wgUploadSourceIds' ); /* werden hier benutzt die vars */ var wgUserName = mw.config.get( 'wgUserName' ); var wgUserGroups = mw.config.get( 'wgUserGroups' ); var wgTitle = mw.config.get( 'wgTitle' ); var wgIsArticle = mw.config.get( 'wgIsArticle ' ); var wgCanonicalNamespace = mw.config.get( 'wgCanonicalNamespace' ); var wgScriptPath = mw.config.get( 'wgScriptPath' ); /*codeEditor*/ var wgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' ); /* CategoryTree-Extension */ var wgServer = mw.config.get( 'wgServer' ); /* Wikikontrolle */ var stylepath = mw.config.get( 'stylepath' );

/* CSS per ResourceLoader nachladen */ function importCSS(title) { mw.loader.load( wgServer + wgScriptPath + '/index.php?title=' +               encodeURIComponent(title) + '&action=raw&ctype=text/css&smaxage=21600&maxage=86400&*', 'text/css', 'true' ); }

/* JS per ResourceLoader nachladen */

function importJS(title) { mw.loader.load( wgServer + wgScriptPath + '/index.php?title=' +                encodeURIComponent(title) + '&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400&*', 'text/javascript' ); }

//== Konstanten ===============================================

function CSS(page) {	return {type: "CSS", page: page}; }

function JS(page) {	return {type: "JS", page: page}; }

var defaultCSS = CSS(null); var defaultJS = JS(null);

/* Zum "Übersetzen" von Sidebar-Einträgen und Menüs bitte das hier verwenden! */ var libTranslate = JS("MediaWiki:Skin/translate.js");

//== Zeug laden ===============================================

// für "MediaWiki:Skin/Namensraum:Seitenname.css" defaultCSS verwenden // für "MediaWiki:Skin/Namensraum:Seitenname.js" defaultJS verwenden // für andere Seiten JS("Seite") oder CSS("Seite") verwenden

var loadStuff = { // Artikel "Arschkarte":                    [ CSS("MediaWiki:Skin/Projekt:Ka-Mel-Oh!.css") ], //TODO: mal in die Kartenvorlagen reinflanschen "Artikelbaukasten":              [             defaultJS ], "Bewegung":                      [             defaultJS ], "DIR":                           [ defaultCSS ], "Gefälle":                       [ defaultCSS ], "Krumm, schief und wackelig":    [ defaultCSS ], "Gelbsucht":                     [             defaultJS ], "Latein":                        [             JS("MediaWiki:Skin/pagina_latina.js") ,libTranslate ], "Lorem Ipsum":                   [             JS("MediaWiki:Skin/pagina_latina.js") ,libTranslate ], "Pseudolink":                    [ defaultCSS            ], "Taschenlampe":                  [ defaultCSS, defaultJS ], "Wirklich leere Seite":          [ defaultCSS            ], "Roter Knopf/Gedrückt":          [ defaultCSS            ],

// Kamelopedia "Commons:Kugel":                 [ defaultCSS, defaultJS ], "Kamelopedia:Kalender":          [ defaultCSS            ], "Kamelopedia:Harmoniehütte":     [ defaultCSS            ], "Kamelopedia:Zeitreisemaschine": [             defaultJS,  JS("Kamel:J*/lib/async.js"), JS("Kamel:J*/lib/wiki.js") ],

// Projekt "Projekt:Ka-Mel-Oh!": [ defaultCSS           ], "Projekt:Bürokratenspiel/9. Runde/Organe/Geheimdienst": [ JS("MediaWiki:Skin/Projekt:BS9Geheimdienst.js") ], "Projekt:Adventure/176": [ JS("MediaWiki:Skin/Projekt:Adventure/176.js") ], "Projekt:Adventure/459": [ JS("MediaWiki:Skin/Projekt:Adventure/459.js") ], // Forum "Forum:Kamelopedia-Design-Wettbewerb": [ defaultJS           ], "Projekt:Adventure 2.0": [ CSS("MediaWiki:Skin/Projekt:Adventure2.css"), JS("MediaWiki:Skin/JQuery.Ui.js") , JS("MediaWiki:Skin/Projekt:Adventure2/lib.js") , JS("MediaWiki:Skin/Projekt:Adventure2/parser.js") , JS("MediaWiki:Skin/Projekt:Adventure2/init.js")], // Spezial "Spezial:Hochladen":             [ defaultCSS, defaultJS ], "Spezial:RatedPages":            [             defaultJS ], "Spezial:KamelBox":              [ defaultCSS                       ], "Spezial:Buschtrommel":          [JS("MediaWiki:Skin/Trommel.js")],

// Frage "Frage:Ich verschenke eine Million Euro, wer sie haben will muss sich nur melden und sagen, warum er oder sie das Geld haben will.": [ defaultJS ],

// Echzeit-Letzte-Änderungen //"Kamelopedia:RTRC":              [JS("MediaWiki:Skin/Kamelopedia:RTRC.js")], "Kamelopedia:Aktive Seiten":     [             defaultJS ], "Kamelopedia:Statistik":         [ defaultCSS, defaultJS ], "News:Aktuelle ErregnisseS":     [CSS("MediaWiki:Skin/KameloExpress.css")],

"": [] // damit oben überall Kommata stehen bleiben können }; // var pageName = [Seitenname.replace(/_/g, " ")]; // var stuffOnThisPage = loadStuff[pageName]; if (stuffOnThisPage == null) stuffOnThisPage = []; for (var i = 0; i < stuffOnThisPage.length; i++) {   var item = stuffOnThisPage[i]; if (item.type == "CSS") {       if (item.page == null) item.page = "MediaWiki:Skin/"+pageName+".css"; importCSS(item.page); }   else if (item.type == "JS") {       if (item.page == null) item.page = "MediaWiki:Skin/"+pageName+".js"; importJS(item.page); } }

// lade Hilfe:Edittools.js, wenn Seite bearbeitet wird (und neue toolbar aus) // if ((Aktion == 'edit' || Aktion == 'submit') ) { importCSS("MediaWiki:Skin/Edittools.css"); //MW1.17 -> evtl. erst in Hilfe:Edittools.js anderen Krempel per resourceloader nachladen lassen importJS("Hilfe:Edittools.js"); } //================================================================================ // Bild-Box-Lizenz-Gedöns für Datei-Seitenbearbeitung // if ((NamensraumNr == 6 ) && (Aktion == 'edit' || Aktion == 'submit')) { importCSS('MediaWiki:Skin/Spezial:Hochladen.css'); importJS('MediaWiki:Skin/Spezial:Hochladen.js'); }

// Kamelomedia Commons // if (NamensraumNr == 110 || NamensraumNr == 111 || Seitenname.indexOf ("Kategorie:Commons:") != -1 || Seitenname.indexOf ("Kategorie:Dateien_nach_Motiv") != -1){ importCSS("MediaWiki:Skin/Commons.css"); }

// KameloBooks // if (NamensraumNr == 112 || NamensraumNr == 113){ importCSS("MediaWiki:Skin/KameloBooks.css"); }

// Forum // if (NamensraumNr == 102) { importCSS("MediaWiki:Skin/Forum:Kamelopedia.css"); }

// Tag-Redirects // if (Seitenname.indexOf ("Kategorie:Commons:") != -1 ){ importJS("Kamel:J*/lib/nulledit.js"); var nulledit_count = 0; function ne_report (text,p) {       nulledit_count += p;        if(nulledit_count == 0) jQuery("#tag_redirect_info").text("Fertig. Bitte lade die Seite neu und schau nach, ob noch Dateien übrig geblieben sind."); else jQuery("#tag_redirect_info").text(text + " – noch " + nulledit_count + " Nulledits"); }   jQuery(document).ready( function  {        jQuery("#tag_redirect_go").bind("click",function  { categoryNulledit(Seitenname, ne_report); });   }); }

//KameloNews // if (NamensraumNr == 108 && (Aktion == 'view' || Aktion == 'submit') && wgTitle != "Aktuelle ErregnisseS"){ importCSS("MediaWiki:Skin/KameloNews.css"); }

// Feedback if (NamensraumNr % 2 == 0 && NamensraumNr != 2 && NamensraumNr != 102 && NamensraumNr != 104 && Aktion == "view" ) { //importJS("MediaWiki:Skin/Feedbackknopf.js"); /* Ultrakurzfeedbackdings */

function fb_error_callback { jQuery('#mw-js-message').html("Bei der Zurückfütterung ist ein Fehler aufgetreten!"); jQuery('#mw-js-message').slideDown('fast'); }

jQuery(document).ready(function{

jQuery("#p-namespaces ul").append(" F/b ");

jQuery("body").append(" "); jQuery("body").append(" Ultrakurzfeedback abgeben Füttere den Autor zurück: Text oder Bewertung oder beides.  (In der Vorschau werden die Schlangenlinien noch nicht ersetzt, später auf der Seite schon.)   Kurzbewertung: ohne Kurzbewertung 0 Höcker –– grottenschlecht 1 Höcker –– schwach 2 Höcker –– neutrales Mittelfeld <option value='3'>3 Höcker –– gut <option value='4'>4 Höcker –– sehr gut <option value='5'>5 Höcker –– Spitzenbeitrag  <input type='checkbox' id='fb_autosign' name='fb_autosign' checked='checked' style='display:none;'><label for='fb_autosign' style='color:#777;font-size:0.8em;'>Dein Feedback wird automatisch unterschrieben! <input type='submit' value='Abschicken' /><input id='fb_preview' type='button' value='Vorschau'><input id='fb_reset' type='reset' value='abbrechen'> ");

jQuery("#fb_reset").click( function {  jQuery("#f_b_background, #f_b").hide; });

jQuery("#fb_preview").click( function {  jQuery.ajax({ url: "/api.php", type: "POST", data: { action: "parse", text: "\n", format: "xml" },   success: function (tr) { jQuery("#fb_preview_frame").show; jQuery("#fb_preview_area").html(jQuery(tr).find("text").text); jQuery("#f_b").css("height","350px"); jQuery("#f_b").css("margin-top","-190px"); jQuery("#f_b").css("width","540px"); jQuery("#f_b").css("margin-left","-195px"); } }); });

jQuery("#fb_form").submit( function {  var wgFormattedNamespaces = mw.config.get( 'wgFormattedNamespaces' );  var wgNamespaceNumber = mw.config.get( 'wgNamespaceNumber' );  var wgTitle = mw.config.get( 'wgTitle' );

if (jQuery("#fb_form textarea").val+jQuery("#fb_form select").val == "") {     alert("Eins von beidem, Text oder Bewertung, solltest du schon mindestens ausfüllen!"); return false; }

window.fb_data = { url: "/api.php", data: { action: "edit", title: wgFormattedNamespaces[wgNamespaceNumber+1]+":"+wgTitle, summary: "Kurzfeedback", appendtext: "\n" },   success: function  { jQuery("#f_b_background, #f_b").hide; jQuery("#ca-feedback").addClass("done"); jQuery('#mw-js-message').html("Die Zurückfütterung war erfolgreich!"); jQuery('#mw-js-message').slideDown('fast'); },   error: fb_error_callback, type: 'POST' }; jQuery.ajax({    cache: false,    url: "/api.php",    data: {      format: "xml",      action: "query",      prop: "info",      intoken: "edit",      titles: wgFormattedNamespaces[wgNamespaceNumber+1]+":"+wgTitle    },    type: 'GET',    success: function(tr) {      var token = jQuery(tr).find("api query pages page").attr('edittoken');      fb_data.data.token = token;      var section_data = jQuery.ajax({ async: false, url: "/api.php", data: { action: "parse", prop: "sections", page: fb_data.data.title, format: "xml" },         error: fb_error_callback }).responseXML;     fb_data.data.section = jQuery(section_data).find('s[line="Kurzfeedback"]').index + 1;      if (fb_data.data.section == 0)      {          fb_data.data.section = "new";          fb_data.data.text = fb_data.data.appendtext;          delete fb_data.data.appendtext;      }

jQuery.ajax(fb_data); },   error: fb_error_callback }); return false; } );

jQuery("#ca-feedback").click(function {    jQuery("#f_b_background, #f_b").show;    jQuery("#fb_form textarea").focus; });

});	}

// Tausche Special:Specialpages gegen Kamelopedia:Spezialseiten jQuery(document).ready(function{   document.getElementById("t-specialpages").innerHTML = '<a href="' + wgScriptPath +'/index.php/Kamelopedia:Spezialseiten">Spezialitäten</a>'; });

//Gedudel auf Aufzug und Gedudel und Kamelopedia:WiKa-Sekte if (Seitenname == 'Aufzug' || Seitenname == 'Gedudel' || Seitenname == 'Kamelopedia:WiKa-Sekte' ) { document.write('<embed src="' + wgServer +'/images/c/cb/Aufzug.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); }

//Gedudel auf Mausetot if (Seitenname == 'Mausetot' ) { document.write('<embed src="' + wgServer +'/images/a/a3/Fuchs.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); }

//Popupblocker if (Seitenname == 'Popupblocker') { alert("Ihr Popupblocker ist aktiviert"); }

// CSS für Dateinamensraum und Motive (Tags) werden zu Links if ( NamensraumNr == 6 || NamensraumNr == 10) { importCSS("MediaWiki:Skin/Datei.css"); }

// Skin für Archiv if (NamensraumNr == 104 || NamensraumNr == 105) { importCSS("MediaWiki:Skin/Archiv.css"); }

// Skin und script für Kamelionary if (NamensraumNr == 106 || NamensraumNr == 107) { importCSS("MediaWiki:Skin/Kamelionary.css"); importJS("MediaWiki:Skin/Kamelionary.js"); }

// Skin für Frage-Namensraum if (NamensraumNr == 114 || NamensraumNr == 115 || (Seitenname == "Spezial:Suche" && location.href.indexOf("Suchwort&ns114=1&fulltext") > 0)) { importCSS("MediaWiki:Skin/Frage.css"); importJS("MediaWiki:Skin/Frage.js"); } //================================================================================ // Ka-Mel-Oh! CSS IMMER nachladen, damit z.B. auch Arschkarte nicht doof aussieht // oder doch nicht, kostet nämlich auch ressourcen! // importCSS("MediaWiki:Skin/Projekt:Ka-Mel-Oh!.css");

// Der doofe server stürzt dauernd ab, wenn das script da unten läuft ... if (Seitenname == "Kinderporno" || Seitenname == "Server_Error") { //MW1.17+ ? window.onload... window.onload = function { if (!document.getElementById("ServerError"))	return; document.getElementsByTagName("body")[0].style.backgroundColor = "#ffffff"; document.getElementsByTagName("body")[0].style.backgroundImage = "none"; document.getElementsByTagName("body")[0].style.fontSize = "12px"; document.getElementsByTagName("body")[0].style.padding = "10px"; document.getElementsByTagName("body")[0].innerHTML = document.getElementById("ServerError").innerHTML; } }

// ================================================================================ // //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_t">Titel im ausgeblendeten Zustand //		<div class="klapp_e">Titel im ausgeblendeten Zustand //		<div class="klapp_i">Einzublendender Inhalt //	 // // Variante 2 (ein- und ausblenden nur mit Links): //	<div class="klapp_x"> //		<div class="klapp_t">Titel im ausgeblendeten Zustand mit Einblendelink //		<div class="klapp_e">Titel im ausgeblendeten Zustand mit Ausblendelink //		<div class="klapp_i">Einzublendender Inhalt //

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: jQuery(document).ready(makeAusklapp);

// ================================================================================

// altes dragobject für die Seiten, wo benutzt, ansonsten raus (alles mit class='jstest' ist dragbar) if (Seitenname == 'Projekt:Gummistiefel' ||        Seitenname == 'Kamel_Diskussion:AnnaLog/Archiv' ||         Seitenname == 'Windowspedia' ||         Seitenname == 'Gut_versteckt' ||         Seitenname == 'B-Wegung' ||         Seitenname == 'Wortspiel' ||         Seitenname == 'Kamel:Atreju/Spielplatz' ||         Seitenname == 'Kamel:Pille' ||         Seitenname == 'Bewegliche_Feiertage' ||        Seitenname == 'Kamel:J*/Ka-Mel-Oh/Testgelände' ||        Seitenname == 'Fallstudie' ||        Seitenname == 'Projekt_Diskussion:Gummistiefel') { mw.loader.using( ['jquery.ui.draggable'], function{ jQuery(document).ready(function{ jQuery( ".jstest" ).draggable({ stack: ".jstest" }); }); }); }

// ================================================================================ // username template

/** * Username replace function (Vorlage:USERNAME) * Inserts user name into * By Splarka */ jQuery(document).ready(function{   if (typeof(disableUsernameReplace) != 'undefined' && disableUsernameReplace) return;    if (!document.getElementById('pt-userpage'))    return;    var spans = document.getElementsByTagName("span");    for (var i=0; i<spans.length; i++) {        var span    = spans[i];        if (span.getAttribute('id') == "insertusername") {            span.innerHTML  = wgUserName;        }    } });

// ================================================================================ // FDP-Version & Zitierhilfe, nur mal so zum Spass... if (NamensraumNr == 0 || NamensraumNr == 106) { jQuery(document).ready(function(addFDPVersion){  var aZit = document.createElement("a");   aZit.title = "Seite zitieren";   aZit.href = mw.config.get( 'wgServer' ) + "/index.php/" + "Hilfe:Zitierhilfe";   aZit.appendChild(document.createTextNode("Seite zitieren"));

var aPDF = document.createElement("a"); aPDF.title = "FDP-Version"; aPDF.href = mw.config.get( 'wgServer' ) + "/index.php/" + "PDF?klapp=pdfgen"; aPDF.appendChild(document.createTextNode("FDP-Version"));

var LiZit = document.createElement("li"); LiZit.style.whiteSpace = "nowrap"; LiZit.id = "x-zitieren"; LiZit.appendChild(aZit);

var LiPDF = document.createElement("li"); LiPDF.style.whiteSpace = "nowrap"; LiPDF.id = "x-pdf"; LiPDF.appendChild(aPDF);

var ToolboxUl = document.getElementById("p-tb").getElementsByTagName("ul"); ToolboxUl[0].appendChild(LiPDF); ToolboxUl[0].appendChild(LiZit); }) };

/* Artikel-Review-Autovervollständigungs-script */ if (NamensraumNr == 1 && Aktion == 'edit' && window.location.href.split('&')[2] == 'articlereview=true') { var hoecker = ''; templateCode = ''

window.onload = function { var originalSource = document.getElementById('wpTextbox1').value; var newSource     = originalSource.replace(/\{\{Artikeltest\}\}/g, templateCode); document.getElementById('wpTextbox1').value = newSource; } } // externe links in neuem browser Fenster öffnen (nicht bei interwikis) function externalWindow{ if ((typeof(disableLinkWindow) != 'undefined' && disableLinkWindow) || (!document.getElementById ('bodyContent'))) { return; }   var allinks = document.getElementById('bodyContent').getElementsByTagName('a'); for(var i = 0; i < allinks.length; i++) { if(allinks[i].href.indexOf('' + wgServer +'/') == -1 && allinks[i].parentNode.className.indexOf('noblank') == -1){ allinks[i].target = '_blank'; }   } } jQuery(document).ready(externalWindow);

//experimenteller HTML5-Player für die Datei-Seite // jQuery(document).ready(function{  if ((mw.config.get( 'wgCanonicalNamespace' )=="File") && (Aktion == 'view') && (wgTitle.indexOf('.og') != -1) &&(!$.browser.msie)) {     var isogg = true;     var mtyp = wgTitle.substr((wgTitle.length)-3, 3);     var $media = jQuery('#file.fullImageLink:first');     var $mediaLink = $media.find('a');     switch (mtyp) {        case "ogg":              var $mime = jQuery(' ').attr('src', $mediaLink.attr('href')).wrap(' ');              break;        case "oga":              var $mime = jQuery(' ').attr('src', $mediaLink.attr('href')).wrap(' ');              break;        case "ogv":              var $mime = jQuery(' ').attr('src', $mediaLink.attr('href')).wrap(' ');              break;           default:        isogg = false;        break;    }     if (isogg)  {        var $info = jQuery(' ').html('Der Player für diese Datei wird nur in oggfreundlichen und HTML5fähigen Browsern angezeigt <a href="' + wgServer + '/index.php/Forum:Video-/_Audio-Player_(aktuelle_Infos_zu_OGG-Dateien)">(Info)</a>. Alternativ die Datei halt herunterladen (Link direkt hier drunter)');       $media.html($mime).append($info);     }   } });

/* Funktionen zur Zeitsteuerung */ function dateFromServer { return new Date(jQuery(jQuery(jQuery.ajax({ url: "/api.php", data: {action:"parse", format:"xml", text:"", prop:"text"}, dataType: "xml", async: false, timeout: 300 }).responseXML).find("api parse text").text).text.replace(/[\s\n]/g, "").replace(/_/g," ")); }

function dateFromClient { return new Date; }

// Zeit vom wahlweise Server oder vom Client holen

var now = dateFromClient;

// oben: hohe Priorität, unten: niedrige Priorität // Parameter: aktuelle Zeit als Date Objekt // Rückgabewert: true zurückgeben, um weitere Aktionen zu unterbinden, sonst false // Achtung: Monate werden ab 0 gezählt, Monatstage ab 1 var dateSpecificActions = [ // cAPSLOCK dAY //function (d) { //	if ((d.getMonth == 9 && d.getDate == 22) ||	//	   (d.getMonth ==  5 && d.getDate == 28) ) //	{	//		importJS("MediaWiki:Skin/dateSpecific/CAPSLOCK.js") //		return true; //	}	//	return false; //} ];

for (var i=0; i<dateSpecificActions.length; i++) {   if (dateSpecificActions[i](now)) break; }

/* Twütter Sönderzeichen-Füx vön Jüttstürnchen */ //MW1.17 (raus, Twitter funzte eh nicht) if (Seitenname=="Spezial:Badtitle" && document.referrer != null && (document.referrer.indexOf("twitter.com") != -1 || document.referrer.indexOf("Forum:Twittern") != -1)) {   location.href = unescape(location.href); }

// Vorlage:DISPLAYTITLE jQuery(document).ready(function {  var newTitle = jQuery("#title_replacement");  if (newTitle.length && newTitle.length > 0)  {    jQuery("#firstHeading").text(newTitle.text);  } });

/* Warnung für Seite Kamelopedia:Das größte Schweinekamel */ if (Seitenname == "Kamelopedia:Das_größte_Schweinekamel" && (Aktion == "edit" || Aktion =="submit")) { jQuery(document).ready(function(addSchwein){  var tSchwein = document.createTextNode("Achtung, diese Seite ist purer Quatsch! Niemand hält dich für ein Schweinekamel. Per JavaScript bekommt jedes angemeldete Kamel seinen eigenen Namen auf dieser Seite angezeigt. Also nicht aufregen ;)"); var DivSchwein = document.createElement("div"); DivSchwein.style.fontSize = "130%"; DivSchwein.style.fontWeight = "bold"; DivSchwein.style.backgroundColor = "#FFD800"; DivSchwein.style.padding = "15px"; DivSchwein.appendChild(tSchwein); var warn = document.getElementById("firstHeading"); warn.appendChild(DivSchwein); }); }

/* Skripte für autoconfirmed */ /* wegen Latenzen direkt hier rein, statt nachzuladen */ if ( jQuery.inArray( "autoconfirmed", wgUserGroups ) != -1 ) {

/* MediaWiki:Seitenempfehlung.js */ /* * Version 2011-05-15.1 sollte halbwegs fehlerfrei funktionieren */

var hwList; // HatWas-Liste var entry; var subpath = '/Empfehlung'; // Name bzw. Pfad der Kamelbau-Unterseiten

// Es gibt KEINE Regeln bzgl. der persönlichen Empfehlungen, ein automatischer Daumen taucht jedoch nur auf // Seiten auf, wo es auch potentiell lesenswertes Zeug geben tut // // HINWEIS an ---> DUFO < // FINGER WEG VON DEN NAMENSRÄUMEN, wehe, du nimmst da was raus // var hwNS = (typeof(hwNS) == 'object') ? hwNS : new Array ("", "File", "Kamelionary", "Kamelobooks", "News", "Projekt", "Frage"); // hierhin die Namensräume, wo der Daumen auftauchen soll (Achtung! canonical namespaces!); // Empfehlungsliste auslesen function readHwList(username, action) { jQuery.ajax({   url:     mw.config.get( 'wgScript' ),     data:    { title: "Kamel:" + username + subpath, action: "raw" },    cache:   false,    // Noch keine Empfehlungs-Seite angelegt    error:   function     {         hwList = new Array;         switch (action) {          case "add":            adHW;            break;          case "remove":            removeHW;            break;        }    },    // Empfehlungs-Seite auslesen    success: function(data) {         hwList = data.match(/\[\[.*\]\]/g);        switch (action) {          case "add":            adHW;            break;          case "remove":            removeHW;            break;        }    }  }); }

// Seite zur Empfehlungsliste hinzufügen function adHW { // edit-Token holen jQuery.ajax({   url:     '/api.php',     data:    { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" },    cache:   false,    success: function(data) {       var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken');      hwList.push(entry);          // Aktuelle Seite dazu      hwList = sortHW(hwList); // Sortieren      // Empfehlungsliste bearbeiten      jQuery.ajax({ url:    '/api.php', type:   'POST', cache:  false, data:   { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "+ " + entry, token: edittoken }, success: function(data) { var text = ' Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde zu deinen <a href="'           + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> hinzugefügt. ';         jQuery('#mw-js-message').html(text); jQuery('#mw-js-message').slideDown('fast'); }     })    }  }); }

function removeHW { // edit-Token holen jQuery.ajax({   url:     '/api.php',     data:    { action: "query", prop: "info", intoken: "edit", titles: "Kamel:" + Kamelname + subpath, format: "xml" },    cache:   false,    success: function(data) {       var edittoken = data.getElementsByTagName('page')[0].getAttribute('edittoken');      var i = jQuery.inArray(entry, hwList);      delete hwList[i];            // Aktuelle Seite wech      hwList = sortHW(hwList); // Sortieren      // Empfehlungsliste bearbeiten      jQuery.ajax({ url:    '/api.php', type:   'POST', cache:  false, data:   { action: "edit", title: "Kamel:" + Kamelname + subpath, text: "* " + hwList.join("\n* "), summary: "- " + entry, token: edittoken }, success: function(data) { var text = ' Die Seite „' + Seitenname.replace(/_/g, ' ') + '“ wurde von deinen <a href="'           + mw.config.get( 'wgScript' ) + '/Kamel:' + Kamelname + subpath + '">Empfehlungen</a> entfernt. ';         jQuery('#mw-js-message').html(text); jQuery('#mw-js-message').slideDown('fast'); }     })    }  }); }

function showHW(username) { /* soll später html-Code für Empfehlungslisten ausspucken */ }

// doppelte & leere Einträge entfernen + alphabetisch sortieren function sortHW(list) { var sorted = new Array; for(var i=0; i<list.length; i++){ for(var j=i+1; j<list.length; j++){ if (list[i] == list[j]) j = ++i; }   if (typeof(list[i]) != 'undefined') sorted.push(list[i]); } return sorted.sort; }

// Das ganze starten jQuery(document).ready(function { //if(typeof(disableGaGA) != 'undefined' && disableGaGA) return;  if(jQuery.inArray(mw.config.get( 'wgCanonicalNamespace' ), hwNS) != -1 && Aktion == "view") {    entry = (mw.config.get( 'wgCanonicalNamespace' ) == "File") ? "" + Seitenname.replace(/_/g, ' ') + ""                                              : "" + Seitenname.replace(/_/g, ' ') + "";    jQuery('#p-views ul').append(' <a href="#"></a> </li>');    jQuery('#p-views li:last').ajaxComplete(function { if(jQuery.inArray(entry, hwList) != -1) { jQuery(this).attr('id', 'ca-unhw'); jQuery('#ca-unhw a').html('Entfehlen'); jQuery('#ca-unhw a').attr('title', 'Seite nicht mehr empfehlen'); jQuery('#ca-unhw a').unbind('click'); jQuery('#ca-unhw a').bind('click', function { readHwList(Kamelname, 'remove') }); } else { jQuery(this).attr('id', 'ca-hw'); jQuery('#ca-hw a').html('Empfehlen'); jQuery('#ca-hw a').attr('title', 'Seite empfehlen'); jQuery('#ca-hw a').unbind('click'); jQuery('#ca-hw a').bind('click', function { readHwList(Kamelname, 'add') }); }   });    readHwList(Kamelname, false);  } })

/* MediaWiki:Group-autoconfirmed.js */

/* Hinweis-text auf Empfehlungsseiten der Kamele */ if (NamensraumNr == 2 && Seitenname.indexOf ("/Empfehlung") != -1) { jQuery(document).ready(function{      var hinweis = 'Einträge auf dieser Liste werden normalerweise über den Empfehlungsdaumen hinzugefügt bzw. entfernt. ';      hinweis += 'Wenn du diese Liste per Huf bearbeitest, beachte bitte folgendes: ';      hinweis += 'Außer einer reinen Liste von Seitenlinks darf auf dieser Seite kein weiterer Zauber (Design, sonstige Texte etc.) stehen, damit die Listen aller Kamele einfacher ausgewertet werden können. ';      hinweis += 'Einträge sind ausschließlich im Format vorzunehmen (bei Dateien zusätzlich einen Doppelpunkt vor Datei, also * Datei:Bild.jpg
 * Seite

';     hinweis += '<b>Siehe auch: <a href="/index.php?title=Kamelopedia:Empfehlungssystem" title="Kamelopedia:Empfehlungssystem">Kamelopedia-Empfehlungssystem</a>'; // DIV basteln var DivHinweis = document.createElement("div"); DivHinweis.style.backgroundColor = "#D1ECFF"; DivHinweis.style.fontSize = "13px"; DivHinweis.style.padding = "15px"; DivHinweis.style.marginTop = "30px"; DivHinweis.innerHTML = hinweis; // an ID firstHeading dranflanschen if (Aktion == "edit" || Aktion =="submit") { jQuery('#editform').before(DivHinweis); } else { jQuery('#catlinks').before(DivHinweis); }   })    }

/* Link zur eigenen Liste oben zm persönlichen Kram packen */ mw.util.addPortletLink('p-personal', 'http://kamelopedia.net/index.php/Spezial:Mypage/Empfehlung', 'Empfehlungen', 'pt-empfehlung', 'meine Empfehlungen', '', '#pt-watchlist')

}; // end autoconfirmed