function Leaderboard(cntrl)
{
	var leaderboard = {};
	leaderboard = new NET(cntrl);// inherit net class
	
	/* Attributes */
	leaderboard.leaderArr 					= new Array();
	leaderboard.isLoaded 					= false;
	leaderboard.sort_by						= "richest";
	
	/* EOF Attributes */
	
	/* Function Declaration */

	leaderboard.getLeaderList				= getLeaderList;
	leaderboard.getLeaderListCallback		= getLeaderListCallback;
	leaderboard.getRace						= getRace;	
	leaderboard.loadPage 					= loadPage;
	leaderboard.loadRacePage				= loadRacePage;
	leaderboard.loadSortPage				= loadSortPage;
	leaderboard.refresh						= refresh;
	
	/* EOF Function Declaration */
	
	/* Function Definition */
	
	function getLeaderList(sortby)
	{
		leaderboard.makeRequest();
	};
	
	function getLeaderListCallback(xml)
	{
		$('#leaderboard_lists').show();
		leaderboard.isLoaded = true;
		leaderboard.clearMessage();
		var rank = 1;
		var str ="";
		var title = "";
		var sortby							= $(xml).find('sortby').text();
		switch(sortby)
		{
			case 'gang_size':
				title += "Clan Size";
				break;									
			case 'most_wins':
				title += "Fights Won";
				break;
			case 'mission_completed':
				title += "Quests";
				break;
			case 'bounty_collected':
				title += "Bounty Collected";
				break;
			case 'most_kills':
				title += "Kills Count";
				break;
			case 'richest':
				title += "Treasury";
				break;
			case 'level':
				title += "Level";
				break;
		}
		$('#leader_acheivement').html(title.toUpperCase());
		$('user', xml).each(function(){
			var uname 							= uuescape($(this).find('name').text());
			var uid								= parseInt($(this).attr('id'));	
			var thumbnail						= $(this).find('thumb').text();
			var total							= numberFormat($(this).find('total').text());
			if (total == "")
			total = 0;
			var race							= $(this).find('race').text();
			var humanList 						= "";
			var vampireList 					= "";
			var werewolfList					= "";
			leaderboard.leaderArr['uid']={'uname':uname, 'thumbnail':thumbnail,'total':total, 'race':race };
			switch(rank)
			{
				case 1:		
				case 2:
				case 3:		
					$('#leader_name'+rank).html(p(uname,uid)+'<br /><br />'+pImg(uuescape(thumbnail), uid, uname));
					$('#leader_race'+rank).html('Race : '+race);
					if (sortby == 'richest')
					$('#leader_acheivement'+rank).html(title+' :<br /><span class ="gold">'+numberFormat(total)+' g</span>');
					else
					$('#leader_acheivement'+rank).html(title+' :<br />'+numberFormat(total));
					break;
				default:
					str += "<div class=\"feed_content\">" +
								"<div class=\"feed_conten_img\" style=\"float:left;\">"+pImg(uuescape(thumbnail), uid, uname,75,75)+"</div>"+
								"<div class=\"leader_desc\" >"+
										"<div class=\"leader_rank\" >#"+rank+"</div>"+
										"<div class=\"leader_name\">"+p(uname,uid)+"</div>"+
										"<div  class=\"leader_race\">"+race+"</div>"+
										"<div class=\"leader_status\" >";
				if(sortby == 'richest')
					str += "<span class=\"gold\">"+numberFormat(total)+" g</span>";
				else
					str += numberFormat(total);
				str += "</div>"+
							"</div>"+
						"</div>"+
						"<div class=\"clear\"></div>";						
					break;
			}
			rank++;
			});
		$('#leaderboard_list').html(str);
	};//getLeaderListCallback ends
	
	function getRace()
	{
		$('#leaderboard_lists').hide();
		switch (leaderboard.race)
		{
			case 1:
			return 'human';
			break;
			case 2:
			return 'vampire';
			break;
			case 3:
			return 'werewolf';
			break;
		}
		leaderboard.getleaderList(leaderboard.sort_by,leaderboard.race);
	
	};//getrace ends
	
	function loadPage()
	{			
		if(!leaderboard.isLoaded)
		{
			$('#leaderboard_lists').hide();
			leaderboard.getLeaderList(leaderboard.sort_by);
		}		
	};//loadPage ends
	
	function refresh()
	{		
		leaderboard.leaderArr = new Array();
		leaderboard.isLoaded = false;
		leaderboard.sort_by	= "richest";
		$('#leaderboard_lists').hide();
		leaderboard.getLeaderList(leaderboard.sort_by);
		leaderboard.getLeaderList();
	};
	
	function loadRacePage(sub_page)
	{
		$('#leaderboard_lists').hide();
		switch (sub_page)
		{
			case 'vampire':
			leaderboard.race = 1;
			break;
			case 'human':
			leaderboard.race = 2;
			break;
			case 'werewolf':
			leaderboard.race = 3;
			break;
		}
		leaderboard.getLeaderList(leaderboard.sort_by,leaderboard.race);
	
	}; //loadRacePage ends
	
	function loadSortPage(sortby)
	{
		$('#leaderboard_lists').hide();
		switch(sortby)
		{
			case 'Gang Size':
				leaderboard.sort_by = "gang_size";
				break;			
			case 'Fight Won':
				leaderboard.sort_by = "most_wins";
				break;
			case 'Adventure':
				leaderboard.sort_by = "mission_completed";
				break;
			case 'Top Bounty Collector':
				leaderboard.sort_by = "bounty_collected";
				break;
			case 'Most Kill':
				leaderboard.sort_by = "most_kills";
				break;
			case 'Bank Balance':
				leaderboard.sort_by = "richest";
				break;
			case 'Levels':
				leaderboard.sort_by = "level";
				break;
		}
		leaderboard.getLeaderList(leaderboard.sort_by);
	
	}; //loadSortpage ends

	/* EOF Function Definition */
	
	return leaderboard;
};