]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/surfbar_functions.php
Fixes/rewrites for ext-surfbar:
[mailer.git] / inc / libs / surfbar_functions.php
index 2260039884b7d13acea6878d27bb9bfd2911fb5d..da2d55ded961963e2f6b848f4091084825bc5fe8 100644 (file)
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 // Some security stuff...
 if (!defined('__SECURITY')) {
        die();
-}
+} // END - if
 
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Admin functions
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //
 // Admin has added an URL with given user id and so on
 function SURFBAR_ADMIN_ADD_URL ($url, $limit, $reload) {
@@ -155,9 +153,9 @@ function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) {
 }
 
 //
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Member functions
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //
 // Member has added an URL
 function SURFBAR_MEMBER_ADD_URL ($url, $limit) {
@@ -189,8 +187,8 @@ function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
        $actionArray = SURFBAR_GET_ARRAY_FROM_STATUS($status);
 
        // Init HTML code
-       $OUT = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" width=\"100%\">
-<tr>\n";
+       $OUT = '<table border="0" cellspacing="0" cellpadding="1" width="100%">
+<tr>';
 
        // Calculate width
        $width = round(100 / count($actionArray));
@@ -199,17 +197,15 @@ function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
        foreach ($actionArray as $actionId => $action) {
                // Add form for this action
                $OUT .= loadTemplate('member_surfbar_list_form', true, array(
-                       'width'    => $width,
-                       'id'       => bigintval($urlId),
-                       'action'   => strtolower($action),
-                       'title'    => '{--MEMBER_SURFBAR_ACTION_' . strtoupper($action) . '_TITLE--}',
-                       'submit'   => '{--MEMBER_SURFBAR_ACTION_' . strtoupper($action) . '_SUBMIT--}',
+                       'width'  => $width,
+                       'url_id' => bigintval($urlId),
+                       'action' => strtolower($action)
                ));
        } // END - foreach
 
        // Close table
-       $OUT .= "</tr>
-</table>\n";
+       $OUT .= '</tr>
+</table>';
 
        // Return code
        return $OUT;
@@ -270,8 +266,8 @@ function SURFBAR_MEMBER_DO_FORM ($formData, $urlArray) {
 // Validate if the requested action can be performed on current URL status
 function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) {
        // Search for the requested action/status combination in database
-       $result = SQL_QUERY_ESC("SELECT new_status FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `action`='%s' AND `status`='%s' LIMIT 1",
-       array($action, $status), __FUNCTION__, __LINE__);
+       $result = SQL_QUERY_ESC("SELECT `actions_new_status` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_action`='%s' AND `actions_status`='%s' LIMIT 1",
+               array($action, $status), __FUNCTION__, __LINE__);
 
        // Is the entry there?
        $isValid = (SQL_NUMROWS($result) == 1);
@@ -290,9 +286,9 @@ function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) {
 }
 
 //
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Member actions
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //
 // Retreat a booked URL
 function SURFBAR_MEMBER_RETREAT_ACTION ($urlData) {
@@ -309,7 +305,7 @@ function SURFBAR_MEMBER_RETREAT_ACTION ($urlData) {
 function SURFBAR_MEMBER_BOOKNOW_ACTION ($urlData) {
        // Create the data array for next function call
        $data = array(
-       $urlData['id'] => $urlData
+               $urlData['id'] => $urlData
        );
 
        // Simply change the status here
@@ -366,25 +362,19 @@ function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) {
        // Translate some data if present
        $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
 
-       // Is the lock reason empty?
-       if (empty($urlData['lock_reason'])) {
-               // Fix it to three dashes
-               $urlData['lock_reason'] = '---';
-       } // END - if
-
        // Include fields only for action 'edit'
        if ($action == 'edit') {
                // Default is not limited
-               $urlData['limited_y'] = '';
-               $urlData['limited_n'] = ' checked="checked"';
-               $urlData['limited']   = 'false';
+               $urlData['limited_yes'] = '';
+               $urlData['limited_no']  = ' checked="checked"';
+               $urlData['limited']     = 'false';
 
                // Is this URL limited?
                if (SURFBAR_GET_VIEWS_MAX() > 0) {
                        // Then rewrite form data
-                       $urlData['limited_y'] = ' checked="checked"';
-                       $urlData['limited_n'] = '';
-                       $urlData['limited']   = 'true';
+                       $urlData['limited_yes'] = ' checked="checked"';
+                       $urlData['limited_no']  = '';
+                       $urlData['limited']     = 'true';
                } // END - if
        } // END - if
 
@@ -417,8 +407,8 @@ function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) {
                        $executed = SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
                } // END - if
        } else {
-               // Not found!
-               addFatalMessage(__FUNCTION__, __LINE__, getMessage('MEMBER_SURFBAR_EXECUTE_ACTION_404'), $functionName);
+               // Not found
+               addFatalMessage(__FUNCTION__, __LINE__, '{--MEMBER_SURFBAR_EXECUTE_ACTION_404--}', $functionName);
        }
 
        // Return status
@@ -449,9 +439,9 @@ function SURFBAR_MEMBER_EXECUTE_DELETE_ACTION ($urlData) {
        return true;
 }
 //
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                           Self-maintenance functions
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //
 // Main function
 function SURFBAR_HANDLE_SELF_MAINTENANCE () {
@@ -461,6 +451,7 @@ function SURFBAR_HANDLE_SELF_MAINTENANCE () {
        // Handle low-points amounts
        SURFBAR_HANDLE_LOW_POINTS();
 }
+
 // Handle URLs which limit has depleted
 function SURFBAR_HANDLE_DEPLETED_VIEWS () {
        // Get all URLs
@@ -474,7 +465,9 @@ function SURFBAR_HANDLE_DEPLETED_VIEWS () {
                        $data = $urlData;
 
                        // Rewrite array for next call
-                       $urlData[$id] = $data;
+                       $urlData = array(
+                               $id => $data
+                       );
 
                        // Handle the status
                        SURFBAR_CHANGE_STATUS($id, 'ACTIVE', 'DEPLETED', $urlData);
@@ -488,16 +481,14 @@ function SURFBAR_HANDLE_LOW_POINTS () {
        $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS(getConfig('surfbar_warn_low_points'));
 
        // "Walk" through all URLs
-       foreach ($userids['userid'] as $userid => $dummy) {
+       foreach ($userids['url_userid'] as $userid => $dummy) {
                // Is the last notification far enougth away to notify again?
                if ((time() - $userids['notified'][$userid]) >= getConfig('surfbar_low_interval')) {
                        // Prepare content
                        $content = array(
-                               'userid'   => $userid,
-                               'low'      => translateComma(getConfig('surfbar_warn_low_points')),
-                               'points'   => translateComma($userids['points'][$userid]),
-                               'notified' => generateDateTime($userids['notified'][$userid]),
-                               'interval' => createFancyTime(getConfig('surfbar_low_interval'))
+                               'url_userid' => $userid,
+                               'points'     => $userids['points'][$userid],
+                               'notified'   => $userids['notified'][$userid]
                        );
 
                        // Notify this user
@@ -511,9 +502,9 @@ function SURFBAR_HANDLE_LOW_POINTS () {
 }
 
 //
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Generic functions
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //
 
 // Looks up by an URL
@@ -573,7 +564,7 @@ ORDER BY
                ), __FUNCTION__, __LINE__);
 
        // Is there at least one record?
-       if (SQL_NUMROWS($result) > 0) {
+       if (!SQL_HASZERONUMS($result)) {
                // Then load all!
                while ($dataRow = SQL_FETCHARRAY($result)) {
                        // Shall we group these results?
@@ -604,16 +595,15 @@ function SURFBAR_REGISTER_URL ($url, $userid, $status = 'PENDING', $addMode = 'r
        // Prepare content
        $content = merge_array($extraFields, array(
                'url'         => $url,
-               'frametester' => generateFrametesterUrl($url),
                'url_userid'  => $userid,
                'url_status'  => $status,
        ));
 
        // Is limit/reload set?
-       if (!isset($config['limit'])) {
+       if (!isset($content['limit'])) {
                $content['limit']  = '0';
        } // END - if
-       if (!isset($config['reload'])) {
+       if (!isset($content['reload'])) {
                $content['reload'] = '0';
        } // END - if
 
@@ -669,27 +659,27 @@ function SURFBAR_NOTIFY_ADMIN ($messageType, $content) {
        $templateName = sprintf("admin_surfbar_%s", $messageType);
 
        // Prepare subject
-       $subject = getMessage(sprintf("ADMIN_SURFBAR_NOTIFY_%s_SUBJECT",
+       $subject = sprintf("{--ADMIN_SURFBAR_NOTIFY_%s_SUBJECT--}",
                strtoupper($messageType)
-       ));
+       );
 
        // Is the subject line there?
        if ((substr($subject, 0, 1) == '!') && (substr($subject, -1, 1) == '!')) {
                // Set default subject if following eval() wents wrong
-               $subject = getMaskedMessage('ADMIN_SURFBAR_NOTIFY_DEFAULT_SUBJECT', strtoupper($messageType));
+               $subject = '{%message,ADMIN_SURFBAR_NOTIFY_DEFAULT_SUBJECT=' . strtoupper($messageType) . '%}';
        } // END - if
 
        // Translate some data if present
        $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
 
        // Send the notification out
-       return sendAdminNotification($subject, $templateName, $content, $content['userid']);
+       return sendAdminNotification($subject, $templateName, $content, $content['url_userid']);
 }
 
 // Notify the user about the performed action
 function SURFBAR_NOTIFY_USER ($messageType, $content) {
        // Skip notification if userid is zero
-       if ($content['userid'] == '0') {
+       if ($content['url_userid'] == '0') {
                return false;
        } // END - if
 
@@ -697,24 +687,24 @@ function SURFBAR_NOTIFY_USER ($messageType, $content) {
        $templateName = sprintf("member_surfbar_%s", $messageType);
 
        // Prepare subject
-       $subject = getMessage(sprintf("MEMBER_SURFBAR_NOTIFY_%s_SUBJECT",
+       $subject = sprintf("{--MEMBER_SURFBAR_NOTIFY_%s_SUBJECT--}",
                strtoupper($messageType)
-       ));
+       );
 
        // Is the subject line there?
        if ((substr($subject, 0, 1) == '!') && (substr($subject, -1, 1) == '!')) {
                // Set default subject if following eval() wents wrong
-               $subject = getMessage('MEMBER_SURFBAR_NOTIFY_DEFAULT_SUBJECT');
+               $subject = '{--MEMBER_SURFBAR_NOTIFY_DEFAULT_SUBJECT--}';
        } // END - if
 
        // Translate some data if present
        $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
 
        // Load template
-       $mailText = loadEmailTemplate($templateName, $content, $content['userid']);
+       $mailText = loadEmailTemplate($templateName, $content, $content['url_userid']);
 
        // Send the email
-       return sendEmail($content['userid'], $subject, $mailText);
+       return sendEmail($content['url_userid'], $subject, $mailText);
 }
 
 // Translates some data for template usage
@@ -733,10 +723,10 @@ function translateSurfbarLimit ($limit) {
        // Is this zero?
        if ($limit == '0') {
                // Unlimited!
-               $return = getMessage('MEMBER_SURFBAR_UNLIMITED_VIEWS');
+               $return = '{--MEMBER_SURFBAR_UNLIMITED_VIEWS--}';
        } else {
                // Translate comma
-               $return = translateComma($limit);
+               $return = '{%pipe,translateComma=' . $limit . '%}';
        }
 
        // Return value
@@ -745,25 +735,67 @@ function translateSurfbarLimit ($limit) {
 
 // Translate the URL status
 function translateSurfbarUrlStatus ($status) {
-       // Create constant name
-       $constantName = sprintf("SURFBAR_URL_STATUS_%s", strtoupper($status));
+       // NULL must be handled carfefully
+       if ((is_null($status)) || (trim($status) == '')) {
+               // Is NULL, so return other language string
+               return '{--SURFBAR_URL_STATUS_NONE--}';
+       } else {
+               // Return regular result
+               return sprintf("{--SURFBAR_URL_STATUS_%s--}", strtoupper($status));
+       }
+}
 
-       // Get message
-       $statusTranslated = getMessage($constantName);
+// Translates the given action into a link title for members
+function translateMemberSurfbarActionToTitle ($action) {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$action])) {
+               // Construct default return string (unknown
+               $GLOBALS[__FUNCTION__][$action] = '{%message,MEMBER_SURFBAR_ACTION_UNKNOWN_TITLE=' . $action . '%}';
 
-       // Return result
-       return $statusTranslated;
+               // ... and the id's name
+               $messageId = 'MEMBER_SURFBAR_ACTION_' . strtoupper($action) . '_TITLE';
+
+               // Is the id there?
+               if (isMessageIdValid($messageId)) {
+                       // Then use it
+                       $GLOBALS[__FUNCTION__][$action] = '{--' . $messageId . '--}';
+               } // END - if
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$action];
+}
+
+// Translates the given action into a submit button for members
+function translateMemberSurfbarActionToSubmit ($action) {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$action])) {
+               // Construct default return string (unknown
+               $GLOBALS[__FUNCTION__][$action] = '{%message,MEMBER_SURFBAR_ACTION_UNKNOWN_SUBMIT=' . $action . '%}';
+
+               // ... and the id's name
+               $messageId = 'MEMBER_SURFBAR_ACTION_' . strtoupper($action) . '_SUBMIT';
+
+               // Is the id there?
+               if (isMessageIdValid($messageId)) {
+                       // Then use it
+                       $GLOBALS[__FUNCTION__][$action] = '{--' . $messageId . '--}';
+               } // END - if
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$action];
 }
 
 // Determine reward
-function SURFBAR_DETERMINE_REWARD ($onlyMin=false) {
+function SURFBAR_DETERMINE_REWARD ($onlyMin = false) {
        // Static values are default
        $reward = getConfig('surfbar_static_reward');
 
        // Do we have static or dynamic?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic reward
-               if ($onlyMin) {
+               if ($onlyMin === true) {
                        $reward += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
                } else {
                        $reward += SURFBAR_CALCULATE_DYNAMIC_ADD();
@@ -780,7 +812,7 @@ function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
        $costs  = getConfig('surfbar_static_costs');
 
        // Do we have static or dynamic?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic costs
                if ($onlyMin) {
                        $costs += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
@@ -806,7 +838,7 @@ function SURFBAR_CALCULATE_DYNAMIC_ADD () {
 // Determine right template name
 function SURFBAR_DETERMINE_TEMPLATE_NAME() {
        // Default is the frameset
-       $templateName = "surfbar_frameset";
+       $templateName = 'surfbar_frameset';
 
        // Any frame set? ;-)
        if (isGetRequestParameterSet('frame')) {
@@ -822,7 +854,7 @@ function SURFBAR_DETERMINE_TEMPLATE_NAME() {
 
 // Check if the "reload lock" of the current user is full, call this function
 // before you call SURFBAR_CHECK_RELOAD_LOCK().
-function SURFBAR_CHECK_RELOAD_FULL() {
+function SURFBAR_CHECK_RELOAD_FULL () {
        // Default is full!
        $isFull = true;
 
@@ -831,26 +863,26 @@ function SURFBAR_CHECK_RELOAD_FULL() {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Fixed surf lock is '.getConfig('surfbar_static_lock') . '', false);
 
        // Do we have dynamic model?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic lock
                $GLOBALS['surfbar_cache']['surf_lock'] += SURFBAR_CALCULATE_DYNAMIC_ADD();
        } // END - if
 
        // Ask the database
        $result = SQL_QUERY_ESC("SELECT
-       COUNT(l.locks_id) AS cnt
+       COUNT(l.`locks_id`) AS `cnt`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_locks` AS l
 INNER JOIN
        `{?_MYSQL_PREFIX?}_surfbar_urls` AS u
 ON
-       u.url_id=l.locks_url_id
+       u.`url_id`=l.`locks_url_id`
 WHERE
-       l.locks_userid=%s AND
-       (UNIX_TIMESTAMP() - ".SURFBAR_GET_SURF_LOCK().") < UNIX_TIMESTAMP(l.locks_last_surfed) AND
+       l.`locks_userid`=%s AND
+       (UNIX_TIMESTAMP() - {%%pipe,SURFBAR_GET_SURF_LOCK%%}) < UNIX_TIMESTAMP(l.`locks_last_surfed`) AND
        (
-               ((UNIX_TIMESTAMP(l.locks_last_surfed) - u.url_fixed_reload) < 0 AND u.url_fixed_reload > 0) OR
-               u.url_fixed_reload = '0'
+               ((UNIX_TIMESTAMP(l.`locks_last_surfed`) - u.`url_fixed_reload`) < 0 AND u.`url_fixed_reload` > 0) OR
+               u.`url_fixed_reload` = 0
        )
 LIMIT 1",
                array(getMemberId()), __FUNCTION__, __LINE__
@@ -885,15 +917,15 @@ function SURFBAR_GET_TOTAL_URLS ($status = 'ACTIVE', $excludeUserId = '0') {
        $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS();
 
        // If we dont get any user ids back, there are no URLs
-       if (count($userids['userid']) == 0) {
+       if (count($userids['url_userid']) == 0) {
                // No user ids found, no URLs!
                return 0;
        } // END - if
 
        // Is the exlude userid set?
-       if ($excludeUserId > 0) {
+       if (isValidUserId($excludeUserId)) {
                // Then add it
-               $userids['userid'][$excludeUserId] = $excludeUserId;
+               $userids['url_userid'][$excludeUserId] = $excludeUserId;
        } // END - if
 
        // Get amount from database
@@ -902,26 +934,29 @@ function SURFBAR_GET_TOTAL_URLS ($status = 'ACTIVE', $excludeUserId = '0') {
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_urls`
 WHERE
-       `url_userid` NOT IN (".implode(', ', $userids['userid']).") AND
+       `url_userid` NOT IN (".implode(', ', $userids['url_userid']).") AND
        `url_status`='%s'
 LIMIT 1",
                array($status), __FUNCTION__, __LINE__
        );
 
        // Fetch row
-       list($cnt) = SQL_FETCHROW($result);
+       list($count) = SQL_FETCHROW($result);
 
        // Free result
        SQL_FREERESULT($result);
 
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $count);
+
        // Return result
-       return $cnt;
+       return $count;
 }
 
 // Check wether the user is allowed to book more URLs
 function SURFBAR_IF_USER_BOOK_MORE_URLS ($userid = '0') {
        // Is this admin and userid is zero or does the user has some URLs left to book?
-       return ((($userid == '0') && (isAdmin())) || (SURFBAR_GET_TOTAL_USER_URLS($userid, '', array('REJECTED')) < getConfig('surfbar_max_order')));
+       return ((($userid == '0') && (isAdmin())) || (SURFBAR_GET_TOTAL_USER_URLS($userid, '', array('REJECTED')) < getSurfbarMaxOrder()));
 }
 
 // Get total amount of URLs of given status for current user
@@ -932,7 +967,7 @@ function SURFBAR_GET_TOTAL_USER_URLS ($userid = '0', $status = '', $exclude = ''
                $userid = getMemberId();
        } elseif ($userid == '0') {
                // Error!
-               return (getConfig('surfbar_max_order') + 1);
+               return (getSurfbarMaxOrder() + 1);
        }
 
        // Default is all URLs
@@ -954,22 +989,28 @@ function SURFBAR_GET_TOTAL_USER_URLS ($userid = '0', $status = '', $exclude = ''
        }
 
        // Get amount from database
-       $cnt = countSumTotalData($userid, 'surfbar_urls', 'url_id', 'url_userid', true, $add);
+       $count = countSumTotalData($userid, 'surfbar_urls', 'url_id', 'url_userid', true, $add);
 
        // Return result
-       return $cnt;
+       return $count;
 }
 
 // Generate a validation code for the given id number
 function SURFBAR_GENERATE_VALIDATION_CODE ($urlId, $salt = '') {
        // @TODO Invalid salt should be refused
+       $length = '0';
        $GLOBALS['surfbar_cache']['salt'] = 'INVALID';
 
-       // Get code length from config
-       $length = getConfig('code_length');
+       // Is extension ext-other there?
+       if (isExtensionActive('other')) {
+               // Get code length from config
+               $length = getCodeLength();
+       } // END - if
 
        // Fix length to 10
-       if ($length == '0') $length = 10;
+       if ($length == '0') {
+               $length = 10;
+       } // END - if
 
        // Generate a code until the length matches
        $valCode = '';
@@ -986,7 +1027,7 @@ function SURFBAR_GENERATE_VALIDATION_CODE ($urlId, $salt = '') {
                }
 
                // ... and now the validation code
-               $valCode = generateRandomCode($length, sha1(SURFBAR_GET_SALT().':'.$urlId), getMemberId());
+               $valCode = generateRandomCode($length, sha1(SURFBAR_GET_SALT() . getEncryptSeperator() . $urlId), getMemberId());
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'valCode='.valCode.'', false);
        } // END - while
 
@@ -1017,14 +1058,14 @@ function SURFBAR_CHECK_VALIDATION_CODE ($urlId, $check, $salt) {
 
 // Lockdown the userid/id combination (reload lock)
 function SURFBAR_LOCKDOWN_ID ($urlId) {
-       //* DEBUG: */ outputHtml('LOCK!');
+       //* DEBUG: */ debugOutput('LOCK!');
        ///* DEBUG: */ return;
        // Just add it to the database
-       SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_locks` (`locks_userid`, `locks_url_id`) VALUES (%s, %s)",
+       SQL_QUERY_ESC('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_locks` (`locks_userid`, `locks_url_id`) VALUES (%s, %s)',
                array(getMemberId(), bigintval($urlId)), __FUNCTION__, __LINE__);
 
        // Remove the salt from database
-       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_surfbar_salts` WHERE `salts_url_id`=%s AND `salts_userid`=%s LIMIT 1",
+       SQL_QUERY_ESC('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_surfbar_salts` WHERE `salts_url_id`=%s AND `salts_userid`=%s LIMIT 1',
                array(bigintval($urlId), getMemberId()), __FUNCTION__, __LINE__);
 }
 
@@ -1032,13 +1073,16 @@ function SURFBAR_LOCKDOWN_ID ($urlId) {
 function SURFBAR_PAY_POINTS () {
        // Remove it from the URL owner
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.SURFBAR_GET_USERID().',costs='.SURFBAR_GET_COSTS().'', false);
-       if (SURFBAR_GET_USERID() > 0) {
-               subtractPoints(sprintf("surfbar_%s", getConfig('surfbar_pay_model')), SURFBAR_GET_USERID(), SURFBAR_GET_COSTS());
+       if (isValidUserId(SURFBAR_GET_USERID())) {
+               subtractPoints(sprintf("surfbar_%s", getSurfbarPaymentModel()), SURFBAR_GET_USERID(), SURFBAR_GET_COSTS());
        } // END - if
 
-       // Book it to the user
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getMemberId().',reward='.SURFBAR_GET_REWARD().'', false);
-       addPointsThroughReferalSystem(sprintf("surfbar_%s", getConfig('surfbar_pay_model')), getMemberId(), SURFBAR_GET_DATA('reward'));
+       // @TODO Try to rewrite the following unset()
+       unset($GLOBALS['ref_level']);
+
+       // Book it to the user
+       addPointsThroughReferalSystem(sprintf("surfbar_%s", getSurfbarPaymentModel()), getMemberId(), SURFBAR_GET_REWARD());
 }
 
 // Updates the statistics of current URL/userid
@@ -1052,24 +1096,24 @@ function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
        // Do we have a limit?
        if ($allowed > 0) {
                // Then count views_max down!
-               $add .= ", `views_max`=`views_max`-1";
+               $add .= ', `url_views_max`=`url_views_max`-1';
        } // END - if
 
        // Update URL stats
-       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_views_total`=`url_views_total`+1".$add." WHERE `url_id`=%s LIMIT 1",
+       SQL_QUERY_ESC('UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_views_total`=`url_views_total`+1' . $add . ' WHERE `url_id`=%s LIMIT 1',
                array(SURFBAR_GET_ID()), __FUNCTION__, __LINE__);
 
        // Update the stats entry
-       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_stats` SET `stats_count`=`stats_count`+1 WHERE `stats_userid`=%s AND `stats_url_id`=%s LIMIT 1",
+       SQL_QUERY_ESC('UPDATE `{?_MYSQL_PREFIX?}_surfbar_stats` SET `stats_count`=`stats_count`+1 WHERE `stats_userid`=%s AND `stats_url_id`=%s LIMIT 1',
                array(
                        getMemberId(),
                        SURFBAR_GET_ID()
                ), __FUNCTION__, __LINE__);
 
        // Was that update okay?
-       if (SQL_AFFECTEDROWS() < 1) {
+       if (SQL_HASZEROAFFECTED()) {
                // No, then insert entry
-               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_stats` (`stats_userid`, `stats_url_id`, `stats_count`) VALUES (%s,%s,1)",
+               SQL_QUERY_ESC('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_stats` (`stats_userid`, `stats_url_id`, `stats_count`) VALUES (%s,%s,1)',
                        array(
                                getMemberId(),
                                SURFBAR_GET_ID()
@@ -1091,6 +1135,9 @@ function SURFBAR_UPDATE_SALT_STATS () {
        // Update statistics record
        SURFBAR_UPDATE_INSERT_STATS_RECORD();
 
+       // Update salt
+       SURFBAR_GENERATE_VALIDATION_CODE(SURFBAR_GET_ID());
+
        // Simply store the salt from cache away in database...
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_salts` SET `salts_last_salt`='%s' WHERE `salts_url_id`=%s AND `salts_userid`=%s LIMIT 1",
                array(
@@ -1103,7 +1150,7 @@ function SURFBAR_UPDATE_SALT_STATS () {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'salt='.SURFBAR_GET_SALT().',id='.SURFBAR_GET_ID().',userid='.getMemberId().'', false);
 
        // Was that okay?
-       if (SQL_AFFECTEDROWS() < 1) {
+       if (SQL_HASZEROAFFECTED()) {
                // Insert missing entry!
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_salts` (`salts_url_id`, `salts_userid`, `salts_last_salt`) VALUES (%s, %s, '%s')",
                        array(SURFBAR_GET_ID(), getMemberId(), SURFBAR_GET_SALT()), __FUNCTION__, __LINE__);
@@ -1113,7 +1160,7 @@ function SURFBAR_UPDATE_SALT_STATS () {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'affectedRows='.SQL_AFFECTEDROWS().'', false);
 
        // Return if the update was okay
-       return (SQL_AFFECTEDROWS() == 1);
+       return (!SQL_HASZEROAFFECTED());
 }
 
 // Check if the reload lock is active for given id
@@ -1134,31 +1181,31 @@ LIMIT 1",
        );
 
        // Fetch counter
-       list($cnt) = SQL_FETCHROW($result);
+       list($count) = SQL_FETCHROW($result);
 
        // Free result
        SQL_FREERESULT($result);
 
        // Return check
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $cnt . ',' . SURFBAR_GET_SURF_LOCK() . '', false);
-       return ($cnt == 1);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $count . ',' . SURFBAR_GET_SURF_LOCK() . '', false);
+       return ($count == 1);
 }
 
 // Determine which user hash no more points left
 function SURFBAR_DETERMINE_DEPLETED_USERIDS ($limit=0) {
        // Init array
        $userids = array(
-               'userid'      => array(),
-               'points'   => array(),
-               'notified' => array(),
+               'url_userid'   => array(),
+               'points'       => array(),
+               'notified'     => array(),
        );
 
        // Do we have a current user id?
        if ((isMember()) && ($limit == '0')) {
                // Then add this as well
-               $userids['userid'][getMemberId()]      = getMemberId();
-               $userids['points'][getMemberId()]   = countSumTotalData(getMemberId(), 'user_points', 'points') - countSumTotalData(getMemberId(), 'user_data', 'used_points');
-               $userids['notified'][getMemberId()] = '0';
+               $userids['url_userid'][getMemberId()] = getMemberId();
+               $userids['points'][getMemberId()]     = getTotalPoints(getMemberId());
+               $userids['notified'][getMemberId()]   = '0';
 
                // Get all userid except logged in one
                $result = SQL_QUERY_ESC("SELECT
@@ -1168,13 +1215,14 @@ FROM
 INNER JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
-       u.url_userid=d.userid
+       u.`url_userid`=d.`userid`
 WHERE
-       u.url_userid NOT IN (%s,0) AND u.url_status='ACTIVE'
+       u.`url_userid` NOT IN (%s,0) AND
+       u.`url_status`='ACTIVE'
 GROUP BY
-       u.url_userid
+       u.`url_userid`
 ORDER BY
-       u.url_userid ASC",
+       u.`url_userid` ASC",
                        array(getMemberId()), __FUNCTION__, __LINE__);
        } else {
                // Get all userid
@@ -1185,28 +1233,29 @@ FROM
 INNER JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
-       u.url_userid=d.userid
+       u.`url_userid`=d.`userid`
 WHERE
-       u.url_status='ACTIVE'
+       u.`url_userid` > 0 AND
+       u.`url_status`='ACTIVE'
 GROUP BY
-       u.url_userid
+       u.`url_userid`
 ORDER BY
-       u.url_userid ASC", __FUNCTION__, __LINE__);
+       u.`url_userid` ASC", __FUNCTION__, __LINE__);
        }
 
        // Load all userid
        while ($content = SQL_FETCHARRAY($result)) {
                // Get total points
-               $points = countSumTotalData($content['userid'], 'user_points', 'points') - countSumTotalData($content['userid'], 'user_data', 'used_points');
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userid={$content['userid']},points={$points}", false);
+               $points = getTotalPoints($content['url_userid']);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userid={$content['url_userid']},points={$points}", false);
 
                // Shall we add this to ignore?
                if ($points <= $limit) {
                        // Ignore this one!
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userid={$content['userid']} has depleted points amount!", false);
-                       $userids['userid'][$content['userid']]      = $content['userid'];
-                       $userids['points'][$content['userid']]   = $points;
-                       $userids['notified'][$content['userid']] = $content['notified'];
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userid={$content['url_userid']} has depleted points amount!", false);
+                       $userids['url_userid'][$content['url_userid']] = $content['url_userid'];
+                       $userids['points'][$content['url_userid']]     = $points;
+                       $userids['notified'][$content['url_userid']]   = $content['notified'];
                } // END - if
        } // END - while
 
@@ -1223,23 +1272,23 @@ ORDER BY
 // Determine how many users are Online in surfbar
 function SURFBAR_DETERMINE_TOTAL_ONLINE () {
        // Count all users in surfbar modue and return the value
-       $result = SQL_QUERY("SELECT
+       $result = SQL_QUERY('SELECT
        `stats_id`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_stats`
 WHERE
        (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`stats_last_surfed`)) <= {?online_timeout?}
 GROUP BY
-       `stats_userid` ASC", __FUNCTION__, __LINE__);
+       `stats_userid` ASC', __FUNCTION__, __LINE__);
 
        // Fetch count
-       $cnt = SQL_NUMROWS($result);
+       $count = SQL_NUMROWS($result);
 
        // Free result
        SQL_FREERESULT($result);
 
        // Return result
-       return $cnt;
+       return $count;
 }
 
 // Determine waiting time for one URL
@@ -1257,7 +1306,7 @@ function SURFBAR_DETERMINE_WAIT_TIME () {
        $time = getConfig('surfbar_static_time');
 
        // Which payment model do we have?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic time
                $time += SURFBAR_CALCULATE_DYNAMIC_ADD();
        } // END - if
@@ -1268,6 +1317,7 @@ function SURFBAR_DETERMINE_WAIT_TIME () {
 
 // Changes the status of an URL from given to other
 function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data=array()) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - ENTERED!');
        // Make new status always lower-case
        $newStatus = strtolower($newStatus);
 
@@ -1280,19 +1330,21 @@ function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data=array())
        // Is the new status set?
        if ((!is_string($newStatus)) || (empty($newStatus))) {
                // Abort here, but fine!
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newStatus[' . gettype($newStatus) . ']=' . $newStatus . ' - EXIT!');
                return true;
        } // END - if
 
        // Is the status like prevStatus is saying?
        if ($data[$urlId]['url_status'] != $prevStatus) {
                // No, then abort here
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $data[$urlId]['url_status'] . '!=' . $prevStatus . ' - EXIT!');
                return false;
        } // END - if
 
 
        // Update the status now
        // ---------- Comment out for debugging/developing member actions! ---------
-       //SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `status`='%s' WHERE `id`=%s LIMIT 1",
+       //SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `status`='%s' WHERE `url_id`=%s LIMIT 1",
        //      array($newStatus, bigintval($urlId)), __FUNCTION__, __LINE__);
        // ---------- Comment out for debugging/developing member actions! ---------
 
@@ -1304,25 +1356,22 @@ function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data=array())
        //} // END - if
        // ---------- Comment out for debugging/developing member actions! ---------
 
-       // Prepare content for notification routines
-       $data[$urlId]['userid']         = $data[$urlId]['userid'];
-       $data[$urlId]['frametester'] = generateFrametesterUrl($data[$urlId]['url']);
-       $data[$urlId]['reward']      = translateComma(getConfig('surfbar_static_reward'));
-       $data[$urlId]['costs']       = translateComma(getConfig('surfbar_static_costs'));
-
-       // Do some dirty fixing here:
-       if (($data[$urlId]['url_status'] == 'STOPPED') && ($newStatus == 'pending')) {
-               // Fix for template change
-               $newStatus = 'continued';
-       } // END - if
+       // Prepare array
+       $filterData =  array(
+               'url_id'      => $urlId,
+               'prev_status' => $prevStatus,
+               'new_status'  => $newStatus,
+               'data'        => $data
+       );
 
-       // Send admin notification
-       SURFBAR_NOTIFY_ADMIN('url_' . $data[$urlId]['url_status'] . '_' . $newStatus, $data[$urlId]);
+       // Run post filter chain
+       $filterData = runFilterChain('post_change_surfbar_url_status', $filterData);
 
-       // Send user notification
-       SURFBAR_NOTIFY_USER('url_' . $data[$urlId]['url_status'] . '_' . $newStatus, $data[$urlId]);
+       // Extract data from it again
+       $data = $filterData['data'];
 
        // All done!
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - EXIT!');
        return true;
 }
 
@@ -1335,7 +1384,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
        $percent = abs(log(getConfig('surfbar_dynamic_percent') / 100 + 1));
 
        // Get total users
-       $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true);
+       $totalUsers = getTotalConfirmedUser();
 
        // Get online users
        $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
@@ -1372,7 +1421,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
        $percent = abs(log(getConfig('surfbar_dynamic_percent') / 100 + 1));
 
        // Get total users
-       $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true);
+       $totalUsers = getTotalConfirmedUser();
 
        // Calculate addon
        $addon += abs($max * $percent * $totalUsers);
@@ -1472,10 +1521,10 @@ LEFT JOIN
 ON
        sbu.url_id=l.locks_url_id
 WHERE
-       sbu.url_userid NOT IN (".implode(',', $userids).") AND
+       sbu.url_userid NOT IN (" . implode(',', $userids) . ") AND
        (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0)) AND
        sbu.url_status='ACTIVE'
-       ".$add."
+       " . $add . "
 GROUP BY
        sbu.url_id ASC", __FUNCTION__, __LINE__);
 
@@ -1507,23 +1556,23 @@ function SURFBAR_GET_USER_URLS () {
        u.url_views_max,
        u.url_views_allowed,
        UNIX_TIMESTAMP(u.url_registered) AS `url_registered`,
-       UNIX_TIMESTAMP(u.url_last_locked) AS `url_last_locked`,
-       u.url_lock_reason
+       UNIX_TIMESTAMP(u.`url_last_locked`) AS `url_last_locked`,
+       u.`url_lock_reason`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_urls` AS u
 WHERE
-       u.url_userid=%s AND
-       u.url_status != 'DELETED'
+       u.`url_userid`=%s AND
+       u.`url_status` != 'DELETED'
 ORDER BY
        u.url_id ASC",
        array(getMemberId()), __FUNCTION__, __LINE__);
 
        // Are there entries?
-       if (SQL_NUMROWS($result) > 0) {
+       if (!SQL_HASZERONUMS($result)) {
                // Load all rows
                while ($row = SQL_FETCHARRAY($result)) {
                        // Add the row
-                       $urlArray[$row['id']] = $row;
+                       $urlArray[$row['url_id']] = $row;
                } // END - while
        } // END - if
 
@@ -1540,15 +1589,15 @@ function SURFBAR_GET_ARRAY_FROM_STATUS ($status) {
        $returnArray = array();
 
        // Get all assigned actions
-       $result = SQL_QUERY_ESC("SELECT `action` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_status`='%s' ORDER BY `actions_id` ASC",
+       $result = SQL_QUERY_ESC("SELECT `actions_action` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_status`='%s' ORDER BY `actions_id` ASC",
                array($status), __FUNCTION__, __LINE__);
 
        // Some entries there?
-       if (SQL_NUMROWS($result) > 0) {
+       if (!SQL_HASZERONUMS($result)) {
                // Load all actions
                // @TODO This can be somehow rewritten
                while ($content = SQL_FETCHARRAY($result)) {
-                       $returnArray[] = $content['action'];
+                       $returnArray[] = $content['actions_action'];
                } // END - if
        } // END - if
 
@@ -1572,7 +1621,7 @@ function SURFBAR_RELOAD_TO_STOP_PAGE ($page = 'stop') {
 }
 
 // Determine next id for surfbar or get data for given id, always call this before you call other
-// getters below this function!!!
+// getters below this function!
 function SURFBAR_DETERMINE_NEXT_ID ($urlId = '0') {
        // Default is no id and no random number
        $nextId = '0';
@@ -1587,7 +1636,7 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = '0') {
                $add = '';
                if (count($USE) > 0) {
                        // Ignore some!
-                       $add = " AND sbu.url_id NOT IN (";
+                       $add = " AND sbu.`url_id` NOT IN (";
                        foreach ($USE as $url_id => $lid) {
                                // Add URL id
                                $add .= $url_id.',';
@@ -1601,7 +1650,7 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = '0') {
                $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS();
 
                // Get maximum randomness factor
-               $maxRand = SURFBAR_GET_MAX_RANDOM($userids['userid'], $add);
+               $maxRand = SURFBAR_GET_MAX_RANDOM($userids['url_userid'], $add);
 
                // If more than one URL can be called generate the random number!
                if ($maxRand > 1) {
@@ -1632,12 +1681,12 @@ LEFT JOIN
 ON
        sbu.url_id=l.locks_url_id
 WHERE
-       sbu.url_userid NOT IN (".implode(',', $userids['userid']).") AND
+       sbu.`url_userid` NOT IN (".implode(',', $userids['url_userid']).") AND
        sbu.url_status='ACTIVE' AND
        (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0))
        ".$add."
 GROUP BY
-       sbu.url_id
+       sbu.`url_id`
 ORDER BY
        l.locks_last_surfed ASC,
        sbu.url_id ASC
@@ -1707,7 +1756,7 @@ LIMIT 1",
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.SURFBAR_GET_REWARD().'|costs='.SURFBAR_GET_COSTS().'', false);
 
                // Only in dynamic model add the dynamic bonus!
-               if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+               if (getSurfbarPaymentModel() == 'DYNAMIC') {
                        // Calculate dynamic reward/costs and add it
                        $GLOBALS['surfbar_cache']['reward'] += SURFBAR_CALCULATE_DYNAMIC_ADD();
                        $GLOBALS['surfbar_cache']['costs']  += SURFBAR_CALCULATE_DYNAMIC_ADD();
@@ -1726,10 +1775,74 @@ LIMIT 1",
        return $nextId;
 }
 
-// -----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// Wrapper function
+//-----------------------------------------------------------------------------
+
+// "Getter" for surfbar_dynamic_percent
+function getSurfbarDynamicPercent () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_dynamic_percent');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_static_reward
+function getSurfbarStaticReward () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_static_reward');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_static_time
+function getSurfbarStaticTime () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_static_time');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_max_order
+function getSurfbarMaxOrder () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_max_order');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_payment_model
+function getSurfbarPaymentModel () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_payment_model');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+//------------------------------------------------------------------------------
 // PLEASE DO NOT ADD ANY OTHER FUNCTIONS BELOW THIS LINE IF THEY DON'T "WRAP"
 // THE $GLOBALS['surfbar_cache'] ARRAY!
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 
 // Initializes the surfbar
 function SURFBAR_INIT () {