private void AddWordsToPanel(SubtitleItem SubItem)
        {
            player.Pause();
            CollectPhrases_Buttons.Clear();

            if (SubItem == null) return;

            if (SubItem.IsCollect)
            {
                CollectedPhraseText = SubItem.Text;
                return;
            }

            CurrentPhrase = new PhraseOfCollectMode(SubItem);
            CurrentPhrase.StartRandomSelection();
            for (int i = 0; i < CurrentPhrase.Words.Count; i++)
            {
                PhraseOfCollectMode.Word word = CurrentPhrase.GetNextRandom();
                CollectPhrases_Buttons.Add(new ButtonModel() { WordOfButton = word,Visibility = VisualState.Visible});
            }
            player.Play();
        }
        protected void SetCurrentWord(WordOfDictionary item)
        {

            if (!IsInDesignMode)
            {
                if (CurrentWord != null)  CurrentWord.PropertyChanged -= CurrentWord_PropertyChanged;
            }
            
            CurrentWord = item;

            

            if (!IsInDesignMode)
            {
                CmdDispatcher("SpeechItem");
                CurrentWord.PropertyChanged += CurrentWord_PropertyChanged;
                // Language services
                LanguageServiceCollection = LanguageServices.GetServices(CurrentWord.TargetLanguage,CurrentWord.NativeLanguage);
            }

            // default setting
            btnOk.Visibility = VisualState.Collapsed;
            ImagesList_Visibility = VisualState.Collapsed;
            ErrorIconVisibility = VisualState.Collapsed;
            EditModeVisibility = VisualState.Collapsed;

            

            bool Testing = false;
            switch (mode)
            {
                case WordsTranslation_parameters.ViewMode.FoundNewWord:
                    Header_LabelModel.Text  = Tx.T("WordsTranslation.Caption.NewWordsFound");
                    Header2_LabelModel.Text = Tx.T("WordsTranslation.Caption.NewWordsFound.Second");

                    //Testing = LearningItem.TestingUnderstandingNewWords;
                    Testing = true;

                    btnTrainingNext.Visibility = VisualState.Collapsed;
                    ImagePanelVisibility = Testing ? VisualState.Collapsed : VisualState.Visible;
                    WordsButtonPanelVisibility = Testing ? VisualState.Visible : VisualState.Collapsed;
                    TranslatingVisibility = Testing ? VisualState.Hidden : VisualState.Visible;
                    if (TranslatingVisibility == VisualState.Visible)
                    {
                        CommentaryVisibilty = string.IsNullOrEmpty(CurrentWord.commentary) ? VisualState.Collapsed : VisualState.Visible;
                    } else
                    {
                        CommentaryVisibilty = VisualState.Hidden;
                    }
                    BottomButtonsPanelVisibility = Testing ? VisualState.Collapsed : VisualState.Visible;

                    break;

                case WordsTranslation_parameters.ViewMode.Training:
                    Header_LabelModel.Text = Tx.T("WordsTranslation.Caption.Training");
                    Testing = true;
                    btnTrainingNext.Visibility = VisualState.Hidden;
                    ImagePanelVisibility = VisualState.Hidden;
                    WordsButtonPanelVisibility = VisualState.Visible;
                    TranslatingVisibility = VisualState.Hidden;
                    CommentaryVisibilty = VisualState.Hidden;
                    BottomButtonsPanelVisibility = VisualState.Collapsed;
                    WordsCollection_ListModel.Visibility = VisualState.Visible;
                    btnPreviousButton.Visibility = VisualState.Collapsed;
                    btnNextButton.Visibility = VisualState.Collapsed;
                    ContextVisibility = VisualState.Collapsed;
                    break;

                case WordsTranslation_parameters.ViewMode.WordTranslation:
                    Header_LabelModel.Text = Tx.T("WordsTranslation.Caption.Translation");
                    Testing = false;
                    btnTrainingNext.Visibility = VisualState.Visible;
                    btnPreviousButton.Visibility = VisualState.Hidden;
                    btnNextButton.Visibility = VisualState.Hidden;
                    WordsCollection_ListModel.Visibility = VisualState.Visible;
                    break;

                case WordsTranslation_parameters.ViewMode.DictionaryItem:
                    Header_LabelModel.Text = Tx.T("WordsTranslation.Caption.Translation");
                    Testing = false;
                    btnTrainingNext.Visibility = VisualState.Visible;
                    btnPreviousButton.Visibility = VisualState.Hidden;
                    btnNextButton.Visibility = VisualState.Hidden;
                    WordsCollection_ListModel.Visibility = VisualState.Visible;
                    WordsButtonPanelVisibility = VisualState.Collapsed;
                    BottomButtonsPanelVisibility = VisualState.Collapsed;
                    btnTrainingNext.Visibility = VisualState.Collapsed;
                    btnAllWordsList.Visibility = VisualState.Collapsed;
                    break;
                    
                case WordsTranslation_parameters.ViewMode.Edit:
                    btnPreviousButton.Visibility = VisualState.Collapsed;
                    btnNextButton.Visibility = VisualState.Collapsed;
                    WordsCollection_ListModel.Visibility = VisualState.Collapsed;
                    btnOk.Visibility = VisualState.Visible;
                    BottomButtonsPanelVisibility = VisualState.Collapsed;
                    WordsButtonPanelVisibility = VisualState.Collapsed;
                    btnTrainingNext.Visibility = VisualState.Collapsed;
                    TranslatingVisibility = VisualState.Visible;
                    CommentaryVisibilty = VisualState.Visible;
                    RightPanel_Properties.IsChecked = true;
                    ImagesList_Visibility = VisualState.Visible;
                    EditModeVisibility = VisualState.Visible;
                    ContextVisibility = VisualState.Collapsed;
                    
                    break;

                default:
                    throw new NotImplementedException();
            }
            if (IsInDesignMode) return;
            /*
            btnSkip.Visibility = Visibility.Visible;
            if(Testing)
            {
                btnPreviousButton.Visibility = Visibility.Hidden;
                btnNextButton.Visibility = Visibility.Hidden;
                WordsCollection_ListModel.Visibility = Visibility.Visible;
            } else
            {
                WordsCollection_ListModel.Visibility = Visibility.Collapsed;
                btnNextButton.Visibility = idx < WordsCollection.Count - 1 ? Visibility.Visible : Visibility.Hidden;
                btnPreviousButton.Visibility = idx > 0 ? Visibility.Visible : Visibility.Hidden;
            }
            */

            if (IsInDesignMode) return;

            if (Testing)
            {
                PhraseOfCollectMode phrase = new PhraseOfCollectMode();
                PhraseOfCollectMode.Word trueword = new PhraseOfCollectMode.Word() { word_of_phrase = CurrentWord.translation_as_string };
                phrase.Words.Add(trueword);

                if(CurrentWord.translation_as_string.Length > 0)
                {
                    Dictionary dict_ = CurrentWord.Dictionary;
                    if (dict_ == null)
                    {
                        SystemMessage.Show("Dictionary is null " + CurrentWord);
                        return;
                    }
                    Language lang_ = dict_.SecondaryLanguage;
                    if(lang_ == null)
                    {
                        SystemMessage.Show("Language is null " + dict_);
                        return;
                    }
                    FrequencyDictionary fdic_ = lang_.FrequencyDictionary;
                    if(fdic_ == null)
                    {
                        SystemMessage.Show("Frequency dictionary is null" + dict_);
                        return;
                    }

                    ObservableCollection<FrequencyDictionary.Item> coll = fdic_.GetRndWords(4);
                    foreach(var elm in coll)
                    {
                        phrase.Words.Add(new PhraseOfCollectMode.Word() { word_of_phrase = elm.Lemma});
                    }
                } else SystemMessage.Show("Can't found translation for "+CurrentWord);

                WordsForSelection_Buttons.Clear();
                phrase.StartRandomSelection();
                for (int i = 0; i < phrase.Words.Count; i++)
                {
                    PhraseOfCollectMode.Word word = phrase.GetNextRandom();
                    WordsForSelection_Buttons.Add(new ButtonModel() { Text=word.word_of_phrase, WordOfButton = word,IsItTrue = word == trueword});
                }
            }
        }