var artbox_basket = new ArtboxBasket(); /*order basket form js logic*/ var recountPrice = function(container,new_value){ var new_price = +$(container).find('.price span').html() * new_value; $(container).find('.cost span').html(new_price.toFixed(2)); var total_price = 0; $('#ordersFrom').find('#cost span').each(function(){ total_price += +$(this).html(); }); var total = $('#total span').html(total_price.toFixed(2)); }; $(document).on('click', '#ordersFrom .count_choise .plus', function(e) { e.preventDefault(); var container = $(this).parents('.order_item'); var input = $(container).find('.prod_count'); var value = $(input).val(); var new_value = parseInt(value) + 1; $(input).val(new_value); $(input).trigger('change'); recountPrice(container,new_value); }); $(document).on('click', '#ordersFrom .count_choise .minus', function(e) { e.preventDefault(); var container = $(this).parents('.order_item'); var input = $(container).find('.prod_count'); var value = $(input).val(); if(value > 1 ){ var new_value = parseInt(value) - 1; $(input).val(new_value); $(input).trigger('change'); recountPrice(container,new_value); } }); $(document).on('change', '#ordersFrom .prod_count', function(e) { e.preventDefault(); var container = $(this).parents('.order_item'); var new_value = $(this).val(); recountPrice(container,new_value); var product_variant_id = container.data('id'); var value = $(this).val(); if(value < 0) { value = 0; } artbox_basket.set(product_variant_id, value); }); $(document).on('click', '#ordersFrom .cart_remove', function(e) { e.preventDefault(); var container = $(this).parents('.order_item'); var id = $(container).data('id'); container.remove(); artbox_basket.set(id, 0); }); /*end order basket form js logic*/ $(document).on('click', '.buy_button', function(e) { e.preventDefault(); var product_variant_id = $(this).data('id'); var count = 1; artbox_basket.add(product_variant_id, count); }); $(document).on('change', '#buyForm .prod_count', function(e) { e.preventDefault(); var product_variant_id = $(this).parents('tr').data('id'); var value = $(this).val(); if(value < 0) { value = 0; } artbox_basket.set(product_variant_id, value); }); $(document).on('click', '#buyForm .count_choise .minus', function(e) { e.preventDefault(); var container = $(this).parents('tr'); var input = $(container).find('.prod_count'); var value = $(input).val(); var new_value = parseInt(value) - 1; $(input).val(new_value); $(input).trigger('change'); }); $(document).on('click', '#buyForm .count_choise .plus', function(e) { e.preventDefault(); var container = $(this).parents('tr'); var input = $(container).find('.prod_count'); var value = $(input).val(); var new_value = parseInt(value) + 1; $(input).val(new_value); $(input).trigger('change'); }); $(document).on('click', '#buyForm .cart_remove', function() { var container = $(this).parents('tr'); var id = $(container).data('id'); artbox_basket.set(id, 0); }); /* Category filter open submenu */ $(document).on('click', '.block_title', function(e) { var active = $(this).parent().hasClass('opened'); if(active) { $(this).parent().removeClass('opened').addClass('closed'); $(this).parent().find('.chechboxes').hide(); } else { $(this).parent().removeClass('closed').addClass('opened'); $(this).parent().find('.chechboxes').show(); } }); /* End Category filter open submenu */ /* Cart resize on scroll */ $('.img_part').height($('.info').height()); $(document).on('scroll', window, function(e) { currentScroll = $(window).scrollTop(); if (currentScroll > 0) { $('#top-cart-content').addClass('small-cart'); } else { $('#top-cart-content').removeClass('small-cart'); } }); /* End cart resize on scroll */ /* Catalog product scroll watcher */ $(document).on('scroll', window, function(e) { if(($('.detail_main_tabs').length)>0) { checkFixed(e); checkSelector(e); } }); function checkFixed(e) { var img_part = $('.img_part'); var position = $(img_part).find('.position'); var position_height = $(position).height(); var info = $('.info'); var info_position = $(info).position(); var info_height = $(info).height(); var info_top = info_position.top; var info_bottom = info_top + info_height; var currentScroll = $(window).scrollTop(); if(info_bottom - currentScroll > 0 && info_bottom - currentScroll < position_height) { $(position).removeClass('fixed').css({ position: 'absolute', bottom: 0, top: 'auto', }); } else if(currentScroll > info_top && currentScroll < info_bottom) { $(position).addClass('fixed').css({ position: 'fixed', top: '100px', bottom: 'auto' }); } else { $(position).removeClass('fixed').css({ position: 'relative', top: '50px', bottom: 'auto' }); } } function checkSelector(e) { var tab_content = $('#characteristics'); var tab_content_top = $(tab_content).position().top - 100; var comments_block = $('#reviews'); var comments_block_top = $(comments_block).position().top - 100; var collection = $('#collection'); var collection_top = $(collection).position().top - 100; var currentScroll = $(window).scrollTop(); var detail_main_tabs = $('.detail_main_tabs'); var active; if(currentScroll > tab_content_top && currentScroll < collection_top) { active = 'characteristics'; } else if(currentScroll > comments_block_top) { active = 'reviews'; } else if(currentScroll > collection_top && currentScroll < comments_block_top) { active = 'collection'; } $(detail_main_tabs).find('li.selected').removeClass('selected'); $(detail_main_tabs).find('[data-target='+active+']').addClass('selected'); } $(window).scroll(function(e) { // checkFixed(e); // checkSelector(e); }); /* End catalog product scroll watcher */ /* Animated links */ $(document).on('click', '.detail_main_tabs a', function(e) { e.preventDefault(); var hash = $(this).attr('href').replace(/^.*?(#|$)/,''); var target = $('#'+hash); var target_top = $(target).position().top - 50; var body = $('html, body'); body.stop().animate({scrollTop:target_top}, 500, 'swing', function() {}); }); /* End animated links */ /* Ajax form submit */ $(document).on('submit', '#feedback-form', function(e) { e.preventDefault(); $.post('/ajax/feedback', $(this).serialize(), function(data) { $('#myCallback').find('.modal-body').html(data.result); }); }); $(document).on('submit', '#quickbuy-form', function(e) { e.preventDefault(); var container = $(this).parents('.fast_order_form'); $.post('/order/quick', $(this).serialize(), function(data) { if(!data.error) { $(container).html(data.result); } else { $(container).html(data.error); } }) }); $(document).on('submit', '#quickbuy-modal', function(e) { e.preventDefault(); var form = $('#buyForm'); $.post('/order/quick-basket', $(this).serialize(), function(data) { if(!data.error) { $(form).find('.modal-body').html(data.result); } else { $(form).find('.modal-body').html(data.error); } }).fail(function(jqXHR, textStatus, errorThrown) { $(form).find('.modal-body').html(JSON.parse(jqXHR.responseText).message); }); $(form).find('.modal-title').remove(); $(form).find('.modal-footer').remove(); }); /* End ajax form submit */