MediaWiki:Monobook.js

Vikisözlük sitesinden
/*
 * Düzenleme Sayfası Özel İşaretler
 */

if (document.URL.indexOf("=edit") > 0 || document.URL.indexOf("=submit") > 0) {
  importScript('MediaWiki:Onlyifediting.js');
 }

/* 
 * Dynamic Navigation Bars (experimental)
 */

// ============================================================
// BEGIN Dynamic Navigation Bars (experimental)
// FIXME: currently only works for one nav bar on a page at a time
 
// set up the words in your language
 var NavigationBarHide = 'gizle ▲';
 var NavigationBarShow = 'göster ▼';
 
// 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 = 1;
//Honor the User Preferences
if ( ( $.cookie('WiktionaryUseJSPreferences') != 'true' ) || ( $.cookie('WiktionaryPreferencesShowNav') != 'true' ) ) {
         NavigationBarShowDefault = 0;
    } else {
      if ( mw.config.get('wgNamespaceNumber') == 0 ) NavigationBarShowDefault = 999 ;
}
  
/*
 * toggleNavigationBar
 */

// 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;
                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;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
        }
    NavToggle.firstChild.data = NavigationBarHide;
    }
}
 
//createNavigationBarToggleButton

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

            var NavToggle2 = null;          
            for (
                  var NavChild = NavFrame.firstChild;
                  NavChild != null;
                  NavChild = NavChild.nextSibling
                 ) {
                 if ( $(NavChild).hasClass('NavLink' ) ) {
                    NavToggle2 = document.createElement("a");
                    NavToggle2.className = 'NavToggle2';
                    NavToggle2.setAttribute('id', 'NavToggle2' + indexNavigationBar);
                    var NavToggleText2 = document.createTextNode("[değiştir]");

                    NavToggle2.setAttribute('href', NavChild.innerText);

                    NavToggle2.appendChild(NavToggleText2);
                    break;
                 }
             }

            for (
                  var NavChild = NavFrame.firstChild;
                  NavChild != null;
                  NavChild = NavChild.nextSibling
                 ) {
                 if ( $(NavChild).hasClass('NavPic' ) || $(NavChild).hasClass('NavContent' ) ) {
                     if (NavChild.style.display == 'none') {
                         NavToggleText = document.createTextNode(NavigationBarShow);
                         break;
                     }
                 }
                 if ( $(NavChild).hasClass('NavPic' ) || $(NavChild).hasClass('NavContent' ) ) {
                     if (NavChild.style.display == 'block') {
                         NavToggleText = document.createTextNode(NavigationBarHide);
                         break;
                     }
                 }
             }

            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);
                if (NavToggle2) {
                  NavFrame.childNodes[j].appendChild(NavToggle2);
                }
              }
            }
            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);
        }
    }
 
}

jQuery(document).ready(createNavigationBarToggleButton);
 
// END Dynamic Navigation Bars
// ============================================================


function addWarningMessage()
{
    if ((wgCurRevisionId == null) || (wgCurRevisionId != false)) return;
    if(!/&action=edit/.test(window.location.href) && !/&action=submit/.test(window.location.href)) return;
    if(/&section=new/.test(window.location.href)) return;
    if(!/SAS/.test(window.location.href) || (mw.config.get('wgUserName') != null) ) return;
    if(!document.forms.editform) return;
    document.forms.editform.wpSave.onclick = WarningMessage;
}
 
function WarningMessage()
{
  alert('Bu isimde madde oluşturulamaz !'); 
  return false;
}
 
$(addWarningMessage);

/*
 * Collapsible tables *********************************************************
 */
 
 var autoCollapse = 2;
 var collapseCaption = "gizle";
 var expandCaption = "göster";
 
function collapseTable( tableIndex )
  {
     var Button = document.getElementById( "collapseButton" + tableIndex );
     var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
     if ( !Table || !Button ) {
         return false;
     }
 
     var Rows = Table.rows;
 
     if ( Button.firstChild.data == collapseCaption ) {
         for ( var i = 1; i < Rows.length; i++ ) {
             Rows[i].style.display = "none";
         }
         Button.firstChild.data = expandCaption;
     } else {
         for ( var i = 1; i < Rows.length; i++ ) {
             Rows[i].style.display = Rows[0].style.display;
         }
         Button.firstChild.data = collapseCaption;
     }
}
 
function createCollapseButtons()
 {
     var tableIndex = 0;
     var NavigationBoxes = new Object();
     var Tables = document.getElementsByTagName( "table" );
 
     for ( var i = 0; i < Tables.length; i++ ) {
         if ( $(Tables[i]).hasClass("collapsible" ) ) {
 
             /* only add button and increment count if there is a header row to work with */
             var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
             if (!HeaderRow) continue;
             var Header = HeaderRow.getElementsByTagName( "th" )[0];
             if (!Header) continue;
 
             NavigationBoxes[ tableIndex ] = Tables[i];
             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";
 
             ButtonLink.style.color = Header.style.color;
             ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
             ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
             ButtonLink.appendChild( ButtonText );
 
             Button.appendChild( document.createTextNode( "[" ) );
             Button.appendChild( ButtonLink );
             Button.appendChild( document.createTextNode( "]" ) );
 
             Header.insertBefore( Button, Header.childNodes[0] );
             tableIndex++;
         }
     }
 
     for ( var i = 0;  i < tableIndex; i++ ) {
         if ( $(NavigationBoxes[i]).hasClass("collapsed" ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass( "autocollapse" ) ) ) {
             collapseTable( i );
         }
     }
 }
 
$( createCollapseButtons );