/* 最小化できませんでした。最小化されていないコンテンツを返します。
(1,1): run-time error CSS1019: Unexpected token, found '$'
(1,2): run-time error CSS1019: Unexpected token, found '('
(1,12): run-time error CSS1031: Expected selector, found '('
(1,12): run-time error CSS1025: Expected comma or open brace, found '('
(132,2): run-time error CSS1019: Unexpected token, found ')'
 */
$(function () {
	sis.checkParam();
	//sis.removeMsgParam();

	sis.vuemodel = new Vue({
		el: '#my-app',
		data: {
			companyId: '',
			userId: '',
			loginPassword: '',
			BID: '',
			isSubmitting: false
		},
		mounted: function () {
			sis.vuemodel = this;
			if ($.cookie('BID')) {
				this.BID = $.cookie('BID');
			} else {
				var dt = new Date();
				var y = dt.getFullYear();
				var m = ("00" + (dt.getMonth() + 1)).slice(-2);
				var d = ("00" + dt.getDate()).slice(-2);
				var h = ("00" + dt.getHours()).slice(-2);
				var mm = ("00" + dt.getMinutes()).slice(-2);
				var s = ("00" + dt.getSeconds()).slice(-2);
				this.BID = y  + m + d + h + mm + s;
				var expiryDate = new Date();
				expiryDate.setFullYear(9999); // 有効期限を9999年に設定
				$.cookie('BID', this.BID, { expires: expiryDate, path: "/", domain: $("#Domain").val()/*, secure: true */ });
            }
		},
		methods: {
            doSubmit: async function () {
                // すでにログイン処理中なら何もしない
                if (this.isSubmitting) {
                    return;
                }

                // バリデーション開始前にロックする
                this.isSubmitting = true;

                try {
                    const result = await this.$validator.validateAll();

                    if (!result) {
                        this.isSubmitting = false;
                        return;
                    }

                    sis.loading(true);

                    sis.post(sis.apiUrls.auth, this.$data)
                        .done((data) => {
                            console.log(data);

                            $.cookie('accessToken', data.token, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('userId', data.id, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('userName', data.name, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('userLongName', data.longName, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('companyId', data.companyId, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('companyName', data.companyName, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('roleId', data.roleId, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('role', data.role, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('address1', data.address1, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('address2', data.address2, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });
                            $.cookie('categoryId', data.categoryId, {
                                expires: 45,
                                path: "/",
                                domain: $("#Domain").val()
                            });

                            sis.redirect(sis.urls.deviceLogin);
                        })
                        .fail((error) => {
                            console.log(error);

                            // sis.handleError内でsis.loading(false)を実行
                            sis.handleError(error);

                            // 再度ログインできるように解除
                            this.isSubmitting = false;
                        });
                } catch (error) {
                    console.error(error);

                    sis.loading(false);
                    this.isSubmitting = false;
                }
            }
		}
	});
});
