var site=site||{};site.features=site.features||{search_type:"endeca",use_frontend_device_detection:!0,analytics_tagged:!0,has_giftcards:!0,personalization_is_enabled:!0,has_waitlist_notification:!0,has_favorites:!0,allows_anonymous_checkout:!0,show_offer_entry_field:!0,has_checkout_samples:!0,has_samples_only_checkout:!1,has_auto_replenishment:!0,uses_cheetah_mail_for_registration_email:!0,uses_cheetah_mail_for_email_signup_email:!0,pre_check_optin:!1,has_loyalty_program:!0,has_pro_site:!1,show_legal_acceptance_checkbox:!1};var drupal_user_info={};"undefined"!=typeof tms_page_data&&void 0!==tms_page_data.tms_page_info&&null==tms_page_data.tms_page_info.user_info&&(tms_page_data.tms_page_info.user_info=drupal_user_info); ; (function(site) { var ElcDispatcher = function() { this.events = {}; this.addListener = function(event, callback) { // Check if the callback is not a function if (typeof callback !== 'function') { //console.error('The listener callback must be a function, the given type is ' + typeof callback + '.'); return false; } // Check if the event is not a string if (typeof event !== 'string') { //console.error('The event name must be a string, the given type is ' + typeof event + '.'); return false; } // Check if this event not exists if (this.events[event] === undefined) { this.events[event] = { listeners: [] }; } this.events[event].listeners.push(callback); }; this.removeListener = function(event, callback) { // Check if this event not exists if (this.events[event] === undefined) { //console.error('This event: ' + event + ' does not exist.'); return false; } this.events[event].listeners = this.events[event].listeners.filter(function(listener) { return listener.toString() !== callback.toString(); }); }; this.dispatch = function(event, details) { // Check if this event not exists if (this.events[event] === undefined) { //console.error('This event: ' + event + ' does not exist.'); return false; } this.events[event].listeners.forEach(function(listener) { listener(details); }); }; }; site.elcEvents = new ElcDispatcher(); }(window.site || {})); ; if (typeof Object.assign != 'function') { // Must be writable: true, enumerable: false, configurable: true Object.defineProperty(Object, "assign", { value: function assign(target, varArgs) { // .length of function is 2 'use strict'; if (target == null) { // TypeError if undefined or null throw new TypeError('Cannot convert undefined or null to object'); } var to = Object(target); for (var index = 1; index < arguments.length; index++) { var nextSource = arguments[index]; if (nextSource != null) { // Skip over if undefined or null for (var nextKey in nextSource) { // Avoid bugs when hasOwnProperty is shadowed if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { to[nextKey] = nextSource[nextKey]; } } } } return to; }, writable: true, configurable: true }); };