{"version":3,"file":"626.1ce0020cc2fad6bd0e62.js","mappings":"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","sources":["webpack://mcweb3/./Scripts4.0/McUtils.js","webpack://mcweb3/./Scripts4.0/ViewModels/quickview.js","webpack://mcweb3/./Scripts4.0/ViewModels/variant/ajax-variant-selector.js","webpack://mcweb3/./Scripts4.0/ajax-render-engine.js"],"sourcesContent":["function McUtils() {\r\n}\r\nMcUtils.prototype = {\r\n constructor: McUtils,\r\n\r\n isElementInView: function(element, fullyInView) {\r\n var pageTop = jQuery(window).scrollTop();\r\n var pageBottom = pageTop + jQuery(window).height();\r\n var elementTop = jQuery(element).offset().top;\r\n var elementBottom = elementTop + jQuery(element).height();\r\n if (fullyInView === true) {\r\n return ((pageTop < elementTop) && (pageBottom > elementBottom));\r\n }\r\n else {\r\n return ((elementTop <= pageBottom) && (elementBottom >= pageTop));\r\n }\r\n },\r\n\r\n isElementBelowView: function (element) {\r\n var pageTop = jQuery(window).scrollTop();\r\n var pageBottom = pageTop + jQuery(window).height();\r\n var elementTop = jQuery(element).offset().top;\r\n\r\n return elementTop > pageBottom;\r\n },\r\n\r\n isElementAboveView: function (element) {\r\n var pageTop = jQuery(window).scrollTop();\r\n var elementTop = jQuery(element).offset().top;\r\n var elementBottom = elementTop + jQuery(element).height();\r\n\r\n return elementBottom < pageTop;\r\n }\r\n\r\n};\r\nexport default new McUtils();\r\n","import { AjaxRenderingEngine } from '@scripts/ajax-render-engine';\r\nimport '@scripts/ViewModels/variant/ajax-variant-selector.js';\r\n\r\nexport default new (function ($) {\r\n 'use strict';\r\n\r\n this.vm = function (id) {\r\n var self = this;\r\n self.id = \"#\" + id;\r\n \r\n self.service = new WebApiService(\"FieldRenderer\"); \r\n self.vs = new mcWeb.ajaxVariantSelector.vm(self); \r\n self.avsInitialised = false;\r\n self.load = function(data, settings){ \r\n \r\n };\r\n\r\n self.init = function(data){\r\n self.currentAreaName = data.areaName; \r\n self.currentNodeId = data.nodeId;\r\n self.width = 400;\r\n if(self.id === '#lightbox-placeholder'){ \r\n self.popupEvent = mcWeb.lightbox.events.onShowLightbox;\r\n self.currentPlacement = \"c\";\r\n }\r\n else {\r\n self.popupEvent = mcWeb.slideOverBox.events.onShowLightbox;\r\n self.currentPlacement = \"rhs\";\r\n }\r\n };\r\n\r\n self.show = function( plid, manufacturerId) {\r\n var param = {\r\n NodeId: self.currentNodeId,\r\n Width: self.width,\r\n ManufacturerId: manufacturerId,\r\n ActivePlid: plid,\r\n Placement: self.currentPlacement,\r\n AreaName : self.currentAreaName \r\n };\r\n\r\n self.service.PostAction(\"RenderQuickview\", param).then(\r\n function(result) {\r\n if (result != null && result.Success) {\r\n var container = $(self.id);\r\n if (container != null && container != undefined) {\r\n container.html(result.Content);\r\n AjaxRenderingEngine.refineInsertedContent(container, result);\r\n //todo: finn riktig klasse å bruke her. avhenger av hvilken popup?\r\n //mangler å kjøre royal-slider for resultatet. Må gjøres for å få fram bilder osv.\r\n var popupParam = {\r\n css: \"d4-popup d4-popup-quickview\",\r\n callback: function () {\r\n var thumbs = {//todo: get from settings?\r\n spacing: 10,\r\n orientation: 'horizontal',\r\n autoCenter: false\r\n };\r\n var navigationMethod = 'bullets';//todo: get from settings?\r\n InitializeRoyalSliderForPreview(null, null, null, 'div.d4-preview', thumbs, navigationMethod);\r\n self.vs.bind();\r\n self.vs.reinit();\r\n }\r\n }\r\n PubSub.publish(self.popupEvent, popupParam);\r\n }\r\n }\r\n else {\r\n //hide slideoverbox or lightbox\r\n if (self.currentPlacement == \"rhs\") {\r\n PubSub.publish(\"mcWeb.slideOverBox.onHideLightbox\");\r\n }\r\n else {\r\n PubSub.publish(\"mcWeb.lightbox.onHideLightbox\");\r\n }\r\n }\r\n })\r\n };\r\n };//end vm\r\n})(jQuery);\r\n\r\n\r\nfunction InitializeRoyalSliderForPreview(optionChangesXS, optionChangesSM, optionChangesMD, containerClass, thumbnailSettings, navigationMethod) {\r\n jQuery(function () {\r\n\r\n var optionsXS = {\r\n controlNavigation: 'bullets',\r\n keyboardNavEnabled: true,\r\n numImagesToPreload: 1,\r\n navigateByClick: false,\r\n arrowsNav: false,\r\n imageScaleMode: 'fit',\r\n thumbs: false,\r\n video: {\r\n disableCSS3inFF: false\r\n },\r\n fullscreen: {\r\n enabled: false\r\n }\r\n };\r\n\r\n var optionsSM = {\r\n controlNavigation: 'bullets',\r\n keyboardNavEnabled: true,\r\n numImagesToPreload: 1,\r\n navigateByClick: false,\r\n imageScaleMode: 'fit',\r\n thumbs: false,\r\n video: {\r\n disableCSS3inFF: false\r\n },\r\n fullscreen: {\r\n enabled: false\r\n }\r\n };\r\n\r\n var thumbs = {\r\n spacing: 10,\r\n orientation: 'vertical',\r\n autoCenter: false\r\n };\r\n if (thumbnailSettings != undefined && thumbnailSettings != null) {\r\n thumbs = thumbnailSettings;\r\n }\r\n var controlNavigation = 'thumbnails';\r\n\r\n if (navigationMethod != undefined && navigationMethod != null) {\r\n controlNavigation = navigationMethod;\r\n }\r\n\r\n var optionsMD = {\r\n controlNavigation: controlNavigation,\r\n keyboardNavEnabled: true,\r\n numImagesToPreload: 1,\r\n navigateByClick: false,\r\n imageScaleMode: 'fit',\r\n thumbs: thumbs,\r\n video: {\r\n disableCSS3inFF: false\r\n },\r\n fullscreen: {\r\n enabled: false\r\n }\r\n };\r\n\r\n jQuery.extend(optionsXS, optionChangesXS);\r\n jQuery.extend(optionsSM, optionChangesSM);\r\n jQuery.extend(optionsMD, optionChangesMD);\r\n\r\n var options = {};\r\n switch (mcWeb.responsive.getScreenSize()) {\r\n case 'xs':\r\n options = optionsXS;\r\n break;\r\n case 'sm':\r\n options = optionsSM;\r\n break;\r\n default:\r\n options = optionsMD;\r\n break;\r\n }\r\n\r\n var slider = jQuery(containerClass + \" .prod-image-slider\");\r\n var rs = slider.royalSlider(options).data('royalSlider');\r\n slider.prepend(slider.find('.rsNav'));\r\n });\r\n}\r\n\r\n////Bind viewmodel for two quickviews, one for center and one for rhs\r\n//loadModule(mcWeb.quickview, 'slideover-placeholder', 'slideover-placeholder', null, null,true);\r\n//loadModule(mcWeb.quickview, 'lightbox-placeholder', 'lightbox-placeholder', null, null,true);\r\n","mcWeb.ajaxVariantSelector = new (function ($) {\r\n\t'use strict';\r\n\r\n var obj = this;\r\n obj.view;\r\n\r\n obj.getModule = function(me){\r\n var myContainer = $(me).closest('.ajax-vsc');\r\n var myId = $(myContainer).data(\"v-unique-id\");\r\n var myModule = mcWeb.ajaxVariantSelector.instances[myId];\r\n\r\n return myModule;\r\n };\r\n \r\n \r\n\r\n this.vm = function(parent){\r\n obj.view = parent;\r\n\r\n var self = this;\r\n self.id = parent.id+\"-avs\";\r\n self.parentId = parent.id;\r\n self.initialised = false;\r\n self.storeSelectionInBrowser = false;\r\n\t self.service = new WebApiService(\"ProductVariant\");\r\n self.subscriptionsAdded = false;\r\n self.isVariantMother = false;\r\n self.load = function(data,settings){};\r\n\r\n self.registerModule = function(){\r\n var myContainer = $(self.parentId);\r\n $(myContainer).addClass(\"ajax-vsc\");\r\n $(myContainer).attr('data-v-unique-id',self.id);\r\n\r\n if (mcWeb.ajaxVariantSelector.instances == undefined)\r\n mcWeb.ajaxVariantSelector.instances = [];\r\n\r\n mcWeb.ajaxVariantSelector.instances[self.id] = self;\r\n };\r\n\r\n self.bind = function(data){\r\n if (!self.initialised) {\r\n self.variantType1Id = null;\r\n self.variantType2Id = null;\r\n\r\n if(data !== undefined){\r\n if(data.storeInBrowser){\r\n self.storeSelectionInBrowser = true;\r\n }\r\n\r\n if (data.loadSelectedValuesFromDOM) {\r\n var domAttr1 = jQuery('.variant-selector-container .v-container.active[data-variant-type=\"1\"]');\r\n if (domAttr1.length > 0) {\r\n self.variantType1Id = jQuery(domAttr1[0]).data('attributeValueId');\r\n }\r\n\r\n var domAttr2 = jQuery('.variant-selector-container .v-container.active[data-variant-type=\"2\"]');\r\n if (domAttr2.length > 0) {\r\n self.variantType2Id = jQuery(domAttr2[0]).data('attributeValueId');\r\n }\r\n }\r\n\r\n if(obj.view.isVariantMother()){\r\n self.isVariantMother = true;\r\n }\r\n if(obj.view.motherPlid != undefined){\r\n self.motherPlid = obj.view.motherPlid();\r\n }\r\n \r\n }\r\n\r\n self.registerModule();\r\n self.initialised = true;\r\n }\r\n };\r\n self.reinit = function(){\r\n if(self.storeSelectionInBrowser){\r\n self.restoreDataFromLocalStorage(self.motherPlid);\r\n }\r\n //todo: refresh classes in html based on data found on self\r\n if(self.variantType1Id !== undefined && self.variantType1Id !== null && self.variantType1Id >=0){\r\n if(self.variantType2Id !== undefined && self.isVariantMother ){\r\n //lets highlight the correct variant of type 1 and so on, which will try to do by using the selectVariant method for the selected attribute\r\n var variantTypeToActivate = $(self.parentId).find(\".v-container[data-attribute-value-id=\"+ self.variantType1Id+\"]\")[0];\r\n if(variantTypeToActivate != undefined && variantTypeToActivate != null)\r\n self.selectVariant(variantTypeToActivate)\r\n }\r\n }\r\n };\r\n\r\n self.selectVariant = function(me){\r\n\r\n var $me = $( $(me).find(\"a[data-attribute-value-id]\")[0]);\r\n\r\n if(!self.subscriptionsAdded){\r\n //we need to reset this info when the lightbox is closed\r\n PubSub.subscribe(mcWeb.lightbox.events.onHideLightbox, function () {\r\n self.variantType1Id = null;\r\n self.variantType2Id = null;\r\n\r\n });\r\n self.subscriptionsAdded = true;\r\n }\r\n\r\n var variantType =$me.data('variant-type');\r\n var attributeValueId = $me.data('attribute-value-id');\r\n var valueActive = $me.data('active');\r\n var otherAttributeValueId = null;\r\n var motherPlid =$me.data('mother-plid');\r\n var myContainer = $me.closest('.variant-selector-container');\r\n var variantTypeCount = myContainer.data('variant-types');\r\n var removeOldSelected = false;\r\n if(variantType == 1){\r\n if(self.variantType1Id != null && (self.variantType2Id == null || self.variantType2Id == -1 )){\r\n //must reset selected class for attrib 1\r\n removeOldSelected = true;\r\n }\r\n self.variantType1Id = attributeValueId;\r\n otherAttributeValueId = self.variantType2Id;\r\n }\r\n else{\r\n if((self.variantType2Id != null && self.variantType1Id == null ) || self.variantType2Id == -1){\r\n //must reset selected class for attrib 2\r\n removeOldSelected = true;\r\n }\r\n self.variantType2Id = attributeValueId;\r\n otherAttributeValueId = self.variantType1Id;\r\n }\r\n \r\n if(self.storeSelectionInBrowser){\r\n self.updateLocalStorage(motherPlid);\r\n }\r\n\r\n // if(valueActive){\r\n if(((otherAttributeValueId != null && otherAttributeValueId != -1 )|| variantTypeCount == 1 ) && attributeValueId != null ){\r\n self.getChildPlidAction(motherPlid, self.variantType1Id, self.variantType2Id, variantType)\r\n .then(function(result){\r\n if(result && result.Success){\r\n obj.view.show(result.Plid,0);\r\n }\r\n else{\r\n console.log(result.Message);\r\n }\r\n }); \r\n }else{\r\n //the other value has not been set yet\r\n //remove highlighting of already hightlighted item\r\n self.setupOtherVariantType(removeOldSelected, $me, motherPlid, attributeValueId, variantType);\r\n //update showing of selected variant, if needed\r\n\r\n var myHeadingPch = myContainer.find(\".vsc-heading-value\");\r\n if(myHeadingPch.length > 0)\r\n {\r\n var attribName = $me.data(\"value-name\");\r\n myHeadingPch[0].innerText = attribName;\r\n }\r\n }\r\n //}\r\n //else{\r\n //}\r\n \r\n };\r\n \r\n\r\n self.updateLocalStorage = function(plid){\r\n window.StorageService.localStorage.setItem('mcWeb.ajaxVariantSelector.variantType1_'+plid,self.variantType1Id);\r\n window.StorageService.localStorage.setItem('mcWeb.ajaxVariantSelector.variantType2_'+plid,self.variantType2Id);\r\n };\r\n\r\n self.restoreDataFromLocalStorage = function (plid) {\r\n if (self.isVariantMother) {\r\n self.variantType2Id = -1;\r\n self.variantType1Id = -1;\r\n }\r\n else {\r\n var tmp = window.StorageService.localStorage.getItem('mcWeb.ajaxVariantSelector.variantType1_' + plid);\r\n if (tmp != undefined)\r\n self.variantType1Id = tmp;\r\n\r\n\r\n tmp = window.StorageService.localStorage.getItem('mcWeb.ajaxVariantSelector.variantType2_' + plid);\r\n if (tmp != undefined)\r\n self.variantType2Id = tmp;\r\n }\r\n };\r\n\r\n self.setupOtherVariantType = function(removeOldSelected, $me, motherPlid, attributeValueId,variantType){\r\n //the other value has not been set yet\r\n //remove highlighting of already hightlighted item\r\n if(removeOldSelected)\r\n {\r\n $(\".variant-selector-container .v-container\").removeClass(\"active\");\r\n }\r\n //secondly highlight the selected item\r\n //todo: remove all highlighting from liste of the other variants\r\n\r\n var myContainer = $me.closest('.v-container');\r\n $(myContainer).addClass('active');\r\n //if the container is part of a dropdown, we need to change the text from attribute to attributevalue\r\n if($(myContainer).parent().hasClass(\"dropdown-menu\")){\r\n var myButton =$(myContainer).parent().parent().find(\"button.dropdown-toggle\");\r\n var myImgPlch = $(myButton).find(\".color-preview-box-pch\");\r\n var myColour = $(myContainer).find(\".color-preview-box\").clone();\r\n if(myColour.length > 0 && myImgPlch.length > 0){\r\n $(myImgPlch[0]).html(myColour);\r\n }\r\n var textContainer =$(myButton).find(\"span.ddl-button-span\");\r\n var itemContainer = $(myContainer).find(\"a[data-mother-plid]\");\r\n \r\n var itemText = $(itemContainer).prop(\"title\");\r\n textContainer[0].innerText =itemText;\r\n }\r\n\r\n\r\n self.getInactiveAttributeValuesAction(motherPlid, attributeValueId, variantType).then(function(result){\r\n if (result && result.Success) {\r\n var otherVariantType = 2;\r\n if (variantType === 2)\r\n otherVariantType = 1;\r\n\r\n if (result.SingleAvailableAttributeValueId !== null) {\r\n jQuery(`.variant-container [data-variant-types=2] [data-attribute-value-id=${result.SingleAvailableAttributeValueId}][data-variant-type=${otherVariantType}]`).click()\r\n }\r\n\r\n if (result.AttributeValueIds != null) {\r\n \r\n //active all varianttypes\r\n $(\".v-container[data-variant-type=\" + otherVariantType +\"]\").removeClass(\"disabled\");//data-variant-type mangler i container div\r\n $(\".v-container[data-variant-type=\" + otherVariantType +\"]\").addClass(\"activated\");\r\n\r\n //deactivate those that should not be acctive\r\n for(var i = 0; i < result.AttributeValueIds.length; i++){\r\n //må få inn data-attribute-value-id inn på div rundt a-taggen, og så kan vi finne de for å legge til inaktiv status\r\n var itemToDisable = $(\".v-container[data-variant-type=\" + otherVariantType +\"][data-attribute-value-id=\" + result.AttributeValueIds[i]+ \"]\");\r\n itemToDisable.addClass(\"disabled\");\r\n itemToDisable.removeClass(\"activated\");\r\n itemToDisable.find(\"a\").prop('title',result.InfoMsg);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n\r\n self.getChildPlidAction = function(motherPlid, attributeValueId1, attributeValue2Id, lockedVariantType){\r\n var param = {\r\n MotherPlid : motherPlid,\r\n AttributeValueId1: attributeValueId1,\r\n AttributeValueId2: attributeValue2Id,\r\n LockedVariantType: lockedVariantType\r\n };\r\n\r\n return self.service.PostAction(\"GetVariantChildPlidAsync\", param);\r\n };\r\n\r\n //gives us a liste of attributevaluesids from the variant that are not available for the given attribute type\r\n self.getInactiveAttributeValuesAction = function(motherPlid, selectedAttributeValueId, attributeType){\r\n var param = {\r\n MotherPlid : motherPlid,\r\n AttributeValueId: selectedAttributeValueId,\r\n VariantType: attributeType\r\n };\r\n\r\n return self.service.PostAction(\"GetInactiveAttributeValues\",param);\r\n };\r\n \r\n //show the variant-selector since it is now ready\r\n if(parent.id === '#PanelProductInfo'){\r\n jQuery(parent.id).addClass(\"variant-ready\");\r\n }\r\n };\r\n})(jQuery);","\r\nimport McUtils from '@scripts/McUtils';\r\nimport Quickview from '@scripts/ViewModels/quickview';\r\n\r\nexport const AjaxRenderingEngineEventTypes = {\r\n onFieldContentChanged: \"AjaxRenderingEngine.onFieldContentChanged\",\r\n onNewAreasShown: \"AjaxRenderingEngine.onNewAreasShown\",\r\n onPopupReady: \"AjaxRenderingEngine.onPopupReady\",\r\n onPopupFilterChanged: \"AjaxRenderingEngine.onPopupFilterChanged\",\r\n onAjaxRenderingLoaded: \"AjaxRenderingEngine.onAjaxRenderingLoaded\",\r\n onKnockoutRenderingCompleted: \"AjaxRenderingEngine.onKnockoutRenderingCompleted\",\r\n onPriceRefreshRequested: \"AjaxRenderingEngine.onPriceRefreshRequested\",\r\n onPushProductsIntoField: \"AjaxRenderingEngine.onPushProductsIntoField\",\r\n onClearFieldFilter: \"AjaxRenderingEngine.onClearFieldFilter\",\r\n onFieldsRefresh: \"AjaxRenderingEngine.onFieldsRefresh\",\r\n onFilterLoadRequested: \"AjaxRenderingEngine.onFilterLoadRequested\",\r\n onAddNewAreaContent: \"AjaxRenderingEngine.onAddNewAreaContent\",\r\n onReloadFieldByListingType: \"AjaxRenderingEngine.onReloadFieldByListingType\"\r\n};\r\n\r\nexport const AjaxRenderingEngine = new (function AjaxRenderingEngine($) {\r\n PubSub.subscribe(AjaxRenderingEngineEventTypes.onAddNewAreaContent, function (message, data) {\r\n jQuery('#A' + data.AreaId).html(data.Content);\r\n self.updateFields('#A' + data.AreaId +' .ajax-field', \"#AttributeListBox\", false, false, false, 0); \r\n });\r\n\r\n var self = this;\r\n self.service = new WebApiService(\"AreaRenderer\");\r\n self.filterService = new WebApiService(\"AttributeFilter\");\r\n self.fieldRenderService = new WebApiService(\"FieldRenderer\");\r\n self.statsService = new WebApiService(\"Stats\");\r\n self.imageService = new WebApiService(\"ImageRenderer\");\r\n self.deviceSize = \"\";\r\n self.currentSlideshow = null;\r\n self.allowUseOfProductCache = true;\r\n self.currentField = null;\r\n self.PreviewProduktLagerId = null;\r\n self.scrollEventIsRegistered = false;\r\n self.scrollEventFieldIsRegistered = false;\r\n self.scrollEventFooterIsRegistered = false;\r\n self.HasMorePages = false;\r\n self.PagingMode = 1;\r\n self.LoadingFromScroll = false;\r\n self.fieldsReadyToLoad = [];\r\n self.leftSideFieldsReadyToLoad = [];\r\n self.lazyLoadFieldSetupDone = false;\r\n self.footerObserver = null;\r\n self.IntersectionObserveAllowed = ('IntersectionObserver' in window);\r\n self.AutoScrolledPages = 0;\r\n self.InitialPageNumber = 1;\r\n self.CurrentPageNumber = 1;\r\n self.HighestPageNumberSeen = 1;\r\n self.LowestPageNumberSeen = 1;\r\n self.InitialLoadDone = false;\r\n self.subscriptionsInitialised = false;\r\n self.PrevPagingLoaded = false;\r\n self.myScrollToElement = null;\r\n self.currentArticleId = 0;\r\n self.CheckStatistics = false;\r\n self.ListingTypeGrid = false;\r\n self.lightBoxIsOpen = false;\r\n self.slideOverBoxIsOpen = false;\r\n self.attributeFilterInitiated = false;\r\n self.rhsQuickview = new Quickview.vm('slideover-placeholder');\r\n self.centerQuickview = new Quickview.vm('lightbox-placeholder');\r\n self.currentSearchKeyword = \"\";\r\n self.finishedLoadingFieldsAbove = false;\r\n self.fieldUpdateInProgress = false;\r\n self.placeholderDict = {};\r\n self.publishMode = false;\r\n this.load = function () {\r\n if (jQuery('body.listtype-grid').length > 0) {\r\n self.ListingTypeGrid = true;\r\n }\r\n\r\n jQuery(\"div.HeaderPublishAreaContainer .load-later\").each(function (index, item) {\r\n\r\n jQuery(item).removeClass(\"load-later\");\r\n jQuery(item).addClass(\"load-first\");\r\n });\r\n\r\n self.publishMode = ($(\"body.publish-mode\").length > 0);\r\n\r\n var pageParam = self.getParameterByName('pageID');\r\n if (pageParam.length > 0) {\r\n self.InitialPageNumber = parseInt(pageParam);\r\n self.CurrentPageNumber = self.InitialPageNumber;\r\n self.HighestPageNumberSeen = self.InitialPageNumber;\r\n self.LowestPageNumberSeen = self.InitialPageNumber;\r\n\r\n }\r\n var articleIdentifier = jQuery(\"div#current-article-id\");\r\n if (articleIdentifier.length > 0) {\r\n self.currentArticleId = jQuery(articleIdentifier[0]).data(\"current-article\");\r\n }\r\n\r\n self.CheckStatistics = (\r\n window.D4AiActive !== undefined &&\r\n window.D4AiActive &&\r\n window.D4AiRegisterStats !== undefined &&\r\n window.D4AiRegisterStats);\r\n\r\n var loadFirstParams = {\r\n targetKey: \"div.load-first .ajax-field.not-loaded\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n\r\n var loadSecond = {\r\n targetKey: \"div.load-later .web-pub-field[data-popup='0'] .ajax-field.loaded[data-sf='0'][data-field-is-productlist='1']\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: true,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n\r\n var loadLeftSideParams = {\r\n targetKey: \"div.load-left .ajax-field.not-loaded\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n\r\n\r\n var loadLaterParams = {\r\n targetKey: \"div.load-later .web-pub-field[data-popup='0'] .ajax-field.not-loaded[data-sf='0']:not(.menu-container div.load-later .web-pub-field[data-popup='0'] .ajax-field.not-loaded[data-sf='0'])\", \r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n\r\n var loadLaterWithFilterParams = {\r\n targetKey: \"div.load-later .web-pub-field[data-popup='0'] .ajax-field.not-loaded[data-sf='1']:not(.menu-container div.load-later .web-pub-field[data-popup='0'] .ajax-field.not-loaded[data-sf='1'])\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n\r\n var loadPopupParams = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup='1']\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 1,\r\n nextPageNumber: 0\r\n };\r\n \r\n if (jQuery(\".ProductMenu\").css(\"order\") === 1) {\r\n self.unhideProductMenu();//do not wait for attributes are loaded when order is 1\r\n }\r\n\r\n self.fieldsToLoad = [];\r\n self.fieldsToLoad.push(loadFirstParams);\r\n self.fieldsToLoad.push(loadSecond);\r\n self.fieldsToLoad.push(loadLeftSideParams);\r\n self.fieldsToLoad.push(loadLaterParams);\r\n self.fieldsToLoad.push(loadLaterWithFilterParams);\r\n\r\n self.firstPageViewPopup = loadPopupParams;\r\n self.updateContentForPreloadedFields();\r\n\r\n self.runUpdateFields();\r\n\r\n self.updateSelectedAttributeListVisibility();\r\n PubSub.publish(AjaxRenderingEngineEventTypes.onAjaxRenderingLoaded);\r\n\r\n if (jQuery(window).scrollTop() === 0)\r\n self.finishedLoadingFieldsAbove = true;\r\n\r\n };\r\n\r\n \r\n\r\n this.getQuickview = function (placement) {\r\n if (placement === \"rhs\")\r\n return self.rhsQuickview;\r\n else return self.centerQuickview;\r\n };\r\n\r\n\r\n this.openQuickView = function (nodeid, plid, manufacturerid, placement, areaname, me) {\r\n if (me !== undefined) {\r\n //check if we can use the given placement\r\n var myCenteredPopup = jQuery(me).closest(\"#center-popup\");\r\n if (placement == 'c' && myCenteredPopup.length > 0) {\r\n //the popup would normalle be shown in center, but right now the ad is already shown in center,\r\n //so lets use the rhs instead\r\n placement = 'rhs';\r\n }\r\n else if (placement === 'rhs' && jQuery(me).closest(\"#rhs-popup\").length > 0) {\r\n placement = 'c';\r\n }\r\n }\r\n var quickview = self.getQuickview(placement);\r\n quickview.init({ areaName: areaname, nodeId: nodeid });\r\n quickview.show(plid, manufacturerid);\r\n };\r\n\r\n\r\n\r\n this.loadNextPage = function () {\r\n self.updateFields(\"div.load-later .ajax-field.not-loaded[data-field-is-productlist='1']\", \"#AttributeListBox\", true, false, false, 0, true);\r\n };\r\n\r\n this.loadPrevPage = function () { \r\n\r\n var prevPageNumber = self.CurrentPageNumber - 1;\r\n if (prevPageNumber < 1) {\r\n //we're already on the first page, so we just stop processing\r\n return;\r\n }\r\n self.updateFields(\"div.load-later .ajax-field.not-loaded[data-field-is-productlist='1']\", \"#AttributeListBox\", true, false, false, 0, prevPageNumber);\r\n };\r\n\r\n this.reloadPageCallback = function (fieldIds) {//receives array with fieldids to update\r\n if (self.fieldsToLoad === undefined)\r\n self.fieldsToLoad = [];\r\n\r\n if (fieldIds == undefined || fieldIds.length == 0) {\r\n self.updateFields(\".ajax-field.not-loaded\", \"#AttributeListBox\", false, false, false, 0, 0);\r\n } else {\r\n if (isNaN(fieldIds)) {\r\n for (var i = 0; i < fieldIds.length; i++) {\r\n var params = {\r\n targetKey: \".field-container-\" + fieldIds[i] + \" div.ajax-field\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n if (jQuery(params.targetKey).length > 0)\r\n self.fieldsToLoad.push(params);\r\n }\r\n } else {\r\n var params = {\r\n targetKey: \".field-container-\" + fieldIds + \" div.ajax-field\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: 0,\r\n nextPageNumber: 0\r\n };\r\n if (jQuery(params.targetKey).length > 0)\r\n self.fieldsToLoad.push(params);\r\n }\r\n self.runUpdateFields();\r\n }\r\n };\r\n\r\n ////moved\r\n this.reloadAllLinkedFields = function () { \r\n getLibrary(\"renderEngineExtras\").then(() => { reloadAllLinkedFieldsExtra(self) });\r\n };\r\n\r\n //find a single element on the page, ask the server to render it again, and then swap it out for the new one\r\n this.reloadSingleElement = function (nodeId, activePlid, area, fieldId, element) { //TODO: MOVE, move to separate publisher-only file\r\n getLibrary(\"renderEngineExtras\").then(() => {\r\n reloadSingleElement(self, nodeId, activePlid, area, fieldId, element);\r\n });\r\n };\r\n\r\n this.reloadLightboxFields = function () {\r\n self.updateFields(\".modal-content .ajax-field.not-loaded\", \"#AttributeListBox\", false, false, false, 0);\r\n };\r\n\r\n this.reloadFieldByListingType = function (listingtype) {\r\n self.reloadFromCallbackActive = true;\r\n self.updateFields(\".ajax-field[data-listing-type=\" + listingtype + \"]\", \"#AttributeListBox\", false, false, false, 0, 0);\r\n };\r\n PubSub.subscribe(AjaxRenderingEngineEventTypes.onReloadFieldByListingType, function (msg, listingType) {\r\n self.reloadFieldByListingType(listingType);\r\n });\r\n\r\n\r\n this.reloadProductListField = function () {\r\n self.resetAutoScrolledPages();\r\n self.updateFields(\".ajax-field[data-field-is-productlist='1']\", \"#AttributeListBox\", true, false, false, 0, 0);\r\n };\r\n\r\n this.reloadInstantSearchPreview = function (plid) {\r\n self.PreviewProduktLagerId = plid;\r\n self.updateFields(\".InstantSearch .d4-instant-search-loadbyajax .ajax-field\",\r\n \"\",\r\n false,\r\n true,\r\n false,\r\n 0,\r\n false);\r\n }\r\n\r\n\r\n this.setListingType = function (listingAsGrid) {\r\n self.ListingTypeGrid = listingAsGrid;\r\n if (listingAsGrid) {\r\n jQuery('body').addClass('.listtype-grid');\r\n jQuery('body').removeClass('.listtype-list');\r\n var fieldContentContainer = jQuery('.ajax-field.inner-layout-container[data-area-id=\"CenterContentDynamicProdListAlternate\"]');\r\n var fieldContainer = fieldContentContainer.closest(\".web-pub-field\");\r\n var fieldSorters = fieldContainer.children(\".FieldSorter\");\r\n if (fieldSorters.length > 0) {\r\n fieldSorters.each(function (index, item) {\r\n $(item).html('');\r\n });\r\n }\r\n jQuery('.ajax-field.inner-layout-container.not-loaded[data-area-id=\"CenterContentDynamicProdListAlternate\"]').html('');\r\n } else {\r\n jQuery('body').addClass('.listtype-list');\r\n jQuery('body').removeClass('.listtype-grid');\r\n var fieldContentContainer = jQuery('.ajax-field.inner-layout-container[data-area-id=\"CenterContentDynamicAdList\"]');\r\n var fieldContainer = fieldContentContainer.closest(\".web-pub-field\");\r\n var fieldSorters = fieldContainer.children(\".FieldSorter\");\r\n if (fieldSorters.length > 0) {\r\n fieldSorters.each(function (index, item) {\r\n $(item).html('');\r\n });\r\n }\r\n jQuery('.ajax-field.inner-layout-container[data-area-id=\"CenterContentDynamicAdList\"]').html('');\r\n }\r\n\r\n var newUrl = self.getCurrentFirstPage();\r\n self.CurrentPageNumber = 1;\r\n window.history.pushState(newUrl, '', newUrl);\r\n };\r\n\r\n \r\n this.SetAllowedUseOfProductCache = function (val) {\r\n self.allowUseOfProductCache = val;\r\n };\r\n\r\n this.reloadPageListingOnlyCallback = function (skipFilter) {\r\n self.reloadFromCallbackActive = true;\r\n var doSkipFilter = true;\r\n if (skipFilter !== undefined)\r\n doSkipFilter = skipFilter\r\n self.updateFields(\".ajax-field[data-field-is-productlist='1']\", \"#AttributeListBox\", true, doSkipFilter, false, 0);\r\n };\r\n\r\n\r\n this.reloadForPublisher = function (newDeviceSize) {\r\n if (newDeviceSize)\r\n self.deviceSize = newDeviceSize;\r\n\r\n self.updateFields(\".ajax-field.not-loaded\", \"#AttributeListBox\", false, false, false, 0);\r\n };\r\n\r\n this.reloadFields = function (parentIdentifier) {\r\n self.addRemainingFieldsToDom();\r\n self.reloadFromCallbackActive = true;\r\n self.updateFields(parentIdentifier + \" .ajax-field\", \"#AttributeListBox\", false, false, false, 0, 0);\r\n };\r\n\r\n this.ChangeSortType = function (dropDownControl) {\r\n var cont = jQuery(dropDownControl);\r\n\r\n McAjaxRequest('/WebPages/Extras/SessionStateApi.aspx', 'ChangeSort', cont.val(), self.reloadPageCallback);\r\n };\r\n\r\n this.ToggleGroupVariants = function (obj) {\r\n getLibrary(\"renderEngineExtras\").then(() => { toggleGroupVariants(self, obj); }); \r\n };\r\n\r\n this.ToggleStockMode = function (obj) {\r\n getLibrary(\"renderEngineExtras\").then(() => { toggleStockMode(self, obj); }); \r\n };\r\n\r\n this.ToggleStockModeFjernlager = function (obj) {\r\n getLibrary(\"renderEngineExtras\").then(() => { toggleStockModeFjernlager(self, obj); }); \r\n };\r\n\r\n this.getParameterByName = function (name) {\r\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^]*)\"),\r\n results = regex.exec(location.search);\r\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n }\r\n\r\n\r\n this.addFieldToArea = function (areaName, fieldId, nodeId) {//todo: move to publisher script\r\n getLibrary(\"renderEngineExtras\").then(() => { addFieldToAreaExtra(self, areaName, fieldId, nodeId); }); \r\n };\r\n this.replaceField = function (fieldId, nodeId, isEdm) {\r\n getLibrary(\"renderEngineExtras\").then(() => { replaceFieldExtra(self, fieldId, nodeId, isEdm); }); \r\n };\r\n\r\n $.fn.scrollView = function (offset) {\r\n return this.each(function () {\r\n if (offset == undefined)\r\n offset = 0;\r\n\r\n $('html, body').animate({\r\n scrollTop: $(this).offset().top + offset\r\n }, 1000);\r\n });\r\n }\r\n\r\n this.getCurrentFirstPage = function () {\r\n getLibrary(\"renderEngineExtras\").then(() => { RemovePageNumberFromLink(document.location.href); });\r\n }\r\n \r\n this.addValueToQueryString = function (me, attributeId, attributeValueId) {\r\n getLibrary(\"renderEngineExtras\").then(() => { addValueToQueryStringExtra(self, me, attributeId, attributeValueId); }); \r\n };\r\n \r\n\r\n this.updateSelectedAttributeListVisibility = function () {\r\n var searchLoc = decodeURIComponent(self.getParameterByName('Filter'));\r\n if (searchLoc.length <= 0) {\r\n jQuery(\"div.SelectedAttributeBox .filter-selection-container\").addClass(\"hide\");\r\n }\r\n else {\r\n jQuery(\"div.SelectedAttributeBox .filter-selection-container\").removeClass(\"hide\");\r\n }\r\n };\r\n \r\n\r\n this.doScrollToNextPage = function (element) {\r\n self.resetAutoScrolledPages();\r\n return self.scrollToNextPage(element);\r\n };\r\n\r\n\r\n this.scrollToNextPage = function (element) {\r\n getLibrary(\"renderEngineExtras\").then(() => { scrollToNextPageExtra(self, element); }); \r\n return false;\r\n };\r\n \r\n\r\n this.navigateToPage = function (element) {\r\n try {\r\n var url = element.getAttribute(\"href\");\r\n var title = element.getAttribute(\"title\");\r\n window.history.pushState(url, document.title + ' - ' + title, url);\r\n scrollViewToTopOfPage(500);\r\n self.updateFields(\".ajax-field\", \"#AttributeListBox\", true, true, false, 0); //todo: check that we're actually only changing page, because otherwise we need to set the param doNotRenderFilter to false\r\n return false; //indicate navgiation is complete\r\n } catch (e) {\r\n return true; //must navigate using the link\r\n }\r\n };\r\n\r\n \r\n\r\n this.fetchAttributeValues = function (attributeId, target, targetId, nodeId, fieldId) {\r\n getLibrary(\"renderEngineExtras\").then(() => { fetchAttributeValuesExtra(self, attributeId, targetId, nodeId, fieldId); }); \r\n };\r\n \r\n\r\n this.hidePaging = function () {\r\n var pagingTag = jQuery('.field-paging-container');\r\n jQuery(pagingTag).addClass('hidden');\r\n };\r\n this.showPagingContainer = function () {\r\n var pagingTag = jQuery('.field-paging-container');\r\n jQuery(pagingTag).removeClass('hidden');\r\n };\r\n\r\n this.showPageLoadingIcon = function () {\r\n var pagingTag = jQuery('.field-paging-next');\r\n jQuery(pagingTag).addClass('hidden');\r\n var loadingTag = jQuery('.field-paging-loading');\r\n jQuery(loadingTag).removeClass('hidden');\r\n };\r\n\r\n this.hidePageLoadingIcon = function () {\r\n var pagingTag = jQuery('.field-paging-next');\r\n jQuery(pagingTag).removeClass('hidden');\r\n var loadingTag = jQuery('.field-paging-loading');\r\n jQuery(loadingTag).addClass('hidden');\r\n };\r\n\r\n this.runUpdateFields = function () {\r\n if (self.fieldsToLoad != undefined && self.fieldsToLoad.length > 0) {\r\n var param = self.fieldsToLoad.shift();\r\n self.updateFields(param.targetKey,\r\n param.filterTargetKey,\r\n param.onlyUpdateProductList,\r\n param.doNotRenderFilter,\r\n param.useDummyData,\r\n param.popupFilter,\r\n param.nextPageNumber);\r\n }\r\n };\r\n\r\n\r\n this.refreshPriceCache = function () {\r\n self.service.PostAction(\"ClearPriceCaches\").then(function (result) {\r\n\r\n });\r\n };\r\n\r\n this.updateFields = function (targetKey, filterTargetKey, onlyUpdateProductList, doNotRenderFilter, useDummyData, popupFilter, nextPageNumber) {\r\n //todo: vis venteikon\r\n var fieldsToLoad = $(targetKey);\r\n var fieldsArray = [];\r\n var queryFilterParam = self.getParameterByName(\"Filter\");\r\n var queryMinParam = self.getParameterByName(\"Min\");\r\n var queryMaxParam = self.getParameterByName(\"Max\");\r\n var pageIndex = self.getParameterByName(\"pageID\");\r\n var otherContactId = self.getParameterByName(\"kontaktid\");\r\n var getNextPage = !!nextPageNumber;\r\n var getPrevPage = false;\r\n var isInsidePopup = targetKey.indexOf(\".modal\") > -1;\r\n\r\n if (nextPageNumber !== undefined && onlyUpdateProductList) {\r\n pageIndex = nextPageNumber;\r\n }\r\n if (getNextPage) {\r\n pageIndex = nextPageNumber;\r\n\r\n if (onlyUpdateProductList && nextPageNumber < self.CurrentPageNumber) {\r\n getPrevPage = true;\r\n }\r\n self.showPageLoadingIcon();\r\n }\r\n if (self.deviceSize == \"\")\r\n self.deviceSize = mcWeb.responsive.getScreenSize();\r\n var isForInstantSearch = targetKey.indexOf(\".d4-instant-search-loadbyajax\") >= 0;\r\n var isForLeftSide = targetKey.indexOf(\".load-left\") >= 0;\r\n\r\n var fieldRequestFilter = {};\r\n var requestFilterAdded = false;\r\n var sendFilterOnly = false;\r\n for (var i = 0; i < fieldsToLoad.length; i++) {\r\n var current = $(fieldsToLoad[i]);\r\n var isProductListField = false;\r\n var areaid = current.data(\"area-id\");\r\n\r\n if (onlyUpdateProductList) {\r\n if (areaid !== \"CenterContentDynamicAdList\" && areaid !== \"CenterContentDynamicProdListAlternate\")\r\n continue;//only need to update productlist, lets skip all other fields\r\n\r\n sendFilterOnly = $(current).hasClass(\"loaded\") && !getNextPage && !self.InitialLoadDone;\r\n if (pageIndex === 0)\r\n pageIndex = self.InitialPageNumber;\r\n }\r\n\r\n if (current.parents(\".stop-ajax-rendering\").length > 0)\r\n continue;//this area is not yet ready to be rendered, it is known to be hidden.\r\n\r\n if (areaid === \"CenterContentDynamicAdList\" || areaid === \"CenterContentDynamicProdListAlternate\") {\r\n if (!self.publishMode) {\r\n if (self.ListingTypeGrid && areaid === \"CenterContentDynamicProdListAlternate\") {\r\n current.html('');//remove spinner for fields with no content\r\n continue;//only one of the areas should be updated, so skip the area that isn't used for the current listing type\r\n }\r\n else if (!self.ListingTypeGrid && areaid === \"CenterContentDynamicAdList\") {\r\n current.html('');//remove spinner for fields with no content\r\n continue;\r\n }\r\n }\r\n\r\n isProductListField = true;\r\n var filterContainer = $(filterTargetKey);\r\n if (filterContainer === undefined || filterContainer === null)\r\n return; //filter not meant to be visible\r\n\r\n filterContainer = $(filterContainer);\r\n var filterClientId = \"\";\r\n if (filterContainer != undefined &&\r\n filterContainer != null &&\r\n filterContainer.length > 0 &&\r\n filterContainer[0] != null) {\r\n filterClientId = filterContainer[0].id;\r\n } else doNotRenderFilter = true;\r\n\r\n var cacheKey = \"\";\r\n if (self.allowUseOfProductCache && pageIndex <= 1) {\r\n //if (!onlyUpdateProductList || doNotRenderFilter) //loading the page, data will have been cached when determining the visibility of fields\r\n cacheKey = current.attr(\"data-cachekey\");\r\n }\r\n\r\n fieldRequestFilter = {\r\n NodeId: current.data(\"node-id\"),\r\n Url: document.location.pathname + document.location.search,\r\n Filter: queryFilterParam,\r\n MinPrice: queryMinParam,\r\n MaxPrice: queryMaxParam,\r\n SearchString: self.getParameterByName(\"q\"),\r\n ClientId: filterClientId,\r\n PageIndex: pageIndex,\r\n FilterCacheKey: cacheKey,\r\n FilterIsJson: false,\r\n OpenAttributes: self.openAttributesList,\r\n OtherContactId: otherContactId\r\n };\r\n requestFilterAdded = true;\r\n }\r\n else if (jQuery(current).data(\"sf\") === 1) {\r\n fieldRequestFilter = {\r\n NodeId: current.data(\"node-id\"),\r\n Url: document.location.pathname + document.location.search,\r\n Filter: JSON.stringify(self.currentPopupFilter),//todo: keep a filter after # in the url?\r\n MinPrice: null,//queryMinParam, get from filter after # in url\r\n MaxPrice: null,//queryMaxParam,get from filter after # in url\r\n SearchString: '',\r\n ClientId: 'secondary-filter',\r\n PageIndex: 0,\r\n FilterCacheKey: '',\r\n FilterIsJson: self.currentPopupFilter !== undefined && self.currentPopupFilter !== null,\r\n OpenAttributes: null,\r\n OtherContactId: otherContactId\r\n };\r\n requestFilterAdded = true;\r\n }\r\n else if (!requestFilterAdded) {\r\n fieldRequestFilter = {\r\n NodeId: current.data(\"node-id\"),\r\n Url: document.location.pathname + document.location.search,\r\n Filter: '',//todo: keep a filter after # in the url?\r\n MinPrice: null,//queryMinParam, get from filter after # in url\r\n MaxPrice: null,//queryMaxParam,get from filter after # in url\r\n SearchString: self.currentSearchKeyword,\r\n ClientId: '',\r\n PageIndex: 0,\r\n FilterCacheKey: '',\r\n FilterIsJson: false,\r\n OpenAttributes: null,\r\n OtherContactId: otherContactId\r\n };\r\n if (current.data(\"filter-id\") != null && current.data(\"filter-id\") != undefined && current.data(\"filter-id\").length > 0) {\r\n fieldRequestFilter.ClientId = current.data(\"filter-id\");\r\n }\r\n requestFilterAdded = true;\r\n }\r\n\r\n if (!onlyUpdateProductList || isProductListField) {\r\n var width = self.getFieldWidth(current, isForInstantSearch);\r\n var myPlids = null;\r\n var myPlidsString = current.data('plids');\r\n if (myPlidsString != undefined && myPlidsString != null)\r\n myPlids = myPlidsString;\r\n\r\n var myPlid = current.data('plid');\r\n if (self.PreviewProduktLagerId != null) {\r\n myPlid = self.PreviewProduktLagerId;\r\n }\r\n if (targetKey != \"div.load-later .ajax-field.not-loaded[data-sf='0']\" || width > 0) {\r\n var fieldData = {\r\n Width: width,\r\n AreaName: current.data(\"area-id\"),\r\n FieldId: current.data(\"field-id\"),\r\n NodeId: current.data(\"node-id\"),\r\n ClientId: current[0].id,\r\n UseSpecificLayoutId: current.data(\"use-specific-layout\"),\r\n LayoutId: current.data('layoutid'),\r\n ManufacturerId: current.data('manufacturerid'),\r\n VariantSorting: current.data('variant-sorting'),\r\n Plid: myPlid,\r\n PlidList: myPlids,\r\n SendFilterOnly: sendFilterOnly,\r\n GroupedVariants: current.data('grouped-variants'),\r\n };\r\n fieldsArray.push(fieldData);\r\n }\r\n else {\r\n current.find(\"i.icon-spinner\").remove();\r\n }\r\n }\r\n }\r\n var skipSorter = getPrevPage;\r\n self.PreviewProduktLagerId = null;\r\n if (fieldsArray.length > 0) {\r\n self.service.PostAction(\"RenderFields\", {\r\n Data: fieldsArray, RequestFilter: fieldRequestFilter,\r\n SkipFilterRendering: doNotRenderFilter || getNextPage, UseDummyData: useDummyData, DeviceSize: self.deviceSize, GetElementsOnly: getNextPage, SkipSorter: skipSorter,\r\n CurrentArticle: self.currentArticleId, PopupFilter: popupFilter\r\n }).then(\r\n function (result) {\r\n if (result != null) {\r\n if (isForInstantSearch || self.reloadFromCallbackActive || isInsidePopup || pageIndex > 1)\r\n result.AllowDeferred = false;\r\n if (getPrevPage) {\r\n result.Prepend = true;\r\n } else {\r\n result.Prepend = false;\r\n }\r\n\r\n if (isForLeftSide)\r\n self.updateLeftSideContent(result);\r\n else self.updateFieldContent(result);\r\n\r\n if (result.EmptyFields !== null && result.EmptyFields.length > 0) {\r\n for (var i = 0; i < result.EmptyFields.length; i++) {\r\n $(\"#\" + result.EmptyFields[i]).html('');//remove spinner for fields with no content\r\n }\r\n }\r\n self.reloadFromCallbackActive = false;\r\n if (getNextPage) {\r\n pageIndex = nextPageNumber;\r\n self.hidePageLoadingIcon();\r\n }\r\n\r\n if (targetKey.indexOf(\"div.load-later\") >= 0) {\r\n if (self.InitialLoadDone == false && window.D4DeferredScripts != undefined) {\r\n setTimeout(function () {\r\n var parser = new DOMParser;\r\n var dom = parser.parseFromString(\r\n '
' + window.D4DeferredScripts,\r\n 'text/html');\r\n var decodedString = dom.body.textContent;\r\n\r\n if (window.D4SingleScript) {\r\n //we only have the path; let's use jquery to load the script\r\n jQuery.getScript(decodedString,\r\n function (data, textStatus, jqxhr) {\r\n //console.log(data); // Data returned\r\n console.log(textStatus); // Success\r\n console.log(jqxhr.status); // 200\r\n console.log(\"Load was performed.\");\r\n });\r\n } else {\r\n jQuery(\"body\").append(decodedString);\r\n }\r\n\r\n },\r\n 5);\r\n }\r\n self.setupSubscriptions();\r\n setTimeout(self.postStatistics, 250);\r\n }\r\n }\r\n\r\n if (self.fieldsToLoad != undefined && self.fieldsToLoad.length > 0) {\r\n self.runUpdateFields();\r\n } else {\r\n\r\n if (!self.InitialLoadDone) {\r\n self.setupSubscriptions();\r\n }\r\n }\r\n if (isInsidePopup) {\r\n PubSub.publish(mcWeb.lightbox.events.contentChanged);\r\n }\r\n\r\n }\r\n );\r\n }\r\n else if (!self.InitialLoadDone) {\r\n if (self.fieldsToLoad !== undefined && self.fieldsToLoad.length > 0) {\r\n self.runUpdateFields();\r\n }\r\n else {\r\n if (!self.InitialLoadDone) {\r\n self.setupSubscriptions();\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n self.updateLeftSideContent = function (fieldData) {\r\n if (!fieldData.Success || fieldData.Data.length == 0)\r\n return;\r\n\r\n self.leftSideFieldsReadyToLoad = fieldData;\r\n\r\n var myInnerData = fieldData.Data[0];\r\n myInnerData.targetField = $('#' + myInnerData.ClientId);\r\n\r\n if (McUtils.isElementInView(myInnerData.targetField)) {\r\n //first field in left side is within the view, let's load now\r\n self.addFieldContentToPage(fieldData, myInnerData.targetField, myInnerData);\r\n myInnerData = fieldData.Data.shift();\r\n }\r\n if (myInnerData == null)\r\n return;\r\n\r\n myInnerData.targetField = $('#' + myInnerData.ClientId);\r\n self.addScrollObserverForLeftSide(document.getElementById(myInnerData.ClientId));\r\n\r\n }\r\n\r\n this.addScrollObserverForLeftSide = function (field) {\r\n var config = {\r\n // If the image gets within 50px in the Y axis, start the download.\r\n rootMargin: '0px 0px',\r\n threshold: 0.01\r\n };\r\n self.leftAreaScrollObserver = new IntersectionObserver(self.onLeftSideIntersection, config);\r\n self.leftAreaScrollObserver.observe(field);\r\n };\r\n\r\n self.onLeftSideIntersection = function (entries) {\r\n var entry = null;\r\n if (entries.length <= 0)\r\n return;\r\n\r\n var entry = entries[0];\r\n if (entry.intersectionRatio <= 0)\r\n return;\r\n self.addRemainingLeftSideFieldsToDom();\r\n self.leftAreaScrollObserver.unobserve(entry.target);\r\n self.leftAreaScrollObserver = null;\r\n };\r\n\r\n self.addRemainingLeftSideFieldsToDom = function () {\r\n for (var i = 0; i < self.leftSideFieldsReadyToLoad.Data.length; i++) {\r\n\r\n var myInnerData = self.leftSideFieldsReadyToLoad.Data[i];\r\n myInnerData.targetField = $('#' + myInnerData.ClientId);\r\n self.addFieldContentToPage(self.leftSideFieldsReadyToLoad, myInnerData.targetField, myInnerData);\r\n }\r\n self.leftSideFieldsReadyToLoad = null;\r\n };\r\n self.getFieldWidth = function (current, isForInstantSearch) {\r\n var width = current.width();\r\n if (width == 0 && isForInstantSearch) {\r\n if (self.deviceSize == \"sm\")\r\n width = 200;\r\n }\r\n else if (width == 0) {\r\n var fieldParents = jQuery(current).parents(\".web-pub-field.container, .web-pub-field.container-fluid\");\r\n for (var parentIndex = 0; parentIndex < fieldParents.length; parentIndex++) {\r\n if (fieldParents[parentIndex] != null) {\r\n var currentParent = jQuery(fieldParents[parentIndex]);\r\n var tmpWidth = currentParent.width();\r\n if (tmpWidth > 0) {\r\n width = tmpWidth;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (width <= 0) {\r\n var $current = $(current);\r\n //if this is a field that will open in a popup, and the popup is not visible yet, the width must be set by the size of the lightbox\r\n if ($current.data(\"popup\") > 0) {\r\n var lightboxLocator = \"#center-popup\";\r\n if ($current.data(\"popup-plc\") == 1) {\r\n lightboxLocator = \"#rhs-popup\";\r\n }\r\n width = $(lightboxLocator).width();\r\n }\r\n }\r\n\r\n return width;\r\n };\r\n\r\n self.setupSubscriptions = function () {\r\n if (self.subscriptionsInitialised)\r\n return; //we've done this already\r\n self.subscriptionsInitialised = true;\r\n\r\n self.disableDoubleClick(\"ad-buy-button\");\r\n PubSub.subscribe(AjaxRenderingEngineEventTypes.onFieldContentChanged,\r\n function (data, message) {\r\n self.disableDoubleClick(\"ad-buy-button\");\r\n if (self.publishMode) {\r\n mcWeb.publisher.checkElementsMarkedInSessionStorage();\r\n }\r\n });\r\n \r\n \r\n PubSub.subscribe(AjaxRenderingEngineEventTypes.onPriceRefreshRequested,\r\n function (message, data) {\r\n if (data !== undefined && data !== null) {\r\n self.updateContentForPreloadedFields(data.Target,false);\r\n }\r\n else self.updateContentForPreloadedFields(\"div.ajax-field\", false);\r\n });\r\n\r\n PubSub.subscribe(mcWeb.cartsmall.events.onShowNewItemInCartText,\r\n function (message, data) {\r\n if (data.favouriteCart != undefined && data.favouriteCart)\r\n return; //we don't show this popup when products were added favourite carts\r\n\r\n var lightboxModal = jQuery(\"#center-popup\").data('bs.modal');\r\n if (lightboxModal !== null && lightboxModal !== undefined && lightboxModal.isShown)\r\n return;\r\n var loadPopupParams2 = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup=6]\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: true,\r\n useDummyData: false,\r\n popupFilter: 6,\r\n nextPageNumber: 0\r\n };\r\n self.fieldsToLoad.push(loadPopupParams2);\r\n self.runUpdateFields();\r\n\r\n var loadPopupParams = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup=2]\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: true,\r\n useDummyData: false,\r\n popupFilter: 2,\r\n nextPageNumber: 0\r\n };\r\n self.fieldsToLoad.push(loadPopupParams);\r\n self.runUpdateFields();\r\n\r\n });\r\n\r\n PubSub.subscribe(mcWeb.cart.events.onPopupForProductAssembly,\r\n function (message, data) {\r\n var p = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup=8]\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: true,\r\n useDummyData: false,\r\n popupFilter: 8,\r\n nextPageNumber: 0\r\n };\r\n self.updateFields(p.targetKey, p.filterTargetKey, p.onlyUpdateProductList, p.doNotRenderFilter, p.useDummyData, p.popupFilter, p.nextPageNumber);\r\n });\r\n\r\n PubSub.subscribe(AjaxRenderingEngineEventTypes.onPopupFilterChanged,\r\n function (message, data) {\r\n // data contains attribute, attributevalue and the sender\r\n //use this to find the nearest field that should be filtered by the attribute\r\n self.currentPopupFilter = data.FullFilter;\r\n\r\n var nextF = jQuery(data.Sender).parent().parent().next();\r\n if (nextF.length > 0) {\r\n\r\n var nextField = jQuery(nextF).find('.ajax-field');\r\n if (nextField.length > 0) {\r\n //we should now have stored the current filter in self.currentPopupFilter, so now we can ask\r\n //for the field content to be updated\r\n var targetFieldId = nextField[0].id;\r\n var targetFieldPopupRule = jQuery(nextField).data(\"popup\");\r\n\r\n var loadPopupParams = {\r\n targetKey: \"#\" + targetFieldId,\r\n filterTargetKey: \"AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: targetFieldPopupRule,\r\n nextPageNumber: 0\r\n };\r\n self.fieldsToLoad.push(loadPopupParams);\r\n self.runUpdateFields();\r\n }\r\n }\r\n\r\n });\r\n\r\n PubSub.subscribe(AjaxRenderingEngineEventTypes.onPushProductsIntoField,\r\n function (message, data) {\r\n var fieldNode = jQuery(\".ajax-field[data-field-id=\" + data.FieldId + \"]\");\r\n if (fieldNode.length === 0) {\r\n console.log(\"node not found\");\r\n return;\r\n }\r\n if (data.Plids !== undefined && data.Plids !== null && data.Plids.length > 0) {\r\n jQuery(fieldNode[0]).data(\"plids\", data.Plids);\r\n jQuery(fieldNode[0]).data(\"filter-id\", \"secondary-filter\");\r\n\r\n var param = {\r\n targetKey: \"#\" + jQuery(fieldNode[0]).attr(\"id\"),\r\n filterTargetKey: \"secondary-filter\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: false,\r\n useDummyData: false,\r\n popupFilter: null,\r\n nextPageNumber: 0\r\n };\r\n\r\n if (data.ExtraData !== undefined && data.ExtraData != null) {\r\n self.placeholderDict[\"extraData\" + data.FieldId] = data.ExtraData; \r\n }\r\n\r\n \r\n self.updateFields(param.targetKey,\r\n param.filterTargetKey,\r\n param.onlyUpdateProductList,\r\n param.doNotRenderFilter,\r\n param.useDummyData,\r\n param.popupFilter,\r\n param.nextPageNumber);\r\n }\r\n else {\r\n jQuery(fieldNode[0]).attr(\"data-Plids\", data.Plids);\r\n jQuery(fieldNode[0]).attr(\"data-filter-id\", \"secondary-filter\");\r\n jQuery(fieldNode).html('');\r\n jQuery(\".secondary-filter\").html('');\r\n }\r\n\r\n });\r\n\r\n mcWeb.ajaxPopup.load();//sets up subscriptions for event-controlled pop-ups\r\n self.checkForPopupAfterProductInfoVisit();\r\n self.checkForPopupFirstPageView();\r\n self.checkForPopupAfterLogin();\r\n (function () {\r\n\r\n if (typeof window.CustomEvent === \"function\") return false;\r\n\r\n function CustomEvent(event, params) {\r\n params = params || { bubbles: false, cancelable: false, detail: null };\r\n var evt = document.createEvent('CustomEvent');\r\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n return evt;\r\n }\r\n\r\n window.CustomEvent = CustomEvent;\r\n })();\r\n\r\n const formHead = document.querySelector('head');\r\n formHead.dispatchEvent(new CustomEvent(\"readyForGtm\", { bubbles: true, cancelable: false, detail: null }));\r\n self.InitialLoadDone = true;\r\n //todo: her trenger vi starte å prosessere en ny kø med jobber med javascript kall som legges inn av HTMLen som kommer publisert i f.eks. artikler.\r\n\r\n };\r\n\r\n self.checkForPopupFirstPageView = function () {\r\n if (!!self.firstPageViewPopup) {\r\n if (jQuery(\"body.publish-mode\").length <= 0) {\r\n\r\n var param = self.firstPageViewPopup;\r\n self.firstPageViewPopup = null;\r\n self.updateFields(param.targetKey,\r\n param.filterTargetKey,\r\n param.onlyUpdateProductList,\r\n param.doNotRenderFilter,\r\n param.useDummyData,\r\n param.popupFilter,\r\n param.nextPageNumber);\r\n }\r\n else {\r\n self.firstPageViewPopup = null;\r\n }\r\n\r\n }\r\n\r\n }\r\n self.disableDoubleClick = function (classToDisable) {\r\n jQuery('.' + classToDisable).on(\"dblclick\", function (e) {\r\n e.preventDefault();\r\n });\r\n };\r\n self.checkForPopupAfterLogin = function () {\r\n const readyForPostLoginPopup = localStorage.getItem('ReadyForPostLoginPopup') === 'true';\r\n if (!!readyForPostLoginPopup) {\r\n if (jQuery(\"body.publish-mode\").length <= 0) {\r\n\r\n var loadPopupParams = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup='9']\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: true,\r\n useDummyData: false,\r\n popupFilter: 9,\r\n nextPageNumber: 0\r\n };\r\n\r\n self.updateFields(loadPopupParams.targetKey,\r\n loadPopupParams.filterTargetKey,\r\n loadPopupParams.onlyUpdateProductList,\r\n loadPopupParams.doNotRenderFilter,\r\n loadPopupParams.useDummyData,\r\n loadPopupParams.popupFilter,\r\n loadPopupParams.nextPageNumber);\r\n }\r\n window.StorageService.localStorage.setItem('ReadyForPostLoginPopup', 'false');\r\n }\r\n\r\n }\r\n self.checkForPopupAfterProductInfoVisit = function () {\r\n var param = {\r\n NodeId: jQuery(\"#hidden-nodeid\").text()\r\n };\r\n self.statsService.PostAction(\"CheckForPopupAfterProductVisit\", param).then(function (result) {\r\n if (self.fieldsToLoad == undefined)\r\n self.fieldsToLoad = [];\r\n if (result) {\r\n var loadPopupParams = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup='4']\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: true,\r\n useDummyData: false,\r\n popupFilter: 4,\r\n nextPageNumber: 0\r\n };\r\n\r\n self.updateFields(loadPopupParams.targetKey,\r\n loadPopupParams.filterTargetKey,\r\n loadPopupParams.onlyUpdateProductList,\r\n loadPopupParams.doNotRenderFilter,\r\n loadPopupParams.useDummyData,\r\n loadPopupParams.popupFilter,\r\n loadPopupParams.nextPageNumber);\r\n\r\n } else {\r\n var loadPopupParams = {\r\n targetKey: \"div.ajax-field.not-loaded[data-popup='5']\",\r\n filterTargetKey: \"#AttributeListBox\",\r\n onlyUpdateProductList: false,\r\n doNotRenderFilter: true,\r\n useDummyData: false,\r\n popupFilter: 5,\r\n nextPageNumber: 0\r\n };\r\n\r\n self.updateFields(loadPopupParams.targetKey,\r\n loadPopupParams.filterTargetKey,\r\n loadPopupParams.onlyUpdateProductList,\r\n loadPopupParams.doNotRenderFilter,\r\n loadPopupParams.useDummyData,\r\n loadPopupParams.popupFilter,\r\n loadPopupParams.nextPageNumber);\r\n }\r\n });\r\n };\r\n\r\n self.addFieldSorterToPage = function (data, $targetField, fieldData) {\r\n if (data.FieldSorterResponse !== null &&\r\n data.FieldSorterResponse.length > 0 && !fieldData.Prepend) {//when we prepend the page content, we don't need to update the \"go to next page\" link\r\n var myFieldContainer = $($targetField.parent()).parent();\r\n // fjern eksisterende paging før vi legger til den nye\r\n var oldFieldSorter = $(myFieldContainer).find(\".FieldSorter\");\r\n oldFieldSorter.remove();\r\n if (fieldData.PagingMode <= 1 || $(\"#mmenu\").length > 0 || $(\"body.mc-filter-left\").length > 0) {\r\n $(myFieldContainer).prepend(data.FieldSorterResponse);\r\n }\r\n\r\n if (data.FieldSorter2Response !== null &&\r\n data.FieldSorter2Response.length > 0)\r\n $(myFieldContainer).append(data.FieldSorter2Response);\r\n\r\n var btn = $('#filter-btn');\r\n btn.show();\r\n\r\n PubSub.publish(mcWeb.MegaMenuResponsive.events.onAddNewFilterButton, null);\r\n }\r\n };\r\n\r\n self.addFieldContentToPage = function (fieldData, targetField, data) {\r\n self.bottomImageToLoad = null;\r\n if (targetField != undefined && !data.added) {\r\n var $targetField = $(targetField);\r\n\r\n data.added = true;\r\n self.addFieldSorterToPage(data, $targetField, fieldData);\r\n if (fieldData.FilterCacheKey !== null)//todo: check how to make this null when page index is not 1\r\n $targetField.attr(\"data-cachekey\", fieldData.FilterCacheKey);//update cache key. Especially useful when filtering is being applied, to allow quick reload of previously used filters\r\n\r\n self.registerStatistics(data);\r\n\r\n if (data.LoadFilter) {\r\n this.updateFilterContent(data);\r\n\r\n }\r\n if (!fieldData.AddToExistingField) {\r\n if (!data.SendFilterOnly) {//we called this only to get the attribute filter when SendFilterOnly is true\r\n $targetField.html(data.Response);\r\n self.refineInsertedContent(targetField, data); \r\n }\r\n\r\n var imageList = $targetField.find(\".AddProductImage img\");\r\n var lastImage = imageList.last();\r\n if (lastImage != null && lastImage.length > 0) {\r\n if (self.containsLoadableImage(lastImage))\r\n self.bottomImageToLoad = lastImage;\r\n }\r\n else if (imageList.length <= 0) {\r\n //No images found by looking for them in ads, so check for articles... \r\n if (self.bottomImageToLoad === null || self.bottomImageToLoad === undefined) {\r\n //we might only have articles in the field, let's look for one...\r\n var backgroundImgItems = $targetField.find(\"div.ArticleWithBackground.D4Standard .inner-content\");\r\n if (backgroundImgItems.length > 0) {\r\n var bgItem = backgroundImgItems.last();\r\n if (bgItem != null) {\r\n if (self.containsLoadableImage(bgItem))\r\n self.bottomImageToLoad = bgItem;\r\n }\r\n }\r\n }\r\n }\r\n\r\n PubSub.publish(AjaxRenderingEngineEventTypes.onFieldContentChanged, data);\r\n } else {\r\n if (fieldData.Prepend) {\r\n $targetField.prepend(data.Response);\r\n PubSub.publish(AjaxRenderingEngineEventTypes.onFieldContentChanged, data);\r\n } else {\r\n $targetField.append(data.Response);\r\n PubSub.publish(AjaxRenderingEngineEventTypes.onFieldContentChanged, data);\r\n }\r\n self.refineInsertedContent(targetField, data);\r\n }\r\n self.initialiseAdLinks();\r\n if (fieldData.InitializeRoyalSlider)\r\n InitializeRoyalSliderInAds(\"#\" + data.ClientId + \" .variant-slider\");\r\n\r\n\r\n\r\n self.searchPageArea(data);\r\n if (!data.SendFilterOnly && (data.Response === null || data.Response.length === 0)) {\r\n if (data.AreaName === \"CenterContentDynamicAdList\") {\r\n //find and hide the Sorter elements for ad-listing\r\n $(\".FieldSorter.web-pubfield-sort.CenterContentDynamicAdList\").hide();\r\n } else if (data.AreaName === \"CenterContentDynamicProdListAlternate\") {\r\n //find and hide the Sorter elements for ad-listing\r\n $(\".FieldSorter.web-pubfield-sort.CenterContentDynamicProdListAlternate\").hide();\r\n }\r\n }\r\n else {\r\n if (data.AreaName === \"CenterContentDynamicAdList\") {\r\n //find and hide the Sorter elements for ad-listing\r\n $(\".FieldSorter.web-pubfield-sort.CenterContentDynamicAdList\").show();\r\n } else if (data.AreaName === \"CenterContentDynamicProdListAlternate\") {\r\n //find and hide the Sorter elements for ad-listing\r\n $(\".FieldSorter.web-pubfield-sort.CenterContentDynamicProdListAlternate\").show();\r\n }\r\n }\r\n if (fieldData.IsDummyField) {\r\n $targetField.click(self.selectLayoutClick);\r\n $targetField.addClass(\"wired\" + data.ClientId);\r\n }\r\n\r\n if (data.LayoutCssClass != null && data.LayoutCssClass != undefined) {\r\n var fieldToUpdateLayout = $targetField.closest('.web-pub-field:not(.' + data.LayoutCssClass + \")\");\r\n $(fieldToUpdateLayout).removeClass(function (index, className) {\r\n return (className.match(/(^|\\s)layout-\\S+/g) || []).join(' ');\r\n });\r\n $(fieldToUpdateLayout).addClass(data.LayoutCssClass);\r\n }\r\n }\r\n };\r\n\r\n // Define the IsNoHitSearchPage function\r\n this.searchPageArea = function (data) {\r\n if (data.AreaName !== \"CenterContentDynamicAdList\" && data.AreaName !== \"CenterContentDynamicProdListAlternate\")\r\n return;\r\n\r\n if (data.IsNoHitSearch) {\r\n jQuery(\".search-no-result\").show();\r\n self.updateContentForPreloadedFields(\".search-no-result div.ajax-field.not-loaded\", false);\r\n if (data.ShowInStockOnly || data.ShowInRemoteStockOnly) {\r\n jQuery(\".search-no-result-not-instock\").show();\r\n // Hide the lhs filterbutton\r\n } else {\r\n jQuery(\".search-no-result-not-instock\").hide();\r\n }\r\n }\r\n else if (data.IsProductListing) {\r\n jQuery(\"body:not(.publish-mode) .search-no-result\").hide();\r\n }\r\n };\r\n\r\n this.containsLoadableImage = function (currImg) {\r\n if (currImg.length !== undefined && currImg.length > 0) {\r\n for (var i = 0; i < currImg.length; i++) {\r\n if (self.containsLoadableImage(currImg[i]))\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n if (currImg != null && currImg.src != undefined && currImg.src != null)\r\n return true;\r\n else if ($(currImg).hasClass(\"inner-content\")) {\r\n var bg = $(currImg).css('background-image').trim();\r\n if (bg.length > 0 && bg !== \"none\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n this.initializeSlideShow = function ($targetField, slideshowmodel) {\r\n if (slideshowmodel == null || slideshowmodel == undefined)\r\n return;\r\n\r\n var myParent = $targetField.closest('.web-pub-field');\r\n if (!$(myParent).hasClass('NoSlide'))\r\n return;\r\n\r\n $(myParent).addClass('around_slides');\r\n $(myParent).removeClass('NoSlide');\r\n $targetField.addClass('royalSlider');\r\n\r\n mcSlide.InitSlideshow(myParent[0].id,\r\n slideshowmodel.Play,\r\n slideshowmodel.Pause,\r\n slideshowmodel.HoverPause,\r\n slideshowmodel.GenerateNextPrev,\r\n slideshowmodel.GeneratePagination,\r\n slideshowmodel.ArrowsNavAutoHide,\r\n slideshowmodel.FadeSpeed,\r\n slideshowmodel.SlideSpeed,\r\n slideshowmodel.Effect,\r\n slideshowmodel.CrossFade,\r\n slideshowmodel.Orientation,\r\n slideshowmodel.ScaleType,\r\n slideshowmodel.Randomize,\r\n slideshowmodel.Css,\r\n slideshowmodel.IsMobileDomain,\r\n slideshowmodel.Width,\r\n slideshowmodel.Height,\r\n true);\r\n };\r\n\r\n this.resolveImagesOnImageLoaded = function (image) {\r\n return new Promise((resolve, reject) => {\r\n if (image.complete) {\r\n resolve();\r\n } else {\r\n image.onload = () => {\r\n resolve();\r\n };\r\n }\r\n });\r\n };\r\n\r\n this.getArrayOfArrays = function (inputArray, itemsPerArray) {\r\n var arrayOfArrays = [];\r\n for (var i = 0; i < inputArray.length; i += itemsPerArray) {\r\n arrayOfArrays.push(inputArray.slice(i, i + itemsPerArray));\r\n }\r\n return arrayOfArrays;\r\n };\r\n\r\n this.getSlideshowModel = function($targetField, data){\r\n if (data != null && data.SlideShowModel != undefined && data.SlideShowModel != null) \r\n return data.SlideShowModel;\r\n \r\n if (!$targetField.hasClass(\"slides_container\"))\r\n return null;\r\n\r\n //may store slideshow in the container field\r\n var parentWithSlideInfo = $targetField.parents(\".web-pub-field[data-slideshow]\");\r\n if (parentWithSlideInfo.length <= 0)\r\n return null;\r\n\r\n return parentWithSlideInfo.data(\"slideshow\");\r\n };\r\n\r\n this.ensureCorrectImageSizes = function (images, $targetField, data, lazyImg, initialiseSlideshows) {\r\n \r\n //Note! Array.from for IE has been added to the McWeb4-standard.js file.\r\n //when images are either not in need of resizing, or the new images have been fetched, we try to set up any slideshow for the field.\r\n\r\n if ((images === null || images === undefined || images.length <= 0) && initialiseSlideshows) {\r\n //no need to load images, so let's just see if slideshow must be applied\r\n var slidemodel = self.getSlideshowModel($targetField, data);\r\n if (slidemodel !== null) {\r\n self.initializeSlideShow($targetField, slidemodel);\r\n }\r\n \r\n return;\r\n }\r\n var nodeId = jQuery('#hidden-nodeid').text();\r\n var itemsPerArray = 8;\r\n if (data != null && (data.ImgModuleVer >= 5 || data.SlideShowModel != null && data.SlideShowModel != undefined ))\r\n itemsPerArray = images.length; // must keep it down to 1 request for images when dealing with slideshow, or when ImageModulVersion >= 5\r\n\r\n \r\n var imageLoadedPromises = Array.from(images).map(self.resolveImagesOnImageLoaded);\r\n Promise.all(imageLoadedPromises)\r\n .then(() => {\r\n \r\n var imageList = images.toArray().map(i => self.getParamForImage(i, lazyImg, nodeId)).filter(y => y !== null);\r\n\r\n var arrayOfImageArrays = self.getArrayOfArrays(imageList, itemsPerArray);\r\n\r\n var requestForImagesSent = false;\r\n for (var arrayId = 0; arrayId < arrayOfImageArrays.length; arrayId++) {\r\n var items = arrayOfImageArrays[arrayId];\r\n requestForImagesSent = true;\r\n self.imageService.PostAction(\"ListImageTagsAsync\", { Items: items }).then(function (result) {\r\n var delaySlideshow = false;\r\n if (result && result.items && result.items.length > 0) {\r\n var items = result.items;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (!item.success)\r\n continue;\r\n delaySlideshow = true;//slideshow must wait for these new images have loaded\r\n\r\n if (item.tag !== \"\")\r\n jQuery('#' + item.targetId).replaceWith(item.tag);\r\n else {\r\n var image = jQuery('#' + item.targetId + \" img.d4-lazy-thumb\");\r\n image.removeClass(\"d4-lazy-thumb\");\r\n image.addClass(\"d4-prod-thumb\");\r\n }\r\n }\r\n }\r\n if (!initialiseSlideshows)\r\n return;\r\n\r\n var slidemodel = self.getSlideshowModel($targetField, data);\r\n\r\n if (slidemodel === null)\r\n return;\r\n\r\n if (delaySlideshow) {//need to await the new images have been loaded before we set up slideshow\r\n var newImages = $targetField.find(\"img.d4-prod-thumb\");\r\n self.initializeSlideShowAfterImagesLoaded($targetField, newImages, slidemodel);\r\n }\r\n else self.initializeSlideShow($targetField, slidemodel);\r\n });\r\n }\r\n if (!initialiseSlideshows)\r\n return;\r\n\r\n var slidemodel = self.getSlideshowModel($targetField, data);\r\n if (!requestForImagesSent && slidemodel !== null) {\r\n self.initializeSlideShow($targetField, slidemodel);\r\n }\r\n });\r\n \r\n };\r\n\r\n this.getParamForImage = function (image, lazyImg, nodeId) {\r\n var img = jQuery(image);\r\n var parent = img.parent();\r\n if (parent === null || parent === undefined || parent.length <= 0)\r\n return null;\r\n\r\n var containerTagType = parent[0].tagName.toLowerCase();\r\n var includeLink = containerTagType === \"a\";\r\n var parentWidth = parent.width();\r\n var parentHeight = parent.height();\r\n var myWidth = img.data(\"width\");\r\n var myHeight = img.data(\"height\");\r\n var usesAltImg = img.data(\"altImg\") === 1;\r\n var imgStatus = img.data(\"status\");\r\n var elementId = img.data(\"elementid\");\r\n var css = img.data(\"css\");\r\n var autoscale = img.data(\"autoscale\"); \r\n\r\n if (usesAltImg || (!lazyImg && (imgStatus == undefined || imgStatus.toUpperCase() !== \"OK\")))\r\n return null;\r\n\r\n if (!lazyImg && myWidth / parentWidth >= 0.90)\r\n return null;//if lazyImg, no image loaded so we must allways load a new image\r\n\r\n var aspect = 1;\r\n if (parentWidth > 0 && parentHeight > 0)\r\n aspect = parentWidth / parentHeight;\r\n else if (myWidth > 0 && myHeight > 0)\r\n aspect = myWidth / myHeight;//applies when parent not visible and hence no parent size available\r\n\r\n if (aspect < 0.1 || aspect > 2) {\r\n //lazy loading in use, must use different aspect calculation\r\n aspect = myWidth / myHeight;\r\n }\r\n var myId = img[0].id;\r\n if (myId === \"\")\r\n myId = parent[0].id;\r\n\r\n var item = {\r\n TargetId: myId,\r\n Plid: img.data(\"plid\"),\r\n Index: img.data(\"imageIndex\"),\r\n Width: parentWidth,\r\n Aspect: aspect,\r\n IncludeLink: includeLink,\r\n UseSecondaryImage: img.data(\"hassecondaryimg\") === 1,\r\n IncludeNotFound: lazyImg,\r\n ElementId: 0,\r\n Css: '',\r\n AutoScale: autoscale,\r\n NodeId: nodeId\r\n };\r\n if (elementId !== undefined && elementId !== null)\r\n item.ElementId = elementId;\r\n if (css !== undefined && css !== null)\r\n item.Css = css;\r\n\r\n return item;\r\n };\r\n\r\n this.initializeSlideShowAfterImagesLoaded = function($targetField, images, slidemodel){\r\n if(images !== null && images !== undefined && images.length > 0){\r\n var imageLoadedPromises = Array.from(images).map(self.resolveImagesOnImageLoaded);\r\n Promise.all(imageLoadedPromises) \r\n .then( () => {\r\n if (slidemodel != undefined && slidemodel != null){\r\n self.initializeSlideShow($targetField, slidemodel);\r\n }\r\n });\r\n }\r\n };\r\n\r\n this.initialiseAdLinks = function () {\r\n setTimeout(function () {\r\n if (window.D4LinkArraySetup != undefined && window.D4LinkArraySetup != null) {\r\n for (var i = 0; i < window.D4LinkArraySetup.length; i++) {\r\n var current = window.D4LinkArraySetup[i];\r\n makeAdLinkToProduct(current.elementId, current.productLink);\r\n }\r\n window.D4LinkArraySetup = []; //clearing it\r\n //linker virker ikke enda etter at nye elementer er lagt til\r\n //må debugge dette!\r\n\r\n }\r\n },\r\n 5);\r\n };\r\n\r\n self.stats = [];\r\n\r\n this.registerStatistics = function (data) {\r\n if (data != undefined && data != null && !self.InitialLoadDone && (data.PopupRule == undefined || data.PopupRule <= 0)) { // && (data.SlideShowModel == undefined || data.SlideShowModel == null)) {\r\n if (self.CheckStatistics) {\r\n self.stats.push(data);\r\n }\r\n }\r\n };\r\n\r\n this.postStatistics = function () {\r\n try {\r\n if (self.stats != null && self.stats.length > 0) {\r\n var data = self.stats[0];\r\n var stats = {\r\n DeviceSize: self.deviceSize,\r\n NodeId: data.NodeId,\r\n FieldIds: [],\r\n Note: 'FieldsShownBeforeScroll'\r\n };\r\n for (var i = 0; i < self.stats.length; i++) {\r\n stats.FieldIds.push(self.stats[i].FieldId);\r\n }\r\n self.service.PostAction(\"PostStatistics\", stats).then(function () {\r\n self.stats = [];\r\n });\r\n }\r\n }\r\n catch (e) { }\r\n };\r\n\r\n this.updateContentForSpecificFields = function (fieldRecognizer) {\r\n self.addRemainingFieldsToDom();\r\n self.reloadFromCallbackActive = true;\r\n self.updateFields(fieldRecognizer, \"#AttributeListBox\", false, true, false, 0, 0);\r\n };\r\n\r\n this.updateContentForPreloadedFields = function(fieldRecognizer, includeMegaMenuChildren){\r\n var recognizer = \"div.ajax-field.loaded\";\r\n if(fieldRecognizer !== undefined){\r\n recognizer = fieldRecognizer;\r\n }\r\n var preloadedFields = jQuery(recognizer);\r\n\r\n var fieldItems = [];\r\n for(var j = 0; j< preloadedFields.length; j++){\r\n var field = jQuery( preloadedFields[j]);\r\n var fieldItem = {\r\n FieldId: field.data('field-id'),\r\n NodeId: field.data('node-id'),\r\n UniqueId: field[0].id\r\n };\r\n if (!includeMegaMenuChildren && $(field).parents(\".dropdown-submenu\").length > 0)\r\n continue;//fields within mega menu are not to be loaded here, will be done when menu is shown.\r\n\r\n var preloadedElements = field.find(\"div.WebPubElement, div.separator-element[data-separator-level=100]\");\r\n var eItems = [];\r\n for(var i = 0; i < preloadedElements.length; i++){\r\n var element =jQuery( preloadedElements[i]);\r\n var eItem = {\r\n ElementId: element.data('elementid'),\r\n Plid: element.data('plid')\r\n };\r\n eItems.push(eItem);\r\n }\r\n fieldItem.Elements = eItems;\r\n fieldItems.push(fieldItem);\r\n }\r\n\r\n startParaxify('.d4-article-parallax');\r\n\r\n if(fieldItems.length > 0){\r\n self.service.PostAction(\"GetPriceDataAsync\", { Fields: fieldItems }).then( function (result) {\r\n if(result && result.Success){\r\n var fields = result.Fields;\r\n\r\n for(var i = 0; i < fields.length; i++){\r\n var fData = fields[i];\r\n var field = jQuery(\"#\" + fData.UniqueId);\r\n self.refineInsertedContent(field, fData);\r\n }\r\n }\r\n });\r\n }\r\n \r\n self.showSearchSynonymText();\r\n\r\n }\r\n this.showSearchSynonymText = function () {\r\n if (jQuery(\".search-synonyms\").length > 0)\r\n return;\r\n\r\n var alteredSearchResultArea = jQuery(\".web-pub-field[data-search-synonyms]\");\r\n if (alteredSearchResultArea.length <= 0)\r\n return;\r\n\r\n var alteredText = alteredSearchResultArea.data(\"search-synonyms\");\r\n if (alteredText !== undefined && alteredText !== null && alteredText.length <= 0)\r\n return;\r\n var newContent = \"