/* global onePageBusinesScreenReaderText */


/**


 * Theme functions file.


 *


 * Contains handlers for navigation and widget area.


 */


 


 





( function( $ ) {


		 						   


		   


	var body, masthead, menuToggle, siteNavigation, socialNavigation, siteHeaderMenu, resizeTimer;


	


	function initMainNavigation( container ) {





		// Add dropdown toggle that displays child menu items.


		var dropdownToggle = $( '<button />', {


			'class': 'dropdown-toggle',


			'aria-expanded': false


		} ).append( $( '<span />', {


			'class': 'screen-reader-text',


			text: onePageBusinesScreenReaderText.expand


		} ) );





		container.find( '.menu-item-has-children > a' ).after( dropdownToggle );





		// Toggle buttons and submenu items with active children menu items.


		container.find( '.current-menu-ancestor > button' ).addClass( 'toggled-on' );


		container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' );





		// Add menu items with submenus to aria-haspopup="true".


		container.find( '.menu-item-has-children' ).attr( 'aria-haspopup', 'true' );





		container.find( '.dropdown-toggle' ).click( function( e ) {


			var _this            = $( this ),


				screenReaderSpan = _this.find( '.screen-reader-text' );





			e.preventDefault();


			_this.toggleClass( 'toggled-on' );


			_this.next( '.children, .sub-menu' ).toggleClass( 'toggled-on' );





			// jscs:disable


			_this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' );


			// jscs:enable


			screenReaderSpan.text( screenReaderSpan.text() === onePageBusinesScreenReaderText.expand ? onePageBusinesScreenReaderText.collapse : onePageBusinesScreenReaderText.expand );


		} );


	}


	initMainNavigation( $( '.main-navigation' ) );





	masthead         = $( '#masthead' );


	menuToggle       = masthead.find( '#menu-toggle' );


	siteHeaderMenu   = masthead.find( '#site-header-menu' );


	siteNavigation   = masthead.find( '#site-navigation' );


	socialNavigation = masthead.find( '#social-navigation' );


	





	// Enable menuToggle.


	( function() {





		// Return early if menuToggle is missing.


		if ( ! menuToggle.length ) {


			return;


		}





		// Add an initial values for the attribute.


		menuToggle.add( siteNavigation ).add( socialNavigation ).attr( 'aria-expanded', 'false' );





		menuToggle.on( 'click.one-page-business', function() {


			$( this ).add( siteHeaderMenu ).toggleClass( 'toggled-on' );





			// jscs:disable


			$( this ).add( siteNavigation ).add( socialNavigation ).attr( 'aria-expanded', $( this ).add( siteNavigation ).add( socialNavigation ).attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' );


			// jscs:enable


		} );


	} )();		   


			   





	// Fix sub-menus for touch devices and better focus for hidden submenu items for accessibility.


	( function() {


		if ( ! siteNavigation.length || ! siteNavigation.children().length ) {


			return;


		}





		// Toggle `focus` class to allow submenu access on tablets.


		function toggleFocusClassTouchScreen() {


			if ( window.innerWidth >= 910 ) {


				$( document.body ).on( 'touchstart.one-page-business', function( e ) {


					if ( ! $( e.target ).closest( '.main-navigation li' ).length ) {


						$( '.main-navigation li' ).removeClass( 'focus' );


					}


				} );


				siteNavigation.find( '.menu-item-has-children > a' ).on( 'touchstart.one-page-business', function( e ) {


					var el = $( this ).parent( 'li' );





					if ( ! el.hasClass( 'focus' ) ) {


						e.preventDefault();


						el.toggleClass( 'focus' );


						el.siblings( '.focus' ).removeClass( 'focus' );


					}


				} );


			} else {


				siteNavigation.find( '.menu-item-has-children > a' ).unbind( 'touchstart.one-page-business' );


			}


		}





		if ( 'ontouchstart' in window ) {


			$( window ).on( 'resize.one-page-business', toggleFocusClassTouchScreen );


			toggleFocusClassTouchScreen();


		}





		siteNavigation.find( 'a' ).on( 'focus.one-page-business blur.one-page-business', function() {


			$( this ).parents( '.menu-item' ).toggleClass( 'focus' );


		} );


	} )();





	// Add the default ARIA attributes for the menu toggle and the navigations.


	function onResizeARIA() {


		if ( window.innerWidth < 910 ) {


			if ( menuToggle.hasClass( 'toggled-on' ) ) {


				menuToggle.attr( 'aria-expanded', 'true' );


			} else {


				menuToggle.attr( 'aria-expanded', 'false' );


			}





			if ( siteHeaderMenu.hasClass( 'toggled-on' ) ) {


				siteNavigation.attr( 'aria-expanded', 'true' );


				socialNavigation.attr( 'aria-expanded', 'true' );


			} else {


				siteNavigation.attr( 'aria-expanded', 'false' );


				socialNavigation.attr( 'aria-expanded', 'false' );


			}





			menuToggle.attr( 'aria-controls', 'site-navigation social-navigation' );


		} else {


			menuToggle.removeAttr( 'aria-expanded' );


			siteNavigation.removeAttr( 'aria-expanded' );


			socialNavigation.removeAttr( 'aria-expanded' );


			menuToggle.removeAttr( 'aria-controls' );


		}


	}





	// Add 'below-entry-meta' class to elements.


	function belowEntryMetaClass( param ) {


		if ( body.hasClass( 'page' ) || body.hasClass( 'search' ) || body.hasClass( 'single-attachment' ) || body.hasClass( 'error404' ) ) {


			return;


		}





		$( '.entry-content' ).find( param ).each( function() {


			var element              = $( this ),


				elementPos           = element.offset(),


				elementPosTop        = elementPos.top,


				entryFooter          = element.closest( 'article' ).find( '.entry-footer' ),


				entryFooterPos       = entryFooter.offset(),


				entryFooterPosBottom = entryFooterPos.top + ( entryFooter.height() + 28 ),


				caption              = element.closest( 'figure' ),


				figcaption           = element.next( 'figcaption' ),


				newImg;





			// Add 'below-entry-meta' to elements below the entry meta.


			if ( elementPosTop > entryFooterPosBottom ) {





				// Check if full-size images and captions are larger than or equal to 840px.


				if ( 'img.size-full' === param || '.wp-block-image img' === param ) {





					// Create an image to find native image width of resized images (i.e. max-width: 100%).


					newImg = new Image();


					newImg.src = element.attr( 'src' );





					$( newImg ).on( 'load.one-page-business', function() {


						if ( newImg.width >= 840 ) {





							// Check if an image in an image block has a width attribute; if its value is less than 840, return.


							if ( '.wp-block-image img' === param && element.is( '[width]' ) && element.attr( 'width' ) < 840 ) {


								return;


							}





							element.addClass( 'below-entry-meta' );





							if ( caption.hasClass( 'wp-caption' ) ) {


								caption.addClass( 'below-entry-meta' );


								caption.removeAttr( 'style' );


							}





							if ( figcaption ) {


								figcaption.addClass( 'below-entry-meta' );


							}


						}


					} );


				} else {


					element.addClass( 'below-entry-meta' );


				}


			} else {


				element.removeClass( 'below-entry-meta' );


				caption.removeClass( 'below-entry-meta' );


			}


		} );


	}





	$( document ).ready( function() {


		body = $( document.body );





		$( window )


			.on( 'load.one-page-business', onResizeARIA )


			.on( 'resize.one-page-business', function() {


				clearTimeout( resizeTimer );


				resizeTimer = setTimeout( function() {


					belowEntryMetaClass( 'img.size-full' );


					belowEntryMetaClass( 'blockquote.alignleft, blockquote.alignright' );


					belowEntryMetaClass( '.wp-block-image img' );


				}, 300 );


				onResizeARIA();


			} );





		belowEntryMetaClass( 'img.size-full' );


		belowEntryMetaClass( 'blockquote.alignleft, blockquote.alignright' );


		belowEntryMetaClass( '.wp-block-image img' );


	} );


} )( jQuery );








/**


 * File navigation.js.


 *


 * Handles toggling the navigation menu for small screens and enables TAB key


 * navigation support for dropdown menus.


 */


jQuery( document ).ready(function($) {


								  					  


			


	/*-- Page Scroll To Top Section ---------------*/


	jQuery(window).scroll(function () {


		if ($('#site-navigation')[0]) {							


			//stick nav code	


				stickyNav();		


		}		


		if (jQuery(this).scrollTop() > 100) {


			jQuery('.scroll-to-top').fadeIn();


		} else {


			jQuery('.scroll-to-top').fadeOut();


		}


	});


	


	jQuery('.scroll-to-top').click(function () {


		jQuery("html, body").animate({


			scrollTop: 0


		}, 600);


		return false;


	});


	


	


	if ($('#site-navigation')[0]) {


		


		


		


	// grab the initial top offset of the navigation 


		var stickyNavTop = $('#site-navigation').offset().top + 400;


		


		// our function that decides weather the nasite-header-mainvigation bar should have "fixed" css position or not.


		var stickyNav = function(){


			var scrollTop = $(window).scrollTop(); // our current vertical position from the top


				 


			// if we've scrolled more than the navigation, change its position to fixed to stick to top,


			// otherwise change it back to relative


			if (scrollTop > stickyNavTop) {					


				


				$('#site-navigation').addClass('sticky-nav');


				var $wpAdminBar = $('#wpadminbar');


				if ($wpAdminBar.length) {


					$('#site-navigation').css('margin-top',$wpAdminBar.height()+'px');


				}


				 


				


			} else {


				$('#site-navigation').removeClass('sticky-nav');


				$('#site-navigation').css('margin-top', 0+'px');


				


			}


		};


		


		stickyNav();


	}


	


	


		if( $(window).width() < 1024 ) {


			$('#site-header-menu').find("li").last().bind( 'keydown', function(e) {


				if( e.which === 9 ) {


					e.preventDefault();


					$('#masthead').find('.menu-toggle').focus();


				}


			});


	


			$('#primary-menu > li:last-child button:not(.active)').bind( 'keydown', function(e) {


				if( e.which === 9 ) {


					e.preventDefault();


					$('#masthead').find('.menu-toggle').focus();


				}


			});


		}


		else {


			$('#site-header-menu').find("li").unbind('keydown');


		}








								  


});


 