$( function () { //var taxRate = 0.09; //var shippingRate = 15.00; var fadeTime = 300; var $cartLi = $('.navbar-cart-li'); var $cartLink = $('.navbar-cart-icon-link'); var $cartBox = $('.navbar-cart-box'); var $cart = $('.navbar-cart'); var $accountLi = $('.navbar-account-li'); var $accountLink = $('.navbar-account-link'); var $accountBox = $('.navbar-account-box'); var $navMenu = $('.foorj-navbar-menu'); var $navMenuBtn = $('.foorj-navbar-menu-btn-box'); var cart_images; var fetchingImages = new $.Deferred(); var fetchImages = function (id_list) { console.log('fetching images...'); return $.post('/cart', {action: 'fetch_images', id_list: id_list}, function (d) { if (d.result === 'success') { } }, 'json'); }; var fetchingCart = $.post('/cart', {action: 'fetch'}, function (d) { //console.log('finished fetching cart...'); if (d.result === 'success') { cart = d.cart; var numPrintItems = 0; for (var i = 0; i < cart.length; i++) { if (cart[i].category === 'print') { numPrintItems++; } } if (window.sessionStorage && window.sessionStorage.getItem('cart_images')) { cart_images = JSON.parse(window.sessionStorage.getItem('cart_images')); } else { cart_images = []; } if (Object.keys(cart_images).length === numPrintItems) { fetchingImages.resolve(cart_images); } else { var fetching = fetchImages('all'); fetching.done( function (d) { if (d.result === 'success') { cart_images = d.images; console.log('fetched new cart_images...', cart_images); window.sessionStorage.setItem('cart_images', JSON.stringify(cart_images)); fetchingImages.resolve(cart_images); } }); } } else { cart = []; cart_images = []; } }, 'json'); $.when(fetchingCart, fetchingImages).done( function () {initializeCart('first-time', 0, 0);} ); var initializeCart = function (sel, clearFlag, wipeFlag) { var checkoutStage = '' if(document.getElementById("checkoutReview")){ checkoutStage = 'review'; console.log('found REVIEW!'); var data = { action: 'wipe-cart' } } if (cart !== undefined && cart.length && checkoutStage !== 'review') { console.log('here is the cart length'); console.log(cart.length); $('.cart-icon-count').text(cart.length); $('.cart-icon-count-box').css('display', ''); var subtotal = 0; var img_list = []; for (var i = 0; i < cart.length; i++) { var item = cart[i]; if (item.category === 'print') { var _infillText = { 'low': 'Sparse', 'high': 'Dense', 'solid': 'Solid' }; console.log('printing the dropdown cart!') var $item = $( $('#navCartItem_print').html() ); // var data = item.item_data; // var data = item.details; var data = JSON.parse(item.details); console.log(data) $item.find('.item-header .item-filename').text(data.raw_filename); var price; var qty = parseInt(item.quantity); console.log('QTY:'); console.log(qty); if (data.infill === 'low') { price = parseFloat(data.low_density_price); } else if (data.infill === 'high') { price = parseFloat(data.high_density_price); } else { price = parseFloat(data.price); } price *= qty; $item.find('.item-header .item-price').text('$'+price.toFixed(2)); subtotal += price; $item.find('.item-scale .item-info-value').text(data.user_scale.toFixed(3)); $item.find('.item-quantity .item-info-value').text(qty); $item.find('.item-infill .item-info-value').text(_infillText[data.infill]); if (cart_images[item.item_id]) { var item_images = JSON.parse(cart_images[item.item_id]); //console.log(item_images); img_list.concat(item_images); // data.file_images.forEach( function (val, idx, arr) { item_images.forEach( function (val, idx, arr) { $item.find('.item-image:nth-child('+(idx+1).toString()+')') .css({'background-image': 'url('+val+')'}) .attr('href', val) .data('src', val); }); } if (sel === 'first-time'){ $cart.append($item); } else if (sel === 'after-removal'){ console.log('AFTER REMOVAL'); if (clearFlag) $cart.html(''); clearFlag = 0; $cart.append($item); } else if (sel === 'after-qty-change'){ console.log('AFTER QTY CHANGE'); if (clearFlag) $cart.html(''); clearFlag = 0; $cart.append($item); } } } $('.item-image').magnificPopup({ type: 'image', image: { cursor: null }, gallery: { enabled: true, preload: [1,2], navigateByImgClick: true }, closeBtnInside: false, fixedContentPos: true }); console.log(subtotal.toFixed(2)); } else { $('.navbar-cart-box').remove(); $('.cart-icon-count-box').remove(); $('.navbar-cart-icon-link').attr('href', '/viewer'); } //Wipe the shopping cart once we've fetched and loaded it for the Order Summary / Checkout Review page /*if(checkoutStage === 'review'){ var data = { action: 'wipe-cart' } var wipeCart = $.post('/cart', data, 'json'); }*/ }; var closePinnedBox = function (evt) { // console.log(evt); $cartLi.removeClass('pinned'); $accountLi.removeClass('pinned'); }; var catchPinnedClick = function (evt) { console.log(evt); // evt.preventDefault(); // evt.originalEvent.preventDefault(); evt.stopPropagation(); evt.originalEvent.stopPropagation(); }; var handleLiClick = function (evt, this_li, sibs) { // console.log(evt); // catchPinnedClick(evt); var pinned = this_li.hasClass('pinned'); if (pinned) { this_li.removeClass('pinned'); } else { sibs.forEach( function (elt, idx, arr) { elt.removeClass('pinned'); }); this_li.addClass('pinned'); } } var handleLiTap = function (this_li, sibs) { var pinned = this_li.hasClass('pinned'); if (pinned) { this_li.removeClass('pinned'); } else { sibs.forEach( function (elt, idx, arr) { elt.removeClass('pinned'); }); this_li.addClass('pinned'); } } $cartLink.hammer({domEvents: false, preset: ['tap']}).bind('tap', function () { // $cartLink.hammer({preset: []}).bind('tap click', function () { handleLiTap($cartLi, [$accountLi, $navMenu]); }); $accountLink.hammer({domEvents: false, preset: ['tap']}).bind('tap', function () { // $accountLink.hammer({preset: []}).bind('tap click', function () { handleLiTap($accountLi, [$cartLi, $navMenu]); }); $navMenuBtn.hammer({domEvents: false, preset: ['tap']}).bind('tap', function () { // $navMenuBtn.hammer({preset: []}).bind('tap click', function () { handleLiTap($navMenu, [$cartLi, $accountLi]); }); $('#baseMainContent, #animation, .banner-box, .logo-coin-box, #footerContainer').hammer({domEvents: true, preset: ['tap']}).bind('tap click', function () { // $('#baseMainContent, #animation, .banner-box, .logo-coin-box, #footerContainer').on('click', function () { $cartLi.removeClass('pinned').mouseleave(); $accountLi.removeClass('pinned').mouseleave(); $navMenu.removeClass('pinned').mouseleave(); }); function formatCartContents () { $('.cart-item-overflow-ellipsis').each( function () { var txt = $(this).text(); txt = truncateText(txt, 20); $(this).html(txt); }); $('.cart-thumb-link').magnificPopup({ type: 'image', gallery: { enabled: true }, image: { cursor: null } }); var cartItemCount = parseInt($('.cart-item-count').text().match(/\d+/g)); if (cartItemCount === 0) { $('a[href="/checkout"]').addClass('disabled').fadeOut('fast'); if (mqCartXS.matches) { $('a[href="/viewer"').text('Upload'); } else { $('a[href="/viewer"]').text('Upload A File'); } } } function truncateText(input, length) { var output = input; if (output.length >= length && length > 8) { output = output.substring(0, length-8) + ' … ' + output.substring(output.length - 5); } return output; } $('#cart').on('click', '.product-removal button', function () { var itemToRemove = $(this).attr('data-target'); console.log(itemToRemove); var $modal = $('
'); var $cartItemContainer = $('