# Default configuration manager.
# Inject middleware references.
module.exports = (app, middleware) ->

  # Development environment.
  if process.env.NODE_ENV is 'development'
    require('./development') app, middleware

  # Test environment.
  if process.env.NODE_ENV is 'test'
    require('./test') app, middleware

  # Production environment.
  if process.env.NODE_ENV is 'production'
    require('./production') app, middleware

  # Global configuration.
  config =
    siteName      : '<%= _.slugify(appName) %>'
    sessionSecret : '<%= _.slugify(sessionSecret) %>'
    uri           : 'http://<%= _.slugify(appName) %>.herokuapp.com'
    port          : process.env.PORT or 3000
    debug         : 0
    profile       : 0

  # Define view engine with its options.
  app.set 'view engine', 'jade'

  # Parse application/x-www-form-urlencoded.
  app.use middleware.bodyParser.urlencoded
    extended: true

  # Parse application/json.
  app.use middleware.bodyParser.json()

  # Override with the X-HTTP-Method-Override header in the request.
  app.use middleware.methodOverride 'X-HTTP-Method-Override'

  # Use the favicon middleware.
  app.use middleware.favicon "#{__dirname}/../public/favicon.ico"

  # Return the global configuration object.
  return config