var temperatureTime = Class.create();
var myTTHandler;
temperatureTime.prototype = {
	/**
	 * Author:		Hans Duedal (Lintoo I/S)
	 * Email & URL:	hans@lintoo.dk www.lintoo.dk
	 * Copyright: 	2006 Lintoo I/S
	 */
	
	initialize: function() {
		this.timer = null;
		this.temperatureTimer = null;
		this.temperatureRequest = null;
		this.temperatureElm =  $S('div#temperature span.tempData')[0];
		//initialize date functions
		this.timeElm = $('time');
		this.secondIndicator = $S('div#time span.indicator')[0];
		this.dateObj = new Date();
		this.hour = this.padNumber(this.dateObj.getHours());
		this.hourElm = $S('div#time span.hour')[0];
		this.minute = this.padNumber(this.dateObj.getMinutes());
		this.minuteElm = $S('div#time span.minute')[0];
		//do update now
		this.hourElm.removeChild(this.hourElm.firstChild);
		this.hourElm.appendChild(document.createTextNode(this.hour));
		this.minuteElm.removeChild(this.minuteElm.firstChild);
		this.minuteElm.appendChild(document.createTextNode(this.minute));
		
		//initialize temperatureRequest
		/*
		this.temperatureRequest = new Ajax.Request('datasource/dmi_temperature.php', {
			method: 'post',
			parameters: '',
			onComplete: this.injectTemperature
		});
		this.updateTime();
		*/

		// Disabled since DMI does not contain temperatures atm
		//this.temperatureTimer = setTimeout(function() {myTTHandler.updateTemperature()},60000);
	},

	updateTemperature: function() {
		clearTimeout(this.temperatureTimer);
		if (this.temperatureRequest.transport.readyState == 4) this.temperatureRequest.request('datasource/dmi_temperature.php');
		this.temperatureTimer = setTimeout(function() {myTTHandler.updateTemperature()},60000);
	},
	
	updateTime: function() {
		clearTimeout(this.timer);
		this.dateObj = new Date();
		if (this.minute != this.padNumber(this.dateObj.getMinutes())) { //time to update
			this.hour = this.padNumber(this.dateObj.getHours());
			this.minute = this.padNumber(this.dateObj.getMinutes());
			this.hourElm.removeChild(this.hourElm.firstChild);
			this.hourElm.appendChild(document.createTextNode(this.hour));
			this.minuteElm.removeChild(this.minuteElm.firstChild);
			this.minuteElm.appendChild(document.createTextNode(this.minute));
		}
		this.secondIndicator.style.visibility = this.secondIndicator.style.visibility == 'hidden' ? 'visible' : 'hidden';
		this.timer = setTimeout(function() {myTTHandler.updateTime()},1000);
	},
	
	padNumber: function(number) {
		return number > 9 ? number : '0' + number;
	},
	
	injectTemperature: function(xhr) {
		var temperatureElm = $S('div#temperature span.tempData')[0];
		temperatureElm.removeChild(temperatureElm.firstChild);
		temperatureElm.appendChild(document.createTextNode(xhr.responseXML.documentElement.firstChild.nodeValue));
	}
}

addLoadEvent(function() { //initialize and start object
	myTTHandler = new temperatureTime();
});
