<?php
include('global.php');

$Debug = 0;

function EditTime($Time)
{
      global $Months;
      
      $Output = '<form style="display: inline;" action="?Operation=SetTime&amp;Time='.$Time.'" method="post">';
      
      $TimeParts = getdate($_SESSION[$Time]);
      //print_r($TimeParts); 
          
      // Day selection
      $Output .= '<select name="Day">';
      for($I = 1; $I < 32; $I++)
      {
        if($I == $TimeParts['mday']) $Selected = ' selected="1"'; else $Selected = ''; 
        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
      }
      $Output .= '</select>. ';
      
      // Month selection
      $Output .= '<select name="Month">';
      foreach($Months as $Index => $Month)
      { 
        if($Index == $TimeParts['mon']) $Selected = ' selected="1"'; else $Selected = ''; 
        if($Index > 0) $Output .= '<option value="'.$Index.'"'.$Selected.'>'.$Month.'</option>';
      }
      $Output .= '</select>. ';
      
      // Day selection
      $Output .= '<select name="Year">';
      for($I = 2000; $I < 2010; $I++)
      { 
        if($I == $TimeParts['year']) $Selected = ' selected="1"'; else $Selected = ''; 
        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
      }
      $Output .= '</select> &nbsp;&nbsp; ';
      
      
      // Hour selection
      $Output .= '<select name="Hour">';
      for($I = 0; $I < 24; $I++)
      { 
        if($I == $TimeParts['hours']) $Selected = ' selected="1"'; else $Selected = ''; 
        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
      }
      $Output .= '</select> : ';

      // Minute selection
      $Output .= '<select name="Minute">';
      for($I = 0; $I < 60; $I++) 
      {
        if($I == $TimeParts['minutes']) $Selected = ' selected="1"'; else $Selected = ''; 
        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
      }
      $Output .= '</select> ';
      $Output .= '<input type="submit" value="Nastavit">';     
      $Output .= '</form>';

      $Output .= ' <form style="display: inline;" action="?Operation=SetTimeNow&amp;Time='.$Time.'" method="post">';
      $Output .= '<input type="submit" value="Aktuální čas">';     
      $Output .= '</form>';
      
      return($Output);
}

$Months = array('', 'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 
  'Říjen', 'Listopad', 'Prosinec'); 

$GrafTimeRanges = array(
  'hour' => array(
    'caption' => 'Hodina', 
    'period' => 3600,
  ),
  'day' => array(
    'caption' => 'Den',
    'period' => 3600*24,
  ),
  'week' => array(
    'caption' => 'Týden',
    'period' => 3600*24*7,
  ),
  'month' => array(
    'caption' => 'Měsíc',
    'period' => 3600*24*30,
  ),
  'year' => array(
    'caption' => 'Rok',
    'period' => 3600*24*365,
  ),
  'years' => array(
    'caption' => 'Desetiletí',
    'period' => 3600*24*365*10,
  ),
); 

$Variables = array(
  'TimeStart' => time() - 3600*24,
  'TimeEnd' => time(),
  'Measure' => 1,
  'Period' => 'day',
  'TimeSpecify' => 0,
);

foreach($Variables as $Index => $Variable)
{
  if(!array_key_exists($Index, $_SESSION)) $_SESSION[$Index] = $Variable;
  if(array_key_exists($Index, $_GET)) $_SESSION[$Index] = $_GET[$Index];
  if(array_key_exists($Index, $_POST)) $_SESSION[$Index] = $_POST[$Index];
  //$$Index = $_SESSION[$Index];
} 

if($_SESSION['TimeSpecify'] == 0) 
{
  $_SESSION['TimeEnd'] = time() - 60;
  $_SESSION['TimeStart'] = $_SESSION['TimeEnd'] - $GrafTimeRanges[$_SESSION['Period']]['period'];
}


$Output = '<div class="Title">Statistiky</div>';

if(!array_key_exists('Operation', $_GET)) $_GET['Operation'] = ''; 
switch($_GET['Operation'])
{
  case 'SetTime':
    if(array_key_exists('Time', $_GET) and array_key_exists('Month', $_POST) and array_key_exists('Day', $_POST) and
      array_key_exists('Year', $_POST) and array_key_exists('Hour', $_POST) and array_key_exists('Minute', $_POST))  
      {
        if(($_GET['Time'] == 'TimeStart') or ($_GET['Time'] == 'TimeEnd'))
        {
          $_SESSION[$_GET['Time']] = mktime($_POST['Hour'], $_POST['Minute'], 0, $_POST['Month'], 
            $_POST['Day'], $_POST['Year']);
          $$_GET['Time'] = $_SESSION[$_GET['Time']];
        }
      }
    break; 
  case 'SetTimeNow':
    if(array_key_exists('Time', $_GET)) 
    {
      if(($_GET['Time'] == 'TimeStart') or ($_GET['Time'] == 'TimeEnd'))
      {
        $_SESSION[$_GET['Time']] = time();
        $$_GET['Time'] = $_SESSION[$_GET['Time']];
      }
    }
    break; 
  
    }
    /*
    echo('<strong>Měřené veličiny:</strong><br>');
    DB_Select('stat_measure', '*', 'enabled=1 ORDER BY description');
    while($Row = DB_Row())
      echo('<a href="?Measure='.$Row['id'].'">'.$Row['description'].'</a> ');
    echo('<br><br>');
    */
    $Output .= '<strong>Časový úsek:</strong><br>';
    // Show graf time range menu
    if($_SESSION['TimeSpecify'] == 0)
    {
      $Output .= 'Délka úseku: ';
      foreach($GrafTimeRanges as $Index => $Item)
        $Output .= '<a href="?Period='.$Index.'">'.$Item['caption'].'</a>&nbsp;'; 
      $Output .= '<br>';
      $Output .= '<a href="?TimeSpecify=1">Přesnější nastavení...</a><br>';  
    } else {
      $Output .= '<table cellspacing="0" cellpadding="2" border="0">';
      $Output .= '<tr><td>Počátek:</td><td>'.EditTime('TimeStart').'</td></tr>';
      $Output .= '<tr><td>Konec:</td><td>'.EditTime('TimeEnd').'</td></tr>';
      $Output .= '</table>';
      $Output .= '<a href="?TimeSpecify=0">Jednoduché nastavení...</a><br>';  
    }
$Output .= '<br>';

$Output .= '<strong>Graf:</strong><br>';
$Output .= '<img alt="Graf" src="graph.php?Measure='.$_SESSION['Measure'].'&amp;From='.$_SESSION['TimeStart'].'&amp;To='.$_SESSION['TimeEnd'].'&amp;Width=750&amp;Height=200" width="750" height="214"><br>';
//print_r(GetValues($Measure, $TimeStart, $TimeEnd));
 
$Output .= '<br>';

$Output .= '<table border="1" cellspacing="0" cellpadding="2" style="font-size: small;">';
$Output .= '<tr><th>Měřená veličina</th><th>Čas posledního měření</th><th>Poslední hodnota</th><th>Interpolace</th><th>Poznámky</th></tr>';
$Database->select_db('measure');
$Result = $Database->select('measure', '*', 'Enabled=1 AND PermissionView="all" OR PermissionView="'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'" ORDER BY Description');
//echo($Database->error);

while($Measure = $Result->fetch_array())
{
  $StopWatchStart = GetMicrotime();
//  DB_Select('stat_data', 'COUNT(*)', 'measure='.$Measure['id']);
//  $RowCount = DB_Row();
//  $RowCount = $RowCount[0];
//  $RowCount = 0;
  $Result2 = $Database->select('stat_data', 'time, avg', 'measure='.$Measure['id'].' ORDER BY time DESC LIMIT 1');
  if($Result2->num_rows > 0)
  {
    $Row = $Result2->fetch_array();
    $LastMeasureTime = date('j.n.Y G:i:s', MysqlDateTimeToTime($Row['time']));
    $LastMeasureValue = round($Row['avg'] / $Measure['display_divider']);
  } else {
    $LastMeasureTime = '&nbsp;';
    $LastMeasureValue = '&nbsp;';
  }
  if($Measure['continuity'] == 1) $Interpolate = 'Ano'; else $Interpolate = 'Ne';
  if($Measure['info'] == '') $Measure['info'] = '&nbsp;';
  $GenerationTime = floor((GetMicrotime() - $StopWatchStart) * 1000  ) / 1000;
  $Output .= '<tr><td><a href="?Measure='.$Measure['id'].'">'.$Measure['description'].'</a></td><td align="center">'.$LastMeasureValue.' '.$Measure['display_unit'].'</td><td align="center">'.$LastMeasureTime.'</td><td align="center">'.$Interpolate.'</td><td>'.$Measure['info'].'</td>';
  //<td>'.$RowCount.'</td><td>'.$GenerationTime.'</td></tr>');
  flush();
}
$Output .= '</table>';
$Output .= '<br><a href="development/">Sekce vývoje systému</a>';
//echo(time());
//print_r(gd_info());
$Output .= '<br><div style="font-size: small;">Kontakt: robie@centrum.cz</div>';
$Output .= '</body></html>';
//print_r($_SESSION);

ShowPage($Output);


?>
