$(function() {
	// get common ranks
	var now = new Date();
	var tomorrow = new Date();
	tomorrow.setTime(tomorrow.getTime() + 60 * 60 * 24 * 1000);
	var now_str = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDate();
	var tw_str = tomorrow.getFullYear() + '-' + (tomorrow.getMonth() + 1) + '-' + tomorrow.getDate();
	rank('get_common_ranks', {game_id : 2, group : 'game', timeregion : now_str + ',' + tw_str});
	
	// get user rank
	var search = location.search;
	var m = (/rank_id=(\d+)/).exec(search);
	if (m && m[1]) {
		var rank_id = m[1];
		rank('get_replay', {rank_id : rank_id, group : 'game'});
	}
});

rank({
	RANK_ITEM : '<tr><td>${INDEX}</td><td><div class="name">${NAME}</div></td><td align="right">${WPM}</td></tr>',
	
	RENDER_RANKS : function(id, ranks) {
		var tbody = $('#' + id + ' .body tbody');
		var r = null;
		for (var i = 0, j = 0, k = 0; i < ranks.length && j < 10; i++) {
			var rank = ranks[i];
			if (rank) {
				if (r != rank.rank) {
					r = rank.rank;
					k = j + 1;
				}
				var index = rank.rank_index || (k);
				var replay = rank.replay.split(',');
				var name = replay[1] || '匿名';
				var wpm = (replay[0] || r + '字/分').replace(/wpm/ig, '字/分');
				var item = this.RANK_ITEM.replace('${INDEX}', index).replace('${NAME}', name).replace('${WPM}', wpm);
				tbody.append(item);
				j++;
			}
		}
	},
	
	GET_COMMON_RANKS : function(r) {
		if (r.result) {
			if (r.all_ranks) {
				this.RENDER_RANKS('all_ranks', r.all_ranks);
			}
			if (r.region_ranks) {
				this.RENDER_RANKS('day_ranks', r.region_ranks);
			}
			if (r.last_ranks) {
				this.RENDER_RANKS('last_ranks', r.last_ranks);
			}
		}
	},
	
	GET_REPLAY : function(r) {
		if (r.result) {
			var rk = r.rank;
			var name = rk.replay.split(',')[1]
			var wpm = rk.rank + '字/分';
			var rank_index = r.rank_index;
			$('.user_rank .name').html(name);
			$('.user_rank .wpm').html(wpm);
			$('.user_rank .rank_index').html(rank_index);
			$('.user_rank').show();
			
		}
	}
});