1*132f818dSEnji Cooper/* 2*132f818dSEnji Cooper @licstart The following is the entire license notice for the JavaScript code in this file. 3*132f818dSEnji Cooper 4*132f818dSEnji Cooper The MIT License (MIT) 5*132f818dSEnji Cooper 6*132f818dSEnji Cooper Copyright (C) 1997-2020 by Dimitri van Heesch 7*132f818dSEnji Cooper 8*132f818dSEnji Cooper Permission is hereby granted, free of charge, to any person obtaining a copy of this software 9*132f818dSEnji Cooper and associated documentation files (the "Software"), to deal in the Software without restriction, 10*132f818dSEnji Cooper including without limitation the rights to use, copy, modify, merge, publish, distribute, 11*132f818dSEnji Cooper sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 12*132f818dSEnji Cooper furnished to do so, subject to the following conditions: 13*132f818dSEnji Cooper 14*132f818dSEnji Cooper The above copyright notice and this permission notice shall be included in all copies or 15*132f818dSEnji Cooper substantial portions of the Software. 16*132f818dSEnji Cooper 17*132f818dSEnji Cooper THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 18*132f818dSEnji Cooper BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19*132f818dSEnji Cooper NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 20*132f818dSEnji Cooper DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21*132f818dSEnji Cooper OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22*132f818dSEnji Cooper 23*132f818dSEnji Cooper @licend The above is the entire license notice for the JavaScript code in this file 24*132f818dSEnji Cooper */ 25*132f818dSEnji Cooperfunction initMenu(relPath,searchEnabled,serverSide,searchPage,search) { 26*132f818dSEnji Cooper function makeTree(data,relPath) { 27*132f818dSEnji Cooper var result=''; 28*132f818dSEnji Cooper if ('children' in data) { 29*132f818dSEnji Cooper result+='<ul>'; 30*132f818dSEnji Cooper for (var i in data.children) { 31*132f818dSEnji Cooper var url; 32*132f818dSEnji Cooper var link; 33*132f818dSEnji Cooper link = data.children[i].url; 34*132f818dSEnji Cooper if (link.substring(0,1)=='^') { 35*132f818dSEnji Cooper url = link.substring(1); 36*132f818dSEnji Cooper } else { 37*132f818dSEnji Cooper url = relPath+link; 38*132f818dSEnji Cooper } 39*132f818dSEnji Cooper result+='<li><a href="'+url+'">'+ 40*132f818dSEnji Cooper data.children[i].text+'</a>'+ 41*132f818dSEnji Cooper makeTree(data.children[i],relPath)+'</li>'; 42*132f818dSEnji Cooper } 43*132f818dSEnji Cooper result+='</ul>'; 44*132f818dSEnji Cooper } 45*132f818dSEnji Cooper return result; 46*132f818dSEnji Cooper } 47*132f818dSEnji Cooper var searchBoxHtml; 48*132f818dSEnji Cooper if (searchEnabled) { 49*132f818dSEnji Cooper if (serverSide) { 50*132f818dSEnji Cooper searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+ 51*132f818dSEnji Cooper '<div class="left">'+ 52*132f818dSEnji Cooper '<form id="FSearchBox" action="'+relPath+searchPage+ 53*132f818dSEnji Cooper '" method="get"><span id="MSearchSelectExt"> </span>'+ 54*132f818dSEnji Cooper '<input type="text" id="MSearchField" name="query" value="" placeholder="'+search+ 55*132f818dSEnji Cooper '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+ 56*132f818dSEnji Cooper ' onblur="searchBox.OnSearchFieldFocus(false)"/>'+ 57*132f818dSEnji Cooper '</form>'+ 58*132f818dSEnji Cooper '</div>'+ 59*132f818dSEnji Cooper '<div class="right"></div>'+ 60*132f818dSEnji Cooper '</div>'; 61*132f818dSEnji Cooper } else { 62*132f818dSEnji Cooper searchBoxHtml='<div id="MSearchBox" class="MSearchBoxInactive">'+ 63*132f818dSEnji Cooper '<span class="left">'+ 64*132f818dSEnji Cooper '<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()"'+ 65*132f818dSEnji Cooper ' onmouseout="return searchBox.OnSearchSelectHide()"> </span>'+ 66*132f818dSEnji Cooper '<input type="text" id="MSearchField" value="" placeholder="'+search+ 67*132f818dSEnji Cooper '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+ 68*132f818dSEnji Cooper 'onblur="searchBox.OnSearchFieldFocus(false)" '+ 69*132f818dSEnji Cooper 'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+ 70*132f818dSEnji Cooper '</span>'+ 71*132f818dSEnji Cooper '<span class="right"><a id="MSearchClose" '+ 72*132f818dSEnji Cooper 'href="javascript:searchBox.CloseResultsWindow()">'+ 73*132f818dSEnji Cooper '<img id="MSearchCloseImg" border="0" src="'+relPath+ 74*132f818dSEnji Cooper 'search/close.svg" alt=""/></a>'+ 75*132f818dSEnji Cooper '</span>'+ 76*132f818dSEnji Cooper '</div>'; 77*132f818dSEnji Cooper } 78*132f818dSEnji Cooper } 79*132f818dSEnji Cooper 80*132f818dSEnji Cooper $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+ 81*132f818dSEnji Cooper '<label class="main-menu-btn" for="main-menu-state">'+ 82*132f818dSEnji Cooper '<span class="main-menu-btn-icon"></span> '+ 83*132f818dSEnji Cooper 'Toggle main menu visibility</label>'+ 84*132f818dSEnji Cooper '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+ 85*132f818dSEnji Cooper '</div>'); 86*132f818dSEnji Cooper $('#main-nav').append(makeTree(menudata,relPath)); 87*132f818dSEnji Cooper $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); 88*132f818dSEnji Cooper if (searchBoxHtml) { 89*132f818dSEnji Cooper $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>'); 90*132f818dSEnji Cooper } 91*132f818dSEnji Cooper var $mainMenuState = $('#main-menu-state'); 92*132f818dSEnji Cooper var prevWidth = 0; 93*132f818dSEnji Cooper if ($mainMenuState.length) { 94*132f818dSEnji Cooper function initResizableIfExists() { 95*132f818dSEnji Cooper if (typeof initResizable==='function') initResizable(); 96*132f818dSEnji Cooper } 97*132f818dSEnji Cooper // animate mobile menu 98*132f818dSEnji Cooper $mainMenuState.change(function(e) { 99*132f818dSEnji Cooper var $menu = $('#main-menu'); 100*132f818dSEnji Cooper var options = { duration: 250, step: initResizableIfExists }; 101*132f818dSEnji Cooper if (this.checked) { 102*132f818dSEnji Cooper options['complete'] = function() { $menu.css('display', 'block') }; 103*132f818dSEnji Cooper $menu.hide().slideDown(options); 104*132f818dSEnji Cooper } else { 105*132f818dSEnji Cooper options['complete'] = function() { $menu.css('display', 'none') }; 106*132f818dSEnji Cooper $menu.show().slideUp(options); 107*132f818dSEnji Cooper } 108*132f818dSEnji Cooper }); 109*132f818dSEnji Cooper // set default menu visibility 110*132f818dSEnji Cooper function resetState() { 111*132f818dSEnji Cooper var $menu = $('#main-menu'); 112*132f818dSEnji Cooper var $mainMenuState = $('#main-menu-state'); 113*132f818dSEnji Cooper var newWidth = $(window).outerWidth(); 114*132f818dSEnji Cooper if (newWidth!=prevWidth) { 115*132f818dSEnji Cooper if ($(window).outerWidth()<768) { 116*132f818dSEnji Cooper $mainMenuState.prop('checked',false); $menu.hide(); 117*132f818dSEnji Cooper $('#searchBoxPos1').html(searchBoxHtml); 118*132f818dSEnji Cooper $('#searchBoxPos2').hide(); 119*132f818dSEnji Cooper } else { 120*132f818dSEnji Cooper $menu.show(); 121*132f818dSEnji Cooper $('#searchBoxPos1').empty(); 122*132f818dSEnji Cooper $('#searchBoxPos2').html(searchBoxHtml); 123*132f818dSEnji Cooper $('#searchBoxPos2').show(); 124*132f818dSEnji Cooper } 125*132f818dSEnji Cooper if (typeof searchBox!=='undefined') { 126*132f818dSEnji Cooper searchBox.CloseResultsWindow(); 127*132f818dSEnji Cooper } 128*132f818dSEnji Cooper prevWidth = newWidth; 129*132f818dSEnji Cooper } 130*132f818dSEnji Cooper } 131*132f818dSEnji Cooper $(window).ready(function() { resetState(); initResizableIfExists(); }); 132*132f818dSEnji Cooper $(window).resize(resetState); 133*132f818dSEnji Cooper } 134*132f818dSEnji Cooper $('#main-menu').smartmenus(); 135*132f818dSEnji Cooper} 136*132f818dSEnji Cooper/* @license-end */ 137