//-----------------------------------------------------------------------------------------------------//
// 商品詳細 JS
//-----------------------------------------------------------------------------------------------------//

var breadCrumbWrap;
var bannerWrap;
var backSecretSaleListWrap;
var itemDetailContent__mainInfo;
var itemDetailContent__photo;
var itemDetailContent__subInfo_tabInfo;
var itemDetailContent__subInfo_tabSize;
var secretSaleAreaWrap;
var anataiAreaWrap;
var recommendItem;
var recommendItemBrand;
var userCheckitemWrap
!function(){

	// パンくずリスト
	breadCrumbWrap = new Vue({
		el:'#breadCrumbWrap',
		data: {
			breadCrumbText : ""
			,breadCrumbText2 : ""
			,breadCrumbUrl  : ""
			,breadCrumbUrl2  : ""
		},
		methods: {
			isEmpty(str){
				return str == null || str == "";
			},
		}
   	})

	// バナー
	bannerWrap = new Vue({
		el:'#bannerWrap',
		data: {
			common : {
				shopInfo : null
			}
			,secretSaleNm : ""
			,secretSaleDispNo : ""
			,secretSaleShopNo : ""
			,titImgSp2 : ""
			,bannerShopNo : ""
			,bannerDispNo : ""
		},
		methods: {
			isEmpty(str){
				return str == null || str == "";
			},
		}
   	})

	backSecretSaleListWrap = new Vue({
		el:'#backSecretSaleListWrap',
		data: {
			common : {
				shopInfo : null
			}
			,isSecretSale : null
			,isPointSecretSale : null
			,isDiscountSecretSale : null
			,secretSaleNm : ""
			,secretSaleDispNo : ""
			,reqDispNo : ""
			,secretSaleShopNo : ""
			,titImgSp2 : ""
			,bannerShopNo : ""
			,bannerDispNo : ""
			,isSecretSaleLinkView : null
			,anataiFlg : ""
		},
		methods: {
			isEmpty(str){
				return str == null || str == "";
			},
			createLink(){
				let ret = "";
				if(this.secretSaleShopNo == '0000100000'){
					ret = "/disp/itemlist/?dispNo=" + this.reqDispNo;
				}
				else {
					ret = "/" + this.common.shopInfo.shopDir + "/disp/itemlist/?dispNo=" + this.reqDispNo;
				}
				return ret;
			}
		}
   	})

	// 商品詳細メイン部分
	itemDetailContent__mainInfo = new Vue({
		el:'#item-detail-content__main-info',
		data: {
			common : {
				staticImgBaseSrc : ""
				,shopInfo : null
				,itemCd : ""
				,isMember : ""
				,isSecretSale : null
				,isPointSecretSale : null
				,isDiscountSecretSale : null
				,zipAddr1 : ""
				,zipAddr2 : ""
				,iconNoSecretSale : ""
				,iconNoSecretPointUp : ""
				,iconNoAnatai : ""
				,quickPickButtonDispYn : ""
			}
			,itemDetailLarge : null
			,itemConnectionTagList : []
			,shortestDeliveryDateGoodsPage : ""
		},
		methods: {
			splitStr(str, target){
				return (str !== null)?str.split(target):'';
			},
			subStr(str, start, end){
				return (str !== null)?str.substring(start, end):'';
			},
			isEmpty(str){
				return str == null || str == "";
			},
			null2Zero(str){
				return avoidNull(str) == "" ? "0" : str;
			},
			priceFormat(price){
				return Number(price).toLocaleString();
			},
			stockPopDisp(){
				let goodsBeanList = this.itemDetailLarge.goodsBeanList;
				let itemType = this.itemDetailLarge.itemType;
				let storeStockDispYn = this.itemDetailLarge.storeStockDispYn;

				if(storeStockDispYn == '0'){
					return false;
				}

				for(var i=0; i<goodsBeanList.length; i++){
					if('false' != goodsBeanList[i].reserve
						&& (itemType == "1" || itemType == "5")){
						return true;
					}
				}
				return false;
			},
			getCompItemCd(itemCd, compCd){
				if(itemCd == null || itemCd == "" || compCd == null || compCd == ""){
					return "";
				}

				if(compCd === global.conpCdTa && itemCd.length == 7){
					return itemCd.substring(1, 7)
				}
				return itemCd;
			}
		}
   	})

	// 商品詳細画像部分
	itemDetailContent__photo = new Vue({
		el:'#item-detail-content__photo',
		data: {
			common : {
				staticImgBaseSrc : ""
				,shopInfo : null
				,itemCd : ""
				,imgDomain : ""
			}
			,itemDetailLarge : null
			,itemDetailMainGoods : null
		},
		methods: {
			splitStr(str, target){
				return (str !== null)?str.split(target):'';
			},
			subStr(str, start, end){
				return (str !== null)?str.substring(start, end):'';
			},
			isEmpty(str){
				return str == null || str == "";
			},
			showVideo(obj){
				if(!this.isEmpty(obj.itemVideoSp)
					&& !this.isEmpty(obj.itemVideoThmbnlImgSp)
					&& !this.isEmpty(obj.itemVideoDefaultImgSp)
				){
					return true;
				}
				return false;
			},
			getPhotoIdx(idx){
				let ret = idx;
				if(this.showVideo(this.itemDetailLarge)){
					ret = Number(idx) + 1;
				}
				return ret;
			},
			createModelText(obj){
				let retTxt = "";
				if(avoidNull(obj.modelText) != ""){
					retTxt = obj.modelText;

				}else{

					if(avoidNull(obj.modelHeight) != "" || avoidNull(obj.modelWeight) != ""){
						if(retTxt != ""){
							retTxt = retTxt + "/";
						}
						retTxt = retTxt + "モデル：";

						if(avoidNull(obj.modelHeight) != ""){
							retTxt = retTxt + obj.modelHeight + "cm";
							if(avoidNull(obj.modelWeight) != ""){
								retTxt = retTxt + " ";
							}
						}
						if(avoidNull(obj.modelWeight) != ""){
							retTxt = retTxt + obj.modelWeight + "kg";
						}
					}

					if(avoidNull(obj.modelWearSize) != ""){
						if(retTxt != ""){
							retTxt = retTxt + "/";
						}
						retTxt = retTxt + "着用サイズ" + obj.modelWearSize;
					}
				}
				return retTxt;
			},
			getCompItemCd(itemCd, compCd){
				if(itemCd == null || itemCd == "" || compCd == null || compCd == ""){
					return "";
				}
				if(compCd == '02' && itemCd.length == 7){
					return itemCd.substring(1, 7)
				}
				return itemCd;
			}
		}
   	})

	// 商品詳細サブ部分（レビュー部分は回避するため、tab-infoとtab-sizeそれぞれオブジェクト生成）
	itemDetailContent__subInfo_tabInfo = new Vue({
		el:'#tab-info',
		data: {
			common : {
				staticImgBaseSrc : ""
				,shopInfo : null
				,itemCd : ""
			}
			,itemDetailLarge : null
			,texture : []
			,textureDtl : []
		},
		methods: {
			splitStr(str, target){
				return (str !== null)?str.split(target):'';
			},
			subStr(str, start, end){
				return (str !== null)?str.substring(start, end):'';
			},
			isEmpty(str){
				return str == null || str == "";
			},
			getCompItemCd(itemCd, compCd){
				if(itemCd == null || itemCd == "" || compCd == null || compCd == ""){
					return "";
				}
				return itemCd;
			}
		}
   	})
	itemDetailContent__subInfo_tabSize = new Vue({
		el:'#tab-size',
		data: {
			common : {
				staticImgBaseSrc : ""
				,shopInfo : null
				,itemCd : ""
			}
			,itemDetailLarge : null
			,ordHistoryGoodsDetailPage : []
			,categoryPartImg : null
		},
		methods: {
			splitStr(str, target){
				return (str !== null)?str.split(target):'';
			},
			subStr(str, start, end){
				return (str !== null)?str.substring(start, end):'';
			},
			isEmpty(str){
				return str == null || str == "";
			},
			getCompItemCd(itemCd, compCd){
				if(itemCd == null || itemCd == "" || compCd == null || compCd == ""){
					return "";
				}
				if(compCd == '02' && itemCd.length == 7){
					return itemCd.substring(1, 7)
				}
				return itemCd;
			}
		}
   	})

	setitemDetailDataPhoto();
	setitemDetailDataMain();
	setitemDetailDataSub();

}();

$(function(){
	// シークレットセールエリア
	secretSaleAreaWrap = new Vue({
		el:'#secret-sale-area-wrap',
		data: {
			secretSaleInfo : null
			,secretSaleItemList : []
		},
		methods: {
			isEmpty(str){
				return str == null || str == "";
			},
			priceFormat(price){
				return Number(price).toLocaleString();
			},
		}
   	})

	// あなたい商品エリア
	anataiAreaWrap = new Vue({
		el:'#anatai-area-wrap',
		data: {
			secretSaleInfo : null
			,secretSaleItemList : []
		},
		methods: {
			isEmpty(str){
				return str == null || str == "";
			},
			priceFormat(price){
				return Number(price).toLocaleString();
			},
		}
   	})

	// あなたにおすすめのアイテム一覧部分
	recommendItem = new Vue({
		el:'#recommend-item',
		data: {
			recommendItemList : []
		},
		methods: {
			splitStr(str, target){
				return (str !== null)?str.split(target):'';
			},
			null2Zero(str){
				return avoidNull(str) == "" ? "0" : str;
			},
			subStr(str, start, end){
				return (str !== null)?str.substring(start, end):'';
			},
			isEmpty(str){
				return str == null || str == "";
			},
			priceFormat(price){
				return Number(price).toLocaleString();
			},
		}
   	})

	// 他ブランドのおすすめのアイテム一覧部分
	recommendItemBrand = new Vue({
		el:'#recommend-item-brand',
		data: {
			recommendItemList : []
		},
		methods: {
			splitStr(str, target){
				return (str !== null)?str.split(target):'';
			},
			null2Zero(str){
				return avoidNull(str) == "" ? "0" : str;
			},
			subStr(str, start, end){
				return (str !== null)?str.substring(start, end):'';
			},
			isEmpty(str){
				return str == null || str == "";
			},
			priceFormat(price){
				return Number(price).toLocaleString();
			},
		}
   	})
   
	// 最近チェックしたアイテム一覧部分
	userCheckitemWrap = new Vue({
		el:'#user-checkitem-wrap',
		data: {
			checkedItemList : []
		},
	})


	// 過去注文情報
	let ordHistoryGoodsDetailGetFlg = true;
	$('#tab-size').on('inview', function(event, isInView) {
		if (isInView && ordHistoryGoodsDetailGetFlg) {
			ordHistoryGoodsDetailGetFlg = false;
			getOrdHistoryGoodsDetailPage();
		}
	});

	let secretSaleInfoGetFlg = true;
	$('.secret-sale-area-wrap').on('inview', function(event, isInView) {
		if (isInView && secretSaleInfoGetFlg) {
			secretSaleInfoGetFlg = false;
			getItemSecretSaleItemInfo();
		}
	});

	// あなたにおすすめのアイテム
	let recommendInfoGetFlg = true;
	$('#recommend-item').on('inview', function(event, isInView) {
		if (isInView && recommendInfoGetFlg) {
			recommendInfoGetFlg = false;
			getRecommendItemInit();
		}
	});

	// 他ブランドのおすすめアイテム
	let recommendBrandInfoGetFlg = true;
	$('#recommend-item-brand').on('inview', function(event, isInView) {
		if (isInView && recommendBrandInfoGetFlg) {
			recommendBrandInfoGetFlg = false;
			getOtherBrandRecommendItemInit();
		}
	});
	
	// 最近チェックしたアイテム
	let checkItemGetFlg = true;
	$('#user-checkitem-wrap').on('inview', function(event, isInView) {
		if (isInView && checkItemGetFlg) {
			checkItemGetFlg = false;
			getCheckedItemInit();
		}
	});


})

// 商品詳細情報をVueに反映　First
function setitemDetailDataPhoto(){
	if(global.itemDetailDataPhoto == null){
		setTimeout(function(){
			setitemDetailDataPhoto()
		}, 5)
	}
	else {
		let data = global.itemDetailDataPhoto;

		// グローバル変数に代入
		global.itemType = data.resultDtl.item[0].itemType;
		global.itemAttr = data.itemAttr;
		global.categoryDispNo = data.categoryDispNo;

		bannerWrap.titImgSp2 = data.resultDtl.item[0].titImgSp2;
		bannerWrap.bannerDispNo = data.resultDtl.item[0].bannerDispNo;
		bannerWrap.bannerShopNo = data.resultDtl.item[0].bannerShopNo;
		bannerWrap.common.shopInfo = global.shopInfo;

		itemDetailContent__photo.itemDetailLarge = data.resultDtl.item[0];
		itemDetailContent__photo.common.shopInfo = global.shopInfo;
		itemDetailContent__photo.common.staticImgBaseSrc = global.staticBase;
		itemDetailContent__photo.common.itemCd = global.itemCd;

		itemDetailContent__photo.common.imgDomain = global.imgDomain;

		// Videoが存在する場合はindexをプラス1
		slideStart = itemDetailContent__photo.getPhotoIdx(data.colorIdx);
		jsEventSet(true, false, false, false, function(){
			$('#breadCrumbWrap').css('visibility', 'visible');
			$('#bannerWrap').css('visibility', 'visible');
			$('#backSecretSaleListWrap').css('visibility', 'visible');
			$('#item-detail-content__main-info').css('visibility', 'visible');
			$('#item-detail-content__sub-info').css('visibility', 'visible');
			$('#item-detail-staffboard-area').css('visibility', 'visible');
			$('#footer-wrap').css('visibility', 'visible');
			$('#detail-slider-caption-item' + slideStart).fadeIn();

			// 2022/10 edit Photoエリアのサイズ取得+最低の高さをキープ
			photoHeightMatch();
		});
	}
}

// 商品詳細情報をVueに反映　Second
function setitemDetailDataMain(){
	if(global.itemDetailDataMain == null){
		setTimeout(function(){
			setitemDetailDataMain()
		}, 5)
	}
	else {
		let data = global.itemDetailDataMain;
		// Vueオブジェクトに代入
		global.scrSaleDispNo = data.secretSaleDispNo;
		global.scrSaleGroupNo = data.secretSaleGroupNo;
		global.scrSaleNo = data.secretSaleNo;
		global.quickPickColorYnMap = data.quickPickColorYnMap;
		global.quickPickButtonDispYn = data.quickPickButtonDispYn;

		breadCrumbWrap.breadCrumbText = data.breadCrumbText;
		breadCrumbWrap.breadCrumbText2 = data.breadCrumbText2;
		breadCrumbWrap.breadCrumbUrl = data.breadCrumbUrl;
		breadCrumbWrap.breadCrumbUrl2 = data.breadCrumbUrl2;

		backSecretSaleListWrap.isSecretSale = data.isSecretSale
		backSecretSaleListWrap.isPointSecretSale = data.isPointSecretSale
		backSecretSaleListWrap.isDiscountSecretSale = data.isDiscountSecretSale
		backSecretSaleListWrap.secretSaleNm = data.resultDtl.item[0].secretSaleNm;
		backSecretSaleListWrap.secretSaleDispNo = data.resultDtl.item[0].secretSaleDispNo;
		backSecretSaleListWrap.reqDispNo = data.reqDispNo;
		backSecretSaleListWrap.secretSaleShopNo = data.resultDtl.item[0].secretSaleShopNo;
		backSecretSaleListWrap.isSecretSaleLinkView = data.isSecretSaleLinkView
		backSecretSaleListWrap.anataiFlg = data.anataiFlg
		backSecretSaleListWrap.common.shopInfo = global.shopInfo;
		backSecretSaleListWrap.reqSecretDispNo = global.secretDispNo;

		itemDetailContent__mainInfo.itemDetailLarge = data.resultDtl.item[0];
		itemDetailContent__mainInfo.common.isSecretSale = data.isSecretSale
		itemDetailContent__mainInfo.common.isPointSecretSale = data.isPointSecretSale
		itemDetailContent__mainInfo.common.isDiscountSecretSale = data.isDiscountSecretSale
		itemDetailContent__mainInfo.common.shopInfo = global.shopInfo;
		itemDetailContent__mainInfo.common.staticImgBaseSrc = global.staticBase;
		itemDetailContent__mainInfo.common.itemCd = global.itemCd;
		itemDetailContent__mainInfo.common.isMember = global.isMember;
		itemDetailContent__mainInfo.common.zipAddr1 = global.zipAddr1;
		itemDetailContent__mainInfo.common.zipAddr2 = global.zipAddr2;
		itemDetailContent__mainInfo.common.iconNoSecretSale = global.iconNoScrSale;
		itemDetailContent__mainInfo.common.iconNoSecretPointUp = global.iconNoScrPointUp;
		itemDetailContent__mainInfo.common.iconNoAnatai = global.iconNoAnatai;
		itemDetailContent__mainInfo.common.quickPickButtonDispYn = data.quickPickButtonDispYn;


		// モーダルのVueオブジェクトへ代入
		modalCartFavoriteVue.isSecretSale = data.isSecretSale;
		modalCartFavoriteVue.isPointSecretSale = data.isPointSecretSale;
		modalCartFavoriteVue.isDiscountSecretSale = data.isDiscountSecretSale;
		modalCartFavoriteVue.itemDetailLarge = data.resultDtl.item[0];

		modalCartFavoriteVue.ordCfmId = global.ordCfmId;
		modalCartFavoriteVue.favCfmId = global.favCfmId;
		modalCartFavoriteVue.stylingNo = global.stylingNo;
		modalCartFavoriteVue.sss43domain = global.sss43member;
		modalCartFavoriteVue.shopDir =global.shopDir;
		modalCartFavoriteVue.common.imgDomain =global.imgDomain;


		itemDetailContent__photo.itemDetailMainGoods = data.resultDtl.item[0].goodsBeanList;
		jsEventSet(false, true, false, false, function(){
			$('#breadCrumbWrap').css('visibility', 'visible');
			$('#bannerWrap').css('visibility', 'visible');
			$('#backSecretSaleListWrap').css('visibility', 'visible');
			$('#item-detail-content__main-info').css('visibility', 'visible');
			$('#item-detail-content__sub-info').css('visibility', 'visible');
			$('#item-detail-staffboard-area').css('visibility', 'visible');
			$('#footer-wrap').css('visibility', 'visible');

			// 2022/10 edit Photoエリアのサイズ取得+最低の高さをキープ
			photoHeightMatch();
		});

		// 関連タグ取得
		getConnectionTagInit(global.itemCd);
		// 最短お届け日
		getShortestDeliveryDateGoodsPage();
		//GAタグ
		setAanalyticsTag(data, _gaimj);
		//GTM
		executeGtm();

	}
}

// 商品詳細情報をVueに反映　Third
function setitemDetailDataSub(){
	if(global.itemDetailDataSub == null ||
		(itemDetailContent__mainInfo.itemDetailLarge === undefined || itemDetailContent__mainInfo.itemDetailLarge === null)
		){
		setTimeout(function(){
			setitemDetailDataSub()
		}, 5)
	}
	else {
		let data = global.itemDetailDataSub;

		// Vueオブジェクトに代入
		modalUseItemVue.itemDetailLarge = data.resultDtl.item[0];
		modalUseItemVue.common.imgDomain = global.imgDomain;
		modalUseItemVue.common.brandDomain = data.resultDtl.item[0].domain;

		itemDetailContent__subInfo_tabSize.itemDetailLarge = data.resultDtl.item[0];
		itemDetailContent__subInfo_tabInfo.itemDetailLarge = data.resultDtl.item[0];
		itemDetailContent__subInfo_tabInfo.texture = data.texture;
		itemDetailContent__subInfo_tabInfo.textureDtl = data.textureDtl;
		itemDetailContent__subInfo_tabInfo.common.shopInfo = global.shopInfo;
		itemDetailContent__subInfo_tabSize.common.shopInfo = global.shopInfo;
		itemDetailContent__subInfo_tabInfo.common.staticImgBaseSrc = global.staticBase;
		itemDetailContent__subInfo_tabSize.common.staticImgBaseSrc = global.staticBase;
		itemDetailContent__subInfo_tabInfo.common.itemCd = global.itemCd;
		itemDetailContent__subInfo_tabSize.common.itemCd = global.itemCd;
		itemDetailContent__subInfo_tabSize.categoryPartImg = data.categoryPartImg;

		itemDetailContent__mainInfo.itemDetailLarge.goodsCp = data.resultDtl.item[0].goodsCp;

	}
}


// 最短お届け日取得
function getShortestDeliveryDateGoodsPage(){
	let rootPath =  '/';
	let url = rootPath + "getShortestDeliveryDateGoodsPage/";
	let headers = getHeaders();
	let sendData = {
		"hasReserve" : itemDetailContent__mainInfo.itemDetailLarge.hasReserve
		,"itemType" : itemDetailContent__mainInfo.itemDetailLarge.itemType
		,"soldOutFlg" : itemDetailContent__mainInfo.itemDetailLarge.soldOutFlg
		,"wmsStoreCd" : itemDetailContent__mainInfo.itemDetailLarge.wmsStoreCd
		,"airmailNgYn" : itemDetailContent__mainInfo.itemDetailLarge.airmailNgYn
		,"stkStoreCd" : itemDetailContent__mainInfo.itemDetailLarge.stkStoreCd
	};

	var callback = function(data){
		if(data.result != "true"){
			return;
		}
		itemDetailContent__mainInfo.shortestDeliveryDateGoodsPage = data.shortestDeliveryDateGoodsPage;
	}
	sendAjax(url, headers, sendData, callback);

}

// 過去注文商品取得
function getOrdHistoryGoodsDetailPage(){

	let rootPath =  '/';
	let url = rootPath + "getOrdHistoryGoodsDetailPage/";
	let headers = getHeaders();
	let sendData = {
		"categoryDispNo" : global.categoryDispNo
	};

	var callback = function(data){
		if(data.result != "true"){
			return;
		}
		itemDetailContent__subInfo_tabSize.ordHistoryGoodsDetailPage = data.resultList;
	}
	sendAjax_sync(url, headers, sendData, callback);
}


// 関連するタグ情報取得
function getConnectionTagInit(itemCd){
	let rootPath =  '/';
	let url = rootPath + "getConnectionTag/";
	let headers = getHeaders();
	let sendData = {
		"itemCd" : itemCd
	};

	var callback = function(data){
		if(data.tagResult == "true"){
			itemDetailContent__mainInfo.itemConnectionTagList = data.resultTagList;
		}
		unlockQuickPickButton(data,itemCd)
	}
	sendAjax(url, headers, sendData, callback);
}

<!--/*  QPボタンの解除。タイマーを使うためcallbackから分離 */-->

function unlockQuickPickButton(data,itemCd){
	if(modalShopStockVue === undefined || modalShopStockVue.itemColorBeanList === undefined){
		setTimeout(function(){
			unlockQuickPickButton(data,itemCd)}
			,5)

	}else{
		if(data.result == "true"){
			//店舗在庫一覧にデータを格納
			modalShopStockVue.itemColorBeanList =data.itemColorBeanList;
			modalShopStockVue.goodsBeanList = data.goodsBeanList;
			modalShopStockVue.itemCd = itemCd;
			global.colorSmallGoodsMap = data.colorSmallGoodsMap;
		}
		//在庫取得が完了してから店舗在庫のボタンを押下できるようにする
		$('#item-detail-checkstock-btn').prop('disabled',false)
		$('#item-detail-checkstock-btn').css('background-color','#fff');
		$('#item-detail-checkstock-btn').css('border-color','#333333');
		$('#item-detail-checkstock-btn').css('color','#333333');

		//在庫取得が完了してからQuickPickのボタンを押下できるようにする
		$('#item-detail-quickpick__btn').prop('disabled',false);
		$('#item-detail-quickpick__btn').css('background-color','#fff');
		$('#item-detail-quickpick__btn').css('border-color','#0391CF');
		$('#item-detail-quickpick__btn').css('color','#0391CF');
		var quickPickIconUrl = $('#item-detail-quickpick__btn span').css('background');
		quickPickIconUrl =quickPickIconUrl.replace('gray','blue');
		$('#item-detail-quickpick__btn span').css('background',quickPickIconUrl);

	}
}

function getItemSecretSaleItemInfo(){
	let rootPath =  '/';
	let url = rootPath + "getItemSecretSaleItemInfo/";
	let headers = getHeaders();
	let sendData = {
		"shopNo" : global.shopInfo.shopNo
		,"itemType" : global.itemType
		,"secretSaleDispNo" : global.scrSaleDispNo
		,"secretSaleGroupNo" : global.scrSaleGroupNo
		,"secretSaleNo" : global.scrSaleNo
		,"itemCd" : global.itemCd
	};

	var callback = function(data){
		if(data.result != "true"){
			return;
		}
		if(data.resultDtl.secretSaleInfo.anataiFlg === "1"){
			anataiAreaWrap.secretSaleInfo = data.resultDtl.secretSaleInfo;
			anataiAreaWrap.secretSaleItemList = data.resultDtl.antaresSearchResult.itemList;

			// SCRIPTタグの生成
			let el = document.createElement("script");
			el.src = global.anataiJsFileName;
			el.id = "anatai-timer-script";
			document.body.appendChild(el);

			function callAnataiTimer(){

				if(!$('#anatai-area-wrap .js-anatai-sale-timer').is(':visible') || typeof anateiTimerCountdown != 'function'){
					setTimeout(function(){
						callAnataiTimer()
					}, 100)
				}

				if (typeof anateiTimerCountdown == 'function') {
					let h = anataiAreaWrap.secretSaleInfo.remainingHour;
					let m = anataiAreaWrap.secretSaleInfo.remainingMinute;
					let s = anataiAreaWrap.secretSaleInfo.remainingSecond;
					anateiTimerCountdown('.js-anatai-sale-timer1', h, m, s);
				}
			}

			callAnataiTimer();

			jsEventSet(false, false, false, true, function(){
				$('#anatai-area-wrap').css('visibility', 'visible');
			});
		}
		else {
			secretSaleAreaWrap.secretSaleInfo = data.resultDtl.secretSaleInfo;
			secretSaleAreaWrap.secretSaleItemList = data.resultDtl.antaresSearchResult.itemList;

			jsEventSet(false, false, false, true, function(){
				$('#secret-sale-area-wrap').css('visibility', 'visible');
			});
		}
	}
	sendAjax(url, headers, sendData, callback);
}

// あなたにおすすめのアイテム
function getRecommendItemInit(){
	let rootPath =  '/';
	let url = rootPath + "getRecommendItemInit/";
	let headers = getHeaders();
	let sendData = {
		"itemCd" : global.itemCd
	};

	var callback = function(data){
		if(data.result != "true"){
			return;
		}
		recommendItem.recommendItemList = data.resultList;
		jsEventSet(false, false, false, true, function(){
			$('#recommend-item').css('visibility', 'visible');
		});
	}
	sendAjax(url, headers, sendData, callback);
}

// 他ブランドのおすすめのアイテム
function getOtherBrandRecommendItemInit(){
	let rootPath =  '/';
	let url = rootPath + "getOtherBrandRecommendItemInit/";
	let headers = getHeaders();
	let sendData = {
		"itemCd" : global.itemCd
	};

	var callback = function(data){
		if(data.result != "true"){
			return;
		}
		recommendItemBrand.recommendItemList = data.resultList;
		jsEventSet(false, false, false, true, function(){
			$('#recommend-item-brand').css('visibility', 'visible');
		});
		
	}
	sendAjax(url, headers, sendData, callback);
}

// 最近チェックした商品取得
function getCheckedItemInit(){
	let rootPath =  '/common/';
	let url = rootPath + "getCheckedItemInit/";
	let headers = getHeaders();
	let sendData = {
	};

	var callback = function(data){
		if(data.result != "true"){
			return;
		}

		if(data.resultList.length > 1){
			// 先頭は自アイテムなので除去する
			userCheckitemWrap.checkedItemList = data.resultList.splice(1, data.resultList.length);
			jsEventSet(false, false, false, true, function(){
				$('#user-checkitem-wrap').css('visibility', 'visible');
			});
		}
	}
	sendAjax(url, headers, sendData, callback);
}

// カートインポップアップおすすめ
function getRecommendItemCartIn(){
    let rootPath =  '/';
    let url = rootPath + "getRecommendItemForToCartInit/";
    let headers = getHeaders();
    let sendData = {
        "itemCd" : global.itemCd
    };

    var callback = function(data){
        if(data.result != "true"){
            return;
        }
        itemToRecomend.itemsToRecomendList = data.resultList;
        jsEventSet(false, false, false, true, function(){
            $('#item-to-recomend').css('visibility', 'visible');
        });
    }
    sendAjax(url, headers, sendData, callback);
}


//QuickPick判定(カラー)
function isColorQuickPick(colorCd){
	let quickPickColorYn = global.quickPickColorYnMap[colorCd];
	if(quickPickColorYn == '1'){
		return true;
	}
	return false;
}

function searchSmallColorGoods(colorCd){
	let colorSmallItem = global.colorSmallGoodsMap[colorCd];

	modalShopStockVue.checkedColor = colorCd;
	modalShopStockVue.colorNm = colorSmallItem.colorNm;
	modalShopStockVue.sizeNm = colorSmallItem.sizeNm;
	modalShopStockVue.checkedGoodsNo =  colorSmallItem.goodsNo;

	modalShopStockVue.imgDomain = global.imgDomain;
	modalShopStockVue.colorSmallImg = global.itemDetailDataPhoto.resultDtl.item[0].colorIcnImg;
	modalShopStockVue.quickPickButtonDispYn = global.quickPickButtonDispYn;
	modalShopStockVue.brandNm = itemDetailContent__mainInfo.itemDetailLarge.brandNm;
	modalShopStockVue.itemNm = itemDetailContent__mainInfo.itemDetailLarge.itemNm;
	modalShopStockVue.storeStockDispYn = itemDetailContent__mainInfo.itemDetailLarge.storeStockDispYn;

	return colorSmallItem.goodsNo;
}

//QuickPick カート投入失敗　リトライ
function reTryQuickPick(){
	$('#modal-quickpick-error').fadeOut(200);
	$('#modal-shop-stock').fadeIn(200).css('display','flex');
}



function getItemDetailDataQp(){
	<!--/*  商品情報（QP取得分）取得 */-->

	let url =  '/async/cb/item/hidden/';
	let headers = getHeaders();
	let sendData = {
		"itemCd" :  global.itemCd
	};

	let callback = function(data){
		if(data.result == "true"){
			global.quickPickDetailInfoYn = '1';
			modalShopStockVue.goodsBeanDetailList = data.goodsBeanDetailList;
			modalShopStockVue.qickPickGoodsNoSet = data.qickPickGoodsNoSet;
		}

	}
	let failCallBack = function(data){
		console.warn('get fali Quick Pick ItemData');
	}
	sendAjaxGet(url, headers, sendData, callback,failCallBack);
}


// 店舗在庫一覧取得
function getGoodsStoreStock(goodsNo){

	if(global.quickPickDetailInfoYn == '0' && global.quickPickButtonDispYn == '1'){
		getItemDetailDataQp();
	}

	let rootPath =  '/';
	let url = rootPath + "getStoreStockInfo/";
	let headers = getHeaders();

	let sendData = {
		"goodsNo" : goodsNo,
		"manShopNo" : global.itemDetailDataMain.resultDtl.item[0].manShopNo,
		"itemCd" : global.itemCd,
		"categoryDispNo" : global.categoryDispNo,
		"itemAttr" : global.itemAttr,
	};

	var callback = function(data){
		if(data.result == "true"){
			modalShopStockVue.goodsStoreStockInfo = data.resultObj;
			modalShopStockVue.areaList = data.areaList;
			modalShopStockVue.limitStockCntUpper = data.limitStockCntUpper;
			modalShopStockVue.limitStockCntLower = data.limitStockCntLower;
			modalShopStockVue.quickPickMaxCnt = data.quickPickMaxCnt;
		} else {
			modalShopStockVue.goodsStoreStockInfo = "";
			modalShopStockVue.areaList = "";
			modalShopStockVue.limitStockCntUpper = "";
			modalShopStockVue.limitStockCntLower = "";
			modalShopStockVue.quickPickMaxCnt = "";
		}
		// Customize GTM
		let action = data.itemCd + ":" + data.categoryDispNo + ":" + data.manShopNo;
		let label = "_" + data.itemAttr;
		dataLayer.push({'event':'generalEvent','generalEvent':{'category':'shop-stock-btn_click','action':action,'label':label}});
		// End Customize GTM
		modalShopStockVue.dispType = data.dispType;
	}


	sendAjax(url, headers, sendData, callback);
}

// 商品リクエスト
function itemRequest(){
	let rootPath =  '/';
	let url = rootPath + "itemRequest/";
	let headers = getHeaders();
	let sendData = {
		"eml" : $('#itemRequestEml').val()
		,"shopNo" : modalRestockedEntryVue.shopNo
		,"goodsNo" : modalRestockedEntryVue.goodsNo
		,"shopEml" : itemDetailContent__mainInfo.common.shopInfo.shopEml
		,"ga_url" : global.gaUrl
		,"categoryDispNo" : global.categoryDispNo
		,"itemCd" : itemDetailContent__mainInfo.common.itemCd
		,"itemAttr" : global.itemAttr
	};

	var callback = function(data){
		if(data.result == "validation_error"){
			modalRestockedEntryVue.errorText = data.errorMsg;
		}
		else if(data.result == "success"){
			// Customize GTM
			var _gaimj = _gaimj || {};
			_gaimj.pageName = data.ga_url;
			let action = data.itemCd + ":" + data.categoryDispNo + ":" + data.manShopNo;
			let label = "_" + data.itemAttr;
			dataLayer.push({'event':'generalEvent','generalEvent':{'category':'re-arrival-btn_click','action' : action,'label':label}});
			// End Customize GTM

			$('.modal-restocked-entry__entry-content').hide(1);
			$('.modal-restocked-entry__complete-content').fadeIn(100);
		}
	}
	sendAjax(url, headers, sendData, callback);
}


function jsEventSet(main, mainSecond, other, otherCar, callback){
	setTimeout(function(){
		//商品アイテム内写真の表示切替用script
		$(".rslides").responsiveSlides({
			timeout: 3000,
			speed: 500
		});

		modalInitSetting();

		if(main){
			mainJs();
		}
		if(mainSecond){
			mainJsSecond();
		}
		if(other){
			otherJs();
		}
		if(otherCar){
			otherCarouselJs();
		}

		if(callback != null){
			callback();
		}
	}, 1)
}


//カートボタンモーダル展開btn
function openCartModal(thisObj){
	let tempStr = $(thisObj).attr('data-choice');
	$('body').addClass('modal-open');
	$('.modal-cart-favorite__item-list__r-cart , .modal-cart-favorite__item-list__r-favorite').removeClass('current');
	$('.modal-cart-favorite__item-list__r-' + tempStr).addClass('current');

	$('.modal-cart-favorite__item-list__l__stock , .modal-cart-favorite__item-list__l__delivery').css('display','block');

	//quickpick用追加
	$('.modal-cart-favorite__quickpick').removeClass('cart , favorite');
	$('.modal-cart-favorite__quickpick').addClass(tempStr);
	//END quickpick用追加
	$('#modal-cart-favorite').fadeIn(200).css('display','flex');

	$('#js-modal-bg').fadeIn();
	
	// カートインポップアップおすすめ呼び出し
	getRecommendItemCartIn();
}
//END カートボタンモーダル展開btn




function setAanalyticsTag(data, _gaimj){

	_gaimj.pageName = data.ga_url;

	_gaimj.cstmVarName4 = data.ga_manShopNm;
	_gaimj.cstmVarVal4 = data.ga_manShopNo;
	_gaimj.cstmVarScope4 = 3;

	_gaimj.cstmVarName5 = data.ga_dispNm;
	_gaimj.cstmVarVal5 = data.ga_dispNo;
	_gaimj.cstmVarScope5 = 3;

	if(data.ga_itemDispNo != null && data.ga_itemDispNo != ""){
		_gaimj.cstmVarName6 = data.ga_itemDispNo;
		_gaimj.cstmVarVal6 = data.ga_itemDispNo;
		_gaimj.cstmVarScope6 = 3;
	}

	_gaimj.cstmVarName7 = data.ga_itemCd;
	_gaimj.cstmVarVal7 = "_" + data.itemAttr;
	_gaimj.cstmVarScope7 = 3;

	if (data.ga_goodsDetailDataLayerDispFlg) {
		let products = [];
		let colorImg = data.ga_colorBigImg.replaceAll('##IDU##', data.imgDomain);
		data.ga_goodsBeanList.forEach(function(ga_goodsBean) {
			let map = {
				'name' : data.ga_itemNm + " " + ga_goodsBean.sizeNm,
				'image': colorImg,
				'description': data.ga_basExp,
				'sku': ga_goodsBean.goodsStkNo,
				'mpn': "goods_" + data.ga_itemCd,
				'brand': data.ga_brandNm,
				'color': ga_goodsBean.colorNm,
				'url': data.ga_absUrl,
				'price': data.ga_price,
				'availability': ga_goodsBean.availability,
			};

			if (data.ga_saleEndDm != null && data.ga_saleEndDm != "" ) {
				map["priceValidUntil"] = data.ga_saleEndDm;
			}

			products.push(map);
		});
		dataLayer.push({'products' : products});
	}
}

// 2022/10 edit Photoエリアのサイズ取得+最低の高さをキープ用変数
let tempHeightInfo = 0;
let tempHeightPhoto = 0;
let tempHeightSubinfo = 0;
let initFlag = (innerWidth > 767) ? true : false;
let swicthFlag;
// timer用
let resizeTimer = null;
// END 2022/10 edit 変数

// 2022/10 edit
//Photoエリアのサイズ取得 + info部分の最小の高さ付与(PC用)
//最低の高さをキープしないと、Photoエリアが下に重なるため
$(window).on('resize', function () {
	clearTimeout(resizeTimer);
	resizeTimer = setTimeout(function() {
		//
		swicthFlag = (innerWidth > 767) ? true : false;
		if (initFlag != swicthFlag) {
			photoHeightMatch();
			initFlag = !initFlag;
			//console.log('initFlag = ' + initFlag)
		}
	}, 250);
});

function photoHeightMatch(){
	tempHeightInfo = $('#item-detail-content__main-info__inner').outerHeight();
	tempHeightPhoto = $('#item-detail-content__photo').outerHeight();
	if(tempHeightInfo < tempHeightPhoto){
		tempHeightSubinfo = (tempHeightPhoto - tempHeightInfo) + 120;
		$('#item-detail-content__sub-info').css({'min-height': tempHeightSubinfo + 'px'})
	}
}
// END 2022/10 edit --------


//-----------------------------------------------------------------------//
// メイン JS
//----------------------------------------------------------------------//
function mainJs(){

	//window scroll position
	let winYpos = 0;
	//カラーコード
	let tempColorCode = "";
	//サムネ0px固定化するアイテム値
	const THUMB_NUMBER = 2;


	//メインスライダー内のvideo クリック時の処理
	$('#js-detail-main-swiper .swiper-slide video').each(function(){
		let video = $(this).get(0);
		$(this).click(function(){
			video.paused ? video.play() : video.pause();
		});
		$(this).parent().find('.detail-slider-movie-play').click(function(){
			$(this).css({"display":"none"});
			//video.play();
		});
	});
	//END メインスライダー内のvideo クリック時の処理


	//
	//メインスライダー　関連サムネイル
	let $sliderThumbnail = new Swiper('#js-detail-thumb-swiper', {
		freeMode: true,
		centeredSlides: true, //必要
		centeredSlidesBounds: true, //必要　true時、アクティブなスライドはスライダーの最初と最後にギャップを追加せず真ん中に配置される
		slidesPerView: 'auto',
		preloadImages: false,
		spaceBetween: 10,
		speed: 250,
		initialSlide:slideStart,
		lazy: true,
		on: {
			init: function (e) {
				//初期
				$('#js-detail-thumb-swiper').addClass('op-view');
			},
			slideChangeTransitionEnd: function (e) {
				//スライド切り替えのアニメーション終了後
			}
		}
	});

	//メインスライダー
	let $sliderMain = new Swiper('#js-detail-main-swiper', {
		effect: 'slide',
		spaceBetween: 0,
		speed: 250,
		initialSlide:slideStart,
		preloadImages: false,
		lazy: {
			loadPrevNext: true,
		},
		thumbs: {
			swiper: $sliderThumbnail
		},
		controller:{
			control: $sliderThumbnail　//2つのスライダーを同期させるオプション
		},
		 navigation: {
			nextEl: '.swiper-button-next',
			prevEl: '.swiper-button-prev',
		},
		/*
		breakpoints: {
			768: {
				effect: 'fade', //フェード
				fadeEffect: {
					crossFade: true //フェードの場合に指定
				}
			}
		},
		*/
		on: {
			init: function (e) {
				//初期
				$('#js-detail-main-swiper').addClass('op-view');

				//カラーコード連携：価格表示変更
				tempColorCode = $('#js-detail-main-swiper .swiper-slide-active .detail-slider-color-code').attr('data-code');
				$('.item-detail-value-wrap .item-detail-value').css({'display':'none'});
				$('#' + tempColorCode).css({'display':'block'});

				//videoの高さ指定 + 初期再生
				let temp_h = $('#js-detail-main-swiper .swiper-slide:first img').height();
				$('#js-detail-main-swiper .swiper-slide:first video').each(function(){
					$(this).css({"height":temp_h+"px"});
					let video = $(this).get(0);
					//動画はスライダーの一番最初しかない仕様になる 2022/08/01
					//video.play();
					$('.detail-slider-movie-play').addClass('none');
				});

				//サムネのポジション固定処理 付与
				if(slideStart < THUMB_NUMBER){
					$('#js-detail-thumb-swiper').addClass('pos-static');

					//セットインターバル
					let i = 0;
					let intervalThumb = setInterval(function() {
						$('#js-detail-thumb-swiper .swiper-wrapper').css({
							'transform': 'translate3d(0px, 0px, 0px)',
							'transition-duration': '1000ms'
						});

						i ++;

						if(i >= 10){
							clearInterval(intervalThumb);
						}
					}, 100);
					//END セットインターバル
				}
				//END サムネのポジション固定処理 付与

			},
			slideChange: function (e) {
				//アクティブなスライド変更時
			},
			slideChangeTransitionStart: function (e) {
				//スライド切り替えのアニメーション開始時

				//動画はスライダーの一番最初しかない仕様になる 2022/08/01
				$('#js-detail-main-swiper .swiper-slide:first video').each(function(){
					let video = $(this).get(0);
					video.pause();
				});

				//サムネのポジション固定処理 付与/解除
				if(e.activeIndex < THUMB_NUMBER){
					$('#js-detail-thumb-swiper').addClass('pos-static');
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 付与/解除

			},
			slideChangeTransitionEnd: function (e) {
				//スライド切り替えのアニメーション終了後

				//カラーコード連携：価格表示変更
				tempColorCode = $('#js-detail-main-swiper .swiper-slide-active .detail-slider-color-code').attr('data-code');
				$('.item-detail-value-wrap .item-detail-value').css({'display':'none'});
				$('#' + tempColorCode).css({'display':'block'});
				//END カラーコード連携：価格表示変更
				//モデル+カラー：在庫エリアの切替
				$('.detail-slider-caption-item').css({'display':'none'});
				$('#detail-slider-caption-item' + e.activeIndex).fadeIn(150);
				//END モデル+カラー：在庫エリアの切替

				//アクティブスライドのvideo プレイ
				if($('#js-detail-main-swiper .swiper-slide-active video')[0]){
					$('#js-detail-main-swiper .swiper-slide-active video').get(0).addEventListener("play", function(){
						$('#js-detail-main-swiper .swiper-slide-active .detail-slider-movie-play').css({"display":"none"});
				  	}, false);
					$('#js-detail-main-swiper .swiper-slide-active video').get(0).play();
				}
				//END アクティブスライドのvideo プレイ

				//サムネのポジション固定処理 解除
				if(e.activeIndex < THUMB_NUMBER){
					setTimeout(function () {
						$('#js-detail-thumb-swiper .swiper-wrapper').css({
							'transform': 'translate3d(0px, 0px, 0px)',
							'transition-duration': '1000ms'
						});
						$('#js-detail-thumb-swiper').removeClass('pos-static');
					} , 100);
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 解除

			},
			touchStart:function (e) {
				//タッチスタート
				//サムネのポジション固定処理 付与/解除
				if(e.activeIndex < THUMB_NUMBER){
					$('#js-detail-thumb-swiper').addClass('pos-static');
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 付与/解除
			},
			touchEnd:function (e) {
				//タッチエンド
				//サムネのポジション固定処理 解除
				if(e.activeIndex < THUMB_NUMBER){
					setTimeout(function () {
						$('#js-detail-thumb-swiper .swiper-wrapper').css({
							'transform': 'translate3d(0px, 0px, 0px)',
							'transition-duration': '1000ms'
						});
						$('#js-detail-thumb-swiper').removeClass('pos-static');
					} , 100);
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 解除
			}
		}
	});

	//windowリサイズ時　videoの高さ指定
	$(window).on('resize', function(){
		setTimeout(function () {
			let temp_h = $('#js-detail-main-swiper .swiper-slide:first img').height();
			$('#js-detail-main-swiper .swiper-slide video').each(function(){
				$(this).css({"height":temp_h+"px"});
			});
		}, 10);
	});

	//END メインキービジュアルスライド --------------------



	//---------------------------------------------------//
	// 202011 拡大モーダル edit
	//---------------------------------------------------//
	if($('#modal-expansion-slide')[0]){

		//windowの高さ
		let tempWinH = window.innerHeight;
		//windowの横サイズ
		let tempWinW = window.innerWidth;
		$('.expansion-slide-item__inner').css({'height':tempWinH +'px'});

		//スライダーの数
		let tempSlideCount = $('#modal-expansion-slide .expansion-slide-item').length;
		$('#modal-expansion__count span').text(tempSlideCount);
		$('#modal-expansion__count strong').text('1');


		//スライダー実装エリア
		let $expansionSlide = $('#modal-expansion-slide .slides');
		$expansionSlide.on('init', function(slick){
			setTimeout(function () {
				$('.expansion-slide-item__inner').css({'height':tempWinH +'px'});
			}, 100);
		});
		$expansionSlide.on('beforeChange', function(event, slick, currentSlide, nextSlide){
			//translateXを元に戻す
			$('.expansion-slide-item .expansion-slide-item__inner img:not(.expansion-slide-item.slick-current .expansion-slide-item__inner img)').each(function(){
				let tempX = $(this).attr('data-initX');
				$(this).css({'transform': 'translateX('+ (-tempX) + 'px)'});
			});
		});
		$expansionSlide.on('afterChange', function(event, slick, currentSlide, nextSlide){
			//カウント処理
			let tempNum = currentSlide + 1;
			$('#modal-expansion__count strong').text(tempNum);
			let tempBaseNum = $('#modal-expansion-slide .expansion-slide-item.slick-current').attr('data-basephoto');
			//console.log(tempBaseNum);

			//ベースのメインswiperを実行
			$sliderMain.slideTo(Number(tempBaseNum), 1);
		});
		$expansionSlide.slick({
			speed: 300,
			autoplay:false,
			infinite: true,
			pauseOnHover: false,
			pauseOnFocus: false,
			slidesToShow: 1,
			slidesToScroll: 1,
			dots: false,
			arrows: true,
			swipe:false
		});
		//END スライダー実装エリア


		//拡大ボタン：処理
		$('.itemExpansion_btn span').click(function(){

			//window固定処理
			win_y_pos = $(window).scrollTop();
			$('body,html').addClass('head_navi_open');
			$('body').css({"top":-(win_y_pos)+"px"});
			//END window固定処理

			let tempNum = $(this).attr('data-choice');
			tempNum = Number(tempNum);
			setTimeout(function(){
				$expansionSlide.slick('setPosition');
				$expansionSlide.slick('slickGoTo', tempNum, true);

				//画像ポジションを初期
				$('.expansion-slide-item__inner img').each(function(){
					let imgW = $(this).width();
					//画像がはみ出たサイズの1/2
					let tempX = (imgW - tempWinW)/2;
					//data-initX に代入
					$(this).attr('data-initX', tempX);
					$(this).css({'transform': 'translateX('+ (-tempX) + 'px)'});
				});

			}, 20);
			$('#modal-expansion , #modal-expansion-bg').fadeIn(200);
		});


		//拡大モーダルClose btn：処理
		$('#modal-expansion__close').click(function(){
			$('#modal-expansion , #modal-expansion-bg').fadeOut(100);

			//window固定処理：解除
			$('body,html').removeClass('head_navi_open').animate({scrollTop:win_y_pos},0);
			$('body').css({"top":""});
			//END window固定処理：解除
		});


		//　フリック系：処理 ----------------------------------------
		let flick_startX = 0;

		function touchStartEvent(event) {
			// タッチによる画面スクロールを止める
			//event.preventDefault();

			// 指が触れた位置のx座標
			flick_startX = event.touches[0].pageX;
		}

		function touchMoveEvent(event) {
			//event.preventDefault();

			//translateX 取得関数：実行
			let tempTranslateX = getTranslateX(event.target);

			// 指が触れた位置のx座標
			//let x = event.touches[0].pageX;
			let x = event.changedTouches[0].pageX;

			// 指の移動距離:x軸
			let v = flick_startX - x;

			//画像移動
			$(event.target).css({
				'transform': 'translateX('+ (tempTranslateX - v) + 'px)'
			});

			// 位置 X座標を記憶
			flick_startX = event.changedTouches[0].pageX;
		}

		function touchEndEvent(event) {
			//event.preventDefault();

			let tempX = $(event.target).attr('data-initX');
			//translateX 取得関数：実行
			let tempTranslateX = getTranslateX(event.target);

			//アニメーション付与
			$(event.target).css({'transition': 'transform 200ms ease 0s'});

			//範囲を超えた場合
			if(tempTranslateX > 0){
				$(event.target).css({'transform': 'translateX(0px)'});
			}
			if(tempTranslateX < -(tempX*2)){
			   $(event.target).css({'transform': 'translateX(' + (-tempX*2) + 'px)'});
			}

			setTimeout(function () {
				//アニメーション解除
				$(event.target).css({'transition': 'none'});
			}, 50);
			//
		}


		// ドラッグ可能アイテムへのタッチイベントの設定
		let draggableItems = $(".expansion-slide-item__inner img");
		for (let i = 0; i < draggableItems.length; ++i) {
			var item = draggableItems[i];
			item.addEventListener('touchstart', touchStartEvent, false);
			item.addEventListener('touchmove', touchMoveEvent, false);
			item.addEventListener('touchend', touchEndEvent, false);
		}

		// END フリック系：処理 ----------------------------------------

		//translateX 取得関数
		function getTranslateX(tempObj) {
			let style = window.getComputedStyle(tempObj);
			let matrix = new WebKitCSSMatrix(style.webkitTransform);
			//console.log('translateX: ', matrix.m41);
			return matrix.m41;
		}

	}
	// END 202011 拡大モーダル edit ---------------------------


};
// END メイン JS


function mainJsSecond(){

	//カラーコード
	let tempColorCode = "";
	//サムネ0px固定化するアイテム値
	const THUMB_NUMBER = 2;

	//メインスライダー　関連サムネイル
	let $sliderThumbnail = new Swiper('#js-detail-thumb-swiper', {
		freeMode: true,
		centeredSlides: true, //必要
		centeredSlidesBounds: true, //必要　true時、アクティブなスライドはスライダーの最初と最後にギャップを追加せず真ん中に配置される
		slidesPerView: 'auto',
		preloadImages: false,
		spaceBetween: 10,
		speed: 250,
		initialSlide:slideStart,
		on: {
			init: function (e) {
				//初期
				$('#js-detail-thumb-swiper').addClass('op-view');
			},
			slideChangeTransitionEnd: function (e) {
				//スライド切り替えのアニメーション終了後
			}
		}
	});

	//メインスライダー
	let $sliderMain = new Swiper('#js-detail-main-swiper', {
		effect: 'slide',
		spaceBetween: 0,
		speed: 250,
		initialSlide:slideStart,
		preloadImages: false,
		lazy: {
			loadPrevNext: true,
		},
		thumbs: {
			swiper: $sliderThumbnail
		},
		controller:{
			control: $sliderThumbnail　//2つのスライダーを同期させるオプション
		},
		 navigation: {
//			nextEl: '.swiper-button-next',
//			prevEl: '.swiper-button-prev',
		},
		/*
		breakpoints: {
			768: {
				effect: 'fade', //フェード
				fadeEffect: {
					crossFade: true //フェードの場合に指定
				}
			}
		},
		*/
		on: {
			init: function (e) {
				//初期
				$('#js-detail-main-swiper').addClass('op-view');

				//カラーコード連携：価格表示変更
				tempColorCode = $('#js-detail-main-swiper .swiper-slide-active .detail-slider-color-code').attr('data-code');
				$('.item-detail-value-wrap .item-detail-value').css({'display':'none'});
				$('#' + tempColorCode).css({'display':'block'});

//				//videoの高さ指定 + 初期再生
//				let temp_h = $('#js-detail-main-swiper .swiper-slide:first img').height();
//				$('#js-detail-main-swiper .swiper-slide:first video').each(function(){
//					$(this).css({"height":temp_h+"px"});
//					let video = $(this).get(0);
//					//動画はスライダーの一番最初しかない仕様になる 2022/08/01
//					video.play();
//					$('.detail-slider-movie-play').addClass('none');
//				});

				//サムネのポジション固定処理 付与
				if(slideStart < THUMB_NUMBER){
					$('#js-detail-thumb-swiper').addClass('pos-static');

					//セットインターバル
					let i = 0;
					let intervalThumb = setInterval(function() {
						$('#js-detail-thumb-swiper .swiper-wrapper').css({
							'transform': 'translate3d(0px, 0px, 0px)',
							'transition-duration': '1000ms'
						});

						i ++;

						if(i >= 10){
							clearInterval(intervalThumb);
						}
					}, 100);
					//END セットインターバル
				}
				//END サムネのポジション固定処理 付与

			},
			slideChange: function (e) {
				//アクティブなスライド変更時
			},
			slideChangeTransitionStart: function (e) {
				//スライド切り替えのアニメーション開始時

				//動画はスライダーの一番最初しかない仕様になる 2022/08/01
				$('#js-detail-main-swiper .swiper-slide:first video').each(function(){
					let video = $(this).get(0);
					video.pause();
				});

				//サムネのポジション固定処理 付与/解除
				if(e.activeIndex < THUMB_NUMBER){
					$('#js-detail-thumb-swiper').addClass('pos-static');
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 付与/解除

			},
			slideChangeTransitionEnd: function (e) {
				//スライド切り替えのアニメーション終了後

				//カラーコード連携：価格表示変更
				tempColorCode = $('#js-detail-main-swiper .swiper-slide-active .detail-slider-color-code').attr('data-code');
				$('.item-detail-value-wrap .item-detail-value').css({'display':'none'});
				$('#' + tempColorCode).css({'display':'block'});
				//END カラーコード連携：価格表示変更

				//モデル+カラー：在庫エリアの切替
				$('.detail-slider-caption-item').css({'display':'none'});
				$('#detail-slider-caption-item' + e.activeIndex).fadeIn(150);
				//END モデル+カラー：在庫エリアの切替

				//アクティブスライドのvideo プレイ
				if($('#js-detail-main-swiper .swiper-slide-active video')[0]){
					$('#js-detail-main-swiper .swiper-slide-active video').get(0).addEventListener("play", function(){
						$('#js-detail-main-swiper .swiper-slide-active .detail-slider-movie-play').css({"display":"none"});
				  	}, false);
					$('#js-detail-main-swiper .swiper-slide-active video').get(0).play();
				}
				//END アクティブスライドのvideo プレイ

				//サムネのポジション固定処理 解除
				if(e.activeIndex < THUMB_NUMBER){
					setTimeout(function () {
						$('#js-detail-thumb-swiper .swiper-wrapper').css({
							'transform': 'translate3d(0px, 0px, 0px)',
							'transition-duration': '1000ms'
						});
						$('#js-detail-thumb-swiper').removeClass('pos-static');
					} , 100);
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 解除

			},
			touchStart:function (e) {
				//タッチスタート
				//サムネのポジション固定処理 付与/解除
				if(e.activeIndex < THUMB_NUMBER){
					$('#js-detail-thumb-swiper').addClass('pos-static');
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 付与/解除
			},
			touchEnd:function (e) {
				//タッチエンド
				//サムネのポジション固定処理 解除
				if(e.activeIndex < THUMB_NUMBER){
					setTimeout(function () {
						$('#js-detail-thumb-swiper .swiper-wrapper').css({
							'transform': 'translate3d(0px, 0px, 0px)',
							'transition-duration': '1000ms'
						});
						$('#js-detail-thumb-swiper').removeClass('pos-static');
					} , 100);
				}
				else{
					$('#js-detail-thumb-swiper').removeClass('pos-static');
				}
				//END サムネのポジション固定処理 解除
			}
		}
	});
};
// END メイン JS




//-----------------------------------------------------------------------//
// その他 JS
//----------------------------------------------------------------------//
function otherJs(){

	//星レートテキストリンク
	$('.js-item-detail-star-rate').click(function () {

		$('.item-detail-tab__navi li[data-choice="tab-review"]').click();

		//移動
		let target = $('#item-detail-content__sub-info');
		$('html, body').animate({scrollTop: target.offset().top - 20},400);
		//Wheel展開時 強制終了
		$('html,body').bind('mousedown mousewheel DOMMouseScroll',function(){
			$(this).queue([]).stop();
			$(this).dequeue();
		})
		return false;
	});
	//END 星レートテキストリンク


	//使用アイテムを見るボタン モーダル展開btn
	$('.js-itemuse-modal-btn').click(function () {
		let tempStr = $(this).attr('data-choice');
		$('body').addClass('modal-open');
		$('.modal-use-item__name , .modal-use-item__list').removeClass('current');
		$('.' + tempStr).addClass('current');
		$('#modal-use-item').fadeIn(200).css('display','flex');

		$('#js-modal-bg').fadeIn();
	});
	//END 使用アイテムを見るボタン モーダル展開btn


	//お気に入りボタン(モーダル内)
	//$('#modal-cart-favorite .modal-body').on('click', '.js-favorite-btn', function () {
	//	$(this).toggleClass('on');
	//});
	//END お気に入りボタン(モーダル内)


	//再入荷のお知らせボタン(モーダル内) モーダル展開btn
	$('#modal-cart-favorite .modal-body').on('click', '.js-restocked-btn', function () {

		modalRestockedEntryVue.goodsNo = $(this).parent().find('input[name="restocked-goodsno"]').val()
		modalRestockedEntryVue.colorNm = $(this).parent().find('input[name="restocked-colornm"]').val()
		modalRestockedEntryVue.sizeNm = $(this).parent().find('input[name="restocked-sizenm"]').val()
		modalRestockedEntryVue.itemNm = $(this).parent().find('input[name="restocked-itemnm"]').val()
		modalRestockedEntryVue.shopNo = $(this).parent().find('input[name="restocked-shopNo"]').val()

		$('#modal-restocked-entry').fadeIn(200).css('display','flex');
		setTimeout( function () {
			$('#modal-cart-favorite').fadeOut(100);
		}, 100);

	});
	//END 再入荷のお知らせボタン(モーダル内) モーダル展開btn


	//店舗在庫ボタン + Quick Pickボタン
	$('.js-item-detail-quickpick-modal-btn').on('click', function () {
			try {
				let colorCd = modalShopStockVue.goodsBeanList[0].colorCd;
				let goodsNo = searchSmallColorGoods(colorCd);
				$('body').addClass('modal-open');
				$('#modal-shop-stock').fadeIn(200).css('display','flex');
				setTimeout( function () {
					$('#modal-shop-stock').scrollTop(0);
				}, 1);
				$('#js-modal-bg').fadeIn();
				getGoodsStoreStock(goodsNo);
				} catch(e) {
					console.log(e.message);
					//読み込み失敗時エラーモーダルフェードイン
					$('body').addClass('modal-open');
					$('#js-modal-bg').fadeIn();
					$('#modal-conection-tag-error').fadeIn(100).css({'display':'flex'});
				}
	});
		//END 店舗在庫ボタン + Quick Pickボタン


	//店舗在庫(モーダル内) 戻るbtn
	$('#modal-quickpick-in .modal-body').on('click', '.js-modal-quickpick-in-back', function () {

		$('#modal-shop-stock').fadeIn(200).css('display','flex');
		setTimeout( function () {
			$('#modal-quickpick-in').fadeOut(100);
		}, 100);

	});
	//END 店舗在庫(モーダル内) 戻るbtn


	//店舗在庫(モーダル内) アンカーリンク
	$('#modal-shop-stock .modal-body').on('click', '.js-modal-anchor-link', function () {
		let target = $(this).attr('href');
		if(target != "#"){
			target = $(target);
			if (target.length == 0) {return;}

			$('#modal-shop-stock').animate({scrollTop: target.position().top + 70},400);
			//Wheel展開時 強制終了
			$('#modal-shop-stock').bind('mousedown mousewheel DOMMouseScroll',function(){
				$(this).queue([]).stop();
				$(this).dequeue();
			})
			return false;
		}//end if(target != "#")

	});
	//END 店舗在庫(モーダル内) アンカーリンク



	//Tab切り替え
	$('.js-item-detail-tab .item-detail-tab__navi > li').click(function () {
		$('.js-item-detail-tab .item-detail-tab__navi > li').removeClass('current');
		$(this).addClass('current');
		let tempChoice = $(this).attr('data-choice');

		$(this).parents('.js-item-detail-tab').find('.item-detail-tab__content').css({'display':'none'});
		$('#' + tempChoice).fadeIn(200);
	});
	//END Tab切り替え


	//関連タグのアコーディオン
	$('.js-connection-tag-more-btn').click(function () {
		$(this).toggleClass('open');
		$('.item-detail-content__connection-tag__more').slideToggle();
	});
	//END 関連タグのアコーディオン

};
// END その他 JS




//-----------------------------------------------------------------------//
// その他 カルーセル JS
//----------------------------------------------------------------------//
function otherCarouselJs(){

	var tempSecretSwiper = document.querySelectorAll('.js-secret-sale-swiper');
	if(tempSecretSwiper.length > 0){
		for (let i = 1; i <= tempSecretSwiper.length; i++) {

			var swiperSecret = new Swiper('.js-secret-sale-swiper' + i, {
				loop: false,
				slidesPerView: 'auto',
				slidesPerGroup: 1,//slideさせる数
				spaceBetween: 5,
				freeMode: true,
				speed: 400,
				navigation: {
					nextEl: '.secret-swiper-button-next' + i,
					prevEl: '.secret-swiper-button-prev' + i,
				},
				breakpoints: {
					768: {
						//when window width is >= 768px PC
						freeMode: false,
						spaceBetween: 16,
						slidesPerView: 5.5,
						slidesPerGroup: 5
					}
				},
				/*
				scrollbar: {
					el: '.swiper-scrollbar',
					hide: false,
					draggable: true
				},
				*/
				on: {
					init: function () {
					}
				}
			});
		}
	}


	// 商品詳細 カルーセル(swiper)最近チェックしたアイテム
	if ($('#js-user-checkitem-swiper')[0]) {
		let swiperCheckitem = new Swiper('#js-user-checkitem-swiper', {
			loop: false,
			slidesPerView: 'auto',
			slidesPerGroup: 1,//slideさせる数
			spaceBetween: 5,
			freeMode: true,
			speed: 400,
			navigation: {
				nextEl: '.swiper-button-next-checkitem',
				prevEl: '.swiper-button-prev-checkitem',
			},
			breakpoints: {
				768: {
					//when window width is >= 768px PC
					freeMode: false,
					spaceBetween: 10,
					slidesPerView: 6.3,
					slidesPerGroup: 6
				}
			},
			on: {
				init: function () {
				}
			}
		});
	}
	// END 商品詳細 カルーセル(swiper)最近チェックしたアイテム


	// 商品詳細 カルーセル(swiper)あなたにおすすめのアイテム
	if ($('#js-recommend-item-swiper')[0]) {
		let swiperRecommend = new Swiper('#js-recommend-item-swiper', {
			loop: false,
			slidesPerView: 'auto',
			slidesPerGroup: 1,//slideさせる数
			spaceBetween: 0,
			freeMode: true,
			speed: 400,
			navigation: {
				nextEl: '.swiper-button-next-recommend',
				prevEl: '.swiper-button-prev-recommend',
			},
			breakpoints: {
				768: {
					//when window width is >= 768px PC
					freeMode: false,
					spaceBetween: 0,
					slidesPerView: 5,
					slidesPerGroup: 5
				}
			},
			on: {
				init: function () {
				}
			}
		});
	}
	// END 商品詳細 カルーセル(swiper)あなたにおすすめのアイテム


	// 商品詳細 カルーセル(swiper)あなたにおすすめのアイテム
	if ($('#js-recommend-item-brand-swiper')[0]) {
		let swiperRecommendBrand = new Swiper('#js-recommend-item-brand-swiper', {
			loop: false,
			slidesPerView: 'auto',
			slidesPerGroup: 1,//slideさせる数
			spaceBetween: 0,
			freeMode: true,
			speed: 400,
			navigation: {
				nextEl: '.swiper-button-next-recommend-brand',
				prevEl: '.swiper-button-prev-recommend-brand',
			},
			breakpoints: {
				768: {
					//when window width is >= 768px PC
					freeMode: false,
					spaceBetween: 0,
					slidesPerView: 5,
					slidesPerGroup: 5
				}
			},
			on: {
				init: function () {
				}
			}
		});
	}
	// END 商品詳細 カルーセル(swiper)あなたにおすすめのアイテム

};
// END その他 カルーセル JS
