.namespace New_Profiles_popup

-- Ce script gère la saisie d'un nom pour la création d'un profil

SIZEMAXPROFILNAME = 10
g_profilname = ""

function OnEnable()
	-------Localization-------
	New_Profiles_title.Text = GlobalFunctions.GetText("menu_newprofile")
	desc_new_profiles.Text = GlobalFunctions.GetText("menu_newprofile_desc")
	Profiles_select_ok_txt.Text = GlobalFunctions.GetText("btn_ok")
	New_Profiles_cancel_txt.Text = GlobalFunctions.GetText("btn_cancel")
	--------------------------
	OPInput.RegisterListener(self, EVENT_KEY_CHAR+EVENT_KEY_UP)
	Enter_Name.Text = ""
	g_profilname = ""
	if Menu_Start.NbProfilesCount() == 0 then
		New_Profiles_cancel.Enabled = false
	else
		New_Profiles_cancel.Enabled = true
	end
	Enter_Name.Enabled = false
	New_Profiles_ok.Color.a = 130
	New_Profiles_ok_txt.Color.a = 130
	-- Menu_profils_nouveau_valider_area.Enabled = false
	
	-- Active le bouton annuler seulement s'il y a déjà un profil de sauvegarder
	-- if Menu_titre.NbProfilesCount() == 0 then
		-- --Menu_profils_nouveau_annuler_area.Enabled = false
	-- else
		-- --Menu_profils_nouveau_annuler_area.Enabled = true
	-- end
	
	-- local timer = OPUnitFactory.CreateUnit('Timer')
    -- timer.Time = 0.5
	-- timer.Autoplay = true
	-- timer.Loop = true
	-- timer.UnitNotify = self

	--OPLog.Log("CurrentGamePhase : "..GameVariables.Get("CurrentGamePhase"))
end

function OnKeyChar(key)
	--OPLog.Log("Touche appuyée = "..tostring(key)..", code =  "..string.byte(key))
	local letter = string.upper(string.gsub(key, "[^0-9a-zA-Z]", ""))
	
	local size = string.len(g_profilname)
	
	if letter ~= "" then
		-- if size <= SIZEMAXPROFILNAME then
			-- g_profilname = g_profilname..letter
			-- Menu_profils_nouveau_nom_cursor.Enabled = true
		-- else
			-- Menu_profils_nouveau_nom_cursor.Enabled = false
		-- end
		if size <= SIZEMAXPROFILNAME then
			g_profilname = g_profilname..letter
		end
	elseif string.byte(key) == KEY_BACK then
		if size >= 1 then
			g_profilname = string.sub(g_profilname, 1, -2)
			--Menu_profils_nouveau_nom_cursor.Enabled = true
		end
	elseif string.byte(key) == KEY_RETURN then
		 if size > 0 and VerifyUniqueName() then
			New_Profiles_ok.OnWbpMouseLUp()
			OPLog.Log("Nouveau Profil")
		 end
	end
	Enter_Name.Text = g_profilname
	if g_profilname == "" then
		Enter_Name.Enabled = false
		New_Profiles_ok.Color.a = 130
		New_Profiles_ok_txt.Color.a = 130
	else
		Enter_Name.Enabled = true
		New_Profiles_ok.Color.a = 255
		New_Profiles_ok_txt.Color.a = 255
	end
	
	-- Déplace le curseur
	--Menu_profils_nouveau_nom.Position_X = 200
	-- if Menu_profils_nouveau_nom.Dimension_Width <= 0 then
	if string.len(g_profilname) <= 0 then
		Enter_Name.Dimension_Width = 0
	end
	--Menu_profils_nouveau_nom_cursor.Position_X = Menu_profils_nouveau_nom.Position_X + Menu_profils_nouveau_nom.Dimension_Width + 5
	
	-- OPLog.Log("Menu_profils_nouveau_nom.Position_X = "..Menu_profils_nouveau_nom.Position_X)
	-- OPLog.Log("Menu_profils_nouveau_nom.Dimension_Width = "..Menu_profils_nouveau_nom.Dimension_Width)
	-- OPLog.Log("Menu_profils_nouveau_nom_cursor.Position_X = "..Menu_profils_nouveau_nom_cursor.Position_X)
	
	-- Active le bouton valider si il y un nom de saisi et que ce nom n'existe pas déjà
	-- if size > 0 and VerifyUniqueName() then
		-- Menu_profils_nouveau_valider_area.Enabled = true
	-- else
		-- Menu_profils_nouveau_valider_area.Enabled = false
	-- end
	
	return true
end

-- Vérifie si le nom saisi n'est pas déjà utilisé
function VerifyUniqueName()
	local nbprofils = Menu_Start.NbProfilesCount()
	if nbprofils > 0 then
		for numprofil=1,nbprofils do
			if g_profilname == ProfilConfig.Get("Profil"..numprofil.."_name") then
				return false
			end
		end
	end
	
	return true
end


