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

public class LoadViewDialog : MonoBehaviour
{
    public Action<string, Dictionary<string, object>> action;

    public GameObject panel;

    public InputField URLInputField;
    public ToggleGroup displayTypeToggleGroup;
    public ToggleGroup closeButtonTypeToggleGroup;
    public Slider enableNavigation;
    public Slider enableTopCloseButton;

    public static void Show(Action<string, Dictionary<string, object>> action)
    {
        Present(action);
    }

    public static void Present(Action<string, Dictionary<string, object>> action)
    {
        GameObject loadViewDialogPanel = GameObject.Find("LoadViewDialogPanel");

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

        LoadViewDialog loadViewDialog = loadViewDialogPanel.GetComponent<LoadViewDialog>();
        loadViewDialog.panel.SetActive(true);
        loadViewDialog.action = action;
    }

    public static void Dismiss()
    {
        GameObject loadViewDialogPanel = GameObject.Find("LoadViewDialogPanel");

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

        LoadViewDialog loadViewDialog = loadViewDialogPanel.GetComponent<LoadViewDialog>();
        loadViewDialog.panel.SetActive(false);
    }

    public void OnClick(int tag)
    {
        if (tag == 0)
        {
            Toggle toggle = closeButtonTypeToggleGroup.ActiveToggles().FirstOrDefault();
            int bottomCloseButtonType = 0;
            if (toggle.name.Equals("None"))
            {
                bottomCloseButtonType = 0;
            }
            else if (toggle.name.Equals("Image"))
            {
                bottomCloseButtonType = 1;
            }
            else
            {
                bottomCloseButtonType = 2;
            }

            Dictionary<string, object> result = new Dictionary<string, object>();
            result.Add("displayType", displayTypeToggleGroup.ActiveToggles().FirstOrDefault().name.Equals("Partial")?0:1);
            result.Add("bottomCloseButtonType", bottomCloseButtonType);
            result.Add("enableNavigation", ((int)enableNavigation.value == 1) ? true : false);
            result.Add("enableTopCloseButton", ((int)enableTopCloseButton.value == 1) ? true : false);

            action.Invoke(URLInputField.text, result);
        }
        else
        {
            action.Invoke(null, null);
        }
        
        Dismiss();
    }
}
