/*
* Knávom, azaz a kínai nevek átírását váltogató mechanika.
*
* A [[MediaWiki:Common.js]] tölti be, a [[Sablon:Kínai]] párja.
*/
kinai_primary = 'pinyin';
function kinai_switch() {
var elements = document.getElementsByTagName('span');
for (var i = 0; i < elements.length; i++) {
if (elements[i].className != 'kinai-szoveg') {
continue;
}
var pinyin = '';
var magyaros = '';
var hanzi = '';
var egyeb = '';
var cimszo = 0;
var hidden = 0;
var children = elements[i].getElementsByTagName('span');
for (var j = 0; j < children.length; j++) {
switch (children[j].className) {
case 'pinyin':
pinyin = children[j].innerHTML;
break;
case 'magyaros':
magyaros = children[j].innerHTML;
break;
case 'hanzi':
hanzi = children[j].innerHTML;
break;
case 'egyeb':
egyeb = children[j].innerHTML;
break;
case 'cimszo':
cimszo = 1;
break;
case 'hidden':
hidden = 1;
break;
}
}
var str0 = '';
var str1 = '';
if (kinai_primary == 'pinyin') {
str0 = '' + magyaros + '';
if (hanzi || egyeb) {
if (hanzi) {
str1 = '(' + hanzi + ', ';
} else {
str1 = '(';
}
str1 += '' + pinyin + '';
if (egyeb) {
str1 += ', ' + egyeb + ')';
} else {
str1 += ')';
}
} else {
str1 = '(' + pinyin + ')';
}
} else {
str0 = '' + pinyin + '';
if (hanzi || egyeb) {
if (hanzi) {
str1 = '(' + hanzi + ', ';
} else {
str1 = '(';
}
str1 += '' + magyaros + '';
if (egyeb) {
str1 += ', ' + egyeb + ')';
} else {
str1 += ')';
}
} else {
str1 = '(' + magyaros + ')';
}
}
if (cimszo) {
str0 = '' + str0 + '';
}
if (hidden) {
elements[i].innerHTML = str0 + ' ' + str1 + '';
} else {
elements[i].innerHTML = str0 + ' ' + str1;
}
}
if (kinai_primary == 'pinyin') {
kinai_primary = 'magyaros';
document.cookie = 'kinai_primary=magyaros;path=/;expires=Tue, 19 Jan 2038 03:14:07 GMT';
} else {
kinai_primary = 'pinyin';
document.cookie = 'kinai_primary=pinyin;path=/;expires=Tue, 19 Jan 2038 03:14:07 GMT';
}
}
addOnloadHook(function () {
if (!document.getElementById || !document.getElementsByTagName) {
return;
}
/*
* Csak akkor rakjuk ki a fület, ha van a cikkben megjelölt kínai név.
*/
var kinai_inside = 0;
var spans = document.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].className == 'kinai-szoveg') {
kinai_inside = 1;
break;
}
}
if (!kinai_inside) {
return;
}
/*
* Odacsapjuk a fület.
*/
addPortletLink('p-cactions', 'javascript:kinai_switch();', 'p./m.', 'ca-kinai-switch', 'Váltás pinyin és magyaros átírás közt');
/*
* Váltunk is rögtön, ha a user korábban magyarost választott. Persze ezt szebben is lehetne.
*/
if (document.cookie.indexOf('kinai_primary=magyaros') != -1) {
kinai_switch();
}
});