//	public NvUIDialogBase showEquipmentStrengthenEnsureDlg( NvEquipmentStrengthenInfo info, NvUIDialogBase.OnEndModal callback)
//	{
//
//		if ( m_workingDialog != null )
//		{
//			if ( m_workingDialog is NvEquipmentStrengthenEnsureDialog )
//			{
//				return m_workingDialog;
//			}
//			return null;
//		}
//
//		NvUIDialogBase EquipStrengEnsureDlg = findDialog( "EquipmentStrengthenEnsureDialog" );
//		//Debug.Log( "#################################    EquipStrengEnsureDlg : " + EquipStrengEnsureDlg );
//		if ( EquipStrengEnsureDlg == null )
//		{
//			EquipStrengEnsureDlg = createDialog( "EquipStrengthenEnsureDialog",
//				"UI Prefabs/Prefabs/Dialogs/EquipmentUI/EquipStrengthenEnsureDialog" );
//		}
//		//Debug.Log( "#################################    EquipStrengEnsureDlg : " + EquipStrengEnsureDlg );
//		if ( EquipStrengEnsureDlg != null )
//		{
//			NvEquipmentStrengthenEnsureDialog equipStreEnsureDlg = EquipStrengEnsureDlg as NvEquipmentStrengthenEnsureDialog;
//			equipStreEnsureDlg.mLblTitle.text = info.equipName;
//			equipStreEnsureDlg.mImgIcon.spriteName = info.iconName;
//			equipStreEnsureDlg.mImgIcon.transform.localScale = info.iconScale;
//			if ( info.curLv < 10 )
//			{
//				equipStreEnsureDlg.mImgCurLv[1].transform.localScale = Vector3.zero;
//				equipStreEnsureDlg.mImgCurLv[0].setVisible ( true );
//				equipStreEnsureDlg.mImgCurLv[0].spriteName = "" + info.curLv;
//				equipStreEnsureDlg.mImgCurLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			else if ( info.curLv < 20 )
//			{
//				equipStreEnsureDlg.mImgCurLv[1].setVisible ( true );
//				equipStreEnsureDlg.mImgCurLv[1].spriteName = "1";
//				equipStreEnsureDlg.mImgCurLv[1].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//				equipStreEnsureDlg.mImgCurLv[0].setVisible ( true );
//				equipStreEnsureDlg.mImgCurLv[0].spriteName = "" +  ( info.curLv - 10 ) ;
//				equipStreEnsureDlg.mImgCurLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			if ( info.newLv < 10 )
//			{
//				equipStreEnsureDlg.mImgNewLv[1].transform.localScale = Vector3.zero;
//				equipStreEnsureDlg.mImgNewLv[0].setVisible ( true );
//				equipStreEnsureDlg.mImgNewLv[0].spriteName = "" + info.newLv;
//				equipStreEnsureDlg.mImgNewLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			else if ( info.newLv < 20 )
//			{
//				equipStreEnsureDlg.mImgNewLv[1].setVisible ( true );
//				equipStreEnsureDlg.mImgNewLv[1].spriteName = "1";
//				equipStreEnsureDlg.mImgNewLv[1].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//				equipStreEnsureDlg.mImgNewLv[0].setVisible ( true );
//				equipStreEnsureDlg.mImgNewLv[0].spriteName = "" + ( info.newLv - 10 ) ;
//				equipStreEnsureDlg.mImgNewLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//
//			for ( int i = 0; i < 4; i ++ )
//			{
//				equipStreEnsureDlg.mLblAttrName[i].text = "";
//				equipStreEnsureDlg.mLblCurAttrValue[i].text = "";
//				equipStreEnsureDlg.mLblNewAttrValue[i].text = "";
//				equipStreEnsureDlg.mImgSmallArrow[i].transform.localScale = Vector3.one;
//			}
//
//			for ( int i = 0; i < 4; i ++ )
//			{
//				if ( info.curEquipAttr.Count / 2 > i )
//				{
//					equipStreEnsureDlg.mLblAttrName[i].text = info.curEquipAttr[i*2];
//					equipStreEnsureDlg.mLblCurAttrValue[i].text = info.curEquipAttr[i*2+1];
//					equipStreEnsureDlg.mLblNewAttrValue[i].text = info.newEquipAttr[i*2+1];
//					equipStreEnsureDlg.mImgSmallArrow[i].transform.localScale = new Vector3 ( 21.0f, 11.0f, 0.0f );
//				}
//			}
//
//			equipStreEnsureDlg.mLblCoinName.text = info.coinName;
//			equipStreEnsureDlg.mLblCoinNum.text = "" + info.coinNum;
//
//			equipStreEnsureDlg.eventOnEndModal += HandleDlgeventOnEndModal;
//			equipStreEnsureDlg.doModal();
//			m_baffle.enabled = true;
//
//			if ( m_workingDialog != null )
//			{
//				m_workingDialog.closeDialog();
//			}
//			else
//			{
//				// disable dialog scene manager
//				foreach ( NvUIBaseSceneManager UISceneMgr in m_UISceneMgrs )
//				{
//					UISceneMgr.activate = false;
//				}
//			}
//
//			m_workingDialog = equipStreEnsureDlg;
//		}
//
//		if ( EquipStrengEnsureDlg != null && callback != null )
//		{
//			EquipStrengEnsureDlg.eventOnEndModal += callback;
//		}
//
//		return EquipStrengEnsureDlg;
//	}

//	public NvUIDialogBase showNinjutsuStrengthenEnsureDlg( NvNinjutsuStrengthenInfo info, NvUIDialogBase.OnEndModal callback)
//	{
//		if ( m_workingDialog != null )
//		{
//			if ( m_workingDialog is NvNinjutsuStrengthenEnsureDialog )
//			{
//				return m_workingDialog;
//			}
//			return null;
//		}
//
//		NvUIDialogBase NinjutsuStrengEnsureDlg = findDialog( "NinjutsuStrengthenEnsureDialog" );
//
//		if ( NinjutsuStrengEnsureDlg == null )
//		{
//			NinjutsuStrengEnsureDlg = createDialog( "NinjutsuStrengthenEnsureDialog",
//				"UI Prefabs/Prefabs/Dialogs/NinjutsuUI/NinjutsuStrengthenEnsureDialog" );
//		}
//
//		if ( NinjutsuStrengEnsureDlg != null )
//		{
//			NvNinjutsuStrengthenEnsureDialog ninjutsuStreEnsureDlg = NinjutsuStrengEnsureDlg as NvNinjutsuStrengthenEnsureDialog;
//			ninjutsuStreEnsureDlg.mLblTitle.text = info.craftName;
//			ninjutsuStreEnsureDlg.mImgIcon.spriteName = info.iconName;
//			ninjutsuStreEnsureDlg.mImgIcon.transform.localScale = info.iconScale;
//			if ( info.curLv < 10 )
//			{
//				ninjutsuStreEnsureDlg.mImgCurLv[1].transform.localScale = Vector3.zero;
//				ninjutsuStreEnsureDlg.mImgCurLv[0].setVisible ( true );
//				ninjutsuStreEnsureDlg.mImgCurLv[0].spriteName = "" + info.curLv;
//				ninjutsuStreEnsureDlg.mImgCurLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			else if ( info.curLv < 20 )
//			{
//				ninjutsuStreEnsureDlg.mImgCurLv[1].setVisible ( true );
//				ninjutsuStreEnsureDlg.mImgCurLv[1].spriteName = "1";
//				ninjutsuStreEnsureDlg.mImgCurLv[1].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//				ninjutsuStreEnsureDlg.mImgCurLv[0].setVisible ( true );
//				ninjutsuStreEnsureDlg.mImgCurLv[0].spriteName = "" +  ( info.curLv - 10 ) ;
//				ninjutsuStreEnsureDlg.mImgCurLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			if ( info.newLv < 10 )
//			{
//				ninjutsuStreEnsureDlg.mImgNewLv[1].transform.localScale = Vector3.zero;
//				ninjutsuStreEnsureDlg.mImgNewLv[0].setVisible ( true );
//				ninjutsuStreEnsureDlg.mImgNewLv[0].spriteName = "" + info.newLv;
//				ninjutsuStreEnsureDlg.mImgNewLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			else if ( info.newLv < 20 )
//			{
//				ninjutsuStreEnsureDlg.mImgNewLv[1].setVisible ( true );
//				ninjutsuStreEnsureDlg.mImgNewLv[1].spriteName = "1";
//				ninjutsuStreEnsureDlg.mImgNewLv[1].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//				ninjutsuStreEnsureDlg.mImgNewLv[0].setVisible ( true );
//				ninjutsuStreEnsureDlg.mImgNewLv[0].spriteName = "" + ( info.newLv - 10 ) ;
//				ninjutsuStreEnsureDlg.mImgNewLv[0].transform.localScale = new Vector3 ( 22.0f, 35.0f, 0.0f );
//			}
//			ninjutsuStreEnsureDlg.mLblDesc.text = info.description;
//			ninjutsuStreEnsureDlg.mLblCoinName.text = info.coinName;
//			ninjutsuStreEnsureDlg.mLblCoinNum.text = info.coinNum;
//
//			ninjutsuStreEnsureDlg.eventOnEndModal += HandleDlgeventOnEndModal;
//			ninjutsuStreEnsureDlg.doModal();
//			m_baffle.enabled = true;
//
//			if ( m_workingDialog != null )
//			{
//				m_workingDialog.closeDialog();
//			}
//			else
//			{
//				// disable dialog scene manager
//				foreach ( NvUIBaseSceneManager UISceneMgr in m_UISceneMgrs )
//				{
//					UISceneMgr.activate = false;
//				}
//			}
//
//			m_workingDialog = ninjutsuStreEnsureDlg;
//		}
//
//		if ( NinjutsuStrengEnsureDlg != null && callback != null )
//		{
//			NinjutsuStrengEnsureDlg.eventOnEndModal += callback;
//		}
//
//		return NinjutsuStrengEnsureDlg;
//	}

//	public NvUIDialogBase showItemSellDlg ( NvItemInfo info, NvUIDialogBase.OnEndModal callback )
//	{
//		if ( m_workingDialog != null )
//		{
//			if ( m_workingDialog is NvItemSellDialog)
//			{
//				return m_workingDialog;
//			}
//			return null;
//		}
//
//		NvUIDialogBase ItemSellDlg = findDialog( "ItemSellDialog" );
//
//		if ( ItemSellDlg == null )
//		{
//			ItemSellDlg = createDialog( "ItemSellDialog", "UI Prefabs/Prefabs/Dialogs/ItemUI/ItemSellDialog" );
//		}
//
//		if ( ItemSellDlg != null )
//		{
//			NvItemSellDialog itemSellDlg = ItemSellDlg as NvItemSellDialog;
//
//			itemSellDlg.mLblTitle.text = info.itemName;
//			itemSellDlg.mImgIcon.spriteName = info.iconName;
//			itemSellDlg.mImgIcon.transform.localScale = info.iconScale;
//			itemSellDlg.mItemMaxNum = info.itemMaxNum;
//			itemSellDlg.mItemPrice = info.itemPrice;
//			itemSellDlg.mLblCoinNum.text = "" + info.itemPrice;
//			itemSellDlg.mLblCoinName.text = info.coinName;
//
//			itemSellDlg.eventOnEndModal += HandleDlgeventOnEndModal;
//			itemSellDlg.doModal();
//			m_baffle.enabled = true;
//
//			if ( m_workingDialog != null )
//			{
//				m_workingDialog.closeDialog();
//			}
//			else
//			{
//				// disable dialog scene manager
//				foreach ( NvUIBaseSceneManager UISceneMgr in m_UISceneMgrs )
//				{
//					UISceneMgr.activate = false;
//				}
//			}
//
//			m_workingDialog = itemSellDlg;
//		}
//
//		if ( ItemSellDlg != null && callback != null )
//		{
//			ItemSellDlg.eventOnEndModal += callback;
//		}
//
//		return ItemSellDlg;
//	}

//	public NvUIDialogBase showEquipSellDlg ( NvItemInfo info, NvUIDialogBase.OnEndModal callback )
//	{
//		if ( m_workingDialog != null )
//		{
//			if ( m_workingDialog is NvEquipSellDialog )
//			{
//				return m_workingDialog;
//			}
//			return null;
//		}
//
//		NvUIDialogBase EquipSellDlg = findDialog( "EquipSellDialog" );
//
//		if ( EquipSellDlg == null )
//		{
//			EquipSellDlg = createDialog( "EquipSellDialog", "UI Prefabs/Prefabs/Dialogs/EquipmentUI/EquipSellDialog" );
//		}
//
//		if ( EquipSellDlg != null )
//		{
//			NvEquipSellDialog equipSellDlg = EquipSellDlg as NvEquipSellDialog;
//
//			equipSellDlg.mLblTitle.text = info.itemName;
//			equipSellDlg.mImgIcon.spriteName = info.iconName;
//			equipSellDlg.mImgIcon.transform.localScale = info.iconScale;
//			equipSellDlg.mItemPrice = info.itemPrice;
//			equipSellDlg.mLblCoinNum.text = "" + info.itemPrice;
//			equipSellDlg.mLblCoinName.text = info.coinName;
//
//			equipSellDlg.eventOnEndModal += HandleDlgeventOnEndModal;
//			equipSellDlg.doModal();
//			m_baffle.enabled = true;
//
//			if ( m_workingDialog != null )
//			{
//				m_workingDialog.closeDialog();
//			}
//			else
//			{
//				// disable dialog scene manager
//				foreach ( NvUIBaseSceneManager UISceneMgr in m_UISceneMgrs )
//				{
//					UISceneMgr.activate = false;
//				}
//			}
//
//			m_workingDialog = equipSellDlg;
//		}
//
//		if ( EquipSellDlg != null && callback != null )
//		{
//			EquipSellDlg.eventOnEndModal += callback;
//		}
//
//		return EquipSellDlg;
//	}

    public NvUIDialogBase showEquipSmithResultDlg(string equipIconRes,
                                                  List <string> equipBaseInfo, List <string> equipAttrInfo, NvUIDialogBase.OnEndModal callback)
    {
        if (m_workingDialog != null)
        {
//			if ( m_workingDialog is NvEquipSmithResultDialog )
//			{
//				return m_workingDialog;
//			}
            return(null);
        }

        NvUIDialogBase EquipSmithResultDlg = findDialog("EquipSmithResultDlg");

        if (EquipSmithResultDlg == null)
        {
            EquipSmithResultDlg = createDialog("EquipSmithResultDlg",
                                               "UI Prefabs/Prefabs/Dialogs/EquipmentUI/EquipSmithResultDialog");
        }

//		if ( EquipSmithResultDlg != null )
//		{
//			NvEquipSmithResultDialog equipSmithResultDlg = EquipSmithResultDlg as NvEquipSmithResultDialog;
//
//			equipSmithResultDlg.mItemIcon.spriteName = equipIconRes;
//			equipSmithResultDlg.mItemIcon.transform.localScale = new Vector3 ( 64.0f, 64.0f, 0.0f );
//
//			for( int i = 0; i < equipSmithResultDlg.mItemBaseInfo.Count; i ++ )
//			{
//				equipSmithResultDlg.mItemBaseInfo[i].text = equipBaseInfo[i];
//			}
//			for( int i = 0; i < equipSmithResultDlg.mItemAttrInfo.Count; i ++ )
//			{
//				if ( i < equipAttrInfo.Count )
//				{
//					equipSmithResultDlg.mItemAttrInfo[i].text = equipAttrInfo[i];
//				}
//				else
//				{
//					equipSmithResultDlg.mItemAttrInfo[i].text = "";
//				}
//			}
//
//			equipSmithResultDlg.eventOnEndModal += HandleDlgeventOnEndModal;
//			equipSmithResultDlg.doModal();
//			m_baffle.enabled = true;
//
//			if ( m_workingDialog != null )
//			{
//				m_workingDialog.closeDialog();
//			}
//			else
//			{
//				// disable dialog scene manager
//				foreach ( NvUIBaseSceneManager UISceneMgr in m_UISceneMgrs )
//				{
//					UISceneMgr.activate = false;
//				}
//			}
//
//			m_workingDialog = equipSmithResultDlg;
//		}

        if (EquipSmithResultDlg != null && callback != null)
        {
            EquipSmithResultDlg.eventOnEndModal += callback;
        }

        return(EquipSmithResultDlg);
    }
    public NvUIDialogBase showMessageBox(string msg, string title            = "",
                                         NvMessageBox.EMessageBoxStyle style = NvMessageBox.EMessageBoxStyle.eStyle_OkayOnly,
                                         NvUIDialogBase.OnEndModal callback  = null, bool closeIfOpened = false)
    {
        bool pendingMessagebox = false;

        if (m_workingDialog != null && m_workingDialog.isOpened)
        {
            if (!closeIfOpened)
            {
                return(null);
            }
            else
            {
                pendingMessagebox = true;
                m_workingDialog.endModal(-1);
            }
        }

        NvUIDialogBase msgbox = findDialog("MessageBox");

        if (msgbox == null)
        {
            msgbox = createDialog("MessageBox", "UI Prefabs/Prefabs/Dialogs/MessageBox");
        }

        if (msgbox != null)
        {
            NvMessageBox messagebox = msgbox as NvMessageBox;

            if (pendingMessagebox)
            {
                MsgBoxContext ctx = new MsgBoxContext();
                ctx.msgbox      = messagebox;
                ctx.title       = title;
                ctx.description = msg;
                ctx.style       = style;
                ctx.callback    = callback;

                StartCoroutine("OpenMessageBox", ctx);
            }
            else
            {
                messagebox.eventOnEndModal += HandleDlgeventOnEndModal;
                if (callback != null)
                {
                    messagebox.eventOnEndModal += callback;
                }

                messagebox.description = msg;
                messagebox.title       = title;
                messagebox.style       = style;
                messagebox.doModal();

                m_workingDialog  = messagebox;
                m_baffle.enabled = true;
            }
        }

        return(msgbox);
    }