﻿/* generated javascript */
var skin = 'marine';
var stylepath = '/skins';

/* MediaWiki:Common.js */
/* <source lang="javascript">
Размещённый здесь код JavaScript будет загружен всем пользователям при обращении к какой-либо странице
*/

/**********************************************************************************/
 function addLoadEvent( f ) { addOnloadHook( f ); }

 /** Import module *************************************************************
  *
  *  Description: Includes a raw wiki page as javascript or CSS, 
  *               used for including user made modules.
  *  Maintainers: [[en:User:AzaToth]], фиксанул в ВикиТрадиции администратор Afinogenoff.
  */
 
 function importScript( page ) {
     var url = wgScriptPath + '/index.php?title='
                            + escape( page.replace( ' ', '_' ) )
                            + '&action=raw&ctype=text/javascript&dontcountme=s';
     var scriptElem = document.createElement( 'script' );
     scriptElem.setAttribute( 'src' , url );
     scriptElem.setAttribute( 'type' , 'text/javascript' );
     document.getElementsByTagName( 'head' )[0].appendChild( scriptElem );
 }
 
 function importStylesheet( page ) {
     var sheetPath = wgScriptPath
               + '/index.php?title='
               + escape( page.replace( ' ', '_' ) )
               + '&action=raw&ctype=text/css';
     var sheetRule = '@import "' + sheetPath + '";'
     var styleElem = document.createElement( 'style' );
     styleElem.setAttribute( 'type' , 'text/css' );
     try {
        var SheetTextNode = document.createTextNode( sheetRule );
        styleElem.appendChild( SheetTextNode );
        document.getElementsByTagName( 'head' )[0].appendChild( styleElem );
     } catch (e) {
        try {
           document.createStyleSheet(sheetPath);
        } catch (ee) {}
     }
 }
 
$(function(){
   $.localScroll({  // плавное проматывание страницы внутренними её гиперссылками
      hash: true    // указывать #... в конце гиперссылки
   });
 
   toggleToc = function(){ // плавное сокрытие и открытие оглавления страницы
      var toc = $('#toc ul:first');
      var toggleLink = $('#togglelink');
 
      if ((toc.length != 0) && (toggleLink.length != 0)) {
         if (!( $(toc).is(':visible') )) {
            toggleLink.text(tocHideText);
            document.cookie = "hidetoc=0";
         } else {
            toggleLink.text(tocShowText);
            document.cookie = "hidetoc=1";
         };
         $(toc).slideToggle(1000);
      };
   };
});

// подгрузка файла со скриптами для редактирования  *****************************************

function importEditingScriptsAndStyles() {
   importScript('MediaWiki:Onlyifediting.js');
   importScript('MediaWiki:Oldspecialchars.js');
   importStylesheet('MediaWiki:Oldspecialchars.css');
}
if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0){
   if (wgCanonicalNamespace != "Special"){
      importEditingScriptsAndStyles();
   }
}

// раскрытие сокрытых разделов  *****************************************
// div.anExpander и div.toExpand внутри div.frameExpander
// div.antiExpander внутри div.toExpand

function expandableSections(){
   var $expandList = $('#content div.frameExpander');
   $expandList.each(function(expandIdx){
      var $theExpander = $('div.anExpander:first', this);
      if ($theExpander.length == 0) {
         return true;      // continue next iteration of each()
      }
      $theExpander.html('<a href="#" onClick="expandSection(this); return false;">'+
         $theExpander.html() + '</a>'
      );

      var $theAntiExpander = $('div.antiExpander:first', this);
      if ($theAntiExpander.length == 0) {
         return true;      // continue next iteration of each()
      }
      $theAntiExpander.html('<a href="#" onClick="unexpandSection(this); return false;">'+
         $theAntiExpander.html() + '</a>'
      );
   });
}
 
function unexpandSection(sectionObject){ // accepts both raw and jQuery-wrapped objects
   var $toExpand = $(sectionObject).closest('div.frameExpander').children().filter('div.toExpand:first');
   if ($toExpand.length == 0) return false;

   $toExpand.slideUp(1000, function(){
      $(this).closest('div.frameExpander').children().filter('div.anExpander:first').slideDown(500);
   });
}
function expandSection(sectionObject){ // accepts both raw and jQuery-wrapped objects
   var $esExpander = $(sectionObject).closest('div.anExpander');
   if ($esExpander.length == 0) return false;
 
   $esExpander.slideUp(500, function(){
      $(this).closest('div.frameExpander').children().filter('div.toExpand:first').slideDown(1000);
   });
}
addOnloadHook(expandableSections);

/*
 *  Функция hasClass, заимствованная из английской Википедии через русскоязычную.
 *
 *  Создаёт закрытый (private в объектно-ориентированном смысле) объект reCache
 *  (от англ. «regular expression cache», кэш регулярных выражений), который кэширует
 *  регулярные выражения (тоже объекты), при помощи которых можно проверять, принадлежит ли
 *  тот или иной элемент тому или иному классу (классу в HTML/CSS-смысле, а не в объектном).
 *
 *  Такой подход позволяет функции hasClass не создавать регулярные выражения «на лету»
 *  всякий раз, когда они понадобятся, а использовать вместо этого готовые. Поэтому
 *  функция hasClass() удобна во всех случаях, когда есть необходимость проверять много
 *  элементов HTML на принадлежность одному и тому же классу. Она используется
 *  в реализации сворачивающихся таблиц и блоков (см. функции collapsibleTables
 *  и collapsibleDivs и тому подобные ниже); а может, и ещё для чего пригодится.
 *
 *  Закрытость объекта reCache достигается механизмом JavaScript function closures,
 *  см. подробности на [[:mdc:Core JavaScript 1.5 Guide:Working with Closures]]
 *
*/
var hasClass = (function (){
   var reCache = {};
   return function (element, className){
      return (reCache[className] ? reCache[className] :
                                  (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))
             ).test(element.className);
   };
})();

/*************************************************************************************************/

 var auto_comment = 0

// русификация кнопок на панели инструментов
if (wgAction == 'edit' || wgAction == 'submit') 
addOnloadHook(function(){
 if (mwEditButtons.length < 3) return;
 mwEditButtons[0].imageFile = 'http://traditio.ru/images/9/9a/Button_boldru.png';
 mwEditButtons[1].imageFile = 'http://traditio.ru/images/8/88/Button_italicru.png';
 mwEditButtons[2].imageFile = 'http://traditio.ru/images/3/3d/Button_internal_link_ru.png'
})

/*************************************************************************************************/
/*  Редактирование нулевого раздела, как в россияноязычной Википедии.
 *  (Когда подымется Традиция, можно будет перетащить приспособление оттуда.)
*/

function editZeroSection(){
   var ContentDiv = document.getElementById('bodyContent').parentNode;
   for (var child = ContentDiv.firstChild;  child != null;  child = child.nextSibling){
      if (hasClass(child, 'firstHeading')){
         child.innerHTML = '<span class="editsection">[<a href="' +
                           wgScript + '?title='+wgPageName + '&action=edit&section=0" ' +
                           'title="Править нулевой раздел страницы">править</a>]</span>'
         + child.innerHTML;
         break;
      }
   }
}
if ((wgAction != 'history') && (wgAction != 'edit') && (wgUserName != void 0)){
  addOnloadHook(editZeroSection)
}
/* </source> */

/* MediaWiki:Marine.js */
