+ // Return it
+ return $GLOBALS[__FUNCTION__][$userid][$level];
+}
+
+// Gets given user's total referral
+function getUsersTotalLockedReferrals ($userid, $level = NULL) {
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level[' . gettype($level) . ']=' . $level . ' - ENTERED!');
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__][$userid][$level])) {
+ // Default is all refs
+ $add = '';
+
+ // Is the not level NULL?
+ if (!is_null($level)) {
+ // Then add referral level
+ $add = ' AND `r`.`level`=' . bigintval($level);
+ } // END - if
+
+ // Check for all referrals
+ $result = sqlQueryEscaped("SELECT
+ COUNT(`d`.`userid`) AS `cnt`
+FROM
+ `{?_MYSQL_PREFIX?}_user_data` AS `d`
+INNER JOIN
+ `{?_MYSQL_PREFIX?}_user_refs` AS `r`
+ON
+ `d`.`userid`=`r`.`refid`
+WHERE
+ `d`.`status` != 'CONFIRMED' AND
+ `r`.`userid`=%s
+ " . $add . "
+ORDER BY
+ `d`.`userid` ASC
+LIMIT 1",
+ array(
+ $userid
+ ), __FUNCTION__, __LINE__);
+
+ // Load count
+ list($GLOBALS[__FUNCTION__][$userid][$level]) = sqlFetchRow($result);
+
+ // Free result
+ sqlFreeResult($result);
+ } // END - if
+
+ // Return it
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level[' . gettype($level) . ']=' . $level . ':' . $GLOBALS[__FUNCTION__][$userid][$level] . ' - EXIT!');
+ return $GLOBALS[__FUNCTION__][$userid][$level];
+}
+
+// Converts, if found, dollar data to get element
+function convertDollarDataToGetElement ($data) {
+ // Is first char a dollar?
+ if (substr($data, 0, 1) == chr(36)) {
+ // Use last part for getRequestElement()
+ $data = getRequestElement(substr($data, 1));
+ } // END - if
+
+ // Return it
+ return $data;
+}
+
+// Wrapper function for SQL layer to speed-up things
+function isSqlDebugEnabled () {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__] = ((!isCssOutputMode()) && (isDebugModeEnabled()) && (isSqlDebuggingEnabled()));
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__];
+}
+
+// Wrapper function to wrap call of wordwrap()
+function wrapWords ($text) {
+ // Wrap words
+ $wrapped = wordwrap($test, getWordWrap());
+
+ // Return it
+ return $wrapped;
+}
+
+// Encodes given data into a JSON object
+function encodeJson ($data) {
+ // Encode it
+ return json_encode($data, JSON_FORCE_OBJECT);
+}
+
+// Get all extension files
+function loadAllExtensionsByTemplate () {
+ // Get all
+ $extensions = getArrayFromDirectory(
+ 'templates/' . getLanguage() . '/html/ext/',
+ 'ext_',
+ false,
+ false,
+ array(),
+ '.tpl',
+ '@(\.|\.\.)$@',
+ false
+ );
+
+ // Return them
+ return $extensions;
+}
+
+// Wrapper function to allow full float values as supported by current database layout
+function translateFullComma ($dotted) {
+ // Call inner function
+ return translateComma($dotted, TRUE, 5);
+}
+
+// Wrapper to check if the first element to be shifted is set to given value
+function shift_array (&$array, $value, $key = '0') {
+ // Is the element set and value matches?
+ assert(is_array($array), 'array[]=' . gettype($array), ',expected: array');
+ assert(isset($array[$key]), 'array[' . $key . '] not set.');
+ assert(($array[$key] === $value), ',array[' . $key . ']=' . $array[$key] . ',value=' . $value);
+
+ // Shift it
+ array_shift($array);
+}
+
+// Wrapper for str_pad() with left padding zeros
+function padLeftZero ($str, $amount = 2) {
+ // Is str_pad() there?
+ if (function_exists('str_pad')) {
+ // Use prependZeros()
+ return prependZeros($str, $amount);
+ } else {
+ // Pad it
+ return str_pad($str, $amount, '0', STR_PAD_LEFT);
+ }
+}
+
+// Calculates percentage
+function calculatePercentageRate ($current, $total) {
+ // Default is zero
+ $rate = '0.0';
+
+ // Is sent larger zero? (Prevents division-by-zero)
+ if ($total > 0) {
+ // Calculate it (it should be "translated" alter on)
+ $rate = ($current / $total * 100);
+ } // END - if
+
+ // The should be a .0 at the end?
+ if (strpos($rate, '.') === FALSE) {
+ // No, then add it
+ $rate .= '.0';
+ } // END - if
+
+ // Return it
+ return $rate;
+}
+
+// Checks whether an array is filled with entries
+function isFilledArray ($array) {
+ // Determine it
+ return ((is_array($array)) && (count($array) > 0));
+}
+
+// Checks whether this script runs on a developer system (called with localhost/127.0.0.1 SERVER_NAME)
+function isDeveloperSystem () {
+ // Determine it
+ return in_array(detectServerName(), array('localhost', '127.0.0.1'));
+}
+
+// Checks whether given subject line has '_ref' suffix
+function ifSubjectHasReferralSuffix ($subject) {
+ // Is there cache?
+ if (!isset($GLOBALS[__FUNCTION__][$subject])) {
+ // Determine it
+ $GLOBALS[__FUNCTION__][$subject] = (substr($subject, -4, 4) == '_ref');
+ } // END - if
+
+ // Return cache
+ return $GLOBALS[__FUNCTION__][$subject];