1'use strict'; 2 3var stickyOffset; 4var stickyEnabled; 5 6(function( $ ) { 7 8 var verticalMenuScroll = null; 9 10 $( document ).ready(function() { 11 12 var hasCentralMenu = $( 'body' ).hasClass( 'btMenuCenterEnabled' ); 13 var verticalMenuEnabled = $( 'body' ).hasClass( 'btMenuVerticalLeftEnabled' ) || $( 'body' ).hasClass( 'btMenuVerticalRightEnabled' ); 14 var belowMenu = $( 'body' ).hasClass( 'btBelowMenu' ); 15 var touchDevice = $( 'html' ).hasClass( 'touch' ); 16 stickyEnabled = $( 'body' ).hasClass( 'btStickyEnabled' ); 17 stickyOffset = 250; 18 var swapHeaderStyle = belowMenu && stickyEnabled && $( '.btAltLogo' ).length > 0; // If alt logo exists we will swap header skin 19 // var skinToSwap = "btDarkSkin" : "btDarkSkin" ? $( 'body' ).hasClass( 'btDarkSkin' ); 20 var skinToSwap = $( 'body' ).hasClass( 'btDarkSkin' ) ? "btLightSkin" : "btDarkSkin"; 21 $( '.btPageWrap .btAltLogo' ).hide( ); 22 $( '.btPageWrap .btMainLogo' ).show( ); 23 24 25 26 function divide_menu() { 27 if ( ! hasCentralMenu ) return false; 28 var logoWidth = $( '.mainHeader .logo' ).height() * $( '.mainHeader .logo .btMainLogo' ).data( 'hw' ); 29 30 $( '.menuPort nav' ).addClass( 'leftNav' ); 31 $( '.menuPort' ).append( '<nav class="rightNav"><ul></ul></nav>' ); 32 var halfItems = Math.ceil( $( '.mainHeader nav.leftNav ul>li:not(li li)' ).length * .5 ); 33 $( '.mainHeader nav.rightNav > ul' ).append( $( '.mainHeader nav.leftNav > ul > li' ).slice ( halfItems ) ); 34 $( '.mainHeader nav.leftNav > ul > li' ).slice ( halfItems ).remove(); 35 36 $( '.mainHeader .logo' ).css( 'transform', 'translateX(' + Math.round(-logoWidth * .5) + 'px)' ); 37 $( '.mainHeader nav.leftNav' ).css( 'margin-right', Math.round(logoWidth * .5) + 'px' ); 38 $( '.mainHeader nav.rightNav' ).css( 'margin-left', Math.round(logoWidth * .5) + 'px' ); 39 } 40 41 function undivide_menu() { 42 if ( ! hasCentralMenu ) return false; 43 $( '.mainHeader nav.leftNav>ul:not(ul ul)' ).append( $( '.mainHeader nav.rightNav ul>li:not(li li)' ) ); 44 $( '.mainHeader nav.rightNav' ).remove(); 45 $( '.mainHeader .leftNav' ).removeAttr( 'style' ); 46 $( '.menuPort nav' ).removeClass( 'leftNav' ); 47 $( '.mainHeader .logo' ).removeAttr( 'style' ); 48 } 49 50 /* Vertical menu setup */ 51 52 function init_menu() { 53 if ( verticalMenuEnabled ) { 54 if ( $( 'body' ).hasClass( 'btMenuVerticalLeftEnabled' )) $( 'body' ).addClass( 'btMenuVerticalLeft btMenuVertical' ); 55 if ( $( 'body' ).hasClass( 'btMenuVerticalRightEnabled' )) $( 'body' ).addClass( 'btMenuVerticalRight btMenuVertical' ); 56 move_menu_to_vertical(); 57 } else { 58 $( 'body' ).removeClass( 'btMenuVerticalLeft btMenuVerticalRight btMenuVertical btMenuVerticalOn' ); 59 if ( $( 'body' ).hasClass( 'btMenuLeftEnabledCenter' )) $( 'body' ).addClass( 'btMenuLeft btMenuHorizontal btMenuCenter' ); 60 if ( $( 'body' ).hasClass( 'btMenuRightEnabled' )) $( 'body' ).addClass( 'btMenuRight btMenuHorizontal' ); 61 if ( $( 'body' ).hasClass( 'btMenuLeftEnabled' )) $( 'body' ).addClass( 'btMenuLeft btMenuHorizontal' ); 62 if ( $( 'body' ).hasClass( 'btMenuCenterEnabled' )) $( 'body' ).addClass( 'btMenuCenter btMenuHorizontal' ); 63 } 64 65 } 66 67 function move_menu_to_vertical() { 68 $( '.menuPort' ).prependTo( 'body' ); 69 $( '.mainHeader .logo' ).clone().prependTo( '.menuPort' ); 70 $( '.menuPort' ).prepend( '<div class="btCloseVertical"></div>'); 71 $( '.btCloseVertical' ).on( 'click', function() { 72 $( 'body' ).toggleClass( 'btMenuVerticalOn' ); 73 }); 74 $( '.mainHeader .topBar' ).appendTo( '.menuPort' ); 75 $( 'body' ).removeClass( 'btStickyHeaderActive' ); 76 if ( ! belowMenu ) $( '.btContentWrap' ).css( 'padding-top', $( '.mainHeader' ).height() +'px'); 77 78 $( 'li.current-menu-ancestor, li.current_menu_item').each(function() { 79 $( this ).find( '.subToggler' ).parent().addClass( 'on' ); 80 }); 81 82 // Vertical Menu Desktop Scroll 83 84 if ( $( 'body' ).hasClass( 'btMenuVertical' ) && $( 'html' ).hasClass( 'no-touch' ) ) { 85 86 $( '.no-touch .btMenuVertical .menuPort' ).wrapInner( '<div class="menuScrollPort"></div>' ); 87 88 if ( verticalMenuScroll === null ) { 89 verticalMenuScroll = new IScroll( '.no-touch .btMenuVertical .menuPort', { 90 scrollbars: true, 91 mouseWheel: true, 92 click: true, 93 interactiveScrollbars: true, 94 shrinkScrollbars: 'scale', 95 fadeScrollbars: true 96 });
97 } 98 } 99 } 100 101 function reset_menu_to_original() { 102 init_menu(); 103 $( '.menuPort .sub-menu' ).removeAttr( 'style' ); 104 $( '.menuPort .logo' ).remove(); 105 $( '.menuPort .btCloseVertical' ).remove(); 106 $( '.menuPort' ).appendTo( '.menuHolder' ); 107 $( '.menuPort .topBar' ).prependTo( '.mainHeader' ); 108 $( 'body' ).removeClass( 'btStickyHeaderActive' ); 109 divide_menu(); 110 if ( ! belowMenu ) $( '.btContentWrap' ).css( 'padding-top', $( '.mainHeader' ).height() +'px'); 111 $('.menuPort .menuScrollPort').contents().unwrap(); 112 /*if ( typeof verticalMenuScroll !== 'undefined' && verticalMenuScroll !== null ) verticalMenuScroll.destroy(); 113 verticalMenuScroll = null;*/ 114 $( 'nav li').each(function() { 115 $( this ).find( '.subToggler' ).parent().removeClass( 'on' ); 116 }); 117 } 118 119 /* activate sticky */ 120 121 window.boldthemes_activate_sticky = function() { 122 var fromTop = $( window ).scrollTop(); 123 if ( stickyEnabled ) { 124 if ( fromTop > stickyOffset ) { 125 $( 'body' ).addClass( 'btStickyHeaderActive' ); 126 if( swapHeaderStyle ) { 127 $( '.mainHeader' ).removeClass( skinToSwap ); 128 $( '.btPageWrap .btAltLogo' ).hide( ); 129 $( '.btPageWrap .btMainLogo' ).show( ); 130 } 131 setTimeout( function() { $( 'body' ).addClass( 'btStickyHeaderOpen' ) }, 100 ); 132 } else { 133 $( 'body' ).removeClass( 'btStickyHeaderOpen btStickyHeaderActive' ); 134 if( swapHeaderStyle ) { 135 $( '.mainHeader' ).addClass( skinToSwap ); 136 if ( swapHeaderStyle ) { 137 $( '.btPageWrap .btAltLogo' ).show( ); 138 $( '.btPageWrap .btMainLogo' ).hide( ); 139 } 140 } 141 } 142 } 143 } 144 145 /* Wide menu setup btMenuWideDropdown */ 146 147 var maxChildItems = 0; 148 $( 'li.btMenuWideDropdown > ul > li > ul' ).each(function( index ) { 149 if ( $( this ).children().length > maxChildItems ) { 150 maxChildItems = $( this ).children().length; 151 } 152 }); 153 154 $( 'li.btMenuWideDropdown > ul > li > ul' ).each(function( index ) { 155 if ( $( this ).children().length < maxChildItems ) { 156 for ( var i = 0; i <= maxChildItems - $( this ).children().length; i++ ) { 157 $( this ).append( '<li class="btEmptyElement"><a> </a></li>' ); 158 } 159 } 160 }); 161 162 /* Show hide menu */ 163 164 $( '.btHorizontalMenuTrigger' ).click(function (){ 165 $( '.menuHolder' ).toggleClass( 'btShowMenu' ); 166 return false; 167 }); 168 169 /* responsive menu toggler */ 170 171 $( '.btVerticalMenuTrigger' ).click(function() { 172 $( 'body' ).toggleClass( 'btMenuVerticalOn' ); 173 }); 174 175 /* Top tools search */ 176 177 /*$('.btTopBox .btSearchInner').prependTo('body').addClass( 'btFromTopBox' );*/ 178 179 $( '.btSearch .btIco, .btSearchInnerClose' ).click(function (){ 180 $( 'body' ).toggleClass( 'btTopToolsSearchOpen' ); 181 return false; 182 }); 183 184 /* Top bar toggler */ 185 186 $('.infoToggler').click(function(){ 187 $(this).toggleClass('on').next().slideToggle(250); 188 }); 189 190 /* Vertical menu setup */ 191 192 init_menu(); 193 setTimeout( function() { $( '.menuPort' ).css( 'visibility', 'visible' ); }, 500 ); 194 195 /* Load enquire */ 196 197 // turn on responsive menu for all touch devices 198 199 /*var responsiveResolution = touchDevice ? '5000' : '1199'; 200 if ( touchDevice && ! verticalMenuEnabled ) { 201 $( 'body' ).addClass( 'btHideMenu btMenuVerticalEnabled' ).removeClass( 'btMenuGutter' ); 202 }*/ 203 204 var responsiveResolution = '1023'; 205 206 if ( $( window ).width() > responsiveResolution ) { 207 $( '.topBarInLogoAreaCell' ).show(); 208 } 209 210 Modernizr.load([ 211 //first test need for matchMedia polyfill 212 { 213 test: window.matchMedia, 214 nope: window.BoldThemesURI + '/js/media.match.min.js' 215 }, 216 //and then load enquire 217 { 218 load : window.BoldThemesURI + '/js/enquire.min.js', 219 complete : function() { 220 //load supersized if NOT mobile. 221 $(function() { 222 enquire.register( 'screen and (max-width:' + responsiveResolution + 'px)', { 223 match: function() { 224 /* Force vertical menu */ 225 if ( ! verticalMenuEnabled ) { 226 undivide_menu(); 227 $( 'body' ).addClass( 'btMenuVerticalLeft btMenuVertical' ).removeClass( 'btMenuLeft btMenuCenter btMenuRight btMenuHorizontal btMenuVerticalRight' ); 228 move_menu_to_vertical(); 229 } 230 }, 231 unmatch: function () { 232 if ( ! verticalMenuEnabled ) { 233 reset_menu_to_original(); 234 } 235 } 236 }) 237 enquire.register( 'screen and (max-width: 992px)', { 238 match: function() { 239 240 // Pack Header Info 241 // $('.topBarInLogoArea').prepend('<span class="infoToggler"></span>'); 242 $('.topBarInLogoAreaCell').hide(); 243 244 }, 245 unmatch: function () { 246 247 // Unpack Header Info 248 // $('.infoToggler').unbind('click').remove(); 249 $('.topBarInLogoAreaCell').show(); 250 } 251 }) 252 enquire.register( 'screen and (max-width: 620px)', { 253 match: function() { 254 255 // Set avatar in mediabox 256 $('.wPhoto .articleSideGutter').each(function(){ 257 $(this).parents('.boldCell').find('.btMediaBox').append(this); 258 });
259 260 }, 261 unmatch: function () { 262 263 // Unset avatar from mediabox 264 $('.wPhoto .articleSideGutter').each(function(){ 265 $(this).parents('.boldCell').find('.btArticleListBody').before(this); 266 }); 267 268 } 269 }) 270 }); 271 } 272 } 273 ]); 274 275 276 /* menu split */ 277 if ( hasCentralMenu ) divide_menu(); 278 279 // move content bellow menu 280 281 if ( ! belowMenu ) { 282 $( '.btContentWrap' ).css( 'padding-top', $( '.mainHeader' ).height() + 'px' ); 283 $( window ).resize(function() { 284 undivide_menu(); 285 divide_menu(); 286 $( '.btContentWrap' ).css( 'padding-top', $( '.mainHeader' ).height() + 'px' ); 287 }); 288 $( window ).scroll(function() { 289 $( '.btContentWrap' ).css( 'padding-top', $( '.mainHeader' ).height() + 'px' ); 290 }); 291 } else { 292 if ( swapHeaderStyle ) { 293 $( '.mainHeader' ).addClass( skinToSwap ); 294 $( '.btPageWrap .btAltLogo' ).show( ); 295 $( '.btPageWrap .btMainLogo' ).hide( ); 296 } 297 } 298 299 /* responsive menu sub togglers */ 300 $( '.menuPort ul ul' ).parent().prepend( '<div class="subToggler"></div>'); 301 302 $( '.menuPort ul li' ).on( 'mouseover mouseout', function (e) { 303 if ( $( 'body' ).hasClass( 'btMenuVertical' ) || $( 'html' ).hasClass( 'touch' ) ) { 304 return false; 305 } 306 e.preventDefault(); 307 $( this ).siblings().removeClass( 'on' ); 308 $( this ).toggleClass( 'on' ); 309 }); 310 311 $( 'div.subToggler' ).on( 'click', function( e ) { 312 var parent = $( this ).parent(); 313 parent.siblings().removeClass( 'on' ); 314 parent.toggleClass( 'on' ); 315 if ( $( 'body' ).hasClass( 'btMenuVertical' ) ) { 316 parent.find( 'ul' ).first().slideToggle( 200 ); 317 setTimeout(function () { 318 if ( verticalMenuScroll !== null ) { 319 verticalMenuScroll.refresh(); 320 } 321 }, 280 ); 322 } 323 }); 324 325 }); 326 327 $( window ).on( 'load', function() { 328 329 boldthemes_activate_sticky(); 330 $( window ).scroll(function() { 331 boldthemes_activate_sticky(); 332 }); 333 334 }); 335 336})( jQuery );
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.