beginnings of view calls
[scannr.git] / common.inc.php
blob:a/common.inc.php -> blob:b/common.inc.php
--- a/common.inc.php
+++ b/common.inc.php
@@ -1,1 +1,159 @@
+<?php
+date_default_timezone_set("Australia/Sydney");
+$basePath = "";
 
+/**    Returns the offset from the origin timezone to the remote timezone, in seconds.
+ *    @param $remote_tz;
+ *    @param $origin_tz; If null the servers current timezone is used as the origin.
+ *    @return int;
+ */
+function get_timezone_offset($remote_tz, $origin_tz = null) {
+    if ($origin_tz === null) {
+        if (!is_string($origin_tz = date_default_timezone_get())) {
+            return false; // A UTC timestamp was returned -- bail out!
+        }
+    }
+    $origin_dtz = new DateTimeZone($origin_tz);
+    $remote_dtz = new DateTimeZone($remote_tz);
+    $origin_dt = new DateTime("now", $origin_dtz);
+    $remote_dt = new DateTime("now", $remote_dtz);
+    $offset = $origin_dtz->getOffset($origin_dt) - $remote_dtz->getOffset($remote_dt);
+    return $offset;
+}
+
+function getSensorValuesByHour($sensorID, $timeFrom, $timeTo) {
+    $sql = 'select min(time) as time, min(value), max(value), avg(value), stddev(value) from sensor_values where sensor_id = ?
+            and extract(epoch from time) > ? and extract(epoch from time) < ?
+            group by sensor_id, date_trunc(\'hour\', time) order by time';
+
+    $query = $this->db->query($sql, Array($sensorID, $timeFrom, $timeTo));
+    return $query->result_array();
+}
+
+function getSensorValuesByDay($sensorID, $dayFrom, $dayTo) {
+    $sql = 'select min(time) as time, min(value), max(value), avg(value), stddev(value) from sensor_values where sensor_id = ? 
+            group by sensor_id, date_trunc(\'day\', time) order by time';
+
+    $query = $this->db->query($sql, Array($sensorID));
+    return $query->result_array();
+}
+
+function getSensorDataYears($sensorID, $timeFrom, $timeTo) {
+    $sql = "select distinct extract('year' from time) as year from sensor_values where sensor_id = ? order by year";
+
+    $query = $this->db->query($sql, Array($sensorID));
+    return $query->result_array();
+}
+
+function getSensorDataMonths($sensorID, $timeFrom, $timeTo) {
+    $sql = "select distinct extract('month' from time) as month, extract('year' from time) as year from sensor_values where sensor_id = ? order by year, month";
+
+    $query = $this->db->query($sql, Array($sensorID));
+    return $query->result_array();
+}
+
+function getSensorDataDays($sensorID, $timeFrom, $timeTo) {
+    $sql = "select distinct extract('day' from time) as day, extract('month' from time) as month, extract('year' from time) as year from sensor_values where sensor_id = ? order by year,month,day";
+
+    $query = $this->db->query($sql, Array($sensorID));
+    return $query->result_array();
+}
+
+function include_header($title) {
+    global $basePath;
+    ?>
+    <!DOCTYPE html>
+
+    <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
+    <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
+    <!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
+    <!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
+    <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
+        <head>
+            <meta charset="utf-8" />
+
+            <!-- Set the viewport width to device width for mobile -->
+            <meta name="viewport" content="width=device-width" />
+
+            <title><?php echo $title; ?> - Scannr</title>
+
+            <!-- Included CSS Files -->
+            <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/foundation.css">
+            <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/app.css">
+
+            <!--[if lt IE 9]>
+                    <link rel="stylesheet" href="<?php echo $basePath ?>stylesheets/ie.css">
+            <![endif]-->
+
+
+            <!-- IE Fix for HTML5 Tags -->
+            <!--[if lt IE 9]>
+                    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+            <![endif]-->
+
+        </head>
+        <body xmlns:schema="http://schema.org/"  xmlns:foaf="http://xmlns.com/foaf/0.1/">
+
+            <!-- navBar -->
+            <div id="navbar" class="container">
+                <div class="row">
+                    <div class="four columns">
+                        <h1><a href="/">Disclosr</a></h1>
+                    </div>
+                    <div class="eight columns hide-on-phones">
+                        <strong class="right">
+                            <a href="getAgency.php">Agencies</a>
+                            <a href="about.php">About/FAQ</a>
+                        </strong>
+                    </div>
+                </div>
+            </div>
+            <!-- /navBar -->
+
+            <!-- container -->
+            <div class="container">
+            <?php
+            }
+
+            function include_footer() {
+                global $basePath;
+                ?>
+
+            </div>
+            <!-- container -->
+
+
+
+
+            <!-- Included JS Files -->
+            <script src="<?php echo $basePath; ?>js/foundation.js"></script>
+            <script src="<?php echo $basePath; ?>js/app.js"></script>
+            <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
+            <script>window.jQuery || document.write('<script src="js/jquery-1.8.2.min.js"><\/script>')</script>
+
+            <script type="text/javascript" src="<?php echo $basePath ?>js/flotr2/flotr2.js"></script>
+    <?php
+    if (strpos($_SERVER['SERVER_NAME'], ".gs")) {
+        ?>
+                <script type="text/javascript">
+
+                    var _gaq = _gaq || [];
+                    _gaq.push(['_setAccount', 'UA-12341040-2']);
+                    _gaq.push(['_trackPageview']);
+
+                    (function() {
+                        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+                        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+                        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+                    })();
+
+                </script>
+
+            </body>
+        </html>
+
+    <?php
+    }
+}
+
+