/// <summary>
        /// Initializes a new instance of the <see cref="OptionsViewModel"/> class.
        /// </summary>
        public OptionsViewModel()
        {
            try
            {
                errorLogViewModel = new ErrorLogViewModel();
                OptionModel = new Options();
                optionsXmlAccess = new OptionsXmlAccess();
                OptionModel = optionsXmlAccess.LoadOptions();

                switch (OptionModel.Resolution)
                {
                    case "580x420":
                        HorizontalScaleNumber = 580;
                        VerticalScaleNumber = 420;
                        break;
                    case "640x480":
                        HorizontalScaleNumber = 640;
                        VerticalScaleNumber = 480;
                        break;
                    case "800x600":
                        HorizontalScaleNumber = 800;
                        VerticalScaleNumber = 600;
                        break;
                }
            }
            catch
            { }
        }
        /// <summary>
        /// Loads the items from the options xml file.
        /// </summary>
        /// <returns>The list of highscore items or null.</returns>
        public Options LoadOptions()
        {
            try
            {
                if (FileExists(PathString))
                {
                    // Open the options xml file.
                    XDocument highscoresFromXml = XDocument.Load(PathString);
                    var readDataFromXml = highscoresFromXml.Descendants("option");

                    // Get the items from the options xml file.
                    Options returnValue = new Options();
                    var fromXml = from x in readDataFromXml
                                  select x;

                    // Store the items in an Options object.
                    foreach (var oneElement in fromXml)
                    {
                        returnValue.Resolution = (string)oneElement.Element("resolution");
                        returnValue.LeftMove = (string)oneElement.Element("leftkey");
                        returnValue.PauseButton = (string)oneElement.Element("pausekey");
                        returnValue.FireButton = (string)oneElement.Element("firekey");
                        returnValue.IsMouseEnabled = (bool)oneElement.Element("mouse");
                        returnValue.RightMove = (string)oneElement.Element("rightkey");
                        returnValue.IsKeyboardEnabled = (bool)oneElement.Element("keyboard");
                        returnValue.IsSoundEnabled = (bool)oneElement.Element("sound");
                        returnValue.MapNumber = (int)oneElement.Element("map");
                        returnValue.Difficulty = (int)oneElement.Element("difficulty");
                    }

                    return returnValue;
                }

                return null;
            }
            catch
            {
                return null;
            }
        }
        /// <summary>
        /// Updates the items in the options xml file.
        /// </summary>
        /// <param name="options">The options.</param>
        public void SaveOptions(Options options)
        {
            try
            {
                if (options != null && FileExists(PathString))
                {
                    // Open the options xml file.
                    XDocument settingsFromXml = XDocument.Load(PathString);
                    var readDataFromXml = settingsFromXml.Descendants("option");

                    // Get the items from the options xml file.
                    var fromXml = from x in readDataFromXml
                                  select x;

                    // Update the values in the options xml file.
                    foreach (var oneElement in fromXml)
                    {
                        fromXml.Single().Element("leftkey").Value = options.LeftMove;
                        fromXml.Single().Element("rightkey").Value = options.RightMove;
                        fromXml.Single().Element("pausekey").Value = options.PauseButton;
                        fromXml.Single().Element("resolution").Value = options.Resolution;
                        fromXml.Single().Element("firekey").Value = options.FireButton;
                        fromXml.Single().Element("mouse").Value = options.IsMouseEnabled.ToString();
                        fromXml.Single().Element("keyboard").Value = options.IsKeyboardEnabled.ToString();
                        fromXml.Single().Element("sound").Value = options.IsSoundEnabled.ToString();
                        fromXml.Single().Element("map").Value = options.MapNumber.ToString();
                        fromXml.Single().Element("difficulty").Value = options.Difficulty.ToString();
                    }

                    // Update the items in the options xml file.
                    settingsFromXml.Save(PathString);
                }
            }
            catch
            { }
        }