$(function() { $(document).ready(function () { window.post = function(form,access){ 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{ result = 1; } if( result ) { form.addClass("loading"); var params = form.serialize(); console.log(params + "&access=" + access); $.ajax({ type: "POST", url: "https://i-llhome.jp/elements_php_form/ajax_post.php", scriptCharset: 'UTF-8', data: params + "&access=" + access, dataType: "json" }).done(function(data_json) { // alert(data_json.debug); console.log("done"); console.log(data_json); 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(status); // alert(form_elm); // alert(elm_body); if( form_elm != "" ){ form.empty(); form.append(form_elm); } 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"); 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" ){ move_form_top(form); if( form_id == "account_login" ){ reflesh("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_reflesh = function(target_selector){ $(target_selector+"> *").css({"opacity":0}); var href = 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_elm = $(target_selector+' > *', $('
').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: "https://i-llhome.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: "https://i-llhome.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 postcard_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(postcard_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: "https://i-llhome.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: "https://i-llhome.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 = "https://i-llhome.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: "https://i-llhome.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: "https://i-llhome.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(); } }) }); });