<?xml version="1.0" encoding="utf-8" ?>
<pages:BaseContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="Bit.App.Pages.HomePage"
    xmlns:pages="clr-namespace:Bit.App.Pages"
    xmlns:controls="clr-namespace:Bit.App.Controls"
    xmlns:u="clr-namespace:Bit.App.Utilities"
    x:DataType="pages:HomeViewModel"
    x:Name="_page"
    Title="{Binding PageTitle}">
    <ContentPage.BindingContext>
        <pages:HomeViewModel />
    </ContentPage.BindingContext>

    <ContentPage.ToolbarItems>
        <controls:ExtendedToolbarItem
            x:Name="_accountAvatar"
            x:Key="accountAvatar"
            IconImageSource="{Binding AvatarImageSource}"
            Command="{Binding Source={x:Reference _accountListOverlay}, Path=ToggleVisibililtyCommand}"
            Order="Primary"
            Priority="-1"
            UseOriginalImage="True"
            AutomationProperties.IsInAccessibleTree="True"
            AutomationProperties.Name="{u:I18n Account}" />
        <ToolbarItem x:Name="_closeButton" Text="{u:I18n Close}" Command="{Binding CloseCommand}" Order="Primary" Priority="-1"/>
        <ToolbarItem
            Icon="cog_environment.png" Clicked="Environment_Clicked" Order="Primary"
            AutomationProperties.IsInAccessibleTree="True"
            AutomationProperties.Name="{u:I18n Options}" />
    </ContentPage.ToolbarItems>

    <ContentPage.Resources>
        <ResourceDictionary>
            <u:InverseBoolConverter x:Key="inverseBool" />
            <StackLayout x:Name="_mainLayout" x:Key="mainLayout" Spacing="30" Padding="20, 50, 20, 0">
                <Image
                    x:Name="_logo"
                    Source="logo.png"
                    VerticalOptions="Center" />
                <Label Text="{u:I18n LoginOrCreateNewAccount}"
                        StyleClass="text-lg"
                        HorizontalTextAlignment="Center"/>
                <StackLayout
                    StyleClass="box-row">
                    <Label
                        Text="{u:I18n EmailAddress}"
                        StyleClass="box-label" />
                    <Entry
                        x:Name="_email"
                        Text="{Binding Email}"
                        Keyboard="Email"
                        StyleClass="box-value"
                        ReturnType="Go"
                        ReturnCommand="{Binding ContinueCommand}">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Disabled">
                                    <VisualState.Setters>
                                        <Setter Property="TextColor" Value="{DynamicResource MutedColor}" />
                                    </VisualState.Setters>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                    </Entry>
                    <StackLayout
                        Orientation="Horizontal"
                        Margin="0, 16, 0 ,0">
                        <StackLayout.GestureRecognizers>
                            <TapGestureRecognizer
                                Command="{Binding RememberEmailCommand}" />
                        </StackLayout.GestureRecognizers>
                        <Label
                            Text="{u:I18n RememberMe}"
                            StyleClass="text-sm"
                            HorizontalOptions="FillAndExpand"
                            VerticalOptions="Center"
                            VerticalTextAlignment="Center"/>
                        <Switch
                            Scale="0.8"
                            IsToggled="{Binding RememberEmail}"
                            VerticalOptions="Center"/>
                    </StackLayout>
                </StackLayout>
                <Button Text="{u:I18n Continue}"
                        StyleClass="btn-primary"
                        IsEnabled="{Binding CanContinue}"
                        Command="{Binding ContinueCommand}" />
                        
                <Label FormattedText="{Binding CreateAccountText}"
                       Margin="0, 10"
                        StyleClass="box-footer-label">
                    <Label.GestureRecognizers>
                        <TapGestureRecognizer Command="{Binding CreateAccountCommand}" />
                    </Label.GestureRecognizers>
                </Label>
            </StackLayout>
        </ResourceDictionary>
    </ContentPage.Resources>

    <AbsoluteLayout
        x:Name="_absLayout"
        VerticalOptions="FillAndExpand"
        HorizontalOptions="FillAndExpand">
        <ContentView
            x:Name="_mainContent"
            AbsoluteLayout.LayoutFlags="All"
            AbsoluteLayout.LayoutBounds="0, 0, 1, 1">
        </ContentView>

        <controls:AccountSwitchingOverlayView
            x:Name="_accountListOverlay"
            AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
            AbsoluteLayout.LayoutFlags="All"
            MainPage="{Binding Source={x:Reference _page}}"
            BindingContext="{Binding AccountSwitchingOverlayViewModel}"/>
    </AbsoluteLayout>

</pages:BaseContentPage>
