﻿/*---------------------------------------------
	オープニングアニメーション
  ---------------------------------------------*/

function openingTop() {
	if(!ua("ipad")) {
		$(".topImage1").stop().animate({marginLeft:"0"},800);
		$(".topImage2").stop().animate({marginTop:"0"},800);
		$(".topImage3").stop().animate({marginLeft:"-220px"},800);
		$(".topImage4").stop().animate({marginTop:"-124px"},800);
	} else {
		$(".topImage1").css({
			webkitTransitionDuration:"800ms",
			webkitTransitionTimingFunction:"ease-out",
			webkitTransform:"translate3d(220px,0px,0px)"
		});
		$(".topImage2").css({
			webkitTransitionDuration:"800ms",
			webkitTransitionTimingFunction:"ease-out",
			webkitTransform:"translate3d(0px,124px,0px)"
		});
		$(".topImage3").css({
			webkitTransitionDuration:"800ms",
			webkitTransitionTimingFunction:"ease-out",
			webkitTransform:"translate3d(-220px,0px,0px)"
		});
		$(".topImage4").css({
			webkitTransitionDuration:"800ms",
			webkitTransitionTimingFunction:"ease-out",
			webkitTransform:"translate3d(0px,-124px,0px)"
		});
	}
}



/*---------------------------------------------
	トップページ用ボックスアニメーション
  ---------------------------------------------*/

$(document).ready(function() {
	$("#topPortfolio").css({width:($("#topPortfolio .link").length+1)*230+"px"});
});

function topBoxHover() {

	var pImg = 1;
	var ml = 0;
	var pNum = ($("#topPortfolio .link").length+1);
	var pCurrentNum = 0;
	var topPortfolioW = pNum*230;
	$("#topPortfolio .link:first-child").clone().appendTo("#topPortfolio");
	
	$.timer(3000, function(timer){
		if(!ua("ipad")) {
			if(pImg) {
				$("#topPortfolio .link").eq(pCurrentNum).find(".image p").animate({marginLeft:"-220px"}, 500, "easeInOutQuad");
				pCurrentNum = (pCurrentNum == pNum-2) ? 0 : pCurrentNum+1;
				pImg = 0;
			} else {
				ml -= 230;
				$("#topPortfolio").animate({marginLeft:ml+"px"}, 500, "easeInOutQuad", function() {
					$("#topPortfolio .link .image p").css({marginLeft:0});
					if(ml <= -(topPortfolioW-230)) {
						ml = 0;
						$(this).css({marginLeft:0});
					}
				});
				pImg = 1;
			}
		} else {
			if(pImg) {
				$("#topPortfolio .link").eq(pCurrentNum).find(".image p").css({
					webkitTransitionDuration:"500ms",
					webkitTransitionTimingFunction:"ease-in-out",
					webkitTransform:"translate3d(-220px,0px,0px)"
				});
				pCurrentNum = (pCurrentNum == pNum-2) ? 0 : pCurrentNum+1;
				pImg = 0;
			} else {
				ml -= 230;
				$("#topPortfolio")
					.unbind("webkitTransitionEnd")
					.bind("webkitTransitionEnd", function() {
						if(pImg) {
							$("#topPortfolio .link .image p").css({
								webkitTransitionDuration:"0ms",
								webkitTransform:"translate3d(0px,0px,0px)"
							});
							if(ml <= -(topPortfolioW-230)) {
								ml = 0;
								$(this).css({
									webkitTransitionDuration:"0ms",
									webkitTransform:"translate3d(0px,0px,0px)"
								});
							}
						}
					})
					.css({
						webkitTransitionDuration:"500ms",
						webkitTransitionTimingFunction:"ease-in-out",
						webkitTransform:"translate3d("+ml+"px,0px,0px)"
					});
				pImg = 1;
			}
		}
	});

	$(".link, .blank").hover(function() {
		if(!ua("ipad")) {
			$(this).find(".topImage1").stop().animate({marginLeft:"-220px"},500,"easeInOutQuad");
			$(this).find(".topImage2").stop().animate({marginTop:"-124px"},500,"easeInOutQuad");
			$(this).find(".topImage3").stop().animate({marginLeft:"0"},500,"easeInOutQuad");
			$(this).find(".topImage4").stop().animate({marginTop:"0"},500,"easeInOutQuad");
		}
	},function() {
		if(!ua("ipad")) {
			$(this).find(".topImage1").stop().animate({marginLeft:"0"},500,"easeInOutQuad");
			$(this).find(".topImage2").stop().animate({marginTop:"0"},500,"easeInOutQuad");
			$(this).find(".topImage3").stop().animate({marginLeft:"-220px"},500,"easeInOutQuad");
			$(this).find(".topImage4").stop().animate({marginTop:"-124px"},500,"easeInOutQuad");
		}
	});

}



/*---------------------------------------------
	メインビジュアル用アニメーション
  ---------------------------------------------*/

var mv = 1;
var mvPrev = 0;
var breakTimer = 0;
var switching = 0;

$(document).ready(function() {
	var mvMax = $("#mainvisual ul li").length;
	if(mvMax == 1) return false;
	var innerSwitch = "";
	for (i=0; i<mvMax; i++) {
		$("#mainvisual ul li").eq(i).addClass("mainvisual"+(i+1));
		if(i>=1)$("#mainvisual ul li").eq(i).css({display:"none"});
		innerSwitch += "<li><a class='switch"+(i+1)+"' href='#'></a></li>";
	}
	$("#topMainvisualArea").append("<ul id='switch'>"+innerSwitch+"</ul>");
	$("#switch .switch1").addClass("current");
	$("#switch").css({width:(41*mvMax+4)+"px"});
	if(!ua("ie6") && !ua("ie7")) {
		$("#switch").css({left:(460-(41*mvMax+9))+"px"});
	} else {
		$("#switch").css({marginLeft:(460-(41*mvMax+9))+"px"});
	}

});

function topMainvisual() {
	var mvMax = $("#mainvisual ul li").length;
	if(mvMax == 1) return false;
	var counter = 0;

	$.timer(1000, function(timer){
		counter++;
		if(!breakTimer && !mv1) {
			if(counter >= 8) {
				counter = 0;
				mvPrev = mv;
				mv++;
				if(mv > mvMax) mv = 1;
				switchMainvisual();
			}
		} else if(breakTimer) {
			breakTimer = 0;
			counter = 0;
		}
	});
}

function switchMainvisual() { 
		$("#mainvisual ul .mainvisual"+mv).appendTo("#mainvisual ul");
		$("#switch .switch"+mvPrev).removeClass("current");
		$("#switch .switch"+mv).addClass("current");

		if(!ua("ipad")) {
			switching = 1;
			$("#mainvisual ul .mainvisual"+mv)
				.css({marginLeft:"-360px"})
				.animate({marginLeft:"-460px"},{queue:false, duration:500, easing:"easeOutQuad"})
				.fadeIn(500,function() {
					$("#mainvisual ul .mainvisual"+mvPrev).css({display:"none"});
					$(this).css({marginLeft:"0"});
					switching = 0;
				});
		} else {
			switching = 1;
			$("#mainvisual ul .mainvisual"+mv).css({
				display:"block",
				opacity:"0",
				webkitTransitionDuration:"0ms",
				webkitTransform:"translate3d(-360px,0px,0px)"
			});
			timerID = setTimeout(function() {
				$("#mainvisual ul .mainvisual"+mv).css({
					webkitTransitionDuration:"500ms",
					webkitTransitionTimingFunction:"ease-out",
					webkitTransform:"translate3d(-460px,0px,0px)",
					opacity:"1"
				});
			}, 10);
			timerID = setTimeout(function() {
				$("#mainvisual ul .mainvisual"+mvPrev).css({display:"none"});
				$("#mainvisual ul .mainvisual"+mv).css({
					webkitTransitionDuration:"0ms",
					webkitTransform:"translate3d(0px,0px,0px)"
				});
				switching = 0;
			}, 510);
		}
}

function clickSwitch() {
	var mvMax = $("#mainvisual ul li").length;

	$("#switch li a").click(function() {
		$(this).blur();
		if($(this).hasClass("current") || switching) return false;
		for(i=1; i<=mvMax; i++) {
			if($(this).hasClass("switch"+i)) {
				mvPrev = mv;
				mv = i;
				breakTimer = 1;
				switchMainvisual();
			}
		}
		return false;
	});
}

var mv1 = 0;

function mainvisual1() {
	var x = 0;
	var y = 0;
	$("#mainvisual1 img").mousedown(function(e) {
		var bx = e.pageX;
		var by = e.pageY;
		$(document).bind("mousemove.move", function(e) {
			mv1 = 1;
			x += bx - e.pageX;
			bx = e.pageX;
			if(x < 0) x = 0;
			if(x > 340) x = 340;
			y += by - e.pageY;
			by = e.pageY;
			if(y < 0) y = 0;
			if(y > 160) y = 160;
			$("#mainvisual1 img").css({marginLeft:"-"+x+"px", marginTop:"-"+y+"px"});
			return false;
		}).one("mouseup", function() {
			mv1 = 0;
			$(document).unbind("mousemove.move");
		});
		return false;
	});
}

function mainvisual1iPad() {
	var box = $("#mainvisual1 img")[0];
	var touchHandler = getTouchHandler();
	box.addEventListener("touchstart", touchHandler, false);
	box.addEventListener("touchmove", touchHandler, false);
	box.addEventListener("touchend", touchHandler, false);
}

function getTouchHandler() { 
	var x = 0;
	var y = 0;
	var bx = 0;
	var by = 0;
	var prevX = 0;
	var prevY = 0;
	return function(e) {
		e.preventDefault();
		var touch = e.touches[0];
		if (e.type == "touchstart") {
			boxTouchFlag = mv1 = 1;
			bx = touch.pageX;
			by = touch.pageY;
		} else if (e.type == "touchmove") {
			x = touch.pageX - bx + prevX;
			if(x > 0) x = 0;
			if(x < -340) x = -340;
			y = touch.pageY - by + prevY;
			if(y > 0) y = 0;
			if(y < -160) y = -160;
			$("#mainvisual1 img").css({webkitTransform:"translate3d("+x+"px,"+y+"px,0px)"});
		} else if (e.type == "touchend") {
			prevX = x;
			prevY = y;
			$.timer(10, function(timer) {
				boxTouchFlag = mv1 = 0;
				timer.stop();
			});
		}
	}
}



/*---------------------------------------------
	画像遅延ロード
  ---------------------------------------------*/

var loadedImage = 0;

function imageDelayLoad() {
	if(ua("ipad")) {return false;}
	$(delayImage).each(function(i) {
		$(this).bind("load", function() {
			$(this).fadeIn(500, function() {
				$(this).parent().parent().css({backgroundImage: "none"});
				loadedImage++;
				if(loadedImage == $(delayImage).length) {
					openingTop();
					topBoxHover();
				}
			});
		})
		.attr("src", original[i]);
	});
};



/*---------------------------------------------
	ニュース
  ---------------------------------------------*/

$("html").addClass("topOpening");



/*---------------------------------------------
	メインルーチン
  ---------------------------------------------*/

$(document).ready(function() {
	if(!ua("ipad")) {
		mainvisual1();
	} else {
		mainvisual1iPad();
	}
});

$(window).unbind("load").bind("load", function() {
	commonLoad();
	$.timer(1000, function(timer) {
		if(ua("ipad")) {
			openingTop();
			topBoxHover();
		} else {
			$("html").removeClass("topOpening");
		}
		$("#topNews").jScrollPane();
		topMainvisual();
		clickSwitch();
		timer.stop();
	});
});

