<?php if ($block->getHelper()->usePostRenderImpressionPayloadModel()):?> <?php $search = $block->getLayout()->getBlock('search_result_list') ?> <?php if ($search): ?> <script data-ommit="true" nonce="<?php echo $block->generateNonce() ?>">
    
            var payload = <?php echo $block->getProductList()->getSearchImpressionPayload($search) ?>;
        	
        	payload.ecommerce['items'] = (function()
        	{
        		let items = [], trace = {};
        	    
        		document.querySelectorAll('[data-event=<?php echo \Anowave\Ec\Helper\Constants::EVENT_PRODUCT_CLICK ?>]').forEach((element) => 
        		{
        			var entity = 
        			{
        				item_id: 				   		element.dataset.id,
						item_id_numeric: 				element.dataset.numeric,
        				item_name: 				   		element.dataset.name,
        				category:			   			element.dataset.category,
        				item_brand:				   	 	element.dataset.brand,
        				item_list_id:				   	element.dataset.list,
        				item_list_name:				   	element.dataset.list,
        				price:				 parseFloat(element.dataset.price),
        				index: 				 parseFloat(element.dataset.position),
						remarketingFacebookId:			element.dataset.remarketingFacebookId,
						remarketingAdwordsId:			element.dataset.remarketingAdwordsId,
        				item_list_name:				   	element.dataset.list,
        				<?php echo $block->getHelper()->getStockDimensionIndex(true) ?>: element.dataset['<?php echo $block->getHelper()->getStockDimensionIndex(true) ?>']
                	};

        			Object.assign(entity, entity, AEC.GA4.transformCategories(entity.category));
        
                	var attributes = element.dataset.attributes;
        
                	if (attributes)
        	        {
            	        Object.entries(JSON.parse(attributes)).forEach(([key, value]) => 
            	        {
                	        entity[key] = value;
            	        });
            	    }
        			
                	if (!trace.hasOwnProperty(entity.item_id))
            	    {
                	    trace[entity.item_id] = true;
                	    
        				items.push(entity);
            	    }
            	});
        
        		return items;
        	})();
        
        	(function(payload, payload_max_size)
            {
        		var payloadSize = AEC.getPayloadSize(payload);

        		if (payload_max_size > payloadSize)
        		{
        			(payload => 
        	    	{
        	    		AEC.CookieConsent.queue(function()
	     	            {
        	    			AEC.Cookie.impressions(payload).push(dataLayer);
        	    			
	     	            }).process();
        	    		
        	       	})(payload);

        			<?php
        			/**
        			 * Private browser fallback
        			 */
        			?> dataLayerTransport.push(payload);
        		}
        		else 
        		{
        			var chunks = AEC.getPayloadChunks(payload.ecommerce.items, Math.ceil(payload.ecommerce.items.length/Math.ceil(payloadSize/payload_max_size)));
        
        			var lazyPush = function(chunks)
        			{
        				if (chunks.length)
        				{
        					var chunk = chunks.shift(), chunkPush = Object.assign({}, payload);
        
        					chunkPush['event'] 			  = 'view_item_list';
        					chunkPush.ecommerce['items']  = chunk;
        					chunkPush['eventCallback'] 	  = (function(chunks)
        					{
        						return function()
        						{
        							lazyPush(chunks);
        						}
        					})(chunks);
        
        					(function(data)
        					{
        						AEC.Cookie.impressions(data).push(dataLayer);
        						
        					})(chunkPush);
        				}
        			};
        
        			/**
        			 * Call lazy push
        			 */
        			lazyPush(chunks);
        		}
        		
        	})(payload, <?php echo \Anowave\Ec\Helper\Constants::GOOGLE_PAYOAD_SIZE ?>);
        
        
        	<?php 
        	/**
        	 * AdWords Dynamic Remarketing
        	 */
        	?> window.google_tag_params = window.google_tag_params || {};
        
        	window.google_tag_params.ecomm_pagetype = 'searchresults';
        	window.google_tag_params.ecomm_category = '<?php echo __('Search Results') ?>';
        	window.google_tag_params.returnCustomer = <?php echo $block->getHelper()->getIsReturnCustomer() ?>;
        	
        	<?php
        	/**
        	 * Facebook Pixel Tracking
        	 */
        	?> <?php if ($block->getHelper()->facebook()): ?>
        
        		(function(params)
                {
        			(function(callback)
        			{
        				if (AEC.Const.COOKIE_DIRECTIVE)
        				{	
        					AEC.CookieConsent.queue(callback).process();
        				}
        				else 
        				{
        					callback.apply(window,[]);
        				}
        			})
        			(
        				(function()
        				{
							const track = () => 
							{
								fbq("track", "Search", params, { eventID: AEC.UUID.generate({ event: 'Search' }) });

								document.dispatchEvent(new CustomEvent('meta.track', { detail: { event: 'Search', payload: params }}));
							}

        					typeof fbq !== 'undefined' ? track() : AEC.EventDispatcher.on('ec.facebook.loaded', track);
            				
        				})(params)
        			);

                })({ content_ids: payload.ecommerce.items.map(function(item){ return item.remarketingFacebookId ?? item.item_id; }), content_type: 'product_group', content_category: '<?php echo __('Search Results') ?>',search_string: '<?php echo $block->escapeHtml(isset($_GET['q']) ? $_GET['q'] : '') ?>',currency:'<?php echo $block->getHelper()->getCurrency() ?>', value: <?php echo $block->getHelper()->getVisitorId() ?> });
        	
        	<?php endif ?></script><?php endif ?> <?php endif ?>