diff --git a/app/css/clock.css b/app/css/clock.css
index d1d057c..9caf791 100644
--- a/app/css/clock.css
+++ b/app/css/clock.css
@@ -56,9 +56,15 @@ body {
}
.weatherBit {
color: #dcecff;
- font-size: 3vw;
+ font-size: 2.8vw;
}
+ .weatherIcon {
+ color: #fff;
+ font-size: 48px;
+ margin-top:10px;
+ }
+
#day, #date {
color: #dcecff;
font-size: 5vw;
@@ -124,6 +130,11 @@ body {
font-size: 3vw;
}
+ .weatherIcon {
+ color: #fff;
+ font-size: 48px;
+ }
+
.wday {
color: #fff;
text-align: center;
@@ -182,6 +193,11 @@ body {
font-size: 36px;
}
+ .weatherIcon {
+ color: #fff;
+ font-size: 48px;
+ }
+
.wday {
color: #fff;
text-align: center;
diff --git a/app/css/clockv2.css b/app/css/clockv2.css
new file mode 100644
index 0000000..f92cb29
--- /dev/null
+++ b/app/css/clockv2.css
@@ -0,0 +1,276 @@
+body {
+ font-family: Ubuntu, "Helvetica Neue", Helvetica, arial, sans-serif;
+ background-color: #004c6d;
+ }
+
+html, body {
+ height: 100%;
+ overflow: hidden;
+}
+
+
+
+#weatherIcon {
+ margin-left:25%;
+ margin-right:25%;
+ height:70px;
+ width:70px;
+
+ }
+
+#lightR, #projR { color: red !important; }
+
+#lightG, #projG { color: green !important; }
+
+#lightB, #projB { color: blue !important; }
+
+#lightW, #projW { background-color: #aabbcc; }
+
+.lightBG, .heatingBG, .projectorBG {
+ float: right;
+ }
+
+/*.lightBG {
+ background-color: rgba(255, 255, 0, 0.3);
+ }
+
+.heatingBG {
+ background-color: rgba(255, 0, 255, 0.3);
+ }
+
+.projectorBG {
+ background-color: rgba(0, 255, 255, 0.3);
+ }*/
+
+.mui-panel {
+ background-color: #015579;
+ }
+
+.h105 {
+ height: 100px;
+ }
+
+.mdHeading {
+ overflow: hidden;
+ }
+
+.mui--text-title {
+ color: #ffffff;
+ }
+
+.item_content {
+ height: 100px;
+ /* border: 1px solid grey;*/
+ min-height: 100px;
+ overflow: hidden;
+ }
+
+.item_content a.title {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #ffffff;
+ }
+
+.item_content div.body, .item_content div.site, .item_content div.tags {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #313131;
+ }
+
+.time, .date, .temp {
+ font-family: 'Ubuntu Condensed', sans-serif;
+ font-size: 80px;
+ color: #bad649;
+ }
+
+.time span.hour:after {
+ content: ":";
+ }
+
+.date {
+ font-size: 35px;
+ line-height: 1;
+ }
+
+.temp::after {
+ content: "°c";
+ }
+
+.item_content div.tags {
+ color: blue;
+ }
+
+.noConnection {
+ color: rgb(244, 150, 26);
+ }
+
+#caltext {
+ color: #fff;
+ }
+
+/* Smartphones (portrait and landscape) ----------- */
+@media only screen and (min-device-width: 320px) and (max-device-width: 480px) {
+ /* Styles */
+ .time, .date, .temp {
+ font-family: 'Ubuntu Condensed', sans-serif;
+ font-size: 33px;
+ /*color: #ff0000;*/
+ }
+
+ .time {
+ font-size: 50px;
+ line-height: 1;
+ }
+
+ .time span.hour:after {
+ content: "\a";
+ white-space: pre;
+ }
+
+ .temp {
+ font-size: 70px;
+ }
+
+ .temp::after {
+ content: "°";
+ }
+
+ .wd-we {
+ font-size: 75%;
+ }
+
+ .mo {
+ font-size: 85%;
+ }
+
+ .mo.mo-1, .mo.mo-10 {
+ font-size: 70%;
+ }
+
+ .mo.mo-2 {
+ font-size: 65%;
+ }
+
+ .mo.mo-8 {
+ font-size: 80%;
+ }
+
+ .mo.mo-9 {
+ font-size: 55%;
+ }
+
+ .mo.mo-11, .mo.mo-12 {
+ font-size: 60%;
+ }
+
+ }
+
+/* Smartphones (landscape) ----------- */
+@media only screen and (min-width: 321px) {
+ /* Styles */
+ }
+
+/* Smartphones (portrait) ----------- */
+@media only screen and (max-width: 320px) {
+ /* Styles */
+ }
+
+.spinner {
+ margin: 25px auto 0;
+ width: 70px;
+ text-align: center;
+ }
+
+.spinner > div {
+ width: 18px;
+ height: 18px;
+ background-color: rgb(244, 150, 26);
+ border-radius: 100%;
+ display: inline-block;
+ -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
+ animation: sk-bouncedelay 1.4s infinite ease-in-out both;
+ }
+
+.spinner .bounce1 {
+ -webkit-animation-delay: -0.32s;
+ animation-delay: -0.32s;
+ }
+
+.spinner .bounce2 {
+ -webkit-animation-delay: -0.16s;
+ animation-delay: -0.16s;
+ }
+
+@-webkit-keyframes sk-bouncedelay {
+ 0%, 80%, 100% { -webkit-transform: scale(0) }
+ 40% { -webkit-transform: scale(1.0) }
+ }
+
+@keyframes sk-bouncedelay {
+ 0%, 80%, 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+ 40% {
+ -webkit-transform: scale(1.0);
+ transform: scale(1.0);
+ }
+ }
+
+.material-icons {
+ color: #e5f7fd;
+ }
+
+.material-icons.md-18 { font-size: 18px; }
+
+.material-icons.md-24 { font-size: 24px; }
+
+.material-icons.md-36 { font-size: 36px; }
+
+.material-icons.md-48 { font-size: 48px; }
+
+.material-icons.md-100 { font-size: 100px; }
+
+/* Rules for using icons as black on a light background. */
+.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
+
+.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }
+
+/* Rules for using icons as white on a dark background. */
+.material-icons.md-light { color: rgba(255, 255, 255, 1); }
+
+.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }
+
+.material-icons.md-bulb {
+ content: ""
+ }
+
+/*
+fan : toys
+
+
+
+
+bulb : lightbulb_outline
+
+
+calendar: event_note
+
+
+projector: cast
+
+
+*/
+
+.md-display {
+ opacity: 1;
+ transition: opacity 0.3s, visibility 0.3s;
+
+ }
+
+.lostConnection {
+ opacity: 0.5;
+ transition: opacity 0.3s, visibility 0.3s;
+}
diff --git a/app/css/weather-icons.css b/app/css/weather-icons.css
new file mode 100644
index 0000000..b7d7904
--- /dev/null
+++ b/app/css/weather-icons.css
@@ -0,0 +1,1838 @@
+/*!
+ * Weather Icons 2.0.8
+ * Updated September 19, 2015
+ * Weather themed icons for Bootstrap
+ * Author - Erik Flowers - erik@helloerik.com
+ * Email: erik@helloerik.com
+ * Twitter: http://twitter.com/Erik_UX
+ * ------------------------------------------------------------------------------
+ * Maintained at http://erikflowers.github.io/weather-icons
+ *
+ * License
+ * ------------------------------------------------------------------------------
+ * - Font licensed under SIL OFL 1.1 -
+ * http://scripts.sil.org/OFL
+ * - CSS, SCSS and LESS are licensed under MIT License -
+ * http://opensource.org/licenses/mit-license.html
+ * - Documentation licensed under CC BY 3.0 -
+ * http://creativecommons.org/licenses/by/3.0/
+ * - Inspired by and works great as a companion with Font Awesome
+ * "Font Awesome by Dave Gandy - http://fontawesome.io"
+ */
+@font-face {
+ font-family: 'weathericons';
+ src: url('../fonts/weathericons-regular-webfont.eot');
+ src: url('../fonts/weathericons-regular-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/weathericons-regular-webfont.woff2') format('woff2'), url('../fonts/weathericons-regular-webfont.woff') format('woff'), url('../fonts/weathericons-regular-webfont.ttf') format('truetype'), url('../fonts/weathericons-regular-webfont.svg#weather_iconsregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+.wi {
+ display: inline-block;
+ font-family: 'weathericons';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.wi-fw {
+ text-align: center;
+ width: 1.4em;
+}
+.wi-rotate-90 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.wi-rotate-180 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.wi-rotate-270 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.wi-flip-horizontal {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.wi-flip-vertical {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+.wi-day-sunny:before {
+ content: "\f00d";
+}
+.wi-day-cloudy:before {
+ content: "\f002";
+}
+.wi-day-cloudy-gusts:before {
+ content: "\f000";
+}
+.wi-day-cloudy-windy:before {
+ content: "\f001";
+}
+.wi-day-fog:before {
+ content: "\f003";
+}
+.wi-day-hail:before {
+ content: "\f004";
+}
+.wi-day-haze:before {
+ content: "\f0b6";
+}
+.wi-day-lightning:before {
+ content: "\f005";
+}
+.wi-day-rain:before {
+ content: "\f008";
+}
+.wi-day-rain-mix:before {
+ content: "\f006";
+}
+.wi-day-rain-wind:before {
+ content: "\f007";
+}
+.wi-day-showers:before {
+ content: "\f009";
+}
+.wi-day-sleet:before {
+ content: "\f0b2";
+}
+.wi-day-sleet-storm:before {
+ content: "\f068";
+}
+.wi-day-snow:before {
+ content: "\f00a";
+}
+.wi-day-snow-thunderstorm:before {
+ content: "\f06b";
+}
+.wi-day-snow-wind:before {
+ content: "\f065";
+}
+.wi-day-sprinkle:before {
+ content: "\f00b";
+}
+.wi-day-storm-showers:before {
+ content: "\f00e";
+}
+.wi-day-sunny-overcast:before {
+ content: "\f00c";
+}
+.wi-day-thunderstorm:before {
+ content: "\f010";
+}
+.wi-day-windy:before {
+ content: "\f085";
+}
+.wi-solar-eclipse:before {
+ content: "\f06e";
+}
+.wi-hot:before {
+ content: "\f072";
+}
+.wi-day-cloudy-high:before {
+ content: "\f07d";
+}
+.wi-day-light-wind:before {
+ content: "\f0c4";
+}
+.wi-night-clear:before {
+ content: "\f02e";
+}
+.wi-night-alt-cloudy:before {
+ content: "\f086";
+}
+.wi-night-alt-cloudy-gusts:before {
+ content: "\f022";
+}
+.wi-night-alt-cloudy-windy:before {
+ content: "\f023";
+}
+.wi-night-alt-hail:before {
+ content: "\f024";
+}
+.wi-night-alt-lightning:before {
+ content: "\f025";
+}
+.wi-night-alt-rain:before {
+ content: "\f028";
+}
+.wi-night-alt-rain-mix:before {
+ content: "\f026";
+}
+.wi-night-alt-rain-wind:before {
+ content: "\f027";
+}
+.wi-night-alt-showers:before {
+ content: "\f029";
+}
+.wi-night-alt-sleet:before {
+ content: "\f0b4";
+}
+.wi-night-alt-sleet-storm:before {
+ content: "\f06a";
+}
+.wi-night-alt-snow:before {
+ content: "\f02a";
+}
+.wi-night-alt-snow-thunderstorm:before {
+ content: "\f06d";
+}
+.wi-night-alt-snow-wind:before {
+ content: "\f067";
+}
+.wi-night-alt-sprinkle:before {
+ content: "\f02b";
+}
+.wi-night-alt-storm-showers:before {
+ content: "\f02c";
+}
+.wi-night-alt-thunderstorm:before {
+ content: "\f02d";
+}
+.wi-night-cloudy:before {
+ content: "\f031";
+}
+.wi-night-cloudy-gusts:before {
+ content: "\f02f";
+}
+.wi-night-cloudy-windy:before {
+ content: "\f030";
+}
+.wi-night-fog:before {
+ content: "\f04a";
+}
+.wi-night-hail:before {
+ content: "\f032";
+}
+.wi-night-lightning:before {
+ content: "\f033";
+}
+.wi-night-partly-cloudy:before {
+ content: "\f083";
+}
+.wi-night-rain:before {
+ content: "\f036";
+}
+.wi-night-rain-mix:before {
+ content: "\f034";
+}
+.wi-night-rain-wind:before {
+ content: "\f035";
+}
+.wi-night-showers:before {
+ content: "\f037";
+}
+.wi-night-sleet:before {
+ content: "\f0b3";
+}
+.wi-night-sleet-storm:before {
+ content: "\f069";
+}
+.wi-night-snow:before {
+ content: "\f038";
+}
+.wi-night-snow-thunderstorm:before {
+ content: "\f06c";
+}
+.wi-night-snow-wind:before {
+ content: "\f066";
+}
+.wi-night-sprinkle:before {
+ content: "\f039";
+}
+.wi-night-storm-showers:before {
+ content: "\f03a";
+}
+.wi-night-thunderstorm:before {
+ content: "\f03b";
+}
+.wi-lunar-eclipse:before {
+ content: "\f070";
+}
+.wi-stars:before {
+ content: "\f077";
+}
+.wi-storm-showers:before {
+ content: "\f01d";
+}
+.wi-thunderstorm:before {
+ content: "\f01e";
+}
+.wi-night-alt-cloudy-high:before {
+ content: "\f07e";
+}
+.wi-night-cloudy-high:before {
+ content: "\f080";
+}
+.wi-night-alt-partly-cloudy:before {
+ content: "\f081";
+}
+.wi-cloud:before {
+ content: "\f041";
+}
+.wi-cloudy:before {
+ content: "\f013";
+}
+.wi-cloudy-gusts:before {
+ content: "\f011";
+}
+.wi-cloudy-windy:before {
+ content: "\f012";
+}
+.wi-fog:before {
+ content: "\f014";
+}
+.wi-hail:before {
+ content: "\f015";
+}
+.wi-rain:before {
+ content: "\f019";
+}
+.wi-rain-mix:before {
+ content: "\f017";
+}
+.wi-rain-wind:before {
+ content: "\f018";
+}
+.wi-showers:before {
+ content: "\f01a";
+}
+.wi-sleet:before {
+ content: "\f0b5";
+}
+.wi-snow:before {
+ content: "\f01b";
+}
+.wi-sprinkle:before {
+ content: "\f01c";
+}
+.wi-storm-showers:before {
+ content: "\f01d";
+}
+.wi-thunderstorm:before {
+ content: "\f01e";
+}
+.wi-snow-wind:before {
+ content: "\f064";
+}
+.wi-snow:before {
+ content: "\f01b";
+}
+.wi-smog:before {
+ content: "\f074";
+}
+.wi-smoke:before {
+ content: "\f062";
+}
+.wi-lightning:before {
+ content: "\f016";
+}
+.wi-raindrops:before {
+ content: "\f04e";
+}
+.wi-raindrop:before {
+ content: "\f078";
+}
+.wi-dust:before {
+ content: "\f063";
+}
+.wi-snowflake-cold:before {
+ content: "\f076";
+}
+.wi-windy:before {
+ content: "\f021";
+}
+.wi-strong-wind:before {
+ content: "\f050";
+}
+.wi-sandstorm:before {
+ content: "\f082";
+}
+.wi-earthquake:before {
+ content: "\f0c6";
+}
+.wi-fire:before {
+ content: "\f0c7";
+}
+.wi-flood:before {
+ content: "\f07c";
+}
+.wi-meteor:before {
+ content: "\f071";
+}
+.wi-tsunami:before {
+ content: "\f0c5";
+}
+.wi-volcano:before {
+ content: "\f0c8";
+}
+.wi-hurricane:before {
+ content: "\f073";
+}
+.wi-tornado:before {
+ content: "\f056";
+}
+.wi-small-craft-advisory:before {
+ content: "\f0cc";
+}
+.wi-gale-warning:before {
+ content: "\f0cd";
+}
+.wi-storm-warning:before {
+ content: "\f0ce";
+}
+.wi-hurricane-warning:before {
+ content: "\f0cf";
+}
+.wi-wind-direction:before {
+ content: "\f0b1";
+}
+.wi-alien:before {
+ content: "\f075";
+}
+.wi-celsius:before {
+ content: "\f03c";
+}
+.wi-fahrenheit:before {
+ content: "\f045";
+}
+.wi-degrees:before {
+ content: "\f042";
+}
+.wi-thermometer:before {
+ content: "\f055";
+}
+.wi-thermometer-exterior:before {
+ content: "\f053";
+}
+.wi-thermometer-internal:before {
+ content: "\f054";
+}
+.wi-cloud-down:before {
+ content: "\f03d";
+}
+.wi-cloud-up:before {
+ content: "\f040";
+}
+.wi-cloud-refresh:before {
+ content: "\f03e";
+}
+.wi-horizon:before {
+ content: "\f047";
+}
+.wi-horizon-alt:before {
+ content: "\f046";
+}
+.wi-sunrise:before {
+ content: "\f051";
+}
+.wi-sunset:before {
+ content: "\f052";
+}
+.wi-moonrise:before {
+ content: "\f0c9";
+}
+.wi-moonset:before {
+ content: "\f0ca";
+}
+.wi-refresh:before {
+ content: "\f04c";
+}
+.wi-refresh-alt:before {
+ content: "\f04b";
+}
+.wi-umbrella:before {
+ content: "\f084";
+}
+.wi-barometer:before {
+ content: "\f079";
+}
+.wi-humidity:before {
+ content: "\f07a";
+}
+.wi-na:before {
+ content: "\f07b";
+}
+.wi-train:before {
+ content: "\f0cb";
+}
+.wi-moon-new:before {
+ content: "\f095";
+}
+.wi-moon-waxing-crescent-1:before {
+ content: "\f096";
+}
+.wi-moon-waxing-crescent-2:before {
+ content: "\f097";
+}
+.wi-moon-waxing-crescent-3:before {
+ content: "\f098";
+}
+.wi-moon-waxing-crescent-4:before {
+ content: "\f099";
+}
+.wi-moon-waxing-crescent-5:before {
+ content: "\f09a";
+}
+.wi-moon-waxing-crescent-6:before {
+ content: "\f09b";
+}
+.wi-moon-first-quarter:before {
+ content: "\f09c";
+}
+.wi-moon-waxing-gibbous-1:before {
+ content: "\f09d";
+}
+.wi-moon-waxing-gibbous-2:before {
+ content: "\f09e";
+}
+.wi-moon-waxing-gibbous-3:before {
+ content: "\f09f";
+}
+.wi-moon-waxing-gibbous-4:before {
+ content: "\f0a0";
+}
+.wi-moon-waxing-gibbous-5:before {
+ content: "\f0a1";
+}
+.wi-moon-waxing-gibbous-6:before {
+ content: "\f0a2";
+}
+.wi-moon-full:before {
+ content: "\f0a3";
+}
+.wi-moon-waning-gibbous-1:before {
+ content: "\f0a4";
+}
+.wi-moon-waning-gibbous-2:before {
+ content: "\f0a5";
+}
+.wi-moon-waning-gibbous-3:before {
+ content: "\f0a6";
+}
+.wi-moon-waning-gibbous-4:before {
+ content: "\f0a7";
+}
+.wi-moon-waning-gibbous-5:before {
+ content: "\f0a8";
+}
+.wi-moon-waning-gibbous-6:before {
+ content: "\f0a9";
+}
+.wi-moon-third-quarter:before {
+ content: "\f0aa";
+}
+.wi-moon-waning-crescent-1:before {
+ content: "\f0ab";
+}
+.wi-moon-waning-crescent-2:before {
+ content: "\f0ac";
+}
+.wi-moon-waning-crescent-3:before {
+ content: "\f0ad";
+}
+.wi-moon-waning-crescent-4:before {
+ content: "\f0ae";
+}
+.wi-moon-waning-crescent-5:before {
+ content: "\f0af";
+}
+.wi-moon-waning-crescent-6:before {
+ content: "\f0b0";
+}
+.wi-moon-alt-new:before {
+ content: "\f0eb";
+}
+.wi-moon-alt-waxing-crescent-1:before {
+ content: "\f0d0";
+}
+.wi-moon-alt-waxing-crescent-2:before {
+ content: "\f0d1";
+}
+.wi-moon-alt-waxing-crescent-3:before {
+ content: "\f0d2";
+}
+.wi-moon-alt-waxing-crescent-4:before {
+ content: "\f0d3";
+}
+.wi-moon-alt-waxing-crescent-5:before {
+ content: "\f0d4";
+}
+.wi-moon-alt-waxing-crescent-6:before {
+ content: "\f0d5";
+}
+.wi-moon-alt-first-quarter:before {
+ content: "\f0d6";
+}
+.wi-moon-alt-waxing-gibbous-1:before {
+ content: "\f0d7";
+}
+.wi-moon-alt-waxing-gibbous-2:before {
+ content: "\f0d8";
+}
+.wi-moon-alt-waxing-gibbous-3:before {
+ content: "\f0d9";
+}
+.wi-moon-alt-waxing-gibbous-4:before {
+ content: "\f0da";
+}
+.wi-moon-alt-waxing-gibbous-5:before {
+ content: "\f0db";
+}
+.wi-moon-alt-waxing-gibbous-6:before {
+ content: "\f0dc";
+}
+.wi-moon-alt-full:before {
+ content: "\f0dd";
+}
+.wi-moon-alt-waning-gibbous-1:before {
+ content: "\f0de";
+}
+.wi-moon-alt-waning-gibbous-2:before {
+ content: "\f0df";
+}
+.wi-moon-alt-waning-gibbous-3:before {
+ content: "\f0e0";
+}
+.wi-moon-alt-waning-gibbous-4:before {
+ content: "\f0e1";
+}
+.wi-moon-alt-waning-gibbous-5:before {
+ content: "\f0e2";
+}
+.wi-moon-alt-waning-gibbous-6:before {
+ content: "\f0e3";
+}
+.wi-moon-alt-third-quarter:before {
+ content: "\f0e4";
+}
+.wi-moon-alt-waning-crescent-1:before {
+ content: "\f0e5";
+}
+.wi-moon-alt-waning-crescent-2:before {
+ content: "\f0e6";
+}
+.wi-moon-alt-waning-crescent-3:before {
+ content: "\f0e7";
+}
+.wi-moon-alt-waning-crescent-4:before {
+ content: "\f0e8";
+}
+.wi-moon-alt-waning-crescent-5:before {
+ content: "\f0e9";
+}
+.wi-moon-alt-waning-crescent-6:before {
+ content: "\f0ea";
+}
+.wi-moon-0:before {
+ content: "\f095";
+}
+.wi-moon-1:before {
+ content: "\f096";
+}
+.wi-moon-2:before {
+ content: "\f097";
+}
+.wi-moon-3:before {
+ content: "\f098";
+}
+.wi-moon-4:before {
+ content: "\f099";
+}
+.wi-moon-5:before {
+ content: "\f09a";
+}
+.wi-moon-6:before {
+ content: "\f09b";
+}
+.wi-moon-7:before {
+ content: "\f09c";
+}
+.wi-moon-8:before {
+ content: "\f09d";
+}
+.wi-moon-9:before {
+ content: "\f09e";
+}
+.wi-moon-10:before {
+ content: "\f09f";
+}
+.wi-moon-11:before {
+ content: "\f0a0";
+}
+.wi-moon-12:before {
+ content: "\f0a1";
+}
+.wi-moon-13:before {
+ content: "\f0a2";
+}
+.wi-moon-14:before {
+ content: "\f0a3";
+}
+.wi-moon-15:before {
+ content: "\f0a4";
+}
+.wi-moon-16:before {
+ content: "\f0a5";
+}
+.wi-moon-17:before {
+ content: "\f0a6";
+}
+.wi-moon-18:before {
+ content: "\f0a7";
+}
+.wi-moon-19:before {
+ content: "\f0a8";
+}
+.wi-moon-20:before {
+ content: "\f0a9";
+}
+.wi-moon-21:before {
+ content: "\f0aa";
+}
+.wi-moon-22:before {
+ content: "\f0ab";
+}
+.wi-moon-23:before {
+ content: "\f0ac";
+}
+.wi-moon-24:before {
+ content: "\f0ad";
+}
+.wi-moon-25:before {
+ content: "\f0ae";
+}
+.wi-moon-26:before {
+ content: "\f0af";
+}
+.wi-moon-27:before {
+ content: "\f0b0";
+}
+.wi-time-1:before {
+ content: "\f08a";
+}
+.wi-time-2:before {
+ content: "\f08b";
+}
+.wi-time-3:before {
+ content: "\f08c";
+}
+.wi-time-4:before {
+ content: "\f08d";
+}
+.wi-time-5:before {
+ content: "\f08e";
+}
+.wi-time-6:before {
+ content: "\f08f";
+}
+.wi-time-7:before {
+ content: "\f090";
+}
+.wi-time-8:before {
+ content: "\f091";
+}
+.wi-time-9:before {
+ content: "\f092";
+}
+.wi-time-10:before {
+ content: "\f093";
+}
+.wi-time-11:before {
+ content: "\f094";
+}
+.wi-time-12:before {
+ content: "\f089";
+}
+.wi-direction-up:before {
+ content: "\f058";
+}
+.wi-direction-up-right:before {
+ content: "\f057";
+}
+.wi-direction-right:before {
+ content: "\f04d";
+}
+.wi-direction-down-right:before {
+ content: "\f088";
+}
+.wi-direction-down:before {
+ content: "\f044";
+}
+.wi-direction-down-left:before {
+ content: "\f043";
+}
+.wi-direction-left:before {
+ content: "\f048";
+}
+.wi-direction-up-left:before {
+ content: "\f087";
+}
+.wi-wind-beaufort-0:before {
+ content: "\f0b7";
+}
+.wi-wind-beaufort-1:before {
+ content: "\f0b8";
+}
+.wi-wind-beaufort-2:before {
+ content: "\f0b9";
+}
+.wi-wind-beaufort-3:before {
+ content: "\f0ba";
+}
+.wi-wind-beaufort-4:before {
+ content: "\f0bb";
+}
+.wi-wind-beaufort-5:before {
+ content: "\f0bc";
+}
+.wi-wind-beaufort-6:before {
+ content: "\f0bd";
+}
+.wi-wind-beaufort-7:before {
+ content: "\f0be";
+}
+.wi-wind-beaufort-8:before {
+ content: "\f0bf";
+}
+.wi-wind-beaufort-9:before {
+ content: "\f0c0";
+}
+.wi-wind-beaufort-10:before {
+ content: "\f0c1";
+}
+.wi-wind-beaufort-11:before {
+ content: "\f0c2";
+}
+.wi-wind-beaufort-12:before {
+ content: "\f0c3";
+}
+.wi-yahoo-0:before {
+ content: "\f056";
+}
+.wi-yahoo-1:before {
+ content: "\f00e";
+}
+.wi-yahoo-2:before {
+ content: "\f073";
+}
+.wi-yahoo-3:before {
+ content: "\f01e";
+}
+.wi-yahoo-4:before {
+ content: "\f01e";
+}
+.wi-yahoo-5:before {
+ content: "\f017";
+}
+.wi-yahoo-6:before {
+ content: "\f017";
+}
+.wi-yahoo-7:before {
+ content: "\f017";
+}
+.wi-yahoo-8:before {
+ content: "\f015";
+}
+.wi-yahoo-9:before {
+ content: "\f01a";
+}
+.wi-yahoo-10:before {
+ content: "\f015";
+}
+.wi-yahoo-11:before {
+ content: "\f01a";
+}
+.wi-yahoo-12:before {
+ content: "\f01a";
+}
+.wi-yahoo-13:before {
+ content: "\f01b";
+}
+.wi-yahoo-14:before {
+ content: "\f00a";
+}
+.wi-yahoo-15:before {
+ content: "\f064";
+}
+.wi-yahoo-16:before {
+ content: "\f01b";
+}
+.wi-yahoo-17:before {
+ content: "\f015";
+}
+.wi-yahoo-18:before {
+ content: "\f017";
+}
+.wi-yahoo-19:before {
+ content: "\f063";
+}
+.wi-yahoo-20:before {
+ content: "\f014";
+}
+.wi-yahoo-21:before {
+ content: "\f021";
+}
+.wi-yahoo-22:before {
+ content: "\f062";
+}
+.wi-yahoo-23:before {
+ content: "\f050";
+}
+.wi-yahoo-24:before {
+ content: "\f050";
+}
+.wi-yahoo-25:before {
+ content: "\f076";
+}
+.wi-yahoo-26:before {
+ content: "\f013";
+}
+.wi-yahoo-27:before {
+ content: "\f031";
+}
+.wi-yahoo-28:before {
+ content: "\f002";
+}
+.wi-yahoo-29:before {
+ content: "\f031";
+}
+.wi-yahoo-30:before {
+ content: "\f002";
+}
+.wi-yahoo-31:before {
+ content: "\f02e";
+}
+.wi-yahoo-32:before {
+ content: "\f00d";
+}
+.wi-yahoo-33:before {
+ content: "\f083";
+}
+.wi-yahoo-34:before {
+ content: "\f00c";
+}
+.wi-yahoo-35:before {
+ content: "\f017";
+}
+.wi-yahoo-36:before {
+ content: "\f072";
+}
+.wi-yahoo-37:before {
+ content: "\f00e";
+}
+.wi-yahoo-38:before {
+ content: "\f00e";
+}
+.wi-yahoo-39:before {
+ content: "\f00e";
+}
+.wi-yahoo-40:before {
+ content: "\f01a";
+}
+.wi-yahoo-41:before {
+ content: "\f064";
+}
+.wi-yahoo-42:before {
+ content: "\f01b";
+}
+.wi-yahoo-43:before {
+ content: "\f064";
+}
+.wi-yahoo-44:before {
+ content: "\f00c";
+}
+.wi-yahoo-45:before {
+ content: "\f00e";
+}
+.wi-yahoo-46:before {
+ content: "\f01b";
+}
+.wi-yahoo-47:before {
+ content: "\f00e";
+}
+.wi-yahoo-3200:before {
+ content: "\f077";
+}
+.wi-forecast-io-clear-day:before {
+ content: "\f00d";
+}
+.wi-forecast-io-clear-night:before {
+ content: "\f02e";
+}
+.wi-forecast-io-rain:before {
+ content: "\f019";
+}
+.wi-forecast-io-snow:before {
+ content: "\f01b";
+}
+.wi-forecast-io-sleet:before {
+ content: "\f0b5";
+}
+.wi-forecast-io-wind:before {
+ content: "\f050";
+}
+.wi-forecast-io-fog:before {
+ content: "\f014";
+}
+.wi-forecast-io-cloudy:before {
+ content: "\f013";
+}
+.wi-forecast-io-partly-cloudy-day:before {
+ content: "\f002";
+}
+.wi-forecast-io-partly-cloudy-night:before {
+ content: "\f031";
+}
+.wi-forecast-io-hail:before {
+ content: "\f015";
+}
+.wi-forecast-io-thunderstorm:before {
+ content: "\f01e";
+}
+.wi-forecast-io-tornado:before {
+ content: "\f056";
+}
+.wi-wmo4680-0:before,
+.wi-wmo4680-00:before {
+ content: "\f055";
+}
+.wi-wmo4680-1:before,
+.wi-wmo4680-01:before {
+ content: "\f013";
+}
+.wi-wmo4680-2:before,
+.wi-wmo4680-02:before {
+ content: "\f055";
+}
+.wi-wmo4680-3:before,
+.wi-wmo4680-03:before {
+ content: "\f013";
+}
+.wi-wmo4680-4:before,
+.wi-wmo4680-04:before {
+ content: "\f014";
+}
+.wi-wmo4680-5:before,
+.wi-wmo4680-05:before {
+ content: "\f014";
+}
+.wi-wmo4680-10:before {
+ content: "\f014";
+}
+.wi-wmo4680-11:before {
+ content: "\f014";
+}
+.wi-wmo4680-12:before {
+ content: "\f016";
+}
+.wi-wmo4680-18:before {
+ content: "\f050";
+}
+.wi-wmo4680-20:before {
+ content: "\f014";
+}
+.wi-wmo4680-21:before {
+ content: "\f017";
+}
+.wi-wmo4680-22:before {
+ content: "\f017";
+}
+.wi-wmo4680-23:before {
+ content: "\f019";
+}
+.wi-wmo4680-24:before {
+ content: "\f01b";
+}
+.wi-wmo4680-25:before {
+ content: "\f015";
+}
+.wi-wmo4680-26:before {
+ content: "\f01e";
+}
+.wi-wmo4680-27:before {
+ content: "\f063";
+}
+.wi-wmo4680-28:before {
+ content: "\f063";
+}
+.wi-wmo4680-29:before {
+ content: "\f063";
+}
+.wi-wmo4680-30:before {
+ content: "\f014";
+}
+.wi-wmo4680-31:before {
+ content: "\f014";
+}
+.wi-wmo4680-32:before {
+ content: "\f014";
+}
+.wi-wmo4680-33:before {
+ content: "\f014";
+}
+.wi-wmo4680-34:before {
+ content: "\f014";
+}
+.wi-wmo4680-35:before {
+ content: "\f014";
+}
+.wi-wmo4680-40:before {
+ content: "\f017";
+}
+.wi-wmo4680-41:before {
+ content: "\f01c";
+}
+.wi-wmo4680-42:before {
+ content: "\f019";
+}
+.wi-wmo4680-43:before {
+ content: "\f01c";
+}
+.wi-wmo4680-44:before {
+ content: "\f019";
+}
+.wi-wmo4680-45:before {
+ content: "\f015";
+}
+.wi-wmo4680-46:before {
+ content: "\f015";
+}
+.wi-wmo4680-47:before {
+ content: "\f01b";
+}
+.wi-wmo4680-48:before {
+ content: "\f01b";
+}
+.wi-wmo4680-50:before {
+ content: "\f01c";
+}
+.wi-wmo4680-51:before {
+ content: "\f01c";
+}
+.wi-wmo4680-52:before {
+ content: "\f019";
+}
+.wi-wmo4680-53:before {
+ content: "\f019";
+}
+.wi-wmo4680-54:before {
+ content: "\f076";
+}
+.wi-wmo4680-55:before {
+ content: "\f076";
+}
+.wi-wmo4680-56:before {
+ content: "\f076";
+}
+.wi-wmo4680-57:before {
+ content: "\f01c";
+}
+.wi-wmo4680-58:before {
+ content: "\f019";
+}
+.wi-wmo4680-60:before {
+ content: "\f01c";
+}
+.wi-wmo4680-61:before {
+ content: "\f01c";
+}
+.wi-wmo4680-62:before {
+ content: "\f019";
+}
+.wi-wmo4680-63:before {
+ content: "\f019";
+}
+.wi-wmo4680-64:before {
+ content: "\f015";
+}
+.wi-wmo4680-65:before {
+ content: "\f015";
+}
+.wi-wmo4680-66:before {
+ content: "\f015";
+}
+.wi-wmo4680-67:before {
+ content: "\f017";
+}
+.wi-wmo4680-68:before {
+ content: "\f017";
+}
+.wi-wmo4680-70:before {
+ content: "\f01b";
+}
+.wi-wmo4680-71:before {
+ content: "\f01b";
+}
+.wi-wmo4680-72:before {
+ content: "\f01b";
+}
+.wi-wmo4680-73:before {
+ content: "\f01b";
+}
+.wi-wmo4680-74:before {
+ content: "\f076";
+}
+.wi-wmo4680-75:before {
+ content: "\f076";
+}
+.wi-wmo4680-76:before {
+ content: "\f076";
+}
+.wi-wmo4680-77:before {
+ content: "\f01b";
+}
+.wi-wmo4680-78:before {
+ content: "\f076";
+}
+.wi-wmo4680-80:before {
+ content: "\f019";
+}
+.wi-wmo4680-81:before {
+ content: "\f01c";
+}
+.wi-wmo4680-82:before {
+ content: "\f019";
+}
+.wi-wmo4680-83:before {
+ content: "\f019";
+}
+.wi-wmo4680-84:before {
+ content: "\f01d";
+}
+.wi-wmo4680-85:before {
+ content: "\f017";
+}
+.wi-wmo4680-86:before {
+ content: "\f017";
+}
+.wi-wmo4680-87:before {
+ content: "\f017";
+}
+.wi-wmo4680-89:before {
+ content: "\f015";
+}
+.wi-wmo4680-90:before {
+ content: "\f016";
+}
+.wi-wmo4680-91:before {
+ content: "\f01d";
+}
+.wi-wmo4680-92:before {
+ content: "\f01e";
+}
+.wi-wmo4680-93:before {
+ content: "\f01e";
+}
+.wi-wmo4680-94:before {
+ content: "\f016";
+}
+.wi-wmo4680-95:before {
+ content: "\f01e";
+}
+.wi-wmo4680-96:before {
+ content: "\f01e";
+}
+.wi-wmo4680-99:before {
+ content: "\f056";
+}
+.wi-owm-200:before {
+ content: "\f01e";
+}
+.wi-owm-201:before {
+ content: "\f01e";
+}
+.wi-owm-202:before {
+ content: "\f01e";
+}
+.wi-owm-210:before {
+ content: "\f016";
+}
+.wi-owm-211:before {
+ content: "\f016";
+}
+.wi-owm-212:before {
+ content: "\f016";
+}
+.wi-owm-221:before {
+ content: "\f016";
+}
+.wi-owm-230:before {
+ content: "\f01e";
+}
+.wi-owm-231:before {
+ content: "\f01e";
+}
+.wi-owm-232:before {
+ content: "\f01e";
+}
+.wi-owm-300:before {
+ content: "\f01c";
+}
+.wi-owm-301:before {
+ content: "\f01c";
+}
+.wi-owm-302:before {
+ content: "\f019";
+}
+.wi-owm-310:before {
+ content: "\f017";
+}
+.wi-owm-311:before {
+ content: "\f019";
+}
+.wi-owm-312:before {
+ content: "\f019";
+}
+.wi-owm-313:before {
+ content: "\f01a";
+}
+.wi-owm-314:before {
+ content: "\f019";
+}
+.wi-owm-321:before {
+ content: "\f01c";
+}
+.wi-owm-500:before {
+ content: "\f01c";
+}
+.wi-owm-501:before {
+ content: "\f019";
+}
+.wi-owm-502:before {
+ content: "\f019";
+}
+.wi-owm-503:before {
+ content: "\f019";
+}
+.wi-owm-504:before {
+ content: "\f019";
+}
+.wi-owm-511:before {
+ content: "\f017";
+}
+.wi-owm-520:before {
+ content: "\f01a";
+}
+.wi-owm-521:before {
+ content: "\f01a";
+}
+.wi-owm-522:before {
+ content: "\f01a";
+}
+.wi-owm-531:before {
+ content: "\f01d";
+}
+.wi-owm-600:before {
+ content: "\f01b";
+}
+.wi-owm-601:before {
+ content: "\f01b";
+}
+.wi-owm-602:before {
+ content: "\f0b5";
+}
+.wi-owm-611:before {
+ content: "\f017";
+}
+.wi-owm-612:before {
+ content: "\f017";
+}
+.wi-owm-615:before {
+ content: "\f017";
+}
+.wi-owm-616:before {
+ content: "\f017";
+}
+.wi-owm-620:before {
+ content: "\f017";
+}
+.wi-owm-621:before {
+ content: "\f01b";
+}
+.wi-owm-622:before {
+ content: "\f01b";
+}
+.wi-owm-701:before {
+ content: "\f01a";
+}
+.wi-owm-711:before {
+ content: "\f062";
+}
+.wi-owm-721:before {
+ content: "\f0b6";
+}
+.wi-owm-731:before {
+ content: "\f063";
+}
+.wi-owm-741:before {
+ content: "\f014";
+}
+.wi-owm-761:before {
+ content: "\f063";
+}
+.wi-owm-762:before {
+ content: "\f063";
+}
+.wi-owm-771:before {
+ content: "\f011";
+}
+.wi-owm-781:before {
+ content: "\f056";
+}
+.wi-owm-800:before {
+ content: "\f00d";
+}
+.wi-owm-801:before {
+ content: "\f011";
+}
+.wi-owm-802:before {
+ content: "\f011";
+}
+.wi-owm-803:before {
+ content: "\f012";
+}
+.wi-owm-804:before {
+ content: "\f013";
+}
+.wi-owm-900:before {
+ content: "\f056";
+}
+.wi-owm-901:before {
+ content: "\f01d";
+}
+.wi-owm-902:before {
+ content: "\f073";
+}
+.wi-owm-903:before {
+ content: "\f076";
+}
+.wi-owm-904:before {
+ content: "\f072";
+}
+.wi-owm-905:before {
+ content: "\f021";
+}
+.wi-owm-906:before {
+ content: "\f015";
+}
+.wi-owm-957:before {
+ content: "\f050";
+}
+.wi-owm-day-200:before {
+ content: "\f010";
+}
+.wi-owm-day-201:before {
+ content: "\f010";
+}
+.wi-owm-day-202:before {
+ content: "\f010";
+}
+.wi-owm-day-210:before {
+ content: "\f005";
+}
+.wi-owm-day-211:before {
+ content: "\f005";
+}
+.wi-owm-day-212:before {
+ content: "\f005";
+}
+.wi-owm-day-221:before {
+ content: "\f005";
+}
+.wi-owm-day-230:before {
+ content: "\f010";
+}
+.wi-owm-day-231:before {
+ content: "\f010";
+}
+.wi-owm-day-232:before {
+ content: "\f010";
+}
+.wi-owm-day-300:before {
+ content: "\f00b";
+}
+.wi-owm-day-301:before {
+ content: "\f00b";
+}
+.wi-owm-day-302:before {
+ content: "\f008";
+}
+.wi-owm-day-310:before {
+ content: "\f008";
+}
+.wi-owm-day-311:before {
+ content: "\f008";
+}
+.wi-owm-day-312:before {
+ content: "\f008";
+}
+.wi-owm-day-313:before {
+ content: "\f008";
+}
+.wi-owm-day-314:before {
+ content: "\f008";
+}
+.wi-owm-day-321:before {
+ content: "\f00b";
+}
+.wi-owm-day-500:before {
+ content: "\f00b";
+}
+.wi-owm-day-501:before {
+ content: "\f008";
+}
+.wi-owm-day-502:before {
+ content: "\f008";
+}
+.wi-owm-day-503:before {
+ content: "\f008";
+}
+.wi-owm-day-504:before {
+ content: "\f008";
+}
+.wi-owm-day-511:before {
+ content: "\f006";
+}
+.wi-owm-day-520:before {
+ content: "\f009";
+}
+.wi-owm-day-521:before {
+ content: "\f009";
+}
+.wi-owm-day-522:before {
+ content: "\f009";
+}
+.wi-owm-day-531:before {
+ content: "\f00e";
+}
+.wi-owm-day-600:before {
+ content: "\f00a";
+}
+.wi-owm-day-601:before {
+ content: "\f0b2";
+}
+.wi-owm-day-602:before {
+ content: "\f00a";
+}
+.wi-owm-day-611:before {
+ content: "\f006";
+}
+.wi-owm-day-612:before {
+ content: "\f006";
+}
+.wi-owm-day-615:before {
+ content: "\f006";
+}
+.wi-owm-day-616:before {
+ content: "\f006";
+}
+.wi-owm-day-620:before {
+ content: "\f006";
+}
+.wi-owm-day-621:before {
+ content: "\f00a";
+}
+.wi-owm-day-622:before {
+ content: "\f00a";
+}
+.wi-owm-day-701:before {
+ content: "\f009";
+}
+.wi-owm-day-711:before {
+ content: "\f062";
+}
+.wi-owm-day-721:before {
+ content: "\f0b6";
+}
+.wi-owm-day-731:before {
+ content: "\f063";
+}
+.wi-owm-day-741:before {
+ content: "\f003";
+}
+.wi-owm-day-761:before {
+ content: "\f063";
+}
+.wi-owm-day-762:before {
+ content: "\f063";
+}
+.wi-owm-day-781:before {
+ content: "\f056";
+}
+.wi-owm-day-800:before {
+ content: "\f00d";
+}
+.wi-owm-day-801:before {
+ content: "\f000";
+}
+.wi-owm-day-802:before {
+ content: "\f000";
+}
+.wi-owm-day-803:before {
+ content: "\f000";
+}
+.wi-owm-day-804:before {
+ content: "\f00c";
+}
+.wi-owm-day-900:before {
+ content: "\f056";
+}
+.wi-owm-day-902:before {
+ content: "\f073";
+}
+.wi-owm-day-903:before {
+ content: "\f076";
+}
+.wi-owm-day-904:before {
+ content: "\f072";
+}
+.wi-owm-day-906:before {
+ content: "\f004";
+}
+.wi-owm-day-957:before {
+ content: "\f050";
+}
+.wi-owm-night-200:before {
+ content: "\f02d";
+}
+.wi-owm-night-201:before {
+ content: "\f02d";
+}
+.wi-owm-night-202:before {
+ content: "\f02d";
+}
+.wi-owm-night-210:before {
+ content: "\f025";
+}
+.wi-owm-night-211:before {
+ content: "\f025";
+}
+.wi-owm-night-212:before {
+ content: "\f025";
+}
+.wi-owm-night-221:before {
+ content: "\f025";
+}
+.wi-owm-night-230:before {
+ content: "\f02d";
+}
+.wi-owm-night-231:before {
+ content: "\f02d";
+}
+.wi-owm-night-232:before {
+ content: "\f02d";
+}
+.wi-owm-night-300:before {
+ content: "\f02b";
+}
+.wi-owm-night-301:before {
+ content: "\f02b";
+}
+.wi-owm-night-302:before {
+ content: "\f028";
+}
+.wi-owm-night-310:before {
+ content: "\f028";
+}
+.wi-owm-night-311:before {
+ content: "\f028";
+}
+.wi-owm-night-312:before {
+ content: "\f028";
+}
+.wi-owm-night-313:before {
+ content: "\f028";
+}
+.wi-owm-night-314:before {
+ content: "\f028";
+}
+.wi-owm-night-321:before {
+ content: "\f02b";
+}
+.wi-owm-night-500:before {
+ content: "\f02b";
+}
+.wi-owm-night-501:before {
+ content: "\f028";
+}
+.wi-owm-night-502:before {
+ content: "\f028";
+}
+.wi-owm-night-503:before {
+ content: "\f028";
+}
+.wi-owm-night-504:before {
+ content: "\f028";
+}
+.wi-owm-night-511:before {
+ content: "\f026";
+}
+.wi-owm-night-520:before {
+ content: "\f029";
+}
+.wi-owm-night-521:before {
+ content: "\f029";
+}
+.wi-owm-night-522:before {
+ content: "\f029";
+}
+.wi-owm-night-531:before {
+ content: "\f02c";
+}
+.wi-owm-night-600:before {
+ content: "\f02a";
+}
+.wi-owm-night-601:before {
+ content: "\f0b4";
+}
+.wi-owm-night-602:before {
+ content: "\f02a";
+}
+.wi-owm-night-611:before {
+ content: "\f026";
+}
+.wi-owm-night-612:before {
+ content: "\f026";
+}
+.wi-owm-night-615:before {
+ content: "\f026";
+}
+.wi-owm-night-616:before {
+ content: "\f026";
+}
+.wi-owm-night-620:before {
+ content: "\f026";
+}
+.wi-owm-night-621:before {
+ content: "\f02a";
+}
+.wi-owm-night-622:before {
+ content: "\f02a";
+}
+.wi-owm-night-701:before {
+ content: "\f029";
+}
+.wi-owm-night-711:before {
+ content: "\f062";
+}
+.wi-owm-night-721:before {
+ content: "\f0b6";
+}
+.wi-owm-night-731:before {
+ content: "\f063";
+}
+.wi-owm-night-741:before {
+ content: "\f04a";
+}
+.wi-owm-night-761:before {
+ content: "\f063";
+}
+.wi-owm-night-762:before {
+ content: "\f063";
+}
+.wi-owm-night-781:before {
+ content: "\f056";
+}
+.wi-owm-night-800:before {
+ content: "\f02e";
+}
+.wi-owm-night-801:before {
+ content: "\f022";
+}
+.wi-owm-night-802:before {
+ content: "\f022";
+}
+.wi-owm-night-803:before {
+ content: "\f022";
+}
+.wi-owm-night-804:before {
+ content: "\f086";
+}
+.wi-owm-night-900:before {
+ content: "\f056";
+}
+.wi-owm-night-902:before {
+ content: "\f073";
+}
+.wi-owm-night-903:before {
+ content: "\f076";
+}
+.wi-owm-night-904:before {
+ content: "\f072";
+}
+.wi-owm-night-906:before {
+ content: "\f024";
+}
+.wi-owm-night-957:before {
+ content: "\f050";
+}
+.wi-wu-chanceflurries:before {
+ content: "\f064";
+}
+.wi-wu-chancerain:before {
+ content: "\f019";
+}
+.wi-wu-chancesleat:before {
+ content: "\f0b5";
+}
+.wi-wu-chancesnow:before {
+ content: "\f01b";
+}
+.wi-wu-chancetstorms:before {
+ content: "\f01e";
+}
+.wi-wu-clear:before {
+ content: "\f00d";
+}
+.wi-wu-cloudy:before {
+ content: "\f002";
+}
+.wi-wu-flurries:before {
+ content: "\f064";
+}
+.wi-wu-hazy:before {
+ content: "\f0b6";
+}
+.wi-wu-mostlycloudy:before {
+ content: "\f002";
+}
+.wi-wu-mostlysunny:before {
+ content: "\f00d";
+}
+.wi-wu-partlycloudy:before {
+ content: "\f002";
+}
+.wi-wu-partlysunny:before {
+ content: "\f00d";
+}
+.wi-wu-rain:before {
+ content: "\f01a";
+}
+.wi-wu-sleat:before {
+ content: "\f0b5";
+}
+.wi-wu-snow:before {
+ content: "\f01b";
+}
+.wi-wu-sunny:before {
+ content: "\f00d";
+}
+.wi-wu-tstorms:before {
+ content: "\f01e";
+}
+.wi-wu-unknown:before {
+ content: "\f00d";
+}
diff --git a/app/fonts/Ubuntu_Condensed-normal-400.woff b/app/fonts/Ubuntu_Condensed-normal-400.woff
new file mode 100644
index 0000000..47864fe
Binary files /dev/null and b/app/fonts/Ubuntu_Condensed-normal-400.woff differ
diff --git a/app/fonts/WeatherIcons-Regular.otf b/app/fonts/WeatherIcons-Regular.otf
new file mode 100644
index 0000000..ed3d7dd
Binary files /dev/null and b/app/fonts/WeatherIcons-Regular.otf differ
diff --git a/app/fonts/weathericons-regular-webfont.eot b/app/fonts/weathericons-regular-webfont.eot
new file mode 100755
index 0000000..330b7ec
Binary files /dev/null and b/app/fonts/weathericons-regular-webfont.eot differ
diff --git a/app/fonts/weathericons-regular-webfont.svg b/app/fonts/weathericons-regular-webfont.svg
new file mode 100755
index 0000000..397d730
--- /dev/null
+++ b/app/fonts/weathericons-regular-webfont.svg
@@ -0,0 +1,257 @@
+
+
+
\ No newline at end of file
diff --git a/app/fonts/weathericons-regular-webfont.ttf b/app/fonts/weathericons-regular-webfont.ttf
new file mode 100755
index 0000000..948f0a5
Binary files /dev/null and b/app/fonts/weathericons-regular-webfont.ttf differ
diff --git a/app/fonts/weathericons-regular-webfont.woff b/app/fonts/weathericons-regular-webfont.woff
new file mode 100755
index 0000000..e0b2f94
Binary files /dev/null and b/app/fonts/weathericons-regular-webfont.woff differ
diff --git a/app/fonts/weathericons-regular-webfont.woff2 b/app/fonts/weathericons-regular-webfont.woff2
new file mode 100755
index 0000000..bb0c19d
Binary files /dev/null and b/app/fonts/weathericons-regular-webfont.woff2 differ
diff --git a/app/js/clock.js b/app/js/clock.js
index baea39b..3b892c6 100644
--- a/app/js/clock.js
+++ b/app/js/clock.js
@@ -7,7 +7,6 @@
var storedData;
var weatherCount = 0;
- var skycons = new Skycons({"color": "#dcecff"});
var refreshTimer = 0;
var viewTimer = 0;
var eventBus = {};
@@ -51,11 +50,11 @@
for (var t = 0; t < storedData.data.weather.data.daily.data.length; t++) {
var m = 'icon' + (t + 1).toString();
var d = '#d' + (t + 1).toString();
+ var w = '#w' + (t + 1).toString();
+ var ws = '';
var ts = parseInt(storedData.data.weather.data.daily.data[t].time) * 1000;
var n = Date.create(ts).format('{Dow}');
-
- skycons.remove(m);
- skycons.add(m, storedData.data.weather.data.daily.data[t].icon);
+ $(w).empty().html(ws);
$(d).empty().html(n);
}
@@ -131,7 +130,6 @@
}
- skycons.play();
updateDate();
clock();
// getData();
diff --git a/app/js/clockSocket.js b/app/js/clockSocket.js
new file mode 100644
index 0000000..c98c4eb
--- /dev/null
+++ b/app/js/clockSocket.js
@@ -0,0 +1,56 @@
+/**
+ *
+ * User: Martin Donnelly
+ * Date: 2016-09-09
+ * Time: 11:38
+ *
+ */
+/* global Backbone, _, WEBSOCKET */
+/* jshint browser: true , devel: true*/
+
+'use strict';
+
+var SOCKETMANAGER = (function() {
+
+ var SocketManager = Backbone.Model.extend({
+ deviceId: ['CENSIS-LoRa-1','CENSIS-LoRa-2','CENSIS-LoRa-3','CENSIS-LoRa-4','HIE-mobile-1----','HIE-mobile-2----','HIE-smart-campus-1','HIE-smart-campus-2','HIE-smart-campus-3','HIE-smart-campus-4','HIE-smart-campus-5','HIE-smart-campus-6','HIE-smart-campus-7','HIE-mDot-1'],
+
+ initialize: function() {
+ _.bindAll(this, 'turnOn', 'turnOff');
+ this.listeningID = null;
+ this.listening = false;
+ this.webSocket = new WEBSOCKET(this);
+
+ this.on('message', function(o) {
+ if (this.listening) {
+ this.checkItem(o);
+ }
+
+ });
+ },
+ turnOn: function() {
+ this.listening = true;
+ },
+ turnOff: function() {
+ this.listening = false;
+ },
+ listenFor: function(id) {
+ this.listeningID = this.deviceId.indexOf(id);
+ },
+ checkItem: function(item) {
+ if (item.hasOwnProperty('tick')) {
+ // Ticks are ignored
+ } else {
+ if (item.data.deviceid === this.listeningID) {
+ console.log('Updated', item.data);
+ this.set({data: item.data});
+ }
+ }
+
+ }
+ });
+
+ return SocketManager;
+}());
+
+
diff --git a/app/js/clockv2.js b/app/js/clockv2.js
new file mode 100644
index 0000000..dc3db8a
--- /dev/null
+++ b/app/js/clockv2.js
@@ -0,0 +1,23 @@
+/**
+ *
+ * User: Martin Donnelly
+ * Date: 2016-08-01
+ * Time: 16:33
+ *
+ */
+
+(function($) {
+
+ var skycons = new Skycons({"color": "#dcecff"});
+
+this.clock = new Clock({model: new ClockModel()});
+
+ navigator.geolocation.getCurrentPosition(function(position) {
+ var latitude = position.coords.latitude;
+ var longitude = position.coords.longitude;
+
+ self.weather = new Weather({model: new WeatherModel({lat: latitude, long: longitude})});
+ },
+ function(e) {console.error(e.code + ' / ' + e.message);});
+
+})(jQuery);
diff --git a/app/js/parts/clock.js b/app/js/parts/clock.js
new file mode 100644
index 0000000..9c3a8cb
--- /dev/null
+++ b/app/js/parts/clock.js
@@ -0,0 +1,117 @@
+'use strict';
+/**
+ *
+ * User: Martin Donnelly
+ * Date: 2016-07-27
+ * Time: 09:23
+ *
+ */
+
+var WeatherModel = Backbone.Model.extend({
+ initialize: function() {
+ this.set('url','https://api.forecast.io/forecast/0657dc0d81c037cbc89ca88e383b6bbf/' + this.get('lat').toString() + ',' + this.get('long').toString() + '?units=uk2&exclude=minutely,hourly,daily,alerts,flags');
+
+ console.log(this.get('url'));
+ this.update();
+ },
+ update: function() {
+ this.getWeather();
+ var now = new Date;
+ var mod = 1800000 - (now.getTime() % 1800000);
+ var weatherTrigger = function() {
+ this.update();
+ };
+
+ setTimeout(weatherTrigger.bind(this), mod + 10);
+ },
+ getWeather: function() {
+ var self = this;
+ $.ajax({
+ type: 'GET',
+ url: self.get('url'),
+ data: '',
+ dataType: 'jsonp',
+ timeout: 10000,
+ context: $('body'),
+ contentType: ('application/json'),
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS',
+ 'Access-Control-Allow-Headers': 'Content-Type'
+ },
+ success: function(data) {
+ var stored = {
+ temperature: data.currently.temperature,
+ icon: data.currently.icon
+ };
+ self.set('data',stored);
+ },
+ error: function(xhr, type) {
+ console.error('ajax error');
+ console.error(xhr);
+ console.error(type);
+ }
+ });
+ }
+});
+
+var ClockModel = Backbone.Model.extend({
+ initialize: function() {
+ this.set('now',new Date);
+ this.update();
+ },
+ update: function() {
+ var now = new Date;
+ var mod = 60000 - (now.getTime() % 60000);
+ this.set('now',now);
+
+ var clockFn = function() {
+ this.update();
+ };
+
+ setTimeout(clockFn.bind(this), mod + 10);
+ }
+});
+
+var Clock = Backbone.View.extend({
+ tagName: 'div',
+ initialize: function() {
+ _.bindAll(this, 'render');
+ this.model.bind('change', this.render);
+ this.$date = $('#date');
+ this.$time = $('#time');
+ this.render();
+ },
+ render: function() {
+ var now = this.model.get('now');
+ var curTime = now.format('{24hr}{mm}');
+ var curDate = now.format('{yyyy}-{MM}-{dd}');
+ if (this.prevTime !== curTime) {
+ this.$time.html(curTime);
+ this.prevTime = curTime;
+ }
+
+ if (this.prevDate !== curDate) {
+ this.$date.html(now.format(
+ '{Weekday}
{Month} {dd}
{yyyy}'));
+ this.prevDate = curDate;
+ }
+ }
+});
+
+var Weather = Backbone.View.extend({
+ tagName: 'div',
+ initialize: function() {
+ _.bindAll(this, 'render');
+ this.model.bind('change', this.render);
+ this.$weatherText = $('#weatherText');
+ },
+ render: function() {
+ console.log('Weather:Render');
+ var data = this.model.get('data');
+ this.$weatherText.html(parseInt(data.temperature) + '°c ');
+ skycons.remove('icon1');
+ skycons.add('icon1', data.icon);
+ }
+
+});
diff --git a/views/pages/clock.ejs b/views/pages/clock.ejs
index d4bac37..c25f1ad 100644
--- a/views/pages/clock.ejs
+++ b/views/pages/clock.ejs
@@ -5,14 +5,13 @@
-
-
+
+
-
@@ -37,14 +36,14 @@
- | - | - | - | - | - | - | + | + | + | + | + | + | + | + | |
@@ -60,7 +59,15 @@ + |