// @name: StatusBar
// @type: Behaviour
// @author: Rocco Howard
// @version: 20080428

Bluora.Behaviour.StatusBar = {
	'#bluora_StatusBar_items .bluora_StatusBar_item': function(el) {
		el.onmouseover = function() {
			el.addClassName('bluora_StatusBar_item_hover');
		}
		el.onmouseout = function() {
			el.removeClassName('bluora_StatusBar_item_hover');
		}
	},
	'#bluora_StatusBar_DateTime_DATE': function(el) {
		
		if ($('bluora_StatusBar_DateTime_DATE').title != '') {
			el.DATE_FORMAT = $('bluora_StatusBar_DateTime_DATE').title;
			$('bluora_StatusBar_DateTime_DATE').title = '';
		}
		
		if ($('bluora_StatusBar_DateTime_TIME').title != '') {
			el.TIME_FORMAT = $('bluora_StatusBar_DateTime_TIME').title;
			$('bluora_StatusBar_DateTime_TIME').title = '';
		}
		
		if (el.update_datetime == null) {
			el.update_datetime = function() {
				var datetime = new Date();
				
				
				var text_day = datetime.getDate().toString();
				if (text_day.length==1) {text_day = "0"+text_day;}
				var text_month = (datetime.getMonth()+1).toString();
				if (text_month.length==1) {text_month = "0"+text_month;}
				var text_hours = datetime.getHours().toString();
				if (text_hours.length==1) {text_hours = "0"+text_hours;}
				var text_minutes = datetime.getMinutes().toString();
				if (text_minutes.length==1) {text_minutes = "0"+text_minutes;}

				$('bluora_StatusBar_DateTime_DATE').update((text_day+'/'+text_month));
				$('bluora_StatusBar_DateTime_TIME').update((text_hours+':'+text_minutes));				
			}
			new PeriodicalExecuter(el.update_datetime,60);
			el.update_datetime();
		}
	}
};

if (typeof bluora_elements_statusbar_base_ajaxall != 'undefined') {
	Bluora.logInfo('StatusBar Initialised.');
	Bluora.StatusBar = {};
	
	Bluora.StatusBar.Callback = {
		ajax_statusbar_update: function(result) {
			$('bluora_StatusBar_TotalOnlineUsers').update(result[0]['UsersOnline']['TotalOnlineUsers']);
		}
	}
	
	Bluora.StatusBar.Remote = new bluora_elements_statusbar_base_ajaxall(Bluora.StatusBar.Callback);
	
	new PeriodicalExecuter(
		function () {
			Bluora.StatusBar.Remote.ajax_statusbar_update();							
		},
	150);
}

Bluora.Behaviour.register(Bluora.Behaviour.StatusBar);
Bluora.Behaviour.apply();