Knob - Timer Countdown #2
by bizamajig
HTML
<script src="https://raw.github.com/aterrien/jQuery-Knob/master/js/jquery.knob.js"></script>
<table style="display:inline;">
<tr>
<td>
<input type="text" id="inp1-min" class="knob1" value="0" data-width="120" data-thickness="0.4" />
</td>
</tr>
<tr>
<td>
<div id="inp1-min-label" style="position:relative;left:45px;top:-100px;font:bold 16px Arial;color: rgb(135, 206, 235);">MIN</div>
</td>
</tr>
</table>
<table style="display:inline;">
<tr>
<td>
<input type="text" id="inp1-std" class="knob1" value="0" data-width="120" data-thickness="0.4" data-fgColor="green" />
</td>
</tr>
<tr>
<td>
<div id="inp1-min-label" style="position:relative;left:45px;top:-100px;font:bold 16px Arial;color: green;">STD</div>
</td>
</tr>
</table>
<table style="display:inline;">
<tr>
<td>
<input type="text" id="inp1-max" class="knob1" value="0" data-width="120" data-thickness="0.4" data-fgColor="red" />
</td>
</tr>
<tr>
<td>
<div id="inp1-min-label" style="position:relative;left:45px;top:-100px;font:bold 16px Arial;color: red;">MAX</div>
</td>
</tr>
</table>
JavaScript
jQuery(document).ready(function ($) {
var max1 = 45 * 60 * 1000;
function pad(num, size) {
return ('000000000' + num).substr(-size);
}
function hmsToSecondsOnly(str) {
var p = str.split(':'),
s = 0,
m = 1;
while (p.length > 0) {
s += m * parseInt(p.pop(), 10);
m *= 60;
}
return s;
}
function parseTime(v) {
//should return back value parsed from string
//in clock we do time parsing to seconds and multiply by 1000
//console.log('parse input:' + v);
if (v === 'OFF') return 0;
if (typeof (v) === 'string') {
var result = (hmsToSecondsOnly(v + '') + 0);
return result * 1000;
}
if (typeof (v) === 'number') {
return v;
}
return v;
}
function formatTime(v, prefix) {
var text1 = '';
if (v === 0) {
text1 = 'OFF';
return text1;
}
if (v == max1) {
max1 = max1 + 60 * 1000;
$('#' + prefix + '-min').trigger('configure', {
'max': max1
});
$('#' + prefix + '-std').trigger('configure', {
'max': max1
});
$('#' + prefix + '-max').trigger('configure', {
'max': max1
});
}
var v1 = v / 1000;
var h = Math.floor(v1 / 3600);
var m = Math.floor((v1 - h * 3600) / 60);
var s = v1 - m * 60 - h * 3600;
text1 = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2);
return text1;
}
function updateMin(prefix) {
var doc_min = document.getElementById(prefix + '-min');
var doc_std = document.getElementById(prefix + '-std');
var doc_max = document.getElementById(prefix + '-max');
var...