').prepend(ajax_data));
$(target_selector).empty();
$(target_selector).prepend(get_elm);
$(target_selector).addClass("ajax");
}).fail(function(data_json) {
console.log("fail");
});
}
function form_switch(form,switch_to){
form.addClass("loading");
var params = form.serialize();
$.ajax({
type: "POST",
url: "http://kasashima.co.jp/elements_php_form/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_reflesh(target_selector);
}else{
console.log(target+" elm not found");
}
})
function reflesh(key){
var href = location.href;
// if( key == "logout" ){
// window.location = href;
// }
if( typeof ajax_request_reflesh != "undefined" ){
ajax_request_reflesh.abort();
}
ajax_request_reflesh = $.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( 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: "http://kasashima.co.jp/elements_php_form/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();
});
}
reflesh("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", "div#navi > nav > ul li.class_logout .menu_btn", 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.account\\/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;
});
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")[0] ){
var target = form.find(".form_row.err").first();
if( form.closest("#base")[0] ){
var scroll_val = target.position().top + $("body #container > div#base").scrollTop()+form.offset().top - 100;
scrollto(scroll_val);
}else{
var scroll_val = target.position().top + $("body #entry > div.inner").scrollTop()+form.offset().top - 100;
scrollto_entry(scroll_val);
}
}
}
function move_form_top(form){
if( form[0] ){
var target = form;
var scroll_val = form.position().top - 100;
scrollto(scroll_val);
}
}
function stringZentohan(data){
data.replace(/[A-Za-z0-9]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
return data;
}
function postcode_format(zip){
return zip.substr(0, 3)+'-'+zip.substr(3);
}
function postcode_input(val,important,input_id_base){
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(postcode_format(zip));
$('#'+input_id_base+key_state).val(json.pref);
$('#'+input_id_base+key_city).val(json.address);
});
}
$(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: "http://kasashima.co.jp/elements_php_form/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: "http://kasashima.co.jp/elements_php_form/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 = "http://kasashima.co.jp/account/entry/"+entry_id;
ajax_request_index_reflesh = $.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: "http://kasashima.co.jp/elements_php_form/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_reflesh != "undefined" ){
ajax_request_image_reflesh.abort();
}
ajax_request_image_reflesh = $.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: "http://kasashima.co.jp/elements_php_form/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_reflesh != "undefined" ){
ajax_request_image_reflesh.abort();
}
ajax_request_image_reflesh = $.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();
}
})
});
});