rwd_header.js 2.68 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/**
 * Adds rwd classes and click handlers.
 */

(function($) {
    'use strict';

    var rwd = (function() {

        var _fn = {
            header: 'header.global-new',

            resultsUrl: 'course-search',

            init: function() {
                _fn.$header = $( _fn.header );
                _fn.$footer = $( _fn.footer );
Will Daly committed
18 19
                _fn.$navContainer = _fn.$header.find('.nav-container');
                _fn.$globalNav = _fn.$header.find('.nav-global');
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

                _fn.add.elements();
                _fn.add.classes();
                _fn.eventHandlers.init();
            },

            add: {
                classes: function() {
                    // Add any RWD-specific classes
                    _fn.$header.addClass('rwd');
                },

                elements: function() {
                    _fn.add.burger();
                    _fn.add.registerLink();
                },

                burger: function() {
Will Daly committed
38
                    _fn.$navContainer.prepend([
39
                        '<a href="#" class="mobile-menu-button" aria-label="menu">',
40
                            '<i class="icon fa fa-bars" aria-hidden="true"></i>',
41 42 43 44 45
                        '</a>'
                    ].join(''));
                },

                registerLink: function() {
Will Daly committed
46
                    var $register = _fn.$header.find('.cta-register'),
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
                        $li = {},
                        $a = {},
                        count = 0;

                    // Add if register link is shown
                    if ( $register.length > 0 ) {
                        count = _fn.$globalNav.find('li').length + 1;

                        // Create new li
                        $li = $('<li/>');
                        $li.addClass('desktop-hide nav-global-0' + count);

                        // Clone register link and remove classes
                        $a = $register.clone();
                        $a.removeClass();

                        // append to DOM
                        $a.appendTo( $li );
                        _fn.$globalNav.append( $li );
                    }
                }
            },

            eventHandlers: {
                init: function() {
                    _fn.eventHandlers.click();
                },

                click: function() {
                    // Toggle menu
Will Daly committed
77
                    _fn.$header.on( 'click', '.mobile-menu-button', _fn.toggleMenu );
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
                }
            },

            toggleMenu: function( event ) {
                event.preventDefault();

                _fn.$globalNav.toggleClass('show');
            }
        };

        return {
            init: _fn.init
        };
    })();

    rwd.init();
})(jQuery);