public ItemIdGump(PlayerMobile player, Item item, bool success, bool overrideShowRarity, bool overrideShowWorldItemCount): base(200, 25)
        {
            if (player == null || item == null) return;
            if (item.Deleted) return;

            m_Player = player;
            m_Item = item;

            m_Success = success;

            m_ShowRarity = overrideShowRarity;
            m_ShowWorldItemCount = overrideShowWorldItemCount;
            
            Closable = true;
            Disposable = true;
            Dragable = true;
            Resizable = false;

            int worldItemCount = 0;

            bool showRarity = false;
            bool showWorldItemCount = false;

            bool conductWorldItemQuery = true;

            double itemIDSkill = m_Player.Skills[SkillName.ItemID].Value;

            Type itemType = m_Item.GetType();

            if ((success && itemIDSkill >= 110) || m_ShowRarity || m_Player.AccessLevel > AccessLevel.Player)
                showRarity = true;

            if ((success && itemIDSkill >= 120) || m_ShowWorldItemCount || m_Player.AccessLevel > AccessLevel.Player)
            {
                showWorldItemCount = true;

                if (m_Player.AccessLevel == AccessLevel.Player && itemType == m_Player.m_LastItemIdWorldItemCountSearchType && itemType != null)                
                {
                    if (DateTime.UtcNow < m_Player.m_LastItemIdWorldItemCountSearch + TimeSpan.FromSeconds(10))
                        conductWorldItemQuery = false;
                }               

                if (conductWorldItemQuery)
                {
                    foreach (Item worldItem in World.Items.Values)
                    {
                        if (worldItem.GetType() == itemType)
                            worldItemCount++;
                    }

                    m_Player.m_LastItemIdWorldItemCountSearchCount = worldItemCount;
                    m_Player.m_LastItemIdWorldItemCountSearchType = itemType;
                    m_Player.m_LastItemIdWorldItemCountSearch = DateTime.UtcNow;
                }

                else
                    worldItemCount = m_Player.m_LastItemIdWorldItemCountSearchCount;
            }

            string itemName = m_Item.Name;

            if (itemName == null || itemName == "")
            {
                itemName = "Item Details";

                m_Item.OnSingleClick(m_Player);
            }

            if (itemName != "")
                itemName = Utility.Capitalize(itemName);

            string typeText = Item.GetItemGroupTypeName(m_Item.ItemGroup);
            string rarityText = Item.GetItemRarityName(m_Item.ItemRarity);
            int rarityHue = Item.GetItemRarityTextHue(m_Item.ItemRarity);

            string totalCountText = Utility.CreateCurrencyString(worldItemCount);

            if (!showRarity)
                rarityText = "?";
     
            if (!showWorldItemCount)
                totalCountText = "?";

            m_ShowRarity = showRarity;
            m_ShowWorldItemCount = showWorldItemCount;

            int WhiteTextHue = 2655;

            AddPage(0);

            AddImage(135, 12, 103, 2401);
            AddImage(7, 12, 103, 2401);
            AddBackground(19, 21, 246, 78, 9270);

            AddButton(6, 98, 2094, 2095, 1, GumpButtonType.Reply, 0);
            AddLabel(2, 86, 149, "Guide");

            AddLabel(Utility.CenteredTextOffset(145, itemName), 4, 149, itemName);

            AddLabel(56, 39, WhiteTextHue, "Item Type");
            AddLabel(Utility.CenteredTextOffset(90, typeText), 59, 2599, typeText);

            AddLabel(160, 39, WhiteTextHue, "Item Rarity");
            AddLabel(Utility.CenteredTextOffset(197, rarityText), 59, rarityHue, rarityText);
           
            AddLabel(71, 92, WhiteTextHue, "Total in World:");
            AddLabel(171, 92, 149, totalCountText);            
        }