
Imports Mediatheek.Data
Imports Mediatheek.DataAcces

Public Class frmAlbumToevoegen
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents Label3 As System.Windows.Forms.Label
    Friend WithEvents txtToevoegId As System.Windows.Forms.TextBox
    Friend WithEvents Label5 As System.Windows.Forms.Label
    Friend WithEvents lblAlbumNaam As System.Windows.Forms.Label
    Friend WithEvents lblGenre As System.Windows.Forms.Label
    Friend WithEvents lblAlbumLocatie As System.Windows.Forms.Label
    Friend WithEvents clhTitel As System.Windows.Forms.ColumnHeader
    Friend WithEvents chlLiedDuur As System.Windows.Forms.ColumnHeader
    Friend WithEvents gpbLiedjesBeheer As System.Windows.Forms.GroupBox
    Friend WithEvents lvwLiedjes As System.Windows.Forms.ListView
    Friend WithEvents gpbVoegAlbumToe As System.Windows.Forms.GroupBox
    Friend WithEvents cboNieuwAlbumGenre As System.Windows.Forms.ComboBox
    Friend WithEvents txtNieuwAlbumProductieHuis As System.Windows.Forms.TextBox
    Friend WithEvents txtNieuwAlbumProductieJaar As System.Windows.Forms.TextBox
    Friend WithEvents txtNieuwAlbumNaam As System.Windows.Forms.TextBox
    Friend WithEvents cboNieuwAlbumLocatie As System.Windows.Forms.ComboBox
    Friend WithEvents btnNieuwAlbum As System.Windows.Forms.Button
    Friend WithEvents btnVoegLiedToe As System.Windows.Forms.Button
    Friend WithEvents btnWijzigLied As System.Windows.Forms.Button
    Friend WithEvents btnVerwijderLied As System.Windows.Forms.Button
    Friend WithEvents txtTitelLied As System.Windows.Forms.TextBox
    Friend WithEvents txtDuurLied As System.Windows.Forms.TextBox
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents lblDuurLied As System.Windows.Forms.Label
    Friend WithEvents gpbGroep As System.Windows.Forms.GroupBox
    Friend WithEvents Label4 As System.Windows.Forms.Label
    Friend WithEvents cboGroepNaam As System.Windows.Forms.ComboBox
    Friend WithEvents Label6 As System.Windows.Forms.Label
    Friend WithEvents txtAantalLeden As System.Windows.Forms.TextBox
    Friend WithEvents chbNieuweGroep As System.Windows.Forms.CheckBox
    Friend WithEvents ErrorProvider1 As System.Windows.Forms.ErrorProvider
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmAlbumToevoegen))
        Me.gpbVoegAlbumToe = New System.Windows.Forms.GroupBox
        Me.lblGenre = New System.Windows.Forms.Label
        Me.cboNieuwAlbumGenre = New System.Windows.Forms.ComboBox
        Me.txtNieuwAlbumProductieHuis = New System.Windows.Forms.TextBox
        Me.txtNieuwAlbumProductieJaar = New System.Windows.Forms.TextBox
        Me.txtNieuwAlbumNaam = New System.Windows.Forms.TextBox
        Me.Label3 = New System.Windows.Forms.Label
        Me.Label2 = New System.Windows.Forms.Label
        Me.lblAlbumNaam = New System.Windows.Forms.Label
        Me.cboNieuwAlbumLocatie = New System.Windows.Forms.ComboBox
        Me.lblAlbumLocatie = New System.Windows.Forms.Label
        Me.btnNieuwAlbum = New System.Windows.Forms.Button
        Me.txtToevoegId = New System.Windows.Forms.TextBox
        Me.Label5 = New System.Windows.Forms.Label
        Me.txtTitelLied = New System.Windows.Forms.TextBox
        Me.txtDuurLied = New System.Windows.Forms.TextBox
        Me.gpbLiedjesBeheer = New System.Windows.Forms.GroupBox
        Me.Label1 = New System.Windows.Forms.Label
        Me.btnVoegLiedToe = New System.Windows.Forms.Button
        Me.lvwLiedjes = New System.Windows.Forms.ListView
        Me.clhTitel = New System.Windows.Forms.ColumnHeader
        Me.chlLiedDuur = New System.Windows.Forms.ColumnHeader
        Me.btnWijzigLied = New System.Windows.Forms.Button
        Me.btnVerwijderLied = New System.Windows.Forms.Button
        Me.lblDuurLied = New System.Windows.Forms.Label
        Me.gpbGroep = New System.Windows.Forms.GroupBox
        Me.chbNieuweGroep = New System.Windows.Forms.CheckBox
        Me.txtAantalLeden = New System.Windows.Forms.TextBox
        Me.Label6 = New System.Windows.Forms.Label
        Me.cboGroepNaam = New System.Windows.Forms.ComboBox
        Me.Label4 = New System.Windows.Forms.Label
        Me.ErrorProvider1 = New System.Windows.Forms.ErrorProvider
        Me.PictureBox1 = New System.Windows.Forms.PictureBox
        Me.gpbVoegAlbumToe.SuspendLayout()
        Me.gpbLiedjesBeheer.SuspendLayout()
        Me.gpbGroep.SuspendLayout()
        Me.SuspendLayout()
        '
        'gpbVoegAlbumToe
        '
        Me.gpbVoegAlbumToe.Controls.Add(Me.lblGenre)
        Me.gpbVoegAlbumToe.Controls.Add(Me.cboNieuwAlbumGenre)
        Me.gpbVoegAlbumToe.Controls.Add(Me.txtNieuwAlbumProductieHuis)
        Me.gpbVoegAlbumToe.Controls.Add(Me.txtNieuwAlbumProductieJaar)
        Me.gpbVoegAlbumToe.Controls.Add(Me.txtNieuwAlbumNaam)
        Me.gpbVoegAlbumToe.Controls.Add(Me.Label3)
        Me.gpbVoegAlbumToe.Controls.Add(Me.Label2)
        Me.gpbVoegAlbumToe.Controls.Add(Me.lblAlbumNaam)
        Me.gpbVoegAlbumToe.Controls.Add(Me.cboNieuwAlbumLocatie)
        Me.gpbVoegAlbumToe.Controls.Add(Me.lblAlbumLocatie)
        Me.gpbVoegAlbumToe.Location = New System.Drawing.Point(16, 80)
        Me.gpbVoegAlbumToe.Name = "gpbVoegAlbumToe"
        Me.gpbVoegAlbumToe.Size = New System.Drawing.Size(400, 120)
        Me.gpbVoegAlbumToe.TabIndex = 0
        Me.gpbVoegAlbumToe.TabStop = False
        Me.gpbVoegAlbumToe.Text = "Voeg een album toe"
        '
        'lblGenre
        '
        Me.lblGenre.Location = New System.Drawing.Point(200, 24)
        Me.lblGenre.Name = "lblGenre"
        Me.lblGenre.Size = New System.Drawing.Size(40, 23)
        Me.lblGenre.TabIndex = 7
        Me.lblGenre.Text = "Genre"
        '
        'cboNieuwAlbumGenre
        '
        Me.cboNieuwAlbumGenre.ImeMode = System.Windows.Forms.ImeMode.NoControl
        Me.cboNieuwAlbumGenre.Location = New System.Drawing.Point(240, 24)
        Me.cboNieuwAlbumGenre.Name = "cboNieuwAlbumGenre"
        Me.cboNieuwAlbumGenre.Size = New System.Drawing.Size(64, 21)
        Me.cboNieuwAlbumGenre.TabIndex = 6
        '
        'txtNieuwAlbumProductieHuis
        '
        Me.txtNieuwAlbumProductieHuis.Location = New System.Drawing.Point(176, 56)
        Me.txtNieuwAlbumProductieHuis.Name = "txtNieuwAlbumProductieHuis"
        Me.txtNieuwAlbumProductieHuis.Size = New System.Drawing.Size(128, 20)
        Me.txtNieuwAlbumProductieHuis.TabIndex = 5
        Me.txtNieuwAlbumProductieHuis.Text = ""
        '
        'txtNieuwAlbumProductieJaar
        '
        Me.txtNieuwAlbumProductieJaar.Location = New System.Drawing.Point(72, 56)
        Me.txtNieuwAlbumProductieJaar.Name = "txtNieuwAlbumProductieJaar"
        Me.txtNieuwAlbumProductieJaar.Size = New System.Drawing.Size(40, 20)
        Me.txtNieuwAlbumProductieJaar.TabIndex = 4
        Me.txtNieuwAlbumProductieJaar.Text = ""
        '
        'txtNieuwAlbumNaam
        '
        Me.txtNieuwAlbumNaam.Location = New System.Drawing.Point(72, 24)
        Me.txtNieuwAlbumNaam.Name = "txtNieuwAlbumNaam"
        Me.txtNieuwAlbumNaam.Size = New System.Drawing.Size(120, 20)
        Me.txtNieuwAlbumNaam.TabIndex = 3
        Me.txtNieuwAlbumNaam.Text = ""
        '
        'Label3
        '
        Me.Label3.Location = New System.Drawing.Point(120, 56)
        Me.Label3.Name = "Label3"
        Me.Label3.Size = New System.Drawing.Size(56, 24)
        Me.Label3.TabIndex = 2
        Me.Label3.Text = "Productie"
        '
        'Label2
        '
        Me.Label2.Location = New System.Drawing.Point(16, 56)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(40, 24)
        Me.Label2.TabIndex = 1
        Me.Label2.Text = "Jaar"
        '
        'lblAlbumNaam
        '
        Me.lblAlbumNaam.Location = New System.Drawing.Point(16, 24)
        Me.lblAlbumNaam.Name = "lblAlbumNaam"
        Me.lblAlbumNaam.Size = New System.Drawing.Size(40, 24)
        Me.lblAlbumNaam.TabIndex = 0
        Me.lblAlbumNaam.Text = "Album"
        '
        'cboNieuwAlbumLocatie
        '
        Me.cboNieuwAlbumLocatie.Location = New System.Drawing.Point(72, 88)
        Me.cboNieuwAlbumLocatie.Name = "cboNieuwAlbumLocatie"
        Me.cboNieuwAlbumLocatie.Size = New System.Drawing.Size(232, 21)
        Me.cboNieuwAlbumLocatie.TabIndex = 6
        '
        'lblAlbumLocatie
        '
        Me.lblAlbumLocatie.Location = New System.Drawing.Point(16, 88)
        Me.lblAlbumLocatie.Name = "lblAlbumLocatie"
        Me.lblAlbumLocatie.Size = New System.Drawing.Size(48, 23)
        Me.lblAlbumLocatie.TabIndex = 7
        Me.lblAlbumLocatie.Text = "Locatie"
        '
        'btnNieuwAlbum
        '
        Me.btnNieuwAlbum.Enabled = False
        Me.btnNieuwAlbum.Location = New System.Drawing.Point(312, 480)
        Me.btnNieuwAlbum.Name = "btnNieuwAlbum"
        Me.btnNieuwAlbum.Size = New System.Drawing.Size(104, 23)
        Me.btnNieuwAlbum.TabIndex = 16
        Me.btnNieuwAlbum.Text = "Toevoegen"
        '
        'txtToevoegId
        '
        Me.txtToevoegId.Location = New System.Drawing.Point(56, 480)
        Me.txtToevoegId.Name = "txtToevoegId"
        Me.txtToevoegId.ReadOnly = True
        Me.txtToevoegId.Size = New System.Drawing.Size(48, 20)
        Me.txtToevoegId.TabIndex = 17
        Me.txtToevoegId.Text = ""
        '
        'Label5
        '
        Me.Label5.Location = New System.Drawing.Point(24, 488)
        Me.Label5.Name = "Label5"
        Me.Label5.Size = New System.Drawing.Size(24, 23)
        Me.Label5.TabIndex = 18
        Me.Label5.Text = "ID"
        '
        'txtTitelLied
        '
        Me.txtTitelLied.Location = New System.Drawing.Point(48, 152)
        Me.txtTitelLied.Name = "txtTitelLied"
        Me.txtTitelLied.Size = New System.Drawing.Size(232, 20)
        Me.txtTitelLied.TabIndex = 0
        Me.txtTitelLied.Text = ""
        '
        'txtDuurLied
        '
        Me.txtDuurLied.Location = New System.Drawing.Point(328, 152)
        Me.txtDuurLied.Name = "txtDuurLied"
        Me.txtDuurLied.Size = New System.Drawing.Size(56, 20)
        Me.txtDuurLied.TabIndex = 0
        Me.txtDuurLied.Text = ""
        '
        'gpbLiedjesBeheer
        '
        Me.gpbLiedjesBeheer.Controls.Add(Me.Label1)
        Me.gpbLiedjesBeheer.Controls.Add(Me.btnVoegLiedToe)
        Me.gpbLiedjesBeheer.Controls.Add(Me.lvwLiedjes)
        Me.gpbLiedjesBeheer.Controls.Add(Me.txtTitelLied)
        Me.gpbLiedjesBeheer.Controls.Add(Me.txtDuurLied)
        Me.gpbLiedjesBeheer.Controls.Add(Me.btnWijzigLied)
        Me.gpbLiedjesBeheer.Controls.Add(Me.btnVerwijderLied)
        Me.gpbLiedjesBeheer.Controls.Add(Me.lblDuurLied)
        Me.gpbLiedjesBeheer.Location = New System.Drawing.Point(16, 256)
        Me.gpbLiedjesBeheer.Name = "gpbLiedjesBeheer"
        Me.gpbLiedjesBeheer.Size = New System.Drawing.Size(400, 216)
        Me.gpbLiedjesBeheer.TabIndex = 19
        Me.gpbLiedjesBeheer.TabStop = False
        Me.gpbLiedjesBeheer.Text = "Voeg liedjes toe"
        '
        'Label1
        '
        Me.Label1.Location = New System.Drawing.Point(8, 152)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(32, 23)
        Me.Label1.TabIndex = 3
        Me.Label1.Text = "Titel"
        '
        'btnVoegLiedToe
        '
        Me.btnVoegLiedToe.Location = New System.Drawing.Point(16, 184)
        Me.btnVoegLiedToe.Name = "btnVoegLiedToe"
        Me.btnVoegLiedToe.Size = New System.Drawing.Size(104, 23)
        Me.btnVoegLiedToe.TabIndex = 2
        Me.btnVoegLiedToe.Text = "Voeg Toe"
        '
        'lvwLiedjes
        '
        Me.lvwLiedjes.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.clhTitel, Me.chlLiedDuur})
        Me.lvwLiedjes.HideSelection = False
        Me.lvwLiedjes.Location = New System.Drawing.Point(16, 24)
        Me.lvwLiedjes.MultiSelect = False
        Me.lvwLiedjes.Name = "lvwLiedjes"
        Me.lvwLiedjes.Size = New System.Drawing.Size(368, 120)
        Me.lvwLiedjes.TabIndex = 1
        Me.lvwLiedjes.View = System.Windows.Forms.View.Details
        '
        'clhTitel
        '
        Me.clhTitel.Text = "Titel"
        Me.clhTitel.Width = 263
        '
        'chlLiedDuur
        '
        Me.chlLiedDuur.Text = "Duur"
        '
        'btnWijzigLied
        '
        Me.btnWijzigLied.Location = New System.Drawing.Point(152, 184)
        Me.btnWijzigLied.Name = "btnWijzigLied"
        Me.btnWijzigLied.Size = New System.Drawing.Size(104, 23)
        Me.btnWijzigLied.TabIndex = 2
        Me.btnWijzigLied.Text = "Wijzig"
        '
        'btnVerwijderLied
        '
        Me.btnVerwijderLied.Location = New System.Drawing.Point(280, 184)
        Me.btnVerwijderLied.Name = "btnVerwijderLied"
        Me.btnVerwijderLied.Size = New System.Drawing.Size(104, 23)
        Me.btnVerwijderLied.TabIndex = 2
        Me.btnVerwijderLied.Text = "Verwijder"
        '
        'lblDuurLied
        '
        Me.lblDuurLied.Location = New System.Drawing.Point(288, 152)
        Me.lblDuurLied.Name = "lblDuurLied"
        Me.lblDuurLied.Size = New System.Drawing.Size(32, 23)
        Me.lblDuurLied.TabIndex = 3
        Me.lblDuurLied.Text = "Duur"
        '
        'gpbGroep
        '
        Me.gpbGroep.Controls.Add(Me.chbNieuweGroep)
        Me.gpbGroep.Controls.Add(Me.txtAantalLeden)
        Me.gpbGroep.Controls.Add(Me.Label6)
        Me.gpbGroep.Controls.Add(Me.cboGroepNaam)
        Me.gpbGroep.Controls.Add(Me.Label4)
        Me.gpbGroep.Location = New System.Drawing.Point(16, 200)
        Me.gpbGroep.Name = "gpbGroep"
        Me.gpbGroep.Size = New System.Drawing.Size(400, 56)
        Me.gpbGroep.TabIndex = 20
        Me.gpbGroep.TabStop = False
        Me.gpbGroep.Text = "Voer hier Artiest Gegevens in"
        '
        'chbNieuweGroep
        '
        Me.chbNieuweGroep.Location = New System.Drawing.Point(9, 20)
        Me.chbNieuweGroep.Name = "chbNieuweGroep"
        Me.chbNieuweGroep.TabIndex = 4
        Me.chbNieuweGroep.Text = "Nieuwe Groep?"
        '
        'txtAantalLeden
        '
        Me.txtAantalLeden.Enabled = False
        Me.txtAantalLeden.Location = New System.Drawing.Point(368, 24)
        Me.txtAantalLeden.Name = "txtAantalLeden"
        Me.txtAantalLeden.Size = New System.Drawing.Size(24, 20)
        Me.txtAantalLeden.TabIndex = 3
        Me.txtAantalLeden.Text = ""
        '
        'Label6
        '
        Me.Label6.Location = New System.Drawing.Point(288, 24)
        Me.Label6.Name = "Label6"
        Me.Label6.Size = New System.Drawing.Size(72, 23)
        Me.Label6.TabIndex = 2
        Me.Label6.Text = "Aantal Leden"
        '
        'cboGroepNaam
        '
        Me.cboGroepNaam.Location = New System.Drawing.Point(160, 24)
        Me.cboGroepNaam.Name = "cboGroepNaam"
        Me.cboGroepNaam.Size = New System.Drawing.Size(121, 21)
        Me.cboGroepNaam.TabIndex = 1
        '
        'Label4
        '
        Me.Label4.Location = New System.Drawing.Point(120, 24)
        Me.Label4.Name = "Label4"
        Me.Label4.Size = New System.Drawing.Size(40, 23)
        Me.Label4.TabIndex = 0
        Me.Label4.Text = "Naam:"
        '
        'ErrorProvider1
        '
        Me.ErrorProvider1.ContainerControl = Me
        '
        'PictureBox1
        '
        Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
        Me.PictureBox1.Location = New System.Drawing.Point(0, 0)
        Me.PictureBox1.Name = "PictureBox1"
        Me.PictureBox1.Size = New System.Drawing.Size(424, 72)
        Me.PictureBox1.TabIndex = 21
        Me.PictureBox1.TabStop = False
        '
        'frmAlbumToevoegen
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(418, 511)
        Me.Controls.Add(Me.PictureBox1)
        Me.Controls.Add(Me.gpbGroep)
        Me.Controls.Add(Me.gpbLiedjesBeheer)
        Me.Controls.Add(Me.Label5)
        Me.Controls.Add(Me.txtToevoegId)
        Me.Controls.Add(Me.btnNieuwAlbum)
        Me.Controls.Add(Me.gpbVoegAlbumToe)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
        Me.MaximizeBox = False
        Me.Name = "frmAlbumToevoegen"
        Me.Text = "Album Toevoegen"
        Me.gpbVoegAlbumToe.ResumeLayout(False)
        Me.gpbLiedjesBeheer.ResumeLayout(False)
        Me.gpbGroep.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region

    Dim moCurrentSelectedLied As New clsLied("", "", "0:00")
    Dim mItemIndex As New Integer
    Dim mUitvoeringGenreID As New String("")
    Dim mUitvoeringGroepID As New String("")
    Dim mbUitgevoerd As Boolean = False


#Region "Events"
    Public Event AlbumToegevoegd()
    Public Event GenreToegevoegd()
    Public Event GroepToegevoegd()
    Public Event eGeselecteerd()

    'form

    Private Sub frmAlbumToevoegen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        toevoegIdIngeven()
        opVullen()


    End Sub

    Private Sub txtToevoegRek_TabIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        toevoegIdIngeven()
    End Sub

    Private Sub frmAlbumToevoegen_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        ' CheckUitgevoerdOpDatabase(e)
    End Sub


    'gpbGroep

    Private Sub chbNieuweGroep_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chbNieuweGroep.CheckedChanged
        If chbNieuweGroep.Checked = True Then
            txtAantalLeden.Enabled = True

            cboGroepNaam.Text = ""
        Else
            txtAantalLeden.Enabled = False
            BindGroepenCombobox()
        End If
    End Sub

    Private Sub cboGroepNaam_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboGroepNaam.SelectedIndexChanged
        Dim oGroep As clsGroep = cboGroepNaam.SelectedItem
        txtAantalLeden.Text = oGroep.AantalLeden
        Dim mUitvoeringGroepID = cboGroepNaam.SelectedIndex + 1


    End Sub


    'gpbLiedjesBeheer

    Private Sub lvwLiedjes_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvwLiedjes.Click

        Dim oLitem As ListViewItem
        If Not lvwLiedjes.SelectedItems.Count() = 0 Then

            For Each oLitem In lvwLiedjes.SelectedItems

                moCurrentSelectedLied.LiedNaam = oLitem.SubItems(0).Text
                moCurrentSelectedLied.LiedDuur = oLitem.SubItems(1).Text

                txtTitelLied.Text = moCurrentSelectedLied.LiedNaam
                txtDuurLied.Text = moCurrentSelectedLied.LiedDuur
            Next

        End If
    End Sub

    Private Sub cboNieuwAlbumGenre_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboNieuwAlbumGenre.SelectedIndexChanged
        If cboNieuwAlbumGenre.SelectedIndex <> -1 Then
            mUitvoeringGenreID = cboNieuwAlbumGenre.SelectedIndex + 1
        End If

    End Sub

#End Region

#Region "EnableDisableControls  - Reset Input Fields"

    Public Sub EnableDisableControls()
        If lvwLiedjes.Items.Count() > 0 Then
            btnNieuwAlbum.Enabled = True
        Else
            btnNieuwAlbum.Enabled = False
        End If
    End Sub

    Public Sub resetInputFields()
        txtNieuwAlbumNaam.Text = ""
        txtNieuwAlbumProductieHuis.Text = ""
        txtNieuwAlbumProductieJaar.Text = ""
        lvwLiedjes.Items.Clear()

        EnableDisableControls()
    End Sub



#End Region

#Region "Buttons events"

    Private Sub btnVoegLiedToe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoegLiedToe.Click
        Dim errorMessage As String

        If txtTitelLied.Text = "" Then
            MessageBox.Show("Vul een titel in")
        Else
            If valideerLied(txtDuurLied.Text, errorMessage) = False Then
                MessageBox.Show("Vul duur lied in")
            Else
                VoegLiedToe()
            End If

        End If


        EnableDisableControls()
    End Sub


    Private Sub btnWijzigLied_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWijzigLied.Click
        WijzigLied()
        EnableDisableControls()

    End Sub


    Private Sub btnVerwijderLied_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerwijderLied.Click
        VerwijderLied()
        EnableDisableControls()
    End Sub

    Private Sub btnNieuwAlbum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNieuwAlbum.Click
        'Controle
        'groep niet lege string? strings/integers waar nodig
        If mbUitgevoerd = False Then
            If Validatie() = True Then
                voerUitOpDatabase()
                ' mbUitgevoerd = True
                resetInputFields()
                'MyBase.Close()
            End If

        End If


    End Sub

#End Region

#Region "Groep beheer"
  
    Private Sub groepUitvoerenOpDatabase()
        Try

            If chbNieuweGroep.Checked = True Then



                Dim arlGroepen As ArrayList
                arlGroepen = clsGroepDA.GetGroepen


                Dim sGroepID As String = clsGroepDA.getVolgendGroepId

                Dim sGroepNaam As String = cboGroepNaam.Text

                Dim oGroep As New clsGroep(sGroepID, sGroepNaam, txtAantalLeden.Text)

                clsGroepDA.VoegGroepToe(oGroep)

                mUitvoeringGroepID = sGroepID

            Else

                Dim oGroep As clsGroep
                oGroep = cboGroepNaam.SelectedItem

                mUitvoeringGroepID = oGroep.GroepID
            End If

        Catch ex As Exception
            Debug.WriteLine(ex)
            MsgBox(ex.ToString, MsgBoxStyle.OKOnly, "Er tradt een fout op bij het toevoegen van de artiestgegevens in de database")
        End Try
    End Sub
#End Region

#Region "Liedjesbeheer"

    Private Sub VoegLiedToe()

        btnVerwijderLied.Enabled = True
        btnWijzigLied.Enabled = True

        EnableDisableControls()

        Dim sLiedNaam As New String("")
        Dim sLiedDuur As New String("")
        Dim sLiedID As New String("")



        Dim oLied As New clsLied(sLiedDuur, sLiedNaam, sLiedID)

        Dim moCurrentSelectedLied As clsLied

        oLied.LiedNaam = txtTitelLied.Text
        oLied.LiedDuur = txtDuurLied.Text
        txtTitelLied.Text = ""
        txtDuurLied.Text = ""




        Dim oLitm As ListViewItem
        oLitm = New ListViewItem

        oLitm.Text = oLied.LiedNaam
        oLitm.SubItems.Add(oLied.LiedDuur)

        lvwLiedjes.Items.Add(oLitm)


    End Sub

    Private Sub WijzigLied()
        If Not lvwLiedjes.SelectedItems.Count() = 0 Then
            Dim oLitm As New ListViewItem
            oLitm = lvwLiedjes.SelectedItems.Item(0)
            oLitm.Text = txtTitelLied.Text
            oLitm.SubItems(1).Text = txtDuurLied.Text
        End If
    End Sub

    Private Sub VerwijderLied()
        EnableDisableControls()
        If Not lvwLiedjes.SelectedItems.Count() = 0 Then
            lvwLiedjes.Items.Remove(lvwLiedjes.SelectedItems.Item(0))
        End If

        If lvwLiedjes.Items.Count() = 0 Then
            btnVerwijderLied.Enabled = False
            btnWijzigLied.Enabled = False
        End If
    End Sub

    Private Sub liedjes_uitvoeringenUitvoerenOpDatabase()

        For Each oLitm As ListViewItem In lvwLiedjes.Items

            Dim sLiedNaam As String = oLitm.Text
            Dim sLiedDuur As String = oLitm.SubItems(1).Text
            Dim sLiedID As String = clsLiedDA.getVolgendLiedId '= nieuwLiedID 

            Dim oLied As New clsLied(sLiedID, sLiedNaam, sLiedDuur)

            Try



                clsLiedDA.VoegLiedToe(oLied)

            Catch ex As Exception

                MsgBox(ex.ToString, MsgBoxStyle.OKOnly, "Er tradt een fout op bij het toevoegen van de liedjes in de database " & oLitm.Text & " " & oLitm.SubItems(1).Text & " .")

            End Try


            Try

                voegUitvoeringToe(oLied)

            Catch ex As Exception

                MsgBox(ex.ToString, MsgBoxStyle.OKOnly, "Er tradt een fout op bij het toevoegen van de uitvoeringen in de database")

            End Try

        Next

    End Sub

    Private Sub voegUitvoeringToe(ByVal oLied As clsLied)
        Try


            If cboNieuwAlbumGenre.SelectedIndex <> -1 Then
                mUitvoeringGenreID = cboNieuwAlbumGenre.SelectedIndex + 1
            Else
                mUitvoeringGenreID = 1

            End If



            Dim sUitvoeringID As String = clsUitvoeringDA.getVolgendUitvoeringId '= nieuweUitvoeringID 'UitvoeringID
            Dim sGroepID As String = mUitvoeringGroepID   'GroepID
            Dim sLiedId As String = oLied.LiedID
            Dim sGenreID As String = mUitvoeringGenreID 'GenreID
            Dim sAlbumID As String = txtToevoegId.Text 'AlbumID

            Dim oUitvoering As New clsUitvoering(sUitvoeringID, sGroepID, sLiedId, sGenreID, sAlbumID)

            clsUitvoeringDA.VoegUitvoeringToe(oUitvoering)

        Catch ex As Exception

            MsgBox(ex.ToString, MsgBoxStyle.OKOnly, "Er tradt een fout op bij het toevoegen van de uitvoeringen in de database")

        End Try
    End Sub

#End Region

#Region "Album Beheer"




    Private Sub albumUitvoerenOpDatabase()

        Try

            'If cboWijzigAlbumGenre.SelectedIndex <> -1 Then
            '    Dim oGenre As clsGenre
            '    oGenre = cboWijzigAlbumGenre.SelectedItem
            '    mUitvoeringGenreID = oGenre.GenreID
            'End If

            'If cboGroepNaam.SelectedIndex <> -1 Then
            '    clsUitvoeringDA.WijzigUitvoeringenGroepByAlbum(txtWijzigId.Text, mUitvoeringGroepID)
            'End If

            'Dim sAlbID As String = txtWijzigId.Text
            'Dim sAlbNaam As String = txtWijzigAlbumNaam.Text
            'Dim sAlbJaar As String = txtWijzigAlbumProductieJaar.Text
            'Dim sAlbProdH As String = txtWijzigAlbumProductieHuis.Text
            'Dim sAlbNrs As String = clsUitvoeringDA.GetUitvoeringenByAlbumID(txtWijzigId.Text).Count()
            'Dim sAlbGenre As String = mUitvoeringGenreID
            'Dim oLocatie As clsLocatie
            'oLocatie = cboWijzigAlbumLocatie.SelectedItem
            'Dim sAlbLoc As String = oLocatie.Id
            'Dim sAlbFoto As String = "een of ander pad"

            'Dim oAlbum As New clsAlbum(sAlbID, sAlbNaam, sAlbJaar, sAlbProdH, sAlbNrs, sAlbGenre, sAlbLoc, sAlbFoto)

            'clsAlbumDA.WijzigAlbum(oAlbum)


            If cboNieuwAlbumGenre.SelectedIndex <> -1 Then
                Dim oGenre As clsGenre
                oGenre = cboNieuwAlbumGenre.SelectedItem
                mUitvoeringGenreID = oGenre.GenreID
            Else
                MessageBox.Show("Kies een albumgenre")
            End If



            Dim sAlbID As String = txtToevoegId.Text
            Dim sAlbNaam As String = txtNieuwAlbumNaam.Text



            Dim sAlbJaar As String = txtNieuwAlbumProductieJaar.Text
            Dim sAlbProdH As String = txtNieuwAlbumProductieHuis.Text
            Dim sAlbNrs As String = lvwLiedjes.Items.Count()
            Dim sAlbGenre As String = mUitvoeringGenreID
            Dim oLocatie As clsLocatie
            oLocatie = cboNieuwAlbumLocatie.SelectedItem
            Dim sAlbLoc As String = oLocatie.Id
            Dim sAlbFoto As String = "een of ander pad"

            Dim oAlbum As New clsAlbum(sAlbID, sAlbNaam, sAlbJaar, sAlbProdH, sAlbNrs, sAlbGenre, sAlbLoc, sAlbFoto)

            'Dim oAlbum As New clsAlbum(txtToevoegId.Text, txtNieuwAlbumNaam.Text, txtNieuwAlbumProductieJaar.Text, txtNieuwAlbumProductieHuis.Text, lvwLiedjes.Items.Count(), cboNieuwAlbumGenre.Items.IndexOf(cboNieuwAlbumGenre.SelectedItem) + 1, cboNieuwAlbumLocatie.Items.IndexOf(cboNieuwAlbumLocatie.SelectedItem) + 1, "")

            'Dim oAlbum As New clsAlbum(txtToevoegId.Text, txtNieuwAlbumNaam.Text, txtNieuwAlbumProductieJaar.Text, txtNieuwAlbumProductieHuis.Text, lvwLiedjes.Items.Count(), cboNieuwAlbumGenre.Items.IndexOf(cboNieuwAlbumGenre.SelectedItem) + 1 ,cboNieuwAlbumLocatie.Items.IndexOf(cboNieuwAlbumLocatie.SelectedItem) + 1, "")

            clsAlbumDA.VoegAlbumToe(oAlbum)



            RaiseEvent AlbumToegevoegd()



            'toevoegIdIngeven()
            'normaal close weg en dat je opnieuw album kan toevoegen ma er is probleem hier met toevoegidingeven





        Catch Ex As Exception
            '            MessageBox.Show("Er tradt een odbc fout op bij het toevoegen van het Album")
            MessageBox.Show("Er tradt een onverwachte fout op bij het toevoegen van het Album")
        End Try

    End Sub


#End Region

#Region "Validatie"


    Private Function checkFieldsNotEmpty() As Boolean
        If txtNieuwAlbumProductieJaar.Text.Length = 0 Or txtNieuwAlbumProductieHuis.Text.Length = 0 Or txtNieuwAlbumNaam.Text.Length = 0 Then
            MsgBox("Gelieve alle velden in te vullen.", MsgBoxStyle.OKOnly, "Gegevens onvolledig")
            Return False
        Else
            Return True
        End If
    End Function
    '  Private Function checkAlbumNaam() As Boolean
    '    Dim arlAlbums As ArrayList
    '    Dim i As Integer
    '    arlAlbums = clsAlbumDA.GetAlbumByNaam(txtNieuwAlbumNaam.Text)
    '    For Each aAlbum As clsAlbum In arlAlbums
    '        i += 1
    '    Next
    '    If i = 0 Then
    '        Return True
    '    Else
    '        Return False
    '        MsgBox("Kies een andere naam, deze bestaat al.", MsgBoxStyle.OKOnly, "Gegevens conflict in database")
    '    End If


    'End Function
    Private Function checkMaxChar(ByVal sString As String, ByVal iMax As Integer) As Boolean
        If sString.Length > iMax Then
            MsgBox(sString & " is geen geldige ingave." & vbCrLf & vbCrLf & "Gelieve niet meer dan " & iMax & " karakters in te vullen.", MsgBoxStyle.OKOnly, "Ongeldige invoergegevens.")
            Return False
        Else
            Return True
        End If
    End Function
    

    Private Sub CheckUitgevoerdOpDatabase(ByVal e As System.ComponentModel.CancelEventArgs)

        ' Checks the value of the text.

        If mbUitgevoerd = False Then

            ' Initializes variables to pass to the MessageBox.Show method.

            Dim Message As String = "De veranderingen zijn nog niet uitgevoerd op de database, wilt u dat nu doen?"
            Dim Caption As String = "Database update pending."
            Dim Buttons As MessageBoxButtons = MessageBoxButtons.YesNo

            Dim Result As DialogResult

            'Displays the MessageBox

            Result = MessageBox.Show(Me, Message, Caption, Buttons)

            ' Gets the result of the MessageBox display.

            Select Case Result

                Case DialogResult.Yes
                    e.Cancel = True
                    ' Closes the parent form.
                    'CheckAantalLiedjes(e)

                    'voerUitOpDatabase()

                Case DialogResult.No



            End Select

        End If

    End Sub

    Private Function Validatie() As Boolean
        If checkFieldsNotEmpty() And ControleerLocatie(cboNieuwAlbumLocatie.SelectedItem) Then 'And checkAlbumNaam Then
            Return True
        End If
    End Function

#Region "album"
    'valideer albumnaam
    Private Function valideerAlbumNaam(ByVal sAlbumNaam As String, ByRef errorMessage As String) As Boolean


        Dim arlAlbums As ArrayList
        Dim mbGeldig As Boolean = True
        arlAlbums = clsAlbumDA.GetAlbums
        For Each oAlbum As clsAlbum In arlAlbums

            If oAlbum.AlbumNaam.ToLower = sAlbumNaam.ToLower Then
                mbGeldig = False
                MsgBox("Kies een andere albumnaam", MsgBoxStyle.OKOnly, "Albumnaam reeds in database")
            End If

        Next




        errorMessage = sAlbumNaam & " bestaat al als albumnaam... kies een andere albumnaam."
        Return mbGeldig
    End Function
    Private Sub txtNieuwAlbumNaam_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtNieuwAlbumNaam.Validating
        Dim errorMsg As String
        If Not valideerAlbumNaam(txtNieuwAlbumNaam.Text, errorMsg) Then
            ' cancel event en focus input control
            e.Cancel = True
            txtDuurLied.Select(0, txtNieuwAlbumNaam.Text.Length)

            ' geef errorprovider errormsg mee 
            Me.ErrorProvider1.SetError(txtNieuwAlbumNaam, errorMsg)
        End If
    End Sub
    Private Sub txtNieuwAlbumNaam_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNieuwAlbumNaam.Validated
        ErrorProvider1.SetError(txtNieuwAlbumNaam, "")
    End Sub
    'valideer productiejaar
    Private Function valideerProductieJaar(ByVal sProductieJaar As String, ByRef errorMessage As String) As Boolean
        ' Confirm there is text in the control.
        If txtNieuwAlbumProductieJaar.Text.Length = 0 Then
            errorMessage = "U moet een jaartal invullen."
            Return False

        End If


        If IsNumeric(txtNieuwAlbumProductieJaar.Text) Then

            If txtNieuwAlbumProductieJaar.Text.Length < 5 Then
                Return True
            Else
                errorMessage = "Een productiejaar van 4 cijfers..."
            End If
        Else
            errorMessage = "Productiejaar moet een jaartal zijn."
        End If



        Return False
    End Function
    Private Sub txtNieuwAlbumProductieJaar_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtNieuwAlbumProductieJaar.Validating
        Dim errorMsg As String
        If Not valideerProductieJaar(txtNieuwAlbumProductieJaar.Text, errorMsg) Then
            ' Cancel the event and select the text to be corrected by the user.
            e.Cancel = True
            txtNieuwAlbumProductieJaar.Select(0, txtNieuwAlbumProductieJaar.Text.Length)

            ' Set the ErrorProvider error with the text to display. 
            Me.ErrorProvider1.SetError(txtNieuwAlbumProductieJaar, errorMsg)
        End If
    End Sub
    Private Sub txtNieuwAlbumProductieJaar_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNieuwAlbumProductieJaar.Validated
        ErrorProvider1.SetError(txtNieuwAlbumProductieJaar, "")
    End Sub

#End Region
#Region "Liedjes"
    Private Function valideerLied(ByVal duurLied As String, ByRef errorMessage As String) As Boolean
        'check not empty
        If txtDuurLied.Text.Length = 0 Then
            errorMessage = "Duur lied moet ingevuld worden"
            Return False

        End If
        If Not checkMaxChar(txtDuurLied.Text, 30) Then
            errorMessage = "Naam lied mag niet meer dan 30 karakters bevatten."
            Return False
        End If
        If Not checkMaxChar(txtDuurLied.Text, 8) Then
            Return False
        End If

        If duurLied.IndexOf(":") > -1 Then
            errorMessage = "Duur lied moet geldig genoteerd zijn" + ControlChars.Cr + _
                     "Bijvoorbeeld '03:34' "
            Return True
        End If


        errorMessage = "Duur lied moet geldig genoteerd zijn" + ControlChars.Cr + _
          "Bijvoorbeeld '03:34' "
        Return False
    End Function
    Private Sub txtDuurLied_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtDuurLied.Validating
        Dim errorMsg As String
        If Not valideerLied(txtDuurLied.Text, errorMsg) Then
            ' Cancel the event and select the text to be corrected by the user.
            e.Cancel = True
            txtDuurLied.Select(0, txtDuurLied.Text.Length)

            ' Set the ErrorProvider error with the text to display. 
            Me.ErrorProvider1.SetError(txtDuurLied, errorMsg)
        End If

    End Sub
    Private Sub txtDuurLied_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtDuurLied.Validated
        ErrorProvider1.SetError(txtDuurLied, "")
    End Sub
#End Region
#Region "Locaties"
    Private Function ControleerLocatie(ByVal oLocatie As clsLocatie) As Boolean

        oLocatie = cboNieuwAlbumLocatie.SelectedItem

        If oLocatie.MaxAantal < clsAlbumDA.GetAlbumsByLocatieID(oLocatie.Id).Count + 1 Then
            MsgBox("Aantal: " & clsAlbumDA.GetAlbumsByLocatieID(oLocatie.Id).Count & "    Maximum: " & oLocatie.MaxAantal, MsgBoxStyle.OKCancel, "Het maximum aantal albums op die locatie is reeds bereikt, gelieve een andere locatie te kiezen")
            Return False
        Else
            Return True
        End If

    End Function
#End Region

#End Region

#Region "Opvullen"

    Private Sub BindGenreComboBox()
        Dim arlGenres As ArrayList
        arlGenres = clsGenreDA.GetGenres
        cboNieuwAlbumGenre.DataSource = arlGenres
    End Sub

    Private Sub BindLocatieComboBox()
        Dim arlAlbumLocaties As ArrayList
        arlAlbumLocaties = clsLocatieDA.GetLocaties
        cboNieuwAlbumLocatie.DataSource = arlAlbumLocaties
    End Sub

    Private Sub BindGroepenCombobox()
        Dim arlGroepen As ArrayList
        arlGroepen = clsGroepDA.GetGroepen
        cboGroepNaam.DataSource = arlGroepen
    End Sub

    Private Sub toevoegIdIngeven()
        txtToevoegId.Text = clsAlbumDA.getVolgendAlbumId
    End Sub

    Private Sub opVullen()
        BindGenreComboBox()
        BindLocatieComboBox()
        BindGroepenCombobox()

    End Sub



#End Region



    Private Sub voerUitOpDatabase()
        Try
            groepUitvoerenOpDatabase()

            albumUitvoerenOpDatabase()

            liedjes_uitvoeringenUitvoerenOpDatabase()

        Catch ex As Exception

            Debug.WriteLine(ex)
            MsgBox(ex.ToString, MsgBoxStyle.OKOnly, "Fout bij uitvoeren data op database.")

        End Try
    End Sub


End Class
