void HyperlinkBibTeXLinksMissing_Click(object sender, RoutedEventArgs e)
        {
            string message =
                ""
                + "If you are not seeing an \"Import into BibTeX\" link below each search result, it means that you have not yet enabled BibTeX support in Google Scholar.\n\n"
                + "If you want Qiqqa to attempt to take you to the Google Scholar settings screen, press YES and then press 'Save Preferences' when you have reviewed all the available preferences.\n\n"
                + "If you would prefer to do it yourself, press NO.  Go to the main Google Scholar page (http://scholar.google.com) USING THE QIQQA BUILT-IN BROWSER, and open the Google Scholar Settings.  Make sure you are on the .com version of Scholar, by looking at the web address.  If the address does not end in \".com\", then look for a link in the bottom right called \"Go to Google Scholar\" which should take you there.   Once on the .com Scholar settings page, in the 'Bibliography Manager' section, select 'Show links to import citations into BibTeX' and then press 'Save'.";

            if (MessageBoxes.AskQuestion(message))
            {
                string preferences_url = "http://scholar.google.com/scholar_setprefs?scis=yes&scisf=4";
                ObjWebBrowser.OpenUrl(preferences_url);
            }

            e.Handled = true;
        }
        private void ReflectLatestBrowserContent()
        {
            try
            {
                // Neaten the text in the browser
                string text = ObjWebBrowser.CurrentPageText;

                if (null == text)
                {
                    return;
                }

                // Process
                text = text.Trim();

                // If this is valid BibTeX, offer it
                {
                    if (IsValidBibTex(text))
                    {
                        FeatureTrackingManager.Instance.UseFeature(Features.MetadataSniffer_ValidBibTeX);
                        UseAsBibTeX(text);

                        return;
                    }
                }

                // If this is valid PubMed XML, offer it
                {
                    string        converted_bibtex;
                    List <string> messages;
                    bool          success = PubMedXMLToBibTex.TryConvert(text, out converted_bibtex, out messages);
                    if (success)
                    {
                        FeatureTrackingManager.Instance.UseFeature(Features.MetadataSniffer_ValidPubMed);
                        UseAsBibTeX(converted_bibtex);
                        return;
                    }
                    else
                    {
                        if (0 < messages.Count)
                        {
                            foreach (string message in messages)
                            {
                                Logging.Info(message);
                            }
                        }
                    }
                }

                // Otherwise lets try parse the page cos it might be a google scholar page and if so we are going to want to try to get the first link to BibTeX
                if (ConfigurationManager.Instance.ConfigurationRecord.Metadata_UseBibTeXSnifferWizard)
                {
                    // Only do this automatically if there is not already bibtex in the record
                    if (null != pdf_document && String.IsNullOrEmpty(pdf_document.BibTex))
                    {
                        string url  = ObjWebBrowser.CurrentUri.ToString();
                        string html = ObjWebBrowser.CurrentPageHTML;
                        List <GoogleScholarScrapePaper> gssps = GoogleScholarScraper.ScrapeHtml(html, url);

                        try
                        {
                            // Try to process the first bibtex record
                            if (0 < gssps.Count)
                            {
                                GoogleScholarScrapePaper gssp = gssps[0];
                                if (!String.IsNullOrEmpty(gssp.bibtex_url))
                                {
                                    if (last_autonavigated_url != gssp.bibtex_url)
                                    {
                                        last_autonavigated_url = gssp.bibtex_url;

                                        gssp.bibtex_url = gssp.bibtex_url.Replace("&amp;", "&");
                                        ObjWebBrowser.OpenUrl(gssp.bibtex_url);
                                    }
                                }
                            }
                        }

                        catch (Exception ex)
                        {
                            Logging.Warn(ex, "Sniffer was not able to parse the results that came back from GS.");
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                Logging.Error(ex, "There was an exception while trying to parse the html back from Google Scholar");
            }
        }