// ランキングの日付
target_dates = {
	'dayly'   : {},
	'weekly'  : {},
	'monthly' : {},
	'yearly'  : {}
}

// 現在のランキングが何番目か？
target_dates_index = {
	'dayly'   : 1,
	'weekly'  : 1,
	'monthly' : 1,
	'yearly'  : 1
}

//
function locationsetup(){
	var url  = location.href;
	var urls = url.split('/');

	if(url.match('ranking') && urls[4] && (!urls[4].match('^#'))){
		// 個別ページ用
		target_dates[urls[4]]       = getRankingDates(getRankingPullDownElements(urls[4]));
		if(Math.abs(target_dates[urls[4]].indexOf(urls[5])) == 0){
			target_dates_index[urls[4]] = 1    // 現在のランキングが何番目か？
		}else {
			target_dates_index[urls[4]] = Math.abs(target_dates[urls[4]].indexOf(urls[5]));    // 現在のランキングが何番目か？
		}
		changeFooterNavi(urls[4]);    // 現在のランキングからfooterを表示を切り替え
	}else if( url.match('ranking') && (urls[4] == '') ) {
		// ランキング index 用
		target_dates['weekly']  = getRankingDates(getRankingPullDownElements('weekly'));
		target_dates['monthly'] = getRankingDates(getRankingPullDownElements('monthly'));
		target_dates['yearly']  = getRankingDates(getRankingPullDownElements('yearly'));
		// 現在のランキングからfooterを表示を切り替え
		changeFooterNavi('weekly');
		changeFooterNavi('monthly');
		changeFooterNavi('yearly');
	}
}

// 
function getRankingPullDownElements(type) {
	var rankingPullDown_id = 'rankingPullDown_' + type;
	if($('#' + rankingPullDown_id)){
		var elements = $('#' + rankingPullDown_id + ' option');
		return elements;
	}
}

function getRankingDates(elements) {
	var target_dates = new Array();
	if(elements){
		elements.each(function(i){
			var value = $(this).val().split('/');
			target_dates[i] = value[3];
		});
	}
	return target_dates;
}

// 
function changeFooterNavi(type) {
	// 最新のランキング
	if(target_dates_index[type] == 1){
		if($('#nextRanking_' + type)){
			$('#nextRanking_' + type).hide();
		}
	}
	// 間のランキング
	if((target_dates_index[type] > 1) && (target_dates_index[type] < (target_dates[type].length-1))) {
		$('#nextRanking_' + type).show();
		$('#prevRanking_' + type).show();
	}
	// 一番古いランキング
	if((target_dates.length-1) == target_dates_index[type]){
		if($('#prevRanking_' + type)){
			$('#prevRanking_' + type).hide();
		}
	}
}

//
function prevRanking(type) {
	target_dates_index[type] = target_dates_index[type] + 1;
	changeFooterNavi(type);
	getRakingHTML(type, target_dates[type][target_dates_index[type]]);    // 差し替え
}

//
function nextRanking(type) {
	target_dates_index[type] = target_dates_index[type] - 1;
	changeFooterNavi(type);
	getRakingHTML(type, target_dates[type][target_dates_index[type]]);    // 差し替え
}

// 
function getRakingHTML(type, targetDate) {
	var html       = '';
	var url        = '/ranking/json_' + type + '/' + targetDate;
	var id_name    = 'rakingTable_' + type;
	var loadingImg = '<p style="text-align:center;margin:5em;"><img src="/common/images/ajax-loader.gif" border="0" alt="読み込み中" /></p>';

	$.ajax({
		url: url,
		type: 'GET',
		beforeSend: function(){
			$('#' + id_name).html(loadingImg);
		},
		success: function(data, status, xhr) { 
			if(data != ''){
				$('#' + id_name).html(data);
				window.scrollTo(0, $('#' + type).offset().top-15);
			}
		}
	});
}

window.onload = locationsetup;    // 読み込み
