--[==[
To inspect the content of this data module, use [[Special:ExpandTemplates]]
and enter the following input text:
  {{#invoke:Road data/dump|dump|module=Module:<name-of-this-module>}}

To inspect the content of this data module when editing, enter the following
into the Debug console:
  local util = require("Module:Road data/util")
  print(util.arrayToString(p))
To inspect a particular route type, change `p` above to include the route type,
e.g., `p.I` and `p["US-Hist"]`.
]==]

-- Louisiana
local LA = {}

local util = require("Module:Road data/util")
local format = mw.ustring.format
util.addAll(LA, require("Module:Road data/strings/USA"))

local suffix = " ([dab||%dab%, |]Louisiana)"

LA.I.link = "Interstate %route% ([dab||%dab%, |]Louisiana)"

for k, v in pairs(LA) do if k:find ("^I") then 
	v.link = LA.I.link
	end
end

LA.BL.link = "Interstate %route% Business ([dab||%dab%, |]Louisiana)"

for k, v in pairs(LA) do if k:find ("^B%a") then 
	v.link = LA.BL.link
	end
end

LA.US.name = "U.S. Highway %route%"
LA.US.link = "U.S. Route %route% in Louisiana"

for k, v in pairs(LA) do if k:find ("^US %d") then 
	v.name = LA.US.name
	v.link = LA.US.link
	end
end

for _,auxType in ipairs({"Alt", "Bus", "Byp", "City", "Conn", "Emerg", "Opt", "Scenic", "Spur", "Temp", "Toll", "Truck"}) do
	local spec = LA[" aux "][auxType]
		for k, v in pairs(LA) do if k:find (auxType) then if k:find ("^US") then
			v.name = LA.US.name .. " " .. spec.name
			v.link = LA.US.base .. " " .. spec.name .. " ([dab||%dab%, |]Louisiana)"
			end
		end
	end
end

for _,type in ipairs({'US 1926', 'US 1948', 'US 1961'}) do
	for _,auxType in ipairs({"Alt", "Bus", "Byp", "Spur", "Truck"}) do
		local spec = LA[" aux "][auxType]
		LA[type .. "-" .. auxType] = {
			shield = LA[type].shield,
			shieldmain = LA[type].shieldmain,
			name = LA[type].name .. " " .. spec.name,
			link = LA[type].base .. " " .. spec.name .. suffix,
			abbr = LA[type].abbr .. " " .. spec.abbrsuffix,
			banner = spec.bannerprefix .. " plate.svg",
			aux = spec.aux,
			width = "expand",
		}
	end
end

LA.LA = {
	base = "Louisiana Highway %route%",
	shield = "Louisiana %route% (2008).svg",
	name = "Louisiana Highway %route%",
	link = "Louisiana Highway %route%",
	abbr = "LA&nbsp;%route%"
}

for _,year in ipairs({"1955", "1990"}) do
	LA["LA " .. year] = {
		shield = format("Louisiana %%route%% (%s).svg", year),
		base = LA.LA.base,
		name = LA.LA.name,
		link = LA.LA.link,
		abbr = LA.LA.abbr,
		bannersuffix = "green",
	}
end
LA["LA 1990"].shield = "Louisiana %route%.svg"

LA["LA 1924"] = {
	shield = "Louisiana %route% (1924).svg",
	name = "State Route %route%",
	link = "Louisiana State Route %route%",
	abbr = "SR&nbsp;%route%"
}
LA.SR =  LA["LA 1924"]

for _,type in ipairs({'LA', 'LA 1955'}) do
	for _,auxType in ipairs({"Alt", "Bus", "Byp", "Spur", "Truck"}) do
		local spec = LA[" aux "][auxType]
		LA[type .. "-" .. auxType] = {
			shield = LA[type].shield,
			name = LA[type].name .. " " .. spec.name,
			link = LA[type].base .. " " .. spec.name .. LA[" dab "],
			abbr = LA[type].abbr .. " " .. spec.abbrsuffix,
			banner = spec.bannerprefix .. " plate.svg",
			aux = spec.aux,
			width = "expand",
		}
	end
end

for _,type in ipairs({'LA 1990'}) do
	for _,auxType in ipairs({"Alt", "Bus", "Byp", "Spur", "Truck"}) do
		local spec = LA[" aux "][auxType]
		LA[type .. "-" .. auxType] = {
			shield = LA[type].shield,
			name = LA[type].name .. " " .. spec.name,
			link = LA[type].base .. " " .. spec.name .. LA[" dab "],
			abbr = LA[type].abbr .. " " .. spec.abbrsuffix,
			banner = spec.bannerprefix .. " plate green.svg",
			aux = spec.aux,
			width = "square",
		}
	end
end

for k, v in pairs(LA) do if k:find ("^LA %d") then 
	v.width = "square"
	end
end

for k, v in pairs(LA) do if k:find ("^LA 1990") then 
	v.bannersuffix = "green"
	end
end

LA.Airline = {
	shield = {"US 61.svg", "US 190.svg"},
	name = "Airline Highway",
	link = "Airline Highway",
	abbr = "Airline Highway"
}

-- add new types above this line if you want it to have the state maint
for k, v in pairs(LA) do if k:find ("^%a") then
	v.maint = "[[Louisiana Department of Transportation and Development|Louisiana DOTD]]"
	end
end

-- CR is defined by Module:Road data/strings/USA
LA.CR.name = "Parish Road %route%"
LA.CR.shieldmain = "[parish||%parish%|%county%] Parish %route%.svg"
LA.CR.link = "Parish Road %route% ([parish||%parish%|%county%] Parish, Louisiana)"
LA.CR.abbr = "PR&nbsp;%route%"
LA.CR.maint = ""

LA.PR = LA.CR

return LA