//
// InetTime
//
// inettime.js
// Chris Petersen
// chris_petersen@hotmail.com 
//

// date functions

function getLocalToGMTDate( dDate ) {
  dLocalDate = dDate;
  nOffset = dLocalDate.getHours() + (dDate.getTimezoneOffset()/60);
  dLocalDate.setHours(nOffset);
  return (dLocalDate);
}

function getGMTToLocalDate( dDate ) {
  dGMTDate = dDate;
  dGMTDate.setHours(dGMTDate.getHours() - (dDate.getTimezoneOffset()/60));
  return (dGMTDate);
}

// InetTime functions

function getLocalToInetTime( dDate ) {
  dGMTDate = getLocalToGMTDate( dDate );
  return ( (Math.round((((dGMTDate.getHours()*60)+dGMTDate.getMinutes()+(dGMTDate.getSeconds()/60))/1.44)*10000)/10000) );
}

function getInetToLocalTime( dDate, nInetTime ) {
  dDate = getLocalToGMTDate( dDate );
  nTotalMinutes = nInetTime * 1.44;
  dDate.setHours( Math.round( nTotalMinutes / 60 ) );
  dDate.setMinutes( Math.round( nTotalMinutes - (dDate.getHours()*60) ) );
  dDate.setSeconds( Math.round( (nTotalMinutes - (dDate.getHours()*60) - (dDate.getMinutes())) * 60 ) );
  return (getGMTToLocalDate( dDate ));
}

// InetTime UI functions

function updateInetTime() {
  dDate = new Date();
  frmInetTime = document.forms['frminettime'];

  if (String(dDate.getHours()).length==1) {
    frmInetTime.time_hour.value = '0' + String(dDate.getHours());
  } else {
    frmInetTime.time_hour.value = String(dDate.getHours());
  }
  if (String(dDate.getMinutes()).length==1) {
    frmInetTime.time_minute.value = '0' + String(dDate.getMinutes());
  } else {
    frmInetTime.time_minute.value = String(dDate.getMinutes());
  }
  if (String(dDate.getSeconds()).length==1) {
    frmInetTime.time_second.value = '0' + String(dDate.getSeconds());
  } else {
    frmInetTime.time_second.value = String(dDate.getSeconds());
  }
  frmInetTime.inettime.value = getLocalToInetTime(dDate);
}

function AutoUpdateInetTime() {
  updateInetTime();
  setTimeout("AutoUpdateInetTime()", 100);
}

AutoUpdateInetTime();

function validateUInetTime() {
  frmInetTime = document.forms['frminettime'];
  sval = parseFloat(frmInetTime.uinettime.value);
  if (!isNaN(sval)) {
    frmInetTime.uinettime.value = sval;
  } else {
    frmInetTime.uinettime.value = 0;
  }
}

function convertInetTime() {
  frmInetTime = document.forms['frminettime'];
  dDate = new Date();
  dDate = getInetToLocalTime( dDate, frmInetTime.uinettime.value );
  frmInetTime.uhour.options[dDate.getHours()].selected = true;
  frmInetTime.uminute.options[dDate.getMinutes()].selected = true;
  frmInetTime.usecond.options[dDate.getSeconds()].selected = true;
}

function convertLocalTime() {
  frmInetTime = document.forms['frminettime'];
  dDate = new Date();
  dDate.setHours(frmInetTime.uhour.options[frmInetTime.uhour.options.selectedIndex].value);
  dDate.setMinutes(frmInetTime.uminute.options[frmInetTime.uminute.options.selectedIndex].value);
  dDate.setSeconds(frmInetTime.usecond.options[frmInetTime.usecond.options.selectedIndex].value);
  frmInetTime.uinettime.value = getLocalToInetTime( dDate );
}

// Init InetTime

frmInetTime = document.forms['frminettime'];
frmInetTime.uhour.options.length=24;
for (nCount=0; nCount<24; nCount++) {
  if (String(nCount).length==1) {
    frmInetTime.uhour.options[nCount].text = '0' + String(nCount);
	} else {
    frmInetTime.uhour.options[nCount].text = String(nCount);
	}
  frmInetTime.uhour.options[nCount].value = nCount;
}
frmInetTime.uminute.options.length=60;
for (nCount=0; nCount<60; nCount++) {
  if (String(nCount).length==1) {
    frmInetTime.uminute.options[nCount].text = '0' + String(nCount);
	} else {
    frmInetTime.uminute.options[nCount].text = String(nCount);
	}
  frmInetTime.uminute.options[nCount].value = nCount;
}
frmInetTime.usecond.options.length=60;
for (nCount=0; nCount<60; nCount++) {
  if (String(nCount).length==1) {
    frmInetTime.usecond.options[nCount].text = '0' + String(nCount);
	} else {
    frmInetTime.usecond.options[nCount].text = String(nCount);
	}
  frmInetTime.usecond.options[nCount].value = nCount;
}
dDate = new Date();
frmInetTime.uhour.options[dDate.getHours()].selected = true;
frmInetTime.uminute.options[dDate.getMinutes()].selected = true;
frmInetTime.usecond.options[dDate.getSeconds()].selected = true;
convertLocalTime();