<script data-ommit="true" nonce="<?php echo $block->generateNonce() ?>">

	<?php
	/**
	 * Get checkout data
	 */
	?> AEC.Checkout.data = <?php echo $block->getCheckoutPush() ?>;

	(function(google_tag_params)
	{
		window.google_tag_params.ecomm_pagetype 	= 'cart';
		window.google_tag_params.ecomm_prodid 		= google_tag_params.ecomm_prodid;
		window.google_tag_params.ecomm_pvalue		= google_tag_params.ecomm_pvalue;
		window.google_tag_params.ecomm_pname		= google_tag_params.ecomm_pname;
		window.google_tag_params.ecomm_totalvalue 	= google_tag_params.ecomm_totalvalue;
		window.google_tag_params.returnCustomer 	= <?php echo $block->getHelper()->getIsReturnCustomer() ?>;

		<?php if ($block->getHelper()->supportDynx()): ?>

			window.google_tag_params.dynx_pagetype 		= 'conversionintent';
			window.google_tag_params.dynx_itemid 		= window.google_tag_params.ecomm_prodid;
			window.google_tag_params.dynx_totalvalue 	= window.google_tag_params.ecomm_totalvalue
		
		<?php endif ?> })(AEC.Checkout.getData().google_tag_params);

	<?php
	/**
	 * Flag checkout
	 */
	?> AEC.Checkout.init = true;

	<?php
	/**
	 * Initial checkout step
	 */
	?> AEC.CookieConsent.queue(() => 
	{
		const payload = structuredClone(AEC.Checkout.getPayload());

		AEC.Cookie.checkout(payload).push(dataLayer);

		const express = <?php echo json_encode($block->getExpress()) ?> ?? false;

		if (express)
		{
			(update => 
			{
				if (update?.event)
				{
					update['event'] = 'add_payment_info';
					update.ecommerce['payment_type'] = 'Paypal Express Checkout';

					AEC.Cookie.checkout(update).push(dataLayer);
				}
			})({...payload});
		}
		
	}).process();

	(() => 
	{
		const express = <?php echo json_encode($block->getExpress()) ?> ?? false;

		document.addEventListener('DOMContentLoaded', event => 
		{
			const shipping = (text) => 
			{
				(update => 
				{
					if (update?.event)
					{
						update['event'] = 'add_shipping_info';
						update.ecommerce['shipping_tier'] = text;

						AEC.Cookie.checkout(update).push(dataLayer);
					}
				})
				(
					structuredClone(AEC.Checkout.getPayload())	
				);
			}

			document.querySelectorAll('[name=shipping_method]').forEach(select => 
			{
				if (select?.selectedIndex >= 0)
				{
					const text = select.options[select.selectedIndex].text;

					if (text)
					{
						shipping(text);
					}

					select.addEventListener('change', event => 
					{
						const text = event.currentTarget.options[event.currentTarget.selectedIndex].text;

						shipping(text);
					});
				}
			});
		});
	})();
	
	<?php
	/**
	 * Track Facebook Pixel Initiate Checkout
	 */
	?> <?php if ($block->getHelper()->facebook()):?>
	
    	var content_ids = [], content_length = AEC.Checkout.getPayload().ecommerce.items.length;
    
    	for (var i = 0, l = AEC.Checkout.getPayload().ecommerce.items.length; i < l; i++)
    	{
    		content_ids.push(AEC.Checkout.getPayload().ecommerce.items[i].remarketingFacebookId ?? AEC.Checkout.getPayload().ecommerce.items[i].item_id);
    	}

    	(function(callback)
    	{
    		if (AEC.Const.COOKIE_DIRECTIVE)
    		{
    			AEC.CookieConsent.queue(callback).process();
    		}
    		else 
    		{
    			callback.apply(window,[]);
    		}
    	})
    	(
    		(function(content_ids, content_length)
    		{
    			return function()
    			{
					const track = () => 
    				{
						const payload = {
        					value:			AEC.Checkout.getData().total,
        					content_type:	'product',
        					content_name: 	'checkout',
        					content_ids:	content_ids,
        					num_items:		content_length,
        					currency: 		'<?php echo $block->getHelper()->getCurrency() ?>'
        				};

        				fbq("track", "InitiateCheckout", payload, { eventID: AEC.UUID.generate({ event: 'InitiateCheckout' }) });

						document.dispatchEvent(new CustomEvent('meta.track', { detail: { event: 'InitiateCheckout', payload: payload }}));
        			};
					
					typeof fbq !== 'undefined' ? track() : AEC.EventDispatcher.on('ec.facebook.loaded', track);


					
    			}
    		})(content_ids,content_length)
    	);
	
	<?php endif ?> <?php if ($block->getHelper()->tiktok()):?>
	
		var contents = [], value = 0;
			
		AEC.Checkout.getPayload().ecommerce.items.forEach(item => 
		{
			contents.push
			(
				{
					content_id: 	item.item_id,
					content_name: 	item.item_name,
					quantity: 		item.quantity,
					brand: 			item.item_brand,
					price: 			item.price
				}
			);

			value += item.price;
		});

		(function(callback)
		{
			if (AEC.Const.COOKIE_DIRECTIVE)
			{
				AEC.CookieConsent.queue(callback).process();
			}
			else 
			{
				callback.apply(window,[]);
			}
		})
		(
			(function(contents, value)
			{
				return function()
				{
					AEC.TikTok.event('InitiateCheckout', 
					{
						contents: 		contents,
						content_type:	'product',
						value: 			value,
						currency: 		AEC.currencyCode
					},
					{ 
						event_id: AEC.UUID.generate({ event: 'InitiateCheckout'})
					});
				}
			})(contents,value)
		);

	<?php endif ?></script>