#!/usr/bin/perl
#Version 0.9  2005.12.08
#  #sw zugefügt
#  .tcl Filenamen nicht mehr case-sensitiv

# Schlüsselwürter werden erstmal nur am Zeilenanfang erkannt. Ausnahme ist Kursivschrift

# Schlüsselwörter:

 #t (Titel) Überschrift, die im Fensterrahmen angezeigt wird (Wenn nicht angegeben: "Zabex for everybody")
 #1 Überschrift (Auf der Seite) - H1
 #2 Unter-Überschrift

 #a Link mit gleichlautendem Text     #a www.conrad.de
 #ref Link mit anderslautendem Text   #ref www.da.de hier klicken 
 #my interner Link mit anderslautendem Text   #my legende.html Hier is alles erklärt

 #it1 Kursiv ein  oder #em1  oder #k
 #it0 Kursiv aus oder #em0  oder #K

 #bild filename alt-Text
 #img filename 
 #avi filename 
 #extimg link auf externes Bild
 #sw Software
 #h Horizontale linie (Original <hr>
 #p Absatz
 #br Neue Zeile (<br>)
 #hr Schwarz/Gelb Balken
 
 #bg backgroundbildname
 #waf+  Woman-Acceptance-Faktor Icon Gruen
 #waf0                               Gelb
 #waf-                               Rot
 #pre1 Quelltext Ein
 #pre0 Quelltext Aus

#-noch nicht implementiert
#n1 Aufzaehlung ein  <ul>
#n Aufzaehlungseintrag  <li>...</li>
#n0 Aufzaehung aus  </ul>


use Image::Size;  # Paket zur Ermittlung von Bildgrößen
# In \Perl\lib\ den ordner "Image" erzeugen und Size.pm reintun


$basedir="d:\\zabex\\";
$outdir=$basedir."__html\\";
$pooldir=$basedir."_imagepool\\";
$projektnr=0;
$bildnr=0;
$errcnt=0;
$webbase="http://www.dietmar-schroeder.de/";
print "Erzeuge HTML-Seiten...\n";

#Mail-Alternativen:
#<Address><a href="mailto:dsr@freenet.de?subject=ZABEX%20-%20Ich%20war%20auf%20deiner%20Seite%21">Kommentieren</a></address>
#<Address><a href="mailto:zabex@dietmar-schroeder.de?subject=ZABEX%20-%20Ich%20war%20auf%20deiner%20Seite%21">Kommentieren</a></address>


$home=<<'EOT';
<table><tr><td>
<Address><a href="mailto:zabex@dietmar-schroeder.de?subject=ZABEX%20-%20Ich%20war%20auf%20deiner%20Seite%21">Kommentieren</a></address>
</td><td>
&nbsp;</td><td>
&nbsp;</td><td>
&nbsp;</td><td>
<Address><a href="http://www.dietmar-schroeder.de/index.html">Startseite</a></address>
</td></tr></table>
EOT
# <Address><a href="mail.html">Kommentieren</a></address>

$w3c_validate=<<'EOT';
<p>
  <a href="http://validator.w3.org/check?uri=referer">
  <img src="http://www.w3.org/Icons/valid-html401"
  alt="Valid HTML 4.01!" height="31" width="88"></a>
</p>
EOT
$bestview=<<'EOT';
<p style=" font-size:10pt;text-align:left" >
Best view: use a W3C compatible HTML-browser.</p
<p style=" font-size:10pt;text-align:left" >
Curious view: use an Editor!<br>
EOT


$x=<<'EOT';
p,li  { font-size:12pt;
     line-height:14pt; 
     font-family:Helvetica,Arial; 
     letter-spacing:0.2mm;
     word-spacing:0.8mm; }
EOT

# ----------------------------------------------------------------------
# Liste aller Files erstellen
sub getFilenames{
my @dirs;
my @subdir;
my $f;
my $d;
my $sep='\\';
  @dirs=@_;

  foreach $d (@dirs){
    $d=~s/^\s+//;
    next if $d=~/^\#/;
    next if $d=~/^$/;
     opendir (DIR, $d);
     @entries=readdir(DIR);
     closedir(DIR);

     $dirnr++;
     $ddos=$d;
     $ddos=~s/\//\\/g;
#     push(@dirlist, "-".$dirnr.";".$ddos);
     @subdir=();
     foreach $f(@entries){
       next if $f eq ".";
       next if $f eq "..";
#Start of SKIP lines
next if $f=~/^CVS$/i;
#end of SKIP lines
       if (-f $d.$f){          #Files
         push(@fname, $d.$f) if $f=~/\.tcl$/i;
         push(@db, "$dirnr;$f");
         $files++;
       }elsif(-d $d.$f){ #Subdirectories
         push(@subdir, $d.$f.$sep);
       }else{
         print "UNKNOWN  $d$f\n";
       }
     }
     getFilenames(@subdir);
  }
}
# ----------------------------------------------------------------------
sub  copybin{
  my ($dst, $src)=@_;
  $dst = lc $dst;
  my $cmd="copy /b $src $dst\n";

#  print "Src=[$src] Dst=[$dst]\n";
  if (!exists($bild{$dst})){
    if (!(-e $src)){ #Quelle nicht gefunden. Suche im Pool-Verzeichnis
      $src=~s/\\([^\\]+)$/$1/;
      $src=$pooldir.$src;
    }
    $cmd="copy /b $src ".$outdir.$dst." >>copylog.txt\n";
  
    #print $cmd;
    system $cmd;
    $copycount++;
  }  
  $bild{$dst}=1;
  unlink ("copylog.txt");
}



# ----------------------------------------------------------------------
#Datei umwandeln
sub preprocess{
  my ($filename)=@_;
  my $path = $filename;
  $path=~s/\\[^\\]+$/\\/; 
  open (IN,$filename)||die("Open Error [$filename]\n");
  $bildnr=1;  
  
  @doc=();
  while (<IN>){
    next if /^;/;  #Kommentare überspringen
    s/ä/&auml;/g;
    s/ö/&ouml;/g;
    s/ü/&uuml;/g;
    s/Ä/&Auml;/g;
    s/Ö/&Ouml;/g;
    s/Ü/&Uuml;/g;
    s/ß/&szlig;/g;
  
    s/#k\b/<em>/g;
    s/#K\b/<\/em>/g;
    s/#it1/<em>/g;
    s/#it0/<\/em>/g;
    s/#em1/<em>/g;
    s/#em0/<\/em>/g;
    
#    s/#([a-z]+)1/<$1>/g;
#    s/#([a-z]+)0/<\/$1>/g;
  
  #  s/#k1/<it>/g;
  #  s/#k0/<\/it>/g;
  
  #  s/#hr/<hr>/g;
    s/#br/<br>/g;
    s/#p\b/&nbsp;<\/p><p>&nbsp;/g;
    
    $line=$_;
    
    if (not /^#/ ){
      if ((0==$p) && (0==$pre)){
        $p=1;
        $line="<p>".$line;
      }
#      @words=split / /,$line;
#      push(@doc,@words);
      push(@doc,$line);
      next;
    }
    elsif (/^\s*#waf[r\-]/)  { #wafr WAF-Rot
      $txt="<br><a href=legende.html><img src=\"waf_r.gif\" alt=\"[Bild WAF-Rot]\"></a><br>\n";
      if (0==$p){
        $p=1;
        $txt="<p>".$txt;
      }
      push(@doc,$txt);
      copybin("waf_r.gif","waf_r.gif");

    }
    elsif (/^\s*#waf[yo00]/)  { #wafr WAF-Gelb
      $txt="<br><a href=legende.html><img src=\"waf_y.gif\" alt=\"[Bild WAF-Gelb]\"></a><br>\n";
      if (0==$p){
        $p=1;
        $txt="<p>".$txt;
      }
      push(@doc,$txt);
      copybin("waf_y.gif","waf_y.gif");
    }
    elsif (/^\s*#waf[g\+]/)  { #wafr WAF-Gruen
      $txt="<br><a href=legende.html><img src=\"waf_g.gif\" alt=\"[Bild WAF-Gruen]\"></a><br>\n";
      if (0==$p){
        $p=1;
        $txt="<p>".$txt;
      }
      push(@doc,$txt);
      copybin("waf_g.gif","waf_g.gif");
    }
    elsif (/^\s*(#bg\s+)(.+)$/)  { #bg: Hintergrundbild
 
      $hintergrundbild=$2;
      $pathAndPic=$pooldir.$hintergrundbild;
      copybin($hintergrundbild,$hintergrundbild);
    }
    elsif (/^\s*(#t\s+)(.+)$/)  { #Titel
      $titel=$2;
    }
    elsif (/^\s*(#1\s+)(.+)$/)  { #Ueberschrift1
      $eintrag=$2;
      $key=lc $eintrag;
      $key=~s/\s*\b(..)[^\s]+/$1/g;
      $key=~s/[&;]//g;
      $txt="<H1><a name=\"$key\">$eintrag</a></h1>\n";
#      print "1:::: $key ::::\n";
      
      if (0!=$p){
        $p=0;
        $txt="</p>".$txt;
      }
      push(@doc,$txt);
    }
    elsif (/^\s*(#2\s+)(.+)$/)  { #Ueberschrift2
      $eintrag=$2;
      $key=lc $eintrag;
      $key=~s/\s*\b(..)[^\s]+/$1/g;
      $key=~s/[&;]//g;
      $txt="<H2><a name=\"$key\">$eintrag</a></h2>\n";
#      print "2:::: $key ::::\n";
      if (0!=$p){
        $p=0;
        $txt="</p>".$txt;
      }
      push(@doc,$txt);
    }
    elsif (/^\s*#hr\s*$/)  { #hr - SchwarzGelb Balken
    $txt="<br><img src=\"striped.gif\" alt=\"-----\"><br>\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
      copybin("striped.gif","striped.gif");
    }
    elsif (/^\s*#h\s*$/)  { #h - Original <hr>
      $txt="<hr>\n";
      if (1==$p){
        $p=0;
        $txt="</p>$txt";
      }
      push(@doc,$txt);
    }
    elsif (/^\s*#pre1\s*$/)  { #pre Preformatierter Quelltext Ein
      $xxx="-"x70;
      $txt="\n<pre>\n$xxx\n";
      $pre=1;
      if (1==$p){
        $p=0;
        $txt="</p>$txt";
      }
      push(@doc,$txt);
    }
    elsif (/^\s*#pre0\s*$/)  { #pre Preformatierter Quelltext Aus
      $xxx="-"x70;
      $txt="$xxx\n</pre>\n\n";
      $pre=0;
      push(@doc,$txt);
    }
    elsif (/^\s*#a\s+(.+)$/)  { #a (Link)
    $link = $1;
    $ref = lc $link;
    $txt="<a href=\"http://$ref\">$link</a>\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
    }
    elsif (/^\s*#extimg\s+[http:\/\/]?(.+)$/)  { #extimg (externes Bild - Link auf Bild)
    $link = $1;
    $txt="<img src=\"http://$link\">\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
    }
    elsif (/^\s*#ref\s+([^\s]+)\s+(.+)$/)  { #ref (Link mit anderem Text)
    $link = $2;
    $ref = lc $1;
    $txt="<a href=\"http://$ref\">$link</a>\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
    }
    elsif (/^\s*#my\s+([^\s]+)\s+(.+)$/)  { #ref auf interne Page (Link mit anderem Text)
    $link = $2;
    $ref = lc $1;
    $txt="<a href=\"$ref\">$link</a>\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
    }
    elsif (/^\s*(#img\s+)([^\s]+)\s+(.+)$/)  {#Bild mit ALT
      $img=$2;
      $PathAndImg=$path.$img;
      $alt="[".$3;

      $img=~m/(\.[a-z]{3})\s*$/i;
      $typ=$1;


      if (-f $PathAndImg){
        ($width,$height) = imgsize($PathAndImg);
        $size=sprintf("%1.1f", ((-s $PathAndImg)+500)/1000);
        $alt.="($size"."k)]";
      }else{
        $width=180;
        $height=50;
        $size=0;
        $alt.="($PathAndImg FEHLT)";
      }
      $bildname=sprintf("%c%c%d",97+($projektnr /26), 97+$projektnr %26, $bildnr);
#      $txt="<img src=\"".$img."\" width=\"$width\" height=\"$height\" alt=\"".$alt."\">";

#      if ($bildnr<27){  
#        $bildname=sprintf("%c",96+$bildnr);
#      }elsif($bildnr<26*26){  
#        $bildname=sprintf("%c%c",96+($bildnr /26), 97+$bildnr %26);
#      }else{  
#        $bildname=sprintf("%d",$bildnr-26*26);
#      }  
      $bildname.=$typ;
      $bildnr++;
      copybin($bildname,$PathAndImg);
      $txt="<img src=\"".$bildname."\" width=\"$width\" height=\"$height\" alt=\"".$alt."\">";
      if (0!=$p){
        $p=0;
        $txt="</p>".$txt;
      }
      push(@doc,$txt);
    }
    elsif (/^\s*(#img\s+)([^\s]+)\s*$/)  { #Bild ohne ALT
      $img=$2;
      $img=~m/(\.[a-z]{3})\s*$/i;
      $typ=$1;
      $PathAndImg=$path.$img;
      ($width,$height) = imgsize($img);
      if (-f $PathAndImg){
        ($width,$height) = imgsize($PathAndImg);
        $size=sprintf("%1.1f", ((-s $PathAndImg)+500)/1000);
        $alt="[Bild($size"."k)]";
      }else{
        $width=180;
        $height=50;
        $size=0;
        $alt="($PathAndImg FEHLT)";
      }
      $bildname=sprintf("%c%c%d",97+($projektnr /26), 97+$projektnr %26, $bildnr);

#      if ($bildnr<26){  
#        $bildname=sprintf("%c",96+$bildnr);
#      }elsif($bildnr<26*26){  
#        $bildname=sprintf("%c%c",96+($bildnr /26), 97+$bildnr %26);
#      }else{  
#        $bildname=sprintf("%d",$bildnr-26*26);
#      }  
      $bildname.=$typ;
      $bildnr++;
      copybin($bildname,$PathAndImg);
      $txt="<img src=\"".$bildname."\" width=\"$width\" height=\"$height\" alt=\"".$alt."\">";



#$txt="<img src=\"".$img."\" width=\"$width\" height=\"$height\" alt=\"".$alt."\">";
      if (0!=$p){
        $p=0;
        $txt="</p>".$txt;
      }
      push(@doc,$txt);
    }
#    elsif (/^\s*(#img2\s+)([^;]+);([^;]+);([^;]+);([^;]+)\s*$/)  {#Bild mit 2x ALT
#      $img1=$2;
#      $alt1=$4;
#      $img2=$3;
#      $alt2=$5;
#      ($width1,$height1) = imgsize($img1);
#      ($width2,$height2) = imgsize($img2);
#      $txt="<table border=0><tr><td><img src=\"$img1\" width=\"$width1\" height=\"$height1\" alt=\"".$alt1."\" border=\"5\">".
#           "</td><td><img src=\"".$img2."\"  width=\"$width2\" height=\"$height2\" alt=\"".$alt2."\" border=\"5\"></td></tr></table>";
#      if (0!=$p){
#        $p=0;
#        $txt="</p>".$txt;
#      }
#      push(@doc,$txt);
#    }
#    elsif (/^\s*(#img2\s+)([^;]+);([^;]+)*$/)  {#Bild2 ohne ALT
#      $img1=$2;
#      $alt1=$3;
 #     ($width1,$height1) = imgsize($img1);
#      ($width2,$height2) = imgsize($img2);
#      $txt="<table border=0><tr><td><img src=\"".$img1."\" width=\"$width1\" height=\"$height1\" border=\"5\">".
#           "</td><td><img src=\"".$img2."\" width=\"$width1\" height=\"$height1\" border=\"5\"></td></tr></table>";
#      if (0!=$p){
#        $p=0;
#        $txt="</p>".$txt;
#      }
#      push(@doc,$txt);
#    }

    elsif (/^\s*#avi\s+([^\s]+)\s+(.+)$/)  { #Film (Link mit anderem Text, intern)
    $text = $2;
    $avi = lc $1;

    $avi=~m/(\.[a-z]{3})\s*$/i;
    $typ=$1;
    $PathAndAvi=$path.$avi;
    $filmname=sprintf("%c%c%d%s",97+($projektnr /26), 97+$projektnr %26, $bildnr, $typ);


    $txt="<a href=\"$filmname\">$text</a>\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
      #$bildname.=$typ;
      $bildnr++;
      copybin($filmname,$PathAndAvi);
    }
    elsif (/^\s*#sw\s+([^\s]+)$/)  { #Software (mit Programmnamen=Text, intern)
    $sw = lc $1;

    $PathAndSw=$path.$sw;

    $txt="<a href=\"$webbase$sw\">$sw</a>\n";
      if (0==$p){
        $p=1;
        $txt="<p>$txt";
      }
      push(@doc,$txt);
      copybin($sw,$PathAndSw);
    }
    else{
      print"\n********** ERROR ************\n$line\n";
      push(@doc,"\n********** ERROR ************\n$line\n");
      $errcnt++;
    
    }
  }
  close IN;
  if (0!=$p){
     $p=0;
     push(@doc,"</p>\n");
  }
}

# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------

$p=0;

@basedirs=($basedir);
getFilenames(@basedirs);
#print join ("\n",@fname);
foreach my $filename (sort @fname){
  @doc=();
  $titel="Zabex for everybody";
  $hintergrundbild="buche.jpg";

  $filesize=-s $filename;
  $projektnr++;  
  print "$projektnr $filename \t ($filesize Bytes)\n";
  $pre=0;
  $p=0;
  preprocess($filename);
  #print "Fertig mit [$filename]\n";
 



# <!doctype html public "-//w3c//dtd html 4.0 transitional//en">

$head=<<'EOT';
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
EOT
$meta=<<EOT;
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta name="author" content="Zabex">
  <meta name="publisher" content="Zabex himself">
  <meta name="copyright" content="Zabex">
  <meta name="keywords" content="Selbstbau Elektronik Elektrik Möbel sinnlos verrückt genial">
  <meta name="description" content="Anleitungen die keiner braucht">
  <meta name="robots" content="INDEX,FOLLOW">
  <meta name="GENERATOR" content="Zabex Html-Maker">
  <meta http-equiv="expires" content="2592000"> 
  <!-- 
        Schoen, dass Sie mal reinschauen.
        Diese Seiten wurden optimiert, um mit irgendeinem W3C kompatiblen Browser betrachtet zu werden.
        Der Quelltext ist optimiert, um mit einem Fixed-Length-Font betrachtet zu werden.
        Wer hierin Fehler findet, darf sie behalten, wenn er mir eine Mail sendet.
  //-->
EOT
#<!-- 2592000 entspricht 30 Tage -->
#   <meta name="page-topic" content="Forschung Technik, Gesellschaft">
#   <meta name="page-type" content="HTML-Formular">
#   <meta name="audience" content="Alle">


#<style type="text/css">
#<!--

$style=<<EOT;
h1 { font-size:42pt; color:#208080; font-style:italic;font-weight:bold;}
h2 { font-size:18pt; color:#5010a2; }
p,li { font-size:14pt; font-family:Helvetica,Arial; color:#202060; text-align:center; }
img  { margin-left:20px; border: thick solid #b0b0b0;}
div {text-align:center;}
pre {margin-left:120px;text-align:left;}
p img { margin-left:20px; border:none}
p:first-letter{ font-size:18pt; font-weight:normal;}
body {background-repeat:repeat; background-attachment:fixed; padding:0px;}
EOT

$localstyle=<<EOT;
<style type="text/css">
<!--
body { background-image:url($hintergrundbild);
//-->
</style>
EOT



$css=<<EOT;
<link rel=stylesheet type="text/css" href="zabex.css">
EOT

@pattern=split /\n/,<<"EOT";
           
              
  ##################
  ##################
                ###
               ###
              ###
             ###
            ###
           ###
          ###
         ###
        ###
       ###
      ###
     ###
    ###
   ###
  ###
  ##################
  ##################
             
             
             
             
    ##############         
   ################        
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ##################     
  ##################     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
  ###            ###     
             
             
             
             
 ################
 #################
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    #############
    #############
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
    ###          ###     
 ################# 
 ################
             
             
             
             
  ##################     
  ##################     
  ###
  ###
  ###
  ###
  ###
  ###
  ###
  ###
  ###########
  ###########
  ###
  ###
  ###
  ###
  ###
  ###
  ###
  ###
  ##################
  ##################
             
             
             
             
  ###            ###           
  ###            ###           
   ###          ###           
    ###        ###           
     ###      ###           
      ###    ###           
       ###  ###           
        ######           
         ####
        ######           
       ###  ###           
      ###    ###           
     ###      ###           
    ###        ###           
   ###          ###           
  ###            ###           
  ###            ###           
          
          
          
EOT

$pattern=$pattern[0];

$wasserzeichen="    ";
#$sinus=1;
$len=0;
$pos=0;
  $filename=~m/\\([^\\]+)\s*$/;
  $zielfilename=">".$outdir.$1;
#  $zielfilename=">".$filename;
  $zielfilename=~s/\.tcl$/\.html/;
   
  open (OUT,lc $zielfilename)||die('Unable to open output file');
  print OUT $head;
  print OUT "<title> $titel </title>\n";
  print OUT $meta;
  print OUT $css;
  print OUT $localstyle;
#  print OUT $style;
  print OUT "</head> <BODY>\n";
  #print OUT "<div align=\"center\">\n"; # mit CSS gehen Align und alignment nicht für img 
  print OUT "<div>\n"; 
  #print OUT "<div style=\"text-align:center; padding:20px; border:thin solid red; margin:25px\">\n";
  
  if ($filesize < 1500){
    $sinus=1;
  }else{
    $sinus=0;
  }
  
  $patternindex=0;
  foreach $line (@doc){
    next if $line=~/^\s*$/;
    chomp($line);
    #XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ToDo: pre darf nicht gesplittet werden
    if ($line=~m/<pre>/){
      $pre=1;
    }  
    if (0==$pre){
        foreach $word (split / /,$line){
          if ($sinus>0){
            $index+=3.1415926/10;
    #        $indent=20+(sin($index)*9)-($index);
            $indent=10+(sin($index)*9);
            $indent=0 if $indent<0;
            $txt=" "x$indent;
            print OUT $txt.$word."\n";
          }elsif($wasserzeichen gt ""){
            print OUT $word." ";
            $len+=length($word)+1;
            $stop=0;
            do{
              $pos=int($len / length($wasserzeichen));
              if ($pos<length($pattern)){
                $pixel=" ";
                $pixel=substr($pattern, $pos,1);
                if ("#" eq $pixel){
                  #print "XX Pixel=[$pixel]p\n";
                  $space=($pos+1)*length($wasserzeichen)-$len;
                  $w=" "x$space;  
                  print OUT $w;
    #              print OUT $wasserzeichen;
    #              $len+=length($wasserzeichen);
                  $len+=length($w);
                }else{
                  $stop=1;
                }  
              }else{
                $stop=1;
              }
            }while (!$stop);
            
            if ($len>92){
              $len=0;
              print OUT "\n";
              $patternindex++;
              $patternindex=0 if $patternindex> $#pattern;
              $pattern=$pattern[$patternindex];
            }
          }else{
            $len+=length($line);
            print OUT $word." ";
            if ($len>80){
              $len=0;
              print OUT "\n";
            }
          }
        }
    }else{
      print OUT "$line\n";
    }
    if ($line=~/^\s*<\/pre>/){
      $pre=0;
    }  

  }
#  print OUT @doc;
  print OUT "</div>\n";
  #print OUT $w3c_validate;
  print OUT $home;
  print OUT $bestview;
  print OUT $w3c_validate;
  print OUT "</body></html>\n";
  close OUT;
}
open (OUT,">".$outdir."zabex.css");
print OUT $style;
close OUT;
$prjCount=$#fname +1;
print "\n$prjCount Projekte bearbeitet.\n";
print "$copycount Bilder kopiert.\n";

#--- Index.html bearbeiten
open (IN,$basedir."ZZZ_Mainpage\\index.html")||die ("ERROR: index.html nicht gefunden\n");
open (OUT,">".$outdir."index.html");
while (<IN>){
  s/href=\"([^\"]+)"/href=\"\L$1\E\"/; #Alle Links in kleinbuchstaben
  s/:url\(([^\)]+)\)/:url\(\L$1\E\)/;  #Alle Hintergrundbilder in kleinbuchstaben
  print OUT $_;
  if (/background-image:url\(([^)]+)\)/){
    $img=$1;
    copybin($img,lc $img);
  }  
}
close IN;
close OUT;
#--- mail.html bearbeiten
open (IN,$basedir."ZZZ_Mainpage\\mail.html")||die ("ERROR: mail.html nicht gefunden\n");
open (OUT,">".$outdir."mail.html");
while (<IN>){
  s/href=\"([^\"]+)"/href=\"\L$1\E\"/; #Alle Links in kleinbuchstaben
  print OUT $_;

#<img src="dsr2.jpg"
  if (/img src=\"([^\"]+)\"/){
    $img=$1;
    copybin($img,lc $basedir."ZZZ_Mainpage\\".$img);
  }  
}
close IN;
close OUT;

$chrono="chronologie.html";
copybin($chrono,lc $basedir."ZZZ_Mainpage\\".$chrono);
print "$errcnt Fehler.\n";

#Wenn  der Script aus dem Explorer aufgerufen wird, ist er großgeschrieben.
# Dann am Ende warten. Der Aufruf aus dem Editor ist kleingeschrieben.
#Dann direkt beenden.
$0=~/(.{9})$/;  # Nur die letzten 9 Zeichen des Programmnamens (Der Pfad interessiert nicht)
$pgmname=$1;
if ($pgmname ne lc $pgmname){
  print "Press Enter\n";
  getc;
}

