MediaWiki:Gadget-insert-inflection.js: Różnice pomiędzy wersjami

Z Wikisłownika – wolnego słownika wielojęzycznego
Usunięta treść Dodana treść
m Na konsoli pojawia się: "Use of "insertTags" is deprecated. Use mw.toolbar.insertTags instead."
m naprawa opisu polskich czas. dk., Specjalna:Diff/4469457
Linia 188: Linia 188:
{
{
name: "zrobię",
name: "zrobię",
caption: "1. os. lp ter. (zrobię)"
caption: "1. os. lp przysz. (zrobię)"
},
},
{
{
name: "zrobi",
name: "zrobi",
caption: "3. os. lp ter. (zrobi)"
caption: "3. os. lp przysz. (zrobi)"
},
},
{
{
name: "zrobią",
name: "zrobią",
caption: "3. os. lp ter. (zrobią)"
caption: "3. os. lp przysz. (zrobią)"
},
},
{
{
Linia 1127: Linia 1127:
id: 'insertInflectionButton',
id: 'insertInflectionButton',
onclick: function() {
onclick: function() {
that.togglePanel()
that.togglePanel();
}
}
} );
} );
Linia 1150: Linia 1150:
this.languageSelector = document.createElement( "select" );
this.languageSelector = document.createElement( "select" );
this.languageSelector.onchange = function() {
this.languageSelector.onchange = function() {
that.selectLanguage()
that.selectLanguage();
}
};
this.languageSelector.style.verticalAlign = 'middle';
this.languageSelector.style.verticalAlign = 'middle';


this.templateSelector = document.createElement( "select" );
this.templateSelector = document.createElement( "select" );
this.templateSelector.onchange = function() {
this.templateSelector.onchange = function() {
that.selectTemplate()
that.selectTemplate();
}
};
this.templateSelector.style.verticalAlign = 'middle';
this.templateSelector.style.verticalAlign = 'middle';


Linia 1195: Linia 1195:
cancelButton.value = "Anuluj";
cancelButton.value = "Anuluj";
cancelButton.onclick = function() {
cancelButton.onclick = function() {
that.togglePanel()
that.togglePanel();
};
};



Wersja z 18:54, 6 sty 2015

/*
 * @author: [[:pl:User:Beau]]
 */

/* Translatable strings - FIXME: extract all messages */
mw.messages.set( {
	'inflection-insert-noun-subject': 'Wstaw temat',
	'inflection-noun-subject': 'Temat rzeczownika: ',
	'inflection-insert-button-title': 'Wstaw odmianę (wersja $1)',
	'inflection-insert-button-alt': 'Wstaw odmianę'
} );

// <pre>
window.inflectionGadget = { /** Version of the gadget */
	version: 8,
	templates: [
		{
			title: "polski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-polski",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						}
					]
				},
				{
					title: "przymiotnik",
					template: "odmiana-przymiotnik-polski",
					fields: [
						{
							name: "1",
							caption: "Stopień równy"
						},
						{
							name: "2",
							caption: "Stopień wyższy lub słowo: brak"
						}
					]
				},
				{
					title: "czasownik niedokonany",
					template: "odmiana-czasownik-polski",
					fields: [
						{
							name: "dokonany",
							caption: null,
							value: "nie"
						},
						{
							name: "koniugacja",
							caption: "Numer koniugacji (nieobowiązkowy)"
						},
						{
							name: "robić",
							caption: "Bezokolicznik (robić)"
						},
						{
							name: "robię",
							caption: "1. os. lp ter. (robię)"
						},
						{
							name: "robi",
							caption: "3. os. lp ter. (robi)"
						},
						{
							name: "robią",
							caption: "3. os. lp ter. (robią)"
						},
						{
							name: "robiłem",
							caption: "1. os. lp przesz. m. (robiłem)"
						},
						{
							name: "robił",
							caption: "3. os. lp przesz. m. (robił)"
						},
						{
							name: "robiła",
							caption: "3. os. lp przesz. f. (robiła)"
						},
						{
							name: "robili",
							caption: "3. os. lm przesz. mos. (robili)"
						},
						{
							name: "robiono",
							caption: "Forma bezosobowa (robiono)"
						},
						{
							name: "rób",
							caption: "Tryb rozkazujący 2. os. lp (rób)"
						},
						{
							name: "robiąc",
							caption: "Imiesłów czynny (robiąc)"
						},
						{
							name: "robiony",
							caption: "Imiesłów bierny M lp m. (robiony)"
						},
						{
							name: "robieni",
							caption: "Imiesłów bierny M lm mos. (robieni)"
						},
						{
							name: "robienie",
							caption: "Rzeczownik odczasownikowy (robienie)"
						},
						{
							name: "się",
							caption: "Dla zwrotnych 'się', dla innych puste"
						}
					]
				},
				{
					title: "czasownik dokonany",
					template: "odmiana-czasownik-polski",
					fields: [
						{
							name: "dokonany",
							caption: null,
							value: "tak"
						},
						{
							name: "koniugacja",
							caption: "Numer koniugacji (nieobowiązkowy)"
						},
						{
							name: "zrobić",
							caption: "Bezokolicznik (zrobić)"
						},
						{
							name: "zrobię",
							caption: "1. os. lp przysz. (zrobię)"
						},
						{
							name: "zrobi",
							caption: "3. os. lp przysz. (zrobi)"
						},
						{
							name: "zrobią",
							caption: "3. os. lp przysz. (zrobią)"
						},
						{
							name: "zrobiłem",
							caption: "1. os. lp przesz. m. (zrobiłem)"
						},
						{
							name: "zrobił",
							caption: "3. os. lp przesz. m. (zrobił)"
						},
						{
							name: "zrobiła",
							caption: "3. os. lp przesz. f. (zrobiła)"
						},
						{
							name: "zrobili",
							caption: "3. os. lm przesz. mos. (zrobili)"
						},
						{
							name: "zrobiono",
							caption: "Forma bezosobowa (zrobiono)"
						},
						{
							name: "zrób",
							caption: "Tryb rozkazujący 2. os. lp (zrób)"
						},
						{
							name: "zrobiwszy",
							caption: "Imiesłów uprzedni (zrobiwszy)"
						},
						{
							name: "zrobiony",
							caption: "Imiesłów bierny M lp m. (zrobiony)"
						},
						{
							name: "zrobieni",
							caption: "Imiesłów bierny M lm mos. (zrobieni)"
						},
						{
							name: "zrobienie",
							caption: "Rzeczownik odczasownikowy (zrobienie)"
						},
						{
							name: "się",
							caption: "Dla zwrotnych 'się', dla innych puste"
						}
					]
				}
			]
		},
		{
			title: "białoruski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-białoruski",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						}
					]
				}
			]
		},
		{
			title: "bośniacki",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-bośniacki",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (ko? šta?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (koga? čega?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (kome? čemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (koga? šta?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej (hej (za dozivanje))"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (s kim? čim?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej ((o) kome?, (o) čemu?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						}
					]
				}
			]
		},
		{
			title: "bułgarski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-bułgarski",
					fields: [
						{
							name: "Nieokreślony lp",
							caption: "Forma nieokreślona liczby pojedynczej"
						},
						{
							name: "Nieokreślony lm",
							caption: "Forma nieokreślona liczby mnogiej"
						},
						{
							name: "Skrócony lp",
							caption: "Forma skrócona liczby pojedynczej"
						},
						{
							name: "Skrócony lm",
							caption: "Forma skrócona liczby mnogiej"
						},
						{
							name: "Określony lp",
							caption: "Forma określona liczby pojedynczej"
						},
						{
							name: "Określony lm",
							caption: "Forma określona liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						},
						{
							name: "1",
							caption: "Bez liczby pojedynczej lub mnogiej (blp/blm)"
						}
					]
				}
			]
		},
		{
			title: "czeski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-czeski",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kdo? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (koho? čeho?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? čemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (koho? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej (oslovení)"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej ((o) kom? (o) čem?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (kým? čím?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						}
					]
				}
			]
		},
		{
			title: "dolnołużycki",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-dolnołużycki",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						}
					]
				},
			]
		},
		{
			title: "kaszubski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-kaszubski",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						}
					]
				},
			]
		},
		{
			title: "kazachski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-kazachski",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Possessivus lp",
							caption: "Possessivus liczby pojedynczej"
						},
						{
							name: "Possessivus lm",
							caption: "Possessivus liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						},
						{
							name: "Ablatyw lp",
							caption: "Ablatyw liczby pojedynczej"
						},
						{
							name: "Ablatyw lm",
							caption: "Ablatyw liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						}
					]
				}
			]
		},
		{
			title: "niemiecki",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-niemiecki",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (Nominativ)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (Genitiv)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (Dativ)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (Akkusativ)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "rodzaj",
							caption: "Rodzaj (m/f/n)"
						}
					]
				}
			]
		},
		{
			title: "nowogrecki",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-nowogrecki",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						},
						{
							name: "rodzaj",
							caption: "Rodzaj (m/f/n)"
						}
					]
				}
			]
		},
		{
			title: "rosyjski",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-rosyjski",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						}
					]
				}
			]
		},
		{
			title: "rumuński",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-rumuński",
					fields: [
						{
							name: "MB nieokr lp",
							caption: "Forma nieokreślona mianownika i biernika lp"
						},
						{
							name: "MB nieokr lm",
							caption: "Forma nieokreślona mianownika i biernika lm"
						},
						{
							name: "MB okr lp",
							caption: "Forma określona mianownika i biernika lp"
						},
						{
							name: "MB okr lm",
							caption: "Forma określona mianownika i biernika lm"
						},
						{
							name: "DC nieokr lp",
							caption: "Forma nieokreślona dopełniacza i celownika lp"
						},
						{
							name: "DC nieokr lm",
							caption: "Forma nieokreślona dopełniacza i celownika lm"
						},
						{
							name: "DC okr lp",
							caption: "Forma określona dopełniacza i celownika lp"
						},
						{
							name: "DC okr lm",
							caption: "Forma określona dopełniacza i celownika lm"
						},
						{
							name: "rodzaj",
							caption: "Rodzaj (m/f/n)"
						}
					]
				},
				{
					title: "przymiotnik",
					template: "odmiana-przymiotnik-rumuński",
					fields: [
						{
							name: "mn lp",
							caption: "Rodzaj męski i nijaki liczby pojedynczej"
						},
						{
							name: "f lp",
							caption: "Rodzaj żeński liczby pojedynczej (tylko mianownik i biernik)"
						},
						{
							name: "m lm",
							caption: "Rodzaj męski liczby mnogiej"
						},
						{
							name: "nf lm",
							caption: "Rodzaj nijaki i żeński liczby mnogiej"
						}
					]
				}
			]
		},
		{
			title: "serbsko-chorwacki",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-serbsko-chorwacki",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						}
					]
				},
			]
		},
		{
			title: "staro-cerkiewno-słowiański",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-staro-cerkiewno-słowiański",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (kto? co?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (kogo? czego?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (komu? czemu?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (kogo? co?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (z kim? z czym?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (o kim? o czym?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						}
					]
				},
			]
		},
		{
			title: "ukraiński",
			templates: [
				{
					title: "rzeczownik",
					template: "odmiana-rzeczownik-ukraiński",
					fields: [
						{
							name: "Mianownik lp",
							caption: "Mianownik liczby pojedynczej (хто? що?)"
						},
						{
							name: "Mianownik lm",
							caption: "Mianownik liczby mnogiej"
						},
						{
							name: "Dopełniacz lp",
							caption: "Dopełniacz liczby pojedynczej (кого? чого?)"
						},
						{
							name: "Dopełniacz lm",
							caption: "Dopełniacz liczby mnogiej"
						},
						{
							name: "Celownik lp",
							caption: "Celownik liczby pojedynczej (кому? чому?)"
						},
						{
							name: "Celownik lm",
							caption: "Celownik liczby mnogiej"
						},
						{
							name: "Biernik lp",
							caption: "Biernik liczby pojedynczej (кого? що?)"
						},
						{
							name: "Biernik lm",
							caption: "Biernik liczby mnogiej"
						},
						{
							name: "Narzędnik lp",
							caption: "Narzędnik liczby pojedynczej (ким? чим?)"
						},
						{
							name: "Narzędnik lm",
							caption: "Narzędnik liczby mnogiej"
						},
						{
							name: "Miejscownik lp",
							caption: "Miejscownik liczby pojedynczej (на кому? на чому?)"
						},
						{
							name: "Miejscownik lm",
							caption: "Miejscownik liczby mnogiej"
						},
						{
							name: "Wołacz lp",
							caption: "Wołacz liczby pojedynczej"
						},
						{
							name: "Wołacz lm",
							caption: "Wołacz liczby mnogiej"
						}
					]
				}
			]
		}
	],
	
	panel: null,
	languageSelector: null,
	templateSelector: null,
	selectedTemplate: null,
	formContainer: null,

	/** Sets up the gadget */
	init: function() {
		if ( mw.config.get( "wgAction" ) != 'edit' && mw.config.get( "wgAction" ) != 'submit' ) {
			return;
		}

		if ( this.templates.length < 1 ) {
			return;
		}

		var that = this;
		toolbarGadget.addButton( {
			icon: "//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png",
			title: mw.msg( 'inflection-insert-button-title', this.version ),
			alt: mw.msg( 'inflection-insert-button-alt' ),
			id: 'insertInflectionButton',
			onclick: function() {
				that.togglePanel();
			}
		} );
	},

	togglePanel: function() {
		if ( this.panel ) {
			if ( this.panel.style.display == 'none' ) {
				this.panel.style.display = 'block';
			} else {
				this.panel.style.display = 'none';
			}
			return;
		}

		this.panel = document.createElement( 'div' );
		this.panel.style.paddingTop = '0.2em';
		this.panel.style.paddingBottom = '0.2em';

		var that = this;

		this.languageSelector = document.createElement( "select" );
		this.languageSelector.onchange = function() {
			that.selectLanguage();
		};
		this.languageSelector.style.verticalAlign = 'middle';

		this.templateSelector = document.createElement( "select" );
		this.templateSelector.onchange = function() {
			that.selectTemplate();
		};
		this.templateSelector.style.verticalAlign = 'middle';

		var selectedLanguage = parseInt( jQuery.cookie( 'inflectionLanguage' ) );
		if ( !selectedLanguage ) {
			selectedLanguage = 0;
		}

		for ( var i in this.templates ) {
			var template = this.templates[i];
			var option = document.createElement( 'option' );
			option.value = i;
			if ( i == selectedLanguage ) {
				option.selected = true;
			}
			option.appendChild( document.createTextNode( template.title ) );
			this.languageSelector.appendChild( option );
		}

		var topLine = document.createElement( 'div' );
		topLine.appendChild( document.createTextNode( 'Język: ' ) );
		topLine.appendChild( this.languageSelector );
		topLine.appendChild( document.createTextNode( 'Szablon: ' ) );
		topLine.appendChild( this.templateSelector );

		this.formContainer = document.createElement( 'div' );

		var insertButton = document.createElement( "input" );
		insertButton.type = "button";
		insertButton.value = "Wstaw szablon";
		insertButton.onclick = function() {
			that.insertTemplate();
		};

		var cancelButton = document.createElement( "input" );
		cancelButton.type = "button";
		cancelButton.value = "Anuluj";
		cancelButton.onclick = function() {
			that.togglePanel();
		};

		var bottomLine = document.createElement( 'div' );
		bottomLine.appendChild( insertButton );
		bottomLine.appendChild( document.createTextNode( ' ' ) );
		bottomLine.appendChild( cancelButton );

		this.panel.appendChild( topLine );
		this.panel.appendChild( this.formContainer );
		this.panel.appendChild( bottomLine );

		var textarea = document.getElementById( 'wpTextbox1' );
		if ( !textarea ) {
			return;
		}

		textarea.parentNode.insertBefore( this.panel, textarea );

		var selectedTemplate = parseInt( jQuery.cookie( 'inflectionTemplate' ) );
		this.selectLanguage( selectedTemplate );
	},

	selectLanguage: function( selectedTemplate ) {
		var language = this.templates[this.languageSelector.value];
		jQuery( this.templateSelector ).children().remove();

		if ( !selectedTemplate ) {
			selectedTemplate = 0;
		}

		for ( var i in language.templates ) {
			var template = language.templates[i];
			var option = document.createElement( 'option' );
			option.value = i;
			if ( i == selectedTemplate ) {
				option.selected = true;
			}
			option.appendChild( document.createTextNode( template.title ) );
			this.templateSelector.appendChild( option );
		}
		this.selectTemplate();
	},

	selectTemplate: function() {
		var language = this.templates[this.languageSelector.value];
		var template = language.templates[this.templateSelector.value];

		jQuery.cookie( 'inflectionLanguage', this.languageSelector.value, {
			expires: 30
		} );
		jQuery.cookie( 'inflectionTemplate', this.templateSelector.value, {
			expires: 30
		} );

		this.selectedTemplate = template;

		jQuery( this.formContainer ).children().css( 'display', 'none' );
		if ( template.element ) {
			template.element.style.display = 'block';
			return;
		}

		var form = document.createElement( 'div' );
		var table = document.createElement( 'table' );

		var elements = [];
		for ( var i in template.fields ) {
			var field = template.fields[i];
			if ( field.caption != null ) {
				var caption = document.createTextNode( field.caption );
				var input = document.createElement( 'input' );
				input.type = 'text';
				elements.push( caption );
				elements.push( input );
				field.input = input;
			}
		}

		while ( elements.length > 0 ) {
			var row = document.createElement( 'tr' );
			var rowElements = elements.splice( 0, 4 );
			for ( var i in rowElements ) {
				var cell = document.createElement( 'td' );
				cell.appendChild( rowElements[i] );
				row.appendChild( cell );
			}
			table.appendChild( row );
		}

		if ( template.title == 'rzeczownik' ) {
			var $form = jQuery( form );
			var $div = jQuery( '<div/>' );
			var $inputSubject = jQuery( '<input type="text" />' );
			var $inputButton = jQuery( '<input type="button" />' );
			$inputButton.bind( 'click', function() {
				$form.find( 'input[type="text"]' ).val( $inputSubject.val() );
			} );

			$inputButton.val( mw.msg( 'inflection-insert-noun-subject' ) );
			$div.append( mw.msg( 'inflection-noun-subject' ), $inputSubject, $inputButton );
			$form.prepend( $div );
		}

		form.appendChild( table );
		this.formContainer.appendChild( form );
		template.element = form;
	},

	insertTemplate: function() {
		var data = this.selectedTemplate;
		var fields = {};
		var padding = 0;
		for ( var i in data.fields ) {
			var field = data.fields[i];
			if ( field.input != null ) {
				fields[field.name] = field.input.value;
			} else {
				fields[field.name] = field.value;
			}
			if ( field.name.length > padding ) {
				padding = field.name.length;
			}
		}
		padding++;

		var text = "{{" + data.template + "\n";
		
		for ( var name in fields ) {
			var value = fields[name];
			while ( name.length < padding ) {
				name += ' ';
			}
			if (name[0]>='0' && name[0]<='9')
				text += "|" + value + "\n";
			else
				text += "|" + name + " = " + value + "\n";
		}
		text += "}}";
		jQuery( "#wpTextbox1" ).focus();
		mw.toolbar.insertTags( text, '', '' );
	}
};

inflectionGadget.init();
// </pre>