/*
*****************************************************************************************
Rechtshinweis
-------------
Die Software zur Anzeige der Atomuhr ist geistiges Eigentum der Uhrzeit.org GmbH und 
urheberrechtlich sowie patentrechtlich geschützt.
Jede unberechtigte Übernahme von Softwarecode oder Texten wird zivil- und strafrechtlich
verfolgt und ist mit erheblichen Kosten verbunden.
*****************************************************************************************
Legal Notice
-------------
This software is intellectual property of Uhrzeit.org GmbH and subject to copyright and 
other laws for protection of intellectual property. 
Unauthorised use and distribution will be prosecuted and is associated with high charges.   

*****************************************************************************************

La tecnología del indicador del reloj atómico está patentada y sus derechos de autor, 
reservados. Toda persona que copie sin autorización expresa el código de software o los 
textos será perseguida penal y civilmente, corriendo con los gastos que ello conlleva.
*****************************************************************************************
*/
function startSynchro(startzeit,title){
	startzeit	= arguments[0];
	title		= (arguments.length > 1) ? arguments[1] : false;
	Wochentag 	= new Array("sunday", "monday", "tuesday", "wednesday","thursday", "friday", "saturday");
	Monat 		= new Array("january", "february", "march", "april", "may", "june","july", "august", "september", "october", "november", "december");
	oldtime		= 0;
	zeitBlock 	= 0;
	Zeit		= startzeit;
	offset		= getOffset();
	timeTitle   = title;
	if(document.getElementById('anzeige_zeit')){document.getElementById('anzeige_zeit').innerHTML='<span id="anzeige_std"></span>:<span id="anzeige_min"></span>:<span id="anzeige_sek"></span>';}
	aktualisieren();
}

/* AKTUELLE SERVERZEIT HOLEN */
function synchronisation(resynch){
	
	// Auktion aktiv -> Dann Auktion-Synchronisation (mit Prüfung auf Auktionsende)
	if (typeof doAuktion == "function"){
		if(zeitBlock!=1){
			zeitBlock = 1;
			ajaxTime("/time/synchro_auktion.php?id=" + produktId + '&nocache=' + Date.parse(new Date()));
		}
	}
	// ...sonst nur Zeitsynchronisation
	else{
		var ret = ajaxTime("/time/synchro.php");
		doResynch = window.setTimeout('synchronisation()',300000);
		return ret;
	}
}

// OFFSET ZUR CLIENTZEIT BERECHNEN
function getOffset(){
	var localDate 	= new Date();
	var localTime 	= parseInt(localDate.getTime());
	return (Zeit - localTime); 
}

// UHRZEIT AKTUALISIEREN
function aktualisieren (){
	var d	= new Date();
	var t	= parseInt(d.getTime())+offset;
	if(Math.abs(t-oldtime) > 3000 && (typeof doAuktion != "function")){oldtime = t; synchronisation(1);}
	oldtime	= t;
	d.setTime(t);
	if(document.getElementById('anzeige_zeit')){
		var sec  	= d.getSeconds();	sec  = (sec<10)  ? "0"+ sec :sec;
		var mint 	= d.getMinutes();	mint = (mint<10) ? "0"+ mint:mint;
		var hour 	= d.getHours();		hour = (hour<10) ? "0"+ hour:hour;
		var wtag 	= Wochentag[d.getDay()];
		var tag 	= d.getDate();
		var monat 	= Monat[d.getMonth()];
		var jahr	= d.getFullYear();
		var datumtxt= wtag + ", " + tag + ". " + monat + " " + jahr;
		if(document.getElementById('anzeige_sek').innerHTML!= sec)			{document.getElementById('anzeige_sek').innerHTML = sec;}
		if(document.getElementById('anzeige_min').innerHTML!= mint)			{document.getElementById('anzeige_min').innerHTML = mint;}
		if(document.getElementById('anzeige_std').innerHTML!= hour)			{document.getElementById('anzeige_std').innerHTML = hour;}
	}
	if(document.getElementById('anzeige_datum') && document.getElementById('anzeige_datum').innerHTML!= datumtxt){
		document.getElementById('anzeige_datum').innerHTML = datumtxt;
	}
		
	// Ggf. Aktualisierung des Dokumenttitels
	if(typeof(timeTitle)=='string'){document.title = hour + ":" + mint + ":" + sec + " " + timeTitle;}
		
	// ggf. Auktion aktualisieren
	if (typeof doAuktion == "function"){doAuktion(t);}
		
	// ggf. Countdown aktualisieren
	if(typeof countdown == "function"){countdown(t);}
		
	lauf = window.setTimeout('aktualisieren()',260);
}

function ajaxTime(timeSource){
	var xmlhttp;
	if (window.XMLHttpRequest)	{xmlhttp=new XMLHttpRequest();}
	else						{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
	xmlhttp.onreadystatechange=function(){

		if(xmlhttp.readyState==4){
			if(!isNaN(xmlhttp.responseText)){
				Zeit = xmlhttp.responseText;
				offset = getOffset();
				if (typeof doAuktion == "function"){
					zeitBlock = 0;
					if(xmlhttp.responseText == "ende"){stopAuktion();}
					synchronisation();
				}
			}
			return Zeit;
		}
	}
	xmlhttp.open("GET",timeSource,true);
	xmlhttp.send(null);
}



