lib/client/start.js
function start(Router, APIAdapter, startOptions) {
	/* global $, window, history */
	$(function() {
		// Ensure that Backbone is globally available when running on the
		// client. Otherwise, the history singleton would no be available.
		global.Backbone = Backbone;

		// from modernizr, MIT | BSD
		// http://modernizr.com/
		var useHistory = !!(window.history && history.pushState);

		Backbone.history.start({
			pushState: useHistory
			, hashChange: useHistory
			, silent: true
		});

		var concreteClientRouter = new Router(startOptions);
		concreteClientRouter.start();
	});

}
function start(Router, APIAdapter, startOptions) {
	/* global $, window, history */
	$(function() {
		// Ensure that Backbone is globally available when running on the
		// client. Otherwise, the history singleton would no be available.
		global.Backbone = Backbone;

		// from modernizr, MIT | BSD
		// http://modernizr.com/
		var useHistory = !!(window.history && history.pushState);

		Backbone.history.start({
			pushState: useHistory
			, hashChange: useHistory
			, silent: true
		});

		var concreteClientRouter = new Router(startOptions);
		concreteClientRouter.start();
	});

}
Function: start
Ensures that Backbone is available globally on the client. It further starts
up the Backbone.history.

Finally an instance of the passed Router object is created. The startOptions
object is used to create the Router.

Parameters:
(Barefoot.Router) Router - A <Barefoot.Router> object. Important: This is
is not an instance of the router, it is the
"plain" object which can be used for running
"new Router(...)".
(Object) startOptions - This object literal is passed to the router when
initializing it.