Bloom.Edit.EditingView._browser1_OnBrowserClick C# (CSharp) Method

_browser1_OnBrowserClick() private method

private _browser1_OnBrowserClick ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        private void _browser1_OnBrowserClick(object sender, EventArgs e)
        {
            var ge = e as DomEventArgs;
            if(ge == null || ge.Target == null)
                return; //I've seen this happen

            var target = (GeckoHtmlElement) ge.Target.CastToGeckoElement();
            if(target.ClassName.Contains("sourceTextTab"))
            {
                RememberSourceTabChoice(target);
                return;
            }
            if(target.ClassName.Contains("changeImageButton"))
                OnChangeImage(ge);
            if(target.ClassName.Contains("pasteImageButton"))
                OnPasteImage(ge);
            if(target.ClassName.Contains("cutImageButton"))
                OnCutImage(ge);
            if(target.ClassName.Contains("copyImageButton"))
                OnCopyImage(ge);
            if(target.ClassName.Contains("editMetadataButton"))
                OnEditImageMetdata(ge);

            var anchor = target as Gecko.DOM.GeckoAnchorElement;
            if(anchor != null && anchor.Href != "" && anchor.Href != "#")
            {
                if(anchor.Href.Contains("bookMetadataEditor"))
                {
                    OnShowBookMetadataEditor();
                    ge.Handled = true;
                    return;
                }

                // Let Gecko handle hrefs that are explicitly tagged "javascript"
                if(anchor.Href.StartsWith("javascript")) //tied to, for example, data-functionOnHintClick="ShowTopicChooser()"
                {
                    ge.Handled = false; // let gecko handle it
                    return;
                }

                if(anchor.Href.ToLowerInvariant().StartsWith("http")) //will cover https also
                {
                    // do not open in external browser if localhost...except for some links in the toolbox
                    if(anchor.Href.ToLowerInvariant().StartsWith(ServerBase.ServerUrlWithBloomPrefixEndingInSlash))
                    {
                        ge.Handled = false; // let gecko handle it
                        return;
                    }

                    Process.Start(anchor.Href);
                    ge.Handled = true;
                    return;
                }
                if(anchor.Href.ToLowerInvariant().StartsWith("file")) //source bubble tabs
                {
                    ge.Handled = false; //let gecko handle it
                    return;
                }
                ErrorReport.NotifyUserOfProblem("Bloom did not understand this link: " + anchor.Href);
                ge.Handled = true;
            }
        }