-if (!defined ('NL'))
- define ('NL', "\n");
-
-define ('JIRAFEAU_INFINITY', -1);
-define ('JIRAFEAU_MINUTE', 60); // 60
-define ('JIRAFEAU_HOUR', 3600); // JIRAFEAU_MINUTE * 60
-define ('JIRAFEAU_DAY', 86400); // JIRAFEAU_HOUR * 24
-define ('JIRAFEAU_WEEK', 604800); // JIRAFEAU_DAY * 7
-define ('JIRAFEAU_MONTH', 2419200); // JIRAFEAU_WEEK * 4
-define ('JIRAFEAU_QUARTER', 7257600); // JIRAFEAU_MONTH * 3
-define ('JIRAFEAU_YEAR', 29030400); // JIRAFEAU_MONTH * 12
-
-?>
+if (!defined('NL')) {
+ define('NL', "\n");
+}
+if (!defined('QUOTE')) {
+ define('QUOTE', "'");
+}
+
+define('JIRAFEAU_INFINITY', -1);
+define('JIRAFEAU_MINUTE', 60); // 60
+define('JIRAFEAU_HOUR', 3600); // JIRAFEAU_MINUTE * 60
+define('JIRAFEAU_DAY', 86400); // JIRAFEAU_HOUR * 24
+define('JIRAFEAU_WEEK', 604800); // JIRAFEAU_DAY * 7
+define('JIRAFEAU_FORTNIGHT', 1209600); // JIRAFEAU_WEEK * 2
+define('JIRAFEAU_MONTH', 2592000); // JIRAFEAU_DAY * 30
+define('JIRAFEAU_QUARTER', 7776000); // JIRAFEAU_DAY * 90
+define('JIRAFEAU_YEAR', 31536000); // JIRAFEAU_DAY * 365
+
+define('JIRAFEAU_SODIUM_CHUNKSIZE', 1024);
+
+// Define some Sodium constants from newer PHP versions if they are not available
+
+if (extension_loaded('sodium')) {
+ if (!defined('SSODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES')) {
+ define('SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES', 32);
+ }
+
+ if (!defined('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES')) {
+ define('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES', 24);
+ }
+
+ if (!defined('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES')) {
+ define('SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES', 17);
+ }
+}
+
+// set UTC as default timezone for all date/time functions
+date_default_timezone_set('UTC');