]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/surfbar_functions.php
Opps, not all elements for sprintf() has been set.
[mailer.git] / inc / libs / surfbar_functions.php
index 490d6725ca189121c81237cdfa8bde99152aeb1b..3acbc7c4d978aa2b610d114a83af3e2f97c8d7f8 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                    *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2009 - 2013 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
 // 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) {
+function doSurfbarAdminAddUrl ($url, $limit, $reload, $waiting) {
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s : Not admin.", $url, $limit, $reload));
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Not admin.", $url, $limit, $reload));
+               return FALSE;
        } elseif (!isUrlValid($url)) {
                // URL invalid
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s : Invalid URL.", $url, $limit, $reload));
-               return false;
-       } elseif (SURFBAR_LOOKUP_BY_URL($url, 0)) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid URL.", $url, $limit, $reload));
+               return FALSE;
+       } elseif (ifSurfbarHasUrlUserId($url, 0)) {
                // URL already found in surfbar!
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s : Already added.", $url, $limit, $reload));
-               return false;
-       } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS()) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Already added.", $url, $limit, $reload));
+               return FALSE;
+       } elseif (!ifSurfbarMemberAllowedMoreUrls()) {
                // No more allowed!
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s : No more URLs allowed.", $url, $limit, $reload));
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: No more URLs allowed.", $url, $limit, $reload));
+               return FALSE;
        } elseif ('' . ($limit + 0) . '' != '' . $limit . '') {
                // Invalid limit entered
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s : Invalid limit entered.", $url, $limit, $reload));
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid limit entered.", $url, $limit, $reload));
+               return FALSE;
        } elseif ('' . ($reload + 0) . '' != '' . $reload . '') {
                // Invalid amount entered
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s : Invalid reload entered.", $url, $limit, $reload));
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid reload entered.", $url, $limit, $reload));
+               return FALSE;
+       } elseif ('' . ($waiting + 0) . '' != '' . $waiting . '') {
+               // Invalid amount entered
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,waiting=%s: Invalid waiting entered.", $url, $limit, $waiting));
+               return FALSE;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, 0, 'ACTIVE', 'unlock', array('limit' => $limit, 'reload' => $reload));
+       return doSurfbarRegisterUrl($url, 0, 'ACTIVE', 'unlock', array('limit' => $limit, 'reload' => $reload, 'waiting' => $waiting));
 }
 
 // Admin unlocked an email so we can migrate the URL
-function SURFBAR_ADMIN_MIGRATE_URL ($url, $userid) {
+function doSurfbarAdminMigrateUrl ($url, $userid) {
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Not admin, url=' . $url . ',userid=' . $userid);
+               return FALSE;
        } elseif (!isUrlValid($url)) {
                // URL invalid
-               return false;
-       } elseif (SURFBAR_LOOKUP_BY_URL($url, $userid)) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Invalid URL, url=' . $url . ',userid=' . $userid);
+               return FALSE;
+       } elseif (ifSurfbarHasUrlUserId($url, $userid)) {
                // URL already found in surfbar!
-               return false;
-       } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS($userid)) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Already added, url=' . $url . ',userid=' . $userid);
+               return FALSE;
+       } elseif (!ifSurfbarMemberAllowedMoreUrls($userid)) {
                // No more allowed!
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Maximum exceeded, url=' . $url . ',userid=' . $userid);
+               return FALSE;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, $userid, 'MIGRATED', 'migrate');
+       return doSurfbarRegisterUrl($url, $userid, 'MIGRATED', 'migrate');
 }
 
 // Admin function for unlocking URLs
-function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) {
+function doSurfbarAdminUnlockUrlIds ($IDs) {
        // Is this an admin or invalid array?
        if (!isAdmin()) {
                // Not admin or invalid ids array
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
+               return FALSE;
        } elseif (!is_array($IDs)) {
                // No array
-               return false;
-       } elseif (count($IDs) == 0) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
+               return FALSE;
+       } elseif (!isFilledArray($IDs)) {
                // Empty array
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
+               return FALSE;
        }
 
        // Set to true to make AND expression valid if first URL got unlocked
-       $done = true;
+       $done = TRUE;
 
        // Update the status for all ids
        foreach ($IDs as $id => $dummy) {
                // Test all ids through (ignores failed)
-               $done = (($done) && (SURFBAR_CHANGE_STATUS($id, 'PENDING', 'ACTIVE')));
+               $done = (($done) && (changeSurfbarUrlStatus($id, 'PENDING', 'ACTIVE')));
        } // END - if
 
        // Return total status
@@ -128,111 +137,116 @@ function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) {
 }
 
 // Admin function for rejecting URLs
-function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) {
+function doSurfbarAdminRejectUrlIds ($IDs) {
        // Is this an admin or invalid array?
        if (!isAdmin()) {
                // Not admin or invalid ids array
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
+               return FALSE;
        } elseif (!is_array($IDs)) {
                // No array
-               return false;
-       } elseif (count($IDs) == 0) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
+               return FALSE;
+       } elseif (!isFilledArray($IDs)) {
                // Empty array
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
+               return FALSE;
        }
 
        // Set to true to make AND expression valid if first URL got unlocked
-       $done = true;
+       $done = TRUE;
 
        // Update the status for all ids
        foreach ($IDs as $id => $dummy) {
                // Test all ids through (ignores failed)
-               $done = (($done) && (SURFBAR_CHANGE_STATUS($id, 'PENDING', 'REJECTED')));
+               $done = (($done) && (changeSurfbarUrlStatus($id, 'PENDING', 'REJECTED')));
        } // END - if
 
        // Return total status
        return $done;
 }
 
-//
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Member functions
-// -----------------------------------------------------------------------------
-//
+//------------------------------------------------------------------------------
+
 // Member has added an URL
-function SURFBAR_MEMBER_ADD_URL ($url, $limit) {
+function doSurfbarMemberAddUrl ($url, $limit) {
        // Do some pre-checks
        if (!isMember()) {
                // Not a member
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
+               return FALSE;
        } elseif ((!isUrlValid($url)) && (!isAdmin())) {
                // URL invalid
-               return false;
-       } elseif (SURFBAR_LOOKUP_BY_URL($url, getMemberId())) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid, url=' . $url . ',limit=' . $limit);
+               return FALSE;
+       } elseif (ifSurfbarHasUrlUserId($url, getMemberId())) {
                // URL already found in surfbar!
-               return false;
-       } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS(getMemberId())) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Already found, url=' . $url . ',limit=' . $limit);
+               return FALSE;
+       } elseif (!ifSurfbarMemberAllowedMoreUrls(getMemberId())) {
                // No more allowed!
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Maximum exceeded, url=' . $url . ',limit=' . $limit);
+               return FALSE;
        } elseif (''.($limit + 0).'' != ''.$limit.'') {
                // Invalid amount entered
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid limit, url=' . $url . ',limit=' . $limit);
+               return FALSE;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, getMemberId(), 'PENDING', 'reg', array('limit' => $limit));
+       return doSurfbarRegisterUrl($url, getMemberId(), 'PENDING', 'reg', array('limit' => $limit));
 }
 
 // Create list of actions depending on status for the user
-function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
+function generateSurfbarMemberActions ($urlId, $status) {
        // Load all actions in an array for given status
-       $actionArray = SURFBAR_GET_ARRAY_FROM_STATUS($status);
-
-       // Init HTML code
-       $OUT = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" width=\"100%\">
-<tr>\n";
+       $actionArray = getSurfbarArrayFromStatus($status);
 
        // Calculate width
        $width = round(100 / count($actionArray));
 
        // "Walk" through all actions and create forms
+       $OUT = '';
        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--}',
+               $OUT .= loadTemplate('member_list_surfbar_form', TRUE, array(
+                       'width'  => $width,
+                       'url_id' => bigintval($urlId),
+                       'action' => strtolower($action)
                ));
        } // END - foreach
 
-       // Close table
-       $OUT .= "</tr>
-</table>\n";
+       // Load main template
+       $output = loadTemplate('member_list_surfbar_table', TRUE, $OUT);
 
        // Return code
-       return $OUT;
+       return $output;
 }
 
 // Do the member form request
-function SURFBAR_MEMBER_DO_FORM ($formData, $urlArray) {
+function doSurfbarMemberByFormData ($formData, $urlArray) {
        // By default no action is performed
-       $performed = false;
+       $performed = FALSE;
 
        // Is this a member?
        if (!isMember()) {
                // No member!
-               return false;
-       } elseif ((!isset($formData['id'])) || (!isset($formData['action']))) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
+               return FALSE;
+       } elseif ((!isset($formData['url_id'])) || (!isset($formData['action']))) {
                // Important form elements are missing!
-               return false;
-       } elseif (!isset($urlArray[$formData['id']])) {
-               // id not found in cache
-               return false;
-       } elseif (!SURFBAR_VALIDATE_MEMBER_ACTION_STATUS($formData['action'], $urlArray[$formData['id']]['url_status'])) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid form data, required field id/action not found');
+               return FALSE;
+       } elseif (!isset($urlArray[$formData['url_id']])) {
+               // Id not found in cache
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Field url_id not found in cache');
+               return FALSE;
+       } elseif (!isSurfbarMemberActionStatusValid($formData['action'], $urlArray[$formData['url_id']]['url_status'])) {
                // Action not allowed for current URL status
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Action not allowed to perform. action=' . $formData['action'] . ',url_status=' . $urlArray[$formData['url_id']]['url_status'] . ',url_id=' . $formData['url_id']);
+               return FALSE;
        }
 
        // Secure action
@@ -241,158 +255,194 @@ function SURFBAR_MEMBER_DO_FORM ($formData, $urlArray) {
        // Has it changed?
        if ($action != $formData['action']) {
                // Invalid data in action found
-               return false;
+               return FALSE;
        } // END - if
 
        // Create the function name for selected action
-       $functionName = sprintf("SURFBAR_MEMBER_%s_ACTION", strtoupper($action));
+       $functionName = sprintf("doSurfbarMember%sAction", firstCharUpperCase($action));
 
        // Is the function there?
        if (function_exists($functionName)) {
+               // Load data and add it to globals array
+               $urlData = getSurfbarUrlData($formData['url_id']);
+               $GLOBALS['surfbar_cache'] = merge_array($GLOBALS['surfbar_cache'], $urlData[$formData['url_id']]);
+
                // Add new status
-               $urlArray[$formData['id']]['new_status'] = SURFBAR_GET_NEW_STATUS('new_status');
+               $urlArray[$formData['url_id']]['new_status'] = getSurfbarNewStatus('new_status');
 
                // Extract URL data for call-back
-               $urlData = array(merge_array($urlArray[$formData['id']], array($action => $formData)));
+               $urlData = array(merge_array($urlArray[$formData['url_id']], array($action => $formData)));
 
                // Action found so execute it
                $performed = call_user_func_array($functionName, $urlData);
        } else {
                // Log invalid request
-               logDebugMessage(__FUNCTION__, __LINE__, "action={$formData['action']},id={$formData['id']},function={$functionName}");
-               addFatalMessage(__FUNCTION__, __LINE__, "Invalid member action! action=%s,id=%s,function=%s", array($formData['action'], $formData['id'], $functionName));
+               reportBug(__FUNCTION__, __LINE__, 'Invalid member action! action=' . $formData['action'] . ',url_id=' . $formData['url_id'] . ',function=' . $functionName);
        }
 
        // Return status
        return $performed;
 }
 
+// Getter for surfbar_actions table by given id number
+function getSurfbarActionsDataFromId ($columnName, $id) {
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__][$id][$columnName])) {
+               // Default is not found
+               $GLOBALS[__FUNCTION__][$id][$columnName] = '*INVALID*';
+
+               // Search for it
+               $result = sqlQueryEscaped("SELECT `%s` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_id`=%s LIMIT 1",
+                       array(
+                               $columnName,
+                               bigintval($id)
+                       ), __FUNCTION__, __LINE__);
+
+               // Is there an entry?
+               if (sqlNumRows($result) == 1) {
+                       // Load it
+                       list($GLOBALS[__FUNCTION__][$id][$columnName]) = sqlFetchRow($result);
+               } // END - if
+
+               // Free result
+               sqlFreeResult($result);
+       } // END - if
+
+       // Return value
+       return $GLOBALS[__FUNCTION__][$id][$columnName];
+}
+
 // Validate if the requested action can be performed on current URL status
-function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) {
+function isSurfbarMemberActionStatusValid ($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 = sqlQueryEscaped("SELECT `actions_new_status` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_action`='%s' AND `actions_status`='%s' LIMIT 1",
+               array(
+                       strtoupper($action),
+                       strtoupper($status)
+               ), __FUNCTION__, __LINE__);
 
        // Is the entry there?
-       $isValid = (SQL_NUMROWS($result) == 1);
+       $isValid = (sqlNumRows($result) == 1);
+
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'action=' . $action . ',status=' . $status . ',isValid=' . intval($isValid));
 
        // Fetch the new status if found
-       if ($isValid) {
+       if ($isValid === TRUE) {
                // Load new status
-               list($GLOBALS['surfbar_cache']['new_status']) = SQL_FETCHROW($result);
+               list($GLOBALS['surfbar_cache']['new_status']) = sqlFetchRow($result);
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return status
        return $isValid;
 }
 
-//
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Member actions
-// -----------------------------------------------------------------------------
-//
+//------------------------------------------------------------------------------
+
 // Retreat a booked URL
-function SURFBAR_MEMBER_RETREAT_ACTION ($urlData) {
+function doSurfbarMemberRetreatAction ($urlData) {
        // Create the data array for next function call
        $data = array(
-               $urlData['id'] => $urlData
+               $urlData['url_id'] => $urlData
        );
 
        // Simply change the status here
-       return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['url_status'], $urlData['new_status'], $data);
+       return changeSurfbarUrlStatus ($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], $data);
 }
 
 // Book an URL now (from migration)
-function SURFBAR_MEMBER_BOOKNOW_ACTION ($urlData) {
+function doSurfbarMemberBooknowAction ($urlData) {
        // Create the data array for next function call
        $data = array(
-               $urlData['id'] => $urlData
+               $urlData['url_id'] => $urlData
        );
 
        // Simply change the status here
-       return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['url_status'], $urlData['new_status'], $data);
+       return changeSurfbarUrlStatus ($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], $data);
 }
 
 // Show edit form or do the changes
-function SURFBAR_MEMBER_EDIT_ACTION ($urlData) {
+function doSurfbarMemberEditAction ($urlData) {
        // Is the "execute" flag there?
        if (isset($urlData['edit']['execute'])) {
                // Execute the changes
-               return SURFBAR_MEMBER_EXECUTE_ACTION('edit', $urlData);
+               return executeSurfbarMemberAction('edit', $urlData);
        } // END - if
 
        // Display form
-       return SURFBAR_MEMBER_DISPLAY_ACTION_FORM('edit', $urlData);
+       return displaySurfbarMemberActionForm('edit', $urlData);
 }
 
 // Show delete form or do the changes
-function SURFBAR_MEMBER_DELETE_ACTION ($urlData) {
+function doSurfbarMemberDeleteAction ($urlData) {
        // Is the "execute" flag there?
        if (isset($urlData['delete']['execute'])) {
                // Execute the changes
-               return SURFBAR_MEMBER_EXECUTE_ACTION('delete', $urlData);
+               return executeSurfbarMemberAction('delete', $urlData);
        } // END - if
 
        // Display form
-       return SURFBAR_MEMBER_DISPLAY_ACTION_FORM('delete', $urlData);
+       return displaySurfbarMemberActionForm('delete', $urlData);
 }
 
 // Pause active banner
-function SURFBAR_MEMBER_PAUSE_ACTION ($urlData) {
-       return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+function doSurfbarMemberPauseAction ($urlData) {
+       return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
 }
 
 // Unpause stopped banner
-function SURFBAR_MEMBER_UNPAUSE_ACTION ($urlData) {
+function doSurfbarMemberUnpauseAction ($urlData) {
        // Fix missing entry for template
        $urlData['edit'] = $urlData['unpause'];
        $urlData['edit']['url'] = $urlData['url'];
-       $urlData['edit']['limit'] = SURFBAR_GET_VIEWS_MAX();
+       $urlData['edit']['limit'] = getSurfbarViewsMax();
 
        // Return status change
-       return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+       return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
 }
 
 // Resubmit locked URL
-function SURFBAR_MEMBER_RESUBMIT_ACTION ($urlData) {
-       return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+function doSurfbarMemberResubmitAction ($urlData) {
+       return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
 }
 
 // Display selected "action form"
-function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) {
+function displaySurfbarMemberActionForm ($action, $urlData) {
        // Translate some data if present
-       $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
+       $content = prepareSurfbarContentForTemplate($urlData);
 
        // 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) {
+               if (getSurfbarViewsMax() > 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
 
        // Load the form and display it
-       loadTemplate(sprintf("member_surfbar_%s_action_form", $action), false, $urlData);
+       loadTemplate(sprintf("member_surfbar_%s_action_form", $action), FALSE, $urlData);
 
        // All fine by default ... ;-)
-       return true;
+       return TRUE;
 }
 
 // Execute choosen action
-function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) {
+function executeSurfbarMemberAction ($action, $urlData) {
        // By default nothing is executed
-       $executed = false;
+       $executed = FALSE;
 
        // Is limitation "no" and "limit" is > 0?
        if ((isset($urlData[$action]['limited'])) && ($urlData[$action]['limited'] != 'Y') && ((isset($urlData[$action]['limit'])) && ($urlData[$action]['limit'] > 0)) || (!isset($urlData[$action]['limit']))) {
@@ -401,85 +451,105 @@ function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) {
        } // END - if
 
        // Construct function name
-       $functionName = sprintf("SURFBAR_MEMBER_EXECUTE_%s_ACTION", strtoupper($action));
+       $functionName = sprintf("executeSurfbarMember%sAction", firstCharUpperCase($action));
 
        // Is that function there?
        if (function_exists($functionName)) {
                // Execute the function
-               if (call_user_func_array($functionName, array($urlData)) == true) {
+               if (call_user_func_array($functionName, array($urlData)) == TRUE) {
                        // Update status as well
-                       $executed = SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+                       $executed = changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
                } // END - if
        } else {
-               // Not found!
-               addFatalMessage(__FUNCTION__, __LINE__, '{--MEMBER_SURFBAR_EXECUTE_ACTION_404--}', $functionName);
+               // Not found
+               reportBug(__FUNCTION__, __LINE__, 'Callback function ' . $functionName . ' does not exist.');
        }
 
        // Return status
        return $executed;
 }
+
 // "Execute edit" function: Update changed data
-function SURFBAR_MEMBER_EXECUTE_EDIT_ACTION ($urlData) {
+function executeSurfbarMemberEditAction ($urlData) {
        // Default is nothing done
-       $status = false;
+       $status = FALSE;
 
        // Has the URL or limit changed?
-       if (true) {
-               //if (($urlData['url_views_allowed'] != $urlData['edit']['limit']) || ($url1 != $url2)) {
+       if (TRUE) {
+               // @TODO if (($urlData['url_views_allowed'] != $urlData['edit']['limit']) || ($url1 != $url2)) {
                // Run the query
-               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url`='%s', `url_views_allowed`=%s, `url_views_max`=%s WHERE `url_id`=%s AND `status`='%s' LIMIT 1",
-                       array($urlData['url'], $urlData['edit']['limit'], $urlData['edit']['limit'], $urlData['id'], $urlData['url_status']), __FUNCTION__, __LINE__);
+               sqlQueryEscaped("UPDATE
+       `{?_MYSQL_PREFIX?}_surfbar_urls`
+SET
+       `url`='%s',
+       `url_views_allowed`=%s,
+       `url_views_max`=%s
+WHERE
+       `url_id`=%s AND
+       `url_status`='%s'
+LIMIT 1",
+                       array(
+                               $urlData['url'],
+                               $urlData['edit']['limit'],
+                               $urlData['edit']['limit'],
+                               $urlData['url_id'],
+                               $urlData['url_status']
+                       ), __FUNCTION__, __LINE__);
 
                // All fine
-               $status = true;
+               $status = TRUE;
        } // END - if
 
        // Return status
        return $status;
 }
+
 // "Execute delete" function: Does nothing...
-function SURFBAR_MEMBER_EXECUTE_DELETE_ACTION ($urlData) {
+function executeSurfbarMemberDeleteAction ($urlData) {
        // Nothing special to do (see above function for such "special actions" to perform)
-       return true;
+       return TRUE;
 }
-//
-// -----------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
 //                           Self-maintenance functions
-// -----------------------------------------------------------------------------
-//
+//------------------------------------------------------------------------------
+
 // Main function
-function SURFBAR_HANDLE_SELF_MAINTENANCE () {
+function doSurfbarSelfMaintenance () {
        // Handle URLs which limit has depleted so we can stop them
-       SURFBAR_HANDLE_DEPLETED_VIEWS();
+       doHandleSurfbarDepletedViews();
 
        // Handle low-points amounts
-       SURFBAR_HANDLE_LOW_POINTS();
+       doHandleSurfbarLowPoints();
 }
+
 // Handle URLs which limit has depleted
-function SURFBAR_HANDLE_DEPLETED_VIEWS () {
+function doHandleSurfbarDepletedViews () {
        // Get all URLs
-       $urlArray = SURFBAR_GET_URL_DATA(0, 'url_views_max', 'url_id', 'ASC', 'url_id', " AND `url_views_allowed` > 0 AND `url_status`='ACTIVE'");
+       $urlArray = getSurfbarUrlData('0', 'url_views_max', 'url_id', 'ASC', 'url_id', " AND `url_views_allowed` > 0 AND `url_status`='ACTIVE'");
 
-       // Do we have some entries?
-       if (count($urlArray) > 0) {
+       // Are there some entries?
+       if (isFilledArray($urlArray)) {
                // Then handle all!
                foreach ($urlArray as $id => $urlData) {
                        // Backup data
                        $data = $urlData;
 
                        // Rewrite array for next call
-                       $urlData[$id] = $data;
+                       $urlData = array(
+                               $id => $data
+                       );
 
                        // Handle the status
-                       SURFBAR_CHANGE_STATUS($id, 'ACTIVE', 'DEPLETED', $urlData);
+                       changeSurfbarUrlStatus($id, 'ACTIVE', 'DEPLETED', $urlData);
                } // END - foreach
        } // END - if
 }
 
 // Alert users which have URLs booked and are low on points amount
-function SURFBAR_HANDLE_LOW_POINTS () {
+function doHandleSurfbarLowPoints () {
        // Get all userids
-       $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS(getConfig('surfbar_warn_low_points'));
+       $userids = determineSurfbarDepletedUserids(getConfig('surfbar_warn_low_points'));
 
        // "Walk" through all URLs
        foreach ($userids['url_userid'] as $userid => $dummy) {
@@ -493,32 +563,32 @@ function SURFBAR_HANDLE_LOW_POINTS () {
                        );
 
                        // Notify this user
-                       SURFBAR_NOTIFY_USER('low_points', $content);
+                       doSurfbarNotifyMember('low_points', $content);
 
                        // Update last notified
-                       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `surfbar_low_notified`=NOW() WHERE `userid`=%s LIMIT 1",
+                       sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `surfbar_low_notified`=NOW() WHERE `userid`=%s LIMIT 1",
                                array($userid), __FUNCTION__, __LINE__);
                } // END - if
        } // END - foreach
 }
 
 //
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //                               Generic functions
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 //
 
 // Looks up by an URL
-function SURFBAR_LOOKUP_BY_URL ($url, $userid) {
+function ifSurfbarHasUrlUserId ($url, $userid) {
        // Now lookup that given URL by itself
-       $urlArray = SURFBAR_GET_URL_DATA($url, 'url', 'url_id', 'ASC', 'url_id', sprintf(" AND `url_userid`=%s", bigintval($userid)));
+       $urlArray = getSurfbarUrlData($url, 'url', 'url_id', 'ASC', 'url_id', sprintf(" AND `url_userid`=%s", bigintval($userid)));
 
        // Was it found?
-       return (count($urlArray) > 0);
+       return isFilledArray($urlArray);
 }
 
 // Load URL data by given search term and column
-function SURFBAR_GET_URL_DATA ($searchTerm, $column = 'url_id', $order = 'url_id', $sort = 'ASC', $group = 'url_id', $add = '') {
+function getSurfbarUrlData ($searchTerm, $column = 'url_id', $order = 'url_id', $sort = 'ASC', $group = 'url_id', $add = '') {
        // By default nothing is found
        $GLOBALS['last_url_data'] = array();
 
@@ -528,16 +598,17 @@ function SURFBAR_GET_URL_DATA ($searchTerm, $column = 'url_id', $order = 'url_id
                $searchTerm = bigintval($searchTerm);
        } // END - if
 
-       // If the column is 'id' there can be only one entry
+       // If the column is 'url_id' there can be only one entry
        $limit = '';
-       if ($column == 'id') {
-               $limit = "LIMIT 1";
+       if ($column == 'url_id') {
+               $limit = 'LIMIT 1';
        } // END - if
 
        // Look up the record
-       $result = SQL_QUERY_ESC("SELECT
+       $result = sqlQueryEscaped("SELECT
        `url_id`,
        `url_userid`,
+       `url_package_id`,
        `url`,
        `url_views_total`,
        `url_views_max`,
@@ -548,7 +619,8 @@ function SURFBAR_GET_URL_DATA ($searchTerm, $column = 'url_id', $order = 'url_id
        `url_lock_reason`,
        `url_views_max`,
        `url_views_allowed`,
-       `url_fixed_reload`
+       `url_fixed_reload`,
+       `url_fixed_waiting`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_urls`
 WHERE
@@ -565,9 +637,9 @@ ORDER BY
                ), __FUNCTION__, __LINE__);
 
        // Is there at least one record?
-       if (!SQL_HASZERONUMS($result)) {
+       if (!ifSqlHasZeroNums($result)) {
                // Then load all!
-               while ($dataRow = SQL_FETCHARRAY($result)) {
+               while ($dataRow = sqlFetchArray($result)) {
                        // Shall we group these results?
                        if ($group == 'url_id') {
                                // Add the row by id as index
@@ -580,14 +652,14 @@ ORDER BY
        } // END - if
 
        // Free the result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return the result
        return $GLOBALS['last_url_data'];
 }
 
-// Registers an URL with the surfbar. You should have called SURFBAR_LOOKUP_BY_URL() first!
-function SURFBAR_REGISTER_URL ($url, $userid, $status = 'PENDING', $addMode = 'reg', $extraFields = array()) {
+// Registers an URL with the surfbar. You should have called ifSurfbarHasUrlUserId() first!
+function doSurfbarRegisterUrl ($url, $userid, $status = 'PENDING', $addMode = 'reg', $extraFields = array()) {
        // Make sure by the user registered URLs are always pending
        if ($addMode == 'reg') {
                $status = 'PENDING';
@@ -601,61 +673,67 @@ function SURFBAR_REGISTER_URL ($url, $userid, $status = 'PENDING', $addMode = 'r
        ));
 
        // 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
+       if (!isset($content['waiting'])) {
+               $content['waiting'] = '0';
+       } // END - if
 
        // Insert the URL into database
-       $content['insert_id'] = SURFBAR_INSERT_URL_BY_ARRAY($content);
+       $content['insert_id'] = insertSurfbarUrlByArray($content);
 
        // Is this id valid?
        if ($content['insert_id'] == '0') {
                // INSERT did not insert any data!
-               return false;
+               return FALSE;
        } // END - if
 
        // If in reg-mode we notify admin
        if (($addMode == 'reg') || (getConfig('surfbar_notify_admin_unlock') == 'Y')) {
                // Notify admin even when he as unlocked an email
-               SURFBAR_NOTIFY_ADMIN('url_' . $addMode, $content);
+               doSurfbarNotifyAdmin('url_' . $addMode, $content);
        } // END - if
 
        // Send mail to user
-       SURFBAR_NOTIFY_USER('url_' . $addMode, $content);
+       doSurfbarNotifyMember('url_' . $addMode, $content);
 
        // Return the insert id
        return $content['insert_id'];
 }
 
 // Inserts an url by given data array and return the insert id
-function SURFBAR_INSERT_URL_BY_ARRAY ($urlData) {
+function insertSurfbarUrlByArray ($urlData) {
        // Get userid
        $userid = bigintval($urlData['url_userid']);
 
        // Is the id set?
-       if (empty($userid)) $userid = '0';
+       if (empty($userid)) {
+               $userid = 'NULL';
+       } // END - if
 
        // Just run the insert query for now
-       SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_urls` (`url_userid`,`url`,`url_status`,`url_views_max`,`url_views_allowed`,`url_fixed_reload`) VALUES (%s,'%s','%s',%s,%s,%s)",
+       sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_urls` (`url_userid`, `url`, `url_status`, `url_views_max`, `url_views_allowed`, `url_fixed_reload`, `url_fixed_waiting`) VALUES (%s, '%s', '%s', %s, %s, %s, %s)",
                array(
                        $userid,
                        $urlData['url'],
                        $urlData['url_status'],
                        $urlData['limit'],
                        $urlData['limit'],
-                       $urlData['reload']
+                       $urlData['reload'],
+                       $urlData['waiting']
                ), __FUNCTION__, __LINE__
        );
 
-       // Return insert id
-       return SQL_INSERTID();
+       // Return secured insert id
+       return getSqlInsertId();
 }
 
 // Notify admin(s) with a selected message and content
-function SURFBAR_NOTIFY_ADMIN ($messageType, $content) {
+function doSurfbarNotifyAdmin ($messageType, $content) {
        // Prepare template name
        $templateName = sprintf("admin_surfbar_%s", $messageType);
 
@@ -667,21 +745,21 @@ function SURFBAR_NOTIFY_ADMIN ($messageType, $content) {
        // 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);
+       $content = prepareSurfbarContentForTemplate($content);
 
        // Send the notification out
        return sendAdminNotification($subject, $templateName, $content, $content['url_userid']);
 }
 
 // Notify the user about the performed action
-function SURFBAR_NOTIFY_USER ($messageType, $content) {
+function doSurfbarNotifyMember ($messageType, $content) {
        // Skip notification if userid is zero
        if ($content['url_userid'] == '0') {
-               return false;
+               return FALSE;
        } // END - if
 
        // Prepare template name
@@ -699,7 +777,7 @@ function SURFBAR_NOTIFY_USER ($messageType, $content) {
        } // END - if
 
        // Translate some data if present
-       $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
+       $content = prepareSurfbarContentForTemplate($content);
 
        // Load template
        $mailText = loadEmailTemplate($templateName, $content, $content['url_userid']);
@@ -710,7 +788,7 @@ function SURFBAR_NOTIFY_USER ($messageType, $content) {
 
 // Translates some data for template usage
 // @TODO Can't we use our new expression language instead of this ugly code?
-function SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE ($content) {
+function prepareSurfbarContentForTemplate ($content) {
        // Prepare some code
        if (isset($content['url_registered']))  $content['url_registered']  = generateDateTime($content['url_registered'], 2);
        if (isset($content['url_last_locked'])) $content['url_last_locked'] = generateDateTime($content['url_last_locked'], 2);
@@ -727,7 +805,7 @@ function translateSurfbarLimit ($limit) {
                $return = '{--MEMBER_SURFBAR_UNLIMITED_VIEWS--}';
        } else {
                // Translate comma
-               $return = translateComma($limit);
+               $return = '{%pipe,translateComma=' . $limit . '%}';
        }
 
        // Return value
@@ -736,22 +814,70 @@ function translateSurfbarLimit ($limit) {
 
 // Translate the URL status
 function translateSurfbarUrlStatus ($status) {
-       // Return result
-       return 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));
+       }
+}
+
+// Translates the given action into a link title for members
+function translateMemberSurfbarActionToTitle ($action) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$action])) {
+               // Construct default return string (unknown
+               $GLOBALS[__FUNCTION__][$action] = '{%message,MEMBER_SURFBAR_ACTION_UNKNOWN_TITLE=' . $action . '%}';
+
+               // ... 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) {
+       // Is there 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 determineSurfbarReward ($onlyMin = FALSE) {
        // Static values are default
-       $reward = getConfig('surfbar_static_reward');
+       $reward = getSurfbarStaticReward();
 
-       // Do we have static or dynamic?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       // Is there static or dynamic?
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic reward
-               if ($onlyMin) {
-                       $reward += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
+               if ($onlyMin === TRUE) {
+                       $reward += calculateSurfbarDynamicMininumValue();
                } else {
-                       $reward += SURFBAR_CALCULATE_DYNAMIC_ADD();
+                       $reward += calculateSurfbarDynamicAddValue();
                }
        } // END - if
 
@@ -760,17 +886,17 @@ function SURFBAR_DETERMINE_REWARD ($onlyMin=false) {
 }
 
 // Determine costs
-function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
+function determineSurfbarCosts ($onlyMin=false) {
        // Static costs is default
        $costs  = getConfig('surfbar_static_costs');
 
-       // Do we have static or dynamic?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       // Is there static or dynamic?
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic costs
                if ($onlyMin) {
-                       $costs += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
+                       $costs += calculateSurfbarDynamicMininumValue();
                } else {
-                       $costs += SURFBAR_CALCULATE_DYNAMIC_ADD();
+                       $costs += calculateSurfbarDynamicAddValue();
                }
        } // END - if
 
@@ -779,25 +905,25 @@ function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
 }
 
 // "Calculate" dynamic add
-function SURFBAR_CALCULATE_DYNAMIC_ADD () {
+function calculateSurfbarDynamicAddValue () {
        // Get min/max values
-       $min = SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
-       $max = SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE();
+       $min = calculateSurfbarDynamicMininumValue();
+       $max = calculateSurfbarDynamicMaximumValue();
 
        // "Calculate" dynamic part and return it
        return mt_rand($min, $max);
 }
 
 // Determine right template name
-function SURFBAR_DETERMINE_TEMPLATE_NAME() {
+function determineSurfbarTemplateName() {
        // Default is the frameset
-       $templateName = "surfbar_frameset";
+       $templateName = 'surfbar_frameset';
 
        // Any frame set? ;-)
-       if (isGetRequestParameterSet('frame')) {
+       if (!isFullPage()) {
                // Use the frame as a template name part... ;-)
                $templateName = sprintf("surfbar_frame_%s",
-                       getRequestParameter('frame')
+                       getRequestElement('frame')
                );
        } // END - if
 
@@ -805,44 +931,48 @@ function SURFBAR_DETERMINE_TEMPLATE_NAME() {
        return $templateName;
 }
 
-// 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 () {
+/**
+ * Check if the "reload lock" of the current user is full, call this function
+ * before you call ifSurfbarReloadLock().
+ */
+function isSurfbarReloadFull () {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Fixed surf lock is ' . getConfig('surfbar_static_lock') . ' - ENTERED!');
        // Default is full!
-       $isFull = true;
+       $isFull = TRUE;
 
        // Cache static reload lock
        $GLOBALS['surfbar_cache']['surf_lock'] = getConfig('surfbar_static_lock');
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Fixed surf lock is '.getConfig('surfbar_static_lock') . '', false);
 
-       // Do we have dynamic model?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       // Is there dynamic model?
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'surf_lock=' . $GLOBALS['surfbar_cache']['surf_lock'] . ' - BEFORE');
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic lock
-               $GLOBALS['surfbar_cache']['surf_lock'] += SURFBAR_CALCULATE_DYNAMIC_ADD();
+               $GLOBALS['surfbar_cache']['surf_lock'] += calculateSurfbarDynamicAddValue();
        } // END - if
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'surf_lock=' . $GLOBALS['surfbar_cache']['surf_lock'] . ' - AFTER');
 
        // Ask the database
-       $result = SQL_QUERY_ESC("SELECT
-       COUNT(l.locks_id) AS cnt
+       $result = sqlQueryEscaped("SELECT
+       COUNT(`l`.`locks_id`) AS `cnt`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_locks` AS l
+       `{?_MYSQL_PREFIX?}_surfbar_locks` AS `l`
 INNER JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS u
+       `{?_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,getSurfbarSurfLock%%}) < 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__
        );
 
        // Fetch row
-       list($GLOBALS['surfbar_cache']['user_locks']) = SQL_FETCHROW($result);
+       list($GLOBALS['surfbar_cache']['user_locks']) = sqlFetchRow($result);
 
        // Is it null?
        if (is_null($GLOBALS['surfbar_cache']['user_locks'])) {
@@ -851,76 +981,76 @@ LIMIT 1",
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Get total URLs
-       $total = SURFBAR_GET_TOTAL_URLS();
+       $total = getSurfbarTotalUrls();
 
-       // Do we have some URLs in lock? Admins can always surf on own URLs!
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userLocks=".SURFBAR_GET_USER_LOCKS().",total={$total}", false);
-       $isFull = ((SURFBAR_GET_USER_LOCKS() == $total) && ($total > 0));
+       // Are there some URLs in lock? Admins can always surf on own URLs!
+       $isFull = ((getSurfbarUserLocks() == $total) && ($total > 0));
 
        // Return result
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userLocks=' . getSurfbarUserLocks() . ',total=' . $total . ',isFull=' . intval($isFull) . ' - EXIT!');
        return $isFull;
 }
 
 // Get total amount of URLs of given status for current user or of ACTIVE URLs by default
-function SURFBAR_GET_TOTAL_URLS ($status = 'ACTIVE', $excludeUserId = '0') {
+function getSurfbarTotalUrls ($status = 'ACTIVE', $excludeUserId = NULL) {
        // Determine depleted user account
-       $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS();
+       $userids = determineSurfbarDepletedUserids();
 
        // If we dont get any user ids back, there are no URLs
-       if (count($userids['url_userid']) == 0) {
+       if (!isFilledArray($userids['url_userid'])) {
                // No user ids found, no URLs!
                return 0;
        } // END - if
 
        // Is the exlude userid set?
-       if ($excludeUserId > 0) {
+       if (isValidId($excludeUserId)) {
                // Then add it
                $userids['url_userid'][$excludeUserId] = $excludeUserId;
        } // END - if
 
        // Get amount from database
-       $result = SQL_QUERY_ESC("SELECT
-       COUNT(`url_id`) AS cnt
+       $result = sqlQueryEscaped("SELECT
+       COUNT(`url_id`) AS `cnt`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_urls`
 WHERE
-       `url_userid` NOT IN (".implode(', ', $userids['url_userid']).") AND
+       (`url_userid` NOT IN (" . implode(', ', $userids['url_userid']) . ") OR `url_userid` IS NULL) AND
        `url_status`='%s'
 LIMIT 1",
                array($status), __FUNCTION__, __LINE__
        );
 
        // Fetch row
-       list($cnt) = SQL_FETCHROW($result);
+       list($count) = sqlFetchRow($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Debug message
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $cnt);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $count . ' - EXIT!');
 
        // 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') {
+// Check whether the user is allowed to book more URLs
+function ifSurfbarMemberAllowedMoreUrls ($userid = NULL) {
        // 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 (((is_null($userid)) && (isAdmin())) || (getSurfbarTotalUserUrls($userid, '', array('REJECTED')) < getSurfbarMaxOrder()));
 }
 
 // Get total amount of URLs of given status for current user
-function SURFBAR_GET_TOTAL_USER_URLS ($userid = '0', $status = '', $exclude = '') {
+function getSurfbarTotalUserUrls ($userid = NULL, $status = '', $exclude = '') {
        // Is the user 0 and user is logged in?
-       if (($userid == '0') && (isMember())) {
+       if ((is_null($userid)) && (isMember())) {
                // Then use this userid
                $userid = getMemberId();
-       } elseif ($userid == '0') {
+       } elseif (is_null($userid)) {
                // Error!
-               return (getConfig('surfbar_max_order') + 1);
+               return (getSurfbarMaxOrder() + 1);
        }
 
        // Default is all URLs
@@ -942,125 +1072,127 @@ 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
-       $GLOBALS['surfbar_cache']['salt'] = 'INVALID';
-
-       // Get code length from config
-       $length = getConfig('code_length');
-
-       // Fix length to 10
-       if ($length == '0') $length = 10;
-
-       // Generate a code until the length matches
-       $valCode = '';
-       while (strlen($valCode) != $length) {
-               // Is the salt set?
-               if (empty($salt)) {
-                       // Generate random hashed string
-                       $GLOBALS['surfbar_cache']['salt'] = sha1(generatePassword(mt_rand(200, 255)));
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newSalt='.SURFBAR_GET_SALT().'', false);
-               } else {
-                       // Use this as salt!
-                       $GLOBALS['surfbar_cache']['salt'] = $salt;
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'oldSalt='.SURFBAR_GET_SALT().'', false);
-               }
-
-               // ... and now the validation code
-               $valCode = generateRandomCode($length, sha1(SURFBAR_GET_SALT().':'.$urlId), getMemberId());
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'valCode='.valCode.'', false);
-       } // END - while
+function generateSurfbarValidationCode ($urlId, $salt = '') {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',salt=' . $salt . ' - ENTERED!');
+       // Init hash with invalid value
+       if (empty($salt)) {
+                // Generate random hashed string
+               $GLOBALS['surfbar_cache']['salt'] = sha1(generatePassword(mt_rand(200, 255)));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newSalt='.getSurfbarSalt().'', FALSE);
+       } else {
+               // Use this as salt!
+               $GLOBALS['surfbar_cache']['salt'] = $salt;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'oldSalt='.getSurfbarSalt().'', FALSE);
+       }
 
        // Hash it with md5() and salt it with the random string
-       $hashedCode = generateHash(md5($valCode), SURFBAR_GET_SALT());
+       $hashedCode = generateHash(md5($urlId . getEncryptSeparator() . getMemberId()), getSurfbarSalt());
 
        // Finally encrypt it PGP-like and return it
        $valHashedCode = encodeHashForCookie($hashedCode);
 
        // Return hashed value
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'finalValCode='.$valHashedCode.'', false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',salt=' . $salt . ',urlId=' . $urlId . ',salt=' . $salt . ',valHashedCode=' . $valHashedCode . ' - EXIT!');
        return $valHashedCode;
 }
 
 // Check validation code
-function SURFBAR_CHECK_VALIDATION_CODE ($urlId, $check, $salt) {
+function isSurfbarValidationCodeValid ($urlId, $check, $salt) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',check=' . $check . ',salt=' . $salt . ' - ENTERED!');
        // Secure id number
        $urlId = bigintval($urlId);
 
        // Now generate the code again
-       $code = SURFBAR_GENERATE_VALIDATION_CODE($urlId, $salt);
+       $code = generateSurfbarValidationCode($urlId, $salt);
 
        // Return result of checking hashes and salts
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '---'.$code.'|'.$check.'---', false);
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '+++'.$salt.'|'.SURFBAR_GET_DATA('salts_last_salt').'+++', false);
-       return (($code == $check) && ($salt == SURFBAR_GET_DATA('salts_last_salt')));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',(code==check)=' . intval($code == $check) . ',(salt==salts_last_salt)=' . intval($salt == getSurfbarData('salts_last_salt')) . ' - EXIT!');
+       return (($code == $check) && ($salt == getSurfbarData('salts_last_salt')));
 }
 
 // Lockdown the userid/id combination (reload lock)
-function SURFBAR_LOCKDOWN_ID ($urlId) {
-       //* 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)",
-               array(getMemberId(), bigintval($urlId)), __FUNCTION__, __LINE__);
+function addSurfbarReloadLockById ($urlId) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',getMemberId()=' . getMemberId() . ' - ENTERED!');
+       // Search for an entry
+       $countLock = countSumTotalData(getMemberId(), 'surfbar_locks', 'locks_id', 'locks_userid', TRUE, ' AND `locks_url_id`=' . bigintval($urlId));
+
+       // Is there no record?
+       if ($countLock == 0) {
+               // Just add it to the database
+               sqlQueryEscaped('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_locks` (`locks_userid`, `locks_url_id`) VALUES (%s, %s)',
+                       array(
+                               getMemberId(),
+                               bigintval($urlId)
+                       ), __FUNCTION__, __LINE__);
+       } // END - if
 
        // 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",
-               array(bigintval($urlId), getMemberId()), __FUNCTION__, __LINE__);
+       sqlQueryEscaped('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__);
+
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',getMemberId()=' . getMemberId() . ',sqlAffectedRows()=' . sqlAffectedRows() . ' - EXIT!');
 }
 
 // Pay points to the user and remove it from the sender if userid is given else it is a "sponsored surf"
-function SURFBAR_PAY_POINTS () {
+function doSurfbarPayPoints () {
        // Remove it from the URL owner
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.SURFBAR_GET_USERID().',costs='.SURFBAR_GET_COSTS().'', false);
-       if (isValidUserId(SURFBAR_GET_USERID())) {
-               subtractPoints(sprintf("surfbar_%s", getConfig('surfbar_pay_model')), SURFBAR_GET_USERID(), SURFBAR_GET_COSTS());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getSurfbarUserid().',costs='.getSurfbarCosts() . ' - ENTERED!');
+       if (isValidId(getSurfbarUserid())) {
+               // Subtract points and ignore return status
+               subtractPoints(sprintf("surfbar_%s", getSurfbarPaymentModel()), getSurfbarUserid(), getSurfbarCosts());
        } // 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'));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getMemberId().',reward='.getSurfbarReward());
+       // Init referral system here
+       initReferralSystem();
+
+       // Book it to the user and ignore return status
+       addPointsThroughReferralSystem(sprintf("surfbar:%s", getSurfbarPaymentModel()), getMemberId(), getSurfbarReward());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getSurfbarUserid().',costs='.getSurfbarCosts() . ' - EXIT!');
 }
 
 // Updates the statistics of current URL/userid
-function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
+function updateInsertSurfbarStatisticsRecord () {
        // Init add
        $add = '';
 
        // Get allowed views
-       $allowed = SURFBAR_GET_VIEWS_ALLOWED();
+       $allowed = getSurfbarViewsAllowed();
 
-       // Do we have a limit?
+       // Is there 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",
-               array(SURFBAR_GET_ID()), __FUNCTION__, __LINE__);
+       sqlQueryEscaped('UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_views_total`=`url_views_total`+1' . $add . ' WHERE `url_id`=%s LIMIT 1',
+               array(getSurfbarId()), __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",
+       sqlQueryEscaped('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()
+                       getSurfbarId()
                ), __FUNCTION__, __LINE__);
 
        // Was that update okay?
-       if (SQL_AFFECTEDROWS() < 1) {
+       if (ifSqlHasZeroAffectedRows()) {
                // No, then insert entry
-               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_stats` (`stats_userid`, `stats_url_id`, `stats_count`) VALUES (%s,%s,1)",
+               sqlQueryEscaped('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_stats` (`stats_userid`, `stats_url_id`, `stats_count`) VALUES (%s,%s,1)',
                        array(
                                getMemberId(),
-                               SURFBAR_GET_ID()
+                               getSurfbarId()
                        ), __FUNCTION__, __LINE__);
        } // END - if
 
@@ -1075,68 +1207,85 @@ function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
 }
 
 // Update the salt for validation and statistics
-function SURFBAR_UPDATE_SALT_STATS () {
-       // Update statistics record
-       SURFBAR_UPDATE_INSERT_STATS_RECORD();
-
+function updateSurfbarSaltStatistics () {
        // Update salt
-       SURFBAR_GENERATE_VALIDATION_CODE(SURFBAR_GET_ID());
+       generateSurfbarValidationCode(getSurfbarId());
+
+       // Make sure only valid salts can pass
+       if (getSurfbarSalt() == 'INVALID') {
+               // Invalid provided
+               reportBug(__FUNCTION__, __LINE__, 'Invalid salt provided, id=' . getSurfbarId() . ',getMemberId()=' . getMemberId());
+       } // END - if
+
+       // Update statistics record
+       updateInsertSurfbarStatisticsRecord();
 
        // 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(
-                       SURFBAR_GET_SALT(),
-                       SURFBAR_GET_ID(),
-                       getMemberId()
-               ), __FUNCTION__, __LINE__);
+       sqlQuery("UPDATE
+       `{?_MYSQL_PREFIX?}_surfbar_salts`
+SET
+       `salts_last_salt`='{%pipe,getSurfbarSalt%}'
+WHERE
+       `salts_url_id`={%pipe,getSurfbarId%} AND
+       `salts_userid`={%pipe,getMemberId%}
+LIMIT 1", __FUNCTION__, __LINE__);
 
        // Debug message
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'salt='.SURFBAR_GET_SALT().',id='.SURFBAR_GET_ID().',userid='.getMemberId().'', false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'salt=' . getSurfbarSalt() . ',id=' . getSurfbarId() . ',userid=' . getMemberId() . ',sqlAffectedRows()=' . sqlAffectedRows() . ' - UPDATE!');
 
        // Was that okay?
-       if (SQL_AFFECTEDROWS() < 1) {
+       if (ifSqlHasZeroAffectedRows()) {
                // 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__);
+               sqlQuery("INSERT INTO
+       `{?_MYSQL_PREFIX?}_surfbar_salts`
+(
+       `salts_url_id`,
+       `salts_userid`,
+       `salts_last_salt`
+) VALUES (
+       {%pipe,getSurfbarId%},
+       {%pipe,getMemberId%},
+       '{%pipe,getSurfbarSalt%}'
+)", __FUNCTION__, __LINE__);
        } // END - if
 
        // Debug message
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'affectedRows='.SQL_AFFECTEDROWS().'', false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'affectedRows=' . sqlAffectedRows() . ' - EXIT!');
 
        // Return if the update was okay
-       return (SQL_AFFECTEDROWS() == 1);
+       return (!ifSqlHasZeroAffectedRows());
 }
 
 // Check if the reload lock is active for given id
-function SURFBAR_CHECK_RELOAD_LOCK ($urlId) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $urlId . '', false);
+function ifSurfbarReloadLock ($urlId) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $urlId . ' -  ENTERED!');
        // Ask the database
-       $result = SQL_QUERY_ESC("SELECT COUNT(`locks_id`) AS cnt
+       $result = sqlQueryEscaped('SELECT COUNT(`locks_id`) AS `cnt`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_locks`
 WHERE
        `locks_userid`=%s AND
        `locks_url_id`=%s AND
-       (UNIX_TIMESTAMP() - ".SURFBAR_GET_SURF_LOCK().") < UNIX_TIMESTAMP(`locks_last_surfed`)
+       (UNIX_TIMESTAMP() - {%%pipe,getSurfbarSurfLock%%}) < UNIX_TIMESTAMP(`locks_last_surfed`)
 ORDER BY
        `locks_last_surfed` ASC
-LIMIT 1",
+LIMIT 1',
                array(getMemberId(), bigintval($urlId)), __FUNCTION__, __LINE__
        );
 
        // Fetch counter
-       list($cnt) = SQL_FETCHROW($result);
+       list($count) = sqlFetchRow($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return check
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $cnt . ',' . SURFBAR_GET_SURF_LOCK() . '', false);
-       return ($cnt == 1);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',count=' . $count . ',getSurfbarSurfLock()=' . getSurfbarSurfLock() . ' - EXIT!');
+       return ($count == 1);
 }
 
 // Determine which user hash no more points left
-function SURFBAR_DETERMINE_DEPLETED_USERIDS ($limit=0) {
+function determineSurfbarDepletedUserids ($limit=0) {
        // Init array
        $userids = array(
                'url_userid'   => array(),
@@ -1144,7 +1293,7 @@ function SURFBAR_DETERMINE_DEPLETED_USERIDS ($limit=0) {
                'notified'     => array(),
        );
 
-       // Do we have a current user id?
+       // Is there a current user id?
        if ((isMember()) && ($limit == '0')) {
                // Then add this as well
                $userids['url_userid'][getMemberId()] = getMemberId();
@@ -1152,49 +1301,54 @@ function SURFBAR_DETERMINE_DEPLETED_USERIDS ($limit=0) {
                $userids['notified'][getMemberId()]   = '0';
 
                // Get all userid except logged in one
-               $result = SQL_QUERY_ESC("SELECT
-       u.url_userid, UNIX_TIMESTAMP(d.surfbar_low_notified) AS notified
+               $result = sqlQueryEscaped("SELECT
+       `u`.`url_userid`,
+       UNIX_TIMESTAMP(`d`.`surfbar_low_notified`) AS `notified`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS u
+       `{?_MYSQL_PREFIX?}_surfbar_urls` AS `u`
 INNER JOIN
-       `{?_MYSQL_PREFIX?}_user_data` AS d
+       `{?_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) AND
+       `u`.`url_userid` IS NOT NULL 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
-               $result = SQL_QUERY("SELECT
-       u.url_userid, UNIX_TIMESTAMP(d.surfbar_low_notified) AS notified
+               $result = sqlQuery("SELECT
+       `u`.`url_userid`,
+       UNIX_TIMESTAMP(`d`.`surfbar_low_notified`) AS `notified`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS u
+       `{?_MYSQL_PREFIX?}_surfbar_urls` AS `u`
 INNER JOIN
-       `{?_MYSQL_PREFIX?}_user_data` AS d
+       `{?_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)) {
+       while ($content = sqlFetchArray($result)) {
                // Get total points
                $points = getTotalPoints($content['url_userid']);
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userid={$content['url_userid']},points={$points}", false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $content['url_userid'] . ',points=' . $points);
 
                // Shall we add this to ignore?
                if ($points <= $limit) {
                        // Ignore this one!
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "userid={$content['url_userid']} has depleted points amount!", false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $content['url_userid'] . ' has depleted points amount!');
                        $userids['url_userid'][$content['url_userid']] = $content['url_userid'];
                        $userids['points'][$content['url_userid']]     = $points;
                        $userids['notified'][$content['url_userid']]   = $content['notified'];
@@ -1202,55 +1356,55 @@ ORDER BY
        } // END - while
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Debug message
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "UIDs::count=".count($userids)." (with own userid=".getMemberId().')', false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UIDs::count=' . count($userids) . ' (with own userid=' . getMemberId() . ')');
 
        // Return result
        return $userids;
 }
 
 // Determine how many users are Online in surfbar
-function SURFBAR_DETERMINE_TOTAL_ONLINE () {
+function determineSurfbarTotalOnline () {
        // Count all users in surfbar modue and return the value
-       $result = SQL_QUERY("SELECT
+       $result = sqlQuery('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 = sqlNumRows($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return result
-       return $cnt;
+       return $count;
 }
 
 // Determine waiting time for one URL
-function SURFBAR_DETERMINE_WAIT_TIME () {
+function determineSurfbarWaitingTime () {
        // Get fixed reload lock
-       $fixed = SURFBAR_GET_FIXED_RELOAD();
+       $fixed = getSurfbarFixedWaitingTime();
 
-       // Is the fixed reload time set?
+       // Is the URL's fixed waiting time set?
        if ($fixed > 0) {
                // Return it
                return $fixed;
        } // END - if
 
        // Static time is default
-       $time = getConfig('surfbar_static_time');
+       $time = getSurfbarStaticTime();
 
        // Which payment model do we have?
-       if (getConfig('surfbar_pay_model') == 'DYNAMIC') {
+       if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic time
-               $time += SURFBAR_CALCULATE_DYNAMIC_ADD();
+               $time += calculateSurfbarDynamicAddValue();
        } // END - if
 
        // Return value
@@ -1258,67 +1412,64 @@ function SURFBAR_DETERMINE_WAIT_TIME () {
 }
 
 // Changes the status of an URL from given to other
-function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data=array()) {
+function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array()) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',data[]=' . gettype($data) . ',newStatus=' . $newStatus . ' - ENTERED!');
        // Make new status always lower-case
        $newStatus = strtolower($newStatus);
 
        // Get URL data for status comparison if missing
-       if ((!is_array($data)) || (count($data) == 0)) {
+       if (!isFilledArray($data)) {
                // Fetch missing URL data
-               $data = SURFBAR_GET_URL_DATA($urlId);
+               $data = getSurfbarUrlData($urlId);
        } // END - if
 
-       // Is the new status set?
-       if ((!is_string($newStatus)) || (empty($newStatus))) {
-               // Abort here, but fine!
-               return true;
-       } // END - if
+       // Prepare array
+       $filterData = array(
+               'url_id'      => $urlId,
+               'prev_status' => $prevStatus,
+               'new_status'  => $newStatus,
+               'data'        => $data,
+       );
 
-       // Is the status like prevStatus is saying?
-       if ($data[$urlId]['url_status'] != $prevStatus) {
-               // No, then abort here
-               return false;
-       } // END - if
+       // Run pre filter chain
+       $filterData = runFilterChain('pre_change_surfbar_url_status', $filterData);
 
+       // Abort here?
+       if (isFilterChainAborted()) {
+               // Abort here
+               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 `url_id`=%s LIMIT 1",
-       //      array($newStatus, bigintval($urlId)), __FUNCTION__, __LINE__);
+       sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_status`='%s' WHERE `url_id`=%s LIMIT 1",
+               array(
+                       $newStatus,
+                       bigintval($urlId)
+               ), __FUNCTION__, __LINE__);
        // ---------- Comment out for debugging/developing member actions! ---------
 
        // Was that fine?
        // ---------- Comment out for debugging/developing member actions! ---------
-       //if (SQL_AFFECTEDROWS() != 1) {
-       //      // No, something went wrong
-       //      return false;
-       //} // END - if
-       // ---------- Comment out for debugging/developing member actions! ---------
-
-       // Prepare content for notification routines
-       $data[$urlId]['url_userid']  = $data[$urlId]['url_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';
+       if (sqlAffectedRows() != 1) {
+               // No, something went wrong
+               return FALSE;
        } // END - if
+       // ---------- Comment out for debugging/developing member actions! ---------
 
-       // 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]);
+       // Check if generic 'data' is there
+       assert(isset($filterData['data']));
 
        // All done!
-       return true;
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - EXIT!');
+       return TRUE;
 }
 
 // Calculate minimum value for dynamic payment model
-function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
+function calculateSurfbarDynamicMininumValue () {
        // Addon is zero by default
        $addon = '0';
 
@@ -1329,16 +1480,16 @@ function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
        $totalUsers = getTotalConfirmedUser();
 
        // Get online users
-       $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
+       $onlineUsers = determineSurfbarTotalOnline();
 
        // Calculate addon
        $addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers);
 
        // Get total URLs
-       $totalUrls = SURFBAR_GET_TOTAL_URLS('ACTIVE', 0);
+       $totalUrls = getSurfbarTotalUrls('ACTIVE', 0);
 
        // Get user's total URLs
-       $userUrls = SURFBAR_GET_TOTAL_USER_URLS(0, 'ACTIVE');
+       $userUrls = getSurfbarTotalUserUrls(0, 'ACTIVE');
 
        // Calculate addon
        if ($totalUrls > 0) {
@@ -1352,7 +1503,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
 }
 
 // Calculate maximum value for dynamic payment model
-function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
+function calculateSurfbarDynamicMaximumValue () {
        // Addon is zero by default
        $addon = '0';
 
@@ -1369,7 +1520,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
        $addon += abs($max * $percent * $totalUsers);
 
        // Get total URLs
-       $totalUrls = SURFBAR_GET_TOTAL_URLS('ACTIVE', 0);
+       $totalUrls = getSurfbarTotalUrls('ACTIVE', 0);
 
        // Calculate addon
        $addon += abs($max * $percent * $totalUrls);
@@ -1379,12 +1530,12 @@ function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
 }
 
 // Calculate dynamic lock
-function SURFBAR_CALCULATE_DYNAMIC_LOCK () {
+function calculateSurfbarDynamicLock () {
        // Default lock is 30 seconds
        $addon = 30;
 
        // Get online users
-       $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
+       $onlineUsers = determineSurfbarTotalOnline();
 
        // Calculate lock
        $addon = abs(log($onlineUsers / $addon + 1));
@@ -1394,14 +1545,17 @@ function SURFBAR_CALCULATE_DYNAMIC_LOCK () {
 }
 
 // "Getter" for lock ids array
-function SURFBAR_GET_LOCK_IDS () {
+function getSurfbarLockIdsArray () {
        // Prepare some arrays
        $IDs = array();
        $USE = array();
        $ignored = array();
 
        // Get all id from locks within the timestamp
-       $result = SQL_QUERY_ESC("SELECT `locks_id`, `locks_url_id`, UNIX_TIMESTAMP(`locks_last_surfed`) AS last_surfed
+       $result = sqlQueryEscaped("SELECT
+       `locks_id`,
+       `locks_url_id`,
+       UNIX_TIMESTAMP(`locks_last_surfed`) AS `last_surfed`
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_locks`
 WHERE
@@ -1411,148 +1565,150 @@ ORDER BY
        __FUNCTION__, __LINE__);
 
        // Load all entries
-       while ($content = SQL_FETCHARRAY($result)) {
+       while ($content = sqlFetchArray($result)) {
                // Debug message
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'next - lid='.$content['id'].',url='.$content['url_id'].',rest='.(time() - $content['last_surfed']).'/'.SURFBAR_GET_SURF_LOCK().'', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'next - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',rest='.(time() - $content['last_surfed']).'/'.getSurfbarSurfLock());
 
                // Skip entries that are too old
-               if (($content['last_surfed'] > (time() - SURFBAR_GET_SURF_LOCK())) && (!in_array($content['url_id'], $ignored))) {
+               if (($content['last_surfed'] > (time() - getSurfbarSurfLock())) && (!in_array($content['locks_url_id'], $ignored))) {
                        // Debug message
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'okay - lid='.$content['id'].',url='.$content['url_id'].',last='.$content['last_surfed'].'', false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'okay - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
                        // Add only if missing or bigger
-                       if ((!isset($IDs[$content['url_id']])) || ($IDs[$content['url_id']] > $content['last_surfed'])) {
+                       if ((!isset($IDs[$content['locks_url_id']])) || ($IDs[$content['locks_url_id']] > $content['last_surfed'])) {
                                // Debug message
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ADD - lid='.$content['id'].',url='.$content['url_id'].',last='.$content['last_surfed'].'', false);
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ADD - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
                                // Add this id
-                               $IDs[$content['url_id']] = $content['last_surfed'];
-                               $USE[$content['url_id']] = $content['id'];
+                               $IDs[$content['locks_url_id']] = $content['last_surfed'];
+                               $USE[$content['locks_url_id']] = $content['locks_id'];
                        } // END - if
                } else {
                        // Debug message
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ignore - lid='.$content['id'].',url='.$content['url_id'].',last='.$content['last_surfed'].'', false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ignore - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
                        // Ignore these old entries!
-                       $ignored[] = $content['url_id'];
-                       unset($IDs[$content['url_id']]);
-                       unset($USE[$content['url_id']]);
+                       array_push($ignored, $content['locks_url_id']);
+                       unset($IDs[$content['locks_url_id']]);
+                       unset($USE[$content['locks_url_id']]);
                }
        } // END - while
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return array
        return $USE;
 }
 
 // "Getter" for maximum random number
-function SURFBAR_GET_MAX_RANDOM ($userids, $add) {
+function getSurfbarMaximumRandom ($userids, $add) {
        // Count max availabe entries
-       $result = SQL_QUERY("SELECT
-       sbu.url_id AS cnt
+       $result = sqlQuery("SELECT
+       `sbu`.`url_id` AS `cnt`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS sbu
+       `{?_MYSQL_PREFIX?}_surfbar_urls` AS `sbu`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_salts` AS sbs
+       `{?_MYSQL_PREFIX?}_surfbar_salts` AS `sbs`
 ON
-       sbu.url_id=sbs.salts_url_id
+       `sbu`.`url_id`=`sbs`.`salts_url_id`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_locks` AS l
+       `{?_MYSQL_PREFIX?}_surfbar_locks` AS `l`
 ON
-       sbu.url_id=l.locks_url_id
+       `sbu`.`url_id`=`l`.`locks_url_id`
 WHERE
-       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."
+       `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 . "
 GROUP BY
-       sbu.url_id ASC", __FUNCTION__, __LINE__);
+       `sbu`.`url_id` ASC", __FUNCTION__, __LINE__);
 
        // Log last query
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.SQL_NUMROWS($result).'|Affected='.SQL_AFFECTEDROWS().'', false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.sqlNumRows($result).'|Affected='.sqlAffectedRows());
 
        // Fetch max rand
-       $maxRand = SQL_NUMROWS($result);
+       $maxRand = sqlNumRows($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return value
        return $maxRand;
 }
 
 // Load all URLs of the current user and return it as an array
-function SURFBAR_GET_USER_URLS () {
+function getSurfbarUserUrls () {
        // Init array
        $urlArray = array();
 
        // Begin the query
-       $result = SQL_QUERY_ESC("SELECT
-       u.url_id,
-       u.url_userid,
-       u.url,
-       u.url_status,
-       u.url_views_total,
-       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
+       $result = sqlQueryEscaped("SELECT
+       `u`.`url_id`,
+       `u`.`url_userid`,
+       `u`.`url_package_id`,
+       `u`.`url`,
+       `u`.`url_status`,
+       `u`.`url_views_total`,
+       `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`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS u
+       `{?_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__);
+       `u`.`url_id` ASC",
+               array(getMemberId()), __FUNCTION__, __LINE__);
 
        // Are there entries?
-       if (!SQL_HASZERONUMS($result)) {
+       if (!ifSqlHasZeroNums($result)) {
                // Load all rows
-               while ($row = SQL_FETCHARRAY($result)) {
+               while ($row = sqlFetchArray($result)) {
                        // Add the row
-                       $urlArray[$row['id']] = $row;
+                       $urlArray[$row['url_id']] = $row;
                } // END - while
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return the array
        return $urlArray;
 }
 
 // "Getter" for member action array for given status
-function SURFBAR_GET_ARRAY_FROM_STATUS ($status) {
+function getSurfbarArrayFromStatus ($status) {
        // Init array
        $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 = sqlQueryEscaped("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_HASZERONUMS($result)) {
+       if (!ifSqlHasZeroNums($result)) {
                // Load all actions
                // @TODO This can be somehow rewritten
-               while ($content = SQL_FETCHARRAY($result)) {
-                       $returnArray[] = $content['action'];
+               while ($content = sqlFetchArray($result)) {
+                       array_push($returnArray, $content['actions_action']);
                } // END - if
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return result
        return $returnArray;
 }
 
 // Reload to configured stop page
-function SURFBAR_RELOAD_TO_STOP_PAGE ($page = 'stop') {
+function redirectToSurfbarStopPage ($page = 'stop') {
        // Internal or external?
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'page=' . $page . ' - ENTERED!');
        if ((getConfig('surfbar_pause_mode') == 'INTERNAL') || (getConfig('surfbar_pause_url') == '')) {
                // Reload to internal page
                redirectToUrl('surfbar.php?frame=' . $page);
@@ -1562,23 +1718,26 @@ 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!!!
-function SURFBAR_DETERMINE_NEXT_ID ($urlId = '0') {
+/**
+ * Determine next id for surfbar or get data for given id, always call this
+ * before you call other getters below this function!
+ */
+function determineSurfbarNextId ($urlId = NULL) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ' - ENTERED!');
        // Default is no id and no random number
        $nextId = '0';
        $randNum = '0';
 
        // Is the id set?
-       if ($urlId == '0') {
+       if (is_null($urlId)) {
                // Get array with lock ids
-               $USE = SURFBAR_GET_LOCK_IDS();
+               $USE = getSurfbarLockIdsArray();
 
                // Shall we add some URL ids to ignore?
                $add = '';
-               if (count($USE) > 0) {
+               if (isFilledArray($USE)) {
                        // 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.',';
@@ -1589,10 +1748,10 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = '0') {
                } // END - if
 
                // Determine depleted user account
-               $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS();
+               $userids = determineSurfbarDepletedUserids();
 
                // Get maximum randomness factor
-               $maxRand = SURFBAR_GET_MAX_RANDOM($userids['url_userid'], $add);
+               $maxRand = getSurfbarMaximumRandom($userids['url_userid'], $add);
 
                // If more than one URL can be called generate the random number!
                if ($maxRand > 1) {
@@ -1601,284 +1760,505 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = '0') {
                } // END - if
 
                // And query the database
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'randNum='.$randNum.',maxRand='.$maxRand.',surfLock='.SURFBAR_GET_SURF_LOCK().'', false);
-               $result = SQL_QUERY_ESC("SELECT
-       sbu.url_id,
-       sbu.url_userid,
-       sbu.url,
-       sbs.salts_last_salt,
-       sbu.url_views_total,
-       sbu.url_views_max,
-       sbu.url_views_allowed,
-       UNIX_TIMESTAMP(l.locks_last_surfed) AS last_surfed,
-       sbu.url_fixed_reload
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'randNum='.$randNum.',maxRand='.$maxRand.',surfLock='.getSurfbarSurfLock());
+               $result = sqlQueryEscaped("SELECT
+       `sbu`.`url_id`,
+       `sbu`.`url_userid`,
+       `sbu`.`url_package_id`,
+       `sbu`.`url`,
+       `sbs`.`salts_last_salt`,
+       `sbu`.`url_views_total`,
+       `sbu`.`url_views_max`,
+       `sbu`.`url_views_allowed`,
+       UNIX_TIMESTAMP(`l`.`locks_last_surfed`) AS `last_surfed`,
+       `sbu`.`url_fixed_reload`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS sbu
+       `{?_MYSQL_PREFIX?}_surfbar_urls` AS `sbu`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_salts` AS sbs
+       `{?_MYSQL_PREFIX?}_surfbar_salts` AS `sbs`
 ON
-       sbu.url_id=sbs.salts_url_id
+       `sbu`.`url_id`=`sbs`.`salts_url_id`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_locks` AS l
+       `{?_MYSQL_PREFIX?}_surfbar_locks` AS `l`
 ON
-       sbu.url_id=l.locks_url_id
+       `sbu`.`url_id`=`l`.`locks_url_id`
 WHERE
-       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."
+       (`sbu`.`url_userid` NOT IN (" . implode(',', $userids['url_userid']) . ") OR `sbu`.`url_userid` IS NULL) 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
+       `l`.`locks_last_surfed` ASC,
+       `sbu`.`url_id` ASC
 LIMIT %s,1",
                        array($randNum), __FUNCTION__, __LINE__
                );
        } else {
                // Get data from specified id number
-               $result = SQL_QUERY_ESC("SELECT
-       sbu.url_id,
-       sbu.url_userid,
-       sbu.url,
-       sbs.salts_last_salt,
-       sbu.url_views_total,
-       sbu.url_views_max,
-       sbu.url_views_allowed,
-       UNIX_TIMESTAMP(l.locks_last_surfed) AS last_surfed,
-       sbu.url_fixed_reload
+               $result = sqlQueryEscaped("SELECT
+       `sbu`.`url_id`,
+       `sbu`.`url_userid`,
+       `sbu`.`url_package_id`,
+       `sbu`.`url`,
+       `sbs`.`salts_last_salt`,
+       `sbu`.`url_views_total`,
+       `sbu`.`url_views_max`,
+       `sbu`.`url_views_allowed`,
+       UNIX_TIMESTAMP(`l`.`locks_last_surfed`) AS `last_surfed`,
+       `sbu`.`url_fixed_reload`
 FROM
-       `{?_MYSQL_PREFIX?}_surfbar_urls` AS sbu
+       `{?_MYSQL_PREFIX?}_surfbar_urls` AS `sbu`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_salts` AS sbs
+       `{?_MYSQL_PREFIX?}_surfbar_salts` AS `sbs`
 ON
-       sbu.url_id=sbs.salts_url_id
+       `sbu`.`url_id`=`sbs`.`salts_url_id`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_surfbar_locks` AS l
+       `{?_MYSQL_PREFIX?}_surfbar_locks` AS `l`
 ON
-       sbu.url_id=l.locks_url_id
+       `sbu`.`url_id`=`l`.`locks_url_id`
 WHERE
-       sbu.url_userid != %s AND
-       sbu.url_status='ACTIVE' AND
-       sbu.url_id=%s AND
-       (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0))
+       (`sbu`.`url_userid` != %s OR `sbu`.`url_userid` IS NULL) AND
+       `sbu`.`url_status`='ACTIVE' AND
+       `sbu`.`url_id`=%s AND
+       (`sbu`.`url_views_allowed` = 0 OR (`sbu`.`url_views_allowed` > 0 AND `sbu`.`url_views_max` > 0))
 LIMIT 1",
                        array(getMemberId(), bigintval($urlId)), __FUNCTION__, __LINE__
                );
        }
 
        // Is there an id number?
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.SQL_NUMROWS($result).'|Affected='.SQL_AFFECTEDROWS().'', false);
-       if (SQL_NUMROWS($result) == 1) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.sqlNumRows($result).'|Affected='.sqlAffectedRows());
+       if (sqlNumRows($result) == 1) {
                // Load/cache data
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - BEFORE', false);
-               $GLOBALS['surfbar_cache'] = merge_array($GLOBALS['surfbar_cache'], SQL_FETCHARRAY($result));
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - AFTER', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - BEFORE', FALSE);
+               $GLOBALS['surfbar_cache'] = merge_array($GLOBALS['surfbar_cache'], sqlFetchArray($result));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - AFTER', FALSE);
 
                // Determine waiting time
-               $GLOBALS['surfbar_cache']['time'] = SURFBAR_DETERMINE_WAIT_TIME();
+               $GLOBALS['surfbar_cache']['waiting'] = determineSurfbarWaitingTime();
 
                // Is the last salt there?
                if (is_null($GLOBALS['surfbar_cache']['salts_last_salt'])) {
                        // Then repair it wit the static!
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_salt - FIXED!', false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_salt - FIXED!', FALSE);
                        $GLOBALS['surfbar_cache']['salts_last_salt'] = '';
                } // END - if
 
                // Fix missing last_surfed
                if ((!isset($GLOBALS['surfbar_cache']['last_surfed'])) || (is_null($GLOBALS['surfbar_cache']['last_surfed']))) {
                        // Fix it here
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_surfed - FIXED!', false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_surfed - FIXED!', FALSE);
                        $GLOBALS['surfbar_cache']['last_surfed'] = '0';
                } // END - if
 
                // Get base/fixed reward and costs
-               $GLOBALS['surfbar_cache']['reward'] = SURFBAR_DETERMINE_REWARD();
-               $GLOBALS['surfbar_cache']['costs']  = SURFBAR_DETERMINE_COSTS();
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.SURFBAR_GET_REWARD().'|costs='.SURFBAR_GET_COSTS().'', false);
+               $GLOBALS['surfbar_cache']['reward'] = determineSurfbarReward();
+               $GLOBALS['surfbar_cache']['costs']  = determineSurfbarCosts();
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.getSurfbarReward().'|costs='.getSurfbarCosts());
 
                // 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();
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DYNAMIC+ - reward='.SURFBAR_GET_REWARD().'|costs='.SURFBAR_GET_COSTS().'', false);
+                       $GLOBALS['surfbar_cache']['reward'] += calculateSurfbarDynamicAddValue();
+                       $GLOBALS['surfbar_cache']['costs']  += calculateSurfbarDynamicAddValue();
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DYNAMIC+ - reward='.getSurfbarReward().'|costs='.getSurfbarCosts());
                } // END - if
 
                // Now get the id
-               $nextId = SURFBAR_GET_ID();
+               $nextId = getSurfbarId();
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return result
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'nextId='.$nextId.'', false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',nextId=' . $nextId . ' - EXIT!');
        return $nextId;
 }
 
-// ----------------------------------------------------------------------------
+// Generates an URL to the given booking package
+function generateSurfbarPackageLink ($packageId) {
+       // Base URL
+       $url  = '{%url=modules.php?module=admin&amp;what=list_surfbar_packages';
+
+       // Is package id given?
+       if (isValidId($packageId)) {
+               // Then add it
+               $url .= '&amp;package_id=' . bigintval($packageId);
+       } // END - if
+
+       // Finish URL EL code
+       $url .= '%}';
+
+       // Return it
+       return $url;
+}
+
+//-----------------------------------------------------------------------------
 // Wrapper function
-// ----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
 
 // "Getter" for surfbar_dynamic_percent
 function getSurfbarDynamicPercent () {
-       // Do we have cache?
-       if (!isset($GLOBALS['surfbar_dynamic_percent'])) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
-               $GLOBALS['surfbar_dynamic_percent'] = getConfig('surfbar_dynamic_percent');
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_dynamic_percent');
        } // END - if
 
        // Return cache
-       return $GLOBALS['surfbar_dynamic_percent'];
+       return $GLOBALS[__FUNCTION__];
 }
 
 // "Getter" for surfbar_static_reward
 function getSurfbarStaticReward () {
-       // Do we have cache?
-       if (!isset($GLOBALS['surfbar_static_reward'])) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
-               $GLOBALS['surfbar_static_reward'] = getConfig('surfbar_static_reward');
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_static_reward');
        } // END - if
 
        // Return cache
-       return $GLOBALS['surfbar_static_reward'];
+       return $GLOBALS[__FUNCTION__];
 }
 
 // "Getter" for surfbar_static_time
 function getSurfbarStaticTime () {
-       // Do we have cache?
-       if (!isset($GLOBALS['surfbar_static_time'])) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
-               $GLOBALS['surfbar_static_time'] = getConfig('surfbar_static_time');
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_static_time');
        } // END - if
 
        // Return cache
-       return $GLOBALS['surfbar_static_time'];
+       return $GLOBALS[__FUNCTION__];
 }
 
 // "Getter" for surfbar_max_order
 function getSurfbarMaxOrder () {
-       // Do we have cache?
-       if (!isset($GLOBALS['surfbar_max_order'])) {
+       // Is there 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 () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_payment_model');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_stats_reload
+function getSurfbarStatsReload () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_stats_reload');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_restart_time
+function getSurfbarRestartTime () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_restart_time');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_auto_start
+function getSurfbarAutoStart () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_auto_start');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether auto-start is enabled
+function isSurfbarAutoStartEnabled () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = ((isConfigEntry('surfbar_auto_start')) && (getSurfbarAutoStart() == 'Y'));
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_daily_counter
+function getSurfbarDailyCounter () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_daily_counter');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_yester_counter
+function getSurfbarYesterCounter () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_yester_counter');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_weekly_counter
+function getSurfbarWeeklyCounter () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
-               $GLOBALS['surfbar_max_order'] = getConfig('surfbar_max_order');
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_weekly_counter');
        } // END - if
 
        // Return cache
-       return $GLOBALS['surfbar_max_order'];
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_monthly_counter
+function getSurfbarMonthlyCounter () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_monthly_counter');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for surfbar_total_counter
+function getSurfbarTotalCounter () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('surfbar_total_counter');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+//------------------------------------------------------------------------------
+//                             Template helper functions
+//------------------------------------------------------------------------------
+
+// Template helper to generate a selection box for surfbar actions
+function doTemplateSurfbarActionsActionSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
+       // Init array
+       $actionsAction = array(
+               0 => array('actions_action' => 'EDIT'),
+               1 => array('actions_action' => 'DELETE'),
+               2 => array('actions_action' => 'PAUSE'),
+               3 => array('actions_action' => 'UNPAUSE'),
+               4 => array('actions_action' => 'FRAMETEST'),
+               5 => array('actions_action' => 'RETREAT'),
+               6 => array('actions_action' => 'RESUBMIT'),
+               7 => array('actions_action' => 'BOOKNOW')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($actionsAction, 'actions_action', 'actions_action', '', '_surfbar', '', $default, '', FALSE, TRUE);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper to generate a selection box for surfbar status
+function doTemplateSurfbarActionsStatusSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
+       // Init array
+       $status = array(
+               0 => array('actions_status' => 'PENDING'),
+               1 => array('actions_status' => 'ACTIVE'),
+               2 => array('actions_status' => 'LOCKED'),
+               3 => array('actions_status' => 'STOPPED'),
+               4 => array('actions_status' => 'REJECTED'),
+               5 => array('actions_status' => 'DELETED'),
+               6 => array('actions_status' => 'MIGRATED'),
+               7 => array('actions_status' => 'DEPLETED')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($status, 'actions_status', 'actions_status', '', '_surfbar', '', $default, '', FALSE, TRUE);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper to generate a selection box for surfbar status
+function doTemplateSurfbarActionsNewStatusSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
+       // Init array
+       $status = array(
+               0 => array('actions_new_status' => 'PENDING'),
+               1 => array('actions_new_status' => 'ACTIVE'),
+               2 => array('actions_new_status' => 'LOCKED'),
+               3 => array('actions_new_status' => 'STOPPED'),
+               4 => array('actions_new_status' => 'REJECTED'),
+               5 => array('actions_new_status' => 'DELETED'),
+               6 => array('actions_new_status' => 'MIGRATED'),
+               7 => array('actions_new_status' => 'DEPLETED')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($status, 'actions_new_status', 'actions_new_status', '', '_surfbar', '', $default, '', TRUE, TRUE);
+
+       // Return prepared content
+       return $content;
 }
 
-// -----------------------------------------------------------------------------
+//------------------------------------------------------------------------------
 // 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 () {
+function initSurfbar () {
        // Init cache array
        $GLOBALS['surfbar_cache'] = array();
 }
 
 // Private getter for data elements
-function SURFBAR_GET_DATA ($element) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, "element={$element}", false);
+function getSurfbarData ($element) {
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ' - ENTERED!');
 
        // Default is null
-       $data = null;
+       $data = NULL;
 
        // Is the entry there?
        if (isset($GLOBALS['surfbar_cache'][$element])) {
                // Then take it
                $data = $GLOBALS['surfbar_cache'][$element];
-       } else { // END - if
-               print('<pre>');
-               print_r($GLOBALS['surfbar_cache']);
-               print('</pre>');
-               debug_report_bug(__FUNCTION__, __LINE__, 'Element ' . $element . ' not found.');
-       }
+       } // END - if
 
        // Return result
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element[' . $element . ']=[' . gettype($data) . ']' . $data, false);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element[' . $element . ']=[' . gettype($data) . ']' . $data . ' - EXIT!');
        return $data;
 }
 
 // Getter for reward from cache
-function SURFBAR_GET_REWARD () {
+function getSurfbarReward () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('reward');
+       return getSurfbarData('reward');
 }
 
 // Getter for costs from cache
-function SURFBAR_GET_COSTS () {
+function getSurfbarCosts () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('costs');
+       return getSurfbarData('costs');
 }
 
 // Getter for URL from cache
-function SURFBAR_GET_URL () {
+function getSurfbarUrl () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url');
+       return getSurfbarData('url');
 }
 
 // Getter for salt from cache
-function SURFBAR_GET_SALT () {
+function getSurfbarSalt () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('salt');
+       return getSurfbarData('salt');
 }
 
 // Getter for id from cache
-function SURFBAR_GET_ID () {
+function getSurfbarId () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_id');
+       return getSurfbarData('url_id');
 }
 
 // Getter for userid from cache
-function SURFBAR_GET_USERID () {
+function getSurfbarUserid () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_userid');
+       return getSurfbarData('url_userid');
 }
 
 // Getter for user reload locks
-function SURFBAR_GET_USER_LOCKS () {
+function getSurfbarUserLocks () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('user_locks');
+       return getSurfbarData('user_locks');
 }
 
 // Getter for reload time
-function SURFBAR_GET_RELOAD_TIME () {
+function getSurfbarWaitingTime () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('time');
+       return getSurfbarData('waiting');
 }
 
 // Getter for allowed views
-function SURFBAR_GET_VIEWS_ALLOWED () {
+function getSurfbarViewsAllowed () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_views_allowed');
+       return getSurfbarData('url_views_allowed');
 }
 
 // Getter for maximum views
-function SURFBAR_GET_VIEWS_MAX () {
+function getSurfbarViewsMax () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_views_max');
+       return getSurfbarData('url_views_max');
 }
 
 // Getter for fixed reload
-function SURFBAR_GET_FIXED_RELOAD () {
+function getSurfbarFixedReload () {
+       // Get data element and return its contents
+       return getSurfbarData('url_fixed_reload');
+}
+
+// Getter for fixed waiting time
+function getSurfbarFixedWaitingTime () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_fixed_reload');
+       return getSurfbarData('url_fixed_waiting');
+}
+
+// Getter for package id
+function getSurfbarPackageId () {
+       // Get data element and return its contents
+       return getSurfbarData('url_package_id');
 }
 
 // Getter for surf lock
-function SURFBAR_GET_SURF_LOCK () {
+function getSurfbarSurfLock () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('surf_lock');
+       return getSurfbarData('surf_lock');
 }
 
 // Getter for new status
-function SURFBAR_GET_NEW_STATUS () {
+function getSurfbarNewStatus () {
+       // Get data element and return its contents
+       return getSurfbarData('new_status');
+}
+
+// Getter for last salt
+function getSurfbarLastSalt () {
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('new_status');
+       return getSurfbarData('salts_last_salt');
 }
 
 // [EOF]