// JavaScript Document
if(MK_DEBUG) alert("loading script: clock.js");

function Clock(timeoutSec) {
// private vars
	var ICON_ALARM = "clockAlarm";
	var TIMEOUT_CLOCK = timeoutSec * 1000; // TODO: standard 1 second

	var isAlarm = false;
	alarm = null;
	var TIMEOUT_ALARM = 1 * 10000; // 1 sec
	
	var wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
	

	this.start = function() {
		this.updateClock();
		//setTimeout('start()', 1000);
		}
	
	this.setAlarm = function(_year, _mon, _day, _hour, _min) {
		alarm = new Date(_year-1, _mon, _day, _hour, _min, 0);
		isAlarm = true;
		this.checkAlarm();
		try {
			$(ICON_ALARM).show();
			}
		catch (e) { } 
		}
		
	this.stopAlarm = function() {
		isAlarm = null;
		alarm = null;
		try {
			$(ICON_ALARM).hide();
			}
		catch (e) { }
		}

this.kalenderwoche = function() {
	datum = new Date();
	datumDo=this.firstDo(datum);
	kwjahr=datumDo.getFullYear();
	datumDoKW1=this.firstDo(new Date(kwjahr,0,4)); 
	kw=Math.floor(1.5+(datumDo.getTime()-datumDoKW1.getTime())/86400000/7);
	return kw;
}

// private methods
this.firstDo = function(datum) { 
  var d=new Date();
  d.setTime(datum.getTime() + (3-((datum.getDay()+6) % 7)) * 86400000); 
  return d;
}

this.updateClock = function() {
	var datum = new Date();
	var hour = datum.getHours();
	if(hour<10) hour = "0"+hour;
	var minutes = datum.getMinutes();
	if(minutes<10) minutes = "0"+minutes;
	var uhrzeitStr = hour+":"+minutes+" Uhr";
	var day = datum.getDate();
	if(day<10) day = "0"+day;
	var month = datum.getMonth()+1;
	if(month<10) month = "0"+month;
	var year = datum.getYear();
	if(year<1900) year+=1900;
	var tag = wochentag[datum.getDay()];
	var kw = this.kalenderwoche();
	var datumStr = tag+", "+day+"."+month+"."+year+" KW "+kw;
	$('frmClockUhrzeit').innerHTML = uhrzeitStr;
	$('frmClockDatum').innerHTML = datumStr;
	setTimeout('uhr.updateClock()', TIMEOUT_CLOCK);	
	}


this.checkAlarm = function() {
	if(isAlarm) {
			var datum = new Date();
			
			var datumTimestamp = Date.parse(datum.toGMTString());
			var alarmTimestamp = Date.parse(alarm.toGMTString());
			
			//alert(datumTimestamp+" "+alarmTimestamp+" alarm: "+alarm);
			
			var bell = (datumTimestamp>=alarmTimestamp);
			
			if(bell) {
				alert("!!!!!!!!!!!!!!!!ALARM!!!!!!!!!!!!!!!!!!!!!!!!!!");
				this.stopAlarm();
				}
						
			setTimeout('uhr.checkAlarm()',TIMEOUT_ALARM );
			}
		}

}
