﻿using UnityEngine;
using System;
using UnityEngine.UI;
using System.Linq;
using Stove.StoveSDK;

public class SelectProviderDialog : MonoBehaviour
{
    public Action<Provider> action;

    public GameObject panel;
    public ToggleGroup toggleGroup;


    public static void Show(Action<Provider> action)
    {
        Present(action);   
    }

    public static void Present(Action<Provider> action)
    {
        GameObject selectProviderDialogPanel = GameObject.Find("SelectProviderDialogPanel");

        Image image = selectProviderDialogPanel.GetComponent<Image>();
        image.enabled = true;

        SelectProviderDialog selectProviderDialog = selectProviderDialogPanel.GetComponent<SelectProviderDialog>();
        selectProviderDialog.panel.SetActive(true);
        selectProviderDialog.action = action;
    }

    public static void Dismiss()
    {
        GameObject selectProviderDialogPanel = GameObject.Find("SelectProviderDialogPanel");

        Image image = selectProviderDialogPanel.GetComponent<Image>();
        image.enabled = false;

        SelectProviderDialog selectProviderDialog = selectProviderDialogPanel.GetComponent<SelectProviderDialog>();
        selectProviderDialog.panel.SetActive(false);
    }

    public void OnClick(int tag)
    {
        if (tag == 0)
        {
            Toggle toggle = toggleGroup.ActiveToggles().FirstOrDefault();
            if (toggle.name.Equals("GuestProvider")) {
                action.Invoke(new GuestProvider());
            } else if (toggle.name.Equals("GoogleProvider")) {
                action.Invoke(new GoogleProvider());
            } else if (toggle.name.Equals("AppleProvider")) {
                action.Invoke(new AppleProvider());
            } else if (toggle.name.Equals("FacebookProvider")) {
                action.Invoke(new FacebookProvider());
            } else if (toggle.name.Equals("EmailProvider")) {
                action.Invoke(new EmailProvider());
            } else if (toggle.name.Equals("NaverProvider")) {
                action.Invoke(new NaverProvider());
            } else if (toggle.name.Equals("LineProvider")) {
                action.Invoke(new LineProvider());
            } else if (toggle.name.Equals("SteamProvider")) {
                action.Invoke(new SteamProvider());
            } else {
                action.Invoke(null);
            }
        }
        else
        {
            action.Invoke(null);
        }

        Dismiss();
    }
}
