/* Any JavaScript here will be loaded for all users on every page load. */
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
};
/* User:Equazcion/ScriptInstaller.js */
//importScript( 'User:Equazcion/ScriptInstaller.js' );// Backlink: [[User:Equazcion/ScriptInstaller.js]]
//importScript('User:Jfmantis/pagesCreated.js'); //Linkback: [[User:Jfmantis/pagesCreated.js]] Added by Script installer
//importScript('User:Equazcion/ContribsTabVector.js'); //Linkback: [[User:Equazcion/ContribsTabVector.js]] Added by Script installer
//importScript('User:קיפודנחש/cat-a-lot.js'); //Linkback: [[User:קיפודנחש/cat-a-lot.js]] Added by Script installer
//importScript('User:Ravid ziv/highlightSearch.js'); //Linkback: [[User:Ravid ziv/highlightSearch.js]] Added by Script installer
//importScript('User:Anomie/linkclassifier.js'); //Linkback: [[User:Anomie/linkclassifier.js]] Added by Script installer
//importScript('User:Ais523/adminrights.js'); //Linkback: [[User:Ais523/adminrights.js]] Added by Script installer
//importScript('User:PrimeHunter/My subpages.js'); //Linkback: [[User:PrimeHunter/My subpages.js]] Added by Script installer
//importScript('User:V111P/js/wikiTranslTools.js'); //Linkback: [[User:V111P/js/wikiTranslTools.js]] Added by Script installer
//importScript('User:Mvolz/veCiteFromURL.js'); //Linkback: [[User:Mvolz/veCiteFromURL.js]] Added by Script installer
//importScript('User:Equazcion/CustomSummaryPresets.js'); //Linkback: [[User:Equazcion/CustomSummaryPresets.js]] Added by Script installer
//importScript('User:N8wilson/AQFetcher.js'); //Linkback: [[User:N8wilson/AQFetcher.js]] Added by Script installer
//importScript('User:Fred Gandt/subdueLinks.js'); //Linkback: [[User:Fred Gandt/subdueLinks.js]] Added by Script installer
//importScript('User:Lenore/autolink.js'); //Linkback: [[User:Lenore/autolink.js]] Added by Script installer
//importScript('User:Huji/Gadget-intropreload.js'); //Linkback: [[User:Huji/Gadget-intropreload.js]] Added by Script installer
//importScript('User:Zellfaze/expandEdit.js'); //Linkback: [[User:Zellfaze/expandEdit.js]] Added by Script installer
//importScript('User:Fred Gandt/sectionFooters.js'); //Linkback: [[User:Fred Gandt/sectionFooters.js]] Added by Script installer
//importScript('User:Bility/copySectionLink.js'); //Linkback: [[User:Bility/copySectionLink.js]] Added by Script installer
//importScript('User:Technical 13/Scripts/Gadget-veditLinks.js'); //Linkback: [[User:Technical 13/Scripts/Gadget-veditLinks.js]] Added by Script installer
//importScript('User:Mabdul/saveandedit.js'); //Linkback: [[User:Mabdul/saveandedit.js]] Added by Script installer
//importScript('User:Equazcion/LiveDiffLink.js'); //Linkback: [[User:Equazcion/LiveDiffLink.js]] Added by Script installer
//importScript('User:IagoQnsi/addptlinks.js'); //Linkback: [[User:IagoQnsi/addptlinks.js]] Added by Script installer
//importScript('User:קיפודנחש/viewstats.js'); //Linkback: [[User:קיפודנחש/viewstats.js]] Added by Script installer
//importScript('User:V111P/js/smartLinkingLoader.js'); //Linkback: [[User:V111P/js/smartLinkingLoader.js]] Added by Script installer
//importScript('User:Theopolisme/Scripts/autocompleter.js'); //Linkback: [[User:Theopolisme/Scripts/autocompleter.js]] Added by Script installer
//importScript('User:ערן/autocomplete.js'); //Linkback: [[User:ערן/autocomplete.js]] Added by Script installer
//importScript('User:BenjaminWillJS/AjaxRollback.js'); //Linkback: [[User:BenjaminWillJS/AjaxRollback.js]] Added by Script installer
//importScript('User:Dudemanfellabra/diffs.js'); //Linkback: [[User:Dudemanfellabra/diffs.js]] Added by Script installer
//importScript('User:MusikAnimal/MoreMenu.js'); //Linkback: [[User:MusikAnimal/MoreMenu.js]] Added by Script installer
//importScript('User:Equazcion/ToggleEditNotices.js'); //Linkback: [[User:Equazcion/ToggleEditNotices.js]] Added by Script installer
//importScript('User:Anomie/useridentifier.js'); //Linkback: [[User:Anomie/useridentifier.js]] Added by Script installer