//<nowiki>
/*
   Dieses Skript ändert zuverlässig die maskulinen Kategoriebezeichnungen
   in feminine um, sobald die Kategorie:Frau gesetzt ist und in Wikidata 
   eine weibliche Form (P2521=„weibliche Form des Bezeichners“) des 
   Kategorien-Namens eingetragen wurde.
   
   Zur Einbindung die Zeile
   
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:DaB./KatGenderer.js&action=raw&ctype=text/javascript');
   
   in die eigene common.js setzen. Kann z.B. mit ] getestet
   werden.
   
*/

mw.loader.using(, function () {

function replaceIt(s){

var catname='Kategorie:'.concat(s.innerText);

var api = new mw.Api();
    api.get( {
        action: 'query',
        prop: 'pageprops',
        titles: catname
    } ).done( function ( data ) {

        var WDID;
        try {
        	WDID=data.query.pages].pageprops.wikibase_item;
        } catch (e) {
        	return;
        }
        
        var wdapi = new mw.ForeignApi('https://www.wikidata.org/w/api.php?');
            wdapi.get( {
            action: 'wbgetclaims',
            entity: WDID, 
            property:'P2521'
        } ).done( function ( wddata ) {
                console.log(wddata);
                var femaledKatText=wddata.claims.P2521.mainsnak.datavalue.value.text;
                console.log(femaledKatText);

                s.innerText = femaledKatText;

        } );
    } ); 
}

	$(function () {
	var h1 = document.getElementById('firstHeading');
	if(!h1) return;
	var title = h1.innerText;
	var x = title.indexOf('Test GenderCats');
	var a; 
	var istFrau = false;
	if (x >= 0){
		// Testseiten bearbeiten
		var li = document.getElementsByTagName('li');
		for(var j = 0; j < li.length; j++) 
		{
			var b = li;
			var lis = b.getElementsByTagName('a');
			for(var i = 0; i < lis.length; i++) 
			{
				a = lis;
				a.innerText = replaceIt(a.innerText);
			}
		}
	} else { 
		// Kategorien durchsuchen
		var links = document.getElementById('mw-normal-catlinks');
	    if(!links)
	        return;
	    var lis = links.getElementsByTagName('a');
	    if(!lis)
	        return;
		for(var i = 0; i < lis.length; i++) 
		{
			a = lis;
			// Ist Kategorie "Frau" vorhanden?
		    if (a.innerText == "Frau") {
		    	istFrau = true;
		    	// alert("Frau");
		    	break;
		    	}
		}    
		if (istFrau) {
			// dann ersetzen
			for(i = 0; i < lis.length; i++) 
			{
			    a = lis;
			    replaceIt(a);
			}    
		}
	}
}); });

//</nowiki>