<!--
// Konstanten
var CLOCK_MAXOPTIONS = 6;
var CLOCK_INTERVAL_MS = 1000;
// Variablen
var gobjClockContainer;
var gobjDateFirstOnline = new Date('Jun 14, 2002 20:00:00');
var gastrDays = new Array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
var gintClockOption;
var gintStartTicks = 0;
var gintSyncTicks = 0;
var gstrTimeserver = '';

function clock_init(strcontrol)
  {
  gintClockOption = 0;
  gobjClockContainer = document.getElementById(strcontrol);
  if(gobjClockContainer)
    {
    var objNow = new Date();
    gintStartTicks = objNow.getTime();

    // AJAX-Request: Uhrzeit von Zeitserver holen
    ClockAJAXGetDateTime();

    clock_showtime();
    setInterval('clock_showtime()', CLOCK_INTERVAL_MS);
    }
  }

// AJAX-Request: Uhrzeit von Zeitserver holen
function ClockAJAXGetDateTime()
  {
  try
    {
    var objRequest = objAJAX_CreateRequest();
    if(!objRequest)
      {
      return;
      }
    var astrParameterNames = astrAJAX_GetParameterArray();
    var astrParameterValues = astrAJAX_GetParameterArray();

    // Callback-Funktion
    var objCallback = function(vstrResponse) { ClockAjaxCallback(vstrResponse); }

    AJAX_SendRequest_PostAsync(objRequest, 3, astrParameterNames, astrParameterValues, objCallback);
    objRequest = null;
    }
  catch(e) {}
  }

// AJAX Callback
function ClockAjaxCallback(vstrResponse)
  {
  var strDateTime = '';
  var intServerTicks = 0;
  var intLocalTicks = 0;

  if(vstrResponse != '')
    {
    try
      {
      astrResponseItems = vstrResponse.split('|');
      gstrTimeserver = astrResponseItems[0];
      strDateTime = astrResponseItems[1];

      var objServerTime = new Date(strDateTime);
      intServerTicks = objServerTime.getTime();

      var objLocalTime = new Date();
      intLocalTicks = objLocalTime.getTime();

      gintSyncTicks = intLocalTicks - intServerTicks - 1000;
      gintStartTicks = gintStartTicks - gintSyncTicks;
      }
    catch(e) {}
    }
  }

function clock_switch()
  {
  gintClockOption++;
  if(gintClockOption > CLOCK_MAXOPTIONS)
    {
    gintClockOption = 0;
    }
  clock_showtime();
  }

function clock_showtime()
  {
  var objTime;
  var strClass = '';
  var strGesamt = '';
  var strDescription = 'Lokale Rechnerzeit';

  if(gobjClockContainer)
    {
    switch (gintClockOption)
      {
      case 0:
        strGesamt = strGetCurrentWeekDay() + ', ' + strGetCurrentDateFormatted() + ', ' + strGetCurrentTimeFormatted();
        if (gstrTimeserver != '')
          {
          strClass = ' class="text_enhanced"';
          strDescription = 'Synchronisiert mit Atomuhr auf Zeit-Server ' + gstrTimeserver;
          }
        strGesamt = '<span title="' + strDescription + '"' + strClass + '>' + strGesamt + '</span>';
        break;
      case 1:
        objTime = objGetCorrectedDate();
        var intClockTicks = objTime.getTime();
        intClockTicks -= gintStartTicks;
        intClockTicks = Math.floor(intClockTicks / 1000);
        strGesamt = 'Seite betreten vor ' + strFormatDuration(intClockTicks);
        break;
      case 2:
        objTime = new Date(gintStartTicks);
        var intStunden = objTime.getHours();
        var intMinuten = objTime.getMinutes();
        var intSekunden = objTime.getSeconds();
        strGesamt = 'Seite geladen um ' + strFormatTime(intStunden, intMinuten, intSekunden) + ' Uhr';
        break;
      case 3:
        objTime = objGetCorrectedDate();
        var intTicks = Math.floor(objTime.getTime() / 1000) - Math.floor(gobjDateFirstOnline.getTime() / 1000);
        var intTimeTicks = intTicks % 86400;
        var strZeit = strFormatDuration(intTimeTicks);
        intTicks = intTicks - intTimeTicks;
        var intTage = intTicks / 86400;
        strGesamt = 'Online seit ' + intTage + ' Tagen, ' + strZeit;
        break;
      case 4:
        strGesamt = 'Online seit ';
        strGesamt += format_stringnormalzero(gobjDateFirstOnline.getDate(), 2) + '.';
        strGesamt += format_stringnormalzero(gobjDateFirstOnline.getMonth() + 1, 2) + '.';
        var intYear = gobjDateFirstOnline.getYear();
        if (intYear < 999)
          {
          intYear += 1900;
          }
        strGesamt += intYear;
        break;
      case 5:
        strGesamt = 'Aufl&ouml;sung: ' + screen.width + ' x ' + screen.height;
        break;
      case 6:
        strGesamt = 'IP-Adresse: 38.107.191.84';
        break;
      }

    gobjClockContainer.innerHTML = '&nbsp;' + strGesamt;
    }
  objTime = null;
  }

function objGetCorrectedDate()
  {
  var objNow = new Date();
  var intTicks = objNow.getTime() - gintSyncTicks;
  objNow = null;
  objNow = new Date(intTicks);
  return objNow;
  }

function strGetCurrentWeekDay()
  {
  var objNow = objGetCorrectedDate();
  var intWoTag = objNow.getDay();
  return gastrDays[intWoTag];
  }

function strGetCurrentDateFormatted()
  {
  var objNow = objGetCorrectedDate();
  var intTag = objNow.getDate();
  var intMonat = objNow.getMonth() + 1;
  var intJahr = objNow.getFullYear();

  var strVortag  = ((intTag < 10) ? "0" : "");
  var strVormon  = ((intMonat < 10) ? ".0" : ".");
  var strDatum = strVortag + intTag + strVormon + intMonat  + "." + intJahr;

  return strDatum;
  }

function strGetCurrentTimeFormatted()
  {
  var objNow = objGetCorrectedDate();
  var intStunden = objNow.getHours();
  var intMinuten = objNow.getMinutes();
  var intSekunden = objNow.getSeconds();
  return strFormatTime(intStunden, intMinuten, intSekunden);
  }

function strFormatTime(vinthour, vintmin, vintsec)
  {
  var strVorstd  = ((vinthour < 10) ? "0" : "");
  var strVormin  = ((vintmin < 10) ? ":0" : ":");
  var strVorsek  = ((vintsec < 10) ? ":0" : ":");
  var strTime = strVorstd + vinthour + strVormin + vintmin + strVorsek + vintsec
  return strTime;
  }

function strFormatDuration(vintseconds)
  {
  var intTicks = vintseconds;
  var intSekunden = intTicks % 60;
  intTicks = (intTicks - intSekunden) / 60;
  var intMinuten = intTicks % 60;
  intTicks = intTicks - intMinuten;
  var intStunden = intTicks / 60;

  var strVorstd  = ((intStunden < 10) ? "0" : "");
  var strVormin  = ((intMinuten < 10) ? "h 0" : "h ");
  var strVorsek  = ((intSekunden < 10) ? "min 0" : "min ");
  var strZeit = strVorstd + intStunden + strVormin + intMinuten + strVorsek + intSekunden + "sec";

  return strZeit;
  }

//-->