MediaWiki:Common.js

Aus Shadowhelix
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
/* Das folgende JavaScript wird für alle Benutzer geladen. */

if (mwCustomEditButtons) {

    mwCustomEditButtons[mwCustomEditButtons.length] = {
        "imageFile": "http://shadowhelix.pegasus.de/images/1/1b/Button_empty.png",
        "speedTip": "a2060 a2070 ad adh adsw ahb aj1 aj2 aj3 aj4 b&s b6w b:adl\nb:m ber berlim bs btech cp! crit ctech c&d d6w db dc dnadoa\ndids dids2 dj eids el eme fd fe fk fk2 fmf fogw fr gidw\ngrim gk gz hbew hbk h hr jdk kd ke ken kf kk kz ldv ls73\nmat merc mg mk mn mshfs mst mst2 mum naqb nl ns otr pb\nped pz rhb r2 r3 ra:s rds rk rl rrmp srz sa sdk sh sk sk2 sl slr\nsls sls2 sls3 sls4 sm sm2 sota63 sota64 sota73 sox sqb sr\nsr2 sr3 sr4 sr4a sr4er srk srk3 ssch ss ss2 ssk ssk2 stech\nsühb sw sz tw ub uqb uw vd vf vn vr2 vt wda wds wpsi ww\n",
        "tagOpen": '',
        "tagClose": "",
        "sampleText": ""};

}

function createFunctionButtons() {

    var Selection = document.getElementsByClassName( "jsFunctionButton" );

    for ( var i = Selection.length - 1; i >= 0 ; i-- ) {

         var input = Selection[i].id.split("_");
         var jsFunction = input.shift();

         var Button = document.createElement( "a" );

         var inputString = "";
         for ( var j = 0; j < input.length; j++ ) {
              inputString = inputString + "'"+input[j];
              if (j != input.length - 1) {
                   inputString = inputString + "',";
              } else {
                   inputString = inputString + "'";
              }
         }

         Button.setAttribute( "href", "javascript:"+jsFunction+"("+inputString+")" );

         Button.appendChild( Selection[i].childNodes[0] );

         $(Selection[i]).replaceWith( Button );

    }

}

function toggleVisibility( targetClass, targetID ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {     

        if (objects[i].id != targetID) {
            objects[i].style.display = 'none';
        } else {
            objects[i].style.display = '';
        }
    }
}

function toggleVisibilityMatch( targetClass, targetID ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {     

        if (objects[i].id.search(targetID) == -1) {
            objects[i].style.display = 'none';
        } else {
            objects[i].style.display = '';
        }
    }
}

function toggleWeight( targetClass, targetID ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {     

        if (objects[i].id != targetID) {
            objects[i].style.fontWeight = 'normal';
        } else {
            objects[i].style.fontWeight = 'bold';
        }
    }
}

function switchWeight( targetClass, targetID ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].id == targetID) {
            if (objects[i].style.fontWeight == '700') {
                objects[i].style.fontWeight = 'normal';
            } else {
                objects[i].style.fontWeight = 'bold';
            }
        }
    }
}

function switchVisibility( targetClass, targetID ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].id == targetID) {
            if (objects[i].style.display == 'none') {
                objects[i].style.display = '';
            } else {
                objects[i].style.display = 'none';
            }
        }
    }
}

function switchVisibilityOnClass( targetClass ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].style.display == 'none') {
            objects[i].style.display = '';
        } else {
            objects[i].style.display = 'none';
        }
    }
}

function switchOnVisibilityOnClass( targetClass ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        objects[i].style.display = '';
    }
}

function switchOffVisibilityOnClass( targetClass ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        objects[i].style.display = 'none';
    }
}

function showOnlyParentNodeWithIdGreaterZero( targetClass, defaultIdValue ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (!(objects[i].parentNode.id)) {
            objects[i].parentNode.id = defaultIdValue;
        }

        if (objects[i].parentNode.id > 0) {
            objects[i].parentNode.style.display = '';
        } else {
            objects[i].parentNode.style.display = 'none';
        }
    }
}

function parentNodeNumericalIdChange( targetClass, increment ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].parentNode.id) {
            objects[i].parentNode.id = parseInt(objects[i].parentNode.id) + increment;
        } else {
            if (increment > 0) {
                objects[i].parentNode.id = 1;
            } else {
                objects[i].parentNode.id = 0;
            }
        }
    }
}

function parentNodeInvisible( targetClass ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].parentNode.id) {
            objects[i].parentNode.id = parseInt(objects[i].parentNode.id) + 1;
        } else {
            objects[i].parentNode.id = 1;
        }

        if (objects[i].parentNode.id > 0) {
            objects[i].parentNode.style.display = 'none';
        }
    }
}

function parentNodeVisible( targetClass ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        objects[i].parentNode.id = parseInt(objects[i].parentNode.id) - 1;

        if (!(objects[i].parentNode.id > 0)) {
            objects[i].parentNode.style.display = '';
        }
    }
}

function parentNodeFade( targetClass, opacityValue ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].parentNode.id) {
            objects[i].parentNode.id = parseInt(objects[i].parentNode.id) + 1;
        } else {
            objects[i].parentNode.id = 1;
        }

        if (objects[i].parentNode.id > 0) {
            objects[i].parentNode.style.opacity = opacityValue;
        }
    }
}

function parentNodeUnFade( targetClass ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].parentNode.id) {
            objects[i].parentNode.id = parseInt(objects[i].parentNode.id) + 1;
        } else {
            objects[i].parentNode.id = 1;
        }

        if (objects[i].parentNode.id > 0) {
            objects[i].parentNode.style.opacity = '1';
        }
    }
}

function toggleParentNodeVisibilityMatch( targetClass, targetID ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {

        if (objects[i].id.search(targetID) == -1) {
            objects[i].parentNode.style.display = 'none';
        } else {
            objects[i].parentNode.style.display = '';
        }
    }
}

function resetVisibility( targetClass, allVisible ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {     

        if (allVisible != 0) {
            objects[i].style.display = '';
        } else {
            objects[i].style.display = 'none';
        }
    }
}

function resetParentNodeVisibility( targetClass, allVisible ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {     

        if (allVisible != 0) {
            objects[i].parentNode.style.display = '';
        } else {
            objects[i].parentNode.style.display = 'none';
        }
    }
}

function resetWeight( targetClass, allNormal ) {

    var objects = document.getElementsByClassName( targetClass );

    for ( var i = 0; i < objects.length; i++ ) {     

        if (allNormal != 0) {
            objects[i].style.fontWeight = 'normal';
        } else {
            objects[i].style.fontWeight = 'bold';
        }
    }
}

/* Aufruf mehrerer Funktionen */

function multiCall11( func1,var11,func2,var21 ) {

    window[func1](var11);
    window[func2](var21);

}

function multiCall12( func1,var11,func2,var21,var22 ) {

    window[func1](var11);
    window[func2](var21,var22);

}

function multiCall22( func1,var11,var12,func2,var21,var22 ) {

    window[func1](var11,var12);
    window[func2](var21,var22);

}

function multiCall112( func1,var11,func2,var21,func3,var31,var32 ) {

    window[func1](var11);
    window[func2](var21);
    window[func3](var31,var32);

}

function multiCall122( func1,var11,func2,var21,var22,func3,var31,var32 ) {

    window[func1](var11);
    window[func2](var21,var22);
    window[func3](var31,var32);

}

function multiCall222( func1,var11,var12,func2,var21,var22,func3,var31,var32 ) {

    window[func1](var11,var12);
    window[func2](var21,var22);
    window[func3](var31,var32);

}

function multiCall2222( func1,var11,var12,func2,var21,var22,func3,var31,var32,func4,var41,var42 ) {

    window[func1](var11,var12);
    window[func2](var21,var22);
    window[func3](var31,var32);
    window[func4](var41,var42);

}

function singleCall2( func1,var11,var12 ) {

    window[func1](var11,var12);

}

/* Funktion um die Darstellung von Shadowtalk-Boxen im Artikel an- und abzuschalten */

function toggleShadowtalkTab() {
    addPortletLink('p-cactions', 'javascript:switchVisibilityOnClass( "shadowtalkbox" )', 'Shadowtalk An/Aus', 'ca-last', 'Shadowtalk ein- oder ausblenden');
}

addOnloadHook( toggleShadowtalkTab );

/* Funktion zur Formatierung der Links auf Artikel in den besonderen Kategorien (Quellen, Abenteuer, Erzählungen) */

function formatLinksKategorie() {

    if ( document.location.href.search('/Kategorie:Quellen') != -1 || document.location.href.search('=Kategorie:Quellen') != -1 ) {

        var objects = document.getElementsByTagName( "a" );
        for ( var i = 0; i < objects.length; i++ ) {     
            objects[i].innerHTML = objects[i].innerHTML.replace(/Quelle, (cs|de|en|es|fr|he|hu|it|ja|pl|pt):/,"<tt class=\"language-$1\"><small>Quelle, </small>$1:</tt>").replace(/, <\/small>(de|en):/,", </small><span style=\"font-style:italic; color:green;\">$1</span>:").replace(/, <\/small>(cs|es|fr|he|hu|it|ja|pl|pt):/,", </small><span style=\"font-style:italic; color:purple;\">$1</span>:");
        }
    }

    if ( document.location.href.search('/Kategorie:Abenteuer') != -1 || document.location.href.search('=Kategorie:Abenteuer') != -1 ) {

        var objects = document.getElementsByTagName( "a" );
        for ( var i = 0; i < objects.length; i++ ) {     
            objects[i].innerHTML = objects[i].innerHTML.replace(/Abenteuer:/,"<small>Abenteuer:</small>");
        }
    }

    if ( document.location.href.search('/Kategorie:Erz%C3%A4hlungen') != -1 || document.location.href.search('=Kategorie:Erz%C3%A4hlungen') != -1 ) {

        var objects = document.getElementsByTagName( "a" );
        for ( var i = 0; i < objects.length; i++ ) {     
            objects[i].innerHTML = objects[i].innerHTML.replace(/Erzählung:/,"<small>Erzählung:</small>");
        }
    }

}

addOnloadHook( formatLinksKategorie );


/* Funktion um die Darstellung von Shadowtalk-Boxen als Defaulteinstellung in reduzierter Form darzustellen */

function defaultShadowtalkCollapsed() {

    var objects = document.getElementsByClassName( 'open-shadowtalk' );

    for ( var i = 0; i < objects.length; i++ ) {
       objects[i].style.display = 'none';
       objects[i].className     = "open-shadowtalk-" + i;
    }    

    var objects = document.getElementsByClassName( 'collapsed-shadowtalk' );

    for ( var i = 0; i < objects.length; i++ ) {
       objects[i].style.display = '';
       objects[i].className     = "collapsed-shadowtalk-" + i;
    }

    var objects = document.getElementsByClassName( 'st-jsFunctionButton' );

    for ( var i = 0; i < objects.length; i++ ) {
       objects[i].id        = "multiCall11_switchVisibilityOnClass_open-shadowtalk-" + i + "_switchVisibilityOnClass_collapsed-shadowtalk-" + i;
       objects[i].className = "jsFunctionButton";
    }
}

addOnloadHook( defaultShadowtalkCollapsed );

addOnloadHook( createFunctionButtons );