"use strict";angular.module("shipApp",["ngRoute","ngAnimate","ui.bootstrap","ngMap","angularMoment","bfError","bfAlert","ngResource","ngCookies","ngIdle","errorLogger","ngSanitize"]).directive("onErrorSrc",function(){return{link:function(n,t,i){t.bind("error",function(){i.src!==i.onErrorSrc&&i.$set("src",i.onErrorSrc)})}}}).constant("setting",{Skip:0,Take:3,PickupFee:16,HazmatFee:40,ResidentialFee:5,MaxStages:6,AlertServerWarning:{Key:"Server",Severity:"alert-warning",Dismissable:!0,Expletive:"Oh my server!",Message:"Can't contact our servers, trying again."},NoAlertSilentError:{Key:"Silent",Severity:"silent-warning",Dismissable:!0,Expletive:"",Message:"Silent Javascript error log only"},allOfTheAboveAmount:4,MomentInputDateFormat:"MMM DD, YYYY",Text_SelectPackage:null,Text_EnterDimensions:"- - - - - - -  ENTER DIMENSIONS  - - - - - - -",Text_OptionSpacer:"---------------------------------",DefaultWeight:45,ReportErrors:!1,Debug:!1,AccountWebApiServerPath:"",isMobile:!1,HasBatteryQuestion:0,HasNoBatteryOption:1,HasSmallBatteryOption:2,HasLargeBatteryOption:3,HasBatteryOnlyOption:4,Elements:{loggedInMenu:"#loggedinmenu",loggedOutMenu:"#loggedoutmenu",loggedInNavButton:"#loggedinnavbutton",emailConfirmedMenu:".emailconffirmedmenu",loggedOutNavButton:"#logoutnavbutton",loginNavButton:"#loginnavbutton"}}).config(["$routeProvider","$locationProvider","$httpProvider","IdleProvider","KeepaliveProvider","$compileProvider",function(n,t,i,r){n.when("/",{templateUrl:"/scripts/app/shipsearch/shipsearch.unified.html",name:"home",code:"H"}).when("/home",{templateUrl:"/scripts/app/shipsearch/shipsearch.unified.html",name:"home",code:"H"}).when("/login",{templateUrl:"/scripts/app/account/login/login.template.html",name:"login",code:"P"}).when("/timeout",{templateUrl:"/scripts/app/account/timeout/timeout.html",name:"profile",code:"P"}).when("/register",{templateUrl:"/scripts/app/account/register/register.template.html",name:"register",code:"P"}).when("/registerthankyou",{templateUrl:"/scripts/app/account/register/registerThankYou.template.html",name:"registerthankyou",code:"P"}).when("/emailVerification",{templateUrl:"/scripts/app/account/emailVerification.template.html",name:"emailVerification",code:"P"}).when("/changePassword",{templateUrl:"/scripts/app/account/password/changePassword.template.html",name:"changePassword",code:"P"}).when("/forgotPassword",{templateUrl:"/scripts/app/account/password/forgotPassword.template.html",name:"forgotPassword",code:"P"}).when("/resetPassword",{templateUrl:"/scripts/app/account/password/resetPassword.template.html",name:"resetPassword",code:"P"}).when("/profile",{templateUrl:"/scripts/app/account/home/home.template.html",name:"profilehome",code:"P"}).when("/youraccount",{templateUrl:"/scripts/app/account/profile/userprofile.template.html",name:"profile",code:"P"}).when("/generateapikey",{templateUrl:"/scripts/app/account/apikey/apikey.template.html",name:"apikey",code:"P"}).when("/yourorders",{templateUrl:"/scripts/app/account/orders/orders.template.html",name:"orders",code:"P"}).when("/yourpayments",{templateUrl:"/scripts/app/account/payments/payments.template.html",name:"payments",code:"P"}).when("/youraddresses",{templateUrl:"/scripts/app/account/address/addressbook.template.html",name:"addressbook",code:"P"}).when("/yourboxes",{templateUrl:"/scripts/app/account/package/userpackage.template.html",name:"userpackage",code:"P"}).when("/yoursearches",{templateUrl:"/scripts/app/account/search/userSearch.template.html",name:"usersearch",code:"P"}).when("/ship",{templateUrl:"/scripts/app/shippath/shippath.accordion.html",name:"ship",code:"S",reloadOnSearch:!1}).when("/pack",{templateUrl:"/scripts/app/bikeshopfinder/bikeshopfinder.template.html",name:"bikeshopfinder",code:"C"}).when("/ride",{templateUrl:"/scripts/app/bikeevent/bikeeventlist.template.html",name:"ride",code:"R"}).when("/bicycleshops",{templateUrl:"/scripts/app/bikeshopfinder/bikeshops.template.html",name:"bikeshoppage",controller:"bikeShopFinderController",code:"C"}).when("/Confirmation",{templateUrl:"/scripts/app/shipconfirmation/shipconfirmation.template.html",name:"confirm",code:"P"}).when("/track",{templateUrl:"/scripts/app/tracking/upstracing.template.html",name:"tracking",code:"C"}).when("/usacycling",{templateUrl:"/scripts/app/partnerconnect/usacycling.template.html",name:"linkaccount",code:"P"}).when("/qbptopshop",{templateUrl:"/scripts/app/qbptopshop/qbptopshop.template.html",name:"linkaccount",code:"P"}).when("/claims",{templateUrl:"/scripts/app/claimsform/claims.template.html",name:"claimsForm",code:"K"}).otherwise({templateUrl:"/scripts/app/routing/routing.template.html",name:"routing",code:"H"});window.history&&window.history.pushState&&t.html5Mode({enabled:!0,requireBase:!0});i.interceptors.push("authInterceptor");r.idle(1200);r.timeout(63)}]).run(["$templateCache","$rootScope","$location","cleanupFactory","currentUser","userAccount","$window","$route","$cookies","helpersFactory","Idle","setting","formDataFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a){t.$on("$routeChangeStart",function(n,r){var s,e,f;sessionStorage.restorestate==="true"&&(t.$broadcast("RestoreState"),sessionStorage.restorestate=!1);i!==null&&typeof i!="undefined"&&(i.$$url.toLowerCase()==="/how_to_pack_a_bike.aspx"&&(n.preventDefault(),i.path("/Pack")),s=i.path(),e=o.routes[s],t.locationCode=e!==null&&typeof e!="undefined"?e.code:"H");f=r.originalPath;(f==="/profile"||f==="/orders"||f==="/addressbook"||f==="/bikecase"||f==="/payments"||f==="/changePassword")&&(u.getProfile().isLoggedIn||(n.preventDefault(),i.path("/login")))});e.onbeforeunload=function(){sessionStorage.restorestate="true";t.$broadcast("SaveState")};e.onunload=function(){sessionStorage.restorestate="true";t.$broadcast("SaveState")};$(window).on("beforeunload",function(){sessionStorage.restorestate="true";t.$broadcast("SaveState")});(t.Errors===null||typeof t.Errors=="undefined")&&(t.Errors=[]);a.loadAlerts();var v=angular.element("#ui-view");n.put(v.data("tmpl-url"),v.html());r.initialize()}]);angular.module("bfError",[]).service("errorService",["$http","$rootScope","setting",function(n,t,i){function f(n,r){if(!n)return!1;for(var f=0,e=t.Errors.length;f<e;f++)if(t.Errors[f].Key===n.Key)return!1;return t.Errors.push(n),i.ReportErrors===!0&&u(n,r),!0}function e(n){if(typeof n=="undefined"||n===null)return!1;(typeof t.SiteMessages=="undefined"||t.SiteMessages===null)&&(t.SiteMessages=[]);for(var i=0,r=t.SiteMessages.length;i<r;i++)if(t.SiteMessages[i].Key===n.Key)return!1;return t.SiteMessages.push(n),!0}function o(n){if(typeof n=="undefined"||n===null)return!1;for(var i=0,r=t.Errors.length;i<r;i++)if(t.Errors[i].Key===n.Key)return!1;return t.Errors.push(n),!0}function r(n){var r,i,u;if(typeof n!="undefined"&&n!==null)for(r=n,typeof n=="object"&&(r=n.Key),i=0,u=t.Errors.length;i<u;i++)t.Errors[i].Key===r&&(t.Errors.splice(i,1),u--)}function s(n){r({Key:n})}function h(){}function c(){}function l(n){if(n===null||typeof n=="undefined")return"";var i="url: "+n.fileName!=null?n.fileName:document.location,r="stack: "+n.stack!=null?n.stack:"",t=n.message!=null?n.name+": "+n.message:n;return t+=i+="\n",t+(r+="\n")}function u(t,i){var r=t.Key+"\n"+t.Message+"\n"+l(i);n.post("/api/error/log",{Url:window.location.href,Message:r,StackTrace:"",Cause:""}).then(h,c)}function a(n){i.ReportErrors===!0&&u(i.NoAlertSilentError,n)}return{addError:f,addMessage:o,addSiteMessage:e,logError:a,removeError:r,removeErrorByKey:s,removeMessage:r}}]);angular.module("bfAlert",[]).service("alertService",["$q","$http","$rootScope","setting","errorService",function(n,t,i,r,u){function f(n){return{Key:n.Name,Page:n.Page,Severity:n.Type,Dismissable:n.Dismissable,Expletive:n.Expletive,Message:n.Message}}function e(){return t({method:"get",url:"/api/Alert/getactivealerts"})}function o(n){for(var i=n[0].data,t=0,r=i.length;t<r;t++)u.addSiteMessage(f(i[t]))}function s(){}function h(t){var i=[];i.push(e(t));n.all(i).then(o,s).then(function(){})}function c(){try{return t.get("/api/alert/getallalerts")}catch(n){u.addError(r.AlertServerWarning,n)}return null}return{getAlerts:h,getAllAlertsPromise:c}}]);angular.module("errorLogger",[]).factory("exceptionHandler",function(){return function(n,t){var u=n.toString(),r="",i;for(i in n)r+="property: "+i+" value: ["+n[i]+"]\n";$.ajax({type:"POST",url:"/api/error/log",contentType:"application/json",data:angular.toJson({Url:window.location.href,Message:u,StackTrace:r,Cause:t||""})})}});angular.module("shipApp").factory("formDataFactory",["$rootScope","setting","helpersFactory","errorService","countryService","stateService","charityOrgService","packageOptionService","dataListService","alertService","currentUser",function(n,t,i,r,u,f,e,o,s,h,c){function g(){sessionStorage.formData=angular.toJson(l.model)}function nt(){l.model=angular.fromJson(sessionStorage.formData);l.model.presets=b}function a(n){return n!==null&&n!==undefined&&n.length>1?!0:!1}function tt(n,t){for(var i=0,r=n.length;i<r;i++)if(typeof n[i].userPackageId!="undefined"&&typeof t.userPackageId!="undefined"){if(n[i].userPackageId===t.userPackageId)return i}else if(n[i].Name===t.Name)return!0;return!1}function it(n){for(var t=0,i=n.length;t<i;t++)n[t]!==null&&typeof n[t].Name!="undefined"&&n[t].Name&&(n[t].Name=n[t].Name.trim())}function ut(n){for(var t=0,r=n.length;t<r;t++)n[t].CmLength=Math.round(i.inToCm(n[t].Length)*100)/100,n[t].CmWidth=Math.round(i.inToCm(n[t].Width)*100)/100,n[t].CmHeight=Math.round(i.inToCm(n[t].Height)*100)/100,n[t].KgWeight=Math.round(i.lbToKg(n[t].Weight)*100)/100}function ft(n){for(var i=[],t=0,r=n.length;t<r;t++)n[t].Name===""?n.splice(t,1):n[t].Name!==null&&i.push(n[t].Name);l.model.presets.packageNames=i}function p(n){(n===null||typeof n=="undefined")&&(n=this.model.presets.packagePresets);it(n);n.sort(rt);ut(n);ft(n)}function et(){l.model.presets.countries=globals.countries;var n=l.model.presets.countries;return a(n)?!1:(u.getCountryPromise().then(function(n){r.removeError(t.AlertServerWarning);typeof n.data!="undefined"&&(l.model.presets.countries=n.data)},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function ot(){l.model.presets.states=globals.states;var n=l.model.presets.states;if(a(n))return!1;f.getStatePromise().then(function(n){r.removeError(t.AlertServerWarning);typeof n.data!="undefined"&&(l.model.presets.states=n.data)},function(n){r.addError(t.AlertServerWarning,n)})}function k(n){t.HasBatterQuestion=n[0].value;t.HasNoBatteryOption=n[1].value;t.HasSmallBatteryOption=n[2].value;t.HasLargeBatteryOption=n[3].value;t.HasBatteryOnlyOption=n.Length>4?n[4].value:-1}function st(){l.model.presets.passwordValidationOptions=globals.optionsPasswordValidation;var n=l.model.passwordValidationOptions;return a(n)?!0:(r.removeError(t.AlertServerWarning.Key),s.getDataList("passwordvalidation").then(function(n){return typeof n.data=="undefined"?(r.addError(t.AlertServerWarning,n),!1):(l.model.presets.passwordValidationOptions=n.data.sort(v),!0)},function(n){r.addError(t.AlertServerWarning,n)}),!1)}function ht(){l.model.presets.hasBatteryOptions=globals.optionsBattery;var n=l.model.presets.hasBatteryOptions;return a(n)?(k(l.model.presets.hasBatteryOptions),!0):(r.removeError(t.AlertServerWarning.Key),s.getDataList("battery").then(function(n){return typeof n.data=="undefined"?(r.addError(t.AlertServerWarning,n),!1):(l.model.presets.hasBatteryOptions=n.data.sort(v),k(l.model.presets.hasBatteryOptions),!0)},function(n){r.addError(t.AlertServerWarning,n)}),!1)}function ct(){var t=l.model.presets.expirationYears,i,n;if(a(t))return!0;for(i=parseInt((new Date).getFullYear()),n=0;n<10;n++)t[n]=i+n}function lt(){var i=l.model.presets.charities;return a(i)?!1:(e.getCharityOrgPromise().then(function(i){if(r.removeError(t.AlertServerWarning),i.data!==undefined){for(var u=0,f=i.data.CharityList.length;u<f;u++)i.data.CharityList[u].Amount=1;l.model.presets.charities=i.data.CharityList;l.model.presets.charities.unshift({CharityOrgId:0,CharityName:"No Thanks",Description:"",Amount:0,Logo:"/images/1x1.gif"});l.model.charityRaised=i.data.CharityRaised;n.$broadcast("cleanUp")}},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function w(){var l=c.getProfile(),f,b,k,n,y;if(l.isLoggedIn!==!1&&l.hasPackages!==!1&&this!==null&&typeof this!="undefined"){var t=l.userPackages,r=this.model.presets.packagePresets,w=100+r.length;for(f=r.length-1;f>=0;f--)typeof r[f].userPackageId!="undefined"&&r.splice(f,1);if(t.length>0){for(b={Height:0,Id:-10,Length:0,LinearUnit:"in",Name:"My Saved Boxes",SortOrder:-3,Weight:0,WeightUnit:"lbs",isEbike:0,Width:0},k=2,n=0,y=t.length;n<y;n++){var u=t[n].linearUnit,a=t[n].weightUnit,e=t[n].height,o=t[n].length,s=t[n].width,h=t[n].weight,d=t[n].hasBattery,v={CmHeight:u==="in"?i.inToCm(e):e,CmLength:u==="in"?i.inToCm(o):o,CmWidth:u==="in"?i.inToCm(s):s,Height:u==="cm"?i.cmToIn(e):e,Length:u==="cm"?i.cmToIn(o):o,Width:u==="cm"?i.cmToIn(s):s,KgWeight:a==="lb"?i.lbToKg(h):h,Weight:a==="kg"?i.kgToLb(h):h,LinearUnit:u,WeightUnit:a,Name:t[n].name,Value:t[n].value,InsideDescription:t[n].description,OutsideDescription:t[n].outsideDescription,HasBattery:d,CategoryCode:t[n].purposeCode,Worth:t[n].marketValue,SortOrder:-2,Id:w+n,userPackageId:t[n].userPackageId},p=tt(r,v);p===!1?r.push(v):r[p]=v}this.model.presets.packagePresets=angular.copy(r)}}}function at(){var n=l.model.presets.packagePresets;return a(n)?(w(),p(l.model.presets.packagePresets),!0):(o.getPackageOptionsPromise().then(function(n){r.removeError(t.AlertServerWarning);n.data!==undefined&&(l.model.presets.packagePresets=n.data,l.model.presets.packages=angular.copy(n.data),w(),p(l.model.presets.packagePresets))},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function vt(n){for(var i=[],t=0,r=n.length;t<r;t++)i.push({InsurancePricingId:n[t].entryId,Display:n[t].display,PackageValue:n[t].value,InsuranceCost:n[t].cost});return i.sort(function(n,t){return n===null||t===null||typeof n=="undefined"||typeof t=="undefined"?-1:n.PackageValue<t.PackageValue?-1:n.PackageValue>t.PackageValue?1:0}),i}function yt(){var n=l.model.presets.insurance;return a(n)?!0:(r.removeError(t.AlertServerWarning.Key),s.getDataList("insurance").then(function(n){n.data!==undefined&&(l.model.presets.insurance=vt(n.data))},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function pt(){var n=l.model.presets.pickupOptions;return a(n)?!0:(r.removeError(t.AlertServerWarning.Key),s.getDataList("pickup").then(function(n){n.data!==undefined&&(l.model.presets.pickupOptions=n.data.sort(v))},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function y(n){if(!n)return n;for(var t=0,i=n.length;t<i;t++)if(n[t].display==="Select...")return n;return n.sort(v)}function wt(){var n=y(l.model.presets.packageCategory);return a(n)?!0:(r.removeError(t.AlertServerWarning.Key),s.getDataList("package-category").then(function(n){n.data!==undefined&&(l.model.presets.packageCategory=y(n.data))},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function bt(){var n=y(l.model.presets.packagePurpose);return a(n)?!0:(r.removeError(t.AlertServerWarning.Key),s.getDataList("package-purpose").then(function(n){n.data!==undefined&&(l.model.presets.packagePurpose=y(n.data))},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function kt(){}function dt(n){for(var t=0,i=l.model.presets.modeOptions.length;t<i;t++)if(l.model.presets.modeOptions[t].display===n)return delete l.model.presets.modeOptions[t].$$hashKey,l.model.presets.modeOptions[t];return l.model.presets.modeOptions[0]}function gt(n){for(var i=l.model.presets.methodOptions,t=0,r=i.length;t<r;t++)if(i[t].display===n)return delete i[t].$$hashKey,i[t];return i[0]}function ni(n){for(var i=l.model.presets.pickupOptions,t=0,r=i.length;t<r;t++)if(i[t].display===n)return delete i[t].$$hashKey,i[t];return i[0]}function ti(){var i=l.model.presets.modeOptions,n,u;if(i&&i.length>1){for(n=0,u=l.model.presets.modeOptions.length;n<u;n++)l.model.presets.modeOptions[n].Mode=l.model.presets.modeOptions[n].value;return!0}return r.removeError(t.AlertServerWarning.Key),s.getDataList("shipmode").then(function(n){if(n.data!==undefined){l.model.presets.modeOptions=n.data.sort(v);for(var t=0,i=l.model.presets.modeOptions.length;t<i;t++)l.model.presets.modeOptions[t].Mode=l.model.presets.modeOptions[t].value}},function(n){r.addError(t.AlertServerWarning,n)}),!0}function ii(){var u=l.model.presets.methodOptions,i,f;if(u&&u.length>1){for(i=0,f=l.model.presets.methodOptions.length;i<f;i++)l.model.presets.methodOptions[i].Mode=l.model.presets.methodOptions[i].value;return n.$broadcast("methodOptionsLoaded"),!0}return r.removeError(t.AlertServerWarning.Key),s.getDataList("shipmethodoptions").then(function(t){if(t.data!==undefined){l.model.presets.methodOptions=t.data.sort(v);for(var i=0,r=l.model.presets.methodOptions.length;i<r;i++)l.model.presets.methodOptions[i].Mode=l.model.presets.methodOptions[i].value;n.$broadcast("methodOptionsLoaded")}},function(n){r.addError(t.AlertServerWarning,n)}),!0}function ri(n){for(var i=l.model.presets.insurance,t=0,r=i.length;t<r;t++)if(i[t].PackageValue===n)return i[t].InsuranceCost;return 0}function ui(n){for(var i=l.model.presets.countries,t=0,r=i.length;t<r;t++)if(i[t].Code===n)return i[t];return null}function fi(n){var i,t,r;for(n=n.toLowerCase(),i=l.model.presets.countries,t=0,r=i.length;t<r;t++)if(i[t].Name.toLowerCase()===n)return i[t].Code;return null}function ei(n){var t=l.model.presets.states,i,r;if(typeof t=="undefined"||t===null)return null;for(i=0,r=t.length;i<r;i++)if(t[i].stateprov===n||t[i].stateprovcode===n)return t[i];return null}function oi(n,t){var r=l.model.presets.states,f=l.model.presets.countries,i,u;if(!r||!f||!n||!t)return null;for(i=0,u=r.length;i<u;i++)if(r[i].country===n.Code&&(r[i].stateprov===t||r[i].stateprovcode===t))return r[i];return null}function d(n){for(var i=0,r=n.length;i<r;i++)t[n[i].Name]={Key:n[i].Key,Severity:n[i].Type,Dismissable:n[i].Dismissable,Expletive:n[i].Expletive,Message:n[i].Message,Page:n[i].Page}}function si(){var n=l.model.alerts;return a(n)?(d(n),!1):(h.getAllAlertsPromise().then(function(n){r.removeError(t.AlertServerWarning);n.data!==undefined&&(l.model.alerts=n.data,d(l.model.alerts))},function(n){r.addError(t.AlertServerWarning,n)}),!0)}function hi(n){for(var i=l.model.presets.packagePresets,t=0,r=i.length;t<r;t++)if(i[t].Name===n)return i[t];return null}var l=null,b={charities:[{CharityOrgId:0,CharityName:null,Description:null,Logo:null}],donationAmounts:[{CharityName:"All The Above",CharityOrgId:-1,Amount:1},{CharityName:"All The Above",CharityOrgId:-1,Amount:2},{CharityName:"All The Above",CharityOrgId:-1,Amount:3},{CharityName:"All The Above",CharityOrgId:-1,Amount:4},{CharityName:"None",CharityOrgId:0,Amount:"No Thank You"}],countries:globals.countries,insurance:[{Display:null,InsuranceCost:0,InsurancePricingId:0,PackageValue:0}],packageCategory:globals.optionsPackageCategory,pickupOptions:globals.pickupOptions,packagePurpose:globals.optionsPackagePurpose,packageWorth:[{display:"",value:0}],packagePresets:globals.packagePresets,packages:globals.packagePresets,passwordValidationOptions:globals.optionsPasswordValidation,packageNames:[""],numPackageOptions:["1 Box/Case","2 Boxes/Cases","3 Boxes/Cases","4 Boxes/Cases","5 Boxes/Cases","6 Boxes/Cases","7 Boxes/Cases","8 Boxes/Cases","9 Boxes/Cases","10 Boxes/Cases","11 Boxes/Cases","12 Boxes/Cases","13 Boxes/Cases","14 Boxes/Cases","15 Boxes/Cases","16 Boxes/Cases","17 Boxes/Cases","18 Boxes/Cases","19 Boxes/Cases","20 Boxes/Cases","21 Boxes/Cases","22 Boxes/Cases","23 Boxes/Cases","24 Boxes/Cases","25 Boxes/Cases"],expirationMonths:[{Number:1,Name:"January"},{Number:2,Name:"February"},{Number:3,Name:"March"},{Number:4,Name:"April"},{Number:5,Name:"May"},{Number:6,Name:"June"},{Number:7,Name:"July"},{Number:8,Name:"August"},{Number:9,Name:"September"},{Number:10,Name:"October"},{Number:11,Name:"November"},{Number:12,Name:"December"}],expirationYears:[],OptionshasBattery:globals.optionsBattery,fees:{pickup:5,residential:5},methodOptions:globals.optionsShipMethod,modeOptions:globals.optionsShipMode},rt=function(n,t){return n.SortOrder>t.SortOrder?1:t.SortOrder>n.SortOrder?-1:0},v=function(n,t){return n.value>t.value?1:t.value>n.value?-1:0};return l={model:{presets:b,alerts:{Id:0,Page:"",Name:"",Type:"",Message:"",StartTime:"",EndTime:"",Active:"",Dismissable:"",Key:""},charityRaised:0},loadCountryPresets:et,loadStatePresets:ot,loadCharityPresets:lt,loadPackagePresets:at,loadInsurancePricing:yt,loadPickupOptions:pt,loadPackageCategory:wt,loadPackagePurpose:bt,loadPackageWorth:kt,loadShipModeOptions:ti,loadShipMethodOptions:ii,loadPasswordValidationOptions:st,loadAlerts:si,loadBatteryOptions:ht,setExpirationYearOptions:ct,getPickupOptionByDisplay:ni,getModeOptionByDisplay:dt,getMethodSelectionByDisplay:gt,getInsuranceCost:ri,getPackageByName:hi,getCountryFromCode:ui,getCodeFromCountry:fi,getStateFromCode:ei,getStateFromCountryAndStateCode:oi,mergeUserPackages:w,preparePackageOptions:p,saveState:g,restoreState:nt},n.$on("SaveState",l.saveState),sessionStorage.formData&&l.restoreState(),l}]);angular.module("shipApp").filter("unsafe",["$sce",function(n){return function(t){return n.trustAsHtml(t)}}]).filter("cctype",function(){return function(n){switch(n){case"VI":return"Visa";case"CA":return"Master Card";case"AX":return"American Express";case"DS":return"Discover";case"PP":return"Paypal"}return""}}).filter("bikeShopDayOfWeekFormat",function(){return function(n){var t=new Array(7);return t[0]="Sun",t[1]="Mon",t[2]="Tues",t[3]="Wed",t[4]="Thu",t[5]="Fri",t[6]="Sat",t[n]}}).filter("bikeShopHoursFormat",function(){return function(n){var t="",i=new Date,r=i.getMonth()+1+"-"+i.getDate()+"-"+i.getFullYear(),u=moment(r+" "+n.opentime,"M-DD-YYYY h:mm:ss"),f=moment(r+" "+n.closetime,"M-DD-YYYY h:mm:ss");return n.status===1?t=u.format("h:mm A")+" - "+f.format("h:mm A"):t+=n.status===2?"By Appointment":"Closed",t}}).filter("tel",function(){return function(n){var t,r,u,i;if(!n)return"";if(t=n.toString().trim().replace(/^\+/,""),t.match(/[^0-9]/))return n;switch(t.length){case 10:r=1;u=t.slice(0,3);i=t.slice(3);break;case 11:r=t[0];u=t.slice(1,4);i=t.slice(4);break;case 12:r=t.slice(0,3);u=t.slice(3,5);i=t.slice(5);break;default:return n}return r==1&&(r=""),i=i.slice(0,3)+"-"+i.slice(3),(r+" ("+u+") "+i).trim()}});angular.module("shipApp").factory("shipDateFactory",["setting","serverValidationService",function(n,t){function f(n,t){var i=new Date(n);return i.setDate(i.getDate()+t),i}function r(n,t){for(var r=new Date(n),e=Math.abs(t),u,f=0,o=t<0?-1:1;f<e;)(r=new Date(r.setDate(r.getDate()+o)),i.isHoliday(r))||(u=r.getDay(),u!==0&&u!==6&&++f);return r}function u(){var n=null;return typeof t.model.nextAvailablePickupDate!="undefined"&&t.model.nextAvailablePickupDate!==null&&(n=new Date(t.model.nextAvailablePickupDate)),n===null&&(n=r(new Date,1)),n}function e(n){var c=$.datepicker.noWeekends(n),t,o,e,f,s,h,l,a;return c[0]?(o=new Date,e=new Date(o),e.setDate(o.getDate()-1),t=i.isHoliday(n),f="",t!==!1&&(f="holiday"),t||(s=u(),n<s&&n>e?(t=!1,f="nopickup"):n>=s&&(t=!1,f="pickup")),h=this.getAttribute("data-shipmethod"),t||h!=="2"||(l=r((new Date).setHours(0,0,0,0),2),n<l&&n>e&&(t="No Pickup",f="nopickup")),t||h!=="4"||(a=r((new Date).setHours(0,0,0,0),1),n<a&&n>e&&(t="No Ship",f="nopickup")),[!t,f,t!==!1?t:null]):[c[0],""]}function o(t){t==="Invalid date"&&(t=r(new Date,1));var i=n.MomentInputDateFormat;if(t!==null&&t!==undefined&&t!=="Invalid date"&&t.toString().indexOf("00:00:00")>-1)typeof t=="string"&&(t=t.replace("00:00:00","12:00:00")),i="YYYY-MM-DD";else return t;return new moment(t,i).format(n.MomentInputDateFormat)}function s(t){moment.tz.add("America/Los_Angeles|PST PDT|80 70|0101|1Lzm0 1zb0 Op0");var i=o(t),r=moment.tz((new Date).getTime(),"America/Los_Angeles").format(n.MomentInputDateFormat);return i===r}function h(){var n=new Date;return new Date(n.getFullYear(),n.getMonth(),n.getDate())}function c(n){var t=new Date(n);return["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()]+" "+t.getDate()+", "+t.getFullYear()}var i={bizDays:function(n,t){var e;n=new Date(n);t=new Date(t);var o=Math.abs(n-t),u=Math.floor(o/846e5),r=u%7,s=Math.floor(u/7),c=r,f=n.getDay(),h=t.getDay();return f==6?r-=2:f==0&&(r-=1),h==0&&(r-=1),e=i.holBetween(n,t),r-=e[0],s*5+r},getdayOffset:function(n,t){var r,u,i,f;if(t.length>3&&(n<t[3]||t[4]&&n>t[4]))return!1;for(f=t[1],t[0]=="last"?(r=t[2],u=-1):(u=t[0]-1,r=t[2]-1),i=new Date(n,r,1);i.getDay()!=f;)i.setDate(i.getDate()+1);return i.setDate(7*u+i.getDate()),[i.getMonth(),i.getDate()]},getHolidays:function(n){if(n=n||(new Date).getFullYear(),i.holidays["y_"+n])return i.holidays["y_"+n];var t=[["New Years Day",[1,1]],["Memorial Day",[5,25]],["Memorial Day",[5,26]],["Independence Day",[7,4]],["Independence Day Long Weekend",[7,6]],["Labor Day",[9,7]],["Thanksgiving",[11,26]],["Christmas Day",[12,25]]];return n<1900&&t.splice(4),n<1861&&t.splice(3),i.setHolArray(n,t)},holBetween:function(n,t){for(var u=[],i,r,f=0;t-n>0;)(n.setDate(n.getDate()+1),i=n.isHoliday(),i)&&(u.push(i),r=n.getDay(),r!=0&&r!=6&&++f);return[f,u]},holidays:{},setHolArray:function(n,t){for(var o=t.length,f=[],e,u,r=0;r<12;r++)f[r]=[];for(r=0;r<o;r++)(e=t[r][0],u=t[r][1],u)&&(u.length>=3?u=i.getdayOffset(n,u):u[0]-=1,f[u[0]][u[1]]=e);return f},isHoliday:function(n){var t=new Date(n),e=t.getFullYear(),f="y_"+e,r,u;return(i.holidays[f]||(i.holidays[f]=i.getHolidays(e)),r=i.holidays[f],u=n.getMonth(),t=n.getDate(),r[u]&&r[u][t])?r[u][t]:!1}};return{addDays:f,addShipDays:r,noWeekendsOrHolidays:e,getNextAvailablePickupDate:u,isShipDateToday:s,formatDate:c,today:h}}]);angular.module("shipApp").factory("helpersFactory",["$modal","$timeout","$location","$anchorScroll","setting","$cookies","shipDateFactory",function(n,t,i,r,u,f,e){function v(n){return isNaN(n)||n===0||n===null?0:n/o}function y(n){return isNaN(n)||n===0||n===null?0:n*o}function p(n){return isNaN(n)||n===0||n===null?0:n*s}function w(n){return isNaN(n)||n===0||n===null?0:n/s}function b(n){var u=n.$$protocol+"://"+n.$$host,t,i,r;return n.$$port!==""&&n.$$absUrl.indexOf(":"+n.$$port)>-1&&(u+=":"+n.$$port),t=n.$$absUrl.replace(u,""),i=t.indexOf("#"),i>-1&&(t=t.substring(0,i)),r=t.indexOf("?"),r>-1&&(t=t.substring(0,r)),t.trim()}function k(n,t){var i;if(typeof t=="undefined"||t===null)return!1;for(i=0;i<t.length;i++)if(angular.equals(t[i],n))return!0;return!1}function d(n){switch(n){case u.HasBatteryQuestion:return-1;case u.HasNoBatteryOption:return 0;case u.HasSmallBatteryOption:return 1;case u.HasLargeBatteryOption:return 2;case u.HasBatteryOnlyOption:return 3;default:return-2}}function g(n){switch(n){case-1:return u.HasBatteryQuestion;case 0:return u.HasNoBatteryOption;case 1:return u.HasSmallBatteryOption;case 2:return u.HasLargeBatteryOption;case 3:return u.HasBatteryOnlyOption;default:return u.HasBatteryQuestion}}function nt(n,t){return n.slice(0,t.length)===t}function tt(n){return n===null||typeof n=="undefined"||n===""?!0:!1}function it(n){if(typeof n=="undefined"||n===null||n.length<4)return"";var t=new RegExp("^4");return n.match(t)!=null?{type:"VI",name:"Visa"}:(t=new RegExp("^5[1-5]"),n.match(t)!=null)?{type:"CA",name:"MasterCard"}:(t=new RegExp("^3[47]"),n.match(t)!=null)?{type:"AX",name:"American Express"}:(t=new RegExp("^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)"),n.match(t)!=null)?{type:"DI",name:"Discover"}:""}function rt(){}function ut(n){var t=i.search()[n],r;return typeof t=="undefined"&&(r=f.get(n),typeof r!="undefined"&&(t=r)),t}function ft(n){n==="Invalid date"&&(n=e.addShipDays(new Date,1));var t;if(n!==null&&n!==undefined&&n!=="Invalid date"&&n.toString().indexOf("00:00:00")>-1)n=n.replace("00:00:00","12:00:00"),t="YYYY-MM-DD";else return n;return new moment(n,t).format(u.MomentInputDateFormat)}function et(n,t){return n==="Invalid date"||n===null||typeof n=="undefined"?null:new moment(n,"YYY-MM-DD").format(t)}function ot(n){var t=Date.parse(n+" 1, 2018");return isNaN(t)?-1:new Date(t).getMonth()+1}function st(n){return["January","February","March","April","May","June","July","August","September","October","November","December"][n-1]}function ht(n){var t,i;if(n===null||typeof n=="undefined")return"";for(t=n.toLowerCase().split(" "),i=0;i<t.length;i++)t[i]=t[i].charAt(0).toUpperCase()+t[i].substring(1);return t.join(" ")}function ct(n){return["BE","BG","CZ","DK","DE","EE","IE","EL","ES","FR","HR","IT","CY","LV","LT","LU","HU","MT","NL","AT","PL","PT","RO","SI","SK","FI","SE","UK","GB"].includes(n)}function lt(n,t){var i=["BE","BG","CZ","DK","DE","EE","IE","EL","ES","FR","HR","IT","CY","LV","LT","LU","HU","MT","NL","AT","PL","PT","RO","SI","SK","FI","SE","UK","GB"];return i.indexOf(n)>-1&&i.indexOf(t)>-1?!0:!1}function at(n,t){if(typeof n=="undefined"||n===null)return!1;for(var i=0,r=n.length;i<r;i++)if(n[i].address1===t.address1&&n[i].label===t.label)return!0;return!1}function vt(n){var t={};return n==="US"?(t.state="State",t.postalCode="Zip Code"):n==="CA"?(t.state="Province",t.postalCode="Postal Code"):n==="DE"||n==="FR"||n==="GB"?(t.state="Region",t.postalCode="Postal Code"):n==="AU"?(t.state="State/Territory",t.postalCode="Postcode"):(t.state="Region",t.postalCode="Postal Code"),t}function yt(n,t){if(typeof n=="undefined"||typeof t=="undefined")return!1;for(var i=0,r=n.length;i<r;i++)if(n[i].country===t)return!0;return!1}function pt(n){return n?typeof n!="string"?n:(n=n.replace(/[^\d.]/g,""),parseFloat(n)):""}function wt(n){return n?typeof n!="string"?n:(n=n.replace(/[^\d]/g,""),parseFloat(n)):""}function bt(n,t){var r,u,i,f,e;return!t||!n?n:(r=""+wt(n.phone),u=t.PhoneCountryCode,r.startsWith(u)?n.phone="+"+r:r.length>0&&(n.phone="+"+u+r),!n.website)?n:(i=n.website.split("."),f=i.length,f>2?(e=i.slice(1),n.websiteDisplay=e.join(".")):n.websiteDisplay=n.website,n.websiteDisplay=n.websiteDisplay.replace("http://","").replace("https://",""),i=n.websiteDisplay.split("?"),i.length>1&&(n.websiteDisplay=i[0]),n.websiteDisplay=n.websiteDisplay.replace(/\/$/,""),n)}function kt(){for(var t=1,n,r,i=1;i<l*100;i++)t=Math.round(t*100)/100,h[i]={cm:t,"in":Math.round(t*o*100)/100},t=t+.01;for(n=1,r=1;r<a*100;r++)n=Math.round(n*100)/100,c[r]={lb:n,kg:Math.round(n*s*100)/100},n=n+.01}var o=.3937007874,s=.453592333,h=[],c=[],l=280,a=150;return kt(),{formatShipLocation:bt,removeNonNumeric:pt,getHasBatteryCode:d,getHasBatteryString:g,getPageNameFromLocation:b,inToCm:v,cmToIn:y,lbToKg:p,kgToLb:w,containsObject:k,stringStartsWith:nt,isStringUndefinedOrEmpty:tt,getCCTypeFromNumber:it,scrollToTop:rt,getVariable:ut,getMonthNumberFromName:ot,getMonthNameFromNumber:st,getCleanMomentDate:ft,titleCase:ht,isCountryEu:ct,isIntraEu:lt,formatDate:et,addressInArray:at,getPlaceHoldersFromCountry:vt,countryHasStateOptions:yt}}]);angular.module("shipApp").service("countryService",["$http","errorService","setting",function(n,t,i){function r(){try{return n.get("/api/defaultship/countries")}catch(r){t.addError(i.AlertServerWarning,r)}return null}return{getCountryPromise:r}}]);angular.module("shipApp").service("stateService",["$http","errorService","setting",function(n,t,i){function r(){try{return n.get("/api/defaultship/stateprov")}catch(r){t.addError(i.AlertServerWarning,r)}return null}return{getStatePromise:r}}]);angular.module("shipApp").service("serverValidationService",["$http","$q","setting",function(n,t){function u(n){return n?(i.model.canSchedulePickup=n.canPickupNow,i.model.schedulePickupExpiration=n.expiration>0?(new Date).getTime()+n.expiration:(new Date).getTime()):(i.model.canSchedulePickup=!1,i.model.schedulePickupExpiration=(new Date).getTime()),i.model.canSchedulePickupChecked=(new Date).getTime(),null}function r(){n.get("/api/servervalidation/canschedulepickup").then(function(n){u(n.data)},function(){i.model.canSchedulePickup=!1})}function f(){n.get("/api/servervalidation/nextavailablepickupdate").then(function(n){i.model.nextAvailablePickupDate=n.data},function(){i.model.nextAvailablePickupDate=null})}function e(t){return n({method:"get",url:"/api/servervalidation/isEmailAvailable",params:{email:t}})}function o(){if(i.model.canSchedulePickupChecked===null)r();else{var n=(new Date).getTime()-i.model.canSchedulePickupChecked;n>3e5&&r()}return null}function s(t){return n({method:"get",url:"/api/servervalidation/getconvertedpostalcode",params:{postalCode:t}})}function h(t,i,r,u){return n({method:"get",url:"/api/servervalidation/ResolveLocation",params:{city:t,state:i,postalCode:r,countryCode:u}})}function c(t,i,r){return n({method:"post",url:"/api/servervalidation/CheckDoNotShipList",data:{emails:t,addresses:i,phones:r}})}function l(i){for(var f=[],r,o,u=0,e=i.length;u<e;u++){r=i[u];r.Stage=u;var s={company:r.fromCompany,firstName:r.fromFirstName,lastName:r.fromLastName,address1:r.fromStreetAddress,address2:r.fromAddress2,address3:r.fromAddress3,city:r.fromCity,state:r.fromState,postalCode:r.fromPostalCode,countryCode:r.fromCountryCode,passedAvs:!1,isTo:!1,stage:u},h={company:r.toCompany,firstName:r.toFirstName,lastName:r.toLastName,address1:r.toStreetAddress,address2:r.toAddress2,address3:r.toAddress3,city:r.toCity,state:r.toState,postalCode:r.toPostalCode,countryCode:r.toCountryCode,passedAvs:!1,isTo:!0,stage:u},c=n({method:"post",url:"/api/ServerValidation/AddressValidation",data:s});f.push(c);o=n({method:"post",url:"/api/ServerValidation/AddressValidation",data:h});f.push(o)}return t.all(f)}var i=null;return i={model:{canSchedulePickupChecked:null,canSchedulePickup:!1,schedulePickupExpiration:0,hasUpdatedKoreanPostalCode:!1,nextAvailabePickupDate:null},isEmailAvailable:e,checkCanSchedulePickup:o,getConvertedPostalCode:s,getNextAvailablePickupDate:f,getLocationResolution:h,checkDoNotShipList:c,getAddressValidation:l}}]);angular.module("shipApp").service("packageOptionService",["$http",function(n){function t(){return n.get("/api/defaultship/packagepresets")}return{getPackageOptionsPromise:t}}]);angular.module("shipApp").factory("validationFactory",["setting",function(){function n(n,t){for(var i=0,r=n.length;i<r;i++)if(n[i].Key===t.Key)return!0;return!1}function t(n){return n===null||n===undefined?!1:/^\d{10,}$/.test(n.replace(/[\s()+\-\.]|ext/gi,""))}function i(n){return new Date(n)!="Invalid Date"&&!isNaN(new Date(n))}function r(n){var t=(new Date).setHours(0,0,0,0);return t>n?!0:!1}function u(n,t){return n>t?!0:!1}function f(n){return typeof n=="undefined"||n===null||n===""?!0:!1}function e(t,i){n(t,i)===!1&&t.push(i)}function o(n){if(n===null||typeof n=="undefined"||n.length>128)return!1;return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(n)}function s(n,t){return n===null||t===null||n===undefined||t===undefined?!1:t===""?!1:n===t}function h(n){return n.cost===10}function c(n){return n.cost===20}function l(n){return n.cost===30}function a(n){return n.cost===40}function v(n){return n.cost===50}function y(n){return n.cost===60}function p(n,t,i){for(var u=i.length,r=0;r<u;r++)i[r].valid=!0;var f=n?n.length:0,e=n===t,o=/[A-Z]/.test(n),s=/[a-z]/.test(n),p=/\d/.test(n),w=/[^a-z0-9\s]/ig.test(n);for(f<6&&(i.find(h).valid=!1),e||(i.find(c).valid=!1),o||(i.find(l).valid=!1),s||(i.find(y).valid=!1),p||(i.find(a).valid=!1),w||(i.find(v).valid=!1),r=0;r<u;r++)if(i[r].valid===!1)return!1;return!0}function w(n){return n?isNaN(parseInt(n))?!1:!0:!1}function b(n,t){if(!n||isNaN(n)||n<1)return 0;var i=108;return(t.toLowerCase()==="cm"&&(i=274),t.toLowerCase()==="kg"&&(i=68),t.toLowerCase()==="lb"&&(i=150),n>i)?3:n>i-10?2:1}function k(n,t,i){var r=[];return r.push(Math.ceil(n)),r.push(Math.ceil(t)),r.push(Math.ceil(i)),r.sort(function(n,t){return t-n}),r[0]+r[1]*2+r[2]*2}function d(n,t,i,r){i===0&&(n[t+"Invalid"]=!0);i===3&&(n[t+"Invalid"]=!0,n[t+"OverMax"]=!0);i===2&&(n[t+"NearMax"]=r)}return{isPhone:t,isDate:i,isEmpty:f,pushError:e,isValidEmail:o,emailFieldsMatch:s,dateIsPassed:r,firstDateIsAfterSecond:u,isPasswordValid:p,validateDimension:b,getDimensionalWeight:k,setDimensionFlags:d,isInteger:w}}]);angular.module("shipApp").factory("preloaderFactory",["$q","$rootScope",function(n,t){function i(t){this.imageLocations=t;this.imageCount=this.imageLocations.length;this.loadCount=0;this.errorCount=0;this.states={PENDING:1,LOADING:2,RESOLVED:3,REJECTED:4};this.state=this.states.PENDING;this.deferred=n.defer();this.promise=this.deferred.promise}return i.preloadImages=function(n){var t=new i(n);return t.load()},i.prototype={constructor:i,isInitiated:function(){return this.state!==this.states.PENDING},isRejected:function(){return this.state===this.states.REJECTED},isResolved:function(){return this.state===this.states.RESOLVED},load:function(){if(this.isInitiated())return this.promise;this.state=this.states.LOADING;for(var n=0;n<this.imageCount;n++)this.loadImageLocation(this.imageLocations[n]);return this.promise},handleImageError:function(n){(this.errorCount++,this.isRejected())||(this.state=this.states.REJECTED,this.deferred.reject(n))},handleImageLoad:function(n){(this.loadCount++,this.isRejected())||(this.deferred.notify({percent:Math.ceil(this.loadCount/this.imageCount*100),imageLocation:n}),this.loadCount===this.imageCount&&(this.state=this.states.RESOLVED,this.deferred.resolve(this.imageLocations)))},loadImageLocation:function(n){var i=this,r=$(new Image).load(function(n){t.$apply(function(){i.handleImageLoad(n.target.src);i=r=n=null})}).error(function(n){t.$apply(function(){i.handleImageError(n.target.src);i=r=n=null})}).prop("src",n)}},i}]);angular.module("shipApp").factory("spinnerFactory",["$rootScope","$interval","setting","preloaderFactory",function(n,t){function r(){n.throbberStep++;n.throbberStep===3&&(n.throbberStep=0);for(var t=0;t<3;t++)n.throbberStep===t?n.throbberFrames[t].show():n.throbberFrames[t].hide()}function u(){i=!0;n.throbberElement.show();n.spinnerInterval=t(function(){r()},90)}function f(){i=!1;n.throbberElement.hide();t.cancel(n.spinnerInterval)}function e(){return i}function o(){n.throbberElement=$("#throbber");n.throbberElement.center();n.throbberStep=1;n.throbberFrames=[$("#throbberImage0"),$("#throbberImage1"),$("#throbberImage2")]}var i=!1;return{startSpinner:u,stopSpinner:f,setupSpinner:o,isSpinning:e}}]);angular.module("shipApp").directive("goDaddySeal",function(){return{restrict:"E",link:function(n,t){var i=angular.element("#goDaddySeal").html();return i===null||typeof i=="undefined"?!1:(i=i.substring(147),t.html(i),i)}}}).directive("siteAlert",["$timeout",function(n){return{restrict:"A",link:function(t,i){n(function(){var n=angular.element("#siteAlert"),t=i.html();n.html(t);n.slideDown("slow")},1e3)}}}]).directive("invalidFocus",["$timeout",function(n){return{restrict:"A",link:function(t,i){t.$on("invalidFocus",function(){n(function(){var n=i[0].querySelector(".bfFormErrorCol, .input-error"),r,u,t;if(n)if(n.hasChildNodes()===!0){if(r=n.querySelector("input"),r){r.focus();return}if(u=n.querySelector("textarea"),u){u.focus();return}t=n.querySelector("select");t&&t.focus();t=n.querySelector(".bfFormInputControl");t&&t.focus()}else n.focus()},100)})}}}]).directive("progressbar",function(){return{restrict:"A",scope:{total:"=",current:"="},link:function(n,t){n.$watch("current",function(){t.css("width",n.current/n.total*100+"%")});n.$watch("total",function(){t.css("width",n.current/n.total*100+"%")})}}}).directive("ngChangeOnBlur",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i){if(i.type!=="radio"&&i.type!=="checkbox"){var u=i.ngChangeOnBlur,r=null;t.bind("focus",function(){n.$apply(function(){r=t.val()})});t.bind("blur",function(){n.$apply(function(){var i=t.val();i!==r&&n.$eval(u)})})}}}}).directive("validateEmail",["validationFactory",function(n){return{require:"ngModel",link:function(t,i,r,u){u.$validators.validEmail=function(t,i){return n.isValidEmail(i)?!0:!1}}}}]).directive("complexPassword",function(){return{require:"ngModel",link:function(n,t,i,r){r.$parsers.unshift(function(n){var t=/[A-Z]/.test(n),i=/[a-z]/.test(n),u=/\d/.test(n),f=/[^a-z0-9\s]/ig.test(n),e=t+i+u+f;return n.length>=6&&e>=4?(r.$setValidity("complexity",!0),n):(r.$setValidity("complexity",!1),undefined)})}}}).directive("compareTo",function(){return{require:"ngModel",scope:{otherModelValue:"=compareTo"},link:function(n,t,i,r){r.$validators.compareTo=function(t){return t===n.otherModelValue};n.$watch("otherModelValue",function(){r.$validate()})}}});angular.module("shipApp").factory("formOptionsFactory",["$rootScope",function(n){function i(n){for(var r=t.model.InsurancePricing,i=0,u=r.length;i<u;i++)if(r[i].PackageValue===n)return r[i].InsuranceCost;return 0}var t={getInsuranceCost:i,model:{PackageOptions:["1 Box or Case","2 Boxes or Cases","3 Boxes or Cases","4 Boxes or Cases","5 Boxes or Cases","6 Boxes or Cases","7 Boxes or Cases","8 Boxes or Cases","9 Boxes or Cases","10 Boxes or Cases","11 Boxes or Cases","12 Boxes or Cases","13 Boxes or Cases","14 Boxes or Cases","15 Boxes or Cases","16 Boxes or Cases","17 Boxes or Cases","18 Boxes or Cases","19 Boxes or Cases","20 Boxes or Cases","21 Boxes or Cases","22 Boxes or Cases","23 Boxes or Cases","24 Boxes or Cases","25 Boxes or Cases"],PackagePresets:[],PackageNames:[],Countries:[],InsurancePricing:[]},SaveState:function(){typeof t.model!="undefined"&&(sessionStorage.formOptionsFactory=angular.toJson(t.model))},RestoreState:function(){typeof sessionStorage.formOptionsFactory!="undefined"&&(t.model=angular.fromJson(sessionStorage.formOptionsFactory))}};return n.$on("SaveState",t.SaveState),sessionStorage.formOptionsFactory&&t.RestoreState(),t}]);angular.module("shipApp").service("dataListService",["$http","setting",function(n){function t(t){return n({method:"get",url:"/api/defaultship/getlist",params:{tag:t}})}return{getDataList:t}}]);angular.module("shipApp").service("charityOrgService",["$http","errorService","setting",function(n,t,i){function r(){try{return n.get("/api/charityorg/charities")}catch(r){t.addError(i.AlertServerWarning,r)}return null}function u(){return!0}return{getCharityOrgPromise:r,testExists:u}}]);angular.module("shipApp").service("purchaseService",["$http","$q","$rootScope","spinnerFactory","errorService","setting",function(n,t,i,r,u,f,e,o){function s(t){try{return n({method:"post",url:"/api/Purchase/saveOrder",data:t})}catch(i){e.addError(o.AlertServerWarning,i)}return null}function h(t,i){try{return n({method:"get",url:"/api/Purchase/payOrder",params:{orderCode:t,orderId:i}})}catch(r){e.addError(o.AlertServerWarning,r)}return null}function c(t){try{return n({method:"get",url:"/api/Purchase/sendConfirmationEmail",params:{orderCode:t}})}catch(i){e.addError(o.AlertServerWarning,i)}return null}function l(t){try{return n({method:"get",url:"/api/Purchase/decrementCoupon",params:{orderCode:t}})}catch(i){e.addError(o.AlertServerWarning,i)}return null}function a(t){try{return n({method:"get",url:"/api/Purchase/registerCouponUse",params:{orderCode:t}})}catch(i){e.addError(o.AlertServerWarning,i)}return null}return{getSaveOrder:s,getPurchaseOrder:h,sendConfirmationEmail:c,decrementCoupon:l,registerCouponUse:a}}]);angular.module("shipApp").service("insurancePricingService",["$http","errorService","setting",function(n,t,i){function r(){try{return n.get("/api/defaultship/insurancepricing")}catch(r){t.addError(i.AlertServerWarning,r)}return null}return{getInsurancePricingPromise:r}}]);angular.module("shipApp").factory("trayFactory",["setting",function(){function n(n){n&&(n.stopPropagation(),n.preventDefault())}function t(t,i,r,u,f){typeof f=="undefined"&&(f=!1);f||u.closeAllTrays(r,!1);u.trayFlags[t]=i;n(r)}function i(t,i,r,u){typeof u=="undefined"&&(u=!1);var f=r.trayFlags[t];u||r.closeAllTrays(i,!1);r.trayFlags[t]=!f;n(i)}function r(n,t,i){for(var r in t.trayFlags)t.trayFlags.hasOwnProperty(r)&&(t.trayFlags[r]=!1);i&&!t.$$phase&&t.$digest()}return{stopClick:n,setTrayFlag:t,toggleTrayFlag:i,closeAllTrays:r}}]);angular.module("shipApp").factory("focusFactory",["setting",function(){function n(n){n&&(n.stopPropagation(),n.preventDefault())}function t(t,i,r,u){u.clearFocus(r,!1);u.focusFlags[t]=i;n(r)}function i(t,i,r){var u=r.focusFlags[t];r.clearFocus(i,!1);r.focusFlags[t]=!u;n(i)}function r(n,t,i){for(var r in t.focusFlags)t.focusFlags.hasOwnProperty(r)&&(t.focusFlags[r]=!1);i&&t.$digest()}return{stopClick:n,setFocusFlag:t,toggleFocusFlag:i,clearFocus:r}}]);angular.module("shipApp").service("timeZoneService",["$http","setting",function(n){function t(t){var i=(new Date).getTime(),r="?location="+t.lat+","+t.lng+"&timestamp="+i+"&key=AIzaSyBCDiyRMk_DOG-y0Dz0XGbSMGDcNd5Znaw";try{return n.get("https://maps.googleapis.com/maps/api/timezone/json"+r)}catch(u){console.log(u)}return null}return{getTimeZonePromise:t}}]);angular.module("shipApp").service("savedSearchService",["$http","savedSearchFactory","$rootScope",function(n,t,i){function f(n){var t=n.Stages.length-1;return{savedSearchCode:n.savedSearchCode||"",searchDate:new Date,fromPostalCode:n.Stages[0].fromPostalCode,fromCity:n.Stages[0].fromCity,fromState:n.Stages[0].fromState,fromCountry:n.Stages[0].fromCountryCode,toPostalCode:n.Stages[t].toPostalCode,toCity:n.Stages[t].toCity,toState:n.Stages[t].toState,toCountry:n.Stages[t].toCountryCode,autoRestore:n.autoRestore===!0,serializedSearchData:JSON.stringify(n)}}function r(n){t.addSearch(n)}function e(i,f){var e=t.getMatchingSavedSearchCode(i);e!==""&&(i.savedSearchCode=e,u(i));i.searchDate=new Date;n({method:"post",url:"/api/SavedSearch/save",data:i}).then(function(n){i.savedSearchCode=n.data;f.savedSearchCode=n.data;r(i);u(i)},function(){})}function u(t){t.searchDate=new Date;n({method:"post",url:"/api/SavedSearch/update",data:t}).then(function(n){n.data&&r(t)},function(){})}function o(t,i){n({method:"get",url:"/api/SavedSearch/assign",params:{savedSearchCode:t,email:i}}).then(function(){},function(){})}function s(n){return n.fromPostalCode&&n.fromCountry&&n.toPostalCode&&n.toCountry?!0:!1}function h(n){var t=f(n);s(t)&&(t.savedSearchCode?u(t):e(t,n))}function c(){t.parseSavedSearches()}function l(u,f){n({url:"/api/SavedSearch/getforuser",method:"GET",params:{skip:u,take:f}}).then(function(n){var o=n.data.TotalCount,f,u,e;for(t.model.totalCount=o,f=n.data.SavedSearches||[],u=0,e=f.length;u<e;u++)r(f[u]);i.$broadcast("savedSearchesLoaded")},function(){})}function a(i){n({url:"/api/SavedSearch/clear",method:"GET",params:{savedSearchCode:i.savedSearchCode}}).then(function(n){n.data===!0&&t.removeSearch(i)},function(){})}function v(){n({url:"/api/SavedSearch/clearAll",method:"GET"}).then(function(n){n.data===!0&&t.clearSearches()},function(){})}function y(t){n({url:"/api/SavedSearch/GetByCode",method:"GET",params:{savedSearchCode:t}}).then(function(n){n.data&&(n.data.searchDate=Date.now(),r(n.data),i.$broadcast("savedSearchLoaded",n.data))},function(){})}function p(n){for(var i=0,r=t.model.searches.length;i<r;i++)o(t.model.searches[i].searchData.savedSearchCode,n)}return{saveSearch:h,parseSavedSearches:c,loadUserSearches:l,getSearchByCode:y,assignSearchesToProfile:p,clear:a,clearAll:v}}]);angular.module("shipApp").factory("savedSearchFactory",["$rootScope","$timeout","$window","$filter","setting","helpersFactory","validationFactory","formDataFactory",function(n,t,i,r,u,f,e,o){function a(n){var t=JSON.parse(n),u=t.Selection,i,f,r,e;for(Array.isArray(u)||(t.Selection=[u]),t.Mode=t.Mode,i=0,f=t.Stages.length;i<f;i++)t.Stages[i].PickupOption=o.getPickupOptionByDisplay(t.Stages[i].PickupOption.display),t.Stages[i].MethodSelection=o.getMethodSelectionByDisplay(t.Stages[i].MethodSelection.display),t.Stages[i].date="";for(r=0,e=t.Packages.length;r<e;r++)t.Packages[r].HasBattery||(t.Packages[r].HasBattery=o.model.presets.hasBatteryOptions[0]);return t}function k(n){var i=c(n),t,r;if(i>-1)return s.model.searches[i].savedSearchCode;for(t=0,r=s.model.searches.length;t<r;t++)if(s.model.searches[t].serializedSearchData===n.serializedSearchData)return s.model.searches[t].savedSearchCode;return""}function l(n,t){var r,u,i;if(t=typeof t!="undefined"?t:0,r=c(n,t),r>-1)return r;if(u=s.model.searches.length,t>u)return-1;for(i=t;i<u;i++)if(s.model.searches[i].serializedSearchData===n.serializedSearchData)return i;return-1}function c(n,t){var r="",u,i;if(n&&typeof n=="object"?r=n.savedSearchCode:typeof n=="string"&&(r=n),t=typeof t!="undefined"?t:0,u=s.model.searches.length,t>u)return-1;for(i=t;i<u;i++)if(s.model.searches[i].savedSearchCode===r)return i;return-1}function d(){s.model.searches=[]}function g(n){if(n){var t=c(n);t===-1&&(t=l(n));t===-1&&n.fromPostalCode!==""&&n.toPostalCode!==""?s.model.searches.push(angular.copy(n)):s.model.searches[t]=angular.copy(n);w()}}function nt(n){var t=c(n.savedSearchCode);t!==-1&&s.model.searches.splice(t,1)}function tt(n){try{return{value:a(n),valid:!0}}catch(t){return{value:null,valid:!1}}}function it(n){var t=n.Stages[0].Packages,r,u,i,e;if(typeof t=="undefined"||t===null)return{numPackages:0,totalWeight:0,weightUnit:"lbs"};for(r=t[0].WeightUnit,u=0,i=0,e=t.length;i<e;i++)u+=t[i].WeightUnit===r?t[i].Weight:r==="lbs"?f.kgToLb(t[i].Weight):f.lbToKg(t[i].Weight);return{numPackages:t.length,totalWeight:u,weightUnit:r}}function v(n){return(n.fromStreetAddress+" "+n.fromCity+" "+n.fromState+", "+n.fromPostalCode+" "+n.fromCountryCode).trim()}function y(n){return(n.toStreetAddress+" "+n.toCity+" "+n.toState+", "+n.toPostalCode+" "+n.toCountryCode).trim()}function rt(n){var t=n.Stages[0],i;return n.Mode===3?(i=n.Stages[n.Stages.length-1],{from:v(t),to:y(i)}):{from:v(t),to:y(t)}}function p(n,t){return{type:n==="S"?"Ship On ":"Deliver By ",date:f.getCleanMomentDate(t,"MM/DD/YYYY")}}function ut(n){var i=[],t=n.Selection[0];return t&&(t.Ship&&i.push(p("S",t.Ship)),t.Deliver&&i.push(p("D",t.Deliver))),i}function ft(n){switch(n){case 1:return"One-Way";case 2:return"Round-Trip";case 3:return"Multi-City";default:return"One-Way"}}function et(n,t){for(var i=0,r=n.length;i<r;i++)if(n[i]===t)return!0;return!1}function ot(n){var i=n.Selection,r=[],t,u;if(!i)return r;for(t=0,u=i.length;t<u;t++)i[t]&&(et(r,i[t].ShortName)||r.push(i[t].ShortName));return r}function st(n){return{packages:it(n),shipment:rt(n),dates:ut(n),trip:ft(n.Mode),selections:ot(n)}}function ht(){for(var o=[],t,e,i,f,r,u,n=s.model.searches.length-1;n>=0;n--)typeof s.model.searches[n].serializedSearchData!="undefined"&&(t=JSON.parse(s.model.searches[n].serializedSearchData),typeof t.Selection!="undefined"&&(t.Selection===null||t.Selection[0]===null)&&delete t.Selection,e=JSON.stringify(t),s.model.searches[n].serializedSearchData=e,o.push(s.model.searches[n]));for(i=s.model.searches.length-1;i>-1;i--)(f=s.model.searches[i],r=l(f,0),r!==-1)&&(u=l(f,r+1),u>-1&&r!==u&&s.model.searches.splice(u,1))}function w(){var t,u,n,i;for(ht(),t=0,u=s.model.searches.length;t<u;t++)(n=s.model.searches[t],typeof n.serializedSearchData!="undefined"&&n.serializedSearchData!=="")&&(i=tt(n.serializedSearchData),i.valid!==!1)&&(n.searchData=i.value,n.searchData.savedSearchCode=n.savedSearchCode,n.searchDate=new Date(n.searchDate),n.aggregates=st(n.searchData));typeof s.model.searches.length!="undefined"&&r("orderBy")(s.model.searches,["autoRestore","searchDate"])}function b(n,t){for(var i,s=!0,f,r=0,u=n.Stages.length;r<u;r++)if((i=n.Stages[r],e.isEmpty(i.fromPostalCode)||e.isEmpty(i.fromCountryCode)||e.isEmpty(i.toPostalCode)||e.isEmpty(i.toCountryCode))||((i.FromCountry&&i.fromCountry.Code!=="US"||i.toCountry&&i.toCountry.Code!=="US")&&(s=!1),i.Packages.length<1||i.Packages.length>25))return!1;if(!s&&((n.Customs===null||typeof n.Customs=="undefined")&&(n.Customs={Category:o.model.presets.packageCategory[0],CategoryInvalid:!0,Purpose:o.model.presets.packagePurpose[0],PurposeInvalid:!0,Worth:null,WorthInvalid:!0}),f=n.Customs,f.CategoryInvalid||f.PurposeInvalid||f.WorthInvalid))return n.Customs.Category=o.model.presets.packageCategory[0],n.Customs.Purpose=o.model.presets.packagePurpose[0],n.Customs.Worth=null,!1;if(t===1)return!0;if(!n.Stages[0].passedAvs)return!1;for(r=0,u=n.Stages.length;r<u;r++)if((i=n.Stages[r],e.isEmpty(i.fromStreetAddress)||e.isEmpty(i.fromCity)||e.isEmpty(i.fromState)||e.isEmpty(i.fromFirstName)||e.isEmpty(i.fromLastName)||e.isEmpty(i.fromPhone)||e.isEmpty(i.toStreetAddress)||e.isEmpty(i.toCity)||e.isEmpty(i.toState)||e.isEmpty(i.toFirstName)||e.isEmpty(i.toLastName)||e.isEmpty(i.toPhone)||e.isEmpty(i.isPickup))||i.fromStreetAddressInvalid===!0||i.fromCityInvalid===!0||i.fromStateInvalid===!0||i.fromPostalCodeInvalid===!0||i.fromCountryCodeInvalid===!0||i.toStreetAddressInvalid===!0||i.toCityInvalid===!0||i.toStateInvalid===!0||i.toPostalCodeInvalid===!0||i.toCountryCodeInvalid===!0||i.fromPhoneInvalid===!0||i.toPhoneInvalid===!0||i.isPickupInvalid===!0||!e.isDate(i.date)||e.dateIsPassed(i.date)||n.Mode===2&&r===0&&(!e.isDate(i.roundtripdate)||e.dateIsPassed(i.roundtripdate)))return!1;return!0}function ct(n){return n.Mode<1||n.Mode>3?!1:b(n,1)?!0:!1}function lt(n){return n?e.isEmpty(n.Name)?!1:e.isEmpty(n.ShortName)?!1:e.isEmpty(n.TransitDays)?!1:e.isEmpty(n.Ship)?!1:e.isEmpty(n.Deliver)?!1:e.isEmpty(n.Rate)||n.Rate===0?!1:e.isEmpty(n.Stage)?!1:e.isEmpty(n.Selected)||n.Selected===!1?!1:!0:!1}function at(n){for(var t=0,i=n.Selection.length;t<i;t++)if(!lt(n.Selection[t]))return!1;return!0}function vt(n){for(var t=0,i=n.Stages.length;t<i;t++)if(!e.isDate(n.Stages[t].date)||e.dateIsPassed(n.Stages[t].date))return!1;return!0}function yt(n){return!n.Selection||!n.Stages?!1:n.Stages.length!==n.Selection.length?!1:!at(n)||!vt(n)?!1:!0}function pt(n){return b(n,3)?!0:!1}function wt(n){return bt(n)?!0:!1}function bt(n){for(var i,u,t=0,r=n.Stages.length;t<r;t++)for(i=0,u=n.Stages[t].PackageDescription.length;i<u;i++)if(n.Packages.length!==n.Stages[t].PackageDescription.length||e.isEmpty(n.Stages[t].PackageDescription[i].Value)||e.isEmpty(n.Stages[t].PackageDescription[i].InsideDescription)||e.isEmpty(n.Stages[t].PackageDescription[i].OutsideDescription)||e.isEmpty(n.Stages[t].PackageDescription[i].InsuranceCost)||n.Stages[t].PackageDescription[i].OutsideDescriptionInvalid===!0||n.Stages[t].PackageDescription[i].InsideDescriptionInvalid===!0)return!1;return!0}function kt(n){var t=ct(n),i=yt(n),r=pt(n),u=wt(n);return i&&t?"addresses":t?"results":"search"}function dt(n){for(var t=0,i=s.model.searches.length;t<i;t++)if(s.model.searches[t].savedSearchCode===n)return s.model.searches[t];return!1}function gt(n){return a(n)}function ni(r){var u="/ship";return r===null||typeof r=="undefined"||r.searchData===null||typeof r.searchData=="undefined"?!1:(r.searchData.page&&(u=r.searchData.page),n.$broadcast("SaveState"),t(function(){i.location.href=u+"?s="+r.savedSearchCode},250),!0)}var s=null,h={searches:[],totalCount:0};return s={model:angular.copy(h),clearSearches:d,addSearch:g,parseSavedSearches:w,whichTabIsThisSearchAt:kt,getSearchFromCode:dt,removeSearch:nt,parseSerializedSearchData:gt,switchToSavedSearch:ni,getMatchingSavedSearchCode:k,SaveState:function(){sessionStorage.savedSearchFactory=angular.toJson(s.model)},RestoreState:function(){s.model=angular.fromJson(sessionStorage.savedSearchFactory);s.model||(s.model=angular.copy(h));sessionStorage.savedSearchFactory=null},SaveAutoRestoreState:function(){for(var t={},n=0,i=s.model.searches.length;n<i;n++)s.model.searches[n].autoRestore===!0&&(t=s.model.searches[n]);localStorage.autoRestoreSearch=angular.toJson(t)},AutoRestoreState:function(){s.model||(s.model=angular.copy(h));var n=angular.fromJson(localStorage.autoRestoreSearch);s.model.searches[0]=n;localStorage.autoRestoreSearch=null;s.switchToSavedSearch(n)},ClearState:function(){s.model=angular.copy(h);s.SaveState()}},n.$on("SaveState",s.SaveState),n.$on("ClearState",s.ClearState),sessionStorage.savedSearchFactory&&s.RestoreState(),n.$on("SaveAutoRestoreState",s.SaveAutoRestoreState),typeof localStorage.autoRestoreSearch!="undefined"&&localStorage.autoRestoreSearch!==null&&localStorage.autoRestoreSearch!=="null"&&s.AutoRestoreState(),s}]);angular.module("shipApp").service("postalCodeService",["$http","errorService","setting",function(n,t,i){function r(t,i){return n.get("http://api.zippopotam.us/"+t+"/"+i)}function u(t,i,r){return n.get("http://api.zippopotam.us/"+t+"/"+i+"/"+r).then(e,f)}function f(n){return t.addError(i.AlertPostalCodeLookup,n),null}function e(n){if(n.status===200)return t.removeError(i.AlertPostalCodeLookup),n.data;t.addError(i.AlertPostalCodeLookup,null)}return{getPostalDetails:r,findPostalCodes:u}}]);angular.module("shipApp").service("shippingService",["$http","$q","$rootScope","shippingSearchFactory","shippingResultFactory","spinnerFactory","errorService","helpersFactory","accordionFactory","setting",function(n,t,i,r,u,f,e,o,s,h){function y(n){var f=n[0].data,l=f.length,i=u.model,t,o,c,s,a;for(i.Results=new Array(l),i.moreOptionsWithLaterDeliveryDate=!1,h.PickupFee=f[0].PickupFee,h.HazmatFee=f[0].HazmatFee,h.ResidentialFee=f[0].ResidentialFee,t=0;t<l;t++)if(r.model.Stages!==null&&typeof r.model.Stages!="undefined"&&typeof r.model.Stages[t]!="undefined"&&(r.model.Stages[t].needsRequote=!1),o=f[t],o.Rates){for(i.moreOptionsWithLaterDeliveryDate|=o.MoreOptionsWithLaterDeliveryDate,i.Results[t]=[],c=o.Rates,s=0,a=c.length;s<a;s++)c[s].Stage=t,i.Results[t].push(c[s]);i.Results[t][0].Selected=!0}else e.addError(h.AlertFedExWarning,o)}function p(n){var r,t,i;c.searchFailed=!0;r=n.data;t=n.statusText;t.indexOf("stage:")===0&&(i=t.split(":"),i.length===2&&(c.errorStage=i[1]));switch(r){case"No Results":o.containsObject("CA",l)?e.addError(h.AlertFedExCanadaNoResults,n):e.addError(h.AlertFedExNoResults,n);break;case"Timeout":e.addError(h.AlertFedExTimeout,n);break;case"Failed":e.addError(h.AlertFedExFailed,n);break;default:e.addError(h.AlertFedExFailed,n)}return null}function w(n){y(n)}function b(){var t,n,u;f.stopSpinner();c.searchFailed===!1?(i.handledNewResults=!1,i.$broadcast("newResults")):c.returnToSearchPageOnError&&(e.removeMessage(h.LocationChangedRequote.Key),t=r.model.Stages.length,c.errorStage!==null&&typeof c.errorStage!="undefined"&&c.errorStage>=0&&c.errorStage<t&&(n=c.errorStage,u=r.model.Stages[n],r.model.Stages[n].fromLocationChanged===!0&&(r.model.Stages[n].fromFullAddressInvalid=!0,r.model.Stages[n].fromFullAddressValid=!1),r.model.Stages[n].toLocationChanged===!0&&(r.model.Stages[n].toFullAddressInvalid=!0,r.model.Stages[n].toFullAddressValid=!1),r.SaveState()),s.openTab("search"));c.returnToSearchPageOnError=!1}function a(n){var i={},t,u,r,f;for(i.Stages=[],i.Packages=[],i.shipType=n.Mode,i.savedSearchCode=n.savedSearchCode,l=[],t=0,u=n.Stages.length;t<u;t++)i.Stages.push({fromCompanyName:n.Stages[t].fromCompany,fromCity:n.Stages[t].fromCity,fromState:n.Stages[t].fromState,fromPostalCode:n.Stages[t].fromPostalCode,fromCountryCode:n.Stages[t].fromCountryCode,fromAddress1:n.Stages[t].fromStreetAddress,fromAddress2:n.Stages[t].fromAddress2,fromLatitude:n.Stages[t].fromLocation.lat,fromLongitude:n.Stages[t].fromLocation.lng,userFromAddress:n.Stages[t].fromUserEntered,resolvedFromAddress:n.Stages[t].fromDisplayAddress,toCompanyName:n.Stages[t].toCompany,toCity:n.Stages[t].toCity,toState:n.Stages[t].toState,toPostalCode:n.Stages[t].toPostalCode,toCountryCode:n.Stages[t].toCountryCode,toAddress1:n.Stages[t].toStreetAddress,toAddress2:n.Stages[t].toAddress2,toLatitude:n.Stages[t].toLocation.lat,toLongitude:n.Stages[t].toLocation.lng,userToAddress:n.Stages[t].toUserEntered,resolvedToAddress:n.Stages[t].toDisplayAddress,ActionDate:n.Stages[t].date?n.Stages[t].date:new Date,DateType:n.Stages[t].dateType,stage:n.Stages[t].stage,Packages:n.Packages}),o.containsObject(n.Stages[t].fromCountryCode,l)||l.push(n.Stages[t].fromCountryCode),o.containsObject(n.Stages[t].toCountryCode,l)||l.push(n.Stages[t].toCountryCode);for(r=0,f=n.Packages.length;r<f;r++)n.Packages[r].Worth||(n.Packages[r].Worth=250);return i.Packages=n.Packages,i.Customs=n.Customs,i.NumPackages=n.Packages.length,i}function k(i){var r;i=a(i);r=t.defer();try{return n({method:"post",url:"/api/FedEx/search",data:i})}catch(u){e.addError(h.AlertServerWarning,u)}return null}function v(i){var r;i=a(i);r=t.defer();try{return n({method:"post",url:"/api/Ups/search",data:i})}catch(u){e.addError(h.AlertServerWarning,u)}return null}function d(n){var i;c.searchFailed=!1;c.searchFinished=!1;c.returnToSearchPageOnError=n===!0;i=r.model;f.setupSpinner();f.startSpinner();e.removeError(h.AlertFedExFailed);var u=i.Packages,s=i.Customs,o=[],l={Mode:i.Mode,Stages:i.Stages,Packages:u,Customs:s,NumPackages:u.length,savedSearchCode:i.savedSearchCode};o.push(v(l));t.all(o).then(w,p).then(b)}var l=[],c=null;return c={doSearch:d,getFedExSearch:k,getUpsSearch:v,searchFailed:!1}}]);angular.module("shipApp").factory("shippingSearchFactory",["$rootScope","shipDateFactory","setting","savedSearchService",function(n,t,i){function f(){var n=r.model;n.Stages[1].fromCompany=n.Stages[0].toCompany;n.Stages[1].fromCity=n.Stages[0].toCity;n.Stages[1].fromCountry=n.Stages[0].toCountry;n.Stages[1].fromCountryCode=n.Stages[0].toCountryCode;n.Stages[1].fromDisplayAddress=n.Stages[0].toDisplayAddress;n.Stages[1].fromFullAddress=n.Stages[0].toFullAddress;n.Stages[1].fromFullAddressValid=n.Stages[0].toFullAddressValid;n.Stages[1].fromAddress2=n.Stages[0].toAddress2;n.Stages[1].fromLocation=n.Stages[0].toLocation;n.Stages[1].fromPostalCode=n.Stages[0].toPostalCode;n.Stages[1].fromState=n.Stages[0].toState;n.Stages[1].fromStreetAddress=n.Stages[0].toStreetAddress;n.Stages[1].fromPhone=n.Stages[0].toPhone;n.Stages[1].toCompany=n.Stages[0].fromCompany;n.Stages[1].toCity=n.Stages[0].fromCity;n.Stages[1].toCountry=n.Stages[0].fromCountry;n.Stages[1].toCountryCode=n.Stages[0].fromCountryCode;n.Stages[1].toDisplayAddress=n.Stages[0].fromDisplayAddress;n.Stages[1].toFullAddress=n.Stages[0].fromFullAddress;n.Stages[1].toFullAddressValid=n.Stages[0].fromFullAddressValid;n.Stages[1].toAddress2=n.Stages[0].fromAddress2;n.Stages[1].toLocation=n.Stages[0].fromLocation;n.Stages[1].toPostalCode=n.Stages[0].fromPostalCode;n.Stages[1].toState=n.Stages[0].fromState;n.Stages[1].toStreetAddress=n.Stages[0].fromStreetAddress;n.Stages[1].toPhone=n.Stages[0].fromPhone;n.Stages[1].date=n.Stages[0].roundtripdate;n.Stages[1].dateType=n.Stages[0].roundtripdateType||"S";n.Stages[1].isPickup=n.Stages[0].returnIsPickup;n.Stages[1].pickupFee=n.Stages[0].returnPickupFee;n.Stages[1].Packages=angular.copy(n.Stages[0].Packages)}function e(){r.model=angular.copy(u)}var u={Mode:1,Stages:[{fromFullAddress:"",fromDisplayAddress:"",fromStreetAddress:"",fromCity:"",fromState:"",fromCountry:{},fromCountryCode:"",fromPostalCode:"",fromLocation:{},lastValidFromAddress:"",toFullAddress:"",toDisplayAddress:"",toStreetAddress:"",toCity:"",toState:"",toCountry:{},toCountryCode:"",toPostalCode:"",toLocation:{},date:"",dateType:"S",PackageDescription:[],isPickup:"",stage:0,Packages:[{Name:i.Text_SelectPackage,Length:null,Height:null,Width:null,LinearUnit:"in",Weight:null,WeightUnit:"lbs",Value:0,Description:""}]}],NumPackages:"1 Box/Case",Packages:[{Name:i.Text_SelectPackage,Length:null,Height:null,Width:null,LinearUnit:"in",Weight:null,WeightUnit:"lbs",Value:0,Description:""}],sameDescriptionForPackages:!0,HasAdjustedFromPostalCode:!1,HasAdjustedToPostalCode:!1},r=null;return r={model:angular.copy(u),syncRoundTripSecondStage:f,resetSettings:e,SaveState:function(){sessionStorage.shippingSearchFactory=angular.toJson(r.model)},RestoreState:function(){try{r.model=angular.fromJson(sessionStorage.shippingSearchFactory);r.model||(r.model=angular.copy(u));r.model.Stages&&r.model.Packages||(r.model=angular.copy(u))}catch(n){r.model=angular.copy(u)}finally{sessionStorage.shippingSearchFactory=null}},ClearState:function(){r.model=angular.copy(u);r.SaveState()}},n.$on("SaveState",r.SaveState),n.$on("ClearState",r.ClearState),sessionStorage.shippingSearchFactory&&r.RestoreState(),r}]);angular.module("shipApp").factory("shippingResultFactory",["$rootScope","shipDateFactory",function(n,t){var u=t.addShipDays(new Date,1),r={Results:[],PostalResolution:[]},i={model:r,SaveState:function(){sessionStorage.shippingResultFactory=angular.toJson(i.model)},RestoreState:function(){i.model=angular.fromJson(sessionStorage.shippingResultFactory)},ClearState:function(){i.model=r;i.SaveState()}};return n.$on("SaveState",i.SaveState),n.$on("ClearState",i.ClearState),sessionStorage.shippingResultFactory&&i.RestoreState(),i}]);angular.module("shipApp").service("customsService",["$http",function(n){function t(t,i,r,u,f,e,o,s,h,c){for(var a={fromCountry:t,toCountry:i,toStateProv:r,shippingCharge:u,insuranceCharge:f,costOfGoods:e,packages:[],stage:s,result:h,purposeCode:c},l=0,v=o.length;l<v;l++)a.packages.push({Name:o[l].Name,Length:o[l].Length,Height:o[l].Height,Width:o[l].Width,LinearUnit:o[l].LinearUnit,Weight:o[l].Weight,WeightUnit:o[l].WeightUnit,Value:o[l].Value,HasBattery:o[l].HasBattery,CategoryCode:o[l].Category.cost});return n({method:"post",url:"/api/ups/landedcost",data:a})}return{getLandedCost:t}}]);angular.module("shipApp").controller("shipSearchController",["$scope","$rootScope","$location","$window","$http","setting","shippingSearchFactory","formDataFactory","savedSearchFactory","shipSearchFormFactory","alertService","currentUser","trayFactory","userSearchFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){n.$on("$includeContentLoaded",function(){r.ga("send","pageview",{page:i.path(),title:n.$root.title})});n.currentUser=l;n.profile=l.getProfile();n.init=function(){var r,l,u;n.trayFlags=[];n.focusFlags=[];n.isEvent=!1;t.isEvent=!1;i.url()!=="/ship"&&(n.isEvent=h.model.eventIsLoaded,t.isEvent=n.isEvent);r=i.search().l;l=i.search().r;n.showAddDetailedAddress=!0;r!==1&&(n.isProfile=!1,n.setting=f,n.$root.title="Ship1",u=i.search().s,u||e.resetSettings(),n.searchCriteria=e.model,n.searchCriteria.LinearUnit="in",n.searchCriteria.WeightUnit="lbs",n.setNumPackages("1 Box/Case"),n.formData=o.model.presets,h.setupForm(n),(t.SiteMessages===undefined||t.SiteMessages===null)&&(t.SiteMessages=[]),c.getAlerts("Ship"),n.savedSearch=s.model.searches,u&&(h.switchToSavedSearchByCode(u,n),i.search("s",null),r||(r=0),i.search("l",r+1)));l===1;n.customs={Purpose:n.formData.packagePurpose?n.formData.packagePurpose[0]:null,PurposeInvalid:!1,Category:n.formData.packageCategory?n.formData.packageCategory[0]:null,CategoryInvalid:!1,Worth:null,WorthInvalid:!1};n.searchCriteria.Mode?n.setShipMode(n.searchCriteria.Mode):n.setShipMode(1);n.showPackageTray=!1;n.showPackageSelectorTray=!1;n.showContentsSelectorTray=!1;n.emptyPackage={contents:{display:"Select..."},preset:{Name:"Select..."},linearUnit:"in",weightUnit:"lb"};n.currentPackage=angular.copy(n.emptyPackage);n.currentPackage.index=0;n.isDomestic=h.isDomestic();h.nullifyZeroDimensions();t.passCommand&&t.passCommand.target==="ship"&&h.handleCommand(t)};n.clear=function(n){v.clear(n)};n.closeTrayAndFocusButton=function(t,i,r){n.setTrayFlag(i,!1,t);var u=document.getElementById(r);u&&u.focus()};n.closeOnEscape=function(t,i,r){t.keyCode===27&&n.closeTrayAndFocusButton(t,i,r)};n.clickOnEnter=function(t,i,r,u,f,e){t.keyCode===13&&(i&&i(r,u),n.closeTrayAndFocusButton(t,f,e));t.keyCode===27&&n.closeTrayAndFocusButton(t,f,e)};n.onlyUserPackages=function(n){return n.userPackageId>0};n.onlyEstimatePackages=function(n){return n.isExact===!1};n.onlyExactPackages=function(n){return n.isExact};n.stopClick=function(n){a.stopClick(n)};n.setTrayFlag=function(t,i,r){a.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i){a.toggleTrayFlag(t,i,n)};n.closeAllTrays=function(t,i){a.closeAllTrays(t,n,i)};n.setPurpose=function(t){n.searchCriteria.Purpose=t};n.addNewSavedAddress=function(t,i){h.addNewSavedAddress(n,t,i)};n.addStage=function(){h.addStage(n)};n.addPackageToStage=function(n){n.Packages.push({Name:f.Text_SelectPackage,Length:null,Height:null,Width:null,LinearUnit:"in",Weight:null,WeightUnit:"lbs",Value:0,Description:"",InsideDescription:""})};n.deletePackageFromStage=function(n,t){n.Packages.splice(t,1)};n.clearStages=function(){h.clearStages(n)};n.deleteStage=function(t){h.deleteStage(n,t)};n.setNumPackages=function(t){n.searchCriteria.NumPackages=t;h.setNumPackages(n)};n.removePackage=function(){};n.setUnits=function(t,i){t==="standard"?h.setLinearUnit(n,"in"):h.setLinearUnit(n,"cm");n.stopClick(i)};n.setPackageNameToCustom=function(n){n.Name="Custom";n.safeDimensions=!1};n.setPackageDimensions=function(t,i,r){t.preset=i;t.Name=i.Name;t.LinearUnit==="in"?(t.Length=i.Length,t.Height=i.Height,t.Width=i.Width,t.Weight=i.Weight):(t.Length=i.CmLength,t.Height=i.CmHeight,t.Width=i.CmWidth,t.Weight=i.KgWeight);t.safeDimensions=!0;t.showPackageSelectorTray=!1;t.CategoryCode=i.CategoryCode;for(var u=0,f=n.formData.packageCategory.length;u<f;u++)n.formData.packageCategory[u].cost===t.CategoryCode&&(t.Category=n.formData.packageCategory[u]);t.HasBattery=i.CategoryCode===8011?3:1;t.Value=i.Value;t.Worth=i.Worth;t.OutsideDescription=i.OutsideDescription;t.InsideDescription=i.InsideDescription;n.stopClick(r);n.validateForm()};n.setFocusFlag=function(t,i,r){y.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){y.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){y.clearFocus(t,n,i)};n.setFromFocus=function(n,t){n.fromHasFocus=t};n.setToFocus=function(n,t){n.toHasFocus=t};n.setLengthFocus=function(n,t){n.lengthHasFocus=t};n.setWidthFocus=function(n,t){n.widthHasFocus=t};n.setHeightFocus=function(n,t){n.heightHasFocus=t};n.setWeightFocus=function(n,t){n.weightHasFocus=t};n.setWorthFocus=function(n,t){n.worthHasFocus=t};n.setPackageCategory=function(t,i){i||(i={});i.HasBattery=t.cost===8011?3:1;i.Category=t;i.CategoryCode=t.cost;i.showContentsSelectorTray=!1;n.validateForm()};n.setPickup=function(t,i,r,u){var e=i==="return"?"returnIsPickup":"isPickup",o=i==="return"?"returnPickupFee":"pickupFee",s=i==="return"?"returnPickupText":"pickupText";t[e]=r;t[o]=r?f.PickupFee:0;t[s]=u;h.datePickerFirstDate(n)};n.setPickupOptions=function(t){h.setPickupOptions(n,t);h.datePickerFirstDate(n);n.validateForm()};n.setReturnPickupOptions=function(t){h.setReturnPickupOptions(n,t);n.validateForm()};n.resetPackageOption=function(t){h.resetPackageOption(n,t)};n.setLinearUnit=function(t){h.setLinearUnit(n,t)};n.roundUnit=function(n){return Math.floor(n*100)/100};n.setShipMode=function(t){t&&(n.searchCriteria.Mode=t,t===1?h.setOneWay(n):t===2?h.setRoundTrip(n):t===3&&h.setMultiStage(n))};n.setShipOnMethod=function(t,i){t[i]="S";h.datePickerFirstDate(n);n.validateForm()};n.setDeliverByMethod=function(t,i){t[i]="D";h.datePickerFirstDate(n);n.validateForm()};n.setReturnShipMethod=function(t){var i=t.ReturnMethodSelection;t.roundtripdateType=i.cost===1||i.cost===3?"S":"D";n.validateForm()};n.setOneWay=function(){h.setOneWay(n)};n.setRoundTrip=function(){h.setRoundTrip(n)};n.setMultiStage=function(){h.setMultiStage(n)};n.fromAddressBlur=function(){};n.fromAddressPlaceChanged=function(){var t=arguments[1],r=arguments[2],i=this.getPlace();h.fromAddressPlaceChanged(n,i,t);n.isDomestic=h.isDomestic()};n.toAddressBlur=function(){};n.toAddressPlaceChanged=function(){var t=arguments[1],i=this.getPlace();h.toAddressPlaceChanged(n,i,t);n.isDomestic=h.isDomestic()};n.togglePackageOptionsMenu=function(t){n.searchCriteria.Packages[t].showPackageOptionsMenu=!n.searchCriteria.Packages[t].showPackageOptionsMenu};n.toggleFromAddressMenu=function(t){n.searchCriteria.Stages[t].showFromAddressMenu=!n.searchCriteria.Stages[t].showFromAddressMenu};n.toggleToAddressMenu=function(t){n.searchCriteria.Stages[t].showToAddressMenu=!n.searchCriteria.Stages[t].showToAddressMenu};n.submitFullSearch=function(){n.searchCriteria.Customs=null;e.model=n.searchCriteria;e.SaveState();e.model.eventIsLoaded=h.model.eventIsLoaded;h.submitFullSearch(n)};n.checkDate=function(t){h.checkDateFormat(n,t);h.checkForSameDayShip(n,t);n.validateForm()};n.eventPointSelect=function(t){h.eventPointSelect(n,t)};n.selectProfileAddress=function(t,i,r){h.selectProfileAddress(n,t,i,r)};n.setHasBattery=function(t){h.setHasBattery(n,t);n.validateForm()};n.switchToSavedSearch=function(n){s.switchToSavedSearch(n)};n.validateForm=function(){h.cleanDimensions(n);h.validateForm(n)};n.init()}]);angular.module("shipApp").factory("shipSearchFormFactory",["$timeout","$location","$rootScope","shipDateFactory","savedSearchService","savedSearchFactory","geoLocationFactory","errorService","shippingService","shippingSearchFactory","GeoCoder","helpersFactory","setting","validationFactory","spinnerFactory","accordionFactory","shipCouponService","validateAddressService","formDataFactory","shipResultsSelectedFactory","serverValidationService","currentUser","modalService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt,tt){function ui(n,i){n=n.toLowerCase();var r=n.indexOf("?");r>-1&&(n=n.substring(0,r));n==="/bicycle_shipping.aspx"&&t.path("/ship");n==="/ship"||t.path()==="/ship"?i.formVersion="full":(n==="/"||n==="/default.aspx"||n==="/home")&&(t.url()==="/ship"?i.formVersion="full":(k.loadCountryPresets(),k.loadPackagePresets(),k.loadBatteryOptions(),i.formVersion="simple"))}function et(n){var t=" ";return n.company&&(t+=n.company+" "),n.streetAddress&&(t+=n.streetAddress+" "),n.unitNumber&&n.streetAddress&&(t+=n.unitNumber+" "),n.city&&(t+=n.city+", "),n.state&&(t+=n.state+" "),n.postalCode&&(t+=n.postalCode+", "),n.countryCode&&(t+=n.countryCode+" "),t.trim()}function ht(n,t,i){i==="from"?(t.fromCompany=n.company,t.fromFullAddress=et(n),t.lastValidFromAddress=t.fromFullAddress,t.fromDisplayAddress=et(n),t.fromStreetAddress=n.streetAddress,t.fromAddress2=n.unitNumber,t.fromCity=n.city,t.fromState=n.state,t.fromCountry=k.getCountryFromCode(n.countryCode),t.fromCountryName=n.countryName,t.fromCountryCode=n.countryCode,t.fromPostalCode=n.postalCode,t.fromLocation=n.location,t.fromPhone=n.phone):(t.toCompany=n.company,t.toFullAddress=et(n),t.lastValidToAddress=t.toFullAddress,t.toDisplayAddress=et(n),t.toStreetAddress=n.streetAddress,t.toAddress2=n.unitNumber,t.toCity=n.city,t.toState=n.state,t.toCountry=k.getCountryFromCode(n.countryCode),t.toCountryName=n.countryName,t.toCountryCode=n.countryCode,t.toPostalCode=n.postalCode,t.toLocation=n.location,t.toPhone=n.phone)}function rt(n,t,i,r){var u=t.searchCriteria;r==="from"?(ht(n,u.Stages[i],r),t.searchCriteria.Stages[i].fromFullAddressValid=!0,st(t)):(ht(n,u.Stages[i],r),t.searchCriteria.Stages[i].toFullAddressValid=!0,st(t))}function yt(n,t,i,r,u){i.postalCode=u;rt(i,n,t,r)}function pt(n,t){var i="";return t==="to"?(n.toCity!==""&&(i+=n.toCity+", "),n.toState!==""&&(i+=n.toState+" "),n.toPostalCode!==""&&(i+=n.toPostalCode+", "),n.toCountryCode!==""&&(i+=n.toCountryCode)):(n.fromCity!==""&&(i+=n.fromCity+", "),n.fromState!==""&&(i+=n.fromState+" "),n.fromPostalCode!==""&&(i+=n.fromPostalCode+", "),n.fromCountryCode!==""&&(i+=n.fromCountryCode)),i}function fi(n,t){var i=n.searchCriteria.Stages,r,u;i[t].lastValidFromAddress===i[t].fromFullAddress&&i[t].lastValidFromAddress!==""&&(i[t].fromFullAddressInvalid=!1);i[t].fromFullAddressValid!==!0?(r=i[t],r.fromPostalCode!==""&&r.fromCountryCode!==""&&(i[t].fromFullAddress=pt(r,"from"),i[t].fromFullAddressValid=!0,i[t].fromFullAddressInvalid=!1),v.pushError(n.validationErrors,{Key:"fromFullAddress",Message:"From Address needs to be selected from provided options."}),i[t].fromFullAddressInvalid=!0):i[t].fromFullAddressInvalid=!1;i[t].fromCountry&&(i[t].fromCountry.Active===!1||i[t].fromCountry.Code==="PR"||i[t].fromCountry.Code==="IS")&&(i[t].fromFullAddressInvalid=!0,i[t].fromFullAddressValid=!1,u=angular.copy(a.AlertInvalidCountry),u.Message=u.Message.replace(/to #CountryName#/,"from "+i[t].fromCountry.Name),o.addMessage(u))}function ei(n,t){var i=n.searchCriteria.Stages,r,u;if(i[t].lastValidToAddress===i[t].toFullAddress&&i[t].lastValidToAddress!==""&&(i[t].toFullAddressInvalid=!1),i[t].toFullAddressValid!==!0){if(r=i[t],r.toPostalCode!==""&&r.toCountryCode!==""){i[t].toFullAddress=pt(r,"to");i[t].toFullAddressValid=!0;i[t].toFullAddressInvalid=!1;return}v.pushError(n.validationErrors,{Key:"toFullAddress",Message:"To Address needs to be selected from provided options."});i[t].toFullAddressInvalid=!0}else i[t].toFullAddressInvalid=!1;i[t].toCountry&&i[t].toCountry.Active===!1&&(i[t].toFullAddressInvalid=!0,i[t].toFullAddressValid=!1,u=angular.copy(a.AlertInvalidCountry),u.Message=u.Message.replace(/#CountryName#/,i[t].toCountry.Name),o.addMessage(u))}function oi(n,t){var i=n.searchCriteria.Stages;i[t].toFullAddress===i[t].fromFullAddress&&i[t].toFullAddress!==""?(v.pushError(n.validationErrors,{Key:"FromAndToAddress",Message:"Your From and To locations must be different"}),i[t].fromAndToMatching=!0):i[t].fromAndToMatching=!1}function si(n){for(var i=n.searchCriteria.Packages,t=0,r=i.length;t<r;t++)i[t].Length=l.removeNonNumeric(i[t].Length),i[t].Height=l.removeNonNumeric(i[t].Height),i[t].Width=l.removeNonNumeric(i[t].Width),i[t].Weight=l.removeNonNumeric(i[t].Weight),i[t].Worth=l.removeNonNumeric(i[t].Worth)}function wt(n){var i=n.searchCriteria.Packages,r,f,t,nt,d,h,g;if(typeof i!="undefined"){for(r="",f={nearSizeLimit:!1,nearDimLimit:!1,nearWeightLimit:!1,overSizeLimit:!1,overDimLimit:!1,overWeightLimit:!1},t=0,nt=i.length;t<nt;t++){i[t].LengthInvalid=!1;i[t].WidthInvalid=!1;i[t].HeightInvalid=!1;i[t].WeightInvalid=!1;i[t].DimensionalInvalid=!1;i[t].CategorySelectionInvalid=!1;i[t].WorthInvalid=!1;i[t].NameSelectionInvalid=!1;i[t].OverMax=!1;nt>1&&(r=" for package "+(t+1));(i[t].Worth===null||typeof i[t].Worth=="undefined"||i[t].Worth===0)&&(v.pushError(n.validationErrors,{Key:"packageWorth",Message:"Enter the Value of the package."}),i[t].WorthInvalid=!0);i[t].Name===null&&(v.pushError(n.validationErrors,{Key:"packageName",Message:"Select the size of the package or select '"+a.Text_EnterDimensions+"' and enter the length, height, and width"}),i[t].NameSelectionInvalid=!0);i[t].Category?i[t].HasBattery=i[t].Category.cost===8010?a.HasSmallBatteryOption:i[t].Category.cost===8011?a.HasLargeBatteryOption:a.HasNoBatteryOption:(v.pushError(n.validationErrors,{Key:"packageCategory",Message:"Select the Contents of the package"}),i[t].CategorySelectionInvalid=!0);var c=108,w=108,b=108,e=150,k=165,s=[];i[t].LinearUnit==="cm"&&(c=274,w=274,b=274,k=419,e=68);var l=Math.ceil(i[t].Length),y=Math.ceil(i[t].Width),p=Math.ceil(i[t].Height),u=Math.ceil(i[t].Weight);s.push(l);s.push(y);s.push(p);s.sort(function(n,t){return t-n});d=s[0]+s[1]*2+s[2]*2;(u===null||u>e||u<1)&&(v.pushError(n.validationErrors,{Key:"packageSize",Message:"Must enter a weight for this package"+r}),i[t].WeightInvalid=!0);d>k&&(o.removeError(a.AlertFreightSize),v.pushError(n.validationErrors,{Key:"packageSize",Message:"This is a Freight Package"+r}),i[t].DimensionalInvalid=!0,f.overSizeLimit=!0);u>e&&(o.removeError(a.AlertFreightSize),v.pushError(n.validationErrors,{Key:"packageSize",Message:"This is a Freight Package"+r}),i[t].WeightInvalid=!0,f.overWeightLimit=!0);(typeof l=="undefined"||l<3||l>c)&&(v.pushError(n.validationErrors,{Key:"packageLength",Message:"Please enter your Length"+r}),i[t].LengthInvalid=!0);(typeof y=="undefined"||y<3||y>w)&&(v.pushError(n.validationErrors,{Key:"packageWidth",Message:"Please enter your Width"+r}),i[t].WidthInvalid=!0);(typeof p=="undefined"||p<3||p>b)&&(v.pushError(n.validationErrors,{Key:"packageHeight",Message:"Please enter your Height"+r}),i[t].HeightInvalid=!0);(typeof u=="undefined"||u==="0"||u>e)&&(v.pushError(n.validationErrors,{Key:"packageWeight",Message:"Please enter a valid Weight"+r+" must be under "+e}),i[t].WeightInvalid=!0);(l>c||y>w||p>b)&&(f.overDimLimit=!0,i[t].LengthInvalid=!0,i[t].WidthInvalid=!0,i[t].HeightInvalid=!0);h=!i[t].safeDimensions;d>k-10&&d<=k&&(f.nearSizeLimit=h,i[t].OverMax=h);u>e-10&&u<=e&&(f.nearWeightLimit=h,i[t].OverMax=h);g=c-10;(i[t].Length>g||i[t].Width>g||i[t].Height>g)&&i[t].Length<=c&&i[t].Width<=w&&i[t].Height<=b&&(f.nearDimLimit=h,i[t].OverMax=h)}hi(f)}}function ot(){o.removeError(a.AlertOverSizeLimit);o.removeError(a.AlertOverDimLimit);o.removeError(a.AlertOverWeightLimit);o.removeError(a.AlertNearSizeLimit);o.removeError(a.AlertNearDimLimit);o.removeError(a.AlertNearWeightLimit)}function hi(n){ot();n.nearSizeLimit&&o.addMessage(a.AlertNearSizeLimit);n.nearDimLimit&&o.addMessage(a.AlertNearDimLimit);n.nearWeightLimit&&o.addMessage(a.AlertNearWeightLimit);n.overSizeLimit&&(ot(),o.addMessage(a.AlertOverSizeLimit));n.overWeightLimit&&(ot(),o.addMessage(a.AlertOverWeightLimit));n.overDimLimit&&(ot(),o.addMessage(a.AlertOverDimLimit))}function ct(){for(var t=h.model.Packages,n=0,i=t.length;n<i;n++)t[n].Length===0&&(t[n].Length=null),t[n].Width===0&&(t[n].Width=null),t[n].Height===0&&(t[n].Height=null),t[n].Weight===0&&(t[n].Weight=null)}function ci(n,t){var i,r,u,s,f,h,e,c,l;if(o.removeMessage(a.AlertEBikeInternational),o.removeMessage(a.AlertEbikeShipment),i=t-1,i<0&&(i=0),r=n.searchCriteria.Stages,u=n.searchCriteria.Packages,u){for(s=!1,f=0,h=u.length;f<h;f++)if(u[f].InternationalEBikeInvalid=!1,u[f].isDangerous||u[f].HasBattery===a.HasLargeBatteryOption||u[f].HasBattery===a.HasBatteryOnlyOption){s=!0;break}if(s)for(r[i].fromCountryEBikeInvalid=!1,r[i].toCountryEBikeInvalid=!1,typeof r[i].fromCountry.Code!="undefined"&&(r[i].fromCountry.Code!=="US"||r[i].fromState==="AK"||r[i].fromState==="HI")&&(v.pushError(n.validationErrors,{Key:"EBikeInternational",Message:"We can not currently ship batteries outside of the contiguous US"}),r[i].fromCountryEBikeInvalid=!0,o.addMessage(a.AlertEBikeInternational)),typeof r[i].toCountry.Code!="undefined"&&(r[i].toCountry.Code!=="US"||r[i].toState==="AK"||r[i].toState==="HI")&&(v.pushError(n.validationErrors,{Key:"EBikeInternational",Message:"We can not currently ship batteries outside of the contiguous US"}),r[i].toCountryEBikeInvalid=!0,o.addMessage(a.AlertEBikeInternational)),e=0,c=u.length;e<c;e++)r[i].fromCountryEBikeInvalid||r[i].toCountryEBikeInvalid?(u[e].isDangerous||u[e].HasBattery===a.HasLargeBatteryOption||u[e].HasBattery===a.HasBatteryOnlyOption)&&(u[e].InternationalEBikeInvalid=!0):(l=nt.getProfile().dotCertified,!l&&a.AlertEbikeShipment&&o.addMessage(a.AlertEbikeShipment))}}function li(n){if(n.MethodSelection.cost>2)return!0;var t=new Date,i=new Date(n.date);return i.getYear()===t.getYear()&&i.getMonth()===t.getMonth()&&i.getDate()<=t.getDate()?!1:!0}function bt(n,t){var i=!0,o=n.searchCriteria.Mode,r=n.searchCriteria.Stages,s,u,f,e,h;return o===1?(n.searchCriteria.Stages[t].shipDeliverDateInvalid=!1,s=new Date(r[t].date),v.isDate(s)?n.searchCriteria.Stages[t].dateInvalid=!1:(n.searchCriteria.Stages[t].dateInvalid=!0,i=!1),(n.searchCriteria.Stages[t].isPickup==="true"||n.searchCriteria.Stages[t].isPickup===!0)&&(li(n.searchCriteria.Stages[t])?n.searchCriteria.Stages[t].dateInvalidForPickup=!1:(n.searchCriteria.Stages[t].dateInvalidForPickup=!0,i=!1)),v.dateIsPassed(s)?(n.searchCriteria.Stages[t].datePassed=!0,i=!1):n.searchCriteria.Stages[t].datePassed=!1):o===2?(n.searchCriteria.Stages[t].shipDeliverDateInvalid=!1,t===0&&(u=new Date(r[t].date),v.isDate(u)?n.searchCriteria.Stages[t].dateInvalid=!1:(n.searchCriteria.Stages[t].dateInvalid=!0,i=!1),v.dateIsPassed(u)?(n.searchCriteria.Stages[t].datePassed=!0,i=!1):n.searchCriteria.Stages[t].datePassed=!1,f=new Date(r[t].roundtripdate),v.isDate(f)?n.searchCriteria.Stages[t].roundtripShipDateInvalid=!1:(n.searchCriteria.Stages[t].roundtripShipDateInvalid=!0,i=!1),v.dateIsPassed(f)?(n.searchCriteria.Stages[t].roundtripShipDatePassed=!0,i=!1):n.searchCriteria.Stages[t].roundtripShipDatePassed=!1,v.firstDateIsAfterSecond(u,f)?(n.searchCriteria.Stages[t].roundtripShipDatePassed=!0,i=!1):n.searchCriteria.Stages[t].roundtripShipDatePassed=!1)):o===3&&(e=new Date(r[t].date),v.isDate(e)?n.searchCriteria.Stages[t].dateInvalid=!1:(n.searchCriteria.Stages[t].dateInvalid=!0,i=!1),v.dateIsPassed(e)?(n.searchCriteria.Stages[t].datePassed=!0,i=!1):n.searchCriteria.Stages[t].datePassed=!1,t>0&&(h=new Date(r[t-1].date),v.isDate(h)&&(v.firstDateIsAfterSecond(e,h)?n.searchCriteria.Stages[t].shipDeliverDateInvalid=!1:(n.searchCriteria.Stages[t].shipDeliverDateInvalid=!0,i=!1)))),i===!1&&v.pushError(n.validationErrors,{Key:"Date",Message:"Form contains invalid date(s)"}),i}function lt(n){n.validationErrors=[];o.removeError(a.AlertInvalidCountry);for(var t=0,i=n.searchCriteria.Stages.length;t<i;t++)fi(n,t),ei(n,t),oi(n,t),ci(n,t);return wt(n),ai(n),n.isDomestic=ri(),n.validationErrors.length>0?!1:(n.shipSearchForm.$valid=!0,!0)}function ai(n){var t=!1;typeof n.searchCriteria.Purpose=="undefined"||n.searchCriteria.Purpose===null||n.searchCriteria.Purpose.value===0?(v.pushError(n.validationErrors,{Key:"Purpose",Message:"Must select a Purpose for your international package"}),n.searchCriteria.PurposeInvalid=!0):((n.searchCriteria.Purpose.cost===4001||n.searchCriteria.Purpose.cost===4002)&&(t=!0),n.searchCriteria.PurposeInvalid=!1)}function kt(n){o.removeMessage(a.AlertValidationWarning.Key);d.model.Selection=[];n.searchCriteria.HasAdjustedFromPostalCode||n.searchCriteria.HasAdjustedToPostalCode?o.addMessage(a.KRPostalCodeConversion):o.removeMessage(a.KRPostalCodeConversion.Key);s.doSearch()}function vi(n,t){var u=n.searchCriteria,e=u.Stages[t].date,f;v.isDate(e)&&(u.Stages[t].date=r.formatDate(e));t===0&&(f=u.Stages[t].roundtripdate,v.isDate(f)&&(u.Stages[t].roundtripdate=r.formatDate(f)));bt(n,t);typeof n.validationErrors!="undefined"&&n.validationErrors.length>0&&i.$broadcast("invalidFocus")}function st(n){lt(n)}function dt(n,t,i,r){var u=nt.getAddressAsString(r,!1);t==="from"?(n.searchCriteria.Stages[i].fromFullAddress=u,n.searchCriteria.Stages[i].fromDisplayAddress=u,n.searchCriteria.Stages[i].fromCompany=r.company||r.companyName,n.searchCriteria.Stages[i].fromFirstName=r.firstName,n.searchCriteria.Stages[i].fromLastName=r.lastName,n.searchCriteria.Stages[i].fromStreetAddress=r.address1,n.searchCriteria.Stages[i].fromAddress2=r.address2,n.searchCriteria.Stages[i].fromAddress3=r.address3,n.searchCriteria.Stages[i].fromPostalCode=r.postalCode,n.searchCriteria.Stages[i].fromCity=r.city,n.searchCriteria.Stages[i].fromState=r.state,n.searchCriteria.Stages[i].fromCountry=k.getCountryFromCode(r.country),n.searchCriteria.Stages[i].fromCountryCode=r.country,n.searchCriteria.Stages[i].fromPhone=r.phone,n.searchCriteria.Stages[i].fromLocation={lat:r.latitude,lng:r.longitude},n.searchCriteria.Stages[i].fromFullAddressValid=!0,n.searchCriteria.Stages[i].fromPassedAvs=r.passedAvs?!0:!1,n.searchCriteria.Stages[i].fromAddressId=r.addressId?r.addressId:0,n.searchCriteria.Stages[i].fromConfirmed=r.confirmed?!0:!1):(n.searchCriteria.Stages[i].toFullAddress=u,n.searchCriteria.Stages[i].toDisplayAddress=u,n.searchCriteria.Stages[i].toCompany=r.company||r.companyName,n.searchCriteria.Stages[i].toFirstName=r.firstName,n.searchCriteria.Stages[i].toLastName=r.lastName,n.searchCriteria.Stages[i].toStreetAddress=r.address1,n.searchCriteria.Stages[i].toAddress2=r.address2,n.searchCriteria.Stages[i].toAddress3=r.address3,n.searchCriteria.Stages[i].toPostalCode=r.postalCode,n.searchCriteria.Stages[i].toCity=r.city,n.searchCriteria.Stages[i].toState=r.state,n.searchCriteria.Stages[i].toCountry=k.getCountryFromCode(r.country),n.searchCriteria.Stages[i].toCountryCode=r.country,n.searchCriteria.Stages[i].toPhone=r.phone,n.searchCriteria.Stages[i].toLocation={lat:r.latitude,lng:r.longitude},n.searchCriteria.Stages[i].toFullAddressValid=!0,n.searchCriteria.Stages[i].toPassedAvs=r.passedAvs?!0:!1,n.searchCriteria.Stages[i].toAddressId=r.addressId?r.addressId:0,n.searchCriteria.Stages[i].toConfirmed=r.confirmed?!0:!1)}function yi(t,u){var s,c,e,y,f,o;if(typeof u!="undefined"&&u!==null){if(it.model.eventIsLoaded!==!0&&(it.model.bikeEvent=u.Event,t.bikeEvent=u.Event,t.bikeEvent.couponCode!==""&&(i.siteId=t.bikeEvent.couponCode),it.model.eventIsLoaded=!0,h.model.bikeEventId=it.model.bikeEvent.eventId),i.isEvent&&!i.isPartner&&(s=new Date,s.setHours(0,0,0,0),new Date(t.bikeEvent.endDate)<s,new Date(t.bikeEvent.startDate)<s||(t.searchCriteria.Stages[0].date=r.addShipDays(new Date(t.bikeEvent.startDate).toString(),-5))),u.ShipLocations.length>0){for(t.shipLocations=u.ShipLocations,t.hasAddresses=!0,typeof t.addresses=="undefined"&&(t.addresses=[]),c={displayName:"- - - - - EVENT LOCATIONS - - - - -",address1:"1",orderBy:0,shipLocationId:0},l.addressInArray(t.addresses,c)||t.addresses.push(c),e=0,y=t.shipLocations.length;e<y;e++)t.shipLocations[e].address=t.shipLocations[e].address1,t.shipLocations[e].displayName=t.shipLocations[e].label||t.shipLocations[e].company,t.shipLocations[e].orderBy=e+1,l.addressInArray(t.addresses,t.shipLocations[e])||t.addresses.push(t.shipLocations[e]);t.addresses.sort(function(n,t){return n.orderBy-t.orderBy})}if(f=t.searchCriteria.Stages,o=t.bikeEvent.stages,o>0&&o<a.MaxStages)for(f=f.slice(0,1);t.searchCriteria.Stages.length<o;)ut(t);t.bikeEvent.shipType===1&&(t.searchCriteria.ModeSelect=t.formData.modeOptions[0],ni(t));t.bikeEvent.shipType===2&&(t.searchCriteria.ModeSelect=t.formData.modeOptions[1],ti(t));t.bikeEvent.shipType===3&&(t.searchCriteria.ModeSelect=t.formData.modeOptions[2],ir(t,o));n(function(){var u,i,n,r;f=t.searchCriteria.Stages;u=(new Date).getFullYear()-1;i=new Date(t.bikeEvent.stage1DeliverDate);v.isDate(i)&&i>=u&&(f[0].date=i.toLocaleDateString(),f[0].dateType="D",f[0].MethodSelection=t.formData.methodOptions[1],ft(t,0));n=new Date(t.bikeEvent.stage2ShipDate);t.bikeEvent.shipType===2&&(f[0].roundtripdate=n.toLocaleDateString(),f[0].roundtripdateType="S",f[0].ReturnMethodSelection=t.formData.methodOptions[0],ft(t,0));v.isDate(n)&&n>i&&n>=u&&(f[1].date=n.toLocaleDateString(),f[1].dateType="D",f[1].MethodSelection=t.formData.methodOptions[0],ft(t,1));r=new Date(t.bikeEvent.stage3ShipDate);v.isDate(r)&&r>n&&r>=u&&(f[2].date=r.toLocaleDateString(),f[2].dateType="S",f[2].MethodSelection=t.formData.methodOptions[0],ft(t,2))},500)}}function gt(n){n.sort(function(n,t){return n.orderBy-t.orderBy})}function pi(r){var e,c,s;y.setupSpinner();p.openTab("search");it.model.eventIsLoaded=!1;it.model.bikeEvent=null;e=l.getPageNameFromLocation(t);r.searchCriteria.page=e;ui(e,r);n(function(){var v=r.searchCriteria.Packages,e=r.searchCriteria.Stages,c,y,h,p,s,w;for(a.AlertEbikeShipment!==null&&typeof a.AlertEbikeShipment!="undefined"&&o.removeError(a.AlertEbikeShipment),c=0,y=e.length;c<y;c++)for(h=0,p=e[c].Packages.length;h<p;h++)(typeof e[c].Packages[h]=="undefined"||e[c].Packages[h]===null)&&(e[c].Packages[h]={Name:"",HasBattery:a.HasNoBatteryOption,Width:null,Height:null,Length:null,Weight:null,LinearUnit:"in",WeightUnit:"lb"}),e[c].Packages[h].Name===""&&(e[c].Packages[h].Name=r.formData.packageNames[0]),(v[h].isDangerous||v[h].HasBattery===a.HasBatteryOnlyOption||v[h].HasBattery===a.HasLargeBatteryOption)&&a.AlertEbikeShipment!==null&&typeof a.AlertEbikeShipment!="undefined"&&o.addMessage(a.AlertEbikeShipment),(typeof v[h].HasBattery=="undefined"||v[h].HasBattery==="")&&(v[h].HasBattery=r.formData.hasBatteryOptions[0].value);for(r.isEvent=!1,r.isEvent=!1,typeof globals.bikeEvent!="undefined"&&t.url()!=="/ship"&&n(function(){yi(r,globals.bikeEvent);r.isEvent=!0;i.isEvent=!0},100),s=0,w=e.length;s<w;s++)e[s].PickupOption?e[s].PickupOption.value===1?(e[s].isPickup=!0,e[s].pickupFee=a.pickupFee):(e[s].isPickup=!1,e[s].pickupFee=0):(e[s].PickupOption=r.formData.pickupOptions[0],e[s].isPickup=!1,e[s].pickupFee=0),e[s].MethodSelection?e[s].MethodSelection.value===1?e[s].dateType="S":e[s].MethodSelection.value===2&&(e[s].dateType="D"):(e[s].MethodSelection=r.formData.methodOptions[0],e[s].dateType="S");r.validationErrors=[];i.$on("methodOptionsLoaded",function(){for(var n=0,t=e.length;n<t;n++)ii(r,n)===!0&&(e[n].isPickup=!1,e[n].pickupFee=0,e[n].PickupOption=r.formData.pickupOptions[0]),bt(r,n)});r.submitButtonText=i.submitButtonText!==null&&typeof i.submitButtonText!="undefined"&&i.submitButtonText!==""?i.submitButtonText:"Search";r.currentUser=nt.getProfile();r.currentUser.isLoggedIn&&(nt.getAddresses(),nt.getUserPackages(),nt.getDiscounts(),u.loadUserSearches(a.Skip,a.Take));i.$on("savedSearchesLoaded",function(){r.savedSearch=f.model.searches});i.$on("detailedAddressAvailable",function(n,t){typeof r.addresses=="undefined"&&(r.addresses=[]);var i={displayName:"- - - - - YOUR DETAILED ADDRESSES - - - - -",address1:"3",label:"detailedAddresses",orderBy:1500,shipLocationId:0};l.addressInArray(r.addresses,i)||r.addresses.push(i);l.addressInArray(r.addresses,t)||(t.orderBy=1500+r.addresses.length,r.addresses.push(t),gt(r.addresses),dt(r,t.fromOrTo,t.index,t))});i.$on("userAddressesLoaded",function(){var t,n,i;for(r.hasAddresses=r.hasAddresses||r.currentUser.addresses.length>0,typeof r.addresses=="undefined"&&(r.addresses=[]),t={displayName:"- - - - - YOUR SAVED LOCATIONS - - - - -",address1:"2",label:"savedAddresses",orderBy:1e3,shipLocationId:0},l.addressInArray(r.addresses,t)||r.addresses.push(t),n=0,i=r.currentUser.addresses.length;n<i;n++)l.addressInArray(r.addresses,r.currentUser.addresses[n])||(r.currentUser.addresses[n].orderBy=1001+n,r.addresses.push(r.currentUser.addresses[n]));gt(r.addresses)});i.$on("userPackagesLoaded",function(){k.mergeUserPackages();k.preparePackageOptions()});i.$broadcast("cleanUp")},300);r.submitted=!1;r.submitButtonText="Search";i.$on("newResults",function(){i.nextTab?i.serializedSearchData&&(h.model=f.parseSerializedSearchData(i.serializedSearchData),i.serializedSearchData=null):i.nextTab="results";p.openTab(i.nextTab);r.submitButtonText="Update";i.nextTab=""});u.parseSavedSearches();r.$on("savedSearchLoaded",function(n,t){at(t[0],r)});c=w.checkForCoupon();s=l.getVariable("sourceid");s&&(i.siteId=s);w.coupon!==undefined&&n(function(){i.$broadcast("couponDiscount",w.coupon)},500);r.formSetup=!0}function ut(n){var t=n.searchCriteria,r;return typeof t=="undefined"||t===null?!1:(t.Stages.length<a.MaxStages?(r=t.Stages.length,t.Stages.push({fromCompany:"",fromCity:"",fromCountry:"",fromCountryCode:"",fromDisplayAddress:"",fromFullAddress:"",fromFullAddressValid:"",fromLocation:"",fromPostalCode:"",fromState:"",fromStreetAddress:"",toCompany:"",toCity:"",toCountry:"",toCountryCode:"",toDisplayAddress:"",toFullAddress:"",toFullAddressValid:"",toLocation:"",toPostalCode:"",toState:"",toStreetAddress:"",date:"",dateType:"S",PackageDescription:[],stage:r,PickupOption:n.formData.pickupOptions[0],MethodSelection:n.formData.methodOptions[0],Packages:[{Name:a.Text_SelectPackage,Length:null,Height:null,Width:null,LinearUnit:"in",Weight:null,WeightUnit:"lbs",Value:0,Description:""}]})):o.addError(a.AlertMaxStageWarning,null),i.$broadcast("cleanUp"),!0)}function wi(n){var t=n.searchCriteria,r,f,u,e;if(typeof t=="undefined"||t===null)return!1;for(r=0,f=t.Stages.length;r<f;r++)t.Stages[r]={fromFullAddress:"",fromDisplayAddress:"",fromLocation:null,fromPostalCode:"",toFullAddress:"",toDisplayAddress:"",toLocation:null,date:null,dateType:"S",PackageDescription:{}};for(u=0,e=t.Packages.length;u<e;u++)t.Packages[u]=angular.copy(vt);return n.submitted=!1,i.$broadcast("cleanUp"),it.SaveState(),h.SaveState(),!0}function bi(n,t){var i=n.searchCriteria;return typeof i=="undefined"||i===null?!1:(i.Stages.length>1&&(i.Stages.splice(t,1),o.removeError(a.AlertMaxStageWarning)),!0)}function ki(n){for(var t=n.searchCriteria,i=parseInt(t.NumPackages),u=n.searchCriteria.Stages,r=0,f=u.length;r<f;r++)u[r].PackageDescription.length=i;for(t.Packages.length>i&&(t.Packages=t.Packages.slice(0,i));t.Packages.length<i;)t.Packages.push(angular.copy(vt));ct()}function di(n,t,i){var u=n.searchCriteria,f,e;if(i===null||i.Name.startsWith("- - - -"))return u.Packages[t].Name=null,!1;u.Packages[t].Name=i.Name;var s=u.Packages[t].LinearUnit,h=u.Packages[t].WeightUnit,r=i;if(o.removeError(a.AlertEbikeShipment),typeof r.HasBattery!="undefined"&&r.HasBattery!==null&&(u.Packages[t].HasBattery=r.HasBattery),r.isEbike?(o.addMessage(a.AlertEbikeShipment),u.Packages[t].isDangerous=!0):u.Packages[t].isDangerous=!1,s==="in"?(u.Packages[t].Length=r.Length,u.Packages[t].Width=r.Width,u.Packages[t].Height=r.Height):(u.Packages[t].Length=r.CmLength,u.Packages[t].Width=r.CmWidth,u.Packages[t].Height=r.CmHeight),(r.userPackageId!==null||typeof r.userPackageId!="undefined")&&(u.Packages[t].Weight=h==="lbs"?r.Weight:r.KgWeight,r.Value>0&&(u.Packages[t].Value=r.Value),u.Worth=r.marketValue,u.CategoryCode=r.CategoryCode,u.HasBattery=r.hasBattery),!l.isStringUndefinedOrEmpty(r.Description))for(f=0,e=n.searchCriteria.Stages.length;f<e;f++)typeof n.searchCriteria.Stages[f].PackageDescription[t]!="undefined"&&(n.searchCriteria.Stages[f].PackageDescription[t].Description=r.Description);if(!l.isStringUndefinedOrEmpty(r.Value))for(f=0,e=n.searchCriteria.Stages.length;f<e;f++)typeof n.searchCriteria.Stages[f].PackageDescription[t]!="undefined"&&(n.searchCriteria.Stages[f].PackageDescription[t].Value=r.Value,n.searchCriteria.Stages[f].PackageDescription[t].InsuranceCost=k.getInsuranceCost(r.Value));return ct(),st(n),!0}function gi(n,t){o.removeError(a.AlertEbikeShipment);o.removeError(a.AlertEstimatedDimensions);var i=n.searchCriteria;i.Packages[t].Name=n.formData.packageNames[0];i.Packages[t].Length="";i.Packages[t].Width="";i.Packages[t].Height="";i.Packages[t].Weight="";i.Packages[t].HasBattery=a.HasBatteryQuestion;i.Packages[t].isExact=!0;st(n)}function nr(n,t){var i=n.searchCriteria,r,u;for(t==="in"?(i.LinearUnit="In",i.WeightUnit="Lbs"):(i.LinearUnit="Cm",i.WeightUnit="Kgs"),r=0,u=i.Packages.length;r<u;r++)i.Packages[r].LinearUnit==="cm"&&t==="in"&&(i.Packages[r].Length=l.cmToIn(i.Packages[r].Length),i.Packages[r].Width=l.cmToIn(i.Packages[r].Width),i.Packages[r].Height=l.cmToIn(i.Packages[r].Height)),i.Packages[r].LinearUnit==="in"&&t==="cm"&&(i.Packages[r].Length=l.inToCm(i.Packages[r].Length),i.Packages[r].Width=l.inToCm(i.Packages[r].Width),i.Packages[r].Height=l.inToCm(i.Packages[r].Height)),i.Packages[r].WeightUnit==="kgs"&&t==="in"&&(i.Packages[r].Weight=l.kgToLb(i.Packages[r].Weight)),i.Packages[r].WeightUnit==="lbs"&&t==="cm"&&(i.Packages[r].Weight=l.lbToKg(i.Packages[r].Weight)),i.Packages[r].LinearUnit=t,i.Packages[r].WeightUnit=t==="in"?"lbs":"kgs"}function ni(n){var t=n.searchCriteria;t.Mode=1;t.Stages.splice(1,t.Stages.length);i.$broadcast("cleanUp")}function ti(n){var t=n.searchCriteria;if(t.Mode=2,t.Stages.length>2)t.Stages.splice(2,t.Stages.length);else if(t.Stages.length<2)while(t.Stages.length<2)ut(n);t.Stages[0].ReturnPickupOption=n.formData.pickupOptions[0];t.Stages[0].ReturnMethodSelection=n.formData.methodOptions[0];t.Stages[0].roundtripdate=t.Stages[1].date;i.$broadcast("cleanUp")}function tr(n){var t=n.searchCriteria;if(t.Stages.length<3)while(t.Stages.length<3)ut(n);t.Mode=3;i.$broadcast("cleanUp")}function ir(n,t){var r=n.searchCriteria;if(r.Stages.length<t)while(r.Stages.length<t)ut(n);else r.Stages.splice(t,r.Stages.length);r.Mode=3;i.$broadcast("cleanUp")}function rr(n,t,i){var u=n.searchCriteria.Stages[i],r,f;if(u.fromUserEntered=u.fromFullAddress,r=t.target.value,r===""){n.searchCriteria.Stages[i].fromFullAddressValid=!1;return}if(u.lastValidFromAddress===r){n.searchCriteria.Stages[i].fromFullAddressValid=!0;return}r!==""&&(f=new google.maps.places.AutocompleteService,f.getQueryPredictions({input:r},function(t,u){u===google.maps.places.PlacesServiceStatus.ZERO_RESULTS?c.geocode({address:r}).then(function(t){if(t.length===1){var r=t[0].formatted_address,u=e.getShipLocation(t,r);rt(u,n,i,"from")}}):n.searchCriteria.Stages[i].fromFullAddressValid=!1}))}function ur(n,t,r){n.searchCriteria.Stages[r].fromUserEntered=n.searchCriteria.Stages[r].fromFullAddress;var f=e.getAddressComponent([t],"postal_code"),o=t.formatted_address,u=e.getShipLocation([t],o);f===!1&&u.postalCode!==""&&(f=u.postalCode);n.searchCriteria.HasAdjustedFromPostalCode=!1;u.countryCode==="KR"&&u.postalCode.length===7?(g.getConvertedPostalCode(u.postalCode).then(function(t){yt(n,r,u,"from",t.data);n.searchCriteria.HasAdjustedFromPostalCode=!0},function(){}),rt(u,n,r,"from")):(f?b.avsTest(u.city,u.state,u.postalCode,u.countryCode).then(function(t){var f=t.data,e,o;if(f.Success===!0)for(f.ValidOptions.length>1&&(i.FromValidOptions=f.ValidOptions,i.$broadcast("HaveFromAddressOptions")),e=0,o=f.ValidOptions.length;e<o;e++)if(f.ValidOptions[e].PostalCode===u.postalCode){u.postalCode=f.ValidOptions[e].PostalCode;u.city=f.ValidOptions[e].City;u.state=f.ValidOptions[e].State;u.countryCode=f.ValidOptions[e].CountryCode;rt(u,n,r,"from");break}},function(){}):g.getLocationResolution(u.city,u.state,u.postalCode,u.countryCode).then(function(t){var i=t.data;u.postalCode=i.PostalCode;u.city=l.titleCase(i.City);u.state=i.State;rt(u,n,r,"from")},function(){}),rt(u,n,r,"from"))}function fr(n,t,i){var u=n.searchCriteria.Stages[i],r,f;if(u.toUserEntered=u.toFullAddress,r=t.target.value,r===""){n.searchCriteria.Stages[i].toFullAddressValid=!1;return}if(u.lastValidToAddress===r){n.searchCriteria.Stages[i].toFullAddressValid=!0;return}r!==""&&(f=new google.maps.places.AutocompleteService,f.getQueryPredictions({input:r},function(t,u){u===google.maps.places.PlacesServiceStatus.ZERO_RESULTS?c.geocode({address:r}).then(function(t){if(t.length===1){var r=t[0].formatted_address,u=e.getShipLocation(t,r);rt(u,n,i,"to")}},function(){}):n.searchCriteria.Stages[i].toFullAddressValid=!1}))}function er(n,t,r){n.searchCriteria.Stages[r].toUserEntered=n.searchCriteria.Stages[r].toFullAddress;var f=e.getAddressComponent([t],"postal_code"),o=t.formatted_address,u=e.getShipLocation([t],o);f===!1&&u.postalCode!==""&&(f=u.postalCode);n.searchCriteria.HasAdjustedToPostalCode=!1;u.countryCode==="KR"&&u.postalCode.length===7?(g.getConvertedPostalCode(u.postalCode).then(function(t){yt(n,r,u,"to",t.data);n.searchCriteria.HasAdjustedToPostalCode=!0},function(){}),rt(u,n,r,"to")):(f?b.avsTest(u.city,u.state,u.postalCode,u.countryCode).then(function(t){var f=t.data,e,o;if(f.Success===!0)for(f.ValidOptions.length>1&&(i.ToValidOptions=f.ValidOptions,i.$broadcast("HaveToAddressOptions")),e=0,o=f.ValidOptions.length;e<o;e++)if(f.ValidOptions[e].PostalCode===u.postalCode){u.postalCode=f.ValidOptions[e].PostalCode;u.city=f.ValidOptions[e].City;u.state=f.ValidOptions[e].State;u.countryCode=f.ValidOptions[e].CountryCode;rt(u,n,r,"to");break}},function(){}):g.getLocationResolution(u.city,u.state,u.postalCode,u.countryCode).then(function(t){var i=t.data;u.postalCode=i.PostalCode;u.state=i.State;rt(u,n,r,"to")},function(){}),rt(u,n,r,"to"))}function or(n){if(n.submitted=!0,i.nextTab="results",lt(n)===!0){if(n.shipSearchForm.$valid)return kt(n),!0;o.addMessage(a.AlertValidationWarning)}else i.$broadcast("invalidFocus");return!1}function ft(n,t){vi(n,t)}function ii(n,t){var i=n.searchCriteria,u;return i.Stages[t].date==="Invalid date"?(i.Stages[t].date=null,!1):(u=i.Stages[t].date,r.isShipDateToday(u))?(i.Stages[t].isShipDateToday=!0,i.Stages[t].isPickup="false",i.Stages[t].dateType="S",!0):(i.Stages[t].isShipDateToday=!1,o.removeErrorByKey("SameDayPickup"),!1)}function sr(n){lt(n)}function hr(n){var r,t,u;if(o.removeError(a.AlertEbikeShipment),a.AlertEbikeShipment!==null&&typeof a.AlertEbikeShipment!="undefined")for(r=n.searchCriteria.Packages,t=0,u=r.length;t<u;t++)r[t].isDangerous=r[t].HasBattery===a.HasBatteryOnlyOption,(r[t].HasBattery===null||typeof r[t].HasBattery=="undefined")&&(r[t].HasBattery="0"),(r[t].isDangerous||r[t].HasBattery===a.HasBatteryOnlyOption||r[t].HasBattery===a.HasLargeBatteryOption)&&o.addMessage(a.AlertEbikeShipment);i.$broadcast("priceChange")}function cr(n,t){var i=f.getSearchFromCode(n);i?at(i,t):u.getSearchByCode(n)}function ri(){for(var r=h.model.Stages,i=!0,n,t=0,u=r.length;t<u;t++)(n=r[t],n.fromCountryCode&&n.toCountryCode)&&(n.fromCountryCode!==n.toCountryCode&&(i=!1),l.isIntraEu(n.fromCountryCode,n.toCountryCode)&&(i=!0));return i}function at(n,t){n.searchDate=new Date;h.resetSettings();h.model=f.parseSerializedSearchData(n.serializedSearchData);i.selectAfterSearch=h.model.Selection||[];d.model.Selection=h.model.Selection||[];h.SaveState();kt(t);t.searchCriteria=h.model;i.nextTab=f.whichTabIsThisSearchAt(t.searchCriteria);i.serializedSearchData=n.serializedSearchData}function lr(n){p.openTab(n)}function ar(n,t){t.PickupOption||(t.PickupOption=n.formData.pickupOptions[0]);t.PickupOption&&t.PickupOption.cost===1?(t.isPickup=!0,t.pickupFee=a.PickupFee):(t.isPickup=!1,t.pickupFee=0)}function vr(n,t){t.ReturnPickupOption||(t.ReturnPickupOption=n.formData.pickupOptions[0]);t.ReturnPickupOption&&t.ReturnPickupOption.cost===1?(t.returnIsPickup=!0,t.returnPickupFee=a.pickupFee):(t.returnIsPickup=!1,t.returnPickupFee=0)}function yr(n,t,i){l.scrollToTop();tt.closeModals();tt.openModal(n,"lg","address.add",t,i)}function pr(n){var t=!n.safeDimensions;n.lengthInvalid=!1;n.lengthNearMax=!1;n.lengthOverMax=!1;n.widthInvalid=!1;n.widthNearMax=!1;n.widthOverMax=!1;n.heightInvalid=!1;n.heightNearMax=!1;n.heightOverMax=!1;n.weightInvalid=!1;n.weightNearMax=!1;n.weightOverMax=!1;n.worthInvalid=!1;n.dimensionalNearMax=!1;n.dimensionalOverMax=!1;n.Category.displayInvalid=typeof n.Category=="undefined"?!0:!1;n.preset.nameInvalid=typeof n.preset=="undefined"&&n.Name!=="Custom"?!0:!1;typeof n.Length=="undefined"&&(n.lengthInvalid=!0);typeof n.Width=="undefined"&&(n.widthInvalid=!0);typeof n.Height=="undefined"&&(n.heightInvalid=!0);typeof n.Weight=="undefined"&&(n.weightInvalid=!0);typeof n.Worth=="undefined"&&(n.worthInvalid=!0);typeof n.Name=="undefined"&&(n.nameInvalid=!0);n.Category.display==="Select..."||n.Category.display===""?n.Category.displayInvalid=!0:n.HasBattery=n.Category.cost===8010?a.HasSmallBatteryOption:n.Category.cost===8011?a.HasLargeBatteryOption:a.HasNoBatteryOption;n.preset.Name==="Select..."&&n.Name!=="Custom"&&(n.preset.nameInvalid=!0);v.setDimensionFlags(n,"length",v.validateDimension(n.Length,n.linearUnit),t);v.setDimensionFlags(n,"width",v.validateDimension(n.Width,n.linearUnit),t);v.setDimensionFlags(n,"height",v.validateDimension(n.Height,n.linearUnit),t);v.setDimensionFlags(n,"weight",v.validateDimension(n.Weight,n.weightUnit),t);var r=v.getDimensionalWeight(n.Length,n.Width,n.Height),i=165;return(n.linearUnit==="cm"&&(i=419),r>i)?(n.dimensionalOverMax=!0,!1):(r>i-10&&(n.dimensionalNearMax=t),n.lengthInvalid||n.lengthOverMax||n.widthInvalid||n.widthOverMax||n.heightInvalid||n.heightOverMax||n.weightInvalid||n.weightOverMax||n.worthInvalid||n.dimensionalOverMax||n.Category.displayInvalid||n.preset.nameInvalid)?!1:!0}function wr(n,t){var i=angular.copy(n);return pr(n)?(t.Packages||(t.Packages=[]),n.index===0)?(t.Packages.push(i),!0):(t.Packages[n.index]=i,!0):!1}function br(n,t){t.fromStreetAddress=n.address1;t.fromAddress2=n.address2;t.fromCity=n.city;t.fromState=n.state;t.fromPostalCode=n.postalCode;t.fromCountryCode=n.country;var i=n.company+" "+n.address1+" "+(n.address2?n.address2+" ":"")+n.city+", "+n.state+" "+n.postalCode+", "+n.country;t.fromFullAddress=i;t.fromCountry=k.getCountryFromCode(n.country);t.fromDisplayAddress=i;t.lastValidFromAddress=i;t.fromCompany=n.company;t.fromFullAddressValid=!0;t.fromFullAddressInvalid=!1;t.fromPhone=n.phone}function kr(n,t){t.toStreetAddress=n.address1;t.toAddress2=n.address2;t.toCity=n.city;t.toState=n.state;t.toPostalCode=n.postalCode;t.toCountryCode=n.country;var i=n.company+" "+n.address1+" "+(n.address2?n.address2+" ":"")+n.city+", "+n.state+" "+n.postalCode+", "+n.country;t.toFullAddress=i;t.lastValidToAddress=i;t.toCountry=k.getCountryFromCode(n.country);t.toDisplayAddress=i;t.toCompany=n.company;t.toFullAddressValid=!0;t.toFullAddressInvalid=!1;t.toPhone=n.phone}function dr(n){var t=n.passCommand;t.command==="shipToBikeShop"?kr(t.shipLocation,h.model.Stages[0]):t.command==="shipFromBikeShop"&&br(t.shipLocation,h.model.Stages[0]);n.passCommand=null}var it=null,vt={Name:null,Length:"",Width:"",Height:"",LinearUnit:"in",Weight:"",WeightUnit:"lbs",isEbike:0,SortOrder:0,HasBattery:0};return it={model:{},setupForm:pi,handleCommand:dr,doPackage:wr,addStage:ut,clearStages:wi,deleteStage:bi,setNumPackages:ki,setPackageDimensions:di,resetPackageOption:gi,setLinearUnit:nr,setOneWay:ni,setRoundTrip:ti,setMultiStage:tr,fromAddressBlur:rr,fromAddressPlaceChanged:ur,toAddressBlur:fr,toAddressPlaceChanged:er,submitFullSearch:or,checkDateFormat:ft,checkForSameDayShip:ii,validateForm:sr,validatePackages:wt,cleanDimensions:si,setAddressFromLocation:ht,nullifyZeroDimensions:ct,selectProfileAddress:dt,setHasBattery:hr,switchToSavedSearch:at,switchToSavedSearchByCode:cr,isDomestic:ri,openTab:lr,setPickupOptions:ar,setReturnPickupOptions:vr,addNewSavedAddress:yr,SaveState:function(){typeof it.model!="undefined"&&(sessionStorage.shipSearchFormFactory=angular.toJson(it.model))},RestoreState:function(){typeof sessionStorage.shipSearchFormFactory!="undefined"&&(it.model=angular.fromJson(sessionStorage.shipSearchFormFactory))},ClearState:function(){it.model={}}},i.$on("SaveState",it.SaveState),sessionStorage.shipSearchFormFactory&&it.RestoreState(),it}]);angular.module("shipApp").directive("showonhoverparent",function(){return{link:function(n,t){t.parent().bind("mouseenter",function(){t.show()});t.parent().bind("mouseleave",function(){t.hide()})}}}).filter("dimension",function(){return function(n){var t=""+n,i;return!n||!t||t.length<3||t.indexOf(".")>=t.length-3?n:(i=Math.round(n*100)/100,i===0)?null:i}}).filter("numeric").directive("format",["$filter",function(n){return{require:"?ngModel",link:function(t,i,r,u){u&&(u.$formatters.unshift(function(){return n(r.format)(u.$modelValue)}),i.bind("keyup",function(){var t=i.val().replace(/[^\d.]/g,"");i.val(n(r.format)(t))}))}}}]);angular.module("shipApp").controller("shipResultsController",["$scope","$rootScope","$location","$window","setting","shippingSearchFactory","shipResultsFormFactory","shippingResultFactory","shipResultsSelectedFactory","fareReviewFactory","spinnerFactory","formDataFactory","modalService","currentUser","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p){n.init=function(){var r,p,i,a,w,y;for(n.submitted=!1,n.speeds3=["Fast","Faster","Fastest"],n.speeds2=["Fastest","Fast"],n.speeds1=["Fastest"],n.trayFlags=[],n.settings=u,n.shippingResults=o.model,n.searchForm=f.model,n.formData=l.model.presets,n.selectedResultsFactory=s.model,n.shipResultsFormFactory=e.model,n.spinner=c,e.setupForm(n),n.fareReviewFactory=h.model,n.fareNotSelected=!0,n.currentUser=v.getProfile(),t.$on("logIn2.5",function(i,r){r&&(r==="guest"&&v.isGuest&&v.guest&&(v.guest.continueAsGuest=v.isGuest,f.model.contact=v.guest,t.contact=v.guest),e.resultsContinue(n))}),r=0,p=n.shippingResults.Results.length;r<p;r++){for(i=[],a=0,w=n.shippingResults.Results[r].length;a<w;a++)i.push({transitDays:n.shippingResults.Results[r][a].TransitDays,speed:""});i.sort(n.transitCompare);y=i.length;y===3?(i[0].speed="Fastest",i[1].speed="Faster",i[2].speed="Fast"):y===2?(i[0].speed="Fastest",i[1].speed="Fast"):y===1&&(i[0].speed="Fastest");n.shippingResults.Results[r].speeds=i}};n.transitCompare=function(n,t){return n.transitDays<t.transitDays?-1:n.transitDays>t.transitDays?1:0};n.shippingSpeedDisplay=function(t,i){for(var u=n.shippingResults.Results[t].speeds,r=0,f=u.length;r<f;r++)if(u[r].transitDays===i.TransitDays)return u[r].speed;return"Fast"};n.$on("$viewContentLoaded",function(){r.ga("send","pageview",{page:i.path(),title:n.$root.title})});n.setupCalendar=function(t){$("#calendar_"+t).hasClass("hasDatepicker")||e.setupCalendars(!0,n,"calendar_"+t)};n.stopClick=function(n){y.stopClick(n)};n.setTrayFlag=function(t,i,r){y.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i){y.toggleTrayFlag(t,i,n)};n.closeAllTrays=function(t,i){y.closeAllTrays(t,n,i)};n.setFocusFlag=function(t,i,r){p.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){p.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){p.clearFocus(t,n,i)};n.openProtectionTray=function(n){n.showProtectionTray=!0};n.closeProtectionTray=function(n){n.showProtectionTray=!1};n.openDateTray=function(n){n.showDateTray=!0};n.closeDateTray=function(n){n.showDateTray=!1};n.setTrayFlag=function(t,i,r){y.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i){y.toggleTrayFlag(t,i,n)};n.closeAllTrays=function(t,i){y.closeAllTrays(t,n,i)};n.setPickup=function(i,r){i.PickupOption=r;i.isPickup=r.cost===1;i.pickupFee=i.isPickup?u.PickupFee:0;i.pickupText=r.display;i.pickupSelected=r.cost>-1;t.$broadcast("priceChange");n.setTrayFlag("pickup"+i,!1,null);i.isPickup?e.setMinDate(i,1):e.setMinDate(i,0)};n.selectSpeed=function(t,i,r){e.selectSpeed(n,t,i,r)};n.isValid=function(){e.isValid(n)};n.resultsContinue=function(){if(n.submitted=!0,e.isValid(n)){var i=t.contact;n.currentUser.isLoggedIn||i?e.resultsContinue(n):a.openModal(n,"lg","login",1)}};n.backToSearchForm=function(){e.backToSearchForm()};t.$on("InitResults",function(){n.init()});n.init()}]);angular.module("shipApp").factory("shipResultsFormFactory",["$rootScope","$timeout","errorService","shipReviewFactory","shipDateFactory","shippingSearchFactory","helpersFactory","shipResultsSelectedFactory","shippingResultFactory","accordionFactory","customsService","serverValidationService","validationFactory","setting","trayFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){function rt(){for(var n=0,t=f.model.Packages.length;n<t;n++)if(f.model.Packages[n].HasBattery===v.HasLargeBatteryOption)return!0;return!1}function ut(){for(var t,n=0,i=s.model.Results.length;n<i;n++)for(t=s.model.Results[n].length-1;t>=0;t--)s.model.Results[n][t].ShortName!=="UGRND"&&s.model.Results[n].splice(t,1)}function d(){for(var t=s.model.Results,u=0,r=t.length,i,f,n=0;n<r;n++){if(t[n].length===0){r--;continue}for(i=0,f=t[n].length;i<f;i++)if(t[n][i].Selected==="1"){u++;break}}return u===r}function ft(t){if(t&&t[0]){for(var i=0,u=t.length;i<u;i++)st(t[i].Stage,t[i].ShortName);o.model.Selection=f.model.Selection||[];r.updateSelectedFare();n.$broadcast("priceChange");p.model.fareNotSelected=!d()}}function g(t){for(var u=f.model.Stages,b=f.model.Purpose,h=f.model.Packages,e=t.searchResults,k=u[0].fromCountryCode.toUpperCase(),l,o,p,s,w,a,r=0,y=u.length;r<y;r++)if(u[r].toCountryCode.toUpperCase()!==k){for(l=0,o=0,p=h.length;o<p;o++)h[o].Value=parseInt(h[o].Worth),l+=h[o].Value;for(s=0,w=e[r].length;s<w;s++){if(a=e[r][s].Rate+e[r][s].DangerousFee,!a||!l)return 0;c.getLandedCost(u[r].fromCountryCode,u[r].toCountryCode,u[r].toState,a,l,l,h,r,s,b.cost).then(function(t){if(i.removeError(v.NoDutiesAndTaxes),t.data===null){i.addMessage(v.NoDutiesAndTaxes);e[0][0].CustomsFee="TBD";return}var r=t.data.stage,u=t.data.result,f=t.data.clearanceFee;t.data.success===!1?(i.addMessage(v.NoDutiesAndTaxes),e[r][u].CustomsFee="TBD"):e[r][u].CustomsFee=f;n.$broadcast("priceChange")},function(){})}}}function w(n){for(var f=n.searchForm.Stages,r=n.shippingResults.Results,i=0,e=0,s=u.today(),t=0,o=f.length;t<o;t++)for(i=0,e=r[t].length;i<e;i++)r[t][i].Ship=null,r[t][i].Deliver=null,r[t][i].shipDateValid=!1,typeof f[t].date!="undefined"&&f[t].date!==null&&f[t].date!==""&&f[t].dateInvalid===!1&&(f[t].dateType==="S"?(r[t][i].Ship=f[t].date,r[t][i].Deliver=u.addShipDays(f[t].date,r[t][i].TransitDays)):f[t].dateType==="D"&&(r[t][i].Ship=u.addShipDays(f[t].date,r[t][i].TransitDays*-1),r[t][i].Deliver=f[t].date),r[t][i].shipDateValid=r[t][i].Ship<s?!1:!0)}function nt(t){t.searchResults=s.model.Results;rt()&&ut();ot();n.selectAfterSearch&&(ft(n.selectAfterSearch),n.selectedAfterSearch=null);w(t);r.resetDefaults();r.updateSelectedFare();b();n.$broadcast("priceChange")}function b(){var a,u,n,l,h,r;if(!v.AlertCAPersonalEffects||!v.NoDutiesAndTaxes)return!1;var t=f.model.Stages,o=!1,c=!0;for(i.removeError(v.AlertCAPersonalEffects),a=!1,u=!0,n=0,l=t.length;n<l;n++)if(t[n].fromCountryCode!=="US"||t[n].toCountryCode!=="US"){if(t[n].International=!0,o=!0,f.model.Customs&&f.model.Customs.Purpose&&(h=f.model.Customs.Purpose,u=h.cost===4e3||h.cost===4003,t[n].isPersonal=u,u))for(r=s.model.Results[n].length-1;r>=0;r--)s.model.Results[n][r].ShortName==="UGRND"&&s.model.Results[n].splice(r,1);c=c&&e.isCountryEu(t[n].fromCountryCode)&&e.isCountryEu(t[n].toCountryCode)}return i.removeError(v.InternationalDelay),p.model.isInternational=o,o&&i.addMessage(v.InternationalDelay),!0}function et(i){tt(!0,i);n.$on("newResults",function(){n.handledNewResults||(nt(i),b(),p.model.isInternational&&g(i),n.handledNewResults=!0)});t(function(){n.$broadcast("cleanUp");for(var t=0,r=i.searchForm.Stages.length;t<r;t++)it(i.searchForm.Stages[t],0)},500)}function ot(){var t,n,i;if(typeof f.model.Selection=="undefined"&&(f.model.Selection=[]),typeof o.model.Selection=="undefined"&&(o.model.Selection=[]),t=s.model.Results,!t)return!1;for(n=0,i=t.length;n<i;n++)t[n][0].Selected=!0,f.model.Selection[n]=t[n][0],o.model.Selection[n]=t[n][0];return!0}function st(n,t){var r=s.model.Results[n],i,u;if(!r)return!1;for(typeof f.model.Selection=="undefined"&&(f.model.Selection=[]),i=0,u=r.length;i<u;i++)if(r[i].ShortName===t)return f.model.Selection[n]=r[i],!0;return!1}function ht(t,i,u,f){for(var h=s.model.Results,l,e=0,c=h[f].length;e<c;e++)h[f][e].Selected=!1;l=o.model.Selection;u.Selected=!0;l[f]=u;t.searchForm.Selection=o.model.Selection;r.updateSelectedFare();n.$broadcast("priceChange");p.model.fareNotSelected=!d()}function ct(){var n=o.model.Selection,t,e,u;n||(r.resetDefaults(),r.updateSelectedFare(),n=o.model.Selection);var s=f.model.Stages,i=!1;for(t=0,e=n.length;t<e;t++)u=n[t],(typeof u.Total=="undefined"||u.Total===0)&&(i=!0);p.model.fareNotSelected=i;i===!1&&h.openTab("addresses")}function lt(){h.openTab("search")}function tt(n,t,i){var r,f,h;l.getNextAvailablePickupDate();var o=new Date,s=o,e={numberOfMonths:1,showButtonPanel:!1,dateFormat:"M dd, yy",minDate:s,beforeShowDay:u.noWeekendsOrHolidays,beforeShow:function(n,t){var r=$(t).datepicker("widget"),i=$(n).outerWidth()-r.outerWidth();i<-45&&i>-100&&(i=-45,r.css("font-size",".96em"));r.css("margin-left",i);setTimeout(function(){$(".ui-datepicker").css({"z-index":99999999999999,padding:"10px"})},0)},onSelect:vt};i?(r=i.split("_"),r.length===2&&(f=r[1],f>0&&(h=$("#calendar_"+f-1))),$("#"+i).datepicker(e)):$(".datepicker").datepicker(e)}function at(n){var f=n.id,r=f.split("_"),i,u,t,e;if(r.length>1){if(i=parseInt(r[1]),u=$("#calendar_"+i+1),!u)return;t=new Date(n.selectedYear,n.selectedMonth,n.selectedDay);e=new Date(t.setDate(t.getDate()+1));k(i,t)}}function vt(n,t){at(t);var u=t.id,o=u.replace("calendar_","stage_"),i=angular.element("#"+o).scope();if(y.setTrayFlag(u,!1,null,i),a.isDate(n,v.MomentInputDateFormat)){i.stage.date=n;i.stage.dateInvalid=!1;var r=new Date,f=new Date(r.getFullYear(),r.getMonth(),r.getDate()),e=new Date(t.selectedYear,t.selectedMonth,t.selectedDay);e.toString()===f.toString()?(i.stage.deliveryByOption=!1,i.stage.pickupOption=!1):e>f&&(i.stage.deliveryByOption=!0,i.stage.pickupOption=!0);w(i)}else i.stage.date="",i.stage.dateInvalid=!0;i.$apply();p.isValid(i)}function k(n,i){t(function(){var t=new Date(i),r=$(".datepicker");r.each(function(){var i=parseInt(this.getAttribute("data-index"));i>n&&$(this).datepicker("option","minDate",t)})},400)}function it(n,t){var i=$(".datepicker"),r=new Date,o=new Date(r.getFullYear(),r.getMonth(),r.getDate()),f=u.addShipDays(o,t),e;typeof i=="object"?(e=parseInt(i[0].getAttribute("data-index")),e===n.stage&&($(i).datepicker("option","minDate",f),k(n.stage,n.date))):typeof i!="undefined"&&i.each(function(){var t=parseInt(this.getAttribute("data-index"));t===n.stage&&($(this).datepicker("option","minDate",f),k(n.stage,n.date))})}function yt(n){for(var f=!0,r=n.searchForm.Stages,e,s,t=0,o=r.length;t<o;t++)r[t].pickupSelected?r[t].pickupInvalid=!1:(r[t].pickupInvalid=!0,f=!1),r[t].date&&a.isDate(r[t].date)?r[t].dateInvalid=!1:(r[t].dateInvalid=!0,f=!1),i.removeError(v.AlertSameDayPickup),r[t].isPickup&&u.isShipDateToday(r[t].date)&&(r[t].dateInvalid=!0,f=!1,e=angular.copy(v.AlertSameDayPickup),s=u.addShipDays(u.today(),1),e.Message=e.Message.replace("#PICKUPDATE#",moment(s).format(v.MomentInputDateFormat)),i.addMessage(e));return f}var p=null;return p={model:{},setupForm:et,isValid:yt,setupCalendars:tt,applyNewResults:nt,selectSpeed:ht,resultsContinue:ct,checkForWarnings:b,backToSearchForm:lt,getLandedCost:g,setMinDate:it,resetShipAndDeliveryDates:w}}]);angular.module("shipApp").factory("shipResultsSelectedFactory",["$rootScope",function(n){var i={Selection:[]},t={model:i,SaveState:function(){sessionStorage.shipResultsSelectedFactory=angular.toJson(t.model)},RestoreState:function(){t.model=angular.fromJson(sessionStorage.shipResultsSelectedFactory)},ClearState:function(){t.model=i;t.SaveState()}};return n.$on("SaveState",t.SaveState),n.$on("ClearState",t.ClearState),sessionStorage.shipResultsSelectedFactory&&t.RestoreState(),t}]);angular.module("shipApp").factory("shipReviewFactory",["$rootScope","$timeout","$q","$location","errorService","shipAddressesFormFactory","helpersFactory","shipResultsSelectedFactory","shippingResultFactory","accordionFactory","setting",function(n,t,i,r,u,f,e,o,s,h){function l(){for(var i=0,t=o.model.Selection,n=0,r=t.length;n<r;n++)i+=t[n].Total+t[n].PickupFee+t[n].ResidentialFee+t[n].InsuranceFee+t[n].DangerousFee;o.model.shippingTotal=i}function a(){}function v(){n.$on("newResults",function(){h.model.Section.results.isOpen===!0?(c.model.Text.reviewButton="Continue",c.model.Text.subtotal="Subtotal (USD)",c.model.Text.reviewPrompt="Click Continue to add pickups and insurance to get an Order Total.",c.model.Text.showSecureSeal=!1):h.model.Section.addresses.isOpen===!0?(c.model.Text.reviewButton="Go to Checkout",c.model.Text.subtotal="Subtotal (USD)",c.model.Text.reviewPrompt="",c.model.Text.showSecureSeal=!0):(c.model.Text.reviewButton="Continue",c.model.Text.subtotal="Subtotal (USD)",c.model.Text.reviewPrompt="Click Continue to add pickups and insurance to get an Order Total.",c.model.Text.showSecureSeal=!1)});n.$on("priceChange",function(){l()})}function y(){sessionStorage.shipReviewFactory=angular.toJson(c.model)}function p(){c.model=angular.fromJson(sessionStorage.shipReviewFactory)}var c;return c={setupView:v,resetDefaults:a,updateSelectedFare:l,model:{Text:{subtotal:"Subtotal (USD)",reviewButton:"Continue",reviewPrompt:"Click Continue enter your addresses and choose pickup, delivery and insurance options.",showSecureSeal:!1}},saveState:y,restoreState:p},n.$on("SaveState",c.saveState),sessionStorage.shipReviewFactory&&c.restoreState(),c}]);angular.module("shipApp").controller("shipReviewController",["$scope","$rootScope","$location","$window","setting","shipReviewFactory","shippingResultFactory","shippingSearchFactory","shipResultsSelectedFactory","helpersFactory",function(n,t,i,r,u,f,e,o,s){n.init=function(){n.settings=u;n.searchResults=e.model.Results;n.shippingSearchFactory=o.model;n.selectedResultsFactory=s.model;f.setupView(n);f.updateSelectedFare()};n.$on("$viewContentLoaded",function(){r.ga("send","pageview",{page:i.path(),title:n.$root.title})});t.$on("InitShipReview",function(){n.init()});n.init()}]);angular.module("shipApp").factory("fareReviewFactory",["$rootScope","$timeout","shipResultsSelectedFactory","shipReviewFactory","shippingSearchFactory","validateAddressResponseFactory","validateAddressRequestFactory","shipPaymentFormFactory","validationFactory","accordionFactory","formDataFactory","setting",function(n,t,i,r,u,f,e,o,s,h,c,l){function w(n){var t=u.model.Stages[n],r=0,i,f;if(s.isEmpty(t)===!1&&s.isEmpty(t.Packages)===!1)for(i=0,f=t.PackageDescription.length;i<f;i++)typeof t.PackageDescription[i]!="undefined"&&t.PackageDescription[i]!==null&&angular.isNumber(t.PackageDescription[i].InsuranceCost)&&(r+=t.PackageDescription[i].InsuranceCost);return r}function b(n){var t=u.model.Stages[n],r=0,i,f;if(s.isEmpty(t)===!1&&s.isEmpty(t.PackageDescription)===!1)for(i=0,f=t.PackageDescription.length;i<f;i++)typeof t.PackageDescription[i]!="undefined"&&t.PackageDescription[i]!==null&&(r+=angular.isNumber(t.PackageDescription[i].Value)?t.PackageDescription[i].Value:0);return r}function k(n){return(n=u.model.Stages[n],s.isEmpty(n)===!1&&typeof n.residential!="undefined")?n.residential:!1}function d(n){if(typeof n=="undefined")return!1;var t=u.model.Mode,i=1,r=2,f=4,e=8;return(i&n)===i?!0:t===1&&(r&n)===r?!0:t===2&&(f&n)===f?!0:t===3&&(e&n)===e?!0:!1}function g(n){var u,f,t,r;if(typeof n=="undefined"||(u=i.model.Selection,u.length===0))return!1;var e=1,o=2,s=4,h=8,c=16,l=32,a=64;for(f=0;f<u.length;f++)if(t=u[f],r=!1,(e&n)===e&&(r=!0),t.ShortName==="UGRND"&&(o&n)===o&&(r=!0),(t.ShortName==="U1DAY"||t.ShortName==="UNDA"||t.ShortName==="UNDAE")&&(s&n)===s&&(r=!0),(t.ShortName==="U2DAY"||t.ShortName==="U2DAM")&&(h&n)===h&&(r=!0),t.ShortName==="U3DAY"&&(c&n)===c&&(r=!0),t.ShortName==="UWWS"&&(l&n)===l&&(r=!0),(t.ShortName==="UXPRS"||t.ShortName==="UXPED")&&(a&n)===a&&(r=!0),!r)return!1;return!0}function nt(n,t){for(var o=l.HazmatFee,u=0,i,e,r=0,f=t.Stages.length;r<f;r++){for(i=0,e=t.Packages.length;i<e;i++)t.Stages[r].PackageDescription[i]=t.Stages[r].PackageDescription[i]||{},(typeof t.Stages[r].PackageDescription[i].isDangerous=="undefined"||t.Stages[r].PackageDescription[i].isDangerous===null)&&(t.Stages[r].PackageDescription[i].isDangerous=t.Packages[i].isDangerous||t.Packages[i].HasBattery===l.HasBatteryOnlyOption),t.Packages[i].HasBattery===l.HasBatteryOnlyOption?(t.Packages[i].isDangerous=!0,t.Stages[r].PackageDescription[i].isDangerous=!0):(t.Packages[i].isDangerous=!1,t.Stages[r].PackageDescription[i].isDangerous=!1),(t.Stages[r].PackageDescription[i].isDangerous||t.Packages[i].isDangerous)&&(u+=o);typeof n[r]=="undefined"&&(n[r]={});n[r].DangerousFee=u;u=0}}function v(){var f=0,s=0,ct=0,p=0,e=0,r,t,n,ut,ft,et,it,rt;for(a.model.selectedFares=[],r=i.model.Selection,t=h.model.Section,nt(r,u.model),n=0,ut=r.length;n<ut;n++){if(typeof u.model.Stages[n]=="undefined"){r.splice(n,1);continue}ft=u.model.Stages[n].fromCountryCode==="US"&&u.model.Stages[n].toCountryCode==="US";et=!1;u.model.Customs&&u.model.Customs.Purpose&&(et=u.model.Customs.Purpose.cost===4e3||u.model.Customs.Purpose.cost===4003);var ot=typeof u.model.Stages[n].Packages=="undefined"?0:u.model.Stages[n].Packages.length,c=w(n),v=r[n].CustomsFee,st=b(n),tt=(k(n)?l.ResidentialFee:0)*ot,lt=u.model.Stages[n].isPickup===!0||u.model.Stages[n].isPickup==="true"||u.model.Stages[n].pickupFee>0,y=lt?l.PickupFee:0,ht=r[n].DangerousFee;e+=ht;e+=y;e+=v==="TBD"?0:v;ct+=c;i.model.Selection[n].InsuranceFee=c;i.model.Selection[n].InsuranceValue=st;i.model.Selection[n].ResidentialFee=tt;i.model.Selection[n].PickupFee=y;i.model.Selection[n].CustomsFee=v;a.model.selectedFares.push({Stage:n,Fare:r[n].Rate,Insurance:c,InsuranceValue:st,CustomsFee:ft?0:v,Residential:tt,Dangerous:ht,Pickup:y,PickupFee:y});p+=typeof r[n].Rate=="undefined"?0:r[n].Rate;t.results.isOpen===!1&&t.search.isOpen===!1&&(t.addresses.isOpen===!0||t.insurance.isOpen===!0||t.payment.isOpen===!0)&&(e+=tt);t.results.isOpen===!1&&t.search.isOpen===!1&&t.addresses.isOpen===!1&&(t.insurance.isOpen===!0||t.payment.isOpen===!0)&&(e+=c)}typeof a.model.orderMinimum=="undefined"&&(a.model.orderMinimum=0);it=p+e;d(a.model.couponTripType)&&g(a.model.couponShippingSpeed)&&a.model.coupon.PackageMinimum<=ot&&it>=a.model.orderMinimum&&(a.model.discountType===1&&(s=a.model.discount*it),a.model.discountType===2&&(s=a.model.discount),a.model.discountType===4&&(s=a.model.discount*r.length));f=p+e;rt=0;o!==undefined&&o.model!==undefined&&o.model!==null&&o.model.donationCharity!==undefined&&o.model.donationCharity!==null&&(rt=o.model.donationCharity.Amount);i.model.discountAmount=s;a.model.discountAmount=s;t.payment.isOpen===!0&&(f+=rt);f=f-s;f<0&&(f=0);a.model.total=f;i.model.shippingTotal=f;i.SaveState()}function y(){var n=f.model.validatedAddress,r,t,e,i,o;if(typeof n=="undefined"||n===null)return!1;for(r=u.model.Stages,t=0,e=r.length;t<e;t++)for(i=0,o=n.length;i<o;i++)f.isToAddressSame(r[t],n[i].ValidOptions[0])&&(r[t].residential=n[i].Residential);return!0}function tt(n,t){return typeof n!="undefined"&&typeof t!="undefined"&&n!==null&&t!==null&&((""+n.fromStreetAddress).toUpperCase()!==(""+t.Address1).toUpperCase()||(""+n.Address2).toUpperCase()!==(""+t.Address2).toUpperCase()||(""+n.fromCity).toUpperCase()!==(""+t.City).toUpperCase()||(""+n.fromState).toUpperCase()!==(""+t.State).toUpperCase()||(""+n.fromPostalCode).toUpperCase()!==(""+t.PostalCode+(t.PostalCodeExt?"-"+t.PostalCodeExt:"")).toUpperCase()||(""+n.fromCountryCode).toUpperCase()!==(""+t.CountryCode).toUpperCase())?(n.fromStreetAddress=t.Address1,n.fromAddress2=t.Address2,n.fromCity=t.City,n.fromState=t.State,n.fromCountryCode=t.CountryCode,typeof t.PostalCode!="undefined"&&t.PostalCode!==""&&(n.fromPostalCode=t.PostalCode+(t.PostalCodeExt?"-"+t.PostalCodeExt:"")),!0):!1}function it(n,t){return typeof n!="undefined"&&typeof t!="undefined"&&n!==null&&t!==null&&((""+n.toStreetAddress).toUpperCase()!==(""+t.Address1).toUpperCase()||(""+n.Address2).toUpperCase()!==(""+t.Address2).toUpperCase()||(""+n.toCity).toUpperCase()!==(""+t.City).toUpperCase()||(""+n.toState).toUpperCase()!==(""+t.State).toUpperCase()||(""+n.toPostalCode).toUpperCase()!==(""+t.PostalCode+(t.PostalCodeExt?"-"+t.PostalCodeExt:"")).toUpperCase()||(""+n.toCountryCode).toUpperCase()!==(""+t.CountryCode).toUpperCase())?(n.toStreetAddress=t.Address1,n.toAddress2=t.Address2,n.toCity=t.City,n.toState=t.State,n.toCountryCode=t.CountryCode,typeof t.PostalCode!="undefined"&&t.PostalCode!==""&&(n.toPostalCode=t.PostalCode+(t.PostalCodeExt?"-"+t.PostalCodeExt:"")),!0):!1}function p(){var e=!1,n=f.model.validatedAddress,r,i,o,t,s,h,c;if(typeof n=="undefined"||n===null)return!1;for(r=u.model.Stages,typeof f.model.originalFrom=="undefined"&&(f.model.originalFrom=[]),typeof f.model.originalTo=="undefined"&&(f.model.originalTo=[]),i=0,o=r.length;i<o;i++)for(t=0,s=n.length;t<s;t++)f.isFromAddressSame(r[i],n[t].Address)&&(n[t].Resolved===!0&&n[t].Success===!0&&(f.model.originalFrom[i]=n[t].Address,h=tt(r[i],n[t].ValidOptions[0]),e=e||h),r[i].fromPassedAvs=!0),f.isToAddressSame(r[i],n[t].Address)&&(n[t].Resolved===!0&&n[t].Success===!0&&(f.model.originalTo[i]=n[t].Address,c=it(r[i],n[t].ValidOptions[0]),e=e||c),r[i].toPassedAvs=!0);return e}function rt(){n.$on("priceChange",function(){r.updateSelectedFare();v()});n.$on("newResults",function(){r.resetDefaults();r.updateSelectedFare();v()});n.$on("addressValidationComplete",function(t,i){e.model.state==="valid"?(e.model.changed=p(),y(),v(),n.$broadcast("addressUpdatedByAvs")):e.model.state==="invalid"&&n.$broadcast("addressValidationFailed",i);e.model.addresses=[]});n.$on("siteId",function(n,t){o.siteId=t?t:""});n.$on("couponDiscount",function(n,t){typeof t=="undefined"||t===null||t.Active===!1?(a.model.discount=0,a.model.discountType=0,a.model.orderMinimum=0):t.Active&&(a.model.discountType=t.DiscType,a.model.discount=t.Discount,a.model.orderMinimum=t.OrderMinimum,a.model.couponTripType=t.TripType,a.model.couponShippingSpeed=t.ShippingSpeed,a.model.coupon=t,v())});y();p();v()}function ut(){sessionStorage.shipReviewFactory=angular.toJson(a.model)}function ft(){a.model=angular.fromJson(sessionStorage.shipReviewFactory);a.model.discount=0;a.model.discountType=0;a.model.orderMinimum=0}var a=null;return a={setupView:rt,updateSelectedFare:v,checkAddressesForResidential:y,model:{selectedFares:[{Stage:0,Fare:null,Insurance:null,Pickup:null,Residential:null}],discount:0,discountType:0,orderMinimum:0,total:0,Text:{}},saveState:ut,restoreState:ft},n.$on("SaveState",a.saveState),sessionStorage.shipReviewFactory&&a.restoreState(),a}]);angular.module("shipApp").controller("fareReviewController",["$scope","fareReviewFactory","shipResultsSelectedFactory","accordionFactory","shipPaymentFormFactory","setting","trayFactory",function(n,t,i,r,u,f,e){n.init=function(){n.trayFlags=[];n.payment=u.model;t.setupView(n);n.showSummary=!1};n.$on("$viewContentLoaded",function(){});n.setTrayFlag=function(t,i,r){e.setTrayFlag(t,i,r,n,!0)};n.settings=f;n.accordion=r.model;n.selectedResultsFactory=i.model;n.fareReviewFactory=t.model;n.resultsContinue=function(){t.resultsContinue(n)};n.nullsToTop=function(n){return angular.isDefined(n.PackageValue)?0:-1};n.toggleSummary=function(){n.showSummary=!n.showSummary};n.init()}]);angular.module("shipApp").factory("cleanupFactory",["$rootScope","setting","shipInsuranceFormFactory","formDataFactory","shippingSearchFactory","fareReviewFactory","validationFactory","shipResultsSelectedFactory","shippingResultFactory","shipPaymentFormFactory","accordionFactory","shipSearchFormFactory",function(n,t,i,r,u,f,e,o,s,h,c){function a(n){var r=n.date,u,i,f;e.isDate(r)&&(u=moment(r,t.MomentInputDateFormat),n.date=u.format(t.MomentInputDateFormat));i=n.roundtripdate;e.isDate(i)&&(f=moment(i,t.MomentInputDateFormat),n.roundtripdate=f.format(t.MomentInputDateFormat))}function v(){for(var t=u.model.Stages,n=0,i=t.length;n<i;n++)a(t[n])}function y(){var n=h.model,t;e.isEmpty(r)||(t=r.model.presets,e.isEmpty(n)===!1&&e.isEmpty(n.donationCharity)===!1&&n.donationCharity.CharityOrgId===0&&(n.donationCharity=t.charities[0]))}function p(){var n=h.model,t=c.model;e.isEmpty(n)||t.Section.payment.isOpen!==!1||n.orderId===null||(n.orderId=null,n.orderCode=null)}function w(){var t=u.model.Stages,n,r,i,f;if(!e.isEmpty(t))for(n=0,r=t.length;n<r;n++)if(!e.isEmpty(t[n].PackageDescription))for(i=0,f=t[n].PackageDescription.length;i<f;i++)e.isEmpty(t[n].PackageDescription[i])!==!0?e.isEmpty(t[n].PackageDescription[i].Value)&&(t[n].PackageDescription[i].Value=-1,t[n].PackageDescription[i].InsideDescription="",t[n].PackageDescription[i].OutsideDescription=""):t[n].PackageDescription[i]={Value:-1,InsideDescription:"",OutsideDescription:"",InsuranceCost:""};e.isEmpty(u)||u.model.sameDescriptionForPackages!==!0&&u.model.sameDescriptionForPackages!==!1&&(u.model.sameDescriptionForPackages=!0)}function b(){var t=u.model.Stages,n,i;if(!e.isEmpty(t))for(n=0,i=t.length;n<i;n++)t[n].fromCountry===""&&(t[n].fromCountry=r.getCountryFromCode(t[n].fromCountryCode)),t[n].toCountry===""&&(t[n].toCountry=r.getCountryFromCode(t[n].toCountryCode)),t[n].fromCountryCode&&t[n].fromCountryCode.length>2&&(t[n].fromCountryCode=r.getCodeFromCountry(t[n].fromCountryCode)),t[n].toCountryCode&&t[n].toCountryCode.length>2&&(t[n].toCountryCode=r.getCodeFromCountry(t[n].toCountryCode))}function k(){var i=u.model.Stages,n,o,f,s;if(!e.isEmpty(i))for(n=0,o=i.length;n<o;n++)for(typeof i[n].PickupOption=="undefined"&&(i[n].PickupOption=r.model.presets.pickupOptions[0]),typeof i[n].ReturnPickupOption=="undefined"&&n===0&&(i[n].ReturnPickupOption=r.model.presets.pickupOptions[0]),typeof i[n].isPickup=="undefined"?i[n].isPickup=!1:(i[n].isPickup===!0||i[n].pikcupFee>0)&&(i[n].pickupFee=t.pickupFee,i[n].isPickup=!0),f=0,s=r.model.presets.pickupOptions.length;f<s;f++)i[n].PickupOption&&i[n].PickupOption.entryId===r.model.presets.pickupOptions[f].entryId&&(i[n].PickupOption=r.model.presets.pickupOptions[f]),i[n].ReturnPickupOption&&i[n].ReturnPickupOption.entryId===r.model.presets.pickupOptions[f].entryId&&(i[n].ReturnPickupOption=r.model.presets.pickupOptions[f])}function d(){if(e.isEmpty(u.model.Stages)||(v(),w(),b(),k()),e.isEmpty(o.model.Selection),e.isEmpty(h)||(y(),p()),!e.isEmpty(c))var n=c.model.Section}function g(){n.$on("cleanUp",function(){l.cleanData()})}var l=null;return l={cleanData:d,initialize:g}}]);angular.module("shipApp").controller("shipPathController",["$scope","$location","$timeout","setting","accordionFactory","alertService",function(n,t,i,r,u){n.init=function(){u.initialSetup();n.section=u.model.Section;n.searchHeading=n.section.search.heading};n.openTab=function(n){u.openTab(n)};n.init()}]);angular.module("shipApp").factory("accordionFactory",["$rootScope","$location","$window","$timeout","$anchorScroll","setting","shipInsuranceFormFactory","formDataFactory","shippingSearchFactory","validationFactory","shipResultsSelectedFactory","shippingResultFactory","serverValidationService","errorService","savedSearchService","currentUser","modalService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){function b(t){t||n.$broadcast("RedactPayment")}function w(t,i){var r=p.model.Section[t],u="";u=i?r.heading.replace(r.inactiveHeading,r.activeHeading):r.heading.replace(r.activeHeading,r.inactiveHeading);r.heading=u;n.$broadcast("cleanUp")}function d(){(typeof p.model.Section=="undefined"||p.model.Section.length===0)&&(p.model.Section=k);n.$watch(function(){return p.model.Section.search.isOpen},function(n){w("search",n);o.loadCountryPresets();o.loadPackagePresets();o.loadBatteryOptions();o.loadShipModeOptions();o.loadShipMethodOptions();o.loadPackageCategory();o.loadPackagePurpose();o.loadPackageWorth();o.loadPickupOptions();o.setExpirationYearOptions();n===!0&&(u("TopOfPage"),f.AlertCAPersonalEffects!==null&&f.AlertCAPersonalEffects!==undefined&&v.removeError(f.AlertCAPersonalEffects),b(p.model.Section.payment.isOpen))});n.$watch(function(){return p.model.Section.results.isOpen},function(t){w("results",t);t===!0&&(u("top"),n.$broadcast("InitResults"),b(p.model.Section.payment.isOpen))});n.$watch(function(){return p.model.Section.addresses.isOpen},function(t){w("addresses",t);o.loadInsurancePricing();t===!0&&(u("top"),v.removeMessage(f.KRPostalCodeConversion.Key),n.$broadcast("addressInitialStateCheck"),n.$broadcast("InitAddresses"),b(p.model.Section.payment.isOpen))});n.$watch(function(){return p.model.Section.insurance.isOpen},function(t){w("insurance",t);o.loadCharityPresets();t===!0&&(u("top"),e.setInitialValues(),n.$broadcast("InitInsurance"),b(p.model.Section.payment.isOpen))});n.$watch(function(){return p.model.Section.payment.isOpen},function(t){w("payment",t);t===!0&&(u("top"),n.$broadcast("setDefaultPaymentMethod"),n.$broadcast("InitPayment"),n.$broadcast("InitShipReview"))})}function g(){}function nt(r){p.model.Section.search.isOpen=!1;p.model.Section.search.isDisabled=!0;p.model.Section.results.isOpen=!1;p.model.Section.results.isDisabled=!0;p.model.Section.addresses.isOpen=!1;p.model.Section.addresses.isDisabled=!0;p.model.Section.insurance.isOpen=!1;p.model.Section.insurance.isDisabled=!0;p.model.Section.payment.isOpen=!1;p.model.Section.payment.isDisabled=!0;p.model.Section[r].isOpen=!0;p.model.Section[r].isDisabled=!1;r==="search"&&y.parseSavedSearches();var u=t.search().s;typeof u!="undefined"&&(s.model.savedSearchCode=u);y.saveSearch(s.model);r==="results"&&(p.model.Section.search.isDisabled=!1);r==="addresses"&&(p.model.Section.search.isDisabled=!1,p.model.Section.results.isDisabled=!1);r==="insurance"&&(p.model.Section.search.isDisabled=!1,p.model.Section.results.isDisabled=!1,p.model.Section.addresses.isDisabled=!1);r==="payment"&&(p.model.Section.search.isDisabled=!1,p.model.Section.results.isDisabled=!1,p.model.Section.addresses.isDisabled=!1,p.model.Section.insurance.isDisabled=!1);i.ga("send","pageview",{page:p.model.Section[r].googlePageView,title:""});n.$broadcast("cleanUp");n.$broadcast("priceChange");n.$broadcast("SaveState")}function tt(){sessionStorage.accordionFactory=angular.toJson(p.model)}function it(){p.model=angular.fromJson(sessionStorage.accordionFactory)}function rt(){p.model=k;p.saveState()}var k={Section:{search:{isOpen:!0,isDisabled:!1,editable:!0,heading:"Ship your bike",subheading:"Find Rates",inactiveHeading:"<span class='stepHeadingOne'>1.<\/span> <span class='heading'>Search<\/span>",activeHeading:"<span class='stepHeadingOne'>1.<\/span> <span class='heading'>Search<\/span>",instructive:"BikeFlights makes shipping easy with our Best Way Guarantee. Find rates to ship your bike today.",googlePageView:"Find_rates"},results:{isOpen:!1,isDisabled:!0,editable:!1,heading:"Ship your bike",subheading:"Select Speed",inactiveHeading:"<span class='stepHeading'>2.<\/span> <span class='heading'>Shipping speed<\/span>",activeHeading:"<span class='stepHeading'>2.<\/span> <span class='heading'>Shipping speed<\/span>",instructive:"Click Continue to enter contacts, addresses, and pickups.",googlePageView:"Shipping_speed"},addresses:{isOpen:!1,isDisabled:!0,editable:!1,heading:"Ship your bike",subheading:"Enter Details",inactiveHeading:"<span class='stepHeading'>3<\/span> <span class='heading'>Shipping details<\/span>",activeHeading:"<span class='stepHeading'>3<\/span> <span class='heading'>Shipping details<\/span>",instructive:"Click Continue to describe your contents just in case the label comes off and declare a value for insurance.",googlePageView:"Shipping_details"},insurance:{isOpen:!1,isDisabled:!0,editable:!1,heading:"Ship your bike",subheading:"Declare Contents",inactiveHeading:"<span class='stepHeading'>4<\/span> <span class='heading'>Contents and value<\/span>",activeHeading:"<span class='stepHeading'>4<\/span> <span class='heading'>Contents and value<\/span>",instructive:"Click Continue to choose your payment method",googlePageView:"Contents_and_value"},payment:{isOpen:!1,isDisabled:!0,editable:!1,heading:"Ship your bike",subheading:"Enter Payment",inactiveHeading:"<span class='stepHeading'>5<\/span> <span class='heading'>Payment method<\/span>",activeHeading:"<span class='stepHeading'>5<\/span> <span class='heading'>Payment method<\/span>",instructive:"Click Continue ... just do it",googlePageView:"Payment_method"}}},p=null;return p={model:k,saveState:tt,restoreState:it,clearState:rt,initialSetup:d,resetDefaultFareSelections:g,openTab:nt},n.$on("SaveState",p.saveState),n.$on("ClearState",p.clearState),sessionStorage.accordionFactory&&p.restoreState(),p}]);angular.module("shipApp").controller("shipAddressesController",["$scope","$rootScope","shippingSearchFactory","shipAddressesFormFactory","formDataFactory","shipSearchFormFactory","setting","currentUser","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h){n.init=function(){n.trayFlags=[];n.focusFlags=[];n.showAddDetailedAddress=!1;n.searchCriteria=i.model;n.shipAddressesModel=r.model;n.formData=u.model.presets;r.setupForm(n);n.isMobile=e.isMobile;n.profile=o.getProfile()};n.stopClick=function(n){s.stopClick(n)};n.setTrayFlag=function(t,i,r){s.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i,r){s.toggleTrayFlag(t,i,n,r)};n.closeAllTrays=function(t,i){s.closeAllTrays(t,n,i)};n.setFocusFlag=function(t,i,r){h.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){h.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){h.clearFocus(t,n,i)};n.clickSameAsLast=function(t,i){var r,u;t.Packages[i].sameAsLast&&((r=t.stage-1,r<0)||(u=n.searchCriteria.Stages[r],n.searchCriteria.Stages[r+1].Packages[i].outsideDescription=u.Packages[i].outsideDescription,n.searchCriteria.Stages[r+1].Packages[i].insideDescription=u.Packages[i].insideDescription))};n.showFromCountrySelectorTray=function(n){n.showFromCountrySelectorTray=!0};n.setFromCountry=function(n,t){n.fromCountry.Code!==t.Code&&(n.needsRequote=!0,n.fromLocationChanged=!0,r.reCodeAddress(n,"from"));n.fromCountryCode=t.Code;n.fromCountry=t;n.showFromCountrySelectorTray=!1};n.showFromStateSelectorTray=function(n){n.showFromStateSelectorTray=!0};n.setFromState=function(n,t){n.fromStateProv&&n.fromStateProv.stateprovcode===t.stateprovcode||(n.needsRequote=!0,n.fromLocationChanged=!0,r.reCodeAddress(n,"from"));n.fromStateProv=t;n.fromState=t.stateprovcode;n.showFromStateSelectorTray=!1};n.showToCountrySelectorTray=function(n){n.showToCountrySelectorTray=!0};n.setToCountry=function(n,t){n.toCountry.Code!==t.Code&&(n.needsRequote=!0,n.toLocationChanged=!0,r.reCodeAddress(n,"to"));n.toCountryCode=t.Code;n.toCountry=t;n.showToCountrySelectorTray=!1};n.showToStateSelectorTray=function(n){n.showToStateSelectorTray=!0};n.setToState=function(n,t){n.toStateProv&&n.toStateProv.stateprovcode===t.stateprovcode||(n.needsRequote=!0,n.toLocationChanged=!0,r.reCodeAddress(n,"to"));n.toStateProv=t;n.toState=t.stateprovcode;n.showToStateSelectorTray=!1};n.setToRequote=function(n,t){r.setToRequote(n,t);r.reCodeAddress(i.model.Stages[n],t)};n.addNewSavedAddress=function(){r.addNewSavedAddress(n)};n.validateForm=function(){r.validateForm()};n.addressContinue=function(){n.shipAddressesModel.formSubmitted=!0;r.addressContinue(n)};n.cancel=function(){r.cancelModal()};n.fromStateProvChange=function(n){r.fromStateProvChange(n)};n.toStateProvChange=function(n){r.toStateProvChange(n)};n.fromCountryChange=function(n){r.fromCountryChange(n)};n.toCountryChange=function(n){r.toCountryChange(n)};n.checkShipToLocation=function(){r.checkShipToLocation()};n.selectProfileAddress=function(t,i,u){r.selectProfileAddress(n,t,i,u);r.setToRequote(i,t);s.closeAllTrays(null,n,!1)};n.stateAutoFill=function(t,i){var o=t==="from"?n.searchCriteria.Stages[i].fromCountryHasStateOptions:n.searchCriteria.Stages[i].toCountryHasStateOptions,r,e;if(o){var f=t==="from"?n.searchCriteria.Stages[i].fromState.toLowerCase():n.searchCriteria.Stages[i].toState.toLowerCase(),s=t==="from"?n.searchCriteria.Stages[i].fromCountry.Code.toLowerCase():n.searchCriteria.Stages[i].toCountry.Code.toLowerCase(),u=n.formData.states;for(r=0,e=u.length;r<e;r++)s===u[r].country.toLowerCase()&&(f===u[r].stateprovcode.toLowerCase()||f===u[r].stateprov.toLowerCase())&&(t==="from"?n.searchCriteria.Stages[i].fromStateProv=u[r]:n.searchCriteria.Stages[i].toStateProv=u[r])}};n.countryAutoFill=function(t,i){for(var f=t==="from"?n.searchCriteria.Stages[i].fromCountry.Code.toLowerCase():n.searchCriteria.Stages[i].toCountry.Code.toLowerCase(),u=vm.formData.countries,r=0,e=u.length;r<e;r++)(f===u[r].Name.toLowerCase()||f===u[r].Code.toLowerCase())&&(t==="from"?n.searchCriteria.Stages[i].fromCountry=u[r]:n.searchCriteria.Stages[i].toCountry=u[r])};t.$on("InitAddresses",function(){n.init()});n.init()}]);angular.module("shipApp").controller("shipAddressesModalController",["$scope","$rootScope","shippingSearchFactory","accordionFactory","modalService","validateAddressResponseFactory","addressBookResource","currentUser",function(n,t,i,r,u,f,e,o){n.init=function(){n.stages=i.model.Stages;n.originalFrom=i.model.originalFrom;n.originalTo=i.model.originalTo;for(var t=0,r=i.model.Stages.length;t<r;t++)i.model.Stages[t].updateSavedFromAddress=!0,i.model.Stages[t].updateSavedToAddress=!0;i.model.avsError!==!0?n.isError=!1:(n.isError=!0,n.failedAddress=i.model.FailedAddress)};n.addressContinue=function(){for(var s=o.getProfile().addresses,h,t,f,c,l,n=0,a=i.model.Stages.length;n<a;n++){if(i.model.Stages[n].fromAddressId>0&&i.model.Stages[n].updateSavedFromAddress){for(h=i.model.Stages[n].fromAddressId,t={},f=0,c=s.length;f<c;f++)s[f].addressId===h&&(t=s[f]);l={addressId:t.addressId,displayName:t.displayName,companyName:t.companyName,firstName:t.firstName,lastName:t.lastName,address1:i.model.Stages[n].fromStreetAddress,address2:i.model.Stages[n].fromAddress2,address3:t.address3,city:i.model.Stages[n].fromCity,state:i.model.Stages[n].fromState,postalCode:i.model.Stages[n].fromPostalCode,country:i.model.Stages[n].fromCountryCode,fullCountry:i.model.Stages[n].fromCountry,phone:t.phone,isPrimary:t.isPrimary,saveToProfile:!0};e.updateAddress().put(l,function(){o.getAddresses()},function(){})}if(i.model.Stages[n].toAddressId>0&&i.model.Stages[n].updateSavedToAddress){for(h=i.model.Stages[n].fromAddressId,t={},f=0,c=s.length;f<c;f++)s[f].addressId===h&&(t=s[f]);l={addressId:t.addressId,displayName:t.displayName,companyName:t.companyName,firstName:t.firstName,lastName:t.lastName,address1:i.model.Stages[n].toStreetAddress,address2:i.model.Stages[n].toAddress2,address3:t.address3,city:i.model.Stages[n].toCity,state:i.model.Stages[n].toState,postalCode:i.model.Stages[n].toPostalCode,country:i.model.Stages[n].toCountryCode,fullCountry:i.model.Stages[n].toCountry,phone:t.phone,isPrimary:t.isPrimary,saveToProfile:!0};e.updateAddress().put(l,function(){o.getAddresses()},function(){})}}u.closeModals();r.openTab("insurance")};n.init()}]);angular.module("shipApp").factory("shipAddressesFormFactory",["$q","$rootScope","errorService","accordionFactory","shippingService","shippingSearchFactory","validationFactory","formDataFactory","spinnerFactory","helpersFactory","validateAddressService","validateAddressResponseFactory","validateAddressRequestFactory","setting","moment","serverValidationService","GeoCoder","geoLocationFactory","modalService","currentUser",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d){function g(n,t,i,r){e.isEmpty(n[t])?(n[t+"Invalid"]=!0,e.pushError(i,{Key:t,Message:r})):n[t+"Invalid"]=!1}function ht(n,i){for(var r,u=0,f=n.length;u<f;u++)r=n[u],g(r,"fromFirstName",i,"Please enter the first name of a contact at the location you're shipping from"),g(r,"fromLastName",i,"Please enter the last name of a contact at the location you're shipping from"),g(r,"fromStreetAddress",i,"Please enter the street address of the location you're shipping from"),g(r,"fromCity",i,"Please enter the city you're shipping from"),r.fromCountryHasStateOptions&&g(r,"fromState",i,"Please enter the state you're shipping from"),g(r,"fromPostalCode",i,"Please enter the postal code you're shipping from"),g(r,"fromCountryCode",i,"Please select the country you're shipping from"),g(r,"fromPhone",i,"Please a phone number where we can reach where you're shipping from"),e.isPhone(r.fromPhone)?r.fromPhoneInvalid=!1:(e.pushError(i,{Key:"fromPhone",Message:"Please enter a valid phone number, it's required for creating your label"}),r.fromPhoneInvalid=!0),g(r,"toFirstName",i,"Please enter the first name of a contact at the location you're shipping to"),g(r,"toLastName",i,"Please enter the last name of a contact at the location you're shipping to"),g(r,"toStreetAddress",i,"Please enter the street address of the location you're shipping to"),g(r,"toCity",i,"Please enter the city you're shipping to"),r.toCountryHasStateOptions&&g(r,"toState",i,"Please enter the state you're shipping to"),g(r,"toPostalCode",i,"Please enter the postal code you're shipping to"),g(r,"toCountryCode",i,"Please select the country you're shipping to"),g(r,"toPhone",i,"Please a phone number where we can reach where you're shipping to"),e.isPhone(r.toPhone)?r.toPhoneInvalid=!1:(e.pushError(i,{Key:"toPhone",Message:"Please enter a valid phone number, it's required for creating your label"}),r.toPhoneInvalid=!0);return i.length>0?(t.$broadcast("invalidFocus"),!1):!0}function tt(n,t){t.validAddress.isTo?(n.toStreetAddress=t.validAddress.Address1,n.toAddress2=t.validAddress.Address2,n.toCity=t.validAddress.City,n.toState=t.validAddress.State,n.toPostalCode=t.validAddress.PostalCode,n.toAvsChanged=t.validAddress.AVSChanged,n.toPassedAvs=t.validAddress.PassedAvs):(n.fromStreetAddress=t.validAddress.Address1,n.fromAddress2=t.validAddress.Address2,n.fromCity=t.validAddress.City,n.fromState=t.validAddress.State,n.fromPostalCode=t.validAddress.PostalCode,n.fromAvsChanged=t.validAddress.AVSChanged,n.fromPassedAvs=t.validAddress.PassedAvs)}function ct(n){var o,l,u,e;i.removeMessage(v.AlertAVSFail.Key);var a=f.model.Stages,c=!1,s=!1;for(o=0,l=n.length;o<l;o++)n[o].status!==200&&ut(n[o]),u=n[o].data,e=a[u.originalAddress.Stage],e.fromAddress2Invalid=!1,e.toAddress2Invalid=!1,typeof f.model.originalTo=="undefined"&&(f.model.originalTo=[]),typeof f.model.originalFrom=="undefined"&&(f.model.originalFrom=[]),u.originalAddress.isTo?f.model.originalTo[u.originalAddress.Stage]=angular.copy(u.originalAddress):f.model.originalFrom[u.originalAddress.Stage]=angular.copy(u.originalAddress),u.success&&u.validAddress&&u.validAddress.PassedAvs?(c=c||u.validAddress.AVSChanged,tt(e,u)):u.originalAddress.isTo?(e.toPassedAvs=!1,e.toAvsFailReason=u.originalAddress.AvsFailReason,rt(u.originalAddress)&&(u.validAddress&&u.validAddress.PassedAvs===!1&&tt(e,u),e.toAddress2InvalidCount=++e.toAddress2InvalidCount||1,e.toAddress2InvalidCount<2&&(e.toAddress2Invalid=!0,s=!0)),f.model.avsError=null):(e.fromPassedAvs=!1,e.fromAvsFailReason=u.originalAddress.AvsFailReason,rt(u.originalAddress)&&(u.validAddress&&u.validAddress.PassedAvs===!1&&tt(e,u),e.fromAddress2InvalidCount=++e.fromAddress2InvalidCount||1,e.fromAddress2InvalidCount<2&&(e.fromAddress2Invalid=!0,s=!0)),f.model.avsError=null);c&&s===!1?(h.scrollToTop(),k.closeModals(),k.openModal(nt.model.scope,"lg","address.change")):s?(i.addMessage(v.AlertAVSFail),t.$broadcast("invalidFocus")):(k.closeModals(),r.openTab("insurance"))}function rt(n){var t=n.AvsFailReason;return t.indexOf("missing the apartment or rural route box number")>-1||t.indexOf("The apartment or rural route box number is not valid")>-1?!0:!1}function ut(n){for(var i=f.model.Stages,t=0,u=i.length;t<u;t++)i[t].fromPassedAvs=!1,i[t].fromAvsFailReason=n.statusText,i[t].toPassedAvs=!1,i[t].toAvsFailReason=n.statusText;k.closeModals();r.openTab("insurance")}function lt(n){console.log(n)}function at(n){nt.model.scope=n;var t=f.model.Stages,i=p.getAddressValidation(t);i.then(ct,ut).then(lt)}function ft(n){return n!==null&&typeof n!="undefined"&&n!==""&&n.toLowerCase().indexOf("fedex")>-1?!0:!1}function vt(n){return n!==null&&typeof n!="undefined"&&n!==""&&n.toLowerCase().indexOf("ups store")>-1?!0:!1}function yt(n){var t,i,r;return typeof n=="undefined"||n===null?!1:typeof n.toStreetAddress=="undefined"||n.toStreetAdress===null?!1:(t=n.toStreetAddress.match(/p\.?o\.?\s?box/i),t)?!0:(t=n.toStreetAddress.match(/post\s?office\s?box/i),t)?!0:typeof n.toAddress2=="undefined"||n.toAddress2===null?!1:(t=n.toAddress2.match(/p\.?o\.?\s?box/i),t)?!0:(t=n.toAddress2.match(/post\s?office\s?box/i),t)?!0:typeof n.toCity=="undefined"||n.toCity===null?!1:(i=n.toCity.match(/^apo$/i),i)?!0:(r=n.toCity.match(/^fpo$/i),r)?!0:!1}function pt(n,t,i,r){var f,u;if(typeof r.addressId=="undefined"&&typeof r.shipLocationId!="undefined"&&r.shipLocationId>0)u=r.address1+" "+r.city+" "+r.state+" "+r.postalCode+" "+r.country,t==="from"?(n.searchCriteria.Stages[i].fromFullAddress=u,n.searchCriteria.Stages[i].fromDisplayAddress=u,n.searchCriteria.Stages[i].fromCompany=r.company,n.searchCriteria.Stages[i].fromStreetAddress=r.address1,n.searchCriteria.Stages[i].fromAddress2=r.address2,n.searchCriteria.Stages[i].fromAddress3=r.address3,n.searchCriteria.Stages[i].fromPostalCode=r.postalCode,n.searchCriteria.Stages[i].fromCity=r.city,n.searchCriteria.Stages[i].fromState=r.state,n.searchCriteria.Stages[i].fromCountry=o.getCountryFromCode(r.country),n.searchCriteria.Stages[i].fromCountryCode=r.country,n.searchCriteria.Stages[i].fromLocation={lat:r.latitude,lng:r.longitude},n.searchCriteria.Stages[i].fromFullAddressValid=!0,n.searchCriteria.Stages[i].fromPhone=r.phone):(n.searchCriteria.Stages[i].toFullAddress=u,n.searchCriteria.Stages[i].toDisplayAddress=u,n.searchCriteria.Stages[i].toCompany=r.company,n.searchCriteria.Stages[i].toStreetAddress=r.address1,n.searchCriteria.Stages[i].toAddress2=r.address2,n.searchCriteria.Stages[i].toAddress3=r.address3,n.searchCriteria.Stages[i].toPostalCode=r.postalCode,n.searchCriteria.Stages[i].toCity=r.city,n.searchCriteria.Stages[i].toState=r.state,n.searchCriteria.Stages[i].toCountry=o.getCountryFromCode(r.country),n.searchCriteria.Stages[i].toCountryCode=r.country,n.searchCriteria.Stages[i].toLocation={lat:r.latitude,lng:r.longitude},n.searchCriteria.Stages[i].toFullAddressValid=!0,n.searchCriteria.Stages[i].toPhone=r.phone);else{if(f=d.getStoredAddress(r.addressId),f===null||typeof f=="undefined")return;u=d.getAddressAsString(f,!0);t==="from"?(n.searchCriteria.Stages[i].fromFullAddress=u,n.searchCriteria.Stages[i].fromDisplayAddress=u,n.searchCriteria.Stages[i].fromCompany=r.companyName,n.searchCriteria.Stages[i].fromFirstName=r.firstName,n.searchCriteria.Stages[i].fromLastName=r.lastName,n.searchCriteria.Stages[i].fromStreetAddress=r.address1,n.searchCriteria.Stages[i].fromAddress2=r.address2,n.searchCriteria.Stages[i].fromAddress3=r.address3,n.searchCriteria.Stages[i].fromPostalCode=r.postalCode,n.searchCriteria.Stages[i].fromCity=r.city,n.searchCriteria.Stages[i].fromState=r.state,n.searchCriteria.Stages[i].fromCountry=o.getCountryFromCode(r.country),n.searchCriteria.Stages[i].fromCountryCode=r.country,n.searchCriteria.Stages[i].fromPhone=r.phone,n.searchCriteria.Stages[i].fromLocation={lat:r.latitude,lng:r.longitude},n.searchCriteria.Stages[i].fromFullAddressValid=!0):(n.searchCriteria.Stages[i].toFullAddress=u,n.searchCriteria.Stages[i].toDisplayAddress=u,n.searchCriteria.Stages[i].toCompany=r.companyName,n.searchCriteria.Stages[i].toFirstName=r.firstName,n.searchCriteria.Stages[i].toLastName=r.lastName,n.searchCriteria.Stages[i].toStreetAddress=r.address1,n.searchCriteria.Stages[i].toAddress2=r.address2,n.searchCriteria.Stages[i].toAddress3=r.address3,n.searchCriteria.Stages[i].toPostalCode=r.postalCode,n.searchCriteria.Stages[i].toCity=r.city,n.searchCriteria.Stages[i].toState=r.state,n.searchCriteria.Stages[i].toCountry=o.getCountryFromCode(r.country),n.searchCriteria.Stages[i].toCountryCode=r.country,n.searchCriteria.Stages[i].toPhone=r.phone,n.searchCriteria.Stages[i].toLocation={lat:r.latitude,lng:r.longitude},n.searchCriteria.Stages[i].toFullAddressValid=!0)}}function it(){var t,n,r;for(i.removeError(v.AlertShipToFedEx),i.removeError(v.POAddressWarning),i.removeError(v.AlertShipToUPS),t=f.model.Stages,n=0,r=t.length;n<r;n++)(ft(t[n].toCompany)||ft(t[n].fromCompany))&&i.addMessage(v.AlertShipToFedEx),vt(t[n].toCompany)&&i.addMessage(v.AlertShipToUPS),yt(t[n])&&i.addMessage(v.POAddressWarning)}function wt(n){var e=o.model.presets,s,c,u;if((typeof e.countries=="undefined"||e.countries.length===0)&&o.loadCountryPresets(),(typeof e.states=="undefined"||e.states.length===0)&&o.loadStatePresets(),(typeof e.charities=="undefined"||e.charities===null||e.charities.length===0)&&o.loadCharityPresets(),typeof n.searchCriteria.Stages!="undefined"&&typeof n.formData.countries!="undefined")for(s=0,c=n.searchCriteria.Stages.length;s<c;s++)u=n.searchCriteria.Stages[s],u.fromCountryCode&&(u.fromCountry=o.getCountryFromCode(u.fromCountryCode)),u.toCountryCode&&(u.toCountry=o.getCountryFromCode(u.toCountryCode)),u.fromState&&(u.fromStateProv=o.getStateFromCountryAndStateCode(u.fromCountry,u.fromState)),u.toState&&(u.toStateProv=o.getStateFromCountryAndStateCode(u.toCountry,u.toState)),ot(s,n),st(s,n);t.$on("addressInitialStateCheck",function(){it()});t.$on("userAddressesLoaded",function(){var i,t,r;for(n.currentUser=d.getProfile(),n.hasAddresses=n.hasAddresses||n.currentUser.addresses.length>0,typeof n.addresses=="undefined"&&(n.addresses=[]),i={displayName:"- - - - - YOUR SAVED LOCATIONS - - - - -",address1:"2",label:"savedAddresses",orderBy:1e3,shipLocationId:0},h.addressInArray(n.addresses,i)||n.addresses.push(i),t=0,r=n.currentUser.addresses.length;t<r;t++)h.addressInArray(n.addresses,n.currentUser.addresses[t])||(n.currentUser.addresses[t].orderBy=1001+t,n.addresses.push(n.currentUser.addresses[t]));n.addresses.sort(function(n,t){return n.orderBy-t.orderBy})});t.$on("addressUpdatedByAvs",function(){i.removeMessage(v.AlertAVSFail.Key);a.model.state==="valid"&&(a.model.changed===!0?(h.scrollToTop(),k.closeModals(),k.openModal(n,"lg","address.change")):(k.closeModals(),r.openTab("insurance")),f.model.Stages[0].passedAvs=!0,l.model.error=null);a.model.state=null});t.$on("addressValidationFailed",function(n,t){var e,h;if(a.model.state==="invalid"){var i=f.model.Stages,o=t.avs.Address,u=0,s=i.length;if(o===null){for(u=0;u<s;u++)i[u].fromPassedAvs=!1,i[u].toPassedAvs=!1;k.closeModals();r.openTab("insurance")}for(u=0;u<s;u++)i[u].fromPassedAvs=!0,i[u].toPassedAvs=!0;for(e=0,h=i.length;e<h;e++)i[e].fromStreetAddress.toLowerCase()===o.Address1.toLowerCase()&&i[e].fromPostalCode===o.PostalCode&&(i[e].fromPassedAvs=!1),i[e].toStreetAddress.toLowerCase()===o.Address1.toLowerCase()&&i[e].toPostalCode===o.PostalCode&&(i[e].toPassedAvs=!1);a.model.state=null;l.model.error=t;f.model.Stages[0].passedAvs=!1}k.closeModals();r.openTab("insurance")});it()}function bt(n){h.scrollToTop();k.closeModals();k.openModal(n,"lg","address.add")}function et(){return nt.model.validationErrors=[],ht(f.model.Stages,nt.model.validationErrors)}function kt(n,t){f.model.Stages[n].needsRequote=!0;t==="from"?f.model.Stages[n].fromLocationChanged=!0:f.model.Stages[n].toLocationChanged=!0}function dt(n,t,i){n.city!==""&&(i==="from"?t.fromCity=n.city:t.toCity=n.city)}function gt(n,t,i){n.state!==""&&(i==="from"?t.fromState=n.state:t.toState=n.state)}function ni(n,t){var i="";i=t==="from"?n.fromPostalCode+" "+n.fromCountryCode:n.toPostalCode+" "+n.toCountryCode;i.trim()!==""&&w.geocode({address:i}).then(function(i){var c=t==="from"?n.fromCity:n.toCity,l=t==="from"?n.fromState:n.toState,e=!1,o=!1,u,s,h,f,r;if(i.length>0){for(u=0,s=i.length;u<s;u++)h=i[u].formatted_address,f=b.getShipLocation(i,h),f.city===c&&(e=!0),f.state===l&&(o=!0);r=b.getShipLocation(i,i[0].formatted_address);e||dt(r,n,t);o||gt(r,n,t);t==="from"?(n.fromDisplayAddress=n.fromCity+", "+n.fromState+" "+n.fromPostalCode+", "+n.fromCountryName,n.fromFullAddress=n.fromDisplayAddress,n.fromLocation=r.location):(n.toDisplayAddress=n.toCity+", "+n.toState+" "+n.toPostalCode+", "+n.toCountryName,n.toFullAddress=n.toDisplayAddress,n.toLocation=r.location)}})}function ti(){k.closeModals()}function ii(n){var r,t,e;if(et()===!0){for(i.removeMessage(v.LocationChangedRequote.Key),r=f.model.Stages,t=0,e=r.length;t<e;t++)if(r[t].needsRequote===!0)return i.addMessage(v.LocationChangedRequote),u.doSearch(!0),!1;at(n)}return!0}function ri(n){var t=f.model.Stages[n];t.fromCountryHasStateOptions&&(t.fromState=t.fromStateProv.stateprovcode)}function ui(n){var t=f.model.Stages[n];t.toCountryHasStateOptions&&(t.toState=t.toStateProv.stateprovcode)}function ot(n,t){var i=t.searchCriteria.Stages[n],r;i!==null&&typeof i!="undefined"&&i.fromCountry!==null&&typeof i.fromCountry!="undefined"&&(i.fromCountryCode=i.fromCountry.Code,i.fromCountryName=i.fromCountry.Name,r=h.getPlaceHoldersFromCountry(i.fromCountryCode),i.fromStatePlaceholder=r.state,i.fromPostalCodePlaceholder=r.postalCode,i.fromCountryHasStateOptions=h.countryHasStateOptions(o.model.presets.states,i.fromCountryCode))}function st(n,t){var i=t.searchCriteria.Stages[n],u,r;i!==null&&typeof i!="undefined"&&i.toCountry!==null&&typeof i.toCountry!="undefined"&&(i.toCountryCode=i.toCountry.Code,i.toCountryName=i.toCountry.Name,u=i.toCountryCode,r=h.getPlaceHoldersFromCountry(i.toCountryCode),i.toStatePlaceholder=r.state,i.toPostalCodePlaceholder=r.postalCode,i.toCountryHasStateOptions=h.countryHasStateOptions(o.model.presets.states,i.toCountryCode))}var nt=null;return nt={setupForm:wt,validateForm:et,setToRequote:kt,addressContinue:ii,fromStateProvChange:ri,toStateProvChange:ui,fromCountryChange:ot,toCountryChange:st,checkShipToLocation:it,reCodeAddress:ni,addNewSavedAddress:bt,selectProfileAddress:pt,cancelModal:ti,model:{validationErrors:[]}}}]);angular.module("shipApp").controller("shipInsuranceController",["$scope","$sce","$rootScope","shippingSearchFactory","shipInsuranceFormFactory","formDataFactory","insurancePricingService","shipResultsSelectedFactory","accordionFactory","$anchorScroll","setting","errorService","helpersFactory","modalService","savedSearchService","currentUser","$timeout","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k){n.init=function(){n.trayFlags=[];n.focusFlags=[];n.searchCriteria=r.model;n.formData=f.model.presets;n.shipResultsSelected=o.model;n.shipInsuranceFormFactory=u;n.allStagesLabelText="Same for each stage";n.formSubmitted=!1;var t=f.model.presets.insurance;(t===null||t===undefined||t.length===0)&&f.loadInsurancePricing();u.syncPackageDescriptions(n);u.snapInsuranceValues(n);u.prepareDangerousFeeOption(n);n.syncDangerousFee();n.compareProtectionAndValue()};n.setFocusFlag=function(t,i,r){k.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){k.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){k.clearFocus(t,n,i)};n.stopClick=function(n){b.stopClick(n)};n.setTrayFlag=function(t,i,r){b.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i){b.toggleTrayFlag(t,i,n)};n.closeAllTrays=function(t,i){b.closeAllTrays(t,n,i)};n.compareProtectionAndValue=function(){var i,f,r,e,u;if(n&&n.searchCriteria&&n.searchCriteria.Stages&&n.searchCriteria.Stages[0].PackageDescription&&n.searchCriteria.Stages[0].PackageDescription[0].Value&&n.searchCriteria.Stages[0].PackageDescription[0].ValueSelected&&n.searchCriteria.Packages)for(l.removeError(c.ProtectionLTMarketValue),i=0,f=n.searchCriteria.Stages.length;i<f;i++)for(r=0,e=n.searchCriteria.Stages[i].PackageDescription.length;r<e;r++)n.searchCriteria.Stages[i].PackageDescription[r].ValueDiff=n.searchCriteria.Stages[i].PackageDescription[r].Value-parseFloat(n.searchCriteria.Packages[r].Worth),n.searchCriteria.Stages[i].PackageDescription[r].ValueDiff<0&&(u=angular.copy(c.ProtectionLTMarketValue),u.Message=t.trustAsHtml(u.Message.replace("#DIFF#",Math.abs(n.searchCriteria.Stages[i].PackageDescription[r].ValueDiff))),l.addMessage(u))};n.openTerms=function(){v.openModal(n,"lg","terms")};n.setPackageValue=function(t,i,r){n.searchCriteria.Stages[t].PackageDescription[i].ValueSelected=!0;n.searchCriteria.Stages[t].PackageDescription[i].ValueSelection=r;n.searchCriteria.Stages[t].PackageDescription[i].Value=r.PackageValue;n.compareProtectionAndValue();n.packageValueUpdate(t,i)};n.syncDangerousFee=function(){i.$broadcast("priceChange")};n.toggleSameForAllStages=function(){u.toggleSameForAllStages(n);i.$broadcast("priceChange")};n.packageDescriptionUpdate=function(){u.validateInsurance()};n.packageValueUpdate=function(t,r){var e=n.searchCriteria.Stages[t].PackageDescription[r];e.InsuranceCost=f.getInsuranceCost(e.Value);u.validateInsurance();i.$broadcast("priceChange")};n.validateForm=function(){u.validateInsurance()};n.insuranceContinue=function(){n.formSubmitted=!0;u.validateInsurance()&&s.openTab("payment")};n.openInsuranceModal=function(t){v.closeModals();v.openModal(n,t,"insuredValue")};i.$on("InitInsurance",function(){n.init()});n.init()}]);angular.module("shipApp").factory("shipInsuranceFormFactory",["$rootScope","setting","shippingSearchFactory","validationFactory","shipResultsSelectedFactory","customsService","formDataFactory",function(n,t,i,r,u,f,e){function s(){var o=i.model.sameDescriptionForPackages,t,u;if(o){var f=i.model.Stages,e=f.length,s=f[0].PackageDescription.length;if(e>1){for(t=1;t<e;t++)for(u=0;u<s;u++)(t!==0||u!==0)&&((r.isEmpty(f[t].PackageDescription)===!0||r.isEmpty(f[t].PackageDescription[u])===!0)&&(f[t].PackageDescription[u]={Value:-1,InsideDescription:"",OutsideDescription:"",InsuranceCost:""}),f[t].PackageDescription[u]=angular.copy(f[0].PackageDescription[u]));n.$broadcast("priceChange")}}}function h(n){for(var t,u,i=0,r=n.searchCriteria.Stages.length;i<r;i++)for(t=0,u=n.searchCriteria.Packages.length;t<u;t++)typeof n.searchCriteria.Stages[i].PackageDescription[t]=="undefined"&&(n.searchCriteria.Stages[i].PackageDescription[t]={}),n.searchCriteria.Stages[i].PackageDescription[t].isDangerous=n.searchCriteria.Packages[t].isDangerous}function c(n){for(var u=n.formData.insurance,t,e,i,o,r=0,f=n.searchCriteria.Stages.length;r<f;r++)for(t=0,e=n.searchCriteria.Packages.length;t<e;t++)for(i=0,o=u.length;i<o;i++)if(u[i]&&n.searchCriteria.Stages[r].PackageDescription[t]&&u[i].PackageValue>=n.searchCriteria.Stages[r].PackageDescription[t].Value){n.searchCriteria.Packages[t].Value=u[i].PackageValue;n.searchCriteria.Stages[r].PackageDescription[t].Value=u[i].PackageValue;n.searchCriteria.Stages[r].PackageDescription[t].ValueSelection=u[i];break}}function l(n){for(var t,u,i=0,r=n.searchCriteria.Stages.length;i<r;i++)for(t=0,u=n.searchCriteria.Packages.length;t<u;t++)n.searchCriteria.Stages[i].PackageDescription||(n.searchCriteria.Stages[i].PackageDescription=[]),n.searchCriteria.Stages[i].PackageDescription[t].OutsideDescription=n.searchCriteria.Packages[t].OutsideDescription,n.searchCriteria.Stages[i].PackageDescription[t].InsideDescription=n.searchCriteria.Packages[t].InsideDescription,n.searchCriteria.Stages[i].PackageDescription[t].Value=n.searchCriteria.Packages[t].Value}function a(){s()}function v(){var f,r,u,o,t,n,s;for(typeof i.model.sameDescriptionForPackages=="undefined"&&(i.model.sameDescriptionForPackages=!1),f=i.model.Stages,r=e.model.presets,u=0,o=f.length;u<o;u++)for(t=f[u].PackageDescription,n=0,s=t.length;n<s;n++)typeof t[n].Category=="undefined"&&(t[n].Category=r.packageCategory[0]),typeof t[n].Purpose=="undefined"&&(t[n].Purpose=r.packagePurpose[0]),typeof t[n].Worth=="undefined"&&r.packageWorth&&(t[n].Worth=r.packageWorth[n])}function y(){for(var e=!0,o=i.model.Stages,t,u,h,f=0,s=o.length;f<s;f++){if(r.isEmpty(o[f].PackageDescription)||(t=o[f].PackageDescription,r.isEmpty(t)))return!1;for(u=0,h=t.length;u<h;u++)t[u].ValueInvalid=!1,t[u].InsideDescriptionInvalid=!1,t[u].OutsideDescriptionInvalid=!1,(!t[u].ValueSelection||t[u].ValueSelection.PackageValue<=0)&&(t[u].ValueInvalid=!0,e=!1),(typeof t[u].InsideDescription=="undefined"||t[u].InsideDescription==="")&&(t[u].InsideDescriptionInvalid=!0,e=!1),(typeof t[u].OutsideDescription=="undefined"||t[u].OutsideDescription==="")&&(t[u].OutsideDescriptionInvalid=!0,e=!1);o[f].Packages=t}return e===!1&&n.$broadcast("invalidFocus"),e}var o=null;return o={setInitialValues:v,setPackageDescriptionsSame:s,toggleSameForAllStages:a,validateInsurance:y,prepareDangerousFeeOption:h,snapInsuranceValues:c,syncPackageDescriptions:l,model:{validationErrors:[]}}}]);angular.module("shipApp").factory("shipPaymentFormFactory",["$rootScope","$location","$timeout","errorService","formDataFactory","spinnerFactory","shipCouponService","shipDateFactory","shipAddressesFormFactory","shipResultsSelectedFactory","helpersFactory","shippingSearchFactory","validationFactory","purchaseService","serverValidationService","setting","currentUser","userAccount","shipmentResource",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k){function ft(n){for(var t=0,i=n.length;t<i;t++)n[t].DangerousFee>0&&(n[t].Total=n[t].Rate)}function et(t){var r=h.model,i,u,v,s,c,o;ft(r);i=l.model;i.PurposeCode=i.Purpose.cost;i.Provider=r.Selection[0].Service;t.payment.guest&&(t.payment.guest.entered=new Date);var f=t.payment,y=e.coupon,a=null;for(r.shippingTotal=0,u=0,v=i.Selection.length;u<v;u++)i.Selection[u].Rate>0&&(r.shippingTotal+=i.Selection[u].Rate),i.Selection[u].CustomsFee!=="TBD"&&i.Selection[u].CustomsFee>0&&(r.shippingTotal+=i.Selection[u].CustomsFee),i.Selection[u].DangerousFee>0&&(r.shippingTotal+=i.Selection[u].DangerousFee),i.Selection[u].InsuranceFee>0&&(r.shippingTotal+=i.Selection[u].InsuranceFee),i.Selection[u].PickupFee>0&&(r.shippingTotal+=i.Selection[u].PickupFee),i.Selection[u].ResidentialFee>0&&(r.shippingTotal+=i.Selection[u].ResidentialFee);return typeof r.discountAmount!="undefined"&&r.discountAmount>0&&(r.shippingTotal-=r.discountAmount,r.shippingTotal<1&&(r.shippingTotal=0)),s={},c=w.getProfile(),c.isLoggedIn?f.email=c.email:(t.contact&&(s=t.contact),f.email||(f.email=s.email)),o={shipment:i,fare:r,payment:f,coupon:y,siteId:n.siteId},w.getProfile().isLoggedIn&&(a=t.payment.selectedPaymentMethod,o.profilePayment=a,f.email||(o.payment.email=w.getProfile().email)),o}function ot(n){var i=!0,t=p.AlertPurchaseWarning,u,o,k,b,c,d,y,e,f,g,s,l,tt,h,w,nt,v;if(r.removeError(t),a.isEmpty(n))return t.Message+="No purchase request found.",r.addError(t),!1;if(a.isEmpty(n.shipment))return t.Message+="No shipment request found.",r.addError(t),!1;if(u=n.shipment,a.isEmpty(u.Packages)||u.Packages.length<1)return t.Message+="No packages found.",r.addError(t),!1;for(o=0,k=u.Packages.length;o<k;o++)(u.Packages[o].Weight===null||u.Packages[o].Weight===0)&&(u.Packages[o].Weight=p.DefaultWeight);if(a.isEmpty(u.Stages)||u.Stages.length<1)return t.Message+="No shipment found.",r.addError(t),!1;for(b="",c=0,d=u.Packages.length;c<d;c++)y=u.Packages[c],(y.Length<1||y.Height<1||y.Width<1)&&(b="Package "+(c+1)+" has invalid dimensions",i=!1);if(i===!1)return t.Message+=b,r.addError(t),i;for(e="",f=0,g=u.Stages.length;f<g;f++)s=u.Stages[f],a.isDate(s.date)||(e="Stage "+(f+1)+" has an invalid date",i=!1),a.isEmpty(s.fromPostalCode)&&(e="Stage "+(f+1)+" is missing it's postal code",i=!1),a.isEmpty(s.fromCountryCode)&&(e="Stage "+(f+1)+" is missing it's country code",i=!1),a.isEmpty(s.toPostalCode)&&(e="Stage "+(f+1)+" is missing it's postal code",i=!1),a.isEmpty(s.toCountryCode)&&(e="Stage "+(f+1)+" is missing it's country code",i=!1);if(i===!1)return t.Message+=e,r.addError(t),i;if(a.isEmpty(n.fare))return t.Message+="No fare selection found.",r.addError(t),!1;if(l=n.fare,a.isEmpty(Selection))return t.Message+="No fare selection available.",r.addError(t),!1;if(l.Selection.length<1)return t.Message+="No fare selection filled in.",r.addError(t),!1;for(tt=l.shippingTotal,h="",w=0,nt=l.Selection.length;w<nt;w++)v=l.Selection[w],a.isDate(v.Ship)||(h="Shipment date is not valid",i=!1),a.isDate(v.Deliver)||(h="Delivery date is not valid",i=!1),v.Rate<5&&(h="Shipping rate is not valid",i=!1),v.Name===""&&(h="Selected shipping method is invalid",i=!1);return i===!1?(t.Message+=h,r.addError(t),i):i}function it(t){var r=!0,i;if(a.isEmpty(t)||a.isEmpty(t.payment))return!1;if(i=t.payment,i.mode==="CC"){a.isEmpty(i.cardNumber)||!$.payment.validateCardNumber(i.cardNumber)?(i.cardNumberInvalid=!0,r=!1):i.cardNumberInvalid=!1;a.isEmpty(i.cardType)||i.cardType==="Select credit card type..."?(i.cardTypeInvalid=!0,r=!1):i.cardTypeInvalid=!1;var u=(new Date).getUTCFullYear(),e=(new Date).getUTCMonth()+1,f=u,o=e;a.isEmpty(i.expirationYear)?(i.expirationYearInvalid=!0,r=!1):(f=parseInt(i.expirationYear),f<u?(i.expirationYearInvalid=!0,r=!1):i.expirationYearInvalid=!1);a.isEmpty(i.expirationMonth)?(i.expirationMonthInvalid=!0,r=!1):(o=parseInt(i.expirationMonth),f===u&&o<e?(i.expirationMonthInvalid=!0,r=!1):i.expirationMonthInvalid=!1);a.isEmpty(i.firstName)?(i.firstNameInvalid=!0,r=!1):i.firstNameInvalid=!1;a.isEmpty(i.lastName)?(i.lastNameInvalid=!0,r=!1):i.lastNameInvalid=!1}else i.mode==="PS"&&i.selectedPaymentMethod.type!=="PP"&&(typeof i.selectedPaymentMethod=="undefined"||i.selectedPaymentMethod===null||typeof i.selectedPaymentMethod.vaultId=="undefined"||i.selectedPaymentMethod.vaultId===null||i.selectedPaymentMethod.vaultId.length===0||parseInt(i.selectedPaymentMethod.expirationYear)<(new Date).getFullYear())&&(r=!1,i.savedPaymentInvalid=!0);return r===!1&&n.$broadcast("invalidFocus"),r}function nt(n){w.getProfile().isLoggedIn&&(d.model.mode="PS",d.model.selectedPaymentMethod=n,d.model.firstName=n.firstName,d.model.lastName=n.lastName,d.model.phone=w.getProfile().phoneNumber,d.model.paymentMode=n.paymentId)}function rt(){var n=w.getProfile();n.isLoggedIn===!0&&(n.hasDefaultPaymentMethod===!0&&nt(w.getProfile().defaultPaymentMethod),n.autoBillable===!0&&(d.model.mode="AB",d.model.selectedPaymentMethod=null),d.model.firstName=n.firstName,d.model.lastName=n.lastName,d.model.phone=n.phoneNumber,d.model.email=n.email,d.model.verifyEmail=n.email)}function st(t){var u,r,i,f;for(t.currentUser=w.getProfile(),t.currentUser.isLoggedIn&&(w.getPaymentMethods(),n.$on("setDefaultPaymentMethod",function(){rt()})),t.expirationYears=[],u=(new Date).getFullYear(),r=0;r<10;r++)t.expirationYears.push(parseInt(u+r));if(t.currentUser.paymentMethods!==null&&t.currentUser.paymentMethods.length>0)for(i=0,f=t.currentUser.paymentMethods.length;i<f;i++)t.currentUser.paymentMethods[i].isPrimary&&t.currentUser.autoBillable!==!0&&(nt(t.currentUser.paymentMethods[i]),t.payment.paymentMode=t.currentUser.paymentMethods[i].paymentId);n.$on("RedactPayment",function(){ut()})}function ht(){d.model.mode="CC"}function ct(){d.model.mode="PP"}function lt(){d.model.mode="AB"}function at(n){k.updateShipment().put({orderCode:n},function(){},function(){})}function tt(t,i){v.getSaveOrder(i).then(function(i){var u=i.data.orderCode,e=i.data.orderId,o;t.payment.orderId=e;t.payment.orderCode=u;o=i.data.shipmentIds;v.getPurchaseOrder(u,e).then(function(i){var e=i.data;f.stopSpinner();e.success===!0?(at(u),d.model.mode==="PP"?e.urlSuccess!==""&&(t.payment={},n.$broadcast("ClearState"),window.location.href=e.urlSuccess):(t.payment={},n.$broadcast("ClearState"),window.location.href=e.urlSuccess)):(d.model.failedPaymentCount++,t.submitting=!1,r.addError(p.AlertPaymentFailed,i.data))},function(){f.stopSpinner();t.submitting=!1;r.addError(p.AlertPaymentFailed,null)})},function(){f.stopSpinner();t.submitting=!1;r.addError(p.AlertPaymentFailed,null)})}function vt(n){var t,i;if((r.removeError(p.AlertPickupTimePassed),!it(n))||(t=et(n),!ot(t)))return n.submitting=!1,!1;f.setupSpinner();f.startSpinner();r.removeError(p.AlertPaymentFailed);t.payment.mode==="PS"&&n.selectedPaymentMethod!==null&&typeof n.selectedPaymentMethod!="undefined"&&(t.profilePayment={paymentId:n.selectedPaymentMethod.paymentId});w.getProfile().isLoggedIn||n.contact.continueAsGuest?tt(n,t):n.contact.firstNameInvalid||n.contact.lastNameInvalid||n.contact.emailAddressInvalid||n.contact.phoneNumberInvalid||n.contact.registrationPasswordInvalid||n.contact.registrationPasswordComplexityInvalid||(r.removeError(p.UserRegistrationFailed),i={firstName:n.contact.firstName,lastName:n.contact.lastName,middleName:"",accountType:"personal",company:"",userName:n.contact.emailAddress,phoneNumber:n.contact.phoneNumber,email:n.contact.emailAddress,emailConfirmed:!1,password:n.contact.registrationPassword,registrationPassword:n.contact.registrationPassword,confirmPassword:n.contact.confirmPassword,newsLetterOptIn:!1,offersOptIn:!1},b.registration.registerUser(i,function(){tt(n,t)},function(i){var e,u,o;if(f.stopSpinner(),r.addMessage(p.UserRegistrationFailed),e=[],i.data.modelState)for(u=0,o=i.data.modelState;u<o;u++)i.data.modelState[u]&&e.push(i.data.modelState[u]);tt(n,t);r.addError(p.UserRegistrationFailed,e)}))}function yt(n){var t=c.getCCTypeFromNumber(n.cardNumber);n.cardType=t.name}function pt(){n.$broadcast("priceChange")}function wt(){d.model=g}function ut(){d.model.cardType="Select credit card type...";d.model.cardNumber="";d.model.expirationMonth="mm";d.model.expirationYear="yyyy"}function bt(n){var i=[],r,t,u;for(i.push(n.payment.phone),r=n.shippingSearch.Stages,t=0,u=r.length;t<u;t++)i.push(r[t].fromPhone),i.push(r[t].toPhone);return i}function kt(n){for(var r=[],i=n.shippingSearch.Stages,t=0,u=i.length;t<u;t++)r.push({address1:i[t].fromStreetAddress,address2:i[t].fromAddress2,city:i[t].fromCity,state:i[t].fromState,postalCode:i[t].fromPostalCode}),r.push({address1:i[t].toStreetAddress,address2:i[t].toAddress2,city:i[t].toCity,state:i[t].toState,postalCode:i[t].toPostalCode});return r}function dt(n,t){var i=[],r=t.getProfile();return r.isLoggedIn&&i.push(r.email),n.contact&&i.push(n.contact.email),n.payment&&n.payment.guest&&i.push(n.payment.guest.email),i}var g={mode:"CC",firstName:"",lastName:"",phone:"",email:"",cardType:"Select credit card type...",cardNumber:"",expirationMonth:"mm",expirationYear:"yyyy",failedPaymentCount:0,donationCharity:u.model.presets.charities[u.model.presets.charities.length-1]},d=null;return d={model:g,setupForm:st,setCreditCard:ht,setPaypal:ct,setAutoBill:lt,purchase:vt,setDonation:pt,resetModel:wt,selectPaymentMethod:nt,selectDefaultPaymentMethod:rt,setCardType:yt,redactPayment:ut,validateForm:it,getPhonesFromScope:bt,getAddressesFromScope:kt,getEmailsFromScope:dt,SaveState:function(){sessionStorage.shipPaymentFormFactory=angular.toJson(d.model)},RestoreState:function(){d.model=angular.fromJson(sessionStorage.shipPaymentFormFactory);sessionStorage.shipPaymentFormFactory=null},ClearState:function(){d.model=g;d.SaveState()}},n.$on("SaveState",d.SaveState),n.$on("ClearState",d.ClearState),sessionStorage.shipPaymentFormFactory&&d.RestoreState(),d}]);angular.module("shipApp").controller("shipPaymentController",["$scope","$rootScope","shipPaymentFormFactory","formDataFactory","validationFactory","setting","modalService","serverValidationService","shippingSearchFactory","errorService","shipCouponService","currentUser","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){n.payment=i.model;n.shippingSearch=s.model;n.init=function(){var u,f;n.trayFlags=[];n.focusFlags=[];n.contact=n.shippingSearch.contact;n.profile=l.getProfile();u=n.profile;u.isLoggedIn===!1&&(typeof n.contact=="undefined"&&(n.contact=t.contact),n.payment.guest=n.contact);r.loadPasswordValidationOptions();r.setExpirationYearOptions();n.formData=r.model;n.formData.charityRaisedRounded=Math.round(n.formData.charityRaised/10)*10;(n.payment===undefined||n.payment===null)&&(i.resetModel(),n.payment=i.model);n.payment.expirationMonth=null;n.payment.expirationMonthDisplay=null;n.payment.expirationYear=null;f=c.checkForCoupon();i.setupForm(n);n.showSummary=!1;n.showPo=!1};n.openTerms=function(){e.openModal(n,"lg","terms")};n.openPolicy=function(){e.openModal(n,"lg","policy")};n.stopClick=function(n){a.stopClick(n)};n.setTrayFlag=function(t,i,r){a.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i){a.toggleTrayFlag(t,i,n)};n.closeAllTrays=function(t,i){a.closeAllTrays(t,n,i)};n.setFocusFlag=function(t,i,r){v.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){v.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){v.clearFocus(t,n,i)};n.setBUFBSelection=function(t){(t||n.payment.donationCharity&&n.payment.donationCharity.CharityOrgId===-1||(t=n.formData.presets.donationAmounts[n.formData.presets.donationAmounts.length-1]),t||!n.payment.donationCharity||n.payment.donationCharity.CharityOrgId!==-1)&&(n.payment.donationCharity=t,i.setDonation())};n.setDonation=function(){i.setDonation()};n.setCreditCard=function(t){i.setCreditCard(t);n.payment.selectedPaymentMethod=null};n.setPaypal=function(t){i.setPaypal(t);n.payment.selectedPaymentMethod=null};n.selectPaymentMethod=function(n){i.selectPaymentMethod(n)};n.setAutoBill=function(t){i.setAutoBill(t);n.payment.selectedPaymentMethod=null};n.purchase=function(){h.removeError(f.AlertAccountBlocked);n.submitting=!0;n.formSubmitted=!0;var t=i.getPhonesFromScope(n),r=i.getAddressesFromScope(n),u=i.getEmailsFromScope(n,l);o.checkDoNotShipList(u,r,t).then(function(t){t.data===!0?(h.addMessage(f.AlertAccountBlocked),n.submitting=!1):i.purchase(n)},function(n){h.logError(n)})};n.validateForm=function(){i.validateForm(n)};n.openModal=function(t,i){e.closeModals();e.openModal(n,t,i)};n.closeModal=function(){e.closeModals()};n.cancel=function(){n.$modalInstance.dismiss("cancel")};n.setCardType=function(n){i.setCardType(n)};n.setExpirationMonth=function(n,t){n.expirationMonth=t.Number;n.expirationMonthDisplay=t.Name+" - "+t.Number};n.setExpirationYear=function(n,t){n.expirationYear=t};t.$on("InitPayment",function(){n.init()});n.init()}]);angular.module("shipApp").controller("bikeEventController",["$rootScope","$scope","setting","bikeEventFactory","shippingSearchFactory","accordionFactory","$location","$anchorScroll",function(n,t,i,r,u,f,e,o){u.resetSettings();f.openTab("search");t.init=function(){var n=globals.bikeEvent;t.eventPoints=typeof n!="undefined"&&typeof n.ShipLocations!="undefined"?n.ShipLocations:[];t.bikeEvent=n};t.eventPointSelect=function(n){r.eventPointSelect(t,n)};t.scrollTo=function(n){e.hash(n);o()};t.init()}]);angular.module("shipApp").controller("bikeEventListController",["$rootScope","$scope","setting","shipSearchFormFactory",function(n,t,i,r){t.init=function(){r.model.eventIsLoaded=!1};t.init()}]);angular.module("shipApp").factory("bikeEventFactory",["$rootScope","shipDateFactory","shippingSearchFactory","accordionFactory",function(n,t,i,r){function u(n,t){var u,o,c,f,e,s,h;if(n.eventPoints===null||n.eventPoints===undefined||n.eventPoints.length===0||n.isEvent===!1&&n.isPartner===!1)return!1;for(u=null,o=0,c=n.eventPoints.length;o<c;o++)if(n.eventPoints[o].id===t){u=n.eventPoints[o];break}return u===null||u===undefined?!1:(f=i.model.Stages,e=u.stage-1,u.isFrom===!0?(f[e].fromCompany=u.title,f[e].fromCity=u.city,f[e].fromCountryCode=u.country,f[e].fromStreetAddress=u.address,f[e].fromAddress2=u.address2,f[e].fromState=u.state,f[e].fromPostalCode=u.postalCode,f[e].fromPhone=u.phone,f[e].fromLocation={lat:u.lat,lng:u.lng},s=u.title+" "+u.address+" "+u.address2+" "+u.city+", "+u.state+" "+u.postalCode+", "+u.country,f[e].fromDisplayAddress=s,f[e].fromFullAddress=s,f[e].fromFullAddressInvalid=!1,f[e].fromFullAddressValid=!0):(f[e].toCompany=u.title,f[e].toCity=u.city,f[e].toCountryCode=u.country,f[e].toStreetAddress=u.address,f[e].toAddress2=u.address2,f[e].toState=u.state,f[e].toPostalCode=u.postalCode,f[e].toPhone=u.phone,f[e].toLocation={lat:u.lat,lng:u.lng},h=u.title+" "+u.address+" "+u.address2+" "+u.city+", "+u.state+" "+u.postalCode+", "+u.country,f[e].toDisplayAddress=h,f[e].toFullAddress=h,f[e].toFullAddressInvalid=!1,f[e].toFullAddressValid=!0),r.openTab("search"),!0)}return{eventPointSelect:u}}]);angular.module("shipApp").service("validateAddressService",["$http","$q","$rootScope","spinnerFactory","errorService","validateAddressRequestFactory","validateAddressResponseFactory","setting",function(n,t,i,r,u,f,e,o){function s(n){return u.addError(o.AlertAddressValidWarning,n),f.model.addresses=[],r.stopSpinner(),null}function h(n){var h="valid",u=n.data,o=e.model,a=f.model.addresses,s,c,t,l;for(o.validatedAddress=[],s=null,c=f.model.addresses,t=0,l=u.length;t<l;t++)u[t].Success===!0&&u[t].Resolved===!0&&u[t].ValidOptions.length===1?(u[t].passedAvs=!0,o.validatedAddress.push(u[t])):u[t].Success===!0&&u[t].Resolved===!0&&u[t].ValidOptions.length>1?(u[t].ValidOptions[0].Address1=u[t].Address.Address1,u[t].passedAvs=!0,o.validatedAddress.push(u[t])):(u[t].passedAvs=!1,h="invalid",s={stages:c,avs:u[t]});f.model.state=h;f.model.addresses=[];i.$broadcast("addressValidationComplete",s);r.stopSpinner()}function c(t){return n({method:"post",url:"/api/Ups/validate",data:t})}function l(){f.model.state="checking";var n=f.model.addresses;r.setupSpinner();r.startSpinner();u.removeError(o.AlertAddressValidWarning);c(n).then(h,s)}function a(t,i,r,u){var f={City:t,State:i,PostalCode:r,CountryCode:u};return n({method:"post",url:"/api/Ups/avs",data:f})}function v(t){return n({method:"post",url:"/api/Ups/avs",data:t})}function y(t){return n({method:"post",url:"/api/Ups/validatesingle",data:t})}return{doValidate:l,addressTest:v,addressValidate:y,avsTest:a}}]);angular.module("shipApp").factory("validateAddressRequestFactory",["$rootScope","helpersFactory","setting",function(n,t){function r(n){var r={Company:n.fromCompany,FirstName:n.fromFirstName,LastName:n.fromLastName,Address1:n.fromStreetAddress,Address2:n.fromAddress2,City:n.fromCity,State:n.fromState,PostalCode:n.fromPostalCode,CountryCode:n.fromCountryCode,FromOrTo:"from"},u={Company:n.toCompany,FirstName:n.toFirstName,LastName:n.toLastName,Address1:n.toStreetAddress,Address2:n.toAddress2,City:n.toCity,State:n.toState,PostalCode:n.toPostalCode,CountryCode:n.toCountryCode,FromOrTo:"to"};(typeof i.model.addresses=="undefined"||i.model.addresses===null)&&(i.model.addresses=[]);t.containsObject(r,i.model.addresses)===!1&&i.model.addresses.push(r);t.containsObject(u,i.model.addresses)===!1&&i.model.addresses.push(u)}var i=null;return i={model:{fromState:"invalid",fromChanged:!1,toState:"invalid",toChanged:!1,addresses:[]},AddAddress:r,SaveState:function(){sessionStorage.validateAddressRequestFactory=angular.toJson(i.model)},RestoreState:function(){i.model=angular.fromJson(sessionStorage.validateAddressRequestFactory)}},n.$on("SaveState",i.SaveState),sessionStorage.validateAddressRequestFactory&&i.RestoreState(),i}]);angular.module("shipApp").factory("validateAddressResponseFactory",["$rootScope","helpersFactory","setting",function(n,t){function r(){return!1}function u(n){return(i.model.hasOwnProperty("validatedAddresses")===!1&&(i.model.validatedAddresses=[]),t.containsObject(n,i.model.validatedAddresses)===!1)?(i.model.validatedAddresses.push(n),!0):!1}function f(n,t){if(!n||!t)return!1;var i={Address1:n.hasOwnProperty("fromStreetAddress")?(""+n.fromStreetAddress).toUpperCase().trim():null,Address2:n.hasOwnProperty("fromAddress2")?(""+n.fromAddress2).toUpperCase():null,City:n.hasOwnProperty("fromCity")?(""+n.fromCity).toUpperCase():null,State:n.hasOwnProperty("fromState")?(""+n.fromState).toUpperCase():null,CountryCode:n.hasOwnProperty("fromCountryCode")?(""+n.fromCountryCode).toUpperCase():null,PostalCode:n.hasOwnProperty("fromPostalCode")?(""+n.fromPostalCode).toUpperCase():null},r={Address1:t.hasOwnProperty("Address1")?(""+t.Address1).toUpperCase():null,Address2:t.hasOwnProperty("Address2")?(""+t.Address2).toUpperCase():null,City:t.hasOwnProperty("City")?(""+t.City).toUpperCase():null,State:t.hasOwnProperty("State")?(""+t.State).toUpperCase():null,CountryCode:t.hasOwnProperty("CountryCode")?(""+t.CountryCode).toUpperCase():null,PostalCode:t.hasOwnProperty("PostalCode")?(""+t.PostalCode).toUpperCase():null};return angular.equals(i,r)}function e(n,t){if(!n||!t)return!1;var i={Address1:n.hasOwnProperty("toStreetAddress")?(""+n.toStreetAddress).toUpperCase().trim():null,Address2:n.hasOwnProperty("toAddress2")?(""+n.toAddress2).toUpperCase():null,City:n.hasOwnProperty("toCity")?(""+n.toCity).toUpperCase():null,State:n.hasOwnProperty("toState")?(""+n.toState).toUpperCase():null,CountryCode:n.hasOwnProperty("toCountryCode")?(""+n.toCountryCode).toUpperCase():null,PostalCode:n.hasOwnProperty("toPostalCode")?(""+n.toPostalCode).toUpperCase():null},r={Address1:t.hasOwnProperty("Address1")?(""+t.Address1).toUpperCase():null,Address2:t.hasOwnProperty("Address2")?(""+t.Address2).toUpperCase():null,City:t.hasOwnProperty("City")?(""+t.City).toUpperCase():null,State:t.hasOwnProperty("State")?(""+t.State).toUpperCase():null,CountryCode:t.hasOwnProperty("CountryCode")?(""+t.CountryCode).toUpperCase():null,PostalCode:t.hasOwnProperty("PostalCode")?(""+t.PostalCode).toUpperCase():null};return angular.equals(i,r)}var i;return i={model:{validatedAddresses:[],originalFrom:[],originalTo:[]},isAddressValidated:r,addValidatedAddress:u,isFromAddressSame:f,isToAddressSame:e,SaveState:function(){sessionStorage.validateAddressResponseFactory=angular.toJson(i.model)},RestoreState:function(){i.model=angular.fromJson(sessionStorage.validateAddressResponseFactory)}},n.$on("SaveState",i.SaveState),sessionStorage.validateAddressResponseFactory&&i.RestoreState(),i}]);angular.module("shipApp").controller("shipConfirmationController",["$rootScope","$scope","$location","setting","purchaseService","spinnerFactory","errorService","validationFactory",function(n,t,i,r,u,f,e,o){t.init=function(){var e=i.search(),t;return o.isEmpty(e)?!1:o.isEmpty(e.ordercode)?!1:(t=e.ordercode,t.length!==36)?!1:(f.setupSpinner(),f.startSpinner(),u.sendConfirmationEmail(t).then(function(n){f.stopSpinner();var t=n.data},function(n){f.stopSpinner();var t=angular.copy(r.AlertConfirmationFailed);n.status===302&&(t.Message=n.data)}),u.registerCouponUse(t).then(function(){f.stopSpinner()},function(){f.stopSpinner()}),n.$broadcast("ClearState"),sessionStorage.clear(),!0)};t.init()}]);angular.module("shipApp").controller("shipLabelController",["$scope","setting",function(n){n.init=function(){}}]);angular.module("shipApp").factory("geoLocationFactory",["$rootScope",function(n){function f(n){for(var i=0,r=t.model.locations.length;i<r;i++)if(t.model.locations[i].originalAddress===n&&t.model.locations[i].postalCode)return t.model.locations[i];return!1}function e(n,t){return(t=t.trim(),n=n.trim(),n.indexOf(" "+t+" ",0)>-1||n.lastIndexOf(t+" ",0)===0)?!0:!1}function r(n,t){for(var i=0,r=n.length;i<r;i++)if(n[i]===t)return!0;return!1}function u(n,t,i){if((i=typeof i=="undefined"?"":i,typeof n=="undefined"||n===null)||n.address_components==="undefined"||n.address_components===null)return"";for(var u=0,f=n.address_components.length;u<f;u++)if(r(n.address_components[u].types,t))return i?n.address_components[u].short_name:n.address_components[u].long_name;return""}function i(n,t,i){var r,e,f;if(i=typeof i=="undefined"?"":i,typeof n=="undefined"||n===null)return"";for(r=0,e=n.length;r<e;r++)if(f=u(n[r],t,i),f!=="")return f;return!1}function o(n,t){var s="",f,i=0,h=n.length,e,o,l,c;if(h===1)return t;for(i=0;i<h;i++)if(f=n[i],r(f.types,"postal_code")&&(s=u(f,"postal_code",!1),s!==""))return s;for(i=0;i<h;i++)for(f=n[i],e=f.address_components,o=0,l=e.length;o<l;o++)if(c=e[o],r(c.types,"postal_code")===!0&&r(e.types,"postal_code_prefix")===!1)return c.long_name;return t}function s(n,r){var nt=f(r),h,u,k,c,d,a,v,y,p,g,w;if(nt!==!1)return nt;var b=n[0].name,it=n[0].formatted_address,rt=n[0].formatted_phone_number,s="",et=i(n,"neighborhood"),l=i(n,"locality");l===!1&&(l="");h=i(n,"administrative_area_level_1",!0);h===!1&&(h="");u=i(n,"postal_code");u===!1&&(u="");k=i(n,"postal_code_prefix");k===!1&&(k="");u===k&&u!==!1&&(u=o(n,u));c="";it.indexOf(b)===-1&&typeof b!="undefined"&&b!==u&&(c=b);d=i(n,"country",!0);a=i(n,"country");d===!1&&(d="");v="";y=i(n,"street_number");y===!1&&(y="");p=i(n,"route");p===!1&&(p="");p===c&&(c="");g=e(r,y);v=g?(y+" "+p).trim():"";c!==""&&(s+=c+", ");v!==""&&g&&(s+=v+", ");w=i(n,"subpremise");w=w===!1?"":"#"+w;l!==""&&l!==null&&(s+=l+", ");h!==""&&h!==null&&(s+=h+" ");u!==""&&u!==null&&(s+=u+", ");a!==""&&a!==null&&(s+=a);var ut=s,ft={lat:n[0].geometry.location.lat(),lng:n[0].geometry.location.lng()},tt={originalAddress:r,fullAddress:s,displayAddress:ut,streetAddress:v,unitNumber:w,city:l,state:h,countryName:a,countryCode:d,postalCode:u,location:ft,company:c,phone:rt};return typeof t&&t.model.locations.push(tt),tt}var t={};return t={model:{locations:[]},SaveState:function(){sessionStorage.geoLocationFactory=angular.toJson(t.model)},RestoreState:function(){t.model=angular.fromJson(sessionStorage.geoLocationFactory)},getShipLocation:s,getAddressComponent:i},n.$on("SaveState",t.SaveState),sessionStorage.geoLocationFactory&&t.RestoreState(),t}]);angular.module("shipApp").service("shipCouponService",["$http","$rootScope","$timeout","errorService","helpersFactory","setting",function(n,t,i,r,u,f){function o(t){try{return n.get("/api/shipcoupon/get/"+t)}catch(i){r.addError(f.AlertServerWarning,i)}return null}function s(){try{return n.get("/api/shipcoupon/getuserdiscount")}catch(t){r.addError(f.AlertServerWarning,t)}return null}function h(){var n=u.getVariable("ccode");return n&&e.getCoupon(n).then(function(n){var r=n.data;e.coupon=r;e.saveState();i(function(){t.$broadcast("couponDiscount",r)},500)},function(){}),n}function c(){sessionStorage.shipCouponService=angular.toJson(e.coupon)}function l(){e.coupon=angular.fromJson(sessionStorage.shipCouponService)}var e;return e={coupon:{},getCoupon:o,getUserDiscount:s,checkForCoupon:h,saveState:c,restoreState:l},t.$on("SaveState",e.saveState),sessionStorage.shipCouponService&&e.restoreState(),e}]);angular.module("shipApp").controller("bikeShopFinderController",["$scope","$rootScope","$location","$timeout","setting","bikeShopFinderFactory","trayFactory","focusFactory","currentUser","addressBookResource","helpersFactory","formDataFactory",function(n,t,i,r,u,f,e,o,s,h){n.init=function(){f.prepareMap(n);f.model.range||(f.model.range=5);f.model.units||(f.model.units="Miles");n.trayFlags=[];n.focusFlags=[];n.rangeOptions=[5,10,25,50,100];n.profile=s.getProfile();s.getAddresses();t.$on("userAddressesLoaded",function(){n.checkForSavedShops()})};n.setUnits=function(n){f.model.units=n};n.checkForSavedShops=function(){var t,r,i,u;if(f.model.bikeShops){for(t=0,r=f.model.bikeShops.length;t<r;t++)for(f.model.bikeShops[t].alreadySaved=!1,i=0,u=n.profile.addresses.length;i<u;i++)if(f.model.bikeShops[t].ShipLocation.address1&&n.profile.addresses[i].address1&&f.model.bikeShops[t].ShipLocation.address1.toLowerCase()===n.profile.addresses[i].address1.toLowerCase()&&typeof f.model.bikeShops[t].ShipLocation.address2!="undefined"&&typeof n.profile.addresses[i].address2!="undefined"&&f.model.bikeShops[t].ShipLocation.address2.toLowerCase()===n.profile.addresses[i].address2.toLowerCase()&&f.model.bikeShops[t].ShipLocation.city&&n.profile.addresses[i].city&&f.model.bikeShops[t].ShipLocation.city.toLowerCase()===n.profile.addresses[i].city.toLowerCase()&&f.model.bikeShops[t].ShipLocation.state&&n.profile.addresses[i].state&&f.model.bikeShops[t].ShipLocation.state.toLowerCase()===n.profile.addresses[i].state.toLowerCase()&&f.model.bikeShops[t].ShipLocation.postalCode&&n.profile.addresses[i].postalCode&&f.model.bikeShops[t].ShipLocation.postalCode.toLowerCase()===n.profile.addresses[i].postalCode.toLowerCase()){f.model.bikeShops[t].alreadySaved=!0;break}f.applyFilters(1)}};n.bikeShopFinderFactory=f.model;n.getLocation=function(){var n=this.getPlace();f.getLocation(n)};n.doSearch=function(){f.doSearch(n);n.checkForSavedShops()};n.panTo=function(n){f.panTo(n)};n.clickable=f.clickable;n.setRange=function(t){n.bikeShopFinderFactory.range=t};n.stopClick=function(n){e.stopClick(n)};n.setTrayFlag=function(t,i,r){e.setTrayFlag(t,i,r,n)};n.toggleTrayFlag=function(t,i){e.toggleTrayFlag(t,i,n)};n.closeAllTrays=function(t,i){e.closeAllTrays(t,n,i)};n.setFocusFlag=function(t,i,r){o.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){o.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){o.clearFocus(t,n,i)};n.applyFilters=function(n){f.applyFilters(n)};n.shipFrom=function(n){t.passCommand={target:"ship",command:"shipFromBikeShop",shipLocation:n.ShipLocation};i.url("/ship")};n.shipTo=function(n){t.passCommand={target:"ship",command:"shipToBikeShop",shipLocation:n.ShipLocation};i.url("/ship")};n.saveToProfile=function(t){var i,u;n.profile.isLoggedIn&&(i="",i=t.ShipLocation.company.toLowerCase().indexOf(t.ShipLocation.city.toLowerCase())>-1?t.ShipLocation.company:t.ShipLocation.company+" "+t.ShipLocation.city,u={addressId:0,displayName:i,companyName:t.ShipLocation.company,firstName:n.profile.firstName,lastName:n.profile.lastName,address1:t.ShipLocation.address1,address2:t.ShipLocation.address2,address3:"",city:t.ShipLocation.city,state:t.ShipLocation.state,postalCode:t.ShipLocation.postalCode,country:t.ShipLocation.country,fullCountry:{},phone:t.ShipLocation.phone,isPrimary:!1,saveToProfile:!0},h.addAddress().post(u,function(){s.getAddresses();t.savedSuccess=!0;r(function(){t.savedSuccess=!1},1500)},function(){s.getAddresses()}))};n.init()}]);angular.module("shipApp").factory("bikeShopFinderFactory",["$rootScope","$timeout","$q","$anchorScroll","$window","$location","errorService","bikeShopFinderService","spinnerFactory","validationFactory","setting","helpersFactory","formDataFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a){function tt(){sessionStorage.bikeShopFinderFactory=angular.toJson(v.model)}function it(){v.model=angular.fromJson(sessionStorage.bikeShopFinderFactory)}function w(){var n=v.model.locationToSearch,t=new google.maps.LatLng(n.lat,n.lng);v.map&&v.map.setCenter(t)}function b(n){if(n===null||n===undefined||n==="")return"";var t="http";return n.slice(0,t.length)===t?n:"http://"+n}function rt(n){return"<div><strong>"+n.company+"<\/strong><br/>"+n.address1+"<br/>"+n.city+" "+n.state+", "+n.postalCode+"<br/>"+n.phone+'<br/><a href="'+b(n.website)+'" target="_blank">'+n.website+"<\/a><\/div>"}function ut(n,t){var i=new google.maps.InfoWindow({content:t});n.addListener("click",function(){i.open(n.get("map"),n)})}function p(){var n=v.model.filteredBikeShops,i,u,t,f,e,r;if(n===null||n===undefined||n.length===0)return!1;for(i=0,u=v.mapPoints.length;i<u;i++)v.mapPoints[i].setMap(null);for(v.mapPoints=[],t=0,f=n.length;t<f;t++)h.isEmpty(n[t].ShipLocation)||n[t].marker===undefined&&(e=new google.maps.LatLng(n[t].ShipLocation.latitude,n[t].ShipLocation.longitude),r=new google.maps.Marker({position:e,label:{text:""+(t+1),color:"#FFFFFF",fontSize:"13px",fontWeight:"bold",fontFamily:"Montserrat, sans-serif"},map:v.map,title:n[t].Name,clickable:!0,draggable:!1,flat:!0,icon:{url:"https://gcdn.bikeflights.com/Images/bf-map-marker-blue.png",labelOrigin:new google.maps.Point(12,13)}}),ut(r,rt(n[t].ShipLocation)),v.mapPoints.push(r));return!0}function ft(n){var t,i,u,r;if(n.googleLocationId.length===0||(t=v.model.filteredBikeShops,t===null||t===undefined||t.length===0))return!1;for(i=0,u=t.length;i<u;i++)if((r=t[i].ShipLocation,!h.isEmpty(r))&&n.shipLocationId===r.shipLocationId)return t[i].ShipLocation.googleLocationId=n.googleLocationId,!0;return!1}function k(n,t){var i,r,f,u;if(n===null||typeof n=="undefined"||n.length===0||(i=v.model.filteredBikeShops,i===null||i===undefined||i.length===0))return!1;for(r=0,f=i.length;r<f;r++)(u=i[r].ShipLocation,h.isEmpty(u))||u.googleLocationId===n&&(i[r].ShipLocation.hoursFromPlaces=t);return!0}function et(){var t=v.model.filteredBikeShops,u,i,f,n,r;if(t===null||t===undefined||t.length===0)return!1;for(u=new Date,i=0,f=t.length;i<f;i++)(n=t[i].ShipLocation,h.isEmpty(n))||(n.googleLocationId===null||n.googleLocationId.length===0?o.getPlaceIdForLocation(n.shipLocationId).then(function(n){var t=n.data;if(t.googleLocationId===null||t.googleLocationId.length===0)return!1;ft(t)&&d(t)},function(){}):(r=new Date(n.hoursLastLoaded),n.hoursFromPlaces!==null&&typeof n.hoursFromPlace!="undefined"&&r.setMonth(r.getMonth()+6)<u?k(n.googleLocationId,n.hoursFromPlaces):d(n)))}function d(n){o.getHoursFromPlaceId(n.googleLocationId).then(function(n){var t=n.data.hours,i=n.data.placeId;k(i,t)},function(){})}function y(){var n,i,t,r,u;if(!v.map||(n=v.model.bikeShops,n===null||n===undefined||n.length===0))return!1;for(i=new google.maps.LatLngBounds,t=0,r=n.length;t<r;t++)h.isEmpty(n[t].ShipLocation)||(u=new google.maps.LatLng(n[t].ShipLocation.latitude,n[t].ShipLocation.longitude),i.extend(u));return v.map.fitBounds(i),!0}function g(n){var i=v.model.locationToSearch,r=v.model.range||5,h=v.model.units==="Miles"?"m":"k";return i===null||typeof i=="undefined"||typeof i.lat=="undefined"||typeof i.lng=="undefined"?!1:(s.setupSpinner(),s.startSpinner(),i.loaded===!1&&o.getBicycleShops(i.lat,i.lng,r,h).then(function(i){var o,e,r,h;for(s.stopSpinner(),o=i.data,e=o.length>0,v.model.bikeShops=o,r=0,h=v.model.bikeShops.length;r<h;r++)v.model.bikeShops[r].ShipLocation=l.formatShipLocation(v.model.bikeShops[r].ShipLocation,a.getCountryFromCode(v.model.bikeShops[r].ShipLocation.country));v.model.filteredBikeShops=angular.copy(o);v.model.showResults=!1;n===!0?t(function(){f.path("/bicycleshops");t(function(){u.location.reload()},50)},50):(v.model.showResults=!0,w(e),e&&(p(e),y(e),et(),nt()))},function(){s.stopSpinner();e.addError(c.AlertServerWarning,null)}),!0)}function nt(){var u=[],n=[],t,f,r,i,e;for(v.model.filter_1===!0&&n.push(1),v.model.filter_2===!0&&n.push(2),v.model.filter_3===!0&&n.push(3),v.model.filter_4===!0&&n.push(4),v.model.filter_5===!0&&n.push(5),v.model.filter_6===!0&&n.push(6),t=0,f=v.model.bikeShops.length;t<f;t++){if(r=0,v.model.bikeShops[t].ShipLocationService.length>0)for(i=0,e=v.model.bikeShops[t].ShipLocationService.length;i<e;i++)n.includes(v.model.bikeShops[t].ShipLocationService[i].shipLocationServiceId)&&r++;r===n.length&&u.push(v.model.bikeShops[t])}v.model.filteredBikeShops=u;p();y()}function ot(n){n.$on("mapInitialized",function(n,t){v.map=t;p();y();google.maps.event.addDomListener(window,"resize",function(){google.maps.event.trigger(v.map,"resize");w();y()});google.maps.event.addListenerOnce(v.map,"idle",function(){google.maps.event.trigger(v.map,"resize");y()})})}function st(){}function ht(n){if(n===null||typeof n=="undefined")return!1;var t={lat:n.geometry.location.lat(),lng:n.geometry.location.lng(),loaded:!1};return v.model.locationToSearch=t,!0}function ct(n){f.$$path==="/pack"||f.$$url==="/how_to_pack_a_bike.aspx"?g(!0,n):g(!1,n);f.hash("bikeShopResults");r()}function lt(n){if(h.isEmpty(v.map)||h.isEmpty(v.model.bikeShops))return!1;var t=new google.maps.LatLng(v.model.bikeShops[n].ShipLocation.latitude,v.model.bikeShops[n].ShipLocation.longitude);return v.map.panTo(t),v.map.setZoom(15),r("bikeShopTop"),!0}function at(){v.model.showResults=f.path()==="/bicycleshops"?!0:!1}var v=null;return v={model:{locationToSearch:{}},mapPoints:[],getLocation:ht,doSearch:ct,setupInitialView:st,prepareMap:ot,panTo:lt,showMap:at,applyFilters:nt,clickable:b,saveState:tt,restoreState:it},n.$on("SaveState",v.saveState),sessionStorage.bikeShopFinderFactory&&v.restoreState(),v}]);angular.module("shipApp").service("bikeShopFinderService",["$http","errorService","setting",function(n,t,i){function r(r,u,f,e){try{return n({method:"get",url:"/api/BikeShops/getShopsNear",params:{latitude:r,longitude:u,range:f,units:e}})}catch(o){t.addError(i.AlertServerWarning,o)}return null}function u(t){return n({method:"get",url:"/api/BikeShops/getPlaceIdForLocation",params:{shipLocationId:t}})}function f(t){return n({method:"get",url:"/api/BikeShops/getHoursFromPlaceId",params:{placeId:t}})}return{getBicycleShops:r,getPlaceIdForLocation:u,getHoursFromPlaceId:f}}]);angular.module("shipApp").factory("trackingFormFactory",["$timeout","$q","$location","$rootScope","trackingService","spinnerFactory","errorService","setting",function(n,t,i,r,u,f){function s(){}function o(n,t){for(var i=0,r=t.length;i<r;i++)if(t[i].scantype===n)return!0;return!1}function h(n){var t,u,f,a,v,y,s;if(n===null||n[0]===null)return!1;var p=e.model.trackingNumber,i=n[0].data,k=new Date(i.ShipDate),w=new Date(i.EstimatedDelivery),d=new Date(i.ActualDelivery);if(i.hasEstDelivery=w.getYear()>1,i.isDelivered=i.Delivered,i.isShipped=i.Shipped,i.DeliverDate=i.isDelivered?d:w,i.ShippedDate=k,i.success===!0){t=i.scans;i.latestProgress=t[t.length-1].description;e.model=i;u=0;(o("MP",t)||o("OR",t)||o("XD",t))&&(u=15);o("PU",t)&&(u=45);o("AR",t)&&(u=60);o("DS",t)&&(u=75);(o("OF",t)||o("OT",t))&&(u=90);(o("FS",t)||o("9E",t))&&(u=100);e.model.warning=o("AL",t)||o("55",t)?!0:!1;var g=u/t.length,b=[],h=!1,nt=!1,c=0,l;for(t.length>0&&(l=t[0].timeStamp.split("T")[0]),f=0,a=t.length;f<a;f++)v=t[f].timeStamp.split("T")[0],y="0",v!==l&&(y="25px",l=v),t[f].padding=y,s=!1,(t[f].scantype==="DE"||t[f].scantype==="SE")&&(s=!0),c+=g,(s!==h||f===a-1)&&(b.push({warning:h,progress:c}),s===!0&&(nt=!0),c=0),h=s;e.model.events=b;e.model.total=100;e.model.progress=u;e.model.trackedNumber=p;e.model.trackingNumber=p;r.$broadcast("NewTracking")}return!0}function c(){e.model.scans=[]}function l(){f.stopSpinner()}function a(){f.setupSpinner();f.startSpinner();var n=[];n.push(u.getTracker(e.model.trackingNumber));t.all(n).then(h,c).then(l())}var e={};return e={model:{},setupForm:s,doTrack:a,SaveState:function(){typeof e.model!="undefined"&&(sessionStorage.trackingFormFactory=angular.toJson(e.model))},RestoreState:function(){typeof sessionStorage.trackingFormFactory!="undefined"&&(e.model=angular.fromJson(sessionStorage.trackingFormFactory))},ClearState:function(){e.model={}}},r.$on("SaveState",e.SaveState),sessionStorage.trackingFormFactory&&e.RestoreState(),e}]);angular.module("shipApp").controller("trackingController",["$scope","$rootScope","$location","$window","setting","trackingFormFactory","alertService","focusFactory",function(n,t,i,r,u,f,e,o){n.init=function(){n.focusFlags=[];var r=i.search().trackingnumber;typeof r!="undefined"&&r!==""?(f.model.trackingNumber=r,f.doTrack()):(n.data.scans=[],n.data.trackingNumber="");f.setupForm(n);(t.SiteMessages===undefined||t.SiteMessages===null)&&(t.SiteMessages=[]);e.getAlerts("Track");n.data.submitted=!1};n.setFocusFlag=function(t,i,r){o.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){o.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){o.clearFocus(t,n,i)};n.formIsValid=function(){return n.data.trackingNumber&&n.data.trackingNumber.length>7?(n.data.trackingNumberInvalid=!1,!0):(n.data.trackingNumberInvalid=!0,!1)};n.doTrack=function(){n.data.submitted=!0;n.formIsValid()&&(r.location="/track?trackingnumber="+n.data.trackingNumber)};t.$on("NewTracking",function(){n.data=f.model});n.data=f.model;n.init()}]);angular.module("shipApp").service("trackingService",["$http","$q","$rootScope","spinnerFactory","errorService","setting",function(n,t,i,r,u,f){function e(t){if(t===null||typeof t=="undefined"||t==="")return null;return n({method:"get",url:"/api/UPS/track",params:{trackingNumber:t}})}return{getTracker:e}}]);angular.module("shipApp").controller("qbpTopShopController",["$scope","$rootScope","$location","$window","$http","setting","trayFactory","focusFactory","validationFactory","qbpTopShopService",function(n,t,i,r,u,f,e,o,s,h){n.$on("$includeContentLoaded",function(){r.ga("send","pageview",{page:i.path(),title:n.$root.title})});n.init=function(){n.trayFlags=[];n.focusFlags=[];n.showSuccess=!1;n.showForm=!0;n.showError=!1;n.qbpData={businessName:"",ownerName:"",email:"",phone:""}};n.setFocusFlag=function(t,i,r){o.setFocusFlag(t,i,r,n)};n.toggleFocusFlag=function(t,i){o.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){o.clearFocus(t,n,i)};n.validateForm=function(){var t=!0;return s.isEmpty(n.qbpData.businessName)||n.qbpData.businessName.length<3?(n.qbpData.businessNameInvalid=!0,t=!1):n.qbpData.businessNameInvalid=!1,s.isEmpty(n.qbpData.ownerName)||n.qbpData.ownerName.length<2?(n.qbpData.ownerNameInvalid=!0,t=!1):n.qbpData.ownerNameInvalid=!1,s.isEmpty(n.qbpData.email)||!s.isValidEmail(n.qbpData.email)?(n.qbpData.emailInvalid=!0,t=!1):n.qbpData.emailInvalid=!1,s.isEmpty(n.qbpData.phone)||!s.isPhone(n.qbpData.phone)?(n.qbpData.phoneInvalid=!0,t=!1):n.qbpData.phoneInvalid=!1,t};n.submitForm=function(){n.validateForm()&&h.post(n.qbpData).then(function(){n.showSuccess=!0;n.showForm=!1;n.showError=!1},function(){n.showSuccess=!1;n.showForm=!0;n.showError=!0})};n.init()}]);angular.module("shipApp").service("qbpTopShopService",["$http","setting",function(n){function t(t){return n({method:"post",url:"/api/qbptopshop/post",data:t})}return{post:t}}]);angular.module("shipApp").controller("routingController",["currentUser","userAccount","$scope","$location","setting","$cookies",function(n,t,i,r,u,f){i.init=function(){var n="";r!==null&&typeof r!="undefined"&&r.$$url!==null&&typeof r.$$url!="undefined"&&(n=r.$$url.toLowerCase());i.template={};switch(n){case"/logout":t.logout().logoutUser(null,function(){f.remove("auth-token");f.remove("auth-userName");location.reload()},function(){f.remove("auth-token");f.remove("auth-userName");location.reload()});r.path("/");break;case"/how_to_pack_a_bike.aspx":r.path("/pack");break;case"/bicycle_shipping.aspx":r.path("/ship");break;case"/bicycle_shops.aspx":r.path("/bicycleshops");break;case"/qbptopshop":i.template.url="/scripts/app/qbptopshop/qbptopshop.template.html";break;case"/claimsform":i.template.url="/scripts/app/claimsform/claims.template.html";break;default:if(n.indexOf("/events/")>-1||n.indexOf("/partners/")>-1)i.template.url="/scripts/app/shippath/shippath.accordion.html";else if(n.indexOf("/ambassador/")>-1)i.template.url="/scripts/app/Account/register/register.template.html";else{if(n.indexOf("/confirmation")>-1)return;i.template.url="/scripts/app/shippath/shippath.accordion.html"}}};i.init()}]);angular.module("shipApp").controller("bikeFlightsVideoController",["$scope","setting","helpersFactory","modalService","$location",function(n,t,i,r,u){n.init=function(){n.moreInfoLink="Learn more about how to ship a bike";n.showInfo=!0};n.openModal=function(t){r.closeModals();r.openModal(n,"sm",t)};n.toggleMoreInfo=function(){n.showInfo=!n.showInfo;n.moreInfoLink=n.showInfo===!0?"Hide":"Learn more about how to ship a bike"};n.goToShip=function(){u.path("/ship")};n.init()}]),function(){angular.module("shipApp").controller("accountController",["userAccount","currentUser","accountResource","$rootScope","$cookies","$location","errorService","setting","helpersFactory","modalService","Idle","$scope",function(n,t,i,r,u,f,e,o,s,h,c,l){var a=this,v;l.vm=a;a.message="";a.userData={displayName:"",emailConfirmed:!1};a.profileMenu=!1;a.showEmailConfirmationAlert=!1;a.toggleEmailConfirmationAlert=function(){a.showEmailConfirmationAlert=!a.showEmailConfirmationAlert;a.message=""};a.closeModals=function(){h.closeModals()};a.isLoggedIn=function(){var n=t.getProfile();return a.userData=n,n.isLoggedIn&&n.isInitialized};a.sendConfirmationEmail=function(){n.send.sendConfirmationEmail({email:t.getProfile().email},function(){a.message="A confirmation email has been sent to "+t.getProfile().email},function(n){if(a.message=n.statusText+"\r\n",n.data.exceptionMessage&&(a.message+=n.data.exceptionMessage),n.data.modelState)for(var t in n.data.modelState)a.message+=n.data.ModelState[t]+"\r\n";error.status===-1&&(a.message+="Our servers are down for maintenance.\r\nPlease try again later\r\n")})};a.logout=function(i){a.userData={displayName:"",emailConfirmed:!1};u.remove("auth-token");u.remove("auth-userName");document.cookie.split(";").forEach(function(n){document.cookie=n.replace(/^ +/,"").replace(/=.*/,"=;expires="+(new Date).toUTCString()+";path=/")});t.logoutUser();t.setProfileData(a.userData);a.SaveState();n.logout().logoutUser(null,function(){i===!0?f.path("/timeout"):location.reload()},function(){i===!0?f.path("/timeout"):location.reload()})};a.navigateTo=function(n){var t=s.getPageNameFromLocation(f);t==="/ship"?f.path(n):window.location.href=n};v=function(){if(a.authToken=u.get("auth-token"),a.authUsername=u.get("auth-userName"),typeof u.get("auth-token")!="undefined"&&typeof u.get("auth-userName")!="undefined")t.setProfileToken(u.get("auth-userName"),u.get("auth-token")),i.getuser().getUserData(null,function(n){a.userData=n;a.userData.token=a.authToken;t.setProfileData(a.userData);t.setProfileToken(a.authUsername,a.authToken);t.showLoggedInMenu()}),c.watch(),r.$on("IdleStart",function(){s.scrollToTop();h.closeModals();h.openModal(l,"xs","timeout")}),r.$on("IdleTimeout",function(){s.scrollToTop();a.logout(!0)});else{var n=t.getProfile();n.isInitialized=!0;t.setProfileData(n);t.showLoggedOutMenu()}};r.$on("readCurrentUserData",function(){v()});a.SaveState=function(){typeof a.userData!="undefined"&&(sessionStorage.userData=angular.toJson(a.userData))};a.RestoreState=function(){typeof sessionStorage.userData!="undefined"&&(a.userData=angular.fromJson(sessionStorage.userData),typeof a.userData.token!="undefined"&&a.userData.token!==""&&(t.setProfileToken(a.userData.email,a.userData.token),t.setProfileData(a.userData)))};r.$on("SaveState",a.SaveState);sessionStorage.userData&&a.RestoreState();v()}])}(),function(){angular.module("shipApp").factory("accountResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{getuser:function(t){return n(i+"/api/basicuserdata/get",null,{getUserData:{method:"GET",headers:{Authorization:"Bearer "+t}}})}}}])}();angular.module("shipApp").controller("addressBookController",["addressBookResource","currentUser","$rootScope","setting","helpersFactory","validationFactory","GeoCoder","formDataFactory","errorService","$location","modalService","validateAddressService","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function b(u){s.removeError(r.UserAddressFailed);s.removeError(r.AlertAddressValidWarning);typeof y.addressData.countryCode=="undefined"&&(y.addressData.countryCode=y.addressData.fullCountry.Code);y.addressData.confirmUseAnyway&&(y.addressData.fromOrTo=y.fromOrTo,y.addressData.index=y.index,y.addressData.fullCountry=o.getCountryFromCode(y.addressData.country),i.$broadcast("detailedAddressAvailable",y.addressData),c.closeModals());var f={Company:y.addressData.companyName,FirstName:y.addressData.firstName,LastName:y.addressData.lastName,Address1:y.addressData.address1,Address2:y.addressData.address2,Address3:y.addressData.address3,City:y.addressData.city,State:y.addressData.state,PostalCode:y.addressData.postalCode,CountryCode:y.addressData.countryCode,Phone:y.addressData.phone};l.addressValidate(f).then(function(f){var h=f.data,l,e;y.addressData.avsPassed=h.Success&&h.Resolved;l=h.ValidOptions?h.ValidOptions.length:0;y.addressData.avsPassed&&l===1?(y.addressData.isResidential=h.Residential,e=h.ValidOptions[0],y.addressData.address1=e.Address1,y.addressData.city=e.City,y.addressData.state=e.State,y.addressData.postalCode=e.PostalCode+(e.PostalCodeExt?"-"+e.PostalCodeExt:""),y.addressData.countryCode=e.CountryCode,y.addressData.passedAvs=!0,(y.location.startsWith("/ship")||y.location.startsWith("/events/"))&&y.addressData.saveToProfile===!1?(y.addressData.fromOrTo=y.fromOrTo,y.addressData.index=y.index,y.addressData.fullCountry=o.getCountryFromCode(y.addressData.country),i.$broadcast("detailedAddressAvailable",y.addressData),c.closeModals()):y.isLoggedIn()&&n.addAddress().post(y.addressData,function(){y.clearAddressData(u);t.getAddresses();s.addMessage(r.UserAddressAddSuccess);y.changeMode("list");y.location.startsWith("/ship")&&c.closeModals()},function(){t.getAddresses();s.addMessage(r.UserAddressFailed)})):w()},function(){w()})}function w(){y.addressData.passedAvs=!1;y.addressData.confirmUseAnyway=!0;y.addressData.message="Address did not pass validation, please double check your address or click Continue to use it anyway";y.addButton="Continue";s.addError(r.AlertAddressValidWarning,null)}function k(i){return(y.submitted=!0,s.removeError(r.UserAddressFailed),!y.validateForm())?!1:(n.updateAddress().put(y.addressData,function(){y.clearAddressData(i);t.getAddresses();s.addMessage(r.UserAddressUpdateSuccess);y.changeMode("list")},function(){s.addMessage(r.UserAddressFailed)}),!0)}var y=this,p;y.isLoggedIn=function(){return t.getProfile().isLoggedIn};y.message="";y.header="Your Addresses";y.addresses=[];y.addressData={addressId:0,displayName:"",companyName:"",firstName:"",lastName:"",address1:"",address2:"",address3:"",city:"",state:"",zip:"",country:"US",fullCountry:{},phone:"",isPrimary:!1,saveToProfile:!1};y.trayFlags=[];y.focusFlags=[];y.stopClick=function(n){a.stopClick(n)};y.setTrayFlag=function(n,t,i){a.setTrayFlag(n,t,i,y)};y.toggleTrayFlag=function(n,t){a.toggleTrayFlag(n,t,y)};y.closeAllTrays=function(n,t){a.closeAllTrays(n,lc,t)};y.setFocusFlag=function(n,t,i){v.setFocusFlag(n,t,i,y)};y.toggleFocusFlag=function(n,t){v.toggleFocusFlag(n,t,y)};y.clearFocus=function(n,t){v.clearFocus(n,y,t)};y.stateProvChange=function(){y.addressData.state=y.addressData.stateProv.stateprovcode};p=function(){y.mode=1;y.pageCode="A";y.errors=i.Errors||[];y.location=h.url();y.fromOrTo=i.fromOrTo;y.index=i.index;y.heading="Enter Detailed Address";y.profile=t.getProfile();y.submitted=!1;y.isLoggedIn()?(y.showList=!0,o.loadCountryPresets(),o.loadStatePresets(),y.formData=o.model.presets,y.addressData.fullCountry=y.formData.countries[0],t.getAddresses(),y.addButton="ENTER"):y.location.startsWith("/ship")||y.location.startsWith("/events/")?(y.showList=!1,o.loadCountryPresets(),o.loadStatePresets(),y.formData=o.model.presets,y.addressData.fullCountry=y.formData.countries[0],y.mode=2,y.addButton="ENTER"):h.url("/login");y.addressData.confirmUseAnyway=!1;y.countryChange()};y.edit=function(n){y.changeMode("edit");y.addressData=angular.copy(n);y.addressData.fullCountry=o.getCountryFromCode(n.country);y.addressData.countryCode=y.addressData.country;y.addressData.countryHasStateOptions=u.countryHasStateOptions(y.formData.states,y.addressData.countryCode);y.addressData.stateProv=o.getStateFromCode(n.state);var t=u.getPlaceHoldersFromCountry(y.addressData.fullCountry.Code);y.addressData.statePlaceholder=t.state;y.addressData.postalCodePlaceholder=t.postalCode;s.removeError(r.UserAddressFailed)};y.delete=function(i){s.removeError(r.UserAddressFailed);n.deleteAddress().delete({addressId:i},function(){t.getAddresses();s.addMessage(r.UserAddressDeletedSuccess)},function(){s.addMessage(r.UserAddressFailed)})};y.validateForm=function(){var n=!0;return f.isEmpty(y.addressData.firstName)?(y.addressData.firstNameInvalid=!0,n=!1):y.addressData.firstNameInvalid=!1,f.isEmpty(y.addressData.lastName)?(y.addressData.lastNameInvalid=!0,n=!1):y.addressData.lastNameInvalid=!1,typeof y.addressData.countryCode=="undefined"&&(y.addressData.countryCode=y.addressData.country||y.addressData.fullCountry.Code),f.isEmpty(y.addressData.countryCode)?(y.addressData.countryInvalid=!0,n=!1):y.addressData.countryInvalid=!1,f.isEmpty(y.addressData.address1)?(y.addressData.address1Invalid=!0,n=!1):y.addressData.address1Invalid=!1,f.isEmpty(y.addressData.city)?(y.addressData.cityInvalid=!0,n=!1):y.addressData.cityInvalid=!1,f.isEmpty(y.addressData.state)?(y.addressData.stateInvalid=!0,n=!1):y.addressData.stateInvalid=!1,f.isEmpty(y.addressData.postalCode)?(y.addressData.postalCodeInvalid=!0,n=!1):y.addressData.postalCodeInvalid=!1,f.isEmpty(y.addressData.phone)?(y.addressData.phoneInvalid=!0,n=!1):y.addressData.phoneInvalid=!1,n};y.add=function(n){if(y.submitted=!0,s.removeError(r.UserAddressFailed),!y.validateForm())return!1;var i=t.getAddressAsString(y.addressData,!1);return e.geocode({address:i}).then(function(t){t.length===1&&(y.addressData.longitude=t[0].geometry.location.lng(),y.addressData.latitude=t[0].geometry.location.lat(),y.addressData.country=y.addressData.fullCountry.Code,b(n))},function(){s.addMessage(r.UserAddressGeoCodeFailed)}),!0};y.cancel=function(){y.changeMode("list");c.closeModals()};y.showUpdateButton=!1;y.showAddButton=!0;y.changeMode=function(n){switch(n){case"edit":y.showList=!1;y.showUpdateButton=!0;y.showAddButton=!1;y.header="Edit an Address";break;case"add":y.showList=!1;y.showUpdateButton=!1;y.showAddButton=!0;y.header="Add a new Address";break;case"list":y.showList=!0;y.header="Your Addresses"}};y.addANewAddress=function(n){y.clearAddressData(n);y.changeMode("add");s.removeError(r.UserAddressFailed)};y.updateAddress=function(n){s.removeError(r.UserAddressFailed);var i=t.getAddressAsString(y.addressData,!1);e.geocode({address:i}).then(function(t){t.length===1&&(y.addressData.Longitude=t[0].geometry.location.lng(),y.addressData.Latitude=t[0].geometry.location.lat(),y.addressData.country=y.addressData.fullCountry.Code,k(n))},function(){s.addMessage(r.UserAddressGeoCodeFailed)})};y.clearAddressData=function(n){y.addressData.displayName="";y.addressData.companyName="";y.addressData.firstName="";y.addressData.lastName="";y.addressData.address1="";y.addressData.address2="";y.addressData.address3="";y.addressData.city="";y.addressData.state="";y.addressData.postalCode="";y.addressData.country="US";y.addressData.fullCountry=y.formData.countries[0];y.addressData.phone="";y.addressData.isPrimary=!1;y.addressData.latitude=0;y.addressData.longitude=0;y.addressData.type=0;n.$setPristine()};y.countryChange=function(){y.addressData.country=y.addressData.fullCountry.Name;y.addressData.countryCode=y.addressData.fullCountry.Code;var n=u.getPlaceHoldersFromCountry(y.addressData.fullCountry.Code);y.addressData.statePlaceholder=n.state;y.addressData.postalCodePlaceholder=n.postalCode;y.addressData.countryHasStateOptions=u.countryHasStateOptions(y.formData.states,y.addressData.countryCode)};y.setNickName=function(n,t){var i,r,u,f;y.mode===1?(i=t.companyName,r=t.firstName+" "+t.lastName,n.companyName!==null&&typeof n.companyName!="undefined"&&n.companyName!==""?(u=n.companyName,(t.displayName===null||typeof t.displayName=="undefined")&&(t.displayName=""),t.displayName.indexOf(i)>-1?y.addressData.displayName=y.addressData.displayName.replace(i,u):t.displayName.indexOf(r)>-1?y.addressData.displayName=y.addressData.displayName.replace(r,u):(i===null||typeof i=="undefined"||i==="")&&(y.addressData.displayName=u)):(n.firstName!==""||n.lastName!=="")&&(f=n.firstName+" "+n.lastName,t.displayName.indexOf(r)>-1?y.addressData.displayName=y.addressData.displayName.replace(r,f):t.displayName.indexOf(i)>-1&&(y.addressData.displayName=y.addressData.displayName.replace(i,f)))):y.mode===2&&(y.addressData.displayName=n.address1)};y.stateAutoFill=function(){var u=y.addressData.countryHasStateOptions,n,r;if(u){var i=y.addressData.state.toLowerCase(),f=y.addressData.fullCountry.Code.toLowerCase(),t=y.formData.states;for(n=0,r=t.length;n<r;n++)f===t[n].country.toLowerCase()&&(i===t[n].stateprovcode.toLowerCase()||i===t[n].stateprov.toLowerCase())&&(y.addressData.stateProv=t[n])}};y.countryAutoFill=function(){var i,t,n,r;if(y.addressData.countryCode)for(i=y.addressData.countryCode.toLowerCase(),t=y.formData.countries,n=0,r=t.length;n<r;n++)(i===t[n].Name.toLowerCase()||i===t[n].Code.toLowerCase())&&(y.addressData.fullCountry=t[n])};p()}]),function(){angular.module("shipApp").factory("addressBookResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{getAddresses:function(){return n(i+"/api/addressbook/get",null,{get:{method:"GET",isArray:!0}})},addAddress:function(){return n(i+"/api/addressbook/post",null,{post:{method:"POST"}})},updateAddress:function(){return n(i+"/api/addressbook/put",null,{put:{method:"PUT"}})},deleteAddress:function(){return n(i+"/api/addressbook/delete/:addressId",null,{"delete":{method:"DELETE",params:{addressId:"@addressId"}}})}}}])}();angular.module("shipApp").controller("changePasswordController",["changePasswordResource","currentUser","$scope","$rootScope","setting","$http","spinnerFactory","$location","errorService","$timeout",function(n,t,i,r,u,f,e,o,s,h){var c=this,l;c.isLoggedIn=function(){return t.getProfile().isLoggedIn};c.message="";c.userData={oldPassword:"",newPassword:"",confirmPassword:"",submitted:!1};l=function(){c.pageCode="U";c.errors=r.Errors||[]};l();c.navigateTo=function(n){o.path(n)};c.validate=function(n){n.oldPassword.$error.required=n.oldPassword.$viewValue.length===0;n.newPassword.$error.required=n.newPassword.$viewValue.length===0;n.confirmPassword.$error.required=n.confirmPassword.$viewValue.length===0;n.confirmPassword.$error.compareTo=n.confirmPassword.$viewValue!==n.newPassword.$viewValue;n.confirmPassword.$error.compareTo===!0&&(n.$invalid=!0)};c.changePassword=function(t){if(c.userData.submitted=!0,c.validate(t),t.$invalid)return!1;e.setupSpinner();e.startSpinner();s.removeError(u.UserChangePasswordFailed);n.change().changePassword(c.userData,function(){s.addMessage(u.UserChangePassword);h(function(){s.removeError(u.UserChangePasswordFailed);c.navigateTo("/youraccount");e.stopSpinner()},2e3)},function(n){var t,i;if(e.stopSpinner(),c.message="",n.data.modelState[""])for(t in n.data.modelState[""])c.message=n.data.modelState[""][t]+"\r\n";if(n.data.modelState["model.Password"])for(i in n.data.modelState["model.Password"])c.message=n.data.modelState["model.Password"][i]+"\r\n";c.message.indexOf("Incorrect password.")>-1&&s.addMessage(u.UserChangePasswordFailed);c.message.indexOf("Passwords must have at")>-1&&s.addMessage(u.UserChangePasswordComplex)})};c.cancel=function(){c.navigateTo("/youraccount")}}]),function(){angular.module("shipApp").factory("changePasswordResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{change:function(){return n(i+"/api/Account/ChangePassword",null,{changePassword:{method:"POST"}})}}}])}(),function(){angular.module("shipApp").factory("currentUser",["$cookies","$rootScope","$timeout","setting","loginResource","addressBookResource","userPackageResource","paymentsResource","shipCouponService","accountResource",function(n,t,i,r,u,f,e,o,s){function nt(){r.Elements&&($(r.Elements.loggedInMenu).show(),$(r.Elements.loggedInNavButton).text(h.firstName),h.emailConfirmed&&$(r.Elements.emailConfirmedMenu).show(),$(r.Elements.loggedOutMenu).hide())}function l(){$(r.Elements.loggedInMenu).hide();$(r.Elements.emailConfirmedMenu).hide();$(r.Elements.loggedInNavButton).text("Login");$(r.Elements.loggedOutMenu).show()}var h={isLoggedIn:!1,isInitialized:!1,token:"",username:"",firstName:"",lastName:"",company:"",accountType:"",phoneNumber:"",emailConfirmed:!1,membershipStatus:"",birthday:null,blurb:"",accountCreated:null,hasAddresses:!1,addresses:[],hasPackage:!1,userPackages:[],hasPaymentMethods:!1,paymentMethods:[],discounts:[],hasDefaultPaymentMethod:!1,canGenerateApiKey:!1,defaultPaymentMethod:{},dotCertified:!1},a=function(t,i){var r=new Date,u=new Date(r.getFullYear(),r.getMonth(),r.getDate(),r.getHours()+1,r.getMinutes());h.isLoggedIn=!0;h.token=i;h.username=t;n.put("auth-token",i,{expires:u});n.put("auth-userName",t,{expires:u})},c=function(n){h.firstName=n.firstName;h.lastName=n.lastName;h.company=n.company;h.accountType=n.accountType;h.phoneNumber=n.phoneNumber;h.email=n.email;h.emailConfirmed=n.emailConfirmed;h.membershipStatus=n.membershipStatus;h.birthday=n.birthday;h.blurb=n.blurb;h.accountCreated=n.accountCreated;h.savePackages=n.savePackages;h.autoBillable=n.autoBillable;h.isInitialized=!0;h.canGenerateApiKey=n.canGenerateApiKey;h.dotCertified=n.dotCertified;t.$broadcast("userDataLoaded")},v=function(){return h},y=function(){f.getAddresses(h.token).get(null,function(n){n.length>0&&(h.hasAddresses=!0,h.addresses=n,t.$broadcast("userAddressesLoaded"))},function(n){n.data.modelState})},p=function(){e.getUserPackages(h.token).get(null,function(n){n.length>0&&(h.hasPackages=!0,h.userPackages=n,t.$broadcast("userPackagesLoaded"))},function(n){n.data.modelState})},w=function(n){if(h.addresses===null||typeof h.addresses=="undefined"||h.addresses.length===0)return null;for(var t=0,i=h.addresses.length;t<i;t++)if(h.addresses[t].addressId===n)return h.addresses[t];return null},b=function(n,t){if(n===null||typeof n=="undefined")return null;var i="";return n.address1!==null&&n.address1!==""&&(i+=n.address1),n.address2!==null&&n.address2!==""&&t===!0&&(i+=" "+n.address2),n.city!==null&&n.city!==""&&(i+=" "+n.city),n.state!==null&&n.state!==""&&(i+=", "+n.state),n.postalCode!==null&&n.postalCode!==""&&(i+=" "+n.postalCode),n.country!==null&&n.country!==""&&(i+=", "+n.country),i},k=function(){s.coupon=null;s.getUserDiscount().then(function(n){var r=n.data;typeof r!="undefined"&&r!==null&&(s.coupon=r,i(function(){t.$broadcast("couponDiscount",r)},500))},function(){})},d=function(){o.getPayments(h.token).get(null,function(n){if(n.length>0){h.hasPaymentMethods=!0;h.paymentMethods=n;for(var t=0,i=h.paymentMethods.length;t<i;t++)h.paymentMethods[t].isPrimary===!0&&(h.defaultPaymentMethod=h.paymentMethods[t],h.hasDefaultPaymentMethod=!0)}},function(){})},g=function(){u.logout();n.remove("auth-token");n.remove("auth-userName");c({isInitialized:!1});h={isLoggedIn:!1};l()};return{setProfileToken:a,setProfileData:c,getProfile:v,getAddresses:y,getStoredAddress:w,getAddressAsString:b,getUserPackages:p,getPaymentMethods:d,getDiscounts:k,showLoggedInMenu:nt,showLoggedOutMenu:l,logoutUser:g}}])}();angular.module("shipApp").controller("forgotPasswordController",["forgotPasswordResource","currentUser","$scope","$rootScope","setting","$http","spinnerFactory","errorService",function(n,t,i,r,u,f,e,o){var s=this;s.message="";s.userData={email:""};s.displayEmail=!0;s.sendResetPassword=function(){e.setupSpinner();e.startSpinner();o.removeError(u.UserResetPasswordSuccess);var t={email:s.userData.email,phone:"",password:"",firstName:"",lastName:"",company:""};n.forgotPassword.sendEmail(t,function(){e.stopSpinner();s.displayEmail=!1;s.message="We've sent you an email with a link to reset your password. Please check your email.";o.addMessage(u.UserResetPasswordSuccess)},function(){e.stopSpinner();o.addMessage(u.UserResetPasswordFailed)})};s.init=function(){s.pageCode="R";s.errors=r.Errors||[]};s.init()}]),function(){angular.module("shipApp").factory("forgotPasswordResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{forgotPassword:n(i+"/api/Account/ForgotPassword",null,{sendEmail:{method:"POST"}})}}])}();angular.module("shipApp").controller("loginController",["userAccount","loginResource","currentUser","$rootScope","setting","$http","$location","spinnerFactory","errorService","$cookies","$route","Idle","helpersFactory","modalService","partnerConnectService","validationFactory","serverValidationService","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k){function nt(){return typeof e.search().email=="undefined"||e.search().email===null?!1:typeof e.search().code=="undefined"||e.search().code===null?!1:(o.setupSpinner(),o.startSpinner(),d.confirmData.email=e.search().email,d.confirmData.code=e.search().code,t.confirm().confirmEmail(d.confirmData,function(){o.stopSpinner();d.navigateTo("/ship?r=1")},function(){o.stopSpinner();s.addSiteMessage({Key:"EmailConfirmation",Page:"L",Severity:"alert-info",Dismissable:!0,Expletive:"Uh Oh",Message:"We were unable to confirm your email"})}),!0)}var d=this,g;d.isLoggedIn=function(){return i.getProfile().isLoggedIn};d.message="";t.process={step:1};d.process=t.process;d.guestSubmitted=!1;d.userData={firstName:"",lastName:"",accountType:"personal",company:"",userName:"",email:"",phone:"",emailConfirmed:!1,password:"",confirmPassword:"",isGuest:!1};d.guest={firstName:"",lastName:"",email:"",emailInvalid:!1,emailAvailable:!0};d.confirmData={email:"",code:""};d.trayFlags=[];d.focusFlags=[];d.navigateTo=function(n){e.path(n)};d.stopClick=function(n){b.stopClick(n)};d.setTrayFlag=function(n,t,i){b.setTrayFlag(n,t,i,d)};d.toggleTrayFlag=function(n,t){b.toggleTrayFlag(n,t,d)};d.closeAllTrays=function(n,t){b.closeAllTrays(n,d,t)};d.setFocusFlag=function(n,t,i){k.setFocusFlag(n,t,i,d)};d.toggleFocusFlag=function(n,t){k.toggleFocusFlag(n,t,d)};d.clearFocus=function(n,t){k.clearFocus(n,d,t)};d.sendConfirmationEmail=function(){n.send.sendConfirmationEmail({email:i.getProfile().email},function(){d.message="A confirmation email has been sent."},function(n){if(d.message=n.statusText+"\r\n",n.data.exceptionMessage&&(d.message+=n.data.exceptionMessage),n.data.modelState)for(var t in n.data.modelState)d.message+=n.data.modelState[t]+"\r\n";error.status===-1&&(d.message+="Our servers are down for maintenance.\r\nPlease try again later\r\n")})};d.goToStep=function(n){d.process.step=n};d.closeModal=function(n){v.closeModalByName(n)};d.checkEmailAvailable=function(){var n=d.guest.email;p.isValidEmail(n)?(w.isEmailAvailable(n).then(function(n){d.guest.emailAvailable=n.data;d.guest.emailInvalid=!n.data},function(){}),d.guest.emailInvalid=!1):d.guest.emailInvalid=!0};d.validateGuest=function(){var n=!0;return d.guest.firstName?d.guest.firstNameInvalid=!1:(d.guest.firstNameInvalid=!0,n=!1),d.guest.lastName?d.guest.lastNameInvalid=!1:(d.guest.lastNameInvalid=!0,n=!1),p.isValidEmail(d.guest.email)?d.guest.emailInvalid=!1:(d.guest.emailInvalid=!0,n=!1),n};d.continueAsGuest=function(){d.guestSubmitted=!0;d.validateGuest()&&(i.isGuest=!0,i.guest=d.guest,v.closeModalByName("login"),r.$broadcast("logIn2.5","guest"))};d.isLoginValid=function(){return(d.userData.emailInvalid=d.userData.email?!1:!0,d.userData.passwordInvalid=d.userData.password?!1:!0,d.userData.emailInvalid||d.userData.passwordInvalid)?!1:!0};d.login=function(){return(d.loginSubmitted=!0,!d.isLoginValid())?!1:(o.setupSpinner(),o.startSpinner(),d.userData.grant_type="password",d.userData.userName=d.userData.email,s.removeError(u.UserLoginFailed),n.login.loginUser(d.userData,function(n){d.message="";d.password="";i.setProfileToken(d.userData.userName,n.access_token);t.getuser().getUserData(null,function(n){var u,t;d.userData.loginError=!1;o.stopSpinner();i.setProfileData(n);u=i.getProfile();r.$emit("readCurrentUserData");t=window.location.href;t.indexOf("/ship")!==-1?(i.getPaymentMethods(),i.getDiscounts(),i.getUserPackages(),i.getAddresses(),v.closeModalByName("login"),r.$broadcast("logIn2.5","user"),r.$broadcast("SaveAutoRestoreState")):t.indexOf("/login")!==-1?window.location.href="/profile":t.indexOf("/usacycling")!==-1&&(v.closeModalByName("loginregister"),window.location.href="/profile")})},function(){o.stopSpinner();d.userData.loginError=!0}),!0)};g=function(){d.pageCode="L";d.errors=r.Errors||[];r.loginStep&&(d.process.step=r.loginStep,r.loginStep=null);nt()};g()}]),function(){angular.module("shipApp").service("loginResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{getuser:function(){return n(i+"/api/basicuserdata/get",null,{getUserData:{method:"GET"}})},generateApiKey:function(){return n(i+"/api/basicuserdata/GenerateApiKey",null,{generate:{method:"GET"}})},confirm:function(){return n(i+"/api/EmailVerification/ConfirmEmail",null,{confirmEmail:{method:"POST"}})},logout:function(){return n(i+"/api/Account/Logout",null,{Logout:{method:"POST"}})},process:{step:1}}}])}();angular.module("shipApp").controller("ordersController",["ordersResource","currentUser","$rootScope","$scope","$timeout","setting","errorService","$location","helpersFactory","trayFactory","modalService",function(n,t,i,r,u,f,e,o,s,h,c){function v(){e.removeError(f.UserOrderFailed);n.getOrderDates(t.getProfile().token).get(null,function(n){for(var r=new Date,i,t=0,u=n.length;t<u;t++)i="",n[t].month===r.getMonth()+1&&n[t].year===r.getFullYear()&&(i=" (month-to-date)"),n[t].display=s.getMonthNameFromNumber(n[t].month)+", "+n[t].year+i;l.orderDates=n;l.orderDate=l.orderDates[l.orderDates.length-1];(l.orders===null||l.orders.length===0)&&l.loadOrders(l.orderDate)},function(){e.addMessage(f.UserOrderFailed)})}var l=this,a;l.isLoggedIn=function(){return t.getProfile().isLoggedIn};l.title="Orders";l.orders=[];l.ordersTotal=0;l.allOrders=[];l.filters=[];l.orderDate=null;l.orderDates=[];l.printTheLabel=function(t){n.printPdf(t)};l.printLabels=function(n){c.closeModals();r.shipmentToPrint=n;l.printModal=c.openModal(r,"lg","print.labels")};l.loadOrders=function(i){return e.removeError(f.UserOrderFailed),l.ordersTotal=0,n.getOrders(t.getProfile().token,i.year,i.month).then(function(n){var t,o,u,f,i,s,e,r,h;for(l.orders=n.data,t=0,o=l.orders.length;t<o;t++){for(u=0,l.ordersTotal+=l.orders[t].total,f=0,i=0,s=l.orders[t].shipments.length;i<s;i++){for(e=0,f+=l.orders[t].shipments[i].shipment.discount,r=0,h=l.orders[t].shipments[i].packages.length;r<h;r++)u+=l.orders[t].shipments[i].packages[r].value,e+=l.orders[t].shipments[i].packages[r].value;l.orders[t].shipments[i].shipmentPackageValue=e}l.orders[t].totalDiscount=f;l.orders[t].totalPackageWorth=u}},function(){e.addMessage(f.UserOrderFailed)}),!0};l.toggleTrayFlag=function(n,t,i,r){console.log(r);h.toggleTrayFlag(n,t,l,i)};l.setTrayFlag=function(n,t,i){h.setTrayFlag(n,t,i,l)};a=function(){l.pageCode="O";l.errors=i.Errors||[];l.isLoggedIn()?v():o.url("/login");l.trayFlags=[]};a()}]),function(){angular.module("shipApp").factory("ordersResource",["$resource","$http","$sce","setting",function(n,t,i,r){var u=r.AccountWebApiServerPath;return{getOrders:function(n,i,r){return t({method:"get",url:u+"/api/orders/get",params:{year:i,month:r}})},getLatestOrders:function(n){return t({method:"get",url:u+"/api/orders/getlatest",params:{num:n}})},getOrderDates:function(){return n(u+"/api/orders/getdates",null,{get:{method:"GET",isArray:!0}})},printPdf:function(n){var i="/api/label/show?trackingNumber="+n.trackingNumber,t;n.trackingNumber&&(t=document.createElement("iframe"),t.onload=function(){t.focus();t.contentWindow.print()},t.src=i,t.style.display="none",document.body.appendChild(t))}}}])}();angular.module("shipApp").controller("paymentsController",["paymentsResource","currentUser","$rootScope","setting","errorService","helpersFactory","$location",function(n,t,i,r,u,f,e){function s(){n.getPayments().get(null,function(n){o.payments=n;o.changeMode("list")},function(){})}function c(n){if(typeof n.cardNumber=="undefined"||n.cardNumber===null||n.cardNumber==="")return"";var t=n.cardNumber.length;return n.type==="AX"?t>5?n.cardNumber.substr(t-5):n.cardNumber:t>4?n.cardNumber.substr(t-4):n.cardNumber}var o=this,h;o.isLoggedIn=function(){return t.getProfile().isLoggedIn};o.message="";o.header="Your Payment Methods";o.payments=[];o.paymentData={paymentId:"",displayName:"",type:"",cardNumber:"",cvv:"",expirationMonth:"",expirationYear:"",paypalEmail:"",firstName:"",lastName:"",userId:"",paymentMode:"CC",isPrimary:!1};o.showList=!0;o.showPaymentMethodsList=function(){o.showList=!0};o.hidePaymentMethodsList=function(){o.showList=!1};o.navigateTo=function(n){e.path(n)};h=function(){var t,n;for(o.pageCode="P",o.errors=i.Errors||[],o.isLoggedIn()?s():e.url("/login"),o.expirationYears=[],t=(new Date).getFullYear(),n=0;n<10;n++)o.expirationYears.push(parseInt(t+n))};h();o.edit=function(n){o.changeMode("edit");u.removeError(r.UserPaymentFailed);o.message="";for(var t=0;t<o.payments.length;t++)o.payments[t].paymentId===n&&(o.paymentData.paymentId=n,o.paymentData.displayName=o.payments[t].displayName,o.paymentData.type=o.payments[t].type,o.paymentData.longType=o.payments[t].longType,o.paymentData.cardNumber=o.payments[t].cardNumber,o.paymentData.cvv=o.payments[t].cvv,o.paymentData.expirationMonth=o.payments[t].expirationMonth,o.paymentData.expirationYear=o.payments[t].expirationYear,o.paymentData.firstName=o.payments[t].firstName,o.paymentData.lastName=o.payments[t].lastName,o.paymentData.paypalEmail=o.payments[t].paypalEmail,o.paymentData.userId=o.payments[t].userId,o.paymentData.isPrimary=o.payments[t].isPrimary)};o.delete=function(t){o.message="";u.removeError(r.UserPaymentFailed);n.deletePayment().delete({paymentId:t},function(){u.addMessage(r.UserPaymentDeleteSuccess);s()},function(){u.addMessage(r.UserPaymentFailed)})};o.add=function(t){o.changeMode("add");u.removeError(r.UserPaymentFailed);n.addPayment().post(o.paymentData,function(){o.clearpaymentData(t);s();o.changeMode("list");u.addMessage(r.UserPaymentAddSuccess)},function(){u.addMessage(r.UserPaymentFailed)})};o.cancel=function(n){o.clearpaymentData(n);o.changeMode("list")};o.updatePayment=function(t){u.removeError(r.UserPaymentFailed);n.updatePayment().put(o.paymentData,function(){o.clearpaymentData(t);s();o.changeMode("list");u.addMessage(r.UserPaymentUpdateSuccess)},function(){u.addMessage(r.UserPaymentFailed)})};o.paymentFieldsToggle=!1;o.showUpdateButton=!1;o.showAddButton=!0;o.changeMode=function(n){switch(n){case"edit":o.showList=!1;o.showUpdateButton=!0;o.showAddButton=!1;o.header="Edit a Payment Method";break;case"add":o.showList=!1;o.showUpdateButton=!1;o.showAddButton=!0;o.header="Add a Payment Method";break;case"list":o.showList=!0;o.showUpdateButton=!1;o.showAddButton=!0;o.header="Your Payment Methods"}};o.getTypeFromNumber=function(n,t){var i=f.getCCTypeFromNumber(o.paymentData.cardNumber);(typeof i=="undefined"||i===null||i==="")&&(i={type:"",name:"CC"});o.paymentData.type=i.type;o.paymentData.longType=i.name;o.setNickName(n,t)};o.setNickName=function(n,t){var i,r;if((n.cardNumber===null||typeof n.cardNumber=="undefined"||n.cardNumber.length<4)&&(o.paymentData.displayName=""),i=c(n),n.displayName===""&&i!==""&&n.longType!==""||t.displayName==="Card Ending in "){o.paymentData.displayName=n.longType+" Ending in "+i;return}r=c(t);t.displayName.indexOf(r)>-1&&(o.paymentData.displayName=o.paymentData.displayName.replace(r,i));t.displayName.indexOf(t.longType)>-1&&t.longType!==""&&(o.paymentData.displayName=o.paymentData.displayName.replace(t.longType,n.longType))};o.addNewMethod=function(n,t){u.removeError(r.UserPaymentFailed);o.clearpaymentData(n);o.setPaymentMode(t);o.changeMode("add")};o.setPaymentMode=function(n){o.paymentData.type=n;o.paymentData.paymentMode=n};o.clearpaymentData=function(){o.paymentData.paymentId="";o.paymentData.displayName="";o.paymentData.type="";o.paymentData.longType="";o.paymentData.cardNumber="";o.paymentData.cvv="";o.paymentData.expirationMonth="";o.paymentData.expirationYear="";o.paymentData.paypalEmail="";o.paymentData.firstName="";o.paymentData.lastName="";o.paymentData.userId="";o.paymentData.isPrimary=!1}}]),function(){angular.module("shipApp").factory("paymentsResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{getPayments:function(){return n(i+"/api/paymentMethods/get",null,{get:{method:"GET",isArray:!0}})},addPayment:function(){return n(i+"/api/paymentMethods/post",null,{post:{method:"POST"}})},updatePayment:function(){return n(i+"/api/paymentMethods/put",null,{put:{method:"PUT"}})},deletePayment:function(){return n(i+"/api/paymentMethods/Delete/:paymentId",null,{"delete":{method:"DELETE",params:{paymentId:"@paymentId"}}})}}}])}();angular.module("shipApp").controller("registerController",["userAccount","currentUser","$scope","$rootScope","setting","$location","loginResource","helpersFactory","modalService","spinnerFactory","serverValidationService","validationFactory","errorService","savedSearchService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){var y=this,p;y.isAmbassador=!1;y.process=e.process;y.isLoggedIn=function(){return t.getProfile().isLoggedIn};y.message="";y.goToStep=function(n){y.process.step=n};y.openModal=function(n,t){s.openModal(i,n,t)};y.checkPassword=function(n){n.confirmPassword.$setValidity("compareTo",n.registrationPassword.$viewValue===n.confirmPassword.$viewValue);n.confirmPassword.$validate();n.registrationPassword.$validate()};i.cancel=function(){i.$modalInstance.dismiss("cancel")};y.displayCompanyFieldValue=!1;y.displayCompanyField=function(){y.displayCompanyFieldValue=y.userData.accountType==="personal"?!1:!0};y.acceptTerms=!1;y.userData={firstName:"",lastName:"",middleName:"",accountType:"personal",company:"",userName:"",phoneNumber:"",email:"",emailConfirmed:!1,password:"",registrationPassword:"",confirmPassword:"",newsLetterOptIn:!1,offersOptIn:!1};y.checkEmailAvailable=function(n){l.isValidEmail(n.email.$viewValue)&&c.isEmailAvailable(n.email.$viewValue).then(function(t){n.email.$error.emailAvailable=!t.data;n.email.$invalid=!t.data},function(){})};y.registerUser=function(i){h.setupSpinner();h.startSpinner();y.userData.password=y.userData.registrationPassword;a.removeError(u.UserRegistrationFailed);n.registration.registerUser(y.userData,function(){h.stopSpinner();v.assignSearchesToProfile(y.userData.email);f.$$path.indexOf("/register")>-1?window.location.replace("/registerthankyou?email="+y.userData.email):(y.userData.userName=y.userData.email,y.userData.grant_type="password",n.login.loginUser(y.userData,function(n){y.message="";y.password="";t.setProfileToken(y.userData.userName,n.access_token);e.getuser().getUserData(null,function(n){var f,u;h.stopSpinner();t.setProfileData(n);f=t.getProfile();r.$emit("readCurrentUserData");u=window.location.href;u.indexOf("/ship")!==-1?(t.getPaymentMethods(),t.getDiscounts(),t.getUserPackages(),t.getStoredAddresses(),s.closeModalByName("login"),r.$broadcast("SaveAutoRestoreState"),y.goToStep(4)):window.location.href="/profile";y.userData.password="";y.userData.registrationPassword="";y.userData.confirmPassword="";y.userData.email=n.email;i.$setPristine()})},function(){h.stopSpinner();a.addMessage(u.UserLoginFailed)}))},function(){h.stopSpinner();a.addMessage(u.UserRegistrationFailed)})};p=function(){y.isLoggedIn()&&f.path("/");y.pageCode="R";f.$$path.indexOf("/ambassador/")>-1&&(y.isAmbassador=!0,typeof ambassador!="undefined"&&ambassador!==null&&(y.userData.ambassadorId=ambassador.AmbassadorId))};p()}]),function(){angular.module("shipApp").factory("registerResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{getuser:function(){return n(i+"/api/basicuserdata/get",null,{getUserData:{method:"GET"}})}}}])}();angular.module("shipApp").controller("registerThankYouController",["userAccount","currentUser","$scope","setting","$location",function(n,t,i,r,u){function e(){typeof u.search().email=="undefined"||u.search().email===null}var f=this;f.email=u.search().email;e()}]);angular.module("shipApp").controller("resetPasswordController",["resetPasswordResource","currentUser","$scope","$rootScope","$timeout","setting","$http","$location","spinnerFactory","errorService",function(n,t,i,r,u,f,e,o,s,h){function l(){c.userData.code=o.search().code;c.userData.email=o.search().email;c.pageCode="U";c.errors=r.Errors||[]}var c=this;c.isLoggedIn=function(){return t.getProfile().isLoggedIn};c.message="";c.userData={newPassword:"",confirmPassword:"",code:"",email:""};c.navigateTo=function(n){o.path(n)};c.validate=function(n){n.newPassword.$error.required=n.newPassword.$viewValue.length===0;n.confirmPassword.$error.required=n.confirmPassword.$viewValue.length===0;n.confirmPassword.$error.compareTo=n.confirmPassword.$viewValue!==n.newPassword.$viewValue;n.confirmPassword.$error.compareTo===!0&&(n.$invalid=!0)};c.resetPassword=function(t){if(c.userData.submitted=!0,c.validate(t),t.$invalid)return!1;s.setupSpinner();s.startSpinner();h.removeError(f.UserChangePasswordFailed);n.reset().resetPassword(c.userData,function(){s.stopSpinner();h.addMessage(f.UserChangePassword);u(function(){h.removeError(f.UserChangePasswordFailed);c.navigateTo("/login");s.stopSpinner()},2e3)},function(n){s.stopSpinner();c.message="";c.message=n.data?n.data:"There was an error please try resetting your password again.";h.addMessage(f.UserChangePasswordComplex)})};l()}]),function(){angular.module("shipApp").factory("resetPasswordResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{reset:function(){return n(i+"/api/ResetPassword/ResetThePassword",null,{resetPassword:{method:"POST"}})}}}])}();angular.module("shipApp").factory("userAccount",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{registration:n(i+"/api/Account/Register",null,{registerUser:{method:"POST"}}),send:n(i+"/api/EmailVerification/SendConfirmationEmail",null,{sendConfirmationEmail:{method:"GET"}}),login:n(i+"/LooseMonkey",null,{loginUser:{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},transformRequest:function(n){var i=[],t;for(t in n)i.push(encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return i.join("&")}}}),logout:function(){return n(i+"/api/Account/Logout",null,{logoutUser:{method:"POST"}})}}}]);angular.module("shipApp").controller("userPackageController",["userPackageResource","currentUser","setting","formDataFactory","$rootScope","$scope","errorService","$location","helpersFactory","modalService","shipSearchFormFactory","trayFactory","focusFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a){function y(){r.model.packagePresets=[];n.getUserPackages().get(null,function(n){var i,f,u,e;for(v.formData=r.model.presets,v.userPackages=n,t.getProfile().hasPackages=n.length>0,i=0,f=n.length;i<f;i++)for(n[i].hasBatteryText=v.formData.hasBatteryOptions[n[i].hasBattery].display,u=0,e=v.formData.packageCategory.length;u<e;u++)n[i].purposeCode===v.formData.packageCategory[u].cost&&(n[i].Contents=v.formData.packageCategory[u]);t.getProfile().userPackages=n;r.mergeUserPackages();r.preparePackageOptions();v.changeMode("list")},function(){});r.loadPackagePresets()}function p(n){return n.length+"x"+n.width+"x"+n.height+n.linearUnit+" "+n.weight+n.weightUnit}var v=this,w;f.vm=v;v.$root=u;v.isLoggedIn=function(){return t.getProfile().isLoggedIn};v.message="";v.header="Your Boxes";v.trayFlags=[];v.focusFlags=[];v.userPackages=[];v.userPackage={userPackageId:"",name:"",displayName:"",displayNameCustomized:!1,height:null,width:null,length:null,linearUnit:"in",weight:null,weightUnit:"lbs",value:-1,isDangerous:!1,hasBattery:0,hasBatteryText:i.HasBatteryQuestion,description:""};v.linearDims=["in","cm"];v.stopClick=function(n){l.stopClick(n)};v.setTrayFlag=function(n,t,i){l.setTrayFlag(n,t,i,v)};v.toggleTrayFlag=function(n,t){l.toggleTrayFlag(n,t,v)};v.closeAllTrays=function(n,t){l.closeAllTrays(n,v,t)};v.setFocusFlag=function(n,t,i){a.setFocusFlag(n,t,i,v)};v.toggleFocusFlag=function(n,t){a.toggleFocusFlag(n,t,v)};v.clearFocus=function(n,t){a.clearFocus(n,v,t)};v.setPackageValue=function(n){v.userPackageData.valueOption=n;v.userPackageData.value=n.PackageValue};v.setPackageDimensions=function(n){var t=angular.copy(v.userPackageData);return n.Name===i.Text_SelectPackage||n.Name.substring(0,3)==="---"||n.Name.substring(0,7)==="- - - -"?(n.Name=i.Text_SelectPackage,!1):(v.userPackageData.linearUnit==="in"?(v.userPackageData.length=n.Length,v.userPackageData.height=n.Height,v.userPackageData.width=n.Width,v.userPackageData.weight=n.Weight||v.userPackageData.weight):(v.userPackageData.length=n.CmLength,v.userPackageData.height=n.CmHeight,v.userPackageData.width=n.CmWidth,v.userPackageData.weight=n.KgWeight||v.userPackageData.weight),v.setNickName(n,t),!0)};v.setPackageCategory=function(n){v.userPackageData.Contents=n;v.userPackageData.PurposeCode=n.cost;v.userPackageData.hasBattery=1;n.cost===8011&&(v.userPackageData.hasBattery=3)};v.openInsuranceModal=function(n){h.closeModals();h.openModal(v,n,"insuredValue");v.$modalInstance.rendered.then(function(){})};w=function(){v.pageCode="C";v.errors=u.Errors||[];v.header="Boxes";v.showList=!0;v.isLoggedIn()?(v.formData=r.model.presets,y(),(v.userPackageData===null||typeof v.userPackageDate=="undefined")&&(v.userPackageData=angular.copy(v.userPackage),v.userPackageData.name=i.Text_SelectPackage),r.loadBatteryOptions(),r.loadInsurancePricing(),r.loadPackageCategory()):o.path("/login");v.trayFlags.units=!1;v.trayFlags.dimensions=!1};w();v.edit=function(n){var u,t,o,f,s;for(v.changeMode("edit"),e.removeError(i.UserPackageFailed),v.userPackageData=n,v.userPackageData.displayName=n.name,u=r.model.presets.insurance,t=0,o=u.length;t<o;t++)if(u[t].PackageValue>=n.value){n.value=u[t].PackageValue;n.valueOption=u[t];break}for(f=0,s=v.formData.packageCategory.length;f<s;f++)if(v.formData.packageCategory[f].cost===n.purposeCode){n.Contents=v.formData.packageCategory[f];break}};v.delete=function(t){e.removeError(i.UserPackageFailed);n.deleteUserPackage().delete({userPackageId:t},function(){e.addMessage(i.UserPackageDeleteSuccess);y()},function(){e.addMessage(i.UserPackageFailed)})};v.validate=function(){var n=!0;return v.userPackageData.name.length>0?v.userPackageData.nameInvalid=!1:(v.userPackageData.nameInvalid=!0,n=!1),v.searchCriteria={Packages:[{Worth:v.userPackageData.marketValue,Name:v.userPackageData.name,Category:v.userPackageData.Contents,Length:v.userPackageData.length,Height:v.userPackageData.height,Width:v.userPackageData.width,Weight:v.userPackageData.weight,LinearUnit:v.userPackageData.linearUnit,WeightUnit:v.userPackageData.weightUnit}]},v.validationErrors=[],c.validatePackages(v),v.userPackageData.lengthInvalid=v.searchCriteria.Packages[0].LengthInvalid,v.userPackageData.heightInvalid=v.searchCriteria.Packages[0].HeightInvalid,v.userPackageData.widthInvalid=v.searchCriteria.Packages[0].WidthInvalid,v.userPackageData.weightInvalid=v.searchCriteria.Packages[0].WeightInvalid,(v.userPackageData.weight===null||typeof v.userPackageData.weight=="undefined"||v.userPackageData.weight===0||v.userPackageData.weight==="0")&&(v.userPackageData.weightInvalid=!1),(v.userPackageData.lengthInvalid||v.userPackageData.heightInvalid||v.userPackageData.widthInvalid||v.userPackageData.weightInvalid)&&(n=!1),n};v.add=function(t){(v.formSubmitted=!0,v.validate())&&(v.changeMode("add"),e.removeError(i.UserPackageFailed),n.addUserPackage().post(v.userPackageData,function(){v.clearUserPackageData(t);y();v.changeMode("list");e.addMessage(i.UserPackageAddSuccess)},function(){e.addMessage(i.UserPackageFailed)}))};v.cancel=function(){v.clearUserPackageData();v.changeMode("list")};v.update=function(t){(v.formSubmitted=!0,v.validate())&&(e.removeError(i.UserPackageFailed),n.updateUserPackage().put(v.userPackageData,function(){v.clearUserPackageData(t);y();v.changeMode("list");e.addMessage(i.UserPackageUpdateSuccess)},function(){e.addMessage(i.UserPackageFailed)}))};v.userPackageFieldsToggle=!1;v.showUpdateButton=!1;v.showAddButton=!0;v.changeMode=function(n){switch(n){case"list":v.showList=!0;v.showUpdateButton=!1;v.showAddButton=!1;v.header="Your Boxes";break;case"edit":v.showList=!1;v.showUpdateButton=!0;v.showAddButton=!1;v.header="Edit a Box";break;case"add":v.showList=!1;v.showUpdateButton=!1;v.showAddButton=!0;v.header="Add a new Box"}};v.addANewUserPackage=function(){e.removeError(i.UserPackageFailed);v.clearUserPackageData();v.changeMode("add")};v.resetPackageOption=function(){v.userPackageData.name=v.formData.packageNames[0]};v.isUsers=function(n){return n.userPackageId>0};v.notUsers=function(n){return n.userPackageId===0};v.setLinearUnit=function(n,t){var i=angular.copy(n);t==="in"?(n.linearUnit="in",n.weightUnit="lbs"):(n.linearUnit="cm",n.weightUnit="kgs");v.setNickName(n,i)};v.clearUserPackageData=function(){v.userPackageData={};v.userPackageData=angular.copy(v.userPackage)};v.setHasBattery=function(){};v.setNickName=function(n,t){var i,r;if(v.userPackageData.length===null||v.userPackageData.height===null||v.userPackageData.width===null||v.userPackageData.weight===null||typeof v.userPackageData.length=="undefined"||typeof v.userPackageData.height=="undefined"||typeof v.userPackageData.width=="undefined"||typeof v.userPackageData.weight=="undefined"){v.userPackageData.displayName="";return}if(n.displayName===""){v.userPackageData.displayName="Case "+p(n);return}i=p(t);v.userPackageData.displayName.indexOf(i)>-1&&(r=p(n),v.userPackageData.displayName=v.userPackageData.displayName.replace(i,r))}}]),function(){angular.module("shipApp").factory("userPackageResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{getUserPackages:function(){return n(i+"/api/userpackage/get?as="+Math.round((new Date).getTime()/1e3),null,{get:{method:"GET",isArray:!0}})},addUserPackage:function(){return n(i+"/api/userpackage/post",null,{post:{method:"POST"}})},updateUserPackage:function(){return n(i+"/api/userpackage/put",null,{put:{method:"PUT"}})},deleteUserPackage:function(){return n(i+"/api/userpackage/delete/:userPackageId",null,{"delete":{method:"DELETE",params:{userPackageId:"@userPackageId"}}})}}}])}(),function(){angular.module("shipApp").controller("userProfileController",["$rootScope","$cookies","$timeout","userProfileResource","accountResource","currentUser","$scope","setting","$http","$location","errorService","modalService",function(n,t,i,r,u,f,e,o,s,h,c){var l=this,a;l.isLoggedIn=function(){return f.getProfile().isLoggedIn};l.message="";l.title="Edit Profile";l.profileData={firstName:"",middleName:"",lastName:"",company:"",accountType:"",email:"",phoneNumber:"",emailConfirmed:!1,savePackages:!1,membershipStatus:"",blurb:"",accountCreated:"",newsLetterOptIn:!1,offersOptIn:!1,canGenerateApiKey:!1,apiKey:null};l.originalProfileData={};l.editMode=!1;l.displayCompanyFieldValue=!1;l.displayCompanyField=function(){l.displayCompanyFieldValue=l.profileData.accountType==="personal"?!1:!0};l.navigateTo=function(n){h.path(n)};l.dataLoaded=!1;a=function(){l.pageCode="U";l.errors=n.Errors||[];l.isLoggedIn()&&l.dataLoaded===!1?u.getuser().getUserData(null,function(n){f.setProfileData(n);l.setFromCurrentUser(n);l.dataLoaded=!0}):h.path("/login")};l.setFromCurrentUser=function(){var n=f.getProfile();l.profileData.firstName=n.firstName;l.profileData.lastName=n.lastName;l.profileData.company=n.company;l.profileData.email=n.email;l.profileData.phoneNumber=n.phoneNumber;l.profileData.emailConfirmed=n.emailConfirmed;l.profileData.membershipStatus=n.membershipStatus===null?"Basic membership":"Premium membership";l.profileData.blurb=n.blurb;l.profileData.savePackages=n.savePackages;l.profileData.accountCreated=n.accountCreated;l.profileData.newsLetterOptIn=n.newsLetterOptIn;l.profileData.offersOptIn=n.offersOptIn;l.originalProfileData=angular.copy(l.profileData);l.canGenerateApiKey=n.canGenerateApiKey;l.displayCompanyField()};a();l.reset=function(n){n.$setPristine();l.profileData=angular.copy(l.originalProfileData);l.editMode=!1};l.save=function(){c.removeError(o.UserProfileFailed);l.profileData.accountType==="personal"&&(l.profileData.company="");r.updateProfile().update(l.profileData,function(){f.setProfileData(l.profileData);l.editMode=!1;c.addMessage(o.UserProfileSuccess)},function(){c.addMessage(o.UserProfileFailed)})};l.edit=function(){c.removeError(o.UserProfileFailed);l.editMode=!0};l.cancel=function(){}}])}(),function(){angular.module("shipApp").factory("userProfileResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{updateProfile:function(){return n(i+"/api/basicuserdata/put",null,{update:{method:"PUT"}})}}}])}();angular.module("shipApp").controller("userSearchController",["$scope","currentUser","$rootScope","shipSearchFormFactory","setting","errorService","$location","$window","$timeout","userSearchFactory","savedSearchFactory","shippingSearchFactory",function(n,t,i,r,u,f,e,o,s,h,c,l){n.isLoggedIn=function(){return t.getProfile().isLoggedIn};n.message="";n.header="Recent Searches";n.isProfile=!0;n.userSearchFactory=h.model;n.navigateTo=function(n){e.path(n)};var a=function(){n.isLoggedIn()||n.navigateTo("/ship");n.searchCriteria=l.model;n.savedSearch=c.model.searches;n.totalCount=c.model.totalCount;h.setupUserSearches(n)};a();n.clear=function(n){h.clear(n);a()};n.clearAll=function(){h.clearAll();a()};n.stepBack=function(){(n.clear(),n.userSearchFactory.currentPage!==0)&&h.gotoPage(n.userSearchFactory.currentPage-1)};n.gotoFirst=function(){h.gotoPage(0)};n.gotoLast=function(){var t=n.userSearchFactory.pages.length-1;h.gotoPage(t)};n.stepForward=function(){var t=n.userSearchFactory.pages.length-1;n.userSearchFactory.currentPage>=t||h.gotoPage(n.userSearchFactory.currentPage+1)};n.gotoPage=function(t){n.currentPage=t;h.gotoPage(t)};n.switchToSavedSearch=function(n){c.switchToSavedSearch(n)}}]);angular.module("shipApp").factory("userSearchFactory",["$rootScope","$filter","setting","helpersFactory","savedSearchService","savedSearchFactory",function(n,t,i,r,u,f){function o(n){if(n.totalCount&&e.model.take){var t=n.totalCount>e.model.take?Math.ceil(n.totalCount/e.model.take):1,i=e.model.skip>0?Math.floor(e.model.skip/e.model.take):0;e.model.pages=new Array(t);e.model.currentPage=i}}function s(t){e.model.skip||(e.model.skip=i.Skip);e.model.take||(e.model.take=i.Take);t.savedSearch=[];f.model.searches=[];u.loadUserSearches(e.model.skip,e.model.take);n.$on("savedSearchesLoaded",function(){f.parseSavedSearches();t.savedSearch=f.model.searches;o(t)})}function h(n){f.model.searches=[];e.model.skip=n*e.model.take;u.loadUserSearches(e.model.skip,e.model.take)}function c(n){u.clear(n)}function l(){u.clearAll()}var e=null;return e={model:{Skip:0,Take:0},gotoPage:h,setupUserSearches:s,clear:c,clearAll:l}}]),function(){angular.module("shipApp").factory("shipmentResource",["$resource","setting",function(n,t){var i=t.AccountWebApiServerPath;return{updateShipment:function(){return n(i+"/api/shipmentMethods/:orderCode",null,{put:{method:"PUT",params:{orderCode:"@orderCode"}}})}}}])}();angular.module("shipApp").factory("authInterceptor",["$q","$window","$location","$cookies",function(n,t,i,r){return{request:function(n){n.headers=n.headers||{};var t=r.get("auth-token");return typeof t!="undefined"&&(n.headers.Authorization="Bearer "+t),n},response:function(t){return t||n.when(t)}}}]);angular.module("shipApp").controller("timeoutController",["currentUser","$rootScope","$scope","$cookies","setting","errorService","helpersFactory","modalService","Idle",function(n,t,i,r,u,f,e,o,s){var c=this,h;c.isLoggedIn=function(){return n.getProfile().isLoggedIn};h=function(){var t=r.get("auto-token"),u=r.get("auth-userName");s.unwatch();(t!=null||u!=null||typeof t=="undefined"||typeof u=="undefined")&&(r.remove("auth-token"),r.remove("auth-userName"),n.logoutUser(),o.closeModals(),o.openModal(i,"xs","timedout"))};h()}]),function(){angular.module("shipApp").controller("homeController",["$rootScope","$cookies","$timeout","accountResource","userSearchFactory","savedSearchFactory","currentUser","$scope","setting","$http","$location","errorService","ordersResource","partnerConnectService","modalService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y){var p=this,w;p.isLoggedIn=function(){return e.getProfile().isLoggedIn};p.message="";p.title="Edit Profile";p.profileData={firstName:"",middleName:"",lastName:"",company:"",accountType:"",email:"",phoneNumber:"",emailConfirmed:!1,savePackages:!1,membershipStatus:"",birthday:"",blurb:"",accountCreated:"",canGenerateApiKey:!1};p.navigateTo=function(n){c.path(n)};p.printPdf=function(n){a.printPdf(n)};p.dataLoaded=!1;w=function(){p.pageCode="P";p.errors=n.Errors||[];p.isLoggedIn()&&p.dataLoaded===!1?(r.getuser().getUserData(null,function(n){e.setProfileData(n);p.currentUser=e.getProfile();window.fcWidget&&(window.fcWidget.setExternalId(p.currentUser.email),window.fcWidget.user.setProperties({firstName:p.currentUser.firstName,lastName:p.currentUser.lastName,email:p.currentUser.email,phone:p.currentUser.phoneNumber}));p.dataLoaded=!0}),o.savedSearch=f.model.searches,o.totalCount=f.model.totalCount,u.setupUserSearches(o),v.checkPartner(),i(function(){var n=t.get("partnerConnect"),i;n&&(i=JSON.parse(n),i.partner==="USAC"&&(t.remove("partnerConnect"),y.openModal(o,"lg","usacSuccess")))},1e3),a.getLatestOrders(3).then(function(n){p.orders=n.data;for(var t=0,i=p.orders.length;t<i;t++)p.ordersTotal+=p.orders[t].total},function(){l.addMessage(s.UserOrderFailed)})):c.path("/login")};p.switchToSavedSearch=function(n){f.switchToSavedSearch(n)};w()}])}();angular.module("shipApp").controller("apiKeyController",["currentUser","setting","formDataFactory","$rootScope","$scope","errorService","$location","helpersFactory","loginResource","accountResource",function(n,t,i,r,u,f,e,o,s,h){var c=this,l;c.ShowApiKey="";u.vm=c;c.isLoggedIn=function(){return n.getProfile().isLoggedIn};c.message="";c.header="Your Api Key";l=function(){c.pageCode="P";c.errors=r.Errors||[];c.errors=r.Errors||[];c.isLoggedIn()?h.getuser().getUserData(null,function(t){n.setProfileData(t);c.currentUser=n.getProfile();c.dataLoaded=!0}):e.path("/login")};l();c.generateApiKey=function(){f.removeError(t.UserApiKeyGeneratedSuccess);f.removeError(t.UserApiKeyGeneratedFailed);s.generateApiKey().generate(null,function(n){f.addMessage(t.UserApiKeyGeneratedSuccess);c.ShowApiKey=n.queryable[0]},function(){f.addMessage(t.UserApiKeyGeneratedFailed)})}}]);angular.module("shipApp").controller("partnerConnectController",["$scope","$rootScope","$cookies","setting","currentUser","partnerConnectService","modalService",function(n,t,i,r,u,f,e){n.init=function(){n.step=1};n.verifyPartner=function(){f.verifyUSACMember(n.firstName,n.lastName,n.license).then(function(r){var f=r.data;n.partner=f;f.response===!0&&(t.partnerConnect={firstName:n.firstName,lastName:n.lastName,license:n.license,partner:"USAC"},i.put("partnerConnect",JSON.stringify(t.partnerConnect)),u.getProfile().isLoggedIn&&(window.location.href="/profile"),n.step=2)},function(){n.partner={success:!1,reason:"Unable to reach USAC for account verification, please try again later."}})};n.login=function(){e.openModal(n,"sm","loginregister",2)};n.register=function(){e.openModal(n,"sm","loginregister",3)};n.closeModal=function(n){e.closeModalByName(n)};n.goTo=function(n){window.location.href=n};n.init()}]);angular.module("shipApp").service("partnerConnectService",["$http","$rootScope","$cookies","errorService","setting",function(n,t,i){function u(t,i,r){return n({method:"get",url:"api/partnerconnect/verifyUsacMember",params:{firstName:t,lastName:i,license:r}})}function f(t,i,r){return n({method:"get",url:"/api/partnerconnect/assignUSAC",params:{firstName:t,lastName:i,license:r}})}function e(){var n=t.partnerConnect,u;(n===null||typeof n=="undefined")&&(u=i.get("partnerConnect"),n=typeof u=="string"?JSON.parse(u):u);n&&n.partner==="USAC"&&r.connectUSACMember(n.firstName,n.lastName,n.license).then(function(n){var t=n.data;t===!1&&i.remove("partnerConnect")},function(){i.remove("partnerConnect")})}var r={};return r={verifyUSACMember:u,connectUSACMember:f,checkPartner:e}}]);angular.module("shipApp").controller("modalController",["$scope","setting","modalService",function(n,t,i){function u(){}var r=this;r.closeModal=function(n){i.closeModalByName(n)};r.closeModals=function(){i.closeModals()};r.alert=function(){};u()}]);angular.module("shipApp").directive("formbackground",function(){return{link:function(n,t,i){$("#backgroundStyleDiv").attr("class","container-fullwidth hero-background "+i.formbackground)}}}).directive("importData",["setting",function(n){return{link:function(t,i,r){var u=r.importData;n.AccountWebApiServerPath=u}}}]).directive("contentversion",function(){return{link:function(n,t,i){if(n.contentSet!==!0){n.contentSet=!0;switch(i.contentversion){}}}}}).directive("errorOutput",["setting","$rootScope","$compile","$templateCache",function(n,t,i,r){return{restrict:"E",scope:{page:"=page",errors:"=errors"},templateUrl:"/scripts/app/partials/error-template.html",link:function(n,t,u){n.$watch(function(){return n.errors},function(){var t=r.get("/scripts/app/partials/error-template.html");u.$$element.html(t);i(u.$$element.contents())(n)})}}}]).directive("creditCard",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){r.$parsers.unshift(function(n){var t=$.payment.validateCardNumber(n);return r.$setValidity("creditCard",t),n});r.$formatters.unshift(function(n){var t=$.payment.validateCardNumber(n);return r.$setValidity("creditCard",t),n})}}});angular.module("shipApp").controller("printLabelsController",["ordersResource","currentUser","$rootScope","$scope","setting","$location","trayFactory","modalService",function(n,t,i,r,u,f,e){var o=this,s;o.isLoggedIn=function(){return t.getProfile().isLoggedIn};o.title="Print Labels";o.filters=[];o.trayFlags=[];o.toggleTrayFlag=function(n,t,i){e.toggleTrayFlag(n,t,o,i)};o.setTrayFlag=function(n,t,i){e.setTrayFlag(n,t,i,o)};o.printPdf=function(n){var t=this._printIframe;this._printIframe||(t=this._printIframe=document.createElement("iframe"),document.body.appendChild(t),t.style.display="none",t.onload=function(){setTimeout(function(){t.focus();t.contentWindow.print()},1)});t.src=n};o.printThermal=function(){var n=btoa(o.shipment.orderCode+"|"+o.shipment.trackingNumber+"|thermal|"+o.shipment.id);o.printPdf("/api/label/load?id="+n)};o.printLaser=function(){var n=btoa(o.shipment.orderCode+"|"+o.shipment.trackingNumber+"|laser|"+o.shipment.id);o.printPdf("/api/label/load?id="+n)};s=function(){o.pageCode="O";o.errors=i.Errors||[];o.isLoggedIn()?o.shipment=r.shipmentToPrint:f.url("/login");o.trayFlags=[]};s()}]);angular.module("shipApp").controller("claimsController",["$scope","$rootScope","$location","$window","$http","setting","focusFactory","spinnerFactory","validationFactory","claimsService","formDataFactory","trayFactory","helpersFactory",function(n,t,i,r,u,f,e,o,s,h,c,l,a){n.$on("$includeContentLoaded",function(){r.ga("send","pageview",{page:i.path(),title:n.$root.title})});n.init=function(){n.trayFlags=[];n.focusFlags=[];n.showSuccess=!1;n.showForm=!0;n.showMismatchError=!1;n.showGenericError=!1;n.minPics=1;n.maxPics=4;n.claimData={orderNumber:"",ownerName:"",email:"",phone:"",outsidePics:[{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}}],packingPics:[{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}}],damagePics:[{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}}],estimatePics:[{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}},{invalid:!1,invalidType:!1,fileMeta:{size:0}}]};c.loadStatePresets();n.formData=c.model.presets;n.formData.iAmOptions=[{display:"I am the sender of this package.",value:"sender"},{display:"I am the recipient of this package.",value:"recipient"}];o.setupSpinner()};n.stopClick=function(n){l.stopClick(n)};n.setTrayFlag=function(t,i,r){l.setTrayFlag(t,i,r,n);n.validateForm()};n.toggleTrayFlag=function(t,i,r){l.toggleTrayFlag(t,i,n,r);n.validateForm()};n.closeAllTrays=function(t,i){l.closeAllTrays(t,n,i)};n.setFocusFlag=function(t,i,r){e.setFocusFlag(t,i,r,n);n.validateForm()};n.toggleFocusFlag=function(t,i){e.toggleFocusFlag(t,i,n)};n.clearFocus=function(t,i){e.clearFocus(t,n,i)};n.addDamageFile=function(){n.claimData.damagePics.length<4&&n.claimData.damagePics.push({invalid:!1,invalidType:!1});n.validateForm()};n.addPackingFile=function(){n.claimData.packingPics.length<4&&n.claimData.packingPics.push({invalid:!1,invalidType:!1});n.validateForm()};n.addOutsideFile=function(){n.claimData.outsidePics.length<4&&n.claimData.outsidePics.push({invalid:!1,invalidType:!1});n.validateForm()};n.validateForm=function(){var t=!0;return s.isEmpty(n.claimData.orderNumber)||!s.isInteger(n.claimData.orderNumber)?(n.claimData.orderNumberInvalid=!0,t=!1):n.claimData.orderNumberInvalid=!1,s.isEmpty(n.claimData.trackingNumber)||n.claimData.trackingNumber.length!==18?(n.claimData.trackingNumberInvalid=!0,t=!1):n.claimData.trackingNumberInvalid=!1,n.claimData.senderOrRecipient?n.claimData.senderOrRecipientInvalid=!1:(n.claimData.senderOrRecipientInvalid=!0,t=!1),s.isEmpty(n.claimData.firstName)||n.claimData.firstName.length<2?(n.claimData.firstNameInvalid=!0,t=!1):n.claimData.firstNameInvalid=!1,s.isEmpty(n.claimData.lastName)||n.claimData.lastName.length<2?(n.claimData.lastNameInvalid=!0,t=!1):n.claimData.lastNameInvalid=!1,s.isEmpty(n.claimData.email)||!s.isValidEmail(n.claimData.email)?(n.claimData.emailInvalid=!0,t=!1):n.claimData.emailInvalid=!1,s.isEmpty(n.claimData.phone)||!s.isPhone(n.claimData.phone)?(n.claimData.phoneInvalid=!0,t=!1):n.claimData.phoneInvalid=!1,s.isEmpty(n.claimData.description)||n.claimData.description.length<4?(n.claimData.descriptionInvalid=!0,t=!1):n.claimData.descriptionInvalid=!1,s.isEmpty(n.claimData.damageOrLoss)?(n.claimData.damageOrLossInvalid=!0,t=!1):n.claimData.damageOrLossInvalid=!1,t=n.validatePics(t,n.claimData.damagePics),t=n.validatePics(t,n.claimData.packingPics),n.validatePics(t,n.claimData.outsidePics)};n.validatePics=function(n,t){return t[0].invalid=!1,(typeof t[0]=="undefined"||typeof t[0].fileData=="undefined"||t[0].fileData==="")&&(t[0].invalid=!0,n=!1),t[0].invalidType&&(n=!1),n};n.submitClaim=function(){n.claimData.formSubmitted=!0;n.validateForm()&&(o.startSpinner(),h.submitClaim(n.claimData).then(function(t){console.log(t.data);var i=t.data;n.showForm=!1;n.showMismatchError=!1;n.showGenericError=!1;n.showSuccess=!1;i===1?n.showSuccess=!0:i===-2?n.showMismatchError=!0:n.showGenericError=!0;o.stopSpinner()},function(){n.showForm=!1;n.showMismatchError=!1;n.showSuccess=!1;n.showGenericError=!0;o.stopSpinner()}))};n.setContactCountry=function(t){n.claimData.contactCountryObject=t;n.claimData.contactCountry=t.Code;n.validateForm()};n.setContactState=function(t){n.claimData.contactStateObject=t;n.claimData.contactState=t.stateprovcode;n.validateForm()};n.setSenderOrRecipient=function(t){n.claimData.senderOrRecipientObject=t;n.claimData.senderOrRecipient=t.value;n.validateForm()};n.setDamageOrLoss=function(t){n.claimData.damageOrLoss=t;n.validateForm()};n.attachPic=function(t,i){var o=parseInt(a.removeNonNumeric(t.id)),u=i[o],r,f,e;if(u.invalidType=!1,r=t.files[0],r.type!=="image/png"&&r.type!=="image/jpg"&&r.type!=="image/jpeg"&&r.type!=="image/gif"){u.invalidType=!0;n.$apply();return}u.fileMeta={lastModifiedDate:r.lastModifiedDate,name:r.name,size:r.size,type:r.type};f=document.getElementById(t.id+"Thumbnail");e=new FileReader;e.onload=function(t){var i=new Image;i.onload=function(){var o=document.createElement("canvas"),e=1024,t=i.width,r=i.height,a,c,p,w;t>r?t>e&&(r*=e/t,t=e):r>e&&(t*=e/r,r=e);o.width=t;o.height=r;o.getContext("2d").drawImage(i,0,0,t,r);var v=o.toDataURL("image/jpeg"),y=o.toDataURL("image/png"),s=v.length<y.length,l=s?v:y,h="";if(u.fileMeta.name.indexOf(".")>-1){for(a=u.fileMeta.name.split("."),c=0,p=a.length-1;c<p;c++)h+=a[c]+".";h+=s?"jpg":"png"}else h=u.fileMeta.name+s?".jpg":".png";u.fileMeta.name=h;u.fileMeta.size=l.length;u.fileMeta.type=s?"image/jpeg":"image/png";w=l.replace(/(\r\n|\n|\r)/gm,"");f.style.backgroundImage="url('"+w+"')";u.fileData=l;n.validateForm();n.$apply()};i.src=t.target.result};r?e.readAsDataURL(r):f.style.backgroundImage="";n.$apply()};n.init()}]);angular.module("shipApp").service("claimsService",["$http","setting",function(n){function t(t){return n({method:"post",url:"/api/claim/makeClaim",data:t})}return{submitClaim:t}}])