/******/ (function (modules) {
	// webpackBootstrap
	/******/ // The module cache
	/******/ var installedModules = {};
	/******/
	/******/ // The require function
	/******/ function __webpack_require__(moduleId) {
		/******/
		/******/ // Check if module is in cache
		/******/ if (installedModules[moduleId]) {
			/******/ return installedModules[moduleId].exports;
			/******/
		}
		/******/ // Create a new module (and put it into the cache)
		/******/ var module = (installedModules[moduleId] = {
			/******/ i: moduleId,
			/******/ l: false,
			/******/ exports: {},
			/******/
		});
		/******/
		/******/ // Execute the module function
		/******/ modules[moduleId].call(
			module.exports,
			module,
			module.exports,
			__webpack_require__
		);
		/******/
		/******/ // Flag the module as loaded
		/******/ module.l = true;
		/******/
		/******/ // Return the exports of the module
		/******/ return module.exports;
		/******/
	}
	/******/
	/******/
	/******/ // expose the modules object (__webpack_modules__)
	/******/ __webpack_require__.m = modules;
	/******/
	/******/ // expose the module cache
	/******/ __webpack_require__.c = installedModules;
	/******/
	/******/ // define getter function for harmony exports
	/******/ __webpack_require__.d = function (exports, name, getter) {
		/******/ if (!__webpack_require__.o(exports, name)) {
			/******/ Object.defineProperty(exports, name, {
				/******/ configurable: false,
				/******/ enumerable: true,
				/******/ get: getter,
				/******/
			});
			/******/
		}
		/******/
	};
	/******/
	/******/ // getDefaultExport function for compatibility with non-harmony modules
	/******/ __webpack_require__.n = function (module) {
		/******/ var getter =
			module && module.__esModule
				? /******/ function getDefault() {
						return module["default"];
				  }
				: /******/ function getModuleExports() {
						return module;
				  };
		/******/ __webpack_require__.d(getter, "a", getter);
		/******/ return getter;
		/******/
	};
	/******/
	/******/ // Object.prototype.hasOwnProperty.call
	/******/ __webpack_require__.o = function (object, property) {
		return Object.prototype.hasOwnProperty.call(object, property);
	};
	/******/
	/******/ // __webpack_public_path__
	/******/ __webpack_require__.p = "/";
	/******/
	/******/ // Load entry module and return exports
	/******/ return __webpack_require__((__webpack_require__.s = 0));
	/******/
})(
	/************************************************************************/
	/******/ [
		/* 0 */
		/***/ function (module, exports, __webpack_require__) {
			__webpack_require__(1);
			module.exports = __webpack_require__(3);

			/***/
		},
		/* 1 */
		/***/ function (module, exports, __webpack_require__) {
			/**
			 * First we will load all of this project's JavaScript dependencies which
			 * includes Vue and other libraries. It is a great starting point when
			 * building robust, powerful web applications using Vue and Laravel.
			 */

			// require('./bootstrap');
			__webpack_require__(2);
			// window.Vue = require('vue');

			/**
			 * Next, we will create a fresh Vue application instance and attach it to
			 * the page. Then, you may begin adding components to this application
			 * or customize the JavaScript scaffolding to fit your unique needs.
			 */

			//Vue.component('example-component', require('./components/ExampleComponent.vue'));

			// const app = new Vue({
			//     el: '#app'
			// });
			window.showMessage = function (
				{ message, contentClass = "", btnTitle, btnClass },
				callback = () => {}
			) {
				$.confirm({
					title: "",
					content:
						'<div class="' +
						contentClass +
						' text-center">' +
						message +
						"</div>",
					onOpenBefore: function () {
						$(".jconfirm-buttons").addClass(
							"d-flex justify-content-center m-auto w-100"
						);
					},
					buttons: {
						Cancel: {
							text: btnTitle ? btnTitle : "戻る",
							btnClass: `btn ${
								btnClass ? btnClass : "btn-success"
							} col-4`,
							action: callback,
						},
					},
				});
			};

			var inputSessionMessage = $('input[name=session-message]')
			if (inputSessionMessage.length != 0 && inputSessionMessage.val() != "") {
				let btnTitle = inputSessionMessage.attr("button-title");
				let btnClass = inputSessionMessage.attr("button-class");
				showMessage({
					message: inputSessionMessage.val(),
					btnTitle: btnTitle,
					btnClass: btnClass,
				});
			}
			

			$("#checkbox_all").on("ifChecked ifUnchecked", function (event) {
				if (event.type == "ifChecked") {
					$("input.checkbox:not(:disabled)").iCheck("check");
				} else {
					$("input.checkbox:not(:disabled)").iCheck("uncheck");
				}
			});

			$(".checkbox_all").on("ifChecked ifUnchecked", function (event) {
				if (event.type == "ifChecked") {
					$("input.checkbox:not(:disabled)").iCheck("check");
				} else {
					$("input.checkbox:not(:disabled)").iCheck("uncheck");
				}
			});

			$("input[name='pk[]']").on(
				"ifChecked ifUnchecked",
				function (event) {
					let list = $("#form_delete").find('input[name="pk[]"]');
					let currentValue = $(this).val();
					$.each(list, function () {
						let value = $(this).val();
						if (value == currentValue) {
							if (event.type == "ifChecked") {
								$(this).iCheck("check");
							} else {
								$(this).iCheck("uncheck");
							}
						}
					});
				}
			);

			$("#delete").on("click", function () {
				var mes = getMesDelete(this);
				confirm("確認ダイアログ。", mes, function () {
					$("#form_delete").submit();
				});
			});

			// function getMesDelete(e) {
			//     var mes = '';
			//     if ($(e).hasClass('mesShort')) {
			//         mes = '削除してよろしいですか？はい/いいえ';
			//     } else if ($(e).hasClass('mesLong')) {
			//         mes = '！※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。※※※\n' +
			//             '<br> チェックボックスにて選択したレコードを削除してよろしいでしょうか？';
			//     }
			//     else {
			//         mes = '！※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。\n' +
			//             '※※※　チェックボックスにて選択したレコードを削除してよろしいでしょうか？はい/いいえ';
			//     }
			//
			//     return mes;
			// }
			function getMesDelete(e) {
				var mes = "";
				if ($(e).hasClass("mesShort")) {
					mes = "削除してよろしいですか？はい/いいえ";
				} else {
					mes =
						"！※※※このレコードは他のテーブルから参照されている可能性があります。削除の際は十分注意してください。※※※\n" +
						"<br> チェックボックスにて選択したレコードを削除してよろしいでしょうか？";
				}
				return mes;
			}

			$(".setting_all").on("click", function (e) {
				e.preventDefault();
				var setting = $(this).attr("setting"),
					msg = "";
				$("#setting_all").val(setting);
				if (setting == "_a") {
					msg =
						"！マスタ群をＡ群からＢ群へコピーします。コピー先のＢ群はコピー前にすべて削除されます。この作業は元に戻せません。コピーしてよろしいですか？";
				} else if (setting == "_b") {
					msg =
						"！マスタ群をＢ群からＡ群へコピーします。コピー先のＡ群はコピー前にすべて削除されます。この作業は元に戻せません。コピーしてよろしいですか？";
				}
				confirm("コピー確認。", msg, function () {
					$("#form_change_settings").submit();
				});
			});
			$(".setting_single").on("click", function (e) {
				e.preventDefault();
				$("#btn_data").val($(this).val());
				confirm(
					"確認ダイアログ。",
					"登録してよろしいですか？はい/いいえ",
					function () {
						$("#form_change_settings").submit();
					}
				);
			});
			$("#import_csv").on("click", function () {
				var action = $(this).attr("action"),
					token = $('meta[name="csrf-token"]').attr("content"),
					content =
						"！データをインポートします。既存のデータは全て削除します。継続してよろしいですか？　はい/いいえ";

				if ($(this).hasClass("swa55")) {
					content =
						"！データをインポートします。既存のデータを上書きする場合は変更したい利用者連番を指定してください。新規追加の場合、利用者連番は空欄のままインポートしてください。";
				} else if ($(this).hasClass("swa56")) {
					content =
						"！データをインポートします。既存のデータを上書きする場合は変更したい定期契約IDを指定してください。新規追加の場合、定期契約IDは空欄のままインポートしてください。";
				}

				$.confirm({
					title: "<b>確認</b>",
					content:
						'<form action="' +
						action +
						'" class="formName" id="form_import" method="post" enctype="multipart/form-data">' +
						'<input type="hidden"  name="_token" value="' +
						token +
						'" />' +
						"<p>" +
						content +
						"</p>" +
						'<div class="form-group">' +
						'<input type="file"  name="file" accept=".csv" />' +
						"</div>" +
						"</form>",
					buttons: {
						formSubmit: {
							text: "はい",
							btnClass: "btn-blue",
							action: function action() {
								$("#form_import").submit();
							},
						},
						いいえ: function _() {
							//close
						},
					},
				});
			});

			$(".delete-record").on("click", function (e) {
				e.preventDefault();
				let link = $(this).attr("href");
				let message = $(this).attr("delete-message");
				if (message == undefined || message == "") {
					message = "!削除してよろしいでしょうか？";
				}
				$.confirm({
					title: "確認ダイアログ。",
					content: message,
					buttons: {
						ok: {
							text: "はい",
							btnClass: "btn-blue",
							action: function () {
								window.location.replace(link);
							},
						},
						いいえ: function () {
							//close
						},
					},
				});
			});

			$("#export_csv").on("click", function (e) {
				e.preventDefault();
				var _action = $(this).attr("action"),
					text = "?isExport=1",
					user_id = $("#user_id").val(),
					member_id = $("#member_id").val(),
					user_tag_serial = $("#user_tag_serial").val(),
					ser_tag_serial_64 = $("#user_tag_serial_64").val(),
					user_phonetic = $("#user_phonetic").val(),
					phone = $("#phone").val(),
					user_categoryid = $("#user_categoryid").val(),
					user_primemail = $("#user_primemail").val(),
					user_workplace = $("#user_workplace").val(),
					user_school = $("#user_school").val(),
					reserve_date_from = $("#reserve_date_from").val(),
					reserve_date_to = $("#reserve_date_to").val(),
					contract_created_at_from = $(
						"#contract_created_at_from"
					).val(),
					contract_created_at_to = $("#contract_created_at_to").val(),
					contract_cancelday_from = $(
						"#contract_cancelday_from"
					).val(),
					contract_cancelday_to = $("#contract_cancelday_to").val(),
					contract_payment_day_from = $(
						"#contract_payment_day_from"
					).val(),
					contract_payment_day_to = $(
						"#contract_payment_day_to"
					).val(),
					enable_months = $("#enable_months").val(),
					update_flag = $("#update_flag").val(),
					contract_seal_issue = $("#contract_seal_issue").val(),
					m800_flag = $("#m800_flag").val(),
					park_position = $("#park_position").val(),
					park_id = $("#park_id").val(),
					sort = $("#sort").val(),
					sort_type = $("#sort_type").val(),
					sort_order = $("#sort_order").val(),
					que_status = $("#que_status").val(),
					usertype_subject1 = $("#usertype_subject1").val(),
					usertype_subject2 = $("#usertype_subject2").val(),
					usertype_subject3 = $("#usertype_subject3").val(),
					s_list = $('input[name="s_list"]:checked').val(),
					date_from = $("#date_from").val(),
					date_to = $("#date_to").val(),
					contract_id = $("#contract_id").val(),
					park_id = $("#park_id").val(),
					ptype_id = $("#ptype_id").val(),
					psection_id = $("#psection_id").val(),
					zone_id = $("#zone_id").val(),
					reserve_date_before = $("#reserve_date_before").val(),
					contract_created_at_before = $(
						"#contract_created_at_before"
					).val(),
					contract_cancelday_before = $(
						"#contract_cancelday_before"
					).val(),
					contract_payment_day_before = $(
						"#contract_payment_day_before"
					).val(),					
					tag_qr_flag = $('#tag_qr_flag').val();

				if (s_list) {
					text = text + "&s_list=" + s_list;
				}
				if (date_from) {
					text = text + "&date_from=" + date_from;
				}
				if (date_to) {
					text = text + "&date_to=" + date_to;
				}

				if (user_id) {
					text = text + "&user_id=" + user_id;
				}

				if (member_id) {
					text = text + "&member_id=" + member_id;
				}

				if (user_tag_serial) {
					text = text + "&user_tag_serial=" + user_tag_serial;
				}

				if (ser_tag_serial_64) {
					text = text + "&ser_tag_serial_64=" + ser_tag_serial_64;
				}

				if (user_phonetic) {
					text = text + "&user_phonetic=" + user_phonetic;
				}

				if (phone) {
					text = text + "&phone=" + phone;
				}

				if (user_categoryid) {
					text = text + "&user_categoryid=" + user_categoryid;
				}

				if (user_primemail) {
					text = text + "&user_primemail=" + user_primemail;
				}

				if (user_workplace) {
					text = text + "&user_workplace=" + user_workplace;
				}

				if (user_school) {
					text = text + "&user_school=" + user_school;
				}

				if (user_school) {
					text = text + "&reserve_date_from=" + reserve_date_from;
				}

				if (reserve_date_to) {
					text = text + "&reserve_date_to=" + reserve_date_to;
				}

				if (contract_created_at_from) {
					text =
						text +
						"&contract_created_at_from=" +
						contract_created_at_from;
				}

				if (contract_created_at_to) {
					text =
						text +
						"&contract_created_at_to=" +
						contract_created_at_to;
				}

				if (contract_cancelday_from) {
					text =
						text +
						"&contract_cancelday_from=" +
						contract_cancelday_from;
				}

				if (contract_cancelday_to) {
					text =
						text +
						"&contract_cancelday_to=" +
						contract_cancelday_to;
				}

				if (contract_payment_day_from) {
					text =
						text +
						"&contract_payment_day_from=" +
						contract_payment_day_from;
				}

				if (contract_payment_day_to) {
					text =
						text +
						"&contract_payment_day_to=" +
						contract_payment_day_to;
				}

				if (enable_months) {
					text = text + "&enable_months=" + enable_months;
				}

				if (update_flag) {
					text = text + "&update_flag=" + update_flag;
				}

				if (contract_seal_issue) {
					text = text + "&contract_seal_issue=" + contract_seal_issue;
				}

				if (m800_flag) {
					text = text + "&m800_flag=" + m800_flag;
				}

				if (park_position) {
					text = text + "&park_position=" + park_position;
				}

				if (park_id) {
					text = text + "&park_id=" + park_id;
				}

				if (sort) {
					text = text + "&sort=" + sort;
				}

				if (sort_type) {
					text = text + "&sort_type=" + sort_type;
				}

				if (sort_order) {
					text = text + "&sort_order=" + sort_order;
				}

				if (que_status) {
					text = text + "&que_status=" + que_status;
				}

				if (usertype_subject1) {
					text = text + "&usertype_subject1=" + usertype_subject1;
				}

				if (usertype_subject2) {
					text = text + "&usertype_subject2=" + usertype_subject2;
				}

				if (usertype_subject3) {
					text = text + "&usertype_subject3=" + usertype_subject3;
				}

				if (contract_id) {
					text = text + "&contract_id=" + contract_id;
				}

				if (park_id) {
					text = text + "&park_id=" + park_id;
				}

				if (ptype_id) {
					text = text + "&ptype_id=" + ptype_id;
				}

				if (psection_id) {
					text = text + "&psection_id=" + psection_id;
				}

				if (zone_id) {
					text = text + "&zone_id=" + zone_id;
				}

				if (reserve_date_before) {
					text = text + "&reserve_date_before=" + reserve_date_before;
				}

				if (contract_created_at_before) {
					text =
						text +
						"&contract_created_at_before=" +
						contract_created_at_before;
				}

				if (contract_cancelday_before) {
					text =
						text +
						"&contract_cancelday_before=" +
						contract_cancelday_before;
				}

				if (contract_payment_day_before) {
					text =
						text +
						"&contract_payment_day_before=" +
						contract_payment_day_before;
				}

				if (tag_qr_flag) {
					text =
						text +
						"&tag_qr_flag=" +
						tag_qr_flag;
				}

				$.confirm({
					title: "<b>確認</b>",
					content: "！CSVファイルを出力します。よろしいですか？",
					buttons: {
						ok: {
							text: "はい",
							btnClass: "btn-primary",
							keys: ["enter"],
							action: function action() {
								window.location.href = _action + text;
							},
						},
						いいえ: function _() {},
					},
				});
			});

			// for sorting
			$(".table thead th.sorting").on("click", function (e) {
				var sort = $(this).attr("sort");
				var sort_type = "asc";
				if ($(this).hasClass("sorting_asc")) {
					sort_type = "desc";
				}
				$('input:hidden[name="sort"]').val(sort);
				$('input:hidden[name="sort_type"]').val(sort_type);
				$("form#list-form").submit();
			});

			$(".date").datepicker({
				language: "ja",
				format: "yyyy/mm/dd",
			});

			$("#select_user").on("change", function () {
				var mobile = $("option:selected", this).attr("mobile"),
					homePhone = $("option:selected", this).attr("homePhone");
				$("#mobile").val(mobile);
				$("#homephone").val(homePhone);
			});
			$("#select_user").trigger("change");

			$(".register").on("click", function (e) {
				e.preventDefault();
				$.confirm({
					title: "確認ダイアログ。",
					content: "登録してよろしいですか？はい/いいえ",
					buttons: {
						ok: {
							text: "はい",
							btnClass: "btn-primary",
							keys: ["enter"],
							action: function action() {
								$("form").submit();
							},
						},
						いいえ: function _() {},
					},
				});
			});
			$(".quit_flg").on("ifChecked", function (e) {
				var val = $(this).val();
				if (val == 1) {
					$("#manager_quitday").val(getDateNow());
				} else {
					$("#manager_quitday").val("");
				}
			});

			function getDateNow() {
				var d = new Date(),
					month = d.getMonth() + 1,
					day = d.getDate(),
					output =
						d.getFullYear() +
						"-" +
						(("" + month).length < 2 ? "0" : "") +
						month +
						"-" +
						(("" + day).length < 2 ? "0" : "") +
						day;
				return output;
			}

			$(".filter_created").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val();
				$(".hd_filter_created").val(val);
				$("#list-form").submit();
			});

			$(".filter_class").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val();
				$(".hd_filter_class").val(val);
				$("#list-form").submit();
			});

			$(".filter_status").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val();
				$(".hd_filter_status").val(val);
				$("#list-form").submit();
			});

			$(".status_2").on("click", function (e) {
				e.preventDefault();
				updateStatus(2);
			});
			$(".status_3").on("click", function (e) {
				e.preventDefault();
				updateStatus(3);
			});

			function updateStatus(status) {
				$("#update_status").val(status);
				$("#form_update").submit();
			}

			$(".select_type_date").on("ifChecked", function (e) {
				var val = $(this).val();
				if (val == 1) {
					$(".search_date").attr("readonly", false);
					$("#search_month").attr("disabled", true);
				} else {
					$(".search_date").attr("readonly", true);
					$(".search_date").val("");
					$("#search_month").attr("disabled", false);
				}
			});
			$(".select_type_date[checked]").trigger("ifChecked");

			$(".confirm_alert").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val();
				$("#save").val(val);
				confirm(
					"確認ダイアログ。",
					"登録してよろしいですか？はい/いいえ",
					function () {
						$("form").submit();
					}
				);
			});

			$(".delete_picture").on("click", function (e) {
				e.preventDefault();
				var href = $(this).attr("href");
				var mes =
					"(!本人確認写真を削除します。よろしいですか? はい/いいえ)";

				confirm("確認ダイアログ。", mes, function () {
					$("#pictureTwo").hide();
					$("#pictureOne").hide();
					$("#btnRemovePicture").hide();
					$("#isDeletPicture").val("1");
				});
			});

			$(".update").on("click", function (e) {
				e.preventDefault();
				$("#isUpdate").val(1);
				confirm(
					"確認ダイアログ。",
					"退会してよろしいですか？",
					function () {
						$("form").submit();
					}
				);
			});
			$(".submit_contractor").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val(),
					msg,
					text = $(this).text();
				$("#save").val(val);
				$("#search").val(1);
				msg = text + "してよろしいですか？";
				confirm("確認ダイアログ。", msg, function () {
					$("form").submit();
				});
			});
			$(".tag_reissue").on("click", function (e) {
				e.preventDefault();
				$("#search").val(1);
				confirm(
					"確認ダイアログ。",
					"タグを再発行してよろしいですか？",
					function () {
						$("form#reissue").submit();
					}
				);
			});

			$(".submit_refund").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val(),
					msg,
					text = $(this).text();
				$("#save").val(val);
				msg = text + "として登録してよろしいですか？";
				confirm("確認ダイアログ。", msg, function () {
					$("form").submit();
				});
			});

			$("#print").on("click", function (e) {
				e.preventDefault();
				var href = $(this).attr("href");
				confirm(
					"確認ダイアログ。",
					"未発送のタグ発送用宛名を印刷してよろしいですか？",
					function () {
						window.location.href = href;
					}
				);
			});

			$("#search_park").on("change", function (e) {
				e.preventDefault();
				var val = $(this).val();
				$("#list-form").submit();
			});

			function confirm(title, content, action) {
				$.confirm({
					title: title,
					content: content,
					buttons: {
						ok: {
							text: "はい",
							btnClass: "btn-primary",
							keys: ["enter"],
							action: action,
						},
						いいえ: function _() {},
					},
				});
			}

			$("#forcus_tag_serial").on("click", function (e) {
				e.preventDefault();
				$('input[name="user_tag_serial"]').focus();
			});
			$("#forcus_tag_serial_64").on("click", function (e) {
				e.preventDefault();
				$('input[name="user_tag_serial_64"]').focus();
			});
			$(".isClear").on("click", function (e) {
				e.preventDefault();
				var val = $(this).val();
				$("#isClear").val(val);
				$("#list-form").submit();
			});

			//1: タグ発送済み , 3 :タグ未発送
			$(".update_search").on("click", function (e) {
				e.preventDefault();
				var isCheck = true,
					msg,
					func,
					status = $(this).val();
				$("#status").val(status);
				var searchIDs = $("input[name='pk[]']:checked")
					.map(function () {
						var que_status = $(this).attr("que_status"),
							breakCheck = false;
						if (status == 1) {
							if (que_status != 1 && breakCheck == false) {
								isCheck = false;
								breakCheck = true;
							}
						} else {
							if (que_status != 3 && breakCheck == false) {
								isCheck = false;
								breakCheck = true;
							}
						}
					})
					.get();
				if (isCheck) {
					if (status == 1) {
						// msg = "スタータスをタグ発送済に変更してよろしいですか";
						msg =
							"！ステータスをタグ発送済みに変更してよろしいですか？";
					} else {
						// msg = "スタータスをタグ未発送に変更してよろしいですか";
						msg =
							"！ステータスをタグ未発送に変更してよろしいですか？";
					}
					func = function func() {
						$("#form_update").submit();
					};

					confirm("確認ダイアログ。", msg, func);
				} else {
					if (status == 1) {
						msg =
							"タグ発送ステータスが発送済を含むためステータスを変更できません";
					} else {
						msg =
							"タグ発送ステータスが未発送を含むためステータスを変更できません";
					}

					func = null;
					$.confirm({
						title: "確認ダイアログ。",
						content: msg,
						buttons: {
							閉じる: function _() {},
						},
					});
				}
			});

			$('input[name="report"]').on("ifChecked", function (e) {
				var val = $(this).val();
				if (val == 1) {
					$(".report_years").show();
					$(".report_months").hide();
					$(".report_date").hide();
				} else if (val == 2) {
					$(".report_years").hide();
					$(".report_months").show();
					$(".report_date").hide();
				} else if (val == 3) {
					$(".report_years").hide();
					$(".report_months").hide();
					$(".report_date").show();
				}
			});
			$('input[name="report"][checked]').trigger("ifChecked");

			$("#check_repayment").on("ifChecked", function (e) {
				$(".check_repayment").css("color", "red");
			});
			$("#check_repayment").on("ifUnchecked", function (e) {
				$(".check_repayment").removeAttr("style");
			});

			$("#image1_filename").change(function () {
				readURL(this, 1);
			});
			$("#image2_filename").change(function () {
				readURL(this, 2);
			});

			function readURL(input, id) {
				$("#urlEdit" + id).show();
				$("#pre_image" + id).show();
				$("#urlNew" + id).hide();
				$("#alert" + id).hide();
				if (input.files && input.files[0]) {
					var reader = new FileReader();
					reader.onload = function (e) {
						$("#pre_image" + id).attr("src", e.target.result);
						var d = new Date(),
							ts = Date.parse(d),
							filename = $(input)[0].files[0]["name"],
							name = ts + filename,
							origin = window.location.origin;
						$("#name_image" + id).val(name);
						$("#urlEdit" + id).text(
							origin + "/storage/images/" + name
						);
					};
					reader.readAsDataURL(input.files[0]);
				}
			}

			$("#deleteImage1").on("click", function (e) {
				e.preventDefault();
				deleteImage(1);
			});
			$("#deleteImage2").on("click", function (e) {
				e.preventDefault();
				deleteImage(2);
			});

			function deleteImage(id) {
				$("#urlEdit" + id).hide();
				$("#pre_image" + id).hide();
				$("#urlNew" + id).show();
				$("#alert" + id).show();
				$("#name_image" + id).val("");
			}

			(function () {
				var onload = window.onload;
				$.datetimepicker.setLocale("ja");
				$(".datetimepicker").datetimepicker();
				window.onload = function () {
					if (typeof onload == "function") {
						onload.apply(this, arguments);
					}

					var fields = [];
					var inputs = document.getElementsByTagName("input");
					var textareas = document.getElementsByTagName("textarea");

					for (var i = 0; i < inputs.length; i++) {
						fields.push(inputs[i]);
					}

					for (var i = 0; i < textareas.length; i++) {
						fields.push(textareas[i]);
					}

					for (var i = 0; i < fields.length; i++) {
						var field = fields[i];

						if (
							typeof field.onpaste != "function" &&
							!!field.getAttribute("onpaste")
						) {
							field.onpaste = eval(
								"(function () { " +
									field.getAttribute("onpaste") +
									" })"
							);
						}

						if (typeof field.onpaste == "function") {
							var oninput = field.oninput;

							field.oninput = function () {
								if (typeof oninput == "function") {
									oninput.apply(this, arguments);
								}

								if (typeof this.previousValue == "undefined") {
									this.previousValue = this.value;
								}

								var pasted =
									Math.abs(
										this.previousValue.length -
											this.value.length
									) > 1 && this.value != "";

								if (
									pasted &&
									!this.onpaste.apply(this, arguments)
								) {
									this.value = this.previousValue;
								}

								this.previousValue = this.value;
							};

							if (field.addEventListener) {
								field.addEventListener(
									"input",
									field.oninput,
									false
								);
							} else if (field.attachEvent) {
								field.attachEvent("oninput", field.oninput);
							}
						}
					}
				};
			})();

			var checkPriceTables = function checkPriceTables() {
				$("table#priceATable tbody tr").each(function () {
					var _tr = $(this);
					var key = _tr.attr("data-key");
					_tr.find(".price_month").each(function () {
						var priceBTr = $(
							'table#priceBTable tbody tr[data-key="' + key + '"]'
						);
						if (priceBTr.length === 0) {
							_tr.find(".price_month").css({
								background: "yellow",
							});
						} else {
							_tr.find(".price_month").each(function () {
								var month = $(this).attr("data-month");
								var psectionId =
									$(this).attr("data-psection-id");
								var priceValue = $(this).find(".price").val();
								var priceBValue = priceBTr
									.find(
										'.price_month[data-psection-id="' +
											psectionId +
											'"][data-month="' +
											month +
											'"] .price'
									)
									.val();
								if (priceBValue !== priceValue) {
									$(this).css({ background: "yellow" });
									priceBTr
										.find(
											'.price_month[data-psection-id="' +
												psectionId +
												'"][data-month="' +
												month +
												'"]'
										)
										.css({ background: "yellow" });
								}

								// console.log('compare: (', month, ',', priceValue, ',', priceBValue, ')');
							});
						}
					});
				});

				$("table#priceBTable tbody tr").each(function () {
					var _tr = $(this);
					var key = _tr.attr("data-key");
					_tr.find(".price_month").each(function () {
						var priceATr = $(
							'table#priceATable tbody tr[data-key="' + key + '"]'
						);
						if (priceATr.length === 0) {
							_tr.find(".price_month").css({
								background: "yellow",
							});
						}
					});
				});
			};

			$(document).ready(function () {
				checkPriceTables();

				$(
					"table#priceATable input.price, table#priceBTable input.price"
				).on("change", function () {
					checkPriceTables();
				});

				$("#priceTableSaveButton").on("click", function (e) {
					e.preventDefault();
					var _this = $(this);
					$.confirm({
						title: "確認ダイアログ。",
						content: "登録してよろしいですか？はい/いいえ",
						buttons: {
							ok: {
								text: "はい",
								btnClass: "btn-primary",
								keys: ["enter"],
								action: function action() {
									$("#priceTableForm").submit();
								},
							},
							いいえ: function _() {},
						},
					});
				});

				$("#changPark").on("change", function () {
					var val = $("#changPark option:selected").val();
					var dir = $("#url_park").val();

					$.ajax({
						url: dir,
						headers: {
							"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr(
								"content"
							),
						},
						type: "POST",
						data: {
							id: val,
						},
						success: function success(result) {
							$("#zone_id option").remove();
							$("#zone_id").append("<option>ゾーンID</option>");
							if (result.length > 0) {
								for (i = 0; i < result.length; i++) {
									$("#zone_id").append(
										'<option value="' +
											result[i].zone_id +
											'">' +
											result[i].zone_id +
											" " +
											result[i].zone_name +
											"</option>"
									);
								}
							}
						},
					});

					var val = $(this).val(),
						url = $("#getListMonth").val(),
						linkGetListPrice = $("#linkGetListPrice").val();
					$.ajax({
						url: url,
						type: "GET",
						contentType: "application/json; charset=utf-8",
						dataType: "json",
						data: {
							id: val,
						},
						success: function success(result) {
							var html = '<option value=""></option>',
								select_id =
									$("#enable_months").attr("select_id"),
								select = "";
							$.each(result, function (i, index) {
								var key = i.split("_"),
									month = key[2];
								if (select_id == month) {
									select = "selected";
								}
								if (index == 1) {
									html +=
										'<option value="' +
										month +
										'" ' +
										select +
										">直近" +
										month +
										"ヶ月</option>";
								}
								select = "";
							});
							$("#enable_months").html(html);
						},
					});
					$.ajax({
						url: linkGetListPrice,
						type: "GET",
						contentType: "application/json; charset=utf-8",
						dataType: "json",
						data: {
							id: val,
						},
						success: function success(result) {
							var html = '<option value=""></option>';
							var select_id = $("#setList").attr("select_id"),
								select = "";
							$.each(result, function (k, v) {
								if (select_id == k) {
									select = "selected";
								}
								html +=
									'<option value="' +
									k +
									'" ' +
									select +
									">" +
									v +
									"</option>";
								select = "";
							});
							$("#setList").html(html);
						},
					});
				});
				// $('#changPark').trigger('change');

				if ($(".floatTheadTable").length) {
					$(".floatTheadTable").floatThead({
						top: -8,
						position: "absolute",
					});
				}
			});

			/***/
		},
		/* 2 */
		/***/ function (module, exports) {
			/*!
			 * jquery-confirm v3.3.2 (http://craftpip.github.io/jquery-confirm/)
			 * Author: Boniface Pereira
			 * Website: www.craftpip.com
			 * Contact: hey@craftpip.com
			 *
			 * Copyright 2013-2017 jquery-confirm
			 * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE)
			 */

			if (typeof jQuery === "undefined") {
				throw new Error("jquery-confirm requires jQuery");
			}

			var jconfirm, Jconfirm;
			(function ($, window) {
				"use strict";

				$.fn.confirm = function (options, option2) {
					if (typeof options === "undefined") options = {};
					if (typeof options === "string") {
						options = {
							content: options,
							title: option2 ? option2 : false,
						};
					}
					/*
					 *  Alias of $.confirm to emulate native confirm()
					 */
					$(this).each(function () {
						var $this = $(this);
						if ($this.attr("jc-attached")) {
							console.warn(
								"jConfirm has already been attached to this element ",
								$this[0]
							);
							return;
						}

						$this.on("click", function (e) {
							e.preventDefault();
							var jcOption = $.extend({}, options);
							if ($this.attr("data-title"))
								jcOption["title"] = $this.attr("data-title");
							if ($this.attr("data-content"))
								jcOption["content"] =
									$this.attr("data-content");
							if (typeof jcOption["buttons"] == "undefined")
								jcOption["buttons"] = {};

							jcOption["$target"] = $this;
							if (
								$this.attr("href") &&
								Object.keys(jcOption["buttons"]).length == 0
							) {
								var buttons = $.extend(
									true,
									{},
									jconfirm.pluginDefaults.defaultButtons,
									(jconfirm.defaults || {}).defaultButtons ||
										{}
								);
								var firstBtn = Object.keys(buttons)[0];
								jcOption["buttons"] = buttons;
								jcOption.buttons[firstBtn].action =
									function () {
										location.href = $this.attr("href");
									};
							}
							jcOption["closeIcon"] = false;
							var instance = $.confirm(jcOption);
						});

						$this.attr("jc-attached", true);
					});
					return $(this);
				};
				$.confirm = function (options, option2) {
					if (typeof options === "undefined") options = {};
					if (typeof options === "string") {
						options = {
							content: options,
							title: option2 ? option2 : false,
						};
					}

					var putDefaultButtons = !(options["buttons"] == false);

					if (typeof options["buttons"] != "object")
						options["buttons"] = {};

					if (
						Object.keys(options["buttons"]).length == 0 &&
						putDefaultButtons
					) {
						var buttons = $.extend(
							true,
							{},
							jconfirm.pluginDefaults.defaultButtons,
							(jconfirm.defaults || {}).defaultButtons || {}
						);
						options["buttons"] = buttons;
					}

					/*
					 *  Alias of jconfirm
					 */
					return jconfirm(options);
				};
				$.alert = function (options, option2) {
					if (typeof options === "undefined") options = {};
					if (typeof options === "string") {
						options = {
							content: options,
							title: option2 ? option2 : false,
						};
					}

					var putDefaultButtons = !(options["buttons"] == false);

					if (typeof options.buttons != "object")
						options.buttons = {};

					if (
						Object.keys(options["buttons"]).length == 0 &&
						putDefaultButtons
					) {
						var buttons = $.extend(
							true,
							{},
							jconfirm.pluginDefaults.defaultButtons,
							(jconfirm.defaults || {}).defaultButtons || {}
						);
						var firstBtn = Object.keys(buttons)[0];
						options["buttons"][firstBtn] = buttons[firstBtn];
					}
					/*
					 *  Alias of jconfirm
					 */
					return jconfirm(options);
				};
				$.dialog = function (options, option2) {
					if (typeof options === "undefined") options = {};
					if (typeof options === "string") {
						options = {
							content: options,
							title: option2 ? option2 : false,
							closeIcon: function () {
								// Just close the modal
							},
						};
					}

					options["buttons"] = {}; // purge buttons

					if (typeof options["closeIcon"] == "undefined") {
						// Dialog must have a closeIcon.
						options["closeIcon"] = function () {};
					}
					/*
					 *  Alias of jconfirm
					 */
					options.confirmKeys = [13];
					return jconfirm(options);
				};

				jconfirm = function (options) {
					if (typeof options === "undefined") options = {};
					/*
					 * initial function for calling.
					 */
					var pluginOptions = $.extend(
						true,
						{},
						jconfirm.pluginDefaults
					);
					if (jconfirm.defaults) {
						pluginOptions = $.extend(
							true,
							pluginOptions,
							jconfirm.defaults
						);
					}

					/*
					 * merge options with plugin defaults.
					 */
					pluginOptions = $.extend(true, {}, pluginOptions, options);
					var instance = new Jconfirm(pluginOptions);
					jconfirm.instances.push(instance);
					return instance;
				};
				Jconfirm = function (options) {
					/*
					 * constructor function Jconfirm,
					 * options = user options.
					 */
					$.extend(this, options);
					this._init();
				};
				Jconfirm.prototype = {
					_init: function () {
						var that = this;

						if (!jconfirm.instances.length)
							jconfirm.lastFocused = $("body").find(":focus");

						this._id = Math.round(Math.random() * 99999);
						/**
						 * contentParsed maintains the contents for $content, before it is put in DOM
						 */
						this.contentParsed = $(document.createElement("div"));

						if (!this.lazyOpen) {
							setTimeout(function () {
								that.open();
							}, 0);
						}
					},
					_buildHTML: function () {
						var that = this;

						// prefix the animation string and store in animationParsed
						this._parseAnimation(this.animation, "o");
						this._parseAnimation(this.closeAnimation, "c");
						this._parseBgDismissAnimation(
							this.backgroundDismissAnimation
						);
						this._parseColumnClass(this.columnClass);
						this._parseTheme(this.theme);
						this._parseType(this.type);

						/*
						 * Append html.
						 */
						var template = $(this.template);
						template
							.find(".jconfirm-box")
							.addClass(this.animationParsed)
							.addClass(this.backgroundDismissAnimationParsed)
							.addClass(this.typeParsed);

						if (this.typeAnimated)
							template
								.find(".jconfirm-box")
								.addClass("jconfirm-type-animated");

						if (this.useBootstrap) {
							template
								.find(".jc-bs3-row")
								.addClass(this.bootstrapClasses.row);
							template
								.find(".jc-bs3-row")
								.addClass(
									"justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center"
								);

							template
								.find(".jconfirm-box-container")
								.addClass(this.columnClassParsed);

							if (this.containerFluid)
								template
									.find(".jc-bs3-container")
									.addClass(
										this.bootstrapClasses.containerFluid
									);
							else
								template
									.find(".jc-bs3-container")
									.addClass(this.bootstrapClasses.container);
						} else {
							template
								.find(".jconfirm-box")
								.css("width", this.boxWidth);
						}

						if (this.titleClass)
							template
								.find(".jconfirm-title-c")
								.addClass(this.titleClass);

						template.addClass(this.themeParsed);
						var ariaLabel = "jconfirm-box" + this._id;
						template
							.find(".jconfirm-box")
							.attr("aria-labelledby", ariaLabel)
							.attr("tabindex", -1);
						template
							.find(".jconfirm-content")
							.attr("id", ariaLabel);
						if (this.bgOpacity !== null)
							template
								.find(".jconfirm-bg")
								.css("opacity", this.bgOpacity);
						if (this.rtl) template.addClass("jconfirm-rtl");

						this.$el = template.appendTo(this.container);
						this.$jconfirmBoxContainer = this.$el.find(
							".jconfirm-box-container"
						);
						this.$jconfirmBox = this.$body =
							this.$el.find(".jconfirm-box");
						this.$jconfirmBg = this.$el.find(".jconfirm-bg");
						this.$title = this.$el.find(".jconfirm-title");
						this.$titleContainer =
							this.$el.find(".jconfirm-title-c");
						this.$content = this.$el.find("div.jconfirm-content");
						this.$contentPane = this.$el.find(
							".jconfirm-content-pane"
						);
						this.$icon = this.$el.find(".jconfirm-icon-c");
						this.$closeIcon = this.$el.find(".jconfirm-closeIcon");
						this.$holder = this.$el.find(".jconfirm-holder");
						// this.$content.css(this._getCSS(this.animationSpeed, this.animationBounce));
						this.$btnc = this.$el.find(".jconfirm-buttons");
						this.$scrollPane = this.$el.find(
							".jconfirm-scrollpane"
						);

						that.setStartingPoint();

						// for loading content via URL
						this._contentReady = $.Deferred();
						this._modalReady = $.Deferred();
						this.$holder.css({
							"padding-top": this.offsetTop,
							"padding-bottom": this.offsetBottom,
						});

						this.setTitle();
						this.setIcon();
						this._setButtons();
						this._parseContent();
						this.initDraggable();

						if (this.isAjax) this.showLoading(false);

						$.when(this._contentReady, this._modalReady).then(
							function () {
								if (that.isAjaxLoading)
									setTimeout(function () {
										that.isAjaxLoading = false;
										that.setContent();
										that.setTitle();
										that.setIcon();
										setTimeout(function () {
											that.hideLoading(false);
											that._updateContentMaxHeight();
										}, 100);
										if (
											typeof that.onContentReady ===
											"function"
										)
											that.onContentReady();
									}, 50);
								else {
									// that.setContent();
									that._updateContentMaxHeight();
									that.setTitle();
									that.setIcon();
									if (
										typeof that.onContentReady ===
										"function"
									)
										that.onContentReady();
								}

								// start countdown after content has loaded.
								if (that.autoClose) that._startCountDown();
							}
						);

						this._watchContent();

						if (this.animation === "none") {
							this.animationSpeed = 1;
							this.animationBounce = 1;
						}

						this.$body.css(
							this._getCSS(
								this.animationSpeed,
								this.animationBounce
							)
						);
						this.$contentPane.css(
							this._getCSS(this.animationSpeed, 1)
						);
						this.$jconfirmBg.css(
							this._getCSS(this.animationSpeed, 1)
						);
						this.$jconfirmBoxContainer.css(
							this._getCSS(this.animationSpeed, 1)
						);
					},
					_typePrefix: "jconfirm-type-",
					typeParsed: "",
					_parseType: function (type) {
						this.typeParsed = this._typePrefix + type;
					},
					setType: function (type) {
						var oldClass = this.typeParsed;
						this._parseType(type);
						this.$jconfirmBox
							.removeClass(oldClass)
							.addClass(this.typeParsed);
					},
					themeParsed: "",
					_themePrefix: "jconfirm-",
					setTheme: function (theme) {
						var previous = this.theme;
						this.theme = theme || this.theme;
						this._parseTheme(this.theme);
						if (previous) this.$el.removeClass(previous);
						this.$el.addClass(this.themeParsed);
						this.theme = theme;
					},
					_parseTheme: function (theme) {
						var that = this;
						theme = theme.split(",");
						$.each(theme, function (k, a) {
							if (a.indexOf(that._themePrefix) === -1)
								theme[k] = that._themePrefix + $.trim(a);
						});
						this.themeParsed = theme.join(" ").toLowerCase();
					},
					backgroundDismissAnimationParsed: "",
					_bgDismissPrefix: "jconfirm-hilight-",
					_parseBgDismissAnimation: function (bgDismissAnimation) {
						var animation = bgDismissAnimation.split(",");
						var that = this;
						$.each(animation, function (k, a) {
							if (a.indexOf(that._bgDismissPrefix) === -1)
								animation[k] =
									that._bgDismissPrefix + $.trim(a);
						});
						this.backgroundDismissAnimationParsed = animation
							.join(" ")
							.toLowerCase();
					},
					animationParsed: "",
					closeAnimationParsed: "",
					_animationPrefix: "jconfirm-animation-",
					setAnimation: function (animation) {
						this.animation = animation || this.animation;
						this._parseAnimation(this.animation, "o");
					},
					_parseAnimation: function (animation, which) {
						which = which || "o"; // parse what animation and store where. open or close?
						var animations = animation.split(",");
						var that = this;
						$.each(animations, function (k, a) {
							if (a.indexOf(that._animationPrefix) === -1)
								animations[k] =
									that._animationPrefix + $.trim(a);
						});
						var a_string = animations.join(" ").toLowerCase();
						if (which === "o") this.animationParsed = a_string;
						else this.closeAnimationParsed = a_string;

						return a_string;
					},
					setCloseAnimation: function (closeAnimation) {
						this.closeAnimation =
							closeAnimation || this.closeAnimation;
						this._parseAnimation(this.closeAnimation, "c");
					},
					setAnimationSpeed: function (speed) {
						this.animationSpeed = speed || this.animationSpeed;
						// this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce));
					},
					columnClassParsed: "",
					setColumnClass: function (colClass) {
						if (!this.useBootstrap) {
							console.warn(
								"cannot set columnClass, useBootstrap is set to false"
							);
							return;
						}
						this.columnClass = colClass || this.columnClass;
						this._parseColumnClass(this.columnClass);
						this.$jconfirmBoxContainer.addClass(
							this.columnClassParsed
						);
					},
					_updateContentMaxHeight: function () {
						var height =
							$(window).height() -
							(this.$jconfirmBox.outerHeight() -
								this.$contentPane.outerHeight()) -
							(this.offsetTop + this.offsetBottom);
						this.$contentPane.css({
							"max-height": height + "px",
						});
					},
					setBoxWidth: function (width) {
						if (this.useBootstrap) {
							console.warn(
								"cannot set boxWidth, useBootstrap is set to true"
							);
							return;
						}
						this.boxWidth = width;
						this.$jconfirmBox.css("width", width);
					},
					_parseColumnClass: function (colClass) {
						colClass = colClass.toLowerCase();
						var p;
						switch (colClass) {
							case "xl":
							case "xlarge":
								p = "col-md-12";
								break;
							case "l":
							case "large":
								p = "col-md-8 col-md-offset-2";
								break;
							case "m":
							case "medium":
								p = "col-md-6 col-md-offset-3";
								break;
							case "s":
							case "small":
								p = "col-md-4 col-md-offset-4";
								break;
							case "xs":
							case "xsmall":
								p = "col-md-2 col-md-offset-5";
								break;
							default:
								p = colClass;
						}
						this.columnClassParsed = p;
					},
					initDraggable: function () {
						var that = this;
						var $t = this.$titleContainer;

						this.resetDrag();
						if (this.draggable) {
							$t.on("mousedown", function (e) {
								$t.addClass("jconfirm-hand");
								that.mouseX = e.clientX;
								that.mouseY = e.clientY;
								that.isDrag = true;
							});
							$(window).on("mousemove." + this._id, function (e) {
								if (that.isDrag) {
									that.movingX =
										e.clientX - that.mouseX + that.initialX;
									that.movingY =
										e.clientY - that.mouseY + that.initialY;
									that.setDrag();
								}
							});

							$(window).on("mouseup." + this._id, function () {
								$t.removeClass("jconfirm-hand");
								if (that.isDrag) {
									that.isDrag = false;
									that.initialX = that.movingX;
									that.initialY = that.movingY;
								}
							});
						}
					},
					resetDrag: function () {
						this.isDrag = false;
						this.initialX = 0;
						this.initialY = 0;
						this.movingX = 0;
						this.movingY = 0;
						this.mouseX = 0;
						this.mouseY = 0;
						this.$jconfirmBoxContainer.css(
							"transform",
							"translate(" + 0 + "px, " + 0 + "px)"
						);
					},
					setDrag: function () {
						if (!this.draggable) return;

						this.alignMiddle = false;
						var boxWidth = this.$jconfirmBox.outerWidth();
						var boxHeight = this.$jconfirmBox.outerHeight();
						var windowWidth = $(window).width();
						var windowHeight = $(window).height();
						var that = this;
						var dragUpdate = 1;
						if (
							that.movingX % dragUpdate === 0 ||
							that.movingY % dragUpdate === 0
						) {
							if (that.dragWindowBorder) {
								var leftDistance =
									windowWidth / 2 - boxWidth / 2;
								var topDistance =
									windowHeight / 2 - boxHeight / 2;
								topDistance -= that.dragWindowGap;
								leftDistance -= that.dragWindowGap;

								if (leftDistance + that.movingX < 0) {
									that.movingX = -leftDistance;
								} else if (leftDistance - that.movingX < 0) {
									that.movingX = leftDistance;
								}

								if (topDistance + that.movingY < 0) {
									that.movingY = -topDistance;
								} else if (topDistance - that.movingY < 0) {
									that.movingY = topDistance;
								}
							}

							that.$jconfirmBoxContainer.css(
								"transform",
								"translate(" +
									that.movingX +
									"px, " +
									that.movingY +
									"px)"
							);
						}
					},
					_scrollTop: function () {
						if (typeof pageYOffset !== "undefined") {
							//most browsers except IE before #9
							return pageYOffset;
						} else {
							var B = document.body; //IE 'quirks'
							var D = document.documentElement; //IE with doctype
							D = D.clientHeight ? D : B;
							return D.scrollTop;
						}
					},
					_watchContent: function () {
						var that = this;
						if (this._timer) clearInterval(this._timer);

						var prevContentHeight = 0;
						this._timer = setInterval(function () {
							if (that.smoothContent) {
								var contentHeight =
									that.$content.outerHeight() || 0;
								if (contentHeight !== prevContentHeight) {
									that.$contentPane
										.css({
											height: contentHeight,
										})
										.scrollTop(0);
									prevContentHeight = contentHeight;
								}
								var wh = $(window).height();
								var total =
									that.offsetTop +
									that.offsetBottom +
									that.$jconfirmBox.height() -
									that.$contentPane.height() +
									that.$content.height();
								if (total < wh) {
									that.$contentPane.addClass("no-scroll");
								} else {
									that.$contentPane.removeClass("no-scroll");
								}
							}
						}, this.watchInterval);
					},
					_overflowClass: "jconfirm-overflow",
					_hilightAnimating: false,
					highlight: function () {
						this.hiLightModal();
					},
					hiLightModal: function () {
						var that = this;
						if (this._hilightAnimating) return;

						that.$body.addClass("hilight");
						var duration =
							parseFloat(that.$body.css("animation-duration")) ||
							2;
						this._hilightAnimating = true;
						setTimeout(function () {
							that._hilightAnimating = false;
							that.$body.removeClass("hilight");
						}, duration * 1000);
					},
					_bindEvents: function () {
						var that = this;
						this.boxClicked = false;

						this.$scrollPane.click(function (e) {
							// Ignore propagated clicks
							if (!that.boxClicked) {
								// Background clicked
								/*
                     If backgroundDismiss is a function and its return value is truthy
                     proceed to close the modal.
                     */
								var buttonName = false;
								var shouldClose = false;
								var str;

								if (typeof that.backgroundDismiss == "function")
									str = that.backgroundDismiss();
								else str = that.backgroundDismiss;

								if (
									typeof str == "string" &&
									typeof that.buttons[str] != "undefined"
								) {
									buttonName = str;
									shouldClose = false;
								} else if (
									typeof str == "undefined" ||
									!!str == true
								) {
									shouldClose = true;
								} else {
									shouldClose = false;
								}

								if (buttonName) {
									var btnResponse =
										that.buttons[buttonName].action.apply(
											that
										);
									shouldClose =
										typeof btnResponse == "undefined" ||
										!!btnResponse;
								}

								if (shouldClose) that.close();
								else that.hiLightModal();
							}
							that.boxClicked = false;
						});

						this.$jconfirmBox.click(function (e) {
							that.boxClicked = true;
						});

						var isKeyDown = false;
						$(window).on("jcKeyDown." + that._id, function (e) {
							if (!isKeyDown) {
								isKeyDown = true;
							}
						});
						$(window).on("keyup." + that._id, function (e) {
							if (isKeyDown) {
								that.reactOnKey(e);
								isKeyDown = false;
							}
						});

						$(window).on("resize." + this._id, function () {
							that._updateContentMaxHeight();
							setTimeout(function () {
								that.resetDrag();
							}, 100);
						});
					},
					_cubic_bezier: "0.36, 0.55, 0.19",
					_getCSS: function (speed, bounce) {
						return {
							"-webkit-transition-duration": speed / 1000 + "s",
							"transition-duration": speed / 1000 + "s",
							"-webkit-transition-timing-function":
								"cubic-bezier(" +
								this._cubic_bezier +
								", " +
								bounce +
								")",
							"transition-timing-function":
								"cubic-bezier(" +
								this._cubic_bezier +
								", " +
								bounce +
								")",
						};
					},
					_setButtons: function () {
						var that = this;
						/*
						 * Settings up buttons
						 */

						var total_buttons = 0;
						if (typeof this.buttons !== "object") this.buttons = {};

						$.each(this.buttons, function (key, button) {
							total_buttons += 1;
							if (typeof button === "function") {
								that.buttons[key] = button = {
									action: button,
								};
							}

							that.buttons[key].text = button.text || key;
							that.buttons[key].btnClass =
								button.btnClass || "btn-default";
							that.buttons[key].action =
								button.action || function () {};
							that.buttons[key].keys = button.keys || [];
							that.buttons[key].isHidden =
								button.isHidden || false;
							that.buttons[key].isDisabled =
								button.isDisabled || false;

							$.each(that.buttons[key].keys, function (i, a) {
								that.buttons[key].keys[i] = a.toLowerCase();
							});

							var button_element = $(
								'<button type="button" class="btn"></button>'
							)
								.html(that.buttons[key].text)
								.addClass(that.buttons[key].btnClass)
								.prop("disabled", that.buttons[key].isDisabled)
								.css(
									"display",
									that.buttons[key].isHidden ? "none" : ""
								)
								.click(function (e) {
									e.preventDefault();
									var res = that.buttons[key].action.apply(
										that,
										[that.buttons[key]]
									);
									that.onAction.apply(that, [
										key,
										that.buttons[key],
									]);
									that._stopCountDown();
									if (typeof res === "undefined" || res)
										that.close();
								});

							that.buttons[key].el = button_element;
							that.buttons[key].setText = function (text) {
								button_element.html(text);
							};
							that.buttons[key].addClass = function (className) {
								button_element.addClass(className);
							};
							that.buttons[key].removeClass = function (
								className
							) {
								button_element.removeClass(className);
							};
							that.buttons[key].disable = function () {
								that.buttons[key].isDisabled = true;
								button_element.prop("disabled", true);
							};
							that.buttons[key].enable = function () {
								that.buttons[key].isDisabled = false;
								button_element.prop("disabled", false);
							};
							that.buttons[key].show = function () {
								that.buttons[key].isHidden = false;
								button_element.css("display", "");
							};
							that.buttons[key].hide = function () {
								that.buttons[key].isHidden = true;
								button_element.css("display", "none");
							};
							/*
                 Buttons are prefixed with $_ or $$ for quick access
                 */
							that["$_" + key] = that["$$" + key] =
								button_element;
							that.$btnc.append(button_element);
						});

						if (total_buttons === 0) this.$btnc.hide();
						if (this.closeIcon === null && total_buttons === 0) {
							/*
                 in case when no buttons are present & closeIcon is null, closeIcon is set to true,
                 set closeIcon to true to explicitly tell to hide the close icon
                 */
							this.closeIcon = true;
						}

						if (this.closeIcon) {
							if (this.closeIconClass) {
								// user requires a custom class.
								var closeHtml =
									'<i class="' +
									this.closeIconClass +
									'"></i>';
								this.$closeIcon.html(closeHtml);
							}

							this.$closeIcon.click(function (e) {
								e.preventDefault();

								var buttonName = false;
								var shouldClose = false;
								var str;

								if (typeof that.closeIcon == "function") {
									str = that.closeIcon();
								} else {
									str = that.closeIcon;
								}

								if (
									typeof str == "string" &&
									typeof that.buttons[str] != "undefined"
								) {
									buttonName = str;
									shouldClose = false;
								} else if (
									typeof str == "undefined" ||
									!!str == true
								) {
									shouldClose = true;
								} else {
									shouldClose = false;
								}
								if (buttonName) {
									var btnResponse =
										that.buttons[buttonName].action.apply(
											that
										);
									shouldClose =
										typeof btnResponse == "undefined" ||
										!!btnResponse;
								}
								if (shouldClose) {
									that.close();
								}
							});
							this.$closeIcon.show();
						} else {
							this.$closeIcon.hide();
						}
					},
					setTitle: function (string, force) {
						force = force || false;

						if (typeof string !== "undefined")
							if (typeof string == "string") this.title = string;
							else if (typeof string == "function") {
								if (typeof string.promise == "function")
									console.error(
										"Promise was returned from title function, this is not supported."
									);

								var response = string();
								if (typeof response == "string")
									this.title = response;
								else this.title = false;
							} else this.title = false;

						if (this.isAjaxLoading && !force) return;

						this.$title.html(this.title || "");
						this.updateTitleContainer();
					},
					setIcon: function (iconClass, force) {
						force = force || false;

						if (typeof iconClass !== "undefined")
							if (typeof iconClass == "string")
								this.icon = iconClass;
							else if (typeof iconClass === "function") {
								var response = iconClass();
								if (typeof response == "string")
									this.icon = response;
								else this.icon = false;
							} else this.icon = false;

						if (this.isAjaxLoading && !force) return;

						this.$icon.html(
							this.icon ? '<i class="' + this.icon + '"></i>' : ""
						);
						this.updateTitleContainer();
					},
					updateTitleContainer: function () {
						if (!this.title && !this.icon) {
							this.$titleContainer.hide();
						} else {
							this.$titleContainer.show();
						}
					},
					setContentPrepend: function (content, force) {
						if (!content) return;

						this.contentParsed.prepend(content);
					},
					setContentAppend: function (content) {
						if (!content) return;

						this.contentParsed.append(content);
					},
					setContent: function (content, force) {
						force = !!force;
						var that = this;
						if (content)
							this.contentParsed.html("").append(content);
						if (this.isAjaxLoading && !force) return;

						this.$content.html("");
						this.$content.append(this.contentParsed);
						setTimeout(function () {
							that.$body
								.find("input[autofocus]:visible:first")
								.focus();
						}, 100);
					},
					loadingSpinner: false,
					showLoading: function (disableButtons) {
						this.loadingSpinner = true;
						this.$jconfirmBox.addClass("loading");
						if (disableButtons)
							this.$btnc.find("button").prop("disabled", true);
					},
					hideLoading: function (enableButtons) {
						this.loadingSpinner = false;
						this.$jconfirmBox.removeClass("loading");
						if (enableButtons)
							this.$btnc.find("button").prop("disabled", false);
					},
					ajaxResponse: false,
					contentParsed: "",
					isAjax: false,
					isAjaxLoading: false,
					_parseContent: function () {
						var that = this;
						var e = "&nbsp;";

						if (typeof this.content == "function") {
							var res = this.content.apply(this);
							if (typeof res == "string") {
								this.content = res;
							} else if (
								typeof res == "object" &&
								typeof res.always == "function"
							) {
								// this is ajax loading via promise
								this.isAjax = true;
								this.isAjaxLoading = true;
								res.always(function (data, status, xhr) {
									that.ajaxResponse = {
										data: data,
										status: status,
										xhr: xhr,
									};
									that._contentReady.resolve(
										data,
										status,
										xhr
									);
									if (typeof that.contentLoaded == "function")
										that.contentLoaded(data, status, xhr);
								});
								this.content = e;
							} else {
								this.content = e;
							}
						}

						if (
							typeof this.content == "string" &&
							this.content.substr(0, 4).toLowerCase() === "url:"
						) {
							this.isAjax = true;
							this.isAjaxLoading = true;
							var u = this.content.substring(
								4,
								this.content.length
							);
							$.get(u)
								.done(function (html) {
									that.contentParsed.html(html);
								})
								.always(function (data, status, xhr) {
									that.ajaxResponse = {
										data: data,
										status: status,
										xhr: xhr,
									};
									that._contentReady.resolve(
										data,
										status,
										xhr
									);
									if (typeof that.contentLoaded == "function")
										that.contentLoaded(data, status, xhr);
								});
						}

						if (!this.content) this.content = e;

						if (!this.isAjax) {
							this.contentParsed.html(this.content);
							this.setContent();
							that._contentReady.resolve();
						}
					},
					_stopCountDown: function () {
						clearInterval(this.autoCloseInterval);
						if (this.$cd) this.$cd.remove();
					},
					_startCountDown: function () {
						var that = this;
						var opt = this.autoClose.split("|");
						if (opt.length !== 2) {
							console.error(
								"Invalid option for autoClose. example 'close|10000'"
							);
							return false;
						}

						var button_key = opt[0];
						var time = parseInt(opt[1]);
						if (typeof this.buttons[button_key] === "undefined") {
							console.error(
								"Invalid button key '" +
									button_key +
									"' for autoClose"
							);
							return false;
						}

						var seconds = Math.ceil(time / 1000);
						this.$cd = $(
							'<span class="countdown"> (' + seconds + ")</span>"
						).appendTo(this["$_" + button_key]);

						this.autoCloseInterval = setInterval(function () {
							that.$cd.html(" (" + (seconds -= 1) + ") ");
							if (seconds <= 0) {
								that["$$" + button_key].trigger("click");
								that._stopCountDown();
							}
						}, 1000);
					},
					_getKey: function (key) {
						// very necessary keys.
						switch (key) {
							case 192:
								return "tilde";
							case 13:
								return "enter";
							case 16:
								return "shift";
							case 9:
								return "tab";
							case 20:
								return "capslock";
							case 17:
								return "ctrl";
							case 91:
								return "win";
							case 18:
								return "alt";
							case 27:
								return "esc";
							case 32:
								return "space";
						}

						// only trust alphabets with this.
						var initial = String.fromCharCode(key);
						if (/^[A-z0-9]+$/.test(initial))
							return initial.toLowerCase();
						else return false;
					},
					reactOnKey: function (e) {
						var that = this;

						/*
             Prevent keyup event if the dialog is not last!
             */
						var a = $(".jconfirm");
						if (a.eq(a.length - 1)[0] !== this.$el[0]) return false;

						var key = e.which;
						/*
             Do not react if Enter or Space is pressed on input elements
             */
						if (
							this.$content.find(":input").is(":focus") &&
							/13|32/.test(key)
						)
							return false;

						var keyChar = this._getKey(key);

						// If esc is pressed
						if (keyChar === "esc" && this.escapeKey) {
							if (this.escapeKey === true) {
								this.$scrollPane.trigger("click");
							} else if (
								typeof this.escapeKey === "string" ||
								typeof this.escapeKey === "function"
							) {
								var buttonKey;
								if (typeof this.escapeKey === "function") {
									buttonKey = this.escapeKey();
								} else {
									buttonKey = this.escapeKey;
								}

								if (buttonKey)
									if (
										typeof this.buttons[buttonKey] ===
										"undefined"
									) {
										console.warn(
											"Invalid escapeKey, no buttons found with key " +
												buttonKey
										);
									} else {
										this["$_" + buttonKey].trigger("click");
									}
							}
						}

						// check if any button is listening to this key.
						$.each(this.buttons, function (key, button) {
							if (button.keys.indexOf(keyChar) != -1) {
								that["$_" + key].trigger("click");
							}
						});
					},
					setDialogCenter: function () {
						console.info(
							"setDialogCenter is deprecated, dialogs are centered with CSS3 tables"
						);
					},
					_unwatchContent: function () {
						clearInterval(this._timer);
					},
					close: function (onClosePayload) {
						var that = this;

						if (typeof this.onClose === "function")
							this.onClose(onClosePayload);

						this._unwatchContent();

						/*
             unbind the window resize & keyup event.
             */
						$(window).unbind("resize." + this._id);
						$(window).unbind("keyup." + this._id);
						$(window).unbind("jcKeyDown." + this._id);

						if (this.draggable) {
							$(window).unbind("mousemove." + this._id);
							$(window).unbind("mouseup." + this._id);
							this.$titleContainer.unbind("mousedown");
						}

						that.$el.removeClass(that.loadedClass);
						$("body").removeClass("jconfirm-no-scroll-" + that._id);
						that.$jconfirmBoxContainer.removeClass(
							"jconfirm-no-transition"
						);

						setTimeout(function () {
							that.$body.addClass(that.closeAnimationParsed);
							that.$jconfirmBg.addClass("jconfirm-bg-h");
							var closeTimer =
								that.closeAnimation === "none"
									? 1
									: that.animationSpeed;

							setTimeout(function () {
								that.$el.remove();

								var l = jconfirm.instances;
								var i = jconfirm.instances.length - 1;
								for (i; i >= 0; i--) {
									if (
										jconfirm.instances[i]._id === that._id
									) {
										jconfirm.instances.splice(i, 1);
									}
								}

								// Focusing a element, scrolls automatically to that element.
								// no instances should be open, lastFocused should be true, the lastFocused element must exists in DOM
								if (!jconfirm.instances.length) {
									if (
										that.scrollToPreviousElement &&
										jconfirm.lastFocused &&
										jconfirm.lastFocused.length &&
										$.contains(
											document,
											jconfirm.lastFocused[0]
										)
									) {
										var $lf = jconfirm.lastFocused;
										if (
											that.scrollToPreviousElementAnimate
										) {
											var st = $(window).scrollTop();
											var ot =
												jconfirm.lastFocused.offset()
													.top;
											var wh = $(window).height();
											if (!(ot > st && ot < st + wh)) {
												var scrollTo =
													ot - Math.round(wh / 3);
												$("html, body").animate(
													{
														scrollTop: scrollTo,
													},
													that.animationSpeed,
													"swing",
													function () {
														// gracefully scroll and then focus.
														$lf.focus();
													}
												);
											} else {
												// the element to be focused is already in view.
												$lf.focus();
											}
										} else {
											$lf.focus();
										}
										jconfirm.lastFocused = false;
									}
								}

								if (typeof that.onDestroy === "function")
									that.onDestroy();
							}, closeTimer * 0.4);
						}, 50);

						return true;
					},
					open: function () {
						if (this.isOpen()) return false;

						// var that = this;
						this._buildHTML();
						this._bindEvents();
						this._open();

						return true;
					},
					setStartingPoint: function () {
						var el = false;

						if (
							this.animateFromElement !== true &&
							this.animateFromElement
						) {
							el = this.animateFromElement;
							jconfirm.lastClicked = false;
						} else if (
							jconfirm.lastClicked &&
							this.animateFromElement === true
						) {
							el = jconfirm.lastClicked;
							jconfirm.lastClicked = false;
						} else {
							return false;
						}

						if (!el) return false;

						var offset = el.offset();

						var iTop = el.outerHeight() / 2;
						var iLeft = el.outerWidth() / 2;

						// placing position of jconfirm modal in center of clicked element
						iTop -= this.$jconfirmBox.outerHeight() / 2;
						iLeft -= this.$jconfirmBox.outerWidth() / 2;

						// absolute position on screen
						var sourceTop = offset.top + iTop;
						sourceTop = sourceTop - this._scrollTop();
						var sourceLeft = offset.left + iLeft;

						// window halved
						var wh = $(window).height() / 2;
						var ww = $(window).width() / 2;

						var targetH = wh - this.$jconfirmBox.outerHeight() / 2;
						var targetW = ww - this.$jconfirmBox.outerWidth() / 2;

						sourceTop -= targetH;
						sourceLeft -= targetW;

						// Check if the element is inside the viewable window.
						if (
							Math.abs(sourceTop) > wh ||
							Math.abs(sourceLeft) > ww
						)
							return false;

						this.$jconfirmBoxContainer.css(
							"transform",
							"translate(" +
								sourceLeft +
								"px, " +
								sourceTop +
								"px)"
						);
					},
					_open: function () {
						var that = this;
						if (typeof that.onOpenBefore === "function")
							that.onOpenBefore();

						this.$body.removeClass(this.animationParsed);
						this.$jconfirmBg.removeClass("jconfirm-bg-h");
						this.$body.focus();

						that.$jconfirmBoxContainer.css(
							"transform",
							"translate(" + 0 + "px, " + 0 + "px)"
						);

						setTimeout(function () {
							that.$body.css(
								that._getCSS(that.animationSpeed, 1)
							);
							that.$body.css({
								"transition-property":
									that.$body.css("transition-property") +
									", margin",
							});
							that.$jconfirmBoxContainer.addClass(
								"jconfirm-no-transition"
							);
							that._modalReady.resolve();
							if (typeof that.onOpen === "function")
								that.onOpen();

							that.$el.addClass(that.loadedClass);
						}, this.animationSpeed);
					},
					loadedClass: "jconfirm-open",
					isClosed: function () {
						return !this.$el || this.$el.css("display") === "";
					},
					isOpen: function () {
						return !this.isClosed();
					},
					toggle: function () {
						if (!this.isOpen()) this.open();
						else this.close();
					},
				};

				jconfirm.instances = [];
				jconfirm.lastFocused = false;
				jconfirm.pluginDefaults = {
					template:
						"" +
						'<div class="jconfirm">' +
						'<div class="jconfirm-bg jconfirm-bg-h"></div>' +
						'<div class="jconfirm-scrollpane">' +
						'<div class="jconfirm-row">' +
						'<div class="jconfirm-cell">' +
						'<div class="jconfirm-holder">' +
						'<div class="jc-bs3-container">' +
						'<div class="jc-bs3-row">' +
						'<div class="jconfirm-box-container jconfirm-animated">' +
						'<div class="jconfirm-box" role="dialog" aria-labelledby="labelled" tabindex="-1">' +
						'<div class="jconfirm-closeIcon">&times;</div>' +
						'<div class="jconfirm-title-c">' +
						'<span class="jconfirm-icon-c"></span>' +
						'<span class="jconfirm-title"></span>' +
						"</div>" +
						'<div class="jconfirm-content-pane">' +
						'<div class="jconfirm-content"></div>' +
						"</div>" +
						'<div class="jconfirm-buttons">' +
						"</div>" +
						'<div class="jconfirm-clear">' +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div></div>",
					title: "Hello",
					titleClass: "",
					type: "default",
					typeAnimated: true,
					draggable: true,
					dragWindowGap: 15,
					dragWindowBorder: true,
					animateFromElement: true,
					/**
					 * @deprecated
					 */
					alignMiddle: true,
					smoothContent: true,
					content: "Are you sure to continue?",
					buttons: {},
					defaultButtons: {
						ok: {
							action: function () {},
						},
						close: {
							action: function () {},
						},
					},
					contentLoaded: function () {},
					icon: "",
					lazyOpen: false,
					bgOpacity: null,
					theme: "light",
					animation: "scale",
					closeAnimation: "scale",
					animationSpeed: 400,
					animationBounce: 1,
					escapeKey: true,
					rtl: false,
					container: "body",
					containerFluid: false,
					backgroundDismiss: false,
					backgroundDismissAnimation: "shake",
					autoClose: false,
					closeIcon: null,
					closeIconClass: false,
					watchInterval: 100,
					columnClass:
						"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",
					boxWidth: "50%",
					scrollToPreviousElement: true,
					scrollToPreviousElementAnimate: true,
					useBootstrap: true,
					offsetTop: 40,
					offsetBottom: 40,
					bootstrapClasses: {
						container: "container",
						containerFluid: "container-fluid",
						row: "row",
					},
					onContentReady: function () {},
					onOpenBefore: function () {},
					onOpen: function () {},
					onClose: function () {},
					onDestroy: function () {},
					onAction: function () {},
				};

				/**
				 * This refers to the issue #241 and #246
				 *
				 * Problem:
				 * Button A is clicked (keydown) using the Keyboard ENTER key
				 * A opens the jconfirm modal B,
				 * B has registered ENTER key for one of its button C
				 * A is released (keyup), B gets the keyup event and triggers C.
				 *
				 * Solution:
				 * Register a global keydown event, that tells jconfirm if the keydown originated inside jconfirm
				 */
				var keyDown = false;
				$(window).on("keydown", function (e) {
					if (!keyDown) {
						var $target = $(e.target);
						var pass = false;
						if ($target.closest(".jconfirm-box").length)
							pass = true;
						if (pass) $(window).trigger("jcKeyDown");

						keyDown = true;
					}
				});
				$(window).on("keyup", function () {
					keyDown = false;
				});
				jconfirm.lastClicked = false;
				$(document).on("mousedown", "button, a", function () {
					jconfirm.lastClicked = $(this);
				});
			})(jQuery, window);

			/***/
		},
		/* 3 */
		/***/ function (module, exports) {
			// removed by extract-text-webpack-plugin
			/***/
		},
		/******/
	]
);
