Documentation icon คู่มือการใช้งานมอดูล[สร้าง]
--[==[
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"]`.
]==]

-- Florida
local FL = {}

local util = require("Module:Road data/util")
util.addAll(FL, require("Module:Road data/strings/USA"))

local suffix = " ([dab||%dab%, |]Florida)"
local suffix2 = " [dab||(%dab%)|]"
local ctdab = " ([county||%county% County, |]Florida)"

FL.I.link = {
	["4"] = "Interstate 4",
	["175"] = "Interstate 175",
	default = {
		hook = "splitlen",
		split = 3,
		above = "Interstate %route% (Florida)",
		below = "Interstate %route% in Florida"
	}
}

for k, v in pairs(FL) do if k:find ("^I") then 
	v.link = FL.I.link
	end
end
FL["I-Express"].link = "Interstate %route% Express (Florida)"

FL.US.name = "U.S. Highway %route%"
FL.US.link = {
	["92"] = "U.S. Route 92",
	["192"] = "U.S. Route 192",
	["319"] = "U.S. Route 319",
	["331"] = "U.S. Route 331",
	default = "U.S. Route %route% in Florida"
}

FL["US 1961"].shield = "US %route% (FL).svg" --colored shields
FL["US 1964"] = FL["US 1961"]

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

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

for _,type in ipairs({'US 1961', 'US 1964'}) do
	for _,auxType in ipairs({"Alt", "Bus"}) do
		local spec = FL[" aux "][auxType]
		FL[type .. "-" .. auxType] = {
			shield = "US %route% (FL reversed).svg",
			name = FL.US.name .. " " .. spec.name,
			link = FL.US.base .. " " .. spec.name .. suffix,
			abbr = FL.US.abbr .. " " .. spec.abbrsuffix,
			banner = "US %route% " .. spec.name .. " (1956).svg",
			aux = spec.aux,
			width = "square"
		}
	end
end
FL["US-Alt 1964"] = FL["US 1964-Alt"]
FL["US-Bus 1964"] = FL["US 1964-Bus"]

FL.SR = {
	shield = "Florida %route%.svg",
	shieldmain = {
		["9B"] = {"Florida %route%.svg", "I-795 (Future).svg"},
		default = "Florida %route%.svg"
	},
	name = "State Road %route%",
	base = "Florida State Road %route%",
	link = "Florida State Road %route%" .. suffix2,
	abbr = "SR&nbsp;%route%",
	width = "expand"
}
FL.FL = FL.SR

for _,type in ipairs({'SR', 'FL'}) do
	for _,auxType in ipairs({"Alt", "Bus", "Byp", "Conn", "Opt", "Scenic", "Spur", "Temp", "Truck"}) do
		local spec = FL[" aux "][auxType]
		FL[type .. "-" .. auxType] = {
			shield = FL.SR.shield,
			name = FL.SR.name .. " " .. spec.name,
			link = FL.SR.base .. " " .. spec.name .. suffix2,
			abbr = FL.SR.abbr .. " " .. spec.abbrsuffix,
			banner = spec.banneralt .. " plate.svg",
			aux = spec.aux,
			width = "expand",
		}
	end
end
 
FL["SR 1955"] = {
	shield = "Florida %route% (1955).svg",
	name = FL.SR.name,
	link = FL.SR.link,
	abbr = FL.SR.abbr,
	width = "square"
}
         
FL["FL 1955"] = FL["SR 1955"]

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

local CFX = "Central Florida Expressway Authority"

FL.Toll = {
	shield = "Toll Florida %route%.svg",
	shieldmain = {
		["538"] = {"Toll Florida %route%.svg", "Poinciana Parkway shield.svg"},
		default = "Toll Florida %route%.svg"
	},
	name = FL.SR.name,
	link = FL.SR.link,
	abbr = FL.SR.abbr,
	orientation = "upright"
}

FL.Both = {
	shield = {"Toll Florida %route%.svg", "Florida %route%.svg"},
	shieldmain = {
		["836"] = {"Toll Florida %route%.svg", "Florida %route%.svg", "I-395.svg"},
		default = {"Toll Florida %route%.svg", "Florida %route%.svg"}
	},
	name = FL.SR.name,
	link = FL.SR.link,
	abbr = FL.SR.abbr,
	width = 45,
	orientation = {"upright", ""}
}
FL.Dual = FL.Both

FL.CR.shield = {
	["Old 78"] = "CR 78 jct.svg",
	default = "CR %route% jct.svg"
}
FL.CR.shieldmain = {
	["522"] = {
		arg = "county",
		["Osceola"] = {"[county||%county% |]County %route%.svg", "Osceola Parkway logo.svg"},
		default = "[county||%county% |]County %route%.svg"
	},
	default = "[county||%county% |]County %route%.svg"
}
FL.CR.link = "County Road %route%" .. ctdab
FL.CR.maint = ""

FL["CR-Alt"] = {
	shield = FL.CR.shield,
	shieldmain = FL.CR.shieldmain,
	name = FL.CR.name .. " Alternate",
	link = FL.CR.base .. " Alternate" .. ctdab,
	abbr = FL.CR.abbr .. " Alt.",
	banner = "Alt plate county.svg",
	maint = FL.CR.maint
}

FL["CR-Old"] = {
	shield = FL.CR.shield,
	shieldmain = FL.CR.shieldmain,
	name = "Old " .. FL.CR.name ,
	link = "Old " .. FL.CR.link, 
	abbr = "Old " .. FL.CR.abbr,
	banner = "Old plate county.svg",
	maint = FL.CR.maint
}

FL["CR-Truck"] = {
	shield = FL.CR.shield,
	shieldmain = FL.CR.shieldmain,
	name = FL.CR.name .. " Truck",
	link = FL.CR.base .. " Truck" .. ctdab,
	abbr = FL.CR.abbr .. " Truck",
	banner = "Truck plate county.svg"
}

FL.SRCR = {
	shield = {FL.SR.shield, FL.CR.shield},
	shieldmain = {FL.SR.shield, FL.CR.shieldmain},
	name = FL.SR.name .. " and " .. FL.CR.name,
	link = FL.SR.link,
	abbr = FL.SR.abbr .. "&nbsp;/ " .. FL.CR.abbr,
}

FL["City"] = {
	shield = "",
	link = "City Road %route% (%dab%, Florida)",
	abbr = "City Road&nbsp;%route%"
}

FL.FLTP = {
	shield = "Florida's Turnpike shield.svg",
	name = "Florida's Turnpike",
	link = "Florida's Turnpike",
	abbr = "Florida's Turnpike",
	bannersuffix = "green",
	orientation = "upright",
	maint = [[Florida's Turnpike Enterprise]],
}

FL.HEFT = {
	shield = FL.FLTP.shield,
	name = "Homestead Extension of ".. FL.FLTP.name,
	link = "Homestead Extension of ".. FL.FLTP.link,
	abbr = FL.FLTP.abbr .. " Extension",
	bannersuffix = FL.FLTP.bannersuffix,
	orientation = FL.FLTP.orientation,
	maint = FL.FLTP.maint,
}

FL.AL = {alias = {module = "USA/AL", type = "SR"}}
FL.GA = {alias = {module = "USA/GA", type = "SR"}}

FL.null = FL.road

return FL