function vmn_sendThrottledItems($now, $emailsettings, $throttleinterval, $throttlesize)
{
    $database =& JFactory::getDBO();
    if ($throttleinterval < 1 || $throttlesize < 1) {
        return;
    }
    vmn_lockTable();
    $database->setQuery("SELECT throttletime FROM #__vemod_news_mailer_scantime LIMIT 1");
    $throttletime = $database->loadResult();
    if (strtotime($now) - strtotime($throttletime) < $throttleinterval) {
        vmn_unlockTable();
        return;
    }
    $database->setQuery("SELECT COUNT(*) FROM #__vemod_news_mailer_log WHERE status >= 10 OR status <= -10 ORDER BY sent LIMIT 1");
    $tcount = $database->loadResult();
    if ($tcount) {
        $database->setQuery("UPDATE #__vemod_news_mailer_scantime SET throttletime=" . $database->Quote($now) . " LIMIT 1");
        $database->query();
    }
    vmn_unlockTable();
    echo chr(0x0);
    $database->setQuery("SELECT * FROM #__vemod_news_mailer_log WHERE status >= 10 ORDER BY sent LIMIT 1");
    $throttleditem = NULL;
    $throttleditem = $database->loadObject();
    if ($throttleditem) {
        $database->setQuery("UPDATE  #__vemod_news_mailer_log SET sent=" . $database->quote($now) . ", status=status+1 WHERE id={$throttleditem->id}");
        $database->Query();
        $throttlecount = $throttleditem->status - 9;
        $codedmessage = vmn_codeMessage($throttleditem->message);
        $valid = vmn_getLoggedUsers($throttleditem->users, $throttlesize, $throttlecount);
        if (count($valid)) {
            $statuscount = 0;
            for ($i = 0; $i < count($valid['email']); $i++) {
                @set_time_limit(600);
                $status = JUtility::sendMail($emailsettings['mailfrom'], $emailsettings['fromname'], $valid['email'][$i], $throttleditem->subject, str_replace('[username]', $valid['name'][$i], $codedmessage), 1, NULL, NULL) === true;
                if ($i % 5 == 0) {
                    echo chr(0x0);
                }
                if ($status) {
                    $statuscount++;
                }
            }
            if ($throttleditem->status == 10) {
                if ($statuscount < count($valid['email']) * 0.9) {
                    $database->setQuery("UPDATE  #__vemod_news_mailer_log SET sent=" . $database->quote($now) . ", status=1 WHERE id={$throttleditem->id}");
                    $database->Query();
                    return;
                }
            }
            return;
        } else {
            $database->setQuery("UPDATE  #__vemod_news_mailer_log SET sent=" . $database->quote($now) . ", status=0 WHERE id={$throttleditem->id}");
            $database->Query();
        }
    }
    $database->setQuery("SELECT * FROM #__vemod_news_mailer_log WHERE status <= -10 ORDER BY sent LIMIT 1");
    $throttleditem = NULL;
    $throttleditem = $database->loadObject();
    if ($throttleditem) {
        $database->setQuery("UPDATE  #__vemod_news_mailer_log SET sent=" . $database->quote($now) . ", status=status-1 WHERE id={$throttleditem->id}");
        $database->Query();
        $throttlecount = abs($throttleditem->status) - 9;
        $message = $throttleditem->message;
        $smsprefix = '';
        if (strpos($message, '<sms></sms>') === 0) {
            $smsprefix = '<sms></sms>';
            $message = str_replace('<sms></sms>', '', $message);
        }
        $search = array('<pre>', '</pre>');
        $replace = array('', '');
        $message = str_replace($search, $replace, $message);
        $codedmessage = vmn_codeMessage($message);
        $valid = vmn_getLoggedUsers($throttleditem->users, $throttlesize, $throttlecount);
        if (count($valid)) {
            $statuscount = 0;
            for ($i = 0; $i < count($valid['email']); $i++) {
                @set_time_limit(600);
                if (strlen($smsprefix)) {
                    $status = JUtility::sendMail($emailsettings['smsmailfrom'], $emailsettings['smsfromname'], $valid['email'][$i], $throttleditem->subject, str_replace('[username]', $valid['name'][$i], $codedmessage), 0, NULL, NULL) === true;
                } else {
                    $status = JUtility::sendMail($emailsettings['mailfrom'], $emailsettings['fromname'], $valid['email'][$i], $throttleditem->subject, str_replace('[username]', $valid['name'][$i], $codedmessage), 0, NULL, NULL) === true;
                }
                if ($i % 5 == 0) {
                    echo chr(0x0);
                }
                if ($status) {
                    $statuscount++;
                }
            }
            if ($throttleditem->status == -10) {
                if ($statuscount < count($valid['email']) * 0.9) {
                    $database->setQuery("UPDATE  #__vemod_news_mailer_log SET sent=" . $database->quote($now) . ", status=2 WHERE id={$throttleditem->id}");
                    $database->Query();
                    return;
                }
            }
        } else {
            $database->setQuery("UPDATE  #__vemod_news_mailer_log SET sent=" . $database->quote($now) . ", status=0 WHERE id={$throttleditem->id}");
            $database->Query();
        }
    }
}
         $subject = str_replace($search, $replace, stripslashes($vmsubject));
         $subject = html_entity_decode($subject, ENT_QUOTES);
         $database->setQuery("SELECT mailformat FROM #__vemod_news_mailer_users WHERE id={$my->id}");
         $usermailformat = $database->loadResult();
         if ($mailformat == 1 || $mailformat == 2 && $usermailformat == 1) {
             $message = stripslashes($verifymailText);
             $subscribeto = str_replace("<br>", "\n", $subscribeto);
             $maillink = $vmlinktext . "\n" . $maillink;
         } else {
             $maillink = '<a href="' . $maillink . '" target="_blank">' . $vmlinktext . '</a>';
             $message = stripslashes($verifymailHTML);
         }
         $search = array('[sitename]', '[livesite]', '[subject]', '[username]', '[subscribeto]', '[verifylink]');
         $replace = array($mainframe->getCfg('sitename'), JURI::root(), stripslashes($vmsubject), $my->name, $subscribeto, $maillink);
         $message = str_replace($search, $replace, $message);
         $codedmessage = vmn_codeMessage($message);
         if ($mailformat == 1 || $mailformat == 2 && $usermailformat == 1) {
             $status = JUtility::sendMail($emailsettings['mailfrom'], $emailsettings['fromname'], $my->email, $subject, $codedmessage);
         } else {
             $status = JUtility::sendMail($emailsettings['mailfrom'], $emailsettings['fromname'], $my->email, $subject, $codedmessage, 1);
         }
         if ($status === true) {
             vmn_doPageTop(JTEXT::_('VMN_VERIFICATION_MAIL_MESSAGE'));
         } else {
             vmn_doPageTop($status->getMessage());
         }
     } else {
         vmn_updateSubs($my->id, @$_POST['cid']);
         vmn_doPageTop(JTEXT::_('VMN_YOUR_SUBSCRIPTIONS_HAS_BEEN_UPDATED'));
     }
 } elseif ($emailverify > 0 && $emailverifyuser == $my->id) {