//================================= alltrades_shop = { basket: new Array(), compare: new Array(), favorites: new Array(), main_prices: new Array(), price_mods: new Array(), pricelist_fields: '', pricelist_vals: new Array(), pricelist_store: new Array(), renew_timer: null, step: -1, show_prev: true, loading: false, basket_renew_no_items: false, category_id: 0, items_loading_flag: false, items_on_page: 8, items_os: 0, show_item_modal: function (id){ alltrades_shop.start_loading(); $.get('/?show=modal_page&mode=atc&name=item_modal&item_id='+id, function(html){ alltrades_shop.show_dialog(html); alltrades_shop.price_recount(id); }); }, get_item_variant: function(id) { var selected_variant = 0; var var_price = parseInt(window.location.hash.substr(window.location.hash.indexOf('variant=') + 8)); for(var i in alltrades_shop.pricelist_vals[id]) { if(alltrades_shop.pricelist_vals[id][i] == var_price) { selected_variant = i; } } var variants = []; var tmp0 = alltrades_shop.pricelist_fields.split(','); for(k in tmp0) { let field_id = tmp0[k]; if(variants.length == 0) { $('#basket_opt_' + id + '_' + field_id + ' option').each(function() { variants[variants.length] = field_id + ':' + $(this).attr('value'); }); } else { var variants2 = []; for(j in variants) { $('#basket_opt_' + id + '_' + field_id + ' option').each(function() { variants2[variants2.length] = variants[j] + '|' + field_id + ':' + $(this).attr('value'); }); } variants = variants2; } } for(var i in variants) { let tmp = variants[i].split('|'); let pl_key = 0; for(var j in tmp) { let tmp1 = tmp[j].split(':'); pl_key += parseInt('0x'+hex_md5(tmp1[1]).substr(0, 6)); } if(pl_key == selected_variant) { for(var j in tmp) { let tmp1 = tmp[j].split(':'); $('#basket_opt_' + id + '_' + tmp1[0]).val(tmp1[1]); } } } alltrades_shop.price_recount(id); }, price_recount: function (id){ var price=alltrades_shop.main_prices[id]; if(typeof price == 'undefined'){ return false; } if(alltrades_shop.pricelist_fields!=''){ var fields=alltrades_shop.pricelist_fields.split(','); var pl_key=0; for(i in fields){ if($('#basket_opt_'+id+'_'+fields[i]).val()!=undefined){ pl_key+=parseInt('0x'+hex_md5($('#basket_opt_'+id+'_'+fields[i]).val()).substr(0, 6)); } } if(alltrades_shop.pricelist_vals[id]!=undefined && alltrades_shop.pricelist_vals[id][pl_key]>0){ price=alltrades_shop.pricelist_vals[id][pl_key]; } } $('.add2basket-options select').each(function(){ var tmp=this.id.split('_'); var key=$(this).val().replace(/[\'"]/g, '-'); if(alltrades_shop.price_mods[id]!=undefined && alltrades_shop.price_mods[id][tmp[3]]!=undefined){ price+=+alltrades_shop.price_mods[id][tmp[3]][key]; } }); $('.add2basket-options input[type=checkbox]').each(function(){ if(this.checked){ var tmp=this.id.split('_'); var key=$(this).val().replace(/[\'"]/g, '-'); if(alltrades_shop.price_mods[id][tmp[3]]!=undefined){ price+=+alltrades_shop.price_mods[id][tmp[3]][key]; } } }); $('.add2basket-options input[type=radio]').each(function(){ if(this.checked){ var tmp=this.id.split('_'); var key=$(this).val().replace(/[\'"]/g, '-'); if(alltrades_shop.price_mods[id][tmp[3]]!=undefined){ price+=+alltrades_shop.price_mods[id][tmp[3]][key]; } } }); $('.add2basket-options input[type=text]').each(function(){ var tmp=this.id.split('_'); if(alltrades_shop.price_mods[id][tmp[3]]!=undefined){ price+=+alltrades_shop.price_mods[id][tmp[3]]*this.value; } }); if(Math.round(price)!=price){ price=price.toFixed(2); } $('#main_price_'+id).html(price); }, add_to_basket: function(obj, id, pricelist_pos){ var url='/?show=basket&mode=ajax&act=add&id='+id; if(pricelist_pos!=undefined){ url=url+'&pricelist_pos='+pricelist_pos; } var postdata=$('.add2basket_form_'+id+(alltrades_shop.step==0?'_tmp':'')).serialize() alltrades_shop.start_loading(); $.post(url, postdata, function (html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.step>0){ $(obj).children('img').attr('src', '/images/in_basket.png').attr('title', 'Уже есть в корзине'); } switch(alltrades_shop.step){ case 0: if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } break; case 1: location.href=alltrades_shop.basket['uri']; break; case 2: if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } alltrades_shop.update_basket_html(); break; case 3: alltrades_shop.close_dialog(); var m_ph=$('#main_photo_'+id); if(m_ph.length == 0) { alltrades_shop.update_basket_html(); return; } $('body').prepend(''); $('#main_img_shadow').animate({top:$('#basket_total').offset().top, left:$('#basket_total').offset().left, width:'100px', height:'100px', opacity:0}, 600, function(){ $(this).remove(); alltrades_shop.update_basket_html(); } ); break; } }); }, remove_from_basket: function(k){ $.get('/?show=basket&act=delete&mode=ajax&id='+k, function(html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } alltrades_shop.renew_basket(true); }); }, one_click_buy: function(id){ var url='/?show=basket&mode=ajax&act=one_click_buy&id='+id; alltrades_shop.start_loading(); $.post(url, $('.add2basket_form_'+id).serialize(), function (html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } }); }, start_loading: function (){ $('#message_box').html('
'); }, show_dialog: function (html){ $('#message_box').html('
' + html); $(".fancy").fancybox({'zoomSpeedIn': 300, 'zoomSpeedOut': 300, 'overlayShow': true}); $('#curtain').show().click(alltrades_shop.close_dialog); $('#message_box').css('top', $(window).scrollTop()+$(window).height()*0.1).show(); var width=$('#message_box > section').css('width'); if(parseInt(width)>300 && parseInt($(document).width())>999){ $('#message_box').css('width', width).css('margin-left', '-'+parseInt(width)/2+'px'); } }, update_basket_html: function(){ var el; for(k in alltrades_shop.basket){ el=$('#'+k).get(0); if(el!=undefined){ if(el.tagName=='INPUT'){ el.value=alltrades_shop.basket[k]; }else if($('#'+k+' span').length>0){ el=$('#'+k+' span').html(alltrades_shop.basket[k]); }else{ el=$('#'+k+'').html(alltrades_shop.basket[k]); } } } }, close_dialog: function (){ $('#message_box').hide('normal', function(){$('#curtain').fadeOut();}); }, check_store: function (obj, id, check_store) { if(/[^0-9.]/.test(obj.value)){ obj.value=obj.value.replace(/[^0-9.]/, ''); } if(check_store==''){ return; } if(+obj.value>+$('#store'+id+' span').html()){obj.style.color='red';obj.value=$('#store'+id+' span').html();$('#store'+id).css('color', 'red');} }, change_order_field: function(id, options){ $('.delivery_'+id).hide(); obj=$('#order_field_'+id+''); if(obj.get(0).tagName=='SELECT'){ var func=obj.children(':selected').attr('func'); var params=obj.children(':selected').attr('params'); }else{ obj=$('#order_field_'+id+' :checked'); var func=obj.attr('func'); var params=obj.attr('params'); } switch(func){ case 'delivery': if($('#add_func_field_'+id).length){ $('#add_func_field_'+id).html('').show(); }else{ $('#order_field_'+id+'').after('
'); } $('#add_func_field_'+id).load('/?show=delivery&mode=ajax&field_id='+id+'¶ms='+params, function(html){ if($('#delivery_to_zip').val()>0){ $.get('/?show=delivery&field_id='+id+'&act=calculate&mode=ajax&delivery_to_zip='+$('#delivery_to_zip').val()+'&r='+Math.random(), function(html){ $('#delivery_variants_'+id).html(html); }); }}); break; case 'yandex_delivery': $('#yd_block.delivery_'+id).show(); break; case 'rupost_delivery': alltrades_delivery.init('rupost', id); break; case 'novaposhta_delivery': $('#novaposhta_block.delivery_'+id).show(); break; case 'boxberry_delivery': $('#boxberry_block.delivery_'+id).show(); break; case 'cdek_delivery': $('#cdek_block.delivery_'+id).show(); break; case 'ddelivery_delivery': $('#ddelivery_block.delivery_'+id).show(); ddelivery_init(); break; case 'dpd_delivery': $('#dpd_block.delivery_'+id).show(); break; case 'shiptor_delivery': alltrades_delivery.init('shiptor', id); break; default: $('#order_field_price_'+id+' span').html(obj.children(':selected').attr('func')); $('#add_func_field_'+id).html(''); } if(typeof options !='undefined' && options == 'no_renew') { return false; } alltrades_shop.renew_basket(true); }, renew_basket: function (no_items){ if (typeof(no_items)=='undefined'){ alltrades_shop.basket_renew_no_items=false; }else{ alltrades_shop.basket_renew_no_items=no_items; } if(!alltrades_shop.loading && alltrades_shop.check_renew_possible()){ clearTimeout(alltrades_shop.renew_timer); if(!alltrades_shop.basket_renew_no_items){ $('.basket .discount_amount span').html(''); $('.basket .basket_discount span').html(''); $('.basket .basket_weight_str span').html(''); } $('#basket_items_amount span').html(''); $('#basket_discount span').html(''); $('#basket_discount_amount span').html(''); $('#basket_full_amount span').html(''); $('#basket_weight span').html(''); $('#basket_amount').html(''); $('#basket_total').html(''); alltrades_shop.renew_timer=setTimeout(function(){alltrades_shop.renew_basket_serv();}, 2000); alltrades_shop.loading=true; } }, renew_basket_serv: function (){ if(!alltrades_shop.check_renew_possible()){ alltrades_shop.loading=false; return false; } $.post('/?show=basket&act=edit_json&mode=ajax'+(alltrades_shop.basket_renew_no_items?'':'&clean_add_fields=1'), $('#order_form').serialize(), function(html){ eval(html); if(!alltrades_shop.basket_renew_no_items){ for (i in alltrades_shop.basket['items']){ $('.basket #item_'+i+' .discount_amount span').html(alltrades_shop.basket['items'][i]['discount_amount']); $('.basket #item_'+i+' .basket_weight_str span').html(alltrades_shop.basket['items'][i]['weight_str']); $('.basket #item_'+i+' .basket_discount span').html(alltrades_shop.basket['basket_discount']); } } $('#basket_items_amount span').html(alltrades_shop.basket['basket_amount']); if(alltrades_shop.basket['basket_discount']>0){ $('#basket_discount_amount').show(); $('#basket_discount').show(); }else{ $('#basket_discount_amount').hide(); $('#basket_discount').hide(); } $('#basket_discount_amount span').html(alltrades_shop.basket['basket_discount_amount']); $('#basket_discount span').html(alltrades_shop.basket['basket_discount']); $('#basket_weight span').html(alltrades_shop.basket['basket_weight']); $('#basket_full_amount span').html(alltrades_shop.basket['basket_full_amount']); $('#basket_amount').html(alltrades_shop.basket['basket_amount']); $('#basket_total').html(alltrades_shop.basket['basket_total']); if(!alltrades_shop.basket_renew_no_items){ for(i in alltrades_shop.basket['fields_func']){ if(typeof alltrades_shop.basket['fields_func'][i]['options'] !=="undefined"){ for(j in alltrades_shop.basket['fields_func'][i]['options']){ $('#order_field_'+i+' option').each(function(){ if($.trim($(this).text())==alltrades_shop.basket['fields_func'][i]['options'][j]['value']){ $(this).attr('func', alltrades_shop.basket['fields_func'][i]['options'][j]['func']); if($(this).attr('func')=='delivery'){ $('#add_func_field_'+i).remove(); } $('#order_field_price_'+i).hide(); } }); } } alltrades_shop.change_order_field(i); } } if(alltrades_shop.basket['enable_order']=='1'){ $('#order_button').attr('disabled', false).bind('click', function(){$('#order_form').attr('action', '/?show=order').submit()}); $('#basket_minimum_order_amount').hide(); }else{ $('#order_button').attr('disabled', true).unbind('click'); $('#basket_minimum_order_amount').show(); } alltrades_shop.loading=false; }); }, renew_basket_serv_no_addfields: function (){ if(!alltrades_shop.check_renew_possible()){ alltrades_shop.loading=false; return false; } $.post('/?show=basket&act=edit_json&mode=ajax', $('#order_form').serialize(), function(html){ eval(html); $('#basket_items_amount span').html(alltrades_shop.basket['basket_amount']); if(alltrades_shop.basket['basket_discount']>0){ $('#basket_discount_amount').show(); $('#basket_discount').show(); }else{ $('#basket_discount_amount').hide(); $('#basket_discount').hide(); } $('#basket_discount_amount span').html(alltrades_shop.basket['basket_discount_amount']); $('#basket_discount span').html(alltrades_shop.basket['basket_discount']); $('#basket_full_amount span').html(alltrades_shop.basket['basket_discount_amount']); $('#basket_amount').html(alltrades_shop.basket['basket_amount']); $('#basket_total').html(alltrades_shop.basket['basket_total']); for(i in alltrades_shop.basket['fields_func']){ if(typeof alltrades_shop.basket['fields_func'][i]['options'] !=="undefined"){ for(j in alltrades_shop.basket['fields_func'][i]['options']){ $('#order_field_'+i+' option').each(function(){ if($.trim($(this).text())==alltrades_shop.basket['fields_func'][i]['options'][j]['value']){ $(this).attr('func', alltrades_shop.basket['fields_func'][i]['options'][j]['func']); if($(this).attr('func')=='delivery'){ $('#add_func_field_'+i).remove(); } $('#order_field_price_'+i).hide(); } }); } } alltrades_shop.change_order_field(i); } alltrades_shop.loading=false; if(alltrades_shop.basket['enable_order']=='1'){ $('#order_button').attr('disabled', false).bind('click', function(){$('#order_form').attr('action', '/?show=order').submit()}); $('#basket_minimum_order_amount').hide(); }else{ $('#order_button').attr('disabled', true).unbind('click'); $('#basket_minimum_order_amount').show(); } alltrades_shop.loading=false; }); }, check_renew_possible: function(){ var flag=true; $('.basket .basket_item .num').each(function(){if($.trim(this.value)==''){flag=false;}}); return flag; }, items_pages_loading_counter: 0, items_pages_loading: function(category_id, os, on_page, type, order){ if(typeof order == 'undefined'){ order=''; } if(typeof type == 'undefined'){ type=''; } alltrades_shop.items_loading_flag=false; alltrades_shop.items_os=parseInt(os); alltrades_shop.items_on_page=parseInt(on_page); alltrades_shop.category_id=category_id; $(window).on('scroll resize', function(){ var max_height=parseInt($(window).scrollTop() + $(window).height()); if($('#items_loader').offset().top < max_height && !alltrades_shop.items_loading_flag){ if(alltrades_shop.items_pages_loading_counter<2){ alltrades_shop.items_loading_flag=true; $('#items_loader').html(''); $('#pages').hide(); var timer=setTimeout(function(){ alltrades_shop.items_os+=alltrades_shop.items_on_page; if(alltrades_shop.items_on_page>12){ alltrades_shop.items_on_page=12; } var reg = /[?&]([^=&]+)(=?)([^&]*)/g; var query = '/?show=shop&mode=atc&category_id='+alltrades_shop.category_id+'&os='+alltrades_shop.items_os+'&total='+alltrades_shop.items_on_page+'&type='+type+'&order='+order; while (m = reg.exec(location.search)) { if(m[1] == 'vendor_id' || m[1] == 'keywords' || m[1].substr(0, 2) == 's_') { query += '&' + m[1] + '=' + m[3]; } } $.get(query, function(html){ if(html!=''){ alltrades_shop.items_pages_loading_counter++; $('.twr-grid').append(html); if(typeof items_d_mode !='undefined' && items_d_mode=='blocks'){ $('#tabler').click(); }else{ $('#twr-linear').click(); } alltrades_shop.items_loading_flag=false; } $('#items_loader').html(''); }); }, 600); }else if(alltrades_shop.items_pages_loading_counter<1000){ $('#items_load_more').remove(); alltrades_shop.items_pages_loading_counter=1000; $('.twr-grid').append('
Показать еще...
'); } } }); }, wishlist_send: function(id){ var url='/?show=basket&mode=ajax&act=wishlist&id='+id; $.post(url, {'email': $('#wishlist input[name=email]').val(), 'phone': $('#wishlist input[name=phone]').val()}, function (html){ if(html=='ok'){ $('#wishlist').html('

Заявка на уведомление о поступлении отправлена.

'); }else{ alert(html); } } ); }, add_to_favorites: function(id){ var url='/?show=basket&mode=ajax&act=favorites&id='+id; $.get(url, function (html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } } ); }, remove_from_favorites: function(id){ var url='/?show=basket&mode=ajax&act=remove_from_favorites&id='+id; $.get(url, function (html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } } ); }, update_favorites_html: function(){ var el; for(k in alltrades_shop.favorites){ el=$('#'+k).get(0); if(el!=undefined){ if(el.tagName=='INPUT'){ el.value=alltrades_shop.favorites[k]; }else if($('#'+k+' span').length>0){ el=$('#'+k+' span').html(alltrades_shop.favorites[k]); }else{ el=$('#'+k+'').html(alltrades_shop.favorites[k]); } } } }, add_to_compare: function(id){ var url='/?show=basket&mode=ajax&act=compare&id='+id; $.get(url, function (html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } } ); }, remove_from_compare: function(id){ var url='/?show=basket&mode=ajax&act=remove_from_compare&id='+id; $.get(url, function (html){ var arr = html.split('|||'); eval(arr[1]); html=arr[0]; if(alltrades_shop.show_prev){ alltrades_shop.show_dialog(html); } } ); }, update_compare_html: function(){ var el; for(k in alltrades_shop.compare){ el=$('#'+k).get(0); if(el!=undefined){ if(el.tagName=='INPUT'){ el.value=alltrades_shop.compare[k]; }else if($('#'+k+' span').length>0){ el=$('#'+k+' span').html(alltrades_shop.compare[k]); }else{ el=$('#'+k+'').html(alltrades_shop.compare[k]); } } } } } function search_update_form(fields){ if(fields==''){ $('div[id^="search-field"]').show(); }else{ $('div[id^="search-field"]').each(function(){ if(fields.indexOf(','+this.id.substr(13)+',')==-1){ $(this).hide(); }else{ $(this).show(); } }); } } //================================= var alltrades_comments = { obj_id: '', key: 0, mark: 0, type: 0, parent_id: 0, parent_comment_id: 0, load_form: function (el_id, type, parent_id) { if(typeof el_id != 'undefined'){ this.obj_id='#'+el_id; } if(typeof type != 'undefined'){ this.type=type; } if(typeof parent_id != 'undefined'){ this.parent_id=parent_id; } this.key=Math.random(); $(this.obj_id).load('/?show=comments&mode=ajax&act=get_form&type='+this.type+'&parent_id='+this.parent_id+'&parent_comment_id='+this.parent_comment_id+'&rand='+this.key, function(){ $('.star-mark').bind('click', function(){ $('input[name=mark]').val($(this).attr('mark')); alltrades_comments.show_stars($(this).attr('mark')); }); }); $('#comments_add_main_comment_link').hide(); }, show_stars: function(mark){ $(this.obj_id+' input[name=mark]').val(mark); for(var i=1; i<=5; i++){ if(mark>=i){ $(this.obj_id).find('.mark'+i).removeClass('rank-star-empty').addClass('rank-star'); }else{ $(this.obj_id).find('.mark'+i).removeClass('rank-star').addClass('rank-star-empty'); } } }, send: function(){ var ret=''; $(this.obj_id+' [num]').each(function(){ ret+=$(this).attr('num')+':'; }); ret+=this.key; $.post('/?show=comments&mode=ajax&act=send&key='+hex_md5(ret)+'&rand='+this.key, $(this.obj_id+' form').serialize(), function(html){ $(alltrades_comments.obj_id).html(html); $(alltrades_comments.obj_id+' .star-mark').bind('click', function(){ $(alltrades_comments.obj_id+' input[name=mark]').val($(this).attr('mark')); alltrades_comments.show_stars($(this).attr('mark')); }); }); }, add_answer: function(id){ this.parent_comment_id=id; $('#comment_'+id+' > .comment-answers').show().prepend($(this.obj_id)); this.load_form(); $('#comments_add_main_comment_link').show(); }, add_comment: function(){ this.parent_comment_id=0; $(this.obj_id).appendTo('#comments_form_wr').show(); this.load_form(); }, tree: function(){ $('[data_parent_id]').each(function(){ $(this).appendTo('#comment_'+$(this).attr('data_parent_id')+' > .comment-answers'); $('#comment_'+$(this).attr('data_parent_id')+' > .comment-answers').show(); }); $('.comment-mark').each(function(){ var mark=$(this).attr('data_mark'); for(var i=1;i<=mark;i++){ $(this).append(''); } for(var i=mark;i<5;i++){ $(this).append(''); } }); } }