local building = require "Module:Fr:Infobox/Fonctions/Bâtiment"
local lighthouse = require "Module:Fr:Infobox/Fonctions"
local localdata = require "Module:Fr:Infobox/Localdata"
local validate = require "Module:ValidateInfobox"

local function getLocalValueWithDefaultUnit(localdata, paramname, testparams )
	local ret=localdata[paramname] 
	if ret == "-" then
		return "-"
	end
	
	if ret == nil then
		return nil
	end
	
	if 	localdata[paramname .. "_ohita_tarkistus"] == "1"  then
		return ret;
	end


	args= {
		["sisältö"] = ret .."",
		tyyppi = testparams["type"] ,
		["sallitut_yksiköt"] = testparams["allowedunits"],
		malline = testparams["templatename"],
		parametri = testparams["paramname"] ,
		["vakioyksikkö"] = testparams["defaultunit"], 
		virheviesti = testparams["errormessage"],
		minimiarvo = testparams["minvalue"] ,
		maksimiarvo = testparams["maxvalue"],
		ohita_tarkistus = testparams["skiptests"]
	}

	frame=mw.getCurrentFrame();
	ret=frame:expandTemplate{ title = 'Tarkista luku', args = args }
	return ret
end

return 
	{
	maincolor = '#A8D2FF',
	parts =
    	{
		--lighthouse.mainimage('Article à illustrer Phare', 'Defaut 2.svg'),
		lighthouse.mainimage({size='x300px'}),
		lighthouse.title('entete map', {}, 'nimi-muu'),
		{type = 'table', title = "Sijainti", rows = {
			building.adminlocation(),
			building.islandlocation(),
			building.geographiclocation(),
			building.onshoreof(),
			building.protectedarea(),
			},
		},
		{type = 'table', title = "Arkkitehtuuri", rows = {
			building.creator(),
			building.dimensions(),
			building.material(),
			building.colour(),
			{type = 'row', label = 'Korkeus merenpinnasta', value = function()  return  getLocalValueWithDefaultUnit(localdata, 'korkeus merenpinnasta',
				{
					paramname='korkeus merenpinnasta', 
					type='desimaaliluku', 
					allowedunits='m', 
					templatename='Majakka WD', 
					defaultunit='m', 
					errormessage='Esimerkkiarvo: 10 m', 
					minvalue=0,
					maxvalue=100,
					skiptests=11
				} ) end, property = 'P2044', showsource=true},
			building.protection(),
			{type = 'row', label = 'RKY-tunniste', value = 'rky-tunniste', wikidata = {property = 'P4009', urlpattern="http://www.rky.fi/read/asp/r_kohde_det.aspx?KOHDE_ID=$1"}},
			{type = 'row', label = 'Osa kohdetta', value = 'osa kohdetta', wikidata = {property = 'P361'}},
			},
		},
		{type = 'table', title = "Historia", rows = {
			building.construction(),
			{type = 'row', label = 'Otettu käyttöön', value = 'otettu käyttöön', wikidata = { property = 'P729'}, blockers='rakennettu', showsource=true},
			{type = 'row', label = 'Sähköistetty', value = 'sähköistetty', wikidata = {property = 'P793', targetvalue = 'Q1076056', showonlyqualifier = 'P585', showsource=true} },
			{type = 'row', label = 'Kauko-ohjattu', value = 'kauko-ohjattu'},
			{type = 'row', label = 'Automatisoitu', value = 'automatisoitu', wikidata = {property = 'P793', targetvalue = 'Q24410992', showonlyqualifier = 'P585', showsource=true}},
			{type = 'row', label = 'Sammutettu', value = 'sammutettu', property = 'P730', showsource=true},
			building.demolition()
			},
		},
		{type = 'table', title = "Varustus", rows = {
			{type = 'row', label = 'Valon korkeus', value = function()  return  getLocalValueWithDefaultUnit(localdata, 'valonkorkeus',
				{
					paramname='valonkorkeus', 
					type='desimaaliluku', 
					allowedunits='m', 
					templatename='Majakka WD', 
					defaultunit='m', 
					errormessage='Esimerkkiarvo: 10 m', 
					minvalue=0,
					maxvalue=200,
					skiptests=""
				} ) end , wikidata = {property = 'P2923', targetunit = 'm', conjtype = ' ou ', rounding = '1', numval = '2', showsource=true} },
			{type = 'row', label = 'Valonlähde', value = 'valonlähde'},
			{type = 'row', label = 'Valoteho', value = 'valoteho', wikidata = { property = 'P3041', showqualifiers = {'P462'}, showsource=true}},
			{type = 'row', label = 'Valonkanto', value = function()  return  getLocalValueWithDefaultUnit(localdata, 'valonkanto',
				{
					paramname='valonkanto', 
					type='desimaaliluku', 
					allowedunits='m,km,mpk', 
					templatename='Majakka WD', 
					defaultunit='km', 
					errormessage='Esimerkkiarvo: 10 km', 
					minvalue=0,
					maxvalue=100,
					skiptests=""
				} ) end, wikidata = {property = 'P2929', targetunit = 'km', conjtype = 'comma', rounding = '1', showqualifiers = {'P462'}, showsource=true} },
			{type = 'row', label = 'Valon ominaisuudet', value = 'valon ominaisuudet', property = 'P1030', showsource=true},
			{type = 'row', label = 'Tutka', value = 'tutka', property = 'P3994', showsource=true},
			},
		},
		{type = 'table', title = "Tunnisteet", rows = {
			{type = 'row', label = 'ARLHS', value = 'ARLHS', wikidata = {property = "P2980", urlpattern="http://wlol.arlhs.com/lighthouse/$1.html"}},
			{type = 'row', label = 'Admiralty', value = 'Admiralty', property = 'P3562'},
			{type = 'row', label = 'Dansk Fyrliste', value = 'Dansk Fyrliste', property = 'P4038'},
			{type = 'row', label = 'Garde côtière canadienne', value = 'GCC', property = 'P3920'},
			{type = 'row', label = 'List of Lights', value = 'List of Lights', wikidata = {property = "P3223", urlpattern="http://listoflights.org/leuchtfeuer/detail?id=$1"}},
			{type = 'row', label = 'Marina militare', value = 'Marina militare', wikidata = {property = "P3863", urlpattern="http://www.marina.difesa.it/cosa-facciamo/fari/Pagine/$1.aspx"}},
			{type = 'row', label = 'MarineTraffic', value = 'MarineTraffic', wikidata = {property = "P3601", urlpattern="http://www.marinetraffic.com/fr/ais/details/lights/$1/"}},
			{type = 'row', label = 'NGA', value = 'NGA', property = 'P3563'},
			{type = 'row', label = 'Norsk fyrliste', value = 'Norsk fyrliste', property = 'P4055'},
			{type = 'row', label = 'USCG', value = 'USCG', property = 'P3723'},
			{type = 'row', label = 'Vitaskrá', value = 'Vitaskrá', property = 'P3993'},
			},
		},
		building.geoloc({marker = 'lighthouse', default_zoom=14}),
		{type = 'table',  rows = {
			building.coordinates({displaytitle="-"}),
			}
		},	
			
				
	}
}