using System;
using System.Collections.Generic;
using System.Linq;

using FairyGUI;

using UnityEngine;
using UnityEngine.EventSystems;
using BingoBrain;
using DG.Tweening;
using BingoBrain;
using BingoBrain.Core;
using BingoBrain.HotFix;
namespace DontConfuse
{


    public class WebviewManager : MonoBehaviour
    {
        //         Vector2 startPos;
        //         float lastTouchTime = 0f;
        //         float touchInterval = 0.3f;
        //         void Update()
        //         {
        // #if UNITY_IOS && !UNITY_EDITOR
        //             if(Input.touchCount > 0)
        //             {
        //                 Touch touch_ = Input.GetTouch(0);
        //
        //                 if(touch_.phase == TouchPhase.Began)
        //                 {
        //                     startPos = touch_.position;
        //                     lastTouchTime = Time.time;
        //                 }
        //                 if(touch_.phase == TouchPhase.Ended)
        //                 {
        //                     if ((Time.time - lastTouchTime) < touchInterval){
        //                         // if (WebViewMgr.Instance.WebUIType == WebUIType.H5 && EventSystem.current.currentSelectedGameObject == null){
        //                         //     BrigdeIOS.SetTouchWebview(true, true);
        //                         // }else{
        //                         //     BrigdeIOS.SetTouchWebview(true);
        //                         // }
        //                         BrigdeIOS.SetClickView();
        //                     }
        //                 }
        //                 // if(touch_.phase == TouchPhase.Moved){
        //                 //     Vector2 delta = touch_.position - startPos;
        //                 // // Debug.Log("delta Y: " + delta.y);
        //                 //     BrigdeIOS.ScrollWebview(delta.x, delta.y);
        //                 //     startPos = touch_.position;
        //                 // }
        //             }
        // #endif
        //         }
        public static WebviewManager Instance;
        public WebviewManager()
        {
            Instance = this;
        }
        public void OpenWebView(string url)
        {
            //Debug.Log("[WebviewManager] OpenWebView");
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.OpenWebview(url);
#endif
        }
        public void showDarkWebview()
        {
            //Debug.Log("[WebviewManager] OpenWebView");
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.showDarkWebview();
#endif
        }

        public void CloseWebview()
        {
            //Debug.Log("[WebviewManager] CloseWebview");
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.CloseWebview();
#endif
        }

        public void SetOffset(int offset_y, int offset_y1)
        {
            // Debug.Log($"barry [WebviewManager] SetOffset:{offset_y}, {offset_y1}");
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.SetOffset(offset_y, offset_y1);
#endif
        }

        public void SetPadding(float left, float top, float right, float bottom)
        {
            //    Debug.Log("[WebviewManager] SetPadding");    
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.SetPadding(left, top, right, bottom);
#endif
        }
        public void SetDarkThough(bool though)
        {
            if (!GameHelper.IsGiftSwitch()) return;
            // if (though)
            // {
            //     if (UI.Instance.IsExistUI(UIConst.LevelSuccessUI) || UI.Instance.IsExistUI(UIConst.MakeupConfirmUI) ||
            //      UI.Instance.IsExistUI(UIConst.NewTaskUI) || UI.Instance.IsExistUI(UIConst.PackrewardUI) || UI.Instance.IsExistUI(UIConst.SaveingPotUI)
            //     )
            //     {
            //         return;
            //     }

            // }
            //    Debug.Log("[WebviewManager] SetPadding");    
#if UNITY_IOS && !UNITY_EDITOR
        BrigdeIOS.SetDarkThough(though);
#endif
        }
        public void SetBtn(int left, int top, int right, int bottom)
        {
            //    Debug.Log("[WebviewManager] SetBtn");    
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.SetBtn(left, top, right, bottom);
#endif
        }
        public void SetCTEnable(bool flag)
        {
            // Debug.Log("[WebviewManager] SetCTEnable"); 
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.SetCTEnable(flag);
#endif
        }

        public void SetFullScreen()
        {
            // Debug.Log("[WebviewManager] SetFullScreen"); 
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.SetFullScreen();
#endif
        }

        public void addH5Field(int field1, int field2, int field3, int field4, int field5, string field6, string field7, string dark_url, string light_url, bool is_gift, string web_through_str, string click_add_time)
        {
#if UNITY_IOS && !UNITY_EDITOR
           BrigdeIOS.addH5Field(field1,field2,field3,field4,field5,field6,field7,dark_url,light_url,is_gift,web_through_str,click_add_time);
#endif
        }
        public void ShowH5View(bool flag)
        {
            // Debug.Log("[WebviewManager] SetCTEnable"); 
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.ShowH5View(flag);
#endif
        }

        public void SetIconProgress(float val)
        {
            // Debug.Log("[WebviewManager] SetCTEnable"); 
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.SetIconProgress(val);
#endif
        }
        public void setInH5View(bool flag)
        {
            // Debug.Log("[WebviewManager] SetCTEnable"); 
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.setInH5View(flag);
#endif
        }
        public void upDataH5times(string weblink, int times, bool is_dark)
        {
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.upDataH5times( weblink, times,is_dark);
#endif
        }
        public void ShowFlyBtn(bool flag)
        {
            // Debug.Log("[WebviewManager] SetCTEnable"); 
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.ShowFlyBtn(flag);
#endif
        }

        public void setFlyBtnTag(bool flag)
        {
            // Debug.Log($"[WebviewManager] setFlyBtnTag ---{flag}");
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.setFlyBtnTag(flag);
#endif
        }

        public void setRewardBtnTag(bool flag)
        {
            // Debug.Log($"[WebviewManager] setRewardBtnTag--- {flag}");
#if UNITY_IOS && !UNITY_EDITOR
            BrigdeIOS.setRewardBtnTag(flag);
#endif
        }

        public void ObjC_TouchClick(string name)
        {
            // Debug.Log("Touch click: " + name);
            GameDispatcher.Instance.Dispatch(BingoInfo.H5ViewClickBtn, name);
        }
        public void H5AutoRefresh(string times)
        {
            if (times == "") return;
            DateTime newDate = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            newDate = newDate.AddSeconds(GameHelper.GetNowTime(true));
            var newDays = newDate.Day;


            if (times == "Dailyrefreshtimes")
            {
                var last_time = PlayerPrefs.GetInt("Dayreftimes", 0);

                if (last_time == newDays)
                {
                    var numbers = PlayerPrefs.GetInt("Dailyrefreshnum", 0);
                    numbers++;
                    PlayerPrefs.SetInt("Dailyrefreshnum", numbers);
                }
                else
                {

                    PlayerPrefs.SetInt("Dailyrefreshnum", 1);
                    PlayerPrefs.SetInt("Dayreftimes", newDays);
                    string darkWVRefreshtime_str = "";
                    string darkWVDailyrefreshtimes_str = "";

                    // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime.Length; i++)
                    // {
                    //     if (i != 0) darkWVRefreshtime_str += "|";
                    //     darkWVRefreshtime_str += ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime[i].ToString();
                    // }
                    // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime2.Length; i++)
                    // {
                    //     darkWVRefreshtime_str += "|";
                    //     darkWVRefreshtime_str += ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime2[i].ToString();
                    // }

                    int dark_type = -1;
                    for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                    {
                        if (dark_type != ConfigSystem.dark_weblist[i].wvType)
                        {
                            if (i != 0) darkWVRefreshtime_str += "|";
                            darkWVRefreshtime_str += ConfigSystem.dark_weblist[i].darkWVRefreshtime[0];
                            darkWVRefreshtime_str += "|";
                            darkWVRefreshtime_str += ConfigSystem.dark_weblist[i].darkWVRefreshtime[1];
                            dark_type = ConfigSystem.dark_weblist[i].wvType;
                        }
                    }


                    // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes.Length; i++)
                    // {
                    //     if (i != 0) darkWVDailyrefreshtimes_str += "|";
                    //     darkWVDailyrefreshtimes_str += ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes[i].ToString();
                    // }

                    dark_type = -1;
                    for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                    {
                        if (dark_type != ConfigSystem.dark_weblist[i].wvType)
                        {
                            if (i != 0) darkWVDailyrefreshtimes_str += "|";
                            darkWVDailyrefreshtimes_str += ConfigSystem.dark_weblist[i].darkWVDailyrefreshtimes;
                            dark_type = ConfigSystem.dark_weblist[i].wvType;
                        }
                    }


                    WebviewManager.Instance.addH5Field(ConfigSystem.GetConfig<CommonModel>().flyCtRate, ConfigSystem.GetConfig<CommonModel>().otherH5switch,
                        ConfigSystem.GetConfig<CommonModel>().H5Refreshtime, ConfigSystem.GetConfig<CommonModel>().Dailyrefreshtimes, ConfigSystem.GetConfig<CommonModel>().darkThoughProbability, darkWVRefreshtime_str,
                      darkWVDailyrefreshtimes_str, "", "", GameHelper.IsGiftSwitch(), "", "");
                }
            }
            else if (times.Contains("dark_Dailyrefreshtimes"))
            {
                var last_time = PlayerPrefs.GetInt("dark_refreshDay", 0);
                if (last_time == newDays)
                {
                    // var numbers = PlayerPrefs.GetInt("dark_Dayref", 0);
                    // numbers++;
                    // PlayerPrefs.SetInt("dark_Dayref", numbers);
                    string[] temp_arr = times.Split("|");
                    if (temp_arr.Length >= 2)
                    {
                        SaveData.GetSaveobject().dark_Dayref[Int32.Parse(temp_arr[1])]++;
                        SaveData.saveDataFunc();
                    }
                }
                else
                {

                    // PlayerPrefs.SetInt("dark_Dayref", 1);
                    string[] temp_arr = times.Split("|");
                    if (temp_arr.Length >= 2)
                    {
                        SaveData.GetSaveobject().dark_Dayref[Int32.Parse(temp_arr[1])] = 1;
                        SaveData.saveDataFunc();
                    }
                    PlayerPrefs.SetInt("dark_refreshDay", newDays);
                    string darkWVRefreshtime_str = "";
                    string darkWVDailyrefreshtimes_str = "";

                    // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime.Length; i++)
                    // {
                    //     if (i != 0) darkWVRefreshtime_str += "|";
                    //     darkWVRefreshtime_str += ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime[i].ToString();
                    // }
                    // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime2.Length; i++)
                    // {
                    //     darkWVRefreshtime_str += "|";
                    //     darkWVRefreshtime_str += ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime2[i].ToString();
                    // }
                    int dark_type = -1;
                    for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                    {
                        if (dark_type != ConfigSystem.dark_weblist[i].wvType)
                        {
                            if (i != 0) darkWVRefreshtime_str += "|";
                            darkWVRefreshtime_str += ConfigSystem.dark_weblist[i].darkWVRefreshtime[0];
                            darkWVRefreshtime_str += "|";
                            darkWVRefreshtime_str += ConfigSystem.dark_weblist[i].darkWVRefreshtime[1];
                            dark_type = ConfigSystem.dark_weblist[i].wvType;
                        }
                    }
                    // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes.Length; i++)
                    // {
                    //     if (i != 0) darkWVDailyrefreshtimes_str += "|";
                    //     darkWVDailyrefreshtimes_str += ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes[i].ToString();
                    // }

                    dark_type = -1;
                    for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                    {
                        if (dark_type != ConfigSystem.dark_weblist[i].wvType)
                        {
                            if (i != 0) darkWVDailyrefreshtimes_str += "|";
                            darkWVDailyrefreshtimes_str += ConfigSystem.dark_weblist[i].darkWVDailyrefreshtimes;
                            dark_type = ConfigSystem.dark_weblist[i].wvType;
                        }
                    }
                    WebviewManager.Instance.addH5Field(ConfigSystem.GetConfig<CommonModel>().flyCtRate, ConfigSystem.GetConfig<CommonModel>().otherH5switch,
                        ConfigSystem.GetConfig<CommonModel>().H5Refreshtime, ConfigSystem.GetConfig<CommonModel>().Dailyrefreshtimes, ConfigSystem.GetConfig<CommonModel>().darkThoughProbability, darkWVRefreshtime_str,
                        darkWVDailyrefreshtimes_str, "", "", GameHelper.IsGiftSwitch(), "", "");
                }
            }
            else
            {

                string[] temp_array = times.Split("|");
                if (temp_array.Length >= 2 && temp_array[0] != null && temp_array[0] != "")
                {
                    if (temp_array[1] == "h5")
                    {

                        H5sendClass info = new H5sendClass() { link = temp_array[0], type = "h5" };
                        NetworkKit.PostWithHeader<H5refreshTimes>("event/h5Impressions", info, (isSuccess, obj) =>
                        {
                            if (isSuccess)
                            {

                                int numbers = 0;
                                for (int i = 0; i < ConfigSystem.light_weblist.Count; i++)
                                {
                                    if (ConfigSystem.light_weblist[i].webLink == temp_array[0])
                                    {
                                        // Debug.Log("uuuuuuuuuuuuuuuuu明穿透" + temp_array[0] + "已经刷新了" + obj.times + "次" + "上限是" + ConfigSystem.light_weblist[i].refreshMax + "次");
                                        numbers = ConfigSystem.light_weblist[i].refreshMax - obj.times;
                                        break;
                                    }
                                }
                                if (numbers < 0) numbers = 0;
                                upDataH5times(temp_array[0], numbers, false);
                            }
                        });
                    }
                    else
                    {
                        H5sendClass info = new H5sendClass() { link = temp_array[0], type = "h6" };
                        NetworkKit.PostWithHeader<H5refreshTimes>("event/h5Impressions", info, (isSuccess, obj) =>
                        {
                            if (isSuccess)
                            {
                                int numbers = 0;
                                for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                                {
                                    if (ConfigSystem.dark_weblist[i].webLink == temp_array[0])
                                    {
                                        // Debug.Log("uuuuuuuuuuuuuuuuu暗穿透" + temp_array[0] + "已经刷新了" + obj.times + "次" + "上限是" + ConfigSystem.dark_weblist[i].refreshMax + "次");
                                        numbers = ConfigSystem.dark_weblist[i].refreshMax - obj.times;
                                        break;
                                    }
                                }
                                if (numbers < 0) numbers = 0;
                                upDataH5times(temp_array[0], numbers, true);
                            }
                        });
                    }

                }
            }
        }


        private GList select_glist;
        private float select_glist_y;
        public void TouchClickPoint(string name)
        {
            // Debug.Log("TouchClickPoint" + name);
            if (name == null) return;
            if (name == "flyBtn")
            {
                NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior, BuriedPointEvent.fly_ct_number, 1);
                //NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior,BuriedPointEvent.fly_ct_people,1);

            }

            if (name == "rewardBtn")
            {
                NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior, BuriedPointEvent.annular_ct_number, 1);
                //NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior,BuriedPointEvent.annular_ct_people,1);
            }

            if (name == "finish")
            {
                NetworkKit.BuriedPoint(BuriedPointEvent.Hall_behavior, BuriedPointEvent.annular_finish_number, 1);
            }
            else
            {

                string[] a = name.Split("|");
                if (a.Length < 2) return;
                if (!float.TryParse(a[0], out float x) || !float.TryParse(a[1], out float y))
                {
                    Debug.LogError("Invalid format for coordinates: " + name);
                    return;
                }

                Vector2 fguiScreenPos = new(x * GRoot.inst.width, y * GRoot.inst.height);

                // Debug.Log("mmmmmmmmmmmmmmmmmm" + a[0]);
                // Debug.Log("mmmmmmmmmmmmmmmmmm" + a[1]);
                // if (AppConst.DeviceLangue == "pt")
                // {
                //     fguiScreenPos = new Vector2((float.Parse(a[0]) * GRoot.inst.width) / 1000000.0f,
                //         float.Parse(a[1]) * GRoot.inst.height / 1000000.0f);
                // }
                // else
                // {

                //}
                GButton objUnderPoint = null;

                var child_array = GRoot.inst.GetChildren().Reverse();
                bool click_card = true;
                foreach (GComponent child in child_array) //normal
                {
                    if (child.GetChildren().Length > 0)
                    {
                        var com_array = child.GetChildren().Reverse();
                        foreach (GComponent com_child in com_array) //com_层面
                        {
                            if (child.name == "Popup" || child.name == "Highest")
                            {
                                click_card = false;/*  */
                            }
                            var btn_array = com_child.GetChildren();
                            for (int i = btn_array.Length - 1; i >= 0; i--) //btn_层面
                            {
                                // if (btn_array[i] .name=="btn_collect")
                                // {
                                //     Debug.Log(btn_array[i].x);
                                //     Debug.Log(btn_array[i].y);
                                //     Debug.Log(fguiScreenPos.x);
                                //     Debug.Log(fguiScreenPos.y);
                                //     Debug.Log(btn_array[i].position.x <= fguiScreenPos.x &&
                                //               fguiScreenPos.x <= btn_array[i].position.x + btn_array[i].width);
                                //     Debug.Log( btn_array[i].position.y <= fguiScreenPos.y &&
                                //                fguiScreenPos.y <= btn_array[i].position.y + btn_array[i].height);
                                // }

                                if (btn_array[i] is GButton)
                                {
                                    GButton temp = btn_array[i] as GButton;

                                    if (temp.onStage && temp.visible && temp.position.x <= fguiScreenPos.x &&
                                        fguiScreenPos.x <= temp.position.x + temp.width &&
                                        temp.position.y <= fguiScreenPos.y &&
                                        fguiScreenPos.y <= temp.position.y + temp.height)
                                    {
                                        objUnderPoint = btn_array[i] as GButton;
                                        if (objUnderPoint.enabled)
                                        {
                                            objUnderPoint.FireClick(true, true);
                                        }
                                        else objUnderPoint.FireClick(true, false);
                                        goto EndLoop;
                                    }
                                }

                                else if (btn_array[i] is GTextInput)
                                {

                                    GTextInput temp = btn_array[i] as GTextInput;
                                    if (temp.onStage && temp.visible && temp.position.x <= fguiScreenPos.x &&
                                        fguiScreenPos.x <= temp.position.x + temp.width &&
                                        temp.position.y <= fguiScreenPos.y &&
                                        fguiScreenPos.y <= temp.position.y + temp.height)
                                    {

                                        temp.RequestFocus();
                                        goto EndLoop;
                                    }

                                }
                                else if (btn_array[i] is GList)
                                {

                                    GList temp = btn_array[i] as GList;
                                    if (temp.onStage && temp.visible && temp.position.x <= fguiScreenPos.x &&
                                        fguiScreenPos.x <= temp.position.x + temp.width &&
                                        temp.position.y <= fguiScreenPos.y &&
                                        fguiScreenPos.y <= temp.position.y + temp.height)
                                    {
                                        if (select_glist == null)
                                        {
                                            select_glist_y = fguiScreenPos.y;
                                            select_glist = btn_array[i] as GList;
                                        }
                                        else
                                        {
                                            select_glist.scrollPane.posY -= (fguiScreenPos.y - select_glist_y);
                                            select_glist_y = fguiScreenPos.y;
                                        }

                                        goto EndLoop;
                                    }

                                }
                                else if (btn_array[i] is GComponent)
                                {
                                    var child_btn_array = btn_array[i].asCom.GetChildren(); //嵌套的com

                                    for (int j = child_btn_array.Length - 1; j >= 0; j--)
                                    {
                                        if (child_btn_array[j] is GButton)
                                        {
                                            Vector2 local_pos = new Vector2(btn_array[i].x + child_btn_array[j].x,
                                                btn_array[i].y + child_btn_array[j].y);
                                            if (child_btn_array[j].visible && child_btn_array[j].onStage && child_btn_array[j].visible && local_pos.x <= fguiScreenPos.x &&
                                                fguiScreenPos.x <= local_pos.x + child_btn_array[j].width &&
                                                local_pos.y <= fguiScreenPos.y && fguiScreenPos.y <=
                                                local_pos.y + child_btn_array[j].height)
                                            {
                                                objUnderPoint = child_btn_array[j] as GButton;
                                                if (objUnderPoint.enabled) objUnderPoint.FireClick(true, true);
                                                else objUnderPoint.FireClick(true, false);
                                                goto EndLoop;

                                            }
                                        }
                                    }

                                }

                            }
                        }
                        if (child.name == "Popup" || child.name == "Highest")
                        {
                            goto EndLoop;
                        }
                    }
                }

            EndLoop: Debug.Log("");
                // if (click_card)
                // {
                //     if (orthoCamera == null) orthoCamera = GameObject.Find("GameCamera").GetComponent<Camera>();
                //     Ray ray = orthoCamera.ScreenPointToRay(new Vector2(float.Parse(a[0]) * Screen.width, (1 - float.Parse(a[1])) * Screen.height));
                //     RaycastHit hit;
                //     int layerMask = 1 << 6;

                //     if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
                //     {
                //        // GameDispatcher.Instance.Dispatch(GameMsg.card_click, hit.collider.gameObject.name);
                //     }
                // }

            }
        }
        public Camera orthoCamera;

        public static Dictionary<string, string> adCallbackInfo = new Dictionary<string, string>();
        public void SendH5Event(string numbers)
        {

            // adCallbackInfo.Clear();
            // adCallbackInfo.Add("h5_revenue",ConfigSystem.GetConfig<CommonModel>().h5_refreshRevenue.ToString());
            // //Debug.Log("sssssssssssssssssss"+JsonConvert.SerializeObject(adCallbackInfo));
            // AppsFlyer.sendEvent("Growing_Total_01_002",adCallbackInfo);
        }

        public void RefreshUrl()
        {

            // if (gameUrlInfo == null) return;
            //TODO: show invisible h5 
            var Dailyrefresh_reamain = 0;
            var last_time = PlayerPrefs.GetInt("Dayreftimes", 0);
            DateTime newDate = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            newDate = newDate.AddSeconds(GameHelper.GetNowTime());
            var newDays = newDate.Day;



            if (last_time == newDays)
            {
                Dailyrefresh_reamain = ConfigSystem.GetConfig<CommonModel>().Dailyrefreshtimes -
                                       PlayerPrefs.GetInt("Dailyrefreshnum", 0);
            }
            else
            {
                PlayerPrefs.SetInt("Dailyrefreshnum", 0);
                Dailyrefresh_reamain = ConfigSystem.GetConfig<CommonModel>().Dailyrefreshtimes;
                PlayerPrefs.SetInt("Dayreftimes", newDays);
            }

            int dark_last_time = PlayerPrefs.GetInt("dark_refreshDay", 0);

            DateTime dark_newDate = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            dark_newDate = dark_newDate.AddSeconds(GameHelper.GetNowTime());
            var dark_newDays = dark_newDate.Day;


            string darkWVDailyrefreshtimes_str = "";


            if (SaveData.GetSaveobject().dark_Dayref == null)
            {
                SaveData.GetSaveobject().dark_Dayref = new List<int>() { 0, 0, 0, 0, 0, 0, 0, 0, 0 ,0,0};
            }

            if (dark_last_time == dark_newDays)
            {
                // dark_Dailyrefresh_reamain = ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes[Int32.Parse(webview_index) - 1] -
                //                             PlayerPrefs.GetInt("dark_Dayref", 0);
                // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes.Length; i++)
                // {

                //     if (i != 0) darkWVDailyrefreshtimes_str += "|";
                //     darkWVDailyrefreshtimes_str += ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes[i] - SaveData.GetSaveobject().dark_Dayref[i];

                // }
                int dark_type_ = -1;
                for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                {
                    if (dark_type_ != ConfigSystem.dark_weblist[i].wvType)
                    {
                        dark_type_ = ConfigSystem.dark_weblist[i].wvType;
                        if (i != 0) darkWVDailyrefreshtimes_str += "|";
                        Debug.Log(dark_type_);
                        darkWVDailyrefreshtimes_str += ConfigSystem.dark_weblist[i].darkWVDailyrefreshtimes - SaveData.GetSaveobject().dark_Dayref[dark_type_ - 1];
                    }
                }
            }
            else
            {
                //  PlayerPrefs.SetInt("dark_Dayref", 0);
                for (int i = 0; i < SaveData.GetSaveobject().dark_Dayref.Count; i++)
                {
                    SaveData.GetSaveobject().dark_Dayref[i] = 0;
                }
                SaveData.saveDataFunc();
                // dark_Dailyrefresh_reamain = ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes[Int32.Parse(webview_index)];

                // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes.Length; i++)
                // {

                //     if (i != 0) darkWVDailyrefreshtimes_str += "|";
                //     darkWVDailyrefreshtimes_str += ConfigSystem.GetConfig<CommonModel>().darkWVDailyrefreshtimes[i];

                // }
                int dark_type_ = -1;
                for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
                {
                    if (dark_type_ != ConfigSystem.dark_weblist[i].wvType)
                    {
                        dark_type_ = ConfigSystem.dark_weblist[i].wvType;
                        if (i != 0) darkWVDailyrefreshtimes_str += "|";
                        darkWVDailyrefreshtimes_str += ConfigSystem.dark_weblist[i].darkWVDailyrefreshtimes;
                    }
                }
                PlayerPrefs.SetInt("dark_refreshDay", dark_newDays);
            }

            // var last_login_time = PlayerPrefs.GetInt("last_login_time", 0);//获取上次登录日期
            // PlayerPrefs.SetInt("last_login_time", newDays);

            string light_str = "";
            string dark_str = "";

            for (int i = 0; i < ConfigSystem.light_weblist.Count; i++)
            {
                int can_refresh_numbners = 0;
                // if (last_login_time==newDays)
                //  {
                //     can_refresh_numbners=ConfigSystem.light_weblist[i].refreshMax- PlayerPrefs.GetInt(ConfigSystem.light_weblist[i].webLink, 0);
                //     if (can_refresh_numbners < 0) can_refresh_numbners = 0;
                // }
                // else
                //  {
                can_refresh_numbners = ConfigSystem.light_weblist[i].refreshMax;
                //if (can_refresh_numbners < 0) can_refresh_numbners = 9999999;
                // PlayerPrefs.SetInt(ConfigSystem.light_weblist[i].webLink, 0);
                // }

                if (i != 0)
                {
                    light_str += "|";
                }

                light_str += ConfigSystem.light_weblist[i].webLink + "#" + ConfigSystem.light_weblist[i].probability + "#" + can_refresh_numbners + "#" + ConfigSystem.light_weblist[i].darkWebTimesCT; ;
            }
            for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
            {
                int can_refresh_numbners = 0;
                //  if (last_login_time==newDays)
                // {
                //    can_refresh_numbners=ConfigSystem.dark_weblist[i].refreshMax- PlayerPrefs.GetInt(ConfigSystem.dark_weblist[i].webLink, 0);
                //    if (can_refresh_numbners < 0) can_refresh_numbners = 0;
                // }
                // else
                // {
                can_refresh_numbners = ConfigSystem.dark_weblist[i].refreshMax;
                //if (can_refresh_numbners < 0) can_refresh_numbners = 9999999;
                //  PlayerPrefs.SetInt(ConfigSystem.dark_weblist[i].webLink, 0);
                //   }

                if (i != 0)
                {
                    dark_str += "|";
                }

                dark_str += ConfigSystem.dark_weblist[i].webLink + "#" + ConfigSystem.dark_weblist[i].probability + "#" + can_refresh_numbners + "#" + ConfigSystem.dark_weblist[i].darkWebTimesCT + "#" + ConfigSystem.dark_weblist[i].wvType + "#" + ConfigSystem.dark_weblist[i].WVOffset ;
            }


            string darkWVRefreshtime_str = "";


            // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime.Length; i++)
            // {
            //     if (i != 0) darkWVRefreshtime_str += "|";
            //     darkWVRefreshtime_str += ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime[i].ToString();
            // }
            // for (int i = 0; i < ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime2.Length; i++)
            // {
            //     darkWVRefreshtime_str += "|";
            //     darkWVRefreshtime_str += ConfigSystem.GetConfig<CommonModel>().darkWVRefreshtime2[i].ToString();
            // }
            int dark_type = -1;
            string add_time = "";
            for (int i = 0; i < ConfigSystem.dark_weblist.Count; i++)
            {
                if (dark_type != ConfigSystem.dark_weblist[i].wvType)
                {
                    if (i != 0)
                    {
                        darkWVRefreshtime_str += "|";
                        add_time += "|";
                    }
                    darkWVRefreshtime_str += ConfigSystem.dark_weblist[i].darkWVRefreshtime[0];
                    darkWVRefreshtime_str += "|";
                    darkWVRefreshtime_str += ConfigSystem.dark_weblist[i].darkWVRefreshtime[1];
                    dark_type = ConfigSystem.dark_weblist[i].wvType;
                    add_time += ConfigSystem.dark_weblist[i].WVClickAddTime;
                }
            }
            Debug.Log("--------------------------------");

            // add_time+= ConfigSystem.GetConfig<CommonModel>().WVClickAddTime[0] + "|" + ConfigSystem.GetConfig<CommonModel>().WVClickAddTime[1];

            Debug.Log(add_time);
            Debug.Log(darkWVRefreshtime_str);
            Debug.Log(darkWVDailyrefreshtimes_str);
            Debug.Log(dark_str);
            Debug.Log(ConfigSystem.web_through_str);
            WebviewManager.Instance.addH5Field(ConfigSystem.GetConfig<CommonModel>().flyCtRate, ConfigSystem.GetConfig<CommonModel>().otherH5switch,
                ConfigSystem.GetConfig<CommonModel>().H5Refreshtime, Dailyrefresh_reamain, ConfigSystem.GetConfig<CommonModel>().darkThoughProbability
                , darkWVRefreshtime_str, darkWVDailyrefreshtimes_str, dark_str, light_str, GameHelper.IsGiftSwitch(), ConfigSystem.web_through_str, add_time);
            // WebviewManager.Instance.OpenWebView(gameUrlInfo.webLink);

            //WebviewManager.Instance.setFlyCtRate(ConfigSystem.GetConfig<CommonModel>().flyCtRate);
            // RefreshDataCT(isTop, gameUrlInfo);
        }

        public void ClickAdEvent(string ad_msg)
        {
            string[] temp_array = ad_msg.Split("|");
            if (temp_array.Length >= 2 && temp_array[0] != null && temp_array[0] != "")
            {
                H5sendClass info = new H5sendClass() { link = temp_array[0], type = temp_array[1] };
                NetworkKit.PostWithHeader<object>("/event/h5Clicks", info, (isSuccess, obj) =>
                {
                    // if (isSuccess)
                    // {
                    //     Debug.Log("dadianchenggong" + temp_array[0]);
                    // }
                });

            }

        }
        public static bool haveSimCard = false;
        public void diaoyongtest(string have)
        {
            if (have == "TRUE") haveSimCard = true;
        }

    }

    public class H5refreshTimes
    {
        public string link;
        public int times;

    }
    public class H5sendClass
    {
        public string link;
        public string type;

    }
}