16,370
edits
Release 2407 and 2409
Continuous releases have started! Read more on our blog: Dolphin Progress Report: Release 2407 and 2409. |
The Dolphin Emulator Wiki needs your help! Dolphin can play thousands of games, and changes are happening all the time. Help us keep up! Join in and help us make this the best resource for Dolphin. |
(Rolling back all changes until I figure out the real issue) |
(Revised the helper code, shouldn't cause issues now) |
||
Line 5: | Line 5: | ||
* @deprecated: Use $(element).hasClass() instead. | * @deprecated: Use $(element).hasClass() instead. | ||
*/ | */ | ||
window.hasClass = ( function() { | window.hasClass = ( function() { | ||
var reCache = {}; | var reCache = {}; | ||
Line 15: | Line 15: | ||
/* Helper script for .hlist class in common.css | /* Helper script for .hlist class in common.css | ||
*/ | */ | ||
if ( $.client.profile().name == 'msie' ) { | if ( $.client.profile().name == 'msie' ) { | ||
/* Add pseudo-selector class to last child list items in IE 8 */ | /* Add pseudo-selector class to last child list items in IE 8 */ | ||
Line 32: | Line 32: | ||
} | } | ||
} | } | ||
/** Collapsible tables ********************************************************* | |||
/* Collapsible tables ********************************************************* | |||
* | * | ||
* Description: Allows tables to be collapsed, showing only the header. See | * Description: Allows tables to be collapsed, showing only the header. See | ||
Line 40: | Line 40: | ||
* Maintainers: [[User:R. Koot]] | * Maintainers: [[User:R. Koot]] | ||
*/ | */ | ||
var autoCollapse = 2; | var autoCollapse = 2; | ||
var collapseCaption = "hide"; | var collapseCaption = "hide"; | ||
var expandCaption = "show"; | var expandCaption = "show"; | ||
window.collapseTable = function( tableIndex ){ | window.collapseTable = function( tableIndex ){ | ||
var Button = document.getElementById( "collapseButton" + tableIndex ); | var Button = document.getElementById( "collapseButton" + tableIndex ); | ||
var Table = document.getElementById( "collapsibleTable" + tableIndex ); | var Table = document.getElementById( "collapsibleTable" + tableIndex ); | ||
if ( !Table || !Button ) { | if ( !Table || !Button ) { | ||
return false; | return false; | ||
} | } | ||
var Rows = Table.rows; | var Rows = Table.rows; | ||
if ( Button.firstChild.data == collapseCaption ) { | if ( Button.firstChild.data == collapseCaption ) { | ||
for ( var i = 1; i < Rows.length; i++ ) { | for ( var i = 1; i < Rows.length; i++ ) { | ||
Line 76: | Line 76: | ||
if ( hasClass( Tables[i], "collapsible" ) ) { | if ( hasClass( Tables[i], "collapsible" ) ) { | ||
/ | /* only add button and increment count if there is a header row to work with */ | ||
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; | var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; | ||
if (!HeaderRow) continue; | if (!HeaderRow) continue; | ||
Line 125: | Line 125: | ||
/* Dynamic Navigation Bars (experimental) ************************************* | /** Dynamic Navigation Bars (experimental) ************************************* | ||
* | * | ||
* Description: See [[Wikipedia:NavFrame]]. | * Description: See [[Wikipedia:NavFrame]]. | ||
Line 137: | Line 137: | ||
// shows and hides content and picture (if available) of navigation bars | // shows and hides content and picture (if available) of navigation bars | ||
// Parameters: | // Parameters: | ||
// indexNavigationBar: the index of navigation bar to be toggled | // indexNavigationBar: the index of navigation bar to be toggled | ||
window.toggleNavigationBar = function(indexNavigationBar){ | window.toggleNavigationBar = function(indexNavigationBar){ | ||
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | ||
Line 219: | Line 219: | ||
$( createNavigationBarToggleButton ); | $( createNavigationBarToggleButton ); | ||
/** Drop-down list helper code ************************************* | |||
* | |||
* Description: See [http://www.mediawiki.org/wiki/Drop-Down_List]. | |||
* Maintainers: UNMAINTAINED | |||
*/ | |||
function ddm() { | |||
// Variables, change these in case you need to set other class names (mmhide_ for contribute users for example) | |||
var parentClass='isParent'; //gets applied when the LI has a nested UL | |||
var activeParentClass='isActive'; //gets applied when the nested UL is visible | |||
var preventHoverClass='nohover'; //denotes a navigation that should not get any hover effects | |||
var indicateJSClass='dhtml'; //gets applied to the main navigation when Javascript is available | |||
var toHideClass='hiddenChild'; //gets applied to hide the nested UL | |||
var toShowClass='shownChild'; //gets applied to show the nested UL | |||
var currentClass='current'; //denotes the current active sub element and prevents collapsing | |||
var d=document.getElementById('nav'); //denotes the navigation element | |||
// if DOM is not available stop right here. | |||
if(!document.getElementById && !document.createTextNode) { | |||
return; | |||
} | |||
// if the navigation element is available, apply the class denoting DHTML capabilities | |||
if(d) { | |||
d.className+=d.className==''?indicateJSClass:''+indicateJSClass; | |||
var lis,i,firstUL,j,apply; | |||
// loop through all LIs and check which ones have a nested UL | |||
lis=d.getElementsByTagName('li'); | |||
for(i=0;i<lis.length;i++) { | |||
firstUL=lis[i].getElementsByTagName('ul')[0] | |||
// if there is a nested UL, deactivate the first nested link and apply the class to show | |||
// there is a nested list | |||
if(firstUL) { | |||
lis[i].childNodes[0].onclick=function(){return false;} | |||
lis[i].className+=lis[i].className==''?parentClass:''+parentClass; | |||
// check if there is a "current" element | |||
apply=true; | |||
if(new RegExp('\\b'+currentClass+'\\b').test(lis[i].className)) { | |||
apply=false; | |||
} | |||
if(apply) { | |||
for(j=0;j<firstUL.getElementsByTagName('li').length;j++) { | |||
if(new RegExp('\\b'+currentClass+'\\b').test(firstUL.getElementsByTagName('li')[j].className)) { | |||
apply=false; | |||
break | |||
} | |||
} | |||
} | |||
// if there is no current element, apply the class to hide the nested list | |||
if(apply) { | |||
firstUL.className+=firstUL.className==''?toHideClass:''+toHideClass; | |||
// check if there is a class to prevent hover effects and only apply the function | |||
// onclick if that is the case, otherwise apply it onclick and onhover | |||
if(new RegExp('\\b'+preventHoverClass+'\\b').test(d.className)) { | |||
lis[i].onclick=function(){doddm(this);} | |||
} else { | |||
lis[i].onclick=function(){doddm(this);} | |||
lis[i].onmouseover=function(){doddm(this);} | |||
lis[i].onmouseout=function(){doddm(null);} | |||
} | |||
// if there is a current element, define the list as being kept open and apply the | |||
// classes to show the nested list and define the parent LI as an active one | |||
} else { | |||
lis[i].keepopen=1; | |||
firstUL.className+=firstUL.className==''?toShowClass:''+toShowClass; | |||
lis[i].className=lis[i].className.replace(parentClass,activeParentClass); | |||
} | |||
} | |||
} | |||
} | |||
// function to show and hide the nested lists and add the classes to the parent LIs | |||
function doddm(o) { | |||
var childUL,isobj,swap; | |||
// loop through all LIs of the navigation | |||
lis=d.getElementsByTagName('li'); | |||
for(i=0;i<lis.length;i++) { | |||
isobj=lis[i]==o; | |||
// function to exchange class names in an object | |||
swap=function(tmpobj,tmporg,tmprep) { | |||
tmpobj.className=tmpobj.className.replace(tmporg,tmprep) | |||
} | |||
// if the current LI does not have an indicator to be kept visible | |||
if(!lis[i].keepopen) { | |||
childUL=lis[i].getElementsByTagName('ul')[0]; | |||
// check if there is a nested UL and if the current LI is not the one clicked on | |||
// and exchange the classes accordingly (ie. hide all other nested lists and | |||
// make the LIs parent rather than active. | |||
if(childUL) { | |||
if(new RegExp('\\b'+preventHoverClass+'\\b').test(d.className)) { | |||
if(new RegExp('\\b'+activeParentClass+'\\b').test(lis[i].className)) { | |||
swap(childUL,isobj?toShowClass:toHideClass,isobj?toHideClass:toShowClass); | |||
swap(lis[i],isobj?activeParentClass:parentClass,isobj?parentClass:activeParentClass); | |||
} else { | |||
swap(childUL,isobj?toHideClass:toShowClass,isobj?toShowClass:toHideClass); | |||
swap(lis[i],isobj?parentClass:activeParentClass,isobj?activeParentClass:parentClass); | |||
} | |||
} else { | |||
swap(childUL,isobj?toHideClass:toShowClass,isobj?toShowClass:toHideClass); | |||
swap(lis[i],isobj?parentClass:activeParentClass,isobj?activeParentClass:parentClass); | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
window.onload=function() { | |||
ddm(); | |||
// add other functions to be called onload below | |||
} |