The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation for this module may be created at Module:Routelist bottom/doc

local p = {}

local types = mw.loadData("Module:Road data/RJL types")

local function parameterParser(args)
	local keysParam = args.keys
	if not(keysParam) then return {} end
	local keys = mw.text.split(keysParam, ",")
	table.sort(keys)
	return keys
end

local function createLegend(key, html_object)
	local listargs = {
		class = 'routelist-bottom-legend'
	}
	
	for _,v in ipairs(key) do
		local type = types[v]
		if type then
			table.insert(
				listargs,
				'<span style="background-color: ' .. type.color ..
				'">&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp; ' .. type.routelist
			)
		end
	end
	
	html_object:wikitext(require('Module:List').horizontal(listargs))
end

function p._bottom(args)
	local root = mw.html.create('tr'):addClass('sortbottom')
	row = root:tag('td')
	row:attr('colspan', '9')
		:addClass('routelist-bottom')
		-- we would prefer to add the TemplateStyles before the class is declared
		-- but that's not really feasible in this particular table context
		:wikitext(mw.getCurrentFrame():extensionTag{
			name = 'templatestyles', args = { src = 'Module:Routelist bottom/styles.css' }
		})

	local conversion
	if (args.conv or 'no') == 'yes' then
		conversion = "1.000&nbsp;mi = 1.609&nbsp;km; 1.000&nbsp;km = 0.621&nbsp;mi<br>"
	end
	row:wikitext(conversion)
	
	local key = parameterParser(args)
	if key[1] then createLegend(key, row) end
	
	if #row.nodes == 0 then
		return '|-\n|}'
	else
		return tostring(root) .. '\n|-\n|}'
	end
end

function p.bottom(frame)
	return p._bottom(require('Module:Arguments').getArgs(frame))
end

return p