<?php
#############################################################
# Project:      bCounter                                    #
# File:         stats.php                                   #
# Decription:   summary page of the collected data
#                                                           #
# Copyright (c) Alexander Bondar (http://bondar.de/)        #
#############################################################

/*
URL -> Seitentitel
Referer: User / Rest
*/
    $strTitle .= ' | Statistiken';

    $iH = date("G")+0;
    $iM = date("i")+0;
    $iS = date("s")+0;

    $iTimestampToday0h     = strtotime("-$iH hours -$iM minutes -$iS seconds");
    $iTimestampYesterday0h = strtotime("-1days -$iH hours -$iM minutes -$iS seconds");
    $iTimestamp2daysAgo0h  = strtotime("-2days -$iH hours -$iM minutes -$iS seconds");
    $iTimestamp7days0h     = strtotime("-7days -$iH hours -$iM minutes -$iS seconds");
    $iTimestamp30days0h    = strtotime("-30days -$iH hours -$iM minutes -$iS seconds");
    $iTimestamp60days0h    = strtotime("-60days -$iH hours -$iM minutes -$iS seconds");

    $strSQLstring = "
        SELECT count(*)
        FROM ".$bCounter_dbPrefix."visits
        WHERE type='human' AND first_seen>'$iTimestampYesterday0h' AND first_seen<'$iTimestampToday0h'
        AND browser!='unknown' AND os!='unknown'
        ";
    $iBesucherGestern = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );

    $strSQLstring = "
        SELECT count(*)
        FROM ".$bCounter_dbPrefix."visits
        WHERE type='human' AND first_seen>'$iTimestamp2daysAgo0h' AND first_seen<'$iTimestampYesterday0h'
        AND browser!='unknown' AND os!='unknown'
        ";
    $iBesucherVorgestern = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );

    $strSQLstring = "
        SELECT count(*)
        FROM ".$bCounter_dbPrefix."visits
        WHERE type='human' AND first_seen>'$iTimestampToday0h'
        AND browser!='unknown' AND os!='unknown'
        ";
    $iBesucherHeute = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );

    $strSQLstring = "
        SELECT count(*)
        FROM ".$bCounter_dbPrefix."visits
        WHERE type='human' AND first_seen>'$iTimestamp7days0h'
        AND browser!='unknown' AND os!='unknown'
        ";
    $iBesucher7tage = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );

    $strSQLstring = "
        SELECT count(*)
        FROM ".$bCounter_dbPrefix."visits
        WHERE type='human' AND first_seen>'$iTimestamp30days0h'
        AND browser!='unknown' AND os!='unknown'
        ";
    $iBesucher30tage = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );

    $strSQLstring = "
        SELECT count(*)
        FROM ".$bCounter_dbPrefix."visits
        WHERE type='human' AND first_seen>'$iTimestamp60days0h'
        AND browser!='unknown' AND os!='unknown'
        ";
    $iBesucher60tage = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );




    $strDivBody .= '<h2>Eindeutige Besucher aktuell</h2>'."\n";

    $strDivBody .= '<div class="table" style="width:500px;">'."\n";
    $strDivBody .= '<div class="col1" style="position:elative;">'."\n";
    $strDivBody .= '<p>Heute: '.zahl($iBesucherHeute).'</p>'."\n";
    $strDivBody .= '</div>'."\n";

    $strDivBody .= '<div class="col2">'."\n";
    $strDivBody .= '<p>Gestern: '.zahl($iBesucherGestern).'</p>'."\n";
    $strDivBody .= '</div>'."\n";

    $strDivBody .= '<div class="col3">'."\n";
    $strDivBody .= '<p>Vorgestern: '.zahl($iBesucherVorgestern).'</p>'."\n";
    $strDivBody .= '</div>'."\n";


    $strDivBody .= '<div class="clear"></div>'."\n";


    $strDivBody .= '<div class="col1">'."\n";
    $strDivBody .= '<p>7 Tage: '.zahl($iBesucher7tage).'</p>'."\n";
    $strDivBody .= '</div>'."\n";

    $strDivBody .= '<div class="col2">'."\n";
    $strDivBody .= '<p>30 Tage: '.zahl($iBesucher30tage).'</p>'."\n";
    $strDivBody .= '</div>'."\n";

    $strDivBody .= '<div class="col3">'."\n";
    $strDivBody .= '<p>60 Tage: '.zahl($iBesucher60tage).'</p>'."\n";
    $strDivBody .= '</div>'."\n";



    $strDivBody .= '</div>'."\n";




    $strDivBody .= '<div class="clear"></div>'."\n";



#######################################
######### Zeile 1 #####################
#######################################


    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='human' AND browser!='unknown' AND os!='unknown'";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(browser) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='human' AND browser!='unknown' AND os!='unknown' GROUP BY browser ORDER BY anzahl DESC, browser";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col1">'."\n";
    $strDivBody .= '<h2>Top '.$bCounter_stats_browser.' Browser</h2>'."\n";
    $strDivBody .= '<div class="stats"><table>'."\n";
    $strDivBody .= '<tr><th>Browser</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_browser; $i++ ) {
        $strBrowser  = mysql_result($SQLresult_all, $i, "browser");
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");

        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td><img src="./img/browser/'.getBrowserString_img($strBrowser).'.png" width="14" height="14" alt="'.getBrowserString($strBrowser, "").'" />&nbsp;<a href="./?load=show_browser&amp;browser='.$strBrowser.'" class="intern">'.getBrowserString($strBrowser, "").'</a></td>'."\n";
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";

# Uneindeutige Kennungen anzeigen, falls vorhanden
    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='human' AND browser='unknown'";
    $SQLresult = $bCounterDB->query($strSQLstring);
    if ( mysql_result( $SQLresult, 0, 0 ) > 0 ) {
        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td class="right"><a href="./?load=visits_undetermined">Uneindeutig</a></td>'."\n";
        $strDivBody .= '<td class="right">'.zahl( mysql_result($SQLresult, 0, 0) ).'</td>'."\n";
        $strDivBody .= '<td class="right"></td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }

    $strDivBody .= '</table>'."\n";
    $strDivBody .= '<p class="right"><a href="./?load=details_browsers_all">Details</a></p></div>'."\n";
    $strDivBody .= '</div>'."\n";



    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."data";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );

    $strSQLstring = "SELECT request_uri, count(request_uri) AS anzahl FROM ".$bCounter_dbPrefix."data GROUP BY request_uri ORDER BY anzahl DESC, request_uri";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col2">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_pages.' Seiten (auch SuMas etc.)</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Seite</th><th>Aufrufe</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_pages; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strRequestURI = htmlentities(mysql_result($SQLresult_all, $i, "request_uri"));
        $strDivBody .= '<td><a href="'.$strRequestURI.'" target="_blank"><img src="./img/page.png" width="14" height="14" alt="Page Icon" />';
        $strDivBody .= ($strRequestURI == "/")?"Startseite":$strRequestURI;
        $strDivBody .= '</a></td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_pages">Details</a></p></div>'."\n";
    $strDivBody .= '</div>'."\n";




    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."suchbegriffe";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(suchbegriff) AS anzahl FROM ".$bCounter_dbPrefix."suchbegriffe GROUP BY suchbegriff ORDER BY anzahl DESC";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col3">'."\n";
    $strDivBody .= '<h2>Top '.$bCounter_stats_query.' Suchbegriffe</h2>'."\n";
    $strDivBody .= '<div class="stats"><table>'."\n";
    $strDivBody .= '<tr><th>Suchbegriff</th><th>Anzahl</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_query; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td>'.mysql_result($SQLresult_all, $i, "suchbegriff").'</td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>'."\n";
    $strDivBody .= '<p class="right"><a href="./?load=details_keywords">Details</a></p></div>'."\n";
    $strDivBody .= '</div>'."\n";


    $strDivBody .= '<div class="clear"></div>';


#######################################
######### Zeile 2 #####################
#######################################


    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='human' AND browser!='unknown' AND os!='unknown'";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(os) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='human' AND browser!='unknown' AND os!='unknown' GROUP BY os, os_version ORDER BY anzahl DESC, os";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col1">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_os.' Betriebssysteme</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Betriebssystem</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_os; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strBrowser     = mysql_result($SQLresult_all, $i, "browser");
        $strOS          = mysql_result($SQLresult_all, $i, "os");
        $strOS_ver      = mysql_result($SQLresult_all, $i, "os_version");
        $strDivBody .= '<td><img src="./img/os/'.getOSstring_img($strOS, $strOS_ver).'.png" width="14" height="14" alt="'.getOSstring($strOS, $strOS_ver).'" />&nbsp;'.getOSstring($strOS, $strOS_ver).'</td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";

# Uneindeutige Kennungen anzeigen, falls vorhanden
    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE os='unknown' AND type='human'";
    $SQLresult = $bCounterDB->query($strSQLstring);
    if ( @mysql_result( $SQLresult, 0, 0 ) > 0 ) {
        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td class="right"><a href="?load=visits_undetermined">Uneindeutig</a></td>'."\n";
        $strDivBody .= '<td class="right">'.zahl( mysql_result($SQLresult, 0, 0) ).'</td>'."\n";
        $strDivBody .= '<td class="right"></td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_os">Details</a></p></div>'."\n";
    $strDivBody .= '</div>';





    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='human'";
    $iBesucheGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT alpha2, count(alpha2) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='human' GROUP BY alpha2 ORDER BY anzahl DESC, alpha2";
    $SQLresult = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col2">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_region.' Herkunft Benutzer</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Land</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult) && $i < $bCounter_stats_region; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td><img src="./img/alpha2/'.mysql_result($SQLresult, $i, "alpha2").'.png" width="16" height="11" alt="" /> '.$arrAlpha2name[mysql_result($SQLresult, $i, "alpha2")].'</td>'."\n";
        $iBesuche = mysql_result($SQLresult, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesuche).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesuche/$iBesucheGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucheGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_regions_humans">Details</a></p></div>'."\n";
    $strDivBody .= '</div>';




    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type!='human'";
    $iBesucheGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT alpha2, count(alpha2) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type!='human' GROUP BY alpha2 ORDER BY anzahl DESC, alpha2";
    $SQLresult = $bCounterDB->query($strSQLstring);


    $strDivBody .= '<div class="col3">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_region.' Herkunft Sonstige</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Land</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult) && $i < $bCounter_stats_region; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td><img src="./img/alpha2/'.mysql_result($SQLresult, $i, "alpha2").'.png" width="16" height="11" alt="" /> '.$arrAlpha2name[mysql_result($SQLresult, $i, "alpha2")].'</td>'."\n";
        $iBesuche = mysql_result($SQLresult, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesuche).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesuche/$iBesucheGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucheGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_regions_other">Details</a></p></div>'."\n";
    $strDivBody .= '</div>';



    $strDivBody .= '<div class="col3">'."\n";
#    $strDivBody .= '<p>Hier k&ouml;nnte Ihre Werbung stehen ;-)</p>'."\n";
    $strDivBody .= '</div>'."\n";


#######################################
######### Zeile 3 #####################
#######################################


    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='bot'";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(os) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='bot' GROUP BY os ORDER BY anzahl DESC, os";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="clear"></div>';
    $strDivBody .= '<div class="col1">'."\n";
    $strDivBody .= '<h2>Top '.$bCounter_stats_searchengine.' Suchmaschinen</h2>'."\n";
    $strDivBody .= '<div class="stats"><table>'."\n";
    $strDivBody .= '<tr><th>Suchmaschine</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_searchengine; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strBrowser     = mysql_result($SQLresult_all, $i, "browser");
        $strOS          = mysql_result($SQLresult_all, $i, "os");
        $strDivBody .= '<td><img src="./img/robot/'.getOSstring_img_robot($strOS).'.png" width="14" height="14" alt="'.getOSstring($strOS, $strOS_ver).'" />&nbsp;'.getOSstring($strOS, $strOS_ver).'</td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>'."\n";
    $strDivBody .= '<p class="right"><a href="./?load=details_searchengines">Details</a></p></div>'."\n";
    $strDivBody .= '</div>'."\n";



    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='bot'";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(browser) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='bot' GROUP BY os, browser ORDER BY anzahl DESC, os";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col2">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_bot.' Einzelne Bots</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Bot</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_bot; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strBrowser     = mysql_result($SQLresult_all, $i, "browser");
        $strOS          = mysql_result($SQLresult_all, $i, "os");
        $strDivBody .= '<td><img src="./img/robot/'.getOSstring_img_robot($strOS).'.png" width="14" height="14" alt="'.getBrowserString($strBrowser, "").'" />&nbsp;'.getOSstring($strOS, "").' '.getBrowserString($strBrowser, "").'</td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_searchengines_bots">Details</a></p></div>'."\n";
    $strDivBody .= '</div>';





    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='lib' OR type='downloader'";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT os, browser, count(browser) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='lib' OR type='downloader' GROUP BY os ORDER BY anzahl DESC, os ASC";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col3">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_lib.' Libraries/Programme</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Anwendung</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_lib; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strBrowser     = mysql_result($SQLresult_all, $i, "browser");
        $strOS          = mysql_result($SQLresult_all, $i, "os");
        $strDivBody .= '<td><img src="./img/robot/'.getOSstring_img_robot($strOS).'.png" width="14" height="14" alt="'.getBrowserString($strBrowser, "").'" />&nbsp;'.getOSstring($strOS, "");
        if( strlen($strBrowser) > 0 ) {
            $strDivBody .= ' '.getBrowserString($strBrowser, "");
        }
        $strDivBody .= '</td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_libs">Details</a></p></div>'."\n";
    $strDivBody .= '</div>';



    $strDivBody .= '<div class="clear"></div>';


#######################################
######### Zeile 4 #####################
#######################################


    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."visits WHERE type='human'";
    $iBesucheGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT top_host, count(top_host) AS anzahl FROM ".$bCounter_dbPrefix."visits WHERE type='human' GROUP BY top_host ORDER BY anzahl DESC";
    $SQLresult = $bCounterDB->query($strSQLstring);


    $strDivBody .= '<div class="col1">';
    $strDivBody .= '<h2>Top '.$bCounter_stats_host.' Hosts</h2>';
    $strDivBody .= '<div class="stats"><table>';
    $strDivBody .= '<tr><th>Host</th><th>Besucher</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult) && $i < $bCounter_stats_host; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strDivBody .= '<td>'.mysql_result($SQLresult, $i, "top_host").'</td>'."\n";
        $iBesuche = mysql_result($SQLresult, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesuche).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesuche/$iBesucheGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucheGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>';
    $strDivBody .= '<p class="right"><a href="./?load=details_hosts">Details</a></p></div>'."\n";
    $strDivBody .= '</div>';





    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."referer";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(host) AS anzahl FROM ".$bCounter_dbPrefix."referer GROUP BY host ORDER BY anzahl DESC";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col2">'."\n";
    $strDivBody .= '<h2>Top '.$bCounter_stats_referrer.' verweisende Domains</h2>'."\n";
    $strDivBody .= '<div class="stats"><table>'."\n";
    $strDivBody .= '<tr><th>URL</th><th>Anzahl</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_referrer; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strHost = mysql_result($SQLresult_all, $i, "host");
        $strDivBody .= '<td><a href="./?load=show_referer&amp;host='.$strHost.'" class="intern">'.$strHost.'</a></td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>'."\n";
    $strDivBody .= '<p class="right"><a href="./?load=details_referer_all">Details</a></p></div>'."\n";
    $strDivBody .= '</div>'."\n";



    $strSQLstring = "SELECT count(*) FROM ".$bCounter_dbPrefix."data WHERE redirect_status='404'";
    $iBesucherGesamt = mysql_result( $bCounterDB->query($strSQLstring), 0, 0 );
    $strSQLstring = "SELECT *, count(request_uri) AS anzahl FROM ".$bCounter_dbPrefix."data WHERE redirect_status='404' GROUP BY request_uri ORDER BY anzahl DESC";
    $SQLresult_all = $bCounterDB->query($strSQLstring);

    $strDivBody .= '<div class="col3">'."\n";
    $strDivBody .= '<h2>Top '.$bCounter_stats_query.' der 404-Anfragen</h2>'."\n";
    $strDivBody .= '<div class="stats"><table>'."\n";
    $strDivBody .= '<tr><th>Seite</th><th>Aufrufe</th><th>Anteil</th></tr>'."\n";
    for ( $i = 0; $i < mysql_num_rows($SQLresult_all) && $i < $bCounter_stats_404; $i++ ) {
        $strDivBody .= '<tr>'."\n";
        $strRequestURI = bCounter_printURL(htmlentities(mysql_result($SQLresult_all, $i, "request_uri")));
        $strDivBody .= '<td><a href="'.$strRequestURI.'" target="_blank"><img src="./img/page.png" width="14" height="14" alt="Page Icon" />'.$strRequestURI.'</a></td>'."\n";
        $iBesucher = mysql_result($SQLresult_all, $i, "anzahl");
        $strDivBody .= '<td class="right">'.zahl($iBesucher).'</td>'."\n";
        $strDivBody .= '<td class="right">'.zahl(100*$iBesucher/$iBesucherGesamt, 2).'%</td>'."\n";
        $strDivBody .= '</tr>'."\n";
    }
    $strDivBody .= '<tr>'."\n";
    $strDivBody .= '<td class="right"><i>'.mysql_num_rows($SQLresult_all).' gesamt</i></td>'."\n";
    $strDivBody .= '<td class="right">'.zahl($iBesucherGesamt).'</td>'."\n";
    $strDivBody .= '<td class="right"></td>'."\n";
    $strDivBody .= '</tr>'."\n";
    $strDivBody .= '</table>'."\n";
    $strDivBody .= '<p class="right"><a href="./?load=details_404">Details</a></p></div>'."\n";
    $strDivBody .= '</div>'."\n";
?>