Imports FastColoredTextBoxNS
Imports System.IO

Public Class frmHomepageWartungNew

    Private DB As New cDBHomepage
    Private DBOpt As New cOptionenDAL

    Dim blocks As New List(Of cBlock)
    Private margin_top As Integer = 20
    Private margin_left As Integer = 20
    Private top_value As Integer = 0
    Private left_value As Integer = 0
    Private rowmaxheight As Integer = 0
    Private screenwidth As Integer = 1200
    Dim WithEvents fctbHTML As New FastColoredTextBox
    Dim hp_content As hp_content
    Dim hp_test '????????????????????????????????
    Dim laenderkuerzel As String = "de"
    Dim menueId As Integer = 1

    Private Sub frmHomepageWartungNew_KeyDown(sender As Object, e As KeyEventArgs) Handles fctbHTML.KeyDown
        'MsgBox("KKK" & e.KeyCode)
        If e.KeyCode = Keys.S AndAlso e.Modifiers = Keys.Control Then
            Button1.PerformClick()
        End If

    End Sub

    Private Sub frmHomepageWartungNew_Load(sender As Object, e As EventArgs) Handles Me.Load

      
        Panel1.Controls.Add(fctbHTML)
        fctbHTML.Dock = DockStyle.Fill
        initFctb()

        initCboIMG()



        ' menueHomepage.Items.Add("--> +")

        ComboBox2.Items.Clear()
        ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Deutsch", "de"))
        ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Englisch", "en"))
        ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Türkisch", "tr"))
        ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rumänisch", "ro"))
        ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Bulgarisch", "bg"))
        ComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Serbisch", "yu"))



        initHomepage()
    End Sub

    Sub initMenue()
        menueHomepage.Items.Clear()
        Dim nav As List(Of cNavigation) = DB.qry_menu_tags("de")

        For Each n In nav
            Dim item As New ToolStripMenuItem(n.bezeichnung)
            item.Name = n.id

            For Each n2 In n.subnavigation
                Dim i As New ToolStripMenuItem(n2.bezeichnung)
                i.Name = n2.id

                For Each n3 In n2.subnavigation
                    Dim ii As New ToolStripMenuItem(n3.bezeichnung)
                    i.DropDownItems.Add(ii)
                    ii.Name = n3.id
                    AddHandler ii.Click, AddressOf itemclick
                Next
                AddHandler i.Click, AddressOf itemclick
                item.DropDownItems.Add(i)

                'Eigenes bearbeiten

                ' Dim edititem2 As New ToolStripMenuItem("--> """ & n2.bezeichnung & """ bearbeiten")
                ' i.DropDownItems.Add(edititem2)

                ' edititem2.Name = n2.id
                ' AddHandler edititem2.Click, AddressOf itemclick
                menueHomepage.Items.Add(item)


                'hinzufügen
                ' Dim additem2 As New ToolStripMenuItem("-->  +")
                ' i.DropDownItems.Add(additem2)
                ' additem2.Name = n2.id
                ' AddHandler additem2.Click, AddressOf itemclickPLUS
                menueHomepage.Items.Add(item)


            Next

            'Eigenes bearbeiten

            Dim edititem As New ToolStripMenuItem("--> """ & n.bezeichnung & """ bearbeiten")
            item.DropDownItems.Add(edititem)
            edititem.Name = n.id
            AddHandler edititem.Click, AddressOf itemclick
            menueHomepage.Items.Add(item)


            'hinzufügen
            'Dim additem As New ToolStripMenuItem("--> +")
            'item.DropDownItems.Add(additem)
            ' additem.Name = n.id
            ' AddHandler additem.Click, AddressOf itemclickPLUS

            menueHomepage.Items.Add(item)


        Next
    End Sub
    Private Sub itemclick(sender As Object, e As EventArgs)
        menueId = sender.name
        initHomepage()
    End Sub

    Private Sub itemclickPLUS(sender As Object, e As EventArgs)
        Exit Sub
        Dim title As String = InputBox("Bitte geben Sie den deutschen Menü-Titel an:")
        If title <> "" Then
            initHomepage()
        Else
            MsgBox("Der Titel darf nicht leer sein!")
        End If
    End Sub


    Private Sub addClick(sender As Object, e As EventArgs)
        If sender.name.ToString.Contains("addHp_") Then
            Dim id As Integer = CInt(sender.name.ToString.Replace("addHp_", ""))
            MsgBox("ADD: " & id)
        End If
    End Sub
    Private Sub delClick(sender As Object, e As EventArgs)
        If sender.name.ToString.Contains("delHp_") Then
            Dim id As Integer = CInt(sender.name.ToString.Replace("delHp_", ""))
            MsgBox("DEL: " & id)
        End If
    End Sub
    Sub initHomepage()
        initMenue()
        Try
            hp_content = DB.qry_contentNew(menueId, laenderkuerzel)
            If hp_content Is Nothing Then
                hp_content = New hp_content
                hp_content.hp_content = ""
                'hp_content.hp_id = menueId
                hp_content.hp_id = -1
            End If
        Catch ex As Exception
            MsgBox("ERR")
        End Try
        fctbHTML.Text = hp_content.hp_content
        txtMenueimgPath.Text = hp_content.hp_imgPath
        txtMenueName.Text = hp_content.hp_title
        txtMenueSlogan.Text = hp_content.hp_slogan

        Try
            If hp_content.hp_imgPath <> "" Then
                pictxtMenueImg.Image = Image.FromFile(hp_test & "" & hp_content.hp_imgPath)
            End If
        Catch ex As Exception

        End Try

        Button3.Enabled = False 'del
        Button4.Enabled = False 'unter
        If hp_content.hp_instance <> "" Then
            If hp_content.hp_instance > 0 Then Button3.Enabled = True
            If hp_content.hp_instance < 2 Then Button4.Enabled = True
        End If

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        hp_content.hp_content = fctbHTML.Text

        hp_content.hp_imgPath = txtMenueimgPath.Text
        hp_content.hp_title = txtMenueName.Text
        hp_content.hp_slogan = txtMenueSlogan.Text

        If hp_content.hp_id >= 0 Then
            DB.update_HPContentNew(hp_content, laenderkuerzel)
        Else

        End If
        initHomepage()
    End Sub

    Sub initFctb()
        Me.fctbHTML.AutoIndent = False
        Me.fctbHTML.AutoScrollMinSize = New Size(0, 15)
        Me.fctbHTML.BackBrush = Nothing
        Me.fctbHTML.Cursor = Cursors.IBeam
        Me.fctbHTML.DelayedEventsInterval = 500
        Me.fctbHTML.DisabledColor = Color.FromArgb(100, 180, 180, 180)
        Me.fctbHTML.Dock = DockStyle.Fill
        Me.fctbHTML.Font = New Font("Consolas", 9.75F)
        Me.fctbHTML.IndentBackColor = Color.FromArgb(50, 255, 255, 255)
        Me.fctbHTML.LeftBracket = "("
        Me.fctbHTML.LeftPadding = 15
        Me.fctbHTML.Location = New Point(0, 0)
        Me.fctbHTML.Name = "fctbHTML"
        Me.fctbHTML.Paddings = New Padding(0)
        Me.fctbHTML.RightBracket = ")"
        Me.fctbHTML.SelectionColor = Color.FromArgb(50, 0, 0, 255)
        Me.fctbHTML.Size = New Size(447, 262)
        Me.fctbHTML.TabIndex = 0
        Me.fctbHTML.WordWrap = True
        ' AddHandler Me.fctbHTML.SelectionChangedDelayed, New EventHandler(AddressOf Me.fctbHTML_SelectionChangedDelayed)
        ' AddHandler Me.fctbHTML.VisualMarkerClick, New EventHandler(Of VisualMarkerEventArgs)(AddressOf Me.fctbHTML_VisualMarkerClick)
        ' AddHandler Me.fctbHTML.PaintLine, New EventHandler(Of PaintLineEventArgs)(AddressOf Me.fctbHTML_PaintLine)
        ' AddHandler Me.fctbHTML.Resize, New EventHandler(AddressOf Me.fctbHTML_Resize)
    End Sub

    Sub tb_TextChangedDelayed(sender As Object, e As TextChangedEventArgs) Handles fctbHTML.TextChangedDelayed

        Dim tb As FastColoredTextBox = sender

        'highlight html
        tb.SyntaxHighlighter.InitStyleSchema(Language.HTML)
        tb.SyntaxHighlighter.HTMLSyntaxHighlight(tb.Range)
        tb.Range.ClearFoldingMarkers()
        'find PHP fragments
        ' foreach(var r in tb.GetRanges(@"<\?php.*?\?>", RegexOptions.Singleline))
        For Each r In tb.GetRanges("@<\?php.*?\?>", 16)
            ' //remove HTML highlighting from this fragment
            r.ClearStyle(StyleIndex.All)
            '  //do PHP highlighting
            tb.SyntaxHighlighter.InitStyleSchema(Language.PHP)
            tb.SyntaxHighlighter.PHPSyntaxHighlight(r)
        Next


    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'FileDialog()
        Try

            Dim ofd As New OpenFileDialog
            ofd.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png"

            If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
                '            Dim file As File = ""
                Dim myValue = InputBox("Bitte Name eingeben (mit Endung)", "FileName", cut_file(ofd.FileName))
                If myValue <> "" Then
                    FileCopy(ofd.FileName, hp_test & "images\" & myValue)
                End If
            End If
            initCboIMG()
        Catch ex As Exception
            MsgBox("Fehler beim speichern des Bildes")
        End Try
    End Sub
    Sub initCboIMG()
        ComboBox1.Items.Clear()
        For Each file As String In IO.Directory.GetFiles(hp_test & "images\") ' Ermittelt alle Dateien des Ordners 
            ComboBox1.Items.Add(cut_file(file))
        Next
    End Sub

    Private Function cut_file(ByVal file As String) As String ' Funktion zum Entfernen der Backslashs / Ordner While file.Contains("\") file = file.Remove(0, 1) End While Return file End Function 
        While file.Contains("\")
            file = file.Remove(0, 1)
        End While
        Return file
    End Function

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        My.Computer.Clipboard.SetText("images/" & sender.Text)
        PictureBox1.Image = Image.FromFile(hp_test & "images\" & sender.text)
    End Sub

    Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
        laenderkuerzel = DirectCast(ComboBox2.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value
        initHomepage()
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If vbYes = MsgBox("Möchten Sie wirklich diese Seite und allen Sprachen löschen?" & vbNewLine & "'" & hp_content.hp_title & "'", vbYesNoCancel) Then 'alle Unterseiten in 
            DB.deleteHpMenueAndContent(hp_content.hp_id)
        End If
        menueId = 1
        initHomepage()
    End Sub

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim title = InputBox("Bitte geben Sie den deutschen Menü-Titel an:")
        If title <> "" Then
            menueId = DB.insert_HPContentNew(hp_content, laenderkuerzel, title, hp_content.hp_id, hp_content.hp_instance)
            initHomepage()
        Else
            MsgBox("Der Titel darf nicht leer sein!")
        End If
    End Sub
End Class

Public Class hp_content
    Property hp_id As Integer
    Property hp_title As String
    Property hp_content As String
    Property hp_instance As String
    Property hp_slogan As String
    Property hp_imgPath As String
    Property hp_refIdToUpperMenue As String
End Class