public void InitialThumbScrape(bool onlyMissing)
        {
            CurrArtistsBeingScraped = 0.0;
            TotArtistsBeingScraped = 0.0;
            CurrTextBeingScraped = string.Empty;

            if (!MediaPortal.Util.Win32API.IsConnectedToInternet())
            {
              logger.Debug("No internet connection detected. Cancelling thumb scrape.");
              return ;
            }

            try
            {
                logger.Info("InitialThumbScrape is starting (Only missing = " + onlyMissing.ToString() + ")...");
                #region Artists
                if (Utils.ScrapeThumbnails)
                {
                  musicDatabaseArtists = new ArrayList();
                  m_db.GetAllArtists(ref musicDatabaseArtists);
                  #region mvCentral
                  var musicVideoArtists = Utils.GetMusicVideoArtists("mvCentral.db3");
                  if (musicVideoArtists != null && musicVideoArtists.Count > 0){
                    logger.Debug("InitialThumbScrape add Artists from mvCentral ["+musicVideoArtists.Count+"]...");
                    musicDatabaseArtists.AddRange(musicVideoArtists);
                  }
                  #endregion
                  if (musicDatabaseArtists != null && musicDatabaseArtists.Count > 0)
                  {
                    logger.Debug("InitialThumbScrape Artists: ["+musicDatabaseArtists.Count+"]");
                    TotArtistsBeingScraped = checked (musicDatabaseArtists.Count);
                    var index = 0;
                    while (index < musicDatabaseArtists.Count)
                    {
                      var artist = musicDatabaseArtists[index].ToString();
                      CurrTextBeingScraped = artist ;

                      if (!StopScraper && !Utils.GetIsStopping())
                        DoScrapeThumbs(artist.Trim(), onlyMissing);
                      else
                        break;
                      // Piped Artists
                      // var chArray = new char[2] { '|', ';' };
                      string[] artists = artist.Split(Utils.PipesArray, StringSplitOptions.RemoveEmptyEntries);
                      foreach (string sartist in artists)
                      {
                        if (!StopScraper && !Utils.GetIsStopping())
                          DoScrapeThumbs(sartist.Trim(), onlyMissing);
                        else
                          break;
                      }
                      ++CurrArtistsBeingScraped;
                      checked { ++index; }
                    }
                  }
                  CurrTextBeingScraped = string.Empty ;
                  musicDatabaseArtists = null;
                }
                else
                  logger.Debug("ThumbScrape for Artists disabled in config ...");
                #endregion

                #region Albums
                if ((Utils.ScrapeThumbnailsAlbum) && (!StopScraper && !Utils.GetIsStopping()))
                {
                  musicDatabaseAlbums = new List<AlbumInfo>();
                  m_db.GetAllAlbums(ref musicDatabaseAlbums);
                  #region mvCentral
                  var musicVideoAlbums = Utils.GetMusicVideoAlbums("mvCentral.db3");
                  if (musicVideoAlbums != null && musicVideoAlbums.Count > 0) {
                    logger.Debug("InitialThumbScrape add Artists - Albums from mvCentral ["+musicVideoAlbums.Count+"]...");
                    musicDatabaseAlbums.AddRange(musicVideoAlbums);
                  }
                  #endregion
                  if (musicDatabaseAlbums != null && musicDatabaseAlbums.Count > 0)
                  {
                    logger.Debug("InitialThumbScrape Artists - Albums: ["+musicDatabaseAlbums.Count+"]");
                    TotArtistsBeingScraped = checked (TotArtistsBeingScraped + musicDatabaseAlbums.Count);
                    scraper = new Scraper();
                    var index = 0;
                    while (index < musicDatabaseAlbums.Count)
                    {
                      var album = Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].Album).Trim();
                      if (album != null && album.Length > 0)
                      {
                        var artist = Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].Artist).Trim();
                        var dbartist = Utils.GetArtist(Scraper.UndoArtistPrefix(artist), Utils.Category.MusicFanartScraped);
                        var dbalbum = Utils.GetAlbum(album, Utils.Category.MusicFanartScraped);
                        CurrTextBeingScraped = artist + " - " + album ;
                        // Artist - Album
                        if (!string.IsNullOrEmpty(artist))
                          if (!Utils.GetDbm().HasAlbumThumb(dbartist,dbalbum) || !onlyMissing)
                          {
                            if (!StopScraper && !Utils.GetIsStopping())
                              scraper.GetArtistAlbumThumbs(artist, album, false, false);
                            else
                              break;
                          }
                        // AlbumArtist - Album
                        var albumartist  = Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].AlbumArtist).Trim();
                        CurrTextBeingScraped = albumartist + " - " + album ;
                        if (!string.IsNullOrEmpty(albumartist))
                          if (!albumartist.Equals(artist, StringComparison.InvariantCultureIgnoreCase))
                          {
                            dbartist = Scraper.UndoArtistPrefix(Utils.GetArtist(albumartist, Utils.Category.MusicFanartScraped)).ToLower();
                            if (!Utils.GetDbm().HasAlbumThumb(dbartist,dbalbum) || !onlyMissing)
                            {
                              if (!StopScraper && !Utils.GetIsStopping())
                                scraper.GetArtistAlbumThumbs(artist, album, false, false);
                              else
                                break;
                            }
                          }
                        // Piped Artists
                        var pipedartist = musicDatabaseAlbums[index].Artist.Trim()+" | "+musicDatabaseAlbums[index].AlbumArtist.Trim();
                        // var chArray = new char[2] { '|', ';' };
                        string[] artists = pipedartist.Split(Utils.PipesArray, StringSplitOptions.RemoveEmptyEntries);
                        foreach (string sartist in artists)
                        {
                          CurrTextBeingScraped = sartist + " - " + album ;
                          dbartist = Scraper.UndoArtistPrefix(Utils.GetArtist(sartist.Trim(), Utils.Category.MusicFanartScraped)).ToLower();
                          if (!Utils.GetDbm().HasAlbumThumb(dbartist,dbalbum) || !onlyMissing)
                          {
                            if (!StopScraper && !Utils.GetIsStopping())
                              scraper.GetArtistAlbumThumbs(sartist.Trim(), album, false, false);
                            else
                              break;
                          }
                        }
                      }
                      ++CurrArtistsBeingScraped;
                      checked { ++index; }
                    }
                    scraper = null;
                  }
                  CurrTextBeingScraped = string.Empty ;
                  musicDatabaseAlbums = null;
                }
                else
                  logger.Debug("ThumbScrape for Albums disabled in config ...");
                #endregion
                logger.Info("InitialThumbScrape is done.");
            }
            catch (Exception ex)
            {
                logger.Error("InitialThumbScrape: " + ex);
            }
        }
        public int DoScrapeNew(string artist, string album, bool externalAccess)
        {
            if (!MediaPortal.Util.Win32API.IsConnectedToInternet())
            {
              logger.Debug("No internet connection detected. Cancelling new scrape.");
              return 0 ;
            }

            if (!StopScraper)
            {
                try
                {
                    var GetImages = 0;
                    if (artist != null && artist.Trim().Length > 0)
                    {
                    #region NowPlaying Artist
                        var dbartist = Utils.GetArtist(artist, Utils.Category.MusicFanartScraped);
                        var dbalbum = Utils.GetAlbum(album, Utils.Category.MusicFanartScraped);
                        var MaxImages = checked(Convert.ToInt32(Utils.ScraperMaxImages,CultureInfo.CurrentCulture));
                        var numberOfFanartImages = GetNumberOfFanartImages(dbartist);
                        var doTriggerRefresh = (numberOfFanartImages == 0 && !externalAccess);

                        if (checked (MaxImages - numberOfFanartImages) <= 0)
                          GetImages = 8888 ;
                        else
                          {
                            scraper = new Scraper();
                            lock (lockObject)
                                dbClient.Execute("BEGIN TRANSACTION;");
                            GetImages = scraper.GetArtistFanart(artist, MaxImages, this, false, doTriggerRefresh, externalAccess, true);
                            lock (lockObject)
                                dbClient.Execute("COMMIT;");
                            scraper = null;
                          }
                        switch (GetImages)
                        {
                            case 0:
                                if (GetNumberOfFanartImages(dbartist) == 0)
                                  logger.Info("No fanart found for Artist: " + artist + ".");
                                break;
                            case 8888:
                                UpdateTimeStamp(dbartist, null, Utils.Category.MusicFanartScraped) ;
                                logger.Info("Artist: " + artist + " has already maximum number of images. Will not download anymore images for this artist.");
                                break;
                        }
                        if (StopScraper)
                            return GetImages;
                    #endregion
                    #region NowPlaying Artist Thumb
                        if (Utils.ScrapeThumbnails)
                          if (!Utils.GetDbm().HasArtistThumb(dbartist))
                          {
                            scraper = new Scraper();
                            lock (lockObject)
                                dbClient.Execute("BEGIN TRANSACTION;");
                            scraper.GetArtistThumbs(artist, this, true);
                            lock (lockObject)
                                dbClient.Execute("COMMIT;");
                            scraper = null;
                          }
                          else
                            UpdateTimeStamp(dbartist, null, Utils.Category.MusicArtistThumbScraped) ;
                        if (StopScraper)
                            return GetImages;
                    #endregion
                    #region NowPlaying Album Thumb
                        if ((album != null && album.Trim().Length > 0) && Utils.ScrapeThumbnailsAlbum)
                          if (!Utils.GetDbm().HasAlbumThumb(dbartist,dbalbum))
                          {
                            scraper = new Scraper();
                            lock (lockObject)
                                dbClient.Execute("BEGIN TRANSACTION;");
                            scraper.GetArtistAlbumThumbs(artist, album, false, externalAccess);
                            lock (lockObject)
                                dbClient.Execute("COMMIT;");
                            scraper = null;
                          }
                          else
                            UpdateTimeStamp(dbartist, dbalbum, Utils.Category.MusicAlbumThumbScraped) ;
                        if (StopScraper)
                            return GetImages;
                    #endregion
                    } // if (artist != null && artist.Trim().Length > 0)
                    return GetImages;
                }
                catch (Exception ex)
                {
                    scraper = null;
                    logger.Error("DoScrapeNew: " + ex);
                    lock (lockObject)
                        dbClient.Execute("ROLLBACK;");
                }
            }
            return 0;
        }
        public void InitialScrape()
        {
            CurrArtistsBeingScraped = 0.0;
            TotArtistsBeingScraped = 0.0;
            CurrTextBeingScraped = string.Empty ;

            if (!MediaPortal.Util.Win32API.IsConnectedToInternet())
            {
              logger.Debug("No internet connection detected. Cancelling initial scrape.");
              return ;
            }

            FanartHandlerSetup.Fh.SetProperty("#fanartHandler.scraper.task", "Initial Scrape - Initializing");

            if (Utils.DeleteMissing)
              logger.Info("Synchronised fanart database: Removed " + Utils.GetDbm().DeleteRecordsWhereFileIsMissing() + " entries.");

            try
            {
                logger.Info("InitialScrape is starting...");
                var flag = true;

                if (FanartHandlerSetup.Fh.MyScraperWorker != null)
                    FanartHandlerSetup.Fh.MyScraperWorker.ReportProgress(0, "Start");
                FanartHandlerSetup.Fh.SetProperty("#fanartHandler.scraper.task", "Initial Scrape - Artists");

                #region Artists
                musicDatabaseArtists = new ArrayList();
                m_db.GetAllArtists(ref musicDatabaseArtists);

                #region mvCentral
                var musicVideoArtists = Utils.GetMusicVideoArtists("mvCentral.db3");
                if (musicVideoArtists != null && musicVideoArtists.Count > 0) {
                    logger.Debug("InitialScrape add Artists from mvCentral ["+musicVideoArtists.Count+"]...");
                    musicDatabaseArtists.AddRange(musicVideoArtists);
                }
                #endregion

                if (musicDatabaseArtists != null && musicDatabaseArtists.Count > 0)
                {
                    CurrArtistsBeingScraped = 0.0;
                    TotArtistsBeingScraped = checked (musicDatabaseArtists.Count);
                    logger.Debug("InitialScrape initiating for Artists...");
                    var htFanart = new Hashtable();

                    var SQL = "SELECT DISTINCT Key1, sum(Count) as Count FROM ("+
                                "SELECT Key1, count(Key1) as Count "+
                                  "FROM Image "+
                                  "WHERE Category in ('" + ((object) Utils.Category.MusicFanartScraped).ToString() + "') AND "+
                                        "Time_Stamp >= '" + DateTime.Today.AddDays(-14.0).ToString("yyyyMMdd", CultureInfo.CurrentCulture) + "' "+
                                  "GROUP BY Key1 "+
                                "UNION ALL "+
                                "SELECT Key1, count(Key1) as Count "+
                                  "FROM Image "+
                                  "WHERE Category in ('" + ((object) Utils.Category.MusicFanartScraped).ToString() + "') AND "+
                                        "Enabled = 'True' AND "+
                                        "DummyItem = 'False' "+
                                  "GROUP BY Key1 "+
                                  "HAVING count(key1) >= " + Utils.ScraperMaxImages.Trim() +
                              ") GROUP BY Key1;";

                    SQLiteResultSet sqLiteResultSet;
                    lock (lockObject)
                        sqLiteResultSet = dbClient.Execute(SQL);
                    var num = 0;
                    while (num < sqLiteResultSet.Rows.Count)
                    {
                        var htArtist = Scraper.UndoArtistPrefix(sqLiteResultSet.GetField(num, 0).ToLower()) ;
                        if (!htFanart.Contains(htArtist))
                            htFanart.Add(htArtist, sqLiteResultSet.GetField(num, 1));
                        checked { ++num; }
                    }
                    logger.Debug("InitialScrape Artists: ["+htFanart.Count+"]/["+musicDatabaseArtists.Count+"]");
                    var index = 0;
                    while (index < musicDatabaseArtists.Count)
                    {
                        var artist = musicDatabaseArtists[index].ToString();
                        CurrTextBeingScraped = artist ;

                        if (!StopScraper && !Utils.GetIsStopping())
                        {
                            var dbartist = Utils.GetArtist(artist.Trim(), Utils.Category.MusicFanartScraped);
                            var htArtist = Scraper.UndoArtistPrefix(dbartist.ToLower()) ;
                            if (!htFanart.Contains(htArtist))
                            {
                              if (DoScrape(artist.Trim()) > 0 && flag)
                              {
                                  htFanart.Add(htArtist, 1);
                                  // AddScapedFanartToAnyHash();
                                  if (FanartHandlerSetup.Fh.MyScraperNowWorker != null)
                                  {
                                      FanartHandlerSetup.Fh.MyScraperNowWorker.TriggerRefresh = true;
                                      flag = false; // ??? I do not understand what for it ... // ajs
                                  }
                              }
                            }
                            // Pipes Artists
                            string[] artists = artist.Split(Utils.PipesArray, StringSplitOptions.RemoveEmptyEntries);
                            foreach (string sartist in artists)
                            {
                              if (!sartist.Equals(artist, StringComparison.CurrentCulture))
                              {
                                dbartist = Utils.GetArtist(sartist.Trim(), Utils.Category.MusicFanartScraped);
                                htArtist = Scraper.UndoArtistPrefix(dbartist.ToLower()) ;
                                if (!htFanart.Contains(htArtist))
                                {
                                  if (DoScrape(sartist.Trim()) > 0 && flag)
                                  {
                                    htFanart.Add(htArtist, 1);
                                    // AddScapedFanartToAnyHash();
                                    if (FanartHandlerSetup.Fh.MyScraperNowWorker != null)
                                    {
                                      FanartHandlerSetup.Fh.MyScraperNowWorker.TriggerRefresh = true;
                                      flag = false; // ??? I do not understand what for it ... // ajs
                                    }
                                  }
                                }
                              }
                            }
                            //
                            #region Report
                            ++CurrArtistsBeingScraped;
                            if (TotArtistsBeingScraped > 0.0 && FanartHandlerSetup.Fh.MyScraperWorker != null)
                              FanartHandlerSetup.Fh.MyScraperWorker.ReportProgress(Utils.Percent(CurrArtistsBeingScraped, TotArtistsBeingScraped),"Ongoing");
                            #endregion
                            checked { ++index; }
                        }
                        else
                            break;
                    }
                    logger.Debug("InitialScrape done for Artists.");
                }
                CurrTextBeingScraped = string.Empty ;
                musicDatabaseArtists = null;
                #endregion
                AddScapedFanartToAnyHash();

                #region Albums
                if (Utils.ScrapeThumbnailsAlbum && !StopScraper && !Utils.GetIsStopping())
                {
                  TotArtistsBeingScraped = 0.0;
                  CurrArtistsBeingScraped = 0.0;
                  if (FanartHandlerSetup.Fh.MyScraperWorker != null)
                      FanartHandlerSetup.Fh.MyScraperWorker.ReportProgress(0, "Ongoing");
                  FanartHandlerSetup.Fh.SetProperty("#fanartHandler.scraper.task", "Initial Scrape - Albums");

                  musicDatabaseAlbums = new List<AlbumInfo>();
                  m_db.GetAllAlbums(ref musicDatabaseAlbums);

                  #region mvCentral
                  var musicVideoAlbums = Utils.GetMusicVideoAlbums("mvCentral.db3");
                  if (musicVideoAlbums != null && musicVideoAlbums.Count > 0) {
                      logger.Debug("InitialScrape add Artists - Albums from mvCentral ["+musicVideoAlbums.Count+"]...");
                      musicDatabaseAlbums.AddRange(musicVideoAlbums);
                  }
                  #endregion
                  if (musicDatabaseAlbums != null && musicDatabaseAlbums.Count > 0)
                  {
                      CurrArtistsBeingScraped = 0.0;
                      TotArtistsBeingScraped = musicDatabaseAlbums.Count;
                      logger.Debug("InitialScrape initiating for Artists - Albums...");
                      var htAlbums = new Hashtable();

                      var SQL = "SELECT DISTINCT Key1, Key2, sum(Count) as Count FROM ("+
                                  "SELECT Key1, Key2, count(Key1) as Count "+
                                    "FROM Image "+
                                    "WHERE Category IN ('" + ((object) Utils.Category.MusicAlbumThumbScraped).ToString() + "') AND "+
                                          "Time_Stamp >= '" + DateTime.Today.AddDays(-14.0).ToString("yyyyMMdd", CultureInfo.CurrentCulture) + "' "+
                                    "GROUP BY Key1, Key2 "+
                                  "UNION ALL "+
                                  "SELECT Key1, Key2, count(Key1) as Count "+
                                    "FROM Image "+
                                    "WHERE Category IN ('" + ((object) Utils.Category.MusicAlbumThumbScraped).ToString() + "') AND "+
                                          "Enabled = 'True' AND "+
                                          "DummyItem = 'False' "+
                                    "GROUP BY Key1, Key2 "+
                                ") GROUP BY Key1, Key2;";
                      SQLiteResultSet sqLiteResultSet;
                      lock (lockObject)
                          sqLiteResultSet = dbClient.Execute(SQL);

                      var i = 0;
                      while (i < sqLiteResultSet.Rows.Count)
                      {
                          var htArtistAlbum = Scraper.UndoArtistPrefix(sqLiteResultSet.GetField(i, 0).ToLower()) + "-" + sqLiteResultSet.GetField(i, 1).ToLower() ;
                          if (!htAlbums.Contains(htArtistAlbum))
                              htAlbums.Add(htArtistAlbum,sqLiteResultSet.GetField(i, 2));
                          checked { ++i; }
                      }

                      logger.Debug("InitialScrape Artists - Albums: ["+htAlbums.Count+"]/["+musicDatabaseAlbums.Count+"]");
                      var index = 0;
                      while (index < musicDatabaseAlbums.Count)
                      {
                          var album = Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].Album).Trim();
                          if (album != null && album.Length > 0)
                          {
                              // logger.Debug("*** "+Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].Artist).Trim()+"/"+Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].AlbumArtist).Trim()+" - "+Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].Album).Trim()) ;
                              var artist   = Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].Artist).Trim();
                              var dbartist = Scraper.UndoArtistPrefix(Utils.GetArtist(artist, Utils.Category.MusicFanartScraped)).ToLower();
                              var dbalbum  = Utils.GetAlbum(album, Utils.Category.MusicFanartScraped).ToLower();
                              var htArtistAlbum = dbartist + "-" + dbalbum ;
                              CurrTextBeingScraped = htArtistAlbum ;
                              // Artist - Album
                              if (!string.IsNullOrEmpty(artist))
                                if (!htAlbums.Contains(htArtistAlbum))
                                {
                                    if (!StopScraper && !Utils.GetIsStopping())
                                    {
                                        scraper = new Scraper();
                                        if (scraper.GetArtistAlbumThumbs(artist, album, false, false) > 0)
                                          htAlbums.Add(htArtistAlbum,1);
                                        scraper = null;
                                    }
                                    else
                                      break;
                                }
                              // AlbumArtist - Album
                              var albumartist  = Utils.RemoveMPArtistPipe(musicDatabaseAlbums[index].AlbumArtist).Trim();
                              if (!string.IsNullOrEmpty(albumartist))
                                if (!albumartist.Equals(artist, StringComparison.InvariantCultureIgnoreCase))
                                {
                                  dbartist = Scraper.UndoArtistPrefix(Utils.GetArtist(albumartist, Utils.Category.MusicFanartScraped)).ToLower();
                                  htArtistAlbum = dbartist + "-" + dbalbum ;
                                  CurrTextBeingScraped = htArtistAlbum ;
                                  if (!htAlbums.Contains(htArtistAlbum))
                                  {
                                      if (!StopScraper && !Utils.GetIsStopping())
                                      {
                                          scraper = new Scraper();
                                          if (scraper.GetArtistAlbumThumbs(albumartist, album, false, false) > 0)
                                            htAlbums.Add(htArtistAlbum,1);
                                          scraper = null;
                                      }
                                      else
                                        break;
                                  }
                                }
                              // Piped Artists
                              var pipedartist = musicDatabaseAlbums[index].Artist.Trim()+" | "+musicDatabaseAlbums[index].AlbumArtist.Trim();
                              // var chArray = new char[2] { '|', ';' };
                              string[] artists = pipedartist.Split(Utils.PipesArray, StringSplitOptions.RemoveEmptyEntries);
                              foreach (string sartist in artists)
                              {
                                dbartist = Scraper.UndoArtistPrefix(Utils.GetArtist(sartist.Trim(), Utils.Category.MusicFanartScraped)).ToLower();
                                htArtistAlbum = dbartist + "-" + dbalbum ;
                                CurrTextBeingScraped = htArtistAlbum ;
                                if (!htAlbums.Contains(htArtistAlbum))
                                {
                                    if (!StopScraper && !Utils.GetIsStopping())
                                    {
                                        scraper = new Scraper();
                                        if (scraper.GetArtistAlbumThumbs(sartist.Trim(), album, false, false) > 0)
                                          htAlbums.Add(htArtistAlbum,1);
                                        scraper = null;
                                    }
                                    else
                                      break;
                                }
                              }
                          }
                          #region Report
                          ++CurrArtistsBeingScraped;
                          if (TotArtistsBeingScraped > 0.0 && FanartHandlerSetup.Fh.MyScraperWorker != null)
                              FanartHandlerSetup.Fh.MyScraperWorker.ReportProgress(Utils.Percent(CurrArtistsBeingScraped, TotArtistsBeingScraped),"Ongoing");
                          #endregion
                          checked { ++index; }
                      }
                      logger.Debug("InitialScrape done for Artists - Albums.");
                  }
                  CurrTextBeingScraped = string.Empty ;
                  musicDatabaseAlbums = null;
                }
                #endregion
                #region Movies
                if (Utils.UseVideoFanart && !StopScraper && !Utils.GetIsStopping())
                {
                  CurrArtistsBeingScraped = 0.0;
                  TotArtistsBeingScraped = 0.0;
                  if (FanartHandlerSetup.Fh.MyScraperWorker != null)
                      FanartHandlerSetup.Fh.MyScraperWorker.ReportProgress(0, "Ongoing");
                  FanartHandlerSetup.Fh.SetProperty("#fanartHandler.scraper.task", "Initial Scrape - Videos");

                  FanartHandlerSetup.Fh.UpdateDirectoryTimer(Utils.FAHSMovies, false, "InitialScrape");

                  videoDatabaseMovies = new ArrayList();
                  VideoDatabase.GetMovies(ref videoDatabaseMovies);

                  if (videoDatabaseMovies != null && videoDatabaseMovies.Count > 0)
                  {
                      CurrArtistsBeingScraped = 0.0;
                      TotArtistsBeingScraped = videoDatabaseMovies.Count;
                      logger.Debug("InitialScrape initiating for Movies (MyVideo)...");
                      var htMovies = new Hashtable();

                      var SQL = "SELECT DISTINCT Key1, sum(Count) as Count FROM ("+
                                  "SELECT Key1, count(Key1) as Count "+
                                    "FROM Image "+
                                    "WHERE Category in ('" + ((object) Utils.Category.MovieScraped).ToString() + "') AND "+
                                          "Time_Stamp >= '" + DateTime.Today.AddDays(-14.0).ToString("yyyyMMdd", CultureInfo.CurrentCulture) + "' "+
                                    "GROUP BY Key1 "+
                                  "UNION ALL "+
                                  "SELECT Key1, count(Key1) as Count "+
                                    "FROM Image "+
                                    "WHERE Category in ('" + ((object) Utils.Category.MovieScraped).ToString() + "') AND "+
                                          "Enabled = 'True' AND "+
                                          "DummyItem = 'False' "+
                                    "GROUP BY Key1 "+
                                    "HAVING count(key1) >= " + Utils.ScraperMaxImages.Trim() +
                                ") GROUP BY Key1;";
                      SQLiteResultSet sqLiteResultSet;
                      lock (lockObject)
                          sqLiteResultSet = dbClient.Execute(SQL);

                      var i = 0;
                      while (i < sqLiteResultSet.Rows.Count)
                      {
                          var htMovie = sqLiteResultSet.GetField(i, 0).ToLower() ;
                          if (!htMovies.Contains(htMovie))
                              htMovies.Add(htMovie,sqLiteResultSet.GetField(i, 2));
                          checked { ++i; }
                      }

                      logger.Debug("InitialScrape Movies: ["+htMovies.Count+"]/["+videoDatabaseMovies.Count+"]");
                      var index = 0;
                      while (index < videoDatabaseMovies.Count)
                      {
                          IMDBMovie details = new IMDBMovie();
                          details = (IMDBMovie) videoDatabaseMovies[index] ;
                          var movieID = details.ID.ToString().ToLower();
                          var movieIMDBID = details.IMDBNumber.Trim().ToLower().Replace("unknown",string.Empty);
                          var movieTitle = details.Title.Trim();
                          CurrTextBeingScraped = movieIMDBID + " - " + movieTitle  ;

                          if (!string.IsNullOrEmpty(movieID) && !string.IsNullOrEmpty(movieIMDBID))
                          {
                              if (!htMovies.Contains(movieID))
                              {
                                  if (!StopScraper && !Utils.GetIsStopping())
                                  {
                                      scraper = new Scraper();
                                      scraper.GetMoviesFanart(movieID, movieIMDBID, movieTitle);
                                      scraper = null;
                                  }
                                  else
                                    break;
                              }
                          }
                          #region Report
                          ++CurrArtistsBeingScraped;
                          if (TotArtistsBeingScraped > 0.0 && FanartHandlerSetup.Fh.MyScraperWorker != null)
                              FanartHandlerSetup.Fh.MyScraperWorker.ReportProgress(Utils.Percent(CurrArtistsBeingScraped, TotArtistsBeingScraped),"Ongoing");
                          #endregion
                          checked { ++index; }
                      }
                      logger.Debug("InitialScrape done for Movies.");
                  }
                  CurrTextBeingScraped = string.Empty ;
                  videoDatabaseMovies = null;
                }
                #endregion
                AddScapedFanartToAnyHash();

                #region Statistics
                logger.Debug("InitialScrape statistic for Category:");
                GetCategoryStatistic (true) ;
                logger.Debug("InitialScrape statistic for Provider:");
                GetProviderStatistic (true) ;
                logger.Debug("InitialScrape statistic for Actual Music Fanart/Thumbs:");
                GetAccessStatistic(true) ;
                #endregion

                logger.Info("InitialScrape is done.");
            }
            catch (Exception ex)
            {
                scraper = null;
                logger.Error("InitialScrape: " + ex);
            }
        }