public ascx_HtmlTagViewer buildGui(bool addLoadUrlTextBox, bool addHtmlCodeViewer)
		{
			//return (ascx_HtmlTagViewer)this.invokeOnThread(
			//	()=>{
			var TopPanel = this.add_Panel();
			HtmlTags_TreeView =  TopPanel.add_TreeView_for_HtmlTags()
									 	 .showSelection();			
			
			if (addHtmlCodeViewer)
			{
				HtmlCodeViewer = HtmlTags_TreeView.insert_Left<Panel>(TopPanel.width()/2).add_SourceCodeViewer(); 
				
				HtmlTags_TreeView.after_TagSelect_showIn_SouceCodeViewer(HtmlCodeViewer);
				
				var optionsPanel = HtmlCodeViewer.insert_Below<Panel>(50);
				optionsPanel.add_CheckBox("View as Xml",0,5, 
					(value)=>{
								ViewAsXml = value;
								reloadPage();
							 })
							 .append_Label("Search html code:")
							 .top(5)
							 .append_TextBox("")
							 .onTextChange((text)=> HtmlCodeViewer.editor().invoke("searchForTextInTextEditor_findNext",text))
							 .onEnter((text)=> HtmlCodeViewer.editor().invoke("searchForTextInTextEditor_findNext",text))
							 .align_Right(optionsPanel);
				
				optionsPanel.add_Link("Refresh tags",30,0,()=> show(HtmlCodeViewer.get_Text()));
			}
			
			if (addLoadUrlTextBox)	
			{
				PageToOpen = TopPanel.insert_Above<Panel>(20).add_TextBox().fill();
				var propertyGrid = HtmlTags_TreeView.insert_Right<Panel>(150).add_PropertyGrid();
				
				
				HtmlTags_TreeView.afterSelect<HtmlAgilityPack.HtmlNode>(
				  (htmlNode)=> propertyGrid.show(htmlNode));
				
				PageToOpen.onEnter(
							(text)=>{
										if (text.fileExists())
											show(text.fileContents());
										else 
											show(text.uri());
									}); 
			}																						
			
			HtmlNodeFilter = HtmlTags_TreeView.insert_Below_HtmlTagFilter((filter) => show(HtmlCode, filter) );
			
			return this;
		//});
		}