module View.Date exposing
  ( shortView
  , longView
  , monthView
  )

import Date exposing (..)
import Date.Extra.Core as Date
import String

import Model.Translations exposing (..)

shortView : Date -> Translations -> String
shortView date translations =
  let params =
        [ String.pad 2 '0' (toString (Date.day date))
        , String.pad 2 '0' (toString (Date.monthToInt (Date.month date)))
        , toString (Date.year date)
        ]
  in  getParamMessage params "ShortDate" translations

longView : Date -> Translations -> String
longView date translations =
  let params =
        [ toString (Date.day date)
        , (getMessage (getMonthKey (Date.month date)) translations)
        , toString (Date.year date)
        ]
  in  getParamMessage params "LongDate" translations

monthView : Translations -> Month -> String
monthView translations month = getMessage (getMonthKey month) translations

getMonthKey : Month -> String
getMonthKey month =
  case month of
    Jan -> "January"
    Feb -> "February"
    Mar -> "March"
    Apr -> "April"
    May -> "May"
    Jun -> "June"
    Jul -> "July"
    Aug -> "August"
    Sep -> "September"
    Oct -> "October"
    Nov -> "November"
    Dec -> "December"