MediaWiki:Skin/Möh.js

aus Kamelopedia, der wüsten Enzyklopädie
Wechseln zu: Navigation, Suche

Hinweis: Leere nach dem Speichern 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: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
//Möh, die zweite
 
function pad (str, n)
{
    var i;
    var out="";
    for(i=0;i<n;i++)
    {
        out += str;
    }
    return out;
}
 
function moehwort ( wort )
{
    var i=0;
    var len=wort.length;
 
    if ( len < 3 )
        len = 3;
 
    //wie viele möhs passen maximal in das Wort?
    var mMax = Math.floor(len/3);
 
    //wie viele sollens diesmal sein?
    var mZiel = Math.ceil( Math.random() * mMax );
 
    //Platz schaffen für m, ö und h jedes Möhs:
    var mArr = [];
    for(i=0;i<mZiel*3;i++)
    {
        mArr[i] = 1;
    }
 
    // damit haben wir schon mZiel*3 Buchstaben benutzt!
    // es verbleiben also noch len - mZiel*3 Buchstaben, die wir jetzt auffüllen:
 
    for(i=0;i<len-mZiel*3;i++)
    {
        mArr[Math.floor(Math.random()*mZiel*3)] ++;
    }
 
    // so, jetzt bitte das Wort erzeugen!
    var out="";
    for(i=0;i<mArr.length;i++)
    {
        var buchstabe;
        switch(i % 3)
        {
            case 0:
                buchstabe="m"; break;
            case 1:
                buchstabe="ö"; break;
            default:
                buchstabe="h"; break;
        }
        out += pad(buchstabe, mArr[i]);
    }
 
    return out;
}
 
function moeh ( str )
{
    var mArr = str.split( /\b/ );
    for(var i=0;i<mArr.length;i++)
    { 
        if (mArr[i].search(/^[a-zöäüß0-9]+$/i) != -1)
            mArr[i] = moehwort( mArr[i] );
    }
 
    return mArr.join("");
}
 
function isContentObj ( obj )
{
    if ( obj.id == "content" )
    {        
        return true;
    }
    else if ( obj.nodeName == "BODY" )
    {
        return false;
    }
    else
    {
        return isContentObj( obj.parentNode );
    }
}
 
function moehAllElements( tagName )
{
    var linkArr = document.getElementsByTagName(tagName);
    var link;
 
    for(link=0;link<linkArr.length;link++)
    {
        if ( ! isContentObj( linkArr[link] ) )
            linkArr[link].innerHTML = moeh( linkArr[link].innerHTML );
    }
}
 
function losmoehen()
{
    moehAllElements("A");
    moehAllElements("H5");
    document.getElementById("mw-searchButton").value = moeh( document.getElementById("mw-searchButton").value );
    document.getElementById("searchGoButton").value = moeh( document.getElementById("searchGoButton").value );
}
 
addOnloadHook(losmoehen);