function CStats(parent)
{
	this.parent = parent;
	
	this.reqs = new CReqs(this);
	
	this.score = 0;
	this.level = 1;
	
	this.maxLevel = 25;
	this.levelStep = 100000;
	
	this.updateScore = function(score)
	{
		this.score = parseInt(this.score) + parseInt(score);
		
		//update his level
		var level = Math.floor(this.score / this.levelStep) + 1;
		
		if(level > this.maxLevel)
			level = this.maxLevel;
		
		this.level = level;
		
		game.response("userLevel", this.level);
	}
	
	this.getScore = function()
	{
		return addCommas(this.score);
	}
	
	this.getLevel = function()
	{
		return this.level;
	}
	
	this.getScoreToNextLevel = function()
	{
		return addCommas((this.level * this.levelStep) - this.score);
	}
		
	this.save = function(msg)
	{
		switch(msg.type)
		{
			case "statsScore":
				this.reqs.post("stats.save", '{"type":"'+msg.type+'", "data":"'+msg.data+'"}', "statsSave", null);
			break;
		}
	}
	
	this.requestCallback = function(self, type, statsData)
	{
		with(self)
		{
			switch(type)
			{
				case "statsSave":				
				case "getScore":
					updateScore(statsData.score);
					
					game.fb.renderBar();
				break;
				
				case "friendLeaderboard":
					renderFriends(statsData);
				break;
				
				case "publicLeaderboard":
					renderPublic(statsData);
				break;
			}
		}
	}
	
	this.renderFriends = function(data)
	{
		var content = "";
	
		var me = FB.Connect.get_loggedInUser();
	
		if(data && data.length)
		{
			mE("friends-leaderboard-container").show();
			
			content += "<table>";
			content += "<tr class=\"header\"><td class=\"position\">"+l.get("leaderboard-position", [])+"</td><td class=\"name\">"+l.get("leaderboard-name", [])+"</td><td class=\"score\">"+l.get("leaderboard-score", [])+"</td></tr>";	
		
			for(var i = 0; i < data.length; i++)
			{
				if(!data[i].name)
					data[i].name = "Conrad the Sailor";
				
				var style = "";
				switch(i)
				{
					case 0:
						style = "first";
					break;
				
					case 1:
						style = "second";
					break;
				
					case 2:
						style = "third";
					break;
				}
			
				//content += "<tr class=\""+style+"\"><td class=\"position\">"+(i + 1)+"</td><td><img src=\""+this.data[i].pic_square+"\" alt=\""+this.data[i].name+"\" /></td><td>"+this.data[i].name+"</td><td class=\"score\">"+this.data[i].score+"</td></tr>";
				if(me != null && data[i].uid != me)
					content += "<tr class=\""+style+"\"><td class=\"position\">"+(i + 1)+"</td><td><a href=\"javascript:game.fb.target.selectFriend("+data[i].uid+", '"+data[i].name.replace("'", "\\'")+"', 1)\">"+data[i].name+"</a></td><td class=\"score\">"+addCommas(data[i].score)+"</td></tr>";
				else
					content += "<tr class=\""+style+"\"><td class=\"position\">"+(i + 1)+"</td><td>"+data[i].name+"</td><td class=\"score\">"+addCommas(data[i].score)+"</td></tr>";
			}
		
			content += "</table>";
		}
		
		gE("friends-leaderboard").innerHTML = content;
		parent.hideLoader();
	}
	
	this.renderPublic = function(data)
	{
		var content = "";
	
		var me = FB.Connect.get_loggedInUser();
	
		if(data && data.length)
		{
			mE("global-leaderboard-container").show();
			
			content += "<table>";
			content += "<tr class=\"header\"><td class=\"position\">"+l.get("leaderboard-position", [])+"</td><td class=\"name\">"+l.get("leaderboard-name", [])+"</td><td class=\"score\">"+l.get("leaderboard-score", [])+"</td></tr>";	
		
			for(var i = 0; i < data.length; i++)
			{
				if(!data[i].name)
					data[i].name = "Conrad the Sailor";
				
				var style = "";
				switch(i)
				{
					case 0:
						style = "first";
					break;
				
					case 1:
						style = "second";
					break;
				
					case 2:
						style = "third";
					break;
				}
			
				//content += "<tr class=\""+style+"\"><td class=\"position\">"+(i + 1)+"</td><td><img src=\""+this.data[i].pic_square+"\" alt=\""+this.data[i].name+"\" /></td><td>"+this.data[i].name+"</td><td class=\"score\">"+this.data[i].score+"</td></tr>";
				if(me != null && data[i].uid != me)
					content += "<tr class=\""+style+"\"><td class=\"position\">"+(i + 1)+"</td><td><a href=\"javascript:game.fb.target.selectFriend("+data[i].uid+", '"+data[i].name.replace("'", "\\'")+"', 1)\">"+data[i].name+"</a></td><td class=\"score\">"+addCommas(data[i].score)+"</td></tr>";
				else
					content += "<tr class=\""+style+"\"><td class=\"position\">"+(i + 1)+"</td><td>"+data[i].name+"</td><td class=\"score\">"+addCommas(data[i].score)+"</td></tr>";
			}
			
			content += "</table>";
		}
	
		gE("global-leaderboard").innerHTML = content;
		parent.hideLoader();
	}
	
	this.render = function()
	{
		mE("friends-leaderboard-container,global-leaderboard-container").hide();

		this.parent.showLoader();

		if(game.fb.user != null)
		  this.reqs.get("stats.friendLeaderboard", "friendLeaderboard", null);

		this.reqs.get("stats.publicLeaderboard", "publicLeaderboard", null);
	}
	
	this.show = function(){	this.render(); gE("stats").style.display = "block"; }
	this.hide = function(){	gE("stats").style.display = "none"; }
	
	this.init = function()
	{
		this.score = 0;
		this.level = 1;
		
		if(game.fb.user)
			this.reqs.get("stats.getScore", "getScore", null);
	}
}

