var site=site||{},Model=Model||{},google=google||{};!function(e){if(Drupal.settings.globals_variables.enable_iv_store_locator){var n=Drupal.settings.globals_variables.google_language,o=Drupal.settings.globals_variables.google_api_key??Drupal.settings.generic_google_api_key,s="https:"===window.location.protocol?"https:":"http:";e.getScript(s+"//maps.googleapis.com/maps/api/js?key="+o+"&sensor=false&language="+n+"&v=3.8&libraries=places")}site.InvisApp=function(){var n=this;if(this.dom={},this.skuId=null,this.inv_product=null,this.doors=[],this.doorsInv=null,this.map=null,this.markers=[],this.infoWindow=null,this.searchPanelData=null,this.inv_vis_zip=null,this.inv_vis_distance=null,this.zip_code=null,this.partnerCount=0,this.partnerTypeValue=null,this.bopis_enabled=Drupal.settings.globals_variables.bopis_enabled,this.templateInserted=!1,!this.bopis_enabled)return e(document).on("invis:init",(function(e,o){n.handleInit(o)})),e(document).on("invis:templates:inserted",(function(e,o){n.handleTemplatesInserted(),n.templateInserted=!0})),e(document).on("product.skuSelect",".js-product-full",(function(o,s){var t=n.inv_product&&n.inv_product.skus.find((function(e){return e.SKU_BASE_ID===s}));n.skuId=s,n.inv_product&&e.extend(n.inv_product,t),n.templateInserted&&n.handleInit({product:n.inv_product,skuId:n.skuId})})),e(document).on("DoorsInventory:query:success",(function(o,s){(Drupal.settings.globals_variables.enable_partner_count&&s.partnerCount&&s.partnerTypeValue&&(n.partnerCount=s.partnerCount,n.partnerTypeValue=s.partnerTypeValue),n.handleDoorsInvResp(s),void 0!==s.params)&&(n.inv_vis_zip=void 0===s.params[0].zip&&s.akamai_zip&&s.akamai_zip.length>4?s.akamai_zip.substring(0,5):s.params[0].zip,n.inv_vis_distance=parseInt(s.params[0].radius),e(".js-invis-select-radius").find("option[value="+n.inv_vis_distance+"]").attr("selected","selected"));e(".js-loading",".js-invis-search-container").addClass("hidden")})),e(document).on("DoorsInventory:query:failure",(function(o,s){n.handleDoorsInvFail(s),e(".js-loading",".js-invis-search-container").addClass("hidden")})),e(document).on("invis:searchPanel:rendered",(function(e,o){n.handleSearchPanelRendered()})),e(document).on("invis:searchPanel:closed",(function(e,o){n.handleSearchPanelClosed()})),e(document).on("invis:mainPanel:closed",(function(e,n){})),e(document).on("invis:mainPanel:rendered",(function(e,o){n.handleMainPanelRendered(o)})),e(document).on("MapApi:textToLatLng:complete",(function(e,n){handleLatLngComplete(n)})),e(document).on("MapApi:init:complete",(function(){n.renderMap(),n.renderStores()})),this.handleInit=function(o){n.getNodes(),o&&(n.skuId=o.skuId,n.inv_product=o.product),n.initTemplates(),site?.inStoreLocator?.prototype.checkProdFlags(o.product)&&site?.inStoreLocator?.prototype.checkProdCats(o.product)&&site?.inStoreLocator?.prototype.checkProdIds(o.product)?(n.doors=[],n.inv_vis_zip=null,n.inv_vis_distance=null):n.dom.$app.each((function(){e(this).remove()}))},this.handleDoorsInvResp=function(o){var s=e(".js-invis-search-container").length>0;if(n.doors=o.sorted,n.doorsInv=o.door_inventory,n.inv_vis_zip=null===n.inv_vis_zip&&o.akamai_zip&&o.akamai_zip.length>4?o.akamai_zip.substring(0,5):n.inv_vis_zip,n.doors.length>0&&(n.zip_code=n.doors[0].ZIP_OR_POSTAL),s){var t={doors:n.doors};this.renderSearchPanel(t)}n.renderStartPanelContent()},this.handleDoorsInvFail=function(e){e.errors&&e.errors.length&&n.renderMessages(e)},this.handleTemplatesInserted=function(){this.renderStartPanel(),Drupal.settings.globals_variables.disable_inventory_visibility_on_pageload?this.renderStartPanelContent():this.queryDoors({radius:e(n.dom.$app).find("[data-default-spp-distance]").attr("data-default-spp-distance")||50,region_id:this.region_id})},this.renderStartPanel=function(){var e=n.renderTemplate("invis/start_panel");this.dom.$app.append(e),this.dom.$startPanel=this.dom.$app.find(".js-invis-start-panel"),this.safetyStock=this.dom.$startPanel.data("safety-stock"),this.region_id=this.dom.$startPanel.data("region-id")||null},this.renderStartPanelContent=function(){var o={};o.door=n.findBestDoor(),o.door&&(o.hasLocalDoors=1,o.door.skus_onhand&&(o.hasInventory=1,o.door.skus_onhand[n.skuId]&&o.door.skus_onhand[n.skuId].is_available&&(o.hasAvailable=1)));var s=n.renderTemplate("invis/start_panel_content",o),t=this.dom.$startPanel.find(".js-invis-start-content");if(t.length&&t.remove(),this.dom.$startPanel.append(s),o.door){_.each(["DOORNAME","ADDRESS","ADDRESS2","CITY","STATE_OR_PROVINCE","COUNTRY","ZIP_OR_POSTAL"],(function(e){o.door[e]?o.door[e]:""})),e(".js-link-open-store").attr("href",n.getGoogleMapsHref(o.door)).attr("target","store_map")}e(".js-link-open-finder",this.dom.$startPanel).on("click",(function(e){e.preventDefault(),Drupal.settings.globals_variables.disable_inventory_visibility_on_pageload?Drupal.settings.globals_variables.enable_iv_store_locator?n.handleOpenFinderClick():Model.DoorsInventory.loadDoorsOnly({skus:window.skuId,region_id:Drupal.settings.globals_variables.enable_iv_store_locator?n.region_id:"",callback:function(e){e.count>0?(n.handleDoorsInvResp(e),n.handleOpenResultsClick()):(n.handleOpenFinderClick(),Drupal.settings.globals_variables.enable_iv_store_locator&&n.handleOpenFinderClickStore(e))}}):n.handleOpenFinderClick(),e.preventDefault()})),e(".js-link-open-results",this.dom.$startPanel).on("click",(function(e){e.preventDefault(),n.handleOpenResultsClick()}))},this.handleMainPanelRendered=function(e){this.renderSearchPanel(e)},this.handleLatLngComplete=function(e){},this.queryDoors=function(e){var o={skus:n.skuId,safetyStock:n.safetyStock,radius:5,region_id:n.region_id,useHeader:1};e&&(o=_.assign(o,e)),site.prodStoreCheck&&site.prodStoreCheck.storeTypes&&(o=_.assign(o,{inv_store_types:site.prodStoreCheck.storeTypes})),Model.DoorsInventory.load(o)},this.getNodes=function(){this.dom.$app=e(".js-invis-app-container"),this.dom.$closeLink=e(".js-close-link")},this.getTemplate=function(e){var n="";return this.dom.$app.length>0&&(n=this.dom.$app.find("script.inline-template[path='"+e+"']").html()),n},this.renderTemplate=function(e,o){var s=n.getTemplate(e);return o?Mustache.render(s,o):s},this.initTemplates=function(){site&&site.templates&&site.templates.product_store_check_layout_v1&&site.template.get({name:"product_store_check_layout_v1",callback:function(o){n.dom.$app.html(o),e(document).trigger("invis:templates:inserted")}})},this.handleOpenResultsClick=function(){this.renderMainPanel({doors:n.doors})},this.handleOverlayOpened=function(){},this.handleOverlayClosed=function(){},this.handleOpenFinderClick=function(){this.renderMainPanel({doors:n.doors})},this.handleOpenFinderClickStore=function(e){this.renderMainPanel(e)},this.renderMainPanel=function(o){o&&o.doors&&o.doors;var s=n.renderTemplate("invis/search_panel",{sku:this.inv_product});Drupal.settings.globals_variables.enable_iv_store_locator&&(s=n.renderTemplate("invis/search_panel",{sku:this.inv_product,store:1}));var t=function(){e(document).trigger("invis:mainPanel:rendered",o)};n.dom.$searchPanel=e(".js-invis-search-container"),this.openOverlay({content:s,onComplete:t,onClosed:function(){e(document).trigger("invis:mainPanel:closed",o)}}),n.isDesktop()||(n.dom.$searchPanel&&n.dom.$searchPanel.length>0&&n.dom.$searchPanel.remove(),t()),n.dom.$searchPanel=e(".js-invis-search-container")},this.renderSearchPanel=function(o){this.bindLocationSearchForm(),e(".js-invis-results").remove(),o?o.doors&&o.doors.length?(n.renderResults(o.doors),n.initMap(o.doors)):n.renderMessages({errors:[{key:"err_no_results"}]}):e(".js-invis-input-zip").val(""),e(".js-close-link").on("click",(function(n){n.preventDefault(),e(document).trigger("invis:searchPanel:closed")})),e(document).trigger("invis:searchPanel:rendered")},this.bindLocationSearchForm=function(){var o=e(".js-invis-search-submit"),s=e(".js-invis-input-zip"),t=e(".js-loading",".js-invis-search-container");if(null===s.val()||""===s.val()){var i=n.inv_vis_zip||"";Drupal.settings.globals_variables.enable_prod_store_check_zipcode?s.val(n.zip_code):i.indexOf("+",3)>0?e(".js-invis-input-zip").val(""):s.val(i)}var a=e(".js-invis-select-radius"),r=a.attr("data-default-distance")||20;a.find("option[value="+r+"]").attr("selected","selected");var l=e(".js-invis-sku-container").data("sku-id").replace("SKU","");o.off("click").on("click",(function(o){t.removeClass("hidden");var i=s.val(),r=a.val();Drupal.settings.globals_variables.enable_iv_store_locator?i?n.enableStore(i,r):(n.errors=[],n.errors.push({key:"err_missing_zip"}),e(document).trigger("DoorsInventory:query:failure",{errors:n.errors})):n.queryDoors({skus:l,zip:i,radius:r,safetyStock:n.safetyStock,useHeader:0})})),s.once().on("keyup",(function(e){var o=s.val(),t=a.val();13===e.keyCode&&(Drupal.settings.globals_variables.enable_iv_store_locator?n.enableStore(o,t):n.queryDoors({skus:l,zip:o,radius:t,safetyStock:n.safetyStock,useHeader:0}))})),s.keydown((function(e){13!==e.keyCode||e.shiftKey||e.preventDefault()})),e(".js-invis-form-geo-container",this.dom.$searchPanel).once().on("click",(function(o){o.preventDefault(),t.removeClass("hidden"),s.val(""),Model.DoorsInventory.loadDoorsOnly({skus:window.skuId,region_id:n.region_id,callback:function(o){o.count||(n.errors=[],n.errors.push({key:"err_no_results"}),e(document).trigger("DoorsInventory:query:failure",{errors:n.errors}))}})}))},this.enableStore=function(o,s){var t,i=new google.maps.Geocoder,a=Drupal.settings.globals_variables.country_value,r=Drupal.settings.globals_variables.append_postcode_to_geocoder?"postcode "+o:o;i.geocode({address:r,componentRestrictions:{country:a}},(function(i,a){if(a===google.maps.GeocoderStatus.OK){var r=(t=i[0].geometry.location).lat(),l=t.lng();n.queryDoors({skus:skuId,zip:o,latitude:r,longitude:l,radius:s,safetyStock:n.safetyStock,useHeader:0})}else n.errors=[],n.errors.push({key:"err_invalid_zip"}),e(document).trigger("DoorsInventory:query:failure",{errors:n.errors})}))},this.handleSearchPanelRendered=function(){e(this).colorbox.resize(),e(window).resize((function(){e(this).colorbox.resize()}))},this.handleSearchPanelClosed=function(){},this.renderResults=function(o){var s=n.renderTemplate("/invis/search/results");e(".js-invis-search-container").append(s)},this.renderMessages=function(o){var s={};_.each(o.errors,(function(e){switch(e.key){case"err_no_results":s.hasNoResults=1;break;case"err_invalid_zip":s.invalidZip=1;break;case"err_missing_zip":s.missingZip=1}}));var t=n.renderTemplate("/invis/search/messages",s),i=n.dom.$searchPanel.find(".js-invis-results"),a=n.dom.$searchPanel.find(".js-invis-form-container"),r=Drupal.settings.globals_variables.enable_iv_store_locator?a:n.dom.$searchPanel;i.length&&i.remove(),r.append(t),e(this).colorbox.resize()},this.openOverlay=function(n){var o=n.content,s=n.onComplete,t=n.onClosed,i=Drupal.settings.globals_variables.enable_iv_store_locator?"80%":"60%";generic.overlay.launch({content:o,includeBackground:!0,includeCloseLink:!0,initialHeight:0,maxHeight:"80%",width:i,onClosed:t,onComplete:function(){s(),e(this).colorbox.resize()}})},this.initMap=function(){Model.MapApi.init("MapApi:init:complete")},this.getGoogleMapsHref=function(e){var n=e.DOORNAME?e.DOORNAME+",":"";return _.each(["ADDRESS","ADDRESS2","CITY","STATE_OR_PROVINCE","COUNTRY","ZIP_OR_POSTAL"],(function(o){n+=e[o]?e[o]+" ":""})),"http://maps.google.com/maps?q="+encodeURIComponent(n)},this.renderStores=function(){if(!n.doors||!n.doors.length)return null;var o=n.renderTemplate("/invis/search/doors_table");e(".js-stores-container").html(o),n.dom.$doorsTable=e("ul.js-results-list");var s=new google.maps.LatLngBounds;this.safetyStock;n.markers=[];var t="",i=n.doors.length,a="",r=0,l=0;Drupal.settings.globals_variables.enable_partner_count&&i&&n.partnerCount&&(r=i-n.partnerCount,a=n.partnerTypeValue),_.each(n.doors,(function(e,o){if(e.idx=o,e.googleMapsHref=n.getGoogleMapsHref(e),Drupal.settings.globals_variables.enable_partner_count?e.STORE_TYPE!==a?(e.markerSrc="/media/export/cms/store_location_pins/Stores_"+(l+1)+"-01.svg",l++):e.STORE_TYPE===a&&(e.markerSrc="/media/export/cms/store_location_pins/Stores_"+(r+1)+"-01.svg",r++):e.markerSrc="/media/export/cms/store_location_pins/Stores_"+(o+1)+"-01.svg",e.hasInventory=0,e.hasAvailable=0,e.isCall=0,e.isCallAvail=0,e.statusClass="no-inventory",Drupal.settings.globals_variables.enable_call_avail&&(e.isCallAvail=1),e.skus_onhand&&e.skus_onhand[n.skuId]){var i=e.skus_onhand[n.skuId];e.hasInventory=1,e.statusClass="has-inventory",i.is_available?(e.statusClass="has-available",e.hasAvailable=1):i.is_call&&(e.isCall=1,e.statusClass+=" call-for-availability")}var d=n.renderTemplate("/invis/search/door",e);if(e.STORE_TYPE===a&&d?t=t.concat(d):n.dom.$doorsTable.append(d),n.map){var c=new google.maps.LatLng(e.LATITUDE,e.LONGITUDE);s.extend(c);var p=new google.maps.Marker({position:c,map:n.map,icon:{url:e.markerSrc,scaledSize:new google.maps.Size(31,41),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(0,41)},optimized:!1,index:o,title:""+e.DOOR_ID});n.map.fitBounds(s),p.addListener("click",(function(e){n.handleStoreClick(p.index)})),n.markers.push(p)}})),t&&Drupal.settings.globals_variables.enable_partner_count&&n.dom.$doorsTable.append(t),n.dom.$doorsTable.find(".js-door-list-item").on("click",(function(o){var s=e(this).data("door-idx");n.handleStoreClick(s)}));var d=n.dom.$searchPanel.find(".js-results-list-wrapper"),c=(e(".js-results-list",d).height(),d.height());Math.floor(c/3);e(".shade-picker__next",n.dom.$searchPanel).once().click((function(){n.dom.$doorsTable.scrollTo(n.dom.$doorsTable.scrollTop()+300+"px",300)})),e(".shade-picker__previous",n.dom.$searchPanel).once().click((function(){n.dom.$doorsTable.scrollTo(n.dom.$doorsTable.scrollTop()-300+"px",300)})),n.handleSearchPanelRendered()},this.handleStoreClick=function(e){n.displayInfoWindow(e),n.selectDoorInList(e)},this.displayInfoWindow=function(o){n.infoWindow&&n.infoWindow.close();var s=doors[o],t=markers[o];n.infoWindow=new google.maps.InfoWindow,n.infoWindow.setContent(s.DOORNAME+" "+s.SUB_HEADING),n.infoWindow.open(n.map,t),n.map.setCenter(t.getPosition()),google.maps.event.addListener(n.infoWindow,"domready",(function(){var n=e(".gm-style-iw"),o=n.prev();o.children(":nth-child(3)").children("div").children("div").attr("style",(function(e,n){return n+"background-color: #000 !important;"})),o.children(":nth-child(2)").css({display:"none"}),o.children(":nth-child(4)").css({display:"none"});var s=n.next();s.css({opacity:"1",color:"#FFFFFF",top:"20px",right:"15px"}).html("X"),s.mouseout((function(){e(this).css({opacity:"1"})}))}))},this.selectDoorInList=function(e){var o=n.dom.$doorsTable;o.find("li").removeClass("selected"),$selectedLi=o.find("li[data-door-idx="+e+"]"),$selectedLi.length&&($selectedLi.addClass("selected"),o.animate({scrollTop:$selectedLi.offset().top-o.offset().top+o.scrollTop()}))},this.renderMap=function(){if(!n.doors||!n.doors.length)return null;mapOptions={zoom:5,center:new google.maps.LatLng(n.doors[0].LATITUDE,n.doors[0].LONGITUDE),mapTypeId:google.maps.MapTypeId.ROADMAP,disableDefaultUI:!1,navigationControl:!0,mapTypeControl:!1,scaleControl:!1},this.map=new google.maps.Map(e(".js-map-container")[0],mapOptions)},this.findBestDoor=function(){var e=null;return(e=_.find(n.doors,(function(e){return e.skus_onhand&&e.skus_onhand[n.skuId]&&e.skus_onhand[n.skuId].is_available})))||(e=_.find(n.doors,(function(e){return e.skus_onhand&&e.skus_onhand[n.skuId]}))),e||(e=n.doors[0]),e},this.isDesktop=function(){return parseInt(Unison.fetch.now().width)>=1023},n}()}(jQuery); //# sourceMappingURL=invis_v1.min.js.map