To module αυτό, για έναν αριθμό (π.χ. σελίδας πολύτομου έργου), μαντεύει σε ποιο διάστημα σελίδων (κάποιου τόμου) ανήκει.
Καλείται στο Πρότυπο:interval. Εφαρμογή στο {{R:ine:IEW}}

Δημιουργήθηκε στο αγγλικό Βικιλεξικό ως wikt:en:Module:interval by wikt:en:User:Useigor


-- 2022.12.28. This is [[wikt:en:Module:interval]] by [[wikt:en:User:Useigor]] 
-- see [[wikt:en:Template:interval]] for his notes and examples
-- cf [[mw:Lua_reference_manual#Accessing_parameters_from_wikitext]]
--[=[
e.g. a dictionary has 2 volumes, pages 1-500 = 1st vol. pages 501-900 = 2nd vol
	So, when we give page=600, it finds automatically where 600 is (it is in the interval 501-900)
	and gives the correct volume (number 2), needed for internet addresses
Otherwise, it's Greek to me!! [[wikt:el:User:Sarri.greek]]
]=]--

local export = {}

function export.show(frame)
	-- [[mw:Lua_reference_manual#Accessing_parameters_from_wikitext]]
	-- it changes parameters order from original to unpredictable
	-- example: |p=15|10=1|20=2|30=3 >> |30=3|p=15|20=2|10=1 (1234 >> 4132)
	local args = frame:getParent().args
	
	local p = ( args["p"] and tonumber(args["p"]) or error("Λείπει η παράμετρος p - Missing parameter 'p' (position-X)") )
	
	local bottom
	for border in pairs(args) do
		if border~="p" and border~="default" then
			border = tonumber(border)
			if p >= border then	-- this border is bottom
				if bottom==nil or border > bottom then	-- old bottom is farther
					bottom = border
				end
			end
		end
	end
	
	if bottom==nil then
		return (args["default"] or "")
	end
	
	bottom = args[tostring(bottom)]
	if bottom=="@" then
		return (args["default"] or "")
	end
	
	return bottom
end

return export