/* ハンバーガーメニュー開閉
============================*/
$(function () {
    //ナビメニューボタンの開く・閉じる
    $('#nav-menu-btn').on('click', function () {
        $('#nav-menu-btn span').toggleClass('typcn-th-menu');
        $('#nav-menu-btn span').toggleClass('typcn-times');
    });

    //ナビメニューボタンの「開く・閉じる」文字変更
    var flg = "default";
    $('#my-menu-btn').click(function () {
        if (flg == "default") {
            $(this).text("マイメニューを閉じる");
            flg = "changed";
        } else {
            $(this).text("マイメニューを開く");
            flg = "default";
        }
    });
});

/* slick slider
============================*/
$(function () {
    $('.slider_1-1').slick({
        infinite: true,
        dots: true,
        arrows: true,
        slidesToShow: 1,
        slidesToScroll: 1,
        responsive: [{
            breakpoint: 992,
            settings: {
                slidesToShow: 1,
                slidesToScroll: 1,
            }
        }]
    });
    $('.slider_2-1').slick({
        infinite: true,
        dots: true,
        arrows: true,
        slidesToShow: 2,
        slidesToScroll: 2,
        responsive: [{
            breakpoint: 992,
            settings: {
                slidesToShow: 1,
                slidesToScroll: 1,
            }
        }]
    });
    $('.info-slider_1-1').slick({
        infinite: true,
        dots: false,
        arrows: true,
        slidesToShow: 1,
        slidesToScroll: 1,
        responsive: [{
            breakpoint: 992,
            settings: {
                slidesToShow: 1,
                slidesToScroll: 1,
            }
        }]
    });
});

/* jquery.tablesorter（空き駐輪場検索）
============================*/
$(document).ready(function () {
    $("#searchTable").tablesorter({
        sortList: [[0, 0]]
    });
}
);


/* 文字の拡大・縮小
============================*/
$(function () {
    //文字サイズ・大きく   
    $('#scale-control-area .btn-success').on('click', function () {
        $(this).toggleClass('d-none');
        $('#scale-control-area .btn-submit').toggleClass('d-none');
        $('#scale-control-area .btn-secondary').addClass('d-none');
        $('#scale-control-area .btn-cancel').removeClass('d-none');
        $('#font-scale').addClass('f-big');
        $('#font-scale').removeClass('f-bigger');
        $('#font-scale').removeClass('f-small');
    });
    //文字サイズ・さらに大きく   
    $('#scale-control-area .btn-submit').on('click', function () {
        $('#scale-control-area .btn-success').toggleClass('d-none');
        $('#font-scale').addClass('f-bigger');
        $('#font-scale').removeClass('f-big');
        $('#font-scale').removeClass('f-small');
    });
    //文字サイズ・小さく   
    $('#scale-control-area .btn-secondary').on('click', function () {
        $(this).toggleClass('d-none');
        $('#scale-control-area .btn-cancel').toggleClass('d-none');
        $('#font-scale').addClass('f-small');
        $('#font-scale').removeClass('f-bigger');
        $('#font-scale').removeClass('f-big');
    });
    //文字サイズ・元のサイズへ   
    $('#scale-control-area .btn-cancel').on('click', function () {
        $('#scale-control-area .btn-secondary').toggleClass('d-none');
        $('#font-scale').removeClass('f-bigger');
        $('#font-scale').removeClass('f-big');
        $('#font-scale').removeClass('f-small');
    });
});

// 駐輪場詳細ポップアップ
$(document).on('click', '.btn-popup', function (e) {
    e.preventDefault();
    const url = $(this).data('url');

    // data-url が存在しない場合はエラー
    if (!url) {
        console.error('data-url属性が設定されていません');
        alert('URLが取得できませんでした。');
        return;
    }

    $.ajax({
        url: url,
        method: 'GET',
        success: function (response) {
            $('#modalArea').html(response.html);
            $('#popup-modal').modal('show');
        },
        error: function () {
            alert('詳細情報の取得に失敗しました。');
        }
    });
});

$(document).on('click', '.btn-reserve-popup', function () {
    var reserveId = $(this).data('reserve-id');
    $.ajax({
        url: '/api/park-detail-wait/' + reserveId,
        method: 'GET',
        success: function (data) {
            $('#modalArea').html(data.html); // モーダル全体を挿入
            $('#parkDetailWaitModal').modal('show'); // モーダルを表示
        },
        error: function () {
            alert('詳細情報の取得に失敗しました');
        }
    });
});

$(document).on('click', '.btn-reserve', function (e) {
    e.preventDefault();
    var parkId = $(this).data('park-id');
    var psectionId = $(this).data('psection-id');
    var ptypeId = $(this).data('ptype-id');

    $.confirm({
        title: '確認',
        content: 'こちらの駐輪場を予約しますか？<br>お申込みいただく各自治体の条例等によって、駐輪場までの距離制限等によりご契約いただけない場合がございます。<br>予めご了承くださいますようお願いいたします。',
        buttons: {
            OK: function () {
                // Ajaxで予約済みかチェック
                $.get('/park-waitlist/check', {
                    park_id: parkId,
                    psection_id: psectionId,
                    ptype_id: ptypeId
                }, function (response) {
                    if (response.status === 'exists') {
                        $.alert('こちらの駐輪場は予約済みです。');
                    } else {
                        // 予約画面へ遷移
                        location.href = '/park-waitlist/create?park_id=' + parkId + '&psection_id=' + psectionId + '&ptype_id=' + ptypeId;
                    }
                });
            },
            キャンセル: function () { }
        }
    });
});

$(document).on('click', '.btn-contract', function (e) {
    e.preventDefault();
    var parkId = $(this).data('park-id');
    var psectionId = $(this).data('psection-id');
    var ptypeId = $(this).data('ptype-id');

    $.confirm({
        title: '確認',
        content: 'こちらの駐輪場で定期契約を申し込みますか？',
        buttons: {
            OK: function () {
                // GETパラメータでregulationCheckメソッドに遷移
                location.href = '/regular-contract/regulationCheck?park_id=' + parkId + '&psection_id=' + psectionId + '&ptype_id=' + ptypeId;
            },
            キャンセル: function () { }
        }
    });
});
