1var myTheme = { 2 init: function () { 3 // Common functions 4 if (this.inIframe()) $('body').addClass('in-iframe'); 5 if (!$('body').hasClass('exe-web-site')) return; 6 // Add menu and search bar togglers 7 var togglers = 8 '\ 9 <button type="button" id="siteNavToggler" class="toggler" title="' + 10 $exe_i18n.menu + 11 '">\ 12 <span class="sr-av">' + 13 $exe_i18n.menu + 14 '</span>\ 15 </button>\ 16 <button type="button" id="searchBarTogger" class="toggler" title="' + 17 $exe_i18n.search + 18 '">\ 19 <span class="sr-av">' + 20 $exe_i18n.search + 21 '</span>\ 22 </button>\ 23 '; 24 $('#siteNav').before(togglers); 25 // Check the current NAV status 26 var url = window.location.href; 27 url = url.split('?'); 28 if (url.length > 1) { 29 if (url[1].indexOf('nav=false') != -1) { 30 $('body').addClass('siteNav-off'); 31 myTheme.params('add'); 32 } 33 } 34 // Menu toggler 35 $('#siteNavToggler').on('click', function () { 36 if (myTheme.isLowRes()) { 37 $('#exe-client-search').hide(); 38 if ($('body').hasClass('siteNav-off')) { 39 $('body').removeClass('siteNav-off'); 40 } else { 41 if ($('#siteNav').isInViewport()) { 42 $('body').addClass('siteNav-off'); 43 myTheme.params('add'); 44 } 45 } 46 window.scroll(0, 0); 47 } else { 48 $('body').toggleClass('siteNav-off'); 49 myTheme.params( 50 $('body').hasClass('siteNav-off') ? 'add' : 'remove' 51 ); 52 } 53 }); 54 // Search bar toggler 55 $('#searchBarTogger').on('click', function () { 56 var bar = $('#exe-client-search'); 57 if (bar.is(':visible')) { 58 bar.hide(); 59 } else { 60 if (myTheme.isLowRes()) { 61 $('body').addClass('siteNav-off'); 62 } 63 bar.show(); 64 $('#exe-client-search-text').focus(); 65 window.scroll(0, 0); 66 } 67 }); 68 if (!this.inIframe()) { 69 // Fixed navigation 70 $('#siteNav').wrap('<div id="sidebar-nav"></div>'); 71 myTheme.checkNav(); 72 $(window).bind('resize', function () { 73 myTheme.checkNav(); 74 }); 75 } 76 // Search form 77 this.searchForm(); 78 }, 79 inIframe: function () { 80 try { 81 return window.self !== window.top; 82 } catch (e) { 83 return true; 84 } 85 }, 86 searchForm: function () { 87 $('#exe-client-search-text').attr('class', 'form-control'); 88 }, 89 isLowRes: function () { 90 return $('#siteNav').css('float') == 'none'; 91 }, 92 checkNav: function () { 93 var wrapper = $('#sidebar-nav'); 94 var navH = $('#siteNav > ul').height(); // Menu height 95 navH = navH + 50; 96 if (navH < $(window).height()) wrapper.addClass('fixed'); 97 else wrapper.removeClass('fixed'); 98 }, 99 param: function (e, act) { 100 if (act == 'add') { 101 var ref = e.href; 102 var con = '?'; 103 if (ref.indexOf('.html?') != -1) con = '&'; 104 var param = 'nav=false'; 105 if (ref.indexOf(param) == -1) { 106 ref += con + param; 107 e.href = ref; 108 } 109 } else { 110 // This will remove all params 111 var ref = e.href; 112 ref = ref.split('?'); 113 e.href = ref[0]; 114 } 115 }, 116 params: function (act) { 117 $('.nav-buttons a').each(function () { 118 myTheme.param(this, act); 119 }); 120 }, 121}; 122$(function () { 123 myTheme.init(); 124}); 125$.fn.isInViewport = function () { 126 var elementTop = $(this).offset().top; 127 var elementBottom = elementTop + $(this).outerHeight(); 128 var viewportTop = $(window).scrollTop(); 129 var viewportBottom = viewportTop + $(window).height(); 130 return elementBottom > viewportTop && elementTop < viewportBottom; 131};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.