]> 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 6b62afbc0cc3866ca8dd21b015bfe1482773b0ce..3acbc7c4d978aa2b610d114a83af3e2f97c8d7f8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * 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 *
@@ -45,36 +45,40 @@ if (!defined('__SECURITY')) {
 //------------------------------------------------------------------------------
 
 // Admin has added an URL with given user id and so on
-function doSurfbarAdminAddUrl ($url, $limit, $reload) {
+function doSurfbarAdminAddUrl ($url, $limit, $reload, $waiting) {
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Not admin.", $url, $limit, $reload));
-               return false;
+               return FALSE;
        } elseif (!isUrlValid($url)) {
                // URL invalid
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid URL.", $url, $limit, $reload));
-               return false;
+               return FALSE;
        } elseif (ifSurfbarHasUrlUserId($url, 0)) {
                // URL already found in surfbar!
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Already added.", $url, $limit, $reload));
-               return false;
+               return FALSE;
        } elseif (!ifSurfbarMemberAllowedMoreUrls()) {
                // No more allowed!
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: No more URLs allowed.", $url, $limit, $reload));
-               return false;
+               return FALSE;
        } elseif ('' . ($limit + 0) . '' != '' . $limit . '') {
                // Invalid limit entered
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid limit entered.", $url, $limit, $reload));
-               return false;
+               return FALSE;
        } elseif ('' . ($reload + 0) . '' != '' . $reload . '') {
                // Invalid amount entered
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid reload entered.", $url, $limit, $reload));
-               return false;
+               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 doSurfbarRegisterUrl($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
@@ -83,19 +87,19 @@ function doSurfbarAdminMigrateUrl ($url, $userid) {
        if (!isAdmin()) {
                // Not an admin
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Not admin, url=' . $url . ',userid=' . $userid);
-               return false;
+               return FALSE;
        } elseif (!isUrlValid($url)) {
                // URL invalid
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Invalid URL, url=' . $url . ',userid=' . $userid);
-               return false;
+               return FALSE;
        } elseif (ifSurfbarHasUrlUserId($url, $userid)) {
                // URL already found in surfbar!
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Already added, url=' . $url . ',userid=' . $userid);
-               return false;
+               return FALSE;
        } elseif (!ifSurfbarMemberAllowedMoreUrls($userid)) {
                // No more allowed!
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Maximum exceeded, url=' . $url . ',userid=' . $userid);
-               return false;
+               return FALSE;
        }
 
        // Register the new URL
@@ -108,19 +112,19 @@ function doSurfbarAdminUnlockUrlIds ($IDs) {
        if (!isAdmin()) {
                // Not admin or invalid ids array
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
-               return false;
+               return FALSE;
        } elseif (!is_array($IDs)) {
                // No array
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
-               return false;
-       } elseif (count($IDs) == 0) {
+               return FALSE;
+       } elseif (!isFilledArray($IDs)) {
                // Empty array
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
-               return false;
+               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) {
@@ -138,19 +142,19 @@ function doSurfbarAdminRejectUrlIds ($IDs) {
        if (!isAdmin()) {
                // Not admin or invalid ids array
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
-               return false;
+               return FALSE;
        } elseif (!is_array($IDs)) {
                // No array
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
-               return false;
-       } elseif (count($IDs) == 0) {
+               return FALSE;
+       } elseif (!isFilledArray($IDs)) {
                // Empty array
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
-               return false;
+               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) {
@@ -172,23 +176,23 @@ function doSurfbarMemberAddUrl ($url, $limit) {
        if (!isMember()) {
                // Not a member
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
-               return false;
+               return FALSE;
        } elseif ((!isUrlValid($url)) && (!isAdmin())) {
                // URL invalid
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid, url=' . $url . ',limit=' . $limit);
-               return false;
+               return FALSE;
        } elseif (ifSurfbarHasUrlUserId($url, getMemberId())) {
                // URL already found in surfbar!
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Already found, url=' . $url . ',limit=' . $limit);
-               return false;
+               return FALSE;
        } elseif (!ifSurfbarMemberAllowedMoreUrls(getMemberId())) {
                // No more allowed!
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Maximum exceeded, url=' . $url . ',limit=' . $limit);
-               return false;
+               return FALSE;
        } elseif (''.($limit + 0).'' != ''.$limit.'') {
                // Invalid amount entered
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid limit, url=' . $url . ',limit=' . $limit);
-               return false;
+               return FALSE;
        }
 
        // Register the new URL
@@ -207,7 +211,7 @@ function generateSurfbarMemberActions ($urlId, $status) {
        $OUT = '';
        foreach ($actionArray as $actionId => $action) {
                // Add form for this action
-               $OUT .= loadTemplate('member_list_surfbar_form', true, array(
+               $OUT .= loadTemplate('member_list_surfbar_form', TRUE, array(
                        'width'  => $width,
                        'url_id' => bigintval($urlId),
                        'action' => strtolower($action)
@@ -215,7 +219,7 @@ function generateSurfbarMemberActions ($urlId, $status) {
        } // END - foreach
 
        // Load main template
-       $output = loadTemplate('member_list_surfbar_table', true, $OUT);
+       $output = loadTemplate('member_list_surfbar_table', TRUE, $OUT);
 
        // Return code
        return $output;
@@ -224,25 +228,25 @@ function generateSurfbarMemberActions ($urlId, $status) {
 // Do the member form request
 function doSurfbarMemberByFormData ($formData, $urlArray) {
        // By default no action is performed
-       $performed = false;
+       $performed = FALSE;
 
        // Is this a member?
        if (!isMember()) {
                // No member!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
-               return false;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
+               return FALSE;
        } elseif ((!isset($formData['url_id'])) || (!isset($formData['action']))) {
                // Important form elements are missing!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid form data, required field id/action not found');
-               return false;
+               //* 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;
+               //* 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
-               /* 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;
+               //* 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
@@ -251,7 +255,7 @@ function doSurfbarMemberByFormData ($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
@@ -259,8 +263,12 @@ function doSurfbarMemberByFormData ($formData, $urlArray) {
 
        // 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['url_id']]['new_status'] = gerSurfbarNewStatus('new_status');
+               $urlArray[$formData['url_id']]['new_status'] = getSurfbarNewStatus('new_status');
 
                // Extract URL data for call-back
                $urlData = array(merge_array($urlArray[$formData['url_id']], array($action => $formData)));
@@ -277,27 +285,27 @@ function doSurfbarMemberByFormData ($formData, $urlArray) {
 }
 
 // Getter for surfbar_actions table by given id number
-function getSurfbarActionsDataById ($columnName, $id) {
+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 = SQL_QUERY_ESC("SELECT `%s` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_id`=%s LIMIT 1",
+               $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 (SQL_NUMROWS($result) == 1) {
+               if (sqlNumRows($result) == 1) {
                        // Load it
-                       list($GLOBALS[__FUNCTION__][$id][$columnName]) = SQL_FETCHROW($result);
+                       list($GLOBALS[__FUNCTION__][$id][$columnName]) = sqlFetchRow($result);
                } // END - if
 
                // Free result
-               SQL_FREERESULT($result);
+               sqlFreeResult($result);
        } // END - if
 
        // Return value
@@ -307,26 +315,26 @@ function getSurfbarActionsDataById ($columnName, $id) {
 // Validate if the requested action can be performed on current URL status
 function isSurfbarMemberActionStatusValid ($action, $status) {
        // Search for the requested action/status combination in database
-       $result = SQL_QUERY_ESC("SELECT `actions_new_status` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_action`='%s' AND `actions_status`='%s' LIMIT 1",
+       $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 === true) {
+       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;
@@ -392,7 +400,7 @@ function doSurfbarMemberUnpauseAction ($urlData) {
        // Fix missing entry for template
        $urlData['edit'] = $urlData['unpause'];
        $urlData['edit']['url'] = $urlData['url'];
-       $urlData['edit']['limit'] = gerSurfbarViewsMax();
+       $urlData['edit']['limit'] = getSurfbarViewsMax();
 
        // Return status change
        return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
@@ -406,7 +414,7 @@ function doSurfbarMemberResubmitAction ($urlData) {
 // Display selected "action form"
 function displaySurfbarMemberActionForm ($action, $urlData) {
        // Translate some data if present
-       $content = prepareSurfbarContentForTemplate($content);
+       $content = prepareSurfbarContentForTemplate($urlData);
 
        // Include fields only for action 'edit'
        if ($action == 'edit') {
@@ -416,7 +424,7 @@ function displaySurfbarMemberActionForm ($action, $urlData) {
                $urlData['limited']     = 'false';
 
                // Is this URL limited?
-               if (gerSurfbarViewsMax() > 0) {
+               if (getSurfbarViewsMax() > 0) {
                        // Then rewrite form data
                        $urlData['limited_yes'] = ' checked="checked"';
                        $urlData['limited_no']  = '';
@@ -425,16 +433,16 @@ function displaySurfbarMemberActionForm ($action, $urlData) {
        } // 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 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']))) {
@@ -448,7 +456,7 @@ function executeSurfbarMemberAction ($action, $urlData) {
        // 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 = changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
                } // END - if
@@ -464,13 +472,13 @@ function executeSurfbarMemberAction ($action, $urlData) {
 // "Execute edit" function: Update changed data
 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
+               sqlQueryEscaped("UPDATE
        `{?_MYSQL_PREFIX?}_surfbar_urls`
 SET
        `url`='%s',
@@ -478,7 +486,7 @@ SET
        `url_views_max`=%s
 WHERE
        `url_id`=%s AND
-       `status`='%s'
+       `url_status`='%s'
 LIMIT 1",
                        array(
                                $urlData['url'],
@@ -489,7 +497,7 @@ LIMIT 1",
                        ), __FUNCTION__, __LINE__);
 
                // All fine
-               $status = true;
+               $status = TRUE;
        } // END - if
 
        // Return status
@@ -499,7 +507,7 @@ LIMIT 1",
 // "Execute delete" function: Does nothing...
 function executeSurfbarMemberDeleteAction ($urlData) {
        // Nothing special to do (see above function for such "special actions" to perform)
-       return true;
+       return TRUE;
 }
 
 //------------------------------------------------------------------------------
@@ -518,10 +526,10 @@ function doSurfbarSelfMaintenance () {
 // Handle URLs which limit has depleted
 function doHandleSurfbarDepletedViews () {
        // Get all URLs
-       $urlArray = getSurfbarUrlData(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'");
 
        // Are there some entries?
-       if (count($urlArray) > 0) {
+       if (isFilledArray($urlArray)) {
                // Then handle all!
                foreach ($urlArray as $id => $urlData) {
                        // Backup data
@@ -558,7 +566,7 @@ function doHandleSurfbarLowPoints () {
                        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
@@ -576,7 +584,7 @@ function ifSurfbarHasUrlUserId ($url, $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
@@ -593,13 +601,14 @@ function getSurfbarUrlData ($searchTerm, $column = 'url_id', $order = 'url_id',
        // If the column is 'url_id' there can be only one entry
        $limit = '';
        if ($column == 'url_id') {
-               $limit = "LIMIT 1";
+               $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`,
@@ -610,7 +619,8 @@ function getSurfbarUrlData ($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
@@ -627,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
@@ -642,7 +652,7 @@ ORDER BY
        } // END - if
 
        // Free the result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return the result
        return $GLOBALS['last_url_data'];
@@ -669,6 +679,9 @@ function doSurfbarRegisterUrl ($url, $userid, $status = 'PENDING', $addMode = 'r
        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'] = insertSurfbarUrlByArray($content);
@@ -676,7 +689,7 @@ function doSurfbarRegisterUrl ($url, $userid, $status = 'PENDING', $addMode = 'r
        // 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
@@ -703,19 +716,20 @@ function insertSurfbarUrlByArray ($urlData) {
        } // 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
@@ -745,7 +759,7 @@ function doSurfbarNotifyAdmin ($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
@@ -853,14 +867,14 @@ function translateMemberSurfbarActionToSubmit ($action) {
 }
 
 // Determine reward
-function determineSurfbarReward ($onlyMin = false) {
+function determineSurfbarReward ($onlyMin = FALSE) {
        // Static values are default
-       $reward = getConfig('surfbar_static_reward');
+       $reward = getSurfbarStaticReward();
 
        // Is there static or dynamic?
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic reward
-               if ($onlyMin === true) {
+               if ($onlyMin === TRUE) {
                        $reward += calculateSurfbarDynamicMininumValue();
                } else {
                        $reward += calculateSurfbarDynamicAddValue();
@@ -924,7 +938,7 @@ function determineSurfbarTemplateName() {
 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');
@@ -938,27 +952,27 @@ function isSurfbarReloadFull () {
        //* 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() - {%%pipe,gerSurfbarSurfLock%%}) < 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'])) {
@@ -967,7 +981,7 @@ LIMIT 1",
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Get total URLs
        $total = getSurfbarTotalUrls();
@@ -976,7 +990,7 @@ LIMIT 1",
        $isFull = ((getSurfbarUserLocks() == $total) && ($total > 0));
 
        // Return result
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userLocks=' . getSurfbarUserLocks() . ',total=' . $total . 'isFull=' . intval($isFull) . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userLocks=' . getSurfbarUserLocks() . ',total=' . $total . ',isFull=' . intval($isFull) . ' - EXIT!');
        return $isFull;
 }
 
@@ -986,34 +1000,34 @@ function getSurfbarTotalUrls ($status = 'ACTIVE', $excludeUserId = NULL) {
        $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 (isValidUserId($excludeUserId)) {
+       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']).") OR `url_userid` IS NULL) 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($count) = SQL_FETCHROW($result);
+       list($count) = sqlFetchRow($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Debug message
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $count . ' - EXIT!');
@@ -1058,7 +1072,7 @@ function getSurfbarTotalUserUrls ($userid = NULL, $status = '', $exclude = '') {
        }
 
        // Get amount from database
-       $count = countSumTotalData($userid, 'surfbar_urls', 'url_id', 'url_userid', true, $add);
+       $count = countSumTotalData($userid, 'surfbar_urls', 'url_id', 'url_userid', TRUE, $add);
 
        // Return result
        return $count;
@@ -1071,15 +1085,15 @@ function generateSurfbarValidationCode ($urlId, $salt = '') {
        if (empty($salt)) {
                 // Generate random hashed string
                $GLOBALS['surfbar_cache']['salt'] = sha1(generatePassword(mt_rand(200, 255)));
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newSalt='.gerSurfbarSalt().'', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newSalt='.getSurfbarSalt().'', FALSE);
        } else {
                // Use this as salt!
                $GLOBALS['surfbar_cache']['salt'] = $salt;
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'oldSalt='.gerSurfbarSalt().'', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'oldSalt='.getSurfbarSalt().'', FALSE);
        }
 
        // Hash it with md5() and salt it with the random string
-       $hashedCode = generateHash(md5($urlId . getEncryptSeparator() . getMemberId()), gerSurfbarSalt());
+       $hashedCode = generateHash(md5($urlId . getEncryptSeparator() . getMemberId()), getSurfbarSalt());
 
        // Finally encrypt it PGP-like and return it
        $valHashedCode = encodeHashForCookie($hashedCode);
@@ -1107,12 +1121,12 @@ function isSurfbarValidationCodeValid ($urlId, $check, $salt) {
 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));
+       $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
-               SQL_QUERY_ESC('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_locks` (`locks_userid`, `locks_url_id`) VALUES (%s, %s)',
+               sqlQueryEscaped('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_locks` (`locks_userid`, `locks_url_id`) VALUES (%s, %s)',
                        array(
                                getMemberId(),
                                bigintval($urlId)
@@ -1120,31 +1134,31 @@ function addSurfbarReloadLockById ($urlId) {
        } // 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',
+       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() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - EXIT!');
+       //* 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 doSurfbarPayPoints () {
        // Remove it from the URL owner
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.gerSurfbarUserid().',costs='.gerSurfbarCosts() . ' - ENTERED!');
-       if (isValidUserId(gerSurfbarUserid())) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getSurfbarUserid().',costs='.getSurfbarCosts() . ' - ENTERED!');
+       if (isValidId(getSurfbarUserid())) {
                // Subtract points and ignore return status
-               subtractPoints(sprintf("surfbar_%s", getSurfbarPaymentModel()), gerSurfbarUserid(), gerSurfbarCosts());
+               subtractPoints(sprintf("surfbar_%s", getSurfbarPaymentModel()), getSurfbarUserid(), getSurfbarCosts());
        } // END - if
 
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getMemberId().',reward='.gerSurfbarReward());
+       //* 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(), gerSurfbarReward());
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.gerSurfbarUserid().',costs='.gerSurfbarCosts() . ' - EXIT!');
+       addPointsThroughReferralSystem(sprintf("surfbar:%s", getSurfbarPaymentModel()), getMemberId(), getSurfbarReward());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getSurfbarUserid().',costs='.getSurfbarCosts() . ' - EXIT!');
 }
 
 // Updates the statistics of current URL/userid
@@ -1153,7 +1167,7 @@ function updateInsertSurfbarStatisticsRecord () {
        $add = '';
 
        // Get allowed views
-       $allowed = gerSurfbarViewsAllowed();
+       $allowed = getSurfbarViewsAllowed();
 
        // Is there a limit?
        if ($allowed > 0) {
@@ -1162,23 +1176,23 @@ function updateInsertSurfbarStatisticsRecord () {
        } // 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(gerSurfbarId()), __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(),
-                       gerSurfbarId()
+                       getSurfbarId()
                ), __FUNCTION__, __LINE__);
 
        // Was that update okay?
-       if (SQL_HASZEROAFFECTED()) {
+       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(),
-                               gerSurfbarId()
+                               getSurfbarId()
                        ), __FUNCTION__, __LINE__);
        } // END - if
 
@@ -1195,71 +1209,78 @@ function updateInsertSurfbarStatisticsRecord () {
 // Update the salt for validation and statistics
 function updateSurfbarSaltStatistics () {
        // Update salt
-       generateSurfbarValidationCode(gerSurfbarId());
+       generateSurfbarValidationCode(getSurfbarId());
 
        // Make sure only valid salts can pass
-       if (gerSurfbarSalt() == 'INVALID') {
+       if (getSurfbarSalt() == 'INVALID') {
                // Invalid provided
-               reportBug(__FUNCTION__, __LINE__, 'Invalid salt provided, id=' . gerSurfbarId() . ',getMemberId()=' . getMemberId());
+               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(
-                       gerSurfbarSalt(),
-                       gerSurfbarId(),
-                       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=' . gerSurfbarSalt() . ',id=' . gerSurfbarId() . ',userid=' . getMemberId() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - UPDATE!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'salt=' . getSurfbarSalt() . ',id=' . getSurfbarId() . ',userid=' . getMemberId() . ',sqlAffectedRows()=' . sqlAffectedRows() . ' - UPDATE!');
 
        // Was that okay?
-       if (SQL_HASZEROAFFECTED()) {
+       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(
-                               gerSurfbarId(),
-                               getMemberId(),
-                               gerSurfbarSalt()
-                       ), __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() . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'affectedRows=' . sqlAffectedRows() . ' - EXIT!');
 
        // Return if the update was okay
-       return (!SQL_HASZEROAFFECTED());
+       return (!ifSqlHasZeroAffectedRows());
 }
 
 // Check if the reload lock is active for given id
 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() - ".gerSurfbarSurfLock().") < 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($count) = SQL_FETCHROW($result);
+       list($count) = sqlFetchRow($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return check
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',count=' . $count . ',gerSurfbarSurfLock()=' . gerSurfbarSurfLock() . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',count=' . $count . ',getSurfbarSurfLock()=' . getSurfbarSurfLock() . ' - EXIT!');
        return ($count == 1);
 }
 
@@ -1280,44 +1301,46 @@ function determineSurfbarDepletedUserids ($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) AND
-       u.`url_userid` IS NOT NULL 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_userid` > 0 AND
-       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);
@@ -1333,7 +1356,7 @@ 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() . ')');
@@ -1345,7 +1368,7 @@ ORDER BY
 // Determine how many users are Online in surfbar
 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`
@@ -1355,10 +1378,10 @@ GROUP BY
        `stats_userid` ASC', __FUNCTION__, __LINE__);
 
        // Fetch count
-       $count = SQL_NUMROWS($result);
+       $count = sqlNumRows($result);
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return result
        return $count;
@@ -1367,16 +1390,16 @@ GROUP BY
 // Determine waiting time for one URL
 function determineSurfbarWaitingTime () {
        // Get fixed reload lock
-       $fixed = getSurfbarFixedReload();
+       $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 (getSurfbarPaymentModel() == 'DYNAMIC') {
@@ -1395,32 +1418,31 @@ function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array(
        $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 = getSurfbarUrlData($urlId);
        } // END - if
 
        // Prepare array
-       $filterData =  array(
+       $filterData = array(
                'url_id'      => $urlId,
                'prev_status' => $prevStatus,
                'new_status'  => $newStatus,
                'data'        => $data,
-               'abort'       => NULL
        );
 
        // Run pre filter chain
        $filterData = runFilterChain('pre_change_surfbar_url_status', $filterData);
 
        // Abort here?
-       if (!is_null($filterData['abort'])) {
+       if (isFilterChainAborted()) {
                // Abort here
-               return $filterData['abort'];
+               return FALSE;
        } // END - if
 
        // Update the status now
        // ---------- Comment out for debugging/developing member actions! ---------
-       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_status`='%s' WHERE `url_id`=%s LIMIT 1",
+       sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_status`='%s' WHERE `url_id`=%s LIMIT 1",
                array(
                        $newStatus,
                        bigintval($urlId)
@@ -1429,9 +1451,9 @@ function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array(
 
        // Was that fine?
        // ---------- Comment out for debugging/developing member actions! ---------
-       if (SQL_AFFECTEDROWS() != 1) {
+       if (sqlAffectedRows() != 1) {
                // No, something went wrong
-               return false;
+               return FALSE;
        } // END - if
        // ---------- Comment out for debugging/developing member actions! ---------
 
@@ -1443,7 +1465,7 @@ function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array(
 
        // All done!
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - EXIT!');
-       return true;
+       return TRUE;
 }
 
 // Calculate minimum value for dynamic payment model
@@ -1530,7 +1552,7 @@ function getSurfbarLockIdsArray () {
        $ignored = array();
 
        // Get all id from locks within the timestamp
-       $result = SQL_QUERY_ESC("SELECT
+       $result = sqlQueryEscaped("SELECT
        `locks_id`,
        `locks_url_id`,
        UNIX_TIMESTAMP(`locks_last_surfed`) AS `last_surfed`
@@ -1543,12 +1565,12 @@ 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['locks_id'].',url='.$content['locks_url_id'].',rest='.(time() - $content['last_surfed']).'/'.gerSurfbarSurfLock());
+               //* 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() - gerSurfbarSurfLock())) && (!in_array($content['locks_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['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
@@ -1573,7 +1595,7 @@ ORDER BY
        } // END - while
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return array
        return $USE;
@@ -1582,34 +1604,34 @@ ORDER BY
 // "Getter" for maximum random number
 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'
+       `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());
+       //* 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;
@@ -1621,37 +1643,38 @@ function getSurfbarUserUrls () {
        $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",
+       `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['url_id']] = $row;
                } // END - while
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return the array
        return $urlArray;
@@ -1663,20 +1686,20 @@ function getSurfbarArrayFromStatus ($status) {
        $returnArray = array();
 
        // Get all assigned actions
-       $result = SQL_QUERY_ESC("SELECT `actions_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)) {
+               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;
@@ -1712,9 +1735,9 @@ function determineSurfbarNextId ($urlId = NULL) {
 
                // 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.',';
@@ -1737,122 +1760,142 @@ function determineSurfbarNextId ($urlId = NULL) {
                } // END - if
 
                // And query the database
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'randNum='.$randNum.',maxRand='.$maxRand.',surfLock='.gerSurfbarSurfLock());
-               $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']).") 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."
+       (`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 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))
+       (`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());
-       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'] = determineSurfbarWaitingTime();
+               $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'] = determineSurfbarReward();
                $GLOBALS['surfbar_cache']['costs']  = determineSurfbarCosts();
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.gerSurfbarReward().'|costs='.gerSurfbarCosts());
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.getSurfbarReward().'|costs='.getSurfbarCosts());
 
                // Only in dynamic model add the dynamic bonus!
                if (getSurfbarPaymentModel() == 'DYNAMIC') {
                        // Calculate dynamic reward/costs and add it
                        $GLOBALS['surfbar_cache']['reward'] += calculateSurfbarDynamicAddValue();
                        $GLOBALS['surfbar_cache']['costs']  += calculateSurfbarDynamicAddValue();
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DYNAMIC+ - reward='.gerSurfbarReward().'|costs='.gerSurfbarCosts());
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DYNAMIC+ - reward='.getSurfbarReward().'|costs='.getSurfbarCosts());
                } // END - if
 
                // Now get the id
-               $nextId = gerSurfbarId();
+               $nextId = getSurfbarId();
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       sqlFreeResult($result);
 
        // Return result
        //* 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
 //-----------------------------------------------------------------------------
@@ -1917,12 +1960,120 @@ function getSurfbarPaymentModel () {
        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[__FUNCTION__] = getConfig('surfbar_weekly_counter');
+       } // END - if
+
+       // Return cache
+       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) {
+function doTemplateSurfbarActionsActionSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
        // Init array
        $actionsAction = array(
                0 => array('actions_action' => 'EDIT'),
@@ -1936,14 +2087,14 @@ function doTemplateSurfbarActionsActionSelectionBox ($templateName, $clear = fal
        );
 
        // Handle it over to generateSelectionBoxFromArray()
-       $content = generateSelectionBoxFromArray($actionsAction, 'surfbar_actions_action', 'actions_action', '', '', '', $default, '', false, true);
+       $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) {
+function doTemplateSurfbarActionsStatusSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
        // Init array
        $status = array(
                0 => array('actions_status' => 'PENDING'),
@@ -1957,14 +2108,14 @@ function doTemplateSurfbarActionsStatusSelectionBox ($templateName, $clear = fal
        );
 
        // Handle it over to generateSelectionBoxFromArray()
-       $content = generateSelectionBoxFromArray($status, 'surfbar_actions_status', 'actions_status', '', '', '', $default, '', false, true);
+       $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) {
+function doTemplateSurfbarActionsNewStatusSelectionBox ($templateName, $clear = FALSE, $default = NULL) {
        // Init array
        $status = array(
                0 => array('actions_new_status' => 'PENDING'),
@@ -1978,7 +2129,7 @@ function doTemplateSurfbarActionsNewStatusSelectionBox ($templateName, $clear =
        );
 
        // Handle it over to generateSelectionBoxFromArray()
-       $content = generateSelectionBoxFromArray($status, 'surfbar_actions_new_status', 'actions_new_status', '', '', '', $default, '', true, true);
+       $content = generateSelectionBoxFromArray($status, 'actions_new_status', 'actions_new_status', '', '_surfbar', '', $default, '', TRUE, TRUE);
 
        // Return prepared content
        return $content;
@@ -1997,21 +2148,17 @@ function initSurfbar () {
 
 // Private getter for data elements
 function getSurfbarData ($element) {
+       // Debug message
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ' - ENTERED!');
 
        // Default is null
        $data = NULL;
 
        // Is the entry there?
-       if ((isset($GLOBALS['surfbar_cache'][$element])) || (is_null($GLOBALS['surfbar_cache'][$element]))) {
+       if (isset($GLOBALS['surfbar_cache'][$element])) {
                // Then take it
                $data = $GLOBALS['surfbar_cache'][$element];
-       } else { // END - if
-               print('surfbar_cache=<pre>');
-               print_r($GLOBALS['surfbar_cache']);
-               print('</pre>');
-               reportBug(__FUNCTION__, __LINE__, 'Element ' . $element . ' not found.');
-       }
+       } // END - if
 
        // Return result
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element[' . $element . ']=[' . gettype($data) . ']' . $data . ' - EXIT!');
@@ -2019,37 +2166,37 @@ function getSurfbarData ($element) {
 }
 
 // Getter for reward from cache
-function gerSurfbarReward () {
+function getSurfbarReward () {
        // Get data element and return its contents
        return getSurfbarData('reward');
 }
 
 // Getter for costs from cache
-function gerSurfbarCosts () {
+function getSurfbarCosts () {
        // Get data element and return its contents
        return getSurfbarData('costs');
 }
 
 // Getter for URL from cache
-function gerSurfbarUrl () {
+function getSurfbarUrl () {
        // Get data element and return its contents
        return getSurfbarData('url');
 }
 
 // Getter for salt from cache
-function gerSurfbarSalt () {
+function getSurfbarSalt () {
        // Get data element and return its contents
        return getSurfbarData('salt');
 }
 
 // Getter for id from cache
-function gerSurfbarId () {
+function getSurfbarId () {
        // Get data element and return its contents
        return getSurfbarData('url_id');
 }
 
 // Getter for userid from cache
-function gerSurfbarUserid () {
+function getSurfbarUserid () {
        // Get data element and return its contents
        return getSurfbarData('url_userid');
 }
@@ -2061,19 +2208,19 @@ function getSurfbarUserLocks () {
 }
 
 // Getter for reload time
-function gerSurfbarReloadTime () {
+function getSurfbarWaitingTime () {
        // Get data element and return its contents
-       return getSurfbarData('time');
+       return getSurfbarData('waiting');
 }
 
 // Getter for allowed views
-function gerSurfbarViewsAllowed () {
+function getSurfbarViewsAllowed () {
        // Get data element and return its contents
        return getSurfbarData('url_views_allowed');
 }
 
 // Getter for maximum views
-function gerSurfbarViewsMax () {
+function getSurfbarViewsMax () {
        // Get data element and return its contents
        return getSurfbarData('url_views_max');
 }
@@ -2084,20 +2231,32 @@ function getSurfbarFixedReload () {
        return getSurfbarData('url_fixed_reload');
 }
 
+// Getter for fixed waiting time
+function getSurfbarFixedWaitingTime () {
+       // Get data element and return its contents
+       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 gerSurfbarSurfLock () {
+function getSurfbarSurfLock () {
        // Get data element and return its contents
        return getSurfbarData('surf_lock');
 }
 
 // Getter for new status
-function gerSurfbarNewStatus () {
+function getSurfbarNewStatus () {
        // Get data element and return its contents
        return getSurfbarData('new_status');
 }
 
 // Getter for last salt
-function gerSurfbarLastSalt () {
+function getSurfbarLastSalt () {
        // Get data element and return its contents
        return getSurfbarData('salts_last_salt');
 }