<?php
/* μlogger
 *
 * Copyright(C) 2017 Bartek Fabiszewski (www.fabiszewski.net)
 *
 * This is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Library General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
require_once("auth.php");

if ($auth && !$admin && !$public_tracks) {
  // only authorized user tracks
  // get username
  $query = "SELECT login FROM users WHERE id='$auth' LIMIT 1";
  $result = $mysqli->query($query);
  $row = $result->fetch_assoc();
  $user = $row["login"];

  // users
  $user_form = '<u>'.$lang_user.'</u><br />'.$user.' (<a href="logout.php">'.$lang_logout.'</a>)';
}
else {
  // public access or admin user
  // prepare user select form
  if ($admin) {
     $user = $admin_user;
  }
  $user_form = '
  <u>'.$lang_user.'</u> ';
  if ($auth) {
    $user_form .= '&nbsp;'.$user.' (<a href="logout.php">'.$lang_logout.'</a>)';
  }
  $user_form .= '
  <br />
  <form>
  <select name="user" onchange="selectUser(this)">
  <option value="0">'.$lang_suser.'</option>';
  // get last position user
  $query = "SELECT p.user_id FROM positions p ORDER BY p.time LIMIT 1";
  $result = $mysqli->query($query);
  if ($result->num_rows) {
    $last = $result->fetch_row();
    $last_id = $last[0];
  } else {
    $last_id = "";
  }
  $query = "SELECT id, login FROM users ORDER BY login";
  $result = $mysqli->query($query);
  while ($row = $result->fetch_assoc()) {
    $user_form .= sprintf("<option %svalue=\"%s\">%s</option>\n", ($row["id"] == $last_id)?"selected ":"",$row["id"], $row["login"]);
  }
  $user_form .= '
  </select>
  </form>
  ';
}

// prepare track select form
$track_form = '
<u>'.$lang_track.'</u><br />
<form>
<select name="track" onchange="selectTrack(this)">';
$userid = "";
if ($auth && !$admin && !$public_tracks) {
  // display track of authenticated user
  $userid = $auth;
} elseif ($last_id) {
  // or user who did last move
  $userid = $last_id;
}
$query = "SELECT * FROM tracks WHERE user_id='$userid' ORDER BY id DESC";
$result = $mysqli->query($query);

$trackid = "";
while ($row = $result->fetch_assoc()) {
  if ($trackid == "") { $trackid = $row["id"]; } // get first row
  $track_form .= sprintf("<option value=\"%s\">%s</option>\n", $row["id"], $row["name"]);
}
$track_form .= '
</select>
<input id="latest" type="checkbox" onchange="toggleLatest();"> '.$lang_latest.'<br />
</form>
';
// map api select form
$api_form = '
<u>'.$lang_api.'</u><br />
<form>
<select name="api" onchange="loadMapAPI(this.options[this.selectedIndex].value);">
<option value="gmaps"'.(($mapapi=="gmaps")?' selected':'').'>Google Maps</option>
<option value="openlayers"'.(($mapapi=="openlayers")?' selected':'').'>OpenLayers</option>
</select>
</form>
';

// language select form
$lang_form = '
<u>'.$lang_language.'</u><br />
<form>
<select name="units" onchange="setLang(this.options[this.selectedIndex].value);">
<option value="en"'.(($lang=="en")?' selected':'').'>English</option>
<option value="pl"'.(($lang=="pl")?' selected':'').'>Polski</option>
<option value="de"'.(($lang=="de")?' selected':'').'>Deutsch</option>
<option value="hu"'.(($lang=="hu")?' selected':'').'>Magyar</option>
</select>
</form>
';
// units select form
$units_form = '
<u>'.$lang_units.'</u><br />
<form>
<select name="units" onchange="setUnits(this.options[this.selectedIndex].value);">
<option value="metric"'.(($units=="metric")?' selected':'').'>'.$lang_metric.'</option>
<option value="imperial"'.(($units=="imperial")?' selected':'').'>'.$lang_imperial.'</option>
</select>
</form>
';
// admin menu
$admin_menu = '';
$admin_script = '';
if ($admin) {
  $admin_menu = '
  <div id="admin_menu">
    <u>'.$lang_adminmenu.'</u><br />
      <a href="javascript:void(0);" onclick="addUser()">'.$lang_adduser.'</a><br />
  </div>
  ';
  $admin_script = '<script type="text/javascript" src="admin.js"></script>';
}

print
'<!DOCTYPE html>
<html>
  <head>
    <title>'.$lang_title.'</title>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <link rel="stylesheet" type="text/css" href="main.css" />
    <script>
      var interval = '.$interval.';
      var userid = '.(($userid)?$userid:-1).';
      var trackid = '.(($trackid)?$trackid:-1).';
      var lang_user = "'.$lang_user.'";
      var lang_time = "'.$lang_time.'";
      var lang_speed = "'.$lang_speed.'";
      var lang_accuracy = "'.$lang_accuracy.'";
      var lang_altitude = "'.$lang_altitude.'";
      var lang_ttime = "'.$lang_ttime.'";
      var lang_aspeed = "'.$lang_aspeed.'";
      var lang_tdistance = "'.$lang_tdistance.'";
      var lang_point = "'.$lang_point.'";
      var lang_of = "'.$lang_of.'";
      var lang_summary = "'.$lang_summary.'";
      var lang_latest = "'.$lang_latest.'";
      var lang_track = "'.$lang_track.'";
      var lang_newinterval = "'.$lang_newinterval.'";
      var lang_username = "'.$lang_username.'";
      var lang_password = "'.$lang_password.'";
      var lang_passwordrepeat = "'.$lang_passwordrepeat.'";
      var lang_passwordenter = "'.$lang_passwordenter.'";
      var lang_usernameenter = "'.$lang_usernameenter.'";
      var lang_cancel = "'.$lang_cancel.'";
      var lang_submit = "'.$lang_submit.'";
      var units = "'.$units.'";
      var mapapi = "'.$mapapi.'";
      var gkey = '.(isset($gkey)?'"'.$gkey.'"':'null').';
      var layer_ocm = "'.$layer_ocm.'";
      var layer_mq = "'.$layer_mq.'";
      var layer_osmapa = "'.$layer_osmapa.'";
      var layer_ump = "'.$layer_ump.'";
      var init_latitude = "'.$init_latitude.'";
      var init_longitude = "'.$init_longitude.'";
    </script>
    <script type="text/javascript" src="main.js"></script>
';
if ($mapapi == "gmaps") {
  print
'   <script type="text/javascript" src="//maps.googleapis.com/maps/api/js'.(isset($gkey)?'?key='.$gkey:'').'"></script>
    <script type="text/javascript" src="api_gmaps.js"></script>
';
}
else {
  print
'   <script type="text/javascript" src="//openlayers.org/api/OpenLayers.js"></script>
    <script type="text/javascript" src="api_openlayers.js"></script>
';
}
print '
   '.$admin_script.'
   <script type="text/javascript" src="//www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
    </script>

  </head>
  <body onload="init();loadTrack(userid,trackid,1);">
    <div id="menu">
      <div id="menu-content">
        <div id="user">
          '.$user_form.'
        </div>
        <div id="track">
          '.$track_form.'
          <input type="checkbox" onchange="autoReload();"> '.$lang_autoreload.' (<a href="javascript:void(0);" onclick="setTime()"><span id="auto">'.$interval.'</span></a> s)<br />
          <a href="javascript:void(0);" onclick="loadTrack(userid,trackid,0)">'.$lang_reload.'</a><br />
        </div>
        <div id="summary"></div>
        <div id="other">
          <a href="javascript:void(0);" onclick="toggleChart();">'.$lang_chart.'</a>
        </div>
        <div id="api">
          '.$api_form.'
        </div>
        <div id="lang">
          '.$lang_form.'
        </div>
        <div id="units">
          '.$units_form.'
        </div>
        <div id="export">
          <u>'.$lang_download.'</u><br />
          <a href="javascript:void(0);" onclick="load(\'kml\',userid,trackid)">kml</a><br />
          <a href="javascript:void(0);" onclick="load(\'gpx\',userid,trackid)">gpx</a><br />
        </div>
        '.$admin_menu.'
      </div>
      <div id="menu-close" onclick="toggleMenu();">»</div>
      <div id="footer"><a target="_blank" href="https://github.com/bfabiszewski/ulogger-server"><span class="mi">μ</span>logger</a> '.$version.'</div>
    </div>
    <div id="main">
      <div id="map-canvas"></div>
      <div id="bottom">
        <div id="chart"></div>
        <div id="close"><a href="javascript:void(0);" onclick="toggleChart(0);">'.$lang_close.'</a></div>
      </div>
    </div>
  </body>
</html>';
$mysqli->close();
?>