#-------------------------------------------------------------------------------------
# toolbox -- enthält nützliche HTML-Routinen
#-------------------------------------------------------------------------------------
package      toolbox;
require      Exporter;
@ISA       = qw(Exporter);
@EXPORT    = qw(Logging Templateausgabe HTML_Start HTML_Abschluss HTML_Fehlermeldung);
use Time::Local;

#-----------------------------------------------------------
# Logging(typ,programm,funktion,msg): Gibt Texte in ein Logfile aus
#-----------------------------------------------------------
sub Logging {

  my $typ = shift;
  my $programm = shift;
  my $funktion = shift;
  my $msg = shift;
  my $zeile1 = "";
  my $logfile = "logfile.txt";

  if (!open (LOGFILE, ">> $logfile")) {
    print "Die Logdatei $logfile wurde nicht gefunden";
    return 0;
  }
  
  $zeile1 = &DateTime();
  print LOGFILE "$zeile1;$typ;$programm;$funktion;$msg\n";
  close (LOGFILE);
  return 1;
  
}

#-----------------------------------------------------------
# Templateausgabe(templatefile,text): Fibt Text mit Hilfe eines Templates aus
#-----------------------------------------------------------
sub Templateausgabe {

  my $templatefile = shift;
  my $text = shift;
  my $zeile1 = "";
  my $logfile = "errorlog.txt";

  if ($templatefile =~ /fehlermeldung.htm/i) { # Logdatei schreiben
    if (!open (LOGFILE, ">> $logfile")) {
      print "Die Logdatei $logfile wurde nicht gefunden";
    } else {
      $zeile1 = &DateTime();
      print LOGFILE "$zeile1: $text\n";
      close (LOGFILE);
    }
  }
  
  if (!open (TEMPLATEFILE, "< $templatefile")) { # Templatedatei öffnen
    print "Die Templatedatei $templatefile wurde nicht gefunden";
    return 0; # habe fertig!
  }
  
  while ($zeile1 = <TEMPLATEFILE>) { # Schreibe in die Templatedatei
    print $zeile1;
    if ($zeile1 =~ /\<!-- \#BeginEditable \"Inhalt\" --\>/i) {
      print "$text\n";
    }
  }
  close (TEMPLATEFILE);
 
  return 1;
  
}

#--------------------------------------------------------------------------------------------------------
#--  HTML-Start(title)
#--------------------------------------------------------------------------------------------------------
sub HTML_Start {

  my $title = shift;

  print "<html>\n";
  print "<head>\n";
  print "<title>$title</title>\n";
  print "<meta http-equiv=\"Content-Type\" content=\"text/html\; charset=iso-8859-1\">\n";
  print "</head>\n";
  print "<body bgcolor=\"#FFFFFF\">\n";

  return 1;
}

#--------------------------------------------------------------------------------------------------------
#--  HTML-Abschluss
#--------------------------------------------------------------------------------------------------------
sub HTML_Abschluss {

  print "\n</body>";
  print "\n</html>";

  return 1;
}

#--------------------------------------------------------------------------------------------------------
#--  HTML-Fehlermeldung(titel,meldung)
#--------------------------------------------------------------------------------------------------------
sub HTML_Fehlermeldung {

  my $titel = shift;
  my $meldung = shift;

  &HTML_Start($titel);
  print "$meldung\n";
  &HTML_Abschluss();

  return 1;
}

#--------------------------------------------------------------------------------------------------------
#--  Liefert als Ergebnis das Datum und die Uhrzeit im jjjj-mm-tt,hh:mm:ss Format zurück
#--------------------------------------------------------------------------------------------------------
sub DateTime {

  my ($sek,$min,$std,$mtag,$mon,$jahr,$wtag,$jtag,$isdt);

  ($sek,$min,$std,$mtag,$mon,$jahr,$wtag,$jtag,$isdt) = localtime(time);

  return sprintf "%.4d-%.2d-%.2d,%.2d:%.2d:%.2d",($jahr + 1900,$mon + 1,$mtag,$std,$min,$sek);

}

1;
