var i;
var n;
var winW;
var winH;

var rollOverId;
var overImgs;
var overImgElem;
var outImgs;
var outImgElem;

var cartEntranceArray;

var slideBoxArray;

function init(){
	/*
	* 画像へのtitle設定
	*/
	$("img").each(function(idx){
		if($(this).attr("title").length == 0){
			$(this).attr("title",$(this).attr("alt"));
		}
	});
	
	/*
	* ロールオーバー設定
	*/
	//管理用配列の生成
	overImgs = new Array();
	outImgs = new Array();
	//対象画像に対して設定
	$("img.over").each(function(idx){
		//クローンの生成、不要クラスの削除、親要素への追加
		overImgElem = $(this).clone(true);
		overImgElem.removeClass("over");
		$(this).after(overImgElem);
		overImgElem.hide();
		//オーバー用画像パスの取得
		var imgSrc = $(this).attr("src");
		var imgPrefix = imgSrc.substr(0, imgSrc.lastIndexOf("."));
		var imgPostfix = imgSrc.substring(imgSrc.lastIndexOf("."));
		//本体への属性、ハンドラの追加
		$(this).attr({
			rollOverId:idx
		});
		$(this).css("cursor","pointer");
		$(this).bind("mouseover", onImgOver);
		//クローンへの属性、ハンドラの追加
		overImgElem.attr({
			src:imgPrefix + "_over" + imgPostfix,
			rollOverId:idx
		});
		overImgElem.css("cursor","pointer");
		overImgElem.bind("mouseout", onImgOut);
		//管理用配列への登録
		outImgs.push($(this));
		overImgs.push(overImgElem);
	});
	
	/*
	* 「PAGE TOP」ボタンの設定
	*/
	if($("#pageTopLink").length > 0){
		$("#pageTopLink a").bind("click", onPageTopLinkClick);
	}
	if($(".pageTopLink").length > 0){
		$(".pageTopLink a").bind("click", onPageTopLinkClick);
	}	
	/*
	* slideBoxの設定
	*/
	if($(".slideBoxTarget").length > 0){
		//「開く」ボタン
		$(".slideBoxOpener").each(function(idx){
			$(this).bind("click", {by:"order", id: idx}, slideBoxOpen);
		});
		//「閉じる」ボタン
		$(".slideBoxCloser").each(function(idx){
			$(this).bind("click", {by:"order", id: idx}, slideBoxClose);
		});
		//ターゲット
		$(".slideBoxTarget").each(function(idx){
		});
		
		//初期状態では「閉じる」とターゲットは非表示化
		$(".slideBoxCloser").hide();
		$(".slideBoxTarget").hide();
	}
	if($("*[class*='slideBoxTarget_']").length > 0){
		//「開く」ボタン
		$("*[class*='slideBoxOpener_']").each(function(idx){
			var className = $(this).attr("class").split("slideBoxOpener_")[1].split(" ")[0];
			$(this).bind("click", {by:"className", id: className}, slideBoxOpen);
		});
		//「閉じる」ボタン
		$("*[class*='slideBoxCloser_']").each(function(idx){
			var className = $(this).attr("class").split("slideBoxCloser_")[1].split(" ")[0];
			$(this).bind("click", {by:"className", id: className}, slideBoxClose);
		});
		//ターゲット
		$("*[class*='slideBoxTarget_']").each(function(idx){
		});
		//初期状態では「閉じる」とターゲットは非表示化
		$("*[class*='slideBoxCloser_']").hide();
		$("*[class*='slideBoxTarget_']").hide();
		//「開く」「閉じる」のカーソル変更
		$("*[class*='slideBoxOpener_']").css("cursor", "pointer");
		$("*[class*='slideBoxCloser_']").css("cursor", "pointer");
	}
	
	
	
	
	/*
	* 「カートに入れる」ボタンの設定
	*/
	if($("dl.cartEntrance").length > 0){
		cartEntranceArray = new Array();
		$("dl.cartEntrance").each(function(idx){
			var _dt = $("dt", $(this));
			var _dd = $("dd", $(this));
			var _href = $("dt>a", $(this)).attr("href");
			var _btnOk = $("dd img.btnOk", $(this));
			var _btnCancel = $("dd img.btnCancel", $(this));
			//管理配列へのデータ追加
			var o = {
				href:_href,
				opened:false
			};
			cartEntranceArray.push(o);
			//リンクの無効化
			$("dt>a", $(this)).attr("href","#");
			//dtとddの属性、CSS、ハンドラ設定
			_dt.attr("idx", idx);
			_dd.attr("idx", idx);
			_dt.css("cursor", "pointer");
			_dt.bind("click", onCartEntranceOpenerClick);
			//OK＆キャンセルボタンの属性、CSS、ハンドラ設定
			_btnOk.attr("idx", idx);
			_btnOk.css("cursor", "pointer");
			_btnOk.bind("click", onCartEntranceBtnOkClick);
			_btnCancel.attr("idx", idx);
			_btnCancel.css("cursor", "pointer");
			_btnCancel.bind("click", onCartEntranceBtnCancelClick);
		});
	}
	
	/*
	* プロダクトナビの隠しメニュー
	*/
	/*
	if($("ul#prodNavi>li").length > 0){
		$("ul#prodNavi>li>dl").each(function(idx){
			//
			$("dd",this).css("visibility","hidden");
			//属性の設定
			$(this).attr("opened", "false");
			//ハンドラの設定
			$(this).bind("mouseover", {idx:idx}, onProdNaviOver);
			$(this).bind("mouseout", {idx:idx}, onProdNaviOut);
		});
	}
	*/
	
	/*
	* モーダルウィンドウの設定
	*/
	var isiPad = navigator.userAgent.indexOf("iPad") > -1;
	var isiPhone = navigator.userAgent.indexOf("iPhone") > -1;
	if($("a.various1").length > 0){
		$("a.various1").fancybox({
			'width'				: 643,
			'height'			: 460,
			'autoScale'			: false,
			'transitionIn'		: 'none',
			'transitionOut'		: 'none',
			'type'				: 'iframe',
			'scrolling'			: 'no'
		});
	}
	if((! isiPad) && (! isiPhone)){
		if($("a.various2").length > 0){
			$("a.various2").fancybox({
				'width'				: 720,
				'height'			: '60%',
				'padding'			: 0,
				'autoScale'			: false,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'type'				: 'iframe',
				'scrolling'			: 'yes'
			});
		}
	}
	
	
	//商品詳細の拡大画像群
	if($("a[rel=itemPicLink]").length > 0){
		$("a[rel=itemPicLink]").fancybox({
			'cyclic':false,
			'titleShow':true,
			'titlePosition':'inside',
			'titleFormat':formatTitle,
			'changeSpeed':500,
			'padding':10
		});
	}
	
	
	/*
	* リサイズハンドラの設定
	*/
	$(window).bind("resize",onWindowResize);
	onWindowResize();
	
	/*
	* IE7対策：重なり調整
	*/
	var zIdxNum = 1000;
	$("div").each(function(idx){
		$(this).css("zIndex", zIdxNum);
		zIdxNum --;
	});
}


/*
 * イベントハンドラ
 */
//ウィンドウサイズの変更時に実行するメソッド
function onWindowResize(e){
	//ウィンドウサイズを取得
	winW = $(window).width();
	winH = $(window).height();
}
//ロールオーバー・アウト
function onImgOver(e){
	rollOverId = $(this).attr("rollOverId");
	overImgElem = overImgs[rollOverId];
	overImgElem.show();
	$(this).hide();
}
function onImgOut(e){
	rollOverId = $(this).attr("rollOverId");
	outImgElem = outImgs[rollOverId];
	outImgElem.show();
	$(this).hide();
}
//「カートに入れる」ボタンのハンドラ
function onCartEntranceOpenerClick(e){
	var idx = $(this).attr("idx");
	var o = cartEntranceArray[idx];
	if(o.opened){
		moveToCartPage();
	}else{
		openCartEntrance(idx);
	}
	return false;
}
function onCartEntranceBtnOkClick(e){
	moveToCartPage();
}
function onCartEntranceBtnCancelClick(e){
	var idx = $(this).attr("idx");
	closeCartEntrance(idx);
}
function openCartEntrance(idx){
	var o = cartEntranceArray[idx];
	o.opened = true;
	$("dl.cartEntrance>dd:eq("+idx+")").slideDown();
}
function closeCartEntrance(idx){
	var o = cartEntranceArray[idx];
	o.opened = false;
	$("dl.cartEntrance>dd:eq("+idx+")").slideUp();
}
function moveToCartPage(){
	var obj = document.getElementById('add_cart');
	obj.submit();
}

function slideBoxOpen(e){
	var id = e.data.id;
	var by = e.data.by;
	switch(by){
		case "order":
			$(".slideBoxTeaser:eq("+id+")").hide();
			$(".slideBoxTarget:eq("+id+")").slideDown();
			$(".slideBoxOpener:eq("+id+")").hide();
			$(".slideBoxCloser:eq("+id+")").show();
			break;
		case "className":
			$(".slideBoxTeaser_"+id).hide();
			$(".slideBoxTarget_"+id).slideDown();
			$(".slideBoxOpener_"+id).hide();
			$(".slideBoxCloser_"+id).show();
			break;
	}
}
function slideBoxClose(e){
	var id = e.data.id;
	var by = e.data.by;
	switch(by){
		case "order":
			$(".slideBoxTeaser:eq("+id+")").show();
			$(".slideBoxTarget:eq("+id+")").slideUp();
			$(".slideBoxOpener:eq("+id+")").show();
			$(".slideBoxCloser:eq("+id+")").hide();
			break;
		case "className":
			$(".slideBoxTeaser_"+id).show();
			$(".slideBoxTarget_"+id).slideUp();
			$(".slideBoxOpener_"+id).show();
			$(".slideBoxCloser_"+id).hide();
			break;
	}
}


/*
//プロダクトナビの隠しメニューのロールオーバー・アウト
function onProdNaviOver(e){
	var dl = $("ul#prodNavi>li>dl:eq("+e.data.idx+")");
	if(dl.attr("opened") == "false"){
		dl.attr("opened", "true");
		$("dd", dl).css("visibility","visible");
		$("dd", dl).stop();
		$("dd", dl).fadeTo("fast", 1);
	}
}
function onProdNaviOut(e){
	var dl = $("ul#prodNavi>li>dl:eq("+e.data.idx+")");
	if(dl.attr("opened") == "true"){
		dl.attr("opened", "false");
		$("dd", dl).stop();
		$("dd", dl).fadeTo("fast", 0, function(){
			$(this).css("visibility","hidden");
		});
	}
}
*/


//PAGE TOPボタンのメソッド
function onPageTopLinkClick(e){
	$("html,body").animate({ scrollTop: 0 }, 500);
	return false;
}


//商品紹介のタイトル表示メソッド
function formatTitle(title, currentArray, currentIndex, currentOpts) {
	var caption = "";
	if(title && title.length){
		caption += '<div class="caption">' + title + '</div>';
	}
	return caption + '<div>' + (currentIndex + 1) + ' / ' + currentArray.length + '</div>';
}




//初期化メソッドの実行
$(document).ready(init);
