$(function() {
$(document).ready(function () {
window.post = function(form,access,key){
var submit_input_elm = form.find("div.form_row.submit > div.input_submit > input.submit");
var submit_input_value = submit_input_elm.attr("value");
var result = 0;
if( submit_input_value == "DELETE" ){
result = window.confirm('この項目を削除しますか?');
}else if( submit_input_value.indexOf('キャンセルする') != -1 ){
result = window.confirm('本当にご予約をキャンセルしますか?');
}else if( submit_input_value.indexOf('確認して更新') != -1 ){
if( submit_input_value.indexOf(':') != -1 ){
var submit_input_value_arr = submit_input_value.split(":");
var str = submit_input_value_arr[0];
result = window.confirm(str+'の変更を適用しますか?');
}else{
result = window.confirm('変更を適用しますか?');
}
}else{
result = 1;
}
if( result ) {
form.addClass("loading");
if( access == "return" ){
form.addClass("return");
}
var params = text_strip_ctrlcode(form.serialize());
console.log(params + "&access=" + access);
$.ajax({
type: "POST",
url: "https://lifesnap.jp/elements_php_mypage/ajax_post.php",
scriptCharset: 'UTF-8',
data: params + "&access=" + access,
dataType: "json"
}).done(function(data_json) {
// alert(data_json.debug);
var form_elm = data_json.form_elm;
var form_id = data_json.form_id;
var form_mode = data_json.form_mode;
var elm_body = data_json.elm_body;
var status = data_json.status;
console.log("done");
console.log(data_json);
console.log(form_mode);
console.log(status);
// alert(form_elm);
// alert(elm_body);
if( form_elm != "" ){
var wrapper = form.closest("article.form_wrapper");
wrapper.removeClass("return");
if( status != "success" ){
wrapper.addClass("return");
}
form.empty();
form.append(form_elm);
if( key == "show" ){
wrapper.addClass("show");
}
}
if( elm_body != "" ){
$("body").append(elm_body);
var target = $("body").children("."+form_id);
target.delay(100).queue(function(){
$(this).addClass("show").dequeue();
});
target.delay(4000).queue(function(){
$(this).removeClass("show").dequeue();
});
target.delay(3000).queue(function(){
$(this).remove().dequeue();
});
}
setTimeout(
function(){
form.removeClass("loading return");
if( access == "return" && key != "" ){
move_form_to(form, key);
}else if( status != "success" ){
move_err(form);
}else if( form_mode == "normal" ){
move_form_top(form);
}else if( form_mode == "confirm" ){
move_form_top(form);
}else if( status == "success" ){
if( form_id == "account_login" ){
refresh("login");
}
}
}
, 100);
}).fail(function(data_json) {
// alert(data_json.debug);
console.log("fail");
console.log(data_json);
// location.reload(true);
setTimeout(
function(){
form.removeClass("loading");
}
, 100);
});
}
}
window.elm_refresh = function(target_selector,key){
var href = location.href;
console.log("ajax-start: "+href);
console.log("target_selector: "+target_selector);
if(
target_selector == ".tab[data-tab='overview']" ||
target_selector == ".tab[data-tab='summary']" ||
target_selector == ".tab[data-tab='message']" ||
target_selector == ".tab[data-tab='lifebook']" ||
target_selector == ".tab[data-tab='comment']" ||
target_selector == ".tab[data-tab='estimate']" ||
target_selector == ".tab[data-tab='payment']" ||
target_selector == ".tab[data-tab='shipping']" ||
target_selector == ".tab[data-tab='entrysheet']" ||
target_selector == ".tab[data-tab='user']" ||
target_selector == ".tab[data-tab='comment']" ||
target_selector == ".tab[data-tab='orderlist']"
){
$(target_selector+" > div.inner > *").css({"opacity":0.5});
$(target_selector+" > div.inner > *").append('
').prepend(ajax_data));
$(target_selector).empty();
$(target_selector).prepend(get_elm);
$(target_selector).addClass("ajax");
if( key == "latest" ){
var scroll_target = $(target_selector+"> div.inner div.message.base > div.inner");
var latest_elm = $(target_selector+"> div.inner div.thread > div.archives").find("dl.message.active:last");
var scroll_val = latest_elm.position().top - 20;
scroll_target.stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}
}).fail(function(data_json) {
console.log("fail");
});
}
}
function tab_switch_ajax(href,target_selector,key){
// if( typeof ajax_tab_switch != "undefined" ){
// ajax_tab_switch.abort();
// }
console.log("ajax_start : ajax_tab_switch");
ajax_tab_switch = $.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_tab_switch.php",
dataType: "html",
type: "POST",
data: {"href" : href },
}).done(function(ajax_data) {
console.log("ajax-done: "+href);
var get_elm = ajax_data;
$(target_selector + " > div.inner").empty();
$(target_selector + " > div.inner").prepend(get_elm);
$(target_selector).addClass("ajax");
if( key == "request" ){
if( $("section.order_lifebook div.details.lifebook > article.form_wrapper > form.nisor > div.form_base.normal")[0] ){
var scroll_val = $("section.order_lifebook div.details.lifebook > article.form_wrapper > form.nisor > div.form_base.normal").offset().top + $("body #entry > div.inner").scrollTop() - 80;
$("article[class^='mypage\\/reservations\\/'] > div.body div.tab[data-tab='lifebook'] > div.inner").stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}
}
if( key == "lifebook_select_photo" ){
if( $("section.order_lifebook div.details.lifebook > article.form_wrapper > form.nisor > div.form_base.normal")[0] ){
$("section.order_lifebook > article > div.inner > section.intro").addClass("next");
setTimeout(
function(){
var scroll_val = $("article[class^='mypage\/reservations\/'] > div.body div.tab > div.inner > section.order_lifebook div.details.lifebook > article.form_wrapper > form.nisor > div.form_base.normal > div.form_row.row_lifebook_cut_request").offset().top + $("body #entry > div.inner").scrollTop();
$("article[class^='mypage\\/reservations\\/'] > div.body div.tab[data-tab='lifebook'] > div.inner").stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}
, 100);
}
}
if( key == "select_print_2L" ){
if( $("section.tab_content > article.user > div.inner > section.detail.request_print_use")[0] ){
var scroll_val = $("section.tab_content > article.user > div.inner > section.detail.request_print_use").offset().top + $("body #entry > div.inner").scrollTop();
$("article[class^='mypage\\/reservations\\/'] > div.body div.tab[data-tab='summary'] > div.inner").stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}
}
}).fail(function(data_json) {
console.log("fail");
});
}
function form_switch(form,switch_to){
form.addClass("loading");
var params = form.serialize();
$.ajax({
type: "POST",
url: "https://lifesnap.jp/elements_php_mypage/ajax_form_switch.php",
data: params + "&switch_to=" + switch_to,
dataType: "json"
}).done(function(data_json) {
console.log("done");
console.log(data_json);
var form_elm = data_json.form_elm;
var status = data_json.status;
form.empty();
form.append(form_elm);
setTimeout(
function(){
form.removeClass("loading");
if( status == "err" ){
move_err(form);
}
if( status == "success" ){
move_form_top(form);
}
}
, 100);
}).fail(function(data_json) {
console.log("fail");
setTimeout(
function(){
form.removeClass("loading");
}
, 100);
});
}
$(document).on("click", "nav.tab_switch > ul > li > div.switch", function(){
var target = $(this).attr("data-target");
var switch_wrapper = $(this).closest('nav.tab_switch');
var tab_wrapper = $(this).closest('nav.tab_switch').parent();
switch_wrapper.find("li").removeClass('active');
$(this).parent("li").addClass('active');
tab_wrapper.find(".tab").removeClass('active');
if( tab_wrapper.find(".tab[data-tab='"+target+"']")[0] ){
var target_selector = ".tab[data-tab='"+target+"']";
var tab_elm = tab_wrapper.find(target_selector);
tab_elm.addClass('active');
elm_refresh(target_selector);
}else{
console.log(target+" elm not found");
}
})
function remind_day_before_shooting_switch(order_id,key){
var result = 0;
if( key == "turn_reactive" ){
result = window.confirm('リマインドをONに戻しますか?');
}else{
result = 1;
}
if( result ) {
// console.log(order_id);
// console.log(key);
if( typeof ajax_remind_day_before_shooting_switch != "undefined" ){
ajax_remind_day_before_shooting_switch.abort();
}
console.log("ajax_start : ajax_remind_day_before_shooting_switch");
ajax_remind_day_before_shooting_switch = $.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_remind_day_before_shooting_switch.php",
dataType: "html",
type: "POST",
data: "order_id=" + order_id + "&key=" + key,
}).done(function(ajax_data) {
console.log("ajax-done: "+ajax_data);
if( key == "turn_reactive" ){
elm_refresh("div.body.entry > div.detail.side");
}
}).fail(function(data_json) {
console.log("fail");
});
}
}
$(document).on("click", "dl.remind_day_before_shooting div.switch", function(){
var target = $(this);
var order_id = target.closest("body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry").attr("id");
setTimeout(
function(){
if( target.hasClass('on') ){
remind_day_before_shooting_switch(order_id,"turn_on");
}else{
remind_day_before_shooting_switch(order_id,"turn_off");
}
}
, 10);
})
$(document).on("click", "dl.remind_day_before_shooting span.reactive", function(){
var target = $(this);
var order_id = target.closest("body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry").attr("id");
setTimeout(
function(){
remind_day_before_shooting_switch(order_id,"turn_reactive");
}
, 10);
})
function remind_lifebook_request_switch(order_id,key){
var result = 0;
if( key == "turn_reactive" ){
result = window.confirm('リマインドをONに戻しますか?');
}else{
result = 1;
}
if( result ) {
// console.log(order_id);
// console.log(key);
if( typeof ajax_remind_lifebook_request_switch != "undefined" ){
ajax_remind_lifebook_request_switch.abort();
}
console.log("ajax_start : ajax_remind_lifebook_request_switch");
ajax_remind_lifebook_request_switch = $.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_remind_lifebook_request_switch.php",
dataType: "html",
type: "POST",
data: "order_id=" + order_id + "&key=" + key,
}).done(function(ajax_data) {
console.log("ajax-done: "+ajax_data);
if( key == "turn_reactive" ){
setTimeout(
function(){
elm_refresh(".tab[data-tab='lifebook']","");
}
, 10);
}
}).fail(function(data_json) {
console.log("fail");
});
}
}
$(document).on("click", "dl.remind_lifebook_request div.switch", function(){
var target = $(this);
var order_id = target.closest("body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry").attr("id");
setTimeout(
function(){
if( target.hasClass('on') ){
remind_lifebook_request_switch(order_id,"turn_on");
}else{
remind_lifebook_request_switch(order_id,"turn_off");
}
}
, 10);
})
$(document).on("click", "dl.remind_lifebook_request span.reactive", function(){
var target = $(this);
var order_id = target.closest("body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry").attr("id");
setTimeout(
function(){
remind_lifebook_request_switch(order_id,"turn_reactive");
}
, 10);
})
$(document).on("change", "div.lifebook_request_reminder_settings div.input_date input[name='input_remind_lifebook_request_limit_date']", function(){
var target = $(this);
var order_id = target.closest("body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry").attr("id");
var value = target.val();
setTimeout(
function(){
console.log(order_id);
console.log(value);
if( typeof ajax_remind_lifebook_request_date_edit != "undefined" ){
ajax_remind_lifebook_request_date_edit.abort();
}
console.log("ajax_start : ajax_remind_lifebook_request_date_edit");
ajax_remind_lifebook_request_date_edit = $.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_remind_lifebook_request_date_edit.php",
dataType: "html",
type: "POST",
data: "order_id=" + order_id + "&key=date_change&value=" + value,
}).done(function(ajax_data) {
console.log("ajax-done: "+ajax_data);
}).fail(function(data_json) {
console.log("fail");
});
}
, 10);
})
$(document).on("change", "div.index.db.users div.col.checkbox input[type='checkbox']", function(){
if( $(this).attr("data-target") != "" ){
var target_key = $(this).attr("data-target");
console.log(target_key);
if( $(this).prop('checked') ) {
if( target_key == "all" ){
console.log("check all on");
$("div.index.db.users div.col.checkbox input[type='checkbox']").prop("checked",true);
}
} else {
if( target_key == "all" ){
console.log("check all off");
$("div.index.db.users div.col.checkbox input[type='checkbox']").prop("checked",false);
}
}
}
return false;
})
$(document).on("change", "div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control > div.input_wrapper.select > label.input_select > select", function(e) {
var target_val = $(this).val();
console.log(target_val);
if( target_val != "" ){
$("div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control").addClass("selected");
$("div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control").attr("data-tag_user",target_val);
}else{
$("div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control").removeClass("selected");
$("div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control").removeAttr("data-tag_user");
}
return false;
});
$(document).on("click", "div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control.selected > div.input_wrapper.select > div.btn", function(){
var checked_num = $("div.index.db.users div.col.checkbox > div.check_single > input[type='checkbox']:checked").length;
if( checked_num != 0 ){
var tag_user_val = $("div.index.db.users > ul > li.header.user.controller > div.inner > div.col.checkbox_control").attr("data-tag_user");
var tag_user_val_arr = tag_user_val.split("/");
var tag_user_val_label = tag_user_val_arr[0];
var tag_user_val_actiontype = tag_user_val_arr[1];
var tag_user_val_str = tag_user_val_arr[2];
var result = 0;
if( tag_user_val_actiontype == "add" ){
result = window.confirm('適用対象'+checked_num+'点にタグ「'+tag_user_val_str+'」を付与しますか?');
}
if( tag_user_val_actiontype == "remove" ){
result = window.confirm('適用対象'+checked_num+'点からタグ「'+tag_user_val_str+'」を除去しますか?');
}
if( result ) {
var target_arr = [];
$("div.index.db.users div.col.checkbox > div.check_single > input[type='checkbox']:checked").each(function(i){
target_arr[i] = $(this).attr("data-target");
});
console.log('tag_label: '+ tag_user_val_label);
console.log('tag_actiontype: '+ tag_user_val_actiontype);
console.log('tag_str: '+ tag_user_val_str);
console.log('target_arr: '+ target_arr);
$.ajax({
type: "POST",
url: "https://lifesnap.jp/elements_php_mypage/ajax_tag_control.php",
scriptCharset: 'UTF-8',
data: {
'tag_label': tag_user_val_label,
'tag_actiontype': tag_user_val_actiontype,
'tag_str': tag_user_val_str,
'target_arr': target_arr
},
dataType: "json"
}).done(function(data_json) {
var status = data_json.status;
var elms = data_json.elm;
console.log(status);
console.log(elms);
for (var val in elms) {
console.log(val + ': ' + elms[val])
var target_id = val;
var target_tagelms = elms[val];
$("div.tags[data-account_id='"+target_id+"']").empty().append(target_tagelms);
}
}).fail(function(data_json) {
console.log("fail");
console.log(data_json);
});
}
}else{
alert("適用対象にチェックを入れてください");
}
})
$(window).hashchange( function(){
var hash = location.hash;
hashchange_action(hash);
})
window.hashchange_action = function(hash){
if( hash.indexOf( "#/tab/" ) != -1 ){
var key = hash.replace( /^#\/tab\//, '' );
tab_switch(key);
}
if( $(".calendar_wrapper")[0] && hash.indexOf( "#/fc/" ) != -1 ){
var key = hash.replace( /^#\/fc\//, '' );
console.log(key);
if( $(".calendar_wrapper")[0] ){
if( key.endsWith("-w") ){
key = key.replace("-w","");
if( ck_ymd(key) ){
$(".calendar_wrapper").fullCalendar("changeView", "agendaWeek", key);
}
}else{
if( ck_ymd(key) ){
$(".calendar_wrapper").fullCalendar("changeView", "agendaDay", key);
}else if( ck_ym(key) ){
$(".calendar_wrapper").fullCalendar("changeView", "month", key);
}
}
}
}
}
function tab_switch(key){
console.log(key);
var sub_key = "";
var elm_refresh_flg = 1;
if( key.indexOf( "message/" ) != -1 ){
var key_arr = key.split('/');
var key = key_arr[0];
if( key_arr[1] == "todo_list" ){
elm_refresh_flg = 0;
}else{
sub_key = key_arr[1];
}
}
if( key.indexOf( "summary/" ) != -1 ){
var key_arr = key.split('/');
var key = key_arr[0];
if( key_arr[1] == "select_print_2L" ){
sub_key = key_arr[1];
}
}
if( key.indexOf( "lifebook/" ) != -1 ){
var key_arr = key.split('/');
var key = key_arr[0];
if( key_arr[1] == "request" ){
sub_key = key_arr[1];
}
if( key_arr[1] == "lifebook_select_photo" ){
sub_key = key_arr[1];
}
}
if( elm_refresh_flg == 1 ){
var target = key;
var switch_wrapper = $('nav.tab_switch');
var tab_wrapper = switch_wrapper.parent();
switch_wrapper.find("li").removeClass('active');
$("[href='#/tab/"+target+"']").parent("li").addClass('active');
tab_wrapper.find(".tab").removeClass('active');
if( tab_wrapper.find(".tab[data-tab='"+target+"']")[0] ){
var target_selector = ".tab[data-tab='"+target+"']";
var tab_elm = tab_wrapper.find(target_selector);
tab_elm.addClass('active');
console.log("elm_refresh: "+target_selector+" "+sub_key);
elm_refresh(target_selector,sub_key);
}else{
console.log(target+" elm not found");
}
}
}
function refresh(key){
var href = location.href;
// if( key == "logout" ){
// window.location = href;
// }
if( typeof ajax_request_refresh != "undefined" ){
ajax_request_refresh.abort();
}
console.log("ajax_start : ajax_request_refresh");
ajax_request_refresh = $.ajax({
url: href,
dataType: "html",
}).done(function(ajax_data) {
var get_wrapper_elm = $('#wrapper', $('
').prepend(ajax_data));
$("#wrapper").remove();
$("body").prepend(get_wrapper_elm);
$("#container > div#base > article").addClass("ajax");
setTimeout(
function(){
if( key == "login" ){
$("#wrapper").addClass("logged_in");
if( location.hash ){
var hash = location.hash;
hashchange_action(hash);
}
}
if( key == "logout" ){
$("#wrapper").removeClass("logged_in");
}
}
, 10);
setTimeout(
function(){
var scrollto_val = 0;
scrollto(scrollto_val);
img_load();
}
, 100);
}).fail(function(data_json) {
console.log("fail");
});
}
function logout(){
$("html").addClass("logging_out");
$.ajax({
type: "POST",
url: "https://lifesnap.jp/elements_php_mypage/ajax_logout.php",
dataType: "json"
}).done(function(data_json) {
console.log("done");
console.log(data_json);
var elm_body = data_json.elm_body;
var status = data_json.status;
if( elm_body != "" ){
$("body").append(elm_body);
var target = $(".mes.session.complete.popup.logout");
target.delay(100).queue(function(){
$(this).addClass("show").dequeue();
});
target.delay(4000).queue(function(){
$(this).removeClass("show").dequeue();
});
target.delay(3000).queue(function(){
$(this).remove().dequeue();
});
}
refresh("logout");
}).fail(function(data_json) {
console.log("fail");
});
}
$(document).on("click", "form.nisor:not(.loading) input.submit", function(){
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("keydown", "form.nisor:not(.loading) input", function(e) {
if ( e.which == 13 ) {
post( $(this).closest('form.nisor'), "submit" );
return false;
}
});
$(document).on("click", "form.nisor:not(.loading) div.return", function(){
post( $(this).closest('form.nisor'), "return" );
return false;
});
$(document).on("click", "form.nisor:not(.loading) .form_switch", function(){
var switch_to = $(this).attr("data-form_switch");
form_switch( $(this).closest('form.nisor'), switch_to );
return false;
});
$(document).on("click", "li.class_logout > *", function(){
logout();
return false;
});
// $(document).on("keyup", "form.nisor:not(.loading) input[data-input_type='postcode']", function(e) {
// var val = $(this).val().replace( "-", "" );
// var str_length = val.length;
// var input_id_base = $(this).attr("id").replace("address_postcode","");
// if( str_length == 7 ){
// var important = $(this).attr("data-important");
// postcode_input(val,important,input_id_base);
// }
// });
$(document).on("change", "div.index.entries > ul > li.thm > div.inner > div.form > div.body > article.form_wrapper > form.nisor:not(.loading) input", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("keydown", "div.index.entries > ul > li.thm > div.inner > div.form > div.body > article.form_wrapper > form.nisor:not(.loading) input", function(e) {
if ( e.which == 13 ) {
post( $(this).closest('form.nisor'), "submit" );
return false;
}
});
$(document).on("change", "div.index.entries > ul > li.thm > div.inner > div.form > div.body > article.form_wrapper > form.nisor:not(.loading) textarea", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("change", "div.index.media > ul > li.thm > div.inner > div.form > div.body > article.form_wrapper > form.nisor:not(.loading) input", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("change", "div.index.media > ul > li.thm > div.inner > div.form > div.body > article.form_wrapper > form.nisor:not(.loading) textarea", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("change", "article.mypage\\/staff\\/orders\\/ > div.body.entry .flag_switch article.form_wrapper > form.nisor:not(.loading) input", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("change", "body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry > div.detail.side article.form_wrapper > form.nisor:not(.loading) input", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
$(document).on("change", "body > #wrapper.logged_in.staff #entry > div.inner > article.mypage\\/staff\\/orders\\/ > div.body.entry > div.detail.side article.form_wrapper > form.nisor:not(.loading) select", function(e) {
post( $(this).closest('form.nisor'), "submit" );
return false;
});
function scrollto(val){
$('#container > div#base').stop().animate({
scrollTop: val
}, 1000, "easeOutQuint",function(){
});
}
function scrollto_entry(val){
$('#entry > div.inner').stop().animate({
scrollTop: val
}, 1000, "easeOutQuint",function(){
});
}
function move_err(form){
if( form.find(".form_row.err:not(.save)")[0] ){
var target = form.find(".form_row.err:not(.save)").first();
if( form.closest(".inline_scroll")[0] ){
var scroll_val = target.position().top + form.closest(".inline_scroll").scrollTop()+form.offset().top;
form.closest(".inline_scroll").stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}else if( form.closest("#base")[0] ){
var scroll_val = target.position().top + $("body #container > div#base").scrollTop()+form.offset().top;
scrollto(scroll_val);
}else{
var scroll_val = target.position().top + $("body #entry > div.inner").scrollTop()+form.offset().top;
scrollto_entry(scroll_val);
}
}
}
function move_form_top(form){
if( form[0] ){
var target = form;
if( form.closest(".inline_scroll")[0] ){
var scroll_val = form.closest(".inline_scroll").scrollTop()+form.offset().top-80;
form.closest(".inline_scroll").stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}else if( form.closest("#base")[0] ){
var scroll_val = $("body #container > div#base").scrollTop()+form.offset().top-80;
scrollto(scroll_val);
}else{
var scroll_val = $("body #entry > div.inner").scrollTop()+form.offset().top-80;
scrollto_entry(scroll_val);
}
}
}
function move_form_to(form, target){
if( form.find(".form_row.row_"+target)[0] ){
var target = form.find(".form_row.row_"+target).first();
if( target.closest("section")[0] ){
var target_section = target.closest("section");
var wrapper = target_section.parent();
wrapper.children("section").removeClass("active");
target_section.addClass("active");
$("div.content_frame.float").attr("data-step", target_section.attr("data-step") );
target_section.closest("article").attr("data-step", target_section.attr("data-step") );
}
if( form.closest(".inline_scroll")[0] ){
var scroll_val = target.position().top + form.position().top - 100;
form.closest(".inline_scroll").stop().animate({
scrollTop: scroll_val
}, 1000, "easeOutQuint",function(){
});
}else if( form.closest("#base")[0] ){
var scroll_val = target.position().top + $("body #container > div#base").scrollTop()+form.offset().top - 100;
base_scrollto(scroll_val);
}else if( form.closest("#entry")[0] ){
var scroll_val = target.position().top + $("body #entry > div.inner").scrollTop()+form.offset().top - 100;
entry_scrollto(scroll_val);
}else{
var scroll_val = target.first().position().top - 100;
scrollto(scroll_val);
}
form.removeClass("step_return");
}
}
function stringZentohan(data){
data.replace(/[A-Za-z0-9]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
return data;
}
function postcard_format(zip){
return zip.substr(0, 3)+'-'+zip.substr(3);
}
window.postcode_input = function(val,important,input_id_base,btn_elm){
btn_elm.addClass("loading");
var zip = stringZentohan(val);
var important_arr = important.split('/');
var key_postcode = important_arr[0];
var key_state = important_arr[1];
var key_city = important_arr[2];
// var url = 'https://api.zipaddress.net?callback=?';
// var query = {'zipcode': zip};
// $.getJSON(url, query, function(json){
// $('#'+input_id_base+key_postcode).val(postcard_format(zip));
// $('#'+input_id_base+key_state).val(json.pref);
// $('#'+input_id_base+key_city).val(json.address);
// });
var url = 'https://lifesnap.jp/process/api/zipcode?code=';
var query = {'zipcode': zip};
console.log(url+zip);
$.getJSON(url+zip, function(json){
console.log(json);
if( json.results != null ){
$('#'+input_id_base+key_postcode).val(postcard_format(zip));
$('#'+input_id_base+key_state).val(json.results[0].address1);
$('#'+input_id_base+key_city).val(json.results[0].address2+json.results[0].address3);
}else{
alert("住所情報が見つかりませんでした")
}
setTimeout(
function(){
btn_elm.removeClass("loading");
}
, 500);
});
}
$(document).on("click", "a.toggle", function() {
var target_url = $(this).attr("href");
var target_from = "div#entry > div.inner > article > div.body";
var target_to = "#" + $(this).attr("data-target");
toggle_entry(target_url, target_from, target_to);
return false;
});
window.update_thm_count = function(thm_wrapper,sort_by){
var count_i = 1;
var sort_id_arr = [];
var sort_count_arr = [];
thm_wrapper.children("li.thm.sort").each(function(i){
sort_id_arr[i] = $(this).attr("id").replace("list_","");
$(this).attr("data-count",count_i);
if( sort_by == "DESC" ){
sort_count_arr[i] = thm_wrapper.children("li.thm.sort").length-count_i+1;
}else{
sort_count_arr[i] = count_i;
}
count_i += 1;
});
var formData = new FormData();
formData.append("target_ids" , sort_id_arr);
formData.append("target_counts" , sort_count_arr);
formData.append("mode" , "sort");
$.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_media_control.php",
type: 'POST' ,
data: formData ,
processData: false ,
contentType: false ,
success: function(data) {
console.log(data);
} ,
failure : function(data) {
// アップロード失敗
}
});
}
window.upload_multiple_start = function(target, input_files){
var wrapper = target.closest("div.body");
wrapper.addClass("image_loading");
var err_mes = "";
var files = [];
var input_files_length = 1;
if( target.attr("maxlength") ){
input_files_length = input_files.length;
}
var files_i = 0;
for ( i=0; i < input_files_length; i++ ) {
if( input_files[i]["type"] == "image/jpeg" || input_files[i]["type"] == "image/gif" || input_files[i]["type"] == "image/png" ){
files[files_i] = input_files[i];
files_i += 1;
}
};
var files_length = files.length;
if( files_length == 0 ){
err_mes += "画像ファイル(JPG, GIF, PNG)を指定してください";
}
if( err_mes == "" ){
create_multiple(target,files);
}else{
alert(err_mes);
}
}
window.create_multiple = function(target,files){
var files_length = files.length;
var entry_id = target.closest("div.body").attr("id");
var path = target.attr("data-path");
var formData = new FormData();
formData.append("files_length" , files_length);
formData.append("parent_id", entry_id);
formData.append("path", path);
formData.append("mode" , "create");
$.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_media_control.php",
type: 'POST' ,
data: formData ,
dataType: "json",
processData: false ,
contentType: false ,
success: function(data_json) {
// メディア項目追加成功
console.log(data_json);
var media_ids = data_json.matter_id;
var href = "https://lifesnap.jp/mypage/entry/"+entry_id;
console.log("ajax_start : ajax_request_index_refresh");
ajax_request_index_refresh = $.ajax({
url: href,
dataType: "html",
}).done(function(ajax_data) {
var new_elm;
for ( i=0; media_ids[i]; i++ ) {
var get_elm = $("#"+entry_id+" div.index.media > ul > li#list_"+media_ids[i], $('
').prepend(ajax_data));
$("#"+entry_id+" div.index.media > ul > li.thm.create").before(get_elm);
new_elm = $("#"+entry_id+" div.index.media > ul > li#list_"+media_ids[i]);
new_elm.addClass("created");
var target_url = new_elm.find("div.inner > a").attr("href");
var target_from = "div#entry > div.inner > article > div.body";
var target_to = "#" + new_elm.find("div.inner > a").attr("data-target");
toggle_media(target_url, target_from, target_to);
};
var get_elm_create = $("#"+entry_id+" div.index.media > ul > li.thm.create", $('
').prepend(ajax_data));
$("#"+entry_id+" div.index.media > ul > li.thm.create").remove();
new_elm.after(get_elm_create);
update_thm_count($("#"+entry_id+" div.index.media > ul"));
}).fail(function(data_json) {
console.log("fail");
});
upload_multiple(target,entry_id,media_ids,files,0);
} ,
failure : function(data) {
// アップロード失敗
}
});
}
window.upload_multiple = function(target,entry_id,media_ids,files,i){
$("#"+media_ids[i]).addClass("image_loading");
var files_length = files.length;
var path = target.attr("data-path")+"image/";
var formData = new FormData();
formData.append("media_id", media_ids[i]);
formData.append("path", path);
formData.append("uploadfile" , files[i]);
formData.append("count", i+1);
formData.append("mode" , "upload");
$.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_media_control.php",
type: 'POST' ,
data: formData ,
processData: false ,
contentType: false ,
success: function(data) {
// アップロード成功
if( i+1 < files_length ){
upload_multiple(target,entry_id,media_ids,files,i+1);
}else{
target.val('');
}
var href = data;
if( typeof ajax_request_image_refresh != "undefined" ){
ajax_request_image_refresh.abort();
}
console.log("ajax_start : ajax_request_image_refresh");
ajax_request_image_refresh = $.ajax({
url: href,
dataType: "html",
}).done(function(ajax_data) {
var get_elm = $("#"+media_ids[i]+" > div.img", $('
').prepend(ajax_data));
$("#"+media_ids[i]+" > div.img").remove();
$("#"+media_ids[i]).prepend(get_elm);
img_load();
setTimeout(
function(){
$("#"+media_ids[i]).removeClass("image_loading");
$("li#list_"+media_ids[i]).removeClass("created");
}
, 1000);
if( i+1 == files_length ){
update_thm_count($("#"+entry_id+" div.index.media > ul"));
$("#"+entry_id).removeClass("image_loading");
}
}).fail(function(data_json) {
console.log("fail");
});
} ,
failure : function(data) {
// アップロード失敗
}
});
}
// imagefield drop
$(document).on("drop", 'div.media_drop.multiple > label.droparea', function(e) {
e.preventDefault();
$(this).removeClass("dragover droppable");
var target = $(this).children("input");
var input_files = e.originalEvent.dataTransfer.files;
upload_multiple_start(target, input_files);
});
$(document).on("change", 'div.media_drop.multiple > label.droparea > input[name="upload"]', function() {
var target = $(this);
var input_files = $(this).prop("files");
upload_multiple_start(target, input_files);
});
window.upload_start = function(target, input_files){
var wrapper = target.closest("div.body");
wrapper.addClass("image_loading");
var err_mes = "";
var files = [];
if( input_files[0]["type"] == "image/jpeg" || input_files[0]["type"] == "image/gif" || input_files[0]["type"] == "image/png" ){
files[0] = input_files[0];
}
var files_length = files.length;
if( files_length == 0 ){
err_mes += "画像ファイル(JPG, GIF, PNG)を指定してください";
}
if( err_mes == "" ){
upload(target,files);
}else{
alert(err_mes);
}
}
window.upload = function(target,files){
var media_id = target.closest("div.body").attr("id");
var path = target.attr("data-path");
var formData = new FormData();
formData.append("media_id", media_id);
formData.append("path", path);
formData.append("uploadfile" , files[0]);
formData.append("count", 1);
formData.append("mode" , "upload");
$.ajax({
url: "https://lifesnap.jp/elements_php_mypage/ajax_media_control.php",
type: 'POST' ,
data: formData ,
processData: false ,
contentType: false ,
success: function(data) {
// console.log(data);
// アップロード成功
target.val('');
update_thm_count(target.closest("div.index.media > ul"));
var href = data;
if( typeof ajax_request_image_refresh != "undefined" ){
ajax_request_image_refresh.abort();
}
console.log("ajax_start : ajax_request_image_refresh");
ajax_request_image_refresh = $.ajax({
url: href,
dataType: "html",
}).done(function(ajax_data) {
var get_elm = $("#"+media_id+" > div.img", $('
').prepend(ajax_data));
$("#"+media_id+" > div.img").remove();
$("#"+media_id).prepend(get_elm);
img_load();
$("#"+media_id).removeClass("image_loading");
}).fail(function(data_json) {
console.log("fail");
});
} ,
failure : function(data) {
// アップロード失敗
}
});
}
window.num_pyphen = function (str) {
return str.replace(/[0-9]/g, function (s) {
return String.fromCharCode(s.charCodeAt(0) - 65248);
}).replace(/[‐-―ー]/g, '-').replace(/[^\d\-]/g, '');
};
window.getNumberFormat = function (number, decimals) {
if (! decimals) {
var decimals = 0;
}
// 位をずらし四捨五入
var place = Math.pow(10, decimals);
var number = Math.round(number * place) / place;
// 整数と小数に分割
var num = number.toString().split('.');
// カンマ付与
var integer = num[0].replace(/([0-9]{1,3})(?=(?:[0-9]{3})+$)/g, '$1,');
var str;
if (num[1]) {
if (num[1].length < decimals) {
// 指定桁数まで0を追加
var zero = decimals - num[1].length;
for (var i = 0; i < zero; i++) {
num[1] = num[1] + '0';
}
}
str = integer + '.' + num[1];
} else {
str = integer;
}
return str;
}
// imagefield drop
$(document).on("drop", 'div.media_drop.single > label.droparea', function(e) {
e.preventDefault();
$(this).removeClass("dragover droppable");
var target = $(this).children("input");
var input_files = e.originalEvent.dataTransfer.files;
upload_start(target, input_files);
});
$(document).on("change", 'div.media_drop.single > label.droparea > input[name="upload"]', function() {
var target = $(this);
var input_files = $(this).prop("files");
upload_start(target, input_files);
});
$(document).on("click", "div.switch[data-on][data-off]", function(){
var wrapper = $(this);
var target_input_name = $(this).attr("data-target_input_name");
var val_on = $(this).attr("data-on");
var val_off = $(this).attr("data-off");
var target = $("input[name='"+target_input_name+"']");
if( wrapper.hasClass('on') ){
wrapper.removeClass("on");
wrapper.addClass("off");
target.val(val_off).change();
}else{
wrapper.removeClass("off");
wrapper.addClass("on");
target.val(val_on).change();
}
})
$(document).on("click", "div.order_trash > div.trash", function(){
var target_id = $(this).attr("data-target");
var result = window.confirm('案件ID「'+target_id+'」を削除しますか?');
if( result ) {
if( target_id != "" ){
var formData = new FormData();
formData.append("order_id" , target_id);
$.ajax({
type: "POST",
url: "https://lifesnap.jp/elements_php_mypage/ajax_order_trash.php",
data: formData,
processData: false,
contentType: false,
}).done(function(account_id) {
if( $("#thm_"+target_id)[0] ){
$("#thm_"+target_id).addClass("trash");
}else{
var href = "https://lifesnap.jp/mypage/staff/users/"+account_id+"#/tab/orderlist";
pjax( href, "", "" );
}
}).fail(function(data_json) {
console.log("fail");
});
}
}
});
$(document).on("click", "div.order_create > div.create", function(){
var target_id = $(this).attr("data-target");
var result = window.confirm('ユーザーID「'+target_id+'」に新規案件を追加しますか?');
if( result ) {
if( target_id != "" ){
var formData = new FormData();
formData.append("user_id" , target_id);
$.ajax({
type: "POST",
url: "https://lifesnap.jp/elements_php_mypage/ajax_order_create.php",
data: formData,
processData: false,
contentType: false,
}).done(function(order_id) {
var href = "https://lifesnap.jp/mypage/staff/orders/"+order_id+"#/tab/summary";
pjax( href, "", "" );
}).fail(function(data_json) {
console.log("fail");
});
}
}
});
$(document).on("click", "div.modal > div.overlay, div.modal > div.inner > div.close, div.modal > div.inner > a", function(){
var target = $(this).closest(".modal");
target.addClass("fadeout");
setTimeout(
function(){
target.removeClass("active fadeout");
}
, 500);
});
$(document).on("click", "div.btn.todo_list", function(){
var target = $("#"+$(this).attr("data-target"));
target.addClass("active");
return false;
});
$(document).on("click", "a[href$='#\\/tab\\/message\\/todo_list']", function(){
if( $("#todo_list")[0] ){
var target = $("#todo_list");
target.addClass("active");
}
return false;
});
$(document).on("click", ".fc_link", function(){
var val = $(this).text();
var key = "";
if( val.endsWith("-w") ){
key = "-w";
}
console.log("val: "+val);
if( val == "" ){
var url = "https://lifesnap.jp/mypage/staff/calendar/";
window.open(url,"calendar");
}else if( ck_ymd(val) ){
var vYear = val.substr(0, 4) - 0;
var vMonth = val.substr(5, 2) - 0;
var vDay = val.substr(8, 2) - 0;
var hash_str = vYear+"-"+padZero2(vMonth)+"-"+padZero2(vDay);
console.log(hash_str);
var url = "https://lifesnap.jp/mypage/staff/calendar/#/fc/"+hash_str+key;
window.open(url,"calendar");
}else if( ck_ym(val) ){
var vYear = val.substr(0, 4) - 0;
var vMonth = val.substr(5, 2) - 0;
var hash_str = vYear+"-"+padZero2(vMonth);
console.log(hash_str);
var url = "https://lifesnap.jp/mypage/staff/calendar/#/fc/"+hash_str;
window.open(url,"calendar");
}else{
console.log("not a date");
}
});
$(document).on("click", ".fc_link_kitsuke", function(){
var val = $(this).text();
var key = "";
if( val.endsWith("-w") ){
key = "-w";
}
console.log("val: "+val);
if( val == "" ){
var url = "https://lifesnap.jp/mypage/staff/calendar-kitsuke/";
window.open(url,"calendar-kitsuke");
}else if( ck_ymd(val) ){
var vYear = val.substr(0, 4) - 0;
var vMonth = val.substr(5, 2) - 0;
var vDay = val.substr(8, 2) - 0;
var hash_str = vYear+"-"+padZero2(vMonth)+"-"+padZero2(vDay);
console.log(hash_str);
var url = "https://lifesnap.jp/mypage/staff/calendar-kitsuke/#/fc/"+hash_str+key;
window.open(url,"calendar-kitsuke");
}else if( ck_ym(val) ){
var vYear = val.substr(0, 4) - 0;
var vMonth = val.substr(5, 2) - 0;
var hash_str = vYear+"-"+padZero2(vMonth);
console.log(hash_str);
var url = "https://lifesnap.jp/mypage/staff/calendar-kitsuke/#/fc/"+hash_str;
window.open(url,"calendar-kitsuke");
}else{
console.log("not a date");
}
});
$(document).on("click", "div#todo_list.modal > div.inner > div.inline_scroll > div.content > dl > dt", function(){
var target = $(this).parent("dl").attr("data-target");
if( $(this).closest(".modal").hasClass(target+"_active") ){
$(this).closest(".modal").removeClass(target+"_active");
}else{
$(this).closest(".modal").addClass(target+"_active");
}
return false;
});
$(document).on("click", "dl.slip_number > dd", function(){
var str = $(this).text();
window.open("http://jizen.kuronekoyamato.co.jp/jizen/servlet/crjz.b.NQ0010?id="+str,"_blank","");
return false;
})
$(document).on("click", "form.nisor:not(.loading) div.form_row.row_lifebook_cut_request div.request_lifebook_wrapper > a.request_lifebook", function(){
post( $(this).closest('form.nisor'), "save" );
result = window.confirm('写真選択画面へ移動します');
if( result ) {
location.href = $(this).attr("href");
}
return false;
});
var hash = location.hash;
hashchange_action(hash);
});
});