Ensl::Application.routes.draw do

  %w(403 404 422 500).each do |code|
    get code, to: "errors#show", code: code
  end

  namespace :api do
    namespace :v1 do
      resources :users, only: [:show, :index]
      resources :teams, only: [:show]
      resources :servers, only: [:index]
      resources :maps, only: [:index]
    end
  end

  root to: "articles#news_index"

  resources :articles do
    resources :versions
  end

  match "contests/del_map"
  match "contests/scores"
  match "contests/historical", to: "contests#historical"

  resources :contests do
    get "current", on: :collection
  end

  resources :log_events
  resources :categories
  resources :options
  resources :polls

  match "comments/quote"

  resources :comments
  resources :shoutmsgs, except: :index 
  resources :teamers
  resources :teams
  resources :gathers
  resources :gatherers
  resources :groups
  resources :groupers
  resources :forumers
  resources :topics

  match "forums/up"
  match "forums/down"

  resources :forums
  resources :users
  resources :locks
  resources :contesters

  get "contests/:id/confirmedmatches" => "contests#confirmed_matches", as: :confirmed_matches
  resources :contests
  resources :challenges
  resources :servers
  resources :predictions
  resources :rounds

  get "matches/ref/:id" => "matches#ref", as: :match_ref
  resources :matches do
    get :admin, to: "matches#admin", on: :collection
    resources :match_proposals, path: "proposals", as: :proposals, only: [:index, :new, :create, :update]
  end

  resources :maps
  resources :logs
  resources :log_files
  resources :directories
  resources :data_files
  resources :predictions
  resources :weeks
  resources :movies
  resources :messages
  # resources :sites
  resources :bans
  resources :tweets
  resources :issues

  match "posts/quote"

  resources :posts
  resources :brackets

  match "about/action"
  match "about/staff"
  match "about/statistics"

  match "refresh", to: "application#refresh"
  match "search", to: "application#search"

  match "news", to: "articles#news_index"
  match "news/archive", to: "articles#news_archive"
  match "news/admin", to: "articles#admin"
  match "articles/cleanup"

  match "data_files/admin"
  match "data_files/addFile"
  match "data_files/delFile"
  match "data_files/trash"

  match "contesters/recalc"

  match "directories", to: "directories#show", id: 1

  match "gathers/refresh"
  match "gathers/latest/:game", to: "gathers#latest", via: :get
  match "gather", to: "gathers#latest", game: "ns2", via: :get

  match "gatherers/:id/status", to: "gatherers#status", via: :post

  match "groups/addUser"
  match "groups/delUser"

  match "movies/download"
  match "movies/preview"
  match "movies/snapshot"

  match "plugin/user"

  match "users/forgot"
  match "users/recover"
  match "users/agenda"
  match "users/logout"
  match "users/login"

  match "users/agenda"
  match "users/login"
  match "users/logout"
  match "users/popup"
  match "users/forgot", to: "users#forgot"

  match "votes/create"
  match "polls/showvotes/:id", to: "polls#showvotes", as: "polls_showvotes"

  get "custom_urls", to: "custom_urls#administrate"
  resources :custom_urls, only: [:create, :update, :destroy]

  get ":name", to: "custom_urls#show", requirements: {name: /\A[a-z\-]{2,10}\Z/}

  match ":controller/:action", requirements: { action: /A-Za-z/ }
  match ":controller/:action/:id"
  match ":controller/:action/:id.:format"
  match ":controller/:action/:id/:id2"

  match "teamers/replace", to: "teamers#replace", as: "teamers_replace"
end