$(document).ready(function() {

	$("#top_recommend dl:gt(4)").css("display", "none");

	var crt_cur_pos = 0,
		new_cur_pos = 0,
		disp_item_cnt = 5,
		delay_interval = 50,
		is_exec = false,
		next = false;

	//var max_cur_pos = $("#top_recommend dl").size() - disp_item_cnt;
	var max_cur_pos = $("#top_recommend dl").size() - 1;
	if (max_cur_pos < 0) {
		max_cur_pos = 0;
	}

	if (max_cur_pos + 1 > disp_item_cnt) {
		var img_next = document.createElement("img");
		img_next.src = "./_img_bg/icon_slideR_20x25px.png";
		img_next.className = "reccomendCtrl reccomendCtrlR";

		var img_before = document.createElement("img");
		img_before.src = "./_img_bg/icon_slideL_20x25px.png";
		img_before.className = "reccomendCtrl reccomendCtrlL";

		var main = document.getElementById("top_recommend");
		main.insertBefore(img_next, main.firstChild);
		main.insertBefore(img_before, main.firstChild);
	}

	$(".reccomendCtrlR").bind("click", function() {
		if (is_exec) {
			return;
		} else {
			is_exec = true;
		}

		next = true;
		change_items();
	});
	$(".reccomendCtrlL").bind("click", function() {
		if (is_exec) {
			return;
		} else {
			is_exec = true;
		}

		next = false;
		change_items();
	});

	/*
	$(".recomContents").bind("mouseover", function() {
		$(".reccomendCtrl").css("display", "block");
	});

	$(".reccomendCtrl").css("display", "none");
	$(".recomContents").bind("mouseleave", function() {
		$(".reccomendCtrl").css("display", "none");
	});
	*/ 

	function change_items() {

		var each_pos = 0,
			hide_item_cnt = 0;

		// 既に非表示化されている数を考慮
		if (crt_cur_pos + disp_item_cnt > max_cur_pos) {
			hide_item_cnt = (crt_cur_pos + disp_item_cnt) - (max_cur_pos + 1);
		}

		if (next) {
			new_cur_pos = crt_cur_pos + disp_item_cnt;
		} else {
			new_cur_pos = crt_cur_pos - disp_item_cnt;
		}

		if (new_cur_pos > max_cur_pos) {
			new_cur_pos = 0;
		} else if (new_cur_pos < 0) {
			new_cur_pos = max_cur_pos;
		}

		// 現在のアイテムを非表示
		$("#top_recommend dl").each(function(idx) {

			var delay_time;

			// 現在の表示範囲外
			if (crt_cur_pos > idx || (crt_cur_pos + disp_item_cnt) < idx) {
				return;
			}

			if (next) {
				delay_time = (disp_item_cnt - each_pos) * delay_interval;
			} else {
				delay_time = each_pos * delay_interval;
			}

			$(this).delay(delay_time).animate(
				{
					"opacity": "0",
					"margin-top": "30px",
				},
				300,
				function() {
					hide_item_cnt ++;

					// 全ての非表示が完了
					if (hide_item_cnt == disp_item_cnt) {
						$("#top_recommend dl").css("display", "none");

						//setTimeout(disp_items(next), 100);
						//$.oneTime(disp_items(next), 100);
						$(document).oneTime(100, disp_items);
					}
				}
			);

			each_pos ++;
		});
	}


	// 新しいアイテムを表示
	function disp_items() {

		var disp_cur_pos = new_cur_pos,
			i,
			delay_time,
			end_animate_item_cnt = 0;

		for (i = 0 ; i < disp_item_cnt ; i ++, disp_cur_pos ++) {

			if ($("#top_recommend dl:eq(" + disp_cur_pos + ")").size() == 0) {
				end_animate_item_cnt ++;
				continue;
			}

			$("#top_recommend dl:eq(" + disp_cur_pos + ")").css("opacity", "0");
			$("#top_recommend dl:eq(" + disp_cur_pos + ")").css("margin-top", "20px");
			$("#top_recommend dl:eq(" + disp_cur_pos + ")").css("display", "block");

			if (next) {
				delay_time = (disp_item_cnt - i) * delay_interval;
			} else {
				delay_time = i * delay_interval;
			}

			$("#top_recommend dl:eq(" + disp_cur_pos + ")").delay(delay_time).animate(
				{
					"opacity": "1",
					"margin-top": "10px",
				},
				300,
				function () {
					end_animate_item_cnt ++;

					if (end_animate_item_cnt == disp_item_cnt) {
						is_exec = false;
						
						crt_cur_pos = new_cur_pos;

						$(".recomContents div h2").text("おすすめ商品").append("&nbsp;&nbsp;<span class='fNormal f12px'>(" + (Math.floor(crt_cur_pos / disp_item_cnt) + 1) + "/" + (Math.floor(max_cur_pos / disp_item_cnt) + 1) + ")&nbsp;&nbsp;旅のスペシャリストが注目の旅行用品を厳選！</span>");
					}
				}
			);
		}
	}

	// 初回
	$(".recomContents div h2").text("おすすめ商品").append("&nbsp;&nbsp;<span class='fNormal f12px'>(" + (Math.floor(crt_cur_pos / disp_item_cnt) + 1) + "/" + (Math.floor(max_cur_pos / disp_item_cnt) + 1) + ")&nbsp;&nbsp;旅のスペシャリストが注目の旅行用品を厳選！</span>");
});

