/** * Created by marti on 29/02/2016. */ (function() { var storedData; var weatherCount = 0; var refreshTimer = 0; var viewTimer = 0; var eventBus = {}; MicroEvent.mixin(eventBus); function getData() { $.ajax({ type: 'GET', url: '/today/data', data: '', dataType: 'json', 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) { console.log(data); storedData = data; // startWeather(); updateWeather(); }, error: function(xhr, type) { console.log("ajax error"); console.log(xhr); console.log(type); } }); } function updateWeather() { $('#wCtext').empty().html(storedData.data.weather.currently); $('#wLtext').empty().html(storedData.data.weather.later); $('#wTtext').empty().html(storedData.data.weather.today); // $('#wDaily').empty(); 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}'); $(w).empty().html(ws); $(d).empty().html(n); } $('#wLater').hide(); $('#wToday').hide(); $('#wDaily').hide(); } function switchWeather() { weatherCount++; weatherCount = weatherCount < 4 ? weatherCount : 0; $('#wCurrent').toggle(weatherCount == 0); $('#wLater').toggle(weatherCount == 1); $('#wToday').toggle(weatherCount == 2); $('#wDaily').toggle(weatherCount == 3); } // event bus eventBus.bind('switchWeather', function() { switchWeather(); }); // timers function refreshWeatherView() { eventBus.trigger('switchWeather'); var now = new Date(); var mod = 10000 - (now.getTime() % 10000); viewTimer = setTimeout(function() {refreshWeatherView();}, mod + 10); } function updateDate() { var now = new Date(); var n = Date.create(now).format('{Weekday}'); $('#day').html(n); n = Date.create(now).format('{Month} {d}'); $('#date').html(n); var mod = 60000 - (now.getTime() % 60000); setTimeout(function() {updateDate();}, mod + 1); } function updateClock() { var n = Date.create(new Date()).format('{HH}:{mm}:{ss}'); $('#clockDisplay').html(n); } function clock() { 'use strict'; updateClock(); var now = new Date(); //var mod = 60000 - (now.getTime() % 60000); var mod = 1000 - (now.getTime() % 1000); setTimeout(function() {clock();}, mod + 1); } function refresh() { getData(); var now = new Date(); var mod = 1800000 - (now.getTime() % 1800000); refreshTimer = setTimeout(function() {refresh();}, mod + 10); } updateDate(); clock(); // getData(); refresh(); refreshWeatherView(); // $('#misc').html($(window).width()); })();