<div id="coach_output_forward_content_{{outputId}}">
{% if isBoss %}
    {% if showBossContent %}
        <div class="coach_output_forward_content_container_boss" id="coach_output_forward_content_{{outputId}}_forboss">
            {% for group in dataBoss%}
            <div {% set groupRand = random() %} id="coach_output_forward_content_group_{{groupRand}}" class="coach_output_forward_content_group">
                <h4 class="coach_output_forward_content_group_name">{{group.name}}</h4>
                <br>
                    {% for content in group.content %}
                        {% if headlines | length > 0%}
                            {% if headlines[loop.index0] != "" %}
                            <h4>{{headlines[loop.index0]}}</h4>
                            {% endif %}
                        {% endif %}
                        {% for thiscontent in content %}
                            {% if printlabels %}
                            <b><p>{{thiscontent.label}}</p></b>
                            {% endif %}
                            {% if thiscontent.data | length > 0 %}
                                {%for thisdata in thiscontent.data %}
                                    {% if thisdata is not empty %}
                                        {% if thiscontent.new[loop.index0] %}<small class="highlight-color">NEU:</small>{% endif %}
                                        <p class="{% if showSaveDate %}mb-0{% endif %} {% if thiscontent.new[loop.index0] %}border highlight-border-color p-2{% endif %}">{{thisdata}}</p>
                                        {% if showSaveDate %}
                                            <p class="text-muted mb-3"><small >zuletzt gespeichert am {{thiscontent.savedate[loop.index0] | date("d.m.y")}}</small></p>
                                        {% endif %}
                                    {% endif %}
                                {% endfor %}
                            {% else %}
                                <div class="alert alert-info" role="alert">
                                    <h5><i class="fas fa-info-circle"></i>&nbsp;Hinweis</h5>
                                    <p>
                                        Für dieses Feld sind keine Inhalte verfügbar.
                                    </p> 
                                </div>
                            {% endif %}
                            <br>
                        {% endfor %}
                        <br>    
                    {% endfor %}
            </div>
            {% if showPDFDownload %}
                <div class="info-radio link">
                    <i class='fas fa-external-link-alt'></i>
                    <p><a id="" href="javascript:generateForwardContentPDF('coach_output_forward_content_group_{{groupRand}}', '', '{{group.name}}')">{{pdfDownloadTitle}}</a></p>
                </div>
                <br>
            {% endif %}
            {% endfor %}
        </div>
    {% else %}
            <br>
            <div class="alert alert-info" role="alert">
                <h5><i class="fas fa-info-circle"></i>&nbsp;Hinweis</h5>
                <p>
                    Es wird nichts angezeigt, da dieser Inhalt für Sie noch nicht freigeschaltet wurde.
                </p>
            </div>
    {% endif %}
{% elseif isKAdmin %}
    {% if showKAdminContent %}
        {% for firma in dataKAdmin%}
        <div class="coach_output_forward_content_container_kadmin" id="coach_output_forward_content_{{outputId}}_forkadmin_{{loop.index0}}">
            <div class="mr-auto coach_output_forward_content_button">
                <button type="button" class="btn btn-link ts-list-button px-0" data-toggle="collapse" {%set rand = random()%} data-target="#demo_{{rand}}" aria-expanded="false">
                    <p class="h4 primary-color">
                        <i class="fas fa-plus ts-accordion-plus"></i>{{firma.name}}
                    </p>
                 </button>
             </div>
             <div id="demo_{{rand}}" class="collapse mt-2 coach_output_forward_content_groups">
                {% for group in firma.groups %}
                <div {% set groupRand = random() %} id="coach_output_forward_content_group_{{groupRand}}" class="coach_output_forward_content_group">
                    <h4 class="coach_output_forward_content_group_name">{{group.name}}</h4>
                    <br>
                        {% for content in group.content %}
                            {% if headlines | length > 0%}
                                {% if headlines[loop.index0] != "" %}
                                <h4>{{headlines[loop.index0]}}</h4>
                                {% endif %}
                            {% endif %}
                            {% for thiscontent in content %}
                                {% if printlabels %}
                                <b><p>{{thiscontent.label}}</p></b>
                                {% endif %}
                                {% if thiscontent.data | length > 0 %}
                                    {%for thisdata in thiscontent.data %}
                                        {% if thisdata is not empty %}
                                        {% if thiscontent.new[loop.index0] %}<small class="highlight-color">NEU:</small>{% endif %}
                                        <p class="{% if showSaveDate %}mb-0{% endif %} {% if thiscontent.new[loop.index0] %}border highlight-border-color p-2{% endif %}">{{thisdata}}</p>
                                        {% if showSaveDate %}
                                            <p class="text-muted mb-3"><small >zuletzt gespeichert am {{thiscontent.savedate[loop.index0] | date("d.m.y")}}</small></p>
                                        {% endif %}
                                        {% endif %}
                                    {% endfor %}
                                {% else %}
                                <div class="alert alert-info" role="alert">
                                    <h5><i class="fas fa-info-circle"></i>&nbsp;Hinweis</h5>
                                   <p>
                                    Für dieses Feld sind keine Inhalte verfügbar.
                                   </p> 
                                </div>
                                {% endif %}
                            <br>
                            {% endfor %}
                        <br>
                        {% endfor %}
                </div>
                {% if showPDFDownload %}
                <div class="info-radio link">
                    <i class='fas fa-external-link-alt'></i>
                    <p><a id="" href="javascript:generateForwardContentPDF('coach_output_forward_content_group_{{groupRand}}', '{{firma.name}}', '{{group.name}}')">{{pdfDownloadTitle}}</a></p>
                </div>
                <br>
                {% endif %}
                {% endfor %}
             </div>
        </div>
        {% endfor %}
    {% else %}
    <br>
    <div class="alert alert-info" role="alert">
        <h5><i class="fas fa-info-circle"></i>&nbsp;Hinweis</h5>
            <p>
                Es wird nichts angezeigt, da dieser Inhalt für Sie noch nicht freigeschaltet wurde.
            </p>        
    </div>
    {% endif %}
{% elseif isTeamleader %}
    {% if showTeamleaderContent %}
    <div class="coach_output_forward_content_container_teamleader" id="coach_output_forward_content_{{outputId}}_forteamleader">
        {% for group in dataTeamleader%}
        <div {% set groupRand = random() %} id="coach_output_forward_content_group_{{groupRand}}" class="coach_output_forward_content_group">
            <h4 class="coach_output_forward_content_group_name">{{group.name}}</h4>
            <br>
                {% for content in group.content %}
                    {% if headlines | length > 0%}
                        {% if headlines[loop.index0] != "" %}
                        <h4>{{headlines[loop.index0]}}</h4>
                        {% endif %}
                    {% endif %}
                    {% for thiscontent in content %}
                        {% if printlabels %}
                        <b><p>{{thiscontent.label}}</p></b>
                        {% endif %}
                        {% if thiscontent.data | length > 0 %}
                            {%for thisdata in thiscontent.data %}
                                {% if thisdata is not empty %}
                                    {% if thiscontent.new[loop.index0] %}<small class="highlight-color">NEU:</small>{% endif %}
                                    <p class="{% if showSaveDate %}mb-0{% endif %} {% if thiscontent.new[loop.index0] %}border highlight-border-color p-2{% endif %}">{{thisdata}} </p>
                                    {% if showSaveDate %}
                                        <p class="text-muted mb-3"><small >zuletzt gespeichert am {{thiscontent.savedate[loop.index0] | date("d.m.y")}}</small></p>
                                    {% endif %}
                                {% endif %}
                            {% endfor %}
                        {% else %}
                            <div class="alert alert-info" role="alert">
                                <h5><i class="fas fa-info-circle"></i>&nbsp;Hinweis</h5>
                               <p>
                                    Für dieses Feld sind keine Inhalte verfügbar.
                               </p> 
                            </div>
                        {% endif %}
                    <br>
                    {% endfor %}
                <br>    
                {% endfor %}
        </div>
        {% if showPDFDownload %}
                <div class="info-radio link">
                    <i class='fas fa-external-link-alt'></i>
                    <p><a id="" href="javascript:generateForwardContentPDF('coach_output_forward_content_group_{{groupRand}}', '', '{{group.name}}')">{{pdfDownloadTitle}}</a></p>
                </div>
                <br>
                {% endif %}
        {% endfor %}
    </div>
    {% endif %}
{% else %}
<br>
<div class="alert alert-info" role="alert">
    <h5><i class="fas fa-info-circle"></i>&nbsp;Hinweis</h5>
    <p>
        Es wird nichts angezeigt, da Sie nicht die notwendigen Berechtigungen für diesen Inhalt haben.
    </p>
</div>
{% endif %}
</div>

<script>
    function generateForwardContentPDF(divid, company, group){
        // Angaben zur PDF
        var pdfOrientation = "p";
        var pdfFormat = "a4";
        // Font
        var pdfFont = "helvetica";
        var currentFontSize = 12;
        var currentFontStyle = "normal";
        // Seitenränder (Werte jeweils in mm)
        var pdfMarginTop = 25;
        var pdfMarginLeft = 25;
        var pdfMarginRight = 25;
        var pdfMarginBottom = 20;
        // Erstellen der PDF-Instanz
        var doc = new jspdf.jsPDF({orientation: pdfOrientation, format: pdfFormat});
        // Höhe/Breite/Mitte der PDF (Werte jeweils in mm)
        var maxHeight = doc.internal.pageSize.height;
        var maxWidth = doc.internal.pageSize.width;
        var pdfCenter = maxWidth/2;
        // Seitenzahl
        doc.page = 1;
        var pageNumberFontSize = 11;
        var pageNumberFontStyle = "normal";
        // Schreiben der Seitenzahl auf der ersten Seite
        doc = forwarcContentPDFWritePageNumber(doc, pdfFont, currentFontSize, currentFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginBottom, maxHeight);

        // Maximal erlaubte Breite für Inhtalt in der PDF (Wert in mm)
        var maxContentWidth = maxWidth - pdfMarginLeft - pdfMarginRight;
        // Aktuelle Position in y-Richtung im Dokument
        var currentHeightPosition = pdfMarginTop;

        // Schreibe Firmennamen und Gruppennamen als Überschrift ins Dokument
        var docHeadline = "";
        if(company != ""){
            docHeadline = company + " - " + group;
        }
        else{
            docHeadline += group;
        }

        // Schriftgröße der Überschrift für das Dokument festlegen
        var docHeadlineFontSize = 22;
        // Zwischenspeichern der aktuellen Schriftgröße
        var currentFontSize = doc.getFontSize();
        doc.setFontSize(docHeadlineFontSize);

        docHeadline = forwardContentPDFReplaceSpecialCharacters(docHeadline);
        var docHeadlineArray = doc.splitTextToSize(docHeadline, maxContentWidth);
        for(var docH=0; docH < docHeadlineArray.length; docH++){
            // Zeile passt nicht mehr auf Seite
            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                var docFontSize = doc.getFontSize();
                var docFontStyle = "normal";
                var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                doc = result[0]; 
                currentHeightPosition = result[1];
            }
            var writeResult = forwardContentPDFWriteContent(doc, docHeadlineArray[docH], pdfMarginLeft, currentHeightPosition);
            doc = writeResult[0];
            currentHeightPosition = writeResult[1];
        }

        // Zurücksetzen der Schriftgröße
        doc.setFontSize(currentFontSize);
        currentHeightPosition += 3;

        var divContainer = jQuery('#'+divid).contents();

        for(var divCons=0; divCons < divContainer.length; divCons++){

            if(jQuery(divContainer[divCons]).is("h4:not(.coach_output_forward_content_group_name)")){
                currentHeightPosition += 3;
                var headlineText = jQuery(divContainer[divCons]).text();
                // Abrufen der Schriftfarbe und -größe für die Überschrift
                var headlineFontSize = 16;
                // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                var currentFontSize = doc.getFontSize();
                // Schriftfarbe für Überschrift setzen
                doc.setFontSize(headlineFontSize);

                // Ersetze Sonderzeichen in Überschrift
                headlineText = forwardContentPDFReplaceSpecialCharacters(headlineText);
                var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                for(var i=0; i< headLineTextArray.length; i++){
                    // Zeile passt nicht mehr auf Seite
                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                        var docFontSize = doc.getFontSize();
                        var docFontStyle = "normal";
                        var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                        doc = result[0]; 
                        currentHeightPosition = result[1];
                    }
                    var writeResult = forwardContentPDFWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                    doc = writeResult[0];
                    currentHeightPosition = writeResult[1];
                }

                // Zurücksetzen der Schriftfarbe und -größe
                doc.setFontSize(currentFontSize);
            }
            else if(jQuery(divContainer[divCons]).is("p")){
                var paragraphContent = jQuery(divContainer[divCons]).contents();
                if(jQuery(paragraphContent).is("small")){
                    var contentText = jQuery(divContainer[divCons]).text();
                    contentText = pdfReplaceSpecialCharacters(contentText);
                    // Abrufen der Schriftfarbe und -größe für das small-Element
                    var smallElementTextColor = "rgb(108, 117, 125)";
                    var smallElementFontSize = 10;
                    // Zwischenspeichern der aktuellen Schriftfarbe und -größe
                    var currentTextColor = doc.getTextColor();
                    var currentFontSize = doc.getFontSize();
                    // Schriftfarbe für Überschrift setzen
                    doc.setTextColor(smallElementTextColor);
                    doc.setFontSize(smallElementFontSize);
                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                    for(var cText=0; cText< contentTextArray.length; cText++){
                        // Zeile passt nicht mehr auf Seite
                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = pdfAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0];
                            currentHeightPosition = result[1];
                        }
                        var writeResult = pdfWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                        doc = writeResult[0];
                        currentHeightPosition = writeResult[1];
                    }
                    // Zurücksetzen der Schriftfarbe und -größe
                    doc.setTextColor(currentTextColor);
                    doc.setFontSize(currentFontSize);
                    currentHeightPosition+= 5;
                }
                else{
                    var contentText = jQuery(divContainer[divCons]).text();
                    contentText = forwardContentPDFReplaceSpecialCharacters(contentText);
                    var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                    for(var cText=0; cText < contentTextArray.length; cText++){
                        // Zeile passt nicht mehr auf Seite
                        if(currentHeightPosition + pdfMarginBottom > maxHeight){
                            var docFontSize = doc.getFontSize();
                            var docFontStyle = "normal";
                            var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                            doc = result[0];
                            currentHeightPosition = result[1];
                        }
                        var writeResult = forwardContentPDFWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                        doc = writeResult[0];
                        currentHeightPosition = writeResult[1];
                    }
                    currentHeightPosition += 1.5;
                }
            }
            else if(jQuery(divContainer[divCons]).is("br")){
                // Zeile passt nicht mehr auf Seite
                if(currentHeightPosition + pdfMarginBottom > maxHeight){
                    var docFontSize = doc.getFontSize();
                    var docFontStyle = "normal";
                    var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                    doc = result[0]; 
                    currentHeightPosition = result[1];
                }
                var writeResult = forwardContentPDFWriteContent(doc, "", pdfMarginLeft, currentHeightPosition);
                doc = writeResult[0];
                currentHeightPosition = writeResult[1];
            }
            else if(jQuery(divContainer[divCons]).is("b")){
                currentHeightPosition += 1.5;
                var contentText = jQuery(divContainer[divCons]).contents().text();
                contentText = forwardContentPDFReplaceSpecialCharacters(contentText);
                doc.setFont(pdfFont, "bold");
                var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                for(var cText=0; cText< contentTextArray.length; cText++){
                    // Zeile passt nicht mehr auf Seite
                    if(currentHeightPosition + pdfMarginBottom > maxHeight){
                        var docFontSize = doc.getFontSize();
                        var docFontStyle = "bold";
                        var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                        doc = result[0];
                        currentHeightPosition = result[1];
                    }
                    var writeResult = forwardContentPDFWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                    doc = writeResult[0];
                    currentHeightPosition = writeResult[1];
                }
                doc.setFont(pdfFont, "normal");
                currentHeightPosition += 3;
            }
            else if(jQuery(divContainer[divCons]).is("div.alert")){
                var alertContent = jQuery(divContainer[divCons]).contents();
                for(var alertDivCons = 0; alertDivCons < alertContent.length; alertDivCons++){
                    if(jQuery(alertContent[alertDivCons]).is("h5")){
                        currentHeightPosition += 3;
                        var headlineText = jQuery(alertContent[alertDivCons]).text();
                        headlineText = headlineText.trim();
                        var headlineFontSize = 14;
                        // Zwischenspeichern der aktuellen Schriftgröße
                        var currentFontSize = doc.getFontSize();
                        // Schriftgröße für Überschrift setzen
                        doc.setFontSize(headlineFontSize);

                        // Ersetze Sonderzeichen in Überschrift
                        headlineText = forwardContentPDFReplaceSpecialCharacters(headlineText);
                        var headLineTextArray = doc.splitTextToSize(headlineText, maxContentWidth);
                        for(var i=0; i< headLineTextArray.length; i++){
                            // Zeile passt nicht mehr auf Seite
                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                var docFontSize = doc.getFontSize();
                                var docFontStyle = "normal";
                                var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                doc = result[0]; 
                                currentHeightPosition = result[1];
                            }
                            var writeResult = forwardContentPDFWriteContent(doc, headLineTextArray[i], pdfMarginLeft, currentHeightPosition);
                            doc = writeResult[0];
                            currentHeightPosition = writeResult[1];
                        }

                        // Zurücksetzen der Schriftgröße
                        doc.setFontSize(currentFontSize);
                    }
                    else if(jQuery(alertContent[alertDivCons]).is("p")){
                        var contentText = jQuery(alertContent[alertDivCons]).text();
                        contentText = contentText.trim();
                        contentText = forwardContentPDFReplaceSpecialCharacters(contentText);
                        var contentTextArray = doc.splitTextToSize(contentText, maxContentWidth);
                        for(var cText=0; cText < contentTextArray.length; cText++){
                            // Zeile passt nicht mehr auf Seite
                            if(currentHeightPosition + pdfMarginBottom > maxHeight){
                                var docFontSize = doc.getFontSize();
                                var docFontStyle = "normal";
                                var result = forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, pdfCenter, pdfMarginTop, pdfMarginBottom, maxHeight);
                                doc = result[0];
                                currentHeightPosition = result[1];
                            }
                            var writeResult = forwardContentPDFWriteContent(doc, contentTextArray[cText], pdfMarginLeft, currentHeightPosition);
                            doc = writeResult[0];
                            currentHeightPosition = writeResult[1];
                        }
                    }
                }
                currentHeightPosition += 4;
            }
        }
        
        doc.save("Freigaben");
    }

    function forwarcContentPDFWritePageNumber(doc, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginBottom, maxHeight){
        doc.setFontSize(pageNumberFontSize);
        doc.setFont(pdfFont, pageNumberFontStyle);
        var currentTextColor = doc.getTextColor();
        doc.setTextColor(0,0,0);
        doc.text("-"+doc.page+"-", center, maxHeight-(marginBottom/2),{align:'center'});
        doc.setFontSize(docFontSize);
        doc.setFont(pdfFont, docFontStyle);
        doc.setTextColor(currentTextColor);
        return doc;
    }

    function forwardContentPDFAddNewPage(doc, pdfFormat, pdfOrientation, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginTop, marginBottom, maxHeight){
        doc.addPage(pdfFormat, pdfOrientation);
        var currentHeightPosition = marginTop;
        doc.page++;
        doc = forwarcContentPDFWritePageNumber(doc, pdfFont, docFontSize, docFontStyle, pageNumberFontSize, pageNumberFontStyle, center, marginBottom, maxHeight);
        return [doc, currentHeightPosition];
    }

    function forwardContentPDFWriteContent(doc, content, marginLeft, currentHeightPosition){
        doc.text(content, marginLeft, currentHeightPosition);
        currentHeightPosition += doc.getFontSize()*0.352778+doc.getLineHeightFactor()*0.352778;
        return [doc, currentHeightPosition];
    }

    function forwardContentPDFReplaceSpecialCharacters(content){
        var changedContent = content.replace(/–/g,"-").replace(/…/g,"...").replace(/➔/g,"->").replace(/„/g, '"').replace(/“/g, '"').replace(/″/g, '"').replace(/’/g, "'");
        return changedContent; 
    }
</script>