(function ($) {

	// サファリ対応
	var ua = window.navigator.userAgent.toLowerCase();
	if (ua.indexOf('safari') !== -1 && ua.indexOf('chrome') === -1 && ua.indexOf('edge') === -1) {
		$('#captchaInput').attr('oninput', '');
	}

	function validate(boxId) {
		var validateValidate = $(boxId).validationEngine('validate');
		return validateValidate;
	}

	// バリデーションデタッチ
	function validateDetach(boxId) {
		$(boxId).validationEngine('detach');
	}

	$("#validation_form").validationEngine('attach', {
		ajaxFormValidation: true,
		onBeforeAjaxFormValidation: beforeCall,
		onValidationComplete: function (form, status) {
			$('#captchaInput').removeClass('validate[required]');
		}
	});

	function htmlspecialchars(str) {
		return (str + '').replace(/&/g, '&amp;')
			.replace(/"/g, '&quot;')
			.replace(/'/g, '&#039;')
			.replace(/</g, '&lt;')
			.replace(/>/g, '&gt;')
			.replace(/\r?\n/g, '<br>');
	}

	function beforeCall() {
		validateDetach('#captchaInput');
		var captchaShow = false;
		var captchaStatus = false;
		var captcha_code = $('input[name="captcha_code"]').val();
		var csrf_token = $('input[name="csrf-token"]').val();
		var _token = $('input[name="_token"]').val();
		if ($('#captchaInput').length) {
			captchaShow = true;
		}
		/* =========== 画像認証設定 ON の場合 ========== */
		if (captcha_code) {
			jQuery('#captchaInput').addClass('validate[required]');

			jQuery.ajax({
				url: "/captchaValidate",
				type: "POST",
				data: {
					captcha_code: captcha_code,
					action: 'ajax'
				},
				cache: false,
				dataType: 'json',
				headers: {
					'X-CSRF-TOKEN': jQuery('meta[name="csrf-token"]').attr('content')
				}
			})
				.done(function (data) {
					if (!data.captcha_code) {
						$('<div class="captchaInputformError parentFormvalidation_form formError" style="opacity: 0.9; position: absolute;  display: block;"><div class="formErrorContent">上記の英数字と内容が一致しません<br></div><div class="formErrorArrow"><div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div></div></div>').insertBefore("#captchaInput");
					} else {
						//alert("認証コードが一致しました");
						captchaStatus = true;

						$.magnificPopup.open({
							items: { src: '#popup_wrap' },
							type: 'inline',
							closeOnBgClick: false,
							showCloseBtn: false,
							callbacks: {
								open: function () {
									$('#wrap_in *').remove();
									$('.submit_box').remove();
									$('#popup_wrap h4').remove();

									var members = [{ num: '1', name: 'kojin', title: '法人・個人' },
									{ num: '2', name: 'onamae', title: 'お名前' },
									{ num: '3', name: 'furigana', title: 'ふりがな' },
									{ num: '4', name: 'sex', title: '男性・女性' },
									{ num: '5', name: 'age', title: 'ご年齢' },
									{ num: '6', name: 'kaisya', title: '会社名' },
									{ num: '7', name: 'busyo', title: '部署名' },
									{ num: '8', name: 'zip', title: '郵便番号' },
									{ num: '9', name: 'addr', title: 'ご住所' },
									{ num: '10', name: 'phone', title: 'お電話' },
									{ num: '11', name: 'fax', title: 'FAX' },
									{ num: '12', name: 'mailto', title: 'メールアドレス' },
									{ num: '13', name: 'comment', title: 'お問い合わせ内容' },
									{ num: '14', name: 'captcha_code', title: '認証コード' }
									];

									var obj = new Object();
									// テキストの値を取得
									$("#validation_form input:text").each(function () {
										obj[this.name] = this.value
									});
									// チェックされた値を取得（チェックボックス・ラジオボタン）
									$("#validation_form input:radio").each(function () { // checked OR radio
										var checked = $('input[name="' + this.name + '"]:checked').val();
										checked ? obj[this.name] = checked : obj[this.name] = '';
										if (checked) {
											var checked_name = $("label[for='" + this.name + checked + "']").text();
											obj[this.name] = checked_name;
										}
									});
									// テキストエリアの値を取得
									$("#validation_form textarea").each(function () {
										obj[this.name] = this.value
									});

									// 結果表示
									var targetName = 'mail2';
									var result = "";
									var obj_array = new Array();
									for (var key in obj) {
										//var n_name = '#n_' + key;
										//var t_key = $(n_name).text();
										if (targetName != key) {
											//result += '<tr><th>' + t_key + "</th><td>" + obj[key] + "</td></tr>";
											for (var k in members) {
												if (members[k].name == key) {
													var text = obj[key];
													//if( key == 'comment' ) text = text.replace(/\r?\n/g, '<br>');
													//if (key == 'comment') text = htmlspecialchars(text);
													obj_array[members[k].num] = '<tr><th scope="row">' + members[k].title + "</th><td>" + htmlspecialchars(text) + '</td><input type="hidden" name="' + members[k].name + '" value="' + text + '" /></tr>';
												}
											}
										}
									}
									for (var k in obj_array) {
										result += obj_array[k];
									}

									/*
									for (var k in members) {
											result += members[k].title;
									}
									*/
									$("#wrap_in").html(result);
									$("#wrap_in tr:odd").addClass('colored');
									var t_conform = '<h4>入力内容をご確認ください</h4>';
									var b_sub = '<div class="submit_box"><input type="submit" name="submitadd" id="form-host-submit" value="送信する" class="modal_button"><button type="button" class="modal_button" id="close">キャンセル</button></div>';
									$("#wrap_in").before(t_conform).after(b_sub);
								},
								close: function () {
								}

							}
						}, 0);

					}
				})
				.fail(function (xhr) {
					if (xhr.status === 419) {
						var confirmReload = confirm('セッションの有効期限が切れました。画面をリロードします。');
						if (confirmReload) {
							window.location.reload();
  						}
					}
				});

		} else {
			//alert("認証コードを入力してください");
			$('#captchaInput').addClass('validate[required]');
			validate('#captchaInput');
		}
		if (!captchaStatus) {
			return;
		}
	}

	$(document).on('click', '#form-host-submit', function () {
		document.form.submit();
	});
	$(document).on('click', '#close', function () {
		$.magnificPopup.close();
	});
	$(".refresh").click(function () {
		$(".imgcaptcha").attr("src", "/js/captcha/captcha.php?_=" + ((new Date()).getTime()));
	});

}(jQuery));

$(document).ready(function () {
	$.ajaxSetup({
		headers: {
			'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
		}
	});
});
