
var AnalogUhr = {
	
	objContext : null,
	time : 0,
	startTime : 0,
	
	init : function()
	{
		if(document.getElementById('analoguhr'))
		{
			var objCanvas = document.getElementById('analoguhr').getElementsByTagName('canvas')[0];
			this.time = new Date(parseInt(AnalogUhrSetting.start)*1000);
			this.startTime = new Date();
	        if (objCanvas.getContext)
	        {
	        	this.objContext = objCanvas.getContext('2d');
	        	this.draw();
	        }
		}
	},

	draw : function()
	{
		
		var objContext = this.objContext;
		/**
		 * @see http://canvas.quaese.de/index.php?nav=13,70&doc_id=68
		 */ 
		  // Neues Datumsobjekt
		  var objDate = new Date(this.time.getTime() + (new Date()-this.startTime));
		 
		  var intSek = objDate.getSeconds();     // Sekunden 0..59
		  var intMin = objDate.getMinutes();     // Minuten 0..59
		  var intHours = objDate.getHours()%12;  // Stunden 0..11
		  // Kontext-Objekt

		  objContext.clearRect(0, 0, 59, 62);  // Anzeigebereich leeren

		  objContext.save();                     // Ausgangszustand speichern
		  objContext.translate(28, 32);          // Koordinatensystem in Mittelpkt des Ziffernblatts verschieben

		  // Stunden
		  objContext.save();
		  // Aktuelle Stunde zzgl. Minutenanteil über Drehung des Koordinatensystems
		  // (kontinuierlicher Übergang zwischen zwei Stunden gewünscht, keine Sprung)
		  objContext.rotate(intHours*Math.PI/6+intMin*Math.PI/360);
		  objContext.beginPath();                // Neuen Pfad anlegen
		  objContext.moveTo(0, 5);              // Zeiger über Mitte hinaus zeichnen
		  objContext.lineTo(0, -18);             // Stundenzeiger im gedrehten Koord-Sys. um 38 Einheiten nach oben zeichnen
		  // Linienstyle festlegen und zeichnen
		  objContext.lineWidth = 3;
		  objContext.lineCap = 'round';
		  objContext.strokeStyle = "#fff";
		  objContext.stroke();
		  objContext.restore();

		  // Minuten
		  objContext.save();
		  objContext.rotate(intMin*Math.PI/30);
		  objContext.beginPath();
		  objContext.moveTo(0, 5);
		  objContext.lineTo(0, -30);
		  objContext.lineWidth = 2;
		  objContext.lineCap = 'round';
		  objContext.strokeStyle = "#fff";
		  objContext.stroke();
		  objContext.restore();
		  
		// Sek
		  objContext.save();
		  objContext.rotate(intSek*Math.PI/30);
		  objContext.beginPath();
		  objContext.moveTo(0, 5);
		  objContext.lineTo(0, -20);
		  objContext.lineWidth = 1;
		  objContext.lineCap = 'round';
		  objContext.strokeStyle = "#fff";
		  objContext.stroke();
		  objContext.restore();

		  objContext.restore();
		  var ref = this;
		  window.setTimeout( function() { ref.draw(); } , 1000);

	}
};

window.addEvent('domready', function() { AnalogUhr.init(); });
