https://www.fellowes.com/_layouts/15/_Application/Fellowes/Respons…?d2016905420ba8c2b4e4842cd10f14e2
1// Fellowes object to be used for common tasks 2var Fellowes = (function () { 3 // public 4 return { 5 PostBox: new ko.subscribable(), //subscription delivery method 6 // messages to deliver 7 PostBoxMessages: { 8 9 LoginShow: "__loginShow", 10 LoginSuccess: "__loginSuccess", 11 LoginFailure: "__loginFailure", 12 AccountSuccess: "__accountSuccess", 13 AccountFailure: "__accountFailure", 14 PasswordSuccess: "__passwordSuccess", 15 PasswordFailure: "__passwordFailure", 16 TokenExpired: "__tokenExpired", 17 ResetPaging: "__resetPaging", 18 ResetFilters: "__resetFilters", 19 BootstrapComplete: "__bootstrapComplete", 20 21 Analytics: { 22 TrackEvent: "__trackAnalyticEvent", 23 TrackPageView: "__trackAnalyticPageView", 24 RegisterEvent: "__registerAnalyticEvent", 25 RegisterEvents: "__registerAnalyticEvents" 26 }, 27 28 Metrics: { 29 TrackEvent: "__trackMetricsEvent", 30 TrackPageView: "__trackMetricsPageView", 31 RegisterEvent: "__registerMetricsEvent", 32 RegisterEvents: "__registerMetricsEvents" 33 }, 34 35 Validation: { 36 RegisterRecaptcha: "registerRecaptcha" 37 }, 38 39 Tag: { 40 TrackEvent: "__trackTagEvent", 41 }, 42 43 Navigation: { 44 HeaderMenuReady: "__headerMenuReady", 45 FooterMenuReady: "__footerMenuReady" 46 }, 47 48 Catalog: { 49 RequestLoaded: "__requestLoaded", 50 51 FilterProductsComplete: "__filterProductsComplete", 52 FilterProductsFailed: "__filterProductsFailed", 53 FiltersReady: "__filtersReady", 54 55 GetCategory: "__getCategory", 56 GetCategoryComplete: "__getCategoryComplete", 57 GetCategoryFailed: "__getCategoryFailed", 58 59 GetCategories: "__getCategories", 60 GetCategoriesComplete: "__getCategoriesComplete", 61 GetCategoriesFailed: "__getCategoriesFailed", 62 63 GetProduct: "__getProduct", 64 GetProductComplete: "__getProductComplete", 65 GetProductFailed: "__getProductFailed", 66 67 GetProducts: "__getProducts", 68 GetProductsComplete: "__getProductsComplete", 69 GetProductsFailed: "__getProductsFailed", 70 71 GetCoreProperties: "__getCoreProperties", 72 GetCorePropertiesComplete: "__getCorePropertiesComplete", 73 GetCorePropertiesFailed: "__getCorePropertiesFailed", 74 75 GetSpecsProperties: "__getSpecsProperties", 76 GetSpecsPropertiesComplete: "__getSpecsPropertiesComplete", 77 GetSpecsPropertiesFailed: "__getSpecsPropertiesFailed", 78 79 GetVariants: "__getVariants", 80 GetVariantsComplete: "__getVariantsComplete", 81 GetVariantsFailed: "__getVariantsFailed", 82 83 CategoryModelReady: "__categoryModelReady", 84 ProductModelReady: "__productModelReady", 85 RelatedItemModelReady: "__relatedItemModelReady", 86 VariantModelReady: "__variantModelReady", 87 SwapVariants: "__swapVariants", 88 89 CatalogItemClicked: "__catalogItemClicked" 90 }, 91 92 Profile: { 93 LoginShow: "__loginShow", 94 LoginSuccess: "__loginSuccess", 95 LoginFailure: "__loginFailure", 96 97 LoginCancelled: "__loginCancelled", 98 ContinueAsGuest: "__continueAsGuest", 99 100 //IsAuthenticated: "__isAuthenticated", 101 //Login: "__login", 102 103 AccountSuccess: "__accountSuccess", 104 AccountFailure: "__accountFailure", 105 106 PasswordSuccess: "__passwordSuccess", 107 PasswordFailure: "__passwordFailure", 108 109 CheckIfExists: "__checkIfExists", 110 CheckIfExistsComplete: "__checkIfExistsComplete",
111 CheckIfExistsFailed: "__checkIfExistsFailure", 112 113 RetrieveProfile: "__retrieveProfile", 114 RetrieveProfileComplete: "__retrieveProfileComplete", 115 RetrieveProfileFailed: "__retrieveProfileFailure", 116 117 RetrieveAddress: "__retrieveAddress", 118 RetrieveAddressComplete: "__retrieveAddressComplete", 119 RetrieveAddressFailed: "__retrieveAddressFailure", 120 121 RetrieveAddresses: "__retrieveAddresses", 122 RetrieveAddressesComplete: "__retrieveAddressesComplete", 123 RetrieveAddressesFailed: "__retrieveAddressesFailure", 124 125 RetrieveCreditCards: "__retrieveCreditCards", 126 RetrieveCreditCardsComplete: "__retrieveCreditCardsComplete", 127 RetrieveCreditCardsFailed: "__retrieveCreditCardsFailure", 128 129 UpdateProfile: "__updateProfile", 130 UpdateProfileComplete: "__updateProfileComplete", 131 UpdateProfileFailed: "__updateProfileFailed", 132 133 UpdateLogin: "__updateLogin", 134 UpdateLoginComplete: "__updateLoginComplete",
135 UpdateLoginFailed: "__updateLoginFailed", 136 137 AddAddress: "__addAddress", 138 AddAddressComplete: "__addAddressComplete", 139 AddAddressFailed: "__addAddressFailed", 140 141 UpdateAddress: "__updateAddress", 142 UpdateAddressComplete: "__updateAddressComplete", 143 UpdateAddressFailed: "__updateAddressFailed", 144 145 RemoveAddress: "__removeAddress", 146 RemoveAddressComplete: "__removeAddressComplete", 147 RemoveAddressFailed: "__removeAddressFailed", 148 149 AddPaymentMethod: "__addPaymentMethod", 150 AddPaymentMethodComplete: "__addPaymentMethodComplete", 151 AddPaymentMthodFailed: "__addPaymentMethodFailed", 152 153 RemovePaymentMethod: "__removePaymentMethod", 154 RemovePaymentMethodComplete: "__removePaymentMethodComplete", 155 RemovePaymentMthodFailed: "__removePaymentMethodFailed" 156 157 158 }, 159 160 Program: { 161 162 Initialize: "__initializeProgram", 163 InitializeComplete: "__initializeProgramComplete", 164 InitializeFailed: "__initializeProgramFailed", 165 166 167 Validate: "__validateProgram", 168 ValidateComplete: "__validateProgramComplete", 169 ValidateFailed: "__validateProgramFailed", 170 171 172 Submit: "__submitProgram", 173 SubmitComplete: "__submitProgramComplete", 174 SubmitFailed: "__submitProgramFailed", 175 176 177 Register: "__registerConsumer", 178 RegisterComplete: "__registerConsumerComplete", 179 RegisterFailed: "__registerConsumerFailed", 180 181 182 GetCdcProgramById: "__getCdcProgramById", 183 GetCdcProgramByIdComplete: "__getCdcProgramByIdComplete", 184 GetCdcProgramByIdFailed: "__getCdcProgramByIdFailed" 185 186 }, 187 188 Marketing: { 189 190 Process: "__processMarketingCloud", 191 ProcessComplete: "__processMarketingCloudComplete",
192 ProcessFailed: "__processMarketingCloudFailed", 193 194 195 GetMktCloudProgramById: "__getMktCloudProgramById", 196 GetMktCloudProgramByIdComplete: "__getMktCloudProgramByIdComplete", 197 GetMktCloudProgramByIdFailed: "__getMktCloudProgramByIdFailed" 198 199 }, 200 201 Orders: { 202 203 GetOrders: "__getOrders", 204 GetOrdersComplete: "__getOrdersComplete", 205 GetOrdersFailed: "__getOrdersFailed", 206 207 GetOrderById: "__getOrderById", 208 GetOrderByOrderNumber: "__getOrderByOrderNumber", 209 GetOrderComplete: "__getOrderComplete", 210 GetOrderFailed: "__getOrderFailed", 211 212 OrderModelReady: "__orderModelReady", 213 214 PurchaseOrder: "__purchaseOrder" 215 }, 216 217 Cart: { 218 GetCart: "__getCart", 219 GetCartComplete: "__getCartComplete", 220 GetCartFailed: "__getCartFailed", 221 222 AddItemToCart: "__addItemToCart", 223 AddItemToCartComplete: "__addItemToCartComplete", 224 AddItemToCartFailed: "__addItemToCartFailed", 225 226 RemoveItemFromCart: "__removeItemFromCart", 227 RemoveItemFromCartComplete: "__removeItemFromCartComplete", 228 RemoveItemFromCartFailed: "__removeItemFromCartFailed", 229 230 UpdateCartWithItem: "__updateCartWithItem", 231 UpdateCartWithItemComplete: "__updateCartWithItemComplete", 232 UpdateCartWithItemFailed: "__updateCartWithItemFailed", 233 234 InitializeCheckOut: "__initializeCheckOut", 235 236 RegisteredLoginForCheckOut: "__registeredLoginForCheckOut", 237 GuestLoginForCheckOut: "__guestLoginForCheckOut", 238 239 SetShippingMethod: "__setShippingMethod", 240 SetShippingMethodComplete: "__setShippingMethodComplete", 241 SetShippingMethodFailed: "__setShippingMethodFailed", 242 243 SetShippingAddress: "__setShippingAddress", 244 SetShippingAddressComplete: "__setShippingAddressComplete",
245 SetShippingAddressFailed: "__setShippingAddressFailed", 246 247 SetBillingAddress: "__setBillingAddress", 248 SetBillingAddressComplete: "__setBillingAddressComplete", 249 SetBillingAddressFailed: "__setBillingAddressFailed", 250 251 ResetBillingAddress: "__resetBillingAddress", 252 ResetBillingAddressComplete: "__resetBillingAddressComplete", 253 ResetBillingAddressFailed: "__resetBillingAddressFailed", 254 255 SetConsumerEmailAddress: "__setConsumerEmailAddress", 256 SetConsumerEmailAddressComplete: "__setConsumerEmailAddressComplete", 257 SetConsumerEmailAddressFailed: "__setConsumerEmailAddressFailed", 258 259 SubmitCart: "__submitCart", 260 SubmitCartComplete: "__submitCartComplete", 261 SubmitCartFailed: "__submitCartFailed", 262 263 FinalizeCart: "__finalizeCart", 264 CartModelReady: "__cartModelReady" 265 }, 266 267 Shipping: { 268 EstimateShipping: "__estimateShipping", 269 EstimateShippingComplete: "__estimateShippingComplete", 270 EstimateShippingFailed: "__estimateShippingFailed", 271 272 EstimateShippingByPostalCode: "__estimateShippingByPostalCode", 273 EstimateShippingByPostalCodeComplete: "__estimateShippingByPostalCodeComplete", 274 EstimateShippingByPostalCodeFailed: "__estimateShippingByPostalCodeFailed", 275 276 ValidateAddress: "__validateAddress", 277 ValidateAddressComplete: "__validateAddressComplete",
278 ValidateAddressFailed: "__validateAddressFailed", 279 280 GetShipToStates: "__getShipToStates", 281 GetShipToStatesComplete: "__getShipToStatesComplete", 282 GetShipToStatesFailed: "__getShipToStatesFailed", 283 284 GetShipToCountries: "__getShipToCountries", 285 GetShipToCountriesComplete: "__getShipToCountriesComplete", 286 GetShipToCountriesFailed: "__getShipToCountriesFailed" 287 }, 288 289 Payments: { 290 LoadPaymentMethods: "__loadPaymentMethods", 291 LoadPaymentMethodsComplete: "__loadPaymentMethodsComplete", 292 LoadPaymentMethodsFailed: "__loadPaymentMethodsFailed" 293 }, 294 295 Promotions: { 296 ApplyCoupon: "__applyCoupon", 297 ApplyCouponComplete: "__applyCouponComplete", 298 ApplyCouponFailed: "__applyCouponFailed", 299 300 RemoveCoupon: "__removeCoupon", 301 RemoveCouponComplete: "__removeCouponComplete",
302 RemoveCouponFailed: "__removeCouponFailed" 303 }, 304 305 Relationship: { 306 GetCartRelatedItems: "__getCartRelatedItems", 307 GetCartRelatedItemsComplete: "__getCartRelatedItemsComplete", 308 GetCartRelatedItemsFailed: "__getCartRelatedItemsFailed", 309 310 GetOrderRelatedItems: "__getOrderRelatedItems", 311 GetOrderRelatedItemsComplete: "__getOrderRelatedItemsComplete", 312 GetOrderRelatedItemsFailed: "__getOrderRelatedItemsFailed", 313 314 GetProductRelatedItems: "__getProductRelatedItems", 315 GetProductRelatedItemsComplete: "__getProductRelatedItemsComplete", 316 GetProductRelatedItemsFailed: "__getProductRelatedItemsFailed", 317 318 GetCategoryRelatedItems: "__getCategoryRelatedItems", 319 GetCategoryRelatedItemsComplete: "__getCategoryRelatedItemsComplete", 320 GetCategoryRelatedItemsFailed: "__getCategoryRelatedItemsFailed", 321 322 GetRelatedItems: "__getRelatedItems", 323 GetRelatedItemsComplete: "__getRelatedItemsComplete", 324 GetRelatedItemsFailed: "__getRelatedItemsFailed" 325 }, 326 327 Checkout: { 328 ShippingInfoInitStep: "__shippingInfoInitStep", 329 ShipMethodInitStep: "__shipMethodInitStep", 330 PaymentInitStep: "__paymentInitStep", 331 ReviewInitStep: "__reviewInitStep" 332 }, 333 334 Activity: 335 { 336 AddActivity: "__addActivity", 337 AddActivityComplete: "__addActivityComplete", 338 AddActivityFailed: "__addActivityFailure", 339 340 AddActivities: "__addActivities", 341 AddActivitiesComplete: "__addActivitiesComplete", 342 AddActivitiesFailed: "__addActivitiesFailure", 343 344 GetActivities: "__getActivities", 345 GetActivitiesComplete: "__getActivitiesComplete", 346 GetActivitiesFailed: "__getActivitiesFailure" 347 }, 348 349 Search: { 350 TriggerSearchSuggest: "__triggerSearchSuggest", 351 352 TriggerSearch: "__triggerSearch", 353 TriggerSearchComplete: "__triggerSearchComplete", 354 TriggerSearchFailed: "__triggerSearchFailed", 355 356 TriggerSuggest: "__triggerSuggest", 357 TriggerSuggestComplete: "__triggerSuggestComplete", 358 TriggerSuggestFailed: "__triggerSuggestFailed" 359 }, 360 361 Report: { 362 BuildMaterialSpecSheet: "__buildMaterialSpecSheet", 363 BuildMaterialSpecSheetComplete: "__buildMaterialSpecSheetComplete", 364 BuildMaterialSpecSheetFailed: "__buildMaterialSpecSheetFailure" 365 }, 366 367 Resource: { 368 LoadRepositories: "__loadRepositories", 369 LoadRepositoriesComplete: "__loadRepositoriesComplete", 370 LoadRepositoriesFailed: "__loadRepositoriesFailure", 371 372 LoadTaxonomies: "__loadTaxonomies", 373 LoadTaxonomiesComplete: "__loadTaxonomiesComplete", 374 LoadTaxonomiesFailed: "__loadTaxonomiesFailure", 375 376 GetListingAssets: "__getListingAssets", 377 GetListingAssetsComplete: "__getListingAssetsComplete", 378 GetListingAssetsFailed: "__getListingAssetsFailure", 379 380 GetDetailedAsset: "__getDetailedAsset", 381 GetDetailedAssetComplete: "__getDetailedAssetComplete", 382 GetDetailedAssetFailed: "__getDetailedAssetFailure", 383 384 GenerateArchive: "__generateArchive", 385 GenerateArchiveComplete: "__generateArchiveComplete", 386 GenerateArchiveFailed: "__generateArchiveFailure", 387 388 GetCollectionPackage: "__getCollectionPackage", 389 GetCollectionPackageComplete: "__getCollectionPackageComplete", 390 GetCollectionPackageFailed: "__getCollectionPackageFailure", 391 392 GetItemCompletePackage: "__getItemCompletePackage", 393 GetItemCompletePackageComplete: "__getItemCompletePackageComplete",
394 GetItemCompletePackageFailed: "__getItemCompletePackageFailure", 395 396 GetItemEssentialsPackage: "__getItemEssentialsPackage", 397 GetItemEssentialsPackageComplete: "__getItemEssentialsPackageComplete", 398 GetItemEssentialsPackageFailed: "__getItemEssentialsPackageFailure", 399 400 GetContentElementalsPackage: "__getContentElementalsPackage", 401 GetContentElementalsPackageComplete: "__getContentElementalsPackageComplete", 402 GetContentElementalsPackageFailed: "__getContentElementalsPackageFailure" 403 }, 404 405 Commerce: { 406 GetOrdersHistory: "__getOrdersHistory", 407 GetOrdersHistoryComplete: "__getOrdersHistoryComplete", 408 GetOrdersHistoryFailed: "__getOrdersHistoryFailure", 409 410 GetOrderDetails: "__getOrderDetails", 411 GetOrderDetailsComplete: "__getOrderDetailsComplete", 412 GetOrderDetailsFailed: "__getOrderDetailsFailure", 413 414 GetCurrentProfile: "__getCurrentProfile", 415 GetCurrentProfileComplete: "__getCurrentProfileComplete", 416 GetCurrentProfileFailed: "__getCurrentProfileFailure", 417 418 TriggerDownload: "__triggerDownload", 419 TriggerDownloadComplete: "__triggerDownloadComplete", 420 TriggerDownloadFailed: "__triggerDownloadFailure", 421 422 GetAccounts: "__getAccounts", 423 GetAccountsComplete: "__getAccountsComplete", 424 GetAccountsFailed: "__getAccountsFailure", 425 426 ValidateSession: "__validateSession", 427 ValidateSessionComplete: "__validateSessionComplete",
428 ValidateSessionFailed: "__validateSessionFailure" 429 }, 430 431 Selector: { 432 TriggerCrcSuggest: "__triggerCrcSuggest" 433 }, 434 435 Cms: { 436 437 IdeaStarter: { 438 GetProjects: "__getProjects", 439 GetProjectsComplete: "__getProjectsComplete", 440 GetProjectsFailed: "__getProjectsFailed", 441 442 GetProject: "__getProject", 443 GetProjectComplete: "__getProjectComplete", 444 GetProjectFailed: "__getProjectFailed", 445 446 GetIdea: "__getIdea", 447 GetIdeaComplete: "__getIdeaComplete", 448 GetIdeaFailed: "__getIdeaFailed" 449 }, 450 451 KnowledgeBase: { 452 GetArticles: "__getArticles", 453 GetArticlesComplete: "__getArticlesComplete", 454 GetArticlesFailed: "__getArticlesFailed" 455 } 456 } 457 } 458 }; 459})(); 460 461/* 462Fellowes Message View Model 463Responsible to Bind data to different Web Controls 464*/ 465var FellowesMessageViewModel = function (message, isSuccess, isError, isInfo, isWarning) { 466 var self = this; 467 468 self.Message = message; 469 self.IsSuccess = !isInfo && !isError && !isWarning && isSuccess; 470 self.IsError = isError; 471 self.IsInfo = isInfo; 472 self.IsWarning = isWarning; 473 474 self.notificationType = function () { 475 if (self.IsError) return "error"; 476 else if (self.IsInfo) return "info"; 477 else if (self.IsWarning) return "warning"; 478 else if (self.IsSuccess) return "success"; 479 return "alert"; 480 }; 481};
482 483var FellowesRadioButtonModel = function (inText, inValue, inGroupName, payload) { 484 var self = this; 485 self.text = inText; 486 self.value = inValue; 487 self.name = inGroupName; 488 self.payload = payload; 489}; 490 491var FellowesOptions = function (text, value, payload) { 492 var self = this; 493 self.text = text; 494 self.value = value; 495 self.payload = payload; 496}; 497 498var FellowesCoreRequest = function (id, context) { 499 var self = this; 500 self.id = id; 501 self.context = context; 502}; 503 504var FellowesCoreSession = function (sessionId, contextEmail, bearerToken, tokenExpireAt) { 505 var self = this; 506 self.sessionId = sessionId; 507 self.contextEmail = contextEmail; 508 self.bearerToken = bearerToken; 509 self.tokenExpireAt = tokenExpireAt; 510}; 511 512var FellowesLightBox = function () { 513 var self = this; 514 self.component = GLightbox(); 515 516 self.showElement = function (element, open) { 517 self.component.setElements([element]); 518 if (open) 519 self.component.open(); 520 }; 521 522 self.showElements = function (elements, open) { 523 self.component.setElements(elements); 524 if (open) 525 self.component.open(); 526 }; 527};
528 529/* 530Fellowes Core Class 531Add & Update the properties here: ex. URL Paths etc. 532Used to set variables throughout the web application 533*/ 534var FellowesCore = function () { 535 var self = this; 536 537 self.storefrontContext = "fellowes.b2c"; 538 self.cultureCode = "en-US"; 539 self.countryCode = "US"; 540 self.countryDisplay = "United States"; 541 self.country = {}; 542 self.countries = []; 543 544 self.queryHash = {}; 545 self.rootCategory = ""; 546 self.parentCategory = ""; 547 self.currentCategory = ""; 548 self.currentProduct = ""; 549 self.currentItem = ""; 550 self.catalogSubSiteKey = "__US__EN__PRODUCTS"; 551 552 // To Show one of variants - make this false 553 self.showAllVariants = FellowesAppSettings.Core.ShowAllVariants; 554 555 self.silentFacets = { 'DisplayOnWebsite': 'true' }; // Can be overriden by the page using the search.js 556 self.isAuthenticated = false; 557 self.isVisitor = false; 558 self.contextEmail = ""; 559 560 self.isCartReady = false; 561 self.checkoutSteps = { 562 shippable: ['shippingInfo', 'shipMethod', 'payment', 'review'], 563 nonShippable: ['shippingInfo', 'payment', 'review'] 564 }; 565 566 self.miscImagePath = '../Assets/img/'; 567 self.thumbnailPath = FellowesAppSettings.Core.ProductThumbnailImageUrl 568 ? FellowesAppSettings.Core.ProductThumbnailImageUrl.replace(/\{0\}/, '') 569 : ''; 570 self.emptyThumbnailPath = '//placehold.it/100x100'; 571 self.iconPath = FellowesAppSettings.Core.ProductIconImageUrl 572 ? FellowesAppSettings.Core.ProductIconImageUrl.replace(/\{0\}/, '') 573 : ''; 574 self.emptyIconPath = '//placehold.it/70x70'; 575 576 self.pageMessages = ko.observableArray(); 577 578 self.site = "US"; 579 self.variation = "EN"; 580 self.isDisplayMode = false; 581 self.allowShare = ko.observable(navigator.share && navigator.canShare({ title: '', text: '', url: '' })); 582 583 self.lightbox = new FellowesLightBox(); 584 585 self.lookupCountry = function (countryCodeToLookup) { 586 var coreCountry = ko.utils.arrayFirst(self.countries, function (country) { 587 return country.CountryCode == countryCodeToLookup; 588 }); 589 return empty(coreCountry) 590 ? { "CountryCode": "", "DisplayName": "Country Not Supported", "HasProvinces": false } 591 : coreCountry; 592 }; 593 594 self.refreshSession = function (sessionId, contextEmail, bearerToken, tokenExpireAt) { 595 var coreSession = new FellowesCoreSession(sessionId, contextEmail, bearerToken, tokenExpireAt); 596 window.localStorage.setItem("fellowes-core-session", JSON.stringify(coreSession)); 597 }; 598 599 self.resetSession = function () { 600 window.localStorage.removeItem("fellowes-core-session"); 601 }; 602 603 self.currentSession = function () { 604 var storageData = window.localStorage.getItem("fellowes-core-session"); 605 if (empty(storageData)) 606 return new FellowesCoreSession(); 607 var coreSession = JSON.parse(storageData); 608 var cookieToken = $.cookie('__CSBearerTokenCookie'); 609 return new FellowesCoreSession( 610 coreSession.sessionId, 611 coreSession.contextEmail, 612 coreSession.bearerToken != cookieToken && !window.empty(cookieToken) ? cookieToken : coreSession.bearerToken, 613 coreSession.tokenExpireAt 614 ); 615 }; 616};
617 618// Override if needed in SiteHeader 619var fellowesCore = new FellowesCore();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.