User:Ahm masum/common.js

/* 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