ngAWDSApp.directive("postcodeDirective",["HttpFactory","$window",function(n){return{restrict:"A",scope:{postcodeSelected:"=",errorMsg:"="},template:'<style>.postcode-group-item span {width: 33.33%;float:left} .postcode-group-item {float: left; width: 100%} .postcode-group{position: absolute;width:100%; max-height:300px; overflow: auto}<\/style><div class="input" ng-class="{\'has-error\': errorMsg != \'\'}"><input type="text" ng-model="postcodeSelected.locality" ng-change="searchKey()" ng-focus="searchKey()" ng-blur="onBlur()" ng-model-options="{debounce: 500}" class="form-control locality"><input type="text" readonly ng-model="postcodeSelected.state" class="form-control state"><input type="text" readonly ng-model="postcodeSelected.pnum" class="form-control pnum"><span ng-show="errorMsg != \'\'" class="help-block with-errors">{{errorMsg}}<\/span><\/div><ul class="postcode-group list-group"><li class="postcode-group-item list-group-item" ng-repeat="item in postcodes" ng-click="onSelectPostCode(item)"><span class="locality">{{item.locality}}<\/span><span class="state">{{item.state}}<\/span><span class="pnum">{{item.pcode}}<\/span><\/li><\/ul>',link:function(t,i){$(i).find(".state, .pnum").css({width:"33.33%",position:"relative",left:"33%",top:"-40px","background-color":"transparent","border-color":"transparent","box-shadow":"none",display:"unset"});$(i).find(".state, .pnum").click(function(){$(i).find(".locality").focus()});t.PCodeRecords=[];var r=function(t){return n.get({searchText:t},"Stock/WSStock/Postcode")};t.ValidatePCode=function(){t.postcodeSelected==null||t.postcodeSelected=={}?t.errorMsg="This field is required":IsNullOrEmpty(t.postcodeSelected.locality)?(t.errorMsg="Please select a suburb from the dropdown list.",t.postcodeSelected={}):r(t.postcodeSelected.locality).then(function(n){var u,r;for(n.data.length>0?$(i).find(".postcode-group").show():$(i).find(".postcode-group").hide(),u=!1,r=0;r<n.data.length;r++)if(t.postcodeSelected.locality==n.data[r].locality&&t.postcodeSelected.state==n.data[r].state&&t.postcodeSelected.pnum==n.data[r].pcode_num){u=!0;break}u?t.errorMsg="":(t.errorMsg="Please select a suburb from the dropdown list.",t.postcodeSelected.state=null,t.postcodeSelected.pnum=null);t.PCodeRecords=n.data},function(){t.PCodeRecords=[]})};$(document).mouseup(function(n){var t=i;t.is(n.target)||t.has(n.target).length!==0||$(i).find(".postcode-group").hide()});t.searchKey=function(){t.ValidatePCode();t.postcodes=t.PCodeRecords};t.onSelectPostCode=function(n){t.postcodeSelected={locality:n.locality,state:n.state,pnum:n.pcode};t.errorMsg="";$(i).find(".postcode-group").hide()}}}}]),function(n,t){"use strict";typeof exports=="object"&&typeof module!="undefined"?module.exports=t(require("angular")):typeof define=="function"&&define.amd?define(["module","angular"],function(n,i){n.exports=t(i)}):t(n.angular)}(this,function(n){function u(u,e,o,h,c){function l(f,l,a,v){function k(t){t=t||{};y.init(n.extend({},s,t));d();rt()}function d(){y.container=g();y.options.containerCssClass&&y.container.addClass(y.options.containerCssClass);y.options.dropdownParent?y.options.dropdownParent.append(y.container):(o.find("body").append(y.container),y.container.addClass("auto-complete-absolute-container"));y.elementUL=n.element(y.container[0].querySelector("ul.auto-complete-results"))}function g(){return n.isElement(y.options.dropdownParent)?nt():tt()}function nt(){var n=y.options.dropdownParent,t,i;return n.addClass("auto-complete-container unselectable"),n.attr("data-instance-id",y.instanceId),t=e(p()),i=t(f),n.append(i),n}function tt(){var n=e(it());return n(f)}function it(){var n="";return n+='<div class="auto-complete-container unselectable"',n+='     data-instance-id="{{ ctrl.instanceId }}"',n+='     ng-show="ctrl.containerVisible">',n+=p(),n+"<\/div>"}function p(){var n="";return n+='     <ul class="auto-complete-results">',n+='         <li ng-if="ctrl.renderItems.length"',n+='             ng-repeat="renderItem in ctrl.renderItems track by renderItem.id"',n+='             ng-click="ctrl.selectItem($index, true)"',n+='             class="auto-complete-item" data-index="{{ $index }}"',n+='             ng-class="ctrl.getSelectedCssClass($index)">',n+='               <auto-complete-item index="$index"',n+='                      item-template-link-fn="ctrl.itemTemplateLinkFn"',n+='                      render-item="renderItem"',n+='                      search-text="ctrl.searchText" />',n+="         <\/li>",n+='         <li ng-if="!ctrl.renderItems.length && ctrl.options.noMatchTemplateEnabled"',n+='             class="auto-complete-item auto-complete-no-match">',n+="               <auto-complete-no-match",n+='                      template="ctrl.options.noMatchTemplate"',n+='                      search-text="ctrl.searchText" />',n+="         <\/li>",n+"     <\/ul>"}function rt(){l.on(i.FOCUS,function(){f.$evalAsync(function(){y.activate();y.options.activateOnFocus&&w(l.val(),100)})});l.on(i.INPUT,function(){f.$evalAsync(function(){st(l.val())})});l.on(i.KEYDOWN,function(n){var t=n;f.$evalAsync(function(){ft(t)})});y.container.find("ul").on(i.SCROLL,function(){if(y.options.pagingEnabled){var n=this;f.$evalAsync(function(){y.containerVisible&&n.offsetHeight+n.scrollTop>=n.scrollHeight&&y.tryLoadNextPage()})}});o.on(i.KEYDOWN,function(n){var t=n;f.$evalAsync(function(){et(t)})});o.on(i.CLICK,function(n){var t=n;f.$evalAsync(function(){ot(t)})});n.element(h).on(i.RESIZE,function(){y.options.hideDropdownOnWindowResize&&f.$evalAsync(function(){y.autoHide()})})}function ut(n){return[t.TAB,t.ALT,t.CTRL,t.LEFTARROW,t.RIGHTARROW,t.MAC_COMMAND_LEFT,t.MAC_COMMAND_RIGHT].indexOf(n)!==-1}function ft(n){var i=n.charCode||n.keyCode||0;if(!ut(i))switch(i){case t.UPARROW:y.scrollToPreviousItem();n.stopPropagation();n.preventDefault();break;case t.DOWNARROW:y.scrollToNextItem();n.stopPropagation();n.preventDefault();break;case t.ENTER:y.selectItem(y.selectedIndex,!0);n.preventDefault();n.stopPropagation();break;case t.ESCAPE:y.restoreOriginalText();y.autoHide();n.preventDefault();n.stopPropagation()}}function et(){r.hideAllInactive()}function ot(n){if((r.hideAllInactive(),!y.isInline())&&y.container){if(n.target===y.target[0]){n.stopPropagation();return}if(ht(n.target)){n.stopPropagation();return}y.autoHide()}}function st(n){if(y.options.minimumChars===0||n&&n.trim().length!==0&&n.length>=y.options.minimumChars){w(n);return}y.autoHide()}function w(n,t){var i=c(function(){n===l.val()&&y.query(n);c.cancel(i)},t||300)}function ht(t){var i=y.container[0];return n.isFunction(i.contains)&&i.contains(t)?!0:window.jQuery&&n.isFunction(y.container.has)&&y.container.has(t).length>0?!0:!1}var y=v[0],b;y.textModelCtrl=v[1];y.target=l;c(function(){u.when(y.initialOptions()).then(k)});b=f.$on("$destroy",function(){y.container&&(y.container.remove(),y.container=null);b()})}return{restrict:"A",scope:{},transclude:!1,controllerAs:"ctrl",bindToController:{initialOptions:"&autoComplete"},require:["autoComplete","ngModel"],link:l,controller:f}}function f(t,i,u,f,e,o,h){function b(){return k(a,p+1)}function k(n,t){var i={searchText:n,paging:{pageIndex:t,pageSize:c.options.pageSize},queryId:++w},r=c.options.pagingEnabled?wt:pt;return st(i,r.bind(c,i))}function st(n,i){return a=n.searchText,v=!0,l(c.options.loading),t.when(c.options.data(n.searchText,n.paging),function(t){if(yt(n)){c.autoHide();return}if(vt(n,t)){c.autoHide();return}i(t).then(function(){c.searchText=n.searchText;c.show()});l(c.options.loadingComplete)},function(n){c.autoHide();l(c.options.loadingComplete,{error:n})}).then(function(){v=!1})}function d(n){var t=c.selectedIndex+n;return t>=c.renderItems.length?-1:t}function g(n){var t,i;if(c.containerVisible){if(c.selectItem(n),t='li[data-index="'+n+'"]',window.jQuery&&window.jQuery.scrollTo){c.elementUL.scrollTo(c.elementUL.find(t));return}i=c.elementUL[0].querySelector(t);i&&(c.elementUL[0].scrollTop=i.offsetTop)}}function l(t,i){if(n.isFunction(t))try{return t.call(c.target,i)}catch(r){}}function ht(){c.containerVisible&&nt()}function nt(){var n,t;c.isInline()||(n=null,n=c.options.dropdownWidth&&c.options.dropdownWidth!=="auto"?c.options.dropdownWidth:c.target[0].getBoundingClientRect().width+"px",c.container.css({width:n}),c.options.dropdownHeight&&c.options.dropdownHeight!=="auto"&&c.elementUL.css({"max-height":c.options.dropdownHeight}),t=!!(window.jQuery&&window.jQuery.ui),c.options.positionUsingJQuery&&t?ct():lt())}function ct(){var t={my:"left top",at:"left bottom",of:c.target,collision:"none flip"},i=n.extend({},t,c.options.positionUsing);c.containerVisible||c.container.css({visibility:"hidden"});c.containerVisible=!0;f(function(){c.container.position(i);c.container.css({visibility:"visible"})})}function lt(){var t=c.target[0].getBoundingClientRect(),n=u[0],r=n.body.scrollTop||n.documentElement.scrollTop||i.pageYOffset,f=n.body.scrollLeft||n.documentElement.scrollLeft||i.pageXOffset;c.container.css({left:t.left+f+"px",top:t.top+t.height+r+"px"});c.containerVisible=!0}function at(){var n=c.renderItems[c.selectedIndex];n&&tt(n.value)}function tt(n){c.target.val(n);c.textModelCtrl.$setViewValue(n)}function it(){!c.isInline()&&c.containerVisible&&(c.containerVisible=!1,c.empty(),et(),l(c.options.dropdownHidden))}function vt(n,t){return c.options.noMatchTemplateEnabled?!1:_.isEmpty(t)?c.options.pagingEnabled?n.paging.pageIndex===0:!0:!1}function yt(n){return n.queryId!==w}function pt(n,t){return ut().then(function(n){_.isEmpty(t)||(c.renderItems=rt(n,t))})}function wt(t,i){return ut().then(function(r){if(!_.isEmpty(i)){var u=rt(r,i);n.forEach(u,function(n){c.renderItems.push(n)});p=t.paging.pageIndex;y=u.length<c.options.pageSize}})}function rt(n,t){var i=_.slice(t,0,c.options.maxItemsToRender),r=_.map(i,function(t,i){var r=n(t);return!r||!r.hasOwnProperty("label")||!r.hasOwnProperty("value")?null:(r.data=t,r.id=r.hasOwnProperty("id")?r.id:r.value+r.label+i,r)});return _.filter(r,function(n){return n!==null})}function ut(){return n.isFunction(c.options.renderItem)&&c.options.renderItem!==n.noop?(c.itemTemplateLinkFn=null,t.when(c.options.renderItem.bind(null))):bt().then(function(n){return c.itemTemplateLinkFn=o(n),kt.bind(null,n)}).catch(h)}function bt(){if(c.options.itemTemplateUrl)return e(c.options.itemTemplateUrl);var n=c.options.itemTemplate||'<span ng-bind-html="entry.item"><\/span>';return t.when(n)}function kt(t,i){var r=n.isObject(i)&&c.options.selectedTextAttr?i[c.options.selectedTextAttr]:i;return{value:r,label:t}}function ft(){return c.options.pagingEnabled&&!v&&!y}function dt(n){if(!ft())return!1;var t=c.renderItems.length-c.options.invokePageLoadWhenItemsRemaining-1;return n>=t}function et(){a=c.searchText=null;p=0;y=!1}function gt(t){_.isEmpty(t)||n.forEach(t,function(n,t){s.hasOwnProperty(t)&&(c.options[t]=n)})}var c=this,a=null,w=0,v=!1,y=!1,p=0,ot;this.target=null;this.instanceId=-1;this.selectedIndex=-1;this.renderItems=[];this.containerVisible=!1;this.searchText=null;this.itemTemplateLinkFn=null;this.isInline=function(){return n.isElement(c.options.dropdownParent)};this.init=function(n){c.instanceId=r.registerInstance(c);c.options=n;c.containerVisible=c.isInline();l(c.options.ready,ot)};this.activate=function(){r.setActiveInstanceId(c.instanceId);c.containerVisible||(a=c.searchText=null)};this.query=function(n){return c.empty(),et(),k(n,0)};this.show=function(){nt();l(c.options.dropdownShown)};this.autoHide=function(){c.options&&c.options.autoHideDropdown&&it()};this.empty=function(){c.selectedIndex=-1;c.renderItems=[]};this.restoreOriginalText=function(){a&&tt(a)};this.scrollToPreviousItem=function(){var n=d(-1);n!==-1&&g(n)};this.scrollToNextItem=function(){var n=d(1);n!==-1&&(g(n),dt(n)&&b())};this.selectItem=function(n,t){var i=c.renderItems[n];i&&(c.selectedIndex=n,at(),t&&(c.autoHide(),l(c.options.itemSelected,{item:i.data})))};this.getSelectedCssClass=function(n){return n===c.selectedIndex?c.options.selectedCssClass:""};this.tryLoadNextPage=function(){ft()&&b()};ot=function(){return{setOptions:gt,positionDropdown:ht,hideDropdown:it}}()}function e(t,i,u,f){function e(t){var u=i.$new(!0),e=u.entry=f(n.noop),o=_.map(["index","renderItem","searchText"],function(n){return t.$watch("ctrl."+n,function(t){switch(n){case"renderItem":e.item=u.item=t.data;break;default:e[n]=t}})});return r.deregisterOnDestroy(t,o),u}return{restrict:"E",transclude:"element",scope:{},controllerAs:"ctrl",bindToController:{index:"<",renderItem:"<",searchText:"<",itemTemplateLinkFn:"<"},controller:function(){},link:function(n,i){var r=null,f;_.isFunction(n.ctrl.itemTemplateLinkFn)?r=n.ctrl.itemTemplateLinkFn:(f=u.valueOf(n.ctrl.renderItem.label),r=t(f));r(e(n),function(n){$(i[0].parentNode).append(n)})}}}function o(t,i,u){function f(t){var f=i.$new(!0),e=f.entry=u(n.noop),o=t.$watch("ctrl.searchText",function(n){e.searchText=n});return r.deregisterOnDestroy(t,[o]),f}return{restrict:"E",transclude:"element",scope:{},controllerAs:"ctrl",bindToController:{template:"<",searchText:"<"},controller:function(){},link:function(n,i){var r=t(n.ctrl.template);r(f(n),function(n){$(i[0].parentNode).append(n)})}}}function h(){var r=this,t=[],u=0,i=0;this.registerInstance=function(n){return n?(t.push(n),++u):-1};this.setActiveInstanceId=function(n){i=n;r.hideAllInactive()};this.hideAllInactive=function(){n.forEach(t,function(n){n.instanceId!==i&&n.autoHide()})};this.deregisterOnDestroy=function(n,t){var i=n.$on("$destroy",function(){_.each(t,function(n){n()});i()})}}var r=new h;n.module("autoCompleteModule",["ngSanitize"]).directive("autoComplete",u).directive("autoCompleteItem",e).directive("autoCompleteNoMatch",o);u.$inject=["$q","$compile","$document","$window","$timeout"];f.$inject=["$q","$window","$document","$timeout","$templateRequest","$compile","$exceptionHandler"];e.$inject=["$compile","$rootScope","$sce","$controller"];o.$inject=["$compile","$rootScope","$controller"];var i={RESIZE:"resize",SCROLL:"scroll",CLICK:"click",KEYDOWN:"keydown",FOCUS:"focus",INPUT:"input"},t={TAB:9,ENTER:13,CTRL:17,ALT:18,ESCAPE:27,LEFTARROW:37,UPARROW:38,RIGHTARROW:39,DOWNARROW:40,MAC_COMMAND_LEFT:91,MAC_COMMAND_RIGHT:93},s={containerCssClass:null,selectedCssClass:"auto-complete-item-selected",minimumChars:1,maxItemsToRender:20,activateOnFocus:!1,dropdownWidth:"auto",dropdownHeight:"auto",dropdownParent:null,selectedTextAttr:null,itemTemplate:null,itemTemplateUrl:null,pagingEnabled:!1,pageSize:5,invokePageLoadWhenItemsRemaining:1,positionUsingJQuery:!0,positionUsing:null,autoHideDropdown:!0,hideDropdownOnWindowResize:!0,noMatchTemplateEnabled:!0,noMatchTemplate:"<span>No results match '{{entry.searchText}}'<\/span>",ready:n.noop,loading:n.noop,data:n.noop,loadingComplete:n.noop,renderItem:n.noop,itemSelected:n.noop,dropdownShown:n.noop,dropdownHidden:n.noop}});ngAWDSApp.factory("ShoppingCartService",["ShoppingCartFactory","LoginService","Notification","$rootScope","$filter","$timeout","$parse","$window","FormMailFactory","vcRecaptchaService",function(n,t,i,r,u,f,o,s,h,c){var l,a=$("body"),ot=!1,p={},k={code:"Pick_Up_In_Store",name:"Pick Up In Store",price:0,max_extra_cover:null,options:{option:[{code:"Free_Pickup",name:"Free pickup",price:0,suboptions:{}}]}},w={code:"Free_Freight_Code",name:"Free Freight Code",price:0,max_extra_cover:null,options:{option:[{code:"Free_Delivery",name:"Free Delivery",price:0,suboptions:{}}]}},st={},dt=function(){return{IsShowShoppingCart:!0,IsShowMenuTotalPrice:!1,IsShowQtyMinusAndPlus:!1,IsAuthentinal:!1,IsOnlyDeposit:!1,IsPayment:!1,HasDiscountInSubtotal:!0,iWebsiteId:0,iTotalBulkyPrice:0,iTotalDiscountCodePrice:null,ErrorMsgSocialLogin:"",ClientSourceType:{},Recaptcha:{},LoginViewModel:{IsCreateAccount:!1,ClientSource:"",Email:"",Password:"",FullName:""},PendingSales:[]}},gt=function(n){l=n},ni=function(){return l},ti=function(n){p=n},v=function(n,t){n&&n.length>0&&n.button(t)},y=function(n,t){n&&n.length>0&&(t=t||!0,t?n.attr("disabled","disabled"):n.removeAttr("disabled"))},ii=function(t){n.getLocationState().then(function(n){var i=n.data;i=u("filter")(i,function(n){return n.Value!="PNG"&&n.Value!="NZ "});t(i)})},ri=function(t,i){t=t||null;n.getDealerBranches().then(function(n){var u=angular.fromJson(n.data),f=[],r;if(t!=null){for(r=0;r<u.length;r++)if(u[r].Value==t){f.push(u[r]);break}i(f)}else i(u)})},ui=function(n){for(var u=null,i,t=0;t<n.length;t++)if(i=r.webApp.util.getParameterByName("pickupatbranch",n[t].SpecialOptions),r.webApp.util.hasVal(i)){u=i;break}return u},fi=function(n,t,i){n!=null?(Number(n.Phone)==0&&(n.Phone=null),i(n)):i({Source:t.NonRegistered})},ei=function(){var n=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";ht("ga-ecommerce-tracking",n,!0,null)},ht=function(n,t,i,r){var f=document,e="script",u,o=f.getElementsByTagName(e)[0];f.getElementById(n)||(u=f.createElement(e),u.id=n,u.src=t,u.async=i,o.parentNode.insertBefore(u,o),angular.isFunction(r)&&(u.onload=r))},oi=function(n){r.util.equalsLowerCase(n.CreditCardType,"tyro")&&ht("simplify-pay","https://www.simplify.com/commerce/simplify.pay.js",!0,null)},si=function(){return p.HasPayWithPayright},ct=function(n,t){return n=CNumberNull(n),n!=null&&(n=n.toFixed(2)),n*t},g=function(n,t){var i=null,u;return p.HasDeliveryOptions&&angular.isDefined(n)&&(n.postage_result.service=="Pick_Up_In_Store"||n.postage_result.service=="Free_Delivery"?i=0:n.postage_result.service==w.code?i=w.price:(u=0,r.util.hasVal(l.AusPost.DealerExtraFee)&&(u=r.util.toNumber(l.AusPost.DealerExtraFee)),i=Number(n.postage_result.total_cost)+u+r.util.toNumber(at(t)))),i},tt=function(n){var i=null,t;return r.util.hasVal(n.SpecialOptions)&&(t=r.util.getParameterByName("bulky",n.SpecialOptions),r.util.hasVal(t)&&(i=Number(t))),i},lt=function(n){var i=null,t;return r.util.hasVal(n.SpecialOptions)&&(t=r.util.getParameterByName("ERBulky",n.SpecialOptions),r.util.hasVal(t)&&(i=Number(t)*n.Quantity)),i},d=function(n,t){var i=null;return n.Price=CNumberNull(n.Price),n.Price!=null&&(n.Price=n.Price.toFixed(2),i=n.IsUseDeposit==!0?r.util.hasVal(t.MaxPriceDepositCond)?Number(n.Price)>Number(t.MaxPriceDepositCond)?t.MaxPriceDepositCond/10:n.Price/10:n.Price/10:n.Price),i},hi=function(n,t,i){var r=d(n,i)*n.Quantity;return n.DiscountPrice=r*(t.DiscountAmount/100),r-n.DiscountPrice},ci=function(n,t,i){var r=d(n,i);return n.DiscountPrice=r*(t.DiscountAmount/100),r-n.DiscountPrice},it=function(n,t){var r,i;return n.ResponseMessage=="IsValid"&&(r=u("filter")(t,function(){return!0}),r.length>0)?(i=0,angular.forEach(r,function(t){var r=u("filter")(n.ShoppingDiscountCodeDetail,function(n){return n.ProductSourceType==t.Source});r.length>0&&(i=i+Number(t.Quantity)*d(t,l.oShoppingSetting))}),i*(n.DiscountAmount/100)):null},rt=function(n,t){var i=0;return angular.forEach(t,function(t){i=i+Number(t.Quantity)*d(t,n)}),i},at=function(n){var t=null;return angular.forEach(n,function(n){t=t+tt(n)}),t},li=function(n){var t=null;return angular.forEach(n,function(n){t=t+lt(n)}),t},ut=function(n,t,i,r){var u=null,f=it(n,r);return f!=null?(l.ShoppingCart.iTotalDiscountCodePrice=f,u=rt(i,r)-f+g(t,r)):u=rt(i,r)+g(t,r),u},ai=function(n){var t="",i=nt(n);return i!=""&&(t=i+" "+n.ItemCode),r.webApp.util.indexOfLowerCase(n.ItemDesc,"Colour:")==!0||r.webApp.util.indexOfLowerCase(n.ItemDesc,"Size:")==!0?t+" "+n.ItemDesc:n.ItemDesc},nt=function(n){var t="";switch(n.Source){case"EclipseStock":t="Stock Number:";break;case"ERNewModel":t="Model:";break;case"ERProduct":t="Product Number:";break;case"EclipsePart":t="Part Number:";break;case"TPEKawasaki":t="Kawasaki Part #:";break;case"TPEHonda":t="Honda Part #:";break;case"TPEYamaha":t="Yamaha Part #:"}return t},vt=function(n){var t=!1,i=r.webApp.util.getParameterByName("isBulkyItem",n.SpecialOptions);return r.webApp.util.toBool(i)&&(t=!0),t},yt=function(n){var t=!1,i=r.webApp.util.getParameterByName("pickupOnly",n.SpecialOptions);return r.webApp.util.toBool(i)&&(t=!0),t},pt=function(n){for(var i=!1,t=0;t<n.length;t++)if(yt(n[t])){i=!0;break}return i},vi=function(n,t){if(n==342)return!0;var i=!1;return t.Source!="EclipseStock"&&t.Source!="ERNewModel"&&(i=!0),i},wt=function(n,t){var i=!1;return u("filter")(t,function(n){return vt(n)==!0||n.Source=="ERNewModel"||n.Source=="EclipseStock"}).length>0&&(i=!0),i},yi=function(n){var t=nt(n);return t!=""},pi=function(n){var i=lt(n),t;return Number(i)>0?!0:(t=tt(n),Number(t)>0)?!0:!1},wi=function(n){l.ShoppingCart.LoginViewModel={IsCreateAccount:n,ClientSource:l.ShoppingCart.ClientSourceType.System,Email:"",Password:"",FullName:""};l.ShoppingCartFormLogin.submitted=!1;l.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!0);o("ShoppingCartFormLogin.Email.$error.serverMessage").assign(l,undefined);l.ShoppingCartFormLogin.$setPristine();l.ShoppingCartFormLogin.$setUntouched()},bi=function(i,r){l.ShoppingCart.LoginViewModel.ClientSource=i;var u=angular.copy(l.ShoppingCart.LoginViewModel);u.ClientSource!=l.ShoppingCart.ClientSourceType.System?(u.Password="",n.Login(u).then(function(n){var t=n.data;l.ShoppingCart.IsAuthentinal=!0;r(n)},function(){})):(l.ShoppingCartFormLogin.submitted=!0,l.ShoppingCartFormLogin.$valid&&(u.Password=t.Base64.encode(u.Password),n.Login(u).then(function(n){var t=n.data,i=o("ShoppingCartFormLogin.Email.$error.serverMessage");t.ErrorMsg!=""?(l.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!1),i.assign(l,t.ErrorMsg)):(l.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!0),i.assign(l,undefined),l.ShoppingCart.IsAuthentinal=!0,r(n))},function(){})))},ki=function(){var n=function(){s.FB.api("/me?fields=name,email,picture",function(n){!n||n.error?l.ShoppingCart.ErrorMsgSocialLogin="Error occured while fetching user details.":(l.ShoppingCart.LoginViewModel.Email=n.email,l.ShoppingCart.LoginViewModel.FullName=n.name,l.ShoppingCart.Login(l.ShoppingCart.ClientSourceType.Facebook))})};typeof s.FBAppId=="undefined"?console.error("sys-ex: FB app ID is undefined"):s.FB.getLoginStatus(function(t){t.status==="connected"?n():s.FB.login(function(t){t.status==="connected"&&n()},{scope:"email,public_profile",auth_type:"rerequest"})})},di=function(){typeof s.GoogleAppId=="undefined"?console.error("sys-ex: google app ID is undefined"):typeof l.gauth=="undefined"&&(l.gauth=gapi.auth2.getAuthInstance(),l.gauth.isSignedIn.get()?n():l.gauth.signIn().then(function(){n()},function(n){console.log(n)}));var n=function(){var t=l.gauth.currentUser.get(),n=t.getBasicProfile();l.ShoppingCart.LoginViewModel.Email=n.getEmail();l.ShoppingCart.LoginViewModel.FullName=n.getName();l.ShoppingCart.Login(l.ShoppingCart.ClientSourceType.Google)}},gi=function(t){l.ShoppingCart.IsAuthentinal=!1;n.Logout().then(function(){switch(l.ShoppingCart.LoginViewModel.ClientSource){case l.ShoppingCart.ClientSourceType.Facebook:s.FB.logout();break;case l.ShoppingCart.ClientSourceType.Google:var n=gapi.auth2.getAuthInstance();n.signOut().then(function(){l.gauth=undefined})}t(repsonse)},function(){})},nr=function(t,i){if(p.HasWSPSBindLWHWToWebstore){var r=bt(l.ShoppingCart.PendingSales);r.isUsed&&(t.Length=r.Length,t.Width=r.Width,t.Height=r.Height,t.Weight=r.Weight)}n.GetAusPostCalculate(t).then(function(n){var r=n.data;return t.postage_result=r.postage_result,i(t)},function(){return null})},bt=function(n){var t={isUsed:!1},f,e,o,s,u,i,h;if(p.HasWSPSBindLWHWToWebstore){for(u=0,wdMax=0,htMax=0,wtMax=0,i=0;i<n.length;i++)r.webApp.util.hasVal(n[i].SpecialOptions)&&(f=r.webApp.util.getParameterByName("len",n[i].SpecialOptions),e=r.webApp.util.getParameterByName("wd",n[i].SpecialOptions),o=r.webApp.util.getParameterByName("h",n[i].SpecialOptions),s=r.webApp.util.getParameterByName("wt",n[i].SpecialOptions),f=r.webApp.util.toFloat(f),e=r.webApp.util.toFloat(e),o=r.webApp.util.toFloat(o),s=r.webApp.util.toFloat(s),console.log("ubs-part-specs: #"+n[i].RefId+" - "+n[i].ItemTitle+" Length-Width-Height-weight",f,e,o,s),f>0&&f>u&&(u=f),e>0&&e>wdMax&&(wdMax=e),o>0&&o>htMax&&(htMax=o),s>0&&(wtMax=wtMax+s));u+wdMax+htMax+wtMax>0&&(u>0&&(t.Length=u>105?105:u),wdMax>0&&(t.Width=wdMax>105?105:wdMax),htMax>0&&(t.Height=htMax>105?105:htMax),wtMax>0&&(t.Weight=wtMax>22?22:wtMax),console.log("ubs-part-specs: after validated max value with API, max(Length-Width-Height); total weight",u,wdMax,htMax,wtMax),h=u/100*(wdMax/100)*(htMax/100),h>.25&&(t.Length=105,t.Width=105,t.Height=22,console.log("ubs-part-specs: the cubic Metres more then 0.25, use default (Length-Width-Height)",t.Length,t.Width,t.Height)),t.isUsed=!0)}return t},tr=function(t,i,f,e,o){var d,s,a,v,y,b,c,h,g;if(st=={}&&(st=angular.copy(f)),p.HasDeliveryOptions)if(angular.isUndefined(i)&&(i={}),angular.isUndefined(i.service)&&(i.service=[]),d="",wt(e,t)||pt(t))u("filter")(i.service,function(n){return n.code.indexOf("Pick_Up_In_Store")>=0}).length<1&&(i.service.push(k),d="Pick Up In Store - Free_Pickup"),o({oAusPostServices:i,sDeliveryOption:d});else if(l.ShoppingDiscountCode&&l.ShoppingDiscountCode.DiscountId>0&&l.ShoppingDiscountCode.FlagFreeFreightCode==!0)i.service=[],i.service.push(k),i.service.push(w),o({oAusPostServices:i});else if(f.FromPostcode==null&&console.error("sys-error: the main dealership does not have postcode"),f.ToPostcode!=null&&f.FromPostcode!=null){if(s=angular.copy(f),p.HasWSPSBindLWHWToWebstore){for(c=0,wdMax=0,htMax=0,wtMax=0,h=0;h<t.length;h++)r.webApp.util.hasVal(t[h].SpecialOptions)&&(a=r.webApp.util.getParameterByName("len",t[h].SpecialOptions),v=r.webApp.util.getParameterByName("wd",t[h].SpecialOptions),y=r.webApp.util.getParameterByName("h",t[h].SpecialOptions),b=r.webApp.util.getParameterByName("wt",t[h].SpecialOptions),a=r.webApp.util.toFloat(a),v=r.webApp.util.toFloat(v),y=r.webApp.util.toFloat(y),b=r.webApp.util.toFloat(b),console.log("ubs-part-specs: #"+t[h].RefId+" - "+t[h].ItemTitle+" Length-Width-Height-weight",a,v,y,b),a>0&&a>c&&(c=a),v>0&&v>wdMax&&(wdMax=v),y>0&&y>htMax&&(htMax=y),b>0&&(wtMax=wtMax+b));c+wdMax+htMax+wtMax>0&&(c>0&&(s.Length=c>105?105:c),wdMax>0&&(s.Width=wdMax>105?105:wdMax),htMax>0&&(s.Height=htMax>105?105:htMax),wtMax>0&&(s.Weight=wtMax>22?22:wtMax),g=c/100*(wdMax/100)*(htMax/100),console.log("ubs-part-specs: after validated max value with API, max(Length-Width-Height); total weight; cubic metres",c,wdMax,htMax,wtMax,g),g>.25&&(s.Length=105,s.Width=105,s.Height=22,console.log("ubs-part-specs: the cubic Metres more then 0.25, use default (Length-Width-Height)",s.Length,s.Width,s.Height)))}var tt=function(n,t){var a,e,v,h,c;if(angular.isDefined(n.data.error)){a=!1;switch(n.data.error.errorMessage){case"The maximum weight of a parcel is 22 kg.":case"The height cannot exceed 105cm.":case"The width cannot exceed 105cm.":case"The length cannot exceed 105cm.":case"The Cubic Measurement cannot exceed 0.25 cubic meters.":a=!0;break;default:a=r.webApp.util.indexOfLowerCase(n.data.error.errorMessage,"cannot exceed")?!0:!1}a?t==!1?nt(!0):(i={service:[]},i.service.push(k),o({oAusPostServices:i})):(i={service:[]},i.service.push(k),o({oAusPostServices:i}))}else if(i=n.data.services,f.ServiceIn!=null&&(i.service=u("filter")(i.service,function(n){return n.code.indexOf(f.ServiceIn)>=0})),i.service.unshift(k),i.service.length>1){for(e=0;e<i.service.length;e++)if(i.service[e].code!="Pick_Up_In_Store"&&i.service[e].code!="Free_Delivery")for(v=i.service[e].options.option,h=0;h<v.length;h++)c=angular.copy(s),c.ServiceCode=i.service[e].code,c.OptionCode=v[h].code,c.bIsLastItem=h+1==v.length,nr(c,function(n){var e=0,t,f,u;for(r.util.hasVal(l.AusPost.DealerExtraFee)&&(e=r.util.toNumber(l.AusPost.DealerExtraFee)),t=0;t<i.service.length;t++)if(n.ServiceCode==i.service[t].code)for(f=i.service[t].options.option,u=0;u<f.length;u++)n.OptionCode==f[u].code&&(f[u].price=CNumberZero(n.postage_result.total_cost)+(l.ShoppingCart.WebsiteId==341?0:e));n.bIsLastItem&&angular.isFunction(o)&&o({oAusPostServices:i})})}else o({oAusPostServices:i})},it=function(n){console.error("sys error fnGetAusPostServices",n,s);i={service:[]};i.service.push(k);o({oAusPostServices:i})},nt=function(t){t&&(s.Length=105,s.Width=105,s.Height=22,s.Weight=22,t=!0,console.log("ubs-part-specs: has error. try again with max(Length-Width-Height); total weight",s.Length,s.Width,s.Height,s.Weight));n.GetAusPostServices(s).then(function(n){tt(n,t)},function(n){it(n,t)})};nt(!1)}else o({oAusPostServices:{}});else o({oAusPostServices:{},sDeliveryOption:"FREE DELIVERY AUSTRALIA WIDE"})},ft=function(t,i){var r=et(t);r.isValid?((!angular.isNumber(t.Quantity)||t.Quantity<1)&&(t.Quantity=1),n.AddProductItem(t).then(function(){},function(){})):angular.isFunction(i)?i({isValid:r.isValid,sMsg:r.sMsg}):alert(r.sMsg)},ir=function(n,t){++n.Quantity;ft(n,t)},rr=function(n,t){n.Quantity!=1&&(--n.Quantity,ft(n,t))},ur=function(t,i){n.applyDiscountCode(t).then(function(n){var r=n.data;t=r.DiscountCodeView;r.Products.length>0&&(l.ShoppingCart.PendingSales=r.Products);switch(t.ResponseMessage){case"IsValid":break;case"Inactive":t.ResponseMessage="NOT ACTIVE CODE";break;case"LimitUser":t.ResponseMessage="LIMIT CODE";break;case"Expired":t.ResponseMessage="DATE EXPIRED";break;case"IsInvalid":t.ResponseMessage="INVALID CODE";break;default:t.ResponseMessage="The code is required."}i(t)},function(){})},fr=function(t,i){n.removeDiscountCode(t).then(function(n){i(n)},function(){})},er=function(t,i,r,u,f,e){var o,y,h,c,v,a;if(r.DeliveryOption==null,o=!1,IsNullOrEmpty(t))o=!1,f=undefined,e({isShowResult:o,oAusPostCalculate:f});else{for(o=!0,i.ServiceCode=t.split("::")[0],i.OptionCode=t.split("::")[1],y={},h=0;h<u.service.length;h++)if(u.service[h].code==i.ServiceCode){for(r.DeliveryOption=u.service[h].name,c=0;c<u.service[h].options.option.length;c++)if(u.service[h].options.option[c].code==i.OptionCode){r.DeliveryOption=r.DeliveryOption+" - "+u.service[h].options.option[c].name;y=u.service[h].options.option[c];break}break}i.ServiceCode=="Pick_Up_In_Store"?(f={postage_result:{service:"Pick_Up_In_Store",delivery_time:"",total_cost:0,costs:{cost:{item:"Free pickup",cost:0}}}},e({isShowResult:o,oAusPostCalculate:f})):i.ServiceCode=="Free_Delivery"?(f={postage_result:{service:"Free_Delivery",delivery_time:"",total_cost:0,costs:{cost:{item:"Free Delivery",cost:0}}}},e({isShowResult:o,oAusPostCalculate:f})):i.ServiceCode=="Delivery_Fee"?(v=10,v=s.webApp.oWebsite.WebsiteID==229?y.price:10,f={postage_result:{service:"Delivery_Fee",delivery_time:"",total_cost:v,costs:{cost:{item:"Delivery",cost:v}}}},e({isShowResult:o,oAusPostCalculate:f})):i.ServiceCode==w.code?(f={postage_result:{service:w.code,delivery_time:"",total_cost:w.price,costs:{cost:{item:w.options.option[0].name,cost:w.options.option[0].price}}}},e({isShowResult:o,oAusPostCalculate:f})):(p.HasWSPSBindLWHWToWebstore&&(a=bt(l.ShoppingCart.PendingSales),a.isUsed&&(i.Length=a.Length,i.Width=a.Width,i.Height=a.Height,i.Weight=a.Weight)),n.GetAusPostCalculate(i).then(function(n){f=n.data;e({isShowResult:o,oAusPostCalculate:f})},function(){f=undefined}))}},et=function(n){var i=!0,u="",f=r.webApp.util.hasVal(n.SpecialOptions)&&r.webApp.util.indexOfLowerCase(n.SpecialOptions,"qoh="),t;return f&&(t=r.webApp.util.getParameterByName("qoh",n.SpecialOptions),(n.Quantity<1||n.Quantity>r.webApp.util.toNumber(t))&&(u="Sorry, we only have "+t+" quantity left for the "+n.ItemTitle+".",i=!1)),{isValid:i,sMsg:u}},or=function(t,e){t.Price=CNumberNull(t.Price);t.Price!=null&&(t.Price=t.Price.toFixed(2));var o=et(t);o.isValid?n.AddProductItem(t).then(function(n){var o=angular.fromJson(n.data),t,s;l.TotalRecordsShoppingCart=o.TotalRecords;l.ShoppingCart.PendingSales=o.Carts;t=o.CartItem;s='<div class="ui-notification custom-template notification-shoppingcart"><div class="popup-shopping"><div class="img-shop"><img src="'+t.PicPath+'" class="img-responsive"><\/div><div class="item-class"><p class="title ng-binding">'+t.ItemTitle+'<\/p><p class="price ng-binding">PRICE: '+u("currency")(ct(t.Price,t.Quantity),"$",2)+'<\/p><p><b>ITEM ADDED TO CART<\/b><\/p><p><a href="'+r.util.getUrlHasPrefix("/shopping-basket/checkout")+'">PROCEED TO CHECKOUT<\/a><\/p><\/div><\/div><\/div>';f(function(){i.primary(s)},1);e(n)},function(){}):i.error(o.sMsg)},sr=function(t,i){n.RemoveProductItem(t).then(function(n){var r=angular.fromJson(n.data),u=l.ShoppingCart.PendingSales.indexOf(t);l.ShoppingCart.PendingSales.splice(u,1);l.TotalRecordsShoppingCart=r.TotalRecords;i(n)},function(){})},hr=function(t){n.RemoveAllCartItems().then(function(n){l.ShoppingCart.PendingSales=[];l.TotalRecordsShoppingCart=0;t(n)},function(){})},cr=function(t,i,r){i!=null&&t.SaleId!=null?n.getOrderById({OrderId:t.SaleId}).then(function(n){var t,u,e,f;if(n.data!=null){for(t=angular.fromJson(n.data),u=u||[],u.push(["_setAccount",i]),u.push(["_setDomainName","none"]),u.push(["_trackPageview"]),u.push(["_addTrans",t.SaleId,t.ShoppingClient.WebsiteDealerName,t.TotalSalePriceInc,null,t.DeliveryFee,t.DeliverySuburb,t.DeliveryState,"AUS"]),e=0;e<t.ShoppingSaleDetail.length;e++)f=t.ShoppingSaleDetail[e],u.push(["_addItem",f.SaleId,f.RefId,f.ItemTitle,nt(f),f.SalePriceInc,f.Quantity]);u.push(["_trackTrans"])}r(n)},function(n){r(n)}):r({})},lr=function(t,i,f,e,o,s,h,c,l,v,y){var k,nt,rt;if(h.IsUsePayMethod){o.PayingType="Paypal";var tt=[],p=0,it=0,w=0;angular.forEach(i,function(n){tt.push({name:n.ItemCode,unit_amount:{value:n.DiscountCode!=null?ci(n,c,v):d(n,v),currency_code:"AUD"},quantity:n.Quantity,description:n.ItemTitle,sku:n.RefId})});k=u("currency")(ut(c,l,v,i),"",2);nt=u("currency")(g(l,i),"",2);r.webApp.util.hasVal(k)&&(p=Number(k.replace(/[^0-9.-]+/g,"")));r.webApp.util.hasVal(nt)&&(w=Number(nt.replace(/[^0-9.-]+/g,"")));p-w>0&&(it=Number(u("currency")(p-w,"",2).replace(/[^0-9.-]+/g,"")));rt={recipient_name:f.FullName,line1:f.Delivery.Address,line2:null,city:f.Delivery.Suburb,country_code:"AU",postal_code:f.Delivery.Postcode,phone:f.Phone,state:f.Delivery.State};kt(t,h.IsSandbox,h.ClientKey,p,it,w,tt,rt,function(t){var u=b(null,e,o,c,f,i,s);if(u&&(r.webApp.util.equalsLowerCase(t.status,"approved")||r.webApp.util.equalsLowerCase(t.status,"completed"))){try{e.TransactionId=t.purchase_units[0].payments.captures[0].id}catch(h){e.TransactionId=t.id}r.webApp.util.showLoadingIcon(a,!0);n.paymentPaypal(e).then(function(n){y(n)},function(){r.webApp.util.showLoadingIcon(a,!1)})}})}else console.error("Minh: ","Unavailable Method")},ar=function(i,r){switch(i){case"Paypal":n.getPaypalSetting({}).then(function(n){var i=angular.fromJson(n.data);i.IsUsePayMethod&&t.InitPaypalByClientId(i.ClientKey);r(n)},function(){});break;case"Zippay":n.getZipPaySetting({}).then(function(n){r(n)},function(){})}},kt=function(n,t,i,r,u,f,e,o,h){ot||(ot=!0,s.paypal.Buttons({locale:"en_US",createOrder:function(n,t){return t.order.create({purchase_units:[{amount:{value:r,currency_code:"AUD",breakdown:{item_total:{value:u,currency_code:"AUD"},shipping:{value:f,currency_code:"AUD"}}},items:e}]})},onApprove:function(n,t){return t.order.capture().then(function(n){h(n)})},onError:function(n){alert(n);console.error("Minh: ",n)}}).render(n))},b=function(n,t,i,u,f,e,o){var s=n!=null?$(n.target):null,c=!1,h;return v(s,"loading"),y(s,!0),e.length>0?(t.Client=f,t.ListItems=e,u.ResponseMessage=="IsValid"&&(t.DiscountCode=u.DiscountCode,t.DiscountPrice=it(u,e)),i.PayingType=="CreditCard"?(o.submitted=!0,r.util.equalsLowerCase(t.CreditCardType,"tyro")?c=!0:o.$valid?(h=i.Expiry+"",h.length==3&&(h="0"+h),i.ExpiryMonth=h.substring(0,2),i.ExpiryYear=h.substring(2,4),t.CardDetail=i,c=!0):(y(s,!1),v(s,"reset"))):(t.CardDetail=i,c=!0)):(y(s,!1),v(s,"reset")),c&&vr(t),c},vr=function(n){if(n.PickupLocationId!=null)for(var t=0;t<l.lSCDealershipBranches.length;t++)if(l.lSCDealershipBranches[t].Value==n.PickupLocationId){n.PickupLocation=l.lSCDealershipBranches[t].Text;break}},yr=function(t){l.CardDetail.PayingType="CreditCard";l.ShoppingCart.IsPayment=!1;var i=b(t,l.CardHeader,l.CardDetail,l.ShoppingDiscountCode,l.client,l.ShoppingCart.PendingSales,l.formCreditCard);i&&(r.util.showLoadingIcon(a,!0),n.paymentCreditCard(l.CardHeader).then(function(n){l.savePaymentSuccess(n);y($(t.target),!1);v($(t.target),"reset")},function(){r.util.showLoadingIcon(a,!1);y($(t.target),!1);v($(t.target),"reset")}))},pr=function(t){if(l.oZipPaySetting.IsUsePayMethod){l.CardDetail.PayingType="Zip";var i=b(t,l.CardHeader,l.CardDetail,l.ShoppingDiscountCode,l.client,l.ShoppingCart.PendingSales,l.formCreditCard);i&&(r.util.showLoadingIcon(a,!0),n.createACheckoutZip(l.CardHeader).then(function(n){r.util.showLoadingIcon(a,!1);var i=n.data;window.location.href=i.uri;y($(t.target),!1);v($(t.target),"reset")},function(){r.util.showLoadingIcon(a,!1);y($(t.target),!1);v($(t.target),"reset")}))}else console.error("Minh: payWithZip ","Unavailable Method")},wr=function(){l.oZipPaySetting.IsUsePayMethod?(r.util.showLoadingIcon(a,!0),n.createAChargeZip({saleId:l.oZipParams.sale,checkoutId:l.oZipParams.checkoutId}).then(function(n){r.util.showLoadingIcon(a,!1);var t=n.data;angular.isDefined(t.error)?(alert(t.error.message),console.error("Minh: ",t.error)):angular.isDefined(t.status)&&t.status=="Paid"?s.location.href="/":l.updateSaleAfterCreatedACharge(l.oZipParams.sale,t.receipt_number)},function(){r.util.showLoadingIcon(a,!1)})):console.error("Minh: ","Unavailable Method")},br=function(t,i){r.util.showLoadingIcon(a,!0);n.updateSaleAfterCreatedACharge({saleId:t,receiptNumber:i}).then(function(n){l.savePaymentSuccess(n)},function(){r.util.showLoadingIcon(a,!1)})},kr=function(t){l.CardDetail.PayingType="PayLater";var i=b(t,l.CardHeader,l.CardDetail,l.ShoppingDiscountCode,l.client,l.ShoppingCart.PendingSales,l.formCreditCard);i&&l.ShoppingDiscountCode.FlagTradeCode==!0&&(r.util.showLoadingIcon(a,!0),n.paymentPayLater(l.CardHeader).then(function(n){l.savePaymentSuccess(n);y($(t.target),!1);v($(t.target),"reset")},function(){r.util.showLoadingIcon(a,!1);y($(t.target),!1);v($(t.target),"reset")}))},dr=function(t){l.CardDetail.PayingType="DirectDeposit";var i=b(t,l.CardHeader,l.CardDetail,l.ShoppingDiscountCode,l.client,l.ShoppingCart.PendingSales,l.formCreditCard);i&&(r.util.showLoadingIcon(a,!0),n.paymentDirectDeposit(l.CardHeader).then(function(n){l.savePaymentSuccess(n);y($(t.target),!1);v($(t.target),"reset")},function(){r.util.showLoadingIcon(a,!1);y($(t.target),!1);v($(t.target),"reset")}))},gr=function(n){var t,u;angular.isDefined(SimplifyCommerce)?(t=$(n.target).closest(".btn-pay-group").find(".btn-tyro-pay"),iu(n,function(n){var f=n.data,e=ut(l.ShoppingDiscountCode,l.AusPostCalculate,l.oShoppingSetting,l.ShoppingCart.PendingSales),o=r.util.to5CentRounding(e).replace(".","").replace("$",""),i=r.webApp.util.getUrlHasPrefix("stock/shoppingcart/TyroResponse");i=r.webApp.util.hasVal(r.webApp.formMailOptions.redirectToThankYou.shoppingCartDirective)?i+"?thank="+r.webApp.formMailOptions.redirectToThankYou.shoppingCartDirective:i+"?thank=stock";SimplifyCommerce.hostedPayments(u,{scKey:p.TyroPublicApiKey,currency:"AUD",color:"#12B830",reference:"SaleId"+f.oCardHeaderItem.SaleId,amount:o,redirectUrl:i});t.click()})):(console.error("SimplifyCommerce is undefinded"),i.error("System Error: SimplifyCommerce is undefinded"));u=function(n){var t,r,e;if(console.warn("Minh: hostedPayments",n),t=n.data,t)if(t.error){if(t.error.code=="validation"){var u=t.error.fieldErrors,o=u.length,f="";for(r=0;r<o;r++)f+="<div class='error'>Field: '"+u[r].field+"' is invalid - "+u[r].message+"<\/div>";i.error(f)}}else angular.isDefined(date.close)&&date.close==!0?l.formDelivery.isSaved=!1:(e=t.id,alert("Payment token: "+e))}},nu=function(){if(tu({name:"Payright",winClose:function(){r.webApp.util.showLoadingIcon(a,!0);n.verifyCheckoutPayright({checkoutId:r.PayrightCheckoutId}).then(function(n){var t=angular.fromJson(n.data);l.savePaymentSuccess(n)},function(){r.util.showLoadingIcon(a,!1)})}}),l.oShoppingSetting.HasPayWithPayright){l.CardDetail.PayingType="Payright";var t=b(e,l.CardHeader,l.CardDetail,l.ShoppingDiscountCode,l.client,l.ShoppingCart.PendingSales,l.formCreditCard);t&&(r.webApp.util.showLoadingIcon(a,!0),n.createACheckoutPayright(l.CardHeader).then(function(n){var t,u;r.webApp.util.showLoadingIcon(a,!1);t=n.data;angular.isDefined(t.error)&&t.error!=null?(i.error(t.error.message),r.webApp.util.showLoadingIcon(a,!1),y($(e.target),!1),v($(e.target),"reset")):(u=t.data,r.webApp.SCWindow.location.replace(u.redirectEndpoint),r.PayrightCheckoutId=u.checkoutId,y($(e.target),!1),v($(e.target),"reset"))},function(){r.webApp.util.showLoadingIcon(a,!1);y($(e.target),!1);v($(e.target),"reset")}))}else console.error("Minh: pay-with-payright ","Unavailable Method")},tu=function(n){function c(){r.webApp.SCWindow.closed&&(clearInterval(h),t.winClose(),r.webApp.util.showLoadingIcon2($("body"),!1))}var t=angular.merge({url:"",name:"",sParam:null,winClose:function(){}},n),d,h,l,a;if(r.webApp.util.hasVal(t.sParam)==!1)try{var u=900,e=500,v=window.screenLeft!==undefined?window.screenLeft:window.screenX,y=window.screenTop!==undefined?window.screenTop:window.screenY,o=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,p=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height,i=o/window.screen.availWidth,w=(o-u)/2/i+v,b=(p-e)/2/i+y;t.sParam="scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width="+u/i+",height="+e/i+",left="+w+",top="+b+""}catch(k){console.error("open window default position because Center has error: ",k);t.sParam="scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=600,height=300,left=100,top=100"}r.webApp.SCWindow=s.open(t.url,t.name,t.sParam);d=r.webApp.util.showLoadingIcon2($("body"),!0);h=setInterval(c,50);f(c,1);l=navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPhone/i);a=l?"pagehide":"beforeunload";window.addEventListener(a,function(){window.event.cancelBubble=!0;r.webApp.SCWindow.close()});$(document).on("click","body .loading-icon-section",function(){r.webApp.SCWindow.closed==!1&&(r.webApp.util.isMobile()?alert("Please switch tabs to reactivate the window."):r.webApp.SCWindow.focus())});$(document).on("click","body .loading-icon-section .btnclose",function(){r.webApp.SCWindow.close()})},iu=function(t,i){var u=b(t,l.CardHeader,l.CardDetail,l.ShoppingDiscountCode,l.client,l.ShoppingCart.PendingSales,l.formCreditCard);u&&(r.util.showLoadingIcon(a,!0),n.saveOrderTemp(l.CardHeader).then(function(n){r.util.showLoadingIcon(a,!1);var u=n.data;i(n);y($(t.target),!1);v($(t.target),"reset")},function(){r.util.showLoadingIcon(a,!1);y($(t.target),!1);v($(t.target),"reset")}))},ru=function(){r.util.isNullOrEmpty(r.webApp.ga.recaptchaSiteKey)?h.getUbsCaptcha({}).then(function(n){l.ShoppingCart.Recaptcha=n.data},function(){}):console.error("Minh: ","cannot reload ubs captcha because RecaptchaSiteKey has value")},uu=function(n){n={response:null,widgetId:null,SetResponse:function(n){l.ShoppingCart.Recaptcha.response=n},SetWidgetId:function(n){l.ShoppingCart.Recaptcha.widgetId=n},Reset:function(){c.reload(l.ShoppingCart.Recaptcha.widgetId);l.ShoppingCart.Recaptcha.response=null}}};return{getDefaultShoppingCartOptions:dt,setScope:gt,getScopeDirective:ni,setShoppingSetting:ti,addProductItem:or,applyDiscountCode:ur,disableButton:y,updateClientInfo:fi,removeProductItem:sr,removeAllProductItem:hr,removeDiscountCode:fr,renderPaypalButton:kt,createElementScript:oi,changeQty:ft,changeQtyMinus:rr,changeQtyPlus:ir,changeDeliveryAusPostService:er,csourceCodeToDesc:nt,createPaypalButton:lr,getPaymentSetting:ar,getLocationState:ii,getDealerBranches:ri,getPickupAtLocationItem:ui,getPriceQty:ct,getDeliveryFee:g,getBulkyPrice:tt,getDiscountCodePrice:hi,getPriceDepositAmount:d,getTotalDiscountCodePrice:it,getTotalPendingSalePrice:rt,getTotalBulkyPrice:at,getTotalBulkyPriceOfERProduct:li,getTotalBasket:ut,getSourceCodeAndDesc:ai,loadAusPostServices:tr,loadScriptTagGAEcommerceTracking:ei,hasBulkyItem:vt,hasPickupOnlyItem:yt,hasPickupOnlyCategoryInListItems:pt,isAllowChangeQty:vi,isOnlyPickupInStore:wt,isShowItemCode:yi,isShowBulkyItemLabel:pi,setStatusButton:v,showSignupOrLoginForm:wi,submitLoginForm:bi,submitLoginFB:ki,submitLoginGoogle:di,submitLogoutForm:gi,saveToGAEcommerceTracking:cr,savePayment:yr,validatePayment:b,validQuantity:et,payWithTyro:gr,payWithZip:pr,createAChargeZip:wr,updateSaleAfterCreatedACharge:br,payLater:kr,payDirectDeposit:dr,createACheckoutPayright:nu,hasPayWithPayright:si,reloadUbsCaptcha:ru,loadGGCaptcha:uu}}]);ngAWDSApp.factory("LoginService",["$window","$cookies","$q","$rootScope",function(n,t,i,r){var u,f,s,e,o={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(n){var f="",e,t,i,h,c,s,r,u=0;for(n=o._utf8_encode(n);u<n.length;)e=n.charCodeAt(u++),t=n.charCodeAt(u++),i=n.charCodeAt(u++),h=e>>2,c=(e&3)<<4|t>>4,s=(t&15)<<2|i>>6,r=i&63,isNaN(t)?s=r=64:isNaN(i)&&(r=64),f=f+this._keyStr.charAt(h)+this._keyStr.charAt(c)+this._keyStr.charAt(s)+this._keyStr.charAt(r);return f},decode:function(n){var t="",e,s,h,c,u,r,f,i=0;for(n=n.replace(/[^A-Za-z0-9+/=]/g,"");i<n.length;)c=this._keyStr.indexOf(n.charAt(i++)),u=this._keyStr.indexOf(n.charAt(i++)),r=this._keyStr.indexOf(n.charAt(i++)),f=this._keyStr.indexOf(n.charAt(i++)),e=c<<2|u>>4,s=(u&15)<<4|r>>2,h=(r&3)<<6|f,t=t+String.fromCharCode(e),r!=64&&(t=t+String.fromCharCode(s)),f!=64&&(t=t+String.fromCharCode(h));return o._utf8_decode(t)},_utf8_encode:function(n){var i,r,t;for(n=n.replace(/rn/g,"n"),i="",r=0;r<n.length;r++)t=n.charCodeAt(r),t<128?i+=String.fromCharCode(t):t>127&&t<2048?(i+=String.fromCharCode(t>>6|192),i+=String.fromCharCode(t&63|128)):(i+=String.fromCharCode(t>>12|224),i+=String.fromCharCode(t>>6&63|128),i+=String.fromCharCode(t&63|128));return i},_utf8_decode:function(n){for(var r="",t=0,i=c1=c2=0;t<n.length;)i=n.charCodeAt(t),i<128?(r+=String.fromCharCode(i),t++):i>191&&i<224?(c2=n.charCodeAt(t+1),r+=String.fromCharCode((i&31)<<6|c2&63),t+=2):(c2=n.charCodeAt(t+1),c3=n.charCodeAt(t+2),r+=String.fromCharCode((i&15)<<12|(c2&63)<<6|c3&63),t+=3);return r}},h=function(n,t){if(r.webApp.util.hasVal(n)){u=n;f=t;function i(n,t,i){var r,e=n.getElementsByTagName(t)[0];if(n.getElementById(i)){window.FB.init({appId:u,cookie:!0,xfbml:!0,version:f,status:!0});return}r=n.createElement(t);r.id=i;r.src="https://connect.facebook.net/en_US/sdk.js";e.parentNode.insertBefore(r,e);r.onload=function(){window.FB.init({appId:u,cookie:!0,xfbml:!0,version:f,status:!0})}}i(document,"script","facebook-jssdk")}},c=function(n){if(r.webApp.util.hasVal(n)){s=n;var i=document,t,u=i.getElementsByTagName("script")[0];t=i.createElement("script");t.async=!0;t.src="//apis.google.com/js/platform.js";t.onload=function(){var t={client_id:n,fetch_basic_profile:!1,scope:"email"};gapi.load("auth2",function(){gapi.auth2.init(t)})};u.parentNode.insertBefore(t,u)}},l=function(n){e=n;var t,i=document,r=i.getElementsByTagName("script")[0];t=i.createElement("script");t.async=!1;t.src="//platform.linkedin.com/in.js";t.text=("api_key: "+e).replace('"',"");r.parentNode.insertBefore(t,r)},w=function(n){t.put("awds_login_type",n)},a=function(){var e=t.get("awds_login_type"),r,u,i,f;switch(e){case"google":r=document.getElementById("gSignout");typeof r!="undefined"&&r!=null&&r.remove();u=document;f=u.getElementsByTagName("script")[0];i=u.createElement("script");i.src="https://accounts.google.com/Logout";i.type="text/html";i.id="gSignout";t.remove("awds_login_type");f.parentNode.insertBefore(i,f);break;case"linkedIn":IN.User.logout(function(){t.remove("awds_login_type")},{});break;case"facebook":n.FB.logout(function(){t.remove("awds_login_type")})}},v=function(){},y=function(){r.webApp.util.loadPaypalScript(function(){})},p=function(n){r.webApp.util.loadPaypalScriptByClientId(n,function(){})};return{SetFbKey:h,SetGoogleKey:c,SetLinkedInKey:l,GetGoogleKey:s,GetLinkedInKey:e,Logout:a,LoginFB:v,Base64:o,InitPaypal:y,InitPaypalByClientId:p}}]);ngAWDSApp.factory("ShoppingCartFactory",["$q","$http","$rootScope","HttpFactory",function(n,t,i,r){var u="Stock/ShoppingCart/",e=function(n,t){return r.get(n,t)},f=function(n,t){return r.post(n,t)},o=function(){return r.get({},"Stock/Website/GetLocationState")},s=function(){return r.get({},"Stock/Website/GetDealerBranches")},h=function(){return e({},u+"GetShoppingBasKetData")},c=function(){return e({},u+"GetPendingSales")},l=function(n){return f(n,u+"GetOrderById")},a=function(n){return f(n,u+"AusPostServices")},v=function(n){return f(n,u+"AusPostCalculate")},y=function(n){return e(n,u+"GetPaypalSetting")},p=function(n){return e(n,u+"GetZipPaySetting")},w=function(){return f({id:Math.random().toString(36).substring(7)},u+"TotalRecordsPendingSale")},b=function(n){return f(n,u+"AddProductItemV2")},k=function(n){return f(n,u+"RemoveProductItem")},d=function(n){return f(n,u+"RemoveAllCartItems")},g=function(n){return f(n,u+"RegisterContact")},nt=function(n){return f(n,u+"DeliveryContact")},tt=function(n){return f(n,u+"PaymentCreditCard")},it=function(n){return f(n,u+"PaymentPaypal")},rt=function(n){return f(n,u+"PaymentPayLater")},ut=function(n){return f(n,u+"PaymentDirectDeposit")},ft=function(n){return f(n,u+"CreatePaymentPaypal")},et=function(n){return f(n,u+"ExecutePaymentPaypal")},ot=function(n){return f(n,u+"CreateACheckoutZip")},st=function(n){return f(n,u+"CreateAChargeZip")},ht=function(n){return f(n,u+"CreateACheckoutZipV2")},ct=function(n){return f(n,u+"CreateAChargeZipV2")},lt=function(n){return f(n,u+"CreateACheckoutPayright")},at=function(n){return f(n,u+"VerifyCheckoutPayright")},vt=function(n){return f(n,u+"RepaymentPayright")},yt=function(n){return f(n,u+"TestStandardPayload")},pt=function(n){return f(n,u+"UpdateSaleAfterCreatedACharge")},wt=function(n){return f(n,u+"SaveOrderTemp")},bt=function(n){return f(n,u+"Login")},kt=function(){return e({},u+"Logout")},dt=function(n){return f(n,u+"ApplyDiscountCode")},gt=function(n){return f(n,u+"RemoveDiscountCode")};return{getDealerBranches:s,getLocationState:o,GetShoppingBasKetData:h,GetPendingSales:c,GetAusPostServices:a,GetAusPostCalculate:v,getPaypalSetting:y,getZipPaySetting:p,getOrderById:l,TotalRecordsPendingSale:w,RegisterContact:g,DeliveryContact:nt,RemoveProductItem:k,RemoveAllCartItems:d,removeDiscountCode:gt,AddProductItem:b,applyDiscountCode:dt,Login:bt,Logout:kt,createPaymentPaypal:ft,executePaymentPaypal:et,paymentCreditCard:tt,paymentPayLater:rt,paymentDirectDeposit:ut,paymentPaypal:it,createACheckoutZip:ot,createAChargeZip:st,createACheckoutZipV2:ht,createAChargeZipV2:ct,createACheckoutPayright:lt,verifyCheckoutPayright:at,repaymentPayright:vt,updateSaleAfterCreatedACharge:pt,saveOrderTemp:wt,testStandardPayload:yt}}]);ngAWDSApp.directive("shoppingCartDirective",["$window","ShoppingCartFactory","$rootScope","LoginService","$timeout","Notification","$filter","ShoppingCartService",function(n,t,i,r,u,f,e,o){return{restrict:"A",scope:!0,link:function(t,i){function r(n){$(n).prev().find('a[data-toggle="tab"]').click()}angular.element(i).find(".nav-tabs > li a[title]").tooltip();angular.element(i).find('a[data-toggle="tab"]').on("show.bs.tab",function(n){var t=$(n.target);if(t.parent().hasClass("disabled"))return!1});angular.element(i).find(".prev-step").click(function(){var n=$(".wizard .nav-tabs li.active");r(n)});u(function(){var t=n.location.hash;angular.element(i).find('.areasViewDetailTab a[href="'+t+'"]').tab("show")})},controller:["$scope","$element","$attrs","$parse",function(n,s){function h(){var n=angular.element(s).find(".wizard .nav-tabs li.active");n.next().removeClass("disabled");$(n).next().find('a[data-toggle="tab"]').click()}function c(){angular.element(s).find('a[data-toggle="tab"]').length>0&&angular.element(s).find('a[data-toggle="tab"]:first').tab("show")}n.ShoppingCart=o.getDefaultShoppingCartOptions();n.CardHeader={};n.CardDetail={};n.CreditCardError=[];n.PostcodeSuburbErrorMsg="";n.CardHeader.DeliveryFee=null;n.CardHeader.DeliveryOption=null;n.isRenderPaypalButton=!1;n.IsShowResultDeliveryAusPostService=!1;n.NotiCart={};n.AusPostServices={};n.ShoppingDiscountCode={};n.oZipPaySetting={};n.oPaypalSetting={};n.oShoppingSetting={};n.isSCShoppingBasKetDataLoaded=!1;n.isSCShopCartCtrlLoaded=!1;n.init=function(){o.setScope(n);t.GetShoppingBasKetData().then(function(t){var f=t.data;o.setShoppingSetting(f.ShoppingSetting);n.oShoppingSetting=f.ShoppingSetting;n.CardHeader.CreditCardType=f.CreditCardType;n.CardDetail.PayingType="CreditCard";n.TotalRecordsShoppingCart=f.TotalRecordsPendingSale;n.oZipParams=f.ZipParams;n.oPaypalSetting=angular.fromJson(f.PaypalParams);n.oZipParams.IsSandbox=n.oZipParams.IsSandBox;n.oPaypalSetting.IsSandbox=n.oPaypalSetting.IsSandBox;n.AusPost=f.AusPost;n.ShoppingCart.WebsiteId=f.WebsiteId;n.ShoppingCart.IsAuthentinal=f.IsAuthentinal;n.ShoppingCart.ClientSourceType=f.ClientSourceType;n.ShoppingCart.PendingSales=f.Carts;n.ShoppingCart.LoginViewModel.FullName=f.Client.FullName;n.ShoppingCart.LoginViewModel.ClientSource=f.Client.Source;n.ShoppingCart.LoginViewModel.Email=f.Client.Email;n.ShoppingDiscountCode=f.ShoppingDiscountCode;n.oZipPaySetting={IsSandbox:n.oZipParams.IsSandbox,IsUsePayMethod:n.oZipParams.IsUsePayMethod};n.isSCShoppingBasKetDataLoaded=!0;n.initFinally();n.updateClientInfo(f.Client);u(function(){n.oZipParams.isZipPaymentMethod&&n.createAChargeZip();n.oPaypalSetting.IsUsePayMethod&&r.InitPaypalByClientId(n.oPaypalSetting.ClientKey)});o.getLocationState(function(t){n.lLocationStates=t});n.ShoppingCart.iTotalBulkyPrice=o.getTotalBulkyPrice(n.ShoppingCart.PendingSales);r.SetFbKey(i.webApp.fb.appId,"v2.11");r.SetGoogleKey(i.webApp.ga.appId);n.loadCaptcha()},function(){})};n.initShopCartCtrl=function(t){angular.isDefined(t.ShoppingOptions)?(n.oShoppingOptions=angular.copy(t.ShoppingOptions),delete t.ShoppingOptions,n.isSCShopCartCtrlLoaded=!0,n.initFinally()):console.error("ShoppingCart1Ctrl: ShoppingOptions is null")};n.initFinally=function(){n.isSCShoppingBasKetDataLoaded==!0&&n.isSCShopCartCtrlLoaded==!0&&n.oShoppingSetting.GAETTransactionId!=null&&o.loadScriptTagGAEcommerceTracking()};n.ShoppingCart.GetPrice=o.getPriceQty;n.ShoppingCart.getSourceDesc=o.csourceCodeToDesc;n.ShoppingCart.getSourceCodeAndDesc=o.getSourceCodeAndDesc;n.ShoppingCart.isAllowChangeQty=function(t){return o.isAllowChangeQty(n.ShoppingCart.WebsiteId,t)};n.ShoppingCart.hasBulkyItem=o.hasBulkyItem;n.ShoppingCart.showItemCode=o.isShowItemCode;n.ShoppingCart.IsOnlyPickupInStore=function(){return o.isOnlyPickupInStore(n.ShoppingCart.WebsiteId,n.ShoppingCart.PendingSales)};n.ShoppingCart.IsShowPickupAtLocation=function(){var t=!1;return n.oShoppingSetting.HasDeliveryOptions&&(n.ShoppingCart.IsOnlyPickupInStore()||angular.isDefined(n.CardHeader)&&i.util.indexOfLowerCase(n.CardHeader.DeliveryOption,"pick up in store"))&&(t=!0),t};n.hasValidateDeliveryAddressStep=function(){var t=!0;return i.webApp.oWebsite&&i.webApp.oWebsite.WebsiteID==261&&(t=o.hasPickupOnlyCategoryInListItems(n.ShoppingCart.PendingSales)?!1:n.DeliveryAusPostService=="Pick_Up_In_Store::Free_Pickup"?!1:!0),t};n.isShowAddressInfoInDeliveryAddressStep=function(){return n.hasValidateDeliveryAddressStep()};n.ShoppingCart.isShowBulkyItemLabel=o.isShowBulkyItemLabel;n.hasPickupOnlyCategoryInListItems=function(){return o.hasPickupOnlyCategoryInListItems(n.ShoppingCart.PendingSales)};n.isNoPaymentMethods=function(){var t=!1,i=!1;return webApp.util.hasVal(n.CardHeader.CreditCardType)&&webApp.util.equalsLowerCase(n.CardHeader.CreditCardType,"NONE")&&(i=!0),i==!1&&n.oPaypalSetting.IsUsePayMethod==!1&&n.oZipPaySetting.IsUsePayMethod==!1&&n.ShoppingDiscountCode.FlagTradeCode==!1&&(t=!0),t};n.collapsePaypal=function(){o.createPaypalButton("#paypal-button",n.ShoppingCart.PendingSales,n.client,n.CardHeader,n.CardDetail,n.formCreditCard,n.oPaypalSetting,n.ShoppingDiscountCode,n.AusPostCalculate,n.oShoppingSetting,function(t){n.savePaymentSuccess(t)})};n.collapseZip=function(){n.CardDetail.PayingType="Zip"};n.collapsePayLater=function(){n.CardDetail.PayingType="PayLater"};n.collapsePayright=function(){n.CardDetail.PayingType="Payright"};n.collapseDirectDeposit=function(){n.CardDetail.PayingType="DirectDeposit"};n.activeTabComplete=function(){var n=$('.wizard .nav-tabs a[href="#complete"]');n.closest("ul").find("li").removeClass("disabled").removeClass("active").addClass("disabled");n.closest("li").removeClass("disabled");n.click()};n.changeDeliveryAusPostService=function(t){o.changeDeliveryAusPostService(t,n.AusPost,n.CardHeader,n.AusPostServices,n.AusPostCalculate,function(t){n.IsShowResultDeliveryAusPostService=t.isShowResult;n.AusPostCalculate=t.oAusPostCalculate;n.getTotalBasket()})};n.applyDiscountCode=function(){o.applyDiscountCode(n.ShoppingDiscountCode,function(t){n.ShoppingDiscountCode=t;n.calculatorDiscountCode()})};n.removeDiscountCode=function(){o.removeDiscountCode(n.ShoppingDiscountCode,function(t){var i=t.data;n.ShoppingDiscountCode=i.DiscountCodeView;n.ShoppingCart.PendingSales=i.Products;n.calculatorDiscountCode()})};n.ShoppingCart.SignUp=o.showSignupOrLoginForm;n.ShoppingCart.Login=function(t){o.submitLoginForm(t,function(t){var i=t.data;n.updateClientInfo(i.Client);$("[data-dismiss=modal]").trigger({type:"click"});c()})};n.ShoppingCart.LoginFB=o.submitLoginFB;n.ShoppingCart.LoginGoogle=o.submitLoginGoogle;n.ShoppingCart.Logout=function(){o.submitLogoutForm(function(){n.updateClientInfo(null);c()})};n.testStandardPayload=function(){t.testStandardPayload({}).then(function(n){var t=angular.fromJson(n.data);console.warn("Minh: testStandardPayload",t)},function(){})};n.$watch("ShoppingCart.PendingSales",function(t){if(n.ShoppingCart.IsOnlyDeposit=!1,!IsNullOrEmpty(t)&&n.ShoppingCart.PendingSales.length>0)for(var i=0;i<n.ShoppingCart.PendingSales.length;i++)if(n.ShoppingCart.PendingSales[i].IsUseDeposit==!0){n.ShoppingCart.IsOnlyDeposit=!0;break}n.calculatorDiscountCode()});n.$watch("client.Delivery.Postcode",function(t){IsNullOrEmpty(t)||(n.AusPost.ToPostcode=t,n.loadAusPostServices())});n.updateClientInfo=function(t){o.updateClientInfo(t,n.ShoppingCart.ClientSourceType,function(t){n.client=t})};n.loadDealerBranches=function(t){o.getDealerBranches(t,function(t){n.lSCDealershipBranches=t})};n.loadCaptcha=function(){i.util.isNullOrEmpty(i.webApp.ga.recaptchaSiteKey)?o.reloadUbsCaptcha(n.ShoppingCart.Recaptcha):o.loadGGCaptcha(n.ShoppingCart.Recaptcha)};n.loadAusPostServices=function(){o.loadAusPostServices(n.ShoppingCart.PendingSales,n.AusPostServices,n.AusPost,n.ShoppingCart.WebsiteId,function(t){var r,u;i.webApp.oWebsite.WebsiteID==229&&(console.warn("Minh: loadAusPostServices",t),(t.oAusPostServices==null||t.oAusPostServices=={}||typeof t.oAusPostServices=="object")&&(t.oAusPostServices.service=[{code:"Pick_Up_In_Store",name:"Pick Up In Store",price:0,max_extra_cover:null,options:{option:[{code:"Free_Pickup",name:"Free pickup",price:0,suboptions:{}}]}}]),r=o.getTotalBulkyPriceOfERProduct(n.ShoppingCart.PendingSales),r!=null&&r>0?t.oAusPostServices!=null&&t.oAusPostServices.service!=null&&t.oAusPostServices.service.length>0&&(t.oAusPostServices.service=e("filter")(t.oAusPostServices.service,function(n){return n.code=="Pick_Up_In_Store"}),u={code:"Delivery_Fee",name:"Delivery",options:{option:[{code:"Delivery_Fee",name:"Delivery",price:r}]}},t.oAusPostServices.service.spliceIfNotExist(u,1,function(n){return n.code==u.code})):t.oAusPostServices.service.length==1&&e("filter")(t.oAusPostServices.service,function(n){return n.code=="Pick_Up_In_Store"}).length>0&&(n.DeliveryAusPostService="Pick_Up_In_Store::Free_Pickup",n.changeDeliveryAusPostService(n.DeliveryAusPostService)));n.AusPostServices=t.oAusPostServices;angular.isDefined(t.sDeliveryOption)&&t.sDeliveryOption!=""&&(n.CardHeader.DeliveryOption=t.sDeliveryOption)})};n.loadPaypalSetting=function(){o.getPaymentSetting("Paypal",function(t){n.oPaypalSetting=angular.fromJson(t.data)})};n.loadZipPaySetting=function(){o.getPaymentSetting("Zippay",function(t){n.oZipPaySetting=angular.fromJson(t.data)})};n.renderPaypalButton=function(t,i,r,u,f,e,s,h){n.isRenderPaypalButton||(n.isRenderPaypalButton=!0,o.renderPaypalButton("#paypal-button",t,i,r,u,f,e,s,h))};n.getPriceDepositAmount=function(t){return o.getPriceDepositAmount(t,n.oShoppingSetting)};n.getDiscountCodePrice=function(t){return o.getDiscountCodePrice(t,n.ShoppingDiscountCode,n.oShoppingSetting)};n.getTotalPricePendingSale=function(){return o.getTotalPendingSalePrice(n.oShoppingSetting,n.ShoppingCart.PendingSales)};n.getDeliveryFee=function(){return n.CardHeader.DeliveryFee=null,n.ShoppingCart.PendingSales.length>0&&!n.ShoppingCart.IsOnlyDeposit&&(n.CardHeader.DeliveryFee=o.getDeliveryFee(n.AusPostCalculate,n.ShoppingCart.PendingSales)),n.CardHeader.DeliveryFee};n.getBulkyPrice=function(n){return o.getBulkyPrice(n)};n.calculatorDiscountCode=function(){n.ShoppingCart.iTotalDiscountCodePrice=o.getTotalDiscountCodePrice(n.ShoppingDiscountCode,n.ShoppingCart.PendingSales)};n.getTotalBasket=function(){return o.getTotalBasket(n.ShoppingDiscountCode,n.AusPostCalculate,n.oShoppingSetting,n.ShoppingCart.PendingSales)};n.ShoppingCart.OnChangeQty=o.changeQty;n.ShoppingCart.AddCartItem=function(t){o.addProductItem(t,function(){n.calculatorDiscountCode()})};n.ShoppingCart.RemoveCartItem=function(t){o.removeProductItem(t,function(){n.calculatorDiscountCode()})};n.ShoppingCart.RemoveAllCartItems=function(){o.removeAllProductItem(function(){n.calculatorDiscountCode()})};n.saveContactAndNext=function(){n.ShoppingCart.PendingSales.length>0&&(n.formContact.submitted=!0,n.formContact.$valid&&(AWDSApp.util.showLoadingIcon(s,!0),t.RegisterContact(n.client).then(function(t){var r,i;AWDSApp.util.showLoadingIcon(s,!1);r=angular.fromJson(t.data);n.updateClientInfo(r);n.PostcodeSuburbErrorMsg="";n.loadAusPostServices();n.oShoppingOptions.ViewOption.Checkout.IsShowLocation&&(i=o.getPickupAtLocationItem(n.ShoppingCart.PendingSales),i!=null&&(n.CardHeader.PickupLocationId=i),n.loadDealerBranches(i));h()},function(){AWDSApp.util.showLoadingIcon(s,!1)})))};n.saveDeliveryAndNext=function(){n.ShoppingCart.PendingSales.length>0&&(n.formDelivery.submitted=!0,IsNullOrEmpty(n.client.Delivery.Postcode)?n.PostcodeSuburbErrorMsg="Please enter postcode.":n.formDelivery.$valid&&(AWDSApp.util.showLoadingIcon(s,!0),t.DeliveryContact(n.client).then(function(t){AWDSApp.util.showLoadingIcon(s,!1);jsonData=angular.fromJson(t.data);n.updateClientInfo(jsonData);h()},function(){AWDSApp.util.showLoadingIcon(s,!1)})))};n.savePaymentSuccess=function(t){var r=angular.fromJson(t.data),e,h;if(r.Errors!=null&&r.Errors.length>0){for(n.CreditCardError=r.Errors,e="",h=0;h<n.CreditCardError.length;h++)e+=n.CreditCardError+"<br/>";f.error(e);AWDSApp.util.showLoadingIcon(s,!1);n.CardDetail.PayingType=="CreditCard"?n.loadCaptcha():u(function(){i.webApp.util.redirectTo(i.webApp.util.getUrlHasPrefix("shopping-basket/checkout"))},5e3)}else n.ShoppingCart.IsPayment=!0,n.CreditCardError=[],n.ShoppingCart.PendingSales=[],n.TotalRecordsShoppingCart=null,o.saveToGAEcommerceTracking(t,n.oShoppingSetting.GAETTransactionId,function(){i.webApp.util.redirectTo(i.webApp.formMailOptions.redirectToThankYou.shoppingCartDirective,i.webApp.util.getUrlHasPrefix("stock/shoppingcart/thankyou"))})};n.savePayment=o.savePayment;n.payWithZip=o.payWithZip;n.createAChargeZip=o.createAChargeZip;n.updateSaleAfterCreatedACharge=o.updateSaleAfterCreatedACharge;n.payLater=o.payLater;n.payDirectDeposit=o.payDirectDeposit;n.validatePayment=function(t){return o.validatePayment(t,n.CardHeader,n.CardDetail,n.ShoppingDiscountCode,n.client,n.ShoppingCart.PendingSales,n.formCreditCard)};n.payWithPayright=o.createACheckoutPayright}]}}])