1( function( window ) { 2 3'use strict'; 4 5function classReg( className ) { 6 return new ("(^|\\s+)" + className + "(\\s+|$)"); 7} 8// classList support for class management 9// although to be fair, the api sucks because it won't accept multiple classes at once 10var hasClass, addClass, removeClass; 11 12if ( 'classList' in document.documentElement ) { 13 hasClass = function( elem, c ) { 14 return elem.classList.contains( c ); 15 }; 16 addClass = function( elem, c ) { 17 elem.classList.add( c ); 18 }; 19 removeClass = function( elem, c ) { 20 elem.classList.remove( c ); 21 }; 22} 23else { 24 hasClass = function( elem, c ) { 25 return classReg( c ).test( elem.className ); 26 }; 27 addClass = function( elem, c ) { 28 if ( !hasClass( elem, c ) ) { 29 elem.className = elem.className + ' ' + c; 30 } 31 }; 32 removeClass = function( elem, c ) { 33 elem.className = elem.className.replace( classReg( c ), ' ' ); 34 }; 35} 36 37function toggleClass( elem, c ) { 38 var fn = hasClass( elem, c ) ? removeClass : addClass; 39 fn( elem, c ); 40} 41 42window.classie = { 43 // full names 44 hasClass: hasClass, 45 addClass: addClass, 46 removeClass: removeClass, 47 toggleClass: toggleClass, 48 // short names 49 has: hasClass, 50 add: addClass, 51 remove: removeClass, 52 toggle: toggleClass 53}; 54 55})( window ); 56 57jQuery( document ).ready( function( $ ) { 58 59 var Mgwprm = document.getElementById( 'mg-wprm-wrap' ); 60 var wprm_menuDir = document.getElementById( 'wprMenu' ); 61 body = document.body; 62 63 /** 64 ---------------------------------------- 65 * 66 * Body slide from one side ( left, right or top ) 67 * 68 ---------------------------------------- 69 **/ 70 if( jQuery('.wprmenu_bar').hasClass('bodyslide') ) 71 jQuery('body').addClass('cbp-spmenu-push'); 72 73 jQuery('.wprmenu_bar').click( function(e) { 74 if( $(e.target).hasClass('bar_logo') ) 75 return; 76 77 78 79 classie.toggle( this, 'active' ); 80 jQuery(this).find('div.hamburger').toggleClass('is-active'); 81 82 if( jQuery(this).hasClass('active') ) { 83 jQuery('html').addClass('wprmenu-body-fixed'); 84 85 if( wprmenu.enable_overlay == '1' ) { 86 jQuery('div.wprm-wrapper').find('.wprm-overlay').addClass('active'); 87 88 89 } 90 } 91 else { 92 jQuery('html').removeClass('wprmenu-body-fixed'); 93 94 if( wprmenu.enable_overlay == '1' ) { 95 jQuery('div.wprm-wrapper').find('.wprm-overlay').removeClass('active'); 96 } 97 98 99 } 100 101 /** 102 ---------------------------------------- 103 * 104 * Right side body push 105 * 106 ---------------------------------------- 107 **/ 108 if ( !jQuery(this).hasClass('normalslide') && jQuery(this).hasClass('left')) { 109 doc_width = jQuery(document).width() * (wprmenu.menu_width/100); 110 push_width = (wprmenu.push_width != '' && wprmenu.push_width < doc_width) ? wprmenu.push_width : doc_width; 111 classie.toggle(body, 'cbp-spmenu-push-toright'); 112 113 if( jQuery('body').hasClass('cbp-spmenu-push-toright') ) 114 jQuery('body').css('left', push_width + 'px'); 115 else 116 $('body').css('left','0px'); 117 } 118 119 /** 120 ---------------------------------------- 121 * 122 * Left side body push 123 * 124 ---------------------------------------- 125 **/ 126 if ( !jQuery(this).hasClass('normalslide') && jQuery(this).hasClass('right')) { 127 doc_width = jQuery(document).width() * (wprmenu.menu_width/100); 128 push_width = (wprmenu.push_width != '' && wprmenu.push_width < doc_width) ? wprmenu.push_width : doc_width; 129 classie.toggle(body, 'cbp-spmenu-push-toleft'); 130 131 if( jQuery('body').hasClass('cbp-spmenu-push-toleft') ) 132 jQuery('body').css('left','-'+push_width+'px'); 133 else 134 jQuery('body').css('left','0px'); 135 } 136 137 classie.toggle(Mgwprm, 'cbp-spmenu-open'); 138 139 var wprmenuDemoId = wprmenu.wprmenuDemoId; 140 141 if ( wprmenuDemoId == 15 ) { 142 143 jQuery('div.wprm-wrapper').addClass('wp-responsive-menu-demo15'); 144 145 }else if ( wprmenuDemoId == 16 ) { 146 147 jQuery('div.wprm-wrapper').addClass('wp-responsive-menu-demo16'); 148 149 }else if ( wprmenuDemoId == 17 ) { 150 151 jQuery('div.wprm-wrapper').addClass('wp-responsive-menu-demo17'); 152 153 } 154 155 close_sub_uls(); 156 157 }); 158 159 /** 160 ------------------------------------------------------------- 161 * 162 * Fix the scaling issue by adding/replacing viewport metatag 163 * 164 ------------------------------------------------------------- 165 **/ 166 var mt = $('meta[name=viewport]'); 167 mt = mt.length ? mt : $('<meta name="viewport" />').appendTo('head'); 168 if(wprmenu.zooming == 0) { 169 mt.attr('content', 'user-scalable=no, width=device-width, maximum-scale=1, minimum-scale=1'); 170 } else { 171 mt.attr('content', 'user-scalable=yes, width=device-width, initial-scale=1.0, minimum-scale=1'); 172 } 173 174 /** 175 ---------------------------------------- 176 * 177 * Click on body to remove the menu 178 * 179 ---------------------------------------- 180 **/ 181 $('body').click( function( event ) { 182 if ( $( '#wprmenu_bar' ).hasClass( 'active' ) ) { 183 $('#wprmenu_bar .wprmenu_icon').addClass('open'); 184 } 185 else { 186 $('#wprmenu_bar .wprmenu_icon').removeClass('open'); 187 } 188 }); 189 190 var menu = jQuery('#mg-wprm-wrap'); 191 var menu_ul = jQuery('#wprmenu_menu_ul'); //the menu ul 192 193 jQuery(document).mouseup(function (e) { 194 if ( ($(e.target).hasClass('wprmenu_bar') || $(e.target).parents('.wprmenu_bar').length == 0) && 195 ($(e.target).hasClass('cbp-spmenu') || $(e.target).parents('.cbp-spmenu').length == 0)) { 196 if(menu.is(':visible') ) { 197 $('.hamburger.is-active').trigger('click'); 198 } 199 } 200 }); 201 202 //add arrow element to the parent li items and chide its child uls 203 menu.find('ul.sub-menu').each(function() { 204 var sub_ul = $(this), 205 parent_a = sub_ul.prev('a'), 206 parent_li = parent_a.parent('li').first(); 207 208 parent_a.addClass('wprmenu_parent_item'); 209 parent_li.addClass('wprmenu_parent_item_li'); 210 211 var expand = parent_a.before('<span class="wprmenu_icon wprmenu_icon_par icon_default"></span> ').find('.wprmenu_icon_par'); 212 sub_ul.hide(); 213 }); 214 215 216 //expand / collapse action (SUBLEVELS) 217 $('.wprmenu_icon_par').on('click',function() { 218 var t = $(this), 219 child_ul = t.parent('li').find('ul.sub-menu').first(); 220 child_ul.slideToggle('300'); 221 t.toggleClass('wprmenu_par_opened'); 222 t.parent('li').first().toggleClass('wprmenu_no_border_bottom'); 223 }); 224 225 //helper - close all submenus when menu is hiding 226 function close_sub_uls() { 227 menu.find('ul.sub-menu').each(function() { 228 var ul = $(this), 229 icon = ul.parent('li').find('.wprmenu_icon_par'), 230 li = ul.parent('li'); 231 232 if(ul.is(':visible')) ul.slideUp(300); 233 icon.removeClass('wprmenu_par_opened'); 234 li.removeClass('wprmenu_no_border_bottom'); 235 }); 236 } 237 238 //submenu opened 239 function open_sub_uls() { 240 menu.find('ul.sub-menu').each(function() { 241 var ul = $(this), 242 icon = ul.parent('li').find('.wprmenu_icon_par'), 243 li = ul.parent('li'); 244 245 ul.slideDown(300); 246 icon.removeClass('wprmenu_par_opened'); 247 icon.addClass('wprmenu_par_opened'); 248 }); 249 } 250 251 if( menu.hasClass('cbp-spmenu-top') && $('body').hasClass('cbp-spmenu-push') ){ 252 $('body').prepend(menu); 253 //show / hide the menu 254 $('#wprmenu_bar,#custom_menu_icon').on('click', function(e) { 255 if( $(e.target).hasClass('bar_logo') ) 256 return; 257 //scroll window top 258 $("html, body").animate({ scrollTop: 0 }, 300); 259 260 close_sub_uls(); 261 menu.stop(true, false).slideToggle(300); 262 }); 263 } 264 if( wprmenu.parent_click == 'yes' ) { 265 $('a.wprmenu_parent_item').on('click', function( event ){ 266 event.preventDefault(); 267 var t = $(this); 268 // Find the corresponding menu icon and trigger its click 269 t.parent('li').find('.wprmenu_icon_par').first().trigger('click'); 270 }); 271 } 272 $('#wprmenu_menu_ul a').click(function(){ 273 if( wprmenu.parent_click !='yes' || (wprmenu.parent_click == 'yes' && !$(this).hasClass('wprmenu_parent_item')) ) 274 $('.hamburger.is-active').trigger('click'); 275 }); 276 277 278 /** 279 ---------------------------------------- 280 * 281 * Swipe Enable Function 282 * 283 ---------------------------------------- 284 **/
285 if( wprmenu.swipe == '1' ) { 286 jQuery('body').swipe({ 287 excludedElements: "button, input, select, textarea, .noSwipe", 288 longTapThreshold: 200, 289 swipe:function(event, direction, distance, duration, fingerCount, fingerData) { 290 menu_el = $('.wprmenu_bar .hamburger, .wprmenu_bar .wpr-custom-menu'); 291 if( direction =='left' && menu_el.hasClass('is-active') ) 292 menu_el.trigger('click'); 293 294 295 if( direction =='right' && !menu_el.hasClass('is-active') ) 296 menu_el.trigger('click'); 297 298 } 299 }); 300 } 301 302 function toggle_sub_uls($action) { 303 $('#mg-wprm-wrap').find('ul.sub-menu').each(function() { 304 var ul = $(this), 305 icon = ul.parent('li').find('.wprmenu_icon_par'), 306 li = ul.parent('li'); 307 308 if( $action == 'open' ) { 309 ul.slideDown(300); 310 icon.removeClass( wprmenu.submenu_open_icon ).addClass( wprmenu.submenu_close_icon ); 311 } 312 else { 313 if(ul.is(':visible')) ul.slideUp(300); 314 icon.removeClass( wprmenu.submenu_close_icon ).addClass( wprmenu.submenu_open_icon ); 315 li.removeClass('wprmenu_no_border_bottom'); 316 } 317 318 }); 319 } 320 321});
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.