internal static IMDbMovie MineFilmDetailsFromAdditionalPages
			(bool showProgress, IMDbFilmDetails filmDetails,
             IMDbMovie movie, string movieUrl)
		{


			if (!showProgress)
				return movie;




            string creditsUrl = movieUrl + "fullcredits";
            string longOverviewUrl = movieUrl + "plotsummary";
            string goofUrl = movieUrl + "goofs";
            string triviaUrl = movieUrl + "trivia";
            string quotesUrl = movieUrl + "quotes";


			MainImportingEngine.ThisProgress.Progress
                (MainImportingEngine.CurrentProgress, "Getting actors...");
			
            //filmDetails.GetActorsUsingRegex(ref movie, creditsUrl);


			MainImportingEngine.ThisProgress.Progress
                (MainImportingEngine.CurrentProgress, "Getting plot summary...");
			
            //filmDetails.GetLongOverview(ref movie, longOverviewUrl);



			//MainImportingEngine.ThisProgress.Progress
			//    (MainImportingEngine.CurrentProgress, "Getting trivia...");

			//filmDetails.GetTrivia(ref movie, triviaUrl);

			//MainImportingEngine.ThisProgress.Progress
			//    (MainImportingEngine.CurrentProgress, "Getting goofs...");

			//filmDetails.GetGoofs(ref movie, goofUrl);

			//MainImportingEngine.ThisProgress.Progress
			//    (MainImportingEngine.CurrentProgress, "Getting quotes...");

			//filmDetails.GetQuotes(ref movie, quotesUrl);

			//TODO: Get these additional IMDb film details

			//Get Stars

			//Get Awards

			//Get Credits

			//Get Plot Keywords

			//Get Official Websites

			//Get Production Country

			//Get Language

			//Get Box Office Budget

			//Get Box Office Gross

			//Get Color

			//Get Aspect Ratio

			//Get Connections

			//Get Soundtracks

			//Get User Review


			return movie;


		}
        private static IMDbMovie MineFilmDetailsFromMainPage
            (IMDbFilmDetails filmDetails,
             string trimmedHtml, IMDbMovie movie )
        {

            IMDbRegEx imDbRegEx = new IMDbRegEx();
            imDbRegEx.SetRegExPatterns();


            IMDbFilmDetails.MineProductionYearUsingRegex(movie, trimmedHtml, imDbRegEx);
            //IMDbFilmDetails.MineProductionYearUsingXpath(movie, trimmedHtml);


            IMDbFilmDetails.GetActorsUsingXpath(movie, trimmedHtml);


            IMDbFilmDetails.GetReleaseDate(movie, trimmedHtml, imDbRegEx);


            IMDbFilmDetails.GetTagline(movie, trimmedHtml, imDbRegEx);


            IMDbFilmDetails.GetRuntime(movie, trimmedHtml, imDbRegEx);


            IMDbFilmDetails.GetRating(movie, trimmedHtml, imDbRegEx);


            IMDbFilmDetails.ExtractRatingDescription(movie, trimmedHtml, imDbRegEx);


            IMDbFilmDetails.GetReview(movie, trimmedHtml, imDbRegEx);


            IMDbFilmDetails.GetStudio(movie, trimmedHtml, imDbRegEx);


            //IMDbFilmDetails.MineOverviewUsingRegex(movie, trimmedHtml, imDbRegEx);
            IMDbFilmDetails.MineOverviewUsingXpath(movie, trimmedHtml);

            //filmDetails.MineDirectorUsingRegex(ref movie, trimmedHtml);
            filmDetails.MineDirectorUsingXpath(ref movie, trimmedHtml);


            //filmDetails.MineWriterUsingRegex(ref movie, trimmedHtml);
            filmDetails.MineWriterUsingXpath(ref movie, trimmedHtml);

            filmDetails.GetGenres(ref movie, trimmedHtml);




            return movie;


        }
        //TODO: Remove Debugger logs for all movie details.
        //TODO: Add indivindual settings for each extra film detail type. 


        internal static IIMDbMovie DownloadMovieDetailsFromIMDb
            (string imdbID, bool showProgress )
        {


            var movie = new IMDbMovie();


            var filmDetails = new IMDbFilmDetails();
            var webClient = new WebClient();

            try
            {

                var movieUrl = IMDbMovieDetailsDownloaderHelpers
                    .ConstructMovieUrl(imdbID);


                var html = IMDbMovieDetailsDownloaderHelpers
                    .DownloadBaseTitleHtml
                    (movieUrl, webClient);


                if (IMDbMovieDetailsDownloaderHelpers
                    .CheckForValidHtmlData(html))
                    return null;


                //TODO: IMDb Movie Details Extraction does not work if the main html page trimming is activated. The html trimming regex should be fixed.
             
                //string trimmedHTML = CleanHtmlPage(html);

                //if (String.IsNullOrEmpty(trimmedHTML))
                //    trimmedHTML = html;

                string trimmedHtml = html;

                //Debugger.LogMessageToFile("Base Title html: " + trimmedHtml);




                movie.Title
                    = IMDbMovieDetailsDownloaderHelpers
                        .ExtractFilmTitle
                        (imdbID, trimmedHtml);
                 


                movie = MineFilmDetails
                    (showProgress, trimmedHtml,
                    movieUrl, movie, filmDetails);


            }
            catch (Exception e)
            {
                Debugger.LogMessageToFile
                    ("The GetMovieInfo() method returned an exception: "
                    + Environment.NewLine + e );
            }

            return movie;
        }
        private static IMDbMovie MineFilmDetails
            (bool showProgress,
            string trimmedHtml,
            string movieUrl,
            IMDbMovie movie,
            IMDbFilmDetails filmDetails)
        {


            if (showProgress)
            {
                MainImportingEngine.ThisProgress.Progress
                    (MainImportingEngine.CurrentProgress,
                     "Downloading details from IMDb for '"
                     + movie.Title + "'...");
            }


            movie = MineFilmDetailsFromMainPage
                (filmDetails, trimmedHtml, movie);



            movie = IMDbMovieDetailsDownloaderHelpers
                .MineFilmDetailsFromAdditionalPages
                (showProgress, filmDetails, movie, movieUrl);


            return movie;
        
        
        }