define("kickstart", ['require', 'jquery', 'backbone', 'router', 'app', 'bootstrap'],
                    function(require, $, Backbone, Router, app) {

  // Define your master router on the application namespace and trigger all
  // navigation from this instance.
  app.router = new Router();

  // Trigger the initial route and enable HTML5 History API support, set the
  // root folder to '/' by default.  Change in app.js.
  Backbone.history.start({ pushState: true, root: app.root });

  // All navigation that is relative should be passed through the navigate
  // method, to be processed by the router. If the link has a `data-bypass`
  // attribute, bypass the delegation completely.
  $(document).on("click", "a[href]:not([data-bypass])", function(evt) {
    // Get the absolute anchor href.
    var href = { prop: $(this).prop("href"), attr: $(this).attr("href") };

    // Ensure the root is part of the anchor href, meaning it's relative.
    // if (href.prop.slice(0, root.length) === root) {
    // Catch all links that start with /
    if (/^\//.test(href.attr)) {
      // Stop the default event to ensure the link will not cause a page
      // refresh.
      evt.preventDefault();

      $('#collapse').collapse('hide');

      var root = href.attr.indexOf(app.root) === 0 ? href.attr.substring(app.root.length) : href.attr;

      // `Backbone.history.navigate` is sufficient for all Routers and will
      // trigger the correct events. The Router's internal `navigate` method
      // calls this anyways.  The fragment is sliced from the root.
      Backbone.history.navigate(root, true);
    }
  });
});

// Break out the application running from the configuration definition to
// assist with testing.
require(["config"], function() {
  // Kick off the application.
  require(["kickstart"]);
});
