if( window[ 'MooTools' ] ) {
	window.addEvent( 'domready', function() {
		
		
		// Enable the nav menu
		
		var toggleNav = function( navItem ) {
			if( navItem.hasClass( 'toggling' ) ) {
				navItem.addClass( 'chain' );
				return;
			}
			
			navItem.addClass( 'toggling' );
			
			var callback = Function.from( );
			var childMenuHeight = getChildMenuHeight( navItem );
			var tween = navItem.get( 'tween' );
			var height = navItem.getSize( ).y;
			
			navItem.setStyle( 'height', height );
			tween.removeEvents( 'complete' );
			
			if( navItem.hasClass( 'contracted' ) ) {
				var last = navItem.getSiblings( '.expanded' )[0];
				if( last && !( last.hasClass( 'selected' ) || last.hasClass( 'with-child-selected' ) ) ) {
					toggleNav( last );
				}
				navItem.removeClass( 'contracted' );
				navItem.addClass( 'expanded' );
			}
			else {
				childMenuHeight *= -1;
				callback = function( ) {
					navItem.removeClass( 'expanded' );
					navItem.addClass( 'contracted' );
				}
			}
			
			tween.addEvent( 'complete', function( ) {
				callback( );
				navItem.setStyle( 'height', 'auto' );
				navItem.removeClass( 'toggling' );
				if( navItem.hasClass( 'chain' ) ) {
					navItem.removeClass( 'chain' );
					toggleNav( navItem );
				}
			} );
			
			navItem.tween( 'height', height + childMenuHeight );
		}
		
		var getChildMenuHeight = function( navItem ) {
			return navItem
				.getElements( '.child-menu' )[0]
				.getDimensions( {
					  computeSize: true
					, styles: [ 'padding', 'border', 'margin' ]
				  } )
				.totalHeight;
		}
		
		$$( '#navigation .with-child-menu' ).each( function( navItem ) {
			
			navItem.set( 'tween', { duration: 'short', link: 'ignore' } );
			
			if( navItem.hasClass( 'selected' ) || navItem.hasClass( 'with-child-selected' ) ) {
				navItem.addClass( 'expanded' );
			}
			else {
				navItem.addClass( 'contracted' );
			}
			
			var a = navItem.getElements( 'a.nav-item' )[0];
			var icon = new Element( 'span', { 'class': 'icon' } );
			
			a.grab( icon );
			a.setStyle( 'background-image', 'none' );
			
			icon.addEvent( 'click', function( e ) {
				toggleNav( navItem );
				e.stop( );
			} );
		} );
		
		
	} );
}
