var ppc = { //appointment booking appointment: { current: {}, practice: {}, disablelist: {}, data_booking: {}, keep: {}, monload: function () { if (ppc.appointment.keep.center_id) { $('#bk_center').val(ppc.appointment.keep.center_id); ppc.appointment.ajax_coach(); } if (ppc.appointment.keep.lesson_type) { $('#bk_lessontype').val(ppc.appointment.keep.lesson_type).change(); } if (ppc.appointment.keep.coach_id) { $('#bk_coach').val(ppc.appointment.keep.coach_id); } if (ppc.appointment.keep.date) { $('#datepicker').datepicker('setDate', ppc.appointment.keep.date); } // instance event ppc.appointment.minit_event(); // load check practice ppc.appointment.check_practice(); // instance calendar ppc.appointment.minit_calendar(); }, ajax_coach: function () { var params = {"center_id": ppc.appointment.current.center}; ppc.ajax.get_content(global_var.base_url + 'appointment/ajax_coach', params, '#bk_coach'); }, check_practice: function () { var center_id = $('#bk_center').val(); ppc.appointment.practice = (ppc.appointment.practices[center_id] != undefined) ? ppc.appointment.practices[center_id] : ppc.appointment.vpractice; ppc.appointment.current.lessontype = $('#bk_lessontype').val(); if (ppc.appointment.disablelist[ppc.appointment.current.lessontype] != undefined && ppc.appointment.disablelist[ppc.appointment.current.lessontype] == true) { ppc.appointment.current.coach = ppc.appointment.practice; $('#bk_coach').attr('disabled', 'true'); $('#bk_coach').val(''); } else { ppc.appointment.current.coach = $('#bk_coach').val(); $('#bk_coach').removeAttr('disabled'); } }, ajax_remain: function () { var params = { "newdate": ppc.appointment.current.date, "lessontype": ppc.appointment.current.lessontype }; ppc.ajax.get_content(global_var.base_url + 'appointment/ajax_update_remain', params, '#appointment_count'); }, minit_event: function () { ppc.appointment.current.center = $('#bk_center').val(); ppc.appointment.current.coach = $('#bk_coach').val(); $('#bk_center').change(function () { $('#bk_coach').val(''); ppc.appointment.current.center = $(this).val(); ppc.appointment.check_practice(); ppc.appointment.ajax_coach(); }); $('#bk_lessontype').change(function () { ppc.appointment.check_practice(); ppc.appointment.ajax_remain(); }); $('#bk_coach').change(function () { ppc.appointment.current.coach = $(this).val(); }); $('#start').click(function () { var params = {}; params.center_id = $('#bk_center').val(); params.coach_id = ppc.appointment.current.coach; params.date = ppc.appointment.current.date; params.lesson_type = $('#bk_lessontype').val(); params.zone = new Date().getTimezoneOffset() / 60 * -1; ppc.appointment.keep = params; ppc.ajax.get_content(global_var.base_url + 'appointment/ajax_context', params, '#ajax_change', function () { ppc.scroll('html'); }); }); }, minit_context: function () { ppc.appointment.current.valid_coach = []; $('.time_check').click(function () { if ($(this).hasClass('disabled')) return; var selected = new Array(); var time_selected = {}; $(this).toggleClass('btn-success'); ppc.appointment.current.contextNext = true; $('table#planlist a.btn-success').each(function () { var id = $(this).attr('id'); selected.push($('input#oid_' + id).val()); time_selected[id] = $('input#time_' + id).val(); }); if (selected.length > ppc.appointment.current.max_in_day) { $(this).removeClass('btn-success'); alert(ppc.appointment.current.mid_msg); return; } else if (selected.length < 1) { ppc.appointment.current.contextNext = false; return; } ppc.appointment.data_booking.timeslot = time_selected; ppc.appointment.data_booking.selected = selected; ppc.appointment.current.valid_coach = ppc.appointment.filter_coach(selected); if (!ppc.appointment.current.valid_coach.length) { alert(ppc.appointment.current.coach_msg); $(this).removeClass('btn-success'); return; } }); $('#contextBack').click(function () { ppc.ajax.get_content(global_var.base_url + 'appointment/booking', null, '#ajax_change'); }); $('#cw-context-back').click(function () { ppc.ajax.get_content(global_var.base_url + 'appointment/cancel_waiting', null, '#ajax_change'); }); $('#contextNext').click(function () { if (!ppc.appointment.current.contextNext) { alert(ppc.appointment.current.plan_msg); return; } if (!ppc.appointment.current.valid_coach.length) { alert(ppc.appointment.current.coach_msg); return; } // data booking ppc.appointment.data_booking.coach_id = ppc.appointment.current.coach; ppc.appointment.data_booking.center_id = ppc.appointment.current.center; ppc.appointment.data_booking.lesson_type = ppc.appointment.current.lessontype; ppc.appointment.data_booking.date = ppc.appointment.current.date; ppc.appointment.data_booking.csrftoken = global_var.token_id; ppc.appointment.data_booking.zone = new Date().getTimezoneOffset() / 60 * -1; // if practice, goto appointment confirm screen if (ppc.appointment.current.practice == 1 || (ppc.appointment.data_booking.coach_id && ppc.appointment.current.coach)) { ppc.appointment.mpreview(); } else { // goto select coach screen var params = {}; params.list = ppc.appointment.data_booking.selected; params.date = ppc.appointment.data_booking.date; params.coach = ppc.appointment.data_booking.coach_id; ppc.ajax.get_content(global_var.base_url + 'appointment/mshow_coach', params, '#ajax_change', function () { ppc.scroll('html'); }); } }); }, mpreview: function () { ppc.ajax.get_content(global_var.base_url + 'appointment/mpreview', {'data': ppc.appointment.data_booking}, '#ajax_change', function () { ppc.scroll('html'); }); }, minit_preview: function () { $('#previewBack').click(function () { // back to context if (ppc.appointment.current.practice == 1 || (ppc.appointment.data_booking.coach_id && ppc.appointment.current.coach)) { ppc.appointment.current.contextNext = false; ppc.ajax.get_content(global_var.base_url + 'appointment/ajax_context', ppc.appointment.keep, '#ajax_change'); } else { // back to showcoach var params = {}; params.list = ppc.appointment.data_booking.selected; params.date = ppc.appointment.data_booking.date; params.coach = ppc.appointment.data_booking.coach_id; ppc.ajax.get_content(global_var.base_url + 'appointment/mshow_coach', params, '#ajax_change', function () { ppc.scroll('html'); }); } }); // goto confirm $('#previewNext').click(function () { if (global_var.is_sample) { return; } $.ajax({ url: global_var.base_url + 'appointment/ajax_confirm', type: "POST", async: false, data: ppc.appointment.data_booking, beforeSend: function () { ppc.ajax.show_loading(); }, success: function (data) { if (ppc.library.is_json(data)) { ppc.library.check_session_expired(data); var error_msg = data.msg; $('#booking_mesage').html(error_msg); } else { $('#ajax_change').html(data); } ppc.ajax.hide_loading(); } }); }); }, mshow_coach: function () { ppc.appointment.minit_showcoach(); }, minit_coach_detail: function () { $('#showcoachBack').click(function () { ppc.appointment.current.contextNext = false; ppc.ajax.get_content(global_var.base_url + 'appointment/ajax_context', ppc.appointment.keep, '#ajax_change'); }); $('#showcoachNext').click(function () { if (ppc.appointment.data_booking.coach_id) { ppc.appointment.mpreview(); } else { alert(ppc.appointment.current.coach_msg); } }); $('#player').click(function () { if (this.paused) { this.play(); } else { this.pause(); } return false; }); }, minit_showcoach: function () { var hightlight_id = (ppc.appointment.data_booking.coach_id) ? ppc.appointment.data_booking.coach_id : ppc.appointment.current.single_id; hightlight_id = (ppc.appointment.current.valid_coach.length) ? ppc.appointment.current.valid_coach[0] : hightlight_id; if (hightlight_id) { ppc.appointment.data_booking.coach_id = hightlight_id; $('p#coach_' + hightlight_id).addClass('bgyellow'); ppc.appointment.mcoach_detail(); } $('p[id^="coach_"]').click(function () { $('p[id^="coach_"]').each(function () { if ($(this).hasClass('bgyellow')) { $(this).removeClass('bgyellow'); } }); $(this).toggleClass('bgyellow'); ppc.appointment.data_booking.coach_id = $(this).attr('id').split('_')[1]; ppc.appointment.mcoach_detail(); }); }, mcoach_detail: function () { ppc.ajax.get_content(global_var.base_url + "appointment/ajax_coach_detail", {'coach_id': ppc.appointment.data_booking.coach_id}, '#coach_details'); }, minit_calendar: function () { $('#datepicker').datepicker({ defaultDate: new Date(global_var.current_date), onSelect: function (dateText) { var olddate = ppc.appointment.current.date; ppc.appointment.current.date = dateText; var newdate = ppc.appointment.current.date; if (olddate) { var oldarr = olddate.split('/'); var oldstr = oldarr[0] + '' + oldarr[2]; } else { var oldstr = ppc.appointment.cdate; } var newarr = newdate.split('/'); var newstr = newarr[0] + '' + newarr[2]; if (oldstr != newstr) { ppc.appointment.ajax_remain(); } }, minDate: global_var.current_date }); if (ppc.appointment.current.date) { $('#datepicker').datepicker('setDate', ppc.appointment.current.date); } else { $('#datepicker').datepicker('setDate', global_var.current_date); ppc.appointment.current.date = global_var.current_date; } }, monload_navigation: function () { var reg1 = /tab1/; var reg2 = /tab2/; var reg3 = /tab3/; var reg4 = /tab4/; var reg5 = /tab5/; var reg6 = /tab6/; var reg7 = /tab7/; $('td[class^="tab"], div[class^="tab"]').click(function () { var cls = $(this).attr('class'); if ($(this).hasClass('selected') || $(this).hasClass('muted')) { return; } else { if (reg1.test(cls)) { window.location.href = "/lesson"; } else if (reg2.test(cls)) { window.location.href = '/appointment/view_plan' }///chua dung url else if (reg3.test(cls)) { window.location.href = "/appointment/booking"; } else if (reg4.test(cls)) { window.location.href = "/appointment/booked"; } else if (reg5.test(cls)) { window.location.href = "/appointment/cancel_waiting"; } else if (reg6.test(cls)) { window.location.href = "/appointment/cancel_waiting_booked"; } else if (reg7.test(cls)) { window.open('/help', '_blank'); } } }); }, filter_coach: function (list) { if (!list.length) return false; var tmp = list[0].split(','); $(list).each(function () { tmp = ppc.library.array_intersect(this.split(','), tmp); }); return tmp; }, onload: function () { }, init_event: function () { }, init_calendar: function () { } }, //swing evaluation evaluation: { info: { lastname: null, surname: null, name: null, phonetic_lastname: null, phonetic_surname: null, phonetic: null, email: null, phone: null, handless: null, handless_view: null }, lessons: { selected_slots: [], avaible_coach: null, center_id: null, lesson_type: null, selected_date: null }, selected_slots: [], avaible_coach: null, center_id: null, lesson_type: null, selected_date: null, timezone: null, clickable: [], max_in_day: 1, csrftoken: null, onload: function () { $('.art_r').hide(); /*if back to edit*/ $('#lastname').val(ppc.evaluation.info.lastname); $('#surname').val(ppc.evaluation.info.surname); $('#phonetic_lastname').val(ppc.evaluation.info.phonetic_lastname); $('#phonetic_surname').val(ppc.evaluation.info.phonetic_surname); $('#email').val(ppc.evaluation.info.email); $('#phone').val(ppc.evaluation.info.phone); if (ppc.evaluation.info.handless == 'right') $('#right').attr('checked', 'checked'); if (ppc.evaluation.info.handless == 'left') $('#left').attr('checked', 'checked'); $('#continue').click(function (even) { even.preventDefault(); if (ppc.evaluation.validate.check()) { var info = ppc.evaluation.info; info.name = $('#lastname').val() + ' ' + $('#surname').val(); info.lastname = $('#lastname').val(); info.surname = $('#surname').val(); info.phonetic = $('#phonetic_lastname').val() + ' ' + $('#phonetic_surname').val(); info.phonetic_lastname = $('#phonetic_lastname').val(); info.phonetic_surname = $('#phonetic_surname').val(); info.email = $('#email').val(); info.phone = $('#phone').val(); info.handless = $('#right').attr('checked') ? 'right' : 'left'; info.timezone = new Date().getTimezoneOffset() / 60 * -1; info.csrftoken = global_var.token_id; info.handless_view = $.trim($('label[for="' + info.handless + '"]').text()); var post = $.parseJSON(JSON.stringify(info)); post.lesson_type = ppc.evaluation.lesson_type; ppc.ajax.get_content('/entry/booking', post, '#ajax_change', global_var.is_mobile ? ppc.evaluation.minit_booking : ppc.evaluation.init_booking); } else { $('#error').html('
please input
'); } ppc.analytics.tracking(this, even); return false; }); }, validate: { check: function () { $('.art_r').hide(); var error = false; var scroll = false; // check to see if name is empty if (!$.trim($('#lastname').val()) || !$.trim($('#surname').val())) { $('#error_name').show(); if (!error) ppc.evaluation.validate.scroll('#lastname'); 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) ppc.evaluation.validate.scroll('#phonetic_lastname'); error = true; } else if (!/^([\u3040-\u309F|a-zA-Z|\s]){1,11}$/.test($.trim($('#phonetic_lastname').val()))) { $('#error_name_too_long').show(); if (!error) { ppc.scroll('#phonetic_lastname', 100); } error = true; } // check to see if handedness is empty only if element exists in form if (!$('#right').attr('checked') && !$('#left').attr('checked')) { $('#error_handless').show(); if (!error) ppc.evaluation.validate.scroll('#right'); error = true; } //check phone number if (!(/^0[\d]{10}$/.test($('#phone').val()))) { $('#error_phone').show(); if (!error) ppc.evaluation.validate.scroll('#phone'); 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(String($('#email').val()).toLowerCase()))) { $('#error_email').show(); if (!error) ppc.evaluation.validate.scroll('#email'); error = true; } return !error; }, scroll: function (element) { $('html, body').animate( {scrollTop: $(element).offset().top}, 500 ); } }, init_booking: function () { $('#btn_back').click(function () { if (ppc.evaluation.is_entry) { ppc.evaluation.lesson_type = 0; } ppc.ajax.get_content('/entry/index/' + ppc.evaluation.lesson_type, {}, '#ajax_change'); }); $('#datepicker').datepicker({ defaultDate: new Date(global_var.current_date), onSelect: function (dateText, inst) { ppc.evaluation.selected_date = dateText; ppc.evaluation.ajax_context(); }, minDate: global_var.current_date }); $('#datepicker').datepicker('setDate', global_var.current_date); $('#datepicker').click(function (event) { ppc.analytics.tracking(this, event); }); $('#bk_center,#bk_lessontype').change(function () { if ($('#bk_lessontype').val() != undefined) ppc.evaluation.lesson_type = $('#bk_lessontype').val(); ppc.evaluation.ajax_context(); }); }, minit_booking: function () { if (!ppc.evaluation.selected_date) ppc.evaluation.selected_date = global_var.current_date; if (ppc.evaluation.center_id) $('#bk_center').val(ppc.evaluation.center_id); $('#btn_back').click(function () { if (ppc.evaluation.is_entry) { ppc.evaluation.lesson_type = 0; } ppc.ajax.get_content('/entry/index/' + ppc.evaluation.lesson_type, {}, '#ajax_change'); }); $('#datepicker').datepicker({ defaultDate: new Date(global_var.current_date), onSelect: function (dateText, inst) { ppc.evaluation.selected_date = dateText; }, minDate: global_var.current_date }); $('#datepicker').datepicker('setDate', ppc.evaluation.selected_date); $('#bk_center,#bk_lessontype').change(function () { if ($('#bk_lessontype').val() != undefined) ppc.evaluation.lesson_type = $('#bk_lessontype').val(); }); $('#btn_show_slots').click(function () { ppc.evaluation.ajax_context(); }); }, ajax_context: function () { var eval = ppc.evaluation; eval.selected_slots = []; var params = {}; params.center_id = eval.center_id = $('#bk_center').val(); if (ppc.evaluation.is_entry) { params.lesson_type = eval.lesson_type = $('#bk_lessontype').val(); } else { params.lesson_type = eval.lesson_type; } params.selected_date = eval.selected_date; params.timezone = new Date().getTimezoneOffset() / 60 * -1; params.email = ppc.evaluation.info.email; params.is_entry = ppc.evaluation.is_entry; params.handless = ppc.evaluation.info.handless; if (params.center_id && params.lesson_type && params.selected_date) { ppc.ajax.get_content('/entry/ajax_context', params, global_var.is_mobile ? '#ajax_change' : '#context', global_var.is_mobile ? ppc.evaluation.minit_context : ppc.evaluation.init_context); } }, majax_back_to_context: function () { var eval = ppc.evaluation; eval.selected_slots = []; var params = {}; params.center_id = eval.center_id; params.lesson_type = eval.lesson_type; params.selected_date = eval.selected_date; params.timezone = new Date().getTimezoneOffset() / 60 * -1; params.email = ppc.evaluation.info.email; params.is_entry = ppc.evaluation.is_entry; params.handless = ppc.evaluation.info.handless; if (params.center_id && params.lesson_type && params.selected_date) { ppc.ajax.get_content('/entry/ajax_context', params, '#ajax_change', ppc.evaluation.minit_context); } }, minit_context: function () { $('.time_check').each(function () { var i = 0; if ($(this).hasClass('disabled') === undefined) { ppc.evaluation.clickable[i++] = '#' + $(this).attr('id'); } }); $('#btn_booklesson').click(function () { if ($(this).hasClass('disabled')) return; ppc.evaluation.ajax_preview(); }); $('#btn_back_booking').click(function () { var params = $.parseJSON(JSON.stringify(ppc.evaluation.info)); params.real_lesson_type = ppc.evaluation.lesson_type; if (ppc.evaluation.is_entry) { params.lesson_type = ppc.evaluation.lesson_type = $('#bk_lessontype').val(); } else { params.lesson_type = ppc.evaluation.lesson_type; } ppc.ajax.get_content('/entry/booking', params, '#ajax_change', ppc.evaluation.minit_booking); }); $('.time-check').unbind('click'); $('.time_check').click(function () { if ($(this).hasClass('disabled')) return; if (!$(this).hasClass('btn-success') && ppc.evaluation.selected_slots.length >= ppc.evaluation.max_in_day) { //alert(max_in_day_msg); return; } ppc.evaluation.selected_slots = [] ppc.evaluation.avaible_coach = null; $(this).toggleClass('btn-success'); $('.btn-success').each(function () { var id = $(this).attr('id'); ppc.evaluation.selected_slots.push($('input#time_' + id).val()); ppc.evaluation.avaible_coach = $('input#oid_' + id).val(); }); if (ppc.evaluation.selected_slots.length < 1) { $('#btn_booklesson').addClass('disabled'); //$('#no_coach').html('please select time to book'); return; } else { $('#btn_booklesson').removeClass('disabled'); //'#no_coach').html('click button to book'); } }); }, init_context: function () { $("#format").buttonset(); $('#btn_booklesson').hide(); $('#format input[type="checkbox"]').each(function () { var i = 0; if ($(this).attr('disabled') === undefined) { ppc.evaluation.clickable[i] = '#' + $(this).attr('id'); i++ } }); $('#btn_booklesson').click(function (event) { ppc.evaluation.ajax_preview(); ppc.analytics.tracking(this, event); }); $('#btn_back').click(function (event) { if (ppc.evaluation.is_entry) { ppc.evaluation.lesson_type = 0; } ppc.ajax.get_content('/entry/index/' + ppc.evaluation.lesson_type, {}, '#ajax_change'); ppc.analytics.tracking(this, event); }); $('.time-check, .ui-button').unbind('click'); $('.time-check').unbind('change'); $('.ui-button').click(function () { if ($(this).hasClass('ui-button-disabled')) return; if (!$(this).hasClass('ui-state-active') && ppc.evaluation.selected_slots.length >= ppc.evaluation.max_in_day) { //alert(max_in_day_msg); return; } ppc.evaluation.selected_slots = [] ppc.evaluation.avaible_coach = null; $(this).toggleClass('ui-state-active'); $('label.ui-state-active').each(function () { var id = $(this).attr('for'); ppc.evaluation.selected_slots.push($('input#time_' + id).val()); ppc.evaluation.avaible_coach = $('input#oid_' + id).val(); }); if (ppc.evaluation.selected_slots.length < 1) { $('#btn_booklesson').hide(); $('#no_coach').html('please select time to book'); return; } else { $('#btn_booklesson').show(); $('#no_coach').html('click button to book'); } }); }, ajax_preview: function () { var params = {}; params.center_id = ppc.evaluation.center_id; params.lesson_type = ppc.evaluation.lesson_type; params.selected_date = ppc.evaluation.selected_date; params.selected_slots = ppc.evaluation.selected_slots; params.avaible_coach = ppc.evaluation.avaible_coach; params.timezone = new Date().getTimezoneOffset() / 60 * -1; if (params.selected_slots.length) { ppc.ajax.get_content('/entry/ajax_preview', params, global_var.is_mobile ? '#ajax_change' : '#context', ppc.evaluation.init_preview); } }, init_preview: function () { $('#return').click(function (event) { if (global_var.is_mobile) { ppc.evaluation.majax_back_to_context(); } else { ppc.evaluation.ajax_context(); } ppc.analytics.tracking(this, event); }); $('#book').click(function (event) { if (global_var.is_sample) { return; } ppc.evaluation.ajax_confirm(); ppc.analytics.tracking(this, event); }); ppc.evaluation.fill_info(); }, fill_info: function () { var info = ppc.evaluation.info; $('#name').text(info.name); $('#phonetic').text(info.phonetic_lastname + ' ' + info.phonetic_surname); $('#handless_view').text(info.handless_view); $('#phone').text(info.phone); $('#email').text(info.email); }, ajax_confirm: function () { var params = {}; params.center_id = ppc.evaluation.center_id; params.avaible_coach = ppc.evaluation.avaible_coach; params.selected_date = ppc.evaluation.selected_date; params.timezone = new Date().getTimezoneOffset() / 60 * -1; params.selected_slots = ppc.evaluation.selected_slots; params.lesson_type = ppc.evaluation.lesson_type; params.csrftoken = global_var.token_id; params.info = ppc.evaluation.info; if (params.selected_slots.length && params.center_id && params.lesson_type) { //ppc.ajax.get_content('/entry/ajax_confirm', params, '#ajax_change', ppc.evaluation.fill_info); if (params.lesson_type == 1000000042) var url = '/sd/complete'; else var url = '/eval/complete'; ppc.post_form.post(params, url); } }, ajax_info: function () { ppc.ajax.get_content('/entry/ajax_info', {}, '#context'); ppc.evaluation.init_info(); } }, //evaluation entry: { flow: {}, store: null, campaign: null, slot: null, date: null, csrftoken: null, current_date: null, last: { store: null, campaign: null, current_date: null, gift_code: null, gift_key: null, is_valid_gift: false, }, fwd: {}, is_default: '', campaign_selected: null, booking: { slot: null, date: null, store_id: 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, handedness: 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'); ppc.entry.csrftoken = global_var.token_id; ppc.entry.radio_checkbox_bigger(); if (ppc.entry.last.campaign == -1) { // $("#gift_radio_button").icheck("checked", true); $("#gift_form").css("display", "block"); $("#gift_code").val(ppc.library.getCookie("gift_code")); $("#gift_key").val(ppc.library.getCookie("gift_key")); $('input[name="campaign"]').each(function () { if ($(this).val() == -1) { $(this).attr('checked', true); $('input[name="campaign"]').iCheck('update'); ppc.entry.last.campaign = null; } }); ppc.entry.index.event.gift_check(); ppc.entry.index.event.campaign_change(); } else { $('input[name="campaign"]').each(function () { if ($(this).val() == ppc.entry.last.campaign) { $(this).attr('checked', true); $('input[name="campaign"]').iCheck('update'); ppc.entry.last.campaign = null; } }); ppc.entry.index.event.campaign_change(); } ppc.entry.check_mobile(); ppc.entry.index.event.init_date_picker(); ppc.entry.index.event.init_booking_type(); ppc.entry.index.event.hide_input_error(); ppc.entry.index.event.change_booking_type(); ppc.entry.index.event.ajax_store(); ppc.entry.index.event.after_valid(); ppc.entry.index.event.reset_search_result(); ppc.entry.booking_screen.init(); ppc.scroll('html', 0); $.address.unbind('change').value(''); setTimeout(function () { $.address.change(function (event) { if (/^\/info\/?$/.test($.address.value())) { var data = {}; data.date = ppc.entry.booking.date; data.slot = ppc.entry.booking.slot; data.store_id = ppc.entry.booking.store_id; data.campaign_id = ppc.entry.fwd.campaign_id; if (typeof gift_code_value !== "undefined" && data.campaign_id == "-1") { ppc.library.setCookie('gift_code', gift_code_value); } else { ppc.library.setCookie('gift_code', ''); } if (typeof gift_key_value !== "undefined" && data.campaign_id == "-1") { ppc.library.setCookie('gift_key', gift_key_value); } else { ppc.library.setCookie('gift_key', ''); } if (data.store_id) { ppc.ajax.get_content( global_var.base_url + 'eval2/ajax_info', data, '.step-area', ppc.entry.info_screen.init ); } else { location.href = '/eval'; $("#ajax-modal").hide(); } } else if (/^\/calendar\/?$/.test($.address.value())) { var data = ppc.entry.fwd; if (typeof gift_code_value !== "undefined" && data.campaign_id == "-1") { ppc.library.setCookie('gift_code', gift_code_value); } else { ppc.library.setCookie('gift_code', ''); } if (typeof gift_key_value !== "undefined" && data.campaign_id == "-1") { ppc.library.setCookie('gift_key', gift_key_value); } else { ppc.library.setCookie('gift_key', ''); } // call api load booking page let params = { booking_type: data["booking_type"], schedules: data["schedules"], }; ppc.ajax.get_content( global_var.base_url + 'booking/ajax_booking', params, '.step-area', ppc.entry.booking_screen.init ); } else { var data = ppc.entry.fwd; ppc.entry.last.campaign = ppc.entry.fwd.campaign_id; //move to index screen ppc.ajax.get_content(global_var.base_url + 'booking/index', data, '.step-area'); } }); }, 500); }, load_campaign: function () { var data = ppc.entry.index.get_current_val(); // get parameter from URL in case QR_code data.type = ppc.library.getParameter("type"); data.gift_code = ppc.library.getParameter("gift"); data.campaign_selected = ppc.entry.campaign_selected; data.gift_code = ppc.entry.last.gift_code; data.gift_key = ppc.entry.last.gift_key; ppc.ajax.get_content( global_var.base_url + 'eval2/ajax_campaign', data, '.campaign-area', ppc.entry.index.call_back.after_load_campaign, true ); }, load_campaign_default_store: function () { var data = ppc.entry.index.get_current_val(); // get parameter from URL in case QR_code data.type = ppc.library.getParameter("type"); data.gift_code = ppc.library.getParameter("gift"); data.campaign_selected = ppc.entry.campaign_selected; data.gift_code = ppc.entry.last.gift_code; data.gift_key = ppc.entry.last.gift_key; ppc.ajax.get_content( global_var.base_url + 'eval2/ajax_campaign', data, '.campaign-area', ppc.entry.index.call_back.after_load_campaign ); }, load_calendar: function (listing) { var data = ppc.entry.index.get_current_val(); ppc.entry.current_date = data.listing = listing; if (data.campaign_id == -1) { // campaign_id == -1: Gift campaign // Show gift form before load calendar $("#gift_form").css("display", "block"); if (listing !== undefined) { // listing !== undefined: User press next week button // Ajax request the calendar data["gift_expires"] = gift_expires; } else { // In case user select other campaign, but then select gift campaign // First, return gift's input field to default var type = ppc.library.getParameter("type"); var gift_code = ppc.library.getParameter("gift"); if (type === "search" && gift_code != null) { $("#gift_code").val(gift_code); } else { $("#gift_code").val(""); } $("#gift_key").val(""); // Second, hide eror message in case of need $("#gift_code_error").css("display", "none"); $("#gift_key_error").css("display", "none"); } } else { // clear cookies for gift ppc.library.setCookie('gift_code', ''); ppc.library.setCookie('gift_key', ''); // Other campaign: // Hide the gift form $("#gift_form").css("display", "none"); } }, load_calendar_default_store: function (listing) { var data = ppc.entry.index.get_current_val(); ppc.entry.current_date = data.listing = listing; if (data.campaign_id == -1) { // campaign_id == -1: Gift campaign // Show gift form before load calendar $("#gift_form").css("display", "block"); if (listing !== undefined) { // listing !== undefined: User press next week button // Ajax request the calendar data["gift_expires"] = gift_expires; ppc.ajax.get_content_default_store( global_var.base_url + 'eval2/ajax_calendar', data, '.calendar-area', ppc.entry.index.call_back.after_load_calendar ); } else { // In case user select other campaign, but then select gift campaign // First, return gift's input field to default var type = ppc.library.getParameter("type"); var gift_code = ppc.library.getParameter("gift"); if (type === "search" && gift_code != null) { $("#gift_code").val(gift_code); } else { $("#gift_code").val(""); } $("#gift_key").val(""); // Second, hide eror message in case of need $("#gift_code_error").css("display", "none"); $("#gift_key_error").css("display", "none"); // Then load the content ppc.ajax.get_content_default_store( global_var.base_url + 'eval2/ajax_calendar', [], '.calendar-area', ppc.entry.index.call_back.after_load_calendar ); } } else { // clear cookies for gift ppc.library.setCookie('gift_code', ''); ppc.library.setCookie('gift_key', ''); // Other campaign: // Hide the gift form $("#gift_form").css("display", "none"); // Load calendar immediately ppc.ajax.get_content_default_store( global_var.base_url + 'eval2/ajax_calendar', data, '.calendar-area', ppc.entry.index.call_back.after_load_calendar ); } }, get_current_val: function () { var data = {}; data.campaign_id = $("input[name=campaign]:checked").val(); data.handedness = $("input[name=handedness]:checked").val(); data.csrftoken = ppc.entry.csrftoken; data.booking_type = $("input[name=booking_type]:checked").val(); if (data.booking_type == 'area') { data.area_id = $("input[name=area]:checked").val(); data.time_frame = $("input[name=time_frame]:checked").map(function () { return this.value; }).get(); data.start_date = $("#start_date").val(); data.duration = $("#duration").val(); } else { data.store_id = $('#store').val(); } return data; }, event: { confirm_valid: function() { let data = ppc.entry.index.get_current_val(); if (!data.handedness) { return false; } if (!data.campaign_id) { return false; } // gift campaign if (data.campaign_id == -1) { let last_gift_code = ppc.entry.last.gift_code; let last_gift_key = ppc.entry.last.gift_key; let gift_code_value = $("#gift_code").val(); let gift_key_value = $("#gift_key").val(); if (!gift_code_value || !gift_key_value) { return false; } if (!last_gift_code || !last_gift_key || gift_code_value != last_gift_code || gift_key_value != last_gift_key) { return false; } if (!ppc.entry.last.is_valid_gift) { return false; } } // date picker type if (data.booking_type === 'area') { if (!data.area_id) { return false; } if (!data.time_frame || data.time_frame.length == 0) { return false; } if (!data.start_date || !data.duration) { return false; } } // list store type if (data.booking_type === 'store') { if (!data.store_id || data.store_id == 0) { return false; } } return true; }, store_change: function () { $('#store').unbind('change').change(function () { // get parameter in case QR_code var type = ppc.library.getParameter("type"); var gift_code = ppc.library.getParameter("gift"); if(ppc.entry.is_default == 1) { ppc.entry.campaign_selected = 0; ppc.entry.index.load_campaign_default_store(); ppc.entry.index.load_calendar_default_store(); } else if (type === "search" && gift_code != null) { ppc.entry.campaign_selected = -1; ppc.entry.last.gift_code = ppc.library.getParameter("gift"); ppc.entry.index.load_campaign(); } else { ppc.entry.campaign_selected = null; ppc.entry.index.load_campaign(); } // ppc.entry.index.load_calendar(); if (type === "search" && gift_code != null) { $("#gift_form").css("display", "block"); } }); }, campaign_change: function () { var gift_code_green_tick = $("#gift_code_tick"); var gift_key_green_tick = $("#gift_key_tick"); $('input[name=campaign]:radio').unbind('ifChecked').on('ifChecked', function () { gift_code_green_tick.hide(); gift_key_green_tick.hide(); ppc.entry.index.load_calendar(); }); }, handness_change: function () { //register handedness change event $('.handedness').unbind('ifChecked').on('ifChecked', function () { var gift_code_error_msg = $("#gift_code_error"); var gift_key_error_msg = $("#gift_key_error"); var gift_code_green_tick = $("#gift_code_tick"); var gift_key_green_tick = $("#gift_key_tick"); gift_code_green_tick.hide(); gift_key_green_tick.hide(); gift_key_error_msg.css("display", "none"); gift_code_error_msg.css("display", "none"); ppc.entry.index.load_calendar(); }); }, cal_btn_click: function () { $('.btn-current-month,.btn-next-month,.btn-previous-week,.btn-next-week').unbind('click'); $('.btn-current-month,.btn-next-month,.btn-previous-week,.btn-next-week').click(function () { if ($(this).hasClass('btn_disable')) { return; } var listing = $(this).data('listing'); ppc.entry.index.load_calendar(listing); }); }, cal_slot_click: function () { $('div.maru2').unbind('click').click(function () { //var data = ppc.entry.index.get_current_val(); //ppc.entry.fwd = ppc.entry.index.get_current_val(); ppc.entry.booking.date = ppc.entry.date = $(this).data('date'); ppc.entry.booking.slot = ppc.entry.slot = $(this).data('slot'); ppc.entry.booking.store_id = $(this).data('store'); ppc.entry.info.handedness = ppc.entry.fwd.handedness; ppc.entry.fwd.schedules = $("#schedules").val(); $.address.value('info'); //ppc.ajax.get_content( //global_var.base_url + 'eval2/ajax_info', //data, //'.step-area', //ppc.entry.info_screen.init //); }); }, cal_hover: function () { var cls = ''; $('div[class^="col_"]').hover( function () { cls = $(this).attr('class').split(' '); $('.' + cls[0]).each(function () { if ($(this).hasClass('schedule')) { $(this).addClass('sch-hover'); } else { $(this).addClass('schedule-day-hover'); } }); }, function () { cls = $(this).attr('class').split(' '); $('.' + cls[0]).each(function () { if ($(this).hasClass('schedule')) { $(this).removeClass('sch-hover'); } else { $(this).removeClass('schedule-day-hover'); } }); } ); }, cal_scroll: function () { var cal_gray_freeze = function () { if ($('.fix-table').length == 0) { return; } var pos = $('.fix-table').offset().top - $(window).scrollTop(); if (pos <= 0) { $('.grayout-calendar').addClass('cal-grayout-float'); $('.grayout-calendar .grayout-content').width($('.fix-head').width() - 6); } else { $('.grayout-calendar').removeClass('cal-grayout-float'); $('.grayout-calendar .grayout-content').width('auto'); } } $(window).scroll(cal_gray_freeze); $(window).resize(cal_gray_freeze); $(window).on({'touchmove': cal_gray_freeze}); }, gift_check: function () { gift_code_value = $("#gift_code").val(); gift_key_value = $("#gift_key").val(); ppc.entry.index.event.hide_gift_error(); ppc.entry.index.event.reset_gift(); ppc.entry.index.event.show_loading_ajax_store(); if ((gift_code_value.length === 16) && (gift_key_value.length === 6)) { $.post('/eval2/check_gift', { gift_code: gift_code_value, gift_key: gift_key_value }, function (data, status) { var gift_code_error_msg = $("#gift_code_error"); var gift_key_error_msg = $("#gift_key_error"); var gift_code_green_tick = $("#gift_code_tick"); var gift_key_green_tick = $("#gift_key_tick"); if (data.gift_code_msg === "") { gift_code_error_msg.css("display", "none"); } else { gift_code_error_msg.css("display", "block").text(data.gift_code_msg); } if (data.gift_key_msg === "") { gift_key_error_msg.css("display", "none"); } else { gift_key_error_msg.css("display", "block").text(data.gift_key_msg); } if (data.gift_code_msg === "" && data.gift_key_msg === "") { // In case user input gift code and gift key is correct. setTimeout(function () { gift_code_green_tick.show(); gift_key_green_tick.show(); ppc.ajax.hide_loading(); ppc.ajax.is_loading--; $("#ajax-modal").hide(); $('.search_store').removeAttr('disabled'); $('.search_store').removeClass("not_valid"); }, 6000); // var form_data = ppc.entry.index.get_current_val(); // gift_expires = data.gift_expires; // form_data["gift_expires"] = gift_expires; ppc.entry.last.gift_code = gift_code_value; ppc.entry.last.gift_key = gift_key_value; ppc.entry.last.gift_expires = data.gift_expires; ppc.entry.last.is_valid_gift = true; } else { gift_code_green_tick.hide(); gift_key_green_tick.hide(); ppc.entry.index.event.hide_loading_ajax_store(); } }); } else { var gift_code_error_msg = $("#gift_code_error"); var gift_key_error_msg = $("#gift_key_error"); var gift_code_green_tick = $("#gift_code_tick"); var gift_key_green_tick = $("#gift_key_tick"); // tell user about gift_code and card_key length if (gift_code_value.length !== 16) { gift_code_green_tick.hide(); gift_key_green_tick.hide(); gift_code_error_msg.css("display", "block").text("ギフトコードに数字とアルファベットを16桁入力してください。"); } if (gift_key_value.length !== 6) { gift_code_green_tick.hide(); gift_key_green_tick.hide(); gift_key_error_msg.css("display", "block").text("カードキーに数字とアルファベットを6桁入力してください。"); } ppc.entry.index.event.hide_loading_ajax_store(); } }, validate_gift_input: function (input_id) { var val = $(input_id).val(); if (val.match(/[^a-zA-Z0-9]/g)) { $(input_id).val(val.replace(/[^a-zA-Z0-9]/g, '')); } }, hide_input_error: function () { $('.error-msg').hide(); }, hide_gift_error: function () { $('.gift-error-message').hide(); $('.error-gift').hide(); $('.gift-green-tick').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'日'から", }); }, init_booking_type: function () { // define element let area_container = $('.show_area'); let store_container = $('.show_store'); // hide all element area_container.hide(); store_container.hide(); // get default booking_type let type = $('input[name="booking_type"]:checked').val(); if (type === 'area') { area_container.show(); } else { store_container.show(); } }, change_booking_type: function () { $('.booking_type').unbind('ifChecked').on('ifChecked', function () { let show_content = $(this).val() === 'area' ? '.show_area' : '.show_store'; let hide_content = $(this).val() === 'area' ? '.show_store' : '.show_area'; // show loading $("#ajax-modal").show(); // hide element $(hide_content).hide(); setTimeout(function () { // hide all error ppc.entry.index.event.hide_input_error(); // reset all value ppc.entry.index.event.reset_value(); ppc.entry.index.event.reset_input(); // hide calendar ppc.entry.index.event.hide_calendar(); // show element $(show_content).show(); // scroll to bottom ppc.scroll('#footer', 0); // hide loading $("#ajax-modal").hide(); }, 300); }); }, reset_value: function () { ppc.entry.fwd = {}; }, reset_input: function () { // get date now let now = new Date(); let year = now.getFullYear(); let month = (now.getMonth() + 1).toString().padStart(2, '0'); let date = now.getDate().toString().padStart(2, '0'); // reset input value $('input[name="area"]').iCheck('uncheck'); $('input[name="time_frame"]').iCheck('uncheck'); $('#date_picker').val(year + '年' + month + '月' + date + '日から'); $('#start_date').val(year + '-' + month + '-' + date); $('#duration').val('1'); $('#store').val('0'); $('#schedules').val(null); $('.matched_store').text('0'); }, reset_gift: function () { ppc.entry.last.gift_key = null; ppc.entry.last.gift_code = null; ppc.entry.last.gift_expires = null; ppc.entry.last.is_valid_gift = false; }, reset_search_result: function () { let iCheckElements = [ 'input[name="handedness"]', 'input[name="campaign"]', 'input[name="booking_type"]', 'input[name="area"]', 'input[name="time_frame"]', ]; let inputElements = [ '#gift_code', '#gift_key', '#date_picker', '#duration', '#store' ]; $(iCheckElements.join(',')).on('ifChanged', function (event) { ppc.entry.index.event.hide_search_result(); ppc.entry.index.event.after_valid(); $('#schedule-result').hide(); }); $(inputElements.join(',')).on('change', function (event) { ppc.entry.index.event.hide_search_result(); ppc.entry.index.event.after_valid(); $('#schedule-result').hide(); }); }, after_valid: function () { let valid = ppc.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 ppc.entry.index.event.show_loading_ajax_store(); // 2. validate form ppc.entry.index.event.hide_input_error(); ppc.entry.index.event.reset_value(); let data = ppc.entry.index.get_current_val(); let valid = ppc.entry.index.event.validate_ajax_store(data); // 3. validate success if (valid) { // store last value to fwd ppc.entry.fwd = data; // send gift expires to cal slot data.gift_expires = ppc.entry.last.gift_expires; // call api get slot ppc.ajax.get_content_default_store( '/booking/ajax_store', data, '#schedule-result', ppc.entry.index.event.hide_loading_ajax_store(), true ); } else { // hide loading ppc.entry.index.event.hide_loading_ajax_store(); } }); }, validate_ajax_store: function (data) { if (!data.handedness) { $('.error-handedness').show(); ppc.scroll('.error-handedness', 185); return false; } if (!data.campaign_id) { $('.error-plan').show(); ppc.scroll('.error-plan', 270); return false; } // gift campaign if (data.campaign_id == -1) { let last_gift_code = ppc.entry.last.gift_code; let last_gift_key = ppc.entry.last.gift_key; let gift_code_value = $("#gift_code").val(); let gift_key_value = $("#gift_key").val(); if (!gift_code_value || !gift_key_value) { $('.error-gift').text('★ギフトを入力してください。'); $('.error-gift').show(); ppc.scroll('.error-gift', 250); return false; } if (!last_gift_code || !last_gift_key || gift_code_value != last_gift_code || gift_key_value != last_gift_key) { $('.error-gift').text('★ギフトを確認してください。'); $('.error-gift').show(); ppc.scroll('.error-gift', 250); return false; } if (!ppc.entry.last.is_valid_gift) { $('.error-gift').text('★ギフトは無効です。'); $('.error-gift').show(); ppc.scroll('.error-gift', 250); return false; } } // date picker type if (data.booking_type === 'area') { if (!data.area_id) { $('.error-area').show(); return false; } if (!data.time_frame || data.time_frame.length == 0) { $('.error-time-frame').show(); return false; } if (!data.start_date || !data.duration) { $('.error-start-date').show(); return false; } } // list store type if (data.booking_type === 'store') { if (!data.store_id || data.store_id == 0) { $('.error-store').show(); return false; } } return true; }, show_loading_ajax_store: function () { ppc.ajax.show_loading(); ppc.ajax.is_loading++; $("#ajax-modal").show(); }, hide_loading_ajax_store: function () { setTimeout(function () { ppc.ajax.hide_loading(); ppc.ajax.is_loading--; if (ppc.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"); }, hide_calendar: function () { $("#schedule-result").hide(); }, show_calendar: function () { $("#schedule-result").show(); }, cal_click_show_slot: function () { // click to show slot $('.show_booking').click(function () { ppc.entry.index.event.show_slot(); }); }, cal_auto_show_slot: function () { // if booking type is store => trigger show slot function if (ppc.entry.fwd.booking_type === 'store') { ppc.entry.index.event.show_slot(); } }, show_slot: function () { // 1. get slot data let schedules = $("#schedules").val(); // 2. check slot data empty if (!schedules) { alert('空き枠はありません。'); return false; } // 3. go to booking page ppc.entry.fwd.schedules = schedules; ppc.entry.booking.store_id = null; $.address.value('calendar'); }, freeze_footer: function () { $("#footer").addClass('freeze-footer'); }, flex_footer: function () { $("#footer").removeClass('freeze-footer'); }, }, call_back: { after_load_campaign: function () { ppc.entry.radio_checkbox_bigger(); //register event campaign change ppc.entry.index.event.campaign_change(); //pick last campaign if (ppc.entry.last.campaign) { $('input[name="campaign"]').each(function () { if ($(this).val() == ppc.entry.last.campaign) { $(this).attr('checked', true); $('input[name="campaign"]').iCheck('update'); ppc.entry.index.load_calendar(ppc.entry.last.current_date); ppc.entry.last.campaign = null; } }); } //register handness ppc.entry.index.event.handness_change(); //register calendar button because ajax campaign contain calendar ppc.entry.index.call_back.after_load_calendar(); }, after_load_calendar: function () { ppc.entry.index.event.cal_btn_click(); ppc.entry.index.event.cal_hover(); ppc.entry.index.event.cal_slot_click(); ppc.entry.freeze_head(); ppc.entry.index.event.cal_scroll(); } }, }, info_screen: { init: function () { ppc.entry.info_screen.fill_info(); ppc.entry.info_screen.back_button(); ppc.entry.info_screen.book_button(); ppc.entry.radio_checkbox_bigger(); ppc.entry.info_screen.confirm_checkbox(); ppc.entry.info_screen.browser_unload(); ppc.entry.info_screen.browser_back(); ppc.entry.info_screen.check_realtime.phone(); ppc.entry.info_screen.check_realtime.email(); ppc.scroll('body', 0); ppc.entry.info_screen.place_holder(); $("#birth").datepicker({ dateFormat: 'yy-mm-dd', changeYear: true, yearRange: "-100:+0" }); }, place_holder: function () { $('input, textarea').placeholder(); }, fill_info: function () { if (ppc.entry.info.lastname) { $('#lastname').val(ppc.entry.info.lastname); } if (ppc.entry.info.surname) { $('#surname').val(ppc.entry.info.surname); } if (ppc.entry.info.phonetic_lastname) { $('#phonetic_lastname').val(ppc.entry.info.phonetic_lastname); } if (ppc.entry.info.phonetic_surname) { $('#phonetic_surname').val(ppc.entry.info.phonetic_surname); } if (ppc.entry.info.phone) { $('#phone').val(ppc.entry.info.phone); } if (ppc.entry.info.email) { $('#email').val(ppc.entry.info.email); } if (undefined !== ppc.entry.info.gender) { if (ppc.entry.info.gender == 0) $('#female').iCheck('check'); if (ppc.entry.info.gender == 1) $('#male').iCheck('check'); } if (ppc.entry.info.birth) { $('#birth').val(ppc.entry.info.birth); } if (ppc.entry.info.address) { $('#address').val(ppc.entry.info.address); } }, back_button: function () { $('#link-back').click(function () { //get info ppc.entry.info_screen.get_info(); //assign last value ppc.entry.last.store = ppc.entry.store; ppc.entry.last.campaign = ppc.entry.campaign; ppc.entry.last.current_date = ppc.entry.current_date; //move to index screen //ppc.ajax.get_content(global_var.base_url + 'eval2', {}, '.step-area'/*, ppc.entry.init*/); $(window).unbind('beforeunload'); history.go(-1); }); }, book_button: function () { $('#btn-book').click(function () { ppc.entry.info_screen.get_info(); var validate = ppc.entry.info_screen.validate(); var data = { info: ppc.entry.info, store_id: ppc.entry.booking.store_id, campaign_id: ppc.entry.fwd.campaign_id, slot: ppc.entry.booking.slot, date: ppc.entry.booking.date, csrftoken: ppc.entry.fwd.csrftoken, gift_code: ppc.library.getCookie('gift_code'), gift_key: ppc.library.getCookie('gift_key') }; data.info.name = data.info.lastname + ' ' + data.info.surname; data.info.phonetic = data.info.phonetic_lastname + ' ' + data.info.phonetic_surname; if (validate) { ppc.library.setCookie("step3", true); $(window).unbind('beforeunload'); ppc.post_form.post(data, global_var.base_url + 'eval/complete'); } }); }, confirm_checkbox: function () { $('#confirm').on('ifChecked', function () { $('#btn-book').removeClass('deactive'); $('#error_confirm').hide(); }); $('#confirm').on('ifUnchecked', function () { $('#btn-book').addClass('deactive'); }); }, get_info: function () { //save current info ppc.entry.info.lastname = $('#lastname').val(); ppc.entry.info.surname = $('#surname').val(); ppc.entry.info.phonetic_lastname = $('#phonetic_lastname').val(); ppc.entry.info.phonetic_surname = $('#phonetic_surname').val(); ppc.entry.info.phone = $('#phone').val(); ppc.entry.info.email = $('#email').val(); ppc.entry.info.address = $('#address').val(); ppc.entry.info.birth = $('#birth').val(); ppc.entry.info.gender = $('input:radio[name="gender"]:checked').val(); }, 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*/ }); } }, browser_unload: function () { $(window).bind('beforeunload', function (e) { return 'まだ予約が完了されていません。このページを離れると、入力したデータが削除されます。'; }); }, browser_back: function () { $.address.value('info'); }, validate: function () { $('#error_email_exists').hide(); $('#error_birth').hide(); $('#error_name_too_long').hide(); $('#error_phonetic_name').hide(); $('#error_name').hide(); $('.art_r').hide(); // 同意する check accept before validate if (!$('#confirm').is(':checked')) { $('#error_confirm').show(); return false; } 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) { ppc.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) ppc.evaluation.validate.scroll('#phonetic_lastname'); error = true; } else if (!/^([\u3040-\u309F|a-zA-Z|\s]){1,11}$/.test($.trim($('#phonetic_lastname').val()))) { $('#error_name_too_long').show(); if (!error) { ppc.scroll('#phonetic_lastname', 100); } error = true; } //check phone number if (!(/^0[\d]{10}$/.test($('#phone').val()))) { $('#error_phone').show(); if (!error) { ppc.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) { ppc.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) { ppc.scroll('#birth', 100); } error = true; } // check address input if ($('#address').val() == 0) { $('#error_address').show(); if (!error) { ppc.scroll('#address', 100); } error = true; } // check email format if (!$("input[name='gender']:checked").val()) { $('#error_gender').show(); if (!error) { ppc.scroll('#gender', 100); } error = true; } if (!error) { error = !ppc.entry.info_screen.validate_info() } return !error; }, validate_info: function () { var data = { info: ppc.entry.info, store_id: ppc.entry.booking.store_id, campaign_id: ppc.entry.fwd.campaign_id, slot: ppc.entry.booking.slot, date: ppc.entry.booking.date, csrftoken: ppc.entry.fwd.csrftoken, gift_code: ppc.library.getCookie('gift_code'), gift_key: ppc.library.getCookie('gift_key') }; data.info.name = data.info.lastname + ' ' + data.info.surname; data.info.phonetic = data.info.phonetic_lastname + ' ' + data.info.phonetic_surname; var rs = ppc.ajax.get_json(global_var.base_url + 'eval2/check_info', data); if (rs['err'] == 'E_EMAIL_EXIST' || rs['err'] == 'E_ONLY_BOOK_SWING_EVALUATION') { $('#error_email_exists').show(); ppc.scroll('#email', 100); return false; } else if (rs['err'] == 'E_INVALID_BIRTH') { $('#error_birth').show(); ppc.scroll('#birth', 100); return false; } else if (rs['err'] == 'E_INVALID_KANJI') { $('#error_name').show(); ppc.scroll('#lastname', 100); return false; } else if (rs['err'] == 'E_NAME_TOO_LONG') { $('#error_name_too_long').show(); ppc.scroll('#phonetic_lastname', 100); return false; } else if (rs['err'] == 'E_INVALID_HIRA') { $('#error_phonetic_name').show(); ppc.scroll('#phonetic_lastname', 100); return false; } else if (rs['err'] == 'E_INVALID_EMAIL') { $('#error_email').show(); ppc.scroll('#email', 100); return false; } else if (rs['err'] == 'E_INVALID_GENDER') { $('#error_gender').show(); ppc.scroll('#gender', 100); return false; } else if (rs['err'] == 'E_INVALID_ADDRESS') { $('#error_address').show(); ppc.scroll('#address', 100); return false; } else if (rs['err']) { $('#error_message').html(rs['msg']).show(); ppc.scroll('.table21', 100); return false; } else { return true; } } }, booking_screen: { init: function () { ppc.entry.booking_screen.init_collapse(); ppc.entry.booking_screen.show_collapse(); ppc.entry.booking_screen.show_full_slot(); ppc.entry.booking_screen.cal_hover(); ppc.entry.index.event.cal_slot_click(); }, back_button: function () { $('#link-back').click(function () { $(window).unbind('beforeunload'); history.go(-1); }); }, 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'); }); }, show_collapse: function () { if (ppc.entry.fwd.booking_type == 'store') { $('.store-header').hide(); $('.store-slot').removeClass('collapse').addClass('collapsed'); } }, browser_unload: function () { $(window).bind('beforeunload', function (e) { return 'まだ予約が完了されていません。このページを離れると、入力したデータが削除されます。'; }); }, browser_back: function () { $.address.value('calendar'); }, show_full_slot: function () { $("#show-slot").bind('click').click(function () { // 1. show loading $("#ajax-modal").show(); // 2. get table element let table = $('.flow-table').first(); let f_col = $('.f-col'); let show_class = "show-a-part"; let show_btn = $("#show-slot"); let mw_class = "mw-100"; // 3. process & hide loading setTimeout(function () { if (table.hasClass(show_class)) { // not show all table.removeClass(show_class); f_col.removeClass(mw_class); show_btn.text("表示を減らす"); } else { // show all table.addClass(show_class); f_col.addClass(mw_class); show_btn.text("全て表示"); } // scroll to bottom ppc.scroll('#footer', -30); // hide loading $("#ajax-modal").hide(); }, 300); }); }, cal_hover: function () { $('div.maru2').hover( function () { $(this).addClass('slot-hover'); }, function () { $(this).removeClass('slot-hover'); } ); } }, freeze_head: function () { var old_head = $('.fix-table'); var new_head = $('.fix-head'); if (old_head.length == 0) { return; } new_head.html(''); old_head.find('tr.head').clone().appendTo(new_head); new_head.hide(); new_head.width(old_head.width()); var fire = function () { var pos = old_head.offset().top - $(window).scrollTop(); if (pos <= 0) { new_head.show(); } else { new_head.hide(); } new_head.width(old_head.width()); } $(window).scroll(fire); $(window).resize(fire); $(window).on({'touchmove': fire}); }, backtotop: function () { $(window).scroll(function () { if ($(this).scrollTop() != 0) { $('#gototop').fadeIn(); } else { $('#gototop').fadeOut(); } }); /*$('#gototop').click(function(){ $('body,html').animate({scrollTop:0},800); });*/ }, 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 { ppc.entry.backtotop(); } }, }, // login object login: { onload: function () { $('a#aCanNotLogin').click(function (e) { ppc.modal.open({content: "

ユーザー名及びパスワードが正しいかをご確認ください。また、パスワードでは大文字・小文字を区別されるため「Caps Lock」が有効になっていないかもご確認ください。もしユーザー名、パスワードを忘れてしまった、または、ログインができない状態が続くようでしたら、お手数ですが、レッスンを受講されているスタジオまでお問い合わせください。

"}); e.preventDefault(); }); if ($("#bordernone01_old").length) { var isAppleMobile = ppc.isAppleMobile(); //form login only allow numeric $('#bordernone01_old, #bordernone02_old, #bordernone03_old').bind('keypress', function (e) { ppc.login.keep_number($(this).val(), $(this)); return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) ? false : true; }); if (!isAppleMobile) { //change focus when max length $("#bordernone01_old").keyup(function (e) { ppc.login.keep_number($(this).val(), $(this)); if (ppc.login.keyup_numeric(e)) { var maxLength = $(this).attr('maxlength'); if ($(this).val().length == maxLength) { $('#bordernone02_old').focus(); } } }); $("#bordernone02_old").keyup(function (e) { ppc.login.keep_number($(this).val(), $(this)); if (ppc.login.keyup_numeric(e)) { var maxLength = $(this).attr('maxlength'); if ($(this).val().length == maxLength) { $("#bordernone03_old").focus(); } } }); } $("#bordernone03_old").keyup(function (e) { ppc.login.keep_number($(this).val(), $(this)); }); $("#bordernone01_old, #bordernone02_old, #bordernone03_old").bind('paste', function (event) { var pastable = $(this); setTimeout(function () { if (!$.isNumeric(pastable.val())) { pastable.val(''); } }, 100); }); if ($("#bordernone01_old").val() == '' && $("#bordernone02_old").val() == '' && $("#bordernone03_old").val() == '') { $("#bordernone01_old").focus(); } else { $("#bordernone04_old").focus(); } if ($("#bordernone01_old").val() == '') { $("#bordernone01_old").focus(); } else { $("#bordernone02_old").focus(); } } }, keep_number: function (str_value, obj) { var value = str_value.replace(/[^\d]/gi, ''); obj.val(value); }, keyup_numeric: function (e) { if (!(e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57) && (e.which < 96 || e.which > 105))) { return true; } else { return (/[0123456789]/.test(String.fromCharCode(e.which))); } }, attempt: function (t) { if (typeof attempt === 'undefined') { var attempt = $.now() + t; } $('#loginsubmit').click(function () { var now = $.now(); if ((now - attempt) < 0) { return false; } }); } }, // pwd object pwd: { info: { name: null, email: null, old_pwd: null, new_pwd: null, pwd_again: null, captcha: null }, step1: { init: function () { ppc.pwd.action.captcha_refresh(); $('#email').keyup(function () { if (!ppc.pwd.chk.is_email($.trim($(this).val()))) { $('#error_email').show(); return false; } else { $('#error_email').hide(); } }); $('#name').keyup(function () { if (!ppc.pwd.chk.is_japanese($.trim($(this).val()))) { $('#error_name').show(); return false; } else { $('#error_name').hide(); } }); $('#btn-button-step1').click(function () { ppc.pwd.info.email = $.trim($('#email').val()); ppc.pwd.info.name = $.trim($('#name').val()); ppc.pwd.info.captcha = $.trim($('#catpcha_code').val()); if (!ppc.pwd.chk.is_email(ppc.pwd.info.email)) { $('#error_email').show(); return false; } else { $('#error_email').hide(); } if (!ppc.pwd.chk.is_japanese(ppc.pwd.info.name)) { $('#error_name').show(); return false; } else { $('#error_name').hide(); } if (!ppc.pwd.chk.is_alphanum(ppc.pwd.info.captcha)) { $('#error_captcha').show(); return false; } else { $('#error_captcha').hide(); } var data = { 'email': ppc.pwd.info.email, 'name': ppc.pwd.info.name, 'captcha': ppc.pwd.info.captcha } $.ajax({ type: "POST", url: '/pwd/step1', data: data, dataType: "json", async: false, success: function (ret) { var response = $.parseJSON(JSON.stringify(ret)); if (response.error !== undefined) { var error = response.error; if (error.key == 'PWD_STEP1_ERROR') { $('.error_step1').show(); } else if (error.key == 'PWD_CAPTCHA_ERROR') { $('#error_captcha').show(); } $('#captcha_image').attr('src', error.img); return false; } else { var success = response.success; location.href = '/pwd/step2/' + success.key; } } }); }); } }, step3: { init: function (k) { var key = k; $('#email').keyup(function () { if (!ppc.pwd.chk.is_email($.trim($(this).val()))) { $('.error_step3').hide(); $('#error_email').show(); return false; } else { $('#error_email').hide(); } }); $('#btn-button-step3').click(function () { ppc.pwd.info.email = $.trim($('#email').val()); if (!ppc.pwd.chk.is_email(ppc.pwd.info.email)) { $('.error_step3').hide(); $('#error_email').show(); return false; } else { $('#error_email').hide(); } var data = { 'email': ppc.pwd.info.email } $.ajax({ type: "POST", url: '/pwd/step3/' + key, data: data, dataType: "json", async: false, success: function (ret) { var response = $.parseJSON(JSON.stringify(ret)); if (response.error !== undefined) { var error = response.error; if (error.key == 'PWD_STEP3_ERROR') { $('.error_step3').show(); } return false; } else { var success = response.success; location.href = '/pwd/step4/' + success.key; } } }); }); } }, step4: { init: function (k) { var key = k; $('#new_pwd').keyup(function () { ppc.pwd.step4.chk.newpass($(this)); }); $('#pwd_again').keyup(function () { ppc.pwd.step4.chk.passagain($(this)); }); ppc.pwd.action.captcha_refresh(); $('#btn-button-step4').click(function () { if (!ppc.pwd.step4.chk.newpass($('#new_pwd'))) { return false } ; if (!ppc.pwd.step4.chk.passagain($('#pwd_again'))) { return false } ; ppc.pwd.info.captcha = $.trim($('#catpcha_code').val()); if (!ppc.pwd.chk.is_alphanum(ppc.pwd.info.captcha)) { $('#error_captcha').show(); return false; } else { $('#error_captcha').hide(); } var data = { 'new_pwd': ppc.pwd.info.new_pwd, 'pwd_again': ppc.pwd.info.pwd_again, 'captcha': ppc.pwd.info.captcha } $.ajax({ type: "POST", url: '/pwd/step4/' + key, data: data, dataType: "json", async: false, success: function (ret) { var response = $.parseJSON(JSON.stringify(ret)); if (response.error !== undefined) { var error = response.error; if (error.key == 'PWD_CAPTCHA_ERROR') { $('#error_captcha').show(); } $('#captcha_image').attr('src', error.img); return false; } else { location.href = '/pwd/step5'; } } }); }); }, chk: { newpass: function (obj) { ppc.pwd.info.new_pwd = $.trim(obj.val()); // when emtpy show error2 if (!ppc.pwd.info.new_pwd) { $('#error_new_pwd1').hide(); $('#error_new_pwd2').show(); return false; } else { $('#error_new_pwd2').hide(); } if (!ppc.pwd.chk.is_password(ppc.pwd.info.new_pwd)) { $('#error_new_pwd2').hide(); $('#error_new_pwd1').show(); return false; } else { $('#error_new_pwd1').hide(); } return true; }, passagain: function (obj) { ppc.pwd.info.new_pwd = $.trim($('#new_pwd').val()); ppc.pwd.info.pwd_again = $.trim(obj.val()); // when emtpy show error3 if (!ppc.pwd.info.pwd_again) { $('#error_pwd_again1').hide(); $('#error_pwd_again2').hide(); $('#error_pwd_again3').show(); return false; } else { $('#error_pwd_again3').hide(); } if (!ppc.pwd.chk.is_password(ppc.pwd.info.pwd_again)) { $('#error_pwd_again2').hide(); $('#error_pwd_again3').hide(); $('#error_pwd_again1').show(); return false; } else { $('#error_pwd_again1').hide(); } // pass not match - cần thay hiển thị message tương ứng if (ppc.pwd.info.new_pwd != ppc.pwd.info.pwd_again) { $('#error_pwd_again1').hide(); $('#error_pwd_again3').hide(); $('#error_pwd_again2').show(); return false; } else { $('#error_pwd_again2').hide(); } return true; } } }, change: { view_html: null, success_html: null, error_html: null, click_count: 0, init: function () { var content = $('#change-pwd-content').html(); $('#changepw, #password-change').click(function (e) { $('#change-pwd-content').html(''); ppc.modal.open({content: content}); e.preventDefault(); ppc.pwd.change.action(); }); $('#modal-close').click(function (e) { $('#change-pwd-content').html(content); }); ppc.pwd.change.view_html = $('#change-pwd').html(); ppc.pwd.change.success_html = $('#change-pwd-success').html(); ppc.pwd.change.error_html = $('#change-pwd-error').html(); $('#change-pwd-success').html(''); $('#change-pwd-error').html(''); ppc.pwd.change.action(); }, first: function () { $('a[href="#change-pwd"]').click(); $('#changepw').click(); }, action: function () { $('#old_password').keyup(function () { return ppc.pwd.change.chk.oldpass($(this)); }); $('#new_password_0').keyup(function () { return ppc.pwd.change.chk.newpass($(this)); }); $('#new_password_1').keyup(function () { return ppc.pwd.change.chk.passagain($(this)); }); $('#btn-change-pwd').click(function () { if (!ppc.pwd.change.chk.oldpass($('#old_password'))) { ppc.pwd.change.chk.threetimes(); return false; } ; if (!ppc.pwd.change.chk.newpass($('#new_password_0'))) { ppc.pwd.change.chk.threetimes(); return false; } ; if (!ppc.pwd.change.chk.passagain($('#new_password_1'))) { ppc.pwd.change.chk.threetimes(); return false; } ; var data = { 'old_pwd': ppc.pwd.info.old_pwd, 'new_pwd': ppc.pwd.info.new_pwd, 'pwd_again': ppc.pwd.info.pwd_again } // post ajax $.ajax({ type: "POST", url: '/pwd/change', data: data, dataType: "json", async: false, success: function (ret) { var response = $.parseJSON(JSON.stringify(ret)); if (response.error !== undefined) { var error = response.error; if (error.key == 'UNAUTHORIZED') { //show error $('#error_unauthorized').show(); //redirect to login page setInterval(function () { window.location = '/login'; }, 2000); } else if (error.key == 'PWD_PASSWORD_WRONG') { ppc.pwd.change.chk.threetimes(); $('#error_pwd_wrong').show(); } else if (error.key == 'PWD_PASSWORD_ERROR') { ppc.pwd.change.chk.threetimes(); $('#error_pwd_again2').show(); } return false; } else { ppc.pwd.change.click_count = 0; if (global_var.is_mobile) { $('#change-pwd').html(ppc.pwd.change.success_html); $('button.close').click(function () { $('#change-pwd').html(ppc.pwd.change.view_html); $('#change-pwd').hide(); $('.modal-backdrop').hide(); ppc.pwd.change.action(); }); $('.modal-backdrop,#btn-change-pwd-close').click(function () { $('button.close').click(); }); } else { $('#modal-content').html(ppc.pwd.change.success_html); $('#btn-change-pwd-close').click(function () { $('#modal-close').click(); }); } } } }); }); }, chk: { oldpass: function (obj) { $('#error_pwd_wrong').hide(); ppc.pwd.info.old_pwd = $.trim(obj.val()); if (!ppc.pwd.info.old_pwd) { $('#error_old_pwd').show(); $('#error_pwd_wrong').hide(); return false; } else { $('#error_old_pwd').hide(); } return true; }, newpass: function (obj) { $('#error_pwd_again1').hide(); $('#error_pwd_again2').hide(); $('#error_pwd_again3').hide(); ppc.pwd.info.new_pwd = $.trim(obj.val()); // when emtpy show error2 if (!ppc.pwd.info.new_pwd) { $('#error_new_pwd1').hide(); $('#error_new_pwd2').show(); return false; } else { $('#error_new_pwd2').hide(); } if (!ppc.pwd.chk.is_password(ppc.pwd.info.new_pwd)) { $('#error_new_pwd2').hide(); $('#error_new_pwd1').show(); return false; } else { $('#error_new_pwd1').hide(); } return true; }, passagain: function (obj) { ppc.pwd.info.new_pwd = $.trim($('#new_password_0').val()); ppc.pwd.info.pwd_again = $.trim(obj.val()); // when emtpy show error3 if (!ppc.pwd.info.pwd_again) { $('#error_pwd_again1').hide(); $('#error_pwd_again2').hide(); $('#error_pwd_again3').show(); return false; } else { $('#error_pwd_again3').hide(); } if (!ppc.pwd.chk.is_password(ppc.pwd.info.pwd_again)) { $('#error_pwd_again2').hide(); $('#error_pwd_again3').hide(); $('#error_pwd_again1').show(); return false; } else { $('#error_pwd_again1').hide(); } // pass not match - cần thay hiển thị message tương ứng if (ppc.pwd.info.new_pwd != ppc.pwd.info.pwd_again) { $('#error_pwd_again1').hide(); $('#error_pwd_again3').hide(); $('#error_pwd_again2').show(); return false; } else { $('#error_pwd_again2').hide(); } return true; }, threetimes: function () {/*check click button 3times*/ if (ppc.pwd.change.click_count < 2) { ppc.pwd.change.click_count++; } else { // show popup notice error ppc.pwd.change.click_count = 0; if (global_var.is_mobile) { $('#change-pwd').html(ppc.pwd.change.error_html); $('button.close').click(function () { $('#change-pwd').html(ppc.pwd.change.view_html); $('#change-pwd').hide(); $('.modal-backdrop').hide(); ppc.pwd.change.action(); }); $('.modal-backdrop,#btn-change-error-close').click(function () { $('button.close').click(); }); } else { $('#modal-content').html(ppc.pwd.change.error_html); $('#btn-change-error-close').click(function () { $('#modal-close').click(); }); } } } } }, action: { captcha_refresh: function () { $('#captcha-refresh').click(function () { $.ajax({ type: "POST", url: '/pwd/refresh_captcha', data: {}, dataType: "json", async: false, success: function (ret) { var response = $.parseJSON(JSON.stringify(ret)); $('#captcha_image').attr('src', response.captcha.img); return true; } }); }); ppc.pwd.action.captcha_help(); }, captcha_help: function () { $('#captcha_help').click(function (e) { var content = $('#captcha_hint').html(); ppc.modal.open({content: content}); e.preventDefault(); }); } }, chk: { is_email: function (e) { 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(e))) { return false; } else { return true; } }, is_japanese: function (c) { var regex = /[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g; if (regex.test(c)) { return true; } else { return false; } }, is_alphanum: function (s) { var regex = /^[a-z0-9]+$/i; if (regex.test(s)) { return true; } else { return false; } }, is_password: function (s) { // var regex = /^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{6,}$/g; var regex = /^(?=.*?[A-z])(?=.*?[0-9]).{6,}$/; if (regex.test(s)) { return true; } else { return false; } } } }, //help object help: { onload: function () { //form login only allow numeric $('.hcatlevel1').click(function (e) { var this_obj = $(this); if (this_obj.next().is(':hidden')) { $('.ulSubCat').hide('fast'); this_obj.next().show('fast'); } return false; }); }, init: function () { $('a[class^="help0"]').click(function () { if (!$('#nav05 a').hasClass('selected')) { $('#navigation a').each(function () { if ($(this).hasClass('selected')) { $(this).toggleClass('selected'); } $('#nav05 a').toggleClass('selected'); }); } // neu class dang chon la help thi k lam // remove navigation selected var wclick = $(this).attr('class'); var action = $(this).attr('class'); if (wclick == 'help02') { action = 'help021'; } else if (wclick == 'help091') { action = 'help09'; } var params = {'action': action}; ppc.ajax.get_content('/help/ajax_help', params, global_var.is_mobile ? '#ajax_change' : '#ajax_change', (wclick == 'help091') ? ppc.scroll('#height') : ''); }); $('a[class^="help1"]').click(function () { if (!$('#nav05 a').hasClass('selected')) { $('#navigation a').each(function () { if ($(this).hasClass('selected')) { $(this).toggleClass('selected'); } $('#nav05 a').toggleClass('selected'); }); } // neu class dang chon la help thi k lam // remove navigation selected var wclick = $(this).attr('class'); var action = $(this).attr('class'); var params = {'action': action}; ppc.ajax.get_content('/help/ajax_help', params, global_var.is_mobile ? '#ajax_change' : '#ajax_change', (wclick == 'help091') ? ppc.scroll('#height') : ''); }); $('a[class^="faq0"]').click(function () { if (!$('#nav05 a').hasClass('selected')) { $('#navigation a').each(function () { if ($(this).hasClass('selected')) { $(this).toggleClass('selected'); } $('#nav05 a').toggleClass('selected'); }); } // neu class dang chon la help thi k lam // remove navigation selected var wclick = $(this).attr('class'); var action = $(this).attr('class'); var params = {'action': action}; ppc.ajax.get_content('/help/ajax_help', params, global_var.is_mobile ? '#ajax_change' : '#ajax_change', (wclick == 'help091') ? ppc.scroll('#height') : ''); }); } }, //ajax object ajax: { is_loading:0, show_loading: function () { ppc.ajax.fakeFrame = $(''); $('body').append(ppc.ajax.fakeFrame); }, hide_loading: function () { ppc.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 () { //if (window.loading) ppc.ajax.show_loading(); ppc.ajax.is_loading++; $("#ajax-modal").show(); }, success: function (output) { //if (window.endload) //endload(); 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) { } ppc.ajax.is_loading--; if (!error) { $(contain).html(output); if (typeof call_back == 'function') call_back.call(); } ppc.ajax.hide_loading(); }, complete: function () { if (ppc.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 () { //if (window.loading) ppc.ajax.show_loading(); ppc.ajax.is_loading++; if (ppc.ajax.is_loading == 1) { $("#ajax-modal").show(); } }, success: function (output) { //if (window.endload) //endload(); 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) { } ppc.ajax.is_loading--; if (!error) { $(contain).html(output); if (typeof call_back == 'function') call_back.call(); } ppc.ajax.hide_loading(); }, complete: function () { if (ppc.ajax.is_loading < 1) { $("#ajax-modal").hide() } // show calendar ppc.entry.index.event.show_calendar(); // init calendar ppc.entry.booking_screen.init(); ppc.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 () { //if (window.loading) ppc.ajax.show_loading(); ppc.ajax.is_loading++; $("#ajax-modal").show(); }, success: function (output) { try { ppc.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); } ppc.ajax.hide_loading(); }, complete: function () { if (ppc.ajax.is_loading < 1) { $("#ajax-modal").hide() } }, error: function (error) { ppc.ajax.hide_loading(); alert('ページ遷移でエラーが発生しました。'); //if (window.endload) //endload(); } }); return result; } }, mobile_home: { onload: function () { ppc.media.init('#player'); ppc.lesson.register_playlist(); $('.Nav2 a').click(function () { $('.Nav2 a').removeClass('active'); $(this).addClass('active'); }); if ($('.tab-swing').length) $('.tab-swing').click(); else if ($('.tab-last').length) $('.tab-last').click(); } }, home: { onload: function () { ppc.media.patch_video_player(); ppc.media.init('#player'); ppc.lesson.register_playlist(); $('.Nav3 a').click(function () { $('.Nav3 a').removeClass('active'); $(this).addClass('active'); }); if ($('.Nav3 a:visible:first').length) { var item_active = $('.Nav3 a:first'); item_active.addClass('active'); var media = { src: item_active.attr('media_src'), type: item_active.attr('media_type'), title: item_active.attr('media_title'), cover: item_active.attr('media_cover'), width: 0, height: 0 } ppc.media.set_source(media); } //20160425 ThinhNH #23102 Start // Display message when not have eval video else { $("#media_player").append('

スイング診断ビデオがありません

'); } //20160425 ThinhNH #23102 End } }, //lesson object lesson: { media_data: {}, monload: function () { //register button lesson search action $('#sbsearch').click(function () { var params = {} params.year = $('#cb_search_year').val(); params.month = $('#cb_search_month').val(); ppc.ajax.get_content('/lesson/past_lesson', params, '#searchresult', ppc.lesson.register_lesson_list); }); ppc.lesson.register_media_tab(); //register lesson date click action ppc.lesson.register_lesson_list(); //load default content () ppc.lesson.media_data = ppc.ajax.get_json('/lesson/last_lesson', {}); ppc.lesson.show_tab(ppc.lesson.media_data); $('#Nav2 .tab-item:visible:first a').click(); $('#player_list:first').click(); }, onload: function () { //init media player ppc.media.init('#player'); ppc.media.patch_video_player(); //register button lesson search action $('#sbsearch').click(function () { var params = {} params.year = $('#cb_search_year').val(); params.month = $('#cb_search_month').val(); ppc.ajax.get_content('/lesson/past_lesson', params, '#searchresult', ppc.lesson.register_lesson_list); }); ppc.lesson.register_media_tab(); //register lesson date click action ppc.lesson.register_lesson_list(); //load default content () ppc.lesson.media_data = ppc.ajax.get_json('/lesson/last_lesson', {}); ppc.lesson.show_tab(ppc.lesson.media_data); $('#Nav2 .tab-item:visible:first').click(); //ppc.lesson.grad.init(); }, grad: { init: function () { $('.grad-step1').find('.radio-larger').eq(2).attr('checked', 'checked').val(3); $('.radio-larger').iCheck({ checkboxClass: 'icheckbox_minimal hover', radioClass: 'iradio_minimal hover', increaseArea: '20%' }); $('#grad-comment').keyup(function () { $('#char-count').html($(this).val().length); }); $('#btn-grad-go-step2').click(function () { $('.grad-step').hide(); //hidden lesson-description $('.lesson-description').css({ 'display': 'none' }); //hidden hidden-step2 $('.hidden-step2').css({ 'display': 'none' }); $('#show-step2').css({ 'display': '' }); //append html if($('input[name="public_request"]:checked').val() == 0){ $('#show-step2-text').text($('input[name="public_request"]:checked').parents('label').text()); } else if($('input[name="public_request"]:checked').val() == 1){ $('#show-step2-text').html('希望しない
※頂いたコメントの内容によっては、担当コーチに伝えることがありますので、予めご了承ください。'); } //changer text $('#changer-text-title').text('レッスンに関してのご感想やご要望') $('html, body').animate({scrollTop: $('#grad').offset().top}, 'slow'); //amimate scoll center $('#grad-comment-review').html($('#grad-comment').val().replace(/\n/g, "
")); $('#grad-score-review').html($('.grad-step1').find('.grad-score:checked').parents('label').text()); $('#grad-breakcurm').addClass('grad-breakcurm-step2'); $('.grad-step2').show(); }); $('#btn-grad-go-step1').click(function () { //hidden lesson-description $('.lesson-description').css({ 'display': '' }); //hidden hidden-step2 $('.hidden-step2').css({ 'display': '' }); $('#show-step2').css({ 'display': 'none' }); $('#changer-text-title').text('今回のレッスンに関してのご感想やご要望がありましたらお書きください。') $('#grad-breakcurm').removeClass('grad-breakcurm-step2'); $('.grad-step').hide(); $('.grad-step1').show(); }); $('#btn-grad-submit').click(function () { if (global_var.is_sample) { return; } var data = { 'lesson_id': ppc.lesson.media_data.lesson_id, 'score': $('.grad-step1').find('.grad-score:checked').val(), 'public_request': $('input[name="public_request"]:checked').val(), 'comment': $('#grad-comment').val() } var rs = ppc.ajax.get_json(global_var.base_url + 'lesson/grad', data); if (rs.status == 1) { ppc.lesson.grad.show_step_3(); } else { alert(rs.message); } }); $('#btn-grad-submit-app').click(function () { if (global_var.is_sample) { return; } var data = { 'lesson_id': $('#lessonId').val(), 'score': $('.grad-step1').find('.grad-score:checked').val(), 'public_request': $('input[name="public_request"]:checked').val(), 'comment': $('#grad-comment').val() } var rs = ppc.ajax.get_json(global_var.base_url + 'lesson/grad', data); if (rs.status == 1) { ppc.lesson.grad.show_step_3(); } else { alert(rs.message); } }); }, show_step_3: function () { $('#grad-breakcurm').removeClass('grad-breakcurm-step2').addClass('grad-breakcurm-step3'); $('.grad-step').hide(); $('.grad-step3').show(); } }, register_media_tab: function () { //register media player tab action $('#Nav2 a').click(function () { if ($(this).hasClass('muted')) return; $('#Nav2 a').removeClass('active'); $(this).addClass('active'); if (global_var.is_mobile) { $('#Nav2 a').parent().removeClass('active'); $(this).parent().addClass('active'); } ppc.lesson.create_play_list(); }); }, create_play_list: function () { $('#player_list').html(''); $('#media').show(); $('#motion_content_div').hide(); $('#grad').hide(); ppc.media.set_source(); var media_data = ppc.lesson.media_data; if (!$.isEmptyObject(media_data)) { $('#lesson_date').html(media_data.lesson_label + " " + media_data.lesson_started); $('#Nav2 a.active').each(function () { if ($(this).hasClass('disabled')) return; var menu_id = $(this).attr('id'); switch (menu_id) { case 'swingsBtn': if (!$.isEmptyObject(media_data.swings)) { if (!$.isEmptyObject(media_data.swings.before)) { var before = media_data.swings.before; before.style = 'wl_thumbnail_before_a_normal'; ppc.lesson.add_play_list(before); } if (!$.isEmptyObject(media_data.swings.after)) { var after = media_data.swings.after; after.style = 'wl_thumbnail_after_a_normal'; ppc.lesson.add_play_list(after); } // set media source default for tab swing if (!$.isEmptyObject(media_data.swings.before)) ppc.media.set_source(media_data.swings.before); else if (!$.isEmptyObject(media_data.swings.after)) ppc.media.set_source(media_data.swings.after); } break; case 'stillsBtn': if (!$.isEmptyObject(media_data.stills)) { var first = 1; for (var i in media_data.stills) { var still = media_data.stills[i]; still.style = 'wl_thumbnail_still_a_normal'; ppc.lesson.add_play_list(still); // set media source default for tab still if (first) ppc.media.set_source(still); first = 0; } } break; case 'drillsBtn': if (!$.isEmptyObject(media_data.drills)) { var first = 1; for (var i in media_data.drills) { var drill = media_data.drills[i]; drill.style = 'wl_thumbnail_drill_a_normal'; ppc.lesson.add_play_list(drill); // set media source default for tab drill if (first) ppc.media.set_source(drill); first = 0; } } break; case 'clipsBtn': if (!$.isEmptyObject(media_data.clips)) { var first = 1; for (var i in media_data.clips) { var clip = media_data.clips[i]; clip.style = 'wl_thumbnail_movie_a_normal'; ppc.lesson.add_play_list(clip); if (first) ppc.media.set_source(clip); first = 0; } } break; case 'moviesBtn': if (!$.isEmptyObject(media_data.movie)) { var movie = media_data.movie movie.style = 'wl_thumbnail_movie_a_normal'; ppc.lesson.add_play_list(movie); ppc.media.set_source(movie); //if (!global_var.is_mobile) ppc.media.player.setPlay(); } break; case 'dataBtn': $('#motion_div').html(ppc.lesson.media_data.data.before); $('#motion_div').append(ppc.lesson.media_data.data.after); $('#media').hide(); $('#grad').hide(); $('#motion_content_div').show(); break; case 'gradBtn': if(window.lesson_id_refesh){ ppc.lesson.media_data = ppc.ajax.get_json('/lesson/media', window.lesson_id_refesh); //window.lesson_id_refesh } else { ppc.lesson.media_data = ppc.ajax.get_json('/lesson/media', {lesson_id:ppc.lesson.media_data.lesson_id}); //window.lesson_id_refesh } $('#grad').html(ppc.lesson.media_data.grad); ppc.lesson.grad.init(); $('#media').hide(); $('#motion_content_div').hide(); $('#grad').show(); break; } }); ppc.lesson.register_playlist(); } }, add_play_list: function (media) { if (global_var.is_mobile) { $('#player_list').append( '
' + '
' + media.title + '
' + '' + '
' ); } else { $('#player_list').append( '' + '' + '' ); } }, register_lesson_list: function () { $('.lesson_list a').unbind('click') $('.lesson_list a').click(function () { var params = {'lesson_id': $(this).attr('lesson_id')} window.lesson_id_refesh = {'lesson_id': $(this).attr('lesson_id')} ppc.lesson.media_data = ppc.ajax.get_json('/lesson/media', params); ppc.lesson.show_tab(ppc.lesson.media_data); if (global_var.is_mobile) ppc.scroll('#Nav2'); ppc.lesson.create_play_list(); if (global_var.is_mobile) { $('#Nav2 .tab-item:visible:first a').click(); } else { $('#Nav2 .tab-item:visible:first').click(); } ; }); }, show_tab: function (media_data) { $('#Nav2 .tab-item').hide(); if (!$.isEmptyObject(media_data)) { if (typeof media_data.swings != "undefined" && !$.isEmptyObject(media_data.swings)) { $('#swingsBtn').show(); $('#swingsBtn').parent().show(); } if (typeof media_data.stills != "undefined" && !$.isEmptyObject(media_data.stills)) { $('#stillsBtn').show(); $('#stillsBtn').parent().show(); } if (typeof media_data.drills != "undefined" && !$.isEmptyObject(media_data.drills)) { $('#drillsBtn').show(); $('#drillsBtn').parent().show(); } if (typeof media_data.clips != "undefined" && !$.isEmptyObject(media_data.clips)) { $('#clipsBtn').show(); $('#clipsBtn').parent().show(); } else if (typeof media_data.movie != "undefined" && !$.isEmptyObject(media_data.movie)) { $('#moviesBtn').show(); $('#moviesBtn').parent().show(); } if (typeof media_data.data != "undefined" && !$.isEmptyObject(media_data.data)) { $('#dataBtn').show(); $('#dataBtn').parent().show(); } if (typeof media_data.grad != "undefined" && !$.isEmptyObject(media_data.grad)) { $('#gradBtn').show(); $('#gradBtn').parent().show(); } } else { //$('#swing_date').click(); } }, register_playlist: function () { $('#player_list a').unbind('click'); $('#player_list a').click(function () { var media = { src: $(this).attr('media_src'), type: $(this).attr('media_type'), title: $(this).attr('media_title'), cover: $(this).attr('media_cover'), width: 0, height: 0 } ppc.media.set_source(media); //20160425 ThinhNH #23102 //if (!global_var.is_mobile) ppc.media.player.setPlay(); }); } }, media: { player: null, init: function (player) { //20160425 ThinhNH #23102 Start // if (!global_var.is_mobile) { // ppc.media.player = projekktor(player, { // controls: true, // volume: 1, // autoplay: false, // width: 690, // height: 520, // playerFlashMP4: '/static/StrobeMediaPlayback.swf', // playerFlashMP3: '/static/StrobeMediaPlayback.swf', // enableFullscreen: false, // enableFlashFallback: true, // //platforms: ['browser', 'ios', 'native', 'flash'], // //plugins : ['display','controls'], // plugin_controlbar: {showOnStart: true}, // plugin_display: { // logoImage: '/static/images/media_player/golftec_overlay.png', // logoPosition: "br", // logoDelay: 1 // } // }) // instantiation // .addListener('start', function() { // if(ppc.media.current.type == 'audio/mp3'){ // var cover = ppc.media.current.cover; // var this_width = ppc.media.player.getDC().width(); // var this_height = ppc.media.player.getDC().height(); // var image = document.createElement('img'); // new Image(1, 1); // image.src = cover; // image.onload = function() { // var img_height = image.height; // var img_width = image.width; // //set size of audio player reference with size of image // if($p.utils.roundNumber(img_width/ this_width, 0) != $p.utils.roundNumber(img_height/ this_height, 0)){ // ppc.media.player.setSize({width:this_width, height:$p.utils.roundNumber(this_width*img_height/img_width, 0)}) // } // //set background to player when play audio // $('#player_media').css('background-image', "url('"+ cover +"')"); // $('#player_media').css('background-size', 'contain'); // $('#player_media').css('background-repeat', 'no-repeat'); // }; // } // }); // } else { // $(player + ',' +player + '-cover').click(function(e){ // // e.preventDefault(); // var jplayer = $(player).get(0); // if (jplayer.paused) { jplayer.play(); } // else { jplayer.pause(); } // return false; // }); // } //20160425 ThinhNH #23102 End }, set_source: function (media) { //20160425 ThinhNH #23102 //if (!global_var.is_mobile) ppc.media.player.setStop(); if (media) { //20160425 ThinhNH #23102 //if (!global_var.is_mobile) ppc.media.player._destroy(); if (typeof media.cover == "undefined") media.cover = media.thumb; //20160425 ThinhNH #23102 Start // if (!global_var.is_mobile) { // $('#media_player').html( // '' // ); // custom video error messages var errors = { messages: { 1: "ビデオダウンロードがキャンセルされました。", 2: "ビデオのコネクションが中断されましたので、インタネットの接続をご確認ください。", 3: "このビデオの質がよくない、もしくはビデオのフォマットが使っているブラウザーに合わないで再生できないです。", 4: "このビデオは存在しない、もしくは使っているブラウザーでサポートしないです。", 5: "このビデオは暗号化されましたので、復号できません。", unknown: "未確定エラーが発生しました。" } }; // audio file if (media.type == 'audio/mp3') { // stop current video if have if ($("#player").length) { videojs("player").ready(function () { this.pause(); }); $('#player').hide(); } // load audio src if ($("#audio_player").length) { $('#audio_player').show(); videojs("audio_player", {}, function () { this.reset(); this.src({"type": "audio/mp4", "src": media.src}); this.poster(media.cover); this.errors(errors); }); } } // video file else if (media.type == 'video/mp4') { // stop current audion if have if ($("#audio_player").length) { videojs("audio_player").ready(function () { this.pause(); }); $('#audio_player').hide(); } // load video src if ($("#player").length) { $('#player').show(); videojs("player", {}, function () { this.reset(); this.src({"type": "video/mp4", "src": media.src}); this.poster(media.cover); this.errors(errors); }); } } // load backup video if (global_var.is_mobile && $("#video-dlg").length) { $('#video-dlg').html( '' ); } // } else { // if(media.type == 'audio/mp3'){ // $('#media_player').html( // '' + // '' // ); // } else { // $('#media_player').html( // '' // ); // } // } //20160425 ThinhNH #23102 End ppc.media.init('#player'); ppc.media.current = media; } }, patch_video_player: function () { //20160425 ThinhNH #23102 Start // $p.utils.stretch = function (stretchStyle, target, wid, hei, twf, thf) { // if (target == null) // return false; // // if ((target instanceof $)===false) { // target = $(target); // } // // if (!target.data('od')) { // target.data('od', { // width: target.width(), // height: target.height() // }); // } // // var tw = (twf !== undefined) ? twf : target.data('od').width, // th = (thf !== undefined) ? thf : target.data('od').height, // xsc = (wid / tw), // ysc = (hei / th), // rw = wid, // rh = hei; // // // fill area // switch (stretchStyle) { // case 'none': // rw = tw; // rh = th; // break; // // case 'fill': // if (xsc > ysc) { // rw = tw * xsc; // rh = th * xsc; // } else if (xsc < ysc) { // rw = wid; // rh = hei; // } // break; // case 'aspectratio': // default: // // scale, keep aspect ratio // if (xsc > ysc) { // rw = tw * ysc; // rh = th * ysc; // } else if (xsc < ysc) { // rw = tw * xsc; // rh = th * xsc; // } // break; // } // wid = $p.utils.roundNumber((rw / wid) * 100, 0); // hei = $p.utils.roundNumber((rh / hei) * 100, 0); // // if (wid===0 || hei===0) { // return false; // } // // target.css({ // 'margin': 0, // 'padding': 0, // 'width': wid + "%", // 'height': hei + "%", // 'left': (100 - wid) / 2 + "%", // 'top': (100 - hei) / 2 + "%" // }); // var this_width = ppc.media.player.getDC().width(); // var this_height = ppc.media.player.getDC().height(); // rh = $p.utils.roundNumber(rh, 0); // //resize if video height smaller than video player and video height must be larger than 200px // if(this_height != rh && rh > 200) { // ppc.media.player.setSize({width:this_width, height:rh}); // return false; // } // if (target.data('od').width != target.width() || target.data('od').height != target.height()) { // return true; // } // // return false; // // } //20160425 ThinhNH #23102 End } }, view_plan: { url: null, onload: function () { ppc.view_plan.url = global_var.base_url + 'appointment/ajax_view_plan'; $('#view_plan').click(function () { ppc.view_plan.ajax(); }); }, monload: function () { $('#view_plan').click(function () { if (!$.trim($('#plan-result').html())) { ppc.ajax.get_content(global_var.base_url + 'appointment/ajax_view_plan', {}, '#plan-result'); } $('#plan-result').animate({height: 'toggle'}); ppc.scroll('#plan-result'); }); }, ajax: function () { $.ajax({ url: ppc.view_plan.url, type: "POST", async: false, success: function (plan) { ppc.library.check_session_expired(plan); $('#context').html(plan); $('html, body').animate({scrollTop: $('#breadcrumbs').offset().top}, 'slow'); // Stop the link from acting like a normal anchor link return false; } }); } }, library: { check_session_expired: function (data) { if (ppc.library.is_json(data)) { if (data.error !== undefined) { if (data.error.error_num == -1) { alert(data.error.error_message); window.location = '/login'; } else alert(data.error.error_message); } } }, is_json: function (string) { try { $.parseJSON(string); } catch (e) { return false; } return true; }, array_intersect: function (a, b) { return $.grep(a, function (i) { return $.inArray(i, b) > -1; }); }, setCookie: function (key, value) { var expires = new Date(); expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); }, getCookie: function (key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; }, getParameter: function (key) { var sPageURL = decodeURIComponent(window.location.search.substring(1)), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === key) { return sParameterName[1] === undefined ? true : sParameterName[1]; } } }, // TODO: Needs update for parameter sending and real asteria URL loadXMLDoc: function (asteria_name) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { // console.log(ppc.library.xmlToJson(this.responseXML)); } }; xmlhttp.open("GET", "http://xml-demo.local.com?asteria=" + asteria_name, true); xmlhttp.send(); }, xmlToJson: function (xml) { // Create the return object var obj = {}; // console.log(xml);return; if (xml.nodeType == 1) { // element // do attributes if (xml.attributes.length > 0) { obj["@attributes"] = {}; for (var j = 0; j < xml.attributes.length; j++) { var attribute = xml.attributes.item(j); obj["@attributes"][attribute.nodeName] = attribute.nodeValue; } } } else if (xml.nodeType == 3) { // text obj = xml.nodeValue; } // do children // If just one text node inside if (xml.hasChildNodes() && xml.childNodes.length === 1 && xml.childNodes[0].nodeType === 3) { obj = xml.childNodes[0].nodeValue; } else if (xml.hasChildNodes()) { for (var i = 0; i < xml.childNodes.length; i++) { var item = xml.childNodes.item(i); var nodeName = item.nodeName; if (typeof(obj[nodeName]) == "undefined") { obj[nodeName] = ppc.library.xmlToJson(item); } else { if (typeof(obj[nodeName].push) == "undefined") { var old = obj[nodeName]; obj[nodeName] = []; obj[nodeName].push(old); } obj[nodeName].push(ppc.library.xmlToJson(item)); } } } return obj; } }, isAppleMobile: function () { return ( //Detect iPhone (navigator.platform.indexOf("iPhone") != -1) || //Detect iPod (navigator.platform.indexOf("iPod") != -1) || //Detect iPad (navigator.userAgent.match(/iPad/i) != null) ); }, modal: (function () { var method = {}, $overlay, $modal, $content, $close; // Center the modal in the viewport method.center = function () { var top, left; top = Math.max($(window).height() - $modal.outerHeight(), 0) / 2; left = Math.max($(window).width() - $modal.outerWidth(), 0) / 2; $modal.css({ top: top + $(window).scrollTop(), left: left + $(window).scrollLeft() }); }; // Open the modal method.open = function (settings) { $content.empty().append(settings.content); $modal.css({ width: settings.width || 'auto', height: settings.height || 'auto' }); method.center(); // $(window).bind('resize.modal', method.center); $modal.show(); $overlay.show(); }; // Close the modal method.close = function () { $modal.hide(); $overlay.hide(); $content.empty(); // $(window).unbind('resize.modal'); }; // Generate the HTML and add it to the document $overlay = $(''); $modal = $(''); $content = $(''); $close = $('close'); $modal.hide(); $overlay.hide(); $modal.append($content, $close); $(document).ready(function () { $('body').append($overlay, $modal); }); $close.click(function (e) { e.preventDefault(); method.close(); }); return method; })(), 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(ppc.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 += ppc.post_form.form_params(val, key); } else { if (parent) key = parent + '[' + key + ']'; params += ""; } }); } return params; } }, analytics: { tracking: function (target, event) { event = event || window.event; if ($(target).attr('class') == undefined) { return; } var classx = $(target).attr('class').match(/gt_\d+/); if (classx) { var store_id = ($('#bk_center').val() == undefined) ? '' : $('#bk_center').val(); var idx = classx[0].split('_')[1]; $.ajax({ url: 'https://www.golfdigest.co.jp/rtsrc/rt_bcon.asp?rt_host=ppc.golfdigest.co.jp&rt_path=rtlog/>=' + idx + '&store=' + store_id + '&x=' + event.pageX + '&y=' + event.pageY, async: true }); } }, ga: { eval_input: 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/input']); }, eval_confirm: 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/confirm']); }, 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']); } } }, purchase: { data: { discount_selected: null, page: 1, load_more: true, has_lesson: true, coupon_list: [], coupon_selected: [], total_price: 0, notification_amount: false, coupon_ids_selected: [], total_coupon_amount: 0 }, remove_item: function (id) { var el = $("#row-" + id).closest("#row-" + id); ppc.purchase.customHide(el); ppc.purchase.updateTotalPrice(id); }, updateTotalPrice: function (id) { $.get("../purchase/updateCart/" + id, function (response) { $('#tax-price-purchase').text(response.tax); $('#total-price-purchase').text(response.total_final); ppc.purchase.data.total_price = response.total_no_coupon; if(response.total_no_coupon < response.coupon_amount) { $('#msg-coupon').css('display', 'block'); } if(response.total_no_coupon > response.coupon_amount) { $('#coupon-total-amount').text(response.coupon_amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); } else { $('#coupon-total-amount').text(response.total_no_coupon.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); } // hide table coupon if(ppc.purchase.data.total_price == 0) { $('#btn-use-coupon').addClass('disable-select-coupon'); $("#btn-use-coupon").attr( "disabled", true ); var el = $("#coupon-selected").closest("#coupon-selected"); ppc.purchase.customHide(el); } }); }, customHide: function (el) { el.animate({opacity: '0'}, 250, function () { el.animate({height: '0px'}, 250, function () { el.remove(); var el_selected = document.getElementsByClassName("item-selected"); if (el_selected.length == 0) { $("#confirm-purchase-2").css('cursor','not-allowed').css('background-color','#fc9e6c') .attr( "disabled", true ).parent().attr('href', 'javascript:void(0)'); $('#msg-coupon').css('display', 'none'); $('#tr-coupon').css('display', 'none'); } else { $("#confirm-purchase-2").css('cursor','pointer').css('background-color','#f87229') .removeAttr( "disabled" ).parent().attr('href', '../purchase/insertTrans?confirm=true'); } }); }); }, set_type_item_selected: function (e, discount, id) { if ($('input[name="product[]"]:checked').length == 0) { ppc.purchase.data.discount_selected = null; } if (ppc.purchase.data.discount_selected != null) { if (ppc.purchase.data.discount_selected != discount) { $('#purchase-' + id).prop('checked', false); alert("レッスンチケットとそれ以外の商品を同時に購入することはできません。"); } else { $.post("../purchase/saveProduct", {'data':id}, function(response) { }); } } else { if ($('input[name="product[]"]:checked').length > 0) { ppc.purchase.data.discount_selected = $('input[name="product[]"]:checked').attr("is-discount"); } else { ppc.purchase.data.discount_selected = null; } $.post("../purchase/saveProduct", {'data':id}, function(response) { }); } }, unset_item_selected: function () { var str = document.referrer; if(str.indexOf("/purchase/confirm") == -1){ $('input[name="product[]"]:checked').prop('checked', false); $('.coupon-selected').prop('checked', false); $('input[name="product[]"]:checked').removeAttr('checked'); $.get("../purchase/reloadPurchaseList", function(response) {}); } else { if ($('input[name="product[]"]:checked').length > 0) { ppc.purchase.data.discount_selected = $('input[name="product[]"]:checked').attr("is-discount"); } } }, submit_form_confirm: function (e) { if ($('input[name="product[]"]:checked').length == 0) { alert('少なくとも1つの商品を選択してください。'); e.preventDefault(); return false; } }, load_more_history: function() {//auto load when scroll on bottom of screen window.onscroll = function(ev) { var el = document.getElementById("history-box"); // if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { if ((window.innerHeight + window.scrollY) >= el.offsetHeight) { if(ppc.purchase.data.load_more){ $("#loading_gif_more").css('display', 'block'); $.get("../purchase/loadDataHistory?page=" + ppc.purchase.data.page, function(response) { $('#history-box').append(response.data); ppc.purchase.data.page ++; ppc.purchase.data.load_more = response.next; $("#loading_gif_more").css('display', 'none'); var x= document.getElementsByClassName('his-date'); }); } else{ $("#loading_gif_more").css('display', 'none'); } } }; }, load_history: function() {// default load when redirect $.get("../purchase/loadDataHistory?page=1", function(response) { ppc.fitting.hide_loading(); $('#history-box').html(response.data); if(response.data != ''){ $(".box-button-history").css("display", "block"); $("#no-data-his").css("display", "none"); } else{ $("#no-data-his").css("display", "block"); } ppc.purchase.data.page ++; ppc.purchase.data.load_more = response.next; }); }, cancel_publish_receipt: function() { alert('この決済は領収証を発行できません。'); }, confirm_release: function() { var text = $.trim($('#receipt_address').val()); if (text.length == 0) { alert('宛名を入力してください。'); } else if(text == '上' || text == '無記入') { alert('無記入・上様宛の発行は承ることができません。'); } else { if(confirm("一度作成した領収証の宛名を変更することはできません。\n" + "宛名は「"+ text +"」様で間違いありませんか?") == true){ var id = $("input[name=id]").val(); $.get('../receipt/checkStatusIsIssue?id=' + id, function(response) { if(response.status == 1) { alert('ご注文の領収証が既に発行されましたので、再発行はできません。'); window.location.href="../receipt/viewPdf?id=" + id; } else { // view receipt in PDF file var pdf_url = $('#link-view-pdf').attr('href') + '&add=' + encodeURIComponent(text); $('#link-view-pdf').attr("href", pdf_url) $('#link-view-pdf')[0].click(); // change status using method post form and redirect page $('#btn-save').trigger("click"); } }); } } }, back_to_rserved: function() { window.location.href="../purchase/getHistory"; }, validateAddressReceipt: function() { var text = $.trim($('#receipt_address').val()); if(text.length > 30) { alert('宛名を30文字以内で入力してください。'); var cover = text.substring(0, 30); $('#receipt_address').val(cover); } }, open_modal_list_coupon: function() { if(ppc.purchase.data.total_price > 0) { $('#bg-modal-coupon').css('display', 'block'); $("body").css("overflow", "hidden"); } }, close_modal_list_coupon: function() { $('#bg-modal-coupon').css('display', 'none'); ppc.purchase.resetCouponChecked(); $('#total-price-copon-popup').html(ppc.purchase.data.total_coupon_amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $("body").css("overflow", "scroll"); }, checkCouponGroup: function(couponId) { ppc.purchase.calPrice(); }, calPrice: function() { var totalPriceCoupon = 0; $('.coupon-selected:checkbox:checked').each(function(){ totalPriceCoupon += parseInt($(this).attr('price')); }); $('#total-price-copon-popup').text(totalPriceCoupon.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); }, extendData: function(object) { ppc.purchase.data.total_coupon_amount = object.total_coupon; ppc.purchase.data.total_price = object.total_price; if(object.total_price < object.total_coupon) { ppc.purchase.data.notification_amount = true; } ppc.purchase.resetListCouponIdsSelected(); }, // click button 適用 (OK) selectCoupon: function () { var totalPriceCoupon = $('#total-price-copon-popup').text().toString().replace(/[^0-9]+/g, ""); // compare total amount of coupon with total price if (totalPriceCoupon > ppc.purchase.data.total_price) { if (confirm('クーポン金額は商品の合計金額を超えています。よろしいですか。') == true) { $('#loading-coupon').css('display', 'block'); ppc.purchase.updateCouponSelected(); ppc.purchase.resetListCouponIdsSelected(); $("body").css("overflow", "scroll"); } } else { ppc.purchase.resetListCouponIdsSelected(); $('#loading-coupon').css('display', 'block'); ppc.purchase.updateCouponSelected(); $("body").css("overflow", "scroll"); } }, resetListCouponIdsSelected: function() { ppc.purchase.data.coupon_ids_selected = []; $('.coupon-selected:checkbox:checked').each(function () { ppc.purchase.data.coupon_ids_selected.push($(this).val()); }); }, resetCouponChecked: function () { // remove checked $('.coupon-selected:checkbox:checked').each(function () { if(ppc.purchase.data.coupon_ids_selected.indexOf($(this).val()) == -1) { $(this).attr('checked', false); } }); // add checked for(var i = 0; i < ppc.purchase.data.coupon_ids_selected.length; i++) { if($('#coupon-' + ppc.purchase.data.coupon_ids_selected[i]).prop("checked") == false) { $('#coupon-' + ppc.purchase.data.coupon_ids_selected[i]).attr('checked', true); } } }, updateCouponSelected: function() { var couponId = ''; var totalCouponAmount = 0; $('.coupon-selected:checkbox:checked').each(function () { couponId += $(this).val() + ' '; totalCouponAmount = totalCouponAmount + parseInt($(this).attr('price')); }); $('#total-price-copon-popup').html(totalCouponAmount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); ppc.purchase.data.total_coupon_amount = totalCouponAmount; ppc.purchase.save_coupon_selected(couponId, true); }, // save coupon select into session save_coupon_selected: function(couponId, render) { $.get("../purchase/saveCouponSelected?couponIds=" + couponId, function (response) { ppc.purchase.data.coupon_selected = response.coupon_selected; ppc.purchase.data.total_coupon_amount = response.total_coupon_amount; if(render || response.total_coupon_amount == 0) { $('#ajax-load-table-coupon-selected').html(response.table_coupon); $('#ajax-load-table-price-final').html(response.table_total_final); $('#bg-modal-coupon').html(response.modal_list_coupon); } if(response.total_coupon_amount < ppc.purchase.data.total_price) { $('#msg-coupon').css('display', 'none'); var totalFinal = ppc.purchase.data.total_price - response.total_coupon_amount; $('#coupon-total-amount').text(response.total_coupon_amount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $('#total-price-purchase').text(totalFinal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); } else { $('#coupon-total-amount').text(ppc.purchase.data.total_price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $('#total-price-purchase').text(0); } $('#loading-coupon').css('display', 'none'); $('#bg-modal-coupon').css('display', 'none'); }); }, remove_coupon: function(groupId) { $('.group-coupon-select-' + groupId).attr('checked', false); var els = document.getElementsByClassName('btn-remove-coupon'); if(els.length == 1) { $('#tr-coupon').css('display', 'none'); $('#total-price-purchase').text(ppc.purchase.data.total_price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); var el = $("#coupon-selected").closest("#coupon-selected"); ppc.purchase.remove_element(el); } var el = $("#tr-coupon-" + groupId).closest("#tr-coupon-" + groupId); ppc.purchase.remove_element(el); ppc.purchase.calPrice(); // update list coupon selected var couponId = ''; $('.coupon-selected:checkbox:checked').each(function () { couponId += $(this).val() + ' '; }); ppc.purchase.resetListCouponIdsSelected(); // re_caculate total_amount_coupon var totalCouponAmount = 0; $('.coupon-selected:checkbox:checked').each(function () { totalCouponAmount = totalCouponAmount + parseInt($(this).attr('price')); }); ppc.purchase.data.total_coupon_amount = totalCouponAmount; if(ppc.purchase.data.total_coupon_amount <= ppc.purchase.data.total_price) { $('#msg-coupon').css('display', 'none'); } // save list coupon selected into session ppc.purchase.save_coupon_selected(couponId, false); }, remove_element: function(el) { el.animate({opacity: '0'}, 250, function () { el.animate({height: '0px'}, 250, function () { el.remove(); }); }); }, hideModalCouponUsed: function() { $('#modal-coupon-unvailable').css('display', 'none'); } }, fitting: { monload: function () { //register button ec cart search action $('#sbsearch').click(function () { var params = {} params.year = $('#cb_search_year').val(); params.month = $('#cb_search_month').val(); ppc.ajax.get_content('/fitting/searchFitting', params, '#searchresult', ppc.fitting.change_cart()); }); ppc.lesson.register_media_tab(); //register lesson date click action ppc.lesson.register_lesson_list(); }, onload: function () { //register button ec cart search action $('#sbsearch').click(function () { var params = {} params.year = $('#cb_search_year').val(); params.month = $('#cb_search_month').val(); ppc.ajax.get_content('/fitting/searchFitting', params, '#searchresult', ppc.fitting.change_cart()); }); ppc.lesson.register_media_tab(); //register lesson date click action ppc.fitting.load_swing(); }, load_swing: function () { $('.lesson_list a').unbind('click') $('.lesson_list a').click(function () { $("#ec_cart").hide(); $("#cart_title").hide(); $("#lesson_detail").show(); var params = {'lesson_id': $(this).attr('lesson_id')} ppc.lesson.media_data = ppc.ajax.get_json('/lesson/media', params); ppc.lesson.show_tab(ppc.lesson.media_data); if (global_var.is_mobile) ppc.scroll('#Nav2'); ppc.lesson.create_play_list(); if (global_var.is_mobile) { $('#Nav2 .tab-item:visible:first a').click(); } else { $('#Nav2 .tab-item:visible:first').click(); } }); }, change_cart: function () { $('.ec_cart_list a').unbind('click') $('.ec_cart_list a').click(function () { $("#lesson_detail").hide(); $("#cart_title").show(); var params = {'ec_cart_id': $(this).attr('ec_cart_id')} $.ajax({ type: "POST", url: '/fitting/changeEcCart', data: params, dataType: "html", async: true, beforeSend: function () { ppc.fitting.show_loading(); }, success: function (output) { try { var result = jQuery.parseJSON(output); $("#ec_cart").html(result.view); $("#cart_title").text('フィッティング ご提案内容  ' + result.date_string); } catch (e) { alert(output); } ppc.fitting.hide_loading(); }, error: function (error) { ppc.fitting.hide_loading(); alert('ページ遷移でエラーが発生しました。'); } }); }); }, get_last_swing: function() { }, show_loading: function () { $("#ec_cart").hide(); $("#loading_gif").show(); }, hide_loading: function () { $("#ec_cart").show(); $("#loading_gif").hide(); }, custom_deselect: function (detail_id) { $("#cart_detail_" + detail_id).addClass('row-deleted'); if ($(".custom_table").not(".row-deleted").not('.sold-table').length == 0) { $("#custom_confirm").addClass("btn-disabled"); } }, custom_reselect: function (detail_id) { $("#cart_detail_" + detail_id).removeClass('row-deleted'); if ($('#custom_confirm').hasClass('btn-disabled')) { $('#custom_confirm').removeClass('btn-disabled'); } }, recalculate_price: function () { var selected_row = []; $(".custom_table").not(".row-deleted").not('.sold-table').not('.expired-table').each(function() { selected_row.push($(this).attr('id').replace(/[^0-9 ]/g, "")); }); var total_price = 0; $.each(selected_row, function (index, value) { total_price = total_price + parseInt($("#detail_price_" + value).text().replace(/[^0-9 ]/g, "")); }); $("#custom_total").text("¥" + total_price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); }, custom_insert_trans: function (ec_cart_id, billing_url, item_id, system_id) { if ($('#custom_confirm').hasClass('btn-disabled')) { return false; } else { var selected_detail = []; $(".custom_table").not(".row-deleted").not('.sold-table').each(function () { selected_detail.push($(this).attr("id").replace(/[^0-9 ]/g, "")); }); var post_data = { 'ec_cart_id': ec_cart_id, 'cart_detail_ids': selected_detail, }; var response_data = []; $.ajax({ type: "POST", url: '/fitting/insertTrans', data: post_data, dataType: "html", async: true, beforeSend: function () { ppc.fitting.show_loading(); }, success: function (output) { try { response_data = jQuery.parseJSON(output); if (response_data.error) { if (response_data.error.error_num == -1) { alert(response_data.error.error_message); window.location = '/login'; } else alert(response_data.error.error_message); } else { var params = new Object(); params.system_id = system_id; params.item_id = item_id; params.count = 1; params.request_id = response_data.request_id; params.url_success = window.location.origin + '/purchase/success?request_id=' + response_data.request_id; params.url_failed = window.location.origin + '/purchase/failed?request_id=' + response_data.request_id; params.url_cancel = window.location.origin + '/purchase/cancel?request_id=' + response_data.request_id; var query = $.param(params); if (response_data.request_id) { window.location.href = billing_url + '?' + query; } else { alert("An error occurred. Please try again!"); } } } catch (e) { alert(output); } }, error: function (error) { ppc.fitting.hide_loading(); alert('ページ遷移でエラーが発生しました。'); } }); } } }, bill:{ download: function() { $(".download-btn").click(function(){ const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); const id = urlParams.get('id'); const no = urlParams.get('no'); window.open('/bill/download_pdf?id=' + id + '&no=' + no); let element = document.getElementById("button"); element.classList.add("disabled"); }); } }, }