Public Class FrmInput2
    REM variables public a la feuille (classe)
    Dim tme() As String = {"Allemand", "Anglais", "Astronomie", "Biologie", "Espagnol", "Français", "Géographie", "Géologie", "Histoire", "Mathématique", "Philosophie", "Russe"}
    Dim tmo() As String = {"Allemand", "Anglais", "Astronomie", "Espagnol", "Histoire", "Russe", "Lancer", "Natation", "Saut"}
    Dim treg() As String = {"Auvergne", "Bordelais", "Bretagne", "Morvan", "Nord", "Normandie", "Paris", "Poitou"}
    Dim ctro As Integer
    Dim ctre As Integer

    Private Sub FrmIsc3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer REM pour les for
        Dim CB As CheckBox REM pour les for checkbox
        i = 0
        For Each CB In GBEcrit.Controls     REM Charge l'écrit
            CB.Text = tme(i)
            i += 1
        Next
        i = 0
        For Each CB In GBOral.Controls      REM Charge l'oral
            CB.Text = tmo(i)
            i += 1
        Next
        i = 0
        For i = 0 To UBound(treg)
            CboRegion.Items.Add(treg(i))
        Next
        LblNP.Text = FrmInput1.TxtNom.Text & " " & FrmInput1.TxtPrenom.Text    REM Reprend le nom et le prénom depuis la feuille input1.
        If FrmAccueil.Boule = True Then          REM edition
            Me.Tag = "Assistant édition de candidature (3/4)"
            CboRegion.SelectedIndex = FrmAccueil.cddts.Region
            For Each CB In GBEcrit.Controls
                For i = 0 To UBound(FrmAccueil.cddts.Ecrit)
                    If FrmAccueil.cddts.Ecrit(i) = CB.Text Then CB.Checked = True
                Next i
            Next
            For Each CB In GBOral.Controls
                For i = 0 To UBound(FrmAccueil.cddts.Oral)
                    If FrmAccueil.cddts.Oral(i) = CB.Text Then CB.Checked = True
                Next
            Next
            If FrmAccueil.cddts.Fac = Nothing Then
                RBno.Checked = True
            Else
                RBYes.Checked = True
                CboFac.SelectedIndex = FrmAccueil.cddts.Fac
            End If
            CmdPre.Visible = True
            LblCaR.Visible = False
            LblNP.Text = FrmEdit.SelectedID & " - " & FrmInput1.TxtNom.Text & " " & FrmInput1.TxtPrenom.Text   REM Ajoute l'identifiant en cas de modifications.
        End If
            If FrmAccueil.Boule = False Then        REM inscription
                Me.Tag = "Assistant création de candidature (3/4)"
                LblCaR.Tag = 75
                RBno.Checked = True
                PnlFac.Visible = False
                RBno.Checked = True
                CboRegion.SelectedIndex = 0 REM met premier en tête...
                TmrCaR.Start() REM timer start
            End If
    End Sub

    Private Sub CmdAnnul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdAnnul.Click
        TmrCaR.Stop() REM fin timmer
        FrmEdit.Close() REM ferme toutes les fenètres...
        FrmNouv.Close()
        FrmInput1.Close()
        Me.Close()
        FrmAccueil.Show() REM retour a l'accueil
    End Sub

    Private Sub TmrCaR_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrCaR.Tick
        LblCaR.Tag -= 1
        If LblCaR.Tag >= 60 Then
            Me.Text = Me.Tag & " | " & FrmAccueil.Horaire & " | Temps restant : 1:" & Format(LblCaR.Tag - 60, "00")
        End If
        If LblCaR.Tag < 60 And LblCaR.Tag > 0 Then
            Me.Text = Me.Tag & " | " & FrmAccueil.Horaire & " | Temps restant : " & LblCaR.Tag
        End If
        If LblCaR.Tag = 0 Then
            Me.Text = Me.Tag & " | " & FrmAccueil.Horaire
        End If
        If LblCaR.Tag <= 1 Then
            LblCaR.Text = "Vous disposez de " & LblCaR.Tag & " seconde restante."
        End If
        If LblCaR.Tag > 61 Then
            LblCaR.Text = "Vous disposez d'une minute et " & LblCaR.Tag - 60 & " secondes restantes."
        End If
        If LblCaR.Tag = 61 Then
            LblCaR.Text = "Vous disposez d'une minute et " & LblCaR.Tag - 60 & " seconde restante."
        End If
        If LblCaR.Tag <= 60 And LblCaR.Tag <> 1 Then
            LblCaR.Text = "Vous disposez de " & LblCaR.Tag & " secondes restantes."
        End If
        If LblCaR.Tag <= 10 Then
            LblCaR.ForeColor = Color.Red
        End If
        If LblCaR.Tag <= 0 Then
            TmrCaR.Stop()
            LblCaR.Text = "Le temps impartie est écoulée."
            MsgBox("Le temps impartie est écoulé. L'inscription a échoué.", MsgBoxStyle.Exclamation, "Echec")
            FrmEdit.Close()
            FrmInput1.Close()
            FrmNouv.Close()
            Me.Close()
            FrmAccueil.Show()
        End If
    End Sub

    Private Sub CmdNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdNext.Click
        'Dim OK As Boolean
        If ctre + ctro = 7 Then
            TmrCaR.Stop()
            Me.Hide()
            FrmInput3.Show()
        Else : MsgBox("Vous devez choisir 4 examens écrits et 3 examens oraux. (Vous pouvez dès lors choisir des examens facultatifs.", MsgBoxStyle.Exclamation, "Erreur")
        End If
    End Sub

    Private Sub CmdDelet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim quit As Integer
        quit = MsgBox("Vous êtes sur le point de supprimer une candidature. Voulez-vous continuer ?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Suppression d'un candidat")
        If quit = 6 Then
            MsgBox("Le Candidat a bien été supprimé.", MsgBoxStyle.Information, "Information")
            FrmEdit.Close()
            FrmNouv.Close()
            FrmInput1.Close()
            Me.Close()
            FrmAccueil.Show()
        End If
    End Sub

    Private Sub CmdPre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdPre.Click
        REM retour au précédant
        Me.Hide()
        FrmInput1.Show()
    End Sub

    REM Dans le panel pour les examens facultatifs
    Private Sub RB_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBno.CheckedChanged, RBYes.CheckedChanged
        If RBno.Checked Then
            RBYes.Checked = False
            LblFac2.Visible = False
            CboFac.Visible = False
            GBEcrit.Enabled = True
            GBOral.Enabled = True
        End If
        If RBYes.Checked Then
            RBno.Checked = False
            LblFac2.Visible = True
            CboFac.Items.Clear()        REM Efface la liste des exams facultatifs
            Dim Chb As CheckBox
            For Each Chb In GBEcrit.Controls        REM Construit la liste des exams facultatifs. Il est plus intelligent de le mettre là plutôt que dans la fonction DeclencheurdeFacultatif car il est recalculé après avoir choisit la possibilité des examens, et non a chaque clique des cases. De plus, ca pose un problème de reset.
                If Chb.Checked = False Then CboFac.Items.Add(Chb.Text)
            Next
            For Each Chb In GBOral.Controls
                If Chb.Checked = False Then CboFac.Items.Add(Chb.Text)
            Next
            CboFac.Visible = True
            CboFac.SelectedIndex = 0 REM met premier en tête...
            GBEcrit.Enabled = False
            GBOral.Enabled = False
        End If
    End Sub

    Private Sub SecureEcritMAX4(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged, CheckBox5.CheckedChanged, CheckBox6.CheckedChanged, CheckBox7.CheckedChanged, CheckBox8.CheckedChanged, CheckBox9.CheckedChanged, CheckBox10.CheckedChanged, CheckBox11.CheckedChanged, CheckBox12.CheckedChanged
        If sender.checkstate = CheckState.Checked Then
            ctre += 1
            If ctre > 4 Then
                MsgBox("Vous ne pouvez pas choisir plus de 4 examens ecrits.", MsgBoxStyle.Exclamation, "Erreur")
                sender.checkstate = CheckState.Unchecked
            End If
        Else
            ctre -= 1
        End If

        DeclencheurDeFacultatif() REM Appelle la fonction qui déclenche l'affichage du choix de l'exam facultatif

        REM Regule l'affichage du nombre d'examen choisit.
        If ctre = 0 Then
            LblNbEcr.Text = ""
        ElseIf ctre = 1 Then
            LblNbEcr.Text = ctre & " examen écrit choisit sur 4."
        Else
            LblNbEcr.Text = ctre & " examens écrits choisit sur 4."
        End If
    End Sub

    Private Sub SecureOralMAX3(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox13.CheckedChanged, CheckBox14.CheckedChanged, CheckBox15.CheckedChanged, CheckBox16.CheckedChanged, CheckBox17.CheckedChanged, CheckBox18.CheckedChanged, CheckBox19.CheckedChanged, CheckBox20.CheckedChanged, CheckBox21.CheckedChanged
        If sender.checkstate = CheckState.Checked Then
            ctro += 1
            If ctro > 3 Then
                MsgBox("Vous ne pouvez pas choisir plus de 3 examens oraux.", MsgBoxStyle.Exclamation, "Erreur")
                sender.checkstate = CheckState.Unchecked
            End If
        Else
            ctro -= 1
        End If

        DeclencheurDeFacultatif()
        If ctro = 0 Then
            LblNbOral.Text = ""
        ElseIf ctro = 1 Then
            LblNbOral.Text = ctro & " examen oral choisit sur 3."
        Else
            LblNbOral.Text = ctro & " examens oraux choisit sur 3."
        End If
    End Sub

    Private Sub ChageAllemand(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox12.CheckedChanged, CheckBox21.CheckedChanged
        CheckBox21.Enabled = Not CheckBox12.Checked     REM Active/Désactive la ChB de l'oral en fonction de l'état de la ChB de l'écrit.
        CheckBox12.Enabled = Not CheckBox21.Checked     REM Idem mais en fonction de l'oral
    End Sub

    Private Sub ChangeAnglais(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox11.CheckedChanged, CheckBox20.CheckedChanged
        CheckBox20.Enabled = Not CheckBox11.Checked     REM Active/Désactive la ChB de l'oral en fonction de l'état de la ChB de l'écrit.
        CheckBox11.Enabled = Not CheckBox20.Checked     REM Idem mais en fonction de l'oral
    End Sub

    Private Sub ChangeAstronomie(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox10.CheckedChanged, CheckBox19.CheckedChanged
        CheckBox19.Enabled = Not CheckBox10.Checked     REM Active/Désactive la ChB de l'oral en fonction de l'état de la ChB de l'écrit.
        CheckBox10.Enabled = Not CheckBox19.Checked     REM Idem mais en fonction de l'oral
    End Sub

    Private Sub ChangeEspagnole(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged, CheckBox18.CheckedChanged
        CheckBox18.Enabled = Not CheckBox8.Checked     REM Active/Désactive la ChB de l'oral en fonction de l'état de la ChB de l'écrit.
        CheckBox8.Enabled = Not CheckBox18.Checked     REM Idem mais en fonction de l'oral
    End Sub

    Private Sub ChangeHistoire(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged, CheckBox17.CheckedChanged
        CheckBox17.Enabled = Not CheckBox4.Checked     REM Active/Désactive la ChB de l'oral en fonction de l'état de la ChB de l'écrit.
        CheckBox4.Enabled = Not CheckBox17.Checked     REM Idem mais en fonction de l'oral
    End Sub

    Private Sub ChangeRusse(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged, CheckBox16.CheckedChanged
        CheckBox16.Enabled = Not CheckBox1.Checked     REM Active/Désactive la ChB de l'oral en fonction de l'état de la ChB de l'écrit.
        CheckBox1.Enabled = Not CheckBox16.Checked     REM Idem mais en fonction de l'oral
    End Sub

    Private Sub DeclencheurDeFacultatif()
        If ctre + ctro = 7 Then     REM Affiche les facultatifs après avoir coché tout les examens obligatoire
            PnlFac.Visible = True
        Else                        REM Cache tout.
            PnlFac.Visible = False
        End If
    End Sub

End Class