-- environment_ers.lua
F.debug = true

F.isempty = function (s)
  return s == nil or s == ''
end

F.print = function (str)
  if F.debug then
    print("PrntMsg: ".. (str or "nil") )
  end
end

S.train_duration = {}
F.train_duration = function(type)
  if not atc_id then return end
  local now = os.date("%H:%M:%S")
  if F.isempty(type) then
    type = "start"
  end
  if not S.train_duration[atc_id] then
    S.train_duration[atc_id] = { ["train_id"] = atc_id, ["start"] = "", ["end"] = "" }
  end
  if type == "start" then
    S.train_duration[atc_id]["end"] = "Nil"
  end
  S.train_duration[atc_id][type] = now
end

F.train_info = function (passive_name, show_print)
  local timestart = ""
  local timeend = ""
  local time_message = ""
  if F.isempty(passive_name) or passive_name == "RESETALL" then
    msg_atc_id = "No Train"
    if passive_name == "RESETALL" then
      S.train_duration = {}
    end
  else
    timestart = S.train_duration[atc_id]["start"]
    timeend = S.train_duration[atc_id]["end"]
    msg_atc_id = atc_id
  end
  local lcd_message = "" ..
        msg_atc_id ..
        ""

  if not F.isempty(timestart) and not F.isempty(timeend) then
    time_message = "Time: | " .. timestart .. " to " .. timeend
  elseif not F.isempty(timestart) and F.isempty(timeend) then
    time_message = "Start Time: | " .. timestart
  else
    time_message = "RegTime: | " .. os.date("%H:%M:%S")
  end

  digiline_send("lcd", lcd_message)
  digiline_send("time", time_message)
  local message = lcd_message .. " | " .. time_message

  if show_print == true then
    F.print(message)
  end
end

F.does_train_have_rc = function(wanted_rc)
  local rc = get_rc() or ""
  if rc:match(wanted_rc) then
    return true
  else
    return false
  end
end

F.send_route = function(passive_name, route, show_print)
  if can_set_route(passive_name, route) then
    set_route(passive_name, route)
    if show_print == true then
      F.print(passive_name .. " has been set to " .. route)
    end
    return true
  else
    if show_print == true then
      F.print(route .. " cannot be set for " .. passive_name .. ". Try another")
    end
    return false
  end
end

if event.type == "init" then
  F.print("Initialized")
end