/// <summary>
        /// Creates a HtmlSelectTag from a HTMLSelectElementClass.
        /// </summary>
        /// <param name="selectElement"> The HTMLSelectElementClass to convert.</param>
        /// <returns> A HtmlSelectTag</returns>
        private HtmlSelectTag CreateHtmlSelectTag(HTMLSelectElementClass selectElement)
        {
            HtmlSelectTag tag = new HtmlSelectTag();

            tag.Class = selectElement.className;
            tag.Id = selectElement.id;
            if ( selectElement.name != null )
            {
                tag.Name = selectElement.name;
            }
            else
            {
                if ( selectElement.id != null )
                {
                    tag.Name = selectElement.id;
                }
                else
                {
                    tag.Name = selectElement.uniqueID;
                    tag.Id = selectElement.uniqueID;
                }
            }
            // TODO: parse from innerHtml
            // tag.OnClick =
            // tag.Style=currentNode.GetAttribute("style",currentNode.NamespaceURI);
            tag.Title = selectElement.title;

            if ( selectElement.multiple )
            {
                tag.Multiple=true;
            }

            tag.Value = selectElement.value;

            // tag.Options = new HtmlOptionCollection();
            //object noll = null;

            IHTMLElementCollection options = (IHTMLElementCollection)selectElement.children;

            // while ( options.MoveNext() )
            foreach ( object obj in options )
            {
                if ( obj is HTMLOptionElementClass )
                {
                    HTMLOptionElementClass option = (HTMLOptionElementClass)obj;

                    HtmlOptionTag optionTag = new HtmlOptionTag();
                    optionTag.Id = option.id;
                    if ( option.selected )
                    {
                        optionTag.Selected=true;
                    }

                    if ( option.text == null )
                    {
                        optionTag.Text = string.Empty;
                    }
                    else
                    {
                        optionTag.Text = option.text;
                    }

                    if ( option.value == null )
                    {
                        optionTag.Value = string.Empty;
                    }
                    else
                    {
                        optionTag.Value = option.value;
                    }

                    optionTag.Key = "Option " + tag.Options.Length.ToString();
                    tag.AddOptionTag(optionTag);
                }
            }

            return tag;
        }
        /// <summary>
        /// Creates a select tag.
        /// </summary>
        /// <param name="currentNode"> The XPathNavigator node.</param>
        /// <returns> A HtmlSelectTag.</returns>
        private HtmlSelectTag CreateSelectTag(XPathNavigator currentNode)
        {
            HtmlSelectTag tag = new HtmlSelectTag();

            tag.Class=currentNode.GetAttribute("class",currentNode.NamespaceURI);
            tag.Id=currentNode.GetAttribute("id",currentNode.NamespaceURI);
            tag.Name=currentNode.GetAttribute("name",currentNode.NamespaceURI);
            tag.OnClick=currentNode.GetAttribute("onclick",currentNode.NamespaceURI);
            tag.Style=currentNode.GetAttribute("style",currentNode.NamespaceURI);
            tag.Title=currentNode.GetAttribute("title",currentNode.NamespaceURI);

            if ( tag.OnClick.Length == 0 )
            {
                tag.OnClick = currentNode.GetAttribute("onClick",currentNode.NamespaceURI);
            }

            if ( currentNode.GetAttribute("multiple",currentNode.NamespaceURI)=="true" )
            {
                tag.Multiple=true;
            }

            tag.Value=currentNode.GetAttribute("value",currentNode.NamespaceURI);

            // fill options nodes
            XPathNodeIterator options = currentNode.SelectChildren(XPathNodeType.Element);

            //tag.Options = new HtmlOptionCollection();

            int i=1;
            while ( options.MoveNext() )
            {
                HtmlOptionTag option = new HtmlOptionTag();
                option.Id=options.Current.GetAttribute("id",options.Current.NamespaceURI);
                if ( options.Current.GetAttribute("selected",options.Current.NamespaceURI)=="true" )
                {
                    option.Selected=true;
                }
                option.Text=options.Current.Value;
                option.Value=options.Current.GetAttribute("value",options.Current.NamespaceURI);

                option.Key = "Option " + i;
                tag.AddOptionTag(option);
                i++;
            }

            return tag;
        }