1jQuery(function intializeTemplateJS() { 2 'use strict'; 3 4 var getULwidth = function getULwidth($ul) { 5 var widestLiWidth = 0; 6 var $li = $ul.children('li'); 7 $li.each(function getInlineLiWidth() { 8 var $div = jQuery(this).children('div.li').first(); 9 var content = $div.html(); 10 var currentLiWidth; 11 $div.html('<span id="widthMeasure">' + content + '</span>'); 12 currentLiWidth = jQuery('#widthMeasure').width(); 13 $div.html(content); 14 widestLiWidth = Math.max(widestLiWidth, currentLiWidth); 15 }); 16 return parseInt(widestLiWidth, 10); 17 }; 18 19 (function toggleSubsectionsOnMobile() { 20 var MOBILE_WIDTH = 600; 21 var SHALLOWST_SECTION_TO_HIDE = 2; 22 var DEEPEST_SECTION_TO_HIDE = 6; 23 var i; 24 var $page; 25 if (jQuery(window).width() <= MOBILE_WIDTH) { 26 $page = jQuery('#icke__page'); 27 for (i = SHALLOWST_SECTION_TO_HIDE; i < DEEPEST_SECTION_TO_HIDE; i += 1) { 28 $page.find('div.level' + i).hide(); 29 $page.find('h' + i).click(function toggleSection() { 30 jQuery(this).next('div').toggle(); 31 }); 32 } 33 } 34 }()); 35 36 (function buildNestedQuickNav() { 37 // noinspection JSJQueryEfficiency 38 jQuery('div.sec_level').css('display', 'inline'); 39 jQuery('.popup_content ul').children('li.node').each(function detachLiIntoBubble($index, element) { 40 var ZINDEX_STEP = 5; 41 var $currentNode = jQuery(element); 42 var $newPopout = $currentNode.closest('div.sec_level').clone(); 43 var currentZIndex = parseInt($currentNode.closest('div.sec_level').first().css('z-index'), 10); 44 var newZIndex = currentZIndex + ZINDEX_STEP; 45 var parentWidth = getULwidth($currentNode.closest('ul')); 46 var parentPaddingLeft = parseInt($currentNode.css('padding-left').replace('px', ''), 10); 47 var parentPaddingRight = parseInt($currentNode.css('padding-right').replace('px', ''), 10); 48 var newCSS = { 49 'z-index': newZIndex, 50 left: parentPaddingLeft + parentWidth + parentPaddingRight + 'px', 51 }; 52 $newPopout.html(''); 53 $newPopout.css(newCSS); 54 $currentNode.children('ul').first().appendTo($newPopout); 55 $newPopout.appendTo($currentNode); 56 $currentNode.removeClass('node'); 57 $currentNode.addClass('navNode'); 58 }); 59 // we need to duplicate the selector since we just changed the selected elements 60 // noinspection JSJQueryEfficiency 61 jQuery('div.sec_level').css('display', ''); 62 }()); 63}); 64