{"version":3,"sources":["ecomms.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"ecomms.js","sourcesContent":["(function ($) { \n    \n    $(document).ready(function(){\n        __basketFunctionality();\n    });\n\n    var __basketFunctionality = function(){\n        __addToBasket();\n        __quantityAdjuster();\n        __showMiniBasket();\n        __removeFromBasket();\n        __hideDeliveryWhenUsingBilling();\n        __passwordShowHide();\n        __revealAddressForm();\n        __hideAddressForm();\n    }\n\n    var __reloadBasket = function( html )\n    {\n        var basketOpen = false;\n        if($('.header .basket__mini.open').length > 0 ){\n            basketOpen = true;\n        }\n        $('.header .basket__mini').remove();\n        $('.header').append(html);\n        if( basketOpen === true){\n            $('.header .basket__mini').addClass('open').css({height: 'auto','opacity': 1});\n        }\n       \n    }\n\n    var __reloadBasketPage = function( html )\n    {\n        if ( $('.basket__page-summary').length > 0 ){\n            $('.basket__page-summary').remove();\n            $('.basket__page-cart').remove();\n            $('.basket__page').append(html);\n        }\n    }\n\n    var __hideAddressForm = function () {\n        $('.address').click(function (e) {\n            if ($(this).hasClass('billing_address')) {\n                $('.billing-address-form').remove();\n            }\n\n            if ($(this).hasClass('delivery_address')) {\n                $('.delivery-address-form').remove();\n            }\n\n        });\n    }\n\n    var __revealAddressForm = function () {\n        $('.add-new-address').click(function (e) {\n            var button = $(this);\n            var type = $(this).data('type');\n            $.ajax({\n                url: button.data('url'),\n                method: 'GET',\n                success: function (response) {\n                    if (type == 'billing') {\n                        if (response.html && $('.billing-address-form').length == 0) {\n                            button.after(response.html);\n                        }\n                    } else if (type == 'delivery') {\n                        if (response.html && $('.delivery-address-form').length == 0) {\n                            button.after(response.html);\n                        }\n                    }\n\n                }\n            })\n        });\n\n    }\n\n    var __passwordShowHide = function () {\n        $('.password__reveal-trigger').click(function (e) {\n            let password = $(this).parent().prev();\n            if (password.attr('type') == 'password') {\n                password.attr('type', 'text');\n            } else {\n                password.attr('type', 'password');\n            }\n        });\n    }\n\n    var __hideDeliveryWhenUsingBilling = function () {\n        $('#use-billing').click(function (e) {\n            $('.delivery-address-form').slideToggle('fast');\n        });\n    }\n\n    var __removeFromBasket = function()\n    {\n        $('body').on('click','.basket__row-remove',function(e){\n            e.preventDefault();\n            var row = $(this).parent().parent();\n            var target = $(this).attr('href');\n            var tl = new TimelineMax();\n            tl.to(row, 0.3, {xPercent: 100});\n            $.get({\n                url: target,\n                success: function (response, textStatus, xhr) {\n                    if (xhr.status === 200) {\n                        if(response.redirect === true){\n                            window.location = response.redirect_route;\n                        } else {\n                            $('.basket__mini').css({ height: 'auto' });\n                            $('.header__secondary-icon-basket span').empty().append(response.items);\n                            __reloadBasket(response.mini);\n                            __reloadBasketPage(response.page);\n                        }\n                    }\n                }\n            });\n            \n        })\n    }\n\n    var __showMiniBasket = function()\n    {\n        $('.show-mini-basket').click(function(e){\n            e.preventDefault();\n            if($('.basket__mini.open').length > 0){\n                __animateMiniBasketOut();\n            } else {\n                __animateMiniBasketIn();\n            }\n            \n            \n        });\n    }\n\n    var __animateMiniBasketOut = function()\n    {\n        var basket = $('.basket__mini');\n        var tl = new TimelineMax();\n        tl.fromTo(basket, 0.3,  { height: basket.outerHeight(), opacity: 1},{ height: 0, opacity: 0 , onComplete: function(){\n            basket.removeClass('open');\n            basket.css({display:'none'});\n        } });\n    }\n\n    var __animateMiniBasketIn = function()\n    {\n        var basket = $('.basket__mini');\n        var basketBottom = $('.basket__mini-bottom');\n        basket.css({'height':'auto','display':'block'}).addClass('open');\n        var items = basket.find('.checkout__product__row');\n        var tl = new TimelineMax();\n        tl.fromTo( basket, 0.3, { height: 0, opacity: 0 }, { height: basket.outerHeight(), opacity: 1 })\n            .staggerFrom( items, 0.2, { autoAlpha: 0 }, 0.075 )\n            .from(basketBottom, 0.5, { autoAlpha: 0 }, 0.3);\n\n    }\n\n    var __animatedOverlayMessage = function( message )\n    {\n        var overlay = $('.overlay').addClass('active');\n        var tl = new TimelineMax();\n        overlay.empty().append('<p class=\"overlay__message\">'+message+'</p>');\n        tl.to(overlay, 0.5, { opacity: 1 })\n            .to(overlay, 0.25, { opacity: 0, onComplete(){\n                overlay.removeClass('active').empty();\n            } }, 1.25);\n\n    }\n\n    var __addToBasket = function()\n    {\n        $('body').on( 'click', '.addToBasket',function(e){\n            e.preventDefault();\n            var url = $(this).attr('href'); \n            \n            $.get({\n                url: url,\n                success: function(response, textStatus, xhr){\n                    if( xhr.status === 200)\n                    {\n                        $('.header__secondary-icon-basket span').empty().append(response.items);\n                        __reloadBasket(response.html);\n                        __animatedOverlayMessage( response.message );\n                    }\n                }\n            });\n        });\n    }\n\n    var __quantityAdjuster = function () {\n        $('.basket__row-quantity-form-actions').on('click', '.quantity-counters', function (e) {\n            e.preventDefault();\n            var action = $(this).data('action');\n            var amountWrap = $(this).siblings('.quantity-number');\n            var amount = parseInt(amountWrap.html());\n            var rowQty = $(this).parent().siblings('[name=\"quantity\"]');\n            if (action == 'increase') {\n                amount = amount + 1;\n            } else if (action == 'decrease') {\n                amount = (amount > 0) ? amount - 1 : 0;\n            }\n            amountWrap.empty().append(amount);\n            rowQty.val(amount)\n            console.log(action, amount);\n        });\n    }\n    \n})(jQuery);"]}