MediaWiki:Versions.js
Материал из RPGround Wiki
Версия от 22:55, 30 августа 2010; EvilCat (обсуждение | вклад)
/* Это переключатель версий. */ var $vers_glossary=new Array(), $vers_current=new Array(); function setVersionsButtons() { var $holder=getInnerTags(document.body, 'versionswitcher', 'div'); if (!$holder) return true; var $buttons, $words; for (var $h=0; $h<$holder.length; $h++) { $vers_current[$h]=0; $vers_glossary[$h]=new Array(); $buttons=getInnerTags($holder[$h], 'versionbutton', 'span'); for (var $b=0; $b<$buttons.length; $b++) { $buttons[$b].id='var'+$h+'-'+$b; if ($buttons[$b].addEventListener) $buttons[$b].addEventListener('click', pickVariant, false); else if ($buttons[$b].attachEvent)$buttons[$b].attachEvent('onclick', pickVariant); } $buttons=getInnerTags($holder[$h], 'wordvariant', 'span'); for (var $b=0; $b<$buttons.length; $b++) { $words=$buttons[$b].innerHTML; $vers_glossary[$h][$b]=$words.split(','); } } var $nop=true; } function pickVariant(e) { if (!e) var e = window.event; var $button; if (e.target) $button = e.target; else if (e.srcElement) $button = e.srcElement; if ($button.tagName=='U') $button=$button.parentNode; var $id=$button.id.substr(3); $id=$id.split('-'); var $group=$id[0], $pick=$id[1]; if ($vers_current[$group]==$pick) return true; var $varianted=getInnerTags(document.body, 'varianted', 'span'); for ($v=0; $v<$varianted.length; $v++) { for ($c=0; $c<12; $c++) { if (hasClass($varianted[$v], 'case'+$c)) { if ($varianted[$v].innerHTML==$vers_glossary[$group][$vers_current[$group]][$c]) $varianted[$v].innerHTML=$vers_glossary[$group][$pick][$c]; else $varianted[$v].innerHTML=ucfirst($vers_glossary[$group][$pick][$c]); } } } $vers_current[$group]=$pick; } function ucfirst (str) { // Makes a string's first character uppercase // // version: 1008.1718 // discuss at: http://phpjs.org/functions/ucfirst // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) // + bugfixed by: Onno Marsman // + improved by: Brett Zamir (http://brett-zamir.me) // * example 1: ucfirst('kevin van zonneveld'); // * returns 1: 'Kevin van zonneveld' str += ''; var f = str.charAt(0).toUpperCase(); return f + str.substr(1); }