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

public class ShopManager : MonoBehaviour
{
    [SerializeField] private Toggle defaultPlayerColorToggle;
    [SerializeField] private Toggle defaultPlayerTrailColorToggle;
    [SerializeField] private Toggle[] colorsToggle;
    [SerializeField] private Toggle[] trailColorToggle;

    [SerializeField] private ToggleGroup colorToggleGroup;
    [SerializeField] private ToggleGroup trailColorToggleGroup;

    [SerializeField] private Image[] trailExamplesImages;
    [SerializeField] private Image lastTrailExampleImage;

    [SerializeField] private Image[] playerColorExamples;
    [SerializeField] private Image lastPlayerColorImage;

    private Toggle currentColorToggle;
    private Toggle currentTrailColorToggle;

    Toggles.PlayerTrailColor playerTrailColor;
    Toggles.PlayerColor playerColor;

    // Start is called before the first frame update
    void Start()
    {
        OnColorToggleClicked(defaultPlayerColorToggle);
        OnTrailColorToggleClicked(defaultPlayerTrailColorToggle);
    }

    public void OnColorToggleClicked(Toggle toggle)
    {
        currentColorToggle = toggle;
        if (currentColorToggle.isOn)
        {
            playerColor = toggle.GetComponent<Toggles>().playerColor;
            currentColorToggle.interactable = false;
            ChangePlayerColor();
            Debug.Log(currentColorToggle);
        }
        else
        {
            currentColorToggle.interactable = true;
        }

    }

    public void OnTrailColorToggleClicked(Toggle toggle)
    {
        currentTrailColorToggle = toggle;
        if (currentTrailColorToggle.isOn)
        {
            playerTrailColor = toggle.GetComponent<Toggles>().playerTrailColor;
            currentTrailColorToggle.interactable = false;
            ChangeTrailColor();
            Debug.Log(currentTrailColorToggle);
        }
        else
        {
            currentTrailColorToggle.interactable = true;
        }
    }

    void ChangeTrailColor()
    {
        if (lastTrailExampleImage != null)
        {
            lastTrailExampleImage.gameObject.SetActive(false);
        }

        switch (playerTrailColor)
        {
            case Toggles.PlayerTrailColor.Grey:
                trailExamplesImages[0].gameObject.SetActive(true);
                lastTrailExampleImage = trailExamplesImages[0];
                break;

            case Toggles.PlayerTrailColor.Yellow:
                trailExamplesImages[1].gameObject.SetActive(true);
                lastTrailExampleImage = trailExamplesImages[1];
                break;

            case Toggles.PlayerTrailColor.Orange:
                trailExamplesImages[2].gameObject.SetActive(true);
                lastTrailExampleImage = trailExamplesImages[2];
                break;

            case Toggles.PlayerTrailColor.Green:
                trailExamplesImages[3].gameObject.SetActive(true);
                lastTrailExampleImage = trailExamplesImages[3];
                break;

            case Toggles.PlayerTrailColor.Pink:
                trailExamplesImages[4].gameObject.SetActive(true);
                lastTrailExampleImage = trailExamplesImages[4];
                break;

            case Toggles.PlayerTrailColor.Blue:
                trailExamplesImages[5].gameObject.SetActive(true);
                lastTrailExampleImage = trailExamplesImages[5];
                break;

            default:
                Debug.Log("Color Not Found!");
                break;
        }

       
    }

    void ChangePlayerColor()
    {
        if (lastPlayerColorImage != null)
        {
            lastPlayerColorImage.gameObject.SetActive(false);
        }

        switch (playerColor)
        {
            case Toggles.PlayerColor.Orange:
                playerColorExamples[0].gameObject.SetActive(true);
                lastPlayerColorImage = playerColorExamples[0];
                break;

            case Toggles.PlayerColor.Yellow:
                playerColorExamples[1].gameObject.SetActive(true);
                lastPlayerColorImage = playerColorExamples[1];
                break;
            case Toggles.PlayerColor.Blue:
                playerColorExamples[2].gameObject.SetActive(true);
                lastPlayerColorImage = playerColorExamples[2];
                break;
            case Toggles.PlayerColor.Green:
                playerColorExamples[3].gameObject.SetActive(true);
                lastPlayerColorImage = playerColorExamples[3];
                break;
            case Toggles.PlayerColor.Pink:
                playerColorExamples[4].gameObject.SetActive(true);
                lastPlayerColorImage = playerColorExamples[4];
                break;
            case Toggles.PlayerColor.Grey:
                playerColorExamples[5].gameObject.SetActive(true);
                lastPlayerColorImage = playerColorExamples[5];
                break;
            default:
                Debug.Log("Color Not Found!");
                break;
        }

    }

}