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

/* MediaWiki:Common.js */
/* Any JavaScript here will be loaded for all users on every page load. */
/*
== Caractères spéciaux ==
 * Ajouter un menu pour choisir des sous-ensembles de caractères spéciaux
 * @note L'ordre de cette liste doit correspondre a celui de MediaWiki:Edittools !
 */

function addCharSubsetMenu() {
  var specialchars = document.getElementById('specialchars');
  if (!specialchars) return;

  var charSubsetSelect = document.createElement("select");
  charSubsetSelect.setAttribute("style", "display:inline");
  // hard to find something that works both on IE and Fx...
  charSubsetSelect.onchange = function () { chooseCharSubset(this.selectedIndex); };

  var options = [
   "Wiki",
   "Mathématiques",
   "API",
   "Latin/Romain",
   "Grec",
   "Cyrillique",
   "AHD",
   "Diacritiques",
   "Allemand",
   "Arabe",
   "Berbère",
   "Catalan",
   "Croate",
   "Espagnol",
   "Espéranto",
   "Estonien",
   "Gallois",
   "Hawaïen",
   "Hébreu",
   "Hiéroglyphe",
   "Hongrois",
   "Indo-européen",
   "Irlandais",
   "Islandais",
   "Italien",
   "Letton",
   "Lituanien",
   "Maltais",
   "Navajo & Apache",
   "Néerlandais",
   "Pinyin",
   "Polonais",
   "Portugais",
   "Rōmaji",
   "Roumain",
   "Scandinave",
   "Serbe",
   "Tchèque",
   "Turc",
   "Vieil anglais",
   "Vietnamien",
   "Yiddish" ];
  
  for (var i in options) {
    var opt = document.createElement("option");
    var txt = document.createTextNode(options[i]);
    opt.appendChild(txt);
    charSubsetSelect.appendChild(opt);
  }

  specialchars.insertBefore(charSubsetSelect, specialchars.childNodes[0]);

  /* default subset - try to use a cookie some day */
  chooseCharSubset(0);
}

/* MediaWiki:Monobook.js (deprecated; migrate to Common.js!) */
/* tooltips and access keys */
var ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you're editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you're monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can't edit the page itself.');
ta['ca-nstab-project'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');

// ============================================================
 // BEGIN Dynamic Navigation Bars (experimantal)
 
 // set up the words in your language
 var NavigationBarHide = '[ আড়ালে রাখো ]';
 var NavigationBarShow = '[ দেখাও ]';
 
 // set up max count of Navigation Bars on page,
 // if there are more, all will be hidden
 // NavigationBarShowDefault = 0; // all bars will be hidden
 // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 var NavigationBarShowDefault = 0;
 
 
 // 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 = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = 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 (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == '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 (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == '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
    for(
            var i=0; 
            NavFrame = document.getElementsByTagName("div")[i]; 
            i++
        ) {
        // if found a navigation bar
        if (NavFrame.className == "NavFrame") {
 
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            
            var NavToggleText = document.createTextNode(NavigationBarHide);
            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 (NavFrame.childNodes[j].className == "NavHead") {
                NavFrame.childNodes[j].appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                var i=1; 
                i<=indexNavigationBar; 
                i++
        ) {
            toggleNavigationBar(i);
        }
    }
 
 }
 
 addLoadEvent(createNavigationBarToggleButton);
 
 // END Dynamic Navigation Bars
 // ============================================================

// Start experimental phonetic transliterator

document.write('<script type="text/javascript" src="' + 'http://bn.wikipedia.org/w/index.php?title=User:Zaheen/translitnew.js&action=raw&ctype=text/javascript&dontcountme=s"' + '&action="raw"></script>');


  function addLoadEvent(func) 
     {
        if (window.addEventListener) 
            window.addEventListener("load", func, false);
        else if (window.attachEvent) 
            window.attachEvent("onload", func);
     }

function addTranslit(editForm,textBox){
checkrt(editForm);

        if (textBox.addEventListener) 
            textBox .addEventListener("keypress", processKeys, false);
        else if (textBox .attachEvent) 
            textBox.attachEvent("onkeypress", processKeys);

}

function addTextEvent() {
var editForm =document.editform;
if(document.editform){
var textBox=document.editform.wpTextbox1;
addTranslit(editForm,textBox);
addCheckbox(editForm,textBox ); 

}
var searchform=document.getElementById('searchform');

var searchInput=document.getElementById('searchInput');
if(searchInput)
addTranslit(searchform,searchInput);

}

function addCheckbox(editform,textBox ){

var element = document.createElement("input");
element.setAttribute("type","checkbox");
element.setAttribute("id","realtime");


if (element.addEventListener) 
            element.addEventListener("click", rtClick, false);
         else if (element.attachEvent) 
            element.attachEvent("onclick", rtClick);

var labelcheckBox = document.createTextNode('Phonetic Bangla Typing. Check/Uncheck box or use Esc as a toggle key to activate/deactivate. Go to WP:Typing for help ');

editform.insertBefore(element,textBox);
document.getElementById("realtime").checked = realTime;
editform.insertBefore(labelcheckBox,textBox);
}

function processKeys(event) {
 if (rtsupported)
 { if (event.keyCode == 27 && !isExplorer()) { 
//escape to toggle

realTime = !realTime;
document.getElementById("realtime").checked = realTime;

}

else if (realTime) translitonkey(event); 
} 
}


var realTime = false;
function rtClick(event) {
realTime = !realTime;
}

var rtsupported = false;
var error; 
function checkrt(editform){
try {

/*
var nav = navigator.userAgent.toUpperCase();
rtsupported = (nav.indexOf("GECKO") >= 0 || nav.indexOf("OPERA") >= 0 || nav.indexOf("SAFARI") >= 0);
*/


rtsupported = (document.selection != undefined)

if (!rtsupported) {
var element = document.createElement("TEXTAREA");
editform.appendChild(element);
if (element.selectionStart != undefined)
rtsupported = true;
editform.removeChild(element);
}

} catch (error) {

}
}
addLoadEvent(addTextEvent)