<%
return if ENV['FACEBOOK_PIXEL_ID'].blank?

event_data = {}

if order.present?
    if just_purchased
        event_data[:order] = {
            value: order.total,
            currency: order.currency,
            content_type: 'product',
            contents: order.line_items.map do |line_item|
                { id: line_item.variant.sku, quantity: line_item.quantity }
            end,

            # custom properties
            order_number: order.number,
            item_total: order.item_total,
            tax_total: order.tax_total,
            ship_total: order.ship_total,
            promo_total: order.promo_total
        }
    end

    if flash[:added_to_cart].present?
        event_data[:added_to_cart] = {
            currency: order.currency,
            content_type: 'product',
            contents: flash[:added_to_cart].map do |variant_sku, variant|
                { id: variant_sku, quantity: variant['quantity'] }
            end
        }
    end

    if flash[:checkout_initiated].present?
        event_data[:checkout_initiated] = {
            value: order.total,
            currency: order.currency,
            content_type: 'product',
            contents: order.line_items.map do |line_item|
                { id: line_item.variant.sku, quantity: line_item.quantity }
            end
        }
    end
end

if @product
    event_data[:current_product] = {
        content_type: 'product',
        content_name: @product.name,
        content_ids: [@product.master.sku]
    }
end

%>
<script type="text/javascript" data-tag="facebook">
    !function(f,b,e,v,n,t,s) {if (f.fbq) return;n = f.fbq = function() { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) };if (!f._fbq) f._fbq=n;n.push = n; n.loaded = !0; n.version = '2.0'; n.queue=[]; t = b.createElement(e); t.async = !0; t.src = v;s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s);}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js');

    fbq('init', '<%= ENV['FACEBOOK_PIXEL_ID'] %>');
    fbq('track', 'PageView');

    <% if event_data[:order].present? %>
        fbq('track', 'Purchase', <%== event_data[:order].to_json %>);
        window.solidusSeoDataLayer('facebook', 'purchase');
    <% end %>

    <% if event_data[:added_to_cart].present? %>
        fbq('track', 'AddToCart', <%== event_data[:added_to_cart].to_json %>);
        window.solidusSeoDataLayer('facebook', 'addtocart');
    <% end %>

    <% if event_data[:checkout_initiated].present? %>
        fbq('track', 'InitiateCheckout', <%== event_data[:checkout_initiated].to_json %>);
        window.solidusSeoDataLayer('facebook', 'initiatecheckout');
    <% end %>

    <% if event_data[:current_product].present? %>
        fbq('track', 'ViewContent', <%== event_data[:current_product].to_json %>);
        window.solidusSeoDataLayer('facebook', 'viewcontent');
    <% end %>
</script>
<noscript>
    <img height="1" width="1" src="https://www.facebook.com/tr?id=<%= ENV['FACEBOOK_PIXEL_ID'] %>&ev=PageView&noscript=1" />
</noscript>