function CActivity(parent)
{
	this.parent = parent;
	this.reqs = new CReqs(this);
	
	this.requestCallback = function(self, type, data)
	{
		with(self)
		{
			var content = "";
			
			if(data != null && data.messages_special != null)
			{
				for(var i = 0; i < data.messages_special.length; i++)
				{
					if(data.messages_special[i].lang != l.selected.language)
						continue;
								
					content += "<h2 id=\"activity-special-head\">"+l.get("special-message-head", [])+"</h2>";
					content += "<div id=\"activity-special\">"+data.messages_special[i].message+"</div>";
				}
			}
			
			content += "<h2>"+l.get("activity-head", [])+"</h2>";
			content += "<div class=\"activity-text\">"+l.get("activity-text", [])+"</div>";
			if(data != null && data.messages != null)
			{
				for(var i = 0; i < data.messages.length; i++)
				{
					switch(data.messages[i].type)
					{
						case "maze-played":
							content += "<div class=\"text\">"+l.get("month-"+data.messages[i].month, [l.getNumSuffix(data.messages[i].day), data.messages[i].time])+": "+l.get("activity-maze-played", [data.messages[i].target])+"</div>";
						break;
						
						case "asset-displayed":
							content += "<div class=\"text\">"+l.get("month-"+data.messages[i].month, [l.getNumSuffix(data.messages[i].day), data.messages[i].time])+": "+l.get("activity-asset-displayed", [data.messages[i].target])+"</div>";
						break;
					}
				}
			}
			else
			{
				content += "<div>"+l.get("activity-no-activity", [])+"</div>";
			}
			
			game.hideLoader();
			
			mE("activity").content(content);
			mE("activity").show();
		}
	}
	
	this.show = function()
	{
		game.showLoader();
		
		//load
		this.reqs.get("messages.load", "messagesLoad", null);
	}
	
	this.hide = function(){	mE("activity").hide(); }
}
