function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var Header = /*#__PURE__*/function () {
  function Header() {
    var _this = this;
    Promise.all([this.fetchGameGameButtons(), this.fetchGameButtonTemplate()]).then(function (response) {
      var model = new GP.Ractive.GPModel({
        el: document.querySelector('#playGamesOverlay div.wrapper div.playNowOverlayInnerContent'),
        data: response[0],
        template: response[1]
      });
      _this.bindGameButtonHoverEvent();
      $(function () {
        if (GP.ReleaseControl.hasAccess('Revamp/UI/Header')) {
          GP.AssetManager.loadJS('gp/modules/website/v2/alternatingheaderlogos.js');
        }
        _this.initPlayGamesDropdown();
      });
      _this.hookEvents();

      // Initialize storage /before/ $() because document might already be ready
      _this.storage = StorageFactory.get('Website/Header');
      _this.makeResponsive();
      _this.bindMenuEvents();
      if (!GP.User.isLogged()) {
        var languageDropdownBtn = $('#selectLanguageImage');
        languageDropdownBtn.on('click', _this.toggleLanguageDropdown);
      }
      if (GP && typeof GP.Browser != 'undefined' && GP.Browser.isIE()) {
        _this.checkForIEStuff();
      }
      if (_this.storage.get('openLoginDialog') === true) {
        GP.setInterval('awaitOpenUserLoginDialog', function () {
          if (GP.User.hasOwnProperty('Login')) {
            GP.User.Login.openDialog('loginTooltipBtn');
            history.pushState('?openLoginDialog=1', '', '');
            GP.clearInterval('awaitOpenUserLoginDialog');
          }
        }, 10);
      }
      var url = window.location.href;
      var paramObj = GP.Utils.URL.getParams(url);
      if (paramObj.hasOwnProperty('openForgotLoginDetails') && typeof d_MOBILE_SITE !== 'undefined' && d_MOBILE_SITE) {
        GP.setInterval('awaitOpenMobileForgotDetailsDialog', function () {
          if (GP.User.hasOwnProperty('ForgotLoginDetails')) {
            GP.User.ForgotLoginDetails.openDialog(paramObj['username'], paramObj['code']);
            history.pushState('?openForgotLoginDetails=1', '', '');
            GP.clearInterval('awaitOpenMobileForgotDetailsDialog');
          }
        }, 100);
      }
    });
    if (GP && typeof GP.Browser != 'undefined') {
      GP.Browser.removeSensitiveQueryParametersFromAddressBar();
    }
  }
  var _proto = Header.prototype;
  _proto.checkForIEStuff = function checkForIEStuff() {
    var menuButton = $('#hamburgerDropdown');
    var menuOpened = false;
    var menuHandler = function menuHandler() {
      var hideAppletNeeded = $(window).width() < 1335;
      if (typeof GameClient == 'undefined' || !GameClient) {
        return;
      }
      if (hideAppletNeeded && menuButton.parent().hasClass('open') && GameClient.isVisible()) {
        menuOpened = true;
        GameClient.hide({
          overlay: true
        });
      } else {
        menuOpened = false;
        if (!GameClient.isVisible() && GP.OverlayManager.get('state') == 'idle') {
          GameClient.show({
            overlay: true
          });
        }
      }
    };
    var menuHandlerTimeout;
    function setMenuHandlerTimeout() {
      clearTimeout(menuHandlerTimeout);
      menuHandlerTimeout = setTimeout(menuHandler, 20);
    }
    menuButton.click(setMenuHandlerTimeout);
    $(window).resize(setMenuHandlerTimeout);
    $('body').click(function () {
      if (menuOpened) {
        setMenuHandlerTimeout();
      }
    });
  };
  _proto.hookEvents = function hookEvents() {
    GP.Hook.bind('GP.User.Login.Dialog.Open.Start', this.hideLoginTooltip);
    GP.Hook.bind('GP.User.Register.Dialog.Open.Start', this.hideLoginTooltip);
  };
  _proto.hideLoginTooltip = function hideLoginTooltip() {
    $('#loginTooltip').hide();
  };
  _proto.toggleLanguageDropdown = function toggleLanguageDropdown() {
    var languageDropdownBtn = $('#selectLanguageImage');
    var dropdownLanguageBar = $('#dropdownLanguageBar');
    var dropdownActive = dropdownLanguageBar.is(':visible');
    dropdownLanguageBar.toggle();
    languageDropdownBtn.toggleClass('active');
    languageDropdownBtn.data('awsma-toggle', dropdownActive ? 'Hide' : 'Show');
    $('#loginTooltip').toggleClass('hidden');
  };
  _proto.makeResponsive = function makeResponsive() {
    var _this2 = this;
    var $headerWrapper = $('header#website > div.wrapper');
    var $header = $('header#website');
    try {
      // Step 1 - calculate current widths
      var responsiveness = this.storage.get('responsiveness');
      var order = responsiveness['elements'];
      var nested = responsiveness['nested'];
      var widthForCalculation = responsiveness['widthForCalculation'];
      var elementContainers = ['header#website .wrapper-left', 'header#website .wrapper-center', 'header#website .wrapper-right'];
      var elements = {};
      var totalElementWidth = 0;
      if (!this.storage.get('hasCalculatedWidths')) {
        $.each(elementContainers, function (i, selector) {
          elements[selector] = $(selector).get(0).getBoundingClientRect().width;
          totalElementWidth += elements[selector];
        });
        this.storage.set('elementWidths', elements);
        this.storage.set('totalElementWidth', totalElementWidth);
        this.storage.set('hasCalculatedWidths', true);
      } else {
        elements = this.storage.get('elementWidths');
        totalElementWidth = this.storage.get('totalElementWidth');
      }
      var headerWidth = $headerWrapper.get(0).getBoundingClientRect().width;
      var headerMaxWidth = parseInt($headerWrapper.css('max-width'));

      // Step 2 & 3
      //   - build and apply media queries
      //   - hide elements that don't fit regardless of media queries

      var headerHasFullWidth = Math.ceil(headerWidth) >= Math.ceil($header.outerWidth());
      var widthMap = {};
      var widthMargin = 20; // Give ourselves a margin of 20 pixels. It's difficult to predict when a vertical
      // scrollbar might appear - and even more difficult to correctly generate media queries that can handle them.
      // Instead, we just make some room for a scrollbar, so that nothing is ruined when it does appear.

      var shrinkingWidth = totalElementWidth + widthMargin + 1;
      var widthMapCSS = [];
      var itemRelations = this.storage.get('menuItemRelations');
      for (var elementIdentifier in widthForCalculation) {
        if (!widthForCalculation.hasOwnProperty(elementIdentifier)) {
          continue;
        }
        var element = $(elementIdentifier);
        if (!element.length) {
          continue;
        }

        // Elements in this list might get a greater width than they currently have.
        // Therefore, widthForCalculation contains the 'maximum width' for this element.
        // We simply add the "missing" width to shrinkingWidth to account for the potential
        // difference in widths.
        var widthToFake = Math.max(0, widthForCalculation[elementIdentifier] - element.get(0).getBoundingClientRect().width);
        shrinkingWidth += widthToFake;
      }
      var conditions = [];
      var _loop = function _loop() {
          if (!order.hasOwnProperty(_elementIdentifier)) {
            return 0; // continue
          }
          var element = $('header#website ' + order[_elementIdentifier]);
          if (!element.length) {
            return 0; // continue
          }
          var selector = 'header#website ' + order[_elementIdentifier] + ',' + '\n  ' + 'header#website ' + order[_elementIdentifier] + ' + li.separator ';
          var width = 0;
          $.each($(selector), function (i, x) {
            width += $(x).get(0).getBoundingClientRect().width;
          });
          var nestedWidth = 0;
          if (typeof nested[_elementIdentifier] !== 'undefined') {
            $.each(nested[_elementIdentifier], function (i, nestedElementIdentifier) {
              if (typeof widthMap[nestedElementIdentifier] === 'object') {
                nestedWidth += widthMap[nestedElementIdentifier]['width'];
              }
            });
            // The element we're currently checking, contains elements (children) that we've checked in an
            // earlier iteration of this for loop. That means we've already partially accounted for this
            // element's width.

            // For our calculations, we'll pretend that the current element is less wide.

            // For example, let's say we have a li#newsTab which contains an icon and a span.
            // The span would be one of the first elements we'd like to hide, so it's one of the first
            // elements in the variable "order" of this for loop. Let's say the span has a width of 40px,
            // and that li#newsTab itself (containing the span of 40px) has a width of 60px.

            // If we count the span as 40px and later the li#newsTab as 60px, then the "combined width"
            // of those elements would be 100px. That is wrong, and therefore we "pretend" that li#newsTab's
            // width is actually 100px - 40px = 60px.
            width -= nestedWidth;
          }
          widthMap[_elementIdentifier] = {
            width: width,
            elementIdentifier: order[_elementIdentifier]
          };
          var itemRelation = false;
          for (var headerItem in itemRelations) {
            if (!itemRelations.hasOwnProperty(headerItem)) {
              continue;
            }
            if (headerItem === order[_elementIdentifier]) {
              itemRelation = itemRelations[headerItem] + ', ' + itemRelations[headerItem] + ' + li[role=separator]';
              break;
            }
          }

          // If the header isn't using the full viewport width, we will need to manually hide objects
          // using JS if the content doesn't fit, since media queries won't work.
          var needManualFit = !headerHasFullWidth && shrinkingWidth > headerWidth || shrinkingWidth > headerMaxWidth;
          if (needManualFit && !GP.ReleaseControl.hasAccess('Revamp/UI/Header')) {
            // The screen might be wide enough, but the header has a max-width in which the elements don't fit
            GP.debug('Combined header element width of ' + shrinkingWidth + ' exceeds header width of ' + headerWidth + ', hiding element(s) ' + selector + ' with width ' + width);
            $(selector).hide();
          } else {
            var _condition = 'only screen and (max-width: ' + Math.ceil(shrinkingWidth) + 'px)';
            conditions.push(_condition);
            widthMapCSS.push('@media ' + _condition + ' {\n' + '  ' + selector + '{ display: none !important; }' + '\n' + '}');
            if (itemRelation) {
              var inverseCondition = 'only screen and (min-width: ' + Math.ceil(shrinkingWidth) + 'px)';
              widthMapCSS.push('@media ' + inverseCondition + ' {\n' + '  ' + itemRelation + ' {\n' + '    display: none !important;' + '\n  }\n' + '}');
            }
          }
          shrinkingWidth -= width;
        },
        _ret;
      for (var _elementIdentifier in order) {
        _ret = _loop();
        if (_ret === 0) continue;
      }
      $header.css('min-width', Math.ceil(shrinkingWidth - widthMargin + 1) + 'px');
      if (!(this.storage.get('hasSetMediaQueries') && $('style#responsiveHeader').length)) {
        GP.info('Setting mediaqueries');
        $('<style>').attr('id', 'responsiveHeader').html(widthMapCSS.join('\n')).appendTo('head');
        if (typeof window.matchMedia === 'function') {
          var mediaQueryObjects = {};
          for (var i = 0, l = conditions.length; i < l; i++) {
            var condition = conditions[i];
            var mediaQueryObject = window.matchMedia(condition);
            mediaQueryObjects[condition] = mediaQueryObject;
            mediaQueryObject.addListener(function () {
              _this2.adjustHeader();
            });
          }
        }
        this.storage.set('hasSetMediaQueries', true);
      }
    } catch (error) {
      GP.error(error);
    } finally {
      $header.css('overflow', 'visible');
    }
  };
  _proto.adjustHeader = function adjustHeader() {
    var wrappers = $('div.wrapper ul.menu-item-list');
    $('li.separator.hidden').removeClass('hidden');
    $.each(wrappers, function (i, wrapper) {
      var lastSeparator = null;
      var lastElement = null;
      $('li', wrapper).each(function (i, x) {
        if (!$(x).is(':visible')) {
          return true;
        }
        if ($(x).hasClass('separator')) {
          lastSeparator = $(x);
        }
        lastElement = $(x);
      });
      if (lastSeparator !== null && lastElement.is(lastSeparator)) {
        lastSeparator.addClass('hidden');
      }
    });
  };
  _proto.bindMenuEvents = function bindMenuEvents() {
    var menuButton = $('li.avatar');
    menuButton.bind('shown.bs.dropdown', function () {
      $('a#menuUserName').bigtext({
        maxfontsize: 14
      });
    });
    menuButton.bind('show.bs.dropdown', function () {
      if (typeof hideApplet === 'function') {
        hideApplet();
      }
    });
    menuButton.bind('hide.bs.dropdown', function () {
      if (typeof showApplet === 'function') {
        showApplet();
      }
    });
  };
  _proto.bindGameButtonHoverEvent = function bindGameButtonHoverEvent() {
    var overlay;
    var button;
    $('div.gamebutton a').mouseover(function (e) {
      e.stopPropagation();
      if (typeof d_MOBILE_SITE !== 'undefined' && d_MOBILE_SITE == true) {
        return;
      }
      overlay = $(this).find('div.game_container_overlay_wrapper');
      button = overlay.find('button.playButton');
      if ($(overlay).hasClass('offline')) return;
      overlay.stop(true, true).show();
      button.stop(true, true).show();
    });
    $('div.gamebutton a').mouseleave(function (e) {
      e.stopPropagation();
      if (typeof d_MOBILE_SITE !== 'undefined' && d_MOBILE_SITE == true) {
        return;
      }
      $(this).find('div.game_container_overlay_wrapper:not(.offline)').stop(true, true).hide();
    });
  };
  _proto.fetchGameGameButtons = function fetchGameGameButtons() {
    return GP.HTTP.doGet(d_SCRIPTPATH + 'website/fetchgamebuttons.php');
  };
  _proto.fetchGameButtonTemplate = function fetchGameButtonTemplate() {
    if (!GP.ReleaseControl.hasAccess('Revamp/UI/Header')) {
      return GP.getModule('AssetManager').getTemplate('website/gamebutton.tpl');
    }
    return GP.getModule('AssetManager').getTemplate('website/v2/gamebutton.tpl');
  };
  _proto.initPlayGamesDropdown = /*#__PURE__*/function () {
    var _initPlayGamesDropdown = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
      var _this3 = this;
      return _regeneratorRuntime().wrap(function _callee$(_context) {
        while (1) switch (_context.prev = _context.next) {
          case 0:
            if (!GP.ReleaseControl.hasAccess('Revamp/UI/Header')) {
              _context.next = 3;
              break;
            }
            _context.next = 3;
            return GP.AssetManager.loadJS('gp/modules/website/v2/headeroverlay.js');
          case 3:
            $('a#playGamesOverlayLink, a#playGamesOverlayMenuItem').on('click', function (e) {
              e.preventDefault();
              $('div#dropdownLanguageBar').hide();
              $('#selectLanguageImage').removeClass('active');
              $('div#backgroundCover').toggleClass('active');
              var gamesOverlayActive = $('div#playGamesOverlay').is(':visible');
              $(this).data('awsma-toggle', gamesOverlayActive ? 'Hide' : 'Show');
              disableFriendBubbles = gamesOverlayActive;
              if (typeof d_USERID !== 'undefined' && gamesOverlayActive) {
                retrieveFriendsOverviewFrontpage();
              }
              var parentLi = $(this).parent('li');
              $('div#playGamesOverlay').stop(true, true).slideToggle('fast');
              $('div.playNowOverlayInnerContent').fadeIn('fast');
              $('div.playNowOverlayContent').fadeIn('fast');
              parentLi.toggleClass('active');
              if (typeof pageMode !== 'undefined' && pageMode == 'ingame') !gamesOverlayActive ? hideApplet() : showApplet();
            });
            $(document).on('mouseup', function (e) {
              var playNowLi = $('#headerPlayNow');
              var gamesOverlay = $('div.playNowOverlayInnerContent');
              var gamesOverlayLink = $('a#playGamesOverlayLink');
              var playGamesOverlay = $('div#playGamesOverlay');
              var backgroundCover = $('div#backgroundCover');
              var selectLanguageImg = $('#selectLanguageImage');
              var isAnOverlayActive = selectLanguageImg.hasClass('active') || playNowLi.hasClass('active');
              if (!gamesOverlay.is(e.target) && gamesOverlay.has(e.target).length === 0 && !gamesOverlayLink.is(e.target) && gamesOverlayLink.has(e.target).length === 0) {
                backgroundCover.removeClass('active');
                playGamesOverlay.hide();
                playNowLi.removeClass('active');
                if (!selectLanguageImg.is(e.target) && selectLanguageImg.has(e.target).length === 0 && selectLanguageImg.hasClass('active')) {
                  _this3.toggleLanguageDropdown();
                }
                if (isAnOverlayActive && typeof GameClient !== 'undefined' && GameClient.isVisible() === false) {
                  GameClient.show();
                }
              }
            });
          case 5:
          case "end":
            return _context.stop();
        }
      }, _callee);
    }));
    function initPlayGamesDropdown() {
      return _initPlayGamesDropdown.apply(this, arguments);
    }
    return initPlayGamesDropdown;
  }();
  return Header;
}();
var GP = GP || {};
GP.Website = GP.Website || {};
GP.Website.Header = new Header();