using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using GCGame;

public class ChangeNameBox : MonoBehaviour {

    public InputField inputName;
    public Button ConfirmBtn;
    public Button CancelBtn;

    public static ulong ItemGUID = 0;

    public  void OnConfirmBtnClick()
    {
        //判断输入的名字
        if (string.IsNullOrEmpty(inputName.text))
        {
            //请输入人物名称
            MessageBoxLogic.OpenOKBox(1281, 1000);
            return;
        }

        string strCurName = "";
        // 过滤掉 0 非法字符
        foreach (char curChar in inputName.text)
        {
            if ((int)curChar != 0)
            {
                strCurName += curChar;
            }
        }

        if (string.IsNullOrEmpty(strCurName))
        {
            //请输入人物名称
            MessageBoxLogic.OpenOKBox(1281, 1000);
            return;
        }

        int curCharNum = 0;     // 英文算一个,中文算两个 
        foreach (char curChar in strCurName)
        {
            if ((int)curChar >= 128)
            {

                curCharNum += 2;
            }
            else if ((int)curChar >= 65 && (int)curChar <= 90)
            {
                curCharNum += 2;
            }
            else
            {
                curCharNum++;
            }
           // curCharNum += 2;

            if (char.IsWhiteSpace(curChar))
            {
                //名字不能包含空格
                MessageBoxLogic.OpenOKBox(1280, 1000);
                return;
            }
        }
        if (curCharNum > 12)
        {
            // 名字过长
            MessageBoxLogic.OpenOKBox(1279, 1000);
            return;
        }

        if (inputName.text.Contains("*"))
        {
            MessageBoxLogic.OpenOKBox(1278, 1000);
            return;
        }

        if (inputName.text.Contains("*"))
        {
            MessageBoxLogic.OpenOKBox(1278, 1000);
            return;
        }

        if (null == Utils.GetStrFilter(strCurName, (int)Games.GlobeDefine.GameDefine_Globe.STRFILTER_TYPE.STRFILTER_NAME))
        {
            //发协议
            CG_REQ_CHANGENAME reqChange = (CG_REQ_CHANGENAME)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_CHANGENAME);
            reqChange.SetNametype(1);
            reqChange.SetItemguid(ItemGUID);
            reqChange.SetChangename(inputName.text);

            reqChange.SendPacket();

            //RoleViewLogic.Instance().UpdateAttrRightView();
            OnCancelBtnClick();
        }
        else
        {
            // 包含非法字符
            MessageBoxLogic.OpenOKBox(1278, 1000);
        }
    }

    public void OnCancelBtnClick()
    {
        //关闭当前窗口
        UIManager.CloseUI(UIInfo.ChangeNameBox);
    }


}