function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for(let i = 0; i <ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
//const loggedIn = getCookie("JWT-TOKEN");
//if(loggedIn.length){
//newUrl = new URL(window.location.href);
//if(!newUrl.searchParams.has("cd")) {
// newUrl.searchParams.set("cd", true);
//window.location.href = newUrl.href;
//}
//}<!--(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PDKTG5L');--><!-- --><!--
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:3277744,hjsv:6};
a=o.getElementsByTagName('head')[0];
r=o.createElement('script');r.async=1;
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-->
function analyticsInit() {if (window.gtmDidInit) {
return false;
}
window.gtmDidInit = true;
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-PDKTG5L');(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:3277744,hjsv:6};
a=o.getElementsByTagName('head')[0];
r=o.createElement('script');r.async=1;
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');var googleOptimize = document.createElement('script');
googleOptimize .setAttribute('src','https://www.googleoptimize.com/optimize.js?id=OPT-KHT7PBM');
document.head.appendChild(googleOptimize);
};
document.addEventListener('scroll', analyticsInit);
document.addEventListener('mousemove', analyticsInit);
document.addEventListener('touchstart', analyticsInit);
Keyboards with language-specific signs now online - SuperMemo show top banner:1 Main navigation Keyboards with language-specific signs now online Good news for all our SuperMemo.com website users: we have recently added special keyboards with language-specific signs in all our courses online.
Filling in gaps in online courses has never been easier.
Whenever you come across a gap-filling exercise in your online course, you will see a small icon with a keyboard next to it. Click on the icon and a keyboard with your language-specific signs will appear. Click the letter that you need to fill in the gap. Then close the keyboard and check your answer as usual. Installing your language keyboard is no longer necessary!
The keyboard will also be available in our apps soon! We will let you know when it is ready.
Enjoy learning with SuperMemo!
The SuperMemo Team
© 2026 SuperMemo World sp. z o.o. Icon chevron up <!---->