Advertisement
Guest User

common.js

a guest
Mar 14th, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // set up the words in your language
  2. var NavigationBarHide = '[ απόκρυψη ]';
  3. var NavigationBarShow = '[ εμφάνιση ]';
  4.  
  5. // set up the words in your language
  6. var TranslationBarsHide = ' (απόκρυψη όλων)';
  7. var TranslationBarsShow = ' (εμφάνιση όλων)';
  8.  
  9. // set up max count of Navigation Bars on page,
  10. // if there are more, all will be hidden
  11. // NavigationBarShowDefault = 0; // all bars will be hidden
  12. // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
  13. var NavigationBarShowDefault = 0;
  14.  
  15. //Honor the User Preferences
  16. if ( ( $.cookie('WiktionaryUseJSPreferences') != 'true' ) ||
  17.      ( $.cookie('WiktionaryPreferencesShowNav') != 'true' ) ) {
  18.   NavigationBarShowDefault = 0;
  19. }
  20. else {
  21.   if ( wgNamespaceNumber == 0 ) NavigationBarShowDefault = 999 ;
  22. }
  23.  
  24. /* </pre>
  25. ===toggleNavigationBar===
  26. <pre> */
  27.  
  28. // shows and hides content and picture (if available) of navigation bars
  29. // Parameters:
  30. //     indexNavigationBar: the index of navigation bar to be toggled
  31. // setToState: toggle, open, close
  32. // childrenAlso: change state of all children as well (if set to 1)
  33. function toggleNavigationBar(indexNavigationBar,setToState,childrenAlso) {
  34.   if (setToState === undefined) {
  35.     setToState = 'toggle';
  36.   }
  37.   if (childrenAlso === undefined) {
  38.     childrenAlso = 0;
  39.   }
  40.   var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
  41.   var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
  42.   if (!NavFrame || !NavToggle) {
  43.     return false;
  44.   }
  45.   // if shown now
  46.   if (NavToggle.firstChild.data == NavigationBarHide &&
  47.      (setToState == 'toggle' || setToState == 'close' ) ) {
  48.     for (var NavChild = NavFrame.firstChild; NavChild; NavChild = NavChild.nextSibling) {
  49.       if (NavChild.className == 'NavPic') {
  50.         NavChild.style.display = 'none';
  51.       }
  52.       if (NavChild.className == 'NavContent') {
  53.         NavChild.style.display = 'none';
  54.       }
  55.     }
  56.     NavToggle.firstChild.data = NavigationBarShow;
  57.     // if hidden now
  58.   } else if (NavToggle.firstChild.data == NavigationBarShow &&
  59.             (setToState == 'toggle' || setToState == 'open' ) ) {
  60.     for (var NavChild = NavFrame.firstChild; NavChild; NavChild = NavChild.nextSibling) {
  61.       if (NavChild.className == 'NavPic') {
  62.         NavChild.style.display = 'block';
  63.       }
  64.       if (NavChild.className == 'NavContent') {
  65.         NavChild.style.display = 'block';
  66.       }
  67.     }
  68.     NavToggle.firstChild.data = NavigationBarHide;
  69.   }
  70.   if (childrenAlso == 1) {
  71.     var NavFrameDivs = NavFrame.getElementsByTagName('div');
  72.     for (i = 0; i < NavFrameDivs.length; i++) {
  73.       // nested NavFrame
  74.       if (NavFrameDivs[i].className == 'NavFrame') {
  75.         // get the index of the frame
  76.         NavFrameDivs[i].id.match(/NavFrame([0-9]+)/);
  77.         NavFrameDivIndex = RegExp.$1;
  78.         toggleNavigationBar(NavFrameDivIndex,setToState);
  79.       }
  80.     }
  81.   }
  82. }
  83.  
  84. function toggleTranslationBars(indexTranslationHeader) {
  85.   var TranslationToggle = document.getElementById("TranslationToggle" +
  86.                                                     indexTranslationHeader);
  87.   if (!TranslationToggle) {
  88.     return false;
  89.   }
  90.   var TranslationBarsState;
  91.  
  92.   // if hidden now
  93.   if (TranslationToggle.firstChild.data == TranslationBarsShow) {
  94.     TranslationToggle.firstChild.data = TranslationBarsHide;
  95.     TranslationBarsState = 'open';
  96.     // if shown now
  97.   }
  98.   else if (TranslationToggle.firstChild.data == TranslationBarsHide) {
  99.     TranslationToggle.firstChild.data = TranslationBarsShow;
  100.     TranslationBarsState = 'close';
  101.   }
  102.   // find the NavBars that are in our translation table... ewww grody hack
  103.   PossibleNavFrame = TranslationToggle; // walk back up the tree looking for a
  104.                                     // header.. if we hit bodyContent something's wrong
  105.   while (PossibleNavFrame && (! PossibleNavFrame.nodeName.match(/^h[0-9]/i) ) &&
  106.          PossibleNavFrame.nodeName != 'bodyContent') {
  107.          PossibleNavFrame = PossibleNavFrame.parentNode;
  108.   }
  109.   if (!PossibleNavFrame || ! PossibleNavFrame.nodeName.match(/^h[0-9]/i) ) {
  110.     return(-1);
  111.   }
  112.   while (PossibleNavFrame = PossibleNavFrame.nextSibling) {
  113.     // we have "related" translation bars up til a header or end of page
  114.     if (PossibleNavFrame.nodeName.match(/^h[0-9]/i)) {
  115.       return;
  116.     }
  117.     if (PossibleNavFrame.className == 'NavFrame' &&
  118.       PossibleNavFrame.innerHTML.indexOf('class="translations"' >= 0) ) {
  119.       // get the index of the frame
  120.       PossibleNavFrame.id.match(/NavFrame([0-9]+)/);
  121.       NavFrameDivIndex = RegExp.$1;
  122.       toggleNavigationBar(NavFrameDivIndex,TranslationBarsState,1);
  123.     }
  124.   }
  125. }
  126.  
  127. /* </pre>
  128. ===createNavigationBarToggleButton===
  129. <pre> */
  130.  
  131. // adds show/hide-button to navigation bars
  132.  
  133. function createNavigationBarToggleButton() {
  134.   // only in the main namespace please
  135.   // if (wgNamespaceNumber != 0) {
  136.   //   return;
  137.   // }
  138.  
  139.   var indexNavigationBar = 0;
  140.   // iterate over all < div >-elements
  141.   for (var i=0; NavFrame = document.getElementsByTagName("div")[i]; i++) {
  142.     // if found a navigation bar
  143.     // put toggle if it's not a translation bar, every time.
  144.     // put toggle for translation bar, if there are really translations in there
  145.     if (NavFrame.className == "NavFrame") {
  146.       if (NavFrame.innerHTML.indexOf('class="translations"') == -1 ||
  147.           NavFrame.innerHTML.indexOf('wiktionary.org') >= 0) {
  148.         indexNavigationBar++;
  149.        
  150.         // Find the NavHead and attach the toggle link (Must be this complicated
  151.         // because Moz's firstChild handling is borked)
  152.         var NavHead;
  153.         for (var j=0;j < NavFrame.childNodes.length;j++) {
  154.           if (NavFrame.childNodes[j].className == "NavHead")
  155.             NavHead = NavFrame.childNodes[j];
  156.         }
  157.        
  158.         NavHead.style.cursor = 'pointer';
  159.        
  160.         var NavToggle = document.createElement("a");
  161.         NavToggle.className = 'NavToggle';
  162.         NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
  163.         if (NavFrame.innerHTML.indexOf('class="hideshow"') != -1) {
  164.             // όταν το δοκίμασα δεν γινόταν toggle, δηλαδή γινόταν δύο φορές
  165.             // γι αυτό άφησα μόνο το onclick του NavHead
  166.             //NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' +
  167.             //                       indexNavigationBar + ',"toggle",0);');
  168.            
  169.             NavHead.onclick = function () {
  170.                 toggleNavigationBar(indexNavigationBar ,"toggle",0);
  171.             };
  172.         }
  173.         else {
  174.             //NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' +
  175.             //                        indexNavigationBar + ',"toggle",1);');
  176.            
  177.            
  178.             NavHead.onclick = function () {
  179.                 toggleNavigationBar(indexNavigationBar ,"toggle",1);
  180.             };
  181.         }
  182.         var NavToggleText = document.createTextNode(NavigationBarHide);
  183.         NavToggle.appendChild(NavToggleText);
  184.        
  185.         NavHead.appendChild(NavToggle);
  186.        
  187.         NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
  188.       }
  189.     }
  190.   }
  191.   // if more Navigation Bars found than Default: hide all
  192.   if (NavigationBarShowDefault < indexNavigationBar) {
  193.     for (var i=1;i<=indexNavigationBar;i++) {
  194.       toggleNavigationBar(i);
  195.     }
  196.   }
  197. }
  198.  
  199. jQuery(document).ready(createNavigationBarToggleButton);
  200.  
  201. function createTranslationBarsToggleButton() {
  202.   // only in the main namespace please
  203.   if (wgNamespaceNumber != 0) {
  204.     return;
  205.   }
  206.   var indexTranslationHeader = 0;
  207.   // iterate over all < a >-elements
  208.   for( var i=0; TranslationsLink = document.getElementsByTagName("a")[i]; i++ ) {
  209.     // if found a translation header
  210.     if (TranslationsLink.innerHTML.indexOf('Μεταφράσεις') > -1) {
  211.       // count num of tables, if only one in this section don't bother
  212.       TranslationSectionNavFrameCount = 0;
  213.       PossibleNavFrame = TranslationsLink; // walk back the tree looking for a header..
  214.                                            // if we hit bodyContent something's wrong
  215.       while (PossibleNavFrame && (! PossibleNavFrame.nodeName.match(/^h[0-9]/i) ) &&
  216.              PossibleNavFrame.nodeName != 'bodyContent') {
  217.         PossibleNavFrame = PossibleNavFrame.parentNode;
  218.       }
  219.       // if it's not a header element we probably got some other link, e.g. in the TOC
  220.       if (!PossibleNavFrame || ! PossibleNavFrame.nodeName.match(/^h[0-9]/i) ) {
  221.         continue;
  222.       }
  223.       while (PossibleNavFrame = PossibleNavFrame.nextSibling) {
  224.         // we have "related" translation bars up til a header or end of page
  225.         if (PossibleNavFrame.nodeName.match(/^h[0-9]/i)) {
  226.           break;
  227.         }
  228.         if (PossibleNavFrame.className == 'NavFrame' &&
  229.             PossibleNavFrame.innerHTML.indexOf('class="translations"' >= 0) ) {
  230.           if (++TranslationSectionNavFrameCount > 1 ) {
  231.             break;
  232.           }
  233.         }
  234.       }
  235.       if (TranslationSectionNavFrameCount > 1) {
  236.         indexTranslationHeader++;
  237.         var TranslationToggle = document.createElement("a");
  238.         TranslationToggle.className = 'TranslationToggle';
  239.         TranslationToggle.setAttribute('id', 'TranslationToggle' +
  240.                                        indexTranslationHeader);
  241.         TranslationToggle.setAttribute('href', 'javascript:toggleTranslationBars(' +
  242.                                        indexTranslationHeader + ',1);');
  243.         var TranslationToggleText = document.createTextNode(TranslationBarsHide);
  244.         TranslationToggle.appendChild(TranslationToggleText);
  245.         TranslationsLink.parentNode.appendChild(TranslationToggle);
  246.         // initially set as though closed
  247.         TranslationToggle.firstChild.data = TranslationBarsShow;
  248.       }
  249.     }
  250.   }
  251. }
  252.  
  253. jQuery(document).ready(createTranslationBarsToggleButton);
  254. // END Dynamic Navigation Bars
  255.  
  256. /* </pre>
  257. === Υποχρεωτική ανακατεύθυνση (doRedirect) ===
  258. <pre> */
  259.  
  260. /* Redirect if a case-insensitive search on an external link is found */
  261. function doRedirect() {
  262.   dym = document.getElementById('did-you-mean')
  263.   if ( dym ) {
  264.     if ( $.cookie('WiktionaryDisableAutoRedirect') != 'true' ) {
  265.       var dymtarget = dym.firstChild.title ;
  266.       var target = dymtarget ;
  267.       pagetitle = document.getElementsByTagName('h1').item(0).firstChild.nodeValue;
  268.       if (pagetitle == target) {
  269.         alert('No looping allowed.');
  270.         return;
  271.       }
  272.       if ( pagetitle.toLowerCase().replace(/[^a-z]/g, "") != target.toLowerCase().replace(/[^a-z]/g, "") ) {
  273.         alert(target + " does not match " + pagetitle);
  274.         return;
  275.       }
  276.       if ( pagetitle.search(/Editing /g) != -1 ) return;
  277.       pagenamee = pagetitle.replace(/\ /g, "_");
  278.       document.location.replace( '//en.wiktionary.org/wiki/Special:Search/' +
  279.                                   pagenamee ) ;
  280.     }
  281.   }
  282. }
  283.  
  284. /* </pre>
  285. ===fixEditSectionWikifiedLinks===
  286. <pre> */
  287.  
  288. // edit-section still doesn't return to correct spot if link contains a [[wikified]] term.
  289. function fixEditSectionWikifiedLinks() {
  290.   if (/\.5B/.test(window.location.href)) {
  291.     var url=window.location.href.replace(/.5B.5B:/g,"").
  292.                                  replace(/.5B/g, "").replace(/.5D/g, "");
  293.     window.location = url;
  294.   }
  295.   //#capiche_and_.7B.7Btemp.7Calternative_spelling_of.7D.7D
  296.   if (/\.7B\.7Btemp\.7C(.*?)\.7D\.7D/.test(window.location.href)) {
  297.     var url=window.location.href.replace(/\.7B\.7Btemp.7C/, ".7B.7B");
  298.     window.location = url;
  299.   }
  300. }
  301.  
  302. /* </pre>
  303. ===Hide "Main Page" heading and several other elements on the Main Page===
  304. <pre> */
  305.  
  306. var mpTitle = "Wiktionary:Main Page";
  307. var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle);
  308. var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));
  309.  
  310. if (isMainPage && !isDiff) mw.util.addCSS('#lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; }');
  311.  
  312. /* </pre>
  313. === Προτιμήσεις χρήστη (πειραματικό) ===
  314. <pre> */
  315.  
  316. // [[User:Connel MacKenzie/custom.js]] - User preferences
  317. // importScript('User:Connel_MacKenzie/custom.js');
  318.  
  319. /* </pre>
  320. === Wiktionary-specific tooltips ===
  321. <pre> */
  322.  
  323. // function wiktHeadingToolTips() {
  324. // }
  325.  
  326.  
  327. /* </pre>
  328. === Ειδικοί χαρακτήρες ===
  329. <pre> */
  330.  
  331. /* add menu for selecting subsets of special characters */
  332.  /***** must match MediaWiki:Edittools) *****/
  333.  function addCharSubsetMenu() {
  334.   var specialchars = document.getElementById("specialchars");
  335.   if (specialchars) {
  336.    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
  337.      menu += "<option>Γενικά πρότυπα</option>";
  338.      menu += "<option>Ελληνικά</option>";
  339.      menu += "<option>Ελληνικά (πολυτονικό)</option>";
  340.      menu += "<option>Ελληνικά (νέα - ΔΦΑ)</option>";
  341.      menu += "<option>ΔΦΑ</option>";
  342.      menu += "<option>Αζερμπαϊτζανικά (Βόρεια)</option>";
  343.      menu += "<option>Αζερμπαϊτζανικά (Νότια, κυριλλικά)</option>";
  344.      menu += "<option>Αζερμπαϊτζανικά (Νότια, λατινικά)</option>";
  345.      menu += "<option>Αλβανικά</option>";
  346.      menu += "<option>Αμχαρικά</option>";
  347.      menu += "<option>Αραβικά</option>";
  348.      menu += "<option>Αρμενικά</option>";
  349.      menu += "<option>Αφρικάανς</option>";
  350.      menu += "<option>Βένδα</option>";
  351.      menu += "<option>Βιετναμικά</option>";
  352.      menu += "<option>Βολαπούκ</option>";
  353.      menu += "<option>Βοσνιακά</option>";
  354.      menu += "<option>Βουλγαρικά</option>";
  355.      menu += "<option>Γαλλικά</option>";
  356.      menu += "<option>Γερμανικά</option>";
  357.      menu += "<option>Γεωργιανά</option>";
  358.      menu += "<option>Γίντις</option>";
  359.      menu += "<option>Γοτθικά</option>";
  360.      menu += "<option>Δανικά</option>";
  361.      menu += "<option>Εβραϊκά</option>";
  362.      menu += "<option>Εσθονικά</option>";
  363.      menu += "<option>Εσπεράντο</option>";
  364.      menu += "<option>Ισλανδικά</option>";
  365.      menu += "<option>Ισπανικά</option>";
  366.      menu += "<option>Ιταλικά</option>";
  367.      menu += "<option>Καταλανικά</option>";
  368.      menu += "<option>Κινεζικά (πινγίν)</option>";
  369.      menu += "<option>Κουρδικά (Κουρμαντζί)</option>";
  370.      menu += "<option>Κουρδικά (Σορανί)</option>";
  371.      menu += "<option>Κροατικά</option>";
  372.      menu += "<option>Λευκορωσικά (κυριλλικά)</option>";
  373.      menu += "<option>Λευκορωσικά (λατινικά)</option>";
  374.      menu += "<option>Μαλτέζικα</option>";
  375.      menu += "<option>Μολδαβικά (κυριλλικά)</option>";
  376.      menu += "<option>Μολδαβικά (λατινικά)</option>";
  377.      menu += "<option>Νορβηγικά</option>";
  378.      menu += "<option>Ουαλλέζικα</option>";
  379.      menu += "<option>Ούιγκουρ</option>";
  380.      menu += "<option>Ουκρανικά</option>";
  381.      menu += "<option>Ούρντου</option>";
  382.      menu += "<option>Περσικά</option>";
  383.      menu += "<option>Πολωνικά</option>";
  384.      menu += "<option>Πορτογαλικά</option>";
  385.      menu += "<option>Ρουμανικά</option>";
  386.      menu += "<option>Ρωσικά</option>";
  387.      menu += "<option>Σερβικά</option>";
  388.      menu += "<option>Σλαβομακεδονικά</option>";
  389.      menu += "<option>Σλοβακικά</option>";
  390.      menu += "<option>Σότο (βόρεια)</option>";
  391.      menu += "<option>Σότο (νότια)</option>";
  392.      menu += "<option>Σουηδικά</option>";
  393.      menu += "<option>Τουρκικά</option>";
  394.      menu += "<option>Τσεχικά</option>";
  395.      menu += "<option>Τσουάνα</option>";
  396.      menu += "<option>Χαβανέζικα</option>";
  397.      menu += "<option>Χίντι</option>";
  398.    menu += "</select>";
  399.    specialchars.innerHTML = menu + specialchars.innerHTML;
  400.    chooseCharSubset(0); // Standard-CharSubset
  401.   }
  402.  }
  403.  
  404.  
  405.  // CharSubset-Auswahl
  406.  function chooseCharSubset(s) {
  407.   var l = document.getElementById('specialchars').getElementsByTagName('p');
  408.   for (var i = 0; i < l.length ; i++) {
  409.     l[i].style.display = i == s ? 'inline' : 'none';
  410.   }
  411.  }
  412.  
  413. /* </pre>
  414. === Προσωποποίηση του Βικιλεξικού (customizeWiktionary) ===
  415. <pre> */
  416.  
  417. function customizeWiktionary() {
  418.   doRedirect();
  419.   addCharSubsetMenu();
  420.   fixEditSectionWikifiedLinks();
  421.   /*wiktHeadingToolTips();*/
  422. }
  423.  
  424. jQuery(document).ready(customizeWiktionary);
  425.  
  426. //Γεμίζει τη μεταβλητή mwCustomEditButtons που προσθέτει κουμπιά στη μπάρα εργαλείων
  427. function addCustomButton(imageFile, speedTip, tagOpen, tagClose, sampleText)
  428. {
  429.  mwCustomEditButtons[mwCustomEditButtons.length] =
  430.  {"imageFile": imageFile,
  431.   "speedTip": speedTip,
  432.   "tagOpen": tagOpen,
  433.   "tagClose": tagClose,
  434.   "sampleText": sampleText};
  435. }
  436.  
  437. addCustomButton('//upload.wikimedia.org/wikipedia/commons/3/30/Btn_toolbar_rayer.png','Διαγραφή','<s>','</s>','');
  438. addCustomButton('//upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png','Απαρίθμηση','\n# στοιχείο 1\n# στοιχείο 2\n# στοιχείο 3','','');
  439. addCustomButton('//upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png','Λίστα','\n* στοιχείο Α\n* στοιχείο Β\n* στοιχείο Γ','','');
  440. addCustomButton('//upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png','Σχόλιο','<!--','-->','Γράψτε το σχόλιό σας');
  441. addCustomButton('//upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png','Ανακατεύθυνση','#ΑΝΑΚΑΤΕΥΘΥΝΣΗ \[\[','\]\]','όνομα του στόχου');
  442. addCustomButton('//upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png','Κατηγορία','\[\[Κατηγορία:','\]\]','όνομα της κατηγορίας');
  443. addCustomButton('//upload.wikimedia.org/wikipedia/commons/6/65/Button_petit.png','Μικρότερη γραφή','<small>','</small>','');
  444. addCustomButton('//upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png','Εκθέτης','<sup>','</sup>','');
  445. addCustomButton('//upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png','Αδιαχώριστο κενό','&nbsp\;','','');
  446.  
  447. //Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
  448. function marque_tab()
  449. {
  450.   var toolbar = document.getElementById('toolbar');
  451.   if (!toolbar) return false;
  452.  
  453.   var textbox = document.getElementById('wpTextbox1');
  454.   if (!textbox) return false;
  455.  
  456.   if (!document.selection && textbox.selectionStart == null)
  457.   return false;
  458.  
  459.   var image = document.createElement("img");
  460.   image.width = 23;
  461.   image.height = 22;
  462.   image.src = '//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
  463.   image.border = 0;
  464.   image.alt = 'Tableau';
  465.   image.title = 'Tableau';
  466.   image.style.cursor = "pointer";
  467.   image.onclick = function() {
  468.     popupTableau();
  469.     return false;
  470.   }
  471.   toolbar.appendChild(image);
  472. }
  473.  
  474. addOnloadHook(marque_tab);
  475.  
  476. function addLocalEditToolbarItems() {
  477.     if ( typeof $j != 'undefined' && typeof $j.fn.wikiEditor != 'undefined' ) {
  478.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  479.         'sections': {
  480.             'local': { 'type': 'toolbar', 'label': 'Τοπικά' }
  481.         }
  482.     } );
  483.  
  484.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  485.         'section': 'local',
  486.         'groups': { 'IPA': { 'label': 'ΔΦΑ' } }
  487.     } );
  488.  
  489.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  490.         'section': 'local',
  491.         'groups': { 'misc': { 'label': 'Διάφορα' } }
  492.     } );
  493.  
  494.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  495.         'section': 'local', 'group': 'misc',
  496.         'tools': {
  497.             'category': {
  498.                 label: 'Κατηγορία', type: 'button',
  499.                 icon: '//upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png',
  500.                 action: {
  501.                     type: 'encapsulate',
  502.                     options: { pre: "[[Κατηγορία:όνομα της κατηγορίας]]" }
  503.                 }
  504.             }
  505.         }
  506.     } );
  507.  
  508.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  509.         'section': 'local', 'group': 'misc',
  510.         'tools': {
  511.             'category': {
  512.                 label: 'Ανακατεύθυνση', type: 'button',
  513.                 icon: '//upload.wikimedia.org/wikipedia/commons/c/c8/Button_redirect.png',
  514.                 action: {
  515.                     type: 'encapsulate',
  516.                     options: { pre: "#ΑΝΑΚΑΤΕΥΘΥΝΣΗ [[όνομα του στόχου]]" }
  517.                 }
  518.             }
  519.         }
  520.     } );
  521.  
  522.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  523.         'section': 'local', 'group': 'misc',
  524.         'tools': {
  525.             'category': {
  526.                 label: 'Σχόλιο HTML', type: 'button',
  527.                 icon: '//upload.wikimedia.org/wikipedia/commons/3/37/Btn_toolbar_commentaire.png',
  528.                 action: {
  529.                     type: 'encapsulate',
  530.                     options: { pre: "<!-- Γράψτε το σχόλιό σας -->" }
  531.                 }
  532.             }
  533.         }
  534.     } );
  535.  
  536.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  537.         'section': 'local', 'group': 'misc',
  538.         'tools': {
  539.             'category': {
  540.                 label: 'Αδιαχώριστο κενό', type: 'button',
  541.                 icon: '//upload.wikimedia.org/wikipedia/commons/4/4b/Button_nbsp.png',
  542.                 action: { type: 'encapsulate',
  543.                     options: { pre: '&',  post: 'nbsp;' }
  544.                 }
  545.             }
  546.         }
  547.     } );
  548.  
  549.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  550.         'section': 'local', 'group': 'misc',
  551.         'tools': {
  552.             'category': {
  553.                 label: 'Προφορά (ΔΦΑ)', type: 'button',
  554.                 icon: '//upload.wikimedia.org/wikipedia/commons/f/f2/Button_prononciation.png',
  555.                 action: { type: 'encapsulate',
  556.                     options: { pre: '===\{{προφορά}}===\n\{{ΔΦΑ|',  post: '}\}' }
  557.                 }
  558.             }
  559.         }
  560.     } );
  561.  
  562.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  563.         'section': 'local', 'group': 'misc',
  564.         'tools': {
  565.             'category': {
  566.                 label: 'Ετυμολογία (αρχαία)', type: 'button',
  567.                 icon: '//upload.wikimedia.org/wikipedia/commons/5/52/Button_grec.png',
  568.                 action: { type: 'encapsulate',
  569.                     options: { pre: ':\{{PAGENAME}\} < \{{αρχ}\} [[',  post: ']]' }
  570.                 }
  571.             }
  572.         }
  573.     } );
  574.  
  575.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  576.         'section': 'local', 'group': 'misc',
  577.         'tools': {
  578.             'category': {
  579.                 label: 'Κλείδα ταξινόμησης', type: 'button',
  580.                 icon: '//upload.wikimedia.org/wikipedia/commons/3/32/Btn_toolbar_Evalution_Securite_informatique.png',
  581.                 action: { type: 'encapsulate',
  582.                     options: { pre: '\{{κλείδα ταξινόμησης|',  post: '\}}\n' }
  583.                 }
  584.             }
  585.         }
  586.     } );
  587.  
  588.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  589.         'section': 'local', 'group': 'IPA',
  590.         'tools': {
  591.             'category': {
  592.                 label: 'Τόνος', type: 'button',
  593.                 icon: '//upload.wikimedia.org/wiktionary/el/e/ed/%CE%94%CF%86%CE%B1-%CB%88.png',
  594.                 action: { type: 'encapsulate',
  595.                     options: { pre: 'ˈ' }
  596.                 }
  597.             }
  598.         }
  599.     } );
  600.  
  601.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  602.         'section': 'local', 'group': 'IPA',
  603.         'tools': {
  604.             'category': {
  605.                 label: 'ο/ω όπως στο «πάνω»', type: 'button',
  606.                 icon: '//upload.wikimedia.org/wiktionary/el/7/7c/%CE%94%CF%86%CE%B1-%C9%94.png',
  607.                 action: { type: 'encapsulate',
  608.                     options: { pre: 'ɔ' }
  609.                 }
  610.             }
  611.         }
  612.     } );
  613.  
  614.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  615.         'section': 'local', 'group': 'IPA',
  616.         'tools': {
  617.             'category': {
  618.                 label: 'ε/αι όπως στο «μέλι»', type: 'button',
  619.                 icon: '//upload.wikimedia.org/wiktionary/el/0/07/%CE%94%CF%86%CE%B1-%C9%9B.png',
  620.                 action: { type: 'encapsulate',
  621.                     options: { pre: 'ɛ' }
  622.                 }
  623.             }
  624.         }
  625.     } );
  626.  
  627.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  628.         'section': 'local', 'group': 'IPA',
  629.         'tools': {
  630.             'category': {
  631.                 label: 'γ όπως στο «γάτα»', type: 'button',
  632.                 icon: '//upload.wikimedia.org/wiktionary/el/e/e1/%CE%94%CF%86%CE%B1-%C9%A3.png',
  633.                 action: { type: 'encapsulate',
  634.                     options: { pre: 'ɣ' }
  635.                 }
  636.             }
  637.         }
  638.     } );
  639.  
  640.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  641.         'section': 'local', 'group': 'IPA',
  642.         'tools': {
  643.             'category': {
  644.                 label: 'ουρανικό γ όπως στο «για»', type: 'button',
  645.                 icon: '//upload.wikimedia.org/wiktionary/el/2/2e/%CE%94%CF%86%CE%B1-%CA%9D.png',
  646.                 action: { type: 'encapsulate',
  647.                     options: { pre: 'ʝ' }
  648.                 }
  649.             }
  650.         }
  651.     } );
  652.  
  653.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  654.         'section': 'local', 'group': 'IPA',
  655.         'tools': {
  656.             'category': {
  657.                 label: 'ουρανικό γκ όπως στο «γκιόνης»', type: 'button',
  658.                 icon: '//upload.wikimedia.org/wiktionary/el/b/bc/%CE%94%CF%86%CE%B1-%C9%9F-.png',
  659.                 action: { type: 'encapsulate',
  660.                     options: { pre: 'ɟ' }
  661.                 }
  662.             }
  663.         }
  664.     } );
  665.  
  666.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  667.         'section': 'local', 'group': 'IPA',
  668.         'tools': {
  669.             'category': {
  670.                 label: 'δ όπως στο «δέμα»', type: 'button',
  671.                 icon: '//upload.wikimedia.org/wiktionary/el/d/da/%CE%94%CF%86%CE%B1-%C3%B0.png',
  672.                 action: { type: 'encapsulate',
  673.                     options: { pre: 'ð' }
  674.                 }
  675.             }
  676.         }
  677.     } );
  678.  
  679.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  680.         'section': 'local', 'group': 'IPA',
  681.         'tools': {
  682.             'category': {
  683.                 label: 'θ όπως στο «θέμα»', type: 'button',
  684.                 icon: '//upload.wikimedia.org/wiktionary/el/4/4c/%CE%94%CF%86%CE%B1-%CE%B8.png',
  685.                 action: { type: 'encapsulate',
  686.                     options: { pre: 'θ' }
  687.                 }
  688.             }
  689.         }
  690.     } );
  691.  
  692.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  693.         'section': 'local', 'group': 'IPA',
  694.         'tools': {
  695.             'category': {
  696.                 label: 'ουρανικό λ όπως στο «ήλιος»', type: 'button',
  697.                 icon: '//upload.wikimedia.org/wiktionary/el/1/1d/%CE%94%CF%86%CE%B1-%CA%8E.png',
  698.                 action: { type: 'encapsulate',
  699.                     options: { pre: 'ʎ' }
  700.                 }
  701.             }
  702.         }
  703.     } );
  704.  
  705.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  706.         'section': 'local', 'group': 'IPA',
  707.         'tools': {
  708.             'category': {
  709.                 label: 'χειλοδοντικό μ όπως στο «έμφαση»', type: 'button',
  710.                 icon: '//upload.wikimedia.org/wiktionary/el/8/8a/%CE%94%CF%86%CE%B1-%C9%B1.png',
  711.                 action: { type: 'encapsulate',
  712.                     options: { pre: 'ɱ' }
  713.                 }
  714.             }
  715.         }
  716.     } );
  717.  
  718.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  719.         'section': 'local', 'group': 'IPA',
  720.         'tools': {
  721.             'category': {
  722.                 label: 'ρ όπως στο «πάρα»', type: 'button',
  723.                 icon: '//upload.wikimedia.org/wiktionary/el/d/d9/%CE%94%CF%86%CE%B1-%C9%BE.png',
  724.                 action: { type: 'encapsulate',
  725.                     options: { pre: 'ɾ' }
  726.                 }
  727.             }
  728.         }
  729.     } );
  730.  
  731.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  732.         'section': 'local', 'group': 'IPA',
  733.         'tools': {
  734.             'category': {
  735.                 label: 'ουρανικό ν όπως στο «πανιά»', type: 'button',
  736.                 icon: '//upload.wikimedia.org/wiktionary/el/5/53/%CE%94%CF%86%CE%B1-%C9%B2.png',
  737.                 action: { type: 'encapsulate',
  738.                     options: { pre: 'ɲ' }
  739.                 }
  740.             }
  741.         }
  742.     } );
  743.  
  744.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  745.         'section': 'local', 'group': 'IPA',
  746.         'tools': {
  747.             'category': {
  748.                 label: 'υπερωικό γ όπως στο «άγχος» ή το «εγγονός»', type: 'button',
  749.                 icon: '//upload.wikimedia.org/wiktionary/el/0/09/%CE%94%CF%86%CE%B1-%C5%8B.png',
  750.                 action: { type: 'encapsulate',
  751.                     options: { pre: 'ŋ' }
  752.                 }
  753.             }
  754.         }
  755.     } );
  756.  
  757.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  758.         'section': 'local', 'group': 'IPA',
  759.         'tools': {
  760.             'category': {
  761.                 label: 'ουρανικό χ όπως στο «χέρι»', type: 'button',
  762.                 icon: '//upload.wikimedia.org/wiktionary/el/e/e8/%CE%94%CF%86%CE%B1-%C3%A7.png',
  763.                 action: { type: 'encapsulate',
  764.                     options: { pre: 'ç' }
  765.                 }
  766.             }
  767.         }
  768.     } );
  769.  
  770.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  771.         'sections': { 'languages': { 'type': 'booklet', 'label': 'Γλώσσες',  'deferLoad': true,
  772.             'pages': {
  773.             'greek': {
  774.                 'layout': 'characters', 'label': 'Ελληνικά (νέα)',
  775.                 'characters': [ 'Α', 'Ά', 'Β', 'Γ', 'Δ', 'Ε', 'Έ', 'Ζ', 'Η', 'Ή', 'Θ', 'Ι', 'Ί', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Ό', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Ύ', 'Φ', 'Χ', 'Ψ', 'Ω', 'Ώ', 'α', 'ά', 'β', 'γ', 'δ', 'ε', 'έ', 'ζ', 'η', 'ή', 'θ', 'ι', 'ί', 'ϊ', 'ΐ', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'ό', 'π', 'ρ', 'σ', 'ς', 'τ', 'υ', 'ύ', 'ϋ', 'ΰ', 'φ', 'χ', 'ψ', 'ω', 'ώ', '·' ]
  776.             },
  777.             'greek-polytonic': {
  778.                 'layout': 'characters', 'label': 'Ελληνικά (πολυτονικά)',
  779.                 'characters':   [ 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'Ϝ', 'Ϻ', 'ϟ', 'Ϡ', 'Ϛ', 'Ϸ', 'Ῥ', 'α', 'β', 'ϐ', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ϑ', 'ι', 'κ', 'ϰ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ϖ', 'ρ', 'ϱ', 'σ', 'ς', 'τ', 'υ', 'φ', 'ϕ', 'χ', 'ψ', 'ω', 'ϝ', 'ϻ', 'ϟ', 'ϡ', 'ϛ', 'ϸ', 'ῤ', 'ῥ', 'Ά', 'Έ', 'Ή', 'Ί', 'Ό', 'Ύ', 'Ώ', 'ά', 'έ', 'ή', 'ί', 'ό', 'ύ', 'ώ', 'ᾴ', 'ῄ', 'ῴ', 'Ὰ', 'Ὲ', 'Ὴ', 'Ὶ', 'Ὸ', 'Ὺ', 'Ὼ', '—', 'ὰ', 'ὲ', 'ὴ', 'ὶ', 'ὸ', 'ὺ', 'ὼ', 'ᾲ', 'ῂ', 'ῲ', 'ᾶ', 'ῆ', 'ῖ', 'ῦ', 'ῶ', 'ᾷ', 'ῇ', 'ῷ', 'ῗ', 'ῧ', 'ῒ', 'ῢ', 'ΐ', 'ΰ', 'ᾼ', 'ῌ', 'ῼ', 'ᾳ', 'ῃ', 'ῳ', 'Ἀ', 'Ἐ', 'Ἠ', 'Ἰ', 'Ὀ', 'Υ̓', 'Ὠ', 'ᾈ', 'ᾘ', 'ᾨ', 'ἀ', 'ἐ', 'ἠ', 'ἰ', 'ὀ', 'ὐ', 'ὠ', 'ᾀ', 'ᾐ', 'ᾠ', 'Ἄ', 'Ἔ', 'Ἤ', 'Ἴ', 'Ὄ', 'Ὤ', 'ᾌ', 'ᾜ', 'ᾬ', 'ἄ', 'ἔ', 'ἤ', 'ἴ', 'ὄ', 'ὔ', 'ὤ', 'ᾄ', 'ᾔ', 'ᾤ', 'Ἂ', 'Ἒ', 'Ἢ', 'Ἲ', 'Ὂ', 'Ὢ', 'ᾊ', 'ᾚ', 'ᾪ', 'ἂ', 'ἒ', 'ἢ', 'ἲ', 'ὂ', 'ὒ', 'ὢ', 'ᾂ', 'ᾒ', 'ᾢ', 'Ἆ', 'Ἦ', 'Ἶ', 'Ὦ', 'ᾎ', 'ᾞ', 'ᾮ', 'ἆ', 'ἦ', 'ἶ', 'ὖ', 'ὦ', 'ᾆ', 'ᾖ', 'ᾦ', 'Ἁ', 'Ἑ', 'Ἡ', 'Ἱ', 'Ὁ', 'Ὑ', 'Ὡ', 'Ῥ', 'ἁ', 'ἑ', 'ἡ', 'ἱ', 'ὁ', 'ὑ', 'ὡ', 'ῥ', 'Ἅ', 'Ἕ', 'Ἥ', 'Ἵ', 'Ὅ', 'Ὕ', 'Ὥ', 'ᾍ', 'ᾝ', 'ᾭ', 'ἅ', 'ἕ', 'ἥ', 'ἵ', 'ὅ', 'ὕ', 'ὥ', 'ᾅ', 'ᾕ', 'ᾥ', 'Ἃ', 'Ἓ', 'Ἣ', 'Ἳ', 'Ὃ', 'Ὓ', 'Ὣ', 'ᾋ', 'ᾛ', 'ᾫ', 'ἃ', 'ἓ', 'ἣ', 'ἳ', 'ὃ', 'ὓ', 'ὣ', 'ᾃ', 'ᾓ', 'ᾣ', 'Ἇ', 'Ἧ', 'Ἷ', 'Ὗ', 'ᾏ', 'ᾟ', 'ᾯ', 'ἇ', 'ἧ', 'ἷ', 'ὗ', 'ὧ', 'ᾇ', 'ᾗ', 'ᾧ', 'Ᾰ', 'ᾰ', 'Ῐ', 'ῐ', 'Ῠ', 'ῠ', 'Ᾱ', 'ᾱ', 'Ῑ', 'ῑ', 'Ῡ', 'ῡ' ]
  780.             },
  781.             'greek-ipa': {
  782.                 'layout': 'characters', 'label': 'ΔΦΑ (Ελληνικά)',
  783.                 'characters': [ 'a', 'ɛ', 'e̞', 'ɔ', 'o̞', 'i', 'u', 'a͜i', 'ɛ͜i', 'ɔ͜i', 'v', 'b', 'ʝ', 'ɣ', 'g', 'ɟ', 'ð', 'd', 'z', 'θ', 'i', 'j', 'c', 'k', 'l', 'ʎ', 'm', 'ɱ', 'n', 'ɲ', 'ŋ', 'ks', 'p', 'ɾ', 's', 't', 'f', 'ç', 'x', 'ps', 'ʣ', 'ʦ', 'ˈ' ]
  784.             },
  785.             'french': {
  786.                 'layout': 'characters', 'label': 'Γαλλικά',
  787.                 'characters': [ 'À', 'Â', 'Ç', 'É', 'È', 'Ê', 'Ë', 'Î', 'Ï', 'Ô', 'Œ', 'Ù', 'Û', 'Ü', 'à', 'â', 'ç', 'é', 'è', 'ê', 'ë', 'î', 'ï', 'ô', 'œ', 'ù', 'û', 'ü' ]
  788.             },
  789.             'ipa': {
  790.                 'layout': 'characters', 'label': 'ΔΦΑ',
  791.                 'characters': [ 'a', 'a̝', 'a̞', 'a̤', 'a̰', 'ɑ', 'ɑ̃', 'ɒ', 'ɐ', 'ɐ̯', 'ʌ', 'æ', 'æ̝', 'æ̞', 'ɶ', 'e', 'e̯', 'e̝', 'e̞', 'ẽ', 'ɘ', 'ə', 'ᵊ', 'ə̯', 'ə̃', 'ɚ', 'ɛ', 'ɛ̝', 'ɛ̞', 'ɛ̃', 'ɜ', 'ɝ', 'i', 'i̯', 'ĭ', 'ĩ', 'ɨ', 'ɪ', 'ɪ̯', 'ɪ̃', 'œ', 'œ̝', 'œ̞', 'ɞ', 'o', 'o̝', 'o̞', 'õ', 'ɔ', 'ɔ̝', 'ɔ̞', 'ɔ̃', 'ɵ', 'ø', 'ø̝', 'ø̞', 'ɷ', 'u', 'u̯', 'ŭ', 'ũ', 'ʉ', 'ʊ', 'ʊ', 'ʊ̯', 'ɯ', 'y', 'y̯', 'ʏ', 'b', 'b̥', 'b̤', 'b̰', 'ɓ', 'ɓ̥', 'β', 'β̞', 'ʙ', 'c', 'ç', 'ɕ', 'd', 'd̥', 'd̪', 'd̼', 'd̚', 'ɖ', 'ɗ', 'ʣ', 'ʥ', 'ʤ', 'ð', 'ð̞', 'f', 'ɸ', 'ɡ', 'g̊', 'ɠ', 'ɡ͡ʘ', 'ɡ͡ǀ', 'ɡ͡ǃ', 'ɡ͡ǂ', 'ɡ͡ǁ', 'ɡ͡b', 'ɢ', 'ʛ', 'ʛ̥', 'ɢ͡ʘ', 'ɢ͡ǀ', 'ɢ͡ǃ', 'ɢ͡ǂ', 'ɢ͡ǁ', 'ɣ', 'ˠ', 'ɣ̊', 'h', 'ʰ', 'ʱ', 'ɦ', 'ɧ', 'ħ', 'ʜ', 'j', 'ʲ', 'ʝ', 'ɟ', 'k', 'kʼ', 'k̚', 'k͡ʘ', 'k͡ǀ', 'k͡ǃ', 'k͡ǂ', 'k͡ǁ', 'k͡p', 'l', 'ˡ', 'l̥', 'l̩', 'l̰', 'ɭ', 'ɫ', 'ɬ', 'ʎ', 'ɮ', 'ʟ', 'm', 'm̩', 'm̰', 'ɱ', 'n', 'ⁿ', 'n̩', 'n̥', 'n̼', 'ɳ', 'ɲ', 'ŋ', 'ŋ̊', 'ŋ̩', 'ŋ̍', 'ŋ͡m', 'ŋ͡ʘ', 'ŋ͡ǀ', 'ŋ͡ǃ', 'ŋ͡ǂ', 'ŋ͡ǁ', 'ɴ', 'ɴ͡ʘ', 'ɴ͡ǀ', 'ɴ͡ǃ', 'ɴ͡ǂ', 'ɴ͡ǁ', 'p', 'pʼ', 'p̚', 'q', 'q͡ʘ', 'q͡ǀ', 'q͡ǃ', 'q͡ǂ', 'q͡ǁ', 'r', 'r̩', 'r̥', 'r̝', 'r̼', 'ɾ', 'ɾ̥', 'ɾ̃', 'ɿ', 'ɹ', 'ɹ̩', 'ɽ', 'ɻ', 'ʀ', 'ʁ', 'ʁ̞', 'ɺ', 'ѵ', 'ѵ̟', 's', 'ˢ', 'sʼ', 's̬', 'ʂ', 'ʃ', 'ʄ', 'ʅ', 'ʆ', 't', 'tʼ', 't̪', 't̚', 't̬', 'ʈ', 't͡ɬ', 'ʨ', 'ʦ', 'θ', 'v', 'v̊', 'ʋ', 'w', 'ʷ', 'w̩', 'ʍ', 'w', 'w̰', 'ɰ', 'ɥ', 'x', 'ˣ', 'χ', 'z', 'z̥', 'z̃', 'ʐ', 'ʑ', 'ʒ', 'ʓ', 'ʕ', 'ˁ', 'ʔ', 'ˀ', 'ˀ̣', 'ʢ', 'ʡ', 'ʖ', 'ʘ', 'ʘ͡ɡ', 'ʘ͡ɢ', 'ʘ͡k', 'ʘ͡ŋ', 'ʘ͡ɴ', 'ʘ͡q', 'ǀ', 'ǀ͡ɡ', 'ǀ͡ɢ', 'ǀ͡k', 'ǀ͡ŋ', 'ǀ͡ɴ', 'ǀ͡q', '!', 'ǃ͡ɡ', 'ǃ͡ɢ', 'ǃ͡k', 'ǃ͡ŋ', 'ǃ͡ɴ', 'ǃ͡q', 'ǂ', 'ǂ͡ɡ', 'ǂ͡ɢ', 'ǂ͡k', 'ǂ͡ŋ', 'ǂ͡ɴ', 'ǂ͡q', 'ǁ', 'ǁ͡ɡ', 'ǁ͡ɢ', 'ǁ͡k', 'ǁ͡ŋ', 'ǁ͡ɴ', 'ǁ͡q', 'ˈ', 'ˌ', 'ˊ', 'ˋ', '˅', 'ː', 'ˑ', '↓', '↑', '˥', '˦', '˧', '˨', '˩', '˘', '.', '‿', '|', '‖', 'a͜i', 'ɛ͜i', 'ɔ͜i' ]
  792.             }
  793.             }
  794.                 }
  795.              }
  796.     } );
  797.  
  798.  
  799.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  800.         'sections': { 'templates': { 'type': 'booklet', 'label': 'Πρότυπα',  'deferLoad': true,
  801.             'pages': {
  802.             'general-templates': {
  803.                 'layout': 'characters', 'label': 'Γενικά πρότυπα',
  804.                 'characters': [ '==\{{-el-}\}==', '==\{{-en-}\}==', '==\{{-fr-}\}==', '==\{{-it-}\}==', '==\{{-de-}\}==', '==\{{--}\}==', '\{{PAGENAME}\}', '===\{{ετυμολογία}\}===', '===\{{προφορά}\}===', '====\{{σημειώσεις}\}====', '====\{{συνώνυμα}\}====', '====\{{αντώνυμα}\}====', '====\{{συγγενικά}\}====', '====\{{σύνθετα}\}====', '====\{{βλέπε}\}====', '====\{{αναφορές}\}====', '====\{{ομώνυμα}\}====', '====\{{εκφράσεις}\}====', '====\{{μεταφράσεις}\}====', '\{{σύνδεσμος||}\}', '[[Κατηγορία:]]', '[[Αρχείο:|thumb]]', '#ΑΝΑΚΑΤΕΥΘΥΝΣΗ [[]]', '\{{αδετυμ}\}', '\{{αρχ}\}', '\{{ελνστ}\}', '\{{μσν}\}', '\{{μτγ}\}', '\{{ετυμ ΧΧ}\}', '\{{αντιδάνειο}\}', '\{{σμσδ}\}', '\{{μτφδ}\}', '\{{λενδ}\}', '\{{δσμμ}\}', '\{{μπφ}\}', '\{{μτχππ}\}', '\{{μτχπε}\}', '\{{ουσεπ α}\}', '\{{ουσεπ θ}\}', '\{{ουσεπ ο}\}', '===\{{ουσιαστικό}\}===', '===\{{επίθετο}\}===', '===\{{ρήμα}\}===', '===\{{μετοχή}\}===', '===\{{επίρρημα}\}===', '===\{{σύνδεσμος}\}===', '===\{{επιφώνημα}\}===', '===\{{έκφραση}\}===', '===\{{κύριο όνομα}\}===', '===\{{συντομομορφή}\}===', '* \{{}\} : \{{τ||}\}', ', \{{τ||}\}', '* \{{}\} : [[]]', '\{{σύνδεσμος||el}\}', '[[w:|]]', '[[s:|]]', '[[b:|]]', '[[commons:|]]', '[[m:|]]', '[[q:|]]', '[[n:|]]', '[[v:|]]', '\{{ΒΠ}\}', '\{{Παράρτημα|}\}', '\{{ΔΦΑ}\}',
  805.         { 'label': "εικόνα-thumb", 'action': { 'type': 'encapsulate', 'options': { 'pre': "[[Αρχείο:", 'post': "|thumb|λεζάντα]]" } } },
  806.         { 'label': "nowiki", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<nowiki>", 'post': "</nowiki>" } } },
  807.         { 'label': "noinclude", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<noinclude>", 'post': "</noinclude>" } } },
  808.         { 'label': "includeonly", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<includeonly>", 'post': "</includeonly>" } } },
  809.         { 'label': "pre", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<pre>", 'post': "</pre>" } } },
  810.         { 'label': "σχόλιο HTML", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<!-- ", 'post': " -->" } } },
  811.         { 'label': "br", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<br />", 'post': "" } } },
  812.         { 'label': "small", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<small>", 'post': "</small>" } } },
  813.         { 'label': "s", 'action': { 'type': 'encapsulate', 'options': { 'pre': "<s>", 'post': "</s>" } } },
  814.                                ]
  815.             },
  816.             'greek-templates': {
  817.                 'layout': 'characters', 'label': 'Πρότυπα κλίσεων (Ελληνικά)',
  818.                 'characters': [ '\{{el-κλίσ-\'ουρανός\'}\}', '\{{el-κλίσ-\'γιος\'}\}', '\{{el-κλίσ-\'δρόμος\'}\}', '\{{el-κλίσ-\'άγγελος\'}\}', '\{{el-κλίσ-\'αντίλαλος\'}\}', '\{{el-κλίσ-\'νικητής\'}\}', '\{{el-κλίσ-\'μπαλωματής\'}\}', '\{{el-κλίσ-\'πραματευτής\'}\}', '\{{el-κλίσ-\'ναύτης\'}\}', '\{{el-κλίσ-\'νοικοκύρης\'}\}', '\{{el-κλίσ-\'φούρναρης\'}\}', '\{{el-κλίσ-\'αγώνας\'}\}', '\{{el-κλίσ-\'ταμίας\'}\}', '\{{el-κλίσ-\'φύλακας\'}\}', '\{{el-κλίσ-\'σφουγγαράς\'}\}', '\{{el-κλίσ-\'καφές\'}\}', '\{{el-κλίσ-\'Νίκος\'}\}', '\{{el-κλίσ-\'Κρόνος\'}\}', '\{{el-κλίσ-\'Μαθιός\'}\}', '\{{el-κλίσ-\'Δημητρός\'}\}', '\{{el-κλίσ-\'Φίλιππος\'}\}', '\{{el-κλίσ-\'καρδιά\'}\}', '\{{el-κλίσ-\'γιαγιά\'}\}', '\{{el-κλίσ-\'ώρα\'}\}', '\{{el-κλίσ-\'ελπίδα\'}\}', '\{{el-κλίσ-\'κότα\'}\}', '\{{el-κλίσ-\'θάλασσα\'}\}', '\{{el-κλίσ-\'σάλπιγγα\'}\}', '\{{el-κλίσ-\'ψυχή\'}\}', '\{{el-κλίσ-\'νίκη\'}\}', '\{{el-κλίσ-\'ζάχαρη\'}\}', '\{{el-κλίσ-\'σκέψη\'}\}', '\{{el-κλίσ-\'δύναμη\'}\}', '\{{el-κλίσ-\'αλεπού\'}\}', '\{{el-κλίσ-\'Αγγελική\'}\}', '\{{el-κλίσ-\'Αργυρώ\'}\}', '\{{el-κλίσ-\'Κατέρω\'}\}', '\{{el-κλίσ-\'Μαρία\'}\}', '\{{el-κλίσ-\'βουνό\'}\}', '\{{el-κλίσ-\'πεύκο\'}\}', '\{{el-κλίσ-\'σίδερο\'}\}', '\{{el-κλίσ-\'πρόσωπο\'}\}', '\{{el-κλίσ-\'δέσιμο\'}\}', '\{{el-κλίσ-\'παιδί\'}\}', '\{{el-κλίσ-\'παιδάκι\'}\}', '\{{el-κλίσ-\'τραγούδι\'}\}', '\{{el-κλίσ-\'μέρος\'}\}', '\{{el-κλίσ-\'άνθος\'}\}', '\{{el-κλίσ-\'έδαφος\'}\}', '\{{el-κλίσ-\'κύμα\'}\}', '\{{el-κλίσ-\'όνομα\'}\}', '\{{el-κλίσ-\'κρέας\'}\}', '\{{el-κλίσ-\'γραμματέας\'}\}', '\{{el-κλίσ-\'συγγενής\'}\}', '\{{el-κλίσ-\'καλός\'}\}', '\{{el-κλίσ-\'γλυκός\'}\}', '\{{el-κλίσ-\'ωραίος\'}\}', '\{{el-κλίσ-\'όμορφος\'}\}', '\{{el-κλίσ-\'κακοποιός\'}\}', '\{{el-κλίσ-\'συνεχής\'}\}', '\{{el-κλίσ-\'σταχτής\'}\}', '\{{el-κλίσ-\'ζηλιάρης\'}\}', '\{{el-κλίσ-\'βαθύς\'}\}', '\{{el-κλίσ-\'ελώδης\'}\}', '\{{el-κλίσ-\'αγαπώ\'}\}', '\{{el-κλίσ-\'βλέπω\'}\}', '\{{el-κλίσ-\'δροσίζω\'}\}', '\{{el-κλίσ-\'καλώ\'}\}', '\{{el-κλίσ-\'λαλώ\'}\}', '\{{el-κλίσ-\'δένω\'}\}', '\{{el-κλίσ-\'δένομαι\'}\}', '\{{el-κλίσ-\'ταξιδεύω\'}\}' ]
  819.             },
  820.             'french-templates': {
  821.                 'layout': 'characters', 'label': 'Πρότυπα (Γαλλικά)',
  822.                 'characters': [ '\{{fr-v-pron}\}', '\{{fr-v-pron-pass}\}', '\{{fr-v-pron-récipr}\}', '\{{fr-v-pron-réfl}\}', '\{{fr-κλίσ-\'act-if\'}\}', '\{{fr-κλίσ-\'amour-eux\'}\}', '\{{fr-κλίσ-\'berg-er\'}\}', '\{{fr-κλίσ-\'bon\'}\}', '\{{fr-κλίσ-\'can-al\'}\}', '\{{fr-κλίσ-\'cruel\'}\}', '\{{fr-κλίσ-\'dans-eur\'}\}', '\{{fr-κλίσ-\'direc-teur\'}\}', '\{{fr-κλίσ-\'gros\'}\}', '\{{fr-κλίσ-\'indien\'}\}', '\{{fr-κλίσ-\'or-al\'}\}', '\{{fr-κλίσ-Minv-Fman}\}', '\{{fr-κλίσ-Mman-Fman}\}', '\{{fr-κλίσ-Mrég-Frég}\}', '\{{fr-κλίσ-f-man-s}\}', '\{{fr-κλίσ-idem}\}', '\{{fr-κλίσ-mf-rég}\}', '\{{fr-κλίσ-pl-man}\}', '\{{fr-κλίσ-rég}\}', '\{{fr-κλίσ-x}\}' ]
  823.             }
  824.                     }
  825.         }
  826.              }
  827.     } );
  828.     }
  829. }
  830. if ( typeof $j != 'undefined' ) $j(document).ready(addLocalEditToolbarItems);
  831.  
  832. var sectionsInToolbar=new Array ();
  833. var groupsInSection=new Array ();
  834.  
  835. function existsEditToolbarSection ( sectionName ) {
  836.   // set up if empty
  837.   if ( sectionsInToolbar.length == 0 ) {
  838.       var count=0;
  839.       possibleSections = document.getElementsByTagName('div');
  840.       for (i = 0; i<possibleSections.length; i++) {
  841.           if (possibleSections[i].className.indexOf('booklet section section-') == 0 ||
  842.               possibleSections[i].className.indexOf('toolbar section section-' ) == 0 ) {
  843.              sectionsInToolbar[count] = possibleSections[i].className.substring(24);
  844.              possibleGroups = possibleSections[i].getElementsByTagName('div');
  845.              var groupcount = 0;
  846.              groupsInSection[count]=new Array ();
  847.              for (j=0; j< possibleGroups.length; j++) {
  848.                 if (possibleGroups[j].className.indexOf('group group-') == 0) {
  849.                    // μόνο το όνομα, όχι το 'group group-'
  850.                    groupsInSection[count][groupcount++] = possibleGroups[j].className.substring(12);
  851.                 }
  852.              }
  853.              count++;
  854.           }
  855.       }
  856.   }
  857.   for (i=0; i<sectionsInToolbar.length; i++) {
  858.        if (sectionsInToolbar[i] == sectionName) {
  859.           return true;
  860.        }
  861.   }
  862.   return false;
  863. }
  864.  
  865. function existsEditToolbarGroup (sectionName, groupName) {
  866.     for (i=0; i<sectionsInToolbar.length; i++) {
  867.        if (sectionsInToolbar[i] == sectionName) {
  868.           for (j=0; j<groupsInSection[i].length; j++) {
  869.               if (groupsInSection[i][j] == groupName) {
  870.                   return true;
  871.               }
  872.           }
  873.        }
  874.     }
  875.     return false;
  876. }
  877.  
  878. function addGroupNameToSectionNameList (sectionName, groupName) {
  879.     for (i=0; i<sectionsInToolbar.length; i++) {
  880.        if (sectionsInToolbar[i] == sectionName) {
  881.           for (j=0; j<groupsInSection[i].length; j++) {
  882.               if (groupsInSection[i][j] == groupName) {
  883.                   return;
  884.               }
  885.           }
  886.           groupsInSection[i][groupsInSection[i].length] = groupName;
  887.           return;
  888.        }
  889.     }
  890.     return;
  891. }
  892.  
  893. /*
  894.  παράμετροι:
  895.  imageFile: URL προς το εικονίδιο (22x22 px)
  896.  speedTip: το κείμενο που φαίνεται όταν βάλεις τον κέρσορα πάνω στο εικονίδιο
  897.  textToEnter: το κείμενο που εισάγεται όταν πατήσεις το κουμπί
  898.  toolbarSectionName: το όνομα που εμφανίζεται στη μπάρα δίπλα στα άλλα τμήματα (Προχωρημένα, Τοπικά κλπ.)
  899.                      αν βάλεις όνομα ενός υπάρχοντος τμήματος κουμπιών, τα δικά σου κουμπιά θα προστεθούν
  900.                      σε αυτό· αν βάλεις όνομα καινούριου τμήματος, θα δημιουργηθεί
  901. */
  902. function addCustomButtonToLocalVectorToolbarButtons(imageFile, speedTip, textToEnter, toolbarSectionName) {
  903.     if ( typeof $j != 'undefined' && typeof $j.fn.wikiEditor != 'undefined' ) {
  904.         if ( toolbarSectionName === undefined ) {
  905.            toolbarSectionName = 'local';
  906.            toolbarSectionLabel = 'Toπικά';
  907.         }
  908.         else {
  909.            toolbarSectionLabel = toolbarSectionName;
  910.         }
  911.         // υπάρχει ήδη το τμήμα;
  912.         if ( ! existsEditToolbarSection( toolbarSectionName ) ) {
  913.             // δημιουργούμε τμήμα με το ορισμένο όνομα και με ομάδα misc
  914.             var sectionObject = {};
  915.             sectionObject[toolbarSectionName] = { 'type': 'toolbar', 'label': toolbarSectionLabel };
  916.             $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { 'sections': sectionObject } );
  917.             sectionsInToolbar[sectionsInToolbar.length] = toolbarSectionName;
  918.             groupsInSection[sectionsInToolbar.length - 1] = new Array();
  919.         }
  920.         // υπάρχει η ομάδα μέσα σε αυτό το τμήμα;
  921.         if (! existsEditToolbarGroup( toolbarSectionName, 'misc' ) ) {
  922.             $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  923.             'section': toolbarSectionName,
  924.         'groups': { 'misc': { 'label': 'Διάφορα' } }
  925.         } );
  926.             addGroupNameToSectionNameList(toolbarSectionName,'misc');
  927.         }
  928.     $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
  929.         'section': toolbarSectionName, 'group': 'misc',
  930.         'tools': {
  931.             'category': {
  932.                 label: speedTip, type: 'button',
  933.                 icon: imageFile,
  934.                 action: { type: 'encapsulate',
  935.                     options: { pre: textToEnter }
  936.                 }
  937.             }
  938.         }
  939.     } );
  940.     }
  941. }
  942.  
  943. /* Remember to keep [[MediaWiki:Standard.js]] in sync with this, for classic style! */
  944. /*
  945. </pre>
  946. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement