#!/usr/bin/perl
##################################################
# CGI PSTricks statistic file
# (C) 2005 Herbert Voss
##################################################

#use strict;
use CGI qw/:standard :html3/;
use CGI::Carp qw/fatalsToBrowser/;

#print "Content-type: text/html\n\n";

print header(), start_html({-title => "Statistics"});
print "<meta http-equiv=\"Content-Type\" Content=\"text/html; charset=utf-8\">\n";
print "<meta name=\"keywords\" content=\"TUG DANTE typesetting typography TeX LaTeX graphics CTAN PostScript\">\n";

my $hostname = `/bin/hostname`;
chomp ($hostname);
if ($hostname eq 'shania') { 
  $countDatei = "/srv/www/htdocs/TeXnik/hits/CountData.dat"; 
  $leftPrefix = "/cgi-bin";
  $filePrefix = "../htdocs/TeXnik"; 				# localhost
  $linkPrefix = "/TeXnik";
} elsif ( $hostname eq 'tug.org'){
  $countDatei = "/home/httpd/html/TeXnik/hits/CountData.dat";
  $leftPrefix = "/TeXnik";
  $filePrefix = ".";  				# tug.org
  $linkPrefix = "/TeXnik";
} elsif ( $hostname eq 'comedy.dante.de'){
  $countDatei = "/serv/www/texnik/TeXnik/hits/CountData.dat";
  $leftPrefix = "/cgi-bin";
  $filePrefix = "../../texnik/TeXnik";  				# comedy.dante.de
  $linkPrefix = "/TeXnik";
} else {
  $hostname = "FU";
  $countDatei = "/home/l/latex/public_html/TeXnik/hits/CountData.dat";
  $leftPrefix = "~latex/cgi-bin";
  $filePrefix = "../TeXnik";  				# userpage.fu-berlin.de/~latex
  $linkPrefix = $filePrefix;
}
#
my $maxCount = 0;
my $maxHits = 0;
my %stat =();
#
open(APRIF,"< $countDatei");
while (<APRIF>) {
  chomp($_);
  ($url,$hits) = split(" ",$_);
  if (($url ne "index") and ($url ne "main") and (-f "$filePrefix/$url")) {
    $stat{ $url } = $hits;
    $maxCounts += $hits;
    if ( $hits > $maxHits ) { $maxHits = $hits; }
  }
}
close (APRIF);
#
sub  hitsSort { return $stat{$b} <=> $stat{$a}; }
#
my $time = `/bin/date`;
print "<h4>Total hits for this month: <font color=\"red\">$maxCounts</font>, build at $time</h4>\n";

print "<table width=\"100%\">\n";
print "<tr><th>No</th>";
print "<th align=\"left\">Filename</th>";
print "<th align=\"right\">Hits</th>";
print "<th align=\"right\">Average</th>";
print "<th align=\"left\" width=\"100%\">in %</th></tr>\n";

my $red = 1;
my $c = 0;

foreach $url (sort hitsSort keys %stat) {
  $c++;
  if (($url ne "index") and ($url ne "main") and ($stat{$url} > 0)){
    print "<tr><td>$c</td>\n";
    if (grep(/http:/,$url) > 0) { print "<td><a href=\"$url\">"; }
    else { print "<td><a href=\"$leftPrefix/mainFAQ.cgi?file=$url\">"; }
    if (length($url) > 30) { print substr($url,0,15),"...",substr($url,-15); }
    else { print "$url"; }
    print "</a></td>\n";
    print "<td align=right>$stat{$url}","</td>\n";
    my $relValue = $stat{$url}/$maxCounts*100;
    my $relValue2 = $stat{$url}/$maxHits*95;
    printf "<td align=right>%3.2f\n",$relValue;
    print "</td>\n";
    if ( $red ) {
        print "<td width=\"100%\"><img height=\"15\" src=\"$linkPrefix/bilder/start2.gif\" alt=start2></img>";
	print "<img width=\"$relValue2\%\" height=\"15\" src=\"$linkPrefix/bilder/middle2.gif\"  alt=middle2></img>";
	print "<img height=\"15\" src=\"$linkPrefix/bilder/end2.gif\" alt=end2></img></td></tr>\n";
	$red = 0;
    } else {
        print "<td width=\"100%\"><img height=\"15\" src=\"$linkPrefix/bilder/start1.gif\" alt=start1></img>";
	print "<img width=\"$relValue2\%\" height=\"15\" src=\"$linkPrefix/bilder/middle1.gif\" alt=middle1></img>";
	print "<img height=\"15\" src=\"$linkPrefix/bilder/end1.gif\" alt=end1></img></td></tr>\n";
	$red = 1;
    }
  }
}
print "</table>";

#//<!-- footer -->

my $time = `/bin/date`;
print "<hr />\n<p></p>\n",
    "<center><small>local time: $time; file is: ",
    -C 'mainFAQ.cgi',
    " days old",
    "<br />",
    "<a href=\"mailto:webmaster\@TeXnik.de\">contact webmaster at TeXnik.de</a>\n",
    "</small>",
    "</center>\n";

print end_html();

