+// "Getter" for seconds from given time unit
+function getSecondsFromTimeUnit ($timeUnit) {
+ // Default is not found
+ $seconds = NULL;
+
+ // "Detect" it
+ switch ($timeUnit) {
+ case 's': // Seconds = 1
+ $seconds = 1;
+ break;
+
+ case 'm': // Minutes
+ $seconds = 60;
+ break;
+
+ case 'h': // Hours
+ $seconds = 60*60;
+ break;
+
+ case 'D': // Days
+ $seconds = 60*60*24;
+ break;
+
+ case 'W': // Weeks
+ $seconds = 60*60*24*7;
+ break;
+
+ default: // Unsupported
+ reportBug(__FUNCTION__, __LINE__, 'Unsupported time unit ' . $timeUnit . ' detected.');
+ break;
+ } // END - switch
+
+ // Return value
+ return $seconds;
+}
+
+// Calulates value for given seconds and time unit
+function caluculateTimeUnitValue ($seconds, $timeUnit) {
+ // Calculate it
+ return ($seconds / getSecondsFromTimeUnit($timeUnit));
+}
+
+// "Getter" for an array from given one but only one index of it
+function getArrayFromArrayIndex ($array, $key) {
+ // Some simple validation
+ assert(isset($array[0][$key]));
+
+ // Init new array
+ $newArray = array();
+
+ // "Walk" through all elements
+ foreach ($array as $element) {
+ $newArray[] = $element[$key];
+ } // END - if
+
+ // Return it
+ return $newArray;
+}
+
+/**
+ * Compress given data and encodes it into BASE64 to be stored in database with
+ * SQL_QUERY_ESC()
+ *
+ * @param $data Data to be compressed and encoded
+ * @return $data Compressed+encoded data
+ */
+function compress ($data) {
+ // Compress it
+ return base64_encode(gzcompress($data));
+}
+
+/**
+ * Decompress given data previously compressed with compress().
+ *
+ * @param $data Data compressed with compress()
+ * @reurn $data Uncompressed data
+ */
+function decompress ($data) {
+ // Decompress it
+ return gzuncompress(base64_decode($data));
+}
+
+/**
+ * Converts given charset in given string to UTF-8 if not UTF-8. This function
+ * is currently limited to iconv().
+ *
+ * @param $str String to convert charset in
+ * @param $charset Charset to convert from
+ * @return $str Converted string
+ */
+function convertCharsetToUtf8 ($str, $charset) {
+ // Is iconv() available?
+ if (!function_exists('iconv')) {
+ // Please make it sure
+ reportBug(__FUNCTION__, __LINE__, 'PHP function iconv() is currently required to do charset convertion.');
+ } // END - if
+
+ // Is the charset not UTF-8?
+ if (strtoupper($charset) != 'UTF-8') {
+ // Convert it to UTF-8
+ $str = iconv(strtoupper($charset), 'UTF-8//TRANSLIT', $str);
+ } // END - if
+
+ // Return converted string
+ return $str;
+}
+