public virtual void CloseBuyPanel()
        {
            buyPanelIndex = -1;
            if (!(buyPanel != null))
            {
                return;
            }
            GameObject gameObject = null;

            try
            {
                gameObject = Scroller.GetElementAtIndex(buyPanel.ElementIndex + IndexOffset);
            }
            catch (Exception)
            {
            }
            if (gameObject != null)
            {
                LayoutElement component = gameObject.transform.parent.gameObject.GetComponent <LayoutElement>();
                if (component != null)
                {
                    component.preferredHeight = gameObject.GetComponent <LayoutElement>().preferredHeight;
                }
            }
            buyPanel.ClosePanel();
            buyPanel = null;
        }
        public virtual void ShowShopItemPanel(int scrollIndex, int rowIndex, bool isMemberUnlocked, bool isRecentlyPurchased)
        {
            int             index      = scrollIndex * CatalogShopItemsPerRow + (rowIndex - 1);
            CatalogItemData itemData   = filteredItems[index];
            int             arrowIndex = rowIndex - 1;

            try
            {
                GameObject elementAtIndex = Scroller.GetElementAtIndex(scrollIndex + IndexOffset);
                if (elementAtIndex != null)
                {
                    CatalogShopRowItem component = elementAtIndex.GetComponent <CatalogShopRowItem>();
                    if (component != null)
                    {
                        int count = component.GetShopItems().Count;
                        if (count == 1)
                        {
                            arrowIndex = 1;
                        }
                        if (count == 2)
                        {
                            arrowIndex = CatalogShopItemsPerRow + rowIndex - 1;
                        }
                        CatalogShopItem catalogShopItem = component.GetShopItems()[rowIndex - 1];
                        catalogShopItem.AddListeners();
                    }
                }
            }
            catch (Exception)
            {
            }
            selectedItem = itemData;
            bool flag = false;

            if (buyPanel != null)
            {
                if (buyPanel.ElementIndex == scrollIndex)
                {
                    buyPanel.SetPanel(itemData, scrollIndex, arrowIndex, isMemberUnlocked, isRecentlyPurchased);
                    flag = true;
                }
                else
                {
                    CloseBuyPanel();
                }
            }
            if (flag)
            {
                return;
            }
            GameObject elementAtIndex2 = Scroller.GetElementAtIndex(scrollIndex + IndexOffset);

            if (elementAtIndex2 != null)
            {
                LayoutElement component2 = elementAtIndex2.transform.parent.gameObject.GetComponent <LayoutElement>();
                if (component2 != null)
                {
                    GameObject gameObject = UnityEngine.Object.Instantiate(ClothingPurchase);
                    DefaultValuesPooledLayoutElement component3 = gameObject.GetComponent <DefaultValuesPooledLayoutElement>();
                    component2.preferredHeight = component3.DefaultHeight + elementAtIndex2.GetComponent <LayoutElement>().preferredHeight;
                    gameObject.transform.SetParent(elementAtIndex2.transform, worldPositionStays: false);
                    buyPanel      = gameObject.GetComponent <CatalogShopBuyPanelController>();
                    buyPanelIndex = scrollIndex;
                    buyPanel.SetPanel(itemData, scrollIndex, arrowIndex, isMemberUnlocked, isRecentlyPurchased);
                    CoroutineRunner.Start(ScrollToElement(scrollIndex + IndexOffset), this, "ScrollToElement");
                }
            }
        }