﻿using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;


public class Branding : MonoBehaviour, IPointerDownHandler, IPointerEnterHandler, IPointerExitHandler
{
    private bool IsMoreGamesButton;

     void Awake()
    {
#if !UNITY_EDITOR
        if (this.GetComponent<Image>())
        {
            IsMoreGamesButton = (this.GetComponent<Image>().sprite.name == "y8_logo_moregames" ||
                                 this.GetComponent<Image>().gameObject.name == "Branding_Y8_MoreGames");
            MoreGamesAlpha(0);
        }
#endif
    }

#if !UNITY_EDITOR
    void MoreGamesAlpha(int value)
    {
        if (IsMoreGamesButton)
        {
            Image MoreGamesLogo = GetComponent<Image>();
            Color c = MoreGamesLogo.color;
            c.a = value;
            MoreGamesLogo.color = c;
        }
    }
#endif

    void Start()
    {
        EnableBranding();
#if !UNITY_EDITOR && UNITY_WEBGL
        if (IsMoreGamesButton)
        {
            Idnet.I.Protection(protectionException =>
            {
                if (protectionException == null)
                {
                    if (Idnet.I.IsSponsor)
                        DisableMoreGames();
                    else
                        MoreGamesAlpha(1);
                
                }
            });
        }
#endif
    }

    void EnableBranding()
    {
        if (FindObjectOfType<EventSystem>() == null)
        {
            var es = new GameObject("EventSystem", typeof(EventSystem));
            es.AddComponent<StandaloneInputModule>();
        }
    }

    public void DisableMoreGames()
    {
        if (Idnet.I.IsSponsor)
        {
            this.gameObject.SetActive(false);
        }
    }

    public void OnPointerDown(PointerEventData eventData)
    {
        if (eventData.pointerEnter.GetComponent<Image>())
        {
            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "idnet_logo" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "Branding_IDnet")
            {
                eventData.pointerEnter.GetComponent<Image>().rectTransform.localScale = new Vector2(1, 1);
            }
            else
            {
                if (!Idnet.I.IsSponsor)
                    eventData.pointerEnter.GetComponent<Image>().rectTransform.localScale = new Vector2(1, 1);
            }

            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "y8_logo" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "Branding_Y8")
            {
                Idnet.I.Y8LogoClicked_OnMouseDown();
            }

            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "idnet_logo" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "Branding_IDnet")
            {
                Idnet.I.IdnetLogoClick_OnMouseDown();
            }

            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "y8_logo_moregames" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "Branding_Y8_MoreGames")
            {
                Idnet.I.MoreGamesClick_OnMouseDown();
            }

            
            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "y8account_logo" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "y8account_logo")
            {
                if (!Idnet.I.IsSponsor)
                    Idnet.I.Y8AccountLogoClick_OnMouseDown();
            }
        }

        if (eventData.pointerEnter.gameObject.name == "y8account_terms")
        {
            OpenUrls.OpenLink("https://account.y8.com/terms-of-service");
        }

        if (eventData.pointerEnter.gameObject.name == "y8account_privacy")
        {
            OpenUrls.OpenLink("https://account.y8.com/privacy-policy");
        }

        if (eventData.pointerEnter.gameObject.name == "y8account_forgotpassword")
        {
            OpenUrls.OpenLink("https://account.y8.com/accounts/password/new");
        }
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        if (eventData.pointerEnter.GetComponent<Image>())
        {
            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "idnet_logo" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "Branding_IDnet")
            {
                eventData.pointerEnter.GetComponent<Image>().rectTransform.localScale = new Vector2(1.06f, 1.06f);
            }
            else
            {
                if (!Idnet.I.IsSponsor)
                    eventData.pointerEnter.GetComponent<Image>().rectTransform.localScale = new Vector2(1.06f, 1.06f);
            }
        }
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        if (eventData.pointerEnter.GetComponent<Image>())
        {
            if (eventData.pointerEnter.GetComponent<Image>().sprite.name == "idnet_logo" ||
                eventData.pointerEnter.GetComponent<Image>().gameObject.name == "Branding_IDnet")
            {
                eventData.pointerEnter.GetComponent<Image>().rectTransform.localScale = new Vector2(1f, 1f);
            }
            else
            {
                if (!Idnet.I.IsSponsor)
                    eventData.pointerEnter.GetComponent<Image>().rectTransform.localScale = new Vector2(1f, 1f);
            }
        }
    }
}