Bloom.Edit.WebThumbNailList.GetPageContaining C# (CSharp) Method

GetPageContaining() private method

Given a particular node (typically one the user right-clicked), determine whether it is clearly part of a particular page (inside a PageContainerClass div). If so, return the corresponding Page object. If not, return null.
private GetPageContaining ( GeckoNode clickNode ) : IPage
clickNode GeckoNode
return IPage
        internal IPage GetPageContaining(GeckoNode clickNode)
        {
            bool gotPageElt = false;
            for (var elt = clickNode as GeckoElement ?? clickNode.ParentElement; elt != null; elt = elt.ParentElement)
            {
                var classAttr = elt.Attributes["class"];
                if (classAttr != null)
                {
                    var className = " " + classAttr.NodeValue + " ";
                    if (className.Contains(" " + PageContainerClass + " "))
                    {
                        // Click is inside a page element: can succeed. But it's not this one.
                        gotPageElt = true;
                        continue;
                    }
                    if (className.Contains(" " + ClassForGridItem + " "))
                    {
                        if (!gotPageElt)
                            return null; // clicked somewhere in a grid, but not actually on the page: intended page may be ambiguous.
                        var id = elt.Attributes["id"].NodeValue;
                        IPage page;
                        _pageMap.TryGetValue(id, out page);
                        return page;
                    }
                }
            }
            return null;
        }