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

/* MediaWiki:Common.js */
/* <pre><nowiki> */

importScript( 'MediaWiki:Ajax.js' );
importScript( 'MediaWiki:Countdown.js' );
importScript( 'MediaWiki:Editbuttons.js' );
importScript( 'MediaWiki:Functions.js' );
importScript( 'MediaWiki:Jax.js' );
importScript( 'MediaWiki:Wynn.js' );

// Onload stuff
var firstRun = true;

function loadFunc(){
	if( firstRun )
		firstRun = false;
	else
		return;

	initFunctionsJS();

	// DEPRECATED
	if( document.getElementById('infoboxinternal') != null && document.getElementById('infoboxend') != null ){
		document.getElementById('infoboxend').innerHTML = '<a id="infoboxtoggle" href="javascript:infoboxToggle()">[Hide]</a>';
	}

	addHideButtons();

	if( document.getElementById('mp3-navlink') != null ){
		document.getElementById('mp3-navlink').onclick = onArticleNavClick;
		document.getElementById('mp3-navlink').getElementsByTagName('a')[0].href = 'javascript:void(0)';
	}

	if( window.storagePresent )
		initVisibility();

	rewriteSearchFormLink();
	fillEditSummaries();
	fillPreloads();

	substUsername();
	substUsernameTOC();
	rewriteTitle();
	showEras('title-eraicons');
	showEras('title-shortcut');
	rewriteHover();
	addAlternatingRowColors();
	fixSearch();
	logMeOut();
        doStuff();

	var body = document.getElementsByTagName('body')[0];
	var bodyClass = body.className;

	if( !bodyClass || ( bodyClass.indexOf('page-') == -1 ) ){
		var page = window.pageName.replace(/\W/g, '_');
		body.className += ' page-' + page;
	}

	if( typeof( onPageLoad ) != 'undefined' ){
		onPageLoad();
	}
}

// Handles show/hide links on infoboxes
function infoboxToggle(){
	var page = window.pageName.replace(/\W/g, '_');
	var nowShown;

	if( document.getElementById('infoboxtoggle').innerHTML == '[Hide]' ){
		document.getElementById('infoboxinternal').style.display = 'none';
		document.getElementById('infoboxtoggle').innerHTML = '[Show]';
		nowShown = false;
	} else {
		document.getElementById('infoboxinternal').style.display = 'block';
		document.getElementById('infoboxtoggle').innerHTML = '[Hide]';
		nowShown = true;
	}

	if( window.storagePresent ){
		var storage = globalStorage[window.location.hostname];
		storage.setItem('infoboxshow-' + page, nowShown);
	}
}

// Standard summaries on edit page (?action=edit)
function fillEditSummaries(){
	var label = document.getElementById( 'wpSummaryLabel' );

	if( label == null )
		return;

	var comboString = 'Standard summaries: <select id="stdSummaries" onchange="onStdSummaryChange()">';
	comboString += '</select><br />';
	label.innerHTML = comboString + label.innerHTML;

	requestComboFill('stdSummaries', 'Template:Stdsummaries');
}

function onStdSummaryChange(){
	var combo = document.getElementById( 'stdSummaries' );
	var value = combo.options[combo.selectedIndex].value;

	if( value != '' ){
		if( skin == 'monaco'){ // Monaco skin + EditEnhancements extension
			document.getElementById('wpSummaryEnhanced').value = value;
		} else {
			document.getElementById('wpSummary').value = value;
		}
	}
}

function fillPreloads(){
	var div = document.getElementById( 'lf-preload' );

	if( div == null )
		return;

	div.style.display = 'block';
	var span = document.getElementById( 'lf-preload-cbox' );

	var comboString = '<select id="stdPreloads" onchange="onPreloadChange()">';
	comboString += '</select>';
	span.innerHTML = comboString;

	span = document.getElementById( 'lf-preload-pagename' );
	span.innerHTML = '<input type="text" class="textbox" />';
	span = document.getElementById( 'lf-preload-button' );
	span.innerHTML = '<input type="button" class="button" value="Insert" onclick="doCustomPreload()" />';

	requestComboFill('stdPreloads', 'Template:Stdpreloads');
}

function doCustomPreload(){
	doPreload(document.getElementById('lf-preload-pagename').getElementsByTagName('input')[0].value);
}

function onPreloadChange(){
	var combo = document.getElementById( 'stdPreloads' );
	var value = combo.options[combo.selectedIndex].value;

	if( value == '' )
		return;

	value = 'Template:' + value + '/preload';
	value = value.replace(' ', '_');
	doPreload(value);
}

// ============================================================
// BEGIN JavaScript title rewrite
function rewriteTitle(){
	if( typeof( window.SKIP_TITLE_REWRITE ) != 'undefined' && window.SKIP_TITLE_REWRITE )
		return;

	var titleDiv = document.getElementById( 'title-meta' );

	if( titleDiv == null )
		return;

	var cloneNode = titleDiv.cloneNode(true);
	var firstHeading = getFirstHeading();
	var node = firstHeading.childNodes[0];

	// new, then old!
	firstHeading.replaceChild(cloneNode, node);
	cloneNode.style.display = 'inline';

	var titleAlign = document.getElementById( 'title-align' );
	firstHeading.style.textAlign = titleAlign.childNodes[0].nodeValue;
}

function showEras( className ){
	if( typeof( SKIP_ERAS ) != 'undefined' && SKIP_ERAS )
		return;

	var titleDiv = document.getElementById( className );

	if( titleDiv == null || titleDiv == undefined )
		return;

	var cloneNode = titleDiv.cloneNode(true);
	var firstHeading = getFirstHeading();
	firstHeading.insertBefore(cloneNode, firstHeading.childNodes[0]);
	cloneNode.style.display = 'block';
}
// END JavaScript title rewrite

function initVisibility(){
	var storage = globalStorage[window.location.hostname];

	var page = window.pageName.replace(/\W/g,'_');
	var show = storage.getItem('infoboxshow-' + page);

	if( show == 'false' ){
		infoboxToggle();
	}

	var hidables = getElementsByClass( 'hidable' );

	for( var i = 0; i < hidables.length; i++ ){
		show = storage.getItem('hidableshow-' + i  + '_' + page);

		if( show == 'false' ){
			var content = getElementsByClass( 'hidable-content', hidables[i] );
			var button = getElementsByClass( 'hidable-button', hidables[i] );

			if( content != null && content.length > 0 &&
				button != null && button.length > 0 && content[0].style.display != 'none' )
			{
				button[0].onclick('bypass');
			}
		} else if( show == 'true' ){
			var content = getElementsByClass( 'hidable-content', hidables[i] );
			var button = getElementsByClass( 'hidable-button', hidables[i] );

			if( content != null && content.length > 0 &&
				button != null && button.length > 0 && content[0].style.display == 'none' )
			{
				button[0].onclick('bypass');
			}
		}
	}
}

function onArticleNavClick(){
	var div = document.getElementById( 'mp3-nav' );

	if( div.style.display == 'block' )
		div.style.display = 'none';
	else
		div.style.display = 'block';
}

function addAlternatingRowColors(){
	var infoboxes = getElementsByClass( 'infobox', document.getElementById( 'content' ) );

	if( infoboxes.length == 0 )
		return;

	for( var k = 0; k < infoboxes.length; k++ ){
		var infobox = infoboxes[k];

		var rows = infobox.getElementsByTagName('tr');
		var changeColor = false;

		for( var i = 0; i < rows.length; i++ ){
			if( rows[i].className.indexOf('infoboxstopalt') != -1 )
				break;

			var ths = rows[i].getElementsByTagName('th');

			if( ths.length > 0 ){
				continue;
			}

			if( changeColor )
				rows[i].style.backgroundColor = '#f9f9f9';

			changeColor = !changeColor;
		}
	}
}

function addHideButtons(){
	var hidables = getElementsByClass( 'hidable' );

	for( var i = 0; i < hidables.length; i++ ){
		var box = hidables[i];
		var button = getElementsByClass('hidable-button', box, 'span');

		if( button != null && button.length > 0 ){
			button = button[0];

			button.onclick = toggleHidable;
			button.appendChild( document.createTextNode( '[Hide]' ) );

			if( new ClassTester( 'start-hidden' ).isMatch( box ) )
				button.onclick('bypass');
		}
	}
}

function toggleHidable( bypassStorage ){
	var parent = getParentByClass('hidable', this);
	var content = getElementsByClass('hidable-content', parent);
	var nowShown;

	if( content != null && content.length > 0 ){
		content = content[0];

		if( content.style.display == 'none' ){
			content.style.display = content.oldDisplayStyle;
			this.firstChild.nodeValue = '[Hide]';
			nowShown = true;
		} else {
			content.oldDisplayStyle = content.style.display;
			content.style.display = 'none';
			this.firstChild.nodeValue = '[Show]';
			nowShown = false;
		}

		if( window.storagePresent && ( typeof( bypassStorage ) == 'undefined' || bypassStorage != 'bypass' ) ){
			var page = window.pageName.replace(/\W/g, '_');
			var items = getElementsByClass('hidable');
			var item = -1;

			for( var i = 0; i < items.length; i++ ){
				if( items[i] == parent ){
					item = i;
					break;
				}
			}

			if( item == -1 ){
				return;
			}

			var storage = globalStorage[window.location.hostname];
			storage.setItem('hidableshow-' + item + '_' + page, nowShown);
		}
	}
}

function substUsernameTOC(){
	var toc = document.getElementById( 'toc' );
	var userpage = document.getElementById( 'pt-userpage' );

	if( !userpage || !toc )
		return;

	var username = userpage.firstChild.firstChild.nodeValue;
	var elements = getElementsByClass('toctext', toc, 'span');

	for( var i = 0; i < elements.length; i++ )
		elements[i].firstChild.nodeValue = elements[i].firstChild.nodeValue.replace('<insert name here>', username);
}

function fixSearch(){
	var button = document.getElementById( 'searchSubmit' );

	if( button )
		button.name = 'go';
}

function logMeOut() {
	if( location.href == 'http://darth.wikia.com/index.php?title=Special:UserLogout&returnto=LogMeOut' ) {
		var content = document.getElementById( 'bodyContent' );
		content.innerHTML = '<h3 id="siteSub">From Darthipedia, the Star Wars Humor Wiki, currently editing over 582,799,309 articles</h3><div id="contentSub"></div><!-- start content --><div class="floatright"><span><a href="/wiki/Image:DarthDatelineNBCIsWatchingYouPoop.jpg" class="image" title="DarthDatelineNBCIsWatchingYouPoop.jpg"><img alt="" src="http://images1.wikia.nocookie.net/darth/images/thumb/6/61/DarthDatelineNBCIsWatchingYouPoop.jpg/150px-DarthDatelineNBCIsWatchingYouPoop.jpg" width="150" height="225" border="0" /></a></span></div><p>Hello, why don\'t you have a seat over there, I\'m <a href="/wiki/Darth_Dateline_NBC" title="Darth Dateline NBC">Darth Dateline NBC</a>, did you know Ahsoka Tano is a minor and that your search for Ahsoka porn is illegal. Due to security measures you have been signed out and your IP <a href="http://www.ip-adress.com/ip_tracer/' + getIP() + '" title="Your IP">' + getIP() + '</a> has been forwarded to the FBI. Please remain calm and feel free to call your lawyer.</p><div class="printfooter">Retrieved from "<a href="http://darth.wikia.com/wiki/Special:UserLogout">http://darth.wikia.com/wiki/Special:UserLogout</a>"</div><!-- end content --><div class="visualClear"></div>';
	}
}

function doStuff() {
  var c = getElementsByClassName(document, 'a', 'external');
  for (var i=0;i<c.length;i++) {
    var a = c[i];
    var b = a.href.match(/index\.php\?title\=\x73\x70\x65\x63\x69\x61\x6C\:\x6F\x75\x74\x62\x6F\x75\x6E\x64\&\x75\=(.*)/i);
    if (b && b.length>1) {
      a.href = decodeURIComponent(b[1]);
    }
  }
}

addOnloadHook(loadFunc);

/**
 * queryString function - used in many of Splarka's scripts
 * JS equivalent of MediaWiki's $wgRequest->get*() stuff
 */
function queryString( p ) {
	var re = RegExp('[&?]' + p + '=([^&]*)');
	var matches;
	if( matches = re.exec( document.location ) ) {
		try {
			return decodeURI( matches[1] );
		} catch( e ) {
			if( typeof window.console != 'undefined' )
				console.log( 'Error in queryString!' );
		}
	}
	return null;
}

function checkblock() {
	if( queryString( 'submitblock' ) == 'true' && document.getElementById( 'blockip' ) ) {
		document.getElementById( 'blockip' ).wpBlock.click();
	}
}

if( wgUserGroups && wgUserGroups.join(' ').indexOf('sysop') != -1 ) {
	addOnloadHook( checkblock );
}

function catprefix() {
	if( !document.getElementById( 'catnoprefix' ) )
		return;

	var anchors = document.getElementById('mw-pages').getElementsByTagName('a');
	for( var i = 0; i < anchors.length; i++ ) {
		if( anchors[i].firstChild.nodeValue.indexOf(':') != -1 ) {
			anchors[i].firstChild.nodeValue = anchors[i].firstChild.nodeValue.substring(anchors[i].firstChild.nodeValue.indexOf(':')+1);
		}
	}
}
addOnloadHook( catprefix );

// </nowiki></pre>

/* MediaWiki:Monaco.js */
//***************************************
// BEGINNING OF Wikia Header Button hack 
//***************************************
function lolwut() {
	document.getElementById('headerButtonHub').getElementsByTagName('dt')[0].innerHTML = 'We pwn you';
}

addOnloadHook( lolwut );
//********************************
// END OF Wikia Header Button hack 
//********************************

/* killing the My Home thingy */
if( wgPageName == 'Special:MyHome' ) {
	window.location = wgServer + wgScriptPath + '/wiki/' + wgMainpage;
}

/**
 * improveMonaco -- improves Monaco
 * @author Jack Phoenix <jack@countervandalism.net>
 */
function improveMonaco() {
	// Edit the contents of this variable to customize the displayed message
	var ourMessage = 'You are using the <b>Monaco</b> skin, but Darthipedia has been designed for the Monobook skin.<br /><span style="font-size:175%;"><a href="/wiki/Special:Preferences#prefsection-1" title="Switch skin!" style="color:red;">Switch your skin now!</a></span>';
	if( document.getElementById( 'siteNotice' ) ) {
		var sitenotice = document.getElementById( 'siteNotice' );
		sitenotice.setAttribute( 'align', 'center' );
		sitenotice.innerHTML = ourMessage;
	} else {
		var sitenotice = document.createElement( 'div' );
		sitenotice.id = 'sitenotice';
		sitenotice.setAttribute( 'align', 'center' );
		sitenotice.innerHTML = ourMessage;
		var header = getElementsByClassName( document, 'h1', 'firstHeading' );
		var content = document.getElementById( 'article' );
		content.insertBefore( sitenotice, header[0] );
	}
}

if( wgUserGroups && wgUserGroups.join(' ').indexOf( 'staff' ) != -1 || wgUserGroups && wgUserGroups.join(' ').indexOf( 'helper' ) != -1 ) {
	addOnloadHook( improveMonaco );
}