MediaWiki:Skin/Möh.js

//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);