;(function($){ $(function(){ function shop_comp_check(){ } shop_comp_check(); function gal_comp_check(){ var btn = $('.fav_add_gal_btn_elm'), check_s, check_g; if(btn.length > 0){ check_s = {} check_g = {} check_s[0] = null; check_g[0] = null; btn.each(function(){ var $t = $(this); if(check_s[$t.attr('data-ddeli-shopcd')] == 1 && check_g[$t.attr('data-ddeli-galcd')] == 1){ $t.addClass('fav_btn_comp'); } }); check_s = {} check_g = {} check_s[0] = null; check_g[0] = null; btn.each(function(){ var $t = $(this); if(check_s[$t.attr('data-tsmp-shopcd')] == 1 && check_g[$t.attr('data-tsmp-galcd')] == 1){ $t.addClass('fav_btn_comp'); } }); } } gal_comp_check(); var fav_ajax_flg = false, fav_cnt_view_elm = $('.fav_cnt_view_elm'); function fav_start(){ fav_ajax('get_cnt'); $('.add_favshop_btn').unbind('.fav_add').bind('click.fav_add',function(){ $t = $(this); if($t.hasClass('fav_btn_comp') || $t.hasClass('fav_btn_working')){ return false; } else{ $t.addClass('fav_btn_working'); } var shop_cd = $t.attr('data-cd'); fav_ajax('add_shop',shop_cd,$t); }); $('.fav_add_gal_btn_elm').unbind('.fav_add').bind('click.fav_add',function(){ var $t = $(this); if($t.hasClass('fav_btn_comp') || $t.hasClass('fav_btn_working')){ return false; } else{ $t.addClass('fav_btn_working'); } var dd_shopcd = $t.attr('data-ddeli-shopcd'), dd_galcd = $t.attr('data-ddeli-galcd'), tsmp_shopcd = $t.attr('data-tsmp-shopcd'), tsmp_galcd = $t.attr('data-tsmp-galcd'); fav_ajax('add_gal',[dd_shopcd,dd_galcd,tsmp_shopcd,tsmp_galcd],$t); }); } function fav_ajax(func,val,$t){ if(func != 'get_cnt'){ if(fav_ajax_flg !== false){ return false; } else{ fav_ajax_flg = true; } } if(func == 'get_cnt'){ var data = {'func' : 'get_cnt'}; }else if(func == 'add_gal'){ var data = { 'func' : 'add_gal', 'dd_shopcd' : val[0], 'dd_galcd' : val[1], 'tsmp_shopcd' : val[2], 'tsmp_galcd' : val[3] }; }else if(func == 'add_shop'){ var data = { 'func' : 'add_shop', 'cd' : val }; } $.ajax({ url: '/sp/common/fav/common_fav_ajax.php', type: 'POST', timeout: 60000, cache: false, dataType: 'json', data: data, success: function(data, textStatus){ if(func == 'get_cnt'){ fav_get_cnt(data); } else{ fav_add(data,$t); } }, error: function(xhr, textStatus, errorThrown){ if(func == 'get_cnt'){ fav_get_cnt(null); } else{ fav_add(null,$t); } }, beforeSend: function(xhr){ xhr.setRequestHeader('FAV_AJAX_TOKEN','bigdesire'); }, complete: function(){ fav_ajax_flg = false; if($t){ $t.removeClass('fav_btn_working'); } } }); } function fav_get_cnt(data){ if(!data){ data = 'エラー'; } else if(data.status == 'success' && (data.cnt || data.cnt === 0)){ if(data.cnt >= 100){ fav_cnt_view_elm.html('').closest('#shop_fav_btn, #top_fav_btn').addClass('fav_max'); }else{ fav_cnt_view_elm.html(data.cnt); } }else{ data = 'エラー'; } } function fav_add(data,$t){ if(!data){ alert('追加に失敗しました。'); } else if(data.status == 'success'){ $t.addClass('fav_btn_comp'); if(data.rewrite != 1){ if(fav_cnt_view_elm.html() == '99'){ fav_cnt_view_elm.html('').closest('#shop_fav_btn, #top_fav_btn').addClass('fav_max'); }else{ fav_cnt_view_elm.html(parseInt(fav_cnt_view_elm.html(),10)+1); } } } else if(data.status == 'over'){ alert('登録数が上限の50件に達しています。'); } else{ alert('追加に失敗しました。'); } } fav_start(); }); })(jQuery);