/* generated javascript */
var skin = 'monobook';
var stylepath = 'http://bits.wikimedia.org/skins-1.5';

/* MediaWiki:Common.js */
//<source lang="javascript">
/* Kết các đoạn mã lưu bên ngoài */

if (wgAction == "edit" || wgAction == "submit") //mã chỉ dành riêng cho trang sửa đổi
{
    importScript("MediaWiki:Common.js/edit.js")
}

else if (wgPageName == "Đặc_biệt:Tìm_kiếm")     // mã chỉ dành riêng cho trang tìm kiếm
{
    importScript("MediaWiki:Common.js/search.js")
}

// nhúng bộ gõ AVIM vào toàn bộ các skin của Wikipedia tiếng Việt
importScript("MediaWiki:Him.js");
importScript("MediaWiki:ImportAVIM.js");

/* Mẹo vặt và phím tiện */

ta = new Object();
_proxy_jslib_assign('', ta, ('ca-nstab-ch.E1.BB.A7_.C4.91.E1.BB.81'), '=', ( new Array('c', 'Xem trang chủ đề')));
_proxy_jslib_assign('', ta, ('ca-unprotect'), '=', ( new Array('=','Mở khóa trang này')));
_proxy_jslib_assign('', ta, ('ca-nomove'), '=', ( new Array('','Bạn không thể di chuyển trang này')));
_proxy_jslib_assign('', ta, ('t-print'), '=', ( new Array('','Bản đơn giản để cho dễ in ra')));
_proxy_jslib_assign('', ta, ('t-permalink'), '=', ( new Array('','Địa chỉ thường trực của phiên bản này')));
_proxy_jslib_assign('', ta, ('t-cite'), '=', ( new Array('','Trích dẫn từ trang này')));

/* Kiểm tra một thành phần HTML đã có "class" nào đó chưa **************************************
  */
 
var hasClass = (function () {
     var reCache = {};
     return function (element, className) {
         return (_proxy_jslib_handle(reCache, (className)) ? _proxy_jslib_handle(reCache, (className)) : (_proxy_jslib_assign('', reCache, (className), '=', ( new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))))).test(element.className);
     };
})();

/** Sửa lỗi Internet Explorer **************************************************
  *
  *  Description: Fixes IE horizontal scrollbar bug
  *  Maintainers: [[User:Tom-]]?
  */
 
if (navigator.appName == "Microsoft Internet Explorer" && document.compatMode == "CSS1Compat")
{
   var oldWidth;
   var docEl = document.documentElement;
 
   function fixIEScroll() {
     if (!oldWidth || docEl.clientWidth > oldWidth)
       doFixIEScroll();
     else
       _proxy_jslib_handle(null, 'setTimeout', setTimeout)(doFixIEScroll, 1);
   
     oldWidth = docEl.clientWidth;
   }
 
   function doFixIEScroll() {
     docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
   }
 
   document.attachEvent("onreadystatechange", fixIEScroll);
   attachEvent("onresize", fixIEScroll);
}

/** Liên kết interwiki đến các bài chọn lọc ***************************************
  *
  *  Chức năng: Chuyển dấu chấm trước các liên kết liên wiki của các bài chọn lọc 
  *             thành dấu sao
  *  Người bảo trì: [[:en:User:R. Koot]]
  */
 
function LinkFA() {
     if ( _proxy_jslib_handle(document, 'getElementById')( "p-lang" ) ) {
         var InterwikiLinks = _proxy_jslib_handle(_proxy_jslib_handle(document, 'getElementById')( "p-lang" ), 'getElementsByTagName')( "li" );
 
         for ( var i = 0; i < InterwikiLinks.length; i++ ) {
             if ( _proxy_jslib_handle(document, 'getElementById')( _proxy_jslib_handle(InterwikiLinks, (i)).className + "-fa" ) ) {
                 _proxy_jslib_handle(InterwikiLinks, (i)).className += " FA"
                 _proxy_jslib_handle(InterwikiLinks, (i)).title = "Liên kết này dẫn đến bài chọn lọc.";
             }
         }
     }
}
 
addOnloadHook( LinkFA );

function LinkGA() {
     if ( _proxy_jslib_handle(document, 'getElementById')( "p-lang" ) ) {
         var InterwikiLinks = _proxy_jslib_handle(_proxy_jslib_handle(document, 'getElementById')( "p-lang" ), 'getElementsByTagName')( "li" );
 
         for ( var i = 0; i < InterwikiLinks.length; i++ ) {
             if ( _proxy_jslib_handle(document, 'getElementById')( _proxy_jslib_handle(InterwikiLinks, (i)).className + "-ga" ) ) {
                 _proxy_jslib_handle(InterwikiLinks, (i)).className += " GA"
                 _proxy_jslib_handle(InterwikiLinks, (i)).title = "Liên kết này dẫn đến bài chất lượng tốt.";
             }
         }
     }
}
addOnloadHook( LinkGA );

/*
Tạo biểu tượng trên cùng góc phải
---------------
 
Tìm các hình thuộc class="right-uppermost image" rồi xếp chúng trên thanh tiêu đề
của trang, sau khi tính toán sắp xếp vị trí đối với các hình có sẵn.
*/
 
function rightUppermostImage() {
  var h1 = _proxy_jslib_handle(document, 'getElementsByTagName')("h1")[0];
  var icons = _proxy_jslib_handle(document, 'getElementsByTagName')("div");
  var icons2 = new Array();
  var j = 0;
  for (var i = 0; i < icons.length; (i= _proxy_jslib_assign_rval('++', 'i', '', '', i))) {
    if (_proxy_jslib_handle(icons, (i)).className == "right-uppermost image") {
      _proxy_jslib_assign('', icons2, (j++), '=', ( _proxy_jslib_handle(icons, (i))));
    }
  }
  for (; j > 0; (j= _proxy_jslib_assign_rval('--', 'j', '', '', j))) {
    _proxy_jslib_handle(icons2, (j-1)).style.display = "block"; /* hủy "display:none" mặc định*/
    _proxy_jslib_handle(icons2, (j-1)).style.borderWidth = "1px";
    _proxy_jslib_handle(icons2, (j-1)).style.borderStyle = "solid";
    _proxy_jslib_handle(icons2, (j-1)).style.borderColor = "white";
    _proxy_jslib_handle(h1, 'insertBefore')(_proxy_jslib_handle(icons2, (j-1)), h1.firstChild); /* dịch chuyển */
  }
}
addOnloadHook(rightUppermostImage);

/** Bảng ẩn/hiện *********************************************************
  *
  *  Chức năng: Cho phép bản mẫu có thể ẩn đi lại, chỉ hiện tiêu đề. Xem
  *               [[Wikipedia:NavFrame]].
  *  Người bảo trì: [[:en:User:R. Koot]]
  */
 
var autoCollapse = 2;
var collapseCaption = "ẩn";
var expandCaption = "hiện";
 
function collapseTable( tableIndex ) {
     var Button = _proxy_jslib_handle(document, 'getElementById')( "collapseButton" + tableIndex );
     var Table = _proxy_jslib_handle(document, 'getElementById')( "collapsibleTable" + tableIndex );
 
     if ( !Table || !Button ) {
         return false;
     }
 
     var Rows = _proxy_jslib_handle(Table, 'getElementsByTagName')( "tr" ); 
 
     if ( Button.firstChild.data == collapseCaption ) {
         for ( var i = 1; i < Rows.length; i++ ) {
             _proxy_jslib_handle(Rows, (i)).style.display = "none";
         }
         Button.firstChild.data = expandCaption;
     } else {
         for ( var i = 1; i < Rows.length; i++ ) {
             _proxy_jslib_handle(Rows, (i)).style.display = Rows[0].style.display;
         }
         Button.firstChild.data = collapseCaption;
     }
}
 
function createCollapseButtons() {
     var tableIndex = 0;
     var NavigationBoxes = new Object();
     var Tables = _proxy_jslib_handle(document, 'getElementsByTagName')( "table" );
 
     for ( var i = 0; i < Tables.length; i++ ) {
         if ( hasClass( _proxy_jslib_handle(Tables, (i)), "collapsible" ) ) {
             _proxy_jslib_assign('', NavigationBoxes, ( tableIndex ), '=', ( _proxy_jslib_handle(Tables, (i))));
             _proxy_jslib_handle(_proxy_jslib_handle(Tables, (i)), 'setAttribute')( "id", "collapsibleTable" + tableIndex );
 
             var Button     = document.createElement( "span" );
             var ButtonLink = document.createElement( "a" );
             var ButtonText = document.createTextNode( collapseCaption );
 
             Button.style.styleFloat = "right";
             Button.style.cssFloat = "right";
             Button.style.fontWeight = "normal";
             Button.style.textAlign = "right";
             Button.style.width = "6em";
 
             _proxy_jslib_handle(ButtonLink, 'setAttribute')( "id", "collapseButton" + tableIndex );
             _proxy_jslib_handle(ButtonLink, 'setAttribute')( "href", "javascript:collapseTable(" + tableIndex + ");" );
             _proxy_jslib_handle(ButtonLink, 'appendChild')( ButtonText );
 
             _proxy_jslib_handle(Button, 'appendChild')( document.createTextNode( "[" ) );
             _proxy_jslib_handle(Button, 'appendChild')( ButtonLink );
             _proxy_jslib_handle(Button, 'appendChild')( document.createTextNode( "]" ) );
 
             var Header = _proxy_jslib_handle(_proxy_jslib_handle(_proxy_jslib_handle(Tables, (i)), 'getElementsByTagName')( "tr" )[0], 'getElementsByTagName')( "th" )[0];
             /* only add button and increment count if there is a header row to work with */
             if (Header) {
                 _proxy_jslib_handle(Header, 'insertBefore')( Button, Header.childNodes[0] );
                 tableIndex++;
             }
         }
     }
 
     for ( var i = 0;  i < tableIndex; i++ ) {
         if ( hasClass( _proxy_jslib_handle(NavigationBoxes, (i)), "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( _proxy_jslib_handle(NavigationBoxes, (i)), "autocollapse" ) ) ) {
             collapseTable( i );
         }
     }
}
 
addOnloadHook( createCollapseButtons );

  /** Dynamic Navigation Bars (thử nghiệm) *************************************
  *
  *  Chức năng: See [[Wikipedia:NavFrame]].
  *  Người bảo trì: 
  */
 
  // set up the words in your language
  var NavigationBarHide = '[' + collapseCaption + ']';
  var NavigationBarShow = '[' + expandCaption + ']';
 

  // shows and hides content and picture (if available) of navigation bars
  // Parameters:
  //     indexNavigationBar: the index of navigation bar to be toggled
  function toggleNavigationBar(indexNavigationBar) {
     var NavToggle = _proxy_jslib_handle(document, 'getElementById')("NavToggle" + indexNavigationBar);
     var NavFrame = _proxy_jslib_handle(document, 'getElementById')("NavFrame" + indexNavigationBar);
 
     if (!NavFrame || !NavToggle) {
         return false;
     }
 
     // if shown now
     if (NavToggle.firstChild.data == NavigationBarHide) {
         for (
                 var NavChild = NavFrame.firstChild;
                 NavChild != null;
                 NavChild = NavChild.nextSibling
             ) {
             if ( hasClass( NavChild, 'NavPic' ) ) {
                 NavChild.style.display = 'none';
             }
             if ( hasClass( NavChild, 'NavContent') ) {
                 NavChild.style.display = 'none';
             }
         }
     NavToggle.firstChild.data = NavigationBarShow;
 
     // if hidden now
     } else if (NavToggle.firstChild.data == NavigationBarShow) {
         for (
                 var NavChild = NavFrame.firstChild;
                 NavChild != null;
                 NavChild = NavChild.nextSibling
             ) {
             if (hasClass(NavChild, 'NavPic')) {
                 NavChild.style.display = 'block';
             }
             if (hasClass(NavChild, 'NavContent')) {
                 NavChild.style.display = 'block';
             }
         }
     NavToggle.firstChild.data = NavigationBarHide;
     }
  }
 
  // adds show/hide-button to navigation bars
  function createNavigationBarToggleButton() {
     var indexNavigationBar = 0;
     // iterate over all < div >-elements 
     var divs = _proxy_jslib_handle(document, 'getElementsByTagName')("div");
     for(
             var i=0; 
             NavFrame = _proxy_jslib_handle(divs, (i)); 
             i++
         ) {
         // if found a navigation bar
         if (hasClass(NavFrame, "NavFrame")) {
 
             indexNavigationBar++;
             var NavToggle = document.createElement("a");
             NavToggle.className = 'NavToggle';
             _proxy_jslib_handle(NavToggle, 'setAttribute')('id', 'NavToggle' + indexNavigationBar);
             _proxy_jslib_handle(NavToggle, 'setAttribute')('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
             var NavToggleText = document.createTextNode(NavigationBarHide);
             for (
                  var NavChild = NavFrame.firstChild;
                  NavChild != null;
                  NavChild = NavChild.nextSibling
                 ) {
                 if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                     if (NavChild.style.display == 'none') {
                         NavToggleText = document.createTextNode(NavigationBarShow);
                         break;
                     }
                 }
             }
             _proxy_jslib_handle(NavToggle, 'appendChild')(NavToggleText);
             // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
             for(
               var j=0; 
               j < NavFrame.childNodes.length; 
               j++
             ) {
               if (hasClass(_proxy_jslib_handle(NavFrame.childNodes, (j)), "NavHead")) {
                 _proxy_jslib_handle(_proxy_jslib_handle(NavFrame.childNodes, (j)), 'appendChild')(NavToggle);
               }
             }
             _proxy_jslib_handle(NavFrame, 'setAttribute')('id', 'NavFrame' + indexNavigationBar);
         }
     }
 
  }
 
  addOnloadHook( createNavigationBarToggleButton );

/** Viết lại tựa bài và bỏ dòng "Hạn chế kỹ thuật" khi hiển thị một số tựa bài ***************************************
 
Hàm dước bản mẫu {{tựa sai}} sử dụng
 
Hàm này tìm 
<div id="RealTitleBanner">
  <span id="RealTitle">titre</span>
</div>
 
Nếu có thành phần id="DisableRealTitle" thì tắt hàm
*/
function rewritePageH1() {
  var realTitleBanner = _proxy_jslib_handle(document, 'getElementById')('RealTitleBanner');
  if (realTitleBanner) {
    if (!_proxy_jslib_handle(document, 'getElementById')('DisableRealTitle')) {
      var realTitle = _proxy_jslib_handle(document, 'getElementById')('RealTitle');
      var h1 = _proxy_jslib_handle(document, 'getElementsByTagName')('h1')[0];
      if (realTitle && h1) {
        var titleText = _proxy_jslib_handle(realTitle, 'innerHTML');
        if (titleText == '') h1.style.display = 'none';
        else _proxy_jslib_assign('', h1, 'innerHTML', '=', ( titleText));
        realTitleBanner.style.display = 'none';
      }
    }
  }
}
addOnloadHook(rewritePageH1);

//Làm cho tab của Trang Chính ghi "trang chính" thay cho "trang"
if (wgPageName == 'Trang_Chính' || wgPageName == 'Thảo_luận:Trang_Chính') {
    addOnloadHook(function () {
        var nstab = _proxy_jslib_handle(document, 'getElementById')('ca-nstab-main')
        if (nstab && wgUserLanguage=='vi') 
            _proxy_jslib_assign('', nstab.firstChild.firstChild, 'nodeValue', '=', ( 'Trang Chính'
    ))});
}

/** WikiMiniAtlas *******************************************************
  *
  *  Mô tả: WikiMiniAtlas là bản đồ thế giới xuất hiện khi nhấn và kéo hình trái đất.
  *               Mã này sẽ khiến tất cả các liên kết tọa độ hiển thị nút bật ra WikiMiniAtlas.
  *               Bản thân đoạn mã nằm ở meta để dùng cho nhiều dự án.
  *               Xem [[Meta:WikiMiniAtlas]] để có thêm thông tin. 
  *  Người bảo trì: [[:en:User:Dschwen]]
  */

if (wgServer == "https://secure.wikimedia.org") {
  var metaBase = "https://secure.wikimedia.org/wikipedia/meta";
} else {
  var metaBase = "http://meta.wikimedia.org";
}
importScriptURI(metaBase+"/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript&smaxage=21600&maxage=86400")

var wma_settings =
{
buttonImage: 'http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Gnome-globe.svg/18px-Gnome-globe.svg.png'
}

/* Cố định liên kết "Tải tập tin lên"
 */
addOnloadHook(function() {
if (_proxy_jslib_handle(document, 'getElementById')("t-upload"))
{
_proxy_jslib_assign('', _proxy_jslib_handle(_proxy_jslib_handle(document, 'getElementById')("t-upload"), 'getElementsByTagName')("a")[0], 'href', '=', ( _proxy_jslib_handle(wgArticlePath, 'replace')("$1", "Wikipedia:Tải tập tin lên")
))}
})
//</source>

/* MediaWiki:Monobook.js */
/* <source lang=javascript> */
/* Đây là script được áp dụng khắp website với ngoại hình Monobook. Để áp dụng mã nguồn trong các ngoại hình khác, hãy đưa mã nguồn vào [[MediaWiki:Common.js]] thay vì vào đây.*/

/** Sửa nội dung thanh trên khi kích hoạt sitenotice - CentralNotice **************************
  *
  *  Miêu tả: Đoạn mã này sẽ cố định vị trí của nội dung nằm ở thanh trên (như, sao chọn lọc)
  *               khi kích hoạt chức năng thông báo toàn trang sitenotice hoặc CentralNotice.
  *  Bảo quản: [[:en:User:TheDJ]], [[:en:User:MZMcBride]], [[User:Vinhtantran]]
  */

if((navigator.userAgent.indexOf("MSIE 6")==-1) && (wgAction == 'submit' || wgAction == 'view')) addOnloadHook(function() {
    var cnote = _proxy_jslib_handle(document, 'getElementById')('centralNotice');
    if( !_proxy_jslib_handle(document, 'getElementById')('mw-dismissible-notice') && !(cnote && hasClass(cnote, 'expanded'))) return;
    appendCSS('#bodyContent { position:relative; } \n.topicon { position:absolute; top:-2em !important;}\n#coordinates{ position:absolute; top:1px !important; }');
})

/* </source> */ ;
_proxy_jslib_flush_write_buffers() ;