<header>
    <a class="scroll-point pt-top" name="top"></a>
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container-fluid">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="{{ site.baseurl }}/"><img id="logo_top" src="{{ site.baseurl }}/static/img/cordova-logo-newbrand.svg"/></a>
            </div>
            <div id="navbar" class="navbar-collapse collapse">
                <div class="nav_bar_center">
                    <ul class="nav navbar-nav">
                        <li {% if layout.docs_tab %}class="active"{% endif %}>
                            <a href="{{ site.baseurl }}/docs/en/{{ site.default_linked_docs_version }}/">Documentation</a>
                        </li>
                        <li {% if layout.plugins_tab %}class="active"{% endif %}>
                            <a href="{{ site.baseurl }}/plugins">Plugins</a>
                        </li>
                        <li {% if layout.blog_tab %}class="active"{% endif %}>
                            <a href="{{ site.baseurl }}/blog" id="blog_button">Blog<span class="badge" id="new_blog_count"></span></a>
                        </li>
                        <li {% if layout.contribute_tab %}class="active"{% endif %}>
                            <a href="{{ site.baseurl }}/contribute">Contribute</a>
                        </li>
                        <li {% if layout.team_tab %}class="active"{% endif %}>
                            <a href="{{ site.baseurl }}/contribute/team.html">Team</a>
                        </li>
                        <li>
                            <a href="{{ site.baseurl }}/#getstarted">Get Started</a>
                        </li>
                        <li>
                            <form class="navbar-form navbar-right" id="header-search-form" role="search">
                                <div class="input-group">
                                    {% if page.version %}
                                        {% assign version = page.version %}
                                    {% else %}
                                        {% assign version = site.latest_docs_version %}
                                    {% endif %}
                                </div>
                            </form>
                        </li>
                    </ul>
                </div>
            </div><!--/.navbar-collapse -->
        </div>
    </nav>
    <div id="_fixed_navbar_spacer" style="padding-top:50px"></div>
</header>
