#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
require "config/megatoplist.cfg";
$version="1.8 SE Freeware";
################################################################################
#### Megatoplist                                                            ####
#### Version 1.8 SE Freeware Date: 20.02.2005                               ####
#### Support: webmaster@topcgi.de                                           ####
#### Updates: http://www.topcgi.de                                          ####
#### Language: German - Deutsch                                             ####
#### for other language versions, vistit: http://www.topcgi.de              ####
####                                                                        ####
#### Copyright notice:                                                      ####
#### Dieses Programm ist Freeware und darf somit von jederman kostenlos     ####
#### verwendet werden. Weiter darf der Programmcode verÄndert werden.       ####
#### Es ist aber untersagt, den eingebauten Werbebanner                     ####
#### sowie die Copyrighthinweise zu entfernen. Diese dienen zur             ####
#### finanziellen UnterstØtzung und Weiterentwicklung des Programms.        ####
####                                                                        ####
####  This script is freeware. Feel free to modify the source-code.         ####
####  It is not allowed to remove the advertising banner or the copyright   ####
####  notices.                                                              ####
################################################################################

#### Programmablauf

&get_action;

#### Anfrage wird ausgelesen und aufbereitet

sub get_action {
$buffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);
        $value =~ tr/+/ /;
        $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
        $FORM{$name} = $value;
        }
}

if ($FORM{action} eq "new_member"){ &new_member_form;}
elsif ($FORM{action} eq "click_out"){&checkip;}
elsif ($FORM{action} eq "click_in"){&checkip;}
elsif ($FORM{action} eq "edit_account"){ &edit_form;}
elsif ($FORM{action} eq "vote"){ &vote_form;}
elsif ($FORM{action} eq "vote_final"){&checkip;}
elsif ($FORM{action} eq "show_vote"){ &show_vote;}
elsif ($FORM{action} eq "lostpassform"){ &lost_pass_form;}
elsif ($FORM{action} eq "regeln"){ &regeln;}
elsif ($FORM{lost_password} eq "ja"){ &search_pass;}
else {
&check_update;
print "Location: $no_cgi_url/$toplist_html\n\n";
exit;
}

#### ANTI-CHEAT mittels IP-LOG
sub  checkip {
$userip = $ENV{REMOTE_ADDR};
$zeit = time;
                                     ##### Festlegung wie alt die IP-Adressen sein duerfen
$minvotetime = ($minzeit_vote*60);
$clickintime =($minzeit_clickin*60);
$clickouttime=($minzeit_clickout*60);
$maxiptime = ($max_log_alter*3600);

                                     ##### alte IP-Eintraege loeschen
open (IP,"<config/log/ip.log");
@OLDIP =<IP>;
foreach $line (@OLDIP) {
    @TIME = split(/\|/,$line);
    if (($TIME[1]+$maxiptime)>$zeit){push @NEWIP,"$line";}
    }
close (IP);
open (NEWIP,">config/log/ip.log");
print NEWIP @NEWIP;
close (NEWIP);
#### IPCheck Vote
if  ($FORM{action} eq  "vote_final"){
     $lastvote_time = "0";
     $votegefunden = "0";

             foreach $line (@NEWIP) {
             chomp ($line) if ($line =~ /\n/);
             @VOTEIP = split(/\|/,$line);
             if (($VOTEIP[0] eq $userip)&&($VOTEIP[2] eq $FORM{action})&&($VOTEIP[3] eq $FORM{account}))
                {$votegefunden++;
                 $lastvote_time=$VOTEIP[1];
                }
             }
     if (($votegefunden <=($maxvote_pro_account-1))&&( $zeit > ($lastvote_time+$minvotetime))){
          open (VOTELOG,">>config/log/ip.log");
          print VOTELOG "$userip|$zeit|$FORM{action}|$FORM{account}\n";
          close(VOTELOG);
          &vote_final;&check_update;
          }
      if (($votegefunden <=($maxvote_pro_account-1))&&( $zeit < ($lastvote_time+$minvotetime))){
          push @FEHLER , "<p align=center><font face\=$font size\=\"$error_font_size\" color\=$error_font_color>\n";
          push @FEHLER , "Sie k&ouml;nnen diesen Account nur alle $minzeit_vote Minuten bewerten!</font></p>\n";
          &error;
          }
      if ($votegefunden > ($maxvote_pro_account-1)) {
          push @FEHLER , "<p align=center><font face\=$font size\=\"$error_font_size\" color\=$error_font_color>\n";
          push @FEHLER , "Sie k&ouml;nnen  den  \"$FORM{account}\" Account maximal $maxvote_pro_account mal pro Sitzung bewerten!</font></p>\n";
          &error;
          }
    }
#### IPCheck CLICK_IN
if  ($FORM{action} eq  "click_in"){
        $last_click_in_time=0;
        $click_in_gefunden=0;
        foreach $line (@NEWIP) {
             chomp ($line) if ($line =~ /\n/);
             @CLICK_IN_IP = split(/\|/,$line);
             if (($CLICK_IN_IP[0] eq $userip)&&($CLICK_IN_IP[2] eq $FORM{action})&&($CLICK_IN_IP[3] eq $FORM{account}))
                {$click_in_gefunden="1";
                 $last_click_in_time=$CLICK_IN_IP[1];
                }
          }

          if (($click_in_gefunden eq "1")&&($zeit<($last_click_in_time+$clickintime))){
              &check_update;
              print "Location: $no_cgi_url/$toplist_html\n\n";
              }
          else {
                open (CLICK_IN_LOG,">>config/log/ip.log");
                print CLICK_IN_LOG "$userip|$zeit|$FORM{action}|$FORM{account}\n";
                close(CLICK_IN_LOG);
                &check_update;
                &log_click_in;
                print "Location: $no_cgi_url/$toplist_html\n\n";
                exit;
               }

    }
#### IPCheck CLICK_out
if  ($FORM{action} eq  "click_out"){
     $last_click_out_time=0;
     $click_out_gefunden=0;
         foreach $line (@NEWIP) {
             chomp ($line) if ($line =~ /\n/);
             @CLICK_out_IP = split(/\|/,$line);
             if (($CLICK_out_IP[0] eq $userip)&&($CLICK_out_IP[2] eq $FORM{action})&&($CLICK_out_IP[3] eq $FORM{account}))
                {
                 $last_click_out_time=$CLICK_out_IP[1];
                 $click_out_gefunden=1;
                }
          }
          if (($click_out_gefunden eq "1")&&($zeit<($last_click_out_time+$clickouttime))){
              &check_update;
              $datensatz=0;
                open (ALLEACCOUNTS, "<$userdatapath/user.dat");
                if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
                @ALLEACCOUNTS = <ALLEACCOUNTS>;
                foreach (@ALLEACCOUNTS){
                                         @USER = split(/\|/, $ALLEACCOUNTS[$datensatz]);
                                         if ($USER[4] eq  $FORM{account})
                                               {
                                                $redirect = $USER[11];
                                               }
                                          $datensatz++;
                                        }
                if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
                close (ALLEACCOUNTS);
                print "Location: $redirect \n\n";
              }
          else {
                open (CLICK_out_LOG,">>config/log/ip.log");
                print CLICK_out_LOG "$userip|$zeit|$FORM{action}|$FORM{account}\n";
                close(CLICK_out_LOG);
                &check_update;
                &log_click_out;
                exit;
               }

    }
}

#### Updatezeit wird ausgelesen
sub check_update {
         $zeit = time();
     if (!-e "$no_cgi_path/$toplist_html")
        { &create_new_toplist; }
     if (!-e "$cgi_root_path/config/reset.txt")
        { open (RESET, ">$cgi_root_path/config/reset.txt");
          if ($use_flock eq "1") {flock (RESET,1);}
          print RESET $zeit;
          if ($use_flock eq "1") {flock (RESET,8);}
          close (RESET);
        }
     if (!-e "$cgi_root_path/config/reset_all.txt")
        { open (RESETALL, ">$cgi_root_path/config/reset_all.txt");
          if ($use_flock eq "1") {flock (RESETALL,1);}
          print RESETALL $zeit;
          if ($use_flock eq "1") {flock (RESETALL,8);}
          close (RESETALL);
        }
     if (!-e "$cgi_root_path/config/update.txt")
        { open (UPDATE, ">$cgi_root_path/config/update.txt");
          if ($use_flock eq "1") {flock (UPDATE,1);}
          print UPDATE $zeit;
          if ($use_flock eq "1") {flock (UPDATE,8);}
          close (UPDATE);
        }
      open (RESET, "<$cgi_root_path/config/reset.txt");
      if ($use_flock eq "1") {flock (RESET,1);}
      $last_reset = <RESET>;
      if ($use_flock eq "1") {flock (RESET,8);}
      close (RESET);
      open (RESETALL,"<$cgi_root_path/config/reset_all.txt");
      if ($use_flock eq "1") {flock (RESETALL,1);}
      $last_reset_all = <RESETALL>;
      if ($use_flock eq "1") {flock (RESETALL,8);}
      close (RESETALL);
      open (UPDATE,"<$cgi_root_path/config/update.txt");
      if ($use_flock eq "1") {flock (UPDATE,1);}
      $last_update =<UPDATE>;
      if ($use_flock eq "1") {flock (UPDATE,8);}
      close (UPDATE);
    if ($zeit > $last_reset+($reset_time*86400))
     { open (RESET, ">$cgi_root_path/config/reset.txt");
      if ($use_flock eq "1") {flock (RESET,1);}
      print RESET $zeit;
      if ($use_flock eq "1") {flock (RESET,8);}
      close (RESET);
      &reset_account;
      &create_new_toplist;
     }
     elsif ($zeit > $last_reset_all+($reset_all_time*86400))
     { open (RESETALL, ">$cgi_root_path/config/reset_all.txt");
       if ($use_flock eq "1") {flock (RESETALL,1);}
       print RESETALL $zeit;
       if ($use_flock eq "1") {flock (RESETALL,8);}
       close (RESETALL);
       &reset_all_accounts;
       &create_new_toplist;
     }
     elsif ($zeit > $last_update+($update_time*60))
     { open (UPDATE, ">$cgi_root_path/config/update.txt");
       if ($use_flock eq "1") {flock (UPDATE,1);}
       print UPDATE $zeit;
       if ($use_flock eq "1") {flock (UPDATE,8);}
       close (UPDATE);
       &update_account;
       &create_new_toplist;
     }

}


#### Neue Toplist wird generiert

sub create_new_toplist
{ $time = time(); ### Zur berechnung der durschnittshits
##### Uhrzeit der aktuellen Liste wird berechnet (mit Serveroffset)
  $offsetzeit = time() + ($serveroffset * 3600);
  ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime ($offsetzeit);
  @months = ("space" , "Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
  $mon++;$year = $year + 1900;$monformat = sprintf ("%2d", $mon);$monformat =~tr/ /0/;
  $mdayformat = sprintf ("%2d", $mday);$mdayformat =~tr/ /0/;$USDate = "$monformat-$mdayformat-$year";
  $EuroDate = "$mdayformat-$monformat-$year";$USDateerweitert = "$months[$mon] $mday, $year";
  $EuroDateerweitert = "$mday $months[$mon] $year";$min = sprintf ("%2d", $min);$min =~tr/ /0/;
  $hour = sprintf ("%2d", $hour);$hour =~tr/ /0/;$EuroTime = "$hour:$min Uhr";
  if ($hour < 12) {$ext = "AM";$USHour = "$hour";}if ($hour > 12) {$USHour = $hour - 12;$ext = "PM";}
  if ($hour == 12){$ext = "PM";$USHour = "12";}if ($hour == 0) {$USHour = "12";}
  $USHour = sprintf ("%2d", $USHour);$USHour =~tr/ /0/;$USTime = "$USHour:$min $ext";
  if ($timeformat eq "12") {$aktzeit = $USTime;} else {$aktzeit = $EuroTime;}
  if ($dateformat eq "US") {$aktdate = "$USDate";}elsif ($dateformat eq "USXL") {$aktdate = "$USDateerweitert";}
  elsif ($dateformat eq "EU") {$aktdate = "$EuroDate";}else {$aktdate = "$EuroDateerweitert";}
##### Uhrzeit des naechsten Updates wird berechnet (mit Serveroffset)
  $updatezeit = time() + ($serveroffset * 3600) +($update_time * 60);
  ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime ($updatezeit);
  @months = ("space" , "Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
  $mon++;$year = $year + 1900;$monformat = sprintf ("%2d", $mon);$monformat =~tr/ /0/;
  $mdayformat = sprintf ("%2d", $mday);$mdayformat =~tr/ /0/;
  $USDate = "$monformat-$mdayformat-$year";$EuroDate = "$mdayformat-$monformat-$year";
  $USDateerweitert = "$months[$mon] $mday, $year";$EuroDateerweitert = "$mday $months[$mon] $year";
  $min = sprintf ("%2d", $min);$min =~tr/ /0/;$hour = sprintf ("%2d", $hour);$hour =~tr/ /0/;
  $EuroTime = "$hour:$min Uhr";if ($hour < 12) {$ext = "AM";$USHour = "$hour";}if ($hour > 12) {$USHour = $hour - 12;$ext = "PM";}
  if ($hour == 12){$ext = "PM";$USHour = "12";}          if ($hour == 0) {$USHour = "12";}
  $USHour = sprintf ("%2d", $USHour);$USHour =~tr/ /0/;$USTime = "$USHour:$min $ext";
  if ($timeformat eq "12") {$nextupdatetime = $USTime;}else {$nextupdatetime = $EuroTime;}
  if ($dateformat eq "US") {$nextupdatedate = "$USDate";}elsif ($dateformat eq "USXL") {$nextupdatedate = "$USDateerweitert";}
  elsif ($dateformat eq "EU") {$nextupdatedate = "$EuroDate";}else {$nextupdatedate = "$EuroDateerweitert";}
###### Uhrzeit das naechste Reset wird berechnet (mit Serveroffeset)
  $resetzeit = $last_reset + ($serveroffset * 3600) + ($reset_time*86400);
  ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime ($resetzeit);
  @months = ("space" , "Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
  $mon++;$year = $year + 1900;$monformat = sprintf ("%2d", $mon);$monformat =~tr/ /0/;
  $mdayformat = sprintf ("%2d", $mday);$mdayformat =~tr/ /0/;
  $USDate = "$monformat-$mdayformat-$year";$EuroDate = "$mdayformat-$monformat-$year";
  $USDateerweitert = "$months[$mon] $mday, $year";$EuroDateerweitert = "$mday $months[$mon] $year";
  $min = sprintf ("%2d", $min);$min =~tr/ /0/;$hour = sprintf ("%2d", $hour);$hour =~tr/ /0/;
  $EuroTime = "$hour:$min Uhr";if ($hour < 12) {$ext = "AM";$USHour = "$hour";}if ($hour > 12) {$USHour = $hour - 12;$ext = "PM";}
  if ($hour == 12){$ext = "PM";$USHour = "12";}          if ($hour == 0) {$USHour = "12";}
  $USHour = sprintf ("%2d", $USHour);$USHour =~tr/ /0/;$USTime = "$USHour:$min $ext";
  if ($timeformat eq "12") {$nextresettime = $USTime;}else {$nextresettime = $EuroTime;}
  if ($dateformat eq "US") {$nextresetdate = "$USDate";}elsif ($dateformat eq "USXL") {$nextresetdate = "$USDateerweitert";}
  elsif ($dateformat eq "EU") {$nextresetdate = "$EuroDate";}else {$nextresetdate = "$EuroDateerweitert";}

    open (ACCOUNT, "<$userdatapath/user.dat");
    if ($use_flock eq "1") {flock (ACCOUNT,1);}
    @ALLEDATEN = <ACCOUNT>;
    if ($use_flock eq "1") {flock (ACCOUNT,8);}
    close (ACCOUNT);
    @ALLEDATEN = sort {$b <=> $a} @ALLEDATEN;
    $datensatz = "0";
    $user_found = "0";
    foreach (@ALLEDATEN)
    { @TEMPARRY = split (/\|/,$ALLEDATEN[$datensatz] );
       if (($TEMPARRY[0] >=$min_click) && ($TEMPARRY[18] !="0") && ($user_found < $max_in_list))
          {
             push (@TOPUSER, join ("\|", @TEMPARRY));
             $user_found++;
          }
       $datensatz++;
      }
     ##### Berechnung wieviel User in der Datenbank sind!
      $eingetrageneuser = $datensatz++;
$topliste .="<html><head><title>$title - powered by Megatoplist from http://www.topcgi.de</title>\n";
           if ($laufleiste) {
                 $topliste .= "<style>body \{scrollbar-arrow-color : $scrollbar_arrow_color\; ";
                 $topliste .= "scrollbar-base-color: $scrollbar_base_color \;  \}</style>";
                 }
open (DATEI,"<$cgi_root_path/config/insert/metatag.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="</head>\n<body background\=\"$background\" bgcolor\=\"$backcolor\" text\=\"$text_link_text\" link\=\"$text_link_link\" vlink\=\"$text_link_vlink\" alink\=\"$text_link_alink\">\n\n";
open (DATEI,"<$cgi_root_path/config/insert/header.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,1);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="<p align=center>&nbsp;</p>
             <center><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">[<a href=\"$webmasterhomepage\" target=\"_self\"><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">Home</font></a>]
             [<a href=\"$cgi_root_url/toplist.pl?action=new_member\" target=\"_self\"><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">Anmelden</font></a>]
             [<a href=\"$cgi_root_url/toplist.pl?action=edit_account\" target=\"_self\"><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">Userlogin</font></a>]
             </font><br><br>";

if ($update_time > 1){$topliste .="<font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">Diese Liste wird alle $update_time Minuten aktualisiert. ";}
else {$topliste .="<font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">Diese Liste wird alle 60 Sekunden aktualisiert. ";}
if ($reset_time > 1){$topliste .="<font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\">Ein Reset erfolgt alle $reset_time Tage.</font>";}
else {$topliste .="<font face\=$font size\=$font_size color\=$font_color2>Ein Reset erfolgt jeden Tag. </font>";}
$topliste .="<br><center><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\"> Letztes Update: $aktdate um $aktzeit.</font></center>\n";
$topliste .="<center><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\"> N&auml;chtes Update: $nextupdatedate um $nextupdatetime.</font></center>\n";
$topliste .="<center><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\"> N&auml;chtes Reset: $nextresetdate um $nextresettime.</font></center>\n";
$topliste .="<center><font face\=\"$font\" size\=\"$font_size\" color\=\"$font_color2\"> Eingetragene Mitglieder:<b>$eingetrageneuser</b> </font></center>\n";

$topliste .="<div align=\"center\"><center><table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\" >
             <tr><td width=\"66\" bgcolor=\"$table_head_color_hot\">
             <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
             <td width=\"524\" bgcolor=\"$table_head_color_hot\">
             <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Homepage des Tages</b></font></td>
             <td width=\"72\" bgcolor=\"$table_head_color_hot\">
             <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
             &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
             <td width=\"66\" bgcolor=\"$table_head_color_hot\" >
             <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
             &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
             </tr>";

    $datensatz = "0";
    $platz = "1";
    foreach (@TOPUSER)
    {
      @USER = split (/\|/, $TOPUSER[$datensatz]);
      $topliste .=" <tr><td width=\"66\" bgcolor=\"$table_body_color\">
                    <p align=\"center\"><font face\=\"$font\" size=\"5\" $font_color>$platz</font></td>
                  <td width=\"524\" bgcolor=\"$table_body_color\">";

        if ($platz <= $maximale_banneranzahl)
          {
            $topliste .="<center><a href=\"$cgi_root_url/toplist.pl?action=click_out&account=$USER[4]\" target=\"_blank\"><img border=\"0\" src=\"$USER[12]\" width=\"$USER[14]\" height=\"$USER[13]\" alt=\"$USER[9]\"></a></center><br>\n";
          }
        else {$topliste .="<br>";}


$topliste .="<a href=\"$cgi_root_url/toplist.pl?action=click_out&account=$USER[4]\" target=\"_blank\"><b><font face\=\"$font\" size=\"2\">$USER[9]</font></b></a>
             <font face\=\"$font\" size=\"2\" $font_color> $USER[10]</font></td><td width=\"72\" bgcolor=\"$table_body_color\"><p align=\"center\"><font face\=\"$font size=2\" $font_color>$USER[0]<br><br>
            <font face\=\"$font\" size=\"1\" $font_color> ($USER[16])</font></font></td><td width=\"66\" bgcolor=\"$table_body_color\"><p align=\"center\"><font face\=\"$font\" size=\"2\" $font_color>$USER[1]<br><br>
            <font face\=\"$font\" size=\"1\" $font_color> ($USER[17])</font></font></td>  </tr></center><tr><td width=\"70\" bgcolor=\"$table_body_color\"><p align=\"center\"><a href=\"$cgi_root_url/toplist.pl?action=show_vote&account=$USER[4]\" target=\"_blank\">";

 if ($USER[19]<= 10)
        {$bild='5star.gif';
            if ($USER[19]<= 9)
                {$bild='4star.gif';}
                   if ($USER[19]<= 8)
                      {$bild='3star.gif';}
                        if ($USER[19]<= 7)
                            {$bild='2star.gif';}
                           if ($USER[19]<= 6)
                              {$bild='1star.gif';}
                              if ($USER[19]<= 5)
                              {$bild='0star.gif';}
          }

$topliste .="<img border=\"0\" src=\"$no_cgi_url/stars/$bild\"  width=\"51\" height=\"10\" alt=\"Bewertungsergebnisse\">";
             $topliste .="</a></td><center>
             <td width=\"524\" bgcolor=\"$table_body_color\"><font face\=\"$font\" size=\"2\" $font_color><a href=\"$cgi_root_url/toplist.pl?action=vote&account=$USER[4]&bannerurl=$USER[12]&bannerhoehe=$USER[13]&bannerbreite=$USER[14]\" target=\"_blank\">Bewerten:</a>
             $USER[20]</font></td>";

             $tage = ($time - $USER[15]) / 86400;
             if ($tage < "1") {$tage = 1;}
             $dschnitt_in = int ( $USER[16] / $tage);
             $dschnitt_out = int ( $USER[17] / $tage);

$topliste .="<td width=\"72\" bgcolor=\"$table_body_color\"><font face\=\"$font size=2\" $font_color><center>\ &Oslash;&nbsp;$dschnitt_in</center></font></td><td width=\"66\" bgcolor=\"$table_body_color\"><font face\=\"$font\" size=\"2\" $font_color>
             <center>&Oslash; $dschnitt_out</center></font></td></tr> ";

       if ($platz eq "1")
       {$topliste .="</table></center></div>";}

       if ($platz eq "1" &&  $user_found > 1 && $platz < $max_in_list)
{$topliste .="<div align=center><center>";
        if ($werbung eq 1) {
$topliste .="<P><CENTER><SCRIPT LANGUAGE=\"JavaScript\" SRC=\"http://www.topcgi.de/cgi-bin/adserver/toplist/ads.pl?jscript;member=toplist1;zone=normal\"></SCRIPT> \n";
$topliste .="<NOSCRIPT><A HREF=\"http://www.topcgi.de/cgi-bin/adserver/toplist/ads.pl?member=toplist1;banner=NonSSI;page=01;zone=normal\" TARGET=\"_blank\"> \n";
$topliste .="<IMG SRC=\"http://www.topcgi.de/cgi-bin/adserver/toplist/ads.pl?member=toplist1;page=01;zone=normal\" WIDTH=468 HEIGHT=60 ALT=\"Topcgi Adserver\" BORDER=0></A></NOSCRIPT> \n";
$topliste .="  </CENTER><br> \n";

}
        elsif ($werbung eq 2) {
$topliste .="<P><CENTER><SCRIPT LANGUAGE=\"JavaScript\" SRC=\"http://www.topcgi.de/cgi-bin/adserver/toplist/ads_2.pl?jscript;member=toplist2;zone=hacker\"></SCRIPT> \n";
$topliste .="<NOSCRIPT><A HREF=\"http://www.topcgi.de/cgi-bin/adserver/toplist/ads_2.pl?member=toplist2;banner=NonSSI;page=01;zone=hacker\" TARGET=\"_blank\"> \n";
$topliste .="<IMG SRC=\"http://www.topcgi.de/cgi-bin/adserver/toplist/ads_2.pl?member=toplist2;page=01;zone=hacker\" WIDTH=468 HEIGHT=60 ALT=\"Topcgi Adserver\" BORDER=0></A></NOSCRIPT> \n";
$topliste .="</CENTER><br> \n";

}
        else  {
open (DATEI,"<$cgi_root_path/config/insert/insert_2-10.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }

}
$topliste .="<table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\">
              <tr><td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
              <td width=\"524\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>TOP 2-10</b></font></td>
              <td width=\"72\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
              &nbsp;</b></font><font face\=$font size=\"1\" $font_color>(gesamt)</font></td>
              <td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
              &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
              </tr>";
            }

              if ($platz eq "10")
       {$topliste .="</table></center></div>";}
            if ($platz eq "10" &&  $user_found > 1 && $platz < $max_in_list)
{
$topliste .="<p align=center>";
open (DATEI,"<$cgi_root_path/config/insert/insert_11-25.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="</p>";
$topliste .="<div align=center><center><table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\">
              <tr><td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
              <td width=\"524\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>TOP 11-25</b></font></td>
              <td width=\"72\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
              &nbsp;</b></font><font face\=$font size=\"1\" $font_color>(gesamt)</font></td>
              <td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
              &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
              </tr>";
            }


              if ($platz eq "25")
       {$topliste .="</table></center></div>";}
              if ($platz eq "25" &&  $user_found > 1 && $platz < $max_in_list)
{
$topliste .="<p align=center>";
open (DATEI,"<$cgi_root_path/config/insert/insert_26-50.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="</p>";
$topliste .="<div align=center><center><table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\">
              <tr><td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
              <td width=\"524\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>TOP 26-50</b></font></td>
              <td width=\"72\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
              &nbsp;</b></font><font face\=$font size=\"1\" $font_color>(gesamt)</font></td>
              <td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
              &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
              </tr>";
            }

                  if ($platz eq "50")
       {$topliste .="</table></center></div>";}
              if ($platz eq "50" &&  $user_found > 1 && $platz < $max_in_list)
{
$topliste .="<p align=center>";
open (DATEI,"<$cgi_root_path/config/insert/insert_51-75.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="</p>";
$topliste .="<div align=center><center><table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\">
              <tr><td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
              <td width=\"524\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>TOP 51-75</b></font></td>
              <td width=\"72\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
              &nbsp;</b></font><font face\=$font size=\"1\" $font_color>(gesamt)</font></td>
              <td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
              &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
              </tr>";
            }

                if ($platz eq "75")
       {$topliste .="</table></center></div>";}
              if ($platz eq "75" &&  $user_found > 1 && $platz < $max_in_list)
{
$topliste .="<p align=center>";
open (DATEI,"<$cgi_root_path/config/insert/insert_76-100.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="</p>";
$topliste .="<div align=center><center><table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\">
              <tr><td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
              <td width=\"524\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>TOP 76-100</b></font></td>
              <td width=\"72\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
              &nbsp;</b></font><font face\=$font size=\"1\" $font_color>(gesamt)</font></td>
              <td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
              &nbsp;</b></font><font face\=\"$font\" size=\"1\" $font_color>(gesamt)</font></td>
              </tr>";
            }

  if ($platz eq "100")
       {$topliste .="</table></center></div>";}
              if ($platz eq "100" &&  $user_found > 100 && $platz < $max_in_list)
{
$topliste .="<p align=center>";
open (DATEI,"<$cgi_root_path/config/insert/insert_101-xxx.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .=$line;
            }
$topliste .="</p>";
$topliste .="<div align=\"center\"><center><table border=\"0\" width=\"750\" cellspacing=\"3\" cellpadding=\"2\">
              <tr><td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Platz</b></font></td>
              <td width=\"524\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>TOP 101-";
              if ($user_found > $max_in_list)
                 {$topliste .="$max_in_list";}
              else {$topliste .=" $user_found ";
            }

$topliste .=" </b></font></td>
              <td width=\"72\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Rein<br>
              &nbsp;</b></font><font face\=\"$font\" size\=\"1\" $font_color>(gesamt)</font></td>
              <td width=\"66\" bgcolor=\"$table_head_color\">
              <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color><b>Raus<br>
              &nbsp;</b></font><font face\=\"$font\" size\=\"1\" $font_color>(gesamt)</font></td>
              </tr>";
            }
$platz++;
$datensatz++;

}
$topliste .="</table></center></div>\n";
open (DATEI,"<$cgi_root_path/config/insert/footer.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            $topliste .="$line";
            }
$topliste .="<br><br><center><font face=\"Arial\" size=\"2\" color\=\"$font_color2\"><b>Megatoplist V$version</b> &#169; by<a target=\"_blank\" href=\"http://www.topcgi.de\"><font face=\"Arial\" size=\"2\" color\=\"$font_color2\">Topcgi.de</font></a></font></center>";
$topliste .="</body></html>";
open (NEW,">$no_cgi_path/$toplist_html");
if ($use_flock eq "1") {flock (NEW,1);}
print NEW $topliste;
if ($use_flock eq "1") {flock (NEW,8);}
close (NEW);




}

### Klick aus der Topliste heraus wird protokolliert

sub log_click_out {
                     $datensatz=0;

        open (ALLEACCOUNTS, "+<$userdatapath/user.dat");
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
                @ALLEACCOUNTS = <ALLEACCOUNTS>;

        foreach (@ALLEACCOUNTS)
           {
             @USER = split(/\|/, $ALLEACCOUNTS[$datensatz]);
             if ($USER[4] eq  $FORM{account})
               {
                 $USER[3]++;  $USER[17]++;
                 $redirect = $USER[11];
                 $ALLEACCOUNTS[$datensatz] = join ("\|",@USER);
               }
               $datensatz++;
            }
        seek (ALLEACCOUNTS, 0, 0);
        print ALLEACCOUNTS @ALLEACCOUNTS;
        if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
        close (ALLEACCOUNTS);

     print "Location: $redirect \n\n";

}

#### Externer Klick wird protokolliert, User wird an die Topliste weitergeleitet

sub log_click_in {

        $datensatz=0;
              open (ALLEACCOUNTS, "+<$userdatapath/user.dat");
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
                   @ALLEACCOUNTS = <ALLEACCOUNTS>;

        foreach (@ALLEACCOUNTS)
           {
             @USER = split(/\|/, $ALLEACCOUNTS[$datensatz]);
             if ($USER[4] eq  $FORM{account})
               {
                 $USER[2]++; $USER[16]++;
                 $ALLEACCOUNTS[$datensatz] = join ("\|",@USER);
               }
               $datensatz++;
            }
        seek (ALLEACCOUNTS, 0, 0);
        print ALLEACCOUNTS @ALLEACCOUNTS;
        if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
        close (ALLEACCOUNTS);



}

sub update_account {
              $datensatz=0;


              open (ALLEACCOUNTS, "<$userdatapath/user.dat");
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
              @ALLEACCOUNTS = <ALLEACCOUNTS>;
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
              close (ALLEACCOUNTS);
        foreach (@ALLEACCOUNTS)
           {
             @USER = split(/\|/, $ALLEACCOUNTS[$datensatz]);
             $USER[0] = $USER[0] + $USER[2];
             $USER[1] = $USER[1] + $USER[3];
             $USER[2] = 0;
             $USER[3] = 0;


 $v1 = $USER[21]* 10;
 $v2 = $USER[22]* 20;
 $v3 = $USER[23]* 30;
 $v4 = $USER[24]* 40;
 $v5 = $USER[25]* 50;
 $v6 = $USER[26]* 60;
 $v7 = $USER[27]* 70;
 $v8 = $USER[28]* 80;
 $v9 = $USER[29]* 90;
 $v10 = $USER[30]* 100;
if ($USER[20] eq 0)
   {$stimmen = "1";}
else {$stimmen = $USER[20];}
 $vote = (($v1+$v2+$v3+$v4+$v5+$v6+$v7+$v8+$v9+$v10) / $stimmen)/10;
 $USER[19] = $vote;

            $ALLEACCOUNTS[$datensatz] = join ("\|",@USER);
            $datensatz++;
            }


        open (ALLEACCOUNTS, ">$userdatapath/user.dat");
          if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
          print ALLEACCOUNTS @ALLEACCOUNTS;
          if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
        close (ALLEACCOUNTS);


}

sub reset_account {
              $datensatz=0;
              open (ALLEACCOUNTS, "<$userdatapath/user.dat");
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
              @ALLEACCOUNTS = <ALLEACCOUNTS>;
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
              close (ALLEACCOUNTS);
   foreach (@ALLEACCOUNTS)
           {
             @USER = split(/\|/, $ALLEACCOUNTS[$datensatz]);
             $USER[0] = 0;
             $USER[1] = 0;
             $USER[2] = 0;
             $USER[3] = 0;

            $ALLEACCOUNTS[$datensatz] = join ("\|",@USER);
            $datensatz++;
            }


        open (ALLEACCOUNTS, ">$userdatapath/user.dat");
        if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
        print ALLEACCOUNTS @ALLEACCOUNTS;
        if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
        close (ALLEACCOUNTS);
}

sub reset_all_accounts {
              $datensatz=0;
              open (ALLEACCOUNTS, "<$userdatapath/user.dat");
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
              @ALLEACCOUNTS = <ALLEACCOUNTS>;
              if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
              close (ALLEACCOUNTS);
   foreach (@ALLEACCOUNTS)
           {
             @USER = split(/\|/, $ALLEACCOUNTS[$datensatz]);
             $USER[0]  = 0;
             $USER[1]  = 0;
             $USER[2]  = 0;
             $USER[3]  = 0;
             $USER[15] = time();
             $USER[16] = 0;
             $USER[17] = 0;
             $USER[19] = 0;
             $USER[20] = 0;
             $USER[21] = 0;
             $USER[22] = 0;
             $USER[23] = 0;
             $USER[24] = 0;
             $USER[25] = 0;
             $USER[26] = 0;
             $USER[27] = 0;
             $USER[28] = 0;
             $USER[29] = 0;
             $USER[30] = 0;


            $ALLEACCOUNTS[$datensatz] = join ("\|",@USER);
            $datensatz++;
            }
        open (ALLEACCOUNTS, ">$userdatapath/user.dat");
        if ($use_flock eq "1") {flock (ALLEACCOUNTS,1);}
        print ALLEACCOUNTS @ALLEACCOUNTS;
        if ($use_flock eq "1") {flock (ALLEACCOUNTS,8);}
        close (ALLEACCOUNTS);



}



#### Bewertung eines Mitgliedes anzeigen

sub show_vote {

&header;
                $datensatz = "0";
                    open (ACCOUNT, "<$userdatapath/user.dat");
                    if ($use_flock eq "1") {flock (ACCOUNT,1);}
                    @ALLEDATEN = <ACCOUNT>;
                    if ($use_flock eq "1") {flock (ACCOUNT,8);}
                    close (ACCOUNT);
                    foreach (@ALLEDATEN)
                    {
                    @ACCOUNTDATEN = split (/\|/, $ALLEDATEN[$datensatz]);
                    if ($ACCOUNTDATEN[4] eq $FORM{account})
                    {@ACCOUNT =@ACCOUNTDATEN;
 $voteanzahl = $ACCOUNT[20];
 $v1 = $ACCOUNT[21]* 10;
 $v2 = $ACCOUNT[22]* 20;
 $v3 = $ACCOUNT[23]* 30;
 $v4 = $ACCOUNT[24]* 40;
 $v5 = $ACCOUNT[25]* 50;
 $v6 = $ACCOUNT[26]* 60;
 $v7 = $ACCOUNT[27]* 70;
 $v8 = $ACCOUNT[28]* 80;
 $v9 = $ACCOUNT[29]* 90;
 $v10 = $ACCOUNT[30]* 100;
$stimmen = $voteanzahl;
if ($voteanzahl eq 0)
   {$voteanzahl = 1;$stimmen=0;}
 $vote_percent = ($v1+$v2+$v3+$v4+$v5+$v6+$v7+$v8+$v9+$v10) / $voteanzahl;
 $vote_percent = int $vote_percent;



}

                    $datensatz++;
                    }

print "<div align=\"center\">\n";
print "  <center>\n";
print "  <table border=\"0\" width=\"451\" cellspacing=\"3\" cellpadding=\"2\">\n";
print "    <tr>\n";
print "      <td width=\"439\" bgcolor=\"$table_head_color\">\n";
print "        <p align=\"center\"><b><font face\=\"$font\" size\=\"$font_size_table\" $font_color size=\"3\">Bewertung des &quot; $FORM{account} &quot;\n";
print "        Accounts</font></b></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=\"431\" bgcolor=\"$table_body_color\" align=\"right\" height=\"25\">\n";
print "        <p align=\"center\">&nbsp;\n";
print "        </p>\n";
print "        \n";
print "        <div align=\"center\">\n";
print "          <center>\n";
print "          <table border=\"0\" cellspacing=\"0\" width=\"200\">\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;10 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[30] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table $font_color >&nbsp;9 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[29] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;8 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[28] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;7 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[27] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;6 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[26] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;5 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[25] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;4 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[24] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;3 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[23] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;2 Punkte</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color face\=$font size\=$font_size_table>&nbsp;\= $ACCOUNT[22] mal</font></td>\n";
print "            </tr>\n";
print "            <tr>\n";
print "              <td width=\"100\" align=\"right\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;1 Punkt</font></td>\n";
print "              <td width=\"100\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;\= $ACCOUNT[21] mal</font></td>\n";
print "            </tr>\n";
print "          </table>\n";
print "          </center>\n";
print "        </div>\n";
print "        \n";
print "        <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >Anzahl der Stimmen \= <b>$stimmen</b> </font>";
print "        \n";
print "        <p align=\"center\"><font face\=\"$font\" size\=\"$font_size_table\" $font_color >&nbsp;Gesamtergebnis \ = \<b>$vote_percent</b>%</font>";
print "        \n";
print "        <p align=\"center\">&nbsp;</td>\n";
print "    </tr>\n";
print "    <tr>      <td width=\"431\" bgcolor=\"$table_body_color\" align=\"right\" height=\"50\">\n";
print "        <p align=\"center\"><input TYPE=\"BUTTON\" VALUE=\"Schliessen\" onClick=window.close()></td>\n";
print "    </tr>\n";
print "  </table>\n";
print "  </center>\n";
print "</div>\n";
&footer;


}

#### Html Header

sub header {

            print "Content-type: text/html\n\n";
            print "<html><head><title>$title - powered by Megatoplist from http://www.topcgi.de</title>\n";
            if ($laufleiste) {
                print "<style>body \{scrollbar-arrow-color : $scrollbar_arrow_color\; ";
                print "scrollbar-base-color: $scrollbar_base_color \;  \}</style>";
                }
            open (DATEI,"<$cgi_root_path/config/insert/metatag.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            print $line;
            }
            print "</head>\n";
            print "<body background\=\"$background\" bgcolor\=\"$backcolor\" text\=\"$text_link_text\" link\=\"$text_link_link\" vlink\=\"$text_link_vlink\" alink\=\"$text_link_alink\">\n";
            open (DATEI,"<$cgi_root_path/config/insert/header.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            print $line;
            }
           }

#### Html Footer

sub footer {

            open (DATEI,"<$cgi_root_path/config/insert/footer.dat");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            print $line;
            }
            print "<br><br><center><font face=\"Arial\" size=\"2\" color\=\"$font_color2\"><b>Megatoplist V$version</b> &#169; by<a <font target=\"_blank\" href=\"http://www.topcgi.de\"><font face=\"Arial\" size=\"2\" color\=\"$font_color2\">Topcgi.de</font></a></font></center>\n";
            print "</body></html>\n";
            }


#### Formular New Member

sub new_member_form {
&header;
print "<div align=center>\n";
print "  <center>\n";
print "  <table border=0 width=600 cellspacing=3  cellpadding=2>\n";
print "    <tr>\n";
print "      <td width=600 bgcolor=$table_head_color colspan=2 height=35>\n";
print "        <p align=center><font face\=$font size\=$font_size_table $font_color ><b><big>Neuen Account erstellen</big></b></font></td>\n";
print "    </tr>\n";
print "    <tr><form method=POST action=$new_member_url>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Account Name</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=account size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Passwort</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=passwort size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Wiederhohlung Passwort</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=confirm_passwort size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font  face\=$font size\=$font_size_table $font_color >Vorname</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=vorname size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Nachname</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=nachname size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Email</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=email size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Seitenname</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=seitenname size=33></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=62><font face\=$font size\=$font_size_table $font_color >Beschreibung</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=62>\n";
print "                          <textarea rows=3 name=beschreibung cols=28></textarea></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Seiten-Url</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=seitenurl size=33 ></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color  >Bannerurl</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=bannerurl size=33 ></td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color  >Bannerbreite</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=bannerbreite size=33><font face\=$font size\=$font_size_table $font_color > (max. $user_banner_width Pixel)</td> \n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Bannerh&ouml;he</font></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><input type=text name=bannerhoehe size=33><font face\=$font size\=$font_size_table $font_color > (max. $user_banner_height Pixel) </td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color align=right height=25><input type=checkbox name=regeln value=ja></td>\n";
print "      <td width=380 bgcolor=$table_body_color height=25><font face\=$font size\=$font_size_table $font_color  >Ich stimme den <a href\=$cgi_root_url/toplist.pl?action\=regeln target\=\_blank>Regeln</a> zu</font> </td>\n";
print "    </tr>\n";
print "    <tr>\n";
print "      <td width=220 bgcolor=$table_body_color height=27>&nbsp;</td>\n";
print "      <td width=380 bgcolor=$table_body_color height=27><input type=hidden name=newuser value=ja><input type=submit value=Abschicken name=B1>\&nbsp;\&nbsp;&nbsp;\n";
print "        <input type=reset value=\"&Auml;nderungen verwerfen\" name=B2></td>\n";
print "    </tr></form>\n";
print "  </table>\n";
print "  </center>\n";
print "</div>\n";
&footer;
    }



sub edit_form {
&header;
print "<div align=center>\n";
print "<center>\n";
print "<table border=0 width=600 cellspacing=3 cellpadding=2>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_head_color colspan=2 >\n";
print "<p align=center><font face\=$font size\=$font_size_table $font_color ><b><big>Login\: Account bearbeiten</big></b></font></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color align=right height=25 colspan=2></td>\n";
print "</tr>\n";
print "<tr><form method=POST action=$edit_member_url>\n";
print "<td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color  >Account Name</font></td>\n";
print "<td width=380 bgcolor=$table_body_color height=25><input type=text name=editaccount size=33></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color  >Passwort</font></td>\n";
print "<td width=380 bgcolor=$table_body_color height=25><input type=password name=editpass size=33></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color height=27 colspan=2>\n";
print "<p align=center>\n";
print "<input type=hidden name=edit_account value=ja>\n";
print "<input type=submit value=' login ' >\n";
if ($email_on eq 1){
print "<br><br><a href=$cgi_root_url/toplist.pl\?action\=lostpassform><font face\=$font size\=$font_size_table $font_color >Passwort vergessen\?</font></a>\n";
}
print "</p></form>\n";
print "</td>\n";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "</div>\n";
&footer;
}

sub vote_form {
&header;
print "<p>&nbsp;</p>\n";
print "<div align=center>\n";
print "<center>\n";
print "<table border=0 width=560 cellspacing=3 cellpadding=2>\n";
print "<tr>\n";
print "<td width=560 bgcolor=$table_head_color >\n";
print "<p align=center><font face\=$font size\=$font_size_table $font_color ><b><big>\"$FORM{account}\" -&nbsp; Account bewerten<big></b></font></big></big></td>\n";
print "</tr>\n";

print "<tr>\n";
print "<td width=560 bgcolor=$table_body_color align=right >\n";
print "<p align=center>&nbsp;</p>\n";
print "<p align=\"center\">\n";
print "<img border=\"0\" src=\"$FORM{bannerurl}\" alt=\"Userbanner des $FORM{account} Accounts\" width=\"$FORM{bannerbreite}\" height=\"$FORM{bannerhoehe}\"></p>\n";

print "<p align=center>&nbsp;</td>\n";
print "</tr>\n";


print "<tr>\n";
print "<td width=560 bgcolor=$table_body_color align=right >\n";
print "<p align=center>&nbsp;</p>\n";
print "<form method=GET action=$cgi_root_url/toplist.pl >\n";
print "<input type=hidden name=action value=vote_final>\n";
print "<input type=hidden name=account value=$FORM{account}>\n";
print "<p align=center><select size=1 name=bewertung>\n";
print "<option selected value=30>10 - SUPER</option>\n";
print "<option value=29>9</option>\n";
print "<option value=28>8</option>\n";
print "<option value=27>7</option>\n";
print "<option value=26>6 - mittel</option>\n";
print "<option value=25>5</option>\n";
print "<option value=24>4</option>\n";
print "<option value=23>3</option>\n";
print "<option value=22>2</option>\n";
print "<option value=21>1 - schlecht</option>\n";
print "</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=submit value=Bewerten ></p>\n";
print "</form>\n";
print "<p align=center>&nbsp;</td>\n";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "</div>\n";
&footer;
}

sub vote_final {
                $datensatz = "0";
                   open (ACCOUNT, "<$userdatapath/user.dat");
                   if ($use_flock eq "1") {flock (ACCOUNT,1);}
                   @ALLEDATEN = <ACCOUNT>;
                   if ($use_flock eq "1") {flock (ACCOUNT,8);}
                   close (ACCOUNT);
                   foreach (@ALLEDATEN)
                   {
                   @ACCOUNTDATEN = split (/\|/, $ALLEDATEN[$datensatz]);
                   if ($ACCOUNTDATEN[4] eq $FORM{account})
                   {$ACCOUNTDATEN[$FORM{bewertung}]++ ;
                    $ACCOUNTDATEN[20]++ ;
                    $vote_erfolgreich=1;}
                   $ALLEDATEN[$datensatz] = join ("\|",@ACCOUNTDATEN);
                   $datensatz++;
                   }
                        open (ACCOUNT, ">$userdatapath/user.dat");
                        if ($use_flock eq "1") {flock (ACCOUNT,1);}
                        print ACCOUNT @ALLEDATEN;
                        if ($use_flock eq "1") {flock (ACCOUNT,8);}
                        close (ACCOUNT);
 &show_vote;
}

sub lost_pass_form {
&header;
print "<div align=center>\n";
print "<center>\n";
print "<table border=0 width=600 cellspacing=3 cellpadding=2>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_head_color colspan=2 >\n";
print "<p align=center><font face\=$font size\=$font_size_table $font_color><b><big>Passwort vergessen \?</big></b></font></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color align=right height=25 colspan=2>\n";
print "<center><font face\=$font size\=$font_size_table $font_color >Bitte geben Sie Ihren Accountnamen ein.</font></center>";
print "</td></tr>\n";
print "<tr><form method=\"GET\" action=\"$cgi_root_url/toplist.pl\">\n";
print "<input type=hidden name=lost_password value=ja>\n";
print "<td width=220 bgcolor=$table_body_color align=right height=25><font face\=$font size\=$font_size_table $font_color >Account Name</font></td>\n";
print "<td width=380 bgcolor=$table_body_color height=25><input type=text name=account size=33></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color height=27 colspan=2>\n";
print "<p align=center>\n";
print "<input type=submit value=' login ' >\n";
print "</p></form>\n";
print "</td>\n";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "</div>\n";
&footer;
}

sub search_pass {
$datensatz = "0";
                   open (ACCOUNT, "<$userdatapath/user.dat");
                   if ($use_flock eq "1") {flock (ACCOUNT,1);}
                   @ALLEDATEN = <ACCOUNT>;
                   if ($use_flock eq "1") {flock (ACCOUNT,8);}
                   close (ACCOUNT);
                   foreach (@ALLEDATEN)
                   {
                   @ACCOUNTDATEN = split (/\|/, $ALLEDATEN[$datensatz]);
                   if ($ACCOUNTDATEN[4] eq $FORM{account})
                   {$ACCOUNTDATEN[$FORM{bewertung}]++ ;
                    $pass=$ACCOUNTDATEN[5];
                    $email=$ACCOUNTDATEN[8] ;
                    $suche_erfolgreich=1;}

                   $datensatz++;
                   }
if ($suche_erfolgreich eq 1){
@MAIL = split(/\@/, $email);
open (MAIL,"|$mailpath -t");
print MAIL "To: $MAIL[0]\@$MAIL[1]\n";
print MAIL "From: $your_mail\n";
print MAIL "Subject: Ihre Passwort fuer die $title \n";
print MAIL "Sie haben Ihr Passwort bei uns angefordert.\n\n";
print MAIL "Folgende Zugangsdaten haben wir gefunden:\n\n";
print MAIL "Accountname: $FORM{account} \n";
print MAIL "Passwort: $pass\n\n";
print MAIL "Sie finden Ihren Eintrag unter:\n\n";
print MAIL "$cgi_root_url/toplist.pl\n\n";
print MAIL "Sollten Ihre Daten fehlerhaft sein koennen Sie diese hier aendern:\n\n";
print MAIL "$cgi_root_url/toplist.pl?action=edit_account\n\n";
close (MAIL);

&header;
print "<div align=center>\n";
print "<center>\n";
print "<table border=0 width=600 cellspacing=3 cellpadding=2>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_head_color colspan=2 >\n";
print "<center><font face\=$font size\=$font_size_table $font_color><b><big>Passwort wurde verschickt</big></b></font></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color align=right height=25 colspan=2>\n";
print "<center><br><br><font face\=$font size\=$font_size_table $font_color ><b>Ihr Passwort wurde soeben an folgende Email verschickt:</b></font><br><br>";
print "<font face\=$font size\=$font_size_table $font_color ><b><big>$email</big></b></font><br><br><br><br></td>\n";
print "</tr>\n";
print "</table>\n";
print "<br><br><p align=center><font face\=$font size\=$font_size_table $font_color><a href=$cgi_root_url/toplist.pl>Zur&uuml;ck zur $title </a></font></p>\n";
print "</center>\n";
print "</div>\n";
&footer;
}
else {
&header;
print "<div align=center>\n";
print "<center>\n";
print "<table border=0 width=600 cellspacing=3 cellpadding=2>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_head_color colspan=2 >\n";
print "<center><font $font $font_color size=4><b>Accountdaten nicht gefunden\!</b></font></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color align=right height=25 colspan=2>\n";
print "<center><br><br><font $font size\=\"$error_font_size\" color\=$error_font_color><b>Leider haben wir Ihre Accountdaten nicht gefunden!</b></font><br>";
print "<font $font size\=\"$error_font_size\" color\=$error_font_color><b>Bitte &uuml;berpr&uuml;fen Sie Ihre Eingabe\!</b></font><br><br><br><br></td>\n";
print "</tr>\n";
print "</table>\n";
print "<br><br><p align=center><font size=4 face=Arial ><a href=javascript:history.go(-1);><font face=Arial size=2 color\=$font_color2>Zur&uuml;ck</font></a></font></p>\n";
print "</center>\n";
print "</div>\n";
&footer;
}
}

sub regeln {
&header;
print "<div align=center>\n";
print "<center>\n";
print "<table border=0 width=600 cellspacing=3 cellpadding=2>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_head_color colspan=2 >\n";
print "<center><font face\=$font size\=$font_size_table $font_color><b><big>Regeln f&uuml;r den Beitritt in die $title</big></b></font></td>\n";
print "</tr>\n";
print "<tr>\n";
print "<td width=600 bgcolor=$table_body_color  height=25 colspan=2>\n";
print "<font face\=$font size\=$font_size_table $font_color>\n";
open (DATEI,"<$cgi_root_path/config/insert/regeln.txt");
            if ($use_flock eq "1") {flock (DATEI,1);}
            @DATEN =<DATEI>;
            if ($use_flock eq "1") {flock (DATEI,8);}
            close (DATEI);
            foreach $line (@DATEN)
            {
            print "$line" ;
            }
print "</font>\n";
print "<br><br></td>\n";
print "</tr>\n";
print "</table>\n";
print "</center>\n";
print "</div>\n";
&footer;
}

#### Fehlermeldung wird erstellt

sub error {
    &header;
    print "<div align=center>\n";
    print "<center>\n";
    print "<table border=0 width=600 cellspacing=3  >\n";
    print "<tr>\n";
    print "<td width=600 bgcolor=$table_head_color colspan=2 height=40>\n";
    print "<p align=center><font face\=$font size\=$font_size_table  $font_color>\n<b><big>Folgende Fehler wurden gefunden</big></b></font></td>\n";
    print "</tr>\n";
    print "<tr><td width=600 bgcolor=$table_body_color><p>&nbsp;</p>\n";
    print "@FEHLER";
    print "<p>&nbsp;</p></td></tr>";
    print "</table>\n";
    print "</center>\n";
    print "<p>\&nbsp;</p><center><input TYPE=BUTTON VALUE=Schliessen onClick=window.close()> <center>\n";
    print "</div>\n";
    &footer;

}


1;
