#!/usr/bin/perl
$cgikopf="Content-type: text/html\nCache-Control: no-store, no-cache, must-revalidate\nPragma: no-cache\nExpires: 0\n\n";
if($ENV{'REQUEST_METHOD'} eq 'GET')
{
$eingabe = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $eingabe, $ENV{'CONTENT_LENGTH'});
}
$direc='';
@paare = split(/&/, $eingabe);
foreach $paar (@paare)
{
($schluessel, $wert) = split(/=/, $paar);
$wert =~ tr/+/ /;
$wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",   hex($1))/eg;
$FORM{$schluessel} = $wert;
}
$charset='iso-8859-1';
$tempid=$FORM{'tid'};
$id=$FORM{'id'};
if ($id<1) {$id=1;}
$username=$FORM{'un'};
$userid=$FORM{'uid'};
$ff='EBEBEB'; 
$formfarbe='#EBEBEB';
if ($FORM{'ff'}) 
{
$ff=$FORM{'ff'}; 
$formfarbe='#'.$ff;
}
$htmltitle=$FORM{'htmltitle'};
$listname1 = $direc."pliste".$id.".lst";
$listname2 = $direc."pliste".$id.".ls2";
$mitwort=$FORM{'mitwort'};
$abwort=$FORM{'abwort'};
if (length($abwort)>0) {$mitwort='';}
$bez=$FORM{'bez'};
$spa0=$FORM{'spa'};
$sw=$FORM{'sw'}; 
$page=$FORM{'page'}; 
$lastpage=$FORM{'lastpage'}; 
$nextpage=$FORM{'nextpage'}; 
$langno=$FORM{'langno'};
$gomaske=$FORM{'gomaske'};
if (length($gomaske)>0)
{
lademaske();
exit;
}
$maxwps=200;
$wortzahl0=200;
print $cgikopf;
print "<html><head><title>$htmltitle</title>\n<meta http-equiv=Content-Type content=\"text/html; charset=$charset\">\n";
writestyle();
writejava();
writemain();
exit 0;
sub ueb
{
my $res=$_[0];
if ($langno == 0) 
{
return $res;
exit;
}
if ($res eq '') 
{
return $res;
exit;
}
my $langdatei='mwrlang.dat';
if (-e $langdatei)
{
if ($#langdat < 0)
{
open(DATEI,"<$langdatei") || die;
@langdat=<DATEI>;
close(DATEI);
}
my $sw=$_[0].'¿';
my $gefunden=0;
for(my $k=1;$k<=$#langdat;$k++)
{
if (index($langdat[$k],$sw)==0) 
{
my @langx = split(/¿/,$langdat[$k]);
$res=$langx[$langno];
if ($res eq '') {$res=$_[0];}
$gefunden=1;
last;
}
}
if ($gefunden == 0) 
{
push(@langdat,$sw."\n");
open(DATEI,">>".$langdatei) || die;
print(DATEI $sw."¿¿¿¿¿¿¿¿¿¿¿\n") || die;
close(DATEI);
}
}
return $res;
}
sub uebhtml
{
my $z=$_[0];
if ($langno == 0) 
{
return $z;
exit;
}
$z =~ s/<ueb>/¿¤/g;
$z =~ s/<\/ueb>/¿/g;
my @array = split(/¿/,$z);
foreach (@array)
{
if (index($_,'¤')==0)
{
$_=substr($_,1);
$_=ueb($_);
}
}
$z = join('',@array); 
return $z; 
}
sub lademaske
{
print $cgikopf;
print "<html><head><title>$htmltitle</title>\n";
print "<meta http-equiv='refresh' content='0; URL=maske.pl?tid=$tempid'>\n";
print "</head><body background='bg.png'></body></html>\n";
exit;
}
sub writestyle
{
print "<style type='text/css'>\n";
print "<!--\n";
print "body {font-family: Arial, Helvetica, Verdana; font-size: 12px; color: black; background-color: white}\n";
print "p, td, li {font-family: Arial, Helvetica, Verdana; font-size: 12px;}\n";
print "a:link, a:visited, a:active {text-decoration: none; color: blue; font-family: Arial, Helvetica, Verdana; font-size: 12px;}\n";
print "a:hover{text-decoration: underline; color: blue; font-family: Arial, Helvetica, Verdana; font-size: 12px;}\n";
print ".pixelborder {border:1px solid #A9A9A9;}\n";
print "//-->\n";
print "</style>\n\n";
}
sub writejava
{
print "<script language='JavaScript'>\n";
print "<!--\n";
print "function readKey(Ereignis)\n";
print "{\n";
print "  var taste=0;\n";
print "  if (!Ereignis) Ereignis=window.event;\n";
print "  if (Ereignis.keyCode==0) taste=Ereignis.which\n";
print "  else taste=Ereignis.keyCode;\n";
print "  if (taste == 27) {history.back();}\n";
print "}\n\n";
print "document.onkeyup = readKey;\n\n";
print "// -->\n";
print "</script>\n";
print "</HEAD>\n";
}
sub getdate
{
my $ret=@_[0];
my @info = stat('pdok.pd2');
my ($Sek, $Min, $Stu, $Monatstag, $Monat, $Jahr, $Wotag, $Jatag, $Sommerzeit) = localtime($info[9]); 
if ($Jahr<1900) {$Jahr=$Jahr+1900;}
$Monat=$Monat+1;
my $diff='';
my $i=index($ret,'!DATE');
$diff=substr($ret,$i+5,10);
my $k=index($diff,'!');
if ($k>-1) 
{
$diff=substr($diff,0,$k);
$ret=substr($ret,0,$i+5).substr($ret,$i+6+$k);
if (length($diff) ne '')
{
my $op=substr($diff,0,1);
my $wert=substr($diff,1);
if ($op eq '+') {$Monat=$Monat+$wert;}
if ($op eq '-') {$Monat=$Monat-$wert;}
if ($Monat>12) {$Monat=$Monat-12; $Jahr=$Jahr+1;}
if ($Monat<1)  {$Monat=12+$Monat; $Jahr=$Jahr-1;}
}
}
my $d='';
if ($Monat<10) {$Monat="0$Monat";}
if ($langno==0) {$d="$Monat/$Jahr";}
else {$d="$Jahr-$Monat";}
$ret =~ s\!DATE\$d\g;
return $ret;
}
sub kopf
{
$toolszk=$FORM{'tools'};
if (length($toolszk)>0) {@tools=split(//,$toolszk);}
else {@tools=(1,1,1,1,1,1);}
$htmlende='';
print "<font face='Arial'>\n";
my $fname='header.htm';
if ($langno>0)
{
if (-e "header$langno.htm") {$fname="header$langno.htm";}
}
if (-e $fname)
{
open(DATEI,"<$fname") || die;
my @inhalt=<DATEI>;
close(DATEI);
foreach (@inhalt) 
{
if (index($_,'!')>-1) 
{
$_ =~ s\!USERNAME!\$username\g;
$_ =~ s\!TEMPID!\$tempid\g;
$_ =~ s\!TITEL!\@_[0]\g;
$_ =~ s\!STOP!\\g;
}
if (index($_,'!DATE')>-1) {$_=getdate($_);} 
if (index($_,'!DOKZAHL!')>-1) 
{
my $dz=(-s "pdok.pd2")/11;
my $l=length($dz);
if ($l>3) {$dz=substr($dz,0,$l-3).'.'.substr($dz,$l-3);}
$_ =~ s\!DOKZAHL!\$dz\g;
}
if (index($_,'<ueb>')>-1) {$_=uebhtml($_);}
if (index($_,'HTMLENDE=') == 0) {$htmlende=substr($_,9);}
elsif (index($_,'FORMFARBE=') == 0) {$formfarbe=substr($_,10); chomp($formfarbe);}
elsif (index($_,'TOOLS=') == 0) {my $z=substr($_,6); @tools = split(//,$z);}
else 
{
my $k = index($_,'//'); 
if ($k == 0) {$_='';}
elsif ($k > 0) {if (substr($_,$k-1,1) ne ':') {$_=substr($_,0,$k);}} 
print $_;
}
}
}
if ($tools[6]==9) {return;}
print "<br>\n";
print "<table border=0 width=100% cellspacing=3 cellpadding=0>\n";
if ($tools[6]!=8) {print "<tr><td colspan=2>Login: $username &nbsp;&nbsp;&nbsp;<a href='mtools.pl?tid=$tempid&un=$username&action=logout'>Logout</a></td></tr>\n";}
print "<tr><td colspan=2><img src='linie.png' height=1 width=100% border=0></td></tr>\n";
print "<tr><td>\n";
print "<a href='maske.pl?tid=$tempid&un=$username'>".ueb('Suchmaske')."</a><b>&nbsp;&nbsp;&gt;&nbsp;&nbsp;</b>".ueb(@_[0])."\n";
print "</td><td align=right>\n";
if ($tools[0]) {print "<a href='mtools.pl?tid=$tempid&un=$username&action=warenkorb'>".ueb('Warenkorb')."</a>&nbsp;&nbsp;&nbsp;\n";}
if ($tools[1]) {print "<a href='mtools.pl?tid=$tempid&un=$username&action=refra'>".ueb('Recherchefragen')."</a>&nbsp;&nbsp;&nbsp;\n";}
if ($tools[2]) {print "<a href='mtools.pl?tid=$tempid&un=$username&action=profilman'>".ueb('Profile')."</a>&nbsp;&nbsp;&nbsp;\n";}
if ($tools[3]) {print "<a href='mtools.pl?tid=$tempid&un=$username&action=install'>".ueb('Einstellungen')."</a>&nbsp;&nbsp;&nbsp;\n";}
if ($tools[4]) {print "<a href='mtools.pl?tid=$tempid&un=$username&action=uebersicht'>".ueb('Datenbank')."</a>&nbsp;&nbsp;&nbsp;\n";}
my $lno='';
if ($langno) {$lno=$langno;}
if ($tools[5]) {print "<a href='help/index$lno.htm' target='_blank'>".ueb('Hilfe')."</a>&nbsp;\n";}
print "</td></tr>\n";
print "<tr><td colspan=2><img src='linie.png' height=1 width=100% border=0></td></tr>\n";
print "</tr></table>\n";
print "<br>\n";
}
sub writemain
{
open(DATEI,"<".$listname1) || die "File not found: $listname1";
$wortzahl = <DATEI>;
chomp($wortzahl);
$bst = <DATEI>;
chomp($bst);
close(DATEI);
$bst =~ s/ //g; 
$spa=substr($wortzahl,0,1);
$wortzahl=substr($wortzahl,1,length($wortzahl));
$wortzahl =~ s/ //g;
if ($spa0>0) {$spa=$spa0;}
if ($spa<1) {$spa=3;}
if (($wortzahl<20000) and (length($bst)>20)) {$maxwps=2000;}
if ($wortzahl<5000) {$maxwps=2000;}
print "<BODY background='bg.png'>\n";
print "<a name='top'></a>\n";
kopf('Wortliste');
print "<form name='form0' METHOD='post' ACTION='mliste.pl'>\n";
print "<table border=0 width=100% cellpadding=2 cellspacing=0 align='center'><tr><td>\n";
print "<table class='pixelborder' width=100% align='center' cellspacing=0 cellpadding=6 bgcolor=$formfarbe><tr><td>\n";
if (index($bez,'*')>-1)
{
my $i=index($bez,'*');
print "<b>".substr($bez,0,$i)."</b>&nbsp;&nbsp;".substr($bez,$i+1,length($bez))."\n";
}
else {print ueb('Liste zum Feld')."&nbsp;&nbsp;<b>$bez</b>&nbsp;&nbsp;($wortzahl ".ueb('Eintr&auml;ge').")\n";}
print "</td><td align='right'>\n";
if ($wortzahl>=$wortzahl0) 
{
print ueb('mit Suchwort:')."&nbsp;<input type='text' name='mitwort' value='' size='20'>&nbsp;";
my $cn='spaltig';
$cn=ueb($cn);
print "<select name='spa' size=1>\n";
if ($spa == 1) {print "<option selected>1$cn<option>2$cn<option>3$cn<option>4$cn\n";}
if ($spa == 2) {print "<option>1$cn<option selected>2$cn<option>3$cn<option>4$cn\n";}
if ($spa == 3) {print "<option>1$cn<option>2$cn<option selected>3$cn<option>4$cn\n";}
if ($spa == 4) {print "<option>1$cn<option>2$cn<option>3$cn<option selected>4$cn\n";}
print "</select>";
print "&nbsp;<input type='submit' name='ok' value='OK'>\n";
}
print "</td></tr></table>\n";
print "<input type='hidden' name='tid' value='$tempid'>\n";
print "<input type='hidden' name='bez' value='$bez'>\n";
print "<input type='hidden' name='id' value='$id'>\n";
print "<input type='hidden' name='page' value='$page'>\n";
print "<input type='hidden' name='un' value='$username'>\n";
print "<input type='hidden' name='uid' value='$userid'>\n";
print "<input type='hidden' name='ff' value='$ff'>\n";
print "<input type='hidden' name='charset' value='$charset'>\n";
print "<input type='hidden' name='langno' value='$langno'>\n";
print "<input type='hidden' name='tools' value='$toolszk'>\n";
print "<input type='hidden' name='htmltitle' value='$htmltitle'>\n";
if (length($mitwort)>0) {readliste();}
else 
{
if ($wortzahl<$wortzahl0) {readgesamtliste();}
else {readliste();}
}
print "</td></tr></table>\n";
print "</form>\n";
if ($htmlende) {print "$htmlende\n";}
print "</body></html>\n";
}
sub ll
{
my $z=" | <a href='mliste.pl?tid=$tempid&id=$id&un=$username&langno=$langno&ff=$ff&htmltitle=$htmltitle&tools=$toolszk&charset=$charset&abwort=¿&bez=$bez&spa=$spa'>¿</a>";
$z =~ s/¿/@_[0]/g;
return $z;
}
sub writebst
{
my $z = ''; 
if (index($bst,'0')>-1) {$z=$z.ll('0');}
if (index($bst,'A')>-1) {$z=$z.ll('A');}
if (index($bst,'B')>-1) {$z=$z.ll('B');}
if (index($bst,'C')>-1) {$z=$z.ll('C');}
if (index($bst,'D')>-1) {$z=$z.ll('D');}
if (index($bst,'E')>-1) {$z=$z.ll('E');}
if (index($bst,'F')>-1) {$z=$z.ll('F');}
if (index($bst,'G')>-1) {$z=$z.ll('G');}
if (index($bst,'H')>-1) {$z=$z.ll('H');}
if (index($bst,'I')>-1) {$z=$z.ll('I');}
if (index($bst,'J')>-1) {$z=$z.ll('J');}
if (index($bst,'K')>-1) {$z=$z.ll('K');}
if (index($bst,'L')>-1) {$z=$z.ll('L');}
if (index($bst,'M')>-1) {$z=$z.ll('M');}
if (index($bst,'N')>-1) {$z=$z.ll('N');}
if (index($bst,'O')>-1) {$z=$z.ll('O');}
if (index($bst,'P')>-1) {$z=$z.ll('P');}
if (index($bst,'Q')>-1) {$z=$z.ll('Q');}
if (index($bst,'R')>-1) {$z=$z.ll('R');}
if (index($bst,'S')>-1) {$z=$z.ll('S');}
if (index($bst,'T')>-1) {$z=$z.ll('T');}
if (index($bst,'U')>-1) {$z=$z.ll('U');}
if (index($bst,'V')>-1) {$z=$z.ll('V');}
if (index($bst,'W')>-1) {$z=$z.ll('W');}
if (index($bst,'X')>-1) {$z=$z.ll('X');}
if (index($bst,'Y')>-1) {$z=$z.ll('Y');}
if (index($bst,'Z')>-1) {$z=$z.ll('Z');}
$z=$z.' |'; 
if (length($bst)>1) {print "<br><b>$z</b><br><br>\n";}
else {print "<br>\n";}
}
sub readliste
{
my $abadr = 0;
my $aktch = ''; 
my $ch= '';
my $allebst='0ABCDEFGHIJKLMNOPQRSTUVWXYZ';
my @bstfeld = split(//,$bst);
my $abch=$bstfeld[0]; 
if ($abch lt 'A') {$abch='0';}
if (length($abwort)>0)
{
$mitwort="";
$ch=substr($abwort,0,1);
$ch=uc($ch);
if (($ch lt 'A') or ($ch gt 'Z')) {$ch='0';}
$abch=$ch;   
$ch =~ tr/A-I/1-9/;
$ch =~ s/J/10/;
$ch =~ s/K/11/;
$ch =~ s/L/12/;
$ch =~ s/M/13/;
$ch =~ s/N/14/;
$ch =~ s/O/15/;
$ch =~ s/P/16/;
$ch =~ s/Q/17/;
$ch =~ s/R/18/;
$ch =~ s/S/19/;
$ch =~ s/T/20/;
$ch =~ s/U/21/;
$ch =~ s/V/22/;
$ch =~ s/W/23/;
$ch =~ s/X/24/;
$ch =~ s/Y/25/;
$ch =~ s/Z/26/;
if ($ch > 0 )
{
$ch=($ch-1) * 11;
open(DATEI,"<".$listname2) || die "File not found: $listname2";
seek(DATEI,$ch,0);
$abadr = <DATEI>; 
close(DATEI);
}
}
open(DATEI,"<".$listname1) || die "File not found: $listname1";
if ($abadr>0) {seek(DATEI,$abadr,0);}
else
{  $zeile = <DATEI>; 
$zeile = <DATEI>; 
} 
my $i=0;
my $s=0;
my $k=0;
my $l1='';
my $l2='';
my $l3='';
my $makelink=0;
my $w=100 / $spa;
$w="width=".$w."%"; 
if (length($mitwort)>0)
{
my $mitwortup=uc($mitwort);
print "<br>".ueb('Liste mit Suchwort')." <b>'$mitwort'</b><br>";
my $x="<br><table class='pixelborder' width=100% align='center' cellspacing=0 cellpadding=3 bgcolor=$formfarbe><tr><td>\n";
print "$x<table border=1 width=100% rules='all' bordercolor=#FFFFFF align='center' cellspacing=0 cellpadding=2 bgcolor=$formfarbe><tr><td $w>\n";
my $xxx=0;
while ($zeile = <DATEI>)
{
chomp($zeile);
if ((index(uc($zeile),$mitwortup) > -1) and  (index($zeile,' =>') == -1))
{
$i++;
if ($i > $maxwps) {last;}
$k=index($zeile,' '); 
$l1='';
$l2='';
$l3='';
if ($k > -1) 
{
if (index($zeile,$mitwort)>$k) {goto m1;} 
$l1 = substr($zeile,0,$k);
$l2 = substr($zeile,$k+1);
}
else {$l1=$zeile;}
$l3=$l1;
$l1 =~ s/[+]/%2B/g;
$l1 =~ tr/ /+/;
$l1 =~ s/[=]/%3D/g;
$l1 =~ s/[?]/%3F/g;
$l1 =~ s/&/%26/g;
$l1 = '"'. $l1 .'"';
print "<a href='msuche.pl?tid=$tempid&e$id=$l1&nostat=1'>$l3</a> $l2\n";
$s++;
if ($s>=$spa) 
{
print "</td></tr><tr><td $w>\n";
$s=0;
}
else {print "</td><td $w>\n";}
$xxx=1;
}
m1:
}
if ($xxx==0) {print "<br>".ueb('keine Eintr&auml;ge gefunden')."<br>&nbsp;\n";}
print "</td></tr></table></td></tr></table><br>\n";
}
elsif ($wortzahl<$wortzahl0)
{
my $x="<br><table class='pixelborder' width=100% align='center' cellspacing=0 cellpadding=3 bgcolor=$formfarbe><tr><td>\n";
print "$x<table border=1 width=100% rules='all' bordercolor=#FFFFFF align='center' cellspacing=0 cellpadding=2 bgcolor=$formfarbe><tr><td $w>\n";
while ($zeile = <DATEI>)
{
if (index($zeile,' =>') == -1)
{
chomp($zeile);
$i++;
if ($i > $maxwps) {last;}
$k=index($zeile,' '); 
$l1='';
$l2='';
$l3='';
if ($k > -1) 
{ 
$l1 = substr($zeile,0,$k);
$l2 = substr($zeile,$k+1);
}
else {$l1=$zeile;}
$l3=$l1;
$l1 =~ s/[+]/%2B/g;
$l1 =~ tr/ /+/;
$l1 =~ s/[=]/%3D/g;
$l1 =~ s/[?]/%3F/g;
$l1 =~ s/&/%26/g;
$l1 = '"'. $l1 .'"';
print "<a href='msuche.pl?tid=$tempid&e$id=$l1&nostat=1'>$l3</a> $l2\n";
$s++;
if ($s>=$spa) 
{
print "</td></tr><tr><td $w>\n";
$s=0;
}
else {print "</td><td $w>\n";}
} 
}
print "</td></tr></table></td></tr></table><br>\n";
}
else
{
writebst();
if (length($lastpage)>0)
{
my @f = split(/ /,$page);
pop(@f);                    
my $pos =$f[$#f];           
if ($pos>0) {seek(DATEI,$pos,0);}
$page = join('+',@f);     
}
if (length($nextpage)>0)
{
my @f = split(/ /,$page);
my $pos =$f[$#f];
seek(DATEI,$pos,0); 
}
my $x="<br><table class='pixelborder' width=100% align='center' cellspacing=0 cellpadding=3 bgcolor=$formfarbe><tr><td>\n";
$x="$x<table border=1 width=100% rules='all' bordercolor=#FFFFFF align='center' cellspacing=0 cellpadding=2 bgcolor=$formfarbe><tr><td $w>\n";
while ($zeile = <DATEI>)
{
if (index($zeile,' =>') == -1)
{
chomp($zeile);
$aktch=substr($zeile,0,1);
$aktch =~ tr/a-z/A-Z/;
$aktch =~ tr/ÀÁÂÃÄÅÆàáâãäåæ/A/;
$aktch =~ tr/ÈÉÊËèéêë/E/;
$aktch =~ tr/ÌÍÎÏìíîï/I/;
$aktch =~ tr/Ðð/D/;
$aktch =~ tr/µ/M/;
$aktch =~ tr/Ññ/N/;
$aktch =~ tr/ÒÓÔÕÖòóôõö/O/;
$aktch =~ tr/ÙÚÛÜùúûü/U/;
if ($aktch lt 'A') {$aktch='0';}
if ($aktch ne $abch)
{
if (index($allebst,$aktch)>-1) {last;}
}
$k=index($zeile,' '); 
$l1='';
$l2='';
$l3='';
if ($k > -1) 
{ 
$l1 = substr($zeile,0,$k);
$l2 = substr($zeile,$k+1);
}
else {$l1=$zeile;}
$l3=$l1;
$l1 =~ s/[+]/%2B/g;
$l1 =~ tr/ /+/;
$l1 =~ s/[=]/%3D/g;
$l1 =~ s/[?]/%3F/g;
$l1 =~ s/&/%26/g;
$l1 = '"'. $l1 .'"';
$x=$x."<a href='msuche.pl?tid=$tempid&e$id=$l1&nostat=1'>$l3</a> $l2\n";
$s++;
if ($s>=$spa) 
{
$x=$x."</td></tr><tr><td $w>\n";
$s=0;
}
else {$x=$x."</td><td $w>\n";}
$i++;
if ($i > $maxwps) 
{
if (nextpage($abch) == 1) 
{
$makelink=1;
last;
}
}
} 
}
$x=$x."</td></tr></table></td></tr></table>\n";
if ($abch eq '0') {print "<font size=3><b>0..9</b></font>\n";}
else {print "<font size=3><b>$abch</b></font>\n";}
if (length($page)>1)
{
my $z=$abch;
if ($z eq '0') {$z='0..9';}
print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='mliste.pl?tid=$tempid&id=$id&un=$username&langno=$langno&ff=$ff&htmltitle=$htmltitle&tools=$toolszk&charset=$charset&lastpage=1&abwort=$abch&bez=$bez&spa=$spa&page=$page'><font size=2><b>".ueb('vorhergehende Seite')." ($z)</b></font></a>\n";
}
if ($makelink==1) 
{
$page=$page .'+'. tell(DATEI);
$page =~ tr/ /+/;
my $z=$abch;
if ($z eq '0') {$z='0..9';}
print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='mliste.pl?tid=$tempid&id=$id&un=$username&langno=$langno&ff=$ff&htmltitle=$htmltitle&tools=$toolszk&charset=$charset&nextpage=1&abwort=$abch&bez=$bez&spa=$spa&page=$page'><font size=2><b>".ueb('n&auml;chste Seite')." ($z)</b></font></a>\n";
}
print $x;
if ($makelink==1) 
{
my $z=$abch;
if ($z eq '0') {$z='0..9';}
print "<br><a href='mliste.pl?tid=$tempid&id=$id&un=$username&langno=$langno&ff=$ff&htmltitle=$htmltitle&tools=$toolszk&charset=$charset&nextpage=1&abwort=$abch&bez=$bez&spa=$spa&page=$page'><font size=2><b>".ueb('n&auml;chste Seite')." ($z)</b></font></a><br>\n";
}
if (($i/$spa)>30) {writebst();}
}
if (($i/$spa)>30) {print "<a href='#top'>".ueb('Seitenanfang')."</a>\n";}
close(DATEI);
}
sub nextpage
{
my $allebst='0ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$aktpos=tell(DATEI);
my $max=30*$spa;
my $abch=@_[0];
my $aktch=' ';
my $no=0;
my $ret=1;
while ($zeile = <DATEI>)
{
$aktch=substr($zeile,0,1);
$aktch =~ tr/a-z/A-Z/;
$aktch =~ tr/ÀÁÂÃÄÅÆàáâãäåæ/A/;
$aktch =~ tr/ÈÉÊËèéêë/E/;
$aktch =~ tr/ÌÍÎÏìíîï/I/;
$aktch =~ tr/Ðð/D/;
$aktch =~ tr/Ññ/N/;
$aktch =~ tr/ÒÓÔÕÖòóôõö/O/;
$aktch =~ tr/ÙÚÛÜùúûü/U/;
if ($aktch lt 'A') {$aktch='0';}
if ($aktch ne $abch)
{
if (index($allebst,$aktch)>-1) {$ret=0; last;}
}
$no=$no+1;
if ($no>$max) {last;}
}
seek(DATEI,$aktpos,0);
return $ret;
}
sub ll2
{
my $z=" | <a href='#¿'>¿</a>";
$z =~ s/¿/@_[0]/g;
return $z;
}
sub writebst2
{
my $z = ''; 
if (index($bst,'0')>-1) {$z=$z.ll2('0');}
if (index($bst,'A')>-1) {$z=$z.ll2('A');}
if (index($bst,'B')>-1) {$z=$z.ll2('B');}
if (index($bst,'C')>-1) {$z=$z.ll2('C');}
if (index($bst,'D')>-1) {$z=$z.ll2('D');}
if (index($bst,'E')>-1) {$z=$z.ll2('E');}
if (index($bst,'F')>-1) {$z=$z.ll2('F');}
if (index($bst,'G')>-1) {$z=$z.ll2('G');}
if (index($bst,'H')>-1) {$z=$z.ll2('H');}
if (index($bst,'I')>-1) {$z=$z.ll2('I');}
if (index($bst,'J')>-1) {$z=$z.ll2('J');}
if (index($bst,'K')>-1) {$z=$z.ll2('K');}
if (index($bst,'L')>-1) {$z=$z.ll2('L');}
if (index($bst,'M')>-1) {$z=$z.ll2('M');}
if (index($bst,'N')>-1) {$z=$z.ll2('N');}
if (index($bst,'O')>-1) {$z=$z.ll2('O');}
if (index($bst,'P')>-1) {$z=$z.ll2('P');}
if (index($bst,'Q')>-1) {$z=$z.ll2('Q');}
if (index($bst,'R')>-1) {$z=$z.ll2('R');}
if (index($bst,'S')>-1) {$z=$z.ll2('S');}
if (index($bst,'T')>-1) {$z=$z.ll2('T');}
if (index($bst,'U')>-1) {$z=$z.ll2('U');}
if (index($bst,'V')>-1) {$z=$z.ll2('V');}
if (index($bst,'W')>-1) {$z=$z.ll2('W');}
if (index($bst,'X')>-1) {$z=$z.ll2('X');}
if (index($bst,'Y')>-1) {$z=$z.ll2('Y');}
if (index($bst,'Z')>-1) {$z=$z.ll2('Z');}
$z=$z.' |';
if (length($bst)>1) {print "<br><b>$z</b><br>\n";}
}
sub readgesamtliste()
{
my $allebst='0ABCDEFGHIJKLMNOPQRSTUVWXYZ';
my $i=0;
my $s=0;
my $k=0;
my $l1='';
my $l2='';
my $l3='';
my $aktch='';
my $lastch='';
my $x="";
if ($wortzahl<$wortzahl0) {$spa=1;}
my $w=100 / $spa;
$w="width=".$w."%"; 
writebst2();
open(DATEI,"<".$listname1) || die "File not found: $listname1";
$zeile = <DATEI>; 
$zeile = <DATEI>; 
while ($zeile = <DATEI>)
{
if (index($zeile,' =>') == -1)
{
chomp($zeile);
$aktch=substr($zeile,0,1);
$aktch =~ tr/a-z/A-Z/;
$aktch =~ tr/ÀÁÂÃÄÅÆàáâãäåæ/A/;
$aktch =~ tr/ÈÉÊËèéêë/E/;
$aktch =~ tr/ÌÍÎÏìíîï/I/;
$aktch =~ tr/Ðð/D/;
$aktch =~ tr/Ññ/N/;
$aktch =~ tr/µ/M/;
$aktch =~ tr/ÒÓÔÕÖòóôõö/O/;
$aktch =~ tr/ÙÚÛÜùúûü/U/;
if ($aktch lt 'A') {$aktch='0';}
if (($aktch ne $lastch) and (index($allebst,$aktch)>-1))
{
if ($x ne '')
{
$x=$x."</td></tr></table>\n";
print $x;
}
print "<br><a name='$aktch'>\n";
if ($aktch eq '0') {print "<font size=3><b>0..9</b></font>\n";}
else {print "<font size=3><b>$aktch</b></font>\n";}
print "</a>\n";
print "&nbsp;&nbsp;<a href='#top'><img src='l2.gif' title='zum Listenanfang' border=0></a>\n";
$x="<br><table class='pixelborder' width=100% align='center' cellspacing=0 cellpadding=3 bgcolor=$formfarbe><tr><td $w>\n";
$lastch=$aktch;
}
$k=index($zeile,' '); 
$l1='';
$l2='';
$l3='';
if ($k > -1) 
{ 
$l1 = substr($zeile,0,$k);
$l2 = substr($zeile,$k+1);
}
else {$l1=$zeile;}
$l3=$l1;
$l1 =~ s/[+]/%2B/g;
$l1 =~ tr/ /+/;
$l1 =~ s/[=]/%3D/g;
$l1 =~ s/[?]/%3F/g;
$l1 =~ s/&/%26/g;
$l1 = '"'. $l1 .'"';
$x=$x."<a href='msuche.pl?tid=$tempid&e$id=$l1&nostat=1'>$l3</a> $l2\n";
$s++;
if ($s>=$spa) 
{
$x=$x."</td></tr><tr><td $w>\n";
$s=0;
}
else {$x=$x."</td><td $w>\n";}
$i++;
} 
}
if ($x ne '')
{
$x=$x."</td></tr></table>\n";
print $x;
}
if (($i/$spa)>50) {writebst2();}
close(DATEI);
}
