//*********************************************************************
//*                      EditHTML - 2020-10-10                        *
//*                   >> OnBeforeSavingMessage <<                     *
//*                                                                   *
//* Dieses Skript formatiert Nachrichten im HTML-Format so, dass der  *
//* Text größer angezeigt wird, da die dialoginterne Anzeige zu klein *
//* ist.                                                              *
//*                                                                   *
//* Funktionalitaet: [x] neutral (benoetigt Dialog_Functions.ds!)     *
//*                  [ ] nur Basis_Modul                              *
//*                  [ ] nur Pathfinder                               *
//*                                                                   *
//* Datum     : 24.04.2014 - ueberarbeitet am: 10.10.2020             *
//* Autor     : Heiko Rost                                            *
//*                                                                   *
//* DateiName : _i_OBSaveM_EditHTML.ds                                *
//* Einbindung: {$I _i_OBSaveM_EditHTML.ds}                           *
//* Aufruf    : Not_Error := EditHTML (Not_Error, Message, IsEmail,   *
//*                          Error_Func);                             *
//*********************************************************************

Procedure Init_EditHTML ( Var FontSize_HTML : String);

begin
//{-------------------------------------------------------------------}
//{                 Anwenderspezifische Einstellungen                 }
//{-------------------------------------------------------------------}

 // FontSize_HTML:
 // Die Schriftgröße, die im <font>-Tag angegeben wird. Den besten
 // Wert muss jeder für sich selbst festlegen.

 // Lege hier eine individuelle Schriftgroesse fest:
    FontSize_HTML := '5';

//{-------------------------------------------------------------------}
//{                       Ende der Einstellungen                      }
//{-------------------------------------------------------------------}
end;

//{===================================================================}
//{           !!!  Ab hier bitte nichts mehr ändern  !!!              }
//{===================================================================}

//-------[ Function EditHTML ]-----------------------------------------

function EditHTML (var fbkResult  : Boolean;
                       Message    : TStringlist;
                       IsEmail    : boolean;
                       Error_Func : String) : Boolean;

var
   FontSize_HTML : String;
   i             : integer;

begin
   // Rückgabewert entsprechend vorheriger Scriptprobleme setzen
   Result := fbkResult;

   // Wenn bereits irgendein Script einen Fehler verursacht hat,
   // dann muss der User benachrichtigt werden
   If not Result Then begin
      WriteToLog ('==== ANFANG =======================================' ,4);     
      WriteToLog ('Script *** EditHTML *** wird weiterhin ausgefuehrt' ,4);
      WriteToLog ('Script ' + Error_Func + ' hat diese WARNUNG verursacht!' ,4);
      WriteToLog ('==== ENDE =========================================' ,4);     
   end;   

   if (Message.Count > 0) and (IsEMail = false) Then begin
      Init_EditHTML ( FontSize_HTML );
      Try
         If ansipos ( 'text/html', GetHeader ('Content-Type: ', Message)) > 0 then begin
            i := Message.IndexOf ('') + 1;
            Message.insert (i, '<font size="' + FontSize_HTML +'">');
            Message.Text := StringReplace(Message.Text,'<pre>','<pre><font size="'+FontSize_HTML+'">',[rfReplaceAll]);
//          Message.Text := StringReplace(Message.Text,'</pre>','</pre>',[rfReplaceAll]);
            Message.Text := StringReplace(Message.Text,'<tt>','<tt><font size="'+FontSize_HTML+'">',[rfReplaceAll]);
//          Message.Text := StringReplace(Message.Text,'</tt>','</tt>',[rfReplaceAll]);
         end;  // if
      Except
         // Bei Problemen den User benachrichtigen.
         begin
            WriteToLog ('FEHLER im Script *** Init_EditHTML ***' ,4);
            WriteToLog ('From : ' + GetHeader('From: ', Message), 4);
            WriteToLog ('Newsgroups : ' + GetHeader('Newsgroups: ', Message), 4);
            WriteToLog ('Date : ' + GetHeader('Date: ', Message), 4);
            WriteToLog ('Message-ID : ' + GetHeader('Message-ID: ', Message), 4);
            Error_Func := '*** Init_EditHTML ***';    
            Result := false;
         end; // Except  
      end; // Try ... Except
   end; // If   
end; // function