﻿var heroes =
{
	type: 0,
	timeout: null,
	gameID: 0,

	update: function(gameID, type) {
		if (gameID > 0)
			heroes.gameID = gameID;

		if (type != undefined)
			heroes.type = type;
			
		$.post(String.format(resources.get('WeekHeroesUrl'), heroes.type),
			{ g: heroes.gameID, t: heroes.type },
			heroes.onupdate, 'json')
	},
	onupdate: function(response) {
		$('#lblName').html(response.Title);
		for (var i = 1; i <= 5; i++)
			$('#trhero' + i).hide();
		for (var i = 0, j = 1; i < response.WeekHeroes.length; i++, j++) {
			var w = response.WeekHeroes[i];
			$('#heroMinime' + j).attr('src', w.AvatarPath);
			$('#heroNickname' + j).html(w.Nickname);
			$('#heroNickname' + j).attr('href', resources.get('URL_Lobby_PortalRoot') + w.Nickname);
			$('#aheroMinimeLink' + j).attr('href', resources.get('URL_Lobby_PortalRoot') + w.Nickname);
			$('#herograde' + j).html(w.GradeText);
			$('#heroNickname' + j).attr('class', w.Gender == 0 ? 'Pink au' : 'Blue au');
			if (resources.get('VAR_UserNickname') != w.Nickname && !response.IsGuest) {
				$('#aHeroGift' + j).show();
				$('#aHeroGift' + j).attr('href', String.format(resources.get('GiftsUrl'), w.Nickname));
				if (!w.IsFriend && w.UserID != response.UserID) {
					$('#aFriend' + j).show();
					$('#aFriend' + j).attr('nickname', w.Nickname);
					$('#aFriend' + j).attr('avatarpath', w.AvatarPath);
					$('#aFriend' + j).attr('gender', w.Gender);
					$('#aFriend' + j).click(function() {
						return friends.invite($(this).attr('nickname'), $(this).attr('avatarpath'), $(this).attr('gender'));
					});
				}
				else
					$('#aFriend' + j).hide();
			}
			else {
				$('#aHeroGift' + j).hide();
				$('#aFriend' + j).hide();
			}
			switch (heroes.type) {
				case 1: // TopScore
					$('#herostat' + j).html(String.format(resources.get('HeroesPoints'), w.ValueText));
					break;
				case 2: // GamesPlayed
					$('#herostat' + j).html(String.format(resources.get('HeroesPlays'), w.ValueText));
					break;
				case 3: // MostWins
					$('#herostat' + j).html(String.format(resources.get('HeroesWins'), w.ValueText));
					break;
			}
			$('#trhero' + j).show();
		}

		if (response.WeekHeroes.length == 0)
			$('#tdNoInfo').show();
		else
			$('#tdNoInfo').hide();

		$('#divHeroes').show();

		heroes.timeout = setTimeout('heroes.next();', resources.get('HeroesRefreshInterval'));
	},
	next: function() {
		clearTimeout(heroes.timeout);
		if (heroes.type == 3)
			heroes.type = 1;
		else
			heroes.type++;
		heroes.update(heroes.gameID, heroes.type);
	},
	previous: function() {
		clearTimeout(heroes.timeout);
		if (heroes.type == 1)
			heroes.type = 3;
		else
			heroes.type--;
		heroes.update(heroes.gameID, heroes.type);
	}
}
