;(function($) {
PPWooMiniCart = function($scope) {
this.node = $scope;
this.wrap = $scope.find('.pp-woo-mini-cart-container');
this.behaviour = this.wrap.data('target');
this._init();
};
PPWooMiniCart.prototype = {
id: '',
node: '',
wrap: '',
element: '',
behaviour: '',
isPreview: false,
_init: function() {
this.element = this.node.find('a.pp-woo-cart-contents');
this._bindEvents();
},
_bindEvents: function() {
var self = this;
if ( 'on-click' === this.behaviour ) {
this.element.on('click', $.proxy( this._toggleCart, this ) );
}
if ( 'on-hover' === this.behaviour ) {
this.element.on('mouseover', function(e) {
e.preventDefault();
self._showCart();
});
this.node.find('.pp-woo-mini-cart-wrap').on('mouseover', function(e) {
e.preventDefault();
self._showCart();
});
this.element.on('mouseout', function(e) {
e.preventDefault();
self._hideCart();
});
this.node.find('.pp-woo-mini-cart-wrap').on('mouseout', function(e) {
e.preventDefault();
self._hideCart();
});
}
if( this.wrap.hasClass( 'pp-woo-mini-cart-preview' ) ) {
setTimeout( function() {
self._togglePreview();
}, 200 );
}
$(document).on('click', function(e) {
if ( ! self.isPreview ) {
if ( ! self.wrap.is(e.target) && self.wrap.has(e.target).length === 0 && e.which ) {
self._hideCart();
}
}
});
},
_showCart: function() {
this.node.find('.pp-woo-mini-cart-wrap').addClass('show-mini-cart');
},
_hideCart: function() {
this.node.find('.pp-woo-mini-cart-wrap').removeClass('show-mini-cart');
},
_toggleCart: function(e) {
e.preventDefault();
this.node.find('.pp-woo-mini-cart-wrap').toggleClass('show-mini-cart');
},
_togglePreview: function() {
if ( ! this.isPreview ) {
this.isPreview = true;
this._showCart();
} else {
this.isPreview = false;
this._hideCart();
}
},
_renderPreview: function() {
this.isPreview = true;
this._showCart();
},
};
})(jQuery);