angular.module("exciteApp").directive("addressSuggest",["$parse",function(n){return{restrict:"A",require:"?ngModel",link:function(t,i,r,u){var o=n(r.addressSuggest),f=(o.assign,o(t)),e;t.$watch(r.addressSuggest,function(n,t){n!==t&&(f=n)});i.attr("data-provide","typeahead");i.typeahead({source:function(){return angular.isFunction(f)?f.apply(null,arguments):f},minLength:r.minLength||1,items:r.items,updater:function(n){console.log("log selected address");console.log(n);var i=n.split("<br")[0];return u&&t.$apply(function(){u.$setViewValue(i)}),t.$emit("typeahead-updated",n),i}});e=i.data("typeahead");e.lookup=function(){var n;return this.query=this.$element.val()||"",this.query.length<this.options.minLength?this.shown?this.hide():this:(n=$.isFunction(this.source)?this.source(this.query,$.proxy(this.process,this)):this.source,n?this.process(n):this)};e.matcher=function(){return!0};"0"===r.minLength&&setTimeout(function(){i.on("focus",function(){0===i.val().length&&setTimeout(i.typeahead.bind(i,"lookup"),200)})})}}}]);angular.module("exciteApp").directive("paymentOption",["$window","$timeout",function(){"use strict";return{restrict:"A",transclude:!0,scope:{paymentOptionType:"@",paymentOptionDisabled:"=",paymentOptionModel:"=",isExpandable:"=",zipPay:"@"},template:'<div class="payment-option {{paymentClass}}"ng-class="{active: paymentOptionModel === paymentOptionType}"><div ng-if="paymentOptionDisabled" class="disable-overlay"><\/div><div class="radio2"><input id="{{paymentOptionType}}" name="paymentMeth"type="radio"ng-required="true"autocomplete="off"ng-model="paymentOptionModel"ng-value="paymentOptionType"><label for="{{paymentOptionType}}"><div class="img-wrap"><\/div><\/label><\/div><div class="payment-option-details{{zipPay}}"ng-show="isExpandable && paymentOptionModel === paymentOptionType"ng-cloak><div ng-transclude><\/div><\/div><\/div>',link:function(n,t,i){n.paymentClass=i.paymentOptionType.toLowerCase()}}}]);angular.module("exciteApp").controller("CreditController",["$scope","$http","apiCommand","apiQuery","cartSharedData","makeStatus","$sce",function(n,t,i,r,u,f){"use strict";function l(){e.error=""}var o=this,c=o.giftCard={visible:!1,cardNumber:null},h=o.promoVoucher={visible:!1,code:null},s=o.credit={loginVisible:!1,isLoggedIn:!1,username:null,password:null,amounts:null},e=o.status=f();n.validation={show:!1};o.promoCodeStatus=null;o.promoCodeShowTermsAndConditions=null;o.showTermsAndConditions=function(){var n=$("#termsAndConditionsModalLink").data("target");$(n).modal("show")};o.clearFormInputs=function(){c.cardNumber=null;s.username=null;s.password=null;h.code=null;l()};o.showPromoVoucher=function(){this.clearFormInputs();n.validation.show=!1;c.visible=!1;s.loginVisible=!1;h.visible=!0;l()};o.showLogin=function(){this.clearFormInputs();n.validation.show=!1;c.visible=!1;s.loginVisible=!0;h.visible=!1;l()};o.hasAppliedDiscounts=function(){return u.hasAppliedLoyaltyDollars};o.hasAppliedCredits=function(){return u.hasAppliedStoreCredits||u.hasAppliedGiftCredits};o.hasDiscounts=function(){return this.hasLoyaltyDollars()};o.hasCredits=function(){return this.hasStoreCredit()||this.hasGiftCredit()};o.hasLoyaltyDollars=function(){return s.amounts&&s.amounts.loyaltyDollars};o.hasStoreCredit=function(){return s.amounts&&s.amounts.storeCredit};o.hasGiftCredit=function(){return s.amounts&&s.amounts.giftCredit};o.clearLogin=function(){l();s.username="";s.password=""};o.login=function(){e.start()&&(s.processingLogin=!0,i.getCreditAmounts(s.username,s.password).success(function(n){if(n&&n.success){s.isLoggedIn=!0;s.amounts=n.amounts;console.log("hiding");var i=$("#loginModalLink1").data("target"),u=$("#loginModalLink2").data("target");console.log(i);console.log(u);$(i).modal("hide");$(u).modal("hide");r.updateToken().success(function(n){t.defaults.headers.common.RequestVerificationToken=n.token})}else e.setError(n.error)}).error(function(){e.setError()})["finally"](function(){e.stop();s.processingLogin=!1}))};o.applyGiftCard=function(){if(n.giftCardForm.$dirty&&n.giftCardForm.$valid){if(!e.start())return;i.applyGiftCard(c.cardNumber).success(function(n){n&&n.success?(c.visible=!1,u.update(n.cart),e.setSuccess("Giftcard applied")):e.setError(n.error)}).error(function(){e.setError()})["finally"](function(){e.stop()})}else n.validation.show=!0};o.applyPromoVoucher=function(){if(n.promoVoucherForm.$dirty&&n.promoVoucherForm.$valid){if(!e.start())return;i.applyPromoVoucher(h.code).success(function(n){n&&n.success?(o.promoCodeStatus=n.success,h.visible=!1,h.code="",u.update(n.data),e.setSuccess("Promo code succesfully applied")):(o.promoCodeStatus=n.success,e.setError(n.message),n.data!=null&&(o.promoCodeShowTermsAndConditions=n.data.promoCode.displayTermsAndConditions));n!=null&&n.data!=null&&n.data.promoCode!=null&&n.data.promoCode.termsAndConditions!=null&&n.data.promoCode.termsAndConditions.length&&$("#promocode-terms-and-conditions").html('<div class="code"><b>Code: '+n.data.promoCode.code+'<\/b ><\/div><div class="terms">'+n.data.promoCode.termsAndConditions+"<\/div>")}).error(function(){o.promoCodeStatus=!1;e.setError()})["finally"](function(){e.stop()})}else n.validation.show=!0};o.applyDiscounts=function(){e.start()&&i.applyDiscounts().success(function(n){n&&n.success?(u.update(n.cart),e.setSuccess("Discounts applied")):e.setError(n.error)}).error(function(){e.setError()})["finally"](function(){e.stop()})};o.removeDiscounts=function(){e.start()&&i.removeDiscounts().success(function(n){n&&n.success?(u.update(n.cart),e.setSuccess("Discounts removed")):e.setError(n.error)}).error(function(){e.setError()})["finally"](function(){e.stop()})};o.applyCredits=function(){e.start()&&i.applyCredits().success(function(n){n&&n.success?(u.update(n.cart),e.setSuccess("Credits applied")):e.setError(n.error)}).error(function(){e.setError()})["finally"](function(){e.stop()})};o.removeCredits=function(){e.start()&&i.removeCredits().success(function(n){n&&n.success?(u.update(n.cart),e.setSuccess("Credits removed")):e.setError(n.error)}).error(function(){e.setError()})["finally"](function(){e.stop()})};i.getCreditAmounts(null,null).success(function(n){n&&n.success&&(s.isLoggedIn=!0,s.amounts=n.amounts)});r.getPromoCodeCookie().success(function(n){n&&n.success&&(h.code=n.data,i.applyPromoVoucher(h.code).success(function(n){n&&n.success?(o.promoCodeStatus=n.success,h.visible=!1,h.code="",u.update(n.data),e.setSuccess("Promo code succesfully applied")):(o.promoCodeStatus=n.success,o.promoCodeShowTermsAndConditions=n.data.promoCode.displayTermsAndConditions,e.setError(n.message));console.log("DATA",n);console.log("DATA terms",n.data.promoCode.termsAndConditions);n!=null&&n.data!=null&&n.data.promoCode!=null&&n.data.promoCode.termsAndConditions!=null&&n.data.promoCode.termsAndConditions.length&&$("#promocode-terms-and-conditions").html('<div class="code"><b>Code: '+n.data.promoCode.code+'<\/b ><\/div><div class="terms">'+n.data.promoCode.termsAndConditions+"<\/div>")}).error(function(){o.promoCodeStatus=!1;e.setError()})["finally"](function(){e.stop()}))})}]);angular.module("exciteApp").controller("CheckoutController",["$log","$http","$scope","$interpolate","$window","$sce","$timeout","apiQuery","apiCommand","cartSharedData","makeBroadcastStatus","overlay","paymentTypes","siteInfo",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){"use strict";var d=!1,p=c("checkout_status"),y=i.checkout={creditCard:{ccType:"",ccName:"",ccNumber:"",ccExpiryMonth:"",ccExpiryYear:"",ccCcv:"",formatMonth:function(){return ibsa.pad(this.ccExpiryMonth,2)},formatYear:function(){return this.ccExpiryYear.slice(-2)},formatNumber:function(){return this.ccNumber.replace(/\D/g,"")},formatPan:function(){var n=this.formatNumber();return n.slice(0,4)+"..."+n.slice(-6)}},deliveryInstructions:"",eway:{rejections:0},cartData:h,paymentType:"CreditCard",name:"",email:"",newsletter:!0,phone:"",excludeInvoice:!0,includeInvoice:!1,nameOnParcel:"",address:"",address2:"",city:"",state:"",postcode:"",enablePayPal:!0,enableBPay:!0,enableCheque:!0,enableCreditCard:!0,validation:{show:!1,showError:function(n,t){try{return this.show&&n.$error[t]}catch(i){console.log(i)}},getCssClass:function(n){return{error:this.show&&n.$invalid}},ccRequired:function(){return y.paymentType==="CreditCard"&&y.cartData.payableAmount},showInvalidExpiry:function(){var t,n,i,u,r;return this.show?(t=parseInt(y.creditCard.ccExpiryMonth,10),n=parseInt(y.creditCard.ccExpiryYear,10),!isNaN(t)&&!isNaN(n)?(i=new Date,u=i.getMonth()+1,r=i.getFullYear(),n<r||n===r&&t<u):void 0):!1}},verifyCreditCardSubmit:function(){var n=document.getElementById("submitOrder").getElementsByTagName("button")[0];n.disabled=y.cartData.lines.length>0?!1:!0}},w=function(){var n={name:y.name,lastName:y.lastName,email:y.email,newsletter:h.subscribeToNewsletter,phone:y.phone,excludeInvoice:!y.includeInvoice,nameOnParcel:y.nameOnParcel,address:y.address,address2:y.address2,deliveryInstructions:(y.deliveryInstructions2||"")==""?y.deliveryInstructions:y.deliveryInstructions2,city:y.city,state:y.state,postcode:y.postcode,paymentType:y.paymentType,country:y.cartData.selectedCountry,payableAmount:y.cartData.payableAmount},t=y.creditCard;return y.paymentType==="CreditCard"&&t&&y.creditCard&&y.creditCard.ccNumber&&(n.cardType=y.creditCard.ccNumber.indexOf("5")===0?2:y.creditCard.ccNumber.indexOf("3")===0?3:1,n.lastSixDigits=t.formatNumber().slice(-6),n.nameOnCard=t.ccName,n.ccExpiryMonth=t.formatMonth(),n.ccExpiryYear=t.formatYear(),n.cardPan=t.formatPan()),n},g=function(n){var r=y.creditCard,t=y.eway,e=function(n){n.cardPan=r.formatPan();s.ewayConfirm(n).success(function(n){if(n.redirectUrl)window.location.replace(n.redirectUrl);else{y.eway.rejections++;var t=document.getElementById("submitOrder").getElementsByTagName("button")[0];t.disabled=!0;i.showCartError();p.stop();l.hide();y.submitProgress.stop()}}).error(function(){p.setError();l.hide();y.submitProgress.stop()})},o;if(t.accessCode=n.accessCode,t.formActionUrl=f.trustAsResourceUrl(n.formActionUrl),t.cardName=r.ccName,t.cardNumber=r.formatNumber(),t.expiryMonth=r.formatMonth(),t.expiryYear=r.formatYear(),t.ccv=r.ccCcv,n.error){p.setError();l.hide();y.submitProgress.stop();return}if(n.gatewayDown){e({gatewayDown:!0});return}n.forceTimeout=1;o=!1;u.setTimeout(function(){eWAY.process(document.getElementById("ewayPaymentForm"),{autoRedirect:!1,onComplete:function(t){o||(n.forceTimeout=0,e({accessCode:t.AccessCode,rejections:y.eway.rejections,orderId:n.orderId}))},onError:function(){o||e({gatewayDown:!0})},onTimeout:function(){o||e({gatewayDown:!0})}})},0);u.setTimeout(function(){o=!0;n.forceTimeout==1&&e({gatewayDown:!0})},3e4)},b=function(n){if(n.error)y.submitProgress.stop(),p.setError(n.error),l.hide();else if(n.restrictedItems)h.hasSomeRestrictedItems=n.restrictedItems.some,h.hasAllRestrictedItems=n.restrictedItems.all,p.stop(),l.hide(),y.submitProgress.stop();else if(n.ewayPay)g(n.ewayPay);else if(n.afterpay)AfterPay.initialize({countryCode:"AU"}),AfterPay.redirect({token:n.afterpay.token});else if(n.redirectAu)u.location.href="https://"+n.redirectAu.url;else if(n.redirectUrl)u.location.href=n.redirectUrl;else throw new Error("missing redirect url");},k=function(n){var t=y.countries.filter(function(t){return t.externalId===n})[0];y.enablePayPal=!t||!!t.isoCode;y.enablePayPal||y.paymentType!=="PayPal"||(y.paymentType=null);y.enableBPay=!t||t.isoCode==="AU";y.enableBPay||y.paymentType!=="BPay"||(y.paymentType=null);y.enableCheque=!t||t.isoCode==="AU";y.enableCheque||y.paymentType!=="ChequeOrMoneyOrder"||(y.paymentType=null);y.enableCreditCard=!t||t.isoCode==="AU"||t.isoCode==="NZ";t.isoCode!="AU"&&y.paymentType==="ZipPay"&&(y.paymentType=null)};i.parseSuburb=function(n){i.suburbSelected=!0;var t=i.checkout.states.filter(function(t){return t.name.toLowerCase()==n.state.toLowerCase()||t.isoCode&&t.isoCode.toLowerCase()==n.state.toLowerCase()});i.checkout.state=t&&t.length==1?t[0].externalId:"";i.checkout.postcode=n.postcode;i.checkout.city=n.suburb};i.$watch("checkout.city",function(n){if(i.suburbs&&i.suburbs.length!=0){var t=i.suburbs.filter(function(t){return t.formatted==n});t&&t.length==1&&i.parseSuburb(t[0])}});i.$on("typeahead-updated",function(n,t){if(t&&t.indexOf("<br")>0){var r=i.postcodes.filter(function(n){return(n.formatted1+"<br />"+n.formatted2).trim()==t.trim()});r&&r.length>=1&&i.parseAddress(r[0].place_id)}});i.parseAddress=function(n){var t,r;if(i.addressSeleted=!0,t=i.postcodes.filter(function(t){return t.place_id==n})[0],i.checkout.postcode=t.postcode,i.checkout.address=t.formatted1,i.checkout.city=t.suburb,!t.stateName){i.checkout.state="";return}r=i.checkout.states.filter(function(n){return n.name.toLowerCase()==t.stateName.toLowerCase()||n.isoCode&&n.isoCode.toLowerCase()==t.stateName.toLowerCase()});i.checkout.state=r?r[0].externalId:"";i.$apply()};i.transferingCartToAu=!1;i.transferCartToAu=function(){i.transferingCartToAu=!0;s.beginCheckout(w()).success(function(n){i.countryChanged(11);i.checkout.cartData.selectedCountry=11;b(n)}).error(function(){y.submitProgress.stop();p.setError();l.hide()})};i.transferingCartToNz=!1;i.transferCartToNz=function(){i.transferingCartToNz=!0;s.beginCheckout(w()).success(function(n){i.countryChanged(139);i.checkout.cartData.selectedCountry=139;b(n)}).error(function(){y.submitProgress.stop();p.setError();l.hide()})};i.transferingCartToUs=!1;i.transferCartToUs=function(){i.transferingCartToUs=!0;s.beginCheckout(w()).success(function(n){i.countryChanged(188);i.checkout.cartData.selectedCountry=188;b(n)}).error(function(){y.submitProgress.stop();p.setError();l.hide()})};i.suburbSpinner=!1;i.typeaheadsuburb=function(n,r){if(i.suburbSelected=!1,i.suburbs=[],!(n.length<3)){i.suburbSpinner=!0;var u=y.countries.filter(function(n){return i.suburbSpinner=!1,n.externalId===y.cartData.selectedCountry})[0];(u.name=="Australia"||u.name=="United States")&&t.post("/checkout/GetSuburbs",{country:u.name,isoCode:u.isoCode,query:n}).success(function(n){i.suburbs=n;var t=[];n.forEach(function(n){t.push(n.formatted)});r(t);i.suburbSpinner=!1})}};i.addressSpinner=!1;i.typeaheadaddress=function(n,r){var e;i.addressSpinner=!1;i.lookupTimeout&&u.clearTimeout(i.lookupTimeout);var o=new google.maps.places.AutocompleteService,f=y.countries.filter(function(n){return n.externalId===y.cartData.selectedCountry})[0],s=y.states.filter(function(n){return n.externalId===y.state})[0];(f.name=="Australia"||f.name=="United States")&&(n.length<5||(i.addressSpinner=!0,e={input:n+", "+f.name},i.lookupTimeout=u.setTimeout(function(){o.getQueryPredictions(e,function(n,u){var e,o,s;u==google.maps.places.PlacesServiceStatus.OK&&(i.postcodes=[],e=[],o=[],i.predictions=n,n.forEach(function(n){var t={};t.place_id=n.place_id;t.description=n.description;t.terms=n.terms;t.types=n.types;e.push(t);o.push(n.description)}),s=[],t.post("/checkout/GetPostCodes",{country:f.name,isoCode:f.isoCode,lookupPlaceDetail:e}).success(function(n){i.postcodes=n;var t=[];n.forEach(function(n){t.push(n.formatted1+"<br />"+n.formatted2)});r(t);i.addressSpinner=!1}))})},350)))};i.addressSpinner=!1;y.nameOnParcelChanged=!1;y.nameOnBlur=function(){y.nameOnParcelChanged||(y.nameOnParcel=y.name,y.lastName&&(y.nameOnParcel=y.name+" "+y.lastName))};y.submitProgress={messages:["Processing your order","Verifying - Please wait","Validating Card Details","We are almost done"],currentMessageNumber:0,getCurrentMessage:function(){return y.submitProgress.messages[y.submitProgress.currentMessageNumber]},start:function(){var n=function(){(y.submitProgress.currentMessageNumber++,y.paymentType!="CreditCard"&&y.submitProgress.currentMessageNumber==2&&(y.submitProgress.currentMessageNumber=3),y.submitProgress.currentMessageNumber!=3)&&(y.submitProgress.promise=e(n,2500))};y.submitProgress.promise=e(n,2500)},stop:function(){y.submitProgress.promise&&(e.cancel(y.submitProgress.promise),y.submitProgress.currentMessageNumber=0,y.submitProgress.promise=null)},isRunning:function(){return!!y.submitProgress.promise}};y.submit=function(){var t,r,n;if(y.cartData.payableAmount>1e3){if(console.log("1"),console.log(y.paymentType),y.paymentType==="Afterpay"){t=$("#afterpayAmountExceededModalLink").data("target");$(t).modal("show");return}if(y.paymentType==="ZipPay"){r=$("#zippayAmountExceededModalLink").data("target");$(r).modal("show");return}}if(n=$("#ccNumber").val().replace(/\s/g,""),n.indexOf("-")<0&&(n=WS.Payment.beautifyNumber(n)),n&&i.paymentForm.ccNumberForm.ccNumber.$setViewValue(n),!y.cartData.payableAmount||i.paymentForm.$dirty&&i.paymentForm.$valid){if(!p.start())return;y.submitProgress.start();l.showOverlay();s.beginCheckout(w()).success(function(n){b(n)}).error(function(){y.submitProgress.stop();p.setError();l.hide()})}else y.validation.show=!0,$(u).scrollTop(0),p.setError("Please enter all required fields")};i.postageDescs={};i.setPostageDesc=function(n,t){var r=Object.keys(i.postageDescs);return r.includes(n+"")==!1&&(i.postageDescs[n]=t),!1};i.isWholesale=function(){v.siteId==60};i.hasOtherPostageOption=function(n){return y.cartData.otherProductPostageOptions.some(function(t){return t.postageMethod===n})};i.hasDvdPostageOption=function(n){return y.cartData.dvdPostageOptions.some(function(t){return t.postageMethod===n})};i.countryChanged=function(n){if(v.siteId!==4&&v.siteId!==60){if(n===139){$("#redirect-to-nz-modal").modal({backdrop:"static",keyboard:!1});$(".modal-backdrop").css("background-color","#000");$(".modal-backdrop").css("opacity","0.5");return}if(n===188){$("#redirect-to-us-modal").modal({backdrop:"static",keyboard:!1});$(".modal-backdrop").css("background-color","#000");$(".modal-backdrop").css("opacity","0.5");return}}i.postcodes=[];k(n);var r=y.countries.filter(function(t){return t.externalId===n})[0];(r.name=="Australia"||r.name=="United States")&&t.post("/checkout/GetSuburbs",{country:r.name,isoCode:r.isoCode,query:"--"}).success(function(n){i.suburbs=n});l.showOverlay();s.setShippingCountry(n).success(function(n){if(h.update(n.cart),y.deliveryInstructions="",y.deliveryInstructions2="",(h.selectedOtherPostageOption==1||h.selectedOtherPostageOption==3||h.selectedOtherPostageOption==302||h.selectedOtherPostageOption==101||h.selectedOtherPostageOption==102||h.selectedOtherPostageOption==104||h.selectedOtherPostageOption==106)&&(y.deliveryInstructions="Sign for parcel (recommended)"),(h.selectedOtherPostageOption==2||h.selectedOtherPostageOption==105)&&(y.deliveryInstructions="Leave in safe place out of weather"),y.states=n.states,i.postcodes=[],i.apiState!="")for(var t=0;t<y.states.length;t++)y.states[t].name==i.apiState&&(y.state=y.states[t].externalId);else y.state=null;p.setInfo("Your country has been changed please check your postage selections");u.scroll(0,0)})["finally"](function(){l.hide()})};i.postageOptionChanged=function(n){l.showOverlay();y.deliveryInstructions="";y.deliveryInstructions2="";(n==1||n==3||n==101||n==102||n==302||n==104||n==106)&&(y.deliveryInstructions="Sign for parcel (recommended)");(n==2||n==105)&&(y.deliveryInstructions="Leave in safe place out of weather");s.setPostageOption(n).success(function(n){h.update(n)})["finally"](function(){l.hide()})};i.$watch("checkout.creditCard.ccNumber",function(n){y.creditCard.ccType=n&&n.indexOf("4")===0?"1":n&&n.indexOf("5")===0?"2":n&&n.indexOf("3")===0?"3":""});i.$watch("checkout.paymentType",function(n,t){var f;if(!y.preventPaymentSwitchPopUp){var i=function(n){return!n||n.length===0},r=y.creditCard,e=t==="CreditCard"&&t!==n&&(!i(r.ccType)||!i(r.ccName)||!i(r.ccNumber)||!i(r.ccExpiryMonth)||!i(r.ccExpiryYear)||!i(r.ccCcv)),o=a.filter(function(t){return t.id===n})[0],u=document.getElementById("submitOrder").getElementsByTagName("button")[0];u.disabled=y.cartData.lines.length>0?!1:!0;n==="CreditCard"&&u.getAttribute("invalidcc")==="true"&&(u.disabled=!0);e&&(y.oldPaymentValue=t,y.newPaymentValue=n,y.savedType=o,f=$("#switchPaymentModalLink").data("target"),$(f).modal("show"),y.paymentType=t)}});y.confirmPaymentSwitch=function(){var n,t,i;y.preventPaymentSwitchPopUp=!0;n=y.savedType;t=document.getElementById("submitOrder").getElementsByTagName("button")[0];t.disabled=y.cartData.lines.length>0?!1:!0;y.paymentType=y.newPaymentValue;y.paymentTypeDescription=n&&n.description;$(".checkout #ccNumber").popover("destroy");$(".checkout #ccCcv").popover("destroy");i=$("#switchPaymentModalLink").data("target");$(i).modal("hide");u.setTimeout(function(){y.preventPaymentSwitchPopUp=!1},2e3)};i.init=function(n){n=n||{};d=!!n.preLoadCart;i.apiState="";i.apiCountry=""};h.onInitialized=function(){var t=h.userInfo,n=h.address;d&&(y.newsletter=h.subscribeToNewsletter,y.excludeInvoice=h.excludeInvoice,y.email=t.email,y.name=t.name,y.lastName=t.lastName,y.phone=t.phone,y.nameOnParcel=n.nameOnParcel,y.address=n.addressLine1,y.address2=n.addressLine2,y.city=n.city,y.state=n.state==0?null:n.state,y.postcode=n.postCode);v.currencyCode==="NZD"&&(h.address&&h.address.country||(h.selectedCountry=139,h.otherProductPostageOptions=[{description:"7-14 bus. days Receipted Post",postageMethod:3,price:14.95}],s.setShippingCountry(h.selectedCountry).success(function(n){h.update(n.cart)})));(y.cartData.selectedOtherPostageOption==1||y.cartData.selectedOtherPostageOption==3||y.cartData.selectedOtherPostageOption==101||y.cartData.selectedOtherPostageOption==102||y.cartData.selectedOtherPostageOption==104||y.cartData.selectedOtherPostageOption==302||y.cartData.selectedOtherPostageOption==106)&&(y.deliveryInstructions="Sign for parcel (recommended)");(y.cartData.selectedOtherPostageOption==2||y.cartData.selectedOtherPostageOption==105)&&(y.deliveryInstructions="Leave in safe place out of weather");v.siteId!==60?o.getCountryStates(h.selectedCountry).success(function(n){y.countries=n.countries;y.countries.splice(2,0,{isSeparator:!0,name:"-------------------",isoCode:"00"});y.states=n.states;k(h.selectedCountry)}):o.getCountryStates(h.selectedCountry).success(function(n){y.countries=n.countries;y.states=n.states;k(h.selectedCountry)})}}]);angular.module("exciteApp").directive("wsCartError",["$window",function(n){"use strict";return{restrict:"A",link:function(t){t.showCartError=function(){var i="left",r=/(iPad)/g.test(navigator.userAgent),t;(r||$(window).width()<752)&&(i="bottom");t=$("#ccNumber");t.popover({animation:!0,html:!0,placement:i,trigger:"manual",title:'<span class="c-err-title">Oops. Problem with your card <a href="#" id="xCartErr" class="close">&times;<\/a><\/span>',content:'<div class="c-err-body">\n  <div>This may be due to the following:<\/div>\n  <div class="h-err">1..Incorrect Card details<\/div>\n  <div>- Check Name on card<\/div>\n  <div>- Check Card Number<\/div>\n  <div>- Check Expiry Date<\/div>\n  <div>- Check CCV<\/div>\n  <div class="h-err">2..Payment not approved<\/div>\n  <div>- Check available funds<\/div>\n  <div>- Check if using a valid card<\/div>\n  <div>- Check card activated<\/div>\n  <div class="h-err">Please try again<\/div>\n  <div>If you are still having a problem,<\/div>\n  <div>contact your card issuer or<\/div>\n  <div><a href="/info/contact">Click here to contact us<\/a><\/div>\n<\/div>'});t.popover("show");$("#xCartErr").click(function(){t.popover("hide")});n.setTimeout(function(){var n=$("#payment").offset().top;$(window).scrollTop(n-50)},1e3)}}}}]);angular.module("exciteApp").controller("CartController",["$scope","$window","apiQuery","apiCommand","overlay","cartSharedData","giftOfferCoordinator","cartPreviewCmd","makeStatus","makeBroadcastStatus","siteInfo",function(n,t,i,r,u,f,e,o,s,h,c){"use strict";$(window).scroll(function(){var t=$(window).scrollTop();n.actualScrollY=t});var l=n.cartModel={selectedProductId:null,triggersPromoOffer:!1,selectedVariant:null,selectedQuantity:1,addProductFormSubmitted:!1,cartData:f,cartItemsLoaded:!1,status:s(),showError:!1,showSuccess:!1},y=h("checkout_status"),a=l.addProductStatus=h("add_product_status"),v=function(n){f.update(n)};n.pushCartEnhancedEcommerce=function(){i.getCartEnhancedEcommerce().success(function(n){console.log("cart enhanced ecommerce success",n);console.log("cart enhanced ecommerce success",JSON.parse(n));dataLayer.push(JSON.parse(n))})};n.init=function(t){t=$.extend({},t);t.productId?(l.selectedProductId=t.productId,l.triggersPromoOffer=t.triggersPromoOffer,l.brandId=t.brandId,l.brandName=t.brandName):(i.getCart().success(function(t){v(t);l.cartItemsLoaded=!0;n.pushCartEnhancedEcommerce()}),t.message&&y.setError(t.message))};l.updateLineQuantity=function(n){var t;y.start()&&(t={productId:n.productId,variantId:n.skuId,quantity:n.updateQuantity},u.showOverlay(),r.updateCartItem(t).success(function(t){v(t);y.setSuccess('Quantity of item "'+n.productName+'" changed to '+n.updateQuantity)}).error(function(){n.updateQuantity=n.quantity;y.setError()})["finally"](function(){u.hide()}))};l.addProduct=function(){var t,i,u,s,h;if(l.addProductFormSubmitted=!0,!n.addProductForm.$valid||!(a.start()&&l.status.start())){i=window.matchMedia("all and (max-width: 640px),(max-width: 768px) and (orientation : portrait)").matches;u=window.location.href.indexOf("/p")!==-1;i&&u&&(s=$(".product-select select"),s&&(h=$(".product-select select").offset().top-160,$("html, body").animate({scrollTop:h},100)));return}t={productId:l.selectedProductId,variantId:l.selectedVariant&&l.selectedVariant.sku,quantity:l.selectedQuantity};r.addCartItem(t).success(function(n){var r,u,i,t;for(v(n),a.setSuccess(),l.status.setSuccess(),o.show(),c.siteId!=60&&l.triggersPromoOffer&&n.promoGiftsEligible.filter(function(n){return n.brandName===l.brandName}).length&&e.showPromoOffer({brandId:l.brandId,brandName:l.brandName,parentProductId:l.selectedProductId}),$(".product-details").length>0&&(r=$(".product-details").data("product-id"),u=_.some(n.lines,function(n){return n.productId===r}),u?$(".item-in-cart").removeClass("hidealert"):$(".item-in-cart").addClass("hidealert")),i=0;i<f.lines.length;i++)t=f.lines[i],t.productId===l.selectedProductId&&dataLayer.push({event:"addToCart",ecommerce:{currencyCode:"AUD",add:{products:[{name:t.productName,id:t.productCode,price:t.onSale?t.salePrice:t.price,brand:l.brandName,category:t.categoryIds.length>0?t.categoryIds[0]:"",variant:l.selectedVariant.sku,quantity:l.selectedQuantity}]}}})}).error(function(){a.setError();l.status.setError()})};l.addProductFromWishlist=function(){var t;(l.addProductFormSubmitted=!0,n.addProductForm.$valid&&a.start()&&l.status.start())&&(t={productId:l.selectedProductId,variantId:l.selectedVariant&&l.selectedVariant.sku,quantity:1},r.addCartItem(t).success(function(n){if(v(n),a.setSuccess(),l.status.setSuccess(),o.show(),c.siteId!=60&&l.triggersPromoOffer&&n.promoGiftsEligible.filter(function(n){return n.brandName===l.brandName}).length&&e.showPromoOffer({brandId:l.brandId,brandName:l.brandName,parentProductId:l.selectedProductId}),$(".product-details").length>0){var t=$(".product-details").data("product-id"),i=_.some(n.lines,function(n){return n.productId===t});i?$(".item-in-cart").removeClass("hidealert"):$(".item-in-cart").addClass("hidealert")}}).error(function(){a.setError();l.status.setError()}))};l.addWholesaleProduct=function(n){var t,i;if(l.addProductFormSubmitted=!0,t=[],n.variations.forEach(function(n){n.quantitySelected>0&&t.push({skuId:n.sku,quantity:n.quantitySelected,supplierCode:n.supplierCode})}),t.length==0){console.log("INVALID!!!");return}l.addProductFormSubmitted=!0;i={productId:n.id,variants:t};r.addWholesaleCartItem(i).success(function(n){v(n);a.setSuccess();l.status.setSuccess();o.show()}).error(function(){a.setError();l.status.setError()})};l.setSelectedVariant=function(n){l.selectedVariant=n;l.onSelectVariantChanged(!0)};l.onSelectVariantChanged=function(n){l.addProductFormSubmitted=!1;n||(a.clear(),l.status.clear())};l.askAddProductToWishlist=function(n){l.productToBeAddedToWishlist=n;var t=$("#moveToWishlistModalLink").data("target");$(t).modal("show")};l.showOptionsInfoOther=function(){var i=n.actualScrollY,t=$("#postageOptionsOther").data("target");$(t).modal("show");$(t).on("hidden.bs.modal",function(){window.scrollTo(0,i)})};l.showZipPayPopup=function(){var i=n.actualScrollY,t=$("#zipPayPopup").data("target");$(t).modal("show");$(t).on("hidden.bs.modal",function(){window.scrollTo(0,i)})};l.showAfterPayPopup=function(){var i=n.actualScrollY,t=$("#afterPayPopup").data("target");$(t).modal("show");$(t).on("hidden.bs.modal",function(){window.scrollTo(0,i)})};l.addProductToWishlist=function(n){l.addingProductToWishlist=!0;r.addWishlistItem(n.productId).success(function(){l.removeLine(n);$("#menuMobile .wishlist-mobile-container .icon-heart-empty").css("display","none");$("#menuMobile .wishlist-mobile-container .icon-heart").attr("style","display: inline !important;")}).finally(function(){})};l.dumbClick=function(){};l.askRemoveLine=function(n){l.productToBeRemoved=n;var t=$("#removeProductModalLink").data("target");$(t).modal("show")};l.removeLine=function(n,t){l.removingProduct=!0;var i;t&&confirm("Are you sure you want to remove this product?")===!1||(i={productId:n.productId,variantId:n.skuId,freeProduct:n.freeGift,promoProduct:n.promoProduct,isDiscounted:n.isDiscounted},r.removeCartItem(i).success(function(n){v(n)}).finally(function(){var t=$("#removeProductModalLink").data("target"),n;$(t).modal("hide");n=$("#moveToWishlistModalLink").data("target");$(n).modal("hide");l.removingProduct=!1;l.addingProductToWishlist=!1}))};l.removeRestrictedItems=function(){r.removeRestrictedCartItems().success(function(n){v(n);f.hasSomeRestrictedItems=!1;f.hasAllRestrictedItems=!1})}}]);angular.module("exciteApp").controller("WishlistController",["$scope","$log","apiQuery","apiCommand",function(n,t,i,r){"use strict";function o(n,t){var i=null,r=n.filter(function(n){return n===t});return r.length&&(i=r[0]),i}function e(n,t){var r=null,i;return n?(i=n.filter(function(n){return n.id===t}),i.length&&(r=i[0]),r):null}var u=n.wishListModel={wishList:{products:[],productIds:[]}},f=4;n.noProductInWishlist=!1;n.init=function(t,r){t&&i.getWishlist().success(function(t){u.wishList.products=t.products;u.message="There are no products in your Wishlist";u.wishList.products.length===0&&(n.noProductInWishlist=!0)});r&&(console.log("ppupulating wishlist ids"),i.getWishlistProductIds().success(function(t){u.wishList.productIds=t;u.wishList.productIds.length===0&&(n.noProductInWishlist=!0)}))};u.hasProduct=function(n){return o(u.wishList.productIds,n)!==null};u.hasProducts=function(){return u.wishList.productIds.length>0};u.rowIndices=function(){var t,i,n;if(u.wishList.products.length===0)return[];for(t=[],i=Math.floor(u.wishList.products.length/f)+1,n=0;n<i;n++)t.push(n);return t};u.getRow=function(n){var t=n*f,i=t+f;return u.wishList.products.slice(t,i)};u.selectProductToCart=function(n){u.productSelected=n;var t=$("#productAddedToCartModalLink").data("target");$(t).modal("show");console.log("product selected",u.productSelected)};u.addProduct=function(t){e(u.wishList.products,t)||r.addWishlistItem(t).success(function(){u.wishList.products.push({id:t});u.wishList.productIds.push(t);$(".link-wishlist a").addClass("wishlist-has-products");$(".wishlist-number-of-items").css("color","#aa0f5b");$(".link-wishlist a .icon-heart").attr("style","display: inline !important; color: #aa0f5b");$(".link-wishlist a .icon-heart-empty").css("display","none");$(".wishlist-number-of-items").text(u.wishList.productIds.length+" items");$("#menuMobile .wishlist-mobile-container .icon-heart-empty").css("display","none");$("#menuMobile .wishlist-mobile-container .icon-heart").attr("style","display: inline !important;");n.noProductInWishlist=!1})};u.removeProduct=function(t){var i=e(u.wishList.products,t);i!==null&&r.removeWishlistItem(t).success(function(){var r=u.wishList.products,f,e;r.splice(r.indexOf(i),1);$(".wishlist-number-of-items").text(u.wishList.products.length+" items");r.length===0&&($(".wishlist-number-of-items").css("color","#333"),$(".link-wishlist a .icon-heart").css("display","none"),$(".link-wishlist a .icon-heart-empty").attr("style","display: inline !important; color: #aa0f5b"),$("#menuMobile .wishlist-mobile-container .icon-heart-empty").attr("style","display: inline !important;"),$("#menuMobile .wishlist-mobile-container .icon-heart").css("display","none"),n.noProductInWishlist=!0);f=u.wishList.productIds;angular.forEach(f,function(n,i){n===t&&(e=i)});f.splice(e,1)})}}]);angular.module("exciteApp").controller("CartGiftsController",["giftOfferCoordinator",function(n){"use strict";var t=this,i=t.model=n;t.showFreeGifts=function(n){i.showFreeOffer(n)}}]);angular.module("exciteApp").controller("GiftInfoController",["apiQuery",function(n){"use strict";var r=4,u=this,f=u.model={products:[]},t,i;t=function(n,t){return t.forEach(function(t,i){var u=Math.floor(i/r);u<n.length?n[u].push(t):n.push([t])}),n};i=function(){n.getFreeGifts().success(function(n){f.products=t([],n.freeGifts);setTimeout(function(){$(".gift-row li img").height(10);$(".gift-row li img").height("auto")},500)})};i()}]);angular.module("exciteApp").factory("giftOfferCoordinator",function(){"use strict";var n={updateCartText:"",freeGiftTotals:null,brandId:null,brandName:null,parentProductId:null,isPreview:!1,error:!1},r="",t=[],i=[];return n.configureFreeOffer=function(n){r="free";this.updateCartText=n},n.configurePromoOffer=function(n){r="promo";this.updateCartText=n},n.showPromoOffer=function(n){this.brandId=n.brandId;this.brandName=n.brandName;this.parentProductId=n.parentProductId;this.isPreview=!!n.isPreview;t.forEach(function(n){n()})},n.showFreeOffer=function(n,i){this.freeGiftTotals=n;this.isPreview=!!i;t.forEach(function(n){n()})},n.hideOffer=function(){i.forEach(function(n){n()})},n.offerType=function(){return r},n.on=function(n,r){switch(n){case"show":t.push(r);break;case"hide":i.push(r)}},n.off=function(n,r){switch(n){case"show":t=_.without(t,r);break;case"hide":i=_.without(i,r)}},n}).directive("giftOffer",["$compile","giftOfferCoordinator",function(n,t){"use strict";var i='<div ng-show="!showOffer"\n     class="host-container">\n<\/div>\n<div ng-show="showOffer"\n     class="gift-offer-container"\n     data-ng-cloak>\n<\/div>',r=function(n,t){n==="promo"&&($("#desktopHeaderContainer").data("affix-is-disabled",!0),$("#header").show(),$("#floatingHeader").hide(),$("#desktopHeaderContainer").removeClass("affix affix-top affix-bottom"),$("#desktopHeaderContainer").addClass("affix"),$("#giftOffer").css("margin-top","0"),$("#giftHeader").css("position","inherit"));t.showOffer=!0},u=function(n){$("#desktopHeaderContainer").data("affix-is-disabled",!1);$("#header").show();$("#floatingHeader").hide();$("#desktopHeaderContainerPad").hide();$("#desktopHeaderContainer").removeClass("affix affix-top affix-bottom");$("#desktopHeaderContainer").addClass("affix-top");n.showOffer=!1};return{restrict:"A",scope:{},terminal:!0,compile:function(f){var e=f.contents(),o=e.closest(".host-view").clone(),s=e.closest(".gift-offer-view").clone(),h,c,l;return f.html(i),h=n(f.children()),o.appendTo(f.find(".host-container")),s.appendTo(f.find(".gift-offer-container")),c=n(o),l=n(s),function(n,i,f){try{var e=f.giftOffer,o=f.returnText,s=function(){r(e,n)},a=function(){u(n)};n.showOffer=!1;c(n.$parent);l(n.$parent);h(n);e==="free"?t.configureFreeOffer(o):t.configurePromoOffer(o);t.on("show",s);t.on("hide",a);n.$on("$destroy",function(){t.off("show",s);t.off("hide",a)})}catch(v){console.log("Failed to load gift view: "+v)}}}}}]).directive("freeGiftPreview",["giftOfferCoordinator",function(n){"use strict";var t='<div class="free-gift-preview">\n  <div ng-transclude><\/div>\n<\/div>';return{restrict:"A",scope:{},transclude:!0,template:t,link:function(){n.configureFreeOffer("");n.showFreeOffer(null,!0)}}}]).controller("GiftOfferController",["$log","$scope","$window","apiQuery","apiCommand","giftOfferCoordinator","overlay","cartSharedData",function(n,t,i,r,u,f,e,o){"use strict";var b=4,h=this,s=h.model={title:"",brandName:"",maxGifts:"",products:[],selectedProducts:[],invalidSelections:[],currentPage:0,totalProducts:0,viewedProducts:0,productsFetched:0,totalPages:0,pagerReset:-1,freeGiftTotals:0,updateCartText:"",offerType:undefined,isPreview:!1,initialized:!1,fetching:!1,showNext:!0,categoryCriteria:{includeAll:!0,includeToys:!0,includeLingerie:!0,includeStraightDvds:!0,includeGayDvds:!0,includeToys2:!1,includeLingerie2:!1,includeStraightDvds2:!1,includeGayDvds2:!1},categoryCriteriaOptions:[{name:"View All FREE GIFTS",value:0},{name:"Toys, Novelties & Lubes",value:1},{name:"Lingerie & Hosiery",value:2}],dvdCategoryCriteriaOptions:[{name:"View All FREE GIFTS",value:0},{name:"Straight DVD",value:1},{name:"Gay DVD",value:2}],selectedCategoryCriteriaOption:undefined,selectedDvdCategoryCriteriaOption:undefined,recordsPerPageOptions:[{name:20,value:20},{name:40,value:40}],selectedRecordsPerPage:undefined},l={setTitle:function(n){s.title=s.offerType==="free"?"Yippee! You qualify for "+n+" FREE GIFT(S)":f.brandName+" Special FREE GIFT Limited Time Offer"},getGifts:function(n,t,i){return s.selectedCategoryCriteriaOption=i.includeAll?s.categoryCriteriaOptions[0]:i.includeToys?s.categoryCriteriaOptions[1]:s.categoryCriteriaOptions[2],s.selectedDvdCategoryCriteriaOption=i.includeAll?s.dvdCategoryCriteriaOptions[0]:i.includeStraightDvds?s.dvdCategoryCriteriaOptions[1]:s.dvdCategoryCriteriaOptions[2],s.offerType==="free"?r.getFreeGifts(n,t,i):r.getBrandPromoGifts(f.parentProductId,f.brandId,n,t)},updateGifts:function(n){return s.offerType==="free"?u.updateFreeGifts(n):u.addBrandPromoGift(n&&n[0],f.parentProductId)}},y,k,a,v,c,p,d,g,nt,w;y=function(n){s.selectedProducts.length==s.maxGifts&&s.selectedProducts.pop();s.selectedProducts.push(n)};k=function(n){n.selectedVariation?y(n):n.variations.length===1?(n.selectedVariation=n.variations[0],y(n)):s.invalidSelections.push(n)};a=function(n,t){return n&&n.filter(function(n){return n.id===t})[0]};v=function(n){var t=a(s.selectedProducts,n.id);return t?s.selectedProducts.indexOf(t):-1};p=function(n){return n.length>0?(n.length-1)*b+n[n.length-1].length:0};d=function(n,t){var i=p(n);return t.forEach(function(t,r){var u=Math.floor((r+i)/b);u<n.length?n[u].push(t):n.push([t])}),n};g=function(n){var u=function(n,t){return n&&n.filter(function(n){return n.sku===t})[0]},i,r,t;if(n.selectedFreeGiftIds)for(i=0;i<n.selectedFreeGiftIds.length;i++)r=n.selectedFreeGiftIds[i],t=a(n.selectedFreeGifts,r.productId),t&&(t.selectedVariation=u(t.variations,r.skuId),s.selectedProducts.push(t))};nt=function(n,t,i){s.products=d(i?s.products:[],n.freeGifts);s.maxGifts=n.maxGifts;s.productsFetched=p(s.products);s.totalProducts=n.totalProducts;s.totalPages=n.totalPages;s.pagerReset=t;s.showNext=s.currentPage<s.totalPages-1;s.viewedProducts=(s.currentPage+1)*s.selectedRecordsPerPage.name;s.viewedProducts>s.totalProducts&&(s.viewedProducts=s.totalProducts);s.initialized||g(n)};c=function(n,t){s.currentPage=n;var r=s.selectedRecordsPerPage.value;return s.fetching=!0,e.showOverlay("Loading"),l.getGifts(n,r,s.categoryCriteria).success(function(r){t||i.scroll(0,0);nt(r,n,t);setTimeout(function(){$(".gift-row li img").height(10);$(".gift-row li img").height("auto")},500)})["finally"](function(){s.fetching=!1;e.hide()})};w=function(){s.initialized=!1;s.products=[];s.selectedProducts=[];s.invalidSelections=[];s.freeGiftTotals=f.freeGiftTotals;s.updateCartText=f.updateCartText;s.offerType=f.offerType();s.brandName=f.brandName;s.isPreview=f.isPreview;f.error=null;l.setTitle();s.selectedRecordsPerPage=s.recordsPerPageOptions[0];s.selectedCategoryCriteriaOption=s.categoryCriteriaOptions[0];s.selectedDvdCategoryCriteriaOption=s.dvdCategoryCriteriaOptions[0];c(0).then(function(){l.setTitle(s.maxGifts);s.initialized=!0});typeof i.history.pushState!="undefined"?i.history.pushState(null,"","#gift-offer"):i.location.hash="gift-offer";i.onhashchange=function(){i.location.hash||t.$apply(f.hideOffer())}};h.closeVariations=function(n){console.log("closing");n.closeVariations=!0;h.preselectedProduct=null};h.preselect=function(n){if(n.closeVariations){n.closeVariations=!1;return}if(!h.isOos(n)){if(!n.variations.length||n.variations.length===1||v(n)>-1){h.select(n);return}h.preselectedProduct=n;var t=$("#selectGiftVariationModalLink").data("target");t&&$(t).modal("show")}};h.completeSelection=function(n,t){t.quantity!==0&&(h.addingGift=!0,n.selectedVariation=t,h.select(n))};h.select=function(n){var t,i;if(!s.isPreview){if(t=v(n),s.invalidSelections=[],t>-1){s.selectedProducts.splice(t,1);return}return k(n),i=s.selectedProducts.map(function(n){return{productId:n.id,skuId:n.selectedVariation.sku}}),e.showSpinner=!0,e.showOverlay(),$(".return-to-cart").css("visibility","hidden"),l.updateGifts(i).success(function(n){o.update(n);h.preselectedProduct=null;var t=$("#selectGiftVariationModalLink").data("target");t&&$(t).modal("hide");h.addingGift=!1}).error(function(){f.error="There was an error adding your free gifts, please try again later.";h.preselectedProduct=null;var n=$("#selectGiftVariationModalLink").data("target");n&&$(n).modal("hide");h.addingGift=!1})["finally"](function(){e.hide();$(".return-to-cart").css("visibility","visible");closeOffer()})}};h.unselect=function(n){s.selectedProducts.length>n&&s.selectedProducts.splice(n,1)};h.isSelected=function(n){return!s.isPreview&&v(n)>-1};h.isOos=function(n){var t=n.variations.length===1&&n.variations[0].quantity===0;return!s.isPreview&&t};h.changeOosVariantDescription=function(n){var t=n.description,i=t.indexOf("-"),r="";return r=i===-1?t:t.substring(0,i),r+" (SOLD OUT)"};h.getSelectedVariantDescription=function(n){var t=a(s.selectedProducts,n.id);return t.selectedVariation&&t.selectedVariation.description?t.selectedVariation.description:null};h.isInvalidSelection=function(n){return s.invalidSelections.indexOf(n)>-1};h.VariationSelected=function(n){if(window.isMobile()){var t=s.invalidSelections.pop();s.invalidSelections.push(t);h.select(n)}};h.updateCart=function(){var n=function(){f.hideOffer();i.history.go(-1)},t;if(s.isPreview){n();return}return t=s.selectedProducts.map(function(n){return{productId:n.id,skuId:n.selectedVariation.sku}}),e.showOverlay(),l.updateGifts(t).success(function(n){o.update(n)}).error(function(){f.error="There was an error adding your free gifts, please try again later."})["finally"](function(){e.hide();n()})};h.goBack=function(){i.history.go(-1);s.isPreview&&s.offerType!=="promo"&&i.history.go(-1)};h.scrollToTop=function(){i.scrollTo(0,0)};h.changePageHandler=function(n){n-=1;c(n)};h.changeCategoryCriteria=function(){switch(s.selectedCategoryCriteriaOption.value){case 0:s.categoryCriteria.includeAll=!0;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!0;break;case 1:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!1;break;case 2:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeLingerie=!0;s.categoryCriteria.includeToys=!1}c(0)};h.changeDvdCategoryCriteria=function(){switch(s.selectedDvdCategoryCriteriaOption.value){case 0:s.categoryCriteria.includeAll=!0;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!0;break;case 1:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!1;break;case 2:s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!1;s.categoryCriteria.includeGayDvds=!0}c(0)};h.includeAllChanged=function(){s.categoryCriteria.includeAll=!0;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!0;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!0;s.categoryCriteria.includeToys2=!1;s.categoryCriteria.includeLingerie2=!1;s.categoryCriteria.includeStraightDvds2=!1;s.categoryCriteria.includeGayDvds2=!1;c(0)};h.includeToysChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeToys=!0;s.categoryCriteria.includeLingerie=!1;s.categoryCriteria.includeToys2=!0;s.categoryCriteria.includeLingerie2=!1;c(0)};h.includeLingerieChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeToys=!1;s.categoryCriteria.includeLingerie=!0;s.categoryCriteria.includeToys2=!1;s.categoryCriteria.includeLingerie2=!0;c(0)};h.includeStraightDvdsChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!0;s.categoryCriteria.includeGayDvds=!1;s.categoryCriteria.includeStraightDvds2=!0;s.categoryCriteria.includeGayDvds2=!1;c(0)};h.includeGayDvdsChanged=function(){s.categoryCriteria.includeAll=!1;s.categoryCriteria.includeStraightDvds=!1;s.categoryCriteria.includeGayDvds=!0;s.categoryCriteria.includeStraightDvds2=!1;s.categoryCriteria.includeGayDvds2=!0;c(0)};h.changeRecordsPerPage=function(){c(0)};h.updateRecordsPerPage=function(n){s.selectedRecordsPerPage=n;c(0)};h.fetchNextPage=function(){c(s.currentPage+1,!1)};f.on("show",w);t.$on("$destroy",function(){f.off("show",w)})}]),function(){var n=this;this.eWAY=function(){function n(){}return n.version=1,n.path="JSONP/v3/process",n.processing=!1,n.defaults={autoRedirect:!0,onComplete:null,on3DSecure:null,onRedirecting:function(){return!0},onError:null,onTimeout:null,timeout:9e4},n.isValidCvn=function(t){return t=n.trim(t),/^\d+$/.test(t)&&t.length>=3&&t.length<=4},n.isValidCardNumber=function(t){return t=(t+"").replace(/\s+|-/g,""),t.length>=10&&t.length<=19&&n.isValidLuhn(t)},n.process=function(t,i){var f,c="&",v=(new Date).getTime(),l=0,s,a,h,u,e,r,o;if(!n.processing){for(n.processing=!0,h=n.parseUri(t.action),u="eWAY"+(++v).toString(36),i=n.merge(n.defaults,i),window[u]=function(n){if(n.Is3DSecure&&i.on3DSecure!=null&&i.on3DSecure(),i.autoRedirect&&i.onRedirecting!=null&&i.onRedirecting(n.RedirectUrl)&&(window.location=n.RedirectUrl),i.onComplete!=null)i.onComplete(n);try{delete window[u]}catch(t){}window[u]=void 0},e=0;e<t.elements.length;e++)f=t.elements[e],/EWAY_.*/.test(f.name)&&(c+=n.encode(f.name)+"="+n.encode(n.trim(f.value))+"&");s=document.head||document.getElementsByTagName("head")[0]||document.documentElement;a=h.protocol+"://"+h.authority+"/"+n.path+"?ewayjsonp="+u+c;r=document.createElement("script");r.setAttribute("type","text/javascript");r.setAttribute("src",a);r.async=!0;r.onload=function(){o()};r.onerror=function(n){if(i.onError!=null)i.onError(n);o()};s.appendChild(r);l=setTimeout(function(){i.onTimeout!=null&&i.onTimeout();o()},i.timeout);o=function(){try{n.processing=!1;s.removeChild(r)}catch(t){}clearTimeout(l);u in window&&(window[u]=function(){})}}},n}(),function(){this.eWAY.merge=function(n,t){var r={};for(var i in n)r[i]=n[i];for(i in t)r[i]=t[i];return r};this.eWAY.encode=function(n){return encodeURIComponent(n)};this.eWAY.trim=function(n){return(n+"").replace(/^\s+|\s+$/g,"")};this.eWAY.parseUri=function(n){for(var u=["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"],r=new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(n),t={},i=0;i<10;i++)t[u[i]]=r[i]?r[i]:"";return t.directoryPath.length>0&&(t.directoryPath=t.directoryPath.replace(/\/?$/,"/")),t};this.eWAY.isValidLuhn=function(n){var t,i,r,u,n,f;for(r=!0,u=0,i=(n+"").split("").reverse(),n=0,f=i.length;n<f;n++)t=i[n],t=parseInt(t,10),(r=!r)&&(t*=2),t>9&&(t-=9),u+=t;return u%10==0}}()}();angular.module("exciteApp").constant("paymentTypes",[{id:"PayPal",description:"PayPal"},{id:"CreditCard",description:"Credit Card"},{id:"BPay",description:"BPay"},{id:"DirectDeposit",description:"Bank Transfer"},{id:"ChequeOrMoneyOrder",description:"Cheque or Money Order"},{id:"PhoneOrder",description:"Phone Order"},{id:"StoreCredit",description:"StoreCredit"}]);angular.module("exciteApp").filter("quantityRange",function(){"use strict";return function(n,t,i){if(t==0)return n.push(0),n;var r,u;for(t=parseInt(t,10),i=i&&parseInt(i,10),u=Math.min(t,10),i&&(u=Math.max(u,i)),r=1;r<=u;r++)n.push(r);return n}});angular.module("exciteApp").filter("quantityRangeWholesale",function(){"use strict";return function(n,t,i){n.push(0);var r,u,t=parseInt(t,10);for(i=i&&parseInt(i,10),u=t,i&&(u=Math.max(u,i)),r=1;r<=u;r++)n.push(r);return n}});var ibsa=function(){"use strict";function n(n){for(var i=this,r=n.split("."),t=0,u=r.length;t<u;t++)typeof i[r[t]]=="undefined"&&(i[r[t]]={}),i=i[r[t]];return i}return{namespace:n}}();(function(){"use strict";var n=function(n){return n.replace(/^\s+|\s+$/g,"")},t=function(t,i){var r=t.unescape(t.document.cookie).split(/[;,]/);return r.filter(function(t){var r=t.split("="),u=r[0];return n(u)===i})[0]},i=function(i,r){var e=t(i,r),u,f;return e&&(u=e.split("="),u.length>1&&(f=u[1],f))?n(f):undefined},r=function(n,t){var r=i(n,t);return r&&n.parseInt(r)};ibsa.getCookieValueInt=r})(),function(){window.WS||(window.WS={});WS.Utilities={evenHeight:function(n){var t;return t=$.map($(n),function(n){return $(n).css("min-height",0),parseInt($(n).height())}),t.length===1?$(n).css("min-height","auto"):$(n).css("min-height",Math.max.apply(Math,t)+20)},loadingScreen:function(n,t){var i,r;if(n=n!=null?n:"show",n==="show"){if(i=$('<div class="loading-overlay"><span><\/span><\/div>'),r=function(){var n,r;return n=$(t),r=n.offset(),i.css({height:n.outerHeight(),left:r.left,position:"absolute",top:r.top,width:n.outerWidth()})},$("body").append(i),t!=null){r();$(window).on("resize",function(){return r()})}return i.fadeIn(50)}if(n==="hide")return $(".loading-overlay").fadeOut(50,function(){return $(this).remove()})},getTextSelection:function(n){var t,r,e,f,s,o,i,u;return t=$(n)[0],i=0,r=0,typeof t.selectionStart=="number"&&typeof t.selectionEnd=="number"?(i=t.selectionStart,r=t.selectionEnd):(o=document.selection.createRange(),o&&o.parentElement()===t&&(f=t.value.length,s=t.value.replace(/\r\n/g,"\n"),u=t.createTextRange(),u.moveToBookmark(o.getBookmark()),e=t.createTextRange(),e.collapse(!1),u.compareEndPoints("StartToEnd",e)>-1?i=r=f:(i=-u.moveStart("character",-f),i+=s.slice(0,i).split("\n").length-1,r=u.compareEndPoints("EndToEnd",e)>-1?f:-u.moveEnd("character",-f)+(s.slice(0,r).split("\n").length-1)))),{start:i,end:r}},randomString:function(n){var t,i,r,u;for(t="0123456789abcdefghiklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="",n=n||10,i=0;i<n;)u=Math.floor(Math.random()*t.length),r+=t.substring(u,u+1),i++;return r}}}.call(this),function(){"use strict";var n,t,i,r;n=function(n){function t(){}return n?(t.prototype=n,new t):{}};Object.create=Object.create||n;t=function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])};i=function(n,t){for(var i=n+"";i.length<t;)i="0"+i;return i};r=function(n,t){var i=typeof history.pushState!="undefined";t=t||"#nb";i?history.pushState(null,"",t):location.hash=t;n.onhashchange=function(){i?history.pushState(null,"",t):location.hash=t}};ibsa.extendObject=t;ibsa.pad=i;ibsa.noBack=r}(),function(){$(document).on("ready ajaxComplete",function(){WS.Utilities.evenHeight(".checkout #details, .checkout #payment");return $(document).on("click.ws",".popover .popover-title .close",function(n){var t;return n.preventDefault(),t=$(this).attr("data-id"),$("[data-id="+t+"]").popover("destroy")})});$(window).on("resize",function(){return WS.Utilities.evenHeight("#footer-content > .col:visible"),WS.Utilities.evenHeight(".checkout #details, .checkout #payment")})}.call(this)