local p = {}

local Navbox = require("Module:Navbox")
local country = {
		
	["إثيوبيا"] =   {""},
	["أذربيجان"] =   {""},
	["الأردن"] =   {""},
	["الأرجنتين"] =   {""},
	["أرمينيا"] =   {""},
	["إريتريا"] =   {""},
	["إسبانيا"] =   {""},
	["أستراليا"] =   {""},
	["إستونيا"] =   {""},
	["إسرائيل"] =   {""},
	["جمهورية أفريقيا الوسطى"] =   {""},
	["أفغانستان"] =   {""},
	["ألبانيا"] =   {""},
	["ألمانيا"] =   {""},
	["إكوادور"] =   {""},
	["الإمارات العربية المتحدة"] =   {""},
	["أنتيغوا وباربودا"] =   {""},
	["أندورا"] =   {""},
	["إندونيسيا"] =   {""},
	["أنغولا"] =   {""},
	["الأوروغواي"] =   {""},
	["أوزبكستان"] =   {""},
	["أوغندا"] =   {""},
	["أوكرانيا"] =   {""},
	["إيران"] =   {""},
	["جمهورية أيرلندا"] =   {""},
	["آيسلندا"] =   {""},
	["إيطاليا"] =   {""},
	["بابوا غينيا الجديدة "] =   {""},
	["باراغواي"] =   {""},
	["باربادوس"] =   {""},
	["باكستان"] =   {""},
	["بالاو"] =   {""},
	["باهاماس"] =   {""},
	["بتسوانا"] =   {""},
	["البحرين"] =   {""},
	["البرازيل"] =   {""},
	["البرتغال"] =   {""},
	["بروناي"] =   {""},
	["بلجيكا"] =   {""},
	["بلغاريا"] =   {""},
	["بليز"] =   {""},
	["بنغلاديش"] =   {""},
	["بنما"] =   {""},
	["بنين"] =   {""},
	["بوتان"] =   {""},
	["بوركينا فاسو"] =   {""},
	["بورما"] =   {""},
	["بوروندي"] =   {""},
	["البوسنة والهرسك"] =   {""},
	["بولندا"] =   {""},
	["بوليفيا"] =   {""},
	["بيرو"] =   {""},
	["روسيا البيضاء"] =   {""},
	["تايلاند"] =   {""},
	["تايوان"] =   {""},
	["تركيا"] =   {""},
	["تركمانستان"] =   {""},
	["ترينيداد وتوباغو"] =   {""},
	["تشاد"] =   {""},
	["التشيك"] =   {""},
	["تشيلي"] =   {""},
	["تنزانيا"] =   {""},
	["توغو"] =   {""},
	["توفالو"] =   {""},
	["تونغا"] =   {""},
	["تونس"] =   {""},
	["تيمور الشرقية"] =   {""},
	["غابون"] =   {""},
	["جامايكا"] =   {""},
	["الجبل الأسود"] =   {""},
	["غرينادا"] =   {""},
	["غرينلاند"] =   {""},
	["الجزائر"] =   {""},
	["جزر سليمان"] =   {""},
	["جزر القمر"] =   {""},
	["جزر المارشال"] =   {""},
	["جزر المالديف"] =   {""},
	["جنوب أفريقيا"] =   {""},
	["جنوب السودان"] =   {""},
	["غواتيمالا"] =   {""},
	["جورجيا"] =   {""},
	["جيبوتي"] =   {""},
	["الدنمارك"] =   {""},
	["دومينيكا"] =   {""},
	["جمهورية الدومينيكان"] =   {""},
	["الرأس الأخضر"] =   {""},
	["رواندا"] =   {""},
	["روسيا"] =   {""},
	["رومانيا"] =   {""},
	["زامبيا"] =   {""},
	["زيمبابوي"] =   {""},
	["ساحل العاج"] =   {""},
	["ساموا"] =   {""},
	["سانت فنسنت والجرينادين"] =   {""},
	["سانت كيتس ونيفيس"] =   {""},
	["سانت لوسيا"] =   {""},
	["سان مارينو"] =   {""},
	["ساو تومي وبرينسيب"] =   {""},
	["سريلانكا"] =   {""},
	["السعودية"] =   {""},
	["السلفادور"] =   {""},
	["سلوفاكيا"] =   {""},
	["سلوفينيا"] =   {""},
	["سنغافورة"] =   {""},
	["السنغال"] =   {""},
	["سوازيلاند"] =   {""},
	["السودان"] =   {""},
	["سوريا"] =   {""},
	["سورينام"] =   {""},
	["السويد"] =   {""},
	["سويسرا"] =   {""},
	["سيراليون"] =   {""},
	["سيشل"] =   {""},
	["صربيا"] =   {""},
	["الصومال"] =   {""},
	["الصين"] =   {""},
	["طاجيكستان"] =   {""},
	["العراق"] =   {""},
	["سلطنة عمان"] =   {""},
	["غامبيا"] =   {""},
	["غانا"] =   {""},
	["غيانا"] =   {""},
	["غينيا"] =   {""},
	["غينيا الإستوائية"] =   {""},
	["غينيا بيساو"] =   {""},
	["مدينة الفاتيكان"] =   {""},
	["فانواتو"] =   {""},
	["فرنسا"] =   {""},
	["الفلبين"] =   {""},
	["فلسطين"] =   {""},
	["فنزويلا"] =   {""},
	["فنلندا"] =   {""},
	["فيتنام"] =   {""},
	["فيجي"] =   {""},
	["قبرص"] =   {""},
	["قيرغيزستان"] =   {""},
	["قطر"] =   {""},
	["كازاخستان"] =   {""},
	["كوسوفو"] =   {""},
	["الكاميرون"] =   {""},
	["كرواتيا"] =   {""},
	["كمبوديا"] =   {""},
	["كندا"] =   {""},
	["كوبا"] =   {""},
	["كوريا الشمالية"] =   {""},
	["كوريا الجنوبية"] =   {""},
	["كوستاريكا"] =   {""},
	["كولومبيا"] =   {""},
	["جمهورية الكونغو"] =   {""},
	["جمهورية الكونغو الديمقراطية"] =   {""},
	["الكويت"] =   {""},
	["كيريباتي"] =   {""},
	["كينيا"] =   {""},
	["لاتفيا"] =   {""},
	["لاوس"] =   {""},
	["لبنان"] =   {""},
	["لوكسمبورغ"] =   {""},
	["ليبريا"] =   {""},
	["ليبيا"] =   {""},
	["ليتوانيا"] =   {""},
	["ليختنشتاين"] =   {""},
	["ليسوتو"] =   {""},
	["ماكاو"] =   {""},
	["مالاوي"] =   {""},
	["مالطا"] =   {""},
	["ماليزيا"] =   {""},
	["مالي"] =   {""},
	["المجر"] =   {""},
	["مدغشقر"] =   {""},
	["مصر"] =   {""},
	["المغرب"] =   {""},
	["جمهورية مقدونيا"] =   {""},
	["المكسيك"] =   {""},
	["المملكة المتحدة"] =   {""},
	["منغوليا"] =   {""},
	["موريتانيا"] =   {""},
	["موريشيوس"] =   {""},
	["موزمبيق"] =   {""},
	["مولدافيا"] =   {""},
	["موناكو"] =   {""},
	["ناميبيا"] =   {""},
	["ناورو"] =   {""},
	["النرويج"] =   {""},
	["النمسا"] =   {""},
	["نيبال"] =   {""},
	["النيجر"] =   {""},
	["نيجيريا"] =   {""},
	["نيكاراغوا"] =   {""},
	["نيوزيلندا"] =   {""},
	["هايتي"] =   {""},
	["الهند"] =   {""},
	["هندوراس"] =   {""},
	["هولندا"] =   {""},
	["هونغ كونغ"] =   {""},
	["الولايات المتحدة"] =   {""},
	["ولايات ميكرونيسيا المتحدة"] =   {""},
	["اليابان"] =   {""},
	["اليمن"] =   {""},
	["اليونان"] =   {""}
}

function p.main(frame)
	local pframe = frame:getParent()
	local config = frame.args
	local args = pframe.args
	
	return p._main(args)
end

function p._main(args)
	if mw.title.getCurrentTitle() == "قالب:موضوع العالم" then
		state = "autocollapse"
	else
		state = args.state
	end
	if args[1] ~= nil or args.prefix ~= nil and (args[2] == nil or ags.suffix == nil) then
		titlemid = ""--" the"
	end
	if args.title ~= nil then
		title = args.title
	else
		title = "[["..(args[1] or args.prefix or "")..(titlemid or "").." العالم"..(args.suffix or "").."]]"
	end
	if args.group1 ~= nil and args.group1 ~= "" then
		group1 = args.group1
	end
	local sorter = {}
	for n in pairs(country) do
		table.insert(sorter, n)
	end
	table.sort(sorter)

	if args.noredlinks ~= nil then
		list1 = table.concat(noredlinks(args[1], args[2], args.prefix, args.suffix, sorter) )
	else
		list1 = table.concat(redlinks(args[1], args[2], args.prefix, args.suffix, sorter) )
	end
	local navarguments = {
		name = args.name or "موضوع العالم",
		state = state,
		navbar = args.navbar or "Tnavbar",
		border = args.border,
		title = title,
		image = args.image,
		titlestyle = args.titlestyle,
		bodystyle = args.bodystyle,
		abovestyle = args.abovestyle,
		belowstyle = args.belowstyle,
		groupstyle = args.groupstyle,
		liststyle = args.liststyle,
		listclass  = "hlist",
		above = args.above,
		group1 = group1,
		list1 = list1
	}
	return Navbox._navbox(navarguments)
end

function noredlinks(args1, args2, argsprefix, argssuffix, sorter)
	local list = {}
	for x, y in pairs(sorter) do
		if mw.title.new((args1 or argsprefix or "").." "..linktarget(y, country[y][1])..(args2 or argssuffix or "")).exists == true then
			table.insert(list, li("[["..(args1 or argsprefix or "").." "..linktarget(y, country[y][1])..(args2 or
				argssuffix or "").."|"..y.."]]"))
		elseif y == "Georgia" then
			if mw.title.new((args1 or argsprefix or "").." "..y..(args2 or argssuffix or "")).exists == true then
				table.insert(list, li("[["..(args1 or argsprefix or "").." "..y..(args2 or
				argssuffix or "").."|"..y.."]]" ) )
			end
		end
	end
	return list
end

function redlinks(args1, args2, argsprefix, argssuffix, sorter)
	local list = {}
	for x, y in pairs(sorter) do
		if y == "Georgia" then
			if mw.title.new((args1 or argsprefix or "").." "..country[y][1]..(args2 or argssuffix or "")).exists == true then
				table.insert(list, li("[["..(args1 or argsprefix or "").." "..country[y][1]..(args2 or
				argssuffix or "").."|"..y.."]]" ))
			else
				table.insert(list, li("[["..(args1 or argsprefix or "").." "..y..(args2 or
				argssuffix or "").."|"..y.."]]" ))
			end
		else
			table.insert(list, li("[["..(args1 or argsprefix or "").." " .. linktarget(y, country[y][1]) .. (args2 or 
				argssuffix or "").."|".. y .. "]]"))
		end
	end
	return list
end

function li(text)
	local li = mw.html.create("li")
	li
		:wikitext(text)
		:done()
	return tostring(li)
end

function linktarget(x, y)
	if y ~= nil and y == "" then
		return x
	else
		return y
	end
end

return p