public override void Init()
    {
        base.Init();

        EventDelegate.Set(ToggleFreeJoin.onChange, OnToggleFreeJoin);

        Transform prefab = ListTf.GetChild(0);

        prefab.gameObject.SetActive(false);
        for (int i = 0; i < 9; i++)
        {
            Transform tf = Instantiate(prefab) as Transform;
            tf.parent        = ListTf;
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;
        }

        ListTf.GetComponent <UIGrid>().repositionNow = true;

        Transform Rprefab = RankTf.GetChild(0);

        Rprefab.gameObject.SetActive(false);
        for (int i = 0; i < 100; i++)
        {
            Transform tf = Instantiate(Rprefab) as Transform;
            tf.parent        = RankTf;
            tf.localPosition = Vector3.zero;
            tf.localScale    = Vector3.one;
        }

        RankTf.GetComponent <UIGrid>().repositionNow = true;

        GameObject markPrefab = MarkTf.GetChild(0).gameObject;

        ObjectPaging.CreatePagingPanel(MarkTf.parent.gameObject, MarkTf.gameObject, markPrefab
                                       , 5, 32, 32, 10, OnCallBackMark);//가라 522개

        Destroy(markPrefab);


        //무료
        string val = string.Format(_LowDataMgr.instance.GetStringCommon(232), SceneManager.instance.NumberToString(_LowDataMgr.instance.GetEtcTableValue <int>(EtcID.GuildCost2)));

        Popup [0].transform.FindChild("Make/BtnCreateGold/Btn_on/label").GetComponent <UILabel> ().text  = val;
        Popup [0].transform.FindChild("Make/BtnCreateGold/Btn_off/label").GetComponent <UILabel> ().text = val;

        bool create = NetData.instance.GetAsset(AssetType.Gold) < (ulong)_LowDataMgr.instance.GetEtcTableValue <int>(EtcID.GuildCost2) ? false: true;

        Popup[0].transform.FindChild("Make/BtnCreateGold/Btn_on").gameObject.SetActive(create);
        Popup[0].transform.FindChild("Make/BtnCreateGold/Btn_off").gameObject.SetActive(!create);


        EventDelegate.Set(Popup[0].transform.FindChild("Make/BtnCreateGold").GetComponent <UIEventTrigger>().onClick, delegate() {//길드 생성 버튼 클릭.
            ulong needValue = _LowDataMgr.instance.GetEtcTableValue <ulong>(EtcID.GuildCost2);
            if (NetData.instance.GetAsset(AssetType.Gold) < needValue)
            {
                SetClickPopup(443, null, null);
            }
            else if (string.IsNullOrEmpty(CreateName.value)) //길드 이름 확인
            {
                SetClickPopup(237, null, null);
            }
            else if (string.IsNullOrEmpty(CreateDesc.value))//선언 확인
            {
                SetClickPopup(238, null, null);
            }
            else if (IconID <= 0)
            {
                SetClickPopup(239, null, null);
            }
            else //모든란 입력했음.
            {
                //금칙어는 XXX로 나옴
                //string name = CreateName.value;
                //_LowDataMgr.instance.IsBanString(ref name);

                if (_LowDataMgr.instance.IsBanString(CreateName.value))
                {
                    uiMgr.AddPopup(141, 898, 117);
                    return;
                }

                string dec = CreateDesc.value;
                _LowDataMgr.instance.IsBanString(ref dec);
                string noti = CreateNoti.value;
                _LowDataMgr.instance.IsBanString(ref noti);

                //if (_LowDataMgr.instance.IsBanString(CreateName.value))
                //{
                //    uiMgr.AddPopup(141, 898, 117);
                //    return;
                //}
                //if (_LowDataMgr.instance.IsBanString(CreateDesc.value))
                //{
                //    uiMgr.AddPopup(141, 898, 117);
                //    return;
                //}
                //if (_LowDataMgr.instance.IsBanString(CreateNoti.value))
                //{
                //    uiMgr.AddPopup(141, 898, 117);
                //    return;
                //}

                SetClickPopup(236, SceneManager.instance.NumberToString(needValue), () => {                 //SetClickPopup(236, needValue.ToString("#,##"), () => {
                    NetworkClient.instance.SendPMsgGuildCreateNewC(IconID, CreateName.value, dec, 2, 2);
                    //IsCreateGuild = true;
                });
            }
        });
        //유료
        //string val2 = string.Format(_LowDataMgr.instance.GetStringCommon(231), _LowDataMgr.instance.GetEtcTableValue<int>(EtcID.GuildCost1).ToString("#,##"));
        string val2 = string.Format(_LowDataMgr.instance.GetStringCommon(231), SceneManager.instance.NumberToString(_LowDataMgr.instance.GetEtcTableValue <int>(EtcID.GuildCost1)));

        Popup[0].transform.FindChild("Make/BtnCreateCash/Btn_on/label").GetComponent <UILabel>().text  = val2;
        Popup[0].transform.FindChild("Make/BtnCreateCash/Btn_off/label").GetComponent <UILabel>().text = val2;


        bool create_ = NetData.instance.GetAsset(AssetType.Gold) < (ulong)_LowDataMgr.instance.GetEtcTableValue <int>(EtcID.GuildCost1) ? false : true;

        Popup[0].transform.FindChild("Make/BtnCreateCash/Btn_on").gameObject.SetActive(create_);
        Popup[0].transform.FindChild("Make/BtnCreateCash/Btn_off").gameObject.SetActive(!create_);



        EventDelegate.Set(Popup[0].transform.FindChild("Make/BtnCreateCash").GetComponent <UIEventTrigger>().onClick, delegate() {//길드 생성 버튼 클릭.
            ulong needValue = _LowDataMgr.instance.GetEtcTableValue <ulong>(EtcID.GuildCost1);
            if (NetData.instance.GetAsset(AssetType.Cash) < needValue)
            {
                SetClickPopup(376, null, null);
            }
            else if (System.Text.ASCIIEncoding.Unicode.GetByteCount(CreateName.value) > 24)  //길드이름 글자수제한
            {
            }
            else if (string.IsNullOrEmpty(CreateName.value))//길드 이름 확인
            {
                SetClickPopup(237, null, null);
            }
            else if (string.IsNullOrEmpty(CreateDesc.value))//선언 확인
            {
                SetClickPopup(238, null, null);
            }
            else if (IconID <= 0)
            {
                SetClickPopup(239, null, null);
            }

            else //모든란 입력했음.
            {
                //금칙어
                //string name = CreateName.value;
                //_LowDataMgr.instance.IsBanString(ref name);

                if (_LowDataMgr.instance.IsBanString(CreateName.value))
                {
                    uiMgr.AddPopup(141, 898, 117);
                    return;
                }
                string dec = CreateDesc.value;
                _LowDataMgr.instance.IsBanString(ref dec);
                string noti = CreateNoti.value;
                _LowDataMgr.instance.IsBanString(ref noti);
                //if (_LowDataMgr.instance.IsBanString(CreateName.value))
                //{
                //    uiMgr.AddPopup(141, 898, 117);
                //    return;
                //}
                //if (_LowDataMgr.instance.IsBanString(CreateDesc.value))
                //{
                //    uiMgr.AddPopup(141, 898, 117);
                //    return;
                //}
                //if (_LowDataMgr.instance.IsBanString(CreateNoti.value))
                //{
                //    uiMgr.AddPopup(141, 898, 117);
                //    return;
                //}

                SetClickPopup(235, SceneManager.instance.NumberToString(needValue), () => {                 //SetClickPopup(235, needValue.ToString("#,##"), ()=> {
                    NetworkClient.instance.SendPMsgGuildCreateNewC(IconID, CreateName.value, dec, 2, 1);
                    //IsCreateGuild = true;
                });
            }
        });

        //다음버튼 ( 휘장선택후 다시 생성화면으로 넘어감)
        EventDelegate.Set(Popup[0].transform.FindChild("Select/BtnCreate").GetComponent <UIEventTrigger>().onClick, delegate() {
            if (!CheckLevel)
            {
                SetClickPopup(945, _LowDataMgr.instance.GetEtcTableValue <string>(EtcID.GuildCondition), null);
            }
            else
            {
                //CreateGuild();
                if (0 < IconID)
                {
                    CreateGuild();
                }
                else//길드 마크를 선택하지 않음.
                {
                    SetClickPopup(239, null, null);
                }
            }
        });

        //휘장마크 선택팝업 끄기
        EventDelegate.Set(Popup[0].transform.FindChild("BtnClose").GetComponent <UIEventTrigger>().onClick, () => {
            ActivePopups(99);
            IconID = 0;
        });

        //메인팝업
        EventDelegate.Set(Popup[1].transform.FindChild("BtnClose").GetComponent <UIEventTrigger>().onClick, () => {
            ActivePopups(99);
            uiMgr.SetTopMenuTitleName(215);
        });

        //메세지 팝업
        EventDelegate.Set(Popup[2].transform.FindChild("BtnCancel").GetComponent <UIEventTrigger>().onClick, () => {
            Popup[2].SetActive(false);
        });

        //길드 생성 버튼
        transform.FindChild("BtnCreate/Btn_on/bg").GetComponent <UISprite>().spriteName = CheckLevel ? "Btn_Blue02" : "Btn_Blue02Dis";
        EventDelegate.Set(transform.FindChild("BtnCreate").GetComponent <UIEventTrigger>().onClick, () => {
            if (!CheckLevel)
            {
                SetClickPopup(945, _LowDataMgr.instance.GetEtcTableValue <string>(EtcID.GuildCondition), null);
                return;
            }

            //던에따라..ㅇㄹㅇㄹ
            bool createCash  = NetData.instance.GetAsset(AssetType.Cash) >= _LowDataMgr.instance.GetEtcTableValue <ulong>(EtcID.GuildCost1);
            bool createMoney = NetData.instance.GetAsset(AssetType.Gold) >= _LowDataMgr.instance.GetEtcTableValue <ulong>(EtcID.GuildCost2);

            Popup[0].transform.FindChild("Make/BtnCreateCash/Btn_on").gameObject.SetActive(createCash);
            Popup[0].transform.FindChild("Make/BtnCreateCash/Btn_off").gameObject.SetActive(!createCash);

            Popup[0].transform.FindChild("Make/BtnCreateGold/Btn_on").gameObject.SetActive(createMoney);
            Popup[0].transform.FindChild("Make/BtnCreateGold/Btn_off").gameObject.SetActive(!createMoney);

            ActivePopups(0);

            //여기서 생성화면으로 ..
            Popup[0].transform.FindChild("Select").gameObject.SetActive(false);
            Popup[0].transform.FindChild("Make").gameObject.SetActive(true);

            CreateName.value = CreateName.label.text = "";
            CreateDesc.value = CreateDesc.label.text = "";
            CreateNoti.value = CreateNoti.label.text = "";

            Popup[0].transform.FindChild("Make/Txt_master").GetComponent <UILabel>().text = NetData.instance.GetUserInfo()._charName;//내 캐릭이 길드장이 됨.


            IconID = 0;
            Popup[0].transform.FindChild("Make/Guildmark/icon").GetComponent <UISprite>().spriteName = "";
            UIEventTrigger etri = Popup[0].transform.FindChild("Make/Guildmark/icon").GetComponent <UIEventTrigger>();
            EventDelegate.Set(etri.onClick, delegate()
            {
                for (int i = 0; i < MarkTf.childCount; i++)
                {
                    GameObject sel = MarkTf.GetChild(i).FindChild("Cover").gameObject;
                    sel.SetActive(false);
                }

                //휘장선택창
                Popup[0].transform.FindChild("Select").gameObject.SetActive(true);
                Popup[0].transform.FindChild("Make").gameObject.SetActive(false);
            });
        });

        //검색
        EventDelegate.Set(transform.FindChild("Search/Btn_search").GetComponent <UIEventTrigger>().onClick, () => {
            Debug.Log("SearchGuild Name = " + SearchGuild.value);
            RecommendList.Clear();
            NetworkClient.instance.SendPMsgGuildSearchGuildC(SearchGuild.value);
        });

        //다시 재검색
        EventDelegate.Set(transform.FindChild("Search/Btn_reset").GetComponent <UIEventTrigger>().onClick, () => {
            for (int j = 0; j < ListTf.childCount; j++)
            {
                ListTf.GetChild(j).transform.FindChild("Cover").gameObject.SetActive(false);
            }

            if (TabObj[1].activeSelf)//추천길드 리스트
            {
                NetworkClient.instance.SendPMsgGuildRecommendListC();
            }
        });

        SearchGuild.label.text = SearchGuild.value = "";
        NotFoundGuildName.text = "";
        CreateName.value       = CreateName.label.text = "";
        CreateDesc.value       = CreateDesc.label.text = "";
        CreateNoti.value       = CreateNoti.label.text = "";

        ActivePopups(99); //전부끄기

        if (CheckLevel)   //레벨이 부족할 경우 무시.(신청한것이 없을 테니까)
        {
            NetworkClient.instance.SendPMsgGuildQueryGuildListC();
        }

        UITabGroup tabGroup = transform.FindChild("TabBtnList").GetComponent <UITabGroup>();

        tabGroup.Initialize(delegate(int arr) {
            for (int i = 0; i < TabObj.Length; i++)
            {
                TabObj[i].SetActive(i == arr);
            }

            if (arr == 0)//랭킹
            {
                RankingList.Clear();
                NetworkClient.instance.SendPMsgRankGuildQueryC((int)Sw.RANK_TYPE.RANK_TYPE_GUILD_LEVEL);
            }
            else if (arr == 1)//길드 리스트
            {
                NetworkClient.instance.SendPMsgGuildRecommendListC();
            }
        });
    }