	
.namespace Menu_Start
 
-- Ce script permet d'initialiser toutes les variables des menus et des sous-menus

g_needloadgame = true

function OnEnable()
	OPLog.Log("Menu_Start")
	-- SearchInterface.Enabled = false	
	LeftInterface.Enabled = false	
	SaveManager.loadProfile()
	local loadprofileok = true
	local numprofil = NbProfilesCount()
	Menu_StartGame_Parent.Enabled = true
	if numprofil == 0 then
		Menu_StartGame_Parent.Enabled = false
		New_Profiles_popup.Enabled = true
		
	end
	
	-- Charge les bons sprites pour les menus selon la langue
	local lang = DebugOptions.curlanguage 
	--local lang = ProfilConfig.Get("CurrentLang")
	--local lang = "fre"
	GlobalFunctions.UpdateLang(lang)
	OPLog.Log("Langage : "..lang)
	-- Menu principal
	local titlepath="media/common/graph/interface/Title/"
	New_Game.Image=titlepath.."btn_newgame_"..lang..".png|"..titlepath.."btn_newgame_hl_"..lang..".png"
	continue.Image=titlepath.."btn_continue_"..lang..".png|"..titlepath.."btn_continue_hl_"..lang..".png"
	Credit.Image=titlepath.."btn_credits_"..lang..".png|"..titlepath.."btn_credits_hl_"..lang..".png"
	Help.Image=titlepath.."btn_help_"..lang..".png|"..titlepath.."btn_help_hl_"..lang..".png"
	Profiles.Image=titlepath.."btn_profiles_"..lang..".png|"..titlepath.."btn_profiles_hl_"..lang..".png"
	Quit.Image=titlepath.."btn_quit_"..lang..".png|"..titlepath.."btn_quit_hl_"..lang..".png"
	Settings.Image=titlepath.."btn_settings_"..lang..".png|"..titlepath.."btn_settings_hl_"..lang..".png"
	social_text.Image=titlepath.."social/ONLINE_TEXT_NORMAL_"..lang..".png|"..titlepath.."social/ONLINE_TEXT_ROLLOVER_"..lang..".png"
	
	if DebugOptions.ShowUrl == false then
		social_fb.Enabled=false
		social_text.Enabled=false
		social_tw.Enabled=false
	end

		
	if NavigationManager.GetPreviousManager() ~= nil and type(NavigationManager.GetPreviousManager().Name) == "string" then
		-- Si on revient d'un site de recherche, on affiche "partie sauvegardée" en bas à gauche
		if string.find(NavigationManager.GetPreviousManager().Name,"SearchSite") then
			OPLog.Log("On fade")
			
			--Menu_Start_savegame_txt.Enabled = true
			--SpriteFader.Fade(Menu_Start_savegame_txt,false,3,self,nil,true)
			g_needloadgame = false
		end
	else
		-- Charge les profils
		-- loadprofileok = SaveManager.loadProfile() -- A revoir dans le cas où il n'y a pas de profil
		SaveManager.loadProfile() 
		
		if loadprofileok == false then
			OPLog.Log("Problème chargement données profils")
			
			-- Décsactive les boutons du menus principal
			curseur.Flags_Visible = false
			Menu_StartGame_Parent.Enabled = false
			
			-- -- réinitialise le fichier des profiles
			-- SaveManager.saveProfile()
			
			-- Affiche la popup qui explique le problème
			Menu_principal_popup_erreurchargementprofil.Enabled = true
			
		end
		
		NavigationManager.g_curmusic = MenuMusic --on indique que la musique de départ c'est celle là
	end
	

	OPLog.Log("Currentptofil  :"..ProfilConfig.Get("CurrentProfil"))
	OPLog.Log("name :"..ProfilConfig.Get("Profil"..ProfilConfig.Get("CurrentProfil").."_name"))
	
	-- Charge les options
	MenuMusic.Volume = ProfilConfig.Get("VolumeMusic") / 100
	
	if not OPCore.EditorMode() then
		OPGraphic.SetGamma(ProfilConfig.Get("GammaLevel2") / 100)
	end
		
	-- Si le chargement des profils s'est correctement effectué
	-- if loadprofileok == true then
		-- -- Pas de profil sauvegardé
		-- if NbProfilesCount() == 0 then
		-- --A ameliorer
		-- --[[	-- Menu de création d'un profil
			-- Menu_titre_rollover.Flags_Visible = false
		
			-- -- Désactive le menu principal
			-- Menu_principal_cadre.Flags_Visible = false
			-- Menu_principal_parent.Enabled = false
			
			-- -- Active le menu profils
			-- Menu_profils_nouveau_cadre.Enabled = true
			-- Menu_profils_nouveau_cadre.Flags_Visible = true
			-- Menu_profils_nouveau_parent.Enabled = true]]
				-- local currentprofil = Menu_Start.NbProfilesCount() + 1
				-- -- Initialise les données du profil
				-- ProfilConfig.Set("Profil"..currentprofil,"Created")
				-- ProfilConfig.Set("Profil"..currentprofil.."_name",Menu_profils_nouveau_parent.g_profilname)
				-- ProfilConfig.Set("Profil"..currentprofil.."_lastscreen","")
				
				-- ProfilConfig.Set("CurrentProfil",currentprofil)
				
				-- -- Sauvegarde
				-- SaveManager.saveProfile()
				-- SaveManager.saveGame("Profil"..currentprofil)
				
				-- -- Désactive le menu de création de profils
				-- --Menu_profils_nouveau_cadre.Enabled = false
				-- --Menu_profils_nouveau_cadre.Flags_Visible = false
				-- --Menu_profils_nouveau_parent.Enabled = false
				
				-- -- Active le menu principal
				-- --Menu_principal_cadre.Flags_Visible = true
				-- Menu_StartGame_Parent.Enabled = true
				if ProfilConfig.Get("Profil"..ProfilConfig.Get("CurrentProfil").."_lastscreen") ~= "" then
					continue_area.Enabled = true
					continue.Enabled = true
				
				else
					continue_area.Enabled = false
					continue.Enabled = false
					--continue_mask.Enabled = true
				end
		-- else
			-- -- Profil courant incorrect ou non renseigné
			-- if tonumber(ProfilConfig.Get("CurrentProfil")) < 1 or tonumber(ProfilConfig.Get("CurrentProfil")) > 3 then
				-- -- TODO : afficher le menu de sélection des profils
			-- else
				-- -- Affiche le nom du profil
				-- --Menu_principal_profil_nom.Text = ProfilConfig.Get("Profil"..ProfilConfig.Get("CurrentProfil").."_name")
				
				-- -- Affiche continuer 
				-- if ProfilConfig.Get("Profil"..ProfilConfig.Get("CurrentProfil").."_lastscreen") ~= "" then
					-- continue_area.Enabled = true
					-- continue.Enabled = true
				-- else
					-- continue_area.Enabled = false
					-- continue.Enabled = false
				-- end
			-- end
		-- end
	-- end
	
	SoundFader.StopAllSoundFade()
	
end

function OnDisable()
	SpriteFader.Stop(Menu_Start_savegame_txt)
	--Menu_Start_savegame_txt.Enabled = false
end

function OnFaderEnd()
	SpriteFader.Stop(Menu_Start_savegame_txt)
	--Menu_Start_savegame_txt.Enabled = false
end

function NbProfilesCount()
	local nbprofils = 0
	
	for i=1,3 do
		if ProfilConfig.Get("Profil"..i) == "Created" then
			nbprofils = nbprofils + 1
		end
	end
	
	return nbprofils
	
end

function OnPopupYNLeave(popupansw, message)
	if message == "msg_ig_nouvelle_partie" then
		-- Bouton valider : on efface la partie en cours
		if popupansw  then
			-- Réinitialise les données du jeu
			SaveManager.createNewGame()
			
			-- Réinitialise les données du profil
			ProfilConfig.Set("Profil"..ProfilConfig.Get("CurrentProfil").."_lastscreen","")
			
			-- Sauvegarde les données
			SaveManager.saveProfile()
			SaveManager.saveGame("Profil"..ProfilConfig.Get("CurrentProfil"))
			
			PopupManager.OpenPopupYN("msg_ig_expert",nil,GlobalFunctions.GetText("btn_expert"),GlobalFunctions.GetText("btn_normal"))
		else
			-- Active les boutons du menus principal
			Menu_StartGame_Parent.Enabled = true
		end
	end
	if message == "msg_ig_quitte" then	
		if popupansw  then
			OPCore.Exit()
		else
			-- Active les boutons du menus principal
			Menu_StartGame_Parent.Enabled = true
		end
	end			
	if message == "msg_ig_expert" then
		SaveManager.createNewGame()
		if popupansw then
			UserData.Set("expertMode", true)
		else
			UserData.Set("expertMode", false)
		end
		SaveManager.saveProfile()
		SaveManager.saveGame("Profil"..ProfilConfig.Get("CurrentProfil"))
		
		--Menu_StartGame_Parent.Enabled = true
		NavigationManager.SwitchTo(Menu_Start,"TR_0")
	end

end
