/// <summary>
        /// Add final formatting to controls
        /// </summary>
        protected override void OnPreRender(EventArgs e)
        {
            HtmlContainerControl legend;
            HtmlContainerControl span;
            string url       = this.Context.Request.Url.PathAndQuery;
            string stepField = _postedStep.ID + "=";
            Regex  re        = new Regex(stepField + "\\d");

            // legend for container
            if (!string.IsNullOrEmpty(_label))
            {
                legend           = new HtmlContainerControl("legend");
                legend.InnerHtml = _label;
                this.Controls.AddAt(0, legend);
            }
            // transfer content to active step
            _content.Visible = true;
            _current.Controls.AddAt(0, _content);

            // legend for the active step
            legend          = new HtmlContainerControl("legend");
            legend.CssClass = "steps";

            // build progress indicator with all step labels
            foreach (Step s in _steps)
            {
                span = new HtmlContainerControl("span");
                if (s.Equals(_current))
                {
                    span.CssClass  = "selected";
                    span.InnerHtml = s.Label;
                }
                else
                {
                    // allow link to other steps
                    string format = "{0}";

                    if (!s.Equals(_steps.Last.Value))
                    {
                        if (true)
                        {
                            format = "<a href=\"{0}\" title=\"Jump to {1}\">{1}</a>";
                        }
                    }

                    span.InnerHtml = string.Format(format,
                                                   re.Replace(url, stepField + s.ID), s.Label);
                }
                legend.Controls.Add(span);
            }
            _current.Controls.AddAt(0, legend);
            _current.Visible = true;

            //if (this.Page.Step == 0) { _backButton.Visible = false; }
            //if (this.Page.Step == _steps.Count) { _nextButton.Visible = false; }

            _postedStep.Value = _current.ID;

            base.OnPreRender(e);
        }
        /// <summary>
        /// Add final formatting to controls
        /// </summary>
        protected override void OnPreRender(EventArgs e)
        {
            HtmlContainerControl list     = new HtmlContainerControl("ul");
            HtmlContainerControl fieldset = new HtmlContainerControl("fieldset");
            HtmlContainerControl item;
            string url    = this.Context.Request.Url.PathAndQuery;
            bool   select = true;

            list.CssClass = "tabClick";
            list.ID       = this.ID + "_list";

            this.Controls.AddAt(0, fieldset);
            this.Controls.AddAt(0, list);

            // legend for container
            if (!string.IsNullOrEmpty(_label))
            {
                HtmlContainerControl legend = new HtmlContainerControl("legend");
                legend.InnerHtml = _label;
                this.Controls.AddAt(0, legend);
            }

            // tab selector
            foreach (Tab t in _tabs)
            {
                if (t.Visible)
                {
                    item           = new HtmlContainerControl("li");
                    item.InnerHtml = t.Label;
                    item.ID        = t.ID + "_click";

                    if (select)
                    {
                        item.CssClass = "selected";
                        t.CssClass   += " selected";
                        select        = false;
                    }
                    list.Controls.Add(item);
                    fieldset.Controls.Add(t);
                }
            }
            base.OnPreRender(e);
        }