var wsDomains = {
'wikibooks.org': ['aa', 'af', 'ak', 'als', 'ang', 'ar', 'as', 'ast', 'ay', 'az', 'ba', 'be', 'bg', 'bi', 'bm', 'bn', 'bo', 'bs', 'ca', 'ch', 'co', 'cs', 'cv', 'cy', 'da', 'de', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fr', 'fy', 'ga', 'gl', 'gn', 'got', 'gu', 'he', 'hi', 'hr', 'hu', 'hy', 'ia', 'id', 'ie', 'is', 'it', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ks', 'ku', 'ky', 'la', 'lb', 'ln', 'lt', 'lv', 'mg', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'my', 'na', 'nah', 'nds', 'ne', 'nl', 'no', 'oc', 'pa', 'pl', 'ps', 'pt', 'qu', 'rm', 'ro', 'ru', 'sa', 'se', 'si', 'simple', 'sk', 'sl', 'sq', 'sr', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'tk', 'tl', 'tr', 'tt', 'ug', 'uk', 'ur', 'uz', 'vi', 'vo', 'wa', 'xh', 'yo', 'za', 'zh', 'zh-min-nan', 'zu'],
'wikinews.org': ['ar', 'bg', 'bs', 'ca', 'de', 'en', 'es', 'fr', 'he', 'it', 'ja', 'nl', 'no', 'pl', 'pt', 'ro', 'ru', 'sd', 'sr', 'sv', 'ta', 'th', 'uk', 'zh'],
'wikimedia.org': ['commons', 'incubator', 'meta', 'species'],
'wikipedia.org': ['aa', 'ab', 'af', 'ak', 'als', 'am', 'an', 'ang', 'ar', 'arc', 'as', 'ast', 'av', 'ay', 'az', 'ba', 'bar', 'bat-smg', 'be', 'be-x-old', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'bpy', 'br', 'bs', 'bug', 'bxr', 'ca', 'cbk-zam', 'cdo', 'ce', 'ceb', 'ch', 'cho', 'chr', 'chy', 'co', 'cr', 'cs', 'csb', 'cu', 'cv', 'cy', 'da', 'de', 'diq', 'dv', 'dz', 'ee', 'el', 'eml', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fiu-vro', 'fj', 'fo', 'fr', 'frp', 'fur', 'fy', 'ga', 'gd', 'gl', 'glk', 'gn', 'got', 'gu', 'gv', 'ha', 'haw', 'he', 'hi', 'ho', 'hr', 'hsb', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'ilo', 'io', 'is', 'it', 'iu', 'ja', 'jbo', 'jv', 'ka', 'kab', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ksh', 'ku', 'kv', 'kw', 'ky', 'la', 'lad', 'lb', 'lbe', 'lg', 'li', 'lij', 'lmo', 'ln', 'lo', 'lt', 'lv', 'map-bms', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mo', 'mr', 'ms', 'mt', 'mus', 'my', 'mzn', 'na', 'nah', 'nap', 'nds', 'nds-nl', 'ne', 'new', 'ng', 'nl', 'nn', 'no', 'nov', 'nrm', 'nv', 'ny', 'oc', 'om', 'or', 'os', 'pa', 'pag', 'pam', 'pap', 'pdc', 'pi', 'pih', 'pl', 'pms', 'ps', 'pt', 'qu', 'rm', 'rmy', 'rn', 'ro', 'roa-rup', 'roa-tara', 'ru', 'rw', 'sa', 'sc', 'scn', 'sco', 'sd', 'se', 'sg', 'sh', 'si', 'simple', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'test', 'tet', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tpi', 'tr', 'ts', 'tt', 'tum', 'tw', 'ty', 'udm', 'ug', 'uk', 'ur', 'uz', 've', 'vec', 'vi', 'vls', 'vo', 'wa', 'war', 'wo', 'wuu', 'xal', 'xh', 'yi', 'yo', 'za', 'zea', 'zh', 'zh-classical', 'zh-min-nan', 'zh-yue', 'zu'],
'wikiquote.org': ['af', 'als', 'am', 'ang', 'ar', 'ast', 'az', 'be', 'bg', 'bm', 'bs', 'ca', 'co', 'cr', 'cs', 'cy', 'da', 'de', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fr', 'ga', 'gl', 'gu', 'he', 'hi', 'hr', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ka', 'kk', 'kn', 'ko', 'kr', 'ks', 'ku', 'kw', 'ky', 'la', 'lb', 'lt', 'ml', 'mr', 'na', 'nds', 'nl', 'nn', 'no', 'pl', 'pt', 'qu', 'ro', 'ru', 'simple', 'sk', 'sl', 'sq', 'sr', 'su', 'sv', 'ta', 'te', 'th', 'tk', 'tr', 'tt', 'ug', 'uk', 'ur', 'uz', 'vi', 'vo', 'wo', 'za', 'zh', 'zh-min-nan'],
'wikisource.org': ['ang', 'ar', 'az', 'bg', 'bs', 'ca', 'cs', 'cy', 'da', 'de', 'el', 'en', 'es', 'et', 'fa', 'fi', 'fo', 'fr', 'gl', 'he', 'hr', 'ht', 'hu', 'id', 'is', 'it', 'ja', 'kn', 'ko', 'la', 'lt', 'mk', 'ml', 'nl', 'no', 'pl', 'pt', 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'te', 'th', 'tr', 'uk', 'vi', 'yi', 'zh', 'zh-min-nan'],
'wiktionary.org': ['aa', 'ab', 'af', 'ak', 'als', 'am', 'an', 'ang', 'ar', 'as', 'ast', 'av', 'ay', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ch', 'chr', 'co', 'cr', 'cs', 'csb', 'cy', 'da', 'de', 'dv', 'dz', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'hr', 'hu', 'hy', 'ia', 'id', 'ie', 'ik', 'io', 'is', 'it', 'iu', 'ja', 'jbo', 'jv', 'ka', 'kk', 'kl', 'km', 'kn', 'ko', 'ks', 'ku', 'kw', 'ky', 'la', 'lb', 'li', 'ln', 'lo', 'lt', 'lv', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mo', 'mr', 'ms', 'mt', 'my', 'na', 'nah', 'nds', 'ne', 'nl', 'nn', 'no', 'oc', 'om', 'or', 'pa', 'pi', 'pl', 'ps', 'pt', 'qu', 'rm', 'rn', 'ro', 'roa-rup', 'ru', 'rw', 'sa', 'sc', 'scn', 'sd', 'sg', 'sh', 'si', 'simple', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tpi', 'tr', 'ts', 'tt', 'tw', 'ug', 'uk', 'ur', 'uz', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zh-min-nan', 'zu'],
'wikiversity.org': ['beta', 'de', 'en', 'es', 'fr', 'it']
};
var wsLangs = {
'en': 'English',
'es': 'Español'
};
var wsDefaultSubdomain = 'commons';
var wsDefaultDomain = 'wikimedia.org';
var wsDefaultLang = 'en';
function WikiSelect(subdomainSelect, domainSelect, langSelect)
{
this.subdomainSelect = subdomainSelect;
this.domainSelect = domainSelect;
this.langSelect = langSelect;
this.cleanElement = function (element)
{
while (element.firstChild)
element.removeChild(element.firstChild);
}
this.cleanElement(subdomainSelect);
this.cleanElement(domainSelect);
this.cleanElement(langSelect);
this.getDomain = function ()
{
return this.domainSelect.options[this.domainSelect.selectedIndex].value;
};
this.getSubdomain = function ()
{
return this.subdomainSelect.options[this.subdomainSelect.selectedIndex].value;
};
this.getLang = function ()
{
return this.langSelect.options[this.langSelect.selectedIndex].value;
};
// Build domain list
for (var domain in wsDomains)
{
var option = document.createElement('option');
option.value = domain;
option.appendChild(document.createTextNode(domain));
if (domain == wsDefaultDomain)
option.selected = 'selected';
this.domainSelect.appendChild(option);
}
this.buildLangList = function()
{
// Build lang list
for (var lang in wsLangs)
{
var option = document.createElement('option');
option.value = lang;
option.appendChild(document.createTextNode(lang + ' - ' + wsLangs[lang]));
if (lang == wsDefaultLang)
option.selected = 'selected';
this.langSelect.appendChild(option);
}
}
this.buildLangList();
this.buildSubdomainList = function ()
{
var domain = this.getDomain();
this.cleanElement(this.subdomainSelect);
for (var i = 0; i < wsDomains[domain].length; i++)
{
var subdomain = wsDomains[domain][i];
var option = document.createElement('option');
option.value = subdomain;
option.appendChild(document.createTextNode(subdomain));
if (subdomain == wsDefaultSubdomain || subdomain == wsDefaultLang)
option.selected = 'selected';
this.subdomainSelect.appendChild(option);
}
};
this.buildSubdomainList();
// Not sure whether this is necessary
var parent = this;
this.domainSelect.onchange = function () { parent.buildSubdomainList(); };
this.subdomainSelect.onchange = function ()
{
subdomain = parent.getSubdomain();
if (!wsLangs[subdomain])
subdomain = 'en';
wsDefaultLang = subdomain;
parent.cleanElement(parent.langSelect);
parent.buildLangList();
};
}
var poty = {
'init': function ()
{
if (!document.getElementById('poty-vote-nojs')) return;
// Disable the no javascript warning
document.getElementById('poty-vote-nojs').style.display = 'none';
var container = document.getElementById('poty-vote-js');
container.style.display = 'block';
// Set default language
if (wsLangs[wgUserLanguage])
wsDefaultLang = wgUserLanguage;
var langSelect = document.createElement('select');
var s_lang = document.getElementById('poty-vote-select-lang');
s_lang.parentNode.replaceChild(langSelect, s_lang)
var subdomainSelect = document.createElement('select');
var s_subdomain = document.getElementById('poty-vote-select-subdomain');
s_subdomain.parentNode.replaceChild(subdomainSelect, s_subdomain);
var domainSelect = document.createElement('select');
var s_domain = document.getElementById('poty-vote-select-domain');
s_domain.parentNode.replaceChild(domainSelect, s_domain);
poty['username'] = document.createElement('input');
poty['username'].setAttribute('value', wgUserName);
var s_user = document.getElementById('poty-vote-select-user');
s_user.parentNode.replaceChild(poty['username'], s_user);
var submit = document.createElement('input');
var s_submit = document.getElementById('poty-vote-select-submit');
submit.setAttribute('value', s_submit.firstChild.nodeValue);
submit.setAttribute('type', 'button');
submit.onclick = poty['submit'];
s_submit.parentNode.replaceChild(submit, s_submit);
poty['wikiSelect'] = new WikiSelect(subdomainSelect, domainSelect, langSelect);
},
'submit': function ()
{
var form = document.createElement('form');
form.setAttribute('method', 'post');
form.setAttribute('action', 'http://stable.ts.wikimedia.org/poty/vote?action=token');
form.style.display = 'none';
var i = document.createElement('input');
i.setAttribute('name', 'username');
i.setAttribute('value', poty['username'].value);
form.appendChild(i);
i = document.createElement('input');
i.setAttribute('name', 'wiki');
i.setAttribute('value', poty.wikiSelect.getSubdomain() + '.' + poty.wikiSelect.getDomain());
form.appendChild(i);
i = document.createElement('input');
i.setAttribute('name', 'lang');
i.setAttribute('value', poty.wikiSelect.getLang());
form.appendChild(i);
document.body.appendChild(form)
form.submit();
}
};
$(poty.init);