var pickup_interval;
var pickup_total = 0;
var pickup_num = 0;
var pickup_timer = 4000;

/* lady
----------------------------------------------- */
$(function() {

	// amazon open
	$("#bigimage").bind("click", amazonOpen);

	// search
	$("#search form").bind("submit", searchSubmit);
	$("#search .submit a").bind("click", searchSubmit);
	$("#search .field input").bind("focus", searchFieldFocus);
	$("#search .field input").bind("blur", searchFieldBlur);

	// image hover
	$(".hover").css({ backgroundColor:"#fff" });
	$(".hover").bind("click", imageClick);
	$(".hover").hover(imageRollOver, imageRollOut);

	// blank
	$(".blank").bind("click", blankOpen);

	// pageup
	$("#pageup a").bind("click", pageup);

	// preview
	$("#smallimage li a").bind("click", previewOpen);

	// pickup flip
	pickup_total = $("#pickup .pickups .pickup").length / 5;
	pickup_interval = setInterval(pickupSlide, pickup_timer);
	$("#pickup").hover(pickupRollOver, pickupRollOut);

	// field focus
	$(".field input").bind("click", fieldFocus);
	$(".field textarea").bind("click", fieldFocus);

	// load
	$(window).bind("load", load);

	// unload
	$(window).bind("unload", unload);

});

/* load
----------------------------------------------- */
function load() {

	/*
	var loading_img = $(document.createElement("img"));
	loading_img.attr("src", "/common/images/loading.gif");
	*/

	$("#smallimage li").each(function() {
		$("a", this).css({ background:"#fff" });
		var preview_img = $(document.createElement("img"));
		preview_img.attr("src", $("a", this).attr("href"));
	});
	$("#smallimage li a img").eq(0).animate({ opacity:0.5 }, 250);

}

/* unload
----------------------------------------------- */
function unload() {

	// mask remove
	$("#mask").remove();

	// mask loading
	$("#loading").remove();
	
	// unbind
	$(window).unbind("resize", loadingReset);
}

/* search
----------------------------------------------- */
function searchSubmit() {
	var str = searchTrim($("#search .field input"));
	if (str != "" && str != "キーワード検索" && !str.match(/^ $/)) {
		//loadingMask();
		$("#search form").unbind("submit", searchSubmit);
		$("#search form").submit();
	}	
	else {
		return false;
	}
}
/* focus */
function searchFieldFocus() {
	var str = $("#search .field input").val();
	if (str == "キーワード検索") {
		$("#search .field input").val("");
	}
	$("#search").addClass("focus");
}
/* blur */
function searchFieldBlur() {
	var str = searchTrim($("#search .field input"));
	if (str == "" || str.match(/^ $/)) {
		$("#search .field input").val("キーワード検索");
	}
	$("#search").removeClass("focus");
}
/* trim */
function searchTrim(str) {
	str.val(str.val().replace(/　/g, " "));
	str.val(str.val().replace(/[ ]+/g, " "));
	str.val(str.val().replace(/^[ 　\t\r\n]+|[ 　\t\r\n]+$/g, ""));
	return str.val();
}

/* image hover
----------------------------------------------- */
function imageClick() {
	$("img", this).stop();
	$("img", this).css({ opacity:0.5 });
	$("img", this).animate({ opacity:0.7 }, 250);
}
function imageRollOver() {
	$("img", this).stop();
	$("img", this).css({ opacity:0.7 });
}
function imageRollOut() {
	$("img", this).stop();
	$("img", this).animate({ opacity:1 }, 500);
}

/* pickup flip
----------------------------------------------- */
function pickupSlide() {
	pickupNext();
}
function pickupRollOver() {
	clearInterval(pickup_interval);
}
function pickupRollOut() {
	clearInterval(pickup_interval);
	pickup_interval = setInterval(pickupSlide, pickup_timer);
}
function pickupNext() {
	pickup_num++;
	if (pickup_num >= pickup_total) {
		pickup_num = 0;
	}
	$("#pickup .pickups").css({ top:240*pickup_num*-1 });
	pickupFlip();
}
function pickupPrevious() {
	pickup_num--;
	if (pickup_num < 0) {
		pickup_num = pickup_total - 1;
	}
	$("#pickup .pickups").css({ top:240*pickup_num*-1 });
	pickupFlip();
}
function pickupFlip() {
	$("#pickup .pickups .pickup img").stop();
	$("#pickup .pickups .pickup img").css({ opacity:0 });
	$("#pickup .pickups .pickup img").animate({ opacity:1 }, 500);
}

/* share open
----------------------------------------------- */
function shareOpen() {
	var url = $("meta[name=generator]").attr("content");
	var li = '<li class="javari"><a href="' + url +'">Javariで詳しく見る</a></li>';
	$("#share ul").prepend(li);
	$("#share .javari a").bind("click", blankOpen);
	$("#share .javari a").hover(shareRollOver, shareRollOut);
}
function shareRollOver() {
	$(this).stop();
	$(this).css({ opacity:0.7 });
}
function shareRollOut() {
	$(this).stop();
	$(this).animate({ opacity:1 }, 250);
}


/* amazon open
----------------------------------------------- */
function amazonOpen() {
	var url = $("meta[name=generator]").attr("content");
	var w = window.open(url);
	w.focus();
	return false;
}

/* preview open
----------------------------------------------- */
function previewOpen() {

	$("#smallimage li a img").css({ opacity:1 });
	$("img", this).animate({ opacity:0.5 }, 250);

	var url = $(this).attr("href");
	var alt = $(this).attr("alt");
	var img = $(document.createElement("img"));

	if ($("#bigimage p img").attr("src") != url) {
		img.attr({ src:url, width:572, height:572, alt:alt });
		$("#bigimage p img").remove();
		$("#bigimage p").html(img);
	}
	
	return false;
}

/* loading mask
----------------------------------------------- */
// mask set
function loadingMask() {

	var mask = $(document.createElement("div"));
	var loading = $(document.createElement("div"));

	mask.attr("id", "mask");
	loading.attr("id", "loading");

	mask.css({ opacity:0, position:"fixed", top:0, left:0, width:"100%", height:"100%", background:"#000" });
	loading.css({ opacity:0, position:"fixed", top:Math.floor($(window).height() / 2 - 100), left:Math.floor($(window).width() / 2 - 51) });

	$("body").append(mask);
	$("body").append(loading);

	mask.delay(500).animate({ opacity:0.3 }, 250);
	loading.delay(500).animate({ opacity:1 }, 250);

	$(window).bind("resize", loadingReset);
}
// loading reset
function loadingReset() {
	$("#loading").css({ top:Math.floor($(window).height() / 2 - 100), left:Math.floor($(window).width() / 2 - 51) });
}

/* fieldFocus
----------------------------------------------- */
function fieldFocus() {
	$(this).select();
}

/* blank open
----------------------------------------------- */
function blankOpen() {
	var url = $(this).attr("href");
	var w = window.open(url);
	w.focus();
	return false;
}

/* pageback
----------------------------------------------- */
function pageback() {
	loadingMask();
	history.back();
	return false;
}

/* pageup
----------------------------------------------- */
function pageup() {
	$("html, body").animate({ scrollTop:0 }, 500, "easeInOutCirc");
	return false;
}

