public static IO2Browser add_WebBrowser(this Control control)
 {            
     return (IO2Browser) control.invokeOnThread(
                             () =>
                                 {
                                     var o2BrowserIE = new O2BrowserIE {Dock = DockStyle.Fill};
                                     control.Controls.Add(o2BrowserIE);                        
                                     return o2BrowserIE;
                                 });
 }
 	public static WPF_GUI showMessage (this WPF_GUI wpf_Gui,O2BrowserIE browser, string title, string message)
 	{
 		return wpf_Gui.showMessage(title, message,"");
 	}
    	public static WPF_GUI showMessage (this WPF_GUI wpf_Gui,O2BrowserIE browser, string title, string message, string url)
    	{
    		O2Thread.mtaThread(
    			()=>{
			    		var htmlMessage = ("<html><body cellspacing=\"0\" cellpadding=\"0\"><font face=Arial><center>".line() +     						   
			    						   "   <h2>{1}</h2>".line() + 
			    						   "   <h3>{2}</h3>".line() + 	
			    						   "   <img src=\"{0}\"/>" + 
			    						   "</center>".line() + 
			    						  ((url).valid() 
			    						  		? "<div style=\"position:absolute; bottom:0px;width:100%;font-size:xx-small;\"><center>showing help page: <a href=\"{3}\"target=blank>{3}</a></center></div>".line() + 
			    						  		  "<iframe src =\"{3}\" style=\"position:absolute; bottom:15px; height=70%; width:100%;\"/>".line()
			    						  		  
			    						  		: "") + 
			    						   "</font></body></html>")
			    						   .format("O2Logo_Small.gif".local(), title, message, url);
						browser.set_Text(htmlMessage);
					});
			return wpf_Gui;
    	}
    	public static WPF_GUI showOffineMessage (this WPF_GUI wpf_Gui,O2BrowserIE browser, string message)
    	{
			return wpf_Gui.showMessage(browser,"You are offline at the moment", message);
    	}