/**
 * File default.js.
 * Theme Frontend scripts.
 */

( function () {

	if ( typeof $ === 'undefined' ) $ = jQuery;
	// $(document).ready(function() {
	$( function () {
		// init js
		nav.init();

		console.log( "Navigation Scripts: loaded" );
	} );

} )( jQuery );

var nav = new function () {

	this.menu_anchors = [];
	this.anchors = [];
	this.timeout_show = undefined;
	this.timeout_hide = undefined;
	// this.active_dropmenu = undefined;

	// stop hash anchor
	this.hash = window.location.hash;
	// if (window.location.hash) {
	//     // window.location.hash = "";
	//     window.location.replace('#')
	// }

	this.init = function () {
		$( 'meta[name=generator]' ).remove();
		$( '#signup-content' ).addClass( 'vc_row wp-block-columns row_l' );
		$( '#signup-content' ).css( 'transition-duration', '0s' );
		this.addEvents();
		// // console.log('Navigation Script: loaded');
	};

	this.addEvents = function () {

		setTimeout( function () { $( 'body' ).addClass( 'animate_fast' ); }, 0 );
		if ( $( '.navigation' ).hasClass( 'v2' ) ) $( 'body' ).addClass( 'v2' );

		// sticky menu
		if ( $( '.navigation' ).hasClass( 'sticky' ) ) {
			$( window ).scroll( this.onScroll );
			this.onScroll();
		}

		// hamburger menu
		$( "#toggle" ).on( "change", function () {
			if ( $( this ).prop( 'checked' ) ) {
				$( this ).prev().children( 0 ).addClass( 'is-active' ).attr( 'aria-expanded', 'true' );
			}
			else {
				$( this ).prev().children( 0 ).removeClass( 'is-active' ).attr( 'aria-expanded', 'false' );
			}
		} );

		// anchors in menu and vc_anchor/greyd-anchor-target
		$( '.vc_anchor, .greyd-anchor-target' ).each( function () {
			nav.anchors[ $( this )[ 0 ].id ] = [];
		} );
		$( '.current-menu-item a.anchor_item' ).each( function () {
			var h = $( this )[ 0 ].hash.replace( '#', '' );
			if ( nav.anchors[ h ] != undefined ) nav.anchors[ h ].push( $( this )[ 0 ] );
		} );
		$( '.menu-item a[href*="#"], .vc_anchor a[href*="#"]' ).on( "click", function ( e ) {
			if ( $( this.hash ).length && $( '.offmenu' ).length > 0 ) {
				nav.closeMenus();
			}
		} );

		// offmenu
		if ( $( '.offmenu' ).length > 0 ) {
			this.addOffCanvas();
		}

		// // submenu/template dropdown
		// if ( $( '.dropmenu_wrapper .dropmenu_content' ).length > 0 ) {
		// 	this.addDropmenus();
		// }
		// if ( $( '#dropmenu_all_content' ).length > 0 ) {
		// 	this.addDropmenuMobile();
		// }

		/**
		 * Close the offmenu on keyboard focusout.
		 * @since 1.5.0
		 */
		$('.offmenu').on('focusout', (e) => {
			if ( e.relatedTarget && Boolean( e.relatedTarget.closest('.offmenu') ) === false ) {
				this.closeMenus();
			}
		})

		/**
		 * Prevent dropmenus from overlapping outside the viewport frame.
		 * @since 1.5.0
		 */
		setTimeout( nav.resizeDropmenus, 300 );
		window.addEventListener( 'resize', nav.resizeDropmenus );
	};

	this.addOffCanvas = function () {

		if ( $( '#metamenuoff' ).length > 0 ) {
			$( '#metamenu > .mmenu ul li' ).addClass( 'off' );
			$( '#metamenuoff.mmenu ul li' ).addClass( 'off' );
			$( document ).on( 'click', '#metamenu > .mmenu ul > li > a', this.toggleMenu );
			$( document ).on( 'click', '#metamenu > .mymenu ul > li > a', this.toggleMenu );

			// add event listener for spacebar or enter - call click on node
			$( '[aria-controls="metamenuoff"]' )[0].addEventListener('keydown', function(event){
				// console.log(event);
				if (event.keyCode === 32 || event.keyCode === 13) {
					event.preventDefault();
					event.stopPropagation();
					this.click();
				}
			});
		}

		if ( $( '#mainmenuoff' ).length > 0 ) {
			$( '#mainmenu > .mmenu ul li' ).addClass( 'off' );
			$( '#mainmenuoff.mmenu ul li' ).addClass( 'off' );
			$( document ).on( 'click', '#dropmenu_all', this.toggleMenu );
			$( document ).on( 'click', '#mainmenu > .mmenu ul > li > a', this.toggleMenu );
			$( document ).on( 'click', '#mainmenu > .mymenu ul > li > a', this.toggleMenu );

			// add event listener for spacebar or enter - call click on node
			$( '[aria-controls="mainmenuoff"]' )[0].addEventListener('keydown', (e) => {
				if (e.keyCode === 32 || e.keyCode === 13) {
					nav.toggleMenu( e );
				}
			});
		}

		/**
	 	 * Now handled with submenu.js for native accessibility.
		 * @deprecated since 1.5.0
		 */
		// $( document ).on( 'click', '.offmenu div > ul > li > a', this.toggleItem );
		$( document ).on( 'click', '.offmenu .toggle_close', this.closeMenus );
		// $( window ).on( 'beforeunload', this.closeMenus );

		/**
		 * Close offmenu when ESC is pressed.
		 */
		const offmenu = document.querySelector( ".offmenu" );
		offmenu && $( window ).on( 'keydown', function ( event ) {
			if ( offmenu.classList.contains( "open" ) && event.key == "Escape" ) {
				nav.closeMenus();
				document.querySelector( '[aria-controls="'+offmenu.getAttribute('id')+'"]' ).focus();
			}
		} );
	};

	/**
	 * Fix the menu offsets by transforming the menu to the left or right.
	 */
	this.resizeDropmenus = function () {
		$( '.dropmenu_content' ).each( function() {
			const wrap = this;
			const menu = this.lastChild;
			const style = this.getAttribute('style');
			// temporarily show this item
			wrap.setAttribute("style", "display: block; z-index: -999; opacity: 0; " + style );
			const rect = wrap.getBoundingClientRect();

			if ( rect.left < 0 ) {
				menu.setAttribute("style", "transform: translateX("+Math.abs( rect.left )+"px);");
			}
			else if ( rect.right > (window.innerWidth || document.documentElement.clientWidth) ) {
				menu.setAttribute("style", "transform: translateX(-"+( rect.right - window.innerWidth )+"px);");
			}
			// hide again
			wrap.setAttribute("style", style);
		} )
	}

	// this.addDropmenuMobile = function () {
	// 	$( '.mmenu ul li' ).addClass( 'off' );
	// 	$( document ).on( 'click', '#toggle', function ( e ) { e.preventDefault(); } );
	// };
	// this.addDropmenus = function () {
	// 	var trigger = $( '.dropmenu_wrapper' ).data( 'trigger' );
	// 	$( '.dropmenu_wrapper .dropmenu_content' ).each( function () {
	// 		var content_id = '#' + $( this ).attr( 'id' );
	// 		var item_id = content_id.replace( '_content', '' );
	// 		if ( trigger == 'click' ) {
	// 			// show/hide on click
	// 			$( item_id ).on( 'click', function () { nav.toggleDropmenu( content_id ); } );
	// 			$( document ).off( 'click', 'body' ).on( 'click', 'body', function ( e ) { nav.hideDropmenus( e ); } );
	// 		}
	// 		else {
	// 			// show hover
	// 			$( item_id ).on( 'mouseover', function () { nav.showDropmenu( content_id ); } );
	// 			$( content_id ).on( 'mouseover', function () { nav.showDropmenu( content_id ); } );
	// 			// hide
	// 			$( item_id ).on( 'mouseout', function () { nav.hideDropmenu( content_id ); } );
	// 			$( content_id ).on( 'mouseout', function () { nav.hideDropmenu( content_id ); } );
	// 		}
	// 	} );
	// 	this.resizeDropmenu();
	// 	$( window ).resize( this.resizeDropmenu );
	// };
	// this.toggleDropmenu = function ( content_id ) {
	// 	if ( $( content_id ).css( 'display' ) == 'block' )
	// 		nav.hideDropmenu( content_id );
	// 	else
	// 		nav.showDropmenu( content_id );
	// };
	// this.hideDropmenus = function ( e ) {
	// 	// console.log(e);
	// 	if ( $( e.target ).hasClass( 'dropmenu_content' ) ) return;
	// 	if ( $( e.target ).closest( '.dropmenu_content' ).length > 0 ) return;
	// 	if ( $( e.target ).hasClass( 'dropmenu_item' ) ) return;
	// 	if ( $( e.target ).closest( '.dropmenu_item' ).length > 0 ) return;

	// 	$( '.dropmenu_wrapper .dropmenu_content' ).each( function () {
	// 		var content_id = '#' + $( this ).attr( 'id' );
	// 		if ( $( content_id ).css( 'display' ) == 'block' )
	// 			nav.hideDropmenu( content_id );
	// 	} );
	// };
	// this.showDropmenu = function ( content_id ) {
	// 	clearTimeout( nav.timeout_hide );
	// 	if ( content_id == nav.active_dropmenu ) return;

	// 	// console.log("show "+content_id);
	// 	nav.active_dropmenu = content_id;
	// 	var speed = $( '.navigation' ).data( 'mod-anim' ) * 1000;
	// 	var effect = $( content_id ).parent().data( 'effect' );

	// 	clearTimeout( nav.timeout_show );
	// 	nav.timeout_show = setTimeout( function () {
	// 		$( '.dropmenu_wrapper .dropmenu_content' ).each( function () {
	// 			if ( '#' + $( this ).attr( 'id' ) == content_id ) {
	// 				if ( effect == 'slide' ) $( content_id ).stop( true, true ).slideDown( speed );
	// 				else if ( effect == 'fade' ) $( content_id ).stop( true, true ).fadeIn( speed );
	// 				else $( content_id ).show();
	// 			}
	// 			else {
	// 				var c_id = '#' + $( this ).attr( 'id' );
	// 				nav.hideDropmenuNow( c_id );
	// 			}
	// 		} );
	// 		var item_id = content_id.replace( '_content', '' );
	// 		if ( item_id == '#dropmenu_all' ) {
	// 			if ( $( item_id ).hasClass( 'hamburger' ) ) $( item_id ).addClass( 'is-active' ).attr( 'aria-expanded', 'true' );
	// 			else $( item_id ).children( 0 ).addClass( 'is-active' ).attr( 'aria-expanded', 'true' );
	// 		}
	// 		nav.positionDropmenu();
	// 		nav.resizeDropmenu();
	// 	}, 150 );
	// };
	// this.hideDropmenu = function ( content_id ) {
	// 	clearTimeout( nav.timeout_show );

	// 	var speed = $( '.navigation' ).data( 'mod-anim' ) * 1000;
	// 	var effect = $( content_id ).parent().data( 'effect' );

	// 	clearTimeout( nav.timeout_hide );
	// 	nav.timeout_hide = setTimeout( function () {
	// 		// console.log("hide "+content_id);
	// 		if ( effect == 'slide' ) {
	// 			$( content_id ).stop( true, true ).slideUp( speed, function () {
	// 				$( '.dropmenu_wrapper .dropmenu_content.preview' ).stop( true, true ).slideDown( speed );
	// 				nav.positionDropmenu();
	// 				nav.resizeDropmenu();
	// 			} );
	// 		}
	// 		else if ( effect == 'fade' ) {
	// 			$( content_id ).stop( true, true ).fadeOut( speed, function () {
	// 				$( '.dropmenu_wrapper .dropmenu_content.preview' ).stop( true, true ).fadeIn( speed );
	// 				nav.positionDropmenu();
	// 				nav.resizeDropmenu();
	// 			} );
	// 		}
	// 		else {
	// 			$( content_id ).hide();
	// 			$( '.dropmenu_wrapper .dropmenu_content.preview' ).stop( true, true ).show();
	// 			nav.positionDropmenu();
	// 			nav.resizeDropmenu();
	// 		}
	// 		var item_id = content_id.replace( '_content', '' );
	// 		if ( $( item_id ).attr( 'id' ) == 'dropmenu_all' ) {
	// 			if ( $( item_id ).hasClass( 'hamburger' ) ) $( item_id ).removeClass( 'is-active' ).attr( 'aria-expanded', 'false' );
	// 			else $( item_id ).children( 0 ).removeClass( 'is-active' ).attr( 'aria-expanded', 'false' );
	// 		}
	// 		nav.active_dropmenu = undefined;
	// 	}, 200 );
	// };
	// this.hideDropmenuNow = function ( content_id ) {
	// 	$( content_id ).stop( true, true ).hide();
	// 	var item_id = content_id.replace( '_content', '' );
	// 	if ( $( item_id ).attr( 'id' ) == 'dropmenu_all' ) {
	// 		if ( $( item_id ).hasClass( 'hamburger' ) ) $( item_id ).removeClass( 'is-active' ).attr( 'aria-expanded', 'false' );
	// 		else $( item_id ).children( 0 ).removeClass( 'is-active' ).attr( 'aria-expanded', 'false' );
	// 	}
	// };
	// this.resizeDropmenu = function () {
	// 	var w_width = $( '.dropmenu_wrapper' ).width();
	// 	var w_left = ( $( '.dropmenu_wrapper' )[ 0 ].getBoundingClientRect().width - w_width ) / 2.0;
	// 	var align = $( '.dropmenu_wrapper' ).data( 'align' );
	// 	$( '.dropmenu_wrapper .dropmenu_content' ).each( function () {
	// 		var content_id = '#' + $( this ).attr( 'id' );
	// 		var item_id = content_id.replace( '_content', '' );
	// 		if ( $( item_id ).length == 0 ) return;
	// 		var t_width = $( content_id ).width();
	// 		var i_width = $( item_id )[ 0 ].getBoundingClientRect().width;
	// 		var i_left = $( item_id )[ 0 ].getBoundingClientRect().left;
	// 		// console.log("wrapper width: "+w_width+" left: "+w_left);
	// 		// console.log("template width: "+t_width);
	// 		// console.log("item width: "+i_width+" left: "+i_left);

	// 		// align content
	// 		var t_left = 0;
	// 		if ( align == 'left' ) t_left = i_left;
	// 		if ( align == 'right' ) t_left = i_left + i_width - t_width;
	// 		if ( align == 'center' ) t_left = i_left + ( i_width / 2 ) - ( t_width / 2 );
	// 		// clip
	// 		t_left = t_left - w_left;
	// 		if ( t_width + t_left > w_width ) t_left = w_width - t_width;
	// 		if ( t_left < 0 ) t_left = 0;
	// 		// tab
	// 		var tab_width = $( content_id + ' > .dropmenu_tab' )[ 0 ].getBoundingClientRect().width;
	// 		var tab_left = i_left + ( i_width / 2 ) - w_left - t_left - ( tab_width / 2 );
	// 		// set
	// 		$( content_id + ' > .dropmenu_tab' ).css( 'margin-left', tab_left + 'px' );
	// 		$( content_id ).css( 'margin-left', t_left + "px" );
	// 	} );
	// };
	// this.positionDropmenu = function () {
	// 	var content_id = nav.active_dropmenu;
	// 	if ( content_id == undefined ) content_id = '#' + $( '.dropmenu_wrapper .dropmenu_content.preview' ).attr( 'id' );
	// 	if ( $( content_id ).length == 0 ) return;
	// 	var item_id = content_id.replace( '_content', '' );
	// 	if ( $( item_id ).length == 0 ) return;
	// 	if ( $( item_id ).closest( '.animate_fast' )[ 0 ].getBoundingClientRect().height == 0 ) {
	// 		nav.hideDropmenuNow( content_id );
	// 		nav.active_dropmenu = undefined;
	// 		return;
	// 	}

	// 	var i_height = $( item_id )[ 0 ].getBoundingClientRect().height;
	// 	var i_top = $( item_id )[ 0 ].getBoundingClientRect().top;
	// 	// console.log("item height: "+i_height+" top: "+i_top);
	// 	// console.log($(item_id).closest('.animate_fast')[0].getBoundingClientRect());

	// 	var w_height = $( window ).height();
	// 	$( '.dropmenu_wrapper' ).css( 'top', i_height + i_top + 'px' );
	// 	var w_top = $( '.dropmenu_wrapper' ).css( 'margin-top' ).replace( 'px', '' ) * 1.0;
	// 	var a_height = 0;
	// 	if ( $( '#wpadminbar' ).length > 0 ) a_height = $( '#wpadminbar' )[ 0 ].getBoundingClientRect().height;
	// 	$( '.dropmenu_wrapper .dropmenu_content' ).css( 'max-height', w_height - ( i_height + i_top + w_top + a_height + 20 ) + 'px' );
	// };

	// Scrolling
	this.lastScroll = 0;
	this.onScroll = function ( e ) {
		//console.log(e);
		var scroll_on = $( '.navigation' ).data( 'mod-header_scroll_on' );
		var scroll_off = $( '.navigation' ).data( 'mod-header_scroll_off' );
		var changed = false;
		if ( scroll_on && scroll_off ) {
			var scroll = $( document ).scrollTop(),
				dir = 'down';
			//console.log(scroll);
			if ( scroll < this.lastScroll ) dir = 'up';
			this.lastScroll = scroll;
			if ( scroll > scroll_on && dir == 'down' ) {
				$( '#metamenu' ).addClass( 'scrolled' );
				$( '#mainmenu' ).addClass( 'scrolled' );
				// $( '.dropmenu_wrapper' ).addClass( 'scrolled' );
				$( '.navigation.v2' ).addClass( 'scr' );
				changed = true;
			}
			if ( scroll < scroll_off && dir == 'up' ) {
				$( '#metamenu' ).removeClass( 'scrolled' );
				$( '#mainmenu' ).removeClass( 'scrolled' );
				// $( '.dropmenu_wrapper' ).removeClass( 'scrolled' );
				$( '.navigation.v2' ).removeClass( 'scr' );
				changed = true;
			}
		}
		// nav.positionDropmenu();
		// if ( changed ) {
		// 	var speed = $( '.navigation' ).data( 'mod-anim' ) * 1000;
		// 	setTimeout( function () {
		// 		nav.positionDropmenu();
		// 	}, speed );
		// }

		// activate menu items 
		var viewportTop = $( window ).scrollTop();
		var viewportHeight = $( window ).height();
		var viewportBottom = viewportTop + viewportHeight;
		for ( var anchor in nav.anchors ) {
			if ( nav.anchors[ anchor ].length > 0 ) {
				// console.log(anchor);
				// console.log(nav.anchors[anchor]);
				var element = $( '#' + anchor );
				if ( !element.length ) continue;

				var elementTop = element.offset().top;
				var elementBottom = elementTop + element.outerHeight();
				if ( elementBottom > viewportTop && elementTop < viewportBottom ) {
					if ( !element.data( 'visible' ) || element.data( 'visible' ) == false ) {
						// console.log('activate #'+anchor);
						element.data( 'visible', true );
						for ( var item in nav.anchors[ anchor ] ) {
							$( nav.anchors[ anchor ][ item ] ).addClass( 'current_anchor_item' );
						}
					}
				}
				else {
					if ( element.data( 'visible' ) == true ) {
						// console.log('deactivate #'+anchor);
						element.data( 'visible', false );
						for ( var item in nav.anchors[ anchor ] ) {
							$( nav.anchors[ anchor ][ item ] ).removeClass( 'current_anchor_item' );
						}
					}
				}
			}
		}

	};

	this.checkKey = function ( e ) {
		// console.log(e);
		if ( e && e.type == 'keyup' ) {
			if ( e.keyCode ) key = e.keyCode; /* IE */
			else if ( e.which ) key = e.which; /* Moz, Saf, Op */
			if ( key != 13 && key != 32 ) return true;
		}
		return false;
	};
	this.scrollTop = function () {
		if ( this.checkKey( event ) ) return true;
		// console.log("scroll to top..");
		this.scrollTo( 0 );
	};
	this.scrollDown = function ( el ) {
		if ( this.checkKey( event ) ) return true;
		// console.log(el)
		if ( $( el ).offset() == undefined ) return;
		var np = $( el ).offset().top;
		this.scrollTo( np );
	};
	this.scrollTo = function ( position, callback ) {
		// get speed mod
		var speed = $( '.navigation' ).data( 'mod-scrollspeed' ) * 1000;
		$( 'html, body' ).animate( { scrollTop: position }, speed, callback );
	};
	this.historyBack = function () {
		if ( this.checkKey( event ) ) return true;
		history.back();
	};

	// offcanvas menu
	this.toggleMenu = function ( e ) {

		// console.log(e, this)

		// only open if there is a submenu or hamburger
		if (
			!$( this ).parent().hasClass( 'menu-item-has-children' ) &&
			!$( this ).hasClass( 'toggle' ) &&
			!$( this ).hasClass( 'hamburger' ) &&
			!$( e.target ).hasClass( 'hamburger' )
		) return;

		// if ($(this).parent().children().length == 1) return;
		if ( e != null ) e.preventDefault();

		// get menu
		var menu_id = '#mainmenu';
		var menu_pre = 'main';
		var menu = "";
		if ( e != null ) {
			if ( $( '.navigation' ).hasClass( 'v1' ) ) menu = $( e.target ).closest( '.headermenu' ).attr( 'id' );
			if ( $( '.navigation' ).hasClass( 'v2' ) ) menu = $( e.target ).closest( '.header' ).attr( 'id' );
		}
		if ( menu == "metamenu" ) {
			menu_id = '#metamenu';
			if ( $( '.navigation' ).hasClass( 'v2' ) ) menu_pre = 'meta';
		}

		// toggle menus
		$( '.toggle' ).attr( 'checked', false );
		if ( $( menu_id ).hasClass( 'open' ) ) {
			// close menus
			nav.closeMenus();
		}
		else {
			var menu_sub = "";
			if ( e != null && e.target.className != "toggle" ) {
				// console.log(e.target);
				menu_sub = e.target.parentElement.id;
				if ( menu_sub == "" ) menu_sub = e.target.parentElement.parentElement.id;
			}
			// open menu
			nav.openMenu( menu_id, menu_pre, menu_sub );
		}
	};
	this.openMenu = function ( menu_id, menu_pre, menu_sub ) {

		var bodyclass = menu_pre + '_open_right';
		if ( $( menu_id + 'off.offleft' ).length > 0 )
			bodyclass = menu_pre + '_open_left';
		if ( $( menu_id + 'off.offtop' ).length > 0 )
			bodyclass = menu_pre + '_open_top';
		if ( $( menu_id + 'off.offbottom' ).length > 0 )
			bodyclass = menu_pre + '_open_bottom';

		if ( $( menu_id + 'off.fullright' ).length > 0 )
			bodyclass = menu_pre + '_open_full_right';
		if ( $( menu_id + 'off.fullleft' ).length > 0 )
			bodyclass = menu_pre + '_open_full_left';
		if ( $( menu_id + 'off.fulltop' ).length > 0 )
			bodyclass = menu_pre + '_open_full_top';
		if ( $( menu_id + 'off.fullbottom' ).length > 0 )
			bodyclass = menu_pre + '_open_full_bottom';

		if ( $( menu_id + 'off.overright' ).length > 0 )
			bodyclass = menu_pre + '_open_over_right';
		if ( $( menu_id + 'off.overleft' ).length > 0 )
			bodyclass = menu_pre + '_open_over_left';
		if ( $( menu_id + 'off.overtop' ).length > 0 )
			bodyclass = menu_pre + '_open_over_top';
		if ( $( menu_id + 'off.overbottom' ).length > 0 )
			bodyclass = menu_pre + '_open_over_bottom';

		// open menu_id
		$( menu_id + 'off ,' + menu_id ).addClass( 'open' );
		$( 'body' ).addClass( bodyclass );
		if ( bodyclass != menu_pre + '_open_full_right' &&
			bodyclass != menu_pre + '_open_full_left' &&
			bodyclass != menu_pre + '_open_full_top' &&
			bodyclass != menu_pre + '_open_full_bottom' )
			$( 'body' ).append( "<div class='offmenu_close' onclick='nav.closeMenus()'></div>" );
		// open submenu
		// if ( menu_sub != "" ) {
		// 	nav.openItem( $( '.offmenu div > ul > li.' + menu_sub + ' > a' ).next() );
		// }
		// activate hamburger
		$( menu_id + ' .hamburger, ' + menu_id + 'off .hamburger, ' + menu_id + 'vert .hamburger' ).addClass( 'is-active' ).attr( 'aria-expanded', 'true' );
		// pause rev slider
		var speed = $( '.navigation' ).data( 'mod-anim' ) * 1000;

		$( menu_id + 'off' ).attr( 'aria-hidden', 'false' );
	};
	this.closeMenus = function () {
		// close menu
		$( '#mainmenu, #mainmenuoff' ).removeClass( 'open' );
		$( 'body' ).removeClass( 'main_open_right main_open_left main_open_top main_open_bottom main_open_full_right main_open_full_left main_open_full_top main_open_full_bottom main_open_over_right main_open_over_left main_open_over_top main_open_over_bottom' );
		$( '#metamenu, #metamenuoff' ).removeClass( 'open' );
		$( 'body' ).removeClass( 'meta_open_right meta_open_left meta_open_top meta_open_bottom meta_open_full_right meta_open_full_left meta_open_full_top meta_open_full_bottom meta_open_over_right meta_open_over_left meta_open_over_top meta_open_over_bottom' );
		$( '.offmenu_close' ).remove();
		// close items
		$( '.offmenu div > ul > li' ).each( function () {
			if ( $( this ).hasClass( 'item_open' ) ) nav.closeItem( $( this ).children( 'ul' ) );
		} );
		// deactivate hamburger
		$( '.hamburger' ).removeClass( 'is-active' ).attr( 'aria-expanded', 'false' );
		$( '.offmenu' ).attr( 'aria-hidden', 'true' );
	};


	/**
	 * Now handled with submenu.js for native accessibility.
	 * @deprecated since 1.5.0
	 */
	// this.toggleItem = function ( e ) {
	// 	if ( $( this ).parent().hasClass( 'menu-item-has-children' ) ) {
	// 		e.preventDefault();
	// 		if ( $( this ).parent().hasClass( 'item_open' ) ) {
	// 			// close item
	// 			nav.closeItem( $( this ).next() );
	// 		}
	// 		else {
	// 			// close other items
	// 			$( this ).parent().parent().children().each( function () {
	// 				if ( $( this ).hasClass( 'item_open' ) ) nav.closeItem( $( this ).children( 'ul' ) );
	// 			} );
	// 			// open item(s)
	// 			nav.openItem( $( this ).next() );
	// 		}
	// 	}
	// };
	// this.openItem = function ( item ) {
	// 	var speed = $( '.navigation' ).data( 'mod-anim' ) * 1000;
	// 	$( item ).children().each( function () {
	// 		if ( $( this ).hasClass( 'menu-item-has-children' ) ) {
	// 			$( this ).find( 'ul' ).show();
	// 		}
	// 	} );
	// 	$( item ).slideDown( speed, function () {
	// 		$( this ).parent().addClass( 'item_open' );
	// 	} );
	// };
	// this.closeItem = function ( item ) {
	// 	var speed = $( '.navigation' ).data( 'mod-anim' ) * 1000;
	// 	$( item ).slideUp( speed, function () {
	// 		$( this ).parent().removeClass( 'item_open' );
	// 	} );
	// };

};