{{#not dontRenderCore}}
  {{>ab_test_core}}
{{/not}}
{{#each tests}}
  {{#if fields.css}}
    {{#if (pageHasAbTest @root/data this ../isBookingPage ../isSearchResultPage ../isMyTui ../isHybris ../isPayments ../isAccommodationOnly)}}
    {{#not ../queryParams.dontRenderScriptTags}}<script>{{/not}}
    var styleTag = document.createElement('style')
    styleTag.innerHTML = '{{{fields.css}}}'
    document.head.appendChild(styleTag)
    {{#not ../queryParams.dontRenderScriptTags}}</script>{{/not}}
    {{/if}}
  {{/if}}
{{/each}}

{{#each tests}}
  {{#if (pageHasAbTest @root/data this ../isBookingPage ../isSearchResultPage ../isMyTui ../isHybris ../isPayments ../isAccommodationOnly)}}
    {{{replaceABTestScriptTags fields.original fields.testId 'originalInit' ../queryParams.dontRenderScriptTags}}}
    {{{replaceABTestScriptTags fields.variation1 fields.testId 'variation1Init' ../queryParams.dontRenderScriptTags}}}
    {{{replaceABTestScriptTags fields.variation2 fields.testId 'variation2Init' ../queryParams.dontRenderScriptTags}}}
    {{{replaceABTestScriptTags fields.variation3 fields.testId 'variation3Init' ../queryParams.dontRenderScriptTags}}}
    {{{replaceABTestScriptTags fields.variation4 fields.testId 'variation4Init' ../queryParams.dontRenderScriptTags}}}
    {{{replaceABTestScriptTags fields.segment.fields.segmentCode '' '' ../queryParams.dontRenderScriptTags}}}
    {{#not ../queryParams.dontRenderScriptTags}}<script>{{/not}}
    (function () {
      'use strict'

      var init = function () {
        var tuiCookie = superAbTesting.helper.getSegment(),
          eventLabel = '{{fields.experimentName}} - ',
          testId = {{fields.testId}},
          testKey = '{{fields.key}}',
          devices = '{{fields.devices}}',
          variantToSee = 0,
          cookieDistribution = {{generateCookieDistribution fields.experimentName fields.variationDistribution}},
          numberOfVariations = cookieDistribution.length,
          isInSegment = true

        for(var i = 0; i < numberOfVariations; i++) {
          if(cookieDistribution[i].indexOf(tuiCookie) > -1) {
            variantToSee = i
            break
          }
        }

        {{#if fields.segment.fields.segmentName}}
          isInSegment = window['{{fields.segment.fields.segmentName}}']()
        {{/if}}

        if (devices.indexOf(superAbTesting.helper.getDeviceType()) === -1 || !isInSegment) {
          return
        }

        var inTestGroup = false

        if (variantToSee === 0) {
          inTestGroup = window['originalInit' + testId]()
          if (inTestGroup) {
            eventLabel += 'Original'
          }
        } else {
          inTestGroup = window['variation' + variantToSee + 'Init' + testId]()
          if (inTestGroup) {
            eventLabel += 'Variation ' + variantToSee
          }
        }

        var data = {
          'eventCategory': 'TUI Experiment',
          'eventAction': 'display',
          'eventLabel': eventLabel,
          'event': 'genericTrackEventNonInteraction'
        }

        if (inTestGroup && window.dataLayer) {
          superAbTesting.helper.tests.push({ id: testId, variantToSee: variantToSee, key: testKey })
          window.dataLayer.push(data)
        }
      }
      if(location.search.indexOf('abtesting=off') < 0) {
        init()
      }
    }())
    {{#not ../queryParams.dontRenderScriptTags}}</script>{{/not}}
  {{/if}}
{{/each}}
