﻿<local:LayoutAwarePage
    x:Class="PilotsHubApp.QuestPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:PilotsHubApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:common="using:PilotsHubApp.Common"
    xmlns:dependencyProperties="using:PilotsHubApp.DependencyProperties"
    NavigationCacheMode="Required"
    mc:Ignorable="d"
    xmlns:sampleData="using:PilotsHubApp.SampleData"
    d:DataContext="{d:DesignInstance 
        Type=sampleData:MockQuestViewModel, 
        IsDesignTimeCreatable=True}">

    <ScrollViewer Background="{ThemeResource PageBackgroundColorBrush}" x:Name="PageScrollViewer" VerticalAlignment="Top">
        <StackPanel Width="800">
            <Border Background="{ThemeResource ApplicationForegroundThemeBrush}" BorderBrush="{ThemeResource PilotsHubBorderBrush}" BorderThickness="1">
                <StackPanel>
                    <Rectangle Height="36"/>
                    <TextBlock 
                        Text="{Binding SelectedQuest.Title}" 
                        Style="{StaticResource QuestPageTitleStyle}" 
                        x:Name="QuestTitle"/>
                    <Rectangle Height="24"/>
                    <Image 
                        Width="728"
                        MaxHeight="728"
                        Source="{Binding SelectedQuest.HeroImage, Converter={StaticResource BitmapImageConverter}}" 
                        Stretch="Uniform"
                        AutomationProperties.Name="{Binding SelectedQuest.Title}"
                        HorizontalAlignment="Center"/>
                    <Rectangle Height="24"/>
                    <WebView x:ConnectionId='2' 
                        Width="728"
                                                                               
                                                                       
                        dependencyProperties:WebViewStringDependency.HtmlString="{Binding SelectedQuest.Description}"
                        IsHitTestVisible="False"
                        VerticalAlignment="Stretch"
                        x:Name="QuestLongDescriptionWebView"/>
                    <common:HandHyperlinkButton HorizontalAlignment="Left" Margin="36,12,0,0" Command="{Binding QuestFeedbackCommand}" Padding="0">
                        <TextBlock HorizontalAlignment="Right" Padding="0" TextWrapping="Wrap">
                            <TextBlock.RenderTransform>
                                <TranslateTransform X="-2"></TranslateTransform>
                            </TextBlock.RenderTransform>
                            <Run x:Uid="QuestFeedback" x:Name="QuestFeedback" Text="Can't complete this quest (PH)" />
                        </TextBlock>
                    </common:HandHyperlinkButton>
                    <Rectangle Height="36"/>
                    <Grid Background="{ThemeResource PilotsHubAppBarBrush}" Height="125">
                        <Polygon 
                            Points="0,0 15,15 30,0" 
                            Style="{StaticResource QuestPagePolygonStyle}"
                            HorizontalAlignment="Center"/>
                        <!-- Quest not yet completed: Show the 'Done!' button or Start/Finish' buttons -->
                        <StackPanel
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Visibility="{Binding SelectedQuest.Completed, FallbackValue=Collapsed, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}, ConverterParameter=Invert}">
                            <!-- Standard Quest: Show the 'Done!' button -->
                            <Button
                                Visibility="{Binding SelectedQuestIsStandard, FallbackValue=Visible, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}}"
                                Command="{Binding SubmitQuestCommand}"
                                Style="{StaticResource QuestPageButtonStyle}"
                                x:Uid="DoneButton"
                                x:Name="QuestSubmitButton"
                                Padding="50,5"
                                Content="Done (PH)"/>
                            
                            <!-- Start/Finish Quest: Show the 'Start/Finish' buttons -->
                            <StackPanel
                                Visibility="{Binding SelectedQuestIsStandard, FallbackValue=Collapsed, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}, ConverterParameter=Invert}">
                                <Button
                                    Visibility="{Binding SelectedQuest.InProgress, FallbackValue=Visible, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}, ConverterParameter=Invert}"
                                    Command="{Binding StartQuestCommand}"
                                    Style="{StaticResource QuestPageButtonStyle}"
                                    x:Uid="QuestStartButton"
                                    x:Name="QuestStartButton"
                                    Content ="Start (PH)"/>
                                <Button
                                    Visibility="{Binding SelectedQuest.InProgress, FallbackValue=Visible, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}}"
                                    Command="{Binding FinishQuestCommand}"
                                    Style="{StaticResource QuestPageButtonStyle}"
                                    x:Uid="QuestFinishButton"
                                    x:Name="QuestFinishButton"
                                    Content ="Finish (PH)"/>
                            </StackPanel>
                        </StackPanel>

                        <!-- Quest completed: Show the 'Quest complete.' text -->
                        <TextBlock 
                            Visibility="{Binding SelectedQuest.Completed, FallbackValue=Collapsed, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}}"
                            FontSize="15"
                            FontWeight="Bold"
                            Name="QuestSaved" 
                            x:Uid="QuestSaved"
                            Text="Saved! (PH)"
                            VerticalAlignment="Center"
                            HorizontalAlignment="Center"/>
                    </Grid>
                </StackPanel>
            </Border>
            <Rectangle Height="100"/>
            <TextBlock 
                    x:Uid="MoreQuests"
                    x:Name="MoreQuests"
                    Style="{StaticResource QuestPageMoreQuestsHeader}" 
                    Text="More quests (PH)"/>
            <Rectangle HorizontalAlignment="Stretch" Fill="{ThemeResource PilotsHubBorderBrush}" Height="2"/>
            <ItemsControl 
                x:Name="MoreQuestsControl"
                HorizontalContentAlignment="Stretch"
                Visibility="{Binding State, Converter={StaticResource loadingStateToVisibilityConverter}, ConverterParameter=Complete}"
                ItemsSource="{Binding Quests}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Grid 
                            Height="150" 
                            Margin="0,18" 
                            HorizontalAlignment="Stretch">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="250"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Image Margin="0" Grid.Column="0" Width="250" Source="{Binding ThumbnailImage, Converter={StaticResource BitmapImageConverter}}"
                               Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}" />
                            <Grid Grid.Column="1" Margin="12,0,0,0" HorizontalAlignment="Stretch">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="*"/>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <TextBlock 
                                    Style="{StaticResource HubPageTextBlockHeaderStyle}"
                                    Grid.Row="0"
                                    Text="{Binding Title}" 
                                    Foreground="{ThemeResource AccentTextBrush}"
                                    FontSize="20"
                                    TextWrapping="NoWrap" 
                                    TextTrimming="WordEllipsis"
                                    HorizontalAlignment="Stretch"/>
                                <WebView
                                    Grid.Row="1"
                                    Margin="0,12,0,12"
                                    dependencyProperties:WebViewStringDependency.HtmlString="{Binding Description}"
                                    DefaultBackgroundColor="Transparent"
                                    HorizontalAlignment="Stretch"
                                    x:Name="QuestShortDescriptionWebView"/>
                                <Rectangle Grid.Row="1">
                                    <Rectangle.Fill>
                                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                                            <GradientStop Color="Transparent" Offset="0" />
                                            <GradientStop Color="Transparent" Offset="0.4" />
                                            <GradientStop Color="{ThemeResource GradientFadeColor}" Offset="0.9" />
                                            <GradientStop Color="{ThemeResource GradientFadeColor}" Offset="1.0" />
                                        </LinearGradientBrush>
                                    </Rectangle.Fill>
                                </Rectangle>
                                <Grid Grid.Row="2" >
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Button x:ConnectionId='1'
                                        Grid.Column="0"
                                        Style="{StaticResource CommonButton}"
                                        x:Name="StartQuestButton"
                                        x:Uid="QuestMoreButton"
                                        Padding="24,5"
                                                               
                                        Command="{Binding ElementName=MoreQuestsControl, Path=DataContext.SwitchQuestCommand}"
                                        CommandParameter="{Binding }"
                                        Content="More (PH)"
                                        AutomationProperties.Name="{Binding Title}"
                                        Tag="{Binding ContentId}"/>
                                    <TextBlock
                                        Grid.Column="1"
                                        Style="{StaticResource QuestCompleteTextBlockStyle}"
                                        Visibility="{Binding Completed, FallbackValue=Collapsed, Mode=OneWay, Converter={StaticResource BooleanToVisbilityConverter}}"                                                    
                                        Name="QuestSaved"
                                        x:Uid="QuestSaved"
                                        Text="Quest Complete (PH)"/>
                                </Grid>
                            </Grid>
                        </Grid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </StackPanel>
    </ScrollViewer>
</local:LayoutAwarePage>





