using UnityEngine;
using System.Collections;
using GCGame.Table;
using System.Collections.Generic;
using System;
using Games.Mission;

public class AucationCtr : MonoBehaviour {

    public static AucationCtr Instance;
    private void Awake()
    {
        Instance = this;
    }
    private void OnDestroy()
    {
        Instance = null;
    }

    private void OnEnable()
    {
        ShowPage(0); //默认显示第一个
        CountRemainTime();
    }

    public GameObject[] pagePanels;
    public AucationMenuItem[] aucationMenuItems;

    public void ShowPage(int _Index)
    {
        for(int index = 0; index < pagePanels.Length; index++)
        {
            if(index == _Index)
            {
                pagePanels[index].gameObject.SetActive(true);
            }else
            {
                pagePanels[index].gameObject.SetActive(false);
            }
        }

        for(int index = 0; index < aucationMenuItems.Length; index++)
        {
            aucationMenuItems[index].GetComponent<AucationMenuItem>().SetMenuItemState(index == _Index ? true : false);
        }
    } 

    public void OnCloseBtnClick()
    {
        if(AucationingPanelCtr.Instance)
        {
            if(AucationingPanelCtr.Instance.numBoard._NumBoard.gameObject.activeInHierarchy)
            {
                AucationingPanelCtr.Instance.numBoard._NumBoard.gameObject.SetActive(false);
            }
        }

        UIManager.CloseUI(UIInfo.AucationCtr);
    }

    //计算当前活动的剩余时间
    private int remainSeconds = 0;
    private bool isNeedCountRemainTime = false;
    public void CountRemainTime()
    {
        var activityBaseDic = TableManager.GetActivityBase().Values;
        foreach (var activity in activityBaseDic)
        {
            //当前活动为寻宝任务
            if (activity.ActivityServerType == (int)ActivityDataManager.Activity_Type.ACTIVITY_TYPE_GRAB_TREASURE)
            {
                //记录当前活动的结束时间
                int endTimeFromTab = int.Parse(activity.GetTimebyIndex(0).Split('|')[1]);

                DateTime curServerTime = GCGame.Utils.GetServerDateTime();

                int endHour = endTimeFromTab / 100;
                int endMinute = endTimeFromTab % 100;

                int curHour = curServerTime.Hour;
                int curMinute = curServerTime.Minute;
                int curSecond = curServerTime.Second;

                remainSeconds = (endHour * 3600 + endMinute * 60 - curHour * 3600 - curMinute * 60 - curSecond);  //剩余秒数

                if (remainSeconds > 0)
                {
                    isNeedCountRemainTime = true;
                }
                else
                {
                    isNeedCountRemainTime = false;
                }
                break;
            }
        }
    }

    private float countTime = 0.0f;
    private void Update()
    {
        if(isNeedCountRemainTime)
        {
            countTime += Time.deltaTime;
            if(countTime > 1.0f)
            {
                remainSeconds--;
                countTime = 1.0f - countTime;
                if(remainSeconds <= 0)
                {
                    isNeedCountRemainTime = false;
                    OnCloseBtnClick();
                }
            }
        }
    }

    public void OnHelpBtn()
    {
        MessageHelpLogic.ShowHelpMessage(64);
    }
}