//
// Copyright by R. Doberstein, Mannheim
//                             http://www.doberstein.com
//
// Version 1.0, 21 Maerz 2003

var pfad_zu_bilder = "bilder/bullets/";
var bild_viertel = "rot.gif";
var bild_10er = "blau.gif";
var bild_strich_sec = "grau2.gif";
var bild_spitze_sec = "rot2.gif";
var bild_strich_min = "grau.gif";
var bild_spitze_min = "rot.gif";
var bild_strich_std = "grau.gif";
var bild_spitze_std = "rot.gif";
var mit_zahlen = 1;
var innererKreis = 26;
var aussererKreis = 35;
var center_x = 70;
var center_y = 50;
var alt_std = 0;
var alt_min = 0;
var alt_sec = 0;



function init_clock()
{
  // alert ("document.body=" + document.body);
  // alert ("document.getElementById=" +document.getElementById);
  var p1 = new Image(); p1.src = pfad_zu_bilder+bild_viertel;
  var p2 = new Image(); p1.src = pfad_zu_bilder+bild_10er;
  var p3 = new Image(); p1.src = pfad_zu_bilder+bild_strich_sec;
  var p4 = new Image(); p1.src = pfad_zu_bilder+bild_spitze_sec;
  var p5 = new Image(); p1.src = pfad_zu_bilder+bild_strich_min;
  var p6 = new Image(); p1.src = pfad_zu_bilder+bild_spitze_min;
  var p7 = new Image(); p1.src = pfad_zu_bilder+bild_strich_std;
  var p8 = new Image(); p1.src = pfad_zu_bilder+bild_spitze_std;
  if ( document.getElementById != null) {

    str = '<div id="zahl%nummer%" style="position:absolute;" ><font size="-2" face="Arial, Helvetica, sans-serif">%nummer%</font></div>';
    for (i = 1; i <= 12; i++){
      if ( mit_zahlen == 1 ) {
        str2 = ersetze (str, "%nummer%", i);
        schreibe ('beforeEnd', str2);
      }
      if (i % 3 == 0) {
        str_gr = '<div id="zifferblatz%nummer%" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_viertel+ '"></div>';
      } else {
        str_gr = '<div id="zifferblatz%nummer%" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_10er+ '"></div>';
      }
      str_gr = ersetze (str_gr, "%nummer%", i);
      schreibe ('beforeEnd', str_gr);
    }

    str_punkt = '<div id="sec%nummer%" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_strich_sec+ '"></div>';
    for (i = 0; i <= 9; i++){
      str = ersetze (str_punkt, "%nummer%", i);
      schreibe ('beforeEnd', str);
    }
    str = '<div id="sec10" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_spitze_sec+ '"></div>';
    schreibe ('beforeEnd', str);

    str_punkt = '<div id="min%nummer%" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_strich_min+ '"></div>';
    for (i = 0; i <= 7; i++){
      str = ersetze (str_punkt, "%nummer%", i);
      schreibe ('beforeEnd', str);
    }
    str = '<div id="min8" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_spitze_min+ '"></div>';
    schreibe ('beforeEnd', str);

    str_punkt = '<div id="std%nummer%" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_strich_std+ '"></div>';
    // alert ("str_punkt=" + str_punkt);
    for (i = 0; i <= 5; i++){
      str = ersetze (str_punkt, "%nummer%", i);
      // alert ("str=" + str);
      schreibe ('beforeEnd', str);
    }
    str = '<div id="std6" style="position:absolute;" ><img src="' +pfad_zu_bilder+bild_spitze_std+ '"></div>';
    schreibe ('beforeEnd', str);

    uhr_setzen();
    zeiger_setzen();
  } else {
    window.setTimeout("insert()",1000);
  }
} // function init_clock()


var uhr_counter=120;
function uhr_setzen()
{
  var erg = 0;
  for (i = 1; i <= 12; i++){
    m = i;
    m = 2*Math.PI * m/12;
    x = Math.sin(m);
    y = - Math.cos(m);
    positionieren ("zifferblatz" +i, center_x +x *innererKreis, center_y +y*innererKreis);
    if ( mit_zahlen == 1) {
      erg = erg + positionieren ("zahl" +i, center_x +x *aussererKreis, center_y +y *aussererKreis);
    }
  }
  if ( erg > 0 || uhr_counter > 0) {
    window.setTimeout("uhr_setzen()",1000);
    uhr_counter = uhr_counter -1;
  }
} // function uhr_setzen()



function zeiger_setzen()
{
  // positionieren ("xyz", 200, 200);
  // positionieren ("linie1", 300, 300);

  var jetzt = new Date();
  var std = jetzt.getHours();
  var min = jetzt.getMinutes();
  var sec = jetzt.getSeconds();
  var kreis = 50;
  sec = 2*Math.PI * sec/60;
  x = Math.sin(sec);
  y = - Math.cos(sec);
  for (var i = 0; i <= 10; i++){
    px = Math.round (center_x +x *innererKreis * (i/12.));
    py = Math.round (center_y +y *innererKreis *(i/12.));
    positionieren ("sec" +i, px, py);
  }

  if ( min != alt_min  || uhr_counter > 0 ) {
    alt_min = min;
    min = 2*Math.PI * min/60;
    x = Math.sin(min);
    y = - Math.cos(min);
    for (var i = 0; i <= 8; i++){
      px = Math.round (center_x +x *innererKreis * (i/12.));
      py = Math.round (center_y +y *innererKreis *(i/12.));
      positionieren ("min" +i, px, py);
    }
  }

  if ( std != alt_std  || uhr_counter > 0 ) {
    std = std + jetzt.getMinutes()/60;
    alt_std = std;
    std = 2*Math.PI * std/12;
    x = Math.sin(std);
    y = - Math.cos(std);
    for (var i = 0; i <= 6; i++){
      px = Math.round (center_x +x *innererKreis * (i/12.));
      py = Math.round (center_y +y *innererKreis *(i/12.));
      positionieren ("std" +i, px, py);
    }
  }
  window.setTimeout("zeiger_setzen()",1000);
} // function zeiger_setzen()



function positionieren (was, pos_x, pos_y)
{
  element = document.getElementById(was);
  erg = 0;
  if (element != null)
  {
    breite = element.offsetWidth;
    hoehe = element.offsetHeight;
    if ( breite > 0 && hoehe > 0 ) {
      erg = 0;
    } else {
      erg = 1;
    }
    element.style.left = pos_x - (breite/2);
    element.style.top = pos_y - (hoehe/2);
  }
  return erg;
} // function positionieren (was, pos_x, pos_y)



function ersetze (txt,orig,replace)
{
  // alert ("ersetze(1): txt=" +txt);
  txt2 = txt.replace(orig,replace);
  // alert ("ersetze(2): txt2=" +txt2);
  while ( txt2 != txt) {
    txt = txt2;
    txt2 = txt.replace(orig,replace);
    // alert ("ersetze(3): txt2=" +txt2);
  }
  // alert ("ersetze(4): txt2=" +txt2);
  return txt2;
}  // function ersetze(txt,orig,replace)



function schreibe(wie, was)
{
  // document.body.insertAdjacentHTML (wie, was);
  document.write(was);
}




// Quelle http://www.faqts.com/knowledge_base/view.phtml/aid/5756

// insertAdjacentHTML(), insertAdjacentText() and insertAdjacentElement()
// for Netscape 6/Mozilla by Thor Larholm thor@jscript.dk
// Usage: include this code segment at the beginning of your document
// before any other Javascript contents.

if(typeof HTMLElement!="undefined" && ! HTMLElement.prototype.insertAdjacentElement){
        HTMLElement.prototype.insertAdjacentElement = function (where,parsedNode)
        {
                switch (where){
                case 'beforeBegin':
                        this.parentNode.insertBefore(parsedNode,this)
                        break;
                case 'afterBegin':
                        this.insertBefore(parsedNode,this.firstChild);
                        break;
                case 'beforeEnd':
                        this.appendChild(parsedNode);
                        break;
                case 'afterEnd':
                        if (this.nextSibling)
                        this.parentNode.insertBefore(parsedNode,this.nextSibling);
                        else this.parentNode.appendChild(parsedNode);
                        break;
                }
        }

        HTMLElement.prototype.insertAdjacentHTML = function (where,htmlStr)
        {
                var r = this.ownerDocument.createRange();
                r.setStartBefore(this);
                var parsedHTML = r.createContextualFragment(htmlStr);
                this.insertAdjacentElement(where,parsedHTML)
        }


        HTMLElement.prototype.insertAdjacentText = function (where,txtStr)
        {
                var parsedText = document.createTextNode(txtStr)
                this.insertAdjacentElement(where,parsedText)
        }
}

/*
// beispiele:
document.body.insertAdjacentHTML('beforeEnd','<div id=testElstyle="color:#FF0000">This is a new <b>DIV</b> element inserted intothe DOM tree (bold tags are rendered)</div>');
testEl.insertAdjacentText('afterBegin','This is <b>some</b> new text intestEl (bold tags are shown, not rendered)');
var pEl = document.createElement("P")
testEl.insertAdjacentElement('afterEnd',pEl); // P tag inserted afterthe testEl element.
*/

init_clock();