Modul:Wp/godine


local p = {}

function p.main(frame)
	local args = mw.getCurrentFrame():getParent().args
	local naslovStranice = mw.title.getCurrentTitle()
	local godina = ""
	local listaWp = ""
	
	local wpStoljecePrKr = require('Module:WpNaKalendarskiČlanak').provjeriPostojanjeStoljecaPrKr
	local wpStoljece = require('Module:WpNaKalendarskiČlanak').provjeriPostojanjeStoljeca
	local wpDesetljecePrKr = require('Module:WpNaKalendarskiČlanak').provjeriPostojanjeDesetljecaPrKr
	local wpDesetljece = require('Module:WpNaKalendarskiČlanak').provjeriPostojanjeDesetljeca
	local wpGodinaPrKr = require('Module:WpNaKalendarskiČlanak').provjeriPostojanjeGodinePrKr
	local wpGodina = require('Module:WpNaKalendarskiČlanak').provjeriPostojanjeGodine
	
	godina = string.match(naslovStranice.text, "^(%d+).$") or string.match(naslovStranice.text, "%d+") or mw.getCurrentFrame():getParent().args[1]

	if godina == nil or godina == "" then
		return "<span class=\"error\">Greška, nije pronađena godina!</span>[[Kategorija:Pogreške u modulu Wp/godine]]"
	else
		-- Stoljeća
		stoljece = math.ceil(godina / 100)
		
		if stoljece < 3 then
			listaWp = listaWp .. wpStoljecePrKr(frame, -1 * stoljece + 3, '◄') 
		else
			listaWp = listaWp .. wpStoljece(frame, stoljece - 2, '◄')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if stoljece == 1 then
			listaWp = listaWp .. wpStoljecePrKr(frame, 1, '')
		else
			listaWp = listaWp .. wpStoljece(frame, stoljece - 1, '')
		end
		
		listaWp = listaWp .. "&nbsp;| '''"
		listaWp = listaWp .. wpStoljece(frame, stoljece, '')
		listaWp = listaWp .. "'''&nbsp;| "
		
		listaWp = listaWp .. wpStoljece(frame, stoljece + 1, '')
		
		listaWp = listaWp .. "&nbsp;| "
			
		listaWp = listaWp .. wpStoljece(frame, stoljece + 2, '►')
		
		listaWp = listaWp .."<br>"
		
		-- Desetljeća
		
		dekada = math.floor(godina / 10) * 10
		
		if dekada < 40 then
			listaWp = listaWp .. wpDesetljecePrKr(frame, -1 * dekada + 30, '◄')
		else
			listaWp = listaWp .. wpDesetljece(frame, dekada - 40, '◄')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if dekada < 30 then
			listaWp = listaWp .. wpDesetljecePrKr(frame, -1 * dekada + 20, '')
		else
			listaWp = listaWp .. wpDesetljece(frame, dekada - 30, '')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if dekada < 20 then
			listaWp = listaWp .. wpDesetljecePrKr(frame, -1 * dekada + 10, '')
		else
			listaWp = listaWp .. wpDesetljece(frame, dekada - 20, '')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if dekada == 0 then
			listaWp = listaWp .. wpDesetljecePrKr(frame, 0, '')
		else
			listaWp = listaWp .. wpDesetljece(frame, dekada - 10, '')
		end
		
		listaWp = listaWp .. "&nbsp;| '''"
		
		listaWp = listaWp .. wpDesetljece(frame, dekada, '')	
		
		listaWp = listaWp .. "'''&nbsp;| "		
		listaWp = listaWp .. wpDesetljece(frame, dekada + 10, '')		
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. wpDesetljece(frame, dekada + 20, '')
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. wpDesetljece(frame, dekada + 30, '')
		listaWp = listaWp .. "&nbsp;| "		
		listaWp = listaWp .. wpDesetljece(frame, dekada + 40, '►')
		
		listaWp = listaWp .."<br>"
		
		-- Godine
		
		godina = godina + 0 -- godina je string, a nakon ovoga se automatski cast-a u integer
		
		if godina  < 11 then
			listaWp = listaWp .. wpGodinaPrKr(frame, -1 * godina + 11, '◄◄')
		else
			listaWp = listaWp .. wpGodina(frame, godina - 10, '◄◄')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if godina < 5 then
			listaWp = listaWp .. wpGodinaPrKr(frame, -1 * godina + 5, '◄')
		else
			listaWp = listaWp .. wpGodina(frame, godina - 4, '◄')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if godina < 4 then
			listaWp = listaWp .. wpGodinaPrKr(frame, -1 * godina + 4, '')
		else
			listaWp = listaWp .. wpGodina(frame, godina - 3, '')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if godina < 3 then
			listaWp = listaWp .. wpGodinaPrKr(frame, -1 * godina + 3, '')
		else
			listaWp = listaWp .. wpGodina(frame, godina - 2, '')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		
		if godina == 1 then
			listaWp = listaWp .. wpGodinaPrKr(frame, 1, '')
		else
			listaWp = listaWp .. wpGodina(frame, godina - 1, '')
		end
		
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. "'''" .. godina .. ".'''"
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. wpGodina(frame, godina + 1, '')
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. wpGodina(frame, godina + 2, '')
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. wpGodina(frame, godina + 3, '')
		listaWp = listaWp .. "&nbsp;| "
		listaWp = listaWp .. wpGodina(frame, godina + 4, '►')
		listaWp = listaWp .. "&nbsp;| "
		
		listaWp = listaWp .. wpGodina(frame, godina + 10, '►►')
		
	end
	return listaWp
end


-- metoda nalazi godinu u naslovu, i pomiće ju za zadani broj  
function p.godina(frame)
	local args = mw.getCurrentFrame():getParent().args
	local naslovStranice = mw.title.getCurrentTitle()
	local godina = ""
	local pomak = ""
	
	godina = string.match(naslovStranice.text, "^(%d+)%.$") or string.match(naslovStranice.text, "%d+")
	pomak = mw.getCurrentFrame().args[1] or mw.getCurrentFrame():getParent().args[1]
	
	if godina == nil or godina == "" then
		return "<span class=\"error\">Greška, nije pronađena godina!</span>[[Kategorija:Pogreške u modulu Wp/godine]]"
	end
	if pomak == nil or pomak == "" then
		return "<span class=\"error\">Greška, nije pronađen pomak!</span>[[Kategorija:Pogreške u modulu Wp/godine]]"
	end
	
    godina = tonumber(godina)
    
    godina = godina + tonumber(pomak)
    
    return godina
end

return p