JS: Simple StopWatch

by Roman

HTML

<script type="text/javascript">
 function trim(string) { return string.replace (/\s+/g, " ").replace(/(^\s*)|(\s*)$/g, ''); }
 var init=0;
 var startDate;
 var clocktimer;

 function clearFields() {
  init = 0;
  clearTimeout(clocktimer);
  document.clockform.clock.value='00:00:00.00';
  document.clockform.label.value='';
 }

 function clearALL() {
  clearFields();
  document.getElementById('marker').innerHTML = '';
 }

 function startTIME() { 
  var thisDate = new Date();
  var t = thisDate.getTime() - startDate.getTime();
  var ms = t%1000; t-=ms; ms=Math.floor(ms/10);
  t = Math.floor (t/1000);
  var s = t%60; t-=s;
  t = Math.floor (t/60);
  var m = t%60; t-=m;
  t = Math.floor (t/60);
  var h = t%60;
  if (h<10) h='0'+h;
  if (m<10) m='0'+m;
  if (s<10) s='0'+s;
  if (ms<10) ms='0'+ms;
  if (init==1) document.clockform.clock.value = h + ':' + m + ':' + s + '.' + ms;
  clocktimer = setTimeout("startTIME()",10);
 }

 function findTIME() {
  if (init==0) {
   startDate = new Date();
   startTIME();
   init=1;
  } 
  else {
   var str = trim(document.clockform.label.value);
   document.getElementById('marker').innerHTML = (str==''?'':str+': ') + 
    document.clockform.clock.value + '<br>' + document.getElementById('marker').innerHTML;
   clearFields();
  }
 }
</script>
<noscript><p>Извините, для работы приложения нужен включённый JavaScript</p></noscript>

<form name="clockform">
 <p>Время: 
 <input name="clock" size="12" maxlength="12" value="00:00:00.00">
 Метка: 
 <input name="label" size="12" maxlength="40" value="">
 <input name="starter" type="button" value="Старт/Стоп" onclick="findTIME()"> 
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 <input name="clearer" type="button" value="Сбросить всё" onclick="clearALL()">
 </p><p id="marker">
 </p>
</form>