var fitting = { entry: { flow: {}, area: null, wedge_areas: null, notes: null, slot: null, date: null, csrftoken: null, current_date: null, last: { area: null, current_date: null, }, fwd: {}, is_default: '', booking: { slot: null, date: null, store_id: null, notes: null }, info: { lastname: null, surname: null, name: null, phonetic_lastname: null, phonetic_surname: null, phonetic: null, email: null, gender: null, birth: null, address: null, phone: null, notes: null }, radio_checkbox_bigger: function () { $('input').iCheck({ checkboxClass: 'icheckbox_minimal hover', radioClass: 'iradio_minimal hover', increaseArea: '20%' }); }, index: { init: function () { $('.search_store').attr('disabled', 'disabled'); fitting.entry.csrftoken = global_var.token_id; fitting.entry.wedge_areas = wedge_areas; // resize checkbox fitting.entry.radio_checkbox_bigger(); fitting.entry.check_mobile(); fitting.entry.index.event.init_date_picker(); fitting.entry.index.event.hide_input_error(); fitting.entry.index.event.ajax_store(); fitting.entry.index.event.after_valid(); fitting.entry.index.event.reset_search_result(); fitting.entry.index.event.check_fitting_category(); fitting.entry.booking_screen.init(); fitting.scroll('html', 0); $.address.unbind('change').value(''); setTimeout(function () { $.address.change(function () { if (/^\/info\/?$/.test($.address.value())) { var data = {}; data.notes = fitting.entry.info.notes; data.date = fitting.entry.booking.date; data.slot = fitting.entry.booking.slot; data.store_id = fitting.entry.booking.store_id; if (data.store_id) { fitting.ajax.get_content( global_var.base_url + 'fitting2/ajax_info', data, '.step-area', fitting.entry.info_screen.init ); } else { location.href = '/fitting'; $("#ajax-modal").hide(); } } else if (/^\/calendar\/?$/.test($.address.value())) { var data = fitting.entry.fwd; // call api load booking page let params = { schedules: data["schedules"], }; fitting.ajax.get_content( global_var.base_url + 'fitting2/ajax_booking', params, '.step-area', fitting.entry.booking_screen.init ); } else { var data = fitting.entry.fwd; fitting.entry.last.campaign = fitting.entry.fwd.campaign_id; //move to index screen fitting.ajax.get_content(global_var.base_url + 'fitting2/index', data, '.step-area'); } }); }, 500); }, event: { confirm_valid: function () { let data = fitting.entry.index.get_current_val(); if (!data.notes) { return false; } if (!data.time_frame || data.time_frame.length == 0) { return false; } if (!data.start_date || !data.duration) { return false; } if (!data.area_id) { return false; } return true; }, hide_input_error: function () { $('.error-msg').hide(); }, init_date_picker: function () { $("#date_picker").datepicker({ setDate: 'today', yearRange: "0:+5", monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayNamesMin: ["日", "月", "火", "水", "木", "金", "土"], minDate: new Date(), showMonthAfterYear: true, yearSuffix: "年", altField: '#start_date', altFormat: 'yy-mm-dd', dateFormat: "yy'年'mm'月'd'日'から", }); }, reset_value: function () { fitting.entry.fwd = {}; }, hide_calendar: function () { $("#schedule-result").hide(); }, show_calendar: function () { $("#schedule-result").show(); }, reset_search_result: function () { let iCheckElements = [ 'input[name="notes"]', 'input[name="area"]', 'input[name="time_frame"]', ]; let inputElements = [ '#date_picker', '#duration' ]; $(iCheckElements.join(',')).on('ifChanged', function (event) { fitting.entry.index.event.hide_search_result(); fitting.entry.index.event.after_valid(); fitting.entry.index.event.hide_calendar(); }); $(inputElements.join(',')).on('change', function (event) { fitting.entry.index.event.hide_search_result(); fitting.entry.index.event.after_valid(); fitting.entry.index.event.hide_calendar(); }); }, after_valid: function () { let valid = fitting.entry.index.event.confirm_valid(); if (!valid) { $('.search_store').attr('disabled', 'disabled'); $('.search_store').addClass("not_valid"); } else { $('.search_store').removeAttr('disabled'); $('.search_store').removeClass("not_valid"); } }, ajax_store: function () { $(".search_store").unbind('click').click(function () { // 1. show loading fitting.entry.index.event.show_loading_ajax_store(); // 2. validate form fitting.entry.index.event.hide_input_error(); fitting.entry.index.event.reset_value(); let data = fitting.entry.index.get_current_val(); let valid = fitting.entry.index.event.validate_ajax_store(data); // 3. validate success if (valid) { // store last value to fwd fitting.entry.fwd = data; // call api get slot fitting.ajax.get_content_default_store( '/fitting2/ajax_store', data, '#schedule-result', fitting.entry.index.event.hide_loading_ajax_store(), true ); } else { // hide loading fitting.entry.index.event.hide_loading_ajax_store(); } }); }, validate_ajax_store: function (data) { if (!data.notes) { $('.error-notes').show(); fitting.scroll('.error-notes', 185); return false; } if (!data.area_id) { $('.error-area').show(); return false; } if (!data.start_date || !data.duration) { $('.error-start-date').show(); return false; } if (!data.time_frame || data.time_frame.length == 0) { $('.error-time-frame').show(); return false; } return true; }, cal_slot_click: function () { $('div.maru2').unbind('click').click(function () { fitting.entry.booking.date = fitting.entry.date = $(this).data('date'); fitting.entry.booking.slot = fitting.entry.slot = $(this).data('slot'); fitting.entry.booking.store_id = $(this).data('store'); fitting.entry.info.notes = fitting.entry.fwd.notes; fitting.entry.fwd.schedules = $("#schedules").val(); // Check category and store if (fitting.entry.info.notes == "ウェッジ" && ![1000000001, 1000000007].includes(fitting.entry.booking.store_id)) { alert("ウェッジ非対応の店舗です。"); return } // Save selected slot fitting.entry.fwd.selected_slot = {}; fitting.entry.fwd.selected_slot.slot = fitting.entry.booking.slot; fitting.entry.fwd.selected_slot.date = fitting.entry.booking.date; fitting.entry.fwd.selected_slot.store_id = fitting.entry.booking.store_id; // set color for cell $('.maru2').removeClass('muru2-selected'); $(this).addClass('muru2-selected'); // redirect $.address.value('info'); }); }, show_loading_ajax_store: function () { fitting.ajax.show_loading(); fitting.ajax.is_loading++; $("#ajax-modal").show(); }, hide_loading_ajax_store: function () { setTimeout(function () { fitting.ajax.hide_loading(); fitting.ajax.is_loading--; if (fitting.ajax.is_loading < 1) { $("#ajax-modal").hide(); } }, 300); }, hide_search_result: function () { let show_result = $("#show_result"); if (show_result.hasClass("hidden")) { return true; } show_result.addClass("hidden"); }, check_fitting_category: function() { const possible_areas = fitting.entry.wedge_areas; // check category is wedge if ($('input[name="notes"]:checked').val() == 'ウェッジ') { // disable other area $('input[name="area"]').each(function () { if (!possible_areas.includes($(this).val())) { $(this).attr("disabled", "disabled"); $(this).parent().parent().parent().addClass("area_disable"); } }); } $('input[name="notes"]').on("ifChecked", function () { // select wedge if (this.value == 'ウェッジ') { // check area selected is not fit then reselect if (!possible_areas.includes($("input[name=area]:checked").val())) { $('input[name="area"]:checked').parent().removeClass("checked"); $('input[name="area"][value=' + possible_areas[0] + ']').parent().addClass("checked"); $('input[name="area"][value=' + possible_areas[0] + ']').attr('checked', true); } // disable other area $('input[name="area"]').each(function () { if (!possible_areas.includes($(this).val())) { $(this).attr("disabled", "disabled"); $(this).parent().parent().parent().addClass("area_disable"); } }); } else { // enable other area $('input[name="area"]').each(function () { if ($(this).attr("disabled")) { $(this).removeAttr("disabled"); $(this).parent().parent().parent().removeClass("area_disable"); } }); } }); }, }, get_current_val: function () { var data = {}; data.csrftoken = fitting.entry.csrftoken; data.notes = $("input[name=notes]:checked").val(); data.area_id = $("input[name=area]:checked").val(); data.start_date = $("#start_date").val(); data.duration = $("#duration").val(); data.time_frame = $("input[name=time_frame]:checked").map(function () { return this.value; }).get(); return data; }, }, info_screen: { init: function () { fitting.entry.radio_checkbox_bigger(); fitting.entry.info_screen.fill_info(); fitting.entry.info_screen.back_button(); fitting.entry.info_screen.book_button(); fitting.entry.info_screen.confirm_checkbox(); fitting.entry.info_screen.browser_unload(); fitting.entry.info_screen.check_realtime.phone(); fitting.entry.info_screen.check_realtime.email(); fitting.scroll('body', 0); $("#birth").datepicker({ dateFormat: 'yy-mm-dd', changeYear: true, yearRange: "-100:+0" }); }, fill_info: function () { if (fitting.entry.info.lastname) { $('#lastname').val(fitting.entry.info.lastname); } if (fitting.entry.info.surname) { $('#surname').val(fitting.entry.info.surname); } if (fitting.entry.info.phonetic_lastname) { $('#phonetic_lastname').val(fitting.entry.info.phonetic_lastname); } if (fitting.entry.info.phonetic_surname) { $('#phonetic_surname').val(fitting.entry.info.phonetic_surname); } if (fitting.entry.info.phone) { $('#phone').val(fitting.entry.info.phone); } if (fitting.entry.info.email) { $('#email').val(fitting.entry.info.email); } if (undefined !== fitting.entry.info.gender) { if (fitting.entry.info.gender == 0) $('#female').iCheck('check'); if (fitting.entry.info.gender == 1) $('#male').iCheck('check'); } if (fitting.entry.info.birth) { $('#birth').val(fitting.entry.info.birth); } if (fitting.entry.info.address) { $('#address').val(fitting.entry.info.address); } }, back_button: function () { $('#link-back').click(function () { //get info fitting.entry.info_screen.get_info(); // back to previous url $(window).unbind('beforeunload'); history.go(-1); }); }, book_button: function () { $('#btn-book').click(function () { // Check checkbox is checked or not if (!$('#confirm-fitting').is(':checked')) { $('#error_confirm').show(); return false; } // Get data fitting.entry.info_screen.get_info(); // Validate by js let validate = fitting.entry.info_screen.validate(); if (!validate) return false; // No error => show loading icon fitting.ajax.show_loading(); $("#ajax-modal").show(); // Use setTimeout to be able to show loading icon setTimeout(() => { // Call ajax to validate info let validateInfo = fitting.entry.info_screen.validate_info(); let data = { info: fitting.entry.info, store_id: fitting.entry.booking.store_id, slot: fitting.entry.booking.slot, date: fitting.entry.booking.date, csrftoken: fitting.entry.fwd.csrftoken, }; data.info.name = data.info.lastname + ' ' + data.info.surname; data.info.phonetic = data.info.phonetic_lastname + ' ' + data.info.phonetic_surname; data.info.handedness = 'r'; if (validateInfo) { // Show loading fitting.ajax.show_loading(); $("#ajax-modal").show(); // Submit form $(window).unbind('beforeunload'); fitting.post_form.post(data, global_var.base_url + 'fitting/complete'); } else { fitting.ajax.hide_loading(); $("#ajax-modal").hide(); } }, 1); }); }, confirm_checkbox: function () { $('#confirm-fitting').on('ifChecked', function () { $('#btn-book').removeClass('deactive'); $('#error_confirm').hide(); }); $('#confirm-fitting').on('ifUnchecked', function () { $('#btn-book').addClass('deactive'); }); }, get_info: function () { // save current info fitting.entry.info.lastname = $('#lastname').val(); fitting.entry.info.surname = $('#surname').val(); fitting.entry.info.phonetic_lastname = $('#phonetic_lastname').val(); fitting.entry.info.phonetic_surname = $('#phonetic_surname').val(); fitting.entry.info.phone = $('#phone').val(); fitting.entry.info.email = $('#email').val(); fitting.entry.info.address = $('#address').val(); fitting.entry.info.birth = $('#birth').val(); fitting.entry.info.gender = $('input:radio[name="gender"]:checked').val(); }, browser_unload: function () { $(window).bind('beforeunload', function (e) { return 'まだ予約が完了されていません。このページを離れると、入力したデータが削除されます。'; }); }, check_realtime: { phone: function () { $('#phone').keyup(function () { var phone = $.trim($(this).val()); if (!(/^0[\d]{10}$/.test(phone))) { $('#error_phone').show(); } else { $('#error_phone').hide(); } }); }, email: function () { $('#email').keyup(function () { var email = $.trim($(this).val()); if (!(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email))) { $('#error_email').show(); } else { $('#error_email').hide(); } }); $('#email').blur(function () {/*when blur, request ajax check email exist*/ }); } }, validate: function () { $('#error_message').hide(); $('#error_email_exists').hide(); $('#error_birth').hide(); $('#error_name_too_long').hide(); $('#error_phonetic_name').hide(); $('#error_name').hide(); $('.art_r').hide(); var error = false; // check to see if name is empty if (!/^(.){1,20}$/.test($.trim($('#lastname').val())) || !/^(.){1,20}$/.test($.trim($('#surname').val()))) { $('#error_name').show(); if (!error) { fitting.scroll('#lastname', 100); } error = true; } // check to see if kana name is empty if (!/^[\u3040-\u309F|a-zA-Z|\s]+$/.test($.trim($('#phonetic_lastname').val())) || !/^([\u3040-\u309F|a-zA-Z|\s]){1,20}$/.test($.trim($('#phonetic_surname').val()))) { $('#error_phonetic_name').show(); if (!error) { fitting.scroll('#phonetic_lastname', 0); } error = true; } else if (!/^([\u3040-\u309F|a-zA-Z|\s]){1,11}$/.test($.trim($('#phonetic_lastname').val()))) { $('#error_name_too_long').show(); if (!error) { fitting.scroll('#phonetic_lastname', 100); } error = true; } //check phone number if (!(/^0[\d]{10}$/.test($('#phone').val()))) { $('#error_phone').show(); if (!error) { fitting.scroll('#phone', 100); } error = true; } // check email format if (!(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test($('#email').val()))) { $('#error_email').show(); if (!error) { fitting.scroll('#email', 100); } error = true; } // check birthday if (!(/^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$/.test($('#birth').val()))) { $('#error_birth').show(); if (!error) { fitting.scroll('#birth', 100); } error = true; } // check address input if ($('#address').val() == 0) { $('#error_address').show(); if (!error) { fitting.scroll('#address', 100); } error = true; } // check email format if (!$("input[name='gender']:checked").val()) { $('#error_gender').show(); if (!error) { fitting.scroll('#gender', 100); } error = true; } return !error; }, validate_info: function () { let data = { info: fitting.entry.info, notes: fitting.entry.booking.notes, store_id: fitting.entry.booking.store_id, slot: fitting.entry.booking.slot, date: fitting.entry.booking.date, csrftoken: fitting.entry.fwd.csrftoken }; data.info.name = data.info.lastname + ' ' + data.info.surname; data.info.phonetic = data.info.phonetic_lastname + ' ' + data.info.phonetic_surname; let rs = fitting.ajax.get_json(global_var.base_url + 'fitting2/check_info', data); if (rs['err'] == 'E_EMAIL_EXIST' || rs['err'] == 'E_ONLY_BOOK_SWING_EVALUATION') { $('#error_email_exists').show(); fitting.scroll('#email', 100); return false; } else if (rs['err'] == 'E_INVALID_BIRTH') { $('#error_birth').show(); fitting.scroll('#birth', 100); return false; } else if (rs['err'] == 'E_INVALID_KANJI') { $('#error_name').show(); fitting.scroll('#lastname', 100); return false; } else if (rs['err'] == 'E_NAME_TOO_LONG') { $('#error_name_too_long').show(); fitting.scroll('#phonetic_lastname', 100); return false; } else if (rs['err'] == 'E_INVALID_HIRA') { $('#error_phonetic_name').show(); fitting.scroll('#phonetic_lastname', 100); return false; } else if (rs['err'] == 'E_INVALID_EMAIL') { $('#error_email').show(); fitting.scroll('#email', 100); return false; } else if (rs['err'] == 'E_INVALID_GENDER') { $('#error_gender').show(); fitting.scroll('#gender', 100); return false; } else if (rs['err'] == 'E_INVALID_ADDRESS') { $('#error_address').show(); fitting.scroll('#address', 100); return false; } else if (rs['err']) { $('#error_message').html(rs['msg']).show(); fitting.scroll('#error_message', 0); return false; } else { return true; } } }, booking_screen: { init: function () { fitting.entry.booking_screen.init_collapse(); fitting.entry.booking_screen.cal_hover(); fitting.entry.index.event.cal_slot_click(); }, cal_hover: function () { $('div.maru2').hover( function () { $(this).addClass('slot-hover'); }, function () { $(this).removeClass('slot-hover'); } ); }, init_collapse: function () { $('.panel-collapse').on('show.bs.collapse', function () { $(this).siblings('.panel-heading').addClass('active'); }); $('.panel-collapse').on('hide.bs.collapse', function () { $(this).siblings('.panel-heading').removeClass('active'); }); }, }, backtotop: function () { $(window).scroll(function () { if ($(this).scrollTop() != 0) { $('#gototop').fadeIn(); } else { $('#gototop').fadeOut(); } }); }, check_mobile: function () { let is_mobile = false; if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0, 4))) { is_mobile = true; } if (is_mobile) { $('#gototop').hide(); } else { fitting.entry.backtotop(); } } }, //ajax object ajax: { is_loading: 0, show_loading: function () { fitting.ajax.fakeFrame = $(''); $('body').append(fitting.ajax.fakeFrame); }, hide_loading: function () { fitting.ajax.fakeFrame.remove(); }, get_content: function (url, params, contain, call_back, async = false) { $.ajax({ type: "POST", url: url, data: params, dataType: "html", async: async, beforeSend: function () { fitting.ajax.show_loading(); fitting.ajax.is_loading++; $("#ajax-modal").show(); }, success: function (output) { var error = false; try { var output = jQuery.parseJSON(output); if (output.error) { error = true; if (output.error.error_num == -1) { alert(output.error.error_message); window.location = '/login'; } else alert(output.error.error_message); } else if (output.err) { error = true; $("#ajax-modal").hide(); if ($('#error_message').length) { $('#error_message').html('
' + output.msg + '
'); $('html, body').animate({ scrollTop: $('#error_message').offset().top }, 500); $('#error_message').show(); } else { alert(output.msg); } } else { //nothing $('#error_message').hide(); } } catch (e) { } fitting.ajax.is_loading--; if (!error) { $(contain).html(output); if (typeof call_back == 'function') call_back.call(); } fitting.ajax.hide_loading(); }, complete: function () { if (fitting.ajax.is_loading < 1) { $("#ajax-modal").hide() } }, error: function (error) { alert('ページ遷移でエラーが発生しました。'); } }); }, get_content_default_store: function (url, params, contain, call_back, async = false) { $.ajax({ type: "POST", url: url, data: params, dataType: "html", async: async, beforeSend: function () { fitting.ajax.show_loading(); fitting.ajax.is_loading++; if (fitting.ajax.is_loading == 1) { $("#ajax-modal").show(); } }, success: function (output) { var error = false; try { var output = jQuery.parseJSON(output); if (output.error) { error = true; if (output.error.error_num == -1) { alert(output.error.error_message); window.location = '/login'; } else alert(output.error.error_message); } else if (output.err) { error = true; $("#ajax-modal").hide(); if ($('#error_message').length) { $('#error_message').html('
' + output.msg + '
'); $('html, body').animate({ scrollTop: $('#error_message').offset().top }, 500); $('#error_message').show(); } else { alert(output.msg); } } else { $('#error_message').hide(); } } catch (e) { } fitting.ajax.is_loading--; if (!error) { $(contain).html(output); if (typeof call_back == 'function') call_back.call(); } fitting.ajax.hide_loading(); }, complete: function () { if (fitting.ajax.is_loading < 1) { $("#ajax-modal").hide() } // show calendar fitting.entry.index.event.show_calendar(); // init calendar fitting.entry.booking_screen.init(); fitting.scroll('#schedule-result', 0); }, error: function (error) { alert('ページ遷移でエラーが発生しました。'); } }); }, get_json: function (url, params, call_back) { var result = {} $.ajax({ type: "POST", url: url, data: params, dataType: "html", async: false, beforeSend: function () { fitting.ajax.show_loading(); fitting.ajax.is_loading++; $("#ajax-modal").show(); }, success: function (output) { try { fitting.ajax.is_loading--; result = jQuery.parseJSON(output); if (result.error) { if (result.error.error_num == -1) { alert(result.error.error_message); window.location = '/login'; } else alert(result.error.error_message); } else { if (typeof call_back == 'function') call_back.call(); } } catch (e) { alert(output); } fitting.ajax.hide_loading(); }, complete: function () { if (fitting.ajax.is_loading < 1) { $("#ajax-modal").hide() } }, error: function (error) { fitting.ajax.hide_loading(); alert('ページ遷移でエラーが発生しました。'); } }); return result; } }, scroll: function (element, offset) { $('html, body').animate({ scrollTop: $(element).offset().top - parseInt(offset) }, 500); }, post_form: { post: function (data, url) { var post_form = $("
"); post_form.append(fitting.post_form.form_params(data)); $('body').append(post_form); post_form.submit(); }, form_params: function (data, parent) { var params = ''; if (!data) { return params; } else { $.each(data, function (key, val) { if (typeof val === 'object' || typeof val === 'array') { params += fitting.post_form.form_params(val, key); } else { if (parent) key = parent + '[' + key + ']'; params += ""; } }); } return params; } }, analytics: { ga: { eval_complete: function () { var _gaq = _gaq || []; _gaq.push(['TbuTracker._setAccount', 'UA-41365798-1']); _gaq.push(['TbuTracker._setDomainName', 'golfdigest.co.jp']); _gaq.push(['TbuTracker._setVisitorCookieTimeout', 15552000000]); _gaq.push(['TbuTracker._trackPageview', '/virtualPV/eval/complete']); } } }, }