/* generated javascript */
if (!window.skin) {
	var skin = 'monaco';
	var stylepath = 'http://images.wikia.com/common/releases_200912.2/skins';
}

/* MediaWiki:Common.js */
/* Any JavaScript here will be loaded for all users on every page load. */
/* <pre> */

/**** Remove Main Page title ****/

if(document.title.indexOf("Main Page - ") == 0) {
   document.write('<style type="text/css">/*<![CDATA[*/ #lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/</style>');
}

/* </pre> */

/** Main Page layout fixes *********************************************************
  *
  *  Description:        Various layout fixes for the main page, including an
  *                      additional link to the complete list of languages available
  *                      and the renaming of the 'Article' to to 'Main Page'.
  */
 
function mainPageRenameNamespaceTab() {
     try {
         var Node = document.getElementById( 'ca-nstab-main' ).firstChild;
         if ( Node.textContent ) {      // Per DOM Level 3
             Node.textContent = 'Main Page';
         } else if ( Node.innerText ) { // IE doesn't handle .textContent
             Node.innerText = 'Main Page';
         } else {                       // Fallback
             Node.replaceChild( Node.firstChild, document.createTextNode( 'Main Page' ) ); 
         }
     } catch(e) {
         // bailing out!
     }
}
 
function mainPageAppendCompleteListLink() {
     try {
         var node = document.getElementById( "p-lang" )
                            .getElementsByTagName('div')[0]
                            .getElementsByTagName('ul')[0];
 
         var aNode = document.createElement( 'a' );
         var liNode = document.createElement( 'li' );
 
         aNode.appendChild( document.createTextNode( 'Complete list' ) );
         aNode.setAttribute( 'href' , 'http://meta.wikimedia.org/wiki/List_of_Wikipedias' );
         liNode.appendChild( aNode );
         liNode.className = 'interwiki-completelist';
         node.appendChild( liNode );
      } catch(e) {
        // lets just ignore what's happened
        return;
     }
}
 
if ( wgTitle == 'Main Page' && ( wgNamespaceNumber == 0 || wgNamespaceNumber == 1 ) ) {
        addOnloadHook( mainPageRenameNamespaceTab );
}
 
if ( wgTitle == 'Main Page' && wgNamespaceNumber == 0 ) {
        addOnloadHook( mainPageAppendCompleteListLink );
}
// **************************************************
// Experimental javascript countdown timer (Splarka)
// Version 0.0.3
// **************************************************
//
// Usage example:
//  <span class="countdown" style="display:none;">
//  Only <span class="countdowndate">January 01 2007 00:00:00 PST</span> until New years.
//  </span>
//  <span class="nocountdown">Javascript disabled.</span>

function updatetimer(i) {
var now = new Date();
var then = timers[i].eventdate;
var diff = count=Math.floor((then.getTime()-now.getTime())/1000);

// catch bad date strings
if(isNaN(diff)) { 
timers[i].firstChild.nodeValue = '** ' + timers[i].eventdate + ' **' ;
return;
}

// determine plus/minus
if(diff<0) {
diff = -diff;
var tpm = 'T plus ';
} else {
var tpm = 'T minus ';
}

// calcuate the diff
var left = (diff%60) + ' seconds';
diff=Math.floor(diff/60);
if(diff > 0) left = (diff%60) + ' minutes ' + left;
diff=Math.floor(diff/60);
if(diff > 0) left = (diff%24) + ' hours ' + left;
diff=Math.floor(diff/24);
if(diff > 0) left = diff + ' days ' + left
timers[i].firstChild.nodeValue = tpm + left;

// a setInterval() is more efficient, but calling setTimeout()
// makes errors break the script rather than infinitely recurse
timeouts[i] = setTimeout('updatetimer(' + i + ')',1000);
}

function checktimers() {
//hide 'nocountdown' and show 'countdown'
var nocountdowns = getElementsByClassName(document, 'span', 'nocountdown');
for(var i in nocountdowns) nocountdowns[i].style.display = 'none'
var countdowns = getElementsByClassName(document, 'span', 'countdown');
for(var i in countdowns) countdowns[i].style.display = 'inline'

//set up global objects timers and timeouts.
timers = getElementsByClassName(document, 'span', 'countdowndate');  //global
timeouts = new Array(); // generic holder for the timeouts, global
if(timers.length == 0) return;
for(var i in timers) {
timers[i].eventdate = new Date(timers[i].firstChild.nodeValue);
updatetimer(i);  //start it up
}
}
addOnloadHook(checktimers);

// **************************************************
//  - end -  Experimental javascript countdown timer
// **************************************************

/*<nowiki>*/
/** additional scripts **/
if ( wgIsArticle || window.location.href.indexOf( 'action=submit' ) > -1 )
{
  addScript( 'MediaWiki:CollapsibleTables.js' );
  hookEvent( 'load', function()
  {
    new CollapsibleTables();
    diffwithFix();
    
    // Extension for the deletion drop down list
    if ( wgAction == 'delete' && ( delReasonBtn = document.getElementById( 'wpConfirmB' ) ) )
    {
      var delReasonList        = document.getElementById( 'wpDeleteReasonList' );
      var delLink              = document.createElement( 'a' );
      delLink.href             = 'javascript:void(0);'
      delLink.title            = document.getElementById( 'wpReason' ).value;
      delLink.style.fontSize   = '0.9em';
      delLink.style.marginLeft = '1em';
      delLink.onclick          = function()
      {
        document.getElementById( 'wpReason' ).value = this.title;
      }
      delReasonList.onchange   = function ()
      {
        document.getElementById( 'wpReason' ).value = '';
        this.onchange = null;
      }
      delLink.appendChild( document.createTextNode( 'restore default reason' ) );
      delReasonBtn.parentNode.appendChild( delLink );
      delete delLink, delReasonList, delReasonBtn;
    }
  } );
}
if ( wgPageName == 'Special:Upload' && document.getElementById( 'mw-upload-form' ) !== 'undefined' )
{
  addScript( 'MediaWiki:UploadForm.js' );
  hookEvent( 'load', function()
  {
    new UploadForm();
  } );
}


/**** function addScript.js
* by Patrick Westerhoff [poke]
*/
function addScript ( pagename )
{
  var script  = document.createElement( 'script' );
  pagename    = encodeURI( pagename.replace( ' ', '_' ) );
  script.src  = '/index.php?title=' + pagename + '&action=raw&ctype=text/javascript';
  script.type = 'text/javascript';
  
  document.getElementsByTagName( 'head' )[0].appendChild( script );
}
/**** function diffwithFix.js
* by Patrick Westerhoff [poke]
*/
function diffwithFix ()
{
  var diffSpan = document.getElementById( 'diffwith' );
  if ( diffSpan == undefined )
    return;
  
  var diffLink  = diffSpan.getElementsByTagName( 'a' )[0];
  var diffTitle = diffSpan.title;
  var xmlHttp;
  
  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch ( e )
  {
    try
    {
      xmlHttp = new ActiveXObject( 'Msxml2.XMLHTTP' );
    }
    catch ( e )
    {
      try
      {
        xmlHttp = new ActiveXObject( 'Microsoft.XMLHTTP' );
      }
      catch ( e )
      {
        diffSpan.style.fontSize = '90%';
        diffSpan.innerHTML      = '(Automated diff <b>not available</b>.)';
        return;
      }
    }
  }
  
  xmlHttp.onreadystatechange = function ()
  {
    if ( xmlHttp.readyState != 4 )
      return;
    
    revs = xmlHttp.responseXML.getElementsByTagName( 'rev' );
    
    if ( revs.length > 0 )
    {
      diffLink.href += '&oldid=' + revs[0].getAttribute( 'revid' );
      diffSpan.title = '';
    }  
  } 
  xmlHttp.open( 'GET', '/api.php?format=xml&action=query&prop=revisions&rvprop=ids&rvlimit=1&titles=' + diffTitle, true );
  xmlHttp.send( null );
}
/*</nowiki>*/

/* MediaWiki:Monaco.js */
// prototype functions
function $A(a) {
var r = [];
for (var i = 0, len = a.length; i < len; ++i) r.push(a[i]);
return r;
}

Function.prototype.bind = function() {
var __method = this, args = $A(arguments), object = args.shift();
return function() { return __method.apply(object, args.concat($A(arguments))) };
}

// portal switch
var pspans;
var cTab = 1;
function doPortals() {
tabs = document.getElementById("mptabs");
if (tabs) {
pspans = tabs.getElementsByTagName("span");
for (x=0;x<pspans.length;x++) {
if (pspans[x].className == "activetab" || pspans[x].className == "inactivetab") {
pspans[x].parentNode.onclick = switchTab.bind(pspans[x].parentNode,x/2);
if (pspans[x].parentNode.tagName.toLowerCase() == "a") { 
pspans[x].parentNode.setAttribute("href", "javascript:;"); 
} else {
pspans[x].parentNode.style.cursor = "pointer";
}
if (pspans[x].className == "activetab") cTab = (x/2)+1;
}
}
}
}
function switchTab(x) {
pspans[2*(cTab-1)].className = "inactivetab";
document.getElementById("portal"+cTab).style.display = "none";
cTab = x+1;
pspans[2*x].className = "activetab";
document.getElementById("portal"+cTab).style.display = "";
}

if (wgCanonicalNamespace == "Portal") addOnloadHook(doPortals);