BaseScreen As screen:
    Fill: =RGBA(0, 52, 128, 1)
    ImagePosition: =ImagePosition.Fill

    ConBan As groupContainer.manualLayoutContainer:
        BorderStyle: =BorderStyle.None
        DropShadow: =DropShadow.None
        Height: =Parent.Height/13
        Width: =Parent.Width
        ZIndex: =1

        Banlabel1 As label:
            Align: =Align.Center
            AutoHeight: =true
            BorderColor: =RGBA(0, 0, 0, 0)
            BorderStyle: =BorderStyle.None
            BorderThickness: =2
            Color: =RGBA(255, 255, 255, 1)
            DisabledBorderColor: =RGBA(0, 0, 0, 0)
            DisabledColor: =RGBA(255, 255, 255, 1)
            Fill: =RGBA(0, 52, 128, 1)
            FocusedBorderThickness: =2
            Font: =Font.'Segoe UI'
            Height: =ConBan.Height
            Italic: =true
            Size: =ConBan.Height/3.6
            Text: |-
                ="Ask
                ChatGPT"
            Width: =ConBan.Height*1.6
            X: |-
                =//ConBan.Width - (ConBan.Width - ConBan.Width/25)
                ConBan.Width - ConBan.Width/25 - Banlabel1.Width
            Y: =ConBan.Y
            ZIndex: =1

        Logo As image:
            AccessibleLabel: ="ARD Logo"
            Fill: =RGBA(0, 52, 128, 1)
            Height: =ConBan.Height - (ConBan.Height/6)
            Image: ='ard-logo'
            Width: =ConBan.Width/3.5
            X: =ConBan.Width/3
            Y: =ConBan.Y + (ConBan.Height/7)
            ZIndex: =2

        behave1 As dropdown:
            Default: ="Ich bin ein hilfsbereiter Assistent"
            Height: =ConBan.Height/1.6
            Items: |
                =Table(
                    { Text: "Norm", Val: "Du bist ein hilfbereiter Assistent" }, 
                    { Text: "Kid", Val: "Du antwortest in Kindersprachen und nicht länger als in drei Sätzen" }, 
                    { Text: "Pirat", Val: "Antworte wie ein Pirat und nicht länger als in drei Sätzen" }
                )
            Size: =21
            Width: =ConBan.Height*1.6
            X: =ConBan.Width - (ConBan.Width - ConBan.Width/25)
            Y: =ConBan.Y + (ConBan.Height/4)
            ZIndex: =3

    ConFkt1 As groupContainer.manualLayoutContainer:
        BorderStyle: =BorderStyle.None
        DropShadow: =DropShadow.None
        Height: =Parent.Height/11
        Width: =Parent.Width
        Y: =ConResp.Y + ConResp.Height
        ZIndex: =2

        Creativity1 As toggleSwitch:
            AccessibleLabel: ="Kreativitätsmodus aktivieren oder deaktivieren"
            BorderColor: =RGBA(0, 52, 128, 1)
            Color: =RGBA(255, 255, 255, 1)
            DisabledBorderColor: =RGBA(0, 52, 128, 1)
            FalseFill: =RGBA(255, 255, 255, 1)
            FalseHoverFill: =RGBA(251, 188, 159, 1)
            FalseText: ="false"
            Font: =Font.'Segoe UI'
            HandleFill: =RGBA(128, 128, 128, 1)
            Height: =ConFkt1.Height/2
            HoverBorderColor: =RGBA(0, 52, 128, 1)
            LabelPaddingLeft: =7
            OnChange: =true
            OnCheck: =false   
            PressedBorderColor: =RGBA(0, 52, 128, 1)
            Size: =18
            Tooltip: ="Creativity Mode"
            TrueFill: =RGBA(251, 188, 159, 1)
            TrueHoverFill: =RGBA(251, 188, 159, 1)
            TrueText: ="true"
            Width: |-
                =If(ConFkt1.Height<=ConFkt1.Width/6, ConFkt1.Height, 
                ConFkt1.Height > ConFkt1.Width/6, ConFkt1.Width/6)
            X: =ConFkt1.Width - (ConFkt1.Width - ConFkt1.Width/25)
            Y: =ConFkt1.Height - (ConFkt1.Height - ConFkt1.Height/4)
            ZIndex: =1

        Fktlabel1 As label:
            Align: =Align.Center
            AutoHeight: =true
            BorderColor: =RGBA(0, 0, 0, 0)
            BorderStyle: =BorderStyle.None
            BorderThickness: =2
            Color: =RGBA(255, 255, 255, 1)
            DisabledBorderColor: =RGBA(0, 0, 0, 0)
            DisabledColor: =RGBA(161, 159, 157, 1)
            Fill: =RGBA(0, 52, 128, 1)
            FocusedBorderThickness: =2
            Font: =Font.'Segoe UI'
            Height: =Creativity1.Height
            Size: =Creativity1.Height/2
            Text: ="Creativity" & Char(10) & "Mode"
            Tooltip: ="Creativity Mode"
            Width: |-
                =If(ConFkt1.Height<=ConFkt1.Width/6, ConFkt1.Height*1.7, 
                ConFkt1.Height > ConFkt1.Width/6, ConFkt1.Width/3)
            X: =(ConFkt1.Width - (ConFkt1.Width - ConFkt1.Width/25)) + Creativity1.Width
            Y: =Creativity1.Y + (Creativity1.Height - Fktlabel1.Height)/2	
            ZIndex: =2

        Eraser1 As icon.Erase:
            AccessibleLabel: ="Lösche deine Konversation mit dem Assistenten"
            BorderColor: =RGBA(0, 0, 0, 0)
            Color: =RGBA(255, 255, 255, 1)
            DisabledBorderColor: =RGBA(245, 245, 245, 1)
            DisabledColor: =RGBA(204, 204, 204, 1)
            DisabledFill: =RGBA(0, 0, 0, 0)
            Fill: =RGBA(0, 52, 128, 1)
            Height: =Creativity1.Height*1.6
            HoverBorderColor: =RGBA(0, 0, 0, 0)
            HoverColor: =RGBA(251, 188, 159, 1)
            HoverFill: =RGBA(0, 0, 0, 0)
            Icon: =Icon.Erase
            OnSelect: =Set(varResp, Blank());
            PressedBorderColor: =RGBA(0, 0, 0, 0)
            PressedColor: =RGBA(251, 188, 159, 1)
            PressedFill: =RGBA(0, 0, 0, 0)
            TabIndex: =0
            Tooltip: ="3"
            Width: |-
                =If(ConFkt1.Height<=ConFkt1.Width/6, ConFkt1.Height, 
                ConFkt1.Height > ConFkt1.Width/6, ConFkt1.Width/6)
            X: =ConFkt1.Width - ConFkt1.Width/25 - Eraser1.Width
            Y: =Creativity1.Y + (Creativity1.Height - Eraser1.Height)/2	
            ZIndex: =3

        SendMail1 As icon.Mail:
            AccessibleLabel: ="Sende deine Konversation mit dem Assistenten an deinen E-mail Account"
            BorderColor: =RGBA(0, 0, 0, 0)
            Color: =RGBA(255, 255, 255, 1)
            DisabledBorderColor: =RGBA(245, 245, 245, 1)
            DisabledColor: =RGBA(204, 204, 204, 1)
            DisabledFill: =RGBA(0, 0, 0, 0)
            Fill: =RGBA(0, 52, 128, 1)
            Height: =Creativity1.Height*1.6
            HoverBorderColor: =RGBA(0, 0, 0, 0)
            HoverColor: =RGBA(251, 188, 159, 1)
            HoverFill: =RGBA(0, 0, 0, 0)
            Icon: =Icon.Mail
            OnSelect: |-
                =Set(varRespMail, Substitute(Substitute(chatbox1.Text,Char(10),"<br>"),"GPT: ", "<b>GPT: </b>"));
                Office365Outlook.SendEmailV2(User().Email,"# Assistentenchat #", varRespMail);
                //Office365Outlook.SendEmailV2("manuel.geyer@rbb-online.de","#RBB - TK-Formular-mob-TK" & " " & TextInput_Betreff.Text,TextInput_Nachricht.Text & "<br><br>" & "RBB - PowerPlatform")
            PressedBorderColor: =RGBA(0, 0, 0, 0)
            PressedColor: =RGBA(251, 188, 159, 1)
            PressedFill: =RGBA(0, 0, 0, 0)
            Rotation: =20
            TabIndex: =0
            Tooltip: ="6"
            Width: |-
                =If(ConFkt1.Height<=ConFkt1.Width/6, ConFkt1.Height, 
                ConFkt1.Height > ConFkt1.Width/6, ConFkt1.Width/6)
            X: =(ConFkt1.Width - (ConFkt1.Width - ConFkt1.Width/25)) + Creativity1.Width + Fktlabel1.Width + ConFkt1.Width/40
            Y: =Creativity1.Y + (Creativity1.Height - SendMail1.Height)/2	
            ZIndex: =4

    ConResp As groupContainer.manualLayoutContainer:
        BorderStyle: =BorderStyle.None
        DropShadow: =DropShadow.None
        Height: =Parent.Height/1.6
        Width: =Parent.Width
        Y: =ConBan.Y + ConBan.Height
        ZIndex: =3

        chatboxhtml As htmlViewer:
            Height: =ConResp.Height - 2* (ConResp.Height/50)
            HtmlText: =varResp
            Width: =ConResp.Width - 2*(ConResp.Width/25)
            X: =ConResp.Width - (ConResp.Width - ConResp.Width/25)
            Y: =ConResp.Height - (ConResp.Height - ConResp.Height/50)
            ZIndex: =1

        chatbox1 As text:
            AccessibleLabel: ="Deine Konversation mit dem Assistenten"
            BorderColor: =RGBA(224, 24, 24, 1)
            BorderThickness: =0
            Default: =varResp
            DisabledBorderColor: =RGBA(255, 255, 255, 1)
            DisabledColor: =RGBA(161, 159, 157, 1)
            DisabledFill: =RGBA(242, 242, 241, 0)
            DisplayMode: =DisplayMode.View
            Fill: =RGBA(236, 236, 235, 1)
            Font: =Font.'Segoe UI'
            Height: =ConResp.Height - 2* (ConResp.Height/50)
            HoverBorderColor: =RGBA(255, 255, 255, 1)
            HoverFill: =RGBA(255, 255, 255, 1)
            MaxLength: =3000
            Mode: =TextMode.MultiLine
            OnChange: =//chatbox1.ScrollToEnd();
            OnSelect: =
            PressedBorderColor: =RGBA(255, 255, 255, 1)
            PressedColor: =RGBA(50, 49, 48, 1)
            PressedFill: =RGBA(255, 255, 255, 1)
            RadiusBottomLeft: =10
            RadiusBottomRight: =10
            RadiusTopLeft: =10
            RadiusTopRight: =10
            Reset: =
            Size: =28
            Tooltip: ="7"
            Width: =ConResp.Width - 2*(ConResp.Width/25)
            X: =ConResp.Width - (ConResp.Width - ConResp.Width/25)
            Y: =ConResp.Height - (ConResp.Height - ConResp.Height/50)
            ZIndex: =2

    ConSend As groupContainer.manualLayoutContainer:
        BorderStyle: =BorderStyle.None
        DropShadow: =DropShadow.None
        Height: =Parent.Height - ConSend.Y
        Width: =Parent.Width
        Y: =ConFkt1.Y + ConFkt1.Height
        ZIndex: =4

        textinput1 As text:
            AccessibleLabel: ="Hier kannst du deine Frage schreiben"
            BorderColor: =RGBA(224, 24, 24, 1)
            BorderThickness: =0
            Default: =""
            DisabledBorderColor: =RGBA(255, 255, 255, 1)
            DisabledColor: =RGBA(161, 159, 157, 1)
            DisabledFill: =RGBA(242, 242, 241, 0)
            EnableSpellCheck: =true
            Font: =Font.'Segoe UI'
            Height: =ConSend.Height - 2* (ConSend.Height/10)
            HoverBorderColor: =RGBA(255, 255, 255, 1)
            HoverFill: =RGBA(255, 255, 255, 1)
            MaxLength: =188
            Mode: =TextMode.MultiLine
            OnChange: =
            OnSelect: =
            PressedBorderColor: =RGBA(255, 255, 255, 1)
            PressedColor: =RGBA(50, 49, 48, 1)
            PressedFill: =RGBA(255, 255, 255, 1)
            RadiusBottomLeft: =10
            RadiusBottomRight: =10
            RadiusTopLeft: =10
            RadiusTopRight: =10
            Reset: =
            Size: =24
            Tooltip: ="1"
            Width: |+
                =ConSend.Width - ((ConSend.Width/25)*2.5) - send1.Width
                
            X: =ConSend.Width - (ConSend.Width - ConSend.Width/25)
            Y: =ConSend.Height - (ConSend.Height - ConSend.Height/15)
            ZIndex: =1

        send1 As icon.Send:
            AccessibleLabel: ="Sende deine Frage"
            AutoDisableOnSelect: =
            BorderColor: =RGBA(0, 0, 0, 0)
            Color: =RGBA(255, 255, 255, 1)
            DisabledBorderColor: =RGBA(245, 245, 245, 1)
            DisabledColor: =RGBA(225, 223, 221, 1)
            DisabledFill: =RGBA(0, 0, 0, 0)
            Fill: =RGBA(0, 52, 128, 1)
            Height: =Creativity1.Height*1.3
            HoverBorderColor: =RGBA(0, 0, 0, 0)
            HoverColor: =RGBA(251, 188, 159, 1)
            HoverFill: =RGBA(0, 0, 0, 0)
            Icon: =Icon.Send
            OnSelect: |
                =// Define Varibales
                If(
                    Creativity1.Value = false,
                    Set(Creativity,0.3),
                    Set(Creativity,0.9)
                );
                
                
                // Send to azure
                If(
                    !IsBlank(textinput1.Text),
                        textinput1.Text;          // you
                        behave1.SelectedText.'data-ADB4D7A662F548B49FAC2B986E348A1BVal'; // sys
                        // Send to Azure
                        Set(assiresp, ConnectAzureOpenai.Run(textinput1.Text, Creativity, behave1.SelectedText.'data-ADB4D7A662F548B49FAC2B986E348A1BVal')); // Assi
                
                        // write into collection
                        msgcnt+1;
                        Collect(gptconv, {cnt: msgcnt, sys: behave1.SelectedText.'data-ADB4D7A662F548B49FAC2B986E348A1BVal', you: textinput1.Text, assi: ""});       
                );
                
                /*
                Collect( IceCream, 
                { Flavor: "Pistachio", Quantity: 40 }, { Flavor: "Orange", Quantity: 200 } 
                )
                
                ClearCollect(
                    gptconv,
                    {
                        cnt: msgcnt,
                        Sys: "",
                        you: "",
                        assi: ""
                    }
                )*/
                
                
                // Store into Collection
                //ForAll( gptconv, 
                    Collect(gptconv, {cnt: msgcnt,Sys:" ",you:" ",assi:" "});
                //);
                
                
                
                // text out
                Set(tmpp, Text(assiresp.ttokens, "######"));
                Set(
                    varResp,
                    varResp & Char(10) & "You: " & Char(10) & textinput1.Text & Char(10) & Char(10) & "Assistent: " & Char(10) & Char(10) & assiresp.assi & Char(10)
                );
                
                
                
                
                
                
                /*If(
                    !IsBlank(textinput1.Text),
                    Set(
                        varResp,
                        varResp & Char(10) & "You: " & Char(10) & textinput1.Text & Char(10) & Char(10) & "Assistent: " & Char(10) & ConnectAzureOpenai.Run(
                            textinput1.Text,
                            Creativity, 
                            behave1.SelectedText.Val
                        ).assi & Char(10)
                    )
                );*/
                Reset(textinput1);
                /*Notify(
                    "ChatGPT asked",
                    NotificationType.Success,
                    1000
                );*/
            PressedBorderColor: =RGBA(0, 0, 0, 0)
            PressedColor: =RGBA(251, 188, 159, 1)
            PressedFill: =RGBA(0, 0, 0, 0)
            TabIndex: =0
            Tooltip: ="2"
            Width: |-
                =If(ConSend.Height<=ConSend.Width/6, ConSend.Height, 
                ConSend.Height > ConSend.Width/6, ConSend.Width/8)
            X: =ConSend.Width - ConSend.Width/25 - send1.Width
            Y: =textinput1.Y + (textinput1.Height - send1.Height)/2	
            ZIndex: =2