<?php
  ini_set('max_execution_time',259200); 
  ini_set ('memory_limit','-1');
  date_default_timezone_set('America/Sao_Paulo');
  $inicio     = filter_input(INPUT_GET, 'inicio');
  $hrini      = filter_input(INPUT_GET, 'horainicio');
  $fim        = filter_input(INPUT_GET, 'fim');
  $hrfim      = filter_input(INPUT_GET, 'horafim');
  $rt         = filter_input(INPUT_GET, 'rt');
  $via        = filter_input(INPUT_GET, 'via');
  $min        = filter_input(INPUT_GET, 'min');
  $max        = filter_input(INPUT_GET, 'max');
  $data1      = $inicio.' '.$hrini.':00';
  $data2      = $fim.' '.$hrfim.':00';
  $dia_ini = date('d-m-Y',strtotime($inicio));
  $dia_fim = date('d-m-Y',strtotime($fim));
  $limite = strtotime($fim);
  if ($limite>=1680220800){$lim='novo';}else{$lim='velho';}
  //echo $fim.'<br>';
  //echo $lim.'<br>';
  $linha[0][0]='';$linha[0][1]='';$linha[0][2]='';
  $linha[1][0]=$dia_ini.' as '.$hrini;$linha[1][1]=$dia_fim.' as '.$hrfim;$linha[1][2]='';
  $linha[2][0]=$hrini;$linha[2][1]=$hrfim;$linha[2][2]='';
  $linha[3][0]=$min;$linha[3][1]=$max;$linha[3][2]=$rt;
  $linha[4][0]='';$linha[4][1]='';$linha[4][2]=$via;
  $file_txt = fopen('quali3.txt', 'w');
  for ($i=0;$i<=4;++$i){ 
    $linha2=$linha[$i][0].';'.$linha[$i][1].';'.$linha[$i][2].PHP_EOL;
    fwrite($file_txt, $linha2);
  }
  fclose($file_txt);
  require_once("../conexao_mysql_locaweb.php");
  require_once('phplot.php');
  require_once('prune_labels.php');
  $plot = new PHPlot(850,250);
  $sql = "SELECT FROM_UNIXTIME(dia_hora) AS dia, temperatura FROM sitrad WHERE id_arm='$rt' AND FROM_UNIXTIME(dia_hora) BETWEEN '$data1' AND '$data2' AND temperatura>0 ORDER BY dia ASC";
  if (!$query = mysqli_query($conn3, $sql)){ 
    echo "<script type=\"text/javascript\">alert(\"Erro no Banco de Dados!\");window.close();opener.location.href='index.php';</script>";}
  else{ 
    $num= mysqli_num_rows($query);
    if($num==0){
      echo "<script type=\"text/javascript\">alert(\" ".$sql." Sem dados TEMPERATURA para esse período!\");window.close();opener.location.href='index.php';</script>";}
    else{
      $z=0;$tt=0;$minima=99;$maxima=0;$i='s';$b=0;
      if ($min<0 and $max<0){$range=abs($min)-abs($max);}
      else{ 
        if ($max>=0 and $min>=0){ $range=$max-$min;}
        else{ 
          if ($min<0 and $max>=0){ $range=abs($min)+$max;}
          else{ $range=0;}
        }
      }
      if ($range>3){$range=3;}
      while($row = $query->fetch_assoc()) { 
        $grafico[$z][0]=strtotime($row['dia']);
        $grafico[$z][1]=$min;
        $grafico[$z][2]=$max;
        $grafico[$z][3]=$row['temperatura'];
        if ($via==1)
          { if ($max>=0 and $min>=0)
              { if($grafico[$z][3]>$max)
                  { $dif=$grafico[$z][3]-$max;
                    if($dif>$range)
                      { $dif=$range-($dif/(intval($dif-$range)+1.5));}
                    $grafico[$z][3]=$max-$dif;
                  }
                if($grafico[$z][3]<$min)
                  { $dif=$min-$grafico[$z][3];
                    if($dif>$range)
                      { $dif=$range-($dif/$range);}
                    $grafico[$z][3]=$min+$dif;
                  }
              } 
            else
              { if ($min<0 and $max<0)
                  { if($grafico[$z][3]>$max)
                      { if($grafico[$z][3]<0)
                          { $dif=abs($max)-abs($grafico[$z][3]);}
                        else
                          { $dif=$grafico[$z][3]+abs($max);}
                        if($dif>$range)
                          { $dif=$range-($dif/($dif-$range));}
                        $grafico[$z][3]=$min+$dif;
                      }
                    if($grafico[$z][3]<$min)
                      { $dif=$min-$grafico[$z][3];
                        if($dif>$range)
                          { $dif=$range-($dif/$range);}
                        $grafico[$z][3]=$max-$dif;
                      }
                  }
                else
                  { if($grafico[$z][3]>$max)
                      { $dif=$grafico[$z][3]-$max;
                        if($dif>$range)
                          { $dif=$range-($dif/(intval($dif-$range)+1.5));}
                        $grafico[$z][3]=$max-$dif;
                      }
                    if($grafico[$z][3]<$min)
                      { $dif=$min-$grafico[$z][3];
                        if($dif>$range)
                          {$dif=$range-($dif/$range);}
                        $grafico[$z][3]=$max-$dif;
                      }
                  }
              }
          }
        $tt=$tt+$grafico[$z][3];
        if ($grafico[$z][3]<$minima){$minima=$grafico[$z][3];}
        if ($grafico[$z][3]>$maxima){$maxima=$grafico[$z][3];}
        $z++;
      }
      $media=$tt/$z;
      if($min>=$minima){$miy=$minima-2;}else{$miy=$min-2;}
      if($max<=$maxima){$may=$maxima+2;}else{$may=$max+2;}
      prune_labels($grafico, 20);
      $plot->SetDataValues($grafico);
      $plot->SetXTitle('Data e Hora');
      $plot->SetYTitle('Temperatura');
      $plot->SetDataColors(array('blue', 'red', 'green'));
      $plot->SetPlotType('lines');
      $plot->SetLineWidths(2);
      $plot->SetLineStyles(array('solid','solid','solid'));
      $plot->SetYTickIncrement(2);
      $plot->SetXLabelAngle(90);
      $plot->SetXLabelType('time', '%d/%m %H:%M');
      $plot->SetXTickLabelPos('none');
      $plot->SetPlotBorderType('left');
      $plot->SetXTickPos('none');
      $plot->SetLegendStyle('left','left');
      $plot->SetLegend(array('Minima',utf8_decode('Máxima'), 'Leitura'));
      $plot->SetPlotAreaWorld(null, $miy, null, $may); // comentar essa linha se quiser tirar limites
      $plot->SetLegendPixels(783, 3);
      $plot->SetPrintImage(false);
      $plot->DrawGraph();
      $imagem = $plot->EncodeImage('raw');
      $fp = fopen("images/grafico.png", "w");
      fwrite($fp, $imagem);
      fclose($fp);
    }
  }
  $plot2 = new PHPlot(850,250);
  $sql2 = "SELECT FROM_UNIXTIME(dia_hora) AS dia, umidade FROM sitrad WHERE id_arm='$rt' AND FROM_UNIXTIME(dia_hora) BETWEEN '$data1' AND '$data2' AND umidade>0  ORDER BY dia ASC";
  if (!$query2 = mysqli_query($conn3, $sql2)){ 
    echo "<script type=\"text/javascript\">alert(\"Erro no Banco de Dados!\");window.close();opener.location.href='index.php';</script>";}
  else{ 
    $num2= mysqli_num_rows($query2);
    //echo $num;
    if($num2==0){
      echo "<script type=\"text/javascript\">alert(\"Sem dados UMIDADE para esse período!\");window.close();opener.location.href='index.php';</script>";}
    else{
      $z=0;$tt=0;$Uminima=99;$Umaxima=0;
      while($row2 = $query2->fetch_assoc()) { 
        $grafico2[$z][0]=strtotime($row2['dia']);
        $grafico2[$z][1]=0;
        $grafico2[$z][2]=0;
        $grafico2[$z][3]=$row2['umidade'];
        $tt=$tt+$grafico2[$z][3];
        if ($grafico2[$z][3]<$Uminima){$Uminima=$grafico2[$z][3];}
        if ($grafico2[$z][3]>$Umaxima){$Umaxima=$grafico2[$z][3];}
        $z++;
      }
      $Umedia=$tt/$z;
      $plot2->SetDataValues($grafico2);
      $plot2->SetXAxisPosition($Umaxima+1);
      $plot2->SetYTitle('Umidade %');
      $plot2->SetDataColors(array('blue', 'red', 'green'));
      $plot2->SetPlotType('lines');
      $plot2->SetLineWidths(2);
      $plot2->SetLineStyles(array('solid','solid','solid'));
      $plot2->SetYTickIncrement(5);
      $plot2->SetXTickPos('none');
      $plot2->SetXTickLabelPos('none');
      $plot2->SetXDataLabelPos('none');
      $plot2->SetPlotBorderType('left');
      $plot2->SetPlotAreaWorld(null, $Uminima, null, $Umaxima+1); // comentar essa linha se quiser tirar limites
      $plot2->SetPrintImage(false);
      $plot2->DrawGraph();
      $imagem2 = $plot2->EncodeImage('raw');
      $fp2 = fopen("images/grafico2.png", "w");
      fwrite($fp2, $imagem2);
      fclose($fp2);
    }
  }
  echo "<script language='JavaScript'>window.close();window.open('RelatorioGrafico.php?media=".$media."&minima=".$minima."&maxima=".$maxima."&Umedia=".$Umedia."&Uminima=".$Uminima."&Umaxima=".$Umaxima."&limite=".$lim."');</script>";
?>