import os
import markdown

import header
import re


def erstelleStartseite(lerngruppen, path, config, inputs):

    table = ''

    table += '<a name="Home"></a>'

    table += header.erstelleHauptnavigation(lerngruppen, path, config, inputs)

    allg = inputs["Allgemein"]
    schuljahr = allg["schuljahr"]
    zschuljahr = int(schuljahr)
    halbjahr = allg["halbjahr"]

    myline = 'Schuljahr ' + str(zschuljahr) + '/' + str((zschuljahr-2000)+1) + ', ' + halbjahr + '. Hj.'

    table += '<h1 class="start">'+myline+'</h1>'

    table += '<div class="tt">'

    # Markdowndatei einlesen
    try:
        stundenplandatei = allg['stundenplandatei']
    except KeyError:
        print('Der Bereichsschlüssel "stundenplandatei" im allgemeinen Bereich existiert nicht in der Input-Datei!')
        exit(0)

    tt_file = path+stundenplandatei

    if (len(stundenplandatei)==0):

        print("Stundenplan in der Konfiguration ausgeschaltet, erzeuge Startseite ohne Stundenplan.")

    elif (not(os.path.exists(tt_file))):

        print("Angegebene Stundenplandatei nicht vorhanden, erzeuge Startseite ohne Stundenplan.")

    else:

        f = open(tt_file)
        text = f.read()

        # nach HTML konvertieren
        html = markdown.markdown(text, extensions=['tables'])

        # mit Markup anreichern zur CSS Formatierung
        html = html.replace('<table>','<table class="timetable">')

        html = html.replace('''<th style="text-align: center;">''','''<th class="tag">''')
        html = html.replace('''<td style="text-align: center;">''','''<td class="tag">''')

        html = html.replace('''<tr>
<th class="tag">''','''<tr><th class="stunde">''')
        html = html.replace('''<tr>
<td class="tag">''','''<tr><td class="stunde">''')

        # ggf. Links zu Lerngruppen einfügen
        count = 0

        for kursid in lerngruppen:

            count = count + 1 
            mycss = 't'+str(count) # Timetable-CSS tX

            try:
                kurs_inputs_aktuell = inputs[kursid] 
            except KeyError:
                print('Der Bereichsschlüssel "'+kursid+'" (zur entsprechenden Datei) existiert nicht in der Input-Datei (2)!')
                exit(0)

            try:
                bezeichnung = config["Navigation"]["bezeichnung"]
            except KeyError:
                print('Der Schlüssel Navigation oder "kurzbezeichnung" existiert nicht in der Device-Datei!')
                exit(0)

            try:
                klassekurs_aktuell = kurs_inputs_aktuell["bezeichnung"]
                if (bezeichnung=='kurz'):
                    klassekurs_print = kurs_inputs_aktuell["kurzbezeichnung"]
                elif (bezeichnung=='abgekuerzt'):
                    klassekurs_print = kurs_inputs_aktuell["abkuerzung"]
                else:
                    klassekurs_print = kurs_inputs_aktuell["bezeichnung"]
            except KeyError:
                print('Der Schlüssel "bezeichnung" o.ä. fehlt im Bereich "'+kursid+'" der Input-Datei!')
                exit(0)

            if (bezeichnung=='abgekuerzt'):
                html = re.sub('Montag','Mo',html)
                html = re.sub('Dienstag','Di',html)
                html = re.sub('Mittwoch','Mi',html)
                html = re.sub('Donnerstag','Do',html)
                html = re.sub('Freitag','Fr',html)

            html = re.sub('\\['+kursid+'\\](.+)?<br>','<div class="'+mycss+'"><a href="#'+klassekurs_aktuell+'">'+klassekurs_print+'</a>\\1</div>',html)
            html = re.sub('\\['+kursid+'\\](.+)?</td>','<div class="'+mycss+'"><a href="#'+klassekurs_aktuell+'">'+klassekurs_print+'</a>\\1</div></td>',html)

        html = re.sub('\\[\\[(.+)?\\]\\](.+)?<br>','<div class="t-empty">\\1 \\2</div>',html)
        html = re.sub('\\[\\[(.+)?\\]\\](.+)?</td>','<div class="t-empty">\\1 \\2</div></td>',html)

        table += html

        table += '</div>'

    # Vermerk zum Projekt
    table += '<div class="footer">Dieses PDF-Dokument wurde mithilfe des Python-Skripts <a href="https://www.wolfganglezius.de/lehrerpdf/">LehrerPDF</a> von Wolfgang Lezius erzeugt.</div>'
    
    table += '<pdf:nextpage />'

    return table
