var lbl_added='Added';var lbl_error='Error';var redirect_to_cart=!1;var lbl_error='Error';var txt_minicart_total_note='Order subtotal does not cover discounts and extra costs like shipping charges, etc. The final cost of the order will be calculated at the checkout page.';$(document).ready(function(){var _func=function(){$('#tooltip_link').cluetip({local:!0,hideLocal:!1,showTitle:!1,cluezIndex:1100,clueTipClass:'default'})};if(typeof $.cluetip!=='undefined'){_func()}else{document.addEventListener('jquery_cluetip_lib_is_loaded',function(e){_func()})}});ajax.actions.add2cart=function(productid,quantity,options,callback){if(!productid) return!1;var data={mode:'add',productid:productid,amount:quantity};if(options){for(var i in options){if(hasOwnProperty(options,i)){data['product_options['+i+']']=options[i]}}} var request={type:'POST',url:xcart_web_dir+'/cart.php',data:data};if(callback){request.success=function(html,i,r){return callback(!0,html,i,r)};request.error=function(obj,txt,err,i){return callback(!1,obj,txt,err,i)}} return ajax.query.add(request)} ajax.widgets.add2cart=function(form){if(!form||typeof(form.tagName)=='undefined'||!form.tagName||form.tagName.toUpperCase()!='FORM') return!1;if(!form.add2cartWidget){new ajax.widgets.add2cart.obj(form)} return form.add2cartWidget.add2cart()} ajax.widgets.add2cart.obj=function(form){this.savedData={};this.form=$(form);form.add2cartWidget=this;this._prepareWidget();var s=this;$(ajax.messages).on('updateBuyNowBlock',function(e,data){return s._callbackUpdateBuyNowBlock(data)});$(ajax.messages).on('updateProductDetailsBlock',function(e,data){return s._callbackUpdateBuyNowBlock(data)});return!0} ajax.widgets.add2cart.obj.prototype.ttl=3000;ajax.widgets.add2cart.obj.prototype.button=!1;ajax.widgets.add2cart.obj.prototype.form=!1;ajax.widgets.add2cart.obj.prototype.state=1;ajax.widgets.add2cart.obj.prototype.productid=!1;ajax.widgets.add2cart.obj.prototype.savedData={};ajax.widgets.add2cart.obj.prototype.isClicked=!1;ajax.widgets.add2cart.obj.prototype.isReady=function(){return this.form.length>0&&this.productid>0&&this.box.length>0} ajax.widgets.add2cart.obj.prototype.add2cart=function(){if(!this.isReady()) return!1;if(this.isClicked||this.state==2||this.state==3||this.state==4) return!0;this.isClicked=!0;this.changeState(2);var s=this;setTimeout(function(){s.isClicked=!1},100);return ajax.query.add({type:'POST',url:xcart_web_dir+'/cart.php',data:this.form.serialize(),success:function(a,b,c,d){return s.callback(!0,a,b,c,d)},error:function(a,b,c,d){return s.callback(!1,a,b,c,d)}})!==!1} ajax.widgets.add2cart.obj.prototype.callback=function(state,a,b,c,d){if(!this.isReady()) return!1;var s=!1;if(state&&c.messages){for(var i=0;i0){switch(this.state){case 2:res=this.cleanWaitState(s);break;case 3:res=this.cleanAddedState(s);break;case 4:res=this.cleanErrorState(s);break;default:res=this.cleanIdleState(s)} if(!res) return!1}else{res=!0} this.state=s;var o=this;if(this.button.length>0){switch(s){case 2:res=this.doWaitState();break;case 3:res=this.doAddedState();setTimeout(function(){return o.changeState(1)},this.ttl);break;case 4:res=this.doErrorState();setTimeout(function(){o.changeState(5);o.submitForm(!0)},this.ttl);break;default:res=this.doIdleState()}} return res} ajax.widgets.add2cart.obj.prototype.doIdleState=function(){if(this.savedData){switch(this.savedData.type){case 'b':$('.button-left',this.button).html(this.savedData.html);break;case 'd':$('div',this.button).html(this.savedData.html);break;default:return!1}} return!0} ajax.widgets.add2cart.obj.prototype.cleanIdleState=function(){this.savedData={type:!1,box:!1,html:!1,width:!1,height:!1};switch(this.button.get(0).tagName.toUpperCase()){case 'BUTTON':this.savedData.type='b';this.savedData.box=$('.button-left',this.button);break;case 'DIV':this.savedData.type='b';this.savedData.box=$('div',this.button);break;default:return!1} this.savedData.html=this.savedData.box.html();this.savedData.width=this.savedData.box.width();this.savedData.height=this.savedData.box.height();return!0} ajax.widgets.add2cart.obj.prototype.doWaitState=function(){this.button.addClass('do-add2cart-wait');var span=document.createElement('SPAN');span.className='progress';span.style.width=this.savedData.width+'px';span.style.height=this.savedData.height+'px';this._freezeBox();this.savedData.box.empty().append(span);return!0} ajax.widgets.add2cart.obj.prototype.cleanWaitState=function(){this.button.removeClass('do-add2cart-wait').remove('.progress');this._unFreezeBox();return!0} ajax.widgets.add2cart.obj.prototype.doAddedState=function(){this.button.addClass('do-add2cart-success');this._freezeBox();if(this.savedData.box) this.savedData.box.html(lbl_added);return!0} ajax.widgets.add2cart.obj.prototype.cleanAddedState=function(){this.button.removeClass('do-add2cart-success');this._unFreezeBox();return!0} ajax.widgets.add2cart.obj.prototype.doErrorState=function(){this.button.addClass('do-add2cart-error');this._freezeBox();if(this.savedData.box) this.savedData.box.html(lbl_error);return!0} ajax.widgets.add2cart.obj.prototype.cleanErrorState=function(){this.button.removeClass('do-add2cart-error');this._unFreezeBox();return!0} ajax.widgets.add2cart.obj.prototype.submitForm=function(isError){if(!this.isReady()) return!1;if(isError&&!this.form.get(0).elements.namedItem('ajax_error')){var inp=document.createElement('INPUT');inp.type='hidden';inp.name='ajax_error';inp.value='Y';this.form.append(inp)} this.form.get(0).submit();return!0} ajax.widgets.add2cart.obj.prototype._prepareWidget=function(){if(this.form.length==0) return!1;var m=this.form.get(0).elements.namedItem('mode');if(m&&m.value!='add'){return!1} this.box=this.form.parents().filter('.details,.product-cell');this.button=$('.add-to-cart-button',this.form).eq(0);var p=this.form.get(0).elements.namedItem('productid');if(p){this.productid=parseInt(p.value);if(isNaN(this.productid)||this.productid<1) this.productid=!1} return!0} ajax.widgets.add2cart.obj.prototype._callbackUpdateBuyNowBlock=function(data){this.savedData={};return!0} ajax.widgets.add2cart.obj.prototype._freezeBox=function(){if(this.savedData.box) this.savedData.box.width(this.savedData.width);return!0} ajax.widgets.add2cart.obj.prototype._unFreezeBox=function(){if(this.savedData.box) this.savedData.box.width('auto');return!0} ajax.widgets.product=function(elm){if(!elm) return!1;if(elm.constructor==Array){if(!elm[0].productWidget) new ajax.widgets.product.obj(elm)}else if(elm.tagName){if(!elm.productWidget) new ajax.widgets.product.obj(elm)}else{return!1} return!0} ajax.widgets.product.obj=function(elm){this.elm=$(elm);var s=this;this.elm.each(function(){this.productWidget=s});this._prepareElement();if(isNaN(this.productid)||this.productid<1) this.productid=!1;$(ajax.messages).on('cartChanged',function(e,data){return s._add2cartListener(data)});this._callbackGPI=function(state,a,b,c){return s.callbackGPI(state,a,b,c)} this._callbackBNB=function(responseText,textStatus,XMLHttpRequest){return s.callbackBNB(responseText,textStatus,XMLHttpRequest)} this._callbackPDB=function(responseText,textStatus,XMLHttpRequest){return s.callbackPDB(responseText,textStatus,XMLHttpRequest)}} ajax.widgets.product.obj.prototype.elm=!1;ajax.widgets.product.obj.prototype.type=!1;ajax.widgets.product.obj.prototype.productid=!1;ajax.widgets.product.obj.prototype.isReady=function(){return this.type&&this.productid} ajax.widgets.product.obj.prototype.updateBuyNowBlock=function(){if(!this.isReady()) return!1;var o=this;var f=function(){return ajax.core.loadBlock($('.buy-now',o.elm),'buy_now',{productid:o.productid,is_featured_product:o.is_featured_product,type:o.type},o._callbackBNB)} return this._checkBlockButton(f)} ajax.widgets.product.obj.prototype.updateProductDetailsBlock=function(){if(!this.isReady()) return!1;data={productid:this.productid};var form=$('form',this.elm).get(0);if(form){for(var i=0;i0){tmp=form_elements.get(0).elements.namedItem('productid');if(tmp) this.productid=parseInt(tmp.value);if(isNaN(this.productid)||this.productid<1) this.productid=!1;tmp=form_elements.get(0).elements.namedItem('is_free_product');if(tmp) this.is_free_product=parseInt(tmp.value);if(isNaN(this.is_free_product)) this.is_free_product=!1;tmp=form_elements.get(0).elements.namedItem('is_featured_product');if(tmp) this.is_featured_product=tmp.value} if(this.elm.is('div.item')){this.type='list'}else if(this.elm.filter('td').length==this.elm.length){this.type='matrix'}else if(this.elm.is('.product-details')){this.type='details'} return!0} ajax.widgets.product.obj.prototype._add2cartListener=function(data){if(data.status==1&&data.changes){for(var i in data.changes){if(hasOwnProperty(data.changes,i)&&data.changes[i].productid==this.productid&&data.changes[i].changed!=0){switch(this.type){case 'list':case 'matrix':this.updateBuyNowBlock();break;case 'details':this.updateProductDetailsBlock();break} break}}} return!0} ajax.widgets.product.obj.prototype._checkBlockButton=function(f){if($('.do-add2cart-wait, .do-add2cart-success',this.elm).length>0){var o=this;return setTimeout(function(){return o._checkBlockButton(f)},1000)}else{return f()}} ajax.widgets.products=function(elm){if(!elm){elm=$('.products')}else{elm=$(elm)} elm.each(function(){if(!this.productsWidget) new ajax.widgets.products.obj(this)});return!0} ajax.widgets.products.obj=function(elm){this.elm=elm;this.elm$=$(elm);elm.productsWidget=this;this.type=!1;if(this.elm$.hasClass('products-list')){this.type='list'}else if(this.elm$.hasClass('products-table')){this.type='matrix'} this._getProducts()} ajax.widgets.products.obj.prototype.elm=!1;ajax.widgets.products.obj.prototype.products=[];ajax.widgets.products.obj.prototype.type=!1;ajax.widgets.products.obj.prototype.isReady=function(){return this.type&&this.products.length>0&&this.checkElement()} ajax.widgets.products.obj.prototype.checkElement=function(elm){if(!elm) elm=this.elm;return typeof(elm)!='undefiend'&&elm.tagName&&$(elm).hasClass('products')} ajax.widgets.products.obj.prototype._getProducts=function(){if(!ajax.widgets.product) return!1;this.products=[];var arr=[];if(this.type=='list'){arr=this.elm$.children('.item').get()}else if(this.type=='matrix'){var vSize=-1;for(var i=1;i0} $(ajax).on('load',function(){return ajax.widgets.products()});function switchSubcatLayer(obj){$(obj.parentNode).toggleClass('closed');return!1} $(document).ready(function(){if(typeof(window.catexp)!='undefined'&&catexp>0){$('.fancycat-icons-c #cat-layer-'+catexp).parents('li.closed').removeClass('closed')}});ajax.widgets.minicart=function(elm){if(!elm){elm=$('.menu-minicart')}else{elm=$(elm)} elm.each(function(){if(!this.minicartWidget) new ajax.widgets.minicart.obj(this)});return!0} ajax.widgets.minicart.obj=function(elm){this.elm=$(elm);elm.minicartWidget=this;var s=this;$(ajax.messages).on('cartChanged',function(e,data){return s._add2cartListener(data)});this._minicartReposition=function(e){return s.minicartReposition(e)} this._callbackMB=function(e){s.click2Minicart=!0;return s.minicartVisible?s.hideMinicart():s.showMinicart()} this._callbackUM=function(responseText,textStatus,XMLHttpRequest){return s._callbackUpdateMinicart(responseText,textStatus,XMLHttpRequest)} this._deleteItem=function(e){return!s.deleteItem(this,e)} this._updateCart=function(e){return!s.updateCart(this,e)} this._clearCart=function(){return!s.clearCart()} this._showCheckoutPopup=function(e){return s.checkoutPopupVisible?!s.hideCheckoutPopup(this,e):!s.showCheckoutPopup(this,e)} if(this.elm.hasClass('ajax-minicart')){this._constructMinicartButton()} $('body').on('click',function(){if(!s.click2Minicart) s.hideMinicart();s.click2Minicart=!1})} ajax.widgets.minicart.obj.prototype.errorTTL=3000;ajax.widgets.minicart.obj.prototype.minicartBorder=0;ajax.widgets.minicart.obj.prototype.elm=!1;ajax.widgets.minicart.obj.prototype.minicart=!1;ajax.widgets.minicart.obj.prototype.minicartButton=!1;ajax.widgets.minicart.obj.prototype.minicartState=!1;ajax.widgets.minicart.obj.prototype.minicartVisible=!1;ajax.widgets.minicart.obj.prototype.minicartChanged=!1;ajax.widgets.minicart.obj.prototype.checkoutPopupVisible=!1;ajax.widgets.minicart.obj.prototype.isReady=function(){return this.minicart.length>0&&this.checkElement()} ajax.widgets.minicart.obj.prototype.checkElement=function(elm){if(!elm) elm=this.elm;return elm&&elm.hasClass('menu-minicart')} ajax.widgets.minicart.obj.prototype.updateTotal=function(){return this.checkElement()&&ajax.core.loadBlock($('div.minicart, span.minicart',this.elm),'minicart_total')} ajax.widgets.minicart.obj.prototype.updateCartLinks=function(){return this.checkElement()&&ajax.core.loadBlock($('div.cart-checkout-links',this.elm),'minicart_links')} ajax.widgets.minicart.obj.prototype.updateMinicart=function(){if(!this.isReady()) return!1;this._markMinicartBoxAsLoaded();return ajax.core.loadBlock(this.minicart,'minicart',{},this._callbackUM)} ajax.widgets.minicart.obj.prototype.showMinicart=function(){this._constructMinicartBox();if(this.minicartVisible) return!1;this.minicartButton.addClass('minicart-button-show');if(this.minicartState==1||this.minicartChanged){this._markMinicartBoxAsLoaded();this.updateMinicart()} if(this._iframe){this._iframe.show()} this.minicart.show();this.minicartVisible=!0;this.minicartReposition();return!0} ajax.widgets.minicart.obj.prototype.hideMinicart=function(){if(!this.minicart||!this.minicartVisible) return!1;this.minicartButton.removeClass('minicart-button-show');if(this.checkoutPopupVisible) this.hideCheckoutPopup();this.minicart.hide();if(this._iframe){this._iframe.hide()} this.minicartVisible=!1;return!0} ajax.widgets.minicart.obj.prototype.minicartReposition=function(){if(!this.isReady()||!this.minicartVisible) return!1;if(this.elm.parents().filter('#left-bar').length>0||this.elm.hasClass('left-dir-minicart')){var l=$('.ajax-minicart-icon',this.elm).position().left;var ml=$('.ajax-minicart-icon',this.elm).css('margin-left');if(ml){ml=parseInt(ml);if(isNaN(ml)) ml=0} l+=ml;this.minicart.css('left',l-this.minicartBorder)}else if(this.elm.parents().filter('#right-bar').length>0||this.elm.hasClass('right-dir-minicart')){var rb=$('.ajax-minicart-icon',this.elm).width()+$('.ajax-minicart-icon',this.elm).position().left;var ml=$('.ajax-minicart-icon',this.elm).css('margin-left');if(ml){ml=parseInt(ml);if(isNaN(ml)) ml=0} rb+=ml;var pw=$('.ajax-minicart-icon',this.elm).parents().eq(0).width();this.minicart.css('right',pw-rb-this.minicartBorder)} this._iframeReposition();return!0} ajax.widgets.minicart.obj.prototype.deleteItem=function(item,e){if(!this.isReady()||!item||!item.href) return!1;this._markMinicartBoxAsLoaded();return ajax.query.add({url:item.href})!==!1} ajax.widgets.minicart.obj.prototype.updateCart=function(item,e){if(!this.isReady()||!item||!item.form) return!1;this._markMinicartBoxAsLoaded();return ajax.query.add({type:'POST',url:xcart_web_dir+'/cart.php',data:$(item.form).serialize()})!==!1} ajax.widgets.minicart.obj.prototype.clearCart=function(){if(!this.isReady()) return!1;this._markMinicartBoxAsLoaded();return ajax.query.add({url:xcart_web_dir+'/cart.php?mode=clear_cart'})!==!1} ajax.widgets.minicart.obj.prototype.showCheckoutPopup=function(item,e){var p=$('.checkout-popup-link .buttons-box',this.minicart);if(this.checkoutPopupVisible||p.length==0) return!1;$('.checkout-popup-link',this.minicart).children('a').addClass('show');if(this._iframe_checkout) this._iframe_checkout.show();p.show();this.checkoutPopupVisible=!0;return!0} ajax.widgets.minicart.obj.prototype.hideCheckoutPopup=function(item,e){var p=$('.checkout-popup-link .buttons-box',this.minicart);if(!this.checkoutPopupVisible||p.length==0) return!1;$('.checkout-popup-link',this.minicart).children('a').removeClass('show');p.hide();if(this._iframe_checkout) this._iframe_checkout.hide();this.checkoutPopupVisible=!1;return!0} ajax.widgets.minicart.obj.prototype._add2cartListener=function(data){if(data.status==1){this._constructMinicartButton();this.updateTotal();this.updateCartLinks();if(data.isEmpty){this._cartIsEmpty()}else if(this.minicart&&this.minicartVisible){this._constructMinicartBox();this.updateMinicart()}else{this.minicartChanged=!0}} return!0} ajax.widgets.minicart.obj.prototype._cartIsEmpty=function(){this.hideMinicart();this._destructMinicartButton();$('.ajax-minicart-icon',this.elm).eq(0).removeClass('full').addClass('empty').parents('.full').removeClass('full').addClass('empty');ajax.core.trigger('cartCleaned');return!0} ajax.widgets.minicart.obj.prototype._constructMinicartBox=function(){if(this.minicart) return!1;var p=$('.ajax-minicart-icon',this.elm).get(0).parentNode;this.minicart=$(p.appendChild(document.createElement('DIV')));this.minicart.addClass('minicart-box');$(window).on('resize',this._minicartReposition);var s=this;this.minicart.on('click',function(e){if(!s.click2CheckoutPopup) s.hideCheckoutPopup();s.click2CheckoutPopup=!1;s.click2Minicart=!0;s.showMinicart();return!0});this.minicartState=1;this.minicartVisible=!1;return!0} ajax.widgets.minicart.obj.prototype._markMinicartBoxAsLoaded=function(){if(this.minicart.hasClass('wait')) return!1;var block=document.createElement('DIV');block.className='progress';this.minicart.empty().addClass('wait').append(block);this._iframeReposition();return!0} ajax.widgets.minicart.obj.prototype._unmarkMinicartBoxAsLoaded=function(){this.minicart.removeClass('wait').children('.progress').remove();this._iframeReposition();return!0} ajax.widgets.minicart.obj.prototype._prepareMinicart=function(){var s=this;$('.delete',this.minicart).on('click',this._deleteItem);$('.update-cart',this.minicart).on('click',this._updateCart);if($('.clear-cart a',this.minicart).length>0){$('.clear-cart',this.minicart).on('click',function(){return!1});$('.clear-cart a',this.minicart).on('click',this._clearCart)}else{$('.clear-cart',this.minicart).on('click',this._clearCart)} if($('.checkout-popup-link .buttons-box',this.minicart).length>0){$('.checkout-popup-link a.link',this.minicart).on('click',this._showCheckoutPopup);$('.checkout-popup-link .buttons-box',this.minicart).on('click',function(){s.click2CheckoutPopup=!0})} return!0} ajax.widgets.minicart.obj.prototype._displayMinicartError=function(){this.minicart.empty().html(lbl_error).addClass('error');return!0} ajax.widgets.minicart.obj.prototype._constructMinicartButton=function(){if(this.minicartButton) return!1;this.minicartButton=$('.ajax-minicart-icon',this.elm);if(this.minicartButton.length==0) return!1;this.elm.addClass('ajax-minicart');this.minicartButton.addClass('minicart-button').on('click',this._callbackMB);return!0} ajax.widgets.minicart.obj.prototype._destructMinicartButton=function(){if(!this.minicartButton) return!1;this.elm.removeClass('ajax-minicart full-mini-cart');this.minicartButton.removeClass('minicart-button').off('click',this._callbackMB);this.minicartButton=!1;return!0} ajax.widgets.minicart.obj.prototype._callbackUpdateMinicart=function(responseText,textStatus,XMLHttpRequest){this._unmarkMinicartBoxAsLoaded();if(this.minicartState==1){if(XMLHttpRequest.status==200){this.minicartState=2}else{this._displayMinicartError();var s=this;setTimeout(function(){s.hideMinicart();s._destructMinicartButton()},this.errorTTL)}} if(XMLHttpRequest.status==200){this.minicartChanged=!1;this._prepareMinicart()}else if(XMLHttpRequest.getResponseHeader('X-Request-Error-Code')==1){this._cartIsEmpty()}else{this._displayMinicartError();var s=this;setTimeout(function(){s.hideMinicart();s._destructMinicartButton()},this.errorTTL)} return!0} ajax.widgets.minicart.obj.prototype._iframeReposition=function(){if(!this._iframe) return!1;var pos=this.minicart.position();this._iframe.css({top:pos.top+'px',left:pos.left+'px'}).width(this.minicart.width()).height(this.minicart.height());var box=$('.checkout-popup-link .buttons-box',this.minicart);if(box.length>0){pos=box.position();this._iframe_checkout.css({top:pos.top+'px',left:pos.left+'px'}).width(box.width()).height(box.height())} return!0} $(ajax).on('load',function(){return ajax.widgets.minicart()})