using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

[System.Serializable]
public class Question
{
    public string question;
    public string[] answers;
    public int good_answer;
    public int type;
}

[System.Serializable]
public class Questions
{
    public Question[] questions;
}

public class QuizzManager : MonoBehaviour
{
    public GameObject LoadingCanvas;
    public GameObject TutorialCanvas;
    public GameObject Questions;
    public GameObject Home;
    public TextAsset jsonFile;
    private bool launched;
    private bool started;
    private int answer_button;

    void Start() {
        LoadingCanvas.GetComponent<Canvas>().enabled = true;
        TutorialCanvas.GetComponent<Canvas>().enabled = false;
        Questions.GetComponent<Canvas>().enabled = false;
        Home.GetComponent<Canvas>().enabled = false;
        launched = false;
        started = false;
    }

    public void ShowTutorial() {
        if (!launched) {
            LoadingCanvas.GetComponent<Canvas>().enabled = false;
            TutorialCanvas.GetComponent<Canvas>().enabled = true;
            launched = true;
        }
    }

    public void LaunchQuizz() {
        if (!started) {
            TutorialCanvas.GetComponent<Canvas>().enabled = false;
            Home.GetComponent<Canvas>().enabled = true;
            started = true;
        }
    }

    public void LeaveApp() {
        Application.Quit();
    }

    private void YesNoQuestion(Question question) {
        GameObject.Find("Question").GetComponent<TMP_Text>().text = question.question;
        GameObject.Find("AnswerA").GetComponentInChildren<TMP_Text>().text = question.answers[0];
        GameObject.Find("AnswerB").GetComponentInChildren<TMP_Text>().text = question.answers[1];
        GameObject.Find("HidingCanva").GetComponent<Canvas>().enabled = false;
    }

    private void ClassicQuestion(Question question) {
        GameObject.Find("Question").GetComponent<TMP_Text>().text = question.question;
        GameObject.Find("HidingCanva").GetComponent<Canvas>().enabled = true;
        GameObject.Find("AnswerA").GetComponentInChildren<TMP_Text>().text = question.answers[0];
        GameObject.Find("AnswerB").GetComponentInChildren<TMP_Text>().text = question.answers[1];
        GameObject.Find("AnswerC").GetComponentInChildren<TMP_Text>().text = question.answers[2];
        GameObject.Find("AnswerD").GetComponentInChildren<TMP_Text>().text = question.answers[3];
    }

    public void StartQuizz() {
        Home.GetComponent<Canvas>().enabled = false;
        Questions.GetComponent<Canvas>().enabled = true;    
        Questions questions = JsonUtility.FromJson<Questions>(jsonFile.text);
        for (int i = 0; i < questions.questions.Length; i++) {
            Question question = questions.questions[i];
            if (question.type == 0) {
                ClassicQuestion(question);
            } else {
                YesNoQuestion(question);
            }
        }
    }
}
