// модуль "Интернет-магазин"
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);
});
},
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){
val=$('select[name="basket_opt['+fields[i]+']"], input:radio[name="basket_opt['+fields[i]+']"]:checked, input:checkbox[name="basket_opt['+fields[i]+']"]:checked, input:text[name="basket_opt['+fields[i]+']"]').val();
if(val!=undefined){
pl_key+=parseInt('0x'+hex_md5(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]!=undefined && 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]!=undefined && 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]!=undefined && 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);
$('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();
} else {
$('#order_field_'+id+'').after('
');
$('.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() {
$.get('/?show=basket&act=refresh_basket&mode=ajax', '', function(html) {
alltrades_shop.basket = eval('('+html+')');
localStorage.setItem('basket_arch', alltrades_shop.basket['basket_arch']);
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']);
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']);
$('#order_field_price_'+i).hide();
}
});
}
}
}
if(alltrades_shop.basket['enable_order'] == '1') {
$('#order_button').attr('disabled', false).on('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;
});
}, 2000);
alltrades_shop.loading = 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){
alltrades_shop.basket = eval('('+html+')');
localStorage.setItem('basket_arch', alltrades_shop.basket['basket_arch']);
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']);
$('#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;
});
},
add_num_inc: function(id, max_num){
var num=$('#add2basket_form_'+id).find('input[name=num]');
if(typeof max_num == 'undefined' || max_num == '' || parseInt(max_num)>parseInt(num.val())){
num.val(parseInt(num.val())+1);
}else if(typeof max_num != 'undefined'){
$('#store'+id).show();
}
},
add_num_dec: function(id){
var num=$('#add2basket_form_'+id).find('input[name=num]');
if(parseInt(num.val())>1){
num.val(parseInt(num.val())-1);
}
},
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('Заявка на уведомление о поступлении отправлена.
'); }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]); } } } } } alltrades_shop.init_basket(); 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(''); } }); } }