/// <summary>
        /// Builds the item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="writer">The writer.</param>
        private void BuildItem(MenuItem item, HtmlTextWriter writer)
        {
            if (item != null && writer != null)
            {
                writer.WriteLine();
                writer.WriteBeginTag("li");

                string cssClass = (item.ChildItems.Count > 0) ? "dropdown" : "";
                string selectedStatusClass = GetSelectStatusClass(item);
                if (!String.IsNullOrEmpty(selectedStatusClass))
                    cssClass += " " + selectedStatusClass;

                writer.WriteAttribute("class", cssClass);

                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;
                writer.WriteLine();

                if (IsLink(item))
                {
                    writer.WriteBeginTag("a");
                    if (!String.IsNullOrEmpty(item.NavigateUrl))
                        writer.WriteAttribute("href", Page.Server.HtmlEncode(this.ResolveClientUrl(item.NavigateUrl)));
                    else
                        writer.WriteAttribute("href", Page.ClientScript.GetPostBackClientHyperlink(this, "b" + item.ValuePath.Replace(this.PathSeparator.ToString(), "\\"), true));

                    cssClass = GetItemClass(this, item);
                    writer.WriteAttribute("class", cssClass);
                    writer.WriteTargetAttribute(item.Target);

                    if (!String.IsNullOrEmpty(item.ToolTip))
                        writer.WriteAttribute("title", item.ToolTip);
                    else if (!String.IsNullOrEmpty(this.ToolTip))
                        writer.WriteAttribute("title", this.ToolTip);

                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();
                    writer.Write(item.Text);

                    writer.Indent--;
                    writer.WriteEndTag("a");
                }
                else if ((item.ChildItems != null) && (item.ChildItems.Count > 0))
                {
                    //.btn-navbar is used as the toggle for collapsed navbar content
                    //<a class="dropdown-toggle" data-toggle="dropdown" href="#">Tables&nbsp;<b class="caret"></b></a>
                    writer.WriteBeginTag("a");
                    writer.WriteAttribute("class", "dropdown-toggle");
                    writer.WriteAttribute("data-toggle", "dropdown");
                    writer.WriteAttribute("href", "#");
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Write(item.Text);
                    // add space between text and caret
                    writer.Write("&nbsp;");
                    writer.WriteBeginTag("b");
                    writer.WriteAttribute("class", "caret");
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.WriteEndTag("b");
                    writer.WriteEndTag("a");

                    BuildItems(item.ChildItems, false, writer);
                }
                else
                {
                    // no link here this is just a menu item with no function
                    writer.WriteBeginTag("li");
                    writer.WriteAttribute("class", GetItemClass(this, item));
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;
                    writer.WriteLine();
                }

                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag("li");
            }
        }