﻿// local epoch counter
var epoch;

// update timelink and datefield value with ntp
function updateTimeDate(useNtp) {
  var localDate = new Date();
  var query = '/fileadmin/_incs/getntptime.php?formated=1'
  query += useNtp ? '&ntp=1' : '&epoch='+epoch;
  query += '&'+localDate.getTime();
  if ($('timefield'))
    new Ajax.Request(query, {
         onSuccess: function(transport) {

           // split response string
           var timeDateStr = transport.responseText;
           var timeDateArr = timeDateStr.split(" | ");

           // update display
           $('timefield').update(timeDateArr[0]);
           $('datefield').update(timeDateArr[1]);

           // update epoch
           epoch = Number(timeDateArr[2]);
         }
       });
  if ($('timefield_en'))
    new Ajax.Request(query+'&en=1', {
         onSuccess: function(transport) {

           // split response string
           var timeDateStr = transport.responseText;
           var timeDateArr = timeDateStr.split(" | ");

           // update display
           $('timefield_en').update(timeDateArr[0]);
           $('datefield_en').update(timeDateArr[1]);

           // update epoch
           epoch = Number(timeDateArr[2]);
         }
       });
}

// main
Event.observe(window, "load", function() {

  // initial ntp update
  updateTimeDate(true);

  // increment epoch every second
  new PeriodicalExecuter(function() {
        epoch++;
        if (epoch % 60 == 0) updateTimeDate(false); // update display at full minute
      }, 1);

  // ntp update every ten minutes
  new PeriodicalExecuter(function() {
        updateTimeDate(true);
      }, 600);
});

//-->