MediaWiki:Versions.js

Материал из RPGround Wiki
Перейти к: навигация, поиск
/* Это переключатель версий. */

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);
}