MediaWiki:Common.js: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
WiMu (Diskussion | Beiträge) K (vorübergehend deaktiviert s.Kamel Diskussion:Nachteule) |
(mal testweise allgemeinen code hierhin ausgelagert (bitte nicht gleich meckern, wenn der cache probleme macht)) |
||
| Zeile 1: | Zeile 1: | ||
| − | /* | + | //============================================================ |
| + | // hilfsfunktionen | ||
| + | |||
| + | /** CSS einbinden */ | ||
| + | function addCSS(title) { | ||
| + | document.write( | ||
| + | '<style type="text/css">/*<![CDATA[*/ @import "/index.php?title=' + | ||
| + | encodeURIComponent(title) + '&action=raw&ctype=text/css"; /*]]>*/</style>'); | ||
| + | } | ||
| + | |||
| + | /** JS einbinden */ | ||
| + | function addJS(title) { | ||
| + | document.write( | ||
| + | '<script type="text/javascript" src="/index.php?title=' + | ||
| + | encodeURIComponent(title) + '&action=raw&ctype=text/javascript"></script>'); | ||
| + | } | ||
| + | |||
| + | // anzeigen & verbergen (siehe bald Diskussionsseite) | ||
| + | function einaus (inhalt, einblenden, ausblenden) { | ||
| + | var thisLevel = document.getElementById(inhalt); | ||
| + | var otherLevel = document.getElementById(einblenden); | ||
| + | var linkLevel = document.getElementById(ausblenden); | ||
| + | if (thisLevel.style.display == 'none') { | ||
| + | thisLevel.style.display = 'block'; | ||
| + | otherLevel.style.display = 'none'; | ||
| + | linkLevel.style.display = 'inline'; | ||
| + | } else { | ||
| + | thisLevel.style.display = 'none'; | ||
| + | otherLevel.style.display = 'inline'; | ||
| + | linkLevel.style.display = 'none'; | ||
| + | } | ||
| + | } | ||
| − | / | + | //================================================================================ |
| − | + | // dragobject wird in [[Projekt:Gummistiefel]] verwendet | |
| + | // alles mit class='jstest' ist dragbar | ||
| + | |||
| + | /*********************************************** | ||
| + | * Drag and Drop Script: © Dynamic Drive (http://www.dynamicdrive.com) | ||
| + | * This notice MUST stay intact for legal use | ||
| + | * Visit http://www.dynamicdrive.com/ for this script and 100s more. | ||
| + | ***********************************************/ | ||
| + | |||
| + | var dragobject={ | ||
| + | z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0, | ||
| + | initialize:function(){ | ||
| + | document.onmousedown=this.drag | ||
| + | document.onmouseup=function(){this.dragapproved=0} | ||
| + | }, | ||
| + | drag:function(e){ | ||
| + | var evtobj=window.event? window.event : e | ||
| + | this.targetobj=window.event? event.srcElement : e.target | ||
| + | if (this.targetobj.className=="jstest"){ | ||
| + | this.dragapproved=1 | ||
| + | if (isNaN(parseInt(this.targetobj.style.left))){this.targetobj.style.left=0} | ||
| + | if (isNaN(parseInt(this.targetobj.style.top))){this.targetobj.style.top=0} | ||
| + | this.offsetx=parseInt(this.targetobj.style.left) | ||
| + | this.offsety=parseInt(this.targetobj.style.top) | ||
| + | this.x=evtobj.clientX | ||
| + | this.y=evtobj.clientY | ||
| + | if (evtobj.preventDefault) | ||
| + | evtobj.preventDefault() | ||
| + | document.onmousemove=dragobject.moveit | ||
| + | } | ||
| + | }, | ||
| + | moveit:function(e){ | ||
| + | var evtobj=window.event? window.event : e | ||
| + | if (this.dragapproved==1){ | ||
| + | this.targetobj.style.left=this.offsetx+evtobj.clientX-this.x+"px" | ||
| + | this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px" | ||
| + | return false | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | dragobject.initialize(); | ||
| − | + | //================================================================================== | |
| + | // Prototype | ||
| + | addJS("MediaWiki:Prototype.js"); | ||
| − | function | + | //================================================================================ |
| − | var | + | // lade [[Hilfe:Edittools.js]], wenn Seite bearbeitet wird |
| − | document. | + | |
| − | } */ | + | if ( (wgAction == 'edit' || wgAction == 'submit') && wgCanonicalNamespace == "File" ) { |
| + | addCSS("MediaWiki:Skin/Spezial:Hochladen.css"); | ||
| + | addJS("MediaWiki:Skin/Spezial:Hochladen.js"); | ||
| + | } | ||
| + | if ( (wgAction == 'edit' || wgAction == 'submit') && wgTitle != 'Nachteule/Test2' ) { | ||
| + | addJS("Hilfe:Edittools.js"); | ||
| + | } | ||
| + | |||
| + | //============================================================ | ||
| + | // Tausche [[Special:Specialpages]] gegen [[Kamelopedia:Spezialseiten]] | ||
| + | |||
| + | addOnloadHook(function() { | ||
| + | document.getElementById("t-specialpages").innerHTML = '<a href="/index.php/Kamelopedia:Spezialseiten">Spezialitäten</a>'; | ||
| + | }); | ||
| + | |||
| + | //================================================================================ | ||
| + | // lade [[Hilfe:Javachat.js]] nach, wenn auf [[Kamelopedia:Chat]] */ | ||
| + | |||
| + | if (wgPageName == 'Kamelopedia:Chat') addJS("Hilfe:Javachat.js"); | ||
| + | |||
| + | //================================================================================ | ||
| + | //Gedudel auf [[Aufzug]] und [[Gedudel]] und [[WiKa-Sekte]] | ||
| + | |||
| + | if (wgPageName == 'Aufzug' || wgPageName == 'Gedudel' || wgPageName == 'WiKa-Sekte' ) { | ||
| + | document.write('<embed src="http://kamelopedia.mormo.org/images/c/cb/Aufzug.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">'); | ||
| + | } | ||
| + | |||
| + | //================================================================================ | ||
| + | //[[Popupblocker]] | ||
| + | |||
| + | if (wgPageName == 'Popupblocker') { | ||
| + | alert("Ihr Popupblocker ist aktiviert"); | ||
| + | } | ||
| + | |||
| + | //================================================================================ | ||
| + | // Bilder bekommen einen "ähnliche Bilder"-Link und auch die Tagwolke | ||
| + | if ( wgCanonicalNamespace == "File" || wgPageName == "Kamelopedia:Bildtagwolke") | ||
| + | addJS("MediaWiki:Skin/Kamelopedia:Bildsuche/bild.js"); | ||
| + | |||
| + | //================================================================================ | ||
| + | // Skin für Forum | ||
| + | |||
| + | if (wgNamespaceNumber == 102) { | ||
| + | addCSS("MediaWiki:Skin/Forum.css"); | ||
| + | } | ||
| + | |||
| + | //================================================================================ | ||
| + | // Skin für Archiv | ||
| + | |||
| + | if (wgNamespaceNumber == 104 || wgNamespaceNumber == 105) { | ||
| + | addCSS("MediaWiki:Skin/Archiv.css"); | ||
| + | } | ||
| + | |||
| + | //================================================================================ | ||
| + | // Skin und script für Kamelionary | ||
| + | |||
| + | if (wgNamespaceNumber == 106 || wgNamespaceNumber == 107) { | ||
| + | addCSS("MediaWiki:Skin/Kamelionary.css"); | ||
| + | addJS("MediaWiki:Skin/Kamelionary.js"); | ||
| + | } | ||
| + | |||
| + | // ================================================================================ | ||
| + | // 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" ) | ||
| + | { | ||
| + | //Leider nicht IE-Kompatibel: | ||
| + | //var f = function () { ausklapp(this) }; | ||
| + | //addEvent( a[div], "click", f , false ); | ||
| + | //stattdessen: | ||
| + | |||
| + | 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); | ||
| + | addOnloadHook(zirkelklapp); | ||
| + | |||
| + | /* Neues Zirkel-Klapp-script mit prototype-Gedöhnse */ | ||
| + | |||
| + | function zirkelklapp() { | ||
| + | alldivs = document.getElementsByTagName('div'); | ||
| + | for(var i = 0; i < alldivs.length; i++) { | ||
| + | if(alldivs[i].className == "tooltipsource zirkel") { | ||
| + | if(typeof zirkel == 'undefined') { | ||
| + | zirkel = new Array(); | ||
| + | } | ||
| + | zirkel.push(alldivs[i]); | ||
| + | } | ||
| + | } | ||
| + | if(typeof zirkel != 'undefined') { | ||
| + | for(var i = 0; i < zirkel.length; i++) { | ||
| + | zirkel[i].getElementsByTagName('table')[0].style.display = 'none'; | ||
| + | } | ||
| + | alllinks = document.getElementsByTagName('a'); | ||
| + | for(var i = 0; i < alllinks.length; i++) { | ||
| + | Event.observe(alllinks[i], 'mouseover', function(event) { | ||
| + | Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown'); | ||
| + | }); | ||
| + | Event.observe(alllinks[i], 'mouseout', function(event) { | ||
| + | Event.observe(document.getElementsByTagName('body')[0], 'mousedown', function(event) { | ||
| + | for(var i = 0; i < zirkel.length; i++) { | ||
| + | zirkel[i].getElementsByTagName('table')[0].style.display = 'none'; | ||
| + | } | ||
| + | Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown'); | ||
| + | }); | ||
| + | }); | ||
| + | }; | ||
| + | for(var i = 0; i < zirkel.length; i++) { | ||
| + | Event.observe(zirkel[i].getElementsByTagName('span')[0], 'click', function(event) { | ||
| + | this.parentNode.getElementsByTagName('table')[0].style.display = 'block'; | ||
| + | Event.observe(document.getElementsByTagName('body')[0], 'mousedown', function(event) { | ||
| + | for(var i = 0; i < zirkel.length; i++) { | ||
| + | zirkel[i].getElementsByTagName('table')[0].style.display = 'none'; | ||
| + | } | ||
| + | Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown'); | ||
| + | }); | ||
| + | }); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | // ================================================================================ | ||
| + | // username template | ||
| + | |||
| + | /** | ||
| + | * Username replace function ([[Vorlage:USERNAME]]) | ||
| + | * Inserts user name into <span id="insertusername"></span> | ||
| + | * By [[wikia:User:Splarka|Splarka]] | ||
| + | */ | ||
| + | addOnloadHook(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 (wgNamespaceNumber == 0 || wgNamespaceNumber == 106) { | ||
| + | addOnloadHook(function addFDPVersion(){ | ||
| + | var aZit = document.createElement("a"); | ||
| + | aZit.title = "Seite zitieren"; | ||
| + | aZit.href = wgServer + "/index.php/" + "Hilfe:Zitierhilfe"; | ||
| + | aZit.appendChild(document.createTextNode("Seite zitieren")); | ||
| + | |||
| + | var aPDF = document.createElement("a"); | ||
| + | aPDF.title = "FDP-Version"; | ||
| + | aPDF.href = wgServer + "/index.php/" + "PDF?klapp=pdfgen"; | ||
| + | aPDF.appendChild(document.createTextNode("FDP-Version")); | ||
| + | |||
| + | var LiZit = document.createElement("li"); | ||
| + | LiZit.style.whiteSpace = "nowrap"; | ||
| + | LiZit.appendChild(aZit); | ||
| + | |||
| + | var LiPDF = document.createElement("li"); | ||
| + | LiPDF.style.whiteSpace = "nowrap"; | ||
| + | LiPDF.appendChild(aPDF); | ||
| + | |||
| + | var ToolboxUl = document.getElementById("p-tb").getElementsByTagName("ul"); | ||
| + | ToolboxUl[0].appendChild(LiPDF); | ||
| + | ToolboxUl[0].appendChild(LiZit); | ||
| + | }) | ||
| + | }; | ||
| + | |||
| + | // ================================================================================ | ||
| + | // bildersuche | ||
| + | |||
| + | // Die neue Bildersuche in der Sidebar verlinken (da die sowieso nur per javascript funzt, kann man die auch per javascript verlinken) | ||
| + | addOnloadHook(function() { | ||
| + | var searchBody = document.getElementById("searchBody"); | ||
| + | searchBody.innerHTML += '<ul style="text-align:left"><li><a href="/index.php/Spezial:Suche">erweiterte Suche</a></li></ul>'; | ||
| + | }); | ||
| + | |||
| + | // ================================================================================ | ||
| + | // sitenotice | ||
| + | |||
| + | // Die sitenotice per Klick verstecken | ||
| + | |||
| + | addOnloadHook(hideSitenotice); | ||
| + | var siteNoticeTs; // DPL-Timestamp des letzten Edits | ||
| + | |||
| + | |||
| + | function hideSitenotice() { | ||
| + | if (document.getElementById("siteNoticeSub")) { | ||
| + | if (document.getElementById("siteNoticeTime") != null) { | ||
| + | siteNoticeTs = escape( document.getElementById("siteNoticeTime").innerHTML ); | ||
| + | } | ||
| + | |||
| + | if (document.cookie.search(new RegExp("dontshowsitenotice="+siteNoticeTs) ) != -1) { | ||
| + | document.getElementById("siteNoticeInner").style.display = "none"; | ||
| + | machdiesiteNoticewegduSau() | ||
| + | } else { | ||
| + | |||
| + | document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:machdiesiteNoticewegduSau()" style="position:absolute; right:3.3em; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>'; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | function machdiesiteNoticewegduSau() { | ||
| + | document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:gabsdanichtmalnesiteNotice()" style="position:absolute; right:3.3em; top:9px; font-size:0.8em;">[Sitenotice anzeigen]</a>'; | ||
| + | document.getElementById("siteNoticeInner").style.display = "none"; | ||
| + | var datum = new Date(); | ||
| + | var ablauf = datum.getTime() + (265 * 24 * 60 * 60 * 1000); | ||
| + | datum.setTime(ablauf); | ||
| + | |||
| + | document.cookie = "dontshowsitenotice="+siteNoticeTs+"; path=/; expires="+datum.toGMTString(); | ||
| + | } | ||
| + | |||
| + | function gabsdanichtmalnesiteNotice() { | ||
| + | document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:machdiesiteNoticewegduSau()" style="position:absolute; right:3.3em; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>' | ||
| + | document.getElementById("siteNoticeInner").style.display = "block"; | ||
| + | document.cookie = "dontshowsitenotice=never; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT"; | ||
| + | } | ||
| + | |||
| + | // Der doofe server stürzt dauernd ab, wenn das script da unten läuft ... | ||
| + | |||
| + | window.onload = function() | ||
| + | { | ||
| + | if (document.getElementById("ServerError")) { | ||
| + | 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; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | /* Artikel-Review-Autovervollständigungs-script */ | ||
| + | |||
| + | if(wgAction == 'edit' && window.location.href.split('&')[2] == 'articlereview=true') { | ||
| + | var hoecker = '~~'; | ||
| + | templateCode = '{{Artikeltest\r' | ||
| + | + '| Humor/pkt =\r' | ||
| + | + '| Humor/txt =\r' | ||
| + | + '| Konzept/pkt =\r' | ||
| + | + '| Konzept/txt =\r' | ||
| + | + '| Formatierung/pkt =\r' | ||
| + | + '| Formatierung/txt =\r' | ||
| + | + '| Bilder/pkt =\r' | ||
| + | + '| Bilder/txt =\r' | ||
| + | + '| Gesamt/txt =\r' | ||
| + | + '| ' + hoecker + hoecker + '\r' | ||
| + | + '}}' | ||
| + | |||
| + | window.onload = function() { | ||
| + | originalSource = document.getElementById('wpTextbox1').value; | ||
| + | newSource = originalSource.replace(/\{\{Artikeltest\}\}/g, templateCode); | ||
| + | document.getElementById('wpTextbox1').value = newSource; | ||
| + | } | ||
| + | } | ||
Version vom 20. Februar 2010, 14:54 Uhr
//============================================================
// hilfsfunktionen
/** CSS einbinden */
function addCSS(title) {
document.write(
'<style type="text/css">/*<![CDATA[*/ @import "/index.php?title=' +
encodeURIComponent(title) + '&action=raw&ctype=text/css"; /*]]>*/</style>');
}
/** JS einbinden */
function addJS(title) {
document.write(
'<script type="text/javascript" src="/index.php?title=' +
encodeURIComponent(title) + '&action=raw&ctype=text/javascript"></script>');
}
// anzeigen & verbergen (siehe bald Diskussionsseite)
function einaus (inhalt, einblenden, ausblenden) {
var thisLevel = document.getElementById(inhalt);
var otherLevel = document.getElementById(einblenden);
var linkLevel = document.getElementById(ausblenden);
if (thisLevel.style.display == 'none') {
thisLevel.style.display = 'block';
otherLevel.style.display = 'none';
linkLevel.style.display = 'inline';
} else {
thisLevel.style.display = 'none';
otherLevel.style.display = 'inline';
linkLevel.style.display = 'none';
}
}
//================================================================================
// dragobject wird in [[Projekt:Gummistiefel]] verwendet
// alles mit class='jstest' ist dragbar
/***********************************************
* Drag and Drop Script: © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var dragobject={
z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0,
initialize:function(){
document.onmousedown=this.drag
document.onmouseup=function(){this.dragapproved=0}
},
drag:function(e){
var evtobj=window.event? window.event : e
this.targetobj=window.event? event.srcElement : e.target
if (this.targetobj.className=="jstest"){
this.dragapproved=1
if (isNaN(parseInt(this.targetobj.style.left))){this.targetobj.style.left=0}
if (isNaN(parseInt(this.targetobj.style.top))){this.targetobj.style.top=0}
this.offsetx=parseInt(this.targetobj.style.left)
this.offsety=parseInt(this.targetobj.style.top)
this.x=evtobj.clientX
this.y=evtobj.clientY
if (evtobj.preventDefault)
evtobj.preventDefault()
document.onmousemove=dragobject.moveit
}
},
moveit:function(e){
var evtobj=window.event? window.event : e
if (this.dragapproved==1){
this.targetobj.style.left=this.offsetx+evtobj.clientX-this.x+"px"
this.targetobj.style.top=this.offsety+evtobj.clientY-this.y+"px"
return false
}
}
}
dragobject.initialize();
//==================================================================================
// Prototype
addJS("MediaWiki:Prototype.js");
//================================================================================
// lade [[Hilfe:Edittools.js]], wenn Seite bearbeitet wird
if ( (wgAction == 'edit' || wgAction == 'submit') && wgCanonicalNamespace == "File" ) {
addCSS("MediaWiki:Skin/Spezial:Hochladen.css");
addJS("MediaWiki:Skin/Spezial:Hochladen.js");
}
if ( (wgAction == 'edit' || wgAction == 'submit') && wgTitle != 'Nachteule/Test2' ) {
addJS("Hilfe:Edittools.js");
}
//============================================================
// Tausche [[Special:Specialpages]] gegen [[Kamelopedia:Spezialseiten]]
addOnloadHook(function() {
document.getElementById("t-specialpages").innerHTML = '<a href="/index.php/Kamelopedia:Spezialseiten">Spezialitäten</a>';
});
//================================================================================
// lade [[Hilfe:Javachat.js]] nach, wenn auf [[Kamelopedia:Chat]] */
if (wgPageName == 'Kamelopedia:Chat') addJS("Hilfe:Javachat.js");
//================================================================================
//Gedudel auf [[Aufzug]] und [[Gedudel]] und [[WiKa-Sekte]]
if (wgPageName == 'Aufzug' || wgPageName == 'Gedudel' || wgPageName == 'WiKa-Sekte' ) {
document.write('<embed src="http://kamelopedia.mormo.org/images/c/cb/Aufzug.mid" autostart="true" type="audio/midi" loop="true" hidden="true" height="0" width="0">');
}
//================================================================================
//[[Popupblocker]]
if (wgPageName == 'Popupblocker') {
alert("Ihr Popupblocker ist aktiviert");
}
//================================================================================
// Bilder bekommen einen "ähnliche Bilder"-Link und auch die Tagwolke
if ( wgCanonicalNamespace == "File" || wgPageName == "Kamelopedia:Bildtagwolke")
addJS("MediaWiki:Skin/Kamelopedia:Bildsuche/bild.js");
//================================================================================
// Skin für Forum
if (wgNamespaceNumber == 102) {
addCSS("MediaWiki:Skin/Forum.css");
}
//================================================================================
// Skin für Archiv
if (wgNamespaceNumber == 104 || wgNamespaceNumber == 105) {
addCSS("MediaWiki:Skin/Archiv.css");
}
//================================================================================
// Skin und script für Kamelionary
if (wgNamespaceNumber == 106 || wgNamespaceNumber == 107) {
addCSS("MediaWiki:Skin/Kamelionary.css");
addJS("MediaWiki:Skin/Kamelionary.js");
}
// ================================================================================
// 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" )
{
//Leider nicht IE-Kompatibel:
//var f = function () { ausklapp(this) };
//addEvent( a[div], "click", f , false );
//stattdessen:
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);
addOnloadHook(zirkelklapp);
/* Neues Zirkel-Klapp-script mit prototype-Gedöhnse */
function zirkelklapp() {
alldivs = document.getElementsByTagName('div');
for(var i = 0; i < alldivs.length; i++) {
if(alldivs[i].className == "tooltipsource zirkel") {
if(typeof zirkel == 'undefined') {
zirkel = new Array();
}
zirkel.push(alldivs[i]);
}
}
if(typeof zirkel != 'undefined') {
for(var i = 0; i < zirkel.length; i++) {
zirkel[i].getElementsByTagName('table')[0].style.display = 'none';
}
alllinks = document.getElementsByTagName('a');
for(var i = 0; i < alllinks.length; i++) {
Event.observe(alllinks[i], 'mouseover', function(event) {
Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown');
});
Event.observe(alllinks[i], 'mouseout', function(event) {
Event.observe(document.getElementsByTagName('body')[0], 'mousedown', function(event) {
for(var i = 0; i < zirkel.length; i++) {
zirkel[i].getElementsByTagName('table')[0].style.display = 'none';
}
Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown');
});
});
};
for(var i = 0; i < zirkel.length; i++) {
Event.observe(zirkel[i].getElementsByTagName('span')[0], 'click', function(event) {
this.parentNode.getElementsByTagName('table')[0].style.display = 'block';
Event.observe(document.getElementsByTagName('body')[0], 'mousedown', function(event) {
for(var i = 0; i < zirkel.length; i++) {
zirkel[i].getElementsByTagName('table')[0].style.display = 'none';
}
Event.stopObserving(document.getElementsByTagName('body')[0], 'mousedown');
});
});
}
}
}
// ================================================================================
// username template
/**
* Username replace function ([[Vorlage:USERNAME]])
* Inserts user name into <span id="insertusername"></span>
* By [[wikia:User:Splarka|Splarka]]
*/
addOnloadHook(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 (wgNamespaceNumber == 0 || wgNamespaceNumber == 106) {
addOnloadHook(function addFDPVersion(){
var aZit = document.createElement("a");
aZit.title = "Seite zitieren";
aZit.href = wgServer + "/index.php/" + "Hilfe:Zitierhilfe";
aZit.appendChild(document.createTextNode("Seite zitieren"));
var aPDF = document.createElement("a");
aPDF.title = "FDP-Version";
aPDF.href = wgServer + "/index.php/" + "PDF?klapp=pdfgen";
aPDF.appendChild(document.createTextNode("FDP-Version"));
var LiZit = document.createElement("li");
LiZit.style.whiteSpace = "nowrap";
LiZit.appendChild(aZit);
var LiPDF = document.createElement("li");
LiPDF.style.whiteSpace = "nowrap";
LiPDF.appendChild(aPDF);
var ToolboxUl = document.getElementById("p-tb").getElementsByTagName("ul");
ToolboxUl[0].appendChild(LiPDF);
ToolboxUl[0].appendChild(LiZit);
})
};
// ================================================================================
// bildersuche
// Die neue Bildersuche in der Sidebar verlinken (da die sowieso nur per javascript funzt, kann man die auch per javascript verlinken)
addOnloadHook(function() {
var searchBody = document.getElementById("searchBody");
searchBody.innerHTML += '<ul style="text-align:left"><li><a href="/index.php/Spezial:Suche">erweiterte Suche</a></li></ul>';
});
// ================================================================================
// sitenotice
// Die sitenotice per Klick verstecken
addOnloadHook(hideSitenotice);
var siteNoticeTs; // DPL-Timestamp des letzten Edits
function hideSitenotice() {
if (document.getElementById("siteNoticeSub")) {
if (document.getElementById("siteNoticeTime") != null) {
siteNoticeTs = escape( document.getElementById("siteNoticeTime").innerHTML );
}
if (document.cookie.search(new RegExp("dontshowsitenotice="+siteNoticeTs) ) != -1) {
document.getElementById("siteNoticeInner").style.display = "none";
machdiesiteNoticewegduSau()
} else {
document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:machdiesiteNoticewegduSau()" style="position:absolute; right:3.3em; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>';
}
}
}
function machdiesiteNoticewegduSau() {
document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:gabsdanichtmalnesiteNotice()" style="position:absolute; right:3.3em; top:9px; font-size:0.8em;">[Sitenotice anzeigen]</a>';
document.getElementById("siteNoticeInner").style.display = "none";
var datum = new Date();
var ablauf = datum.getTime() + (265 * 24 * 60 * 60 * 1000);
datum.setTime(ablauf);
document.cookie = "dontshowsitenotice="+siteNoticeTs+"; path=/; expires="+datum.toGMTString();
}
function gabsdanichtmalnesiteNotice() {
document.getElementById("siteNoticeSub").innerHTML = '<a href="javascript:machdiesiteNoticewegduSau()" style="position:absolute; right:3.3em; top:9px; font-size:0.8em;">[Sitenotice verbergen]</a>'
document.getElementById("siteNoticeInner").style.display = "block";
document.cookie = "dontshowsitenotice=never; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
// Der doofe server stürzt dauernd ab, wenn das script da unten läuft ...
window.onload = function()
{
if (document.getElementById("ServerError")) {
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;
}
}
/* Artikel-Review-Autovervollständigungs-script */
if(wgAction == 'edit' && window.location.href.split('&')[2] == 'articlereview=true') {
var hoecker = '~~';
templateCode = '{{Artikeltest\r'
+ '| Humor/pkt =\r'
+ '| Humor/txt =\r'
+ '| Konzept/pkt =\r'
+ '| Konzept/txt =\r'
+ '| Formatierung/pkt =\r'
+ '| Formatierung/txt =\r'
+ '| Bilder/pkt =\r'
+ '| Bilder/txt =\r'
+ '| Gesamt/txt =\r'
+ '| ' + hoecker + hoecker + '\r'
+ '}}'
window.onload = function() {
originalSource = document.getElementById('wpTextbox1').value;
newSource = originalSource.replace(/\{\{Artikeltest\}\}/g, templateCode);
document.getElementById('wpTextbox1').value = newSource;
}
}