// Block用のJavaScriptを記載。

// swiper link
function loadSwiper(callback) {
  if (window.Swiper) {
    callback();
    return;
  }
  const link = document.createElement('link');
  link.rel = 'stylesheet';
  link.href = 'https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css';
  document.head.appendChild(link);
  const script = document.createElement('script');
  script.src = 'https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js';
  script.onload = callback;
  document.body.appendChild(script);
}

$(function(){
    
    $('a[onclick^="MailSendCheck()"]').addClass('mailsend_btn');
    
	// swiper link
    if ($('.swiper').length && !$('.swiper').closest('.PgeE03').length) {
        loadSwiper(function () {
            swiperBox();
        });
    }
});

// swiper
$(window).on('load resize',function(){
    if($(this).width() >= 562){
        $('.swiper').addClass('pc_active');
    }else{
        $('.swiper').removeClass('pc_active');
    } 
});
function swiperBox(){
	// block_g-6
	if($('.block_g-6').length){
		var swi_g6 = new Swiper('.block_g-6 .swiper', {
			loop: true,
			autoplay: {
				delay: 5000,  
			},
			navigation: {//ナビゲーション
				nextEl: ".swiper-button-next",
				prevEl: ".swiper-button-prev",
			},
			pagination: {//ページネーション
				el: '.swiper-pagination',
			},
		});
	}
	
	// block_g-7
	if($('.block_g-7').length){
		var swi_g7 = new Swiper('.block_g-7 .swiper', {
			loop: true,
			autoplay: {
				delay: 5000,  
			},
			navigation: {//ナビゲーション
				nextEl: ".swiper-button-next",
				prevEl: ".swiper-button-prev",
			},
			pagination: {//ページネーション
				el: '.swiper-pagination',
			},
		});
	}

	// block_l-4
	if($('.block_l-4').length){
		var swi_l4 = new Swiper('.block_l-4 .swiper', {
			loop: true,
			autoplay: {
				delay: 5000,  
			},
		});
	}

	// block_l-5
	if($('.block_l-5').length){
		var swi_l5 = new Swiper('.block_l-5 .swiper', {
			loop: true,
			effect: 'fade',
			autoplay: {
				delay: 5000,  
			},
		});
	}
	
	// block_l-17
	if($('.block_l-17').length){
		var swi_l17 = new Swiper('.block_l-17 .swiper', {
			loop: true,
			autoplay: {
				delay: 0,
				disableOnInteraction: false,
			},
			allowTouchMove: false,
			effect: 'slide',
			slidesPerView: 1.6,
			speed: 6000,
		});
	}
	
	// block_l-18
	if($('.block_l-18').length){
		var swi_l18 = new Swiper('.block_l-18 .swiper', {
			loop: true,
			autoplay: {
				delay: 0,
				disableOnInteraction: false,
			},
			allowTouchMove: false,
			effect: 'slide',
			slidesPerView: 2.5,
			speed: 4000,
		});
	}

	// block_p-76
	if($('.block_p-76').length){
		var swi_l5 = new Swiper('.block_p-76 .swiper', {
			loop: true,
			autoplay: {
				delay: 3000,
				disableOnInteraction: false,
			},
			allowTouchMove: false,
			effect: 'slide',
			slidesPerView: 1.4,
			speed: 500,
			spaceBetween: 0,
			centeredSlides: true
		});
	}
	
	// custom
    if ($('.swiper_custom').length) {
        $('.swiper_custom .swiper').each(function () {
          const $el = $(this);
        
          // autoplay 設定
          const autoplayEnabled = $el.data('swiper-autoplay') === true;
          const delay = parseInt($el.data('swiper-delay'), 10);
          const autoplayOption = autoplayEnabled
            ? {
                delay: isNaN(delay) ? 3000 : delay,
                disableOnInteraction: false
              }
            : false;
        
          // effect 設定
          const effectMode = $el.data('swiper-mode') === 'fade' ? 'fade' : 'slide';
          const isFade = effectMode === 'fade';
        
          new Swiper($el[0], {
            loop: true,
            loopedSlides: $el.find('.swiper-slide').length,
            autoplay: autoplayOption,
            effect: effectMode,
            fadeEffect: isFade ? { crossFade: true } : undefined,
        	navigation: {//ナビゲーション
        		nextEl: $el.find('.swiper-button-next')[0],
        		prevEl: $el.find('.swiper-button-prev')[0],
        	},
        	pagination: {//ページネーション
        		el: $el.find('.swiper-pagination')[0],
        	},
          });
        });
    }
}

$(function(){

	// block_a-5
	$('.block_a-5, .block_a-10, .block_a-11').each(function(){
    	var banN = $(this);
    	// data属性から数値を取得、無ければ150
    	var fadeInPoint = parseInt(banN.data('fadein'), 10) || 150;
    	var fadeOutPoint = parseInt(banN.data('fadeout'), 10) || 150;
    	if(!banN.parents().hasClass('PgeE03')) { // 編集画面の時は動作させない
    		banN.addClass('active').hide();
    		$(window).on('scroll load', function(){
    			var winS = $(this).scrollTop();
    			var winH = $(this).height();
    			var bodyH = $(document).height();
    			// 下からfadeOutPoint px以内 → フェードアウト
    			if(winS > (bodyH - winH - fadeOutPoint)){
    				banN.fadeOut(300);
    			// 上からfadeInPoint px以上 → フェードイン
    			} else if(winS > fadeInPoint){
    				banN.fadeIn(300);
    			// それ以外 → フェードアウト
    			} else {
    				banN.fadeOut(300);
    			}
    		});
    	} else {
    		banN.removeClass('active');
    	}
	});
	
	// block_c-6
	$('.block_c-6').each(function(){
		if($(this).parents().hasClass('PgeE03') == false) {//編集画面の時は動作させない
	    	$(this).find('.open_wrap').slideUp(0);
			$(this).find('.open_btn').click(function(){
				$(this).closest('.block_c-6').toggleClass('active');
				$(this).next('.open_wrap').slideToggle(200);

			});	
		}		
	});

	// block_l-7
	$('.block_l-7').each(function(){
		if($(this).parents().hasClass('PgeE03') == false) //編集画面の時は動作させない
		{
			jQuery(document).ready(function(){
				(function(b) {
					var c = function() {
						this.initialize();
					};
					c.prototype = {
						initialize: function() {
							history.replaceState("beforeunload", null, null);
							history.pushState(null, null, null);
							b(window).on("popstate", b.proxy(this.popstate, this));
						},
						popstate: function(b) {
							if (b.originalEvent.state === "beforeunload") {
								viewBackGuide();
							}
						},
					};
					new c();
				})(jQuery);
				function viewBackGuide() {
					$('.block_l-7').show();
				}
			});
			$(this).find('.close').click(function(){
				$(this).closest('.block_l-7').hide();
			});
		}
	});
	
	
	// block_l-16
    $('.block_l-16').each(function(){
        // data-delay属性がない場合は、デフォルトで60000ミリ秒（60秒）に設定
    	if($(this).parents().hasClass('PgeE03') == false){ //編集画面の時は動作させない
            var delayTime = $(this).data('delay') || 60000;
            setTimeout($.proxy(function() {
                $(this).fadeIn(300);
            }, this), delayTime);
            $(this).find('.close').click(function(){
                $(this).closest('.block_l-16').hide();
            });
        }
    });

	// open_box
	if($('.open_wrap').parents().hasClass('PgeE03') == false){
		$('.open_wrap').find('.open_box').slideUp();
		$('.open_wrap').on('click',function(event){
			$(this).toggleClass('open').find('.open_box').stop().slideToggle(200);
		});
	}

	// check radio
	if($('.input_box').parents().hasClass('PgeE03') == false){
		$('.input_box.check_box .box_item').click(function(){
			$(this).toggleClass('click');
		});
		$('.input_box.radio_box .box_item').click(function(){
			$(this).closest('.radio_box').find('.box_item').removeClass('click');
			$(this).addClass('click');
		});
	}
			if($('.input_box2').parents().hasClass('PgeE03') == false){
		$('.input_box2.check_box .box_choices').click(function(){
			$(this).toggleClass('click');
		});
		$('.input_box2.radio_box .box_choices').click(function(){
			$(this).closest('.radio_box').find('.box_choices').removeClass('click');
			$(this).addClass('click');
		});
	}

	// modal
	$('.modal_bt').each(function(){
		if($(this).parents().hasClass('PgeE03') == false) {//編集画面の時は動作させない
	    	$(this).click(function(){
        		$(this).next('.modal_box').addClass('active');
        	});
		}	
    	$(this).next('.modal_box').find('.modal_close, .modal_bg').click(function(){
    		$(this).closest('.modal_box').removeClass('active');
    	});
	});

});

//AWS メール送信処理
function JSMAIL_sendMail() {
    // フォーム内のデータを一括で取得
	var form = $("#formId");
	var param = {};
    // フォームの内容を取得してスタック
    var message_data = "";
    
    message_data = "このメールは送信専用メールアドレスから配信されています。\r\n";
	message_data += "このままご返信いただいてもお答えできませんのでご了承ください。\r\n\r\n";

	//alert(JSON.stringify(form.serializeArray()));
	$(form.serializeArray()).each(function (i, elem) {
		//let element = document.getElementById(elem.name);
		let element = document.getElementsByName(elem.name);
		let title = " ";
		try {
			title = element[0].dataset.title;
		} catch { }
		message_data += title + " : " + elem.value + "\r\n";
	});

    // まず、データをJsonにする準備
    var data = {
        "FROM_MAIL": document.getElementById("JSMAIL_FROM_MAIL").value,
        "TO_MAIL": document.getElementById("JSMAIL_TO_MAIL").value,
        "SUBJECT": document.getElementById("JSMAIL_SUBJECT").value,
        "MESSAGE": message_data,
        "FORMAT": document.getElementById("JSMAIL_FORMAT").value,
        "MAIL_ID": document.getElementById("JSMAIL_MAIL_ID").value,
    }
    // 送信実行（API Gatewayを呼ぶだけ、APIキーなどは不要）
    $.ajax({
        url: "/Api/Mail/SendMail",
        type: "POST",
        contentType: "application/json",
        data: JSON.stringify(data),
    })
        .done((datas) => {
			//成功した場合の処理
			document.getElementById("JSMAIL_MSG_ERROR").style.display = "none";
			document.getElementById("JSMAIL_MSG_END").style.display = "block";
        }).fail((datas) => {
            //失敗した場合の処理
            document.getElementById("JSMAIL_MSG_ERROR").value = "送信エラー";
            document.getElementById("JSMAIL_MSG_ERROR").style.display = "block";
			document.getElementById("JSMAIL_MSG_END").style.display = "none";
        });
}

//AWS メール送信処理（サンクスメール用）
function JSMAIL_sendMail_Thanks() {
	// フォーム内のデータを一括で取得
	var form = $("#formId");
	var param = {};
	// フォームの内容を取得してスタック

	var formdata = "";
	var tomail = "";
	$(form.serializeArray()).each(function (i, elem) {
		//let element = document.getElementById(elem.name);
		let element = document.getElementsByName(elem.name);
		let title = " ";
		try {
			title = element[0].dataset.title;
		} catch { }
		formdata += title + " : " + elem.value + "\r\n";
		if (elem.name == "mail1" || elem.name == "JSMAIL_MAILADDRESS") {
			tomail = elem.value;
		}
	});

	if (tomail == "") { //見つからない場合は処理停止
		return;
	}

	var message_data = document.getElementById("JSMAIL_THANKS_BODY").value;
	message_data = message_data.replace(/@@@rn@@@/g, '\r\n');
	message_data = message_data.replace("@@@data@@@", formdata);

	var data = {
		"FROM_MAIL": document.getElementById("JSMAIL_TO_MAIL").value,
		"TO_MAIL": tomail,
		"SUBJECT": document.getElementById("JSMAIL_THANKS_TITLE").value,
		"MESSAGE": message_data,
		"FORMAT": document.getElementById("JSMAIL_FORMAT").value,
		"MAIL_ID": document.getElementById("JSMAIL_MAIL_ID").value,
	}
	// 送信実行（API Gatewayを呼ぶだけ、APIキーなどは不要）
	$.ajax({
		url: "/Api/Mail/SendMail",
		type: "POST",
		contentType: "application/json",
		data: JSON.stringify(data),
	})
	.done((datas) => {
		//成功した場合の処理
		document.getElementById("JSMAIL_MSG_ERROR").style.display = "none";
		document.getElementById("JSMAIL_MSG_END").style.display = "block";

	}).fail((datas) => {
		//失敗した場合の処理
		document.getElementById("JSMAIL_MSG_ERROR").value = "送信エラー";
		document.getElementById("JSMAIL_MSG_ERROR").style.display = "block";
		document.getElementById("JSMAIL_MSG_END").style.display = "none";
	});
}

//入力情報の初期化（Form内のみ）
function Form_Init() {
	var form = $("#formId");

	$(form.serializeArray()).each(function (i, v) {
		try {
			param[v.name] = v.value;
			//dataから設定されたtitleを取得
			let element = document.getElementById(v.name);
			element.value = "";
		}
		catch (e) { }
	});
}

/**
* データ保存
UserID: ユーザーID
PageNo: ページNo
AddDate:登録日時 GETDATE()
LPID:PequestQuertyString(LPID)
data1～data10: formデータ
Item1～Item10: form項目
*/
function ApiSetFormData() {
	var ApiPath = "api/FormData";  //APIのPathを設定

	var UserID = $("#JSMAIL_USERID").val();
	var PageNo = $("#JSMAIL_PAGENO").val();
	var LPID = getParam('id');
	var item = Array(10); //項目名
	var data = Array(10); //データ
	item.fill('');
	data.fill('');

	if (LPID == null) { //LPIDがない場合には00000000を設定
		LPID = "00000000";
	}

	// フォーム内のデータを一括で取得
	var form = $("#formId");
	$(form.serializeArray()).each(function (i, elem) {
		if (i > 9) return true; //10件より大きい場合はスルー
		//let element = document.getElementById(elem.name);
		let element = document.getElementsByName(elem.name);
		let title = "Check";
		try {
			title = element[0].dataset.title;
		} catch {
		}
		item[i] = title;
		data[i] = elem.value;
		DataCnt = i + 1;
	});

	fetch(ApiPath, {
		method: 'POST', // *GET, POST, PUT, DELETE, etc.
		mode: "cors", // no-cors, *cors, same-origin
		cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
		headers: {
			'Content-Type': 'application/json',
		},
		body: JSON.stringify({
			UserID: UserID,
			PageNo: PageNo,
			LPID: LPID,
			DataCnt: DataCnt,
			item1: item[0],
			item2: item[1],
			item3: item[2],
			item4: item[3],
			item5: item[4],
			item6: item[5],
			item7: item[6],
			item8: item[7],
			item9: item[8],
			item10: item[9],
			data1: data[0],
			data2: data[1],
			data3: data[2],
			data4: data[3],
			data5: data[4],
			data6: data[5],
			data7: data[6],
			data8: data[7],
			data9: data[8],
			data10: data[9],
		}), // 本体のデータ型は "Content-Type" ヘッダーと一致させる必要があります
	})
}

/**
	* Get the URL parameter value
	*
	* @param  name {string} パラメータのキー文字列
	* @return  url {url} 対象のURL文字列（任意）
	*/
function getParam(name, url) {
	if (!url) url = window.location.href;
	name = name.replace(/[\[\]]/g, "\\$&");
	var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
		results = regex.exec(url);
	if (!results) return null;
	if (!results[2]) return '';
	return decodeURIComponent(results[2].replace(/\+/g, " "));
}

