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(
''
);
} 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");
});
}
},
}