diff options
author | Matthijs Kuiper <info@matthijskuiper.nl> | 2018-01-08 23:47:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-08 23:47:23 +0100 |
commit | e861eafbeae0560add7956530d76de6cc285be20 (patch) | |
tree | c32e746977fde711cecd716570989014bf2d3592 /html/includes/js/clocks.js | |
parent | 66b162b5f01c996fd8a5cd4e570e31f8483cdffa (diff) | |
parent | 730c20dd04b5753cb372a289923e39516d1f8b87 (diff) |
Merge pull request #5 from randommonk/develop4.3.0
Bumped version to 4.3. Added jpgraph stats developed by killerEye
Diffstat (limited to 'html/includes/js/clocks.js')
-rw-r--r-- | html/includes/js/clocks.js | 561 |
1 files changed, 561 insertions, 0 deletions
diff --git a/html/includes/js/clocks.js b/html/includes/js/clocks.js new file mode 100644 index 0000000..7f17b42 --- /dev/null +++ b/html/includes/js/clocks.js @@ -0,0 +1,561 @@ +//<![CDATA[ + +$(function () { + + /** + * Get the current time + */ + function getNow() { + var now = new Date(); + var gmt_offset = now.getTimezoneOffset( ) / 60; + var est = gmt_offset + 5; + + return { + hours: now.getHours() - est + now.getMinutes() / 60, + minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600, + seconds: now.getSeconds() * 12 / 60 + }; + } + + /** + * Pad numbers + */ + function pad(number, length) { + // Create an array of the remaining length + 1 and join it with 0\'s + return new Array((length || 2) + 1 - String(number).length).join(0) + number; + } + + var now = getNow(); + + // Create the chart + $(\'.column-right\').highcharts({ + + chart: { + type: \'gauge\', + plotBackgroundColor: null, + plotBackgroundImage: null, + plotBorderWidth: 0, + plotShadow: false, + height: 200 + }, + + credits: { + enabled: false + }, + + title: { + text: \'EST\' + }, + + pane: { + background: [{ + // default background + }, { + // reflex for supported browsers + backgroundColor: \'#1e1e1e\' ? { + radialGradient: { + cx: 0.5, + cy: -0.4, + r: 1.9 + }, + stops: [ + [0.5, \'rgba(81, 81, 81, 0.8)\'], + [0.5, \'rgba(59, 56, 59, 0.8)\'] + ] + } : null + }] + }, + + yAxis: { + + + labels: { + distance: -20, + + style: { + color: \'#848484\' + } + }, + min: 0, + max: 12, + lineWidth: 0, + showFirstLabel: false, + + minorTickInterval: \'auto\', + minorTickWidth: 1, + minorTickLength: 5, + minorTickPosition: \'inside\', + minorGridLineWidth: 0, + minorTickColor: \'#2e2e2e\', + + tickInterval: 1, + tickWidth: 2, + tickPosition: \'inside\', + tickLength: 10, + tickColor: \'#fff\', + title: { + text: \'\', + style: { + color: \'#fff\', + fontWeight: \'normal\', + fontSize: \'8px\', + lineHeight: \'10px\' + }, + y: 10 + } + }, + + tooltip: { + formatter: function () { + return this.series.chart.tooltipText; + } + }, + + series: [{ + data: [{ + id: \'hour\', + y: now.hours, + dial: { + radius: \'60%\', + baseWidth: 4, + baseLength: \'95%\', + rearLength: 0 + } + }, { + id: \'minute\', + y: now.minutes, + dial: { + baseLength: \'95%\', + rearLength: 0 + } + }, { + id: \'second\', + y: now.seconds, + dial: { + radius: \'100%\', + baseWidth: 1, + rearLength: \'20%\' + } + }], + animation: false, + dataLabels: { + enabled: false + } + }] + }, + + // Move + function (chart) { + setInterval(function () { + + now = getNow(); + + var hour = chart.get(\'hour\'), + minute = chart.get(\'minute\'), + second = chart.get(\'second\'), + // run animation unless we\'re wrapping around from 59 to 0 + animation = now.seconds === 0 ? + false : + { + easing: \'easeOutElastic\' + }; + + // Cache the tooltip text + chart.tooltipText = + pad(Math.floor(now.hours), 2) + \':\' + + pad(Math.floor(now.minutes * 5), 2) + \':\' + + pad(now.seconds * 5, 2); + + hour.update(now.hours, true, animation); + minute.update(now.minutes, true, animation); + second.update(now.seconds, true, animation); + + }, 1000); + + }); +}); + +// Extend jQuery with some easing (copied from jQuery UI) +$.extend($.easing, { + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + } +}); + +$(function () { + + /** + * Get the current time + */ + function getNow() { + var now = new Date(); + var gmt_offset = now.getTimezoneOffset( ) / 60; + var est = gmt_offset + 5; + var cet = gmt_offset - 1; + + return { + hours: now.getHours() - cet + now.getMinutes() / 60, + minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600, + seconds: now.getSeconds() * 12 / 60 + }; + } + + /** + * Pad numbers + */ + function pad(number, length) { + // Create an array of the remaining length + 1 and join it with 0\'s + return new Array((length || 2) + 1 - String(number).length).join(0) + number; + } + + var now = getNow(); + + // Create the chart + $(\'.column-center\').highcharts({ + + chart: { + type: \'gauge\', + plotBackgroundColor: null, + plotBackgroundImage: null, + plotBorderWidth: 0, + plotShadow: false, + height: 200 + }, + + credits: { + enabled: false + }, + + title: { + text: \'CET\' + }, + + pane: { + background: [{ + // default background + }, { + // reflex for supported browsers + backgroundColor: Highcharts.svg ? { + radialGradient: { + cx: 0.5, + cy: -0.4, + r: 1.9 + }, + stops: [ + [0.5, \'rgba(81, 81, 81, 0.8)\'], + [0.5, \'rgba(59, 56, 59, 0.8)\'] + ] + } : null + }] + }, + + yAxis: { + + + labels: { + distance: -20, + + style: { + color: \'#848484\' + } + }, + min: 0, + max: 12, + lineWidth: 0, + showFirstLabel: false, + + minorTickInterval: \'auto\', + minorTickWidth: 1, + minorTickLength: 5, + minorTickPosition: \'inside\', + minorGridLineWidth: 0, + minorTickColor: \'#2e2e2e\', + + tickInterval: 1, + tickWidth: 2, + tickPosition: \'inside\', + tickLength: 10, + tickColor: \'#fff\', + title: { + text: \'\', + style: { + color: \'#fff\', + fontWeight: \'normal\', + fontSize: \'8px\', + lineHeight: \'10px\' + }, + y: 10 + } + }, + + tooltip: { + formatter: function () { + return this.series.chart.tooltipText; + } + }, + + series: [{ + data: [{ + id: \'hour\', + y: now.hours, + dial: { + radius: \'60%\', + baseWidth: 4, + baseLength: \'95%\', + rearLength: 0 + } + }, { + id: \'minute\', + y: now.minutes, + dial: { + baseLength: \'95%\', + rearLength: 0 + } + }, { + id: \'second\', + y: now.seconds, + dial: { + radius: \'100%\', + baseWidth: 1, + rearLength: \'20%\' + } + }], + animation: false, + dataLabels: { + enabled: false + } + }] + }, + + // Move + function (chart) { + setInterval(function () { + + now = getNow(); + + var hour = chart.get(\'hour\'), + minute = chart.get(\'minute\'), + second = chart.get(\'second\'), + // run animation unless we\'re wrapping around from 59 to 0 + animation = now.seconds === 0 ? + false : + { + easing: \'easeOutElastic\' + }; + + // Cache the tooltip text + chart.tooltipText = + pad(Math.floor(now.hours), 2) + \':\' + + pad(Math.floor(now.minutes * 5), 2) + \':\' + + pad(now.seconds * 5, 2); + + hour.update(now.hours, true, animation); + minute.update(now.minutes, true, animation); + second.update(now.seconds, true, animation); + + }, 1000); + + }); +}); + +// Extend jQuery with some easing (copied from jQuery UI) +$.extend($.easing, { + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + } +}); + +$(function () { + + /** + * Get the current time + */ + function getNow() { + var now = new Date(); + var gmt_offset = now.getTimezoneOffset( ) / 60; + var est = gmt_offset + 5; + + return { + hours: now.getHours() + now.getMinutes() / 60, + minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600, + seconds: now.getSeconds() * 12 / 60 + }; + } + + /** + * Pad numbers + */ + function pad(number, length) { + // Create an array of the remaining length + 1 and join it with 0\'s + return new Array((length || 2) + 1 - String(number).length).join(0) + number; + } + + var now = getNow(); + + // Create the chart + $(\'.column-left\').highcharts({ + + chart: { + type: \'gauge\', + plotBackgroundColor: null, + plotBackgroundImage: null, + plotBorderWidth: 0, + plotShadow: false, + height: 200 + }, + + credits: { + enabled: false + }, + + title: { + text: \'Your time\' + }, + + pane: { + background: [{ + // default background + }, { + // reflex for supported browsers + backgroundColor: Highcharts.svg ? { + radialGradient: { + cx: 0.5, + cy: -0.4, + r: 1.9 + }, + stops: [ + [0.5, \'rgba(81, 81, 81, 0.8)\'], + [0.5, \'rgba(59, 56, 59, 0.8)\'] + ] + } : null + }] + }, + + yAxis: { + + + labels: { + distance: -20, + + style: { + color: \'#848484\' + } + }, + min: 0, + max: 12, + lineWidth: 0, + showFirstLabel: false, + + minorTickInterval: \'auto\', + minorTickWidth: 1, + minorTickLength: 5, + minorTickPosition: \'inside\', + minorGridLineWidth: 0, + minorTickColor: \'#2e2e2e\', + + tickInterval: 1, + tickWidth: 2, + tickPosition: \'inside\', + tickLength: 10, + tickColor: \'#fff\', + title: { + text: \'\', + style: { + color: \'#fff\', + fontWeight: \'normal\', + fontSize: \'8px\', + lineHeight: \'10px\' + }, + y: 10 + } + }, + + tooltip: { + formatter: function () { + return this.series.chart.tooltipText; + } + }, + + series: [{ + data: [{ + id: \'hour\', + y: now.hours, + dial: { + radius: \'60%\', + baseWidth: 4, + baseLength: \'95%\', + rearLength: 0 + } + }, { + id: \'minute\', + y: now.minutes, + dial: { + baseLength: \'95%\', + rearLength: 0 + } + }, { + id: \'second\', + y: now.seconds, + dial: { + radius: \'100%\', + baseWidth: 1, + rearLength: \'20%\' + } + }], + animation: false, + dataLabels: { + enabled: false + } + }] + }, + + // Move + function (chart) { + setInterval(function () { + + now = getNow(); + + var hour = chart.get(\'hour\'), + minute = chart.get(\'minute\'), + second = chart.get(\'second\'), + // run animation unless we\'re wrapping around from 59 to 0 + animation = now.seconds === 0 ? + false : + { + easing: \'easeOutElastic\' + }; + + // Cache the tooltip text + chart.tooltipText = + pad(Math.floor(now.hours), 2) + \':\' + + pad(Math.floor(now.minutes * 5), 2) + \':\' + + pad(now.seconds * 5, 2); + + hour.update(now.hours, true, animation); + minute.update(now.minutes, true, animation); + second.update(now.seconds, true, animation); + + }, 1000); + + }); +}); + +// Extend jQuery with some easing (copied from jQuery UI) +$.extend($.easing, { + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + } +}); +//]]> |