﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;

public class MCQ_AnswerManager : MonoBehaviour
{
    [SerializeField] private bool isMultipleAnswers = false;
    private MCQ_Answer[] answers = default;
    public MCQ_Answer[] GetAnswers { get { return answers; } }

    private ToggleGroup toggleGroup ;
    [SerializeField] gestionfichier myFichier;
   
    public gestionfichier SetFile { set { myFichier = value; } }

    private Button valide;

    private void Awake()
    {
        myFichier = FindObjectOfType<gestionfichier>();
    }

    // Start is called before the first frame update
    void Start()
    {
        myFichier = FindObjectOfType<gestionfichier>();
        valide = GetComponentInChildren<Button>();
        //Debug.Log("vallide" + valide);
        valide.onClick.AddListener(Sauvegarde);
        //StartCoroutine(attendre());
        //attendreTest();

        answers = this.GetComponentsInChildren<MCQ_Answer>();

        toggleGroup = this.GetComponentInChildren<ToggleGroup>();

        for (int i = 0; i < answers.Length; i++)
        {
            answers[i].Initialize();
            Debug.Log("managers" + answers[i].GetToggle.name);
            if (isMultipleAnswers)
            {
                answers[i].GetToggle.group = null;
            }
            else
            {
                answers[i].GetToggle.group = toggleGroup;
            }
        }
    }

    /// <summary>
    ///  La super description
    /// </summary>
    void Sauvegarde()
    {
        string rep = this.GetComponent<MCQ_Generator>().question + ";"; 

        for (int j = 0; j < answers.Length; j++)
        {
            if (answers[j].GetToggle.isOn==true)
            {
                rep += answers[j].GetAnswerValue + ";";
            }            
            
        }

        rep += "\n";

        File.AppendAllText(myFichier.chemin, rep);

        valide.gameObject.SetActive(false);
        valide.onClick.RemoveListener(Sauvegarde);
    }

    IEnumerator attendre()
    {
        yield return null;
        answers = this.GetComponentsInChildren<MCQ_Answer>();
       
        for (int i = 0; i < answers.Length; i++)
        {
            answers[i].Initialize();
            Debug.Log("managers0" + answers[i].GetToggle.name);

            if (isMultipleAnswers)
            {
                answers[i].GetToggle.group = null;
            }
            else
            {
                toggleGroup = this.GetComponentInChildren<ToggleGroup>();
                answers[i].GetToggle.group = toggleGroup;
            }
        }
    }

    void attendreTest(bool _oui)
    {
        answers = this.GetComponentsInChildren<MCQ_Answer>();

        for (int i = 0; i < answers.Length; i++)
        {
            Debug.Log("managers0" + answers[i].GetToggle.name);

            if (isMultipleAnswers)
            {
                answers[i].GetToggle.group = null;
            }
            else
            {
                toggleGroup = this.GetComponentInChildren<ToggleGroup>();
                answers[i].GetToggle.group = toggleGroup;
            }
        }
    }

    private void OnDestroy()
    {
        valide.onClick.RemoveAllListeners();
    }
}
