private void SetupWindowsUsingFanartHandlerVisibility(string SkinDir = (string) null, string ThemeDir = (string) null)
        {
            var path = string.Empty ;

              if (string.IsNullOrEmpty(SkinDir))
              {
            FS.WindowsUsingFanartSelectedMusic = new Hashtable();
            FS.WindowsUsingFanartSelectedScoreCenter = new Hashtable();
            FS.WindowsUsingFanartSelectedMovie = new Hashtable();
            FP.WindowsUsingFanartPlay = new Hashtable();
            FR.WindowsUsingFanartRandom = new Hashtable();

            path = GUIGraphicsContext.Skin + @"\";
            logger.Debug("Scan Skin folder for XML: "+path) ;
              }
              else
              {
            path = ThemeDir;
            logger.Debug("Scan Skin Theme folder for XML: "+path) ;
              }

              var files = new DirectoryInfo(path).GetFiles("*.xml");
              var XMLName = string.Empty;

              foreach (var fileInfo in files)
              {
            try
            {
              XMLName = fileInfo.Name;

              var _flag1Music = false;
              var _flag2Music = false;
              var _flag1ScoreCenter = false;
              var _flag2ScoreCenter = false;
              var _flag1Movie = false;
              var _flag2Movie = false;
              var _flagPlay = false;

              var XMLFolder = fileInfo.FullName.Substring(0, fileInfo.FullName.LastIndexOf("\\"));
              var navigator = new XPathDocument(fileInfo.FullName).CreateNavigator();
              var nodeValue = GetNodeValue(navigator.Select("/window/id"));

              if (!string.IsNullOrEmpty(nodeValue))
              {
            HandleXmlImports(fileInfo.FullName, nodeValue, ref _flag1Music, ref _flag2Music, ref _flag1ScoreCenter, ref _flag2ScoreCenter, ref _flag1Movie, ref _flag2Movie, ref _flagPlay);
            var xpathNodeIterator = navigator.Select("/window/controls/import");
            if (xpathNodeIterator.Count > 0)
            {
              while (xpathNodeIterator.MoveNext())
              {
                var XMLFullName = Path.Combine(XMLFolder, xpathNodeIterator.Current.Value);
                if (File.Exists(XMLFullName))
                  HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music, ref _flag1ScoreCenter, ref _flag2ScoreCenter, ref _flag1Movie, ref _flag2Movie, ref _flagPlay);
                else if ((!string.IsNullOrEmpty(SkinDir)) && (!string.IsNullOrEmpty(ThemeDir)))
                  {
                    XMLFullName = Path.Combine(SkinDir, xpathNodeIterator.Current.Value);
                    if (File.Exists(XMLFullName))
                      HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music, ref _flag1ScoreCenter, ref _flag2ScoreCenter, ref _flag1Movie, ref _flag2Movie, ref _flagPlay);
                  }
              }
            }
            xpathNodeIterator = navigator.Select("/window/controls/include");
            if (xpathNodeIterator.Count > 0)
            {
              while (xpathNodeIterator.MoveNext())
              {
                var XMLFullName = Path.Combine(XMLFolder, xpathNodeIterator.Current.Value);
                if (File.Exists(XMLFullName))
                  HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music, ref _flag1ScoreCenter, ref _flag2ScoreCenter, ref _flag1Movie, ref _flag2Movie, ref _flagPlay);
                else if ((!string.IsNullOrEmpty(SkinDir)) && (!string.IsNullOrEmpty(ThemeDir)))
                  {
                    XMLFullName = Path.Combine(SkinDir, xpathNodeIterator.Current.Value);
                    if (File.Exists(XMLFullName))
                      HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music, ref _flag1ScoreCenter, ref _flag2ScoreCenter, ref _flag1Movie, ref _flag2Movie, ref _flagPlay);
                  }
              }
            }

            if (_flag1Music && _flag2Music && !FS.WindowsUsingFanartSelectedMusic.Contains(nodeValue))
              FS.WindowsUsingFanartSelectedMusic.Add(nodeValue, nodeValue);
            if (_flag1ScoreCenter && _flag2ScoreCenter && !FS.WindowsUsingFanartSelectedScoreCenter.Contains(nodeValue))
              FS.WindowsUsingFanartSelectedScoreCenter.Add(nodeValue, nodeValue);
            if (_flag1Movie && _flag2Movie && !FS.WindowsUsingFanartSelectedMovie.Contains(nodeValue))
              FS.WindowsUsingFanartSelectedMovie.Add(nodeValue, nodeValue);
            if (_flagPlay && !FP.WindowsUsingFanartPlay.Contains(nodeValue))
                FP.WindowsUsingFanartPlay.Add(nodeValue, nodeValue);

            #region Random
            var skinFile = new FanartRandom.SkinFile();
            xpathNodeIterator = navigator.Select("/window/define");
            if (xpathNodeIterator.Count > 0)
            {
              while (xpathNodeIterator.MoveNext())
              {
                var s = xpathNodeIterator.Current.Value;
                if (s.StartsWith("#useRandomGamesUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomGamesFanartUser = ParseNodeValue(s);
                if (s.StartsWith("#useRandomMoviesUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMoviesFanartUser = ParseNodeValue(s);
                if (s.StartsWith("#useRandomMoviesScraperFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMoviesFanartScraper = ParseNodeValue(s);
                if (s.StartsWith("#useRandomMovingPicturesFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMovingPicturesFanart = ParseNodeValue(s);
                if (s.StartsWith("#useRandomMusicUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMusicFanartUser = ParseNodeValue(s);
                if (s.StartsWith("#useRandomMusicScraperFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMusicFanartScraper = ParseNodeValue(s);
                if (s.StartsWith("#useRandomPicturesUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomPicturesFanartUser = ParseNodeValue(s);
                if (s.StartsWith("#useRandomScoreCenterUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomScoreCenterFanartUser = ParseNodeValue(s);
                if (s.StartsWith("#useRandomTVSeriesFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomTVSeriesFanart = ParseNodeValue(s);
                if (s.StartsWith("#useRandomTVUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomTVFanartUser = ParseNodeValue(s);
                if (s.StartsWith("#useRandomPluginsUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomPluginsFanartUser = ParseNodeValue(s);
              }
              if (string.IsNullOrEmpty(skinFile.UseRandomGamesFanartUser))
                skinFile.UseRandomGamesFanartUser = "******";
              if (string.IsNullOrEmpty(skinFile.UseRandomMoviesFanartUser))
                skinFile.UseRandomMoviesFanartUser = "******";
              if (string.IsNullOrEmpty(skinFile.UseRandomMoviesFanartScraper))
                skinFile.UseRandomMoviesFanartScraper = "False";
              if (string.IsNullOrEmpty(skinFile.UseRandomMovingPicturesFanart))
                skinFile.UseRandomMovingPicturesFanart = "False";
              if (string.IsNullOrEmpty(skinFile.UseRandomMusicFanartUser))
                skinFile.UseRandomMusicFanartUser = "******";
              if (string.IsNullOrEmpty(skinFile.UseRandomMusicFanartScraper))
                skinFile.UseRandomMusicFanartScraper = "False";
              if (string.IsNullOrEmpty(skinFile.UseRandomPicturesFanartUser))
                skinFile.UseRandomPicturesFanartUser = "******";
              if (string.IsNullOrEmpty(skinFile.UseRandomScoreCenterFanartUser))
                skinFile.UseRandomScoreCenterFanartUser = "******";
              if (string.IsNullOrEmpty(skinFile.UseRandomTVSeriesFanart))
                skinFile.UseRandomTVSeriesFanart = "False";
              if (string.IsNullOrEmpty(skinFile.UseRandomTVFanartUser))
                skinFile.UseRandomTVFanartUser = "******";
              if (string.IsNullOrEmpty(skinFile.UseRandomPluginsFanartUser))
                skinFile.UseRandomPluginsFanartUser = "******";
            }
            try
            {
              if (skinFile.UseRandomGamesFanartUser.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomMoviesFanartUser.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomMoviesFanartScraper.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomMovingPicturesFanart.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomMusicFanartUser.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomMusicFanartScraper.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomPicturesFanartUser.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomScoreCenterFanartUser.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomTVSeriesFanart.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomTVFanartUser.Equals("False", StringComparison.CurrentCulture) &&
                  skinFile.UseRandomPluginsFanartUser.Equals("False", StringComparison.CurrentCulture)
                 )
              {
                continue;
              }
              if (!FR.WindowsUsingFanartRandom.Contains(nodeValue))
                FR.WindowsUsingFanartRandom.Add(nodeValue, skinFile);
              else
                FR.WindowsUsingFanartRandom[nodeValue] = skinFile ;
            }
            catch {  }
            #endregion
              }
            }
            catch (Exception ex)
            {
              logger.Error("SetupWindowsUsingFanartHandlerVisibility: "+(string.IsNullOrEmpty(ThemeDir) ? string.Empty : "Theme: "+ThemeDir+" ")+"Filename:"+ XMLName) ;
              logger.Error(ex) ;
            }
              }

              if (string.IsNullOrEmpty(ThemeDir) && !string.IsNullOrEmpty(GUIGraphicsContext.ThemeName))
              {
            // Include Themes
            var tThemeDir = path+@"Themes\"+GUIGraphicsContext.ThemeName.Trim()+@"\";
            if (Directory.Exists(tThemeDir))
              {
            SetupWindowsUsingFanartHandlerVisibility(path, tThemeDir);
            return;
              }
            tThemeDir = path+GUIGraphicsContext.ThemeName.Trim()+@"\";
            if (Directory.Exists(tThemeDir))
              SetupWindowsUsingFanartHandlerVisibility(path, tThemeDir);
              }
        }
        private void SetupWindowsUsingFanartHandlerVisibility(string SkinDir = (string) null, string ThemeDir = (string) null)
        {
            var path = string.Empty;
              var theme = string.Empty;

              if (string.IsNullOrEmpty(SkinDir))
              {
            path = GUIGraphicsContext.Skin + @"\";
            theme = Utils.GetThemeFolder(path);
            logger.Debug("Scan Skin folder for XML: "+path) ;
              }
              else
              {
            path = ThemeDir;
            logger.Debug("Scan Skin Theme folder for XML: "+path) ;
              }

              var files = new DirectoryInfo(path).GetFiles("*.xml");
              var XMLName = string.Empty;

              foreach (var fileInfo in files)
              {
            try
            {
              XMLName = fileInfo.Name;

              var _flag1Music = false;
              var _flag2Music = false;
              var _flag1ScoreCenter = false;
              var _flag2ScoreCenter = false;
              var _flag1Movie = false;
              var _flag2Movie = false;
              var _flag1Picture = false;
              var _flag2Picture = false;
              var _flagPlay = false;

              var _flagGenrePlay = false;
              var _flagGenrePlayAll = false;
              var _flagGenrePlayVertical = false;

              var _flagGenreMusic = false;
              var _flagGenreMusicAll = false;
              var _flagGenreMusicVertical = false;

              var _flagAwardMovie = false;
              var _flagAwardMovieAll = false;
              var _flagAwardMovieVertical = false;
              var _flagGenreMovie = false;
              var _flagGenreMovieAll = false;
              var _flagGenreMovieVertical = false;
              var _flagStudioMovie = false;
              var _flagStudioMovieAll = false;
              var _flagStudioMovieVertical = false;

              var _flagClearArt = false;
              var _flagClearArtPlay = false;

              var XMLFolder = fileInfo.FullName.Substring(0, fileInfo.FullName.LastIndexOf("\\"));
              var navigator = new XPathDocument(fileInfo.FullName).CreateNavigator();
              var nodeValue = GetNodeValue(navigator.Select("/window/id"));

              if (!string.IsNullOrEmpty(nodeValue))
              {
            HandleXmlImports(fileInfo.FullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                           ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                           ref _flag1Movie, ref _flag2Movie,
                                                           ref _flag1Picture, ref _flag2Picture,
                                                           ref _flagPlay,
                                                           ref _flagClearArt, ref _flagClearArtPlay,
                                                           ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                           ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                           ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                           ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                           ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                           );
            var xpathNodeIterator = navigator.Select("/window/controls/import");
            if (xpathNodeIterator.Count > 0)
            {
              while (xpathNodeIterator.MoveNext())
              {
                var XMLFullName = Path.Combine(XMLFolder, xpathNodeIterator.Current.Value);
                if (File.Exists(XMLFullName))
                {
                  HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                           ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                           ref _flag1Movie, ref _flag2Movie,
                                                           ref _flag1Picture, ref _flag2Picture,
                                                           ref _flagPlay,
                                                           ref _flagClearArt, ref _flagClearArtPlay,
                                                           ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                           ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                           ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                           ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                           ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                           );
                  if (!string.IsNullOrEmpty(theme))
                  {
                    XMLFullName = Path.Combine(theme, xpathNodeIterator.Current.Value);
                    if (File.Exists(XMLFullName))
                      HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                               ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                               ref _flag1Movie, ref _flag2Movie,
                                                               ref _flag1Picture, ref _flag2Picture,
                                                               ref _flagPlay,
                                                               ref _flagClearArt, ref _flagClearArtPlay,
                                                               ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                               ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                               ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                               ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                               ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                               );
                  }
                }
                else if ((!string.IsNullOrEmpty(SkinDir)) && (!string.IsNullOrEmpty(ThemeDir)))
                {
                  XMLFullName = Path.Combine(SkinDir, xpathNodeIterator.Current.Value);
                  if (File.Exists(XMLFullName))
                    HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                             ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                             ref _flag1Movie, ref _flag2Movie,
                                                             ref _flag1Picture, ref _flag2Picture,
                                                             ref _flagPlay,
                                                             ref _flagClearArt, ref _flagClearArtPlay,
                                                             ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                             ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                             ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                             ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                             ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                             );
                }
              }
            }
            xpathNodeIterator = navigator.Select("/window/controls/include");
            if (xpathNodeIterator.Count > 0)
            {
              while (xpathNodeIterator.MoveNext())
              {
                var XMLFullName = Path.Combine(XMLFolder, xpathNodeIterator.Current.Value);
                if (File.Exists(XMLFullName))
                {
                  HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                           ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                           ref _flag1Movie, ref _flag2Movie,
                                                           ref _flag1Picture, ref _flag2Picture,
                                                           ref _flagPlay,
                                                           ref _flagClearArt, ref _flagClearArtPlay,
                                                           ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                           ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                           ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                           ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                           ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                           );
                  if (!string.IsNullOrEmpty(theme))
                  {
                    XMLFullName = Path.Combine(theme, xpathNodeIterator.Current.Value);
                    if (File.Exists(XMLFullName))
                      HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                               ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                               ref _flag1Movie, ref _flag2Movie,
                                                               ref _flag1Picture, ref _flag2Picture,
                                                               ref _flagPlay,
                                                               ref _flagClearArt, ref _flagClearArtPlay,
                                                               ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                               ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                               ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                               ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                               ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                               );
                  }
                }
                else if ((!string.IsNullOrEmpty(SkinDir)) && (!string.IsNullOrEmpty(ThemeDir)))
                {
                  XMLFullName = Path.Combine(SkinDir, xpathNodeIterator.Current.Value);
                  if (File.Exists(XMLFullName))
                    HandleXmlImports(XMLFullName, nodeValue, ref _flag1Music, ref _flag2Music,
                                                             ref _flag1ScoreCenter, ref _flag2ScoreCenter,
                                                             ref _flag1Movie, ref _flag2Movie,
                                                             ref _flag1Picture, ref _flag2Picture,
                                                             ref _flagPlay,
                                                             ref _flagClearArt, ref _flagClearArtPlay,
                                                             ref _flagGenrePlay, ref _flagGenrePlayAll, ref _flagGenrePlayVertical,
                                                             ref _flagGenreMusic, ref _flagGenreMusicAll, ref _flagGenreMusicVertical,
                                                             ref _flagGenreMovie, ref _flagGenreMovieAll, ref _flagGenreMovieVertical,
                                                             ref _flagStudioMovie, ref _flagStudioMovieAll, ref _flagStudioMovieVertical,
                                                             ref _flagAwardMovie, ref _flagAwardMovieAll, ref _flagAwardMovieVertical
                                                             );
                }
              }
            }

            if (_flag1Music && _flag2Music && !Utils.ContainsID(FSelected.WindowsUsingFanartSelectedMusic, nodeValue))
            {
              FSelected.WindowsUsingFanartSelectedMusic.Add(nodeValue, nodeValue);
            }
            if (_flag1ScoreCenter && _flag2ScoreCenter && !Utils.ContainsID(FSelected.WindowsUsingFanartSelectedScoreCenter, nodeValue))
            {
              FSelected.WindowsUsingFanartSelectedScoreCenter.Add(nodeValue, nodeValue);
            }
            if (_flag1Movie && _flag2Movie && !Utils.ContainsID(FSelected.WindowsUsingFanartSelectedMovie, nodeValue))
            {
              FSelected.WindowsUsingFanartSelectedMovie.Add(nodeValue, nodeValue);
            }
            if (_flag1Picture && _flag2Picture && !Utils.ContainsID(FSelected.WindowsUsingFanartSelectedPictures, nodeValue))
            {
              FSelected.WindowsUsingFanartSelectedPictures.Add(nodeValue, nodeValue);
            }
            if (_flagPlay && !Utils.ContainsID(FPlay.WindowsUsingFanartPlay, nodeValue))
            {
              FPlay.WindowsUsingFanartPlay.Add(nodeValue, nodeValue);
            }

            #region ClearArt
            // Play Music ClearArt
            if (_flagClearArtPlay && !Utils.ContainsID(FPlayOther.WindowsUsingFanartPlayClearArt, nodeValue))
            {
              FPlayOther.WindowsUsingFanartPlayClearArt.Add(nodeValue, nodeValue);
            }
            // Selected Music ClearArt
            if (_flagClearArt && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedClearArtMusic, nodeValue))
            {
              FSelectedOther.WindowsUsingFanartSelectedClearArtMusic.Add(nodeValue, nodeValue);
            }
            #endregion

            #region Genres and Studios
            // Play Music Genre
            if (_flagGenrePlay && !Utils.ContainsID(FPlayOther.WindowsUsingFanartPlayGenre, nodeValue))
            {
              FPlayOther.WindowsUsingFanartPlayGenre.Add(nodeValue, nodeValue);
            }
            if (_flagGenrePlayAll && !Utils.ContainsID(FPlayOther.WindowsUsingFanartPlayGenre, nodeValue + Utils.Logo.Horizontal))
            {
              FPlayOther.WindowsUsingFanartPlayGenre.Add(nodeValue + Utils.Logo.Horizontal, nodeValue + Utils.Logo.Horizontal);
            }
            if (_flagGenrePlayVertical && !Utils.ContainsID(FPlayOther.WindowsUsingFanartPlayGenre, nodeValue + Utils.Logo.Vertical))
            {
              FPlayOther.WindowsUsingFanartPlayGenre.Add(nodeValue + Utils.Logo.Vertical, nodeValue + Utils.Logo.Vertical);
            }
            // Selected Music Genre
            if (_flagGenreMusic && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedGenreMusic, nodeValue))
            {
              FSelectedOther.WindowsUsingFanartSelectedGenreMusic.Add(nodeValue, nodeValue);
            }
            if (_flagGenreMusicAll && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedGenreMusic, nodeValue + Utils.Logo.Horizontal))
            {
              FSelectedOther.WindowsUsingFanartSelectedGenreMusic.Add(nodeValue + Utils.Logo.Horizontal, nodeValue + Utils.Logo.Horizontal);
            }
            if (_flagGenreMusicVertical && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedGenreMusic, nodeValue + Utils.Logo.Vertical))
            {
              FSelectedOther.WindowsUsingFanartSelectedGenreMusic.Add(nodeValue + Utils.Logo.Vertical, nodeValue + Utils.Logo.Vertical);
            }
            // Selected Movie Award
            if (_flagAwardMovie && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedAwardMovie, nodeValue))
            {
              FSelectedOther.WindowsUsingFanartSelectedAwardMovie.Add(nodeValue, nodeValue);
            }
            if (_flagAwardMovieAll && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedAwardMovie, nodeValue + Utils.Logo.Horizontal))
            {
              FSelectedOther.WindowsUsingFanartSelectedAwardMovie.Add(nodeValue + Utils.Logo.Horizontal, nodeValue + Utils.Logo.Horizontal);
            }
            if (_flagAwardMovieVertical && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedAwardMovie, nodeValue + Utils.Logo.Vertical))
            {
              FSelectedOther.WindowsUsingFanartSelectedAwardMovie.Add(nodeValue + Utils.Logo.Vertical, nodeValue + Utils.Logo.Vertical);
            }
            // Selected Movie Genre
            if (_flagGenreMovie && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedGenreMovie, nodeValue))
            {
              FSelectedOther.WindowsUsingFanartSelectedGenreMovie.Add(nodeValue, nodeValue);
            }
            if (_flagGenreMovieAll && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedGenreMovie, nodeValue + Utils.Logo.Horizontal))
            {
              FSelectedOther.WindowsUsingFanartSelectedGenreMovie.Add(nodeValue + Utils.Logo.Horizontal, nodeValue + Utils.Logo.Horizontal);
            }
            if (_flagGenreMovieVertical && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedGenreMovie, nodeValue + Utils.Logo.Vertical))
            {
              FSelectedOther.WindowsUsingFanartSelectedGenreMovie.Add(nodeValue + Utils.Logo.Vertical, nodeValue + Utils.Logo.Vertical);
            }
            // Selected Movie Studio
            if (_flagStudioMovie && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedStudioMovie, nodeValue))
            {
              FSelectedOther.WindowsUsingFanartSelectedStudioMovie.Add(nodeValue, nodeValue);
            }
            if (_flagStudioMovieAll && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedStudioMovie, nodeValue + Utils.Logo.Horizontal))
            {
              FSelectedOther.WindowsUsingFanartSelectedStudioMovie.Add(nodeValue + Utils.Logo.Horizontal, nodeValue + Utils.Logo.Horizontal);
            }
            if (_flagStudioMovieVertical && !Utils.ContainsID(FSelectedOther.WindowsUsingFanartSelectedStudioMovie, nodeValue + Utils.Logo.Vertical))
            {
              FSelectedOther.WindowsUsingFanartSelectedStudioMovie.Add(nodeValue + Utils.Logo.Vertical, nodeValue + Utils.Logo.Vertical);
            }
            #endregion

            #region Random
            var skinFile = new FanartRandom.SkinFile();
            xpathNodeIterator = navigator.Select("/window/define");
            if (xpathNodeIterator.Count > 0)
            {
              while (xpathNodeIterator.MoveNext())
              {
                var s = xpathNodeIterator.Current.Value;
                if (s.StartsWith("#useRandomGamesUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomGamesFanartUser = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomMoviesUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMoviesFanartUser = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomMoviesScraperFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMoviesFanartScraper = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomMovingPicturesFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMovingPicturesFanart = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomMusicUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMusicFanartUser = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomMusicScraperFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomMusicFanartScraper = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomPicturesUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomPicturesFanartUser = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomScoreCenterUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomScoreCenterFanartUser = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomTVSeriesFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomTVSeriesFanart = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomTVUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomTVFanartUser = Utils.GetBool(ParseNodeValue(s));
                if (s.StartsWith("#useRandomPluginsUserFanart", StringComparison.CurrentCulture))
                  skinFile.UseRandomPluginsFanartUser = Utils.GetBool(ParseNodeValue(s));
                // logger.Debug("*** Random check: " + s + " - " + nodeValue);
              }
            }
            try
            {
              if (skinFile.UseRandomGamesFanartUser ||
                  skinFile.UseRandomMoviesFanartUser ||
                  skinFile.UseRandomMoviesFanartScraper ||
                  skinFile.UseRandomMovingPicturesFanart ||
                  skinFile.UseRandomMusicFanartUser ||
                  skinFile.UseRandomMusicFanartScraper ||
                  skinFile.UseRandomPicturesFanartUser ||
                  skinFile.UseRandomScoreCenterFanartUser ||
                  skinFile.UseRandomTVSeriesFanart ||
                  skinFile.UseRandomTVFanartUser ||
                  skinFile.UseRandomPluginsFanartUser)
              {
                if (Utils.ContainsID(FRandom.WindowsUsingFanartRandom, nodeValue))
                {
                  FRandom.WindowsUsingFanartRandom[nodeValue] = skinFile ;
                  // logger.Debug("*** Random update: " + nodeValue + " - " + (string.IsNullOrEmpty(ThemeDir) ? string.Empty : "Theme: "+ThemeDir+" ")+" Filename:" + XMLName);
                }
                else
                {
                  FRandom.WindowsUsingFanartRandom.Add(nodeValue, skinFile);
                  // logger.Debug("*** Random add: " + nodeValue + " - " + (string.IsNullOrEmpty(ThemeDir) ? string.Empty : "Theme: "+ThemeDir+" ")+" Filename:" + XMLName);
                }
              }
            }
            catch {  }
            #endregion
              }
            }
            catch (Exception ex)
            {
              logger.Error("SetupWindowsUsingFanartHandlerVisibility: " + (string.IsNullOrEmpty(ThemeDir) ? string.Empty : "Theme: "+ThemeDir+" ")+" Filename:" + XMLName);
              logger.Error(ex) ;
            }
              }

              if (string.IsNullOrEmpty(ThemeDir))
              {
            // Include Themes
            if (!string.IsNullOrEmpty(theme))
            {
              SetupWindowsUsingFanartHandlerVisibility(path, theme);
            }
              }
        }