MediaWiki:Monobook.js: Difference between revisions

From Halopedia, the Halo wiki

No edit summary
mNo edit summary
 
(146 intermediate revisions by 6 users not shown)
Line 1: Line 1:
/* <pre><nowiki> */
/* Any JavaScript here will be loaded for users using the MonoBook skin */
 
/* tooltips and access keys */
ta = new Object();
ta['pt-userpage'] = new Array('.','My user page');
ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as');
ta['pt-mytalk'] = new Array('n','My talk page');
ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address');
ta['pt-preferences'] = new Array('','My preferences');
ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.');
ta['pt-mycontris'] = new Array('y','List of my contributions');
ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.');
ta['pt-logout'] = new Array('o','Log out');
ta['ca-talk'] = new Array('t','Discussion about the content page');
ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.');
ta['ca-addsection'] = new Array('+','Add a comment to this discussion.');
ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.');
ta['ca-history'] = new Array('h','Past versions of this page.');
ta['ca-protect'] = new Array('=','Protect this page');
ta['ca-delete'] = new Array('d','Delete this page');
ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted');
ta['ca-move'] = new Array('m','Move this page');
ta['ca-watch'] = new Array('w','Add this page to your watchlist');
ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist');
ta['search'] = new Array('f','Search this wiki');
ta['p-logo'] = new Array('','Main Page');
ta['n-mainpage'] = new Array('z','Visit the Main Page');
ta['n-portal'] = new Array('','About the project, what you can do, where to find things');
ta['n-currentevents'] = new Array('','Find background information on current events');
ta['n-recentchanges'] = new Array('r','The list of recent changes in the wiki.');
ta['n-randompage'] = new Array('x','Load a random page');
ta['n-help'] = new Array('','The place to find out.');
ta['n-sitesupport'] = new Array('','Support us');
ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here');
ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page');
ta['feed-rss'] = new Array('','RSS feed for this page');
ta['feed-atom'] = new Array('','Atom feed for this page');
ta['t-contributions'] = new Array('','View the list of contributions of this user');
ta['t-emailuser'] = new Array('','Send a mail to this user');
ta['t-upload'] = new Array('u','Upload images or media files');
ta['t-specialpages'] = new Array('q','List of all special pages');
ta['ca-nstab-main'] = new Array('c','View the content page');
ta['ca-nstab-user'] = new Array('c','View the user page');
ta['ca-nstab-media'] = new Array('c','View the media page');
ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.');
ta['ca-nstab-project'] = new Array('a','View the project page');
ta['ca-nstab-image'] = new Array('c','View the image page');
ta['ca-nstab-mediawiki'] = new Array('c','View the system message');
ta['ca-nstab-template'] = new Array('c','View the template');
ta['ca-nstab-help'] = new Array('c','View the help page');
ta['ca-nstab-category'] = new Array('c','View the category page');


/* MONOBOOK SIDEBAR v2.3 */
/* MONOBOOK SIDEBAR v2.3 */
// To edit the sidebar items, edit [[MediaWiki:Monobook.js/Sidebar.js]]
window.wgSidebar = ( window.wgSidebar || {} );
window.wgSidebar = ( window.wgSidebar || {} );
importScript( 'MediaWiki:Monobook.js/Sidebar.js' );
 
wgSidebar["Navigation"] = [
"Special:RecentChanges|Recent changes",
"Special:Random|Random page",
];
 
wgSidebar["Games"] = [
{"Category:Video games|Original trilogy": [
"Halo: Combat Evolved",
"Halo: Combat Evolved Anniversary",
"Halo 2",
"Halo 2: Anniversary",
"Halo 3",
]},
{"Category:Video games|Mainline 343i games": [
"Halo 4",
"Halo 5: Guardians",
"Halo Infinite",
]},
{"Category:Video games|Halo: Spartan series": [
"Halo: Spartan Assault",
"Halo: Spartan Strike",
]},
{"Category:Video games|Halo Wars series": [
"Halo Wars",
"Halo Wars 2",
]},
{"Category:Video games|Other games": [
"Halo 3: ODST",
"Halo: Reach",
"Halo: Fireteam Raven",
]},
{"Category:Video games|Ports and expansions": [
"Halo: Combat Evolved (PC port)|Halo PC",
"Halo Custom Edition",
"Halo 2 Multiplayer Map Pack",
"Halo 2 (Windows Vista)|Halo 2 Vista",
"Halo 3 Mythic",
"Halo: The Master Chief Collection",
"Halo 5: Forge",
]},
{"Category:Applications|Applications": [
"Halo Waypoint|Halo Waypoint",
"Halo 4: King of the Hill Fueled by Mountain Dew|Halo 4: King of the Hill",
"Halo Channel",
"Halo (Windows 10 app)|Halo app",
"Halo Stickers",
"Halo Recruit",
]},
{"Category:Tabletop games|Table top": [
{"Category:Tabletop games|Spartan Games": [
"Halo: Fleet Battles",
"Halo: Ground Command",
]},
"Halo 4: King of the Hill Fueled by Mountain Dew|Halo 4: King of the Hill",
"Halo Interactive Strategy Game",
"Risk|Halo Risk",
"Monopoly: Halo Collector's Edition|Halo Monopoly",
]},
{"Category:Deleted material|Canceled projects": [
"Halo: Chronicles",
"Titan (canceled game)|Titan",
"Haggar",
"Halo Online",
"Halo: Starfighter",
]},
];
 
wgSidebar["Other media"] = [
{"Halo novels|Novels": [
{"The Original Series": [
"Halo: The Fall of Reach|The Fall of Reach",
"Halo: The Flood|The Flood",
"Halo: First Strike|First Strike",
"Halo: Ghosts of Onyx|Ghosts of Onyx",
]},
{"The Forerunner Saga": [
"Halo: Cryptum|Cryptum",
"Halo: Primordium|Primordium",
{"Halo: Silentium|Silentium": [
"Rebirth",
]},
]},
{"Kilo-Five Trilogy": [
"Halo: Glasslands|Glasslands",
"Halo: The Thursday War|The Thursday War",
"Halo: Mortal Dictata|Mortal Dictata",
]},
{"Alpha-Nine series|Alpha-Nine": [
"Halo: New Blood|New Blood",
"Halo: Bad Blood|Bad Blood",
]},
{"The Ferrets series|The Ferrets": [
"Halo: Last Light|Last Light",
"Halo: Retribution|Retribution",
"Halo: Divine Wind|Divine Wind",
]},
{"Rion Forge & Ace Of Spades series|Rion Forge & Ace of Spaces": [
"Halo: Smoke and Shadow|Smoke and Shadow",
"Halo: Renegades|Renegades",
"Halo: Point of Light|Point of Light",
]},
{"A Master Chief Story": [
"Halo: Silent Storm|Silent Storm",
"Halo: Oblivion|Oblivion",
{"Halo: Shadows of Reach|Shadows of Reach": [
"Sacrifice",
]},
]},
{"Battle Born: A Halo Young Adult Novel Series|Battle Born": [
"Halo: Battle Born|Battle Born",
"Halo: Meridian Divide|Meridian Divide",
"Halo: Silentium|Silentium",
]},
{"Halo novels|Individual novels": [
"Halo: Contact Harvest|Contact Harvest",
"Halo: Hunters in the Dark|Hunters in the Dark",
"Halo: Legacy of Onyx|Legacy of Onyx",
"Halo: The Rubicon Protocol|The Rubicon Protocol",
"Halo: Outcasts|Outcasts",
]},
{"Halo novels|Individual novellas": [
"Halo: Saint's Testimony|Saint's Testimony",
"Halo: Shadow of Intent|Shadow of Intent",
]},
{"Halo novels|Anthologies": [
"Halo: Evolutions|Evolutions",
"Halo: Fractures|Fractures",
]},
]},
{"Category:Comics|Comics": [
"Halo Graphic Novel|Graphic Novel",
"Halo 3: The Cradle of Life|The Cradle of Life",
"Halo: Uprising|Uprising",
"Halo: Helljumper|Helljumper",
"Halo: Blood Line|Blood Line",
"Halo: Fall of Reach|Fall of Reach",
"Halo Wars: Genesis|Genesis",
"Halo: Initiation|Initiation",
"Halo: Escalation|Escalation",
"Halo: Tales from Slipspace|Tales from Slipspace",
"Halo: Rise of Atriox|Rise of Atriox",
"Halo: Collateral Damage|Collateral Damage",
"Halo: Lone Wolf|Lone Wolf",
]},
{"Category:Art books|Art books": [
"The Art of Halo: Creating a Virtual World|The Art of Halo",
"The Art of Halo 3|The Art of Halo 3",
"Halo: The Great Journey - The Art of Building Worlds|Halo: The Great Journey",
"Awakening: The Art of Halo 4|The Art of Halo 4",
"The Art of Halo 5: Guardians|The Art of Halo 5: Guardians",
"The Art of Halo Infinite|The Art of Halo Infinite",
]},
{"Category:Reference books|Reference books": [
{"Halo Encyclopedia|Original encyclopedias": [
"Halo Encyclopedia (2009 edition)|2009 edition",
"Halo Encyclopedia (2011 edition)|2011 edition",
]},
"Halo: The Essential Visual Guide",
"Halo 4: The Essential Visual Guide",
"Halo Mythos: A Guide to the Story of Halo|Halo Mythos",
"Halo: Warfleet – An Illustrated Guide to the Spacecraft of Halo|Halo: Warfleet",
"Halo: Official Spartan Field Manual",
"Halo Encyclopedia (2022 edition)",
]},
{"Category:Strategy guides|Strategy guides": [
"Halo: Combat Evolved: Sybex Official Strategies & Secrets|Halo: Combat Evolved",
"Halo 2: The Official Strategy Guide|Halo 2",
"Halo 3: The Official Strategy Guide|Halo 3",
"Halo Wars: Official Strategy Guide|Halo Wars",
"Halo 3: ODST Official Strategy Guide|Halo 3: ODST",
"Halo: Reach Official Strategy Guide|Halo: Reach",
"Halo 4: Official Game Guide|Halo 4",
"Halo 5: Guardians Official Game Guide|Halo 5: Guardians",
]},
{"Category:Animated films|Animation": [
"Halo Legends",
"Halo: The Fall of Reach - The Animated Series|Halo: The Fall of Reach",
]},
{"Category:Live action|Live action": [
"Halo: Landfall|Landfall",
"The Life",
"Birth of a Spartan",
"Remember Reach",
"Halo 4: Forward Unto Dawn",
"Halo film|Halo movie",
"Halo: Nightfall|Nightfall",
"Halo: The Television Series|Halo TV series",
]},
];
 
wgSidebar["Gameplay"] = [
"Halo Waypoint|Waypoint",
"Equipment",
"Weapons (gameplay)|Weapons",
"Category:Vehicles|Vehicles",
"Armor customizations",
"Category:Levels|Walkthroughs",
"Multiplayer",
];
 
wgSidebar["The universe"] = [
{"Category:Characters|Characters": [
{"Blue Team": [
"John-117",
"Linda-058",
"Kelly-087",
"Frederic-104",
]},
{"Red Team": [
"Jerome-092",
"Douglas-042",
"Alice-130",
]},
{"Alpha-Nine": [
"Rookie",
"Michael Crespo|Michael 'Mickey' Crespo",
"Taylor Miles|Taylor 'Dutch' Miles",
"Kojo Agu|Kojo 'Romeo' Agu",
]},
{"NOBLE Team": [
"SPARTAN-B312",
"Carter-A259",
"Jun-A266",
"Emile-A239",
"Kat-B320",
"Jorge-052",
]},
{"Fireteam Osiris": [
"Jameson Locke",
"Edward Buck",
"Olympia Vale",
"Holly Tanaka",
]},
"Catherine Halsey",
"Jacob Keyes",
"Cortana",
"Avery Johnson",
"343 Guilty Spark",
"Thel 'Vadam",
"Terrence Hood",
"Miranda Keyes",
"Rtas 'Vadum",
"Gravemind",
"James Cutter",
"John Forge",
"Ellen Anders",
"Librarian",
"IsoDidact",
"Ur-Didact",
"Jul 'Mdama",
"Thomas Lasky",
"Sarah Palmer",
"Roland",
"Atriox",
"Isabel",
]},
{"Category:Locations|Locations": [
"Earth",
"Reach",
"Harvest",
"Sanghelios",
"High Charity",
"Mombasa",
"Installation 04|Alpha Halo",
"Installation 05|Delta Halo",
"Installation 00|The Ark",
"Requiem",
"Maethrillian",
]},
{"Category:Sapient species|Species": [
"Human",
"San'Shyuum",
"Sangheili",
"Kig-Yar",
"Jiralhanae",
"Huragok",
"Lekgolo",
"Yanme'e",
"Unggoy",
"Forerunner",
"Flood",
]},
{"Category:Factions|Factions": [
{"United Nations Space Command|United Nations Space Command": [
"UNSC Army",
"UNSC Air Force",
"UNSC Marine Corps",
"Orbital Drop Shock Troopers",
"UNSC Navy",
"Office of Naval Intelligence",
"Spartan|SPARTAN programs",
]},
{"Covenant|Covenant": [
"Covenant military",
"Covenant Honor Guard",
"High Council",
]},
{"Insurrectionist|Insurrectionists": [
"United Rebel Front",
"New Colonial Alliance",
]},
"Unified Earth Government",
"Swords of Sanghelios",
"Jul 'Mdama's Covenant",
"Ecumene|Forerunner ecumene",
"Ancient humanity",
"Precursor|Precursors",
]},
{"Category:Technology|Technology": [
"Technological Achievement Tiers",
"Active camouflage",
"Artificial intelligence",
"Biological augmentation",
"Cryonics",
"Energy shielding",
"Holography",
"Slipstream space",
"Powered exoskeleton",
"Category:Propulsion|Propulsion",
"Category:Communications technology|Communications",
"Category:Medicine|Medicine",
"Category:Vehicles|Vehicles",
"Category:Weapons|Weapons",
]},
{"Category:Ships|Ships": [
"UNSC Pillar of Autumn",
"Truth and Reconciliation",
"UNSC In Amber Clad",
"UNSC Forward Unto Dawn",
"Shadow of Intent",
"UNSC Spirit of Fire",
"UNSC Infinity",
"Mantle's Approach",
"Enduring Conviction",
]},
{"Category:Society and culture|Society and culture": [
"Category:Languages|Languages",
"Religion",
"Mantle",
"List of food and drinks|Food and drink",
"Category:Terms and phrases|Terms and phrases",
]},
{"Halopedia:Projects/Timeline/Eras|Timeline": [
"Human-Forerunner wars",
"Forerunner-Flood war",
"Great Purification|The Halos' firing",
"War of Beginnings",
"Interplanetary War",
"Insurrection",
"Human-Covenant War",
"Post-Covenant War conflicts",
]},
];
 
wgSidebar["Halopedia Archive"] = [
"Archive:Text archives|Text archives",
"Archive:Website archives|Website archives",
"https://www.youtube.com/channel/UCMeCf0KFYzOHw2lp2GRtgWA|Video archives",
];
 
wgSidebar["Halopedia"] = [
{"Halopedia:Social media|Social media": [
"https://twitter.com/Halopedia|Twitter",
"https://www.facebook.com/HalopediaWiki|Facebook",
]},
"Halopedia:Discord server|Discord server",
"Special:WikiForum|Halopedia forums",
"News:Main|Halo News Network",
"Halopedia:Projects/Improvement|Article improvement",
"Halopedia:Featured/Article|Featured articles",
"Halopedia:Staff|Halopedia staff",
];
 
wgSidebar["Wiki help"] = [
{"Category:Policies|Policies": [
"Halopedia:Manual of Style|Manual of Style",
"Halopedia:Blocking policy|Blocking policy",
"Halopedia:Canon policy|Canon policy",
"Halopedia:Layout guide|Layout guide",
"Halopedia:Media policy|Media policy",
"Halopedia:Notability policy|Notability policy",
"Halopedia:Personal Image policy|Personal Image policy",
"Halopedia:Protected Page policy|Protected Page policy",
"Halopedia:Signature policy|Signature policy",
"Halopedia:Spoiler policy|Spoiler policy",
"Halopedia:Voting policy|Voting policy",
]},
{"Category:Help|Help pages": [
"Help:Disambiguation|Disambiguation",
"Help:Editing|Editing",
"Help:Images|Images",
"Help:Links|Links",
"Help:References|References",
"Help:Signatures|Signatures",
"Help:Tables|Tables",
"Help:Templates|Templates",
"Help:Videos|Videos",
"Help:Walkthroughs|Walkthroughs",
]},
"Halopedia:General disclaimer|General disclaimer",
"Halopedia:What Halopedia is|What Halopedia is",
];
 
wgSidebar["Related sites"] = [
{"Halopedia:Related sites and affiliates|Affiliates": [
"https://www.marathonwiki.com|CyberAcme",
"https://www.destinypedia.com|Destinypedia",
"https://www.youtube.com/@HaloCanon|Halo Canon",
"https://www.niwanetwork.org|NIWA",
]},
{"Halopedia:Related sites and affiliates|Community": [
"https://halo.bungie.org|halo.bungie.org",
"https://www.readyuplive.com|Ready Up Live",
"http://www.forwarduntodawn.com|Forward Unto Dawn",
"https://www.reddit.com/r/halo|/r/halo",
"https://www.reddit.com/r/HaloStory|/r/HaloStory",
"https://www.forgehub.com|ForgeHub",
"http://haloterms.bungie.org|Terminal Hub",
"https://roosterteeth.com|Rooster Teeth",
"https://405th.com|405th",
]},
{"Halopedia:Related sites and affiliates|Podcasts": [
"https://www.podtacular.com|Podtacular",
"https://www.halopodcastevolved.com/podcast-evolved|Podcast Evolved",
]},
{"Halopedia:Related sites and affiliates|Wikis": [
{"Halopedia:Related sites and affiliates|International": [
"https://halo.fandom.com/de|Deutsch (German)",
"https://halo.fandom.com/el|Ελληνικά (Greek)",
"https://halo.fandom.com/it|Italiano (Italian)",
"https://halo.fandom.com/ja|日本語 (Japanese)",
"https://halo.fandom.com/ko|한국어 (Korean)",
"https://halo.fandom.com/pl|Polski (Polish)",
"https://halo.fandom.com/ru|Русские (Russian)",
"https://halo.fandom.com/es|Español (Spanish)",
]},
"https://halofanon.fandom.com|Halo Fanon",
"https://unhalo.fandom.com|Gruntipedia",
"https://halomachinima.fandom.com|Halo Machinima",
"https://wiki.halo.fr|Halo.fr",
"https://rvb.fandom.com|Red vs. Blue",
]},
];


/**
/**
Line 84: Line 475:
var menuId = jQuery( item ).parents().get( 2 ).id;
var menuId = jQuery( item ).parents().get( 2 ).id;
// Check it's a valid portlet item
// Check it's a valid portlet item
if ( !menuId || menuId == '' ) {
if ( !menuId || menuId === '' ) {
continue;
continue;
}
}
Line 97: Line 488:
ul.className = 'sub-menu';
ul.className = 'sub-menu';
for ( var i = 0; i < arr.length; i++ ) {
for ( var i = 0; i < arr.length; i++ ) {
var a;
var li = document.createElement( 'li' );
var li = document.createElement( 'li' );
if ( typeof arr[i] == 'string' ) {
if ( typeof arr[i] == 'string' ) {
var a = MonobookSidebar.linkFromText( arr[i] );
a = MonobookSidebar.linkFromText( arr[i] );
li.appendChild( a );
li.appendChild( a );
} else {
} else {
Line 123: Line 515:
}
}
jQuery( '#' + menuId ).children().eq( 1 ).children().eq( 0 )
jQuery( '#' + menuId ).children().eq( 1 ).children().eq( 0 )
.bind( 'mouseover', MonobookSidebar.mouseover )
.on( 'mouseover', MonobookSidebar.mouseover )
.bind( 'mouseout', MonobookSidebar.mouseout );
.on( 'mouseout', MonobookSidebar.mouseout );
MonobookSidebar.loadedMenus.push( menuId );
MonobookSidebar.loadedMenus.push( menuId );
},
},
Line 160: Line 552:
}
}
article = article.replace( MonobookSidebar.re_s, '_' );
article = article.replace( MonobookSidebar.re_s, '_' );
if( wgUserName == 'Jack Phoenix' ) {
// Replace encoded colons with normal colons
article = article.replace( '%3A', ':' );
}
var a = document.createElement( 'a' );
var a = document.createElement( 'a' );
if ( article.length > 7 && article.substr( 0, 7 ) == 'http://' ) {
if ( article.length > 4 && article.substr( 0, 4 ) == 'http' ) {
a.setAttribute( 'href', article );
a.setAttribute( 'href', article );
} else {
} else {
article = encodeURIComponent( article.replace( MonobookSidebar.re_s, '_' ) );
article = article.replace( MonobookSidebar.re_s, '_' );
a.setAttribute( 'href', wgArticlePath.replace( '$1', article ) );
// Replace encoded colons with normal colons
article = article.replace( '%3A', ':' );
a.setAttribute( 'href', mw.config.get( 'wgArticlePath' ).replace( '$1', article ) );
}
}
a.appendChild( document.createTextNode( caption ) );
a.appendChild( document.createTextNode( caption ) );
Line 175: Line 565:
},
},
getId: function( name ) {
getId: function( name ) {
return 'n-' + encodeURIComponent( name.replace( MonobookSidebar.re_s, '-' ) ).replace( MonobookSidebar.re_p, '.' );
return 'n-' + name.replace( MonobookSidebar.re_s, '-' ).replace( MonobookSidebar.re_p, '.' );
}
}
};
};


/* Calling this code to initialize */
/* Calling this code to initialize */
jQuery( MonobookSidebar.init );
$( MonobookSidebar.init );
 
// ==================================================
// Collapsible Portlets (experimental)
// ==================================================
/* disabled for now --Jack Phoenix, October 20, 2010
function foldingPortlets() {
var portlets = getElementsByClassName( document.getElementById( 'column-one' ), 'div', 'portlet' );
var portskip = ['p-personal', 'p-cactions', 'p-logo', 'p-search', 'p-tbx', 'p-lang'];
var first = true;
 
for( var i = 0; i < portlets.length; i++ ) {
if( portskip.join( ' ' ).indexOf( portlets[i].id ) == -1 ) {
var pd = portlets[i].getElementsByTagName( 'div' )[0];
var ph = portlets[i].getElementsByTagName( 'h5' )[0];
ph.className = 'portletCollapsible';
pd.setAttribute( 'id', 'pbody-' + i );
pd.style.display = 'none';
 
var link = document.createElement( 'a' );
var head = getAllText( ph );
while( ph.firstChild ) {
ph.removeChild( ph.firstChild );
}
link.appendChild( document.createTextNode( head ) );
link.setAttribute( 'href', 'javascript:showPortlet(\'' + i + '\');' );
link.setAttribute( 'id', 'plink-' + i );
link.className = 'portletClosed';
ph.appendChild( link );
 
if( first == true ) {
first = false;
showPortlet( i );
}
}
}
}
if( skin == 'monobook' && !window.portletsNormal ) {
addOnloadHook( foldingPortlets );
}
 
function getAllText( thing ) {
if ( thing.nodeType == 3 ) {
return thing.nodeValue;
}
var text = new Array();
var i = 0;
while( thing.childNodes[i] ) {
text[text.length] = getAllText( thing.childNodes[i] );
i++;
}
return text.join( '' );
}
 
function showPortlet( id ) {
var pd = document.getElementById( 'pbody-' + id );
var pl = document.getElementById( 'plink-' + id );
 
if( pd.style.display == 'none' ) {
pd.style.display = 'block';
pl.className = 'portletOpened';
} else {
pd.style.display = 'none';
pl.className = 'portletClosed';
}
}
*/
// ==================================================
// End Collapsible Portlets
// ==================================================
 
/* </nowiki></pre> */

Latest revision as of 10:09, May 20, 2024

/* Any JavaScript here will be loaded for users using the MonoBook skin */

/* MONOBOOK SIDEBAR v2.3 */
window.wgSidebar = ( window.wgSidebar || {} );

wgSidebar["Navigation"] = [
	"Special:RecentChanges|Recent changes",
	"Special:Random|Random page",
];

wgSidebar["Games"] = [
	{"Category:Video games|Original trilogy": [
		"Halo: Combat Evolved",
		"Halo: Combat Evolved Anniversary",
		"Halo 2",
		"Halo 2: Anniversary",
		"Halo 3",
	]},
	{"Category:Video games|Mainline 343i games": [
		"Halo 4",
		"Halo 5: Guardians",
		"Halo Infinite",
	]},
	{"Category:Video games|Halo: Spartan series": [
		"Halo: Spartan Assault",
		"Halo: Spartan Strike",
	]},
	{"Category:Video games|Halo Wars series": [
		"Halo Wars",
		"Halo Wars 2",
	]},
	{"Category:Video games|Other games": [
		"Halo 3: ODST",
		"Halo: Reach",
		"Halo: Fireteam Raven",
	]},
	{"Category:Video games|Ports and expansions": [
		"Halo: Combat Evolved (PC port)|Halo PC",
		"Halo Custom Edition",
		"Halo 2 Multiplayer Map Pack",
		"Halo 2 (Windows Vista)|Halo 2 Vista",
		"Halo 3 Mythic",
		"Halo: The Master Chief Collection",
		"Halo 5: Forge",
	]},
	{"Category:Applications|Applications": [
		"Halo Waypoint|Halo Waypoint",
		"Halo 4: King of the Hill Fueled by Mountain Dew|Halo 4: King of the Hill",
		"Halo Channel",
		"Halo (Windows 10 app)|Halo app",
		"Halo Stickers",
		"Halo Recruit",
	]},
	{"Category:Tabletop games|Table top": [
		{"Category:Tabletop games|Spartan Games": [
			"Halo: Fleet Battles",
			"Halo: Ground Command",
		]},
		"Halo 4: King of the Hill Fueled by Mountain Dew|Halo 4: King of the Hill",
		"Halo Interactive Strategy Game",
		"Risk|Halo Risk",
		"Monopoly: Halo Collector's Edition|Halo Monopoly",
	]},
	{"Category:Deleted material|Canceled projects": [
		"Halo: Chronicles",
		"Titan (canceled game)|Titan",
		"Haggar",
		"Halo Online",
		"Halo: Starfighter",
	]},
];

wgSidebar["Other media"] = [
	{"Halo novels|Novels": [
		{"The Original Series": [
			"Halo: The Fall of Reach|The Fall of Reach",
			"Halo: The Flood|The Flood",
			"Halo: First Strike|First Strike",
			"Halo: Ghosts of Onyx|Ghosts of Onyx",
		]},
		{"The Forerunner Saga": [
			"Halo: Cryptum|Cryptum",
			"Halo: Primordium|Primordium",
			{"Halo: Silentium|Silentium": [
				"Rebirth",
			]},
		]},
		{"Kilo-Five Trilogy": [
			"Halo: Glasslands|Glasslands",
			"Halo: The Thursday War|The Thursday War",
			"Halo: Mortal Dictata|Mortal Dictata",
		]},
		{"Alpha-Nine series|Alpha-Nine": [
			"Halo: New Blood|New Blood",
			"Halo: Bad Blood|Bad Blood",
		]},
		{"The Ferrets series|The Ferrets": [
			"Halo: Last Light|Last Light",
			"Halo: Retribution|Retribution",
			"Halo: Divine Wind|Divine Wind",
		]},
		{"Rion Forge & Ace Of Spades series|Rion Forge & Ace of Spaces": [
			"Halo: Smoke and Shadow|Smoke and Shadow",
			"Halo: Renegades|Renegades",
			"Halo: Point of Light|Point of Light",
		]},
		{"A Master Chief Story": [
			"Halo: Silent Storm|Silent Storm",
			"Halo: Oblivion|Oblivion",
			{"Halo: Shadows of Reach|Shadows of Reach": [
				"Sacrifice",
			]},
		]},
		{"Battle Born: A Halo Young Adult Novel Series|Battle Born": [
			"Halo: Battle Born|Battle Born",
			"Halo: Meridian Divide|Meridian Divide",
			"Halo: Silentium|Silentium",
		]},
		{"Halo novels|Individual novels": [
			"Halo: Contact Harvest|Contact Harvest",
			"Halo: Hunters in the Dark|Hunters in the Dark",
			"Halo: Legacy of Onyx|Legacy of Onyx",
			"Halo: The Rubicon Protocol|The Rubicon Protocol",
			"Halo: Outcasts|Outcasts",
		]},
		{"Halo novels|Individual novellas": [
			"Halo: Saint's Testimony|Saint's Testimony",
			"Halo: Shadow of Intent|Shadow of Intent",
		]},
		{"Halo novels|Anthologies": [
			"Halo: Evolutions|Evolutions",
			"Halo: Fractures|Fractures",
		]},
	]},
	{"Category:Comics|Comics": [
		"Halo Graphic Novel|Graphic Novel",
		"Halo 3: The Cradle of Life|The Cradle of Life",
		"Halo: Uprising|Uprising",
		"Halo: Helljumper|Helljumper",
		"Halo: Blood Line|Blood Line",
		"Halo: Fall of Reach|Fall of Reach",
		"Halo Wars: Genesis|Genesis",
		"Halo: Initiation|Initiation",
		"Halo: Escalation|Escalation",
		"Halo: Tales from Slipspace|Tales from Slipspace",
		"Halo: Rise of Atriox|Rise of Atriox",
		"Halo: Collateral Damage|Collateral Damage",
		"Halo: Lone Wolf|Lone Wolf",
	]},
	{"Category:Art books|Art books": [
		"The Art of Halo: Creating a Virtual World|The Art of Halo",
		"The Art of Halo 3|The Art of Halo 3",
		"Halo: The Great Journey - The Art of Building Worlds|Halo: The Great Journey",
		"Awakening: The Art of Halo 4|The Art of Halo 4",
		"The Art of Halo 5: Guardians|The Art of Halo 5: Guardians",
		"The Art of Halo Infinite|The Art of Halo Infinite",
	]},
	{"Category:Reference books|Reference books": [
		{"Halo Encyclopedia|Original encyclopedias": [
			"Halo Encyclopedia (2009 edition)|2009 edition",
			"Halo Encyclopedia (2011 edition)|2011 edition",
		]},
		"Halo: The Essential Visual Guide",
		"Halo 4: The Essential Visual Guide",
		"Halo Mythos: A Guide to the Story of Halo|Halo Mythos",
		"Halo: Warfleet – An Illustrated Guide to the Spacecraft of Halo|Halo: Warfleet",
		"Halo: Official Spartan Field Manual",
		"Halo Encyclopedia (2022 edition)",
	]},
	{"Category:Strategy guides|Strategy guides": [
		"Halo: Combat Evolved: Sybex Official Strategies & Secrets|Halo: Combat Evolved",
		"Halo 2: The Official Strategy Guide|Halo 2",
		"Halo 3: The Official Strategy Guide|Halo 3",
		"Halo Wars: Official Strategy Guide|Halo Wars",
		"Halo 3: ODST Official Strategy Guide|Halo 3: ODST",
		"Halo: Reach Official Strategy Guide|Halo: Reach",
		"Halo 4: Official Game Guide|Halo 4",
		"Halo 5: Guardians Official Game Guide|Halo 5: Guardians",
	]},
	{"Category:Animated films|Animation": [
		"Halo Legends",
		"Halo: The Fall of Reach - The Animated Series|Halo: The Fall of Reach",
	]},
	{"Category:Live action|Live action": [
		"Halo: Landfall|Landfall",
		"The Life",
		"Birth of a Spartan",
		"Remember Reach",
		"Halo 4: Forward Unto Dawn",
		"Halo film|Halo movie",
		"Halo: Nightfall|Nightfall",
		"Halo: The Television Series|Halo TV series",
	]},
];

wgSidebar["Gameplay"] = [
	"Halo Waypoint|Waypoint",
	"Equipment",
	"Weapons (gameplay)|Weapons",
	"Category:Vehicles|Vehicles",
	"Armor customizations",
	"Category:Levels|Walkthroughs",
	"Multiplayer",
];

wgSidebar["The universe"] = [
	{"Category:Characters|Characters": [
		{"Blue Team": [
			"John-117",
			"Linda-058",
			"Kelly-087",
			"Frederic-104",
		]},
		{"Red Team": [
			"Jerome-092",
			"Douglas-042",
			"Alice-130",
		]},
		{"Alpha-Nine": [
			"Rookie",
			"Michael Crespo|Michael 'Mickey' Crespo",
			"Taylor Miles|Taylor 'Dutch' Miles",
			"Kojo Agu|Kojo 'Romeo' Agu",
		]},
		{"NOBLE Team": [
			"SPARTAN-B312",
			"Carter-A259",
			"Jun-A266",
			"Emile-A239",
			"Kat-B320",
			"Jorge-052",
		]},
		{"Fireteam Osiris": [
			"Jameson Locke",
			"Edward Buck",
			"Olympia Vale",
			"Holly Tanaka",
		]},
		"Catherine Halsey",
		"Jacob Keyes",
		"Cortana",
		"Avery Johnson",
		"343 Guilty Spark",
		"Thel 'Vadam",
		"Terrence Hood",
		"Miranda Keyes",
		"Rtas 'Vadum",
		"Gravemind",
		"James Cutter",
		"John Forge",
		"Ellen Anders",
		"Librarian",
		"IsoDidact",
		"Ur-Didact",
		"Jul 'Mdama",
		"Thomas Lasky",
		"Sarah Palmer",
		"Roland",
		"Atriox",
		"Isabel",
	]},
	{"Category:Locations|Locations": [
		"Earth",
		"Reach",
		"Harvest",
		"Sanghelios",
		"High Charity",
		"Mombasa",
		"Installation 04|Alpha Halo",
		"Installation 05|Delta Halo",
		"Installation 00|The Ark",
		"Requiem",
		"Maethrillian",
	]},
	{"Category:Sapient species|Species": [
		"Human",
		"San'Shyuum",
		"Sangheili",
		"Kig-Yar",
		"Jiralhanae",
		"Huragok",
		"Lekgolo",
		"Yanme'e",
		"Unggoy",
		"Forerunner",
		"Flood",
	]},
	{"Category:Factions|Factions": [
		{"United Nations Space Command|United Nations Space Command": [
			"UNSC Army",
			"UNSC Air Force",
			"UNSC Marine Corps",
			"Orbital Drop Shock Troopers",
			"UNSC Navy",
			"Office of Naval Intelligence",
			"Spartan|SPARTAN programs",
		]},
		{"Covenant|Covenant": [
			"Covenant military",
			"Covenant Honor Guard",
			"High Council",
		]},
		{"Insurrectionist|Insurrectionists": [
			"United Rebel Front",
			"New Colonial Alliance",
		]},
		"Unified Earth Government",
		"Swords of Sanghelios",
		"Jul 'Mdama's Covenant",
		"Ecumene|Forerunner ecumene",
		"Ancient humanity",
		"Precursor|Precursors",
	]},
	{"Category:Technology|Technology": [
		"Technological Achievement Tiers",
		"Active camouflage",
		"Artificial intelligence",
		"Biological augmentation",
		"Cryonics",
		"Energy shielding",
		"Holography",
		"Slipstream space",
		"Powered exoskeleton",
		"Category:Propulsion|Propulsion",
		"Category:Communications technology|Communications",
		"Category:Medicine|Medicine",
		"Category:Vehicles|Vehicles",
		"Category:Weapons|Weapons",
	]},
	{"Category:Ships|Ships": [
		"UNSC Pillar of Autumn",
		"Truth and Reconciliation",
		"UNSC In Amber Clad",
		"UNSC Forward Unto Dawn",
		"Shadow of Intent",
		"UNSC Spirit of Fire",
		"UNSC Infinity",
		"Mantle's Approach",
		"Enduring Conviction",
	]},
	{"Category:Society and culture|Society and culture": [
		"Category:Languages|Languages",
		"Religion",
		"Mantle",
		"List of food and drinks|Food and drink",
		"Category:Terms and phrases|Terms and phrases",
	]},
	{"Halopedia:Projects/Timeline/Eras|Timeline": [
		"Human-Forerunner wars",
		"Forerunner-Flood war",
		"Great Purification|The Halos' firing",
		"War of Beginnings",
		"Interplanetary War",
		"Insurrection",
		"Human-Covenant War",
		"Post-Covenant War conflicts",
	]},
];

wgSidebar["Halopedia Archive"] = [
	"Archive:Text archives|Text archives",
	"Archive:Website archives|Website archives",
	"https://www.youtube.com/channel/UCMeCf0KFYzOHw2lp2GRtgWA|Video archives",
];

wgSidebar["Halopedia"] = [
	{"Halopedia:Social media|Social media": [
		"https://twitter.com/Halopedia|Twitter",
		"https://www.facebook.com/HalopediaWiki|Facebook",
	]},
	"Halopedia:Discord server|Discord server",
	"Special:WikiForum|Halopedia forums",
	"News:Main|Halo News Network",
	"Halopedia:Projects/Improvement|Article improvement",
	"Halopedia:Featured/Article|Featured articles",
	"Halopedia:Staff|Halopedia staff",
];

wgSidebar["Wiki help"] = [
	{"Category:Policies|Policies": [
		"Halopedia:Manual of Style|Manual of Style",
		"Halopedia:Blocking policy|Blocking policy",
		"Halopedia:Canon policy|Canon policy",
		"Halopedia:Layout guide|Layout guide",
		"Halopedia:Media policy|Media policy",
		"Halopedia:Notability policy|Notability policy",
		"Halopedia:Personal Image policy|Personal Image policy",
		"Halopedia:Protected Page policy|Protected Page policy",
		"Halopedia:Signature policy|Signature policy",
		"Halopedia:Spoiler policy|Spoiler policy",
		"Halopedia:Voting policy|Voting policy",
	]},
	{"Category:Help|Help pages": [
		"Help:Disambiguation|Disambiguation",
		"Help:Editing|Editing",
		"Help:Images|Images",
		"Help:Links|Links",
		"Help:References|References",
		"Help:Signatures|Signatures",
		"Help:Tables|Tables",
		"Help:Templates|Templates",
		"Help:Videos|Videos",
		"Help:Walkthroughs|Walkthroughs",
	]},
	"Halopedia:General disclaimer|General disclaimer",
	"Halopedia:What Halopedia is|What Halopedia is",
];

wgSidebar["Related sites"] = [
	{"Halopedia:Related sites and affiliates|Affiliates": [
		"https://www.marathonwiki.com|CyberAcme",
		"https://www.destinypedia.com|Destinypedia",
		"https://www.youtube.com/@HaloCanon|Halo Canon",
		"https://www.niwanetwork.org|NIWA",
	]},
	{"Halopedia:Related sites and affiliates|Community": [
		"https://halo.bungie.org|halo.bungie.org",
		"https://www.readyuplive.com|Ready Up Live",
		"http://www.forwarduntodawn.com|Forward Unto Dawn",
		"https://www.reddit.com/r/halo|/r/halo",
		"https://www.reddit.com/r/HaloStory|/r/HaloStory",
		"https://www.forgehub.com|ForgeHub",
		"http://haloterms.bungie.org|Terminal Hub",
		"https://roosterteeth.com|Rooster Teeth",
		"https://405th.com|405th",
	]},
	{"Halopedia:Related sites and affiliates|Podcasts": [
		"https://www.podtacular.com|Podtacular",
		"https://www.halopodcastevolved.com/podcast-evolved|Podcast Evolved",
	]},
	{"Halopedia:Related sites and affiliates|Wikis": [
		{"Halopedia:Related sites and affiliates|International": [
			"https://halo.fandom.com/de|Deutsch (German)",
			"https://halo.fandom.com/el|Ελληνικά (Greek)",
			"https://halo.fandom.com/it|Italiano (Italian)",
			"https://halo.fandom.com/ja|日本語 (Japanese)",
			"https://halo.fandom.com/ko|한국어 (Korean)",
			"https://halo.fandom.com/pl|Polski (Polish)",
			"https://halo.fandom.com/ru|Русские (Russian)",
			"https://halo.fandom.com/es|Español (Spanish)",
		]},
		"https://halofanon.fandom.com|Halo Fanon",
		"https://unhalo.fandom.com|Gruntipedia",
		"https://halomachinima.fandom.com|Halo Machinima",
		"https://wiki.halo.fr|Halo.fr",
		"https://rvb.fandom.com|Red vs. Blue",
	]},
];

/**
 * MonobookSidebar: Sets sidebar submenus for elements of MonoBook, adding special
 * classes to pass the pointer over to allow the effect on all browsers.
 *
 * Date: 15 October 2010
 * Copyright © 2010 Jesús Martínez Novo ([[User:Ciencia Al Poder]])
 *
 * This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version
 */
MonobookSidebar = {
	re_s: / /g,
	re_p: /%/g,
	loadedMenus: [],
	init: function() {
		if ( !window.wgSidebar ) {
			return;
		}
		for ( var menu in wgSidebar ) {
			var item = document.getElementById( MonobookSidebar.getId( menu ) );
			if ( !item ) {
				continue;
			}
			var menuId = jQuery( item ).parents().get( 2 ).id;
			// Check it's a valid portlet item
			if ( !menuId || menuId === '' ) {
				continue;
			}
			// Generate menu hierarchy
			MonobookSidebar.buildSubmenu( item, wgSidebar[menu] );
			// Set events
			MonobookSidebar.setEvents( menuId );
		}
	},
	buildSubmenu: function( el, arr ) {
		var ul = document.createElement( 'ul' );
		ul.className = 'sub-menu';
		for ( var i = 0; i < arr.length; i++ ) {
			var a;
			var li = document.createElement( 'li' );
			if ( typeof arr[i] == 'string' ) {
				a = MonobookSidebar.linkFromText( arr[i] );
				li.appendChild( a );
			} else {
				for ( var menukey in arr[i] ) {
					a = MonobookSidebar.linkFromText( menukey );
					li.appendChild( a );
					MonobookSidebar.buildSubmenu( li, arr[i][menukey] );
				}
			}
			ul.appendChild( li );
		}
		el.appendChild( ul );
		el.className = 'with-sub-menu';
		var em = document.createElement( 'em' );
		em.appendChild( document.createTextNode( '\u203A' ) );
		el.firstChild.appendChild( em );
	},
	setEvents: function( menuId ) {
		for ( var i = 0; i < MonobookSidebar.loadedMenus; i++ ) {
			if ( MonobookSidebar.loadedMenus[i] == menuId ) {
				return;
			}
		}
		jQuery( '#' + menuId ).children().eq( 1 ).children().eq( 0 )
			.on( 'mouseover', MonobookSidebar.mouseover )
			.on( 'mouseout', MonobookSidebar.mouseout );
		MonobookSidebar.loadedMenus.push( menuId );
	},
	mouseover: function( e ) {
		var target = e.target;
		while ( target.tagName.toLowerCase() != 'div' ) {
			if ( target.tagName.toLowerCase() == 'a' ) {
				target = target.parentNode;
			}
			if ( target.tagName.toLowerCase() == 'li' ) {
				jQuery( target ).addClass( 'hover' );
			}
			target = target.parentNode;
		}
	},
	mouseout: function( e ) {
		var target = e.target;
		while ( target.tagName.toLowerCase() != 'div' ) {
			if ( target.tagName.toLowerCase() == 'a' ) {
				target = target.parentNode;
			}
			if ( target.tagName.toLowerCase() == 'li' ) {
				jQuery( target ).removeClass( 'hover' );
			}
			target = target.parentNode;
		}
	},
	linkFromText: function( txt ) {
		var article = '', caption = '', sepPos = txt.indexOf( '|' );
		if ( sepPos > 0 ) {
			article = txt.substr( 0, sepPos );
			caption = txt.substr( sepPos + 1 );
		} else {
			article = caption = txt;
		}
		article = article.replace( MonobookSidebar.re_s, '_' );
		var a = document.createElement( 'a' );
		if ( article.length > 4 && article.substr( 0, 4 ) == 'http' ) {
			a.setAttribute( 'href', article );
		} else {
			article = article.replace( MonobookSidebar.re_s, '_' );
			// Replace encoded colons with normal colons
			article = article.replace( '%3A', ':' );
			a.setAttribute( 'href', mw.config.get( 'wgArticlePath' ).replace( '$1', article ) );
		}
		a.appendChild( document.createTextNode( caption ) );
		return a;
	},
	getId: function( name ) {
		return 'n-' + name.replace( MonobookSidebar.re_s, '-' ).replace( MonobookSidebar.re_p, '.' );
	}
};

/* Calling this code to initialize */
$( MonobookSidebar.init );