<Window x:Class="HandBrakeWPF.Views.OptionsView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:cal="http://www.caliburnproject.org"
        xmlns:Helpers="clr-namespace:HandBrakeWPF.Helpers" Title="{Binding Title}" MinWidth="620" MinHeight="600" Width="620" Height="600">

    <Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Foreground" Value="DarkOrange" />
            <Setter Property="FontWeight" Value="Bold" />
            <Setter Property="Padding" Value="5,0.5" />
            <Setter Property="FontSize" Value="11.5" />
            <Setter Property="VerticalAlignment" Value="Center" />
        </Style>



        <Style TargetType="TextBlock">
            <Setter Property="Margin" Value="0,0,5,0" />
        </Style>

        <Style TargetType="CheckBox">
            <Setter Property="Margin" Value="0,0,0,5" />
        </Style>
    </Window.Resources>


    <StackPanel Orientation="Vertical" Background="#FFF1F0EF">
        <!-- Header -->
        <StackPanel Orientation="Horizontal"  Background="White" Height="50" >
            <Image Source="Images/Preferences.png" Margin="10,0,5,0" Width="32" Height="32" VerticalAlignment="Center" />
            <StackPanel Orientation="Vertical" VerticalAlignment="Center">
                <TextBlock Text="Options" FontWeight="Bold" />
                <TextBlock Text="Preferences to control various features in HandBrake" />
            </StackPanel>
        </StackPanel>

        <!-- Options Panel-->
        <TabControl Margin="10,10,10,10" Height="460">
            <TabItem Header="General">
                <StackPanel Orientation="Vertical">
                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="At Launch:" Grid.Column="0" FontWeight="Bold"/>

                        <StackPanel Orientation="Vertical" Grid.Column="1">
                            <CheckBox Content="Check for Updates" IsChecked="{Binding CheckForUpdates}" />
                            <ComboBox Name="checkForUpdateFrequency" ItemsSource="{Binding CheckForUpdatesFrequencies}" SelectedIndex="{Binding CheckForUpdatesFrequency}" Margin="25,0,0,5" HorizontalAlignment="Left" Width="120"></ComboBox>

                            <CheckBox Content="Enable Tooltips" IsChecked="{Binding EnableGuiTooltips}" />
                        </StackPanel>
                    </Grid>

                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="When Done:" Grid.Column="0" FontWeight="Bold"/>

                        <StackPanel Orientation="Vertical" Grid.Column="1">
                            <ComboBox Name="whenDone" ItemsSource="{Binding WhenDoneOptions}" SelectedItem="{Binding WhenDone}" Width="120"  HorizontalAlignment="Left"></ComboBox>

                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                                <CheckBox Content="Growl after Queue Completes" IsChecked="{Binding GrowlAfterEncode}" Margin="0,0,5,0"/>
                                <CheckBox Content="Growl after Encode Completes" IsChecked="{Binding GrowlAfterQueue}" />
                            </StackPanel>

                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                                <CheckBox Content="Send file to:" VerticalAlignment="Center" IsChecked="{Binding SendFileAfterEncode}" />
                                <TextBlock Margin="5,0,5,5" VerticalAlignment="Center" Text="{Binding SendFileTo}" />
                                <Button Content="Browse" cal:Message.Attach="[Event Click] = [Action BrowseSendFileTo]" Width="55"/>
                            </StackPanel>

                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                                <TextBlock VerticalAlignment="Center"  Margin="25,0,5,0" Text="Arguments:" />
                                <TextBox Name="SendToArguments" Text="{Binding Arguments}" Width="180" />
                            </StackPanel>

                        </StackPanel>
                    </Grid>
                </StackPanel>
            </TabItem>

            <TabItem Header="Output Files">
                <StackPanel Orientation="Vertical">
                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="Output Files:" Grid.Column="0" FontWeight="Bold"/>

                        <StackPanel Orientation="Vertical" Grid.Column="1">
                            <CheckBox Content="Automatically name output files" IsChecked="{Binding AutomaticallyNameFiles}" />

                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                                <TextBlock VerticalAlignment="Center" Text="Arguments: " />
                                <TextBox Name="autoNameOutputPath" Text="{Binding AutoNameDefaultPath}" Width="180" />
                                <Button Content="Browse" Margin="5,0,0,0" cal:Message.Attach="[Event Click] = [Action BrowseAutoNamePath]" Width="55"/>
                            </StackPanel>
                            <TextBlock Text="Available Options: {source_path} or {source_folder_name} (Not Both)" />

                            <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                                <TextBlock VerticalAlignment="Center" Text="Format:" />
                                <TextBox Name="autoNameFormat" Text="{Binding AutonameFormat}" Width="180" />
                            </StackPanel>
                            <TextBlock Text="Available Options: {source} {title} {chapters} {date}" />

                            <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
                                <CheckBox Content="Remove underscores from name" IsChecked="{Binding RemoveUnderscores}"/>
                                <CheckBox Content="Change case to Title Case" IsChecked="{Binding ChangeToTitleCase}" Margin="5,0,0,0" />
                            </StackPanel>

                            <StackPanel Orientation="Horizontal" Margin="0,15,0,0">
                                <TextBlock VerticalAlignment="Center" Text="MP4 File Extension:" />
                                <ComboBox Name="mp4FileExtension" Width="120" ItemsSource="{Binding Mp4ExtensionOptions}" SelectedIndex="{Binding SelectedMp4Extension}" HorizontalAlignment="Left"></ComboBox>
                            </StackPanel>
                        </StackPanel>
                    </Grid>
                </StackPanel>
            </TabItem>

            <TabItem Header="Preview">
                <StackPanel Orientation="Vertical">
                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="VLC Path:" Grid.Column="0" FontWeight="Bold"/>

                        <StackPanel Orientation="Vertical" Grid.Column="1">

                            <StackPanel Orientation="Horizontal">
                                <TextBlock VerticalAlignment="Center" Text="Path:" />
                                <TextBox Name="vlcPath" Text="{Binding VLCPath}"  Width="180" />
                                <Button Content="Browse" cal:Message.Attach="[Event Click] = [Action BrowseVlcPath]" Margin="5,0,0,0" Width="55"/>
                            </StackPanel>
                            <TextBlock Text="This path is used for the video preview feature only." />

                        </StackPanel>
                    </Grid>
                </StackPanel>
            </TabItem>

            <TabItem Header="Audio and Subtitles">
                <StackPanel Orientation="Vertical">

                    <TextBlock Text="Automatic Selection" Grid.Column="0" Margin="10,10,0,0" FontWeight="Bold"/>

                    <Grid Margin="10,10,0,0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="140" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="Preferred Language:" Grid.Column="0"/>
                        <StackPanel Orientation="Horizontal" Grid.Column="1">
                            <TextBlock VerticalAlignment="Center"  Text="Audio: " FontSize="10" />
                            <ComboBox Name="primaryAudioLanguage" VerticalAlignment="Center"  ItemsSource="{Binding PreferredLanguages}" SelectedItem="{Binding SelectedPreferredLangauge}" Width="120" />
                            <TextBlock VerticalAlignment="Center"  Text="Subtitles: " FontSize="10" Margin="10,0,0,0" />
                            <ComboBox Name="primarySubtitleLanguage" VerticalAlignment="Center"  ItemsSource="{Binding PreferredLanguages}" SelectedItem="{Binding SelectedPreferredSubtitleLangauge}" Width="120" />
                        </StackPanel>
                    </Grid>

                    <Grid Margin="10,10,0,0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="Additional Tracks:" Grid.Column="0"/>
                        <StackPanel Orientation="Horizontal" Grid.Column="1">
                            <Grid Margin="10,10,0,10">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>

                                <StackPanel Orientation="Vertical" Grid.Column="0">
                                    <TextBlock Text="Available Langauges" Margin="0,0,0,5"/>
                                    <ListBox Name="availableLanguages" ItemsSource="{Binding AvailableLanguages}" Helpers:ListBoxHelper.SelectedItems="{Binding SelectedAvailableToMove}" 
                                             SelectionMode="Extended" Width="140" Height="160"></ListBox>
                                </StackPanel>

                                <DockPanel Grid.Column="1" Margin="10,0,10,0">
                                    <StackPanel Orientation="Vertical" VerticalAlignment="Center">
                                        <Button VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveLeft]" Width="60" >
                                            <Image Source="Images/arrow_right.png" Width="24" Height="24" />
                                        </Button>
                                        <Button VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveRight]" Width="60" >
                                            <Image Source="Images/arrow_left.png" Width="24" Height="24" />
                                        </Button>
                                        <Button Content="Clear" VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageClearAll]" Width="60" />
                                    </StackPanel>
                                </DockPanel>

                                <StackPanel Orientation="Vertical" Grid.Column="2">
                                    <TextBlock Text="Selected Langauges"  Margin="0,0,0,5"/>
                                    <ListBox Name="selectedLangauges" ItemsSource="{Binding SelectedLangauges}" Helpers:ListBoxHelper.SelectedItems="{Binding SelectedLangaugesToMove}" 
                                             SelectionMode="Extended" Width="140" Height="160" />
                                </StackPanel>

                                <DockPanel Grid.Column="3" Margin="10,0,10,0">
                                    <StackPanel Orientation="Vertical" VerticalAlignment="Center">
                                        <Button VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveUp]"  >
                                            <Image Source="Images/arrow_up.png" Width="16" Height="16" />
                                        </Button>
                                        <Button VerticalAlignment="Center" Margin="0,0,0,5" cal:Message.Attach="[Event Click] = [Action LanguageMoveDown]"  >
                                            <Image Source="Images/arrow_down.png" Width="16" Height="16" />
                                        </Button>
                                    </StackPanel>
                                </DockPanel>

                            </Grid>
                        </StackPanel>
                    </Grid>

                    <GroupBox Header="Add Additional Tracks" >
                        <StackPanel Orientation="Vertical">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="Audio:" VerticalAlignment="Center" Margin="15,0,5,0" Width="100" />
                                <ComboBox Name="autoAudioMode" ItemsSource="{Binding AddAudioModeOptions}" SelectedIndex="{Binding SelectedAddAudioMode}" Width="120" Margin="0,0,5,0" />
                                <CheckBox Content="Add only one audio track per langauge" VerticalAlignment="Center" IsChecked="{Binding AddOnlyOneAudioTrackPerLanguage}" />
                            </StackPanel>

                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                                <TextBlock Text="Subtitle:" VerticalAlignment="Center" Margin="15,0,5,0" Width="100" />
                                <ComboBox Name="autoSubtitleMode" ItemsSource="{Binding AddSubtitleModeOptions}" SelectedIndex="{Binding SelectedAddSubtitleMode}" Width="120" Margin="0,0,5,0" />
                            </StackPanel>

                            <CheckBox Content="Add Closed Captions when available" Margin="120,5,0,0" IsChecked="{Binding AddClosedCaptions}"/>
                        </StackPanel>
                    </GroupBox>

                    <StackPanel Orientation="Vertical">
                        <Label Content="Audio Tab Options" FontWeight="Bold" />
                        <CheckBox IsChecked="{Binding ShowAdvancedPassthruOpts}" Content="Show advanced audio passthru options. (Requires Restart)"
                                  Margin="5,0,0,0" />
                    </StackPanel>

                </StackPanel>
            </TabItem>

            <TabItem Header="System and Logging">
                <StackPanel Orientation="Vertical">
                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="CLI:" Grid.Column="0" FontWeight="Bold"/>
                        <StackPanel Orientation="Horizontal" Grid.Column="1">
                            <TextBlock Text="Priority Level:" VerticalAlignment="Center" />
                            <ComboBox Name="processPriorityLevel" ItemsSource="{Binding PriorityLevelOptions}" SelectedItem="{Binding SelectedPriority}" Width="120" />
                        </StackPanel>
                    </Grid>

                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="System:" Grid.Column="0" FontWeight="Bold"/>
                        <StackPanel Orientation="Horizontal" Grid.Column="1">
                            <CheckBox Content="Prevent the system from sleeping while encoding" IsChecked="{Binding PreventSleep}" />
                        </StackPanel>
                    </Grid>

                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="Logs:" Grid.Column="0" FontWeight="Bold"/>

                        <StackPanel Orientation="Vertical" Grid.Column="1">
                            <StackPanel Orientation="Horizontal" Grid.Column="1">
                                <TextBlock Text="Log Verbosity Level:" VerticalAlignment="Center" />
                                <ComboBox Name="logVerbosityLevel" ItemsSource="{Binding LogVerbosityOptions}" SelectedItem="{Binding SelectedVerbosity}" Width="120" />
                            </StackPanel>

                            <CheckBox Content="Put a copy of individual encode logs in the same location as the encoded video" IsChecked="{Binding CopyLogToEncodeDirectory}" />
                            <CheckBox Content="Put a copy of individual encode logs in a specified location: " IsChecked="{Binding CopyLogToSepcficedLocation}" />
                            <StackPanel Orientation="Horizontal" Margin="0,10,0,0" Grid.Column="1">
                                <TextBlock Text="Log Path:" VerticalAlignment="Center" />
                                <TextBox Width="120" Text="{Binding LogDirectory}" />
                                <Button Content="Browse" Margin="5,0,0,0" cal:Message.Attach="[Event Click] = [Action BrowseLogPath]" />
                            </StackPanel>
                            <StackPanel Orientation="Horizontal" Margin="0,10,0,0" Grid.Column="1">
                                <Button Content="View Log Directory" cal:Message.Attach="[Event Click] = [Action ViewLogDirectory]" Margin="0,0,5,0" />
                                <Button Content="Clear Log History" cal:Message.Attach="[Event Click] = [Action ClearLogHistory]" />
                            </StackPanel>

                            <CheckBox Content="Clear Log files older than 30 days " Margin="0,5,0,0" IsChecked="{Binding ClearOldOlgs}" />
                        </StackPanel>

                    </Grid>
                </StackPanel>
            </TabItem>

            <TabItem Header="Advanced">
                <StackPanel Orientation="Vertical">
                    <Grid Margin="10,10,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="GUI:" Grid.Column="0" FontWeight="Bold"/>
                        <StackPanel Orientation="Vertical" Grid.Column="1">
                            <CheckBox Content="Minimize to system tray (Requires Restart)" IsChecked="{Binding MinimiseToTray}" />
                            <CheckBox Content="Display status messages from tray icon (balloon popups)" IsChecked="{Binding DisplayStatusMessagesTrayIcon}" />
                            <CheckBox Content="Enable 'Query Editor' tab (Requires Restart)" IsChecked="{Binding EnableQueryEditor}" />
                            <CheckBox Content="Prompt when a manual query does not match GUI settings" Margin="10,0,0,5" IsChecked="{Binding PromptOnDifferentQuery}" />
                            <CheckBox Content="Disable built-in preset update notification" IsChecked="{Binding DisablePresetUpdateCheckNotification}" />
                            <CheckBox Content="Show CLI window (Allows you to cleanly exit encode with ctrl-c)" IsChecked="{Binding ShowCliWindow}" />
                            <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
                                <TextBlock Text="Number of picture previews to scan:" VerticalAlignment="Center" Width="250" />
                                <ComboBox Name="numberOfPreviews" ItemsSource="{Binding PreviewPicturesToScan}" SelectedItem="{Binding SelectedPreviewCount}" Width="120" />
                            </StackPanel>
                            <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                                <TextBlock Text="Minimum length of title to scan (seconds):" VerticalAlignment="Center" Width="250" />
                                <TextBox Name="MinTitleLength" Text="{Binding MinLength}"  Width="120"/>
                                <!-- Find a control for this-->
                            </StackPanel>

                        </StackPanel>
                    </Grid>

                    <Grid Margin="10,0,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="x264:" Grid.Column="0" FontWeight="Bold"/>
                        <StackPanel Orientation="Horizontal" Grid.Column="1">
                            <TextBlock Text="Constant quality fractional granularity:" VerticalAlignment="Center" Width="250" />
                            <ComboBox Name="x264Granularity" ItemsSource="{Binding ConstantQualityGranularity}" SelectedItem="{Binding SelectedGranulairty}" Width="120"/>
                        </StackPanel>
                    </Grid>

                    <Grid Margin="10,0,0,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <TextBlock Text="DVD:" Grid.Column="0" FontWeight="Bold"/>

                        <StackPanel Orientation="Vertical" Grid.Column="1">
                            <CheckBox Content="Disable LibDVDNav. (libdvdread will be used instead)" IsChecked="{Binding DisableLibdvdNav}" />
                        </StackPanel>

                    </Grid>
                </StackPanel>
            </TabItem>
        </TabControl>

        <Button Content="Close" IsDefault="True" cal:Message.Attach="[Event Click] = [Action Close]"
                    HorizontalAlignment="Right" Padding="10,2" Margin="0,0,10,0" />


    </StackPanel>
</Window>
