Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. $(document).ready(function() {
  2.  
  3. var dial = $('.dial');
  4. var startPauseBtn = $('.start-pause');
  5. var reset = $('.reset');
  6. var mute = $('.mute');
  7. var multi = 0;
  8. var flipCounter = 0;
  9. var text
  10. , timer
  11. , lastValue
  12. , running
  13. , startTime;
  14.  
  15. // Audio
  16.  
  17. var audio = new Audio('//a.clyp.it/uwz5c5b5.mp3');
  18.  
  19. mute.click(function() {
  20. if (audio.volume === 1) {
  21. audio.volume = 0;
  22. mute.html('<i class="fa fa-volume-off"></i>');
  23. }
  24. else {
  25. audio.volume = 1;
  26. mute.html('<i class="fa fa-volume-up"></i>');
  27. }
  28. });
  29.  
  30. // Dial
  31.  
  32. dial.knob({
  33. 'max': 59
  34. , 'stopper': false
  35. , 'fgColor': '#000'
  36. , 'change': function(v) {
  37. change(v);
  38. }
  39. });
  40.  
  41. var change = function(v) {
  42. if (v >= 0) {
  43. if (v % 60 == 0 && lastValue % 60 == 59)
  44. multi++;
  45. if (v % 60 == 59 && lastValue % 60 == 0)
  46. if (multi > 0)
  47. multi--;
  48. text.html(v + (60 * (multi)));
  49. lastValue = v;
  50. dial.trigger('change');
  51. }
  52. }
  53.  
  54. setTimeout(function() {
  55. text = $('<span class="text">0</span>')
  56. .attr('style', dial.attr('style'))
  57. .insertAfter('.dial')
  58. .css({
  59. 'color': '#000'
  60. , 'margin-top': '70px'
  61. , 'cursor': 'pointer'
  62. });
  63.  
  64. text.click(startPause);
  65.  
  66. dial.hide();
  67. },0);
  68.  
  69. var pause = function() {
  70. running = false;
  71. startPauseBtn.html('<i class="fa fa-play"></i>');
  72. clearInterval(timer);
  73. };
  74.  
  75. var startPause = function () {
  76. var time = startTime = parseInt(text.html());
  77. if (!running && time > 0) {
  78. running = true;
  79. startPauseBtn.html('<i class="fa fa-pause"></i>');
  80. timer = setInterval(function() {
  81. dial
  82. .val(parseInt(dial.val())-1)
  83. .trigger('change');
  84. text.html(parseInt(dial.val()) + (60 * (multi)));
  85.  
  86. if (text.html() === '0') {
  87. pause();
  88. reset.html('<i class="fa fa-clock-o"></i>')
  89. text.html('Go!');
  90. return audio.play();
  91. }
  92.  
  93. if (dial.val() === '0' && multi > 0) {
  94. flipCounter++;
  95. if (flipCounter === 2) {
  96. dial.val((60 * multi) - 1).trigger('change');;
  97. text.html((60 * multi) - 1);
  98. multi--;
  99. flipCounter = 0;
  100. }
  101. }
  102. }, 1000);
  103. }
  104. else pause();
  105. }
  106.  
  107. startPauseBtn.click(startPause);
  108.  
  109. reset.click(function() {
  110. if (reset.html().indexOf('clock') > -1) {
  111. audio.pause();
  112. audio.currentTime = 0;
  113. reset.html('<i class="fa fa-trash"></i>')
  114. dial
  115. .val(startTime % 60)
  116. .trigger('change');
  117. return text.html(startTime)
  118. }
  119. multi = 0;
  120. pause();
  121. dial
  122. .val(0)
  123. .trigger('change');
  124. text.html(0);
  125. });
  126.  
  127. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement