private void ModWrap(IActivateNavItem lnk)
        {
            if (!String.IsNullOrEmpty(this.CSSSelected))
            {
                lnk.CSSSelected = this.CSSSelected;
            }

            if ((SiteData.IsFilenameCurrentPage(lnk.NavigateUrl) || AreFilenamesSame(lnk.NavigateUrl, ParentPageNav.FileName)) &&
                !String.IsNullOrEmpty(lnk.CSSSelected))
            {
                lnk.IsSelected = true;
            }

            if (GetChildren(lnk.ContentID).Any() && !String.IsNullOrEmpty(lnk.CssClassHasChild))
            {
                if (!String.IsNullOrEmpty(lnk.CssClassNormal))
                {
                    lnk.CssClassNormal = lnk.CssClassNormal + " " + lnk.CssClassHasChild;
                }
                else
                {
                    lnk.CssClassNormal = lnk.CssClassHasChild;
                }
            }
        }
Example #2
0
        protected virtual void LoadChildren(HtmlTextWriter output, Guid rootContentID, string sItemCSS, int iParent, int iLevel)
        {
            List <SiteNav> lstNav = GetChildren(rootContentID);
            int            indent = output.Indent;

            output.Indent = indent + 1;

            string sThis2CSS = sItemCSS;

            if (lstNav != null && lstNav.Any())
            {
                output.WriteLine();
                output.WriteLine("<ul id=\"listitem" + iParent.ToString() + "-childlist\" class=\"childlist childlevel" + iLevel + " " + this.CSSULClassLower + "\">");
                int indent2 = output.Indent + 1;
                foreach (SiteNav c2 in lstNav)
                {
                    output.Indent = indent2;
                    List <SiteNav> cc = GetChildren(c2.Root_ContentID);

                    if (this.MultiLevel)
                    {
                        string sChild = " ";
                        if (cc != null && cc.Any())
                        {
                            sChild = " level" + iLevel + "-haschildren " + this.CSSHasChildren + " ";
                        }
                        sThis2CSS = " level" + iLevel + " " + sItemCSS + sChild;
                    }
                    else
                    {
                        sThis2CSS = sItemCSS;
                    }

                    if (SiteData.IsFilenameCurrentPage(c2.FileName) || AreFilenamesSame(c2.FileName, this.ParentFileName))
                    {
                        sThis2CSS = sThis2CSS + " " + this.CSSSelected;
                    }
                    sThis2CSS = (sThis2CSS + " child-nav").Replace("   ", " ").Replace("  ", " ").Trim();

                    iItemNumber++;
                    output.WriteLine("<li id=\"listitem" + iItemNumber.ToString() + "\" class=\"" + sThis2CSS + "\"><a href=\"" + c2.FileName + "\">" + c2.NavMenuText + "</a>");
                    int indent3 = output.Indent;
                    if (cc != null && cc.Any())
                    {
                        LoadChildren(output, c2.Root_ContentID, sItemCSS, iItemNumber, iLevel + 1);
                    }
                    output.Indent = indent3;
                    output.Write("</li>");

                    output.WriteLine();
                }
                output.Indent--;
                output.WriteLine("</ul> ");
            }

            output.Indent = indent;
        }
        protected virtual StringBuilder LoadChildren(StringBuilder output, Guid rootContentID, string sItemCSS, int iParent, int iLevel)
        {
            List <SiteNav> lstNav = GetChildren(rootContentID);

            string sThis2CSS = sItemCSS;

            if (lstNav != null && lstNav.Any())
            {
                output.AppendLine();
                output.AppendLine("<ul id=\"listitem" + iParent.ToString() + "-childlist\" class=\"childlist childlevel" + iLevel + " " + this.CssULClassLower + "\">");

                foreach (SiteNav c2 in lstNav)
                {
                    List <SiteNav> cc = GetChildren(c2.Root_ContentID);

                    if (this.MultiLevel)
                    {
                        string sChild = " ";
                        if (cc != null && cc.Any())
                        {
                            sChild = " level" + iLevel + "-haschildren " + this.CssHasChildren + " ";
                        }
                        sThis2CSS = " level" + iLevel + " " + sItemCSS + sChild;
                    }
                    else
                    {
                        sThis2CSS = sItemCSS;
                    }

                    if (SiteData.IsFilenameCurrentPage(c2.FileName) ||
                        ControlUtilities.AreFilenamesSame(c2.FileName, this.ParentFileName))
                    {
                        sThis2CSS = sThis2CSS + " " + this.CssSelected;
                    }
                    sThis2CSS = (sThis2CSS + " child-nav").Replace("   ", " ").Replace("  ", " ").Trim();

                    iItemNumber++;
                    output.AppendLine("<li id=\"listitem" + iItemNumber.ToString() + "\" class=\"" + sThis2CSS + "\"><a href=\"" + c2.FileName + "\">" + c2.NavMenuText + "</a>");

                    if (cc != null && cc.Any())
                    {
                        LoadChildren(output, c2.Root_ContentID, sItemCSS, iItemNumber, iLevel + 1);
                    }

                    output.Append("</li>");

                    output.AppendLine();
                }

                output.AppendLine("</ul> ");
            }

            return(output);
        }
Example #4
0
        public override string ToHtmlString()
        {
            LoadData();
            TweakData();

            string sItemCss = String.Empty;

            StringBuilder output = new StringBuilder();

            if (!String.IsNullOrEmpty(this.CssClass))
            {
                output.AppendLine("<ul id=\"" + this.ElementId + "\" class=\"" + this.CssClass + "\">");
            }
            else
            {
                output.AppendLine("<ul id=\"" + this.ElementId + "\" >");
            }

            if (this.NavigationData != null && this.NavigationData.Any())
            {
                foreach (var n in this.NavigationData)
                {
                    if (SiteData.IsFilenameCurrentPage(n.FileName) ||
                        (n.NavOrder == 0 && SiteData.IsCurrentLikelyHomePage) ||
                        ControlUtilities.AreFilenamesSame(n.FileName, this.CmsPage.ThePage.FileName))
                    {
                        sItemCss = String.Format(" {0} {1} ", this.CssItem, this.CssSelected).Trim();
                    }
                    else
                    {
                        sItemCss = String.Format(" {0} ", this.CssItem).Trim();
                    }

                    if (!String.IsNullOrEmpty(sItemCss))
                    {
                        output.Append("<li class=\"" + sItemCss + "\">");
                    }
                    else
                    {
                        output.Append("<li>");
                    }

                    output.Append(" <a href=\"" + n.FileName + "\">" + n.NavMenuText + "</a> </li>" + Environment.NewLine);
                }
            }

            output.AppendLine("</ul>");

            return(output.ToString());
        }
Example #5
0
        protected void InitList()
        {
            output   = new StringBuilder();
            sItemCss = String.Empty;

            if (!String.IsNullOrEmpty(this.CssClass))
            {
                output.AppendLine("<ul id=\"" + this.ElementId + "\" class=\"" + this.CssClass + "\">");
            }
            else
            {
                output.AppendLine("<ul id=\"" + this.ElementId + "\" >");
            }

            if (this.NavigationData != null && this.NavigationData.Any())
            {
                foreach (var n in this.NavigationData.OrderBy(x => x.NavOrder).Where(x => x.Parent_ContentID == null))
                {
                    if (SiteData.IsFilenameCurrentPage(n.FileName) ||
                        (n.NavOrder == 0 && SiteData.IsCurrentLikelyHomePage) ||
                        ControlUtilities.AreFilenamesSame(n.FileName, this.CmsPage.ThePage.FileName))
                    {
                        sItemCss = String.Format(" {0} {1} ", this.CssItem, this.CssSelected).Trim();
                    }
                    else
                    {
                        sItemCss = String.Format(" {0} ", this.CssItem).Trim();
                    }

                    if (!String.IsNullOrEmpty(sItemCss))
                    {
                        output.Append("<li class=\"" + sItemCss + "\">");
                    }
                    else
                    {
                        output.Append("<li>");
                    }

                    output.Append(" <a href=\"" + n.FileName + "\">" + n.NavMenuText + "</a> ");
                    LoadChildLevels(n.Root_ContentID);
                    output.Append(" </li>" + Environment.NewLine);
                }
            }

            output.AppendLine("</ul>");
        }
        protected override void RenderContents(HtmlTextWriter output)
        {
            int indent = output.Indent;

            SiteNav pageNav = GetParentPage();
            string  sParent = pageNav.FileName.ToLower();

            List <SiteNav> lstNav = navHelper.GetTopNavigation(SiteData.CurrentSiteID, !SecurityData.IsAuthEditor);

            lstNav.RemoveAll(x => x.ShowInSiteNav == false);
            lstNav.ToList().ForEach(q => IdentifyLinkAsInactive(q));

            output.Indent = indent + 3;
            output.WriteLine();

            string sCSS = "";

            if (!String.IsNullOrEmpty(CssClass))
            {
                sCSS = " class=\"" + CssClass + "\" ";
            }

            output.WriteLine("<ul" + sCSS + " id=\"" + this.HtmlClientID + "\">");
            output.Indent++;

            foreach (SiteNav c in lstNav)
            {
                if (SiteData.IsFilenameCurrentPage(c.FileName) || AreFilenamesSame(c.FileName, sParent))
                {
                    output.WriteLine("<li class=\"" + CSSSelected + "\"><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a></li> ");
                }
                else
                {
                    output.WriteLine("<li><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a></li> ");
                }
            }

            output.Indent--;
            output.WriteLine("</ul>");

            output.Indent = indent;
        }
Example #7
0
        public override string GetHtml()
        {
            List <SiteNav> lstNav  = new List <SiteNav>();
            StringBuilder  sb      = new StringBuilder();
            SiteNav        pageNav = this.ContentPage.GetSiteNav();
            string         sParent = pageNav.FileName.ToLower();

            using (ISiteNavHelper navHelper = SiteNavFactory.GetSiteNavHelper()) {
                if (SiteData.CurretSiteExists && SiteData.CurrentSite.Blog_Root_ContentID.HasValue &&
                    pageNav.ContentType == ContentPageType.PageType.BlogEntry)
                {
                    lstNav = navHelper.GetPageCrumbNavigation(SiteData.CurrentSiteID, SiteData.CurrentSite.Blog_Root_ContentID.Value, !SecurityData.IsAuthEditor);

                    if (lstNav != null && lstNav.Any())
                    {
                        pageNav.NavOrder = lstNav.Max(x => x.NavOrder) + 100;
                        lstNav.Add(pageNav);
                    }
                }
                else
                {
                    lstNav = navHelper.GetPageCrumbNavigation(SiteData.CurrentSiteID, pageNav.Root_ContentID, !SecurityData.IsAuthEditor);
                }
                lstNav.RemoveAll(x => x.ShowInSiteNav == false && x.ContentType == ContentPageType.PageType.ContentEntry);
            }

            lstNav.ForEach(q => ControlUtilities.IdentifyLinkAsInactive(q));

            string sCSS = String.Empty;

            if (!String.IsNullOrEmpty(this.CssClass))
            {
                sCSS = " class=\"" + this.CssClass + "\" ";
            }

            string sSelCSS = String.Format("{0} {1}", this.CssSelected, this.CssWrapper).Trim();

            string sWrapCSS = String.Empty;

            if (!String.IsNullOrEmpty(this.CssWrapper))
            {
                sWrapCSS = " class=\"" + this.CssWrapper + "\" ";
            }

            if (this.DisplayAsList)
            {
                sb.AppendLine("<ul" + sCSS + " id=\"" + this.ElementId + "\">");
                foreach (SiteNav c in lstNav)
                {
                    if (SiteData.IsFilenameCurrentPage(c.FileName) || ControlUtilities.AreFilenamesSame(c.FileName, sParent))
                    {
                        sb.AppendLine("<li class=\"" + sSelCSS + "\">" + c.NavMenuText + "</li> ");
                    }
                    else
                    {
                        sb.AppendLine("<li" + sWrapCSS + "><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a></li> ");
                    }
                }
                sb.AppendLine("</ul>");
            }
            else
            {
                string sDivider = String.Format(" {0} ", this.TextDivider);
                int    iCtr     = 1;
                int    iMax     = lstNav.Count;
                sb.AppendLine("<div" + sCSS + " id=\"" + this.ElementId + "\">");
                foreach (SiteNav c in lstNav)
                {
                    if (SiteData.IsFilenameCurrentPage(c.FileName) || ControlUtilities.AreFilenamesSame(c.FileName, sParent))
                    {
                        sb.AppendLine("<span class=\"" + sSelCSS + "\">" + c.NavMenuText + " " + sDivider + "</span> ");
                    }
                    else
                    {
                        sb.AppendLine("<span" + sWrapCSS + "><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a> " + sDivider + "</span> ");
                    }
                    iCtr++;

                    if (iCtr == iMax)
                    {
                        sDivider = String.Empty;
                    }
                }
                sb.AppendLine("</div>");
            }

            return(sb.ToString());
        }
Example #8
0
        protected virtual void WriteTopLevel(HtmlTextWriter output)
        {
            int indent = output.Indent;

            output.Indent = indent + 2;

            List <SiteNav> lstNav        = GetTopNav();
            SiteNav        parentPageNav = GetParentPage();
            List <SiteNav> lstNavTree    = GetPageNavTree().OrderByDescending(x => x.NavOrder).ToList();

            this.ParentFileName = parentPageNav.FileName.ToLowerInvariant();

            if (lstNav != null && lstNav.Any())
            {
                output.WriteLine();
                WriteListPrefix(output);

                int indent2 = output.Indent + 1;

                string sItemCSS = "";
                if (!String.IsNullOrEmpty(CSSItem))
                {
                    sItemCSS = String.Format(" {0} ", this.CSSItem);
                }

                string sThis1CSS = sItemCSS;

                foreach (SiteNav c1 in lstNav)
                {
                    output.Indent = indent2;
                    List <SiteNav> cc = GetChildren(c1.Root_ContentID);

                    string sChild = " ";
                    if (this.MultiLevel)
                    {
                        if (cc != null && cc.Any())
                        {
                            sChild = " level1-haschildren " + this.CSSHasChildren + " ";
                        }
                        sThis1CSS = " level1 " + sItemCSS + sChild;
                    }
                    else
                    {
                        sThis1CSS = sItemCSS;
                    }
                    if (SiteData.IsFilenameCurrentPage(c1.FileName) || (IsContained(lstNavTree, c1.Root_ContentID) != null) || AreFilenamesSame(c1.FileName, this.ParentFileName))
                    {
                        sThis1CSS = sThis1CSS + " " + this.CSSSelected;
                    }
                    if (lstNav.Where(x => x.NavOrder < 0).Count() > 0)
                    {
                        if (c1.NavOrder < 0)
                        {
                            sThis1CSS = sThis1CSS + " parent-nav";
                        }
                        else
                        {
                            sThis1CSS = sThis1CSS + " child-nav";
                        }
                    }
                    sThis1CSS = sThis1CSS.Replace("   ", " ").Replace("  ", " ").Trim();

                    iItemNumber++;
                    output.WriteLine("<li id=\"listitem" + iItemNumber.ToString() + "\" class=\"" + sThis1CSS + "\"><a href=\"" + c1.FileName + "\">" + c1.NavMenuText + "</a>");

                    int indent3 = output.Indent;
                    if (this.MultiLevel && cc != null && cc.Any())
                    {
                        LoadChildren(output, c1.Root_ContentID, sItemCSS, iItemNumber, 2);
                    }
                    output.Indent = indent3;
                    output.WriteLine("</li>");
                    output.WriteLine();
                }
                WriteListSuffix(output);
            }
            else
            {
                output.WriteLine("<span style=\"display: none;\" id=\"" + this.ClientID + "\"></span>");
            }

            output.Indent = indent;
        }
Example #9
0
        protected override void RenderContents(HtmlTextWriter output)
        {
            int indent = output.Indent;

            List <IContentMetaInfo> lstNav = GetMetaInfo();

            output.Indent = indent + 3;
            output.WriteLine();

            if (lstNav != null && lstNav.Any() && !String.IsNullOrEmpty(this.MetaDataTitle))
            {
                output.WriteLine("<" + this.HeadWrapTag.ToString().ToLower() + " class=\"meta-caption\">" + this.MetaDataTitle + "</" + this.HeadWrapTag.ToString().ToLower() + ">\r\n");
            }

            string sCSS = String.Empty;

            if (!String.IsNullOrEmpty(this.CssClass))
            {
                sCSS = " class=\"" + this.CssClass + "\" ";
            }

            string sItemCSS = String.Empty;

            if (!String.IsNullOrEmpty(this.CSSItem))
            {
                sItemCSS = String.Format(" {0} ", this.CSSItem);
            }

            output.WriteLine("<ul" + sCSS + " id=\"" + this.ClientID + "\"> ");
            output.Indent++;

            int contentCount = 0;

            if (this.ContentType == MetaDataType.DateMonth)
            {
                contentCount = navHelper.GetSitePageCount(SiteData.CurrentSiteID, ContentPageType.PageType.ContentEntry)
                               + navHelper.GetSitePageCount(SiteData.CurrentSiteID, ContentPageType.PageType.BlogEntry);
            }
            else
            {
                contentCount = navHelper.GetSitePageCount(SiteData.CurrentSiteID, ContentPageType.PageType.BlogEntry);
            }

            foreach (IContentMetaInfo c in lstNav)
            {
                string sText  = c.MetaInfoText;
                string sCount = "0";

                if (SecurityData.IsAuthEditor)
                {
                    sCount = c.MetaInfoCount.ToString();
                }
                else
                {
                    sCount = c.MetaPublicInfoCount.ToString();
                }
                if (this.ShowUseCount)
                {
                    sText = String.Format("{0}  ({1})", c.MetaInfoText, sCount);
                }

                double percUsed = Math.Ceiling(100 * (float)c.MetaInfoCount / (((float)contentCount + 0.000001)));
                percUsed = Math.Round(percUsed / 5) * 5;
                if (percUsed < 1 && c.MetaInfoCount > 0)
                {
                    percUsed = 1;
                }
                if (c.MetaInfoCount <= 0)
                {
                    percUsed = 0;
                }
                if (percUsed > 100)
                {
                    percUsed = 100;
                }

                if (SiteData.IsFilenameCurrentPage(c.MetaInfoURL))
                {
                    output.WriteLine("<li class=\"meta-item meta-perc-used-" + percUsed.ToString() + " meta-used-" + sCount + sItemCSS + " selected\"><a href=\"" + c.MetaInfoURL + "\">" + sText + "</a></li> ");
                }
                else
                {
                    output.WriteLine("<li class=\"meta-item meta-perc-used-" + percUsed.ToString() + " meta-used-" + sCount + sItemCSS + "\"><a href=\"" + c.MetaInfoURL + "\">" + sText + "</a></li> ");
                }
            }

            output.Indent--;
            output.WriteLine("</ul> ");

            output.Indent = indent;
        }
        protected virtual StringBuilder WriteTopLevel(StringBuilder output)
        {
            List <SiteNav> lstNav        = GetTopNav();
            SiteNav        parentPageNav = ControlUtilities.GetParentPage();
            List <SiteNav> lstNavTree    = ControlUtilities.GetPageNavTree().OrderByDescending(x => x.NavOrder).ToList();

            this.ParentFileName = parentPageNav.FileName.ToLower();

            if (lstNav != null && lstNav.Any())
            {
                output.AppendLine();
                WriteListPrefix(output);

                string sItemCSS = String.Empty;
                if (!String.IsNullOrEmpty(this.CssItem))
                {
                    sItemCSS = String.Format(" {0} ", this.CssItem);
                }

                string sThis1CSS = sItemCSS;

                foreach (SiteNav c1 in lstNav)
                {
                    List <SiteNav> cc = GetChildren(c1.Root_ContentID);

                    string sChild = " ";
                    if (this.MultiLevel)
                    {
                        if (cc != null && cc.Any())
                        {
                            sChild = " level1-haschildren " + this.CssHasChildren + " ";
                        }
                        sThis1CSS = " level1 " + sItemCSS + sChild;
                    }
                    else
                    {
                        sThis1CSS = sItemCSS;
                    }
                    if (SiteData.IsFilenameCurrentPage(c1.FileName) ||
                        (c1.NavOrder == 0 && SiteData.IsCurrentLikelyHomePage) ||
                        (IsContained(lstNavTree, c1.Root_ContentID) != null) ||
                        ControlUtilities.AreFilenamesSame(c1.FileName, this.ParentFileName))
                    {
                        sThis1CSS = sThis1CSS + " " + this.CssSelected;
                    }
                    if (lstNav.Where(x => x.NavOrder < 0).Count() > 0)
                    {
                        if (c1.NavOrder < 0)
                        {
                            sThis1CSS = sThis1CSS + " parent-nav";
                        }
                        else
                        {
                            sThis1CSS = sThis1CSS + " child-nav";
                        }
                    }
                    sThis1CSS = sThis1CSS.Replace("   ", " ").Replace("  ", " ").Trim();

                    iItemNumber++;
                    output.AppendLine("<li id=\"listitem" + iItemNumber.ToString() + "\" class=\"" + sThis1CSS + "\"><a href=\"" + c1.FileName + "\">" + c1.NavMenuText + "</a>");

                    if (this.MultiLevel && cc != null && cc.Any())
                    {
                        LoadChildren(output, c1.Root_ContentID, sItemCSS, iItemNumber, 2);
                    }

                    output.AppendLine("</li>");
                    output.AppendLine();
                }
                WriteListSuffix(output);
            }
            else
            {
                output.AppendLine("<span style=\"display: none;\" id=\"" + this.ElementId + "\"></span>");
            }

            return(output);
        }
        protected override void RenderContents(HtmlTextWriter output)
        {
            SiteNav        pageNav = GetCurrentPage();
            string         sParent = pageNav.FileName.ToLower();
            List <SiteNav> lstNav  = new List <SiteNav>();

            if (SiteData.CurretSiteExists && SiteData.CurrentSite.Blog_Root_ContentID.HasValue &&
                pageNav.ContentType == ContentPageType.PageType.BlogEntry)
            {
                lstNav = navHelper.GetPageCrumbNavigation(SiteData.CurrentSiteID, SiteData.CurrentSite.Blog_Root_ContentID.Value, !SecurityData.IsAuthEditor);

                if (lstNav != null && lstNav.Any())
                {
                    pageNav.NavOrder = lstNav.Max(x => x.NavOrder) + 100;
                    lstNav.Add(pageNav);
                }
            }
            else
            {
                lstNav = navHelper.GetPageCrumbNavigation(SiteData.CurrentSiteID, pageNav.Root_ContentID, !SecurityData.IsAuthEditor);
            }
            lstNav.RemoveAll(x => x.ShowInSiteNav == false && x.ContentType == ContentPageType.PageType.ContentEntry);
            lstNav.ToList().ForEach(q => IdentifyLinkAsInactive(q));

            string sCSS = String.Empty;

            if (!String.IsNullOrEmpty(CssClass))
            {
                sCSS = " class=\"" + CssClass + "\" ";
            }
            string sSelCSS = (CSSSelected + " " + CSSWrapper).Trim();

            string sWrapCSS = String.Empty;

            if (!String.IsNullOrEmpty(CSSWrapper))
            {
                sWrapCSS = " class=\"" + CSSWrapper + "\" ";
            }

            if (DisplayAsList)
            {
                output.WriteLine("<ul" + sCSS + " id=\"" + this.ClientID + "\">");
                foreach (SiteNav c in lstNav)
                {
                    if (SiteData.IsFilenameCurrentPage(c.FileName) || AreFilenamesSame(c.FileName, sParent))
                    {
                        output.WriteLine("<li class=\"" + sSelCSS + "\">" + c.NavMenuText + "</li> ");
                    }
                    else
                    {
                        output.WriteLine("<li" + sWrapCSS + "><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a></li> ");
                    }
                }
                output.WriteLine("</ul>");
            }
            else
            {
                string sDivider = " " + TextDivider + " ";
                int    iCtr     = 1;
                int    iMax     = lstNav.Count;
                output.WriteLine("<div" + sCSS + " id=\"" + this.ClientID + "\">");
                foreach (SiteNav c in lstNav)
                {
                    if (SiteData.IsFilenameCurrentPage(c.FileName) || AreFilenamesSame(c.FileName, sParent))
                    {
                        output.WriteLine("<span class=\"" + sSelCSS + "\">" + c.NavMenuText + " " + sDivider + "</span> ");
                    }
                    else
                    {
                        output.WriteLine("<span" + sWrapCSS + "><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a> " + sDivider + "</span> ");
                    }
                    iCtr++;

                    if (iCtr == iMax)
                    {
                        sDivider = String.Empty;
                    }
                }
                output.WriteLine("</div>");
            }
        }