                     view = null
                     @contents.reset()
 
-            # Update personalisation icon visibility.
-            if type in ['browse', 'search', 'details', 'event', 'position']
-                $('#personalisation').addClass('hidden')
-            else
-                $('#personalisation').removeClass('hidden')
+            @_updatePersonalisationButtonClass type
 
             if view?
                 @contents.show view, animationType: @getAnimationType(type)

        onShow: ->
            searchInputView = new SearchInputView(@searchState, @searchResults)
            @search.show searchInputView
            @listenTo searchInputView, 'open', => @updateClasses('search')
            @browse.show new BrowseButtonView()
        _open: (actionType) ->
            @updateClasses actionType

            unless type == 'details'
                # TODO: create unique titles for routes that require it
                app.vent.trigger 'site-title:change', null

        _updatePersonalisationButtonClass: (type) ->
            # Update personalisation icon visibility.
            # Notice: "hidden" class only affects narrow media.
            if type in ['browse', 'search', 'details', 'event', 'position']
                $('#personalisation').addClass 'hidden'
            else
                $('#personalisation').removeClass 'hidden'

    class NavigationHeaderView extends base.SMLayout
        # This view is responsible for rendering the navigation
