MediaWiki:PrototypeArticle.js
Dėmesio: Išsaugojus jums gali prireikti išvalyti jūsų naršyklės podėlį, kad pamatytumėte pokyčius.
- Firefox / Safari: Laikydami Shift pasirinkite Perkrauti, arba paspauskite Ctrl-F5 ar Ctrl-R (sistemoje Apple Mac ⌘-R)
- Google Chrome: Spauskite Ctrl-Shift-R (sistemoje Apple Mac ⌘-Shift-R)
- Internet Explorer / Edge: Laikydami Ctrl paspauskite Naujinti, arba paspauskite Ctrl-F5
- Opera: Eikite į Meniu → Nuostatos (sistemoje Apple Mac Opera → Nustatymai), tuomet Privatumas ir sauga → išvalyti naršymo podėlį → išsaugotos talpyklos vaizdai ir failai.
/*
== Prototype Article ==
GFDL: Dan Pettersson, //sv.wiktionary.org/wiki/Anv%C3%A4ndare:Skalman
*/
// disable by adding paLoad = false; to your monobook.js
if (paLoad == undefined)
window.paLoad = true;
if (typeof(nahSaveCookie) == 'undefined')
window.nahSaveCookie = false; // default is no, when initializing we'll change this if there's a cookie
window.nahInitObject = function(array, preset) {
for (var key in preset) {
if (typeof(key) != 'string') {
continue;
}
if (array[key] == null) {
array[key] = preset[key];
}
}
return;
}
if (typeof(nahPoSs) == 'undefined') { window.nahPoSs = {}; }
window.nahPoSsInitText = function() {
nahInitObject(nahPoSs, {
bdv: ["Būdvardis", "bdv"],
dkt: ["Daiktavardis", "dkt"],
dll: ["Dalelytė", "dll"],
dlv: ["Dalyvis", "dlv"],
gln: ["Galūnė", "gln"],
įvrd: ["Įvardis", "įvrd"],
jst: ["Jaustukas", "jst"],
jng: ["Jungtukas", "jng"],
prl: ["Prielinksnis", "prl"],
prs: ["Priesaga", "prs"],
prd: ["Priešdėlis", "prd"],
prv: ["Prieveiksmis", "prv"],
rad: ["Raidė", "rad"],
sant: ["Santrumpa", "sant"],
smb: ["Simbolis", "smb"],
skm: ["Skaitmuo", "skm"],
skt: ["Skaitvardis", "skt"],
škn: ["Šaknis", "škn"],
jung: ["Žodžių junginys", "jung"],
vks: ["Veiksmažodis", "vks"]
});
};
if (typeof(nahLangs) == 'undefined') { window.nahLangs = {}; }
window.nahLangsInitText = function() {
nahInitObject(nahLangs, {
'abq': 'Abazų kalba',
'ab': 'Abchazų kalba',
'abe': 'Abenakų kalba',
'aa': 'Afarų kalba',
'af': 'Afrikanų kalba',
'ay': 'Aimarų kalba',
'ain': 'Ainų kalba',
'ga': 'Airių kalba',
'akz': 'Alabamiečių kalba',
'sq': 'Albanų kalba',
'als': 'Alemanų kalba',
'ale': 'Aleutų kalba',
'alr': 'Aliutorių kalba',
'tut': 'Altajiečių kalba',
'am': 'Amharų kalba',
'amu': 'Amuzgų kalba',
'en': 'Anglų kalba',
'apach': 'Apačų kalba',
'ar': 'Arabų kalba',
'an': 'Aragosų kalba',
'arc': 'Aramėjų kalba',
'arp': 'Arapahų kalba',
'hy': 'Armėnų kalba',
'roa-rup': 'Aromanų kalba',
'as': 'Asamų kalba',
'nah': 'Actekų kalba',
'ast': 'Asturianų kalba',
'bar': 'Austrobavarų kalba',
'av': 'Avarų kalba',
'ae': 'Avestianų kalba',
'az': 'Azerbaidžaniečių kalba',
'be': 'Baltarusių kalba',
'bm': 'Bambarų kalba',
'ba': 'Baškirų kalba',
'eu': 'Baskų kalba',
'bdp': 'Bendų kalba',
'bn': 'Bengalų kalba',
'ber': 'Berberų kalba',
'bh': 'Biharų kalba',
'bcl': 'Bikolų kalba',
'my': 'Birmiečių kalba',
'bi': 'Bislama kalba',
'bpy': 'Bišnuprija manipuri kalba',
'bs': 'Bosnių kalba',
'dz': 'Botijų kalba',
'br': 'Bretonų kalba',
'bug': 'Bugų kalba',
'bg': 'Bulgarų kalba',
'cbk-zam': 'Čebakano kalba',
'ce': 'Čėčėnų kalba',
'cs': 'Čekų kalba',
'ch': 'Čemorų kalba',
'chr': 'Čerokių kalba',
'ny': 'Čičevų kalba',
'rom': 'Čigonų kalba',
'chy': 'Čijenų kalba',
'ckt': 'Čiukčių kalba',
'cv': 'Čiuvašų kalba',
'da': 'Danų kalba',
'gbz': 'Dari kalba',
'dsb': 'Dolnoserbų kalba',
'ext': 'Ekstremadūrų kalba',
'eml': 'Emiliano romanolų kalba',
'myv': 'Erzinų kalba',
'eo': 'Esperanto',
'et': 'Estų kalba',
'ee': 'Evų kalba',
'fo': 'Farerų kalba',
'fj': 'Fidžių kalba',
'vls': 'Flamandų kalba',
'frp': 'Franko-Provensalio dialektas',
'fy': 'Fryzų kalba',
'ff': 'Fulų kalba',
'fur': 'Furilų kalba',
'gl': 'Galisų kalba',
'gan': 'Gano kalba',
'glk': 'Gilakų kalba',
'got': 'Gotų kalba',
'el': 'Graikų kalba',
'kl': 'Grenlandų kalba',
'ka': 'Gruzinų kalba',
'gu': 'Gudžaratų kalba',
'gn': 'Gvaranių kalba',
'ht': 'Haičio kreolų kalba',
'kjh': 'Hakasų kalba',
'hak': 'Hakka kalba',
'ha': 'Hausų kalba',
'haw': 'Havajiečių kalba',
'he': 'Hebrajų kalba',
'hi': 'Hindi kalba',
'io': 'Ido',
'ig': 'Igbų kalba',
'ilo': 'Ilokanų kalba',
'hil': 'Ilongų kalba',
'PIE': 'Indoeuropiečių prokalbė',
'id': 'Indoneziečių kalba',
'ia': 'Interlingua kalba',
'ie': 'Interlingue kalba',
'iu': 'Inuktikuto kalba',
'ik': 'Inupiakų kalba',
'is': 'Islandų kalba',
'es': 'Ispanų kalba',
'ruo': 'Istro-Romanų kalba',
'it': 'Italų kalba',
'ja': 'Japonų kalba',
'jv': 'Javiečių kalba',
'yi': 'Jidiš kalba',
'yo': 'Jorubų kalba',
'sud': 'Jotvingių (sudūvių) kalba',
'bla': 'Juodakojų kalba',
'kbd': 'Kabardų kalba',
'kab': 'Kabilų kalba',
'xal': 'Kalmukų kalba',
'kn': 'Kanadų kalba',
'zh-yue': 'Kantono kalba',
'kaa': 'Karakalpakų kalba',
'krl': 'Karelų kalba',
'ks': 'Kašmyrų kalba',
'csb': 'Kašubų kalba',
'ca': 'Katalonų kalba',
'kk': 'Kazachų kalba',
'qu': 'Kečujų kalba',
'km': 'Khmerų kalba',
'rw': 'Kinjaruanda kalba',
'zh': 'Kinų kalba',
'zh-classical': 'Kinų klasikinė kalba',
'ky': 'Kirgizų kalba',
'rn': 'Kirundi kalba',
'kv': 'Komių kalba',
'kg': 'Kongiečių kalba',
'ko': 'Korėjiečių kalba',
'kw': 'Kornų kalba',
'co': 'Korsikiečių kalba',
'xh': 'Kosų kalba',
'bzj': 'Kreolų kalba',
'cr': 'Krijų kalba',
'hr': 'Kroatų kalba',
'crh': 'Krymo totorių kalba',
'kum': 'Kumikų kalba',
'ku': 'Kurdų kalba',
'lad': 'Ladinų kalba',
'lkt': 'Lakotų kalba',
'lbe': 'Lakų kalba',
'lo': 'Laosiečių (lao) kalba',
'lv': 'Latvių kalba',
'pl': 'Lenkų kalba',
'lt': 'Lietuvių kalba',
'lij': 'Ligurų kalba',
'li': 'Limburgiečių kalba',
'ln': 'Lingala kalba',
'lb': 'Liuksemburgiečių kalba',
'jbo': 'Lojban kalba',
'lmo': 'Lombardų kalba',
'la': 'Lotynų kalba',
'liv': 'Lyvių kalba',
'mk': 'Makedonų kalba',
'mg': 'Malagasių kalba',
'ml': 'Malajalių kalba',
'ms': 'Malajų kalba',
'dv': 'Maldyvų kalba',
'mt': 'Maltiečių kalba',
'mi': 'Maorių kalba',
'arn': 'Mapudunganų kalba',
'mr': 'Marathų kalba',
'mh': 'Maršaliečių kalba',
'gv': 'Menksiečių kalba',
'mic': 'Mikmakų kalba',
'cdo': 'Min Dong kalba',
'ruq': 'Moglenų kalba',
'mdf': 'Mokšų kalba',
'mo': 'Moldavų kalba',
'mn': 'Mongolų kalba',
'nn': 'Naujoji norvegų kalba',
'na': 'Nauriečių kalba',
'nv': 'Navahų kalba',
'ndo': 'Ndongų kalba',
'nap': 'Neapoliečių kalba',
'ne': 'Nepalų kalba',
'new': 'Nevarų kalba',
'nrm': 'Normanų kalba',
'no': 'Norvegų kalba',
'nov': 'Novial kalba',
'nl': 'Nyderlandų kalba',
'oj': 'Odžibvės kalba',
'oc': 'Oksitanų kalba',
'or': 'Orijų kalba',
'om': 'Oromų kalba',
'os': 'Osetinų kalba',
'pam': 'Pampangų kalba',
'pag': 'Pangasinų kalba',
'pap': 'Papiamento kalba',
'simple': 'Paprastoji anglų kalba',
'tpi': 'Papua pidžinų kalba',
'pa': 'Pendžabų kalba',
'pdc': 'Pensilvanijos vokiečių kalba',
'fa': 'Persų kalba',
'zh-min-nan': 'Pietų minų kalba',
'st': 'Pietų sotų kalba',
'pjt': 'Pitjantjatjara kalba',
'pih': 'Pitkerniečių kalba',
'pms': 'Pjemonto kalba',
'pox': 'Polabų kalba',
'pt': 'Portugalų kalba',
'pim': 'Povotanų kalba',
'fr': 'Prancūzų kalba',
'prg': 'Prūsų kalba',
'ps': 'Puštūnų kalba',
'rap': 'Rapaniujų kalba',
'rm': 'Retoromanų kalba',
'ksh': 'Ripuarų kalba',
'rhg': 'Rohingų kalba',
'rmy': 'Romanų kalba',
'ro': 'Rumunų kalba',
'ru': 'Rusų kalba',
'hsb': 'Aukštutinių sorbų kalba',
'sm': 'Samojiečių kalba',
'sa': 'Sanskritas',
'sn': 'Šanų kalba',
'sc': 'Sardiniečių kalba',
'stq': 'Saterlandų kalba',
'ceb': 'Sebuanų kalba',
'ang': 'Senoji anglų kalba',
'be-x-old': 'Senoji baltarusių kalba',
'cu': 'Senoji bažnytinė slavų kalba',
'old-lt': 'Senoji lietuvių kalba',
'sh': 'Serbų-kroatų kalba',
'sr': 'Serbų kalba',
'yun': 'Šiaurės malaviečių kalba',
'se': 'Šiaurės samių kalba',
'scn': 'Siciliečių kalba',
'szl': 'Sileziečių kalba',
'sd': 'Sindhų kalba',
'si': 'Sinhalų kalba',
'gd': 'Škotų, gėlų kalba',
'sco': 'Škotų kalba',
'PS': 'Slavų prokalbė',
'sk': 'Slovakų kalba',
'sl': 'Slovėnų kalba',
'so': 'Somalių kalba',
'sg': 'Songo kalba',
'su': 'Sudaniečių kalba',
'sux': 'Šumerų kalba',
'fi': 'Suomių kalba',
'sw': 'Svahilių kalba',
'ss': 'Svazių kalba',
'sv': 'Švedų kalba',
'gsw': 'Šveicarijos vokiečių kalba',
'mzn': 'Tabarų kalba',
'tg': 'Tadžikų kalba',
'tl': 'Tagalų kalba',
'ty': 'Taitiečių kalba',
'th': 'Tajų kalba',
'ta': 'Tamilų kalba',
'xx': 'Tarptautiniai',
'te': 'Telugų kalba',
'tet': 'Tetunų kalba',
'bo': 'Tibetiečių kalba',
'ti': 'Tigrinų kalba',
'to': 'Tongų kalba',
'tt': 'Totorių kalba',
'ts': 'Tsongų kalba',
'tn': 'Tsvanų kalba',
'sai': 'Tupių kalba',
'tk': 'Turkmėnų kalba',
'tr': 'Turkų kalba',
'tw': 'Tvi kalba',
'udm': 'Udmurtų kalba',
'ug': 'Uigurų kalba',
'uk': 'Ukrainiečių kalba',
'ur': 'Urdų kalba',
'uz': 'Uzbekų kalba',
'wpb': 'Valpurų kalba',
'cy': 'Valų kalba',
'wbp': 'Vapurų kalba',
'war': 'Varajų kalba',
'vec': 'Venetų kalba',
'hu': 'Vengrų kalba',
'vep': 'Vepsų kalba',
'fiu-vro': 'Verų kalba',
'vi': 'Vietnamiečių kalba',
'vot': 'Vodų kalba',
'de': 'Vokiečių kalba',
'vo': 'Volapiukas',
'wo': 'Volofų kalba',
'wa': 'Voloniečių kalba',
'wuu': 'Vu kalba',
'cpp': 'Žaliojo Kyšulio kreolų kalba',
'diq': 'Zazakų kalba',
'zea': 'Zelandiečių kalba',
'bat-smg': 'Žemaičių kalba',
'nds': 'Žemutinių Saksonų kalba',
'nds-nl': 'Žemutinių saksų kalba',
'zu': 'Zulų kalba'
});
};
// will contain the same array, but {"language":"code", ...} instead
// we will do this only if the user actually uses NAH to minimize memory use
if (typeof(nahLangsRev) == 'undefined') { window.nahLangsRev = {}; }
// kai kurių kalbų žodžiams parodyti naudojami formatavimo šablonai
if (typeof(nahLangTemp) == 'undefined') { window.nahLangTemp = {}; }
window.nahLangTempInitText = function() {
nahInitObject(nahLangTemp, {
'akz': 'IPAchar',
'ar': 'ARchar',
'bn': 'Beng',
'el': 'unicode',
'km': 'KMchar',
'ko': 'KOchar',
'ku': 'KUchar',
'lo': 'LOchar',
'fa': 'FAchar',
'sd': 'SDchar',
'th': 'THchar',
'ur': 'URchar'
});
};
if (typeof(nahGenericArticle) == 'undefined') { window.nahGenericArticle = {}; }
window.nahGenericArticleInitText = function() {
nahInitObject(nahGenericArticle, {
// "name": ["description", inserted_text, how_as_default]
// inserted_text: if a number, nahGeneratedText is called with that number which
// results in certain generated text - otherwise a string which will be the result
// show_as_default: 0=don't have to show; 1=must show
1: ["Panašūs žodžiai", 1, 0, '+'],
2: ["Vaizdas", 2, 0, 'lt'],
3: ["{"+"{vikipedija|"+mw.config.get('wgPageName')+"}"+"} - nuoroda į vikipediją", 3, 0, 'lt'],
"3_5": ["\n"],
4: ["Kalba", 4, 1, '+'],
5: ["Vaizdas kalbai", 5, 0, '+'],
6: ["Užsienio kalbos žodžio tarimas", 6, 0, '-'],
7: ["Kalbos dalies antraštė", 7, 1, '+'],
8: ["Kalbos dalis", 8, 1, '+'],
9: ["Anglų kalbos dalis", 9, 1, 'en'],
10: ["Žodis", 10, 1, '+'],
11: ["Lietuviškų žodžių aprašymas", 11, 1, 'lt'],
12: ["Užsienio žodžių aprašymas", 12, 0, '-'],
13: ["Pavyzdžiai", 13, 0, '+'], // exempel
"13_5": ["\n"],
14: ["Vertimai į lietuvių kalbą", 14, 1, '-'],
"14_5": ["\n"],
15: ["Žodžių junginį sudaro žodžiai:", "Žodžių junginį sudaro žodžiai:\n* [[<žodis>]]\n\n", 0, '+'],
16: ["Lietuviško žodžio tarimas</small>", 16, 0, 'lt'],
17: ["Naudojimas", "==== Naudojimas ====\n* <aprašymas>\n\n", 0, '+'],
18: ["Etimologija", "==== Etimologija ====\n* <aprašymas>\n\n", 0, '+'],
19: ["Žodžio daryba", "==== Žodžio daryba ====\n* <aprašymas>\n\n", 0, '+'],
20: ["Supersąvokos", 20, 0, '+'],
21: ["Sinonimai", 21, 0, '+'],
22: ["Subsąvokos", 22, 0, '+'],
23: ["Antonimai", 23, 0, '+'],
24: ["Išraiškos arba posakiai", 24, 0, '+'],
25: ["Išvestiniai žodžiai", "==== Išvestiniai žodžiai ====\n* [[<žodis>]]\n\n", 0, '+'],
26: ["Frazeologizmai", 26, 0, '+'],
27: ["Panašūs žodžiai", "==== Panašūs žodžiai ====\n* [[<žodis>]]\n\n", 0, '+'],
28: ["Vertimai</small>", 28, 1, 'lt'], // översättningar
29: ["Dar žiūrėkite", "==== Dar žiūrėkite ====\n* [[<nuoroda>|<pavadinimas>]]\n\n", 0, '+'],
30: ["Šaltiniai", "==== Šaltiniai ====\n<references />\n\n", 0, '+'],
31: ["Nuorodos", "==== Nuorodos ====\n* [[<nuoroda>|<pavadinimas>]]\n\n", 0, '+'],
32: ["Žymė, kad nepatikrintas", 32, 0, '+'],
33: ["Žodžio aprašymo pabaiga", "<br clear=all>\n----\n", 1, '+'],
"33_5": ["\n"]
});
};
// defaults:
if (typeof(nahTemplates) == 'undefined') {
if (typeof(navigator.nahTemplates) == 'undefined') { navigator.nahTemplates = window.nahTemplates = {}; }
else window.nahTemplates = navigator.nahTemplates;
}
window.nahTemplatesInitText = function() {
nahInitObject(nahTemplates, {
0: {"name":"šablonas", 4:"lt", 7:"dkt", 8:true, 9:true, 10:true, 11:"-", 14:true, 28:true, 33:true} // default, the rest should be loaded via the saved cookie
});
};
window.nahCurTemplate;
window.nahNumInsertedNewTemplates = 0;
function nahGeneratedText(nahTemplateId, action) {
action += "";
nahTmpTemp = nahTemplates[nahTemplateId];
curLang = nahTmpTemp[4];
curPoS = nahTmpTemp[7];
switch (action) {
case "1": // {{see}}
return "{"+"{see|<žodis>}}\n";
case "2": // image
return "[[vaizdas:<vaizdas>|thumb|200px|<pavadinimas>]]\n";
case "3": // {{vikipedija}}
return (curLang=="lt" ? "{"+"{vikipedija|"+mw.config.get('wgPageName')+"}}\n" : "");
case "4": // language
return "== {"+"{" + curLang + "v}"+"} ==\n";
case "5": // image
return "[[vaizdas:<vaizdas>|thumb|200px|<pavadinimas>]]\n";
case "6": // pronunciation
return (curLang=="lt" ?"":"==== Tarimas ====\n*{"+"{uttal|enkel=|ipa=|ljud=" + (curLang=="sv"?"":"|språk="+nahLangs[curLang]) + "}}\n\n");
case "7": // part of speech
return "=== ''" + nahPoSs[curPoS][0] + "'' ===\n";
case "8": // grammar template
return "{"+"{" + curLang + nahPoSs[curPoS][1] + "}"+"}\n\n";
case "9": // grammar template
return (curLang=="en" ?
"{"+"{KDalis|" + curLang + nahPoSs[curPoS][1] + "|"+ mw.config.get('wgPageName') + "}"+"}\n\n" : "");
case "10": // bold row
if (typeof(nahLangTemp[curLang]) == 'undefined')
return "'''[[" + mw.config.get('wgPageName') + "]]'''\n";
else
return "'''{"+'{'+nahLangTemp[curLang]+'|[[' + mw.config.get('wgPageName') + "]]}}'''\n";
case "11": // definition
if (curLang == 'lt'){
if (nahTmpTemp[11] == "-")
return "# <aprašymas>\n"; // <separator> will be changed
else
return "# {"+"{Kategorija|" + (nahTmpTemp[11]==" "?"":nahTmpTemp[11]) + "}} - <aprašymas>\n";
} else return "";
case "12": // definition
if (curLang != 'lt'){
if (nahTmpTemp[12] == "-")
return "# <aprašymas>\n"; // <separator> will be changed
else
return "# {"+"{Kategorija|" + (nahTmpTemp[12]==" "?"":nahTmpTemp[12]) + "|"+curLang + "}} - <aprašymas>\n";
} else return "";
case "13": // example
return "#:'' '''"+ mw.config.get('wgPageName') +"''' ''\n" + (curLang == "lt" ? "" : "#::'' ''' ''' ''\n");
case "14": return (curLang=="lt" ? "" : "\n:::# {"+"{t+|lt|<žodis>}"+"}\n");
case "16": // pronunciation
return (curLang=="lt" ?"==== Tarimas ====\n*{"+"{tarimasLT|" + mw.config.get('wgPageName') + "}}\n\n":"");
case "20": return "==== Supersąvokos ====\n{"+"{sin-top|vardas="+ mw.config.get('wgPageName') +
"}"+"}\n* {"+"{t+|"+ curLang +"|<žodis>}"+"}\n{"+"{sin-mid}"+"}\n{"+"{sin-bottom}"+"}\n\n";
case "21": return "==== Sinonimai ====\n{"+"{sin-top|vardas="+ mw.config.get('wgPageName') +
"}"+"}\n* {"+"{t+|"+ curLang +"|<žodis>}"+"}\n{"+"{sin-mid}"+"}\n{"+"{sin-bottom}"+"}\n\n";
case "22": return "==== Subsąvokos ====\n{"+"{sin-top|vardas="+ mw.config.get('wgPageName') +
"}"+"}\n* {"+"{t+|"+ curLang +"|<žodis>}"+"}\n{"+"{sin-mid}"+"}\n{"+"{sin-bottom}"+"}\n\n";
case "23": return "==== Antonimai ====\n{"+"{ant-top|vardas="+ mw.config.get('wgPageName') +
"}"+"}\n* {"+"{t+|"+ curLang +"|<žodis>}"+"}\n{"+"{ant-mid}"+"}\n{"+"{ant-bottom}"+"}\n\n";
case "24": return "==== Išraiškos arba posakiai ====\n{"+"{rel-top|vardas="+ mw.config.get('wgPageName') +
"}"+"}\n* {"+"{t+|"+ curLang +"|<žodis>}"+"}\n{"+"{rel-mid}"+"}\n{"+"{rel-bottom}"+"}\n\n";
case "26": return "==== Frazeologizmai ====\n{"+"{rel-top|vardas="+ mw.config.get('wgPageName') +
"|kt=Frazeologizmai}"+"}\n* "+
"{"+"{t+|"+ curLang +"|<žodis>}"+"}\n{"+"{rel-mid}"+"}\n{"+"{rel-bottom}"+"}\n\n";
case "28": return (curLang=="lt" ? "==== Vertimai ====\n{"+"{trans-top|vardas="+ mw.config.get('wgPageName') +
"}"+"}\n{"+"{env1}"+"} {"+"{t+|en|<žodis>}"+"}\n{"+"{trans-mid}"+"}\n{"+"{trans-bottom}"+"}\n\n" : "");
case "32": return "{"+"{bot-entry|"+ curLang +"|"+ mw.config.get('wgPageName') +
"|{"+'{subst:CURRENTYEAR}'+'}|{'+'{subst:CURRENTMONTHNAME}'+'}|{'+'{subst:CURRENTDAY}'+"}|"+
mw.config.get('wgUserName') +"}"+"}\n\n";
default: return nahGenericArticle[action][1];
}
}
// initialize the whole process
function nahInit() {
if (!paLoad || !document.getElementById || !document.getElementById("toolbar"))
return;
nahPoSsInitText();
nahLangsInitText();
nahLangTempInitText();
nahGenericArticleInitText();
nahTemplatesInitText();
var nahHTML = "";
// text displayed from the beginning
nahHTML += "<div id=\"nahIntroLinks\">" +
"<p>Žodžių aprašymai Vikižodyne pageidautina, kad būtų tam tikros struktūros. <small>Todėl naujo žodžio aprašymo sukūrimui naudokite aprašymo šablonus.</small><br/><b><a href=\"javascript:nahSettings(0);\">Sukurti aprašymo šabloną.</a></b>" +
" — Ši priemonė eksperimentinė todėl žiūrėkite <a href=\"//lt.wiktionary.org/wiki/Viki%C5%BEodynas:%C5%BDod%C5%BEio_apra%C5%A1ymo_%C5%A1ablonas\" title=\"Informacija apie aprašymo šablono naudojimą\" class=\"external\" target=\"_blank\">pagalbos informaciją</a> ir teikite <a href=\"//lt.wiktionary.org/wiki/Viki%C5%BEodynas:%C5%BDod%C5%BEio_apra%C5%A1ymo_%C5%A1ablonas\" title=\"Informacija apie aprašymo šablono naudojimą\" class=\"external\" target=\"_blank\">pastabas</a>.</p>" +
"<p id=\"nahInsertableTemplates\" style=\"display:none;\"></p>";
// hidden shell in which everything goes when the user clicks
nahHTML += "<div id=\"nahEditSettings\" style=\"display:none;\"><div>" +
"<p><a href=\"javascript:nahCloseSettings();\" id=\"nahCloseButton\" style=\"float:right; height:22px; font-size:14px; border-width:1px; background:url(http://internetvision.se/dan/projekt/wikt/button.png); padding:0 4px;\">[išeiti]</a></p>" +
"<h3 id=\"nahSettingsTitle\"></h3>" +
"<div id=\"nahStep0\" style=\"background:#eef;\">" +
"<p><b>Bendra informacija</b>: Užpildydami laukus suformuosite šabloną <a href=\"//lt.wiktionary.org/wiki/Viki%C5%BEodynas:Apra%C5%A1ymo_%C5%A1ablonas\" target=\"_blank\" class=\"external\" title=\"Informacija apie aprašymo šablono naudojimą\">Žr.</a>...</p>" +
"<p>Jūsų naršyklė įsimena Jūsų sukurtus šablonus, tačiau išėjus iš naršyklės šie šablonai gali prapulti. Jūs turite galimybę juos išsaugoti slapukų pagalba. " +
"<span id=\"nahCookieSettingsOn\" style=\"display:none;\"><b style=\"color:#060;\">Jei norite panaikinti visus jūsų įsimintus šablonus</b> (<a href=\"javascript:nahForgetMe();\">spauskite</a>)</span>" +
"<span id=\"nahCookieSettingsOff\"><b style=\"color:#900;\">Jei norite, kad jūsų naudojami šablonai būtų įsimenami</b> (<a href=\"javascript:nahRememberMe();\">spauskite</a>)</span>" +
"</p></div>" +
"<div id=\"nahStep1\" style=\"display:none;\">" +
"<p style=\"text-align:center;\"><a href=\"javascript:nahInsert(nahCurTemplate, "new");\">[Įterpti sugeneruotą tekstą]</a> — <a href=\"javascript:nahGoToStep(2);\" class=\"selected\">[Pasirinkti šablono įterpiamas dalis ir jį detalizuoti]</a></p><hr>" +
// choose a name for the template
"<h4>Nurodykite šablono vardą</h4><p>Jūs galite naudoti iki 5 šablonų. Tvarkomo šablono vardas: <input type=\"text\" id=\"nahNameInput\" onblur=\"nahSet("name", 0, this.value);\"></p>" +
// choose language
"<h4>Kalbos pasirinkimas</h4><p>Jei norite pakeisti, įveskite kalbos kodą: <input type=\"text\" id=\"nahLangInput\" onkeyup=\"nahSet(4, "set name", this.value);\" onblur=\"nahSet(4, "set name", this.value);\"> <span id=\"nahLangStatusError\" style=\"display:none;\">(nežinoma kalba - <b style=\"color:#c00;\">??</b>)</span><span id=\"nahLangStatusOk\" style=\"display:none;\">(pasirinktos kalbos kodas: <b style=\"color:#090;\" id=\"nahLangStatusCode\"></b>)</span><span id=\"nahLangStatusOkCode\" style=\"display:none;\">(nurodyta kalba: <b style=\"color:#090;\" id=\"nahLangStatusName\"></b>)</span><br><small>Pasirinkdami kalbą turite įvesti kalbos kodą.</small> Jums nežinomus kalbos kodus galite sužinoti <a href=\"//lt.wiktionary.org/wiki/S%C4%85ra%C5%A1as:Kalb%C5%B3_s%C4%85ra%C5%A1as_ABC\" target=\"_blank\" class=\"external\" title=\"Pagalba kalbos pasirinkimui\">kalbų sąraše</a>.</p>";
// choose part of speech
nahHTML += "<h4>Žodžio kalbos dalies pasirinkimas</h4><p>";
var nahFirst = true;
for (nahTempPoS in nahPoSs) {
if (nahFirst) nahFirst=false;
else nahHTML += ' - ';
nahHTML += "<a href=\"javascript:nahSet(7, "" + nahTempPoS + "");\" id=\"nahPoS_" + nahTempPoS + "\">" + nahPoSs[nahTempPoS][0] + "</a>";
}
nahHTML += "</p>";
nahHTML += "</div>";
// step 2
nahHTML += "<div id=\"nahStep2\" style=\"display:none;\">" +
"<p style=\"text-align:center;\"><a href=\"javascript:nahGoToStep(1);\">[← Pereiti į pradinę šablono informacija]</a> — <a href=\"javascript:nahInsert(nahCurTemplate, "new");\" class=\"selected\">[Įterpti sugeneruotą tekstą]</a></p><hr>" +
"<h4>Pasirinkite šablono įterpiamus skyrelius</h4><ul style=\"list-style:none;\">";
// headings to choose
for (nahTempRow in nahGenericArticle) {
if (nahGenericArticle[nahTempRow][0] == "\n")
continue;
if (!nahGenericArticle[nahTempRow][2]) { // optional
nahHTML += "<div id=\"nahRows_" + nahTempRow + "_partId\" style=\"display:none;\">"+
"<tt id=\"nahRows_" + nahTempRow + "\">[ ]</tt> " +
"<a href=\"javascript:nahSet("" + nahTempRow +
"", "toggle");\" id=\"nahRows_" + nahTempRow + "_link\">" +
nahGenericArticle[nahTempRow][0] + "</a>";
} else
nahHTML += "<div id=\"nahRows_" + nahTempRow + "_partId\" style=\"display:none;\"><tt>[X]</tt> <i><b>" +
nahGenericArticle[nahTempRow][0] +
"</b></i> <small>(yra būtinas)</small>";
// custom is for those headings that want to give more choices etc.
nahHTML += "<div id=\"nahRows_" + nahTempRow + "_custom\" style=\"display:none; margin-left:4em;\"></div></div>";
}
nahHTML += "</ul>";
nahHTML += "</div>";
nahHTML += "</div></div>";
// ...and put it on the actual page
var nahNahToolbar = document.createElement("div");
nahNahToolbar.setAttribute("id", "nahToolbar");
nahNahToolbar.innerHTML = nahHTML;
var nahToolbar = document.getElementById('toolbar');
nahToolbar.parentNode.insertBefore(nahNahToolbar, nahToolbar);
// read cookie
if (null != nahReadCookie("prototypeArticles")) {
// <cookie> ::= <prot>|<prot>|<prot>|<prot>|<prot>
// <prot> ::= ("" OR <action>=<val>&<action>=<val> ...)
nahSaveCookie = true;
nahDoLangsRev();
theCookie = nahReadCookie("prototypeArticles");
theCookie = "|" + theCookie; // to create indexes 1-5
theCookie = theCookie.split("|");
for (nahTemplateId=1; nahTemplateId<=5; nahTemplateId++) { // each prototype
if (!theCookie[nahTemplateId] || theCookie[nahTemplateId] == "") {
continue;
}
nahTemplates[nahTemplateId] = {};
nahCurTemplate = nahTemplateId;
thisProt = theCookie[nahTemplateId].split("&");
for (i=0; i<thisProt.length; i++) {
tmpAction = thisProt[i].split("=");
if (tmpAction[1]) {
nahSet(unescape(tmpAction[0]), "update", unescape(tmpAction[1]), true);
}
}
}
document.getElementById("nahCookieSettingsOn").style.display = "inline";
document.getElementById("nahCookieSettingsOff").style.display = "none";
nahUpdateCookie(); // should re-set the cookie so it won't disappear
}
nahUpdateInsertableTemplates();
} // end: nahInit()
function nahDoLangsRev() {
//if (nahLangsRev.length == 0) {
//nahLangsRev = {};
for (nahTmpCode in nahLangs)
nahLangsRev[ nahLangs[nahTmpCode] ] = nahTmpCode;
//}
} // end: nahDoLangsRev()
function nahSettings(nahTemplateId) {
if (nahTemplateId == 0) {
allUsed = true;
for (i=1; i<=5; i++)
if (!nahTemplates[i])
allUsed = false;
if (allUsed) {
alert("Jūs maksimaliai galite naudoti 5 šablonus. Keiskite kuri nors jau turimą šabloną arba kurį noras pašalinkite.");
return;
}
// confusing if it has the same name as any other - add (2) or change the number
tmpName = nahTemplates[0]["name"];
for (i=1; i<=5; i++) {
if (nahTemplates[i] && nahTemplates[i]["name"] == tmpName) {
tmpName = tmpName.split(" (");
if (tmpName[ tmpName.length-1 ] == parseInt(tmpName[ tmpName.length-1 ])+")" )
tmpName[ tmpName.length-1 ] = (1+parseInt(tmpName[ tmpName.length-1 ]))+")";
else
tmpName[ tmpName.length ] = "2)";
tmpName = tmpName.join(" (");
}
}
nahTemplates[0]["name"] = tmpName;
}
// now is the time to create reversal of nahLangs, if it hasn't already been done
nahDoLangsRev();
nahCurTemplate = nahTemplateId;
document.getElementById("nahSettingsTitle").innerHTML = (nahTemplateId==0 ? "Šablono informacija" : "Redaguojamas šablonas "" + nahHtmlEscape(nahTemplates[nahTemplateId]["name"]) + """);
document.getElementById("nahEditSettings").style.display = "block";
nahGoToStep(1);
nahUpdateNameInput();
// the rest
for (nahTempRow in nahGenericArticle) {
if (nahGenericArticle[nahTempRow][0] == "\n") // new row or required row (=no special alternatives used)
continue;
if (nahTemplates[nahTemplateId][nahTempRow]) { // if this setting should be used
nahSet(nahTempRow, "update", nahTemplates[nahTemplateId][nahTempRow]); // re-set the already set setting
}
}
} // end: nahSettings()
function nahCloseSettings() {
document.getElementById("nahEditSettings").style.display = "none";
document.getElementById("nahLangStatusError").style.display = document.getElementById("nahLangStatusOk").style.display = document.getElementById("nahLangStatusOkCode").style.display = "none";
for (tmpPoS in nahPoSs)
document.getElementById("nahPoS_" + tmpPoS).className = "";
document.getElementById("nahStep1").style.display = "none";
document.getElementById("nahStep2").style.display = "none";
for (i in nahGenericArticle) {
if (document.getElementById("nahRows_" + i) && document.getElementById("nahRows_" + i + "_link")) {
document.getElementById("nahRows_" + i).innerHTML = "[ ]";
document.getElementById("nahRows_" + i + "_link").className = "";
}
if (document.getElementById("nahRows_" + i + "_custom")) {
document.getElementById("nahRows_" + i + "_custom").style.display = "none";
document.getElementById("nahRows_" + i + "_custom").innerHTML = "";
}
}
nahUpdateInsertableTemplates();
nahUpdateCookie();
} // end: nahCloseSettings()
function nahGoToStep(step) {
document.getElementById("nahStep1").style.display = "none";
document.getElementById("nahStep2").style.display = "none";
document.getElementById("nahStep" + step).style.display = "block";
document.getElementById("nahCloseButton").focus();
} // end: nahGoToStep()
function nahShowPartsByLang(curLang){
for (art in nahGenericArticle){
if (nahGenericArticle[art][0] == "\n")
continue;
if ((nahGenericArticle[art][3] == '+' || nahGenericArticle[art][3] == curLang ||
(nahGenericArticle[art][3] == '-' && curLang != 'lt')) && curLang != '-'){
document.getElementById("nahRows_" + art + "_partId").style.display = "block";
} else {
document.getElementById("nahRows_" + art + "_partId").style.display = "none";
}
}
}
function nahSet(action, value, param, loading) {
if (action=="name") {
param = param.replace(/^\s*/, ""); // ltrim
param = param.replace(/\s*$/, ""); // rtrim
if (param == "")
return; // don't set
nahTemplates[nahCurTemplate]["name"] = param;
return;
} else if (action=="act" && value=="update") {
// simple representation: act=7,8,16
param = param.split(",");
for (co=0; co<param.length; co++)
nahTemplates[nahCurTemplate][ param[co] ] = true;
return;
}
updated = false;
updateChoices = (value == "toggle" || value == "update");
tempActive = (value == "update");
nahDontUpdate = false;
action += ""; // convert to string
switch (action) {
case "4": // language
nahDontUpdate = true;
if (value == "update") {
document.getElementById("nahLangInput").value = nahLangs[param];
nahLangName = nahLangs[param];
} else if (value == "set name") {
nahLangName = document.getElementById("nahLangInput").value.toLowerCase();
}
if (nahLangsRev[nahLangName]) {
value = nahLangsRev[nahLangName];
document.getElementById("nahLangStatusError").style.display = "none";
document.getElementById("nahLangStatusOk").style.display = "inline";
document.getElementById("nahLangStatusOkCode").style.display = "none";
document.getElementById("nahLangStatusCode").innerHTML = value;
nahTemplates[nahCurTemplate][4] = value;
nahShowPartsByLang(value);
} else if (nahLangs[nahLangName]) { // input was actually lang code
document.getElementById("nahLangStatusError").style.display = "none";
document.getElementById("nahLangStatusOk").style.display = "none";
document.getElementById("nahLangStatusOkCode").style.display = "inline";
document.getElementById("nahLangStatusName").innerHTML = nahLangs[nahLangName];
nahTemplates[nahCurTemplate][4] = nahLangName;
nahShowPartsByLang(nahLangName);
} else {
document.getElementById("nahLangStatusError").style.display = "inline";
document.getElementById("nahLangStatusOk").style.display = "none";
document.getElementById("nahLangStatusOkCode").style.display = "none";
nahShowPartsByLang('-');
}
break;
case "7": // part of speech
nahDontUpdate = true;
if (value == "update") {
value = param;
} else {
document.getElementById("nahPoS_" + nahTemplates[nahCurTemplate][7]).className = "";
}
if (!loading)
document.getElementById("nahPoS_" + value).className = "selected";
nahTemplates[nahCurTemplate][7] = value;
break;
case "11": // definition row
if (value == "update") {
document.getElementById("nahRows_11_custom").innerHTML = "<code id=\"nahRows_11_cat_active\">[ ]</code> <a href=\"javascript:nahSet(11, "cat-click");\" id=\"nahRows_11_cat_link\">Nurodyti reikšmės <code>{{Kategorija}}</code></a> <span id=\"nahRows_11_cat\">formatu <code>{{Kategorija|<input type=\"text\" id=\"nahRows_11_cat_input\" onblur=\"nahSet(11, "cat-update", this.value);\">|<i><kalbos kodas></i>}}</code></span>";
document.getElementById("nahRows_11_custom").style.display = "block";
}
if (value == "cat-click") {
param = nahTemplates[nahCurTemplate][11] = (nahTemplates[nahCurTemplate][11] == "-"?"":"-");
value = "update";
}
if (value == "update") {
isAct = (nahTemplates[nahCurTemplate][11] != "-");
document.getElementById("nahRows_11_cat").style.display = (isAct?"inline":"none");
document.getElementById("nahRows_11_cat_link").className = (isAct?"selected":"");
document.getElementById("nahRows_11_cat_active").innerHTML = (isAct?"[X]":"[ ]");
if (isAct)
document.getElementById("nahRows_11_cat_input").value = (nahTemplates[nahCurTemplate][11]==" "?"":nahTemplates[nahCurTemplate][11]);
}
if (value == "cat-update") {
param = param.replace(/^[\|]*/, ""); // trim spaces and |
param = param.replace(/[\|]*$/, "");
if (param == "-" || param == "") // dash shouldn't be used, but shouldn't give too unexpected results; can't store ""
param = " ";
}
value = param;
updateChoices = false;
break;
}
if (value == "toggle") { // for simple toggle sections
if (!updated)
nahTemplates[nahCurTemplate][action] = tempActive = !nahTemplates[nahCurTemplate][action];
else
tempActive = nahTemplates[nahCurTemplate][action];
}
if (updateChoices && !loading) {
if (document.getElementById("nahRows_" + action) && document.getElementById("nahRows_" + action + "_link")) {
document.getElementById("nahRows_" + action).innerHTML = (tempActive?"[X]":"[ ]");
document.getElementById("nahRows_" + action + "_link").className = (tempActive?"selected":"");
}
if (!tempActive)
document.getElementById("nahRows_" + action + "_custom").innerHTML = "";
}
else if (!nahDontUpdate) {
nahTemplates[nahCurTemplate][action] = value;
}
} // end: nahSet()
function nahUpdateNameInput() {
document.getElementById("nahNameInput").value = nahTemplates[nahCurTemplate]["name"];
} // end: nahUpdateNameInput()
function nahInsert(nahTemplateId, mode) {
if (mode == "new") {
if (nahTemplateId == 0) { // save a new template
for (i=1; i<=5; i++)
if (!nahTemplates[i])
break;
if (nahTemplates[i]) { // no empty template spaces - something's wrong
alert("Nebegalimas naujo šablono sukūrimas. Naudokite vieną iš jau jūsų turimų šablonų.");
nahCloseSettings();
return;
}
nahNumInsertedNewTemplates++;
nahTemplates[i] = nahClone(nahTemplates[0]);
nahTemplateId = i;
}
nahUpdateCookie();
nahUpdateInsertableTemplates();
}
// and now the actual inserting
nahText = "";
for (row in nahGenericArticle)
if (nahTemplates[nahTemplateId][row])
nahText += nahGeneratedText(nahTemplateId, row);
else if (nahGenericArticle[row][0] == "\n")
nahText += "\n";
nahText = nahText.replace(/^\s*/, ""); // ltrim
nahText = nahText.replace(/\s*$/, ""); // rtrim
// replace
nahAllText = document.getElementById("wpTextbox1").value;
if (nahAllText.indexOf("{"+"{įterpti}"+"}") != -1) {
nahAllText = nahAllText.replace("{"+"{iterpti}}", nahText);
document.getElementById("wpTextbox1").value = nahAllText;
nahAllText = false;
} else
document.getElementById("wpTextbox1").value = (nahAllText == ""? "":nahAllText + "\n") + nahText;
/* nahText = nahText.split("<separator>");
if (nahText.length == 2)
insertTags(nahText[0], nahText[1], "<žodžio reikšmės aprašymas>");
else {
//alert("Trūksta žodžio reikšmės aprašymo");
insertTags(nahText[0], "", "");
}*/
nahCloseSettings();
} // end: nahInsert()
function nahForgetMe() {
if (confirm("Ar tikrai norite, kad nebūtų saugomi Jūsų naudojami šablonai?\nŠio veiksmo negalima bus atšaukti!\n(Jūsų naudota informacija bus panaikinta iš kompiuteryje saugomo slapulo)")) {
nahSaveCookie = false;
for (i=1; i<=5; i++)
nahTemplates[i] = false;
nahUpdateCookie();
nahCloseSettings();
}
} // end: nahForgetMe()
function nahRememberMe() {
if (confirm("Ar tikrai norite, kad būtų saugomi slapukuose Jūsų naudojami šablonai?\nTam turi būti aktyvuotas slapukų naudojimas")) {
nahSaveCookie = true;
nahUpdateCookie();
if (nahReadCookie("prototypeArticles") == null) {
alert("Į slapuką Jūsų naudojami šablonai neišsaugoti.\nAktyvuokite slapukų naudojimą.");
nahSaveCookie = false;
nahUpdateCookie();
}
}
} // end: nahRememberMe()
function nahUpdateCookie() {
if (nahSaveCookie) {
theCookie = [""];
for (i=1; i<=5; i++) {
theCookie[i] = "";
headers = "";
if (typeof nahTemplates[i] == "object") {
for (j in nahTemplates[i]) {
if (typeof nahTemplates[i][j] == "boolean")
if (nahTemplates[i][j])
headers += ","+escape(j); // simpler representation: act=7,9,16
else
theCookie[i] += "&" + escape(j) + "="; // false represented by empty string
else
theCookie[i] += "&" + escape(j) + "=" + escape(nahTemplates[i][j]);
}
}
if (headers != "")
theCookie[i] += "&act="+headers.substring(1);
if (theCookie[i] != "")
theCookie[i] = theCookie[i].substring(1);
}
theCookie = theCookie.join("|");
theCookie = theCookie.substring(1);
nahCreateCookie("prototypeArticles", theCookie, 30);
document.getElementById("nahCookieSettingsOn").style.display = "inline";
document.getElementById("nahCookieSettingsOff").style.display = "none";
} else {
nahEraseCookie("prototypeArticles");
document.getElementById("nahCookieSettingsOn").style.display = "none";
document.getElementById("nahCookieSettingsOff").style.display = "inline";
}
} // end: nahUpdateCookie()
function nahUpdateInsertableTemplates() {
nahHTML = "Naudoti šablonai <small>(šablono įstatymui spauskite jo vardą)</small>: ";
nahFirst = true;
for (i=1; i<=5; i++) {
if (nahTemplates[i]) {
if (nahFirst) nahFirst = false;
else nahHTML += " — ";
nahHTML += "<b><a href=\"javascript:nahInsert("+i+");\" title=\"Pasirinkto šablono įstatymas\">" + nahHtmlEscape(nahTemplates[i]["name"]) + "</a></b> <small><a href=\"javascript:nahSettings("+i+");\" title=\"Šablono keitimas\">[+/-]</a> <a href=\"javascript:nahDeleteTemplate("+i+");\" title=\"Šablono panaikinimas\">[×]</a></small>";
}
}
if (nahFirst) // no templates created
nahHTML = "";
document.getElementById("nahInsertableTemplates").innerHTML = nahHTML;
document.getElementById("nahInsertableTemplates").style.display = (nahHTML==""?"none":"block");
} // end: nahUpdateInsertableTemplates()
function nahDeleteTemplate(nahTemplateId) {
if (confirm("Ar jūs tikrai norite panaikinti šabloną \""+nahTemplates[nahTemplateId]["name"]+"\"?\nŠio veiksmo atšaukti negalėsite.")) {
nahTemplates[nahTemplateId] = false;
nahUpdateInsertableTemplates();
nahUpdateCookie();
}
} // end: nahDeleteTemplate()
// NAH specific functions end here, but since it isn't included anywhere else we
// need a few extra that could be used in any script
function nahClone(myObj) {
if (typeof myObj != "object") return myObj;
if (myObj == null) return myObj;
var myNewObj = new Object();
for (var tmpKey in myObj)
myNewObj[tmpKey] = nahClone(myObj[tmpKey]);
return myNewObj;
}
function nahHtmlEscape(str) {
str = str.replace(/&/g, "&");
str = str.replace(/</g, "<");
str = str.replace(/>/g, ">");
str = str.replace(/"/g, """);
return str;
}
function nahCreateCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function nahReadCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c[0]==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function nahEraseCookie(name) {
nahCreateCookie(name,"",-1);
}
$(nahInit);