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,e,o,s,h){var c,l=$("body"),ut=!1,b={},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:{}}]}},y={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:{}}]}},pt=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:[]}},wt=function(n){c=n},bt=function(){return c},kt=function(n){b=n},a=function(n,t){n&&n.length>0&&n.button(t)},v=function(n,t){n&&n.length>0&&(t=t||!0,t?n.attr("disabled","disabled"):n.removeAttr("disabled"))},dt=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)})},gt=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)})},ni=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},ti=function(n,t,i){n!=null?(Number(n.Phone)==0&&(n.Phone=null),i(n)):i({Source:t.NonRegistered})},ii=function(){var n=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";ft("ga-ecommerce-tracking",n,!0,null)},ft=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))},ri=function(n){r.util.equalsLowerCase(n.CreditCardType,"tyro")&&ft("simplify-pay","https://www.simplify.com/commerce/simplify.pay.js",!0,null)},et=function(n,t){return n=CNumberNull(n),n!=null&&(n=n.toFixed(2)),n*t},d=function(n,t){var i=null,u;return b.HasDeliveryOptions&&angular.isDefined(n)&&(n.postage_result.service=="Pick_Up_In_Store"||n.postage_result.service=="Free_Delivery"?i=0:n.postage_result.service==y.code?i=y.price:(u=0,r.util.hasVal(c.AusPost.DealerExtraFee)&&(u=r.util.toNumber(c.AusPost.DealerExtraFee)),i=Number(n.postage_result.total_cost)+(c.ShoppingCart.WebsiteId==341?0:u)+r.util.toNumber(st(t)))),i},ot=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},p=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},ui=function(n,t,i){var r=p(n,i)*n.Quantity;return n.DiscountPrice=r*(t.DiscountAmount/100),r-n.DiscountPrice},fi=function(n,t,i){var r=p(n,i);return n.DiscountPrice=r*(t.DiscountAmount/100),r-n.DiscountPrice},g=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)*p(t,c.oShoppingSetting))}),i*(n.DiscountAmount/100)):null},nt=function(n,t){var i=0;return angular.forEach(t,function(t){i=i+Number(t.Quantity)*p(t,n)}),i},st=function(n){var t=null;return angular.forEach(n,function(n){t=t+ot(n)}),t},tt=function(n,t,i,r){var u=null,f=g(n,r);return f!=null?(c.ShoppingCart.iTotalDiscountCodePrice=f,u=nt(i,r)-f+d(t,r)):u=nt(i,r)+d(t,r),u},ht=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},ct=function(n){var t=!1,i=r.webApp.util.getParameterByName("isBulkyItem",n.SpecialOptions);return r.webApp.util.toBool(i)&&(t=!0),t},lt=function(n){var t=!1,i=r.webApp.util.getParameterByName("pickupOnly",n.SpecialOptions);return r.webApp.util.toBool(i)&&(t=!0),t},at=function(n){for(var i=!1,t=0;t<n.length;t++)if(lt(n[t])){i=!0;break}return i},ei=function(n,t){if(n==342)return!0;var i=!1;return t.Source!="EclipseStock"&&t.Source!="ERNewModel"&&(i=!0),i},vt=function(n,t){var i=!1;return u("filter")(t,function(n){return ct(n)==!0||n.Source=="ERNewModel"||n.Source=="EclipseStock"}).length>0&&(i=!0),i},oi=function(n){return n.Source=="TPEKawasaki"||n.Source=="TPEYamaha"},si=function(n){c.ShoppingCart.LoginViewModel={IsCreateAccount:n,ClientSource:c.ShoppingCart.ClientSourceType.System,Email:"",Password:"",FullName:""};c.ShoppingCartFormLogin.submitted=!1;c.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!0);e("ShoppingCartFormLogin.Email.$error.serverMessage").assign(c,undefined);c.ShoppingCartFormLogin.$setPristine();c.ShoppingCartFormLogin.$setUntouched()},hi=function(i,r){c.ShoppingCart.LoginViewModel.ClientSource=i;var u=angular.copy(c.ShoppingCart.LoginViewModel);u.ClientSource!=c.ShoppingCart.ClientSourceType.System?(u.Password="",n.Login(u).then(function(n){var t=n.data;c.ShoppingCart.IsAuthentinal=!0;r(n)},function(){})):(c.ShoppingCartFormLogin.submitted=!0,c.ShoppingCartFormLogin.$valid&&(u.Password=t.Base64.encode(u.Password),n.Login(u).then(function(n){var t=n.data,i=e("ShoppingCartFormLogin.Email.$error.serverMessage");t.ErrorMsg!=""?(c.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!1),i.assign(c,t.ErrorMsg)):(c.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!0),i.assign(c,undefined),c.ShoppingCart.IsAuthentinal=!0,r(n))},function(){})))},ci=function(){var n=function(){o.FB.api("/me?fields=name,email,picture",function(n){!n||n.error?c.ShoppingCart.ErrorMsgSocialLogin="Error occured while fetching user details.":(c.ShoppingCart.LoginViewModel.Email=n.email,c.ShoppingCart.LoginViewModel.FullName=n.name,c.ShoppingCart.Login(c.ShoppingCart.ClientSourceType.Facebook))})};typeof o.FBAppId=="undefined"?console.error("sys-ex: FB app ID is undefined"):o.FB.getLoginStatus(function(t){t.status==="connected"?n():o.FB.login(function(t){t.status==="connected"&&n()},{scope:"email,public_profile",auth_type:"rerequest"})})},li=function(){typeof o.GoogleAppId=="undefined"?console.error("sys-ex: google app ID is undefined"):typeof c.gauth=="undefined"&&(c.gauth=gapi.auth2.getAuthInstance(),c.gauth.isSignedIn.get()?n():c.gauth.signIn().then(function(){n()},function(n){console.log(n)}));var n=function(){var t=c.gauth.currentUser.get(),n=t.getBasicProfile();c.ShoppingCart.LoginViewModel.Email=n.getEmail();c.ShoppingCart.LoginViewModel.FullName=n.getName();c.ShoppingCart.Login(c.ShoppingCart.ClientSourceType.Google)}},ai=function(t){c.ShoppingCart.IsAuthentinal=!1;n.Logout().then(function(){switch(c.ShoppingCart.LoginViewModel.ClientSource){case c.ShoppingCart.ClientSourceType.Facebook:o.FB.logout();break;case c.ShoppingCart.ClientSourceType.Google:var n=gapi.auth2.getAuthInstance();n.signOut().then(function(){c.gauth=undefined})}t(repsonse)},function(){})},vi=function(t,i){n.GetAusPostCalculate(t).then(function(n){var r=n.data;return t.postage_result=r.postage_result,i(t)},function(){return null})},yi=function(t,i,f,e,o){if(b.HasDeliveryOptions){angular.isUndefined(i)&&(i={});angular.isUndefined(i.service)&&(i.service=[]);var s="";vt(e,t)||at(t)?(u("filter")(i.service,function(n){return n.code.indexOf("Pick_Up_In_Store")>=0}).length<1&&(i.service.push(k),s="Pick Up In Store - Free_Pickup"),o({oAusPostServices:i,sDeliveryOption:s})):c.ShoppingDiscountCode&&c.ShoppingDiscountCode.DiscountId>0&&c.ShoppingDiscountCode.FlagFreeFreightCode==!0?(i.service=[],i.service.push(k),i.service.push(y),o({oAusPostServices:i})):f.ToPostcode!=null&&f.FromPostcode!=null?n.GetAusPostServices(f).then(function(n){var t,h,e,s;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(t=0;t<i.service.length;t++)if(i.service[t].code!="Pick_Up_In_Store"&&i.service[t].code!="Free_Delivery")for(h=i.service[t].options.option,e=0;e<h.length;e++)s=angular.copy(f),s.ServiceCode=i.service[t].code,s.OptionCode=h[e].code,s.bIsLastItem=e+1==h.length,vi(s,function(n){var e=0,t,f,u;for(r.util.hasVal(c.AusPost.DealerExtraFee)&&(e=r.util.toNumber(c.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)+(c.ShoppingCart.WebsiteId==341?0:e));n.bIsLastItem&&angular.isFunction(o)&&o({oAusPostServices:i})})}else o({oAusPostServices:i})},function(){i={service:[]};i.service.push(k);o({oAusPostServices:i})}):o({oAusPostServices:{}})}else o({oAusPostServices:{},sDeliveryOption:"FREE DELIVERY AUSTRALIA WIDE"})},it=function(t,i){var r=rt(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)},pi=function(n,t){++n.Quantity;it(n,t)},wi=function(n,t){n.Quantity!=1&&(--n.Quantity,it(n,t))},bi=function(t,i){n.applyDiscountCode(t).then(function(n){var r=n.data;t=r.DiscountCodeView;r.Products.length>0&&(c.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(){})},ki=function(t,i){n.removeDiscountCode(t).then(function(n){i(n)},function(){})},di=function(t,i,r,u,f,e){var o,s,h;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],s=0;s<u.service.length;s++)if(u.service[s].code==i.ServiceCode){for(r.DeliveryOption=u.service[s].name,h=0;h<u.service[s].options.option.length;h++)if(u.service[s].options.option[h].code==i.OptionCode){r.DeliveryOption=r.DeliveryOption+" - "+u.service[s].options.option[h].name;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"?(f={postage_result:{service:"Delivery_Fee",delivery_time:"",total_cost:10,costs:{cost:{item:"Delivery Fee",cost:10}}}},e({isShowResult:o,oAusPostCalculate:f})):i.ServiceCode==y.code?(f={postage_result:{service:y.code,delivery_time:"",total_cost:y.price,costs:{cost:{item:y.options.option[0].name,cost:y.options.option[0].price}}}},e({isShowResult:o,oAusPostCalculate:f})):n.GetAusPostCalculate(i).then(function(n){f=n.data;e({isShowResult:o,oAusPostCalculate:f})},function(){f=undefined})}},rt=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}},gi=function(t,e){t.Price=CNumberNull(t.Price);t.Price!=null&&(t.Price=t.Price.toFixed(2));var o=rt(t);o.isValid?n.AddProductItem(t).then(function(n){var o=angular.fromJson(n.data),t,s;c.TotalRecordsShoppingCart=o.TotalRecords;c.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")(et(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)},nr=function(t,i){n.RemoveProductItem(t).then(function(n){var r=angular.fromJson(n.data),u=c.ShoppingCart.PendingSales.indexOf(t);c.ShoppingCart.PendingSales.splice(u,1);c.TotalRecordsShoppingCart=r.TotalRecords;i(n)},function(){})},tr=function(t){n.RemoveAllCartItems().then(function(n){c.ShoppingCart.PendingSales=[];c.TotalRecordsShoppingCart=0;t(n)},function(){})},ir=function(t,i,r){i!=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,ht(f),f.SalePriceInc,f.Quantity]);u.push(["_trackTrans"])}r(n)},function(){})},rr=function(t,i,f,e,o,s,h,c,a,v,y){var g,nt,ut;if(h.IsUsePayMethod){o.PayingType="Paypal";var it=[],b=0,rt=0,k=0;angular.forEach(i,function(n){it.push({name:n.ItemCode,description:n.ItemTitle,quantity:n.Quantity,price:n.DiscountCode!=null?fi(n,c,v):p(n,v),currency:"AUD",sku:n.RefId})});g=u("currency")(tt(c,a,v,i),"",2);nt=u("currency")(d(a,i),"",2);r.webApp.util.hasVal(g)&&(b=Number(g.replace(/[^0-9.-]+/g,"")));r.webApp.util.hasVal(nt)&&(k=Number(nt.replace(/[^0-9.-]+/g,"")));b-k>0&&(rt=Number(u("currency")(b-k,"",2).replace(/[^0-9.-]+/g,"")));ut={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};yt(t,h.IsSandbox,h.ClientKey,b,rt,k,it,ut,function(t){var r=w(null,e,o,c,f,i,s);if(r&&t.state.toUpperCase()=="APPROVED"){try{e.TransactionId=t.transactions[0].related_resources[0].sale.id}catch(u){e.TransactionId=t.cart}AWDSApp.util.showLoadingIcon(l,!0);n.paymentPaypal(e).then(function(n){y(n)},function(){AWDSApp.util.showLoadingIcon(l,!1)})}})}else console.error("Minh: ","Unavailable Method")},ur=function(i,r){switch(i){case"Paypal":n.getPaypalSetting({}).then(function(n){var i=angular.fromJson(n.data);i.IsUsePayMethod&&t.InitPaypal();r(n)},function(){});break;case"Zippay":n.getZipPaySetting({}).then(function(n){r(n)},function(){})}},yt=function(n,t,i,u,f,e,s,h,c){if(!ut){ut=!0;var l="sandbox";r.util.toBool(t)==!1&&(l="production");o.paypal.Button.render({env:l,style:{layout:"vertical",size:"responsive",shape:"rect",color:"gold"},funding:{allowed:[paypal.FUNDING.CARD,paypal.FUNDING.CREDIT],disallowed:[]},commit:!0,client:{sandbox:i,production:i},commit:!0,payment:function(n,t){return t.payment.create({transactions:[{amount:{total:u,currency:"AUD",details:{subtotal:f,shipping:e}},item_list:{items:s,shipping_address:h}}]})},onAuthorize:function(n,t){return t.payment.execute().then(function(n){c(n)})},onCancel:function(){},onError:function(n){alert(n);console.error("Minh: ",n)}},n)}},w=function(n,t,i,u,f,e,o){var s=n!=null?$(n.target):null,c=!1,h;return a(s,"loading"),v(s,!0),e.length>0?(t.Client=f,t.ListItems=e,u.ResponseMessage=="IsValid"&&(t.DiscountCode=u.DiscountCode,t.DiscountPrice=g(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):(v(s,!1),a(s,"reset"))):(t.CardDetail=i,c=!0)):(v(s,!1),a(s,"reset")),c&&fr(t),c},fr=function(n){if(n.PickupLocationId!=null)for(var t=0;t<c.lSCDealershipBranches.length;t++)if(c.lSCDealershipBranches[t].Value==n.PickupLocationId){n.PickupLocation=c.lSCDealershipBranches[t].Text;break}},er=function(t){c.CardDetail.PayingType="CreditCard";c.ShoppingCart.IsPayment=!1;var i=w(t,c.CardHeader,c.CardDetail,c.ShoppingDiscountCode,c.client,c.ShoppingCart.PendingSales,c.formCreditCard);i&&(r.util.showLoadingIcon(l,!0),n.paymentCreditCard(c.CardHeader).then(function(n){c.savePaymentSuccess(n);v($(t.target),!1);a($(t.target),"reset")},function(){r.util.showLoadingIcon(l,!1);v($(t.target),!1);a($(t.target),"reset")}))},or=function(t){if(c.oZipPaySetting.IsUsePayMethod){c.CardDetail.PayingType="Zip";var i=w(t,c.CardHeader,c.CardDetail,c.ShoppingDiscountCode,c.client,c.ShoppingCart.PendingSales,c.formCreditCard);i&&(r.util.showLoadingIcon(l,!0),n.createACheckoutZip(c.CardHeader).then(function(n){r.util.showLoadingIcon(l,!1);var i=n.data;window.location.href=i.uri;v($(t.target),!1);a($(t.target),"reset")},function(){r.util.showLoadingIcon(l,!1);v($(t.target),!1);a($(t.target),"reset")}))}else console.error("Minh: payWithZip ","Unavailable Method")},sr=function(){c.oZipPaySetting.IsUsePayMethod?(r.util.showLoadingIcon(l,!0),n.createAChargeZip({saleId:c.oZipParams.sale,checkoutId:c.oZipParams.checkoutId}).then(function(n){r.util.showLoadingIcon(l,!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"?o.location.href="/":c.updateSaleAfterCreatedACharge(c.oZipParams.sale,t.receipt_number)},function(){r.util.showLoadingIcon(l,!1)})):console.error("Minh: ","Unavailable Method")},hr=function(t,i){r.util.showLoadingIcon(l,!0);n.updateSaleAfterCreatedACharge({saleId:t,receiptNumber:i}).then(function(n){c.savePaymentSuccess(n)},function(){r.util.showLoadingIcon(l,!1)})},cr=function(t){c.CardDetail.PayingType="PayLater";var i=w(t,c.CardHeader,c.CardDetail,c.ShoppingDiscountCode,c.client,c.ShoppingCart.PendingSales,c.formCreditCard);i&&c.ShoppingDiscountCode.FlagTradeCode==!0&&(r.util.showLoadingIcon(l,!0),n.paymentPayLater(c.CardHeader).then(function(n){c.savePaymentSuccess(n);v($(t.target),!1);a($(t.target),"reset")},function(){r.util.showLoadingIcon(l,!1);v($(t.target),!1);a($(t.target),"reset")}))},lr=function(n){var t,u;angular.isDefined(SimplifyCommerce)?(t=$(n.target).closest(".btn-pay-group").find(".btn-tyro-pay"),ar(n,function(n){var f=n.data,e=tt(c.ShoppingDiscountCode,c.AusPostCalculate,c.oShoppingSetting,c.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:b.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?c.formDelivery.isSaved=!1:(e=t.id,alert("Payment token: "+e))}},ar=function(t,i){var u=w(t,c.CardHeader,c.CardDetail,c.ShoppingDiscountCode,c.client,c.ShoppingCart.PendingSales,c.formCreditCard);u&&(r.util.showLoadingIcon(l,!0),n.saveOrderTemp(c.CardHeader).then(function(n){r.util.showLoadingIcon(l,!1);var u=n.data;i(n);v($(t.target),!1);a($(t.target),"reset")},function(){r.util.showLoadingIcon(l,!1);v($(t.target),!1);a($(t.target),"reset")}))},vr=function(){r.util.isNullOrEmpty(r.webApp.ga.recaptchaSiteKey)?s.getUbsCaptcha({}).then(function(n){c.ShoppingCart.Recaptcha=n.data},function(){}):console.error("Minh: ","cannot reload ubs captcha because RecaptchaSiteKey has value")},yr=function(n){n={response:null,widgetId:null,SetResponse:function(n){c.ShoppingCart.Recaptcha.response=n},SetWidgetId:function(n){c.ShoppingCart.Recaptcha.widgetId=n},Reset:function(){h.reload(c.ShoppingCart.Recaptcha.widgetId);c.ShoppingCart.Recaptcha.response=null}}};return{getDefaultShoppingCartOptions:pt,setScope:wt,getScopeDirective:bt,setShoppingSetting:kt,addProductItem:gi,applyDiscountCode:bi,disableButton:v,updateClientInfo:ti,removeProductItem:nr,removeAllProductItem:tr,removeDiscountCode:ki,renderPaypalButton:yt,createElementScript:ri,changeQty:it,changeQtyMinus:wi,changeQtyPlus:pi,changeDeliveryAusPostService:di,csourceCodeToDesc:ht,createPaypalButton:rr,getPaymentSetting:ur,getLocationState:dt,getDealerBranches:gt,getPickupAtLocationItem:ni,getPriceQty:et,getDeliveryFee:d,getBulkyPrice:ot,getDiscountCodePrice:ui,getPriceDepositAmount:p,getTotalDiscountCodePrice:g,getTotalPendingSalePrice:nt,getTotalBulkyPrice:st,getTotalBasket:tt,loadAusPostServices:yi,loadScriptTagGAEcommerceTracking:ii,hasBulkyItem:ct,hasPickupOnlyItem:lt,hasPickupOnlyCategoryInListItems:at,isAllowChangeQty:ei,isOnlyPickupInStore:vt,isShowItemCode:oi,setStatusButton:a,showSignupOrLoginForm:si,submitLoginForm:hi,submitLoginFB:ci,submitLoginGoogle:li,submitLogoutForm:ai,saveToGAEcommerceTracking:ir,savePayment:er,validatePayment:w,validQuantity:rt,payWithTyro:lr,payWithZip:or,createAChargeZip:sr,updateSaleAfterCreatedACharge:hr,payLater:cr,reloadUbsCaptcha:vr,loadGGCaptcha:yr}}]);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)},p=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(){function n(n,t,i){var r,u=n.getElementsByTagName(t)[0];n.getElementById(i)||(r=n.createElement(t),r.id=i,r.src="https://www.paypalobjects.com/api/checkout.js",u.parentNode.insertBefore(r,u),r.onload=function(){})}n(document,"script","paypal-jscheckout")};return{SetFbKey:h,SetGoogleKey:c,SetLinkedInKey:l,GetGoogleKey:s,GetLinkedInKey:e,Logout:a,LoginFB:v,Base64:o,InitPaypal:y}}]);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+"CreatePaymentPaypal")},ft=function(n){return f(n,u+"ExecutePaymentPaypal")},et=function(n){return f(n,u+"CreateACheckoutZip")},ot=function(n){return f(n,u+"CreateAChargeZip")},st=function(n){return f(n,u+"UpdateSaleAfterCreatedACharge")},ht=function(n){return f(n,u+"SaveOrderTemp")},ct=function(n){return f(n,u+"Login")},lt=function(){return e({},u+"Logout")},at=function(n){return f(n,u+"ApplyDiscountCode")},vt=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:vt,AddProductItem:b,applyDiscountCode:at,Login:ct,Logout:lt,createPaymentPaypal:ut,executePaymentPaypal:ft,paymentCreditCard:tt,paymentPayLater:rt,paymentPaypal:it,createACheckoutZip:et,createAChargeZip:ot,updateSaleAfterCreatedACharge:st,saveOrderTemp:ht}}]);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(f,e){function s(){var n=angular.element(e).find(".wizard .nav-tabs li.active");n.next().removeClass("disabled");$(n).next().find('a[data-toggle="tab"]').click()}function h(){angular.element(e).find('a[data-toggle="tab"]').length>0&&angular.element(e).find('a[data-toggle="tab"]:first').tab("show")}f.ShoppingCart=o.getDefaultShoppingCartOptions();f.CardHeader={};f.CardDetail={};f.CreditCardError=[];f.PostcodeSuburbErrorMsg="";f.CardHeader.DeliveryFee=null;f.CardHeader.DeliveryOption=null;f.isRenderPaypalButton=!1;f.IsShowResultDeliveryAusPostService=!1;f.NotiCart={};f.AusPostServices={};f.ShoppingDiscountCode={};f.oZipPaySetting={};f.oPaypalSetting={};f.oShoppingSetting={};f.isSCShoppingBasKetDataLoaded=!1;f.isSCShopCartCtrlLoaded=!1;f.init=function(){o.setScope(f);t.GetShoppingBasKetData().then(function(t){var i=t.data;o.setShoppingSetting(i.ShoppingSetting);f.oShoppingSetting=i.ShoppingSetting;f.CardHeader.CreditCardType=i.CreditCardType;f.CardDetail.PayingType="CreditCard";f.TotalRecordsShoppingCart=i.TotalRecordsPendingSale;f.oZipParams=i.ZipParams;f.oPaypalSetting=angular.fromJson(i.PaypalParams);f.oZipParams.IsSandbox=f.oZipParams.IsSandBox;f.oPaypalSetting.IsSandbox=f.oPaypalSetting.IsSandBox;f.AusPost=i.AusPost;f.ShoppingCart.WebsiteId=i.WebsiteId;f.ShoppingCart.IsAuthentinal=i.IsAuthentinal;f.ShoppingCart.ClientSourceType=i.ClientSourceType;f.ShoppingCart.PendingSales=i.Carts;f.ShoppingCart.LoginViewModel.FullName=i.Client.FullName;f.ShoppingCart.LoginViewModel.ClientSource=i.Client.Source;f.ShoppingCart.LoginViewModel.Email=i.Client.Email;f.ShoppingDiscountCode=i.ShoppingDiscountCode;f.oZipPaySetting={IsSandbox:f.oZipParams.IsSandbox,IsUsePayMethod:f.oZipParams.IsUsePayMethod};f.isSCShoppingBasKetDataLoaded=!0;f.initFinally();f.updateClientInfo(i.Client);u(function(){f.oZipParams.isZipPaymentMethod&&f.createAChargeZip();f.oPaypalSetting.IsUsePayMethod&&r.InitPaypal()});o.getLocationState(function(n){f.lLocationStates=n});f.ShoppingCart.iTotalBulkyPrice=o.getTotalBulkyPrice(f.ShoppingCart.PendingSales);r.SetFbKey(n.FBAppId,"v2.11");r.SetGoogleKey(n.GoogleAppId);f.loadCaptcha()},function(){})};f.initShopCartCtrl=function(n){angular.isDefined(n.ShoppingOptions)?(f.oShoppingOptions=angular.copy(n.ShoppingOptions),delete n.ShoppingOptions,f.isSCShopCartCtrlLoaded=!0,f.initFinally()):console.error("ShoppingCart1Ctrl: ShoppingOptions is null")};f.initFinally=function(){f.isSCShoppingBasKetDataLoaded==!0&&f.isSCShopCartCtrlLoaded==!0&&f.oShoppingSetting.GAETTransactionId!=null&&o.loadScriptTagGAEcommerceTracking()};f.ShoppingCart.GetPrice=o.getPriceQty;f.ShoppingCart.getSourceDesc=o.csourceCodeToDesc;f.ShoppingCart.isAllowChangeQty=function(n){return o.isAllowChangeQty(f.ShoppingCart.WebsiteId,n)};f.ShoppingCart.hasBulkyItem=o.hasBulkyItem;f.ShoppingCart.showItemCode=o.isShowItemCode;f.ShoppingCart.IsOnlyPickupInStore=function(){return o.isOnlyPickupInStore(f.ShoppingCart.WebsiteId,f.ShoppingCart.PendingSales)};f.ShoppingCart.IsShowPickupAtLocation=function(){var n=!1;return f.oShoppingSetting.HasDeliveryOptions&&(f.ShoppingCart.IsOnlyPickupInStore()||angular.isDefined(f.CardHeader)&&i.util.indexOfLowerCase(f.CardHeader.DeliveryOption,"pick up in store"))&&(n=!0),n};f.hasValidateDeliveryAddressStep=function(){var n=!0;return i.webApp.oWebsite&&i.webApp.oWebsite.WebsiteID==261&&(n=o.hasPickupOnlyCategoryInListItems(f.ShoppingCart.PendingSales)?!1:f.DeliveryAusPostService=="Pick_Up_In_Store::Free_Pickup"?!1:!0),n};f.isShowAddressInfoInDeliveryAddressStep=function(){return f.hasValidateDeliveryAddressStep()};f.hasPickupOnlyCategoryInListItems=function(){return o.hasPickupOnlyCategoryInListItems(f.ShoppingCart.PendingSales)};f.isNoPaymentMethods=function(){var n=!1,t=!1;return webApp.util.hasVal(f.CardHeader.CreditCardType)&&webApp.util.equalsLowerCase(f.CardHeader.CreditCardType,"NONE")&&(t=!0),t==!1&&f.oPaypalSetting.IsUsePayMethod==!1&&f.oZipPaySetting.IsUsePayMethod==!1&&f.ShoppingDiscountCode.FlagTradeCode==!1&&(n=!0),n};f.collapsePaypal=function(){o.createPaypalButton("#paypal-button",f.ShoppingCart.PendingSales,f.client,f.CardHeader,f.CardDetail,f.formCreditCard,f.oPaypalSetting,f.ShoppingDiscountCode,f.AusPostCalculate,f.oShoppingSetting,function(n){f.savePaymentSuccess(n)})};f.collapseZip=function(){f.CardDetail.PayingType="Zip"};f.collapsePayLater=function(){f.CardDetail.PayingType="PayLater"};f.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()};f.changeDeliveryAusPostService=function(n){o.changeDeliveryAusPostService(n,f.AusPost,f.CardHeader,f.AusPostServices,f.AusPostCalculate,function(n){f.IsShowResultDeliveryAusPostService=n.isShowResult;f.AusPostCalculate=n.oAusPostCalculate;f.getTotalBasket()})};f.applyDiscountCode=function(){o.applyDiscountCode(f.ShoppingDiscountCode,function(n){f.ShoppingDiscountCode=n;f.calculatorDiscountCode()})};f.removeDiscountCode=function(){o.removeDiscountCode(f.ShoppingDiscountCode,function(n){var t=n.data;f.ShoppingDiscountCode=t.DiscountCodeView;f.ShoppingCart.PendingSales=t.Products;f.calculatorDiscountCode()})};f.ShoppingCart.SignUp=o.showSignupOrLoginForm;f.ShoppingCart.Login=function(n){o.submitLoginForm(n,function(n){var t=n.data;f.updateClientInfo(t.Client);$("[data-dismiss=modal]").trigger({type:"click"});h()})};f.ShoppingCart.LoginFB=o.submitLoginFB;f.ShoppingCart.LoginGoogle=o.submitLoginGoogle;f.ShoppingCart.Logout=function(){o.submitLogoutForm(function(){f.updateClientInfo(null);h()})};f.$watch("ShoppingCart.PendingSales",function(n){if(f.ShoppingCart.IsOnlyDeposit=!1,!IsNullOrEmpty(n)&&f.ShoppingCart.PendingSales.length>0)for(var t=0;t<f.ShoppingCart.PendingSales.length;t++)if(f.ShoppingCart.PendingSales[t].IsUseDeposit==!0){f.ShoppingCart.IsOnlyDeposit=!0;break}f.calculatorDiscountCode()});f.$watch("client.Delivery.Postcode",function(n){IsNullOrEmpty(n)||(f.AusPost.ToPostcode=n,f.loadAusPostServices())});f.updateClientInfo=function(n){o.updateClientInfo(n,f.ShoppingCart.ClientSourceType,function(n){f.client=n})};f.loadDealerBranches=function(n){o.getDealerBranches(n,function(n){f.lSCDealershipBranches=n})};f.loadCaptcha=function(){i.util.isNullOrEmpty(i.webApp.ga.recaptchaSiteKey)?o.reloadUbsCaptcha(f.ShoppingCart.Recaptcha):o.loadGGCaptcha(f.ShoppingCart.Recaptcha)};f.loadAusPostServices=function(){o.loadAusPostServices(f.ShoppingCart.PendingSales,f.AusPostServices,f.AusPost,f.ShoppingCart.WebsiteId,function(n){f.AusPostServices=n.oAusPostServices;angular.isDefined(n.sDeliveryOption)&&n.sDeliveryOption!=""&&(f.CardHeader.DeliveryOption=n.sDeliveryOption)})};f.loadPaypalSetting=function(){o.getPaymentSetting("Paypal",function(n){f.oPaypalSetting=angular.fromJson(n.data)})};f.loadZipPaySetting=function(){o.getPaymentSetting("Zippay",function(n){f.oZipPaySetting=angular.fromJson(n.data)})};f.renderPaypalButton=function(n,t,i,r,u,e,s,h){f.isRenderPaypalButton||(f.isRenderPaypalButton=!0,o.renderPaypalButton("#paypal-button",n,t,i,r,u,e,s,h))};f.getPriceDepositAmount=function(n){return o.getPriceDepositAmount(n,f.oShoppingSetting)};f.getDiscountCodePrice=function(n){return o.getDiscountCodePrice(n,f.ShoppingDiscountCode,f.oShoppingSetting)};f.getTotalPricePendingSale=function(){return o.getTotalPendingSalePrice(f.oShoppingSetting,f.ShoppingCart.PendingSales)};f.getDeliveryFee=function(){return f.CardHeader.DeliveryFee=null,f.ShoppingCart.PendingSales.length>0&&!f.ShoppingCart.IsOnlyDeposit&&(f.CardHeader.DeliveryFee=o.getDeliveryFee(f.AusPostCalculate,f.ShoppingCart.PendingSales)),f.CardHeader.DeliveryFee};f.getBulkyPrice=function(n){return o.getBulkyPrice(n)};f.calculatorDiscountCode=function(){f.ShoppingCart.iTotalDiscountCodePrice=o.getTotalDiscountCodePrice(f.ShoppingDiscountCode,f.ShoppingCart.PendingSales)};f.getTotalBasket=function(){return o.getTotalBasket(f.ShoppingDiscountCode,f.AusPostCalculate,f.oShoppingSetting,f.ShoppingCart.PendingSales)};f.ShoppingCart.OnChangeQty=o.changeQty;f.ShoppingCart.AddCartItem=function(n){o.addProductItem(n,function(){f.calculatorDiscountCode()})};f.ShoppingCart.RemoveCartItem=function(n){o.removeProductItem(n,function(){f.calculatorDiscountCode()})};f.ShoppingCart.RemoveAllCartItems=function(){o.removeAllProductItem(function(){f.calculatorDiscountCode()})};f.saveContactAndNext=function(){f.ShoppingCart.PendingSales.length>0&&(f.formContact.submitted=!0,f.formContact.$valid&&(AWDSApp.util.showLoadingIcon(e,!0),t.RegisterContact(f.client).then(function(n){var i,t;AWDSApp.util.showLoadingIcon(e,!1);i=angular.fromJson(n.data);f.updateClientInfo(i);f.PostcodeSuburbErrorMsg="";f.loadAusPostServices();f.oShoppingOptions.ViewOption.Checkout.IsShowLocation&&(t=o.getPickupAtLocationItem(f.ShoppingCart.PendingSales),t!=null&&(f.CardHeader.PickupLocationId=t),f.loadDealerBranches(t));s()},function(){AWDSApp.util.showLoadingIcon(e,!1)})))};f.saveDeliveryAndNext=function(){f.ShoppingCart.PendingSales.length>0&&(f.formDelivery.submitted=!0,IsNullOrEmpty(f.client.Delivery.Postcode)?f.PostcodeSuburbErrorMsg="Please enter postcode.":f.formDelivery.$valid&&(AWDSApp.util.showLoadingIcon(e,!0),t.DeliveryContact(f.client).then(function(n){AWDSApp.util.showLoadingIcon(e,!1);jsonData=angular.fromJson(n.data);f.updateClientInfo(jsonData);s()},function(){AWDSApp.util.showLoadingIcon(e,!1)})))};f.savePaymentSuccess=function(n){var t=angular.fromJson(n.data);t.Errors!=null&&t.Errors.length>0?(f.CreditCardError=t.Errors,AWDSApp.util.showLoadingIcon(e,!1),o.saveToGAEcommerceTracking(n,f.oShoppingSetting.GAETTransactionId,function(){i.webApp.util.redirectTo(i.webApp.util.getUrlHasPrefix("shopping-basket/checkout"))})):(f.ShoppingCart.IsPayment=!0,f.CreditCardError=[],f.ShoppingCart.PendingSales=[],f.TotalRecordsShoppingCart=null,i.webApp.util.redirectTo(i.webApp.formMailOptions.redirectToThankYou.shoppingCartDirective,i.webApp.util.getUrlHasPrefix("stock/shoppingcart/thankyou")))};f.savePayment=o.savePayment;f.payWithZip=o.payWithZip;f.createAChargeZip=o.createAChargeZip;f.updateSaleAfterCreatedACharge=o.updateSaleAfterCreatedACharge;f.payLater=o.payLater;f.validatePayment=function(n){return o.validatePayment(n,f.CardHeader,f.CardDetail,f.ShoppingDiscountCode,f.client,f.ShoppingCart.PendingSales,f.formCreditCard)}}]}}])