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()}}}}]);ngAWDSApp.directive("shoppingCartDirective",["$window","ShoppingCartFactory","$rootScope","LoginService","$timeout","Notification","$filter","localstorageFactory",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('#areasStockDetailTab a[href="'+t+'"]').tab("show")})},controller:["$scope","$element","$attrs","$parse",function(s,h,c,l){function v(){var n=angular.element(h).find(".wizard .nav-tabs li.active");n.next().removeClass("disabled");$(n).next().find('a[data-toggle="tab"]').click()}function a(){angular.element(h).find('a[data-toggle="tab"]').length>0&&angular.element(h).find('a[data-toggle="tab"]:first').tab("show")}s.ShoppingCart={IsShowShoppingCart:!0,IsAuthentinal:!1,IsOnlyDeposit:!1,IsPayment:!1,iTotalBulkyPrice:0,ErrorMsgSocialLogin:"",ClientSourceType:{},LoginViewModel:{IsCreateAccount:!1,ClientSource:"",Email:"",Password:"",FullName:""},PendingSales:[]};s.CardHeader={};s.CardDetail={};s.CreditCardError=[];s.PostcodeSuburbErrorMsg="";s.CardHeader.DeliveryFee=null;s.CardHeader.DeliveryOption=null;s.IsShowResultDeliveryAusPostService=!1;s.NotiCart={};s.AusPostServices=[];s.ShoppingDiscountCode={};s.oZipPaySetting={};s.oPaypalSetting={};s.init=function(){t.GetShoppingBasKetData().then(function(n){var t=n.data;s.CardHeader.CreditCardType=t.CreditCardType;s.CardDetail.PayingType="CreditCard";s.TotalRecordsShoppingCart=t.TotalRecordsPendingSale;s.oZipParams=t.ZipParams;s.oPaypalSetting=angular.fromJson(t.PaypalParams);s.oZipParams.IsSandbox=s.oZipParams.IsSandBox;s.oPaypalSetting.IsSandbox=s.oPaypalSetting.IsSandBox;s.AusPost=t.AusPost;s.ShoppingCart.IsAuthentinal=t.IsAuthentinal;s.ShoppingCart.ClientSourceType=t.ClientSourceType;s.ShoppingCart.PendingSales=t.Carts;s.ShoppingCart.LoginViewModel.FullName=t.Client.FullName;s.ShoppingCart.LoginViewModel.ClientSource=t.Client.Source;s.ShoppingCart.LoginViewModel.Email=t.Client.Email;s.ShoppingDiscountCode=t.ShoppingDiscountCode;s.AusPost.Length="15";s.AusPost.Width="10";s.AusPost.Height="5";s.AusPost.Weight="0.4";s.oZipPaySetting={IsSandbox:s.oZipParams.IsSandbox,IsUsePayMethod:s.oZipParams.IsUsePayMethod};s.RebindData4Client(t.Client);u(function(){s.oZipParams.isZipPaymentMethod&&s.createAChargeZip();s.oPaypalSetting.IsUsePayMethod&&r.InitPaypal()});s.getLocationState();s.ShoppingCart.iTotalBulkyPrice=s.getTotalBulkyPrice()},function(){});r.SetFbKey(n.FBAppId,"v2.11");r.SetGoogleKey(n.GoogleAppId)};s.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()};s.OnClickContact=function(){s.ShoppingCart.PendingSales.length>0&&(s.formContact.submitted=!0,s.formContact.$valid&&(AWDSApp.util.showLoadingIcon(h,!0),t.RegisterContact(s.client).then(function(n){AWDSApp.util.showLoadingIcon(h,!1);var t=angular.fromJson(n.data);s.RebindData4Client(t);s.PostcodeSuburbErrorMsg="";p();v()},function(){AWDSApp.util.showLoadingIcon(h,!1)})))};s.OnClickDelivery=function(){o.remove("DeliveryAusPostService");s.ShoppingCart.PendingSales.length>0&&(s.formDelivery.submitted=!0,IsNullOrEmpty(s.client.Delivery.Postcode)?s.PostcodeSuburbErrorMsg="Please enter postcode.":s.formDelivery.$valid&&(AWDSApp.util.showLoadingIcon(h,!0),t.DeliveryContact(s.client).then(function(n){AWDSApp.util.showLoadingIcon(h,!1);jsonData=angular.fromJson(n.data);s.RebindData4Client(jsonData);o.setObject("DeliveryAusPostService",s.AusPost);v()},function(){AWDSApp.util.showLoadingIcon(h,!1)})))};s.OnChangeDeliveryAusPostService=function(n){var i,r;if(s.CardHeader.DeliveryOption==null,IsNullOrEmpty(n))s.IsShowResultDeliveryAusPostService=!1,s.AusPostCalculate=undefined,s.getTotalBasket();else{for(s.IsShowResultDeliveryAusPostService=!0,s.AusPost.ServiceCode=n.split("::")[0],s.AusPost.OptionCode=n.split("::")[1],i=0;i<s.AusPostServices.service.length;i++)if(s.AusPostServices.service[i].code==s.AusPost.ServiceCode){for(s.CardHeader.DeliveryOption=s.AusPostServices.service[i].name,r=0;r<s.AusPostServices.service[i].options.option.length;r++)if(s.AusPostServices.service[i].options.option[r].code==s.AusPost.OptionCode){s.CardHeader.DeliveryOption=s.CardHeader.DeliveryOption+" - "+s.AusPostServices.service[i].options.option[r].name;break}break}s.AusPost.ServiceCode=="Pick_Up_In_Store"?(s.AusPostCalculate={postage_result:{service:"Pick_Up_In_Store",delivery_time:"",total_cost:0,costs:{cost:{item:"Free pickup",cost:0}}}},s.getTotalBasket()):s.AusPost.ServiceCode!="Pick_Up_In_Store"&&t.GetAusPostCalculate(s.AusPost).then(function(n){s.AusPostCalculate=n.data;s.getTotalBasket()},function(){s.AusPostCalculate=undefined})}};s.ShoppingCart.OnChangeQty=function(n){(!angular.isNumber(n.Quantity)||n.Quantity<1)&&(n.Quantity=1);t.AddProductItem(n).then(function(n){var t=angular.fromJson(n.data);s.TotalRecordsShoppingCart=t.TotalRecords;s.ShoppingCart.PendingSales=t.Carts},function(){})};s.ShoppingCart.AddCartItem=function(n){n.Price=CNumberNull(n.Price);n.Price!=null&&(n.Price=n.Price.toFixed(2));t.AddProductItem(n).then(function(t){var r=angular.fromJson(t.data);s.TotalRecordsShoppingCart=r.TotalRecords;s.ShoppingCart.PendingSales=r.Carts;s.NotiCart=n;f.primary({templateUrl:i.util.getUrlHasPrefix("Stock/ShoppingCart/CartNotificationView"),scope:s,delay:3e3,positionX:"center"})},function(){})};s.ShoppingCart.RemoveCartItem=function(n){t.RemoveProductItem(n).then(function(t){var i=angular.fromJson(t.data),r=s.ShoppingCart.PendingSales.indexOf(n);s.ShoppingCart.PendingSales.splice(r,1);s.TotalRecordsShoppingCart=i.TotalRecords},function(){})};s.ShoppingCart.RemoveAllCartItems=function(){t.RemoveAllCartItems().then(function(n){var t=angular.fromJson(n.data);s.ShoppingCart.PendingSales=[];s.TotalRecordsShoppingCart=t.TotalRecords},function(){})};s.ShoppingCart.GetPrice=function(n,t){return n=CNumberNull(n),n!=null&&(n=n.toFixed(2)),n*t};s.ShoppingCart.SignUp=function(n){s.ShoppingCart.LoginViewModel={IsCreateAccount:n,ClientSource:s.ShoppingCart.ClientSourceType.System,Email:"",Password:"",FullName:""};s.ShoppingCartFormLogin.submitted=!1;s.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!0);l("ShoppingCartFormLogin.Email.$error.serverMessage").assign(s,undefined);s.ShoppingCartFormLogin.$setPristine();s.ShoppingCartFormLogin.$setUntouched()};s.ShoppingCart.Login=function(n){s.ShoppingCart.LoginViewModel.ClientSource=n;var i=angular.copy(s.ShoppingCart.LoginViewModel);i.ClientSource!=s.ShoppingCart.ClientSourceType.System?(i.Password="",t.Login(i).then(function(n){var t=n.data;s.RebindData4Client(t.Client);s.ShoppingCart.IsAuthentinal=!0;$("[data-dismiss=modal]").trigger({type:"click"});a()},function(){})):(s.ShoppingCartFormLogin.submitted=!0,s.ShoppingCartFormLogin.$valid&&(i.Password=r.Base64.encode(i.Password),t.Login(i).then(function(n){var t=n.data,i=l("ShoppingCartFormLogin.Email.$error.serverMessage");t.ErrorMsg!=""?(s.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!1),i.assign(s,t.ErrorMsg)):(s.ShoppingCartFormLogin.Email.$setValidity("serverMessage",!0),i.assign(s,undefined),s.ShoppingCart.IsAuthentinal=!0,s.RebindData4Client(t.Client),$("[data-dismiss=modal]").trigger({type:"click"}),a())},function(){})))};s.ShoppingCart.LoginFB=function(){var t=function(){n.FB.api("/me?fields=name,email,picture",function(n){!n||n.error?s.ShoppingCart.ErrorMsgSocialLogin="Error occured while fetching user details.":(s.ShoppingCart.LoginViewModel.Email=n.email,s.ShoppingCart.LoginViewModel.FullName=n.name,s.ShoppingCart.Login(s.ShoppingCart.ClientSourceType.Facebook))})};n.FB.getLoginStatus(function(i){i.status==="connected"?t():n.FB.login(function(n){n.status==="connected"&&t()},{scope:"email,public_profile",auth_type:"rerequest"})})};s.ShoppingCart.LoginGoogle=function(){typeof s.gauth=="undefined"&&(s.gauth=gapi.auth2.getAuthInstance(),s.gauth.isSignedIn.get()?y():s.gauth.signIn().then(function(){y()},function(n){console.log(n)}))};s.ShoppingCart.Logout=function(){s.ShoppingCart.IsAuthentinal=!1;s.RebindData4Client(null);t.Logout().then(function(){switch(s.ShoppingCart.LoginViewModel.ClientSource){case s.ShoppingCart.ClientSourceType.Facebook:n.FB.logout();break;case s.ShoppingCart.ClientSourceType.Google:var t=gapi.auth2.getAuthInstance();t.signOut().then(function(){s.gauth=undefined})}a()},function(){})};s.applyDiscountCode=function(){AWDSApp.util.showLoadingIcon(h,!0);t.applyDiscountCode(s.ShoppingDiscountCode).then(function(n){var t=n.data;s.ShoppingDiscountCode=t.DiscountCodeView;t.Products.length>0&&(s.ShoppingCart.PendingSales=t.Products);switch(s.ShoppingDiscountCode.ResponseMessage){case"IsValid":break;case"Inactive":s.ShoppingDiscountCode.ResponseMessage="NOT ACTIVE CODE";break;case"LimitUser":s.ShoppingDiscountCode.ResponseMessage="LIMIT CODE";break;case"Expired":s.ShoppingDiscountCode.ResponseMessage="DATE EXPIRED";break;case"IsInvalid":s.ShoppingDiscountCode.ResponseMessage="INVALID CODE";break;default:s.ShoppingDiscountCode.ResponseMessage="The code is required."}AWDSApp.util.showLoadingIcon(h,!1)},function(){AWDSApp.util.showLoadingIcon(h,!1)})};s.removeDiscountCode=function(){t.removeDiscountCode(s.ShoppingDiscountCode).then(function(n){var t=n.data;s.ShoppingDiscountCode=t.DiscountCodeView;s.ShoppingCart.PendingSales=t.Products},function(){})};s.collapsePaypal=function(){var i,n;if(s.oPaypalSetting.IsUsePayMethod){s.CardDetail.PayingType="Paypal";i=[];n=0;angular.forEach(s.ShoppingCart.PendingSales,function(n){i.push({name:n.ItemCode,description:n.ItemTitle,quantity:n.Quantity,price:s.getPriceDepositAmount(n),currency:"AUD",sku:n.RefId})});n=+e("currency")(s.getTotalBasket(),"",2);var r=+e("currency")(s.getDeliveryFee(),"",2),u=+e("currency")(n-r,"",2),f={recipient_name:s.client.FullName,line1:s.client.Delivery.Address,line2:null,city:s.client.Delivery.Suburb,country_code:"AU",postal_code:s.client.Delivery.Postcode,phone:s.client.Phone,state:s.client.Delivery.State};s.renderPaypalButton(s.oPaypalSetting.IsSandbox,s.oPaypalSetting.ClientKey,n,u,r,i,f,function(n){var i=s.validatePayment();if(i&&n.state.toUpperCase()=="APPROVED"){try{s.CardHeader.TransactionId=n.transactions[0].related_resources[0].sale.id}catch(r){s.CardHeader.TransactionId=n.cart}AWDSApp.util.showLoadingIcon(h,!0);t.paymentPaypal(s.CardHeader).then(function(n){s.savePaymentSuccess(n)},function(){AWDSApp.util.showLoadingIcon(h,!1)})}})}else console.error("Minh: ","Unavailable Method")};s.collapseZip=function(){s.CardDetail.PayingType="Zip"};s.collapsePayLater=function(){s.CardDetail.PayingType="PayLater"};s.$watch("ShoppingCart.PendingSales",function(n){if(s.ShoppingCart.IsOnlyDeposit=!1,!IsNullOrEmpty(n)){var t=s.ShoppingCart.PendingSales.length;t>0&&(e("filter")(s.ShoppingCart.PendingSales,function(n){return n.IsUseDeposit!=!0}).length>0||(s.ShoppingCart.IsOnlyDeposit=!0))}});s.$watch("client.Delivery.Postcode",function(n){IsNullOrEmpty(n)||(s.AusPost.ToPostcode=n,p())});s.getLocationState=function(){t.getLocationState().then(function(n){s.lLocationStates=n.data;s.lLocationStates=e("filter")(s.lLocationStates,function(n){return n.Value!="PNG"&&n.Value!="NZ "})})};s.disableButton=function(n,t){n&&n.length>0&&(t=t||!0,t?n.attr("disabled","disabled"):n.removeAttr("disabled"))};s.setStatusButton=function(n,t){n&&n.length>0&&n.button(t)};s.RebindData4Client=function(n){n!=null?(Number(n.Phone)==0&&(n.Phone=null),n.Delivery!=null&&(s.PostcodeSuburb={pnum:n.Delivery.Postcode,state:n.Delivery.State,locality:n.Delivery.Suburb}),s.client=n):(s.client={},s.PostcodeSuburb=null,s.PostcodeSuburbErrorMsg="",s.client.Source=s.ShoppingCart.ClientSourceType.NonRegistered)};var y=function(){var t=s.gauth.currentUser.get(),n=t.getBasicProfile();s.ShoppingCart.LoginViewModel.Email=n.getEmail();s.ShoppingCart.LoginViewModel.FullName=n.getName();s.ShoppingCart.Login(s.ShoppingCart.ClientSourceType.Google)},w=function(n,i){t.GetAusPostCalculate(n).then(function(t){var r=t.data;return n.postage_result=r.postage_result,i(n)},function(){return null})},p=function(n){s.AusPost.ToPostcode!=null&&s.AusPost.FromPostcode!=null?t.GetAusPostServices(s.AusPost).then(function(t){var i,u,r,f;for(s.AusPostServices=t.data.services,s.AusPostServices.service=e("filter")(s.AusPostServices.service,function(n){return n.code.indexOf("AUS_PARCEL_EXPRESS_SATCHEL")>=0}),s.AusPostServices.service.unshift({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:{}}]}}),i=0;i<s.AusPostServices.service.length;i++)if(s.AusPostServices.service[i].code!="Pick_Up_In_Store")for(u=s.AusPostServices.service[i].options.option,r=0;r<u.length;r++)f=angular.copy(s.AusPost),f.ServiceCode=s.AusPostServices.service[i].code,f.OptionCode=u[r].code,w(f,function(t){for(var e,f,i=0;i<s.AusPostServices.service.length;i++)if(t.ServiceCode==s.AusPostServices.service[i].code)for(e=s.AusPostServices.service[i].options.option,f=0;f<e.length;f++)t.OptionCode==e[f].code&&(e[f].price=CNumberZero(t.postage_result.total_cost)+5);r+1==u.length&&angular.isFunction(n)&&n()})},function(){s.AusPostServices={service:[]};s.AusPostServices.service.push({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:{}}]}})}):s.AusPostServices={}};s.loadPaypalSetting=function(){t.getPaypalSetting({}).then(function(n){s.oPaypalSetting=angular.fromJson(n.data);s.oPaypalSetting.IsUsePayMethod&&r.InitPaypal()},function(){})};s.loadZipPaySetting=function(){t.getZipPaySetting({}).then(function(n){s.oZipPaySetting=angular.fromJson(n.data)},function(){})};s.isRenderPaypalButton=!1;s.renderPaypalButton=function(t,r,u,f,e,o,h,c){if(!s.isRenderPaypalButton){var l="sandbox";i.webApp.util.toBool(t)==!1&&(l="production");s.isRenderPaypalButton=!0;n.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:r,production:r},commit:!0,payment:function(n,t){return t.payment.create({transactions:[{amount:{total:u,currency:"AUD",details:{subtotal:f,shipping:e}},item_list:{items:o,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)}},"#paypal-button")}};s.getPriceDepositAmount=function(t){var u=null,i,r;return t.Price=CNumberNull(t.Price),t.Price!=null&&(t.Price=t.Price.toFixed(2),t.IsUseDeposit==!0?(i=1e4,window.maxPlaceDeposit!=null&&(i=window.maxPlaceDeposit),r=null,IsNullOrEmpty(n.EngineRoomSetting)||(i=n.EngineRoomSetting.maxPlaceDeposit||i),i=Number(i),i==1e4?r=1e3:i==2500&&(r=250),u=Number(t.Price)>i?r:t.Price/10):u=t.Price),u};s.getDiscountCodePrice=function(n){var t=s.getPriceDepositAmount(n)*n.Quantity;return n.DiscountPrice=t*(s.ShoppingDiscountCode.DiscountAmount/100),t-n.DiscountPrice};s.getTotalPricePendingSale=function(){var n=0;return angular.forEach(s.ShoppingCart.PendingSales,function(t){n=n+Number(t.Quantity)*s.getPriceDepositAmount(t)}),n};s.getDeliveryFee=function(){return s.CardHeader.DeliveryFee=null,s.ShoppingCart.PendingSales.length>0&&!s.ShoppingCart.IsOnlyDeposit&&angular.isDefined(s.AusPostCalculate)&&(s.CardHeader.DeliveryFee=s.AusPostCalculate.postage_result.service=="Pick_Up_In_Store"?0:Number(s.AusPostCalculate.postage_result.total_cost)+5+i.webApp.util.toNumber(s.ShoppingCart.iTotalBulkyPrice)),s.CardHeader.DeliveryFee};s.getBulkyPrice=function(n){var r=null,t;return i.webApp.util.hasVal(n.SpecialOptions)&&(t=i.webApp.util.getParameterByName("bulky",n.SpecialOptions),i.webApp.util.hasVal(t)&&(r=Number(t))),r};s.calculatorDiscountCode=function(){var t,n;return s.ShoppingDiscountCode.ResponseMessage=="IsValid"&&(t=e("filter")(s.ShoppingCart.PendingSales,function(n){return n.RefType.indexOf("Part")==0}),t.length>0)?(n=0,angular.forEach(t,function(t){var i=e("filter")(s.ShoppingDiscountCode.ShoppingDiscountCodeDetail,function(n){return n.ProductSourceType==t.Source});i.length>0&&(n=n+Number(t.Quantity)*Number(t.Price))}),n*(s.ShoppingDiscountCode.DiscountAmount/100)):null};s.getTotalBulkyPrice=function(){var n=null;return angular.forEach(s.ShoppingCart.PendingSales,function(t){n=n+s.getBulkyPrice(t)}),n};s.getTotalBasket=function(){var n=s.calculatorDiscountCode();return n!=null?s.getTotalPricePendingSale()-n+s.getDeliveryFee():s.getTotalPricePendingSale()+s.getDeliveryFee()};s.validatePayment=function(n){var t=n!=null?$(n.target):null,r=!1,i;return s.setStatusButton(t,"loading"),s.disableButton(t,!0),s.ShoppingCart.PendingSales.length>0?(s.CardHeader.Client=s.client,s.CardHeader.ListItems=s.ShoppingCart.PendingSales,s.ShoppingDiscountCode.ResponseMessage=="IsValid"&&(s.CardHeader.DiscountCode=s.ShoppingDiscountCode.DiscountCode,s.CardHeader.DiscountPrice=s.calculatorDiscountCode()),s.CardDetail.PayingType=="CreditCard"?(s.formCreditCard.submitted=!0,s.ShoppingCart.IsPayment=!1,s.formCreditCard.$valid?(i=s.CardDetail.Expiry+"",i.length==3&&(i="0"+i),s.CardDetail.ExpiryMonth=i.substring(0,2),s.CardDetail.ExpiryYear=i.substring(2,4),s.CardHeader.CardDetail=s.CardDetail,r=!0):(s.disableButton(t,!1),s.setStatusButton(t,"reset"))):(s.CardHeader.CardDetail=s.CardDetail,r=!0)):(s.disableButton(t,!1),s.setStatusButton(t,"reset")),r};s.savePaymentSuccess=function(n){var t=angular.fromJson(n.data);t.Errors!=null&&t.Errors.length>0?(s.CreditCardError=t.Errors,AWDSApp.util.showLoadingIcon(h,!1),u(function(){i.webApp.util.redirectTo(i.webApp.util.getUrlHasPrefix("shopping-basket/checkout"))},5e3)):(s.ShoppingCart.IsPayment=!0,s.CreditCardError=[],s.ShoppingCart.PendingSales=[],s.TotalRecordsShoppingCart=null,i.webApp.util.redirectTo(i.webApp.formMailOptions.redirectToThankYou.shoppingCartDirective,i.webApp.util.getUrlHasPrefix("stock/shoppingcart/thankyou")))};s.savePayment=function(n){s.CardDetail.PayingType="CreditCard";var i=s.validatePayment(n);i&&(AWDSApp.util.showLoadingIcon(h,!0),t.paymentCreditCard(s.CardHeader).then(function(t){s.savePaymentSuccess(t);s.disableButton($(n.target),!1);s.setStatusButton($(n.target),"reset")},function(){AWDSApp.util.showLoadingIcon(h,!1);s.disableButton($(n.target),!1);s.setStatusButton($(n.target),"reset")}))};s.payWithZip=function(n){if(s.oZipPaySetting.IsUsePayMethod){s.CardDetail.PayingType="Zip";var i=s.validatePayment(n);i&&(AWDSApp.util.showLoadingIcon(h,!0),t.createACheckoutZip(s.CardHeader).then(function(t){AWDSApp.util.showLoadingIcon(h,!1);var i=t.data;window.location.href=i.uri;s.disableButton($(n.target),!1);s.setStatusButton($(n.target),"reset")},function(){AWDSApp.util.showLoadingIcon(h,!1);s.disableButton($(n.target),!1);s.setStatusButton($(n.target),"reset")}))}else console.error("Minh: ","Unavailable Method")};s.createAChargeZip=function(){s.oZipPaySetting.IsUsePayMethod?(AWDSApp.util.showLoadingIcon(h,!0),t.createAChargeZip({saleId:s.oZipParams.sale,checkoutId:s.oZipParams.checkoutId}).then(function(t){AWDSApp.util.showLoadingIcon(h,!1);var i=t.data;angular.isDefined(i.error)?(alert(i.error.message),console.error("Minh: ",i.error)):angular.isDefined(i.status)&&i.status=="Paid"?n.location.href="/":s.updateSaleAfterCreatedACharge(s.oZipParams.sale,i.receipt_number)},function(){AWDSApp.util.showLoadingIcon(h,!1)})):console.error("Minh: ","Unavailable Method")};s.updateSaleAfterCreatedACharge=function(n,i){AWDSApp.util.showLoadingIcon(h,!0);t.updateSaleAfterCreatedACharge({saleId:n,receiptNumber:i}).then(function(n){s.savePaymentSuccess(n)},function(){AWDSApp.util.showLoadingIcon(h,!1)})};s.payLater=function(n){s.CardDetail.PayingType="PayLater";var i=s.validatePayment(n);i&&s.ShoppingDiscountCode.FlagTradeCode==!0&&(AWDSApp.util.showLoadingIcon(h,!0),t.paymentPayLater(s.CardHeader).then(function(t){s.savePaymentSuccess(t);s.disableButton($(n.target),!1);s.setStatusButton($(n.target),"reset")},function(){AWDSApp.util.showLoadingIcon(h,!1);s.disableButton($(n.target),!1);s.setStatusButton($(n.target),"reset")}))}}]}}]);ngAWDSApp.factory("LoginService",["$window","$cookies","$q",function(n,t){var i,r,e,u,f={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(n){var e="",o,t,i,h,c,s,r,u=0;for(n=f._utf8_encode(n);u<n.length;)o=n.charCodeAt(u++),t=n.charCodeAt(u++),i=n.charCodeAt(u++),h=o>>2,c=(o&3)<<4|t>>4,s=(t&15)<<2|i>>6,r=i&63,isNaN(t)?s=r=64:isNaN(i)&&(r=64),e=e+this._keyStr.charAt(h)+this._keyStr.charAt(c)+this._keyStr.charAt(s)+this._keyStr.charAt(r);return e},decode:function(n){var t="",o,s,h,c,u,r,e,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++)),e=this._keyStr.indexOf(n.charAt(i++)),o=c<<2|u>>4,s=(u&15)<<4|r>>2,h=(r&3)<<6|e,t=t+String.fromCharCode(o),r!=64&&(t=t+String.fromCharCode(s)),e!=64&&(t=t+String.fromCharCode(h));return f._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}},o=function(n,t){function u(n,t,u){var f,e=n.getElementsByTagName(t)[0];if(n.getElementById(u)){window.FB.init({appId:i,cookie:!0,xfbml:!0,version:r,status:!0});return}f=n.createElement(t);f.id=u;f.src="https://connect.facebook.net/en_US/sdk.js";e.parentNode.insertBefore(f,e);f.onload=function(){window.FB.init({appId:i,cookie:!0,xfbml:!0,version:r,status:!0})}}i=n;r=t;u(document,"script","facebook-jssdk")},s=function(n){e=n;var i=document,t,r=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)})};r.parentNode.insertBefore(t,r)},h=function(n){u=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: "+u).replace('"',"");r.parentNode.insertBefore(t,r)},v=function(n){t.put("awds_login_type",n)},c=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")})}},l=function(){},a=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:o,SetGoogleKey:s,SetLinkedInKey:h,GetGoogleKey:e,GetLinkedInKey:u,Logout:c,LoginFB:l,Base64:f,InitPaypal:a}}]);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/WSStock/GetLocationState")},s=function(){return e({},u+"GetShoppingBasKetData")},h=function(){return e({},u+"GetPendingSales")},c=function(n){return f(n,u+"AusPostServices")},l=function(n){return f(n,u+"AusPostCalculate")},a=function(n){return e(n,u+"GetPaypalSetting")},v=function(n){return e(n,u+"GetZipPaySetting")},y=function(){return f({id:Math.random().toString(36).substring(7)},u+"TotalRecordsPendingSale")},p=function(n){return f(n,u+"AddProductItemV2")},w=function(n){return f(n,u+"RemoveProductItem")},b=function(n){return f(n,u+"RemoveAllCartItems")},k=function(n){return f(n,u+"RegisterContact")},d=function(n){return f(n,u+"DeliveryContact")},g=function(n){return f(n,u+"PaymentCreditCard")},nt=function(n){return f(n,u+"PaymentPaypal")},tt=function(n){return f(n,u+"PaymentPayLater")},it=function(n){return f(n,u+"CreatePaymentPaypal")},rt=function(n){return f(n,u+"ExecutePaymentPaypal")},ut=function(n){return f(n,u+"CreateACheckoutZip")},ft=function(n){return f(n,u+"CreateAChargeZip")},et=function(n){return f(n,u+"UpdateSaleAfterCreatedACharge")},ot=function(n){return f(n,u+"Login")},st=function(){return e({},u+"Logout")},ht=function(n){return f(n,u+"ApplyDiscountCode")},ct=function(n){return f(n,u+"RemoveDiscountCode")};return{getLocationState:o,GetShoppingBasKetData:s,GetPendingSales:h,GetAusPostServices:c,GetAusPostCalculate:l,getPaypalSetting:a,getZipPaySetting:v,TotalRecordsPendingSale:y,RegisterContact:k,DeliveryContact:d,RemoveProductItem:w,RemoveAllCartItems:b,removeDiscountCode:ct,AddProductItem:p,applyDiscountCode:ht,Login:ot,Logout:st,createPaymentPaypal:it,executePaymentPaypal:rt,paymentCreditCard:g,paymentPayLater:tt,paymentPaypal:nt,createACheckoutZip:ut,createAChargeZip:ft,updateSaleAfterCreatedACharge:et}}])