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 classie.toggle( this, 'active' ); 78 jQuery(this).find('div.hamburger').toggleClass('is-active'); 79 80 if( jQuery(this).hasClass('active') ) { 81 jQuery('html').addClass('wprmenu-body-fixed'); 82 83 if( wprmenu.enable_overlay == '1' ) { 84 jQuery('div.wprm-wrapper').find('.wprm-overlay').addClass('active'); 85 } 86 } 87 else { 88 jQuery('html').removeClass('wprmenu-body-fixed'); 89 if( wprmenu.enable_overlay == '1' ) { 90 jQuery('div.wprm-wrapper').find('.wprm-overlay').removeClass('active'); 91 } 92 } 93 94 /** 95 ---------------------------------------- 96 * 97 * Right side body push 98 * 99 ---------------------------------------- 100 **/ 101 if ( !jQuery(this).hasClass('normalslide') && jQuery(this).hasClass('left')) { 102 doc_width = jQuery(document).width() * (wprmenu.menu_width/100); 103 push_width = (wprmenu.push_width != '' && wprmenu.push_width < doc_width) ? wprmenu.push_width : doc_width; 104 classie.toggle(body, 'cbp-spmenu-push-toright'); 105 106 if( jQuery('body').hasClass('cbp-spmenu-push-toright') ) 107 jQuery('body').css('left', push_width + 'px'); 108 else 109 $('body').css('left','0px'); 110 } 111 112 /** 113 ---------------------------------------- 114 * 115 * Left side body push 116 * 117 ---------------------------------------- 118 **/ 119 if ( !jQuery(this).hasClass('normalslide') && jQuery(this).hasClass('right')) { 120 doc_width = jQuery(document).width() * (wprmenu.menu_width/100); 121 push_width = (wprmenu.push_width != '' && wprmenu.push_width < doc_width) ? wprmenu.push_width : doc_width; 122 classie.toggle(body, 'cbp-spmenu-push-toleft'); 123 124 if( jQuery('body').hasClass('cbp-spmenu-push-toleft') ) 125 jQuery('body').css('left','-'+push_width+'px'); 126 else 127 jQuery('body').css('left','0px'); 128 } 129 classie.toggle(Mgwprm, 'cbp-spmenu-open'); 130 131 close_sub_uls(); 132 133 }); 134 135 /** 136 ------------------------------------------------------------- 137 * 138 * Fix the scaling issue by adding/replacing viewport metatag 139 * 140 ------------------------------------------------------------- 141 **/ 142 var mt = $('meta[name=viewport]'); 143 mt = mt.length ? mt : $('<meta name="viewport" />').appendTo('head'); 144 if(wprmenu.zooming == 0) { 145 mt.attr('content', 'user-scalable=no, width=device-width, maximum-scale=1, minimum-scale=1'); 146 } else { 147 mt.attr('content', 'user-scalable=yes, width=device-width, initial-scale=1.0, minimum-scale=1'); 148 } 149 150 /** 151 ---------------------------------------- 152 * 153 * Click on body to remove the menu 154 * 155 ---------------------------------------- 156 **/ 157 $('body').click( function( event ) { 158 if ( $( '#wprmenu_bar' ).hasClass( 'active' ) ) { 159 $('#wprmenu_bar .wprmenu_icon').addClass('open'); 160 } 161 else { 162 $('#wprmenu_bar .wprmenu_icon').removeClass('open'); 163 } 164 }); 165 166 var menu = jQuery('#mg-wprm-wrap'); 167 var menu_ul = jQuery('#wprmenu_menu_ul'); //the menu ul 168 169 jQuery(document).mouseup(function (e) { 170 if ( ($(e.target).hasClass('wprmenu_bar') || $(e.target).parents('.wprmenu_bar').length == 0) && 171 ($(e.target).hasClass('cbp-spmenu') || $(e.target).parents('.cbp-spmenu').length == 0)) { 172 if(menu.is(':visible') ) { 173 $('.hamburger.is-active').trigger('click'); 174 } 175 } 176 }); 177 178 //add arrow element to the parent li items and chide its child uls 179 menu.find('ul.sub-menu').each(function() { 180 var sub_ul = $(this), 181 parent_a = sub_ul.prev('a'), 182 parent_li = parent_a.parent('li').first(); 183 184 parent_a.addClass('wprmenu_parent_item'); 185 parent_li.addClass('wprmenu_parent_item_li'); 186 187 var expand = parent_a.before('<span class="wprmenu_icon wprmenu_icon_par icon_default"></span> ').find('.wprmenu_icon_par'); 188 sub_ul.hide(); 189 }); 190 191 192 //expand / collapse action (SUBLEVELS) 193 $('.wprmenu_icon_par').on('click',function() { 194 var t = $(this), 195 child_ul = t.parent('li').find('ul.sub-menu').first(); 196 child_ul.slideToggle('300'); 197 t.toggleClass('wprmenu_par_opened'); 198 t.parent('li').first().toggleClass('wprmenu_no_border_bottom'); 199 }); 200 201 //helper - close all submenus when menu is hiding 202 function close_sub_uls() { 203 menu.find('ul.sub-menu').each(function() { 204 var ul = $(this), 205 icon = ul.parent('li').find('.wprmenu_icon_par'), 206 li = ul.parent('li'); 207 208 if(ul.is(':visible')) ul.slideUp(300); 209 icon.removeClass('wprmenu_par_opened'); 210 li.removeClass('wprmenu_no_border_bottom'); 211 }); 212 } 213 214 //submenu opened 215 function open_sub_uls() { 216 menu.find('ul.sub-menu').each(function() { 217 var ul = $(this), 218 icon = ul.parent('li').find('.wprmenu_icon_par'), 219 li = ul.parent('li'); 220 221 ul.slideDown(300); 222 icon.removeClass('wprmenu_par_opened'); 223 icon.addClass('wprmenu_par_opened'); 224 }); 225 } 226 227 if( menu.hasClass('cbp-spmenu-top') && $('body').hasClass('cbp-spmenu-push') ){ 228 $('body').prepend(menu); 229 //show / hide the menu 230 $('#wprmenu_bar,#custom_menu_icon').on('click', function(e) { 231 if( $(e.target).hasClass('bar_logo') ) 232 return; 233 //scroll window top 234 $("html, body").animate({ scrollTop: 0 }, 300); 235 236 close_sub_uls(); 237 menu.stop(true, false).slideToggle(300); 238 }); 239 } 240 if( wprmenu.parent_click == 'yes' ) { 241 $('a.wprmenu_parent_item').on('click', function( event ){ 242 event.preventDefault(); 243 $('.wprmenu_icon_par').trigger('click'); 244 }); 245 } 246 $('#wprmenu_menu_ul a').click(function(){ 247 if( wprmenu.parent_click !='yes' || (wprmenu.parent_click == 'yes' && !$(this).hasClass('wprmenu_parent_item')) ) 248 $('.hamburger.is-active').trigger('click'); 249 }); 250 251 252 /** 253 ---------------------------------------- 254 * 255 * Swipe Enable Function 256 * 257 ---------------------------------------- 258 **/
259 if( wprmenu.swipe == '1' ) { 260 jQuery('body').swipe({ 261 excludedElements: "button, input, select, textarea, .noSwipe", 262 longTapThreshold: 200, 263 swipe:function(event, direction, distance, duration, fingerCount, fingerData) { 264 menu_el = $('.wprmenu_bar .hamburger, .wprmenu_bar .wpr-custom-menu'); 265 if( direction =='left' && menu_el.hasClass('is-active') ) 266 menu_el.trigger('click'); 267 268 269 if( direction =='right' && !menu_el.hasClass('is-active') ) 270 menu_el.trigger('click'); 271 272 } 273 }); 274 } 275 276 function toggle_sub_uls($action) { 277 $('#mg-wprm-wrap').find('ul.sub-menu').each(function() { 278 var ul = $(this), 279 icon = ul.parent('li').find('.wprmenu_icon_par'), 280 li = ul.parent('li'); 281 282 if( $action == 'open' ) { 283 ul.slideDown(300); 284 icon.removeClass( wprmenu.submenu_open_icon ).addClass( wprmenu.submenu_close_icon ); 285 } 286 else { 287 if(ul.is(':visible')) ul.slideUp(300); 288 icon.removeClass( wprmenu.submenu_close_icon ).addClass( wprmenu.submenu_open_icon ); 289 li.removeClass('wprmenu_no_border_bottom'); 290 } 291 292 }); 293 } 294 295});
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.