(function(render) {
  if (document.readyState === 'complete') {
    render(document);
  }
  else {
    document.addEventListener('DOMContentLoaded', function() {
      render(document);
    });

    window.addEventListener('load', function() {
      render(document);
    });
  }
})(function(doc) {
  var container = doc.querySelector('.trustsiegel-siegel');
  var type = container.dataset.type;
  var status = container.dataset.status ? container.dataset.status : 'zugeklappt';
  var orientation = container.dataset.orientation;
  var color = type === 'hochkant-color' ? 'individuell/' + container.dataset.colors : container.dataset.color;
  var topDesktop = container.dataset.topdesktop;
  var bottomMobile = container.dataset.bottommobile;
  var signName = '14b917b40ad932253dfbdf642f641b80' + type + orientation + color;

  if (window.tsRegisteredSigns) {
    if (window.tsRegisteredSigns.includes(signName)) {
      return;
    }
  }
  else {
    window.tsRegisteredSigns = [];
  }

  window.tsRegisteredSigns.push(signName);

  switch (type) {
    case 'hochkant-color':
    case 'hochkant':
      var signColor = color === 'schwarz' ? '000000' : '030F45';
      var minimizedImageDesktop = '<img src="https://trustsiegel.de/trustsiegel-svg-v2/14b917b40ad932253dfbdf642f641b80/minimized/' + orientation + '/' + color + '/siegel.svg" style="display:block;" width="30" height="281">';
      var minimiedImageMobileLeft = '<svg width="30" height="50" viewBox="0 0 30 50" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H25C27.7614 0 30 2.23858 30 5V45C30 47.7614 27.7614 50 25 50H0V0Z" fill="#' + signColor + '"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20.8426 15C20.8402 16.4895 20.3265 17.9343 19.3851 19.0992C18.4438 20.2641 17.1302 21.0805 15.6583 21.4154C14.1863 21.7504 12.6427 21.5843 11.2788 20.9441C9.91485 20.3038 8.81088 19.2272 8.14663 17.8894C7.48237 16.5517 7.29694 15.0317 7.62054 13.5768C7.94414 12.1219 8.7577 10.8179 9.92877 9.87699C11.0998 8.93612 12.5594 8.41383 14.07 8.39513C15.5805 8.37642 17.0529 8.86242 18.2476 9.774L19.9797 8.05976C18.3793 6.75556 16.3761 6.02785 14.3 5.99656C12.224 5.96527 10.1991 6.63223 8.55901 7.88758C6.91892 9.14294 5.76153 10.9118 5.27756 12.9026C4.7936 14.8933 5.01193 16.9873 5.89659 18.8393C6.78124 20.6914 8.27943 22.191 10.1443 23.091C12.0091 23.9911 14.1293 24.238 16.1554 23.7909C18.1816 23.3438 19.9928 22.2294 21.2906 20.6314C22.5884 19.0334 23.2953 17.0472 23.2949 15C23.2939 14.0442 23.1407 13.0945 22.8408 12.1855L20.8037 14.1749C20.8328 14.4489 20.8458 14.7245 20.8426 15V15Z" fill="white"/><path d="M22.432 6.92111L14.926 14.3283C14.7598 14.4893 14.5361 14.5795 14.3031 14.5795C14.0702 14.5795 13.8465 14.4893 13.6803 14.3283L11.254 12.0256C11.0889 11.865 10.8663 11.775 10.6344 11.775C10.4025 11.775 10.18 11.865 10.0149 12.0256L9.21691 12.838C9.0517 13.0021 8.959 13.224 8.959 13.4552C8.959 13.6865 9.0517 13.9084 9.21691 14.0725L13.7063 18.467C13.7879 18.5492 13.8852 18.6145 13.9927 18.6591C14.1003 18.7037 14.2157 18.7266 14.3323 18.7266C14.449 18.7266 14.5644 18.7037 14.6719 18.6591C14.7794 18.6145 14.8768 18.5492 14.9584 18.467L24.5405 9C24.7057 8.83585 24.7984 8.614 24.7984 8.38275C24.7984 8.1515 24.7057 7.92957 24.5405 7.76542L23.6906 6.92111C23.523 6.75783 23.2969 6.66624 23.0613 6.66624C22.8257 6.66624 22.5996 6.75783 22.432 6.92111V6.92111Z" fill="#F9B403"/><path d="M10 44L10 31L21 37.5L10 44Z" fill="white"/></svg>';
      var minimiedImageMobileRight = '<svg width="30" height="50" viewBox="0 0 30 50" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 5C0 2.23858 2.23858 0 5 0H30V50H5C2.23858 50 0 47.7614 0 45V5Z" fill="#' + signColor + '"/><g clip-path="url(#clip0_110_10)"><path fill-rule="evenodd" clip-rule="evenodd" d="M20.8426 15C20.8402 16.4895 20.3265 17.9343 19.3851 19.0992C18.4438 20.2641 17.1302 21.0805 15.6583 21.4155C14.1863 21.7504 12.6427 21.5843 11.2788 20.9441C9.91485 20.3038 8.81088 19.2272 8.14663 17.8894C7.48237 16.5517 7.29694 15.0317 7.62054 13.5768C7.94414 12.1219 8.7577 10.8179 9.92877 9.87699C11.0998 8.93612 12.5594 8.41383 14.07 8.39513C15.5805 8.37643 17.0529 8.86242 18.2476 9.774L19.9797 8.05976C18.3793 6.75556 16.3761 6.02785 14.3 5.99656C12.224 5.96527 10.1991 6.63223 8.55901 7.88759C6.91892 9.14294 5.76153 10.9118 5.27756 12.9026C4.7936 14.8933 5.01193 16.9873 5.89659 18.8393C6.78124 20.6914 8.27943 22.191 10.1443 23.091C12.0091 23.9911 14.1293 24.238 16.1554 23.7909C18.1816 23.3438 19.9928 22.2294 21.2906 20.6314C22.5884 19.0334 23.2953 17.0472 23.2949 15C23.2939 14.0442 23.1407 13.0945 22.8408 12.1855L20.8037 14.1749C20.8328 14.4489 20.8458 14.7245 20.8426 15V15Z" fill="white"/><path d="M22.432 6.92111L14.926 14.3283C14.7598 14.4893 14.5361 14.5795 14.3031 14.5795C14.0702 14.5795 13.8465 14.4893 13.6803 14.3283L11.254 12.0256C11.0889 11.865 10.8663 11.775 10.6344 11.775C10.4025 11.775 10.18 11.865 10.0149 12.0256L9.21691 12.838C9.0517 13.0021 8.959 13.224 8.959 13.4552C8.959 13.6865 9.0517 13.9084 9.21691 14.0725L13.7063 18.467C13.7879 18.5492 13.8852 18.6145 13.9927 18.6591C14.1003 18.7037 14.2157 18.7266 14.3323 18.7266C14.449 18.7266 14.5644 18.7037 14.6719 18.6591C14.7794 18.6145 14.8768 18.5492 14.9584 18.467L24.5405 9C24.7057 8.83585 24.7984 8.614 24.7984 8.38275C24.7984 8.1515 24.7057 7.92957 24.5405 7.76542L23.6906 6.92111C23.523 6.75783 23.2969 6.66624 23.0613 6.66624C22.8257 6.66624 22.5996 6.75783 22.432 6.92111V6.92111Z" fill="#F9B403"/></g><g clip-path="url(#clip1_110_10)"><path d="M21 31L21 44L10 37.5L21 31Z" fill="white"/></g><defs><clipPath id="clip0_110_10"><rect width="19.8" height="18" fill="white" transform="translate(5 6)"/></clipPath><clipPath id="clip1_110_10"><rect width="13" height="11" fill="white" transform="translate(10 44) rotate(-90)"/></clipPath></defs></svg>';
      var maximizedImage = '<img src="https://trustsiegel.de/trustsiegel-svg-v2/14b917b40ad932253dfbdf642f641b80/' + type + '/' + orientation + '/' + color + '/siegel.svg" style="display:block;" width="160" height="281">';
      var direction = orientation == 'links' ? 'left' : 'right';
      var wrapper = document.createElement('div');
      var maximizedLink = document.createElement('a');
      var minimizedLink = document.createElement('a');
      var open = status === 'offen';
      var translateX = direction == 'left' ? '-160px' : '160px';
      var mediaQuery = window.matchMedia("(min-width: 700px)");
      var minimiedImageMobile = orientation === 'rechts' ? minimiedImageMobileRight : minimiedImageMobileLeft;
      var minimizedImage = mediaQuery.matches ? minimizedImageDesktop : minimiedImageMobile;

      minimizedLink.addEventListener('click', function(event) {
        event.preventDefault();

        if (open) {
          wrapper.style.transform = 'translateX(' + translateX + ')';
          minimizedLink.style.opacity = 1;
        }
        else {
          wrapper.style.transform = 'translateX(0)';
          minimizedLink.style.opacity = 0;
        }
        open = ! open;
      });

      maximizedLink.addEventListener('click', function(event) {
        var isCloseButtonY = event.layerY <= 40;
        var isCloseButtonX = false;

        if (direction == 'left') {
          isCloseButtonX = event.layerX >= 130;
        }
        else {
          isCloseButtonX = event.layerX <= 80;
        }

        if (isCloseButtonX && isCloseButtonY) {
          event.preventDefault();

          open = false;
          wrapper.style.transform = 'translateX(' + translateX + ')';
          minimizedLink.style.opacity = 1;
        }
      });

      minimizedLink.href = '#';
      minimizedLink.style.display = 'block';
      minimizedLink.style.width = '30px';
      minimizedLink.style.pointerEvents = 'all';

      maximizedLink.href = 'https://trustsiegel.de/profil/koeln-dialog/';
      maximizedLink.setAttribute('target', '_blank');
      maximizedLink.setAttribute('rel', 'noopener noreferrer');
      maximizedLink.style.display = 'block';
      maximizedLink.style.width = '160px';
      maximizedLink.style.pointerEvents = 'all';

      minimizedLink.innerHTML = minimizedImage;
      maximizedLink.innerHTML = maximizedImage;

      wrapper.append(minimizedLink);
      if (direction == 'left') {
        wrapper.prepend(maximizedLink);
      }
      else {
        wrapper.append(maximizedLink);
      }

      container.style.position = 'fixed';
      container.style[direction] = 0;
      container.style.zIndex = 999990;
      container.style.overflow = 'hidden';
      container.style.pointerEvents = 'none';

      if (mediaQuery.matches) {
        container.style.top = topDesktop + 'px';
      }
      else {
        container.style.bottom = bottomMobile + 'px';
        minimizedLink.style.alignSelf = 'flex-end';
      }

      wrapper.style.display = 'flex';
      wrapper.style.width = '190px';
      wrapper.style.transform = 'translateX(' + translateX + ')';
      wrapper.style.transition = 'transform .3s ease';

      if (open) {
        wrapper.style.transform = 'translateX(0)';
        minimizedLink.style.opacity = 0;
      }

      container.appendChild(wrapper);
      break;
  }
});