Misplaced Pages

MediaWiki:Common.js: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content added
Revision as of 16:41, 1 October 2006 view sourceRuud Koot (talk | contribs)31,416 edits remove style information again (assume this was an edit conflict, else: style information belongs in the CSS) / fix bug← Previous edit Revision as of 15:35, 5 October 2006 view source Ed g2s (talk | contribs)Administrators27,325 editsm image fixNext edit →
Line 469: Line 469:
image.width = 23; image.width = 23;
image.height = 22; image.height = 22;
image.src = 'http://upload.wikimedia.org/wikipedia/fr/0/04/Button_array.png'; image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
image.border = 0; image.border = 0;
image.alt = 'Table'; image.alt = 'Table';

Revision as of 15:35, 5 October 2006

/*
{{interwiki-all}} <pre>
*/
/* tooltips and access keys */
ta = new Object();
ta = new Array('.','My user page'); 
ta = new Array('.','The user page for the ip you\'re editing as'); 
ta = new Array('n','My talk page'); 
ta = new Array('n','Discussion about edits from this ip address'); 
ta = new Array('','My preferences'); 
ta = new Array('l','The list of pages you\'re monitoring for changes.'); 
ta = new Array('y','List of my contributions'); 
ta = new Array('o','Logging in is not required, but brings many benefits.'); 
ta = new Array('o','Logging in is not required, but brings many benefits.'); 
ta = new Array('o','Log out'); 
ta = new Array('t','Discussion about the content page'); 
ta = new Array('e','You can edit this page. Please use the preview button before saving.'); 
ta = new Array('+','Start a new discussion'); 
ta = new Array('e','This page is protected. You can view its source.'); 
ta = new Array('h','Past versions of this page.'); 
ta = new Array('=','Protect this page'); 
ta = new Array('','Unprotect this page');
ta = new Array('d','Delete this page'); 
ta = new Array('d','Restore the edits done to this page before it was deleted'); 
ta = new Array('m','Move this page'); 
ta = new Array('','You don\'t have the permissions to move this page'); 
ta = new Array('w','Add this page to your watchlist'); 
ta = new Array('w','Remove this page from your watchlist'); 
ta = new Array('f','Search Misplaced Pages'); 
ta = new Array('','Main Page'); 
ta = new Array('z','Visit the Main Page'); 
ta = new Array('','About the project, what you can do, where to find things');
ta = new Array('','Featured articles - the best of Misplaced Pages'); 
ta = new Array('','Find background information on current events'); 
ta = new Array('r','List of recent changes in Misplaced Pages'); 
ta = new Array('x','Load a random page'); 
ta = new Array('','The place to find out about Misplaced Pages'); 
ta = new Array('','How to contact Misplaced Pages');
ta = new Array('','Support us'); 
ta = new Array('j','List of all wiki pages that link here'); 
ta = new Array('k','Recent changes in pages linked from this page'); 
ta = new Array('','RSS feed for this page'); 
ta = new Array('','Atom feed for this page'); 
ta = new Array('','View the list of contributions of this user'); 
ta = new Array('','Send a mail to this user'); 
ta = new Array('u','Upload images or media files'); 
ta = new Array('q','List of all special pages');
ta = new Array('','Printable version of this page');
ta = new Array('','Permanent link to this version of the page');
ta = new Array('','Cite this Misplaced Pages article');
ta = new Array('c','View the content page'); 
ta = new Array('c','View the user page'); 
ta = new Array('c','View the media page'); 
ta = new Array('','This is a special page; you can\'t edit the page itself.'); 
ta = new Array('c','View the project page'); 
ta = new Array('c','View the image page'); 
ta = new Array('c','View the system message'); 
ta = new Array('c','View the template'); 
ta = new Array('c','View the help page'); 
ta = new Array('c','View the category page');

if (window.showModalDialog && document.compatMode && document.compatMode == "CSS1Compat")
{
  var oldWidth;
  var docEl = document.documentElement;

  function fixIEScroll()
  {
    if (!oldWidth || docEl.clientWidth > oldWidth)
      doFixIEScroll();
    else
      setTimeout(doFixIEScroll, 1);
  
    oldWidth = docEl.clientWidth;
  }

  function doFixIEScroll() {
    docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";
  }

  document.attachEvent("onreadystatechange", fixIEScroll);
  attachEvent("onresize", fixIEScroll);
}

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

function LinkFA() 
{
   // iterate over all <span>-elements
   for(var i=0; a = document.getElementsByTagName("span"); i++) {
      // if found a FA span
      if(a.className == "FA") {
         // iterate over all <li>-elements
         for(var j=0; b = document.getElementsByTagName("li"); j++) {
            // if found a FA link
            if(b.className == "interwiki-" + a.id) {
               b.style.padding = "0 0 0 16px";
               b.style.backgroundImage = "url('http://upload.wikimedia.org/wikipedia/en/6/60/LinkFA-star.png')";
               b.style.backgroundRepeat = "no-repeat";
               b.title = "This article has gained featured status";
            }
         }
      }
   }
}

addLoadEvent(LinkFA);

 // ============================================================
 // 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 = 1;
 
 
 // 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++
        ) {
        // 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.className == "NavHead") {
                NavFrame.childNodes.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
 // ============================================================




var mpTitle = "Main Page";
var isMainPage = (/(title=|\/wiki\/)(alk:|)ainage/.test(document.location));
var isMainPageFront = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle);
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));

if (isMainPage) 
{

if (isMainPageFront && !isDiff)
{
document.write('<style type="text/css">/*<!]>*/</style>');
}

var mpSmallEnabled;
var mpMinWidth = 700;

function mainPageTransform()
{
       if (isMainPage && document.getElementById('ca-nstab-main')) 
         {document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Main Page';}
       if (((isMainPageFront && !isDiff) || /Main_Page/.test(document.location)) && document.getElementById('ca-nstab-main'))
	var mpContentEl = document.getElementById("bodyContent");
	var mpBrowseEl = document.getElementById("EnWpMpBrowse");
	var mpContainEl = document.getElementById("EnWpMpBrowseContainer");
	var mpMarginEl = document.getElementById("EnWpMpMargin");
	var mpEl = document.getElementById("EnWpMainPage");

	if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl)
		return;

	if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth)
	{
		mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
		mpBrowseEl.className = "EnWpMpBrowseBottom";
		mpMarginEl.style.marginRight = 0;
		mpSmallEnabled = true;
	}
	else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth)
	{
		mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
		mpBrowseEl.className = "EnWpMpBrowseRight";
		mpMarginEl.style.marginRight = "13.8em";
		mpSmallEnabled = false;
	}
}

var onloadFuncts = ;

if (window.addEventListener) 
  window.addEventListener("resize", mainPageTransform, false);
else if (window.attachEvent) 
  window.attachEvent("onresize", mainPageTransform);

}

/* add a redirect button to the edit page toolbar */
if (mwCustomEditButtons) {
  mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png",
    "speedTip": "Redirect",
    "tagOpen": "#REDIRECT [[",
    "tagClose": "]]",
    "sampleText": "Insert text"};
};

//============================================================
// Extra toolbar options
//============================================================
//********WRITTEN BY User:MarkS********
//This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All.

// This is based on the original code on Misplaced Pages:Tools/Editing tools

function InsertButtonsToToolBar()
{
//Strike-Out Button
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png",
    "speedTip": "Strike",
    "tagOpen": "<s>",
    "tagClose": "</s>",
    "sampleText": "Strike-through text"}
//Left-Text Button
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/e/ea/Button_align_left.png",
    "speedTip": "Left-Align",
    "tagOpen": "<div style='text-align: left; direction: ltr; margin-left: 1em;'>\n",
    "tagClose": "\n</div>",
    "sampleText": "Left-aligned text"}
//Center-Text Button
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/5/5f/Button_center.png",
    "speedTip": "Center",
    "tagOpen": "<div style='text-align: center;'>\n",
    "tagClose": "\n</div>",
    "sampleText": "Centered text"}
//Line break button
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png",
    "speedTip": "Line break",
    "tagOpen": "<br />",
    "tagClose": "",
    "sampleText": ""}
//Superscript
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png",
    "speedTip": "Superscript",
    "tagOpen": "<sup>",
    "tagClose": "</sup>",
    "sampleText": "Superscript text"}
//Subscript
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png",
    "speedTip": "Subscript",
    "tagOpen": "<sub>",
    "tagClose": "</sub>",
    "sampleText": "Subscript text"}
//Small Text
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png",
    "speedTip": "Small",
    "tagOpen": "<small>",
    "tagClose": "</small>",
    "sampleText": "Small Text"}
//Comment
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png",
    "speedTip": "Insert hidden Comment",
    "tagOpen": "<!-- ",
    "tagClose": " -->",
    "sampleText": "Comment"}
//Gallery
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/12/Button_gallery.png",
    "speedTip": "Insert a picture gallery",
    "tagOpen": "\n<gallery>\n",
    "tagClose": "\n</gallery>",
    "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"}
//Block Quote
mwCustomEditButtons = {
    "imageFile": "http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png",
    "speedTip": "Insert block of quoted text",
    "tagOpen": "<blockquote>\n",
    "tagClose": "\n</blockquote>",
    "sampleText": "Block quote"}
}

addOnloadHook( InsertButtonsToToolBar );

//============================================================
// Table generator
//============================================================

/**
 *
 * English: Generate an array using Mediawiki syntax
 *
 * @author: fr:user:dake (language conversion and  new options added by en:user:Voice of All)
 * @version: 0.1
 */
 
function generateTable(nbCol, nbRow, exfield)
{
        code = '\n{| class="wikitable"\n';
        code += "|+ TABLE CAPTION <!-- if required -->\n";
        if (exfield==true) code += '!\n';
	
        for (var i=1;i<nbCol+1;i++) code += '! FIELD ' + i + '\n';

        var items = 0;
	for (var j=0;j<nbRow;j++) 
        {
                   if (exfield==true) {	
                        items++;	
			code += '|-\n'
			code += '! ITEM ' + items + '\n';
		   }  else if (exfield==false) {		
			code += '|-\n'
		   }	
		for (var i=0;i<nbCol;i++) code += '| element\n';
	}
	code += '|}\n';
	insertTags('','', code); 
}

/**
 *
 * English: Open a popup with parameters to generate an array. 
 * The number of rows/columns can be modified. Some additional
 * parameters are related to templates available on :fr
 *
 * @author: fr:user:dake
 * @version: 0.1
 */
 
function popupTable()
{
  var popup = window.open('about:blank','WPtable','height=350,width=400,scrollbars=yes');
  
  javaCode = '<script type="text\/javascript">function insertCode(){';
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); ';
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); ';
  javaCode += 'var exfield = document.paramForm.inputItems.checked; ';
  javaCode += 'window.opener.generateTable(col,row,exfield);';
  javaCode += 'window.close(); '
  javaCode += '}<\/script>';
  
  popup.document.write('<html><head><title>Make table</title>');
  popup.document.write('<script type="text\/javascript" src="\/skins-1.5\/common\/wikibits.js"><!-- wikibits js --><\/script>');
  popup.document.write('<style type="text\/css" media="screen,projection">/*<!]>*/<\/style>');
  popup.document.write(javaCode); 
  popup.document.write('</head><body>');
  popup.document.write('<p>Enter the table parameters below: </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('Number of rows: <input type="text" name="inputRow" value="3" ><p>');
  popup.document.write('Number of columns: <input type="text" name="inputCol" value="3" ><p>');
  popup.document.write('Item column: <input type="checkbox" name="inputItems" ><p>');
  popup.document.write('</form">');
  popup.document.write('<i>The default table contains one row of fields.</i><p>');
  popup.document.write('Check "Item column" to give the table a field row <i>and</i> an item column.</i><p>');
  popup.document.write('<p><a href="javascript:insertCode()"> Insert table</a> &nbsp;&nbsp;&nbsp; |');
  popup.document.write(' &nbsp;&nbsp;&nbsp;<a href="javascript:self.close()">Cancel</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}

//Ressemble à la fonction de /skins-1.5/commons/wikibits.js pour insérer un autre lien que insertTags
function table_button()
{
 var toolbar = document.getElementById('toolbar');
 if (!toolbar) return false;
 
 var textbox = document.getElementById('wpTextbox1');
 if (!textbox) return false;
 
 if (!document.selection && textbox.selectionStart == null)
 return false;
 
 var image = document.createElement("img");
 image.width = 23;
 image.height = 22;
 image.src = 'http://upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
 image.border = 0;
 image.alt = 'Table';
 image.title = 'Make table';
 image.style.cursor = "pointer";
 image.onclick = function() {
   popupTable();
   return false;
 }
 toolbar.appendChild(image);
}

// Changes made on Sat, 30 Sep 2006 20:28 UTC, seems to work on IE
addOnloadHook(table_button);


 // ============================================================
 // BEGIN pageview counter
 // 	Please talk to de:User:LeonWeber before changing anything or 
 // 	if there are any issues with that.
 
 // this should be adjusted to a good value.
 // BE CAREFULL, you will break zedler if it's too low!
 // And then DaB. will kill Leon :-(
 var disable_counter = 0;
 var counter_factor = 4000;
 
 function pgcounter_setup()
 {
 	if(disable_counter == 0)
 	{
 		var url = window.location.href;
 		if(Math.floor(Math.random()*counter_factor)==42)  // the probability thing
  		{
  			if(wgIsArticle==true || wgArticleId==0) // do not count history pages etc.
 			{
 				var pgcountNs = wgCanonicalNamespace;
 				if(wgCanonicalNamespace=="")
 				{
 					pgcountNs = "0";
 				}
  				var cnt_url = "http://pgcount.wikimedia.de/index.png?ns=" + pgcountNs + "&title=" + encodeURI(wgTitle) + "&factor=" + counter_factor +"&wiki=enwiki";
 				var img = new Image(); 
 				img.src = cnt_url;
 			}
 		}
 	}
 }
 // Do not use aOnloadFunctions = pgcounter_setup;, some browsers don't like that.
 pgcounter_setup();
 
 // END pageview counter 
 // ============================================================



/*
</pre>
*/