256 lines
10 KiB
HTML
Executable File
256 lines
10 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/html" lang="de">
|
|
<head>
|
|
<!-- Global Site Tag (gtag.js) - Google Analytics -->
|
|
<!--TODO Für Prod einkommentieren-->
|
|
<!--<script async src="https://www.googletagmanager.com/gtag/js?id=UA-73144353-3"></script>-->
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
|
|
function gtag() {
|
|
dataLayer.push(arguments)
|
|
};
|
|
gtag('js', new Date());
|
|
|
|
</script>
|
|
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta class='foundation-mq'>
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
<link rel="manifest" href="js/manifest.json">
|
|
|
|
<meta name="application-name" content="Matrix">
|
|
<meta name="msapplication-config" content="img/browserconfig.xml">
|
|
|
|
<title>WordRotator</title>
|
|
|
|
<!-- Le styles -->
|
|
<link href="core/css/foundation.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="core/css/framework.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="core/css/core.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="core/css/style.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="core/css/flashMessenger.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="core/css/theme.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="core/css/settingsSite.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="pwaAssets/css/pwaAssets.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
<link href="css/wordRotator.css" media="screen,print" rel="stylesheet" type="text/css">
|
|
|
|
</head>
|
|
<body class='blue'>
|
|
|
|
<div id='print-content'>
|
|
</div>
|
|
|
|
<nav class="top-bar title-bar">
|
|
<div class="row">
|
|
<div class="top-bar-title">
|
|
<strong>
|
|
<a class="hidden-link" href=".">
|
|
<span class="show-for-smedium">WordRotator</span>
|
|
<span class="show-for-small-only">WR</span>
|
|
</a>
|
|
</strong>
|
|
</div>
|
|
<span id='level-number-container'>
|
|
<span id='level-number'></span>
|
|
</span>
|
|
<span data-responsive-toggle="responsive-menu" id="responsive-menu-toggle" class="right" data-hide-for="always"
|
|
style="">
|
|
<button class="menu-icon" type="button" data-toggle=""></button>
|
|
</span>
|
|
<div id="action-bar">
|
|
<div class="top-bar-right">
|
|
<ul class="menu dropdown horizontal action-bar" id="action-bar-visible">
|
|
</ul>
|
|
</div>
|
|
<div id="responsive-menu" style="display: none;">
|
|
<div class='close-listener'></div>
|
|
<div class="top-bar-right">
|
|
<ul class="menu vertical action-bar hidden accordion-menu" id="action-bar-hidden"
|
|
data-responsive-menu="accordion medium-dropdown">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<div id='cookie-compliance' style="display: none">
|
|
<div class='row'>
|
|
<div class='columns small-9 medium-10' data-translation="we-use-cookie-hint"></div>
|
|
<div class='columns small-3 medium-2'>
|
|
<button id='close-cookie-msg' data-translation="close" class='button'>Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mainContainer">
|
|
<div class="row">
|
|
<div class="columns small-12" id="main-content">
|
|
<div id="site-content" role="main">
|
|
<div class='loader'>
|
|
<svg viewBox="0 0 32 32" width="32" height="32">
|
|
<circle r="14" id="spinner" cx="16" cy="16" fill="none"></circle>
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
<div id="flashMessageContainerAbsoulte">
|
|
<div id="flashMessageContainer"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<footer>
|
|
<!--<a data-site-name='policy' class='deep-link' data-translation="policy-heading">Privacy Policy</a>-->
|
|
<a href="https://apps.silas.link" target="_blank" rel = "noopener" data-translation="other-apps">Other Apps</a>
|
|
</footer>
|
|
<script>
|
|
|
|
var initPromise;
|
|
try {
|
|
function init() {
|
|
console.log("init started");
|
|
initPromise = new Promise(function (resolve) {
|
|
if (typeof Map === "undefined") {
|
|
window.Map = function () {
|
|
this.get = function (key) {
|
|
var hash = this.__createHash(key);
|
|
return this.__map[hash];
|
|
};
|
|
|
|
this.set = function (key, value) {
|
|
var hash = this.__createHash(key);
|
|
this.__map[hash] = value;
|
|
};
|
|
|
|
this.has = function (key) {
|
|
var hash = this.__createHash(key);
|
|
return this.__map[hash] === undefined;
|
|
};
|
|
|
|
this.__createHash = function (key) {
|
|
switch (typeof key) {
|
|
case 'function':
|
|
return 'function';
|
|
|
|
case 'undefined':
|
|
return 'undefined';
|
|
|
|
case 'string':
|
|
return '"' + key.replace('"', '""') + '"';
|
|
|
|
case 'object':
|
|
if (!key) {
|
|
return 'null';
|
|
}
|
|
|
|
switch (Object.prototype.toString.apply(key)) {
|
|
case '[object Array]':
|
|
var elements = [];
|
|
for (var i = 0; i < key.length; i++) {
|
|
elements.push(this.__createHash(key[i]));
|
|
}
|
|
return '[' + elements.join(',') + ']';
|
|
|
|
case '[object Date]':
|
|
return '#' + key.getUTCFullYear().toString()
|
|
+ (key.getUTCMonth() + 1).toString()
|
|
+ key.getUTCDate().toString()
|
|
+ key.getUTCHours().toString()
|
|
+ key.getUTCMinutes().toString()
|
|
+ key.getUTCSeconds().toString() + '#';
|
|
|
|
default:
|
|
var members = [];
|
|
for (var m in key) {
|
|
members.push(m + '=' + this.__createHash(key[m]));
|
|
}
|
|
members.sort();
|
|
return '{' + members.join(',') + '}';
|
|
}
|
|
|
|
default:
|
|
return key.toString();
|
|
}
|
|
};
|
|
|
|
this.__map = {};
|
|
}
|
|
}
|
|
resolve();
|
|
}).then(function () {
|
|
return new Promise(function (resolve) {
|
|
if (document.readyState === 'complete') {
|
|
resolve();
|
|
}
|
|
else {
|
|
window.addEventListener("load", function () {
|
|
resolve();
|
|
});
|
|
}
|
|
});
|
|
}).then(function () {
|
|
if ('serviceWorker' in navigator) {
|
|
console.log('sw in nav');
|
|
navigator.serviceWorker.register("service-worker.js").then(function (reg) {
|
|
if (reg.active) {
|
|
return;
|
|
}
|
|
reg.addEventListener("updatefound", function () {
|
|
var sw = (reg.installing || reg.waiting);
|
|
});
|
|
}).catch(function (err) {
|
|
console.log("SW-Error: ", err);
|
|
});
|
|
}
|
|
else {
|
|
console.log('sw not in nav');
|
|
}
|
|
|
|
}).then(function () {
|
|
var appScript = document.createElement("script");
|
|
appScript.defer = true;
|
|
var result = new Promise(function (resolve) {
|
|
appScript.onreadystatechange = function () {
|
|
if (appScript.readyState === "loaded" || appScript.readyState === "complete") {
|
|
appScript.onreadystatechange = null;
|
|
resolve();
|
|
}
|
|
}
|
|
});
|
|
appScript.src = "js/app.js";
|
|
// appScript.src = "js/app.min.js";
|
|
document.body.appendChild(appScript);
|
|
return result;
|
|
}).catch(function (e) {
|
|
console.log(e);
|
|
alert("There was an Error:\n" + e + "\nMaybe your Browser is too old.");
|
|
});
|
|
}
|
|
|
|
if (typeof Promise === 'undefined') {
|
|
// alert("Your Browser is maybe too old to run this site. Please update your browser!");
|
|
var promiseScript = document.createElement("script");
|
|
promiseScript.src = "//cdn.jsdelivr.net/bluebird/3.5.0/bluebird.min.js";
|
|
promiseScript.onload = function () {
|
|
init();
|
|
};
|
|
document.body.appendChild(promiseScript);
|
|
}
|
|
else {
|
|
init();
|
|
}
|
|
}
|
|
catch (e) {
|
|
console.log(e);
|
|
var error = "There was an Error:\n" + e.message + "\n\nMaybe your Browser is too old.";
|
|
alert(error);
|
|
document.body.innerHTML = error;
|
|
}
|
|
</script>
|
|
</body>
|
|
</html> |