<?php

/**

 * @package	AcyMailing for Joomla!

 * @version	5.6.0

 * @author	acyba.com

 * @copyright	(C) 2009-2016 ACYBA S.A.R.L. All rights reserved.

 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html

 */

defined('_JEXEC') or die('Restricted access');

?><?php



class mailClass extends acymailingClass{



	var $tables = array('queue', 'listmail', 'stats', 'userstats', 'urlclick', 'mail');

	var $pkey = 'mailid';

	var $namekey = 'alias';

	var $allowedFields = array('subject', 'published', 'fromname', 'fromemail', 'replyname', 'replyemail', 'type', 'visible', 'alias', 'html', 'tempid', 'altbody', 'filter', 'metakey', 'metadesc', 'language', 'summary', 'thumb', 'params');



	function get($id, $default = null){



		if(empty($id)) return null;



		$query = 'SELECT a.* FROM '.acymailing_table('mail').' as a WHERE ';

		$query .= is_numeric($id) ? 'a.mailid' : 'a.alias';

		$query .= ' = '.$this->database->Quote($id);

		$query .= ' LIMIT 1';



		$this->database->setQuery($query);

		$mail = $this->database->loadObject();



		if(!empty($mail->userid)){

			$this->database->setQuery('SELECT b.username,b.name,b.email FROM #__users as b WHERE b.id = '.intval($mail->userid).' LIMIT 1');

			$author = $this->database->loadObject();

			if(!empty($author)){

				foreach($author as $var => $value){

					$mail->$var = $value;

				}

			}

		}



		if(!empty($mail)){

			$mail->attach = empty($mail->attach) ? array() : unserialize($mail->attach);

			$mail->favicon = empty($mail->favicon) ? new stdClass() : unserialize($mail->favicon);

			$mail->params = empty($mail->params) ? array() : unserialize($mail->params);

			$mail->filter = empty($mail->filter) ? array() : unserialize($mail->filter);

		}



		return $mail;

	}



	function saveForm(){

		$app = JFactory::getApplication();

		$config =& acymailing_config();



		$mail = new stdClass();

		$mail->mailid = acymailing_getCID('mailid');



		$formData = JRequest::getVar('data', array(), '', 'array');



		if(!empty($formData['mail']['subject'])) $formData['mail']['subject'] = str_replace(chr(226).chr(128).chr(168), '', $formData['mail']['subject']);

		foreach($formData['mail'] as $column => $value){

			if(!$app->isAdmin() && !in_array($column, $this->allowedFields)) continue;

			acymailing_secureField($column);

			if(in_array($column, array('params', 'summary'))){

				$mail->$column = $value;

			}else{

				$mail->$column = strip_tags($value, '<ADV>');

			}

		}



		$mail->body = JRequest::getVar('editor_body', '', '', 'string', JREQUEST_ALLOWRAW);

		if(ACYMAILING_J25) $mail->body = JComponentHelper::filterText($mail->body);



		$acypluginsHelper = acymailing_get('helper.acyplugins');

		$acypluginsHelper->cleanHtml($mail->body);



		$mail->attach = array();

		$attachments = JRequest::getVar('attachments', array(), '', 'array');



		if(!empty($attachments)){

			foreach($attachments as $id => $filepath){

				if(empty($filepath)) continue;

				$attachment = new stdClass();

				$attachment->filename = $filepath;

				$attachment->size = filesize(JPATH_SITE.'/'.$filepath);

				$extension = substr($attachment->filename, strrpos($attachment->filename, '.'));



				if(preg_match('#\.(php.?|.?htm.?|pl|py|jsp|asp|sh|cgi)#Ui', $attachment->filename)){

					acymailing_enqueueMessage(JText::sprintf('ACCEPTED_TYPE', substr($attachment->filename, strrpos($attachment->filename, '.') + 1), $config->get('allowedfiles')), 'notice');

					continue;

				}

				$attachment->filename = str_replace(array('.', ' '), '_', substr($attachment->filename, 0, strpos($attachment->filename, $extension))).$extension;



				$mail->attach[] = $attachment;

			}

		}



		$faviconRequest = JRequest::getVar('favicon', '');

		if(!empty($faviconRequest[0])){

			$faviconRequest = $faviconRequest[0];

			$favicon = new stdClass();

			$favicon->filename = $faviconRequest;

			$favicon->size = filesize(JPATH_SITE.'/'.$faviconRequest);

			$extension = substr($favicon->filename, strrpos($favicon->filename, '.'));

			if(preg_match('#\.(php.?|.?htm.?|pl|py|jsp|asp|sh|cgi)#Ui', $favicon->filename)){

				acymailing_enqueueMessage(JText::sprintf('ACCEPTED_TYPE', substr($favicon->filename, strrpos($favicon->filename, '.') + 1), $config->get('allowedfiles')), 'notice');

			}



			$favicon->filename = str_replace(array('.', ' '), '_', substr($favicon->filename, 0, strpos($favicon->filename, $extension))).$extension;



			$mail->favicon = $favicon;

		}



		if(isset($mail->filter)){

			$mail->filter = array();

			$filterData = JRequest::getVar('filter');

			foreach($filterData['type'] as $num => $oneType){

				if(empty($oneType)) continue;

				$mail->filter['type'][$num] = $oneType;

				$mail->filter[$num][$oneType] = $filterData[$num][$oneType];

			}

		}



		$toggleHelper = acymailing_get('helper.toggle');

		if(!empty($mail->type) && $mail->type == 'followup' && !empty($mail->mailid)){

			$oldMail = $this->get($mail->mailid);

			if(!empty($mail->published) AND !$oldMail->published){

				$this->_publishfollowup($mail);

			}

			if($oldMail->senddate != $mail->senddate){

				$text = JText::_('FOLLOWUP_CHANGED_DELAY_INFORMED');

				$text .= ' '.$toggleHelper->toggleText('update', $mail->mailid, 'followup', JText::_('FOLLOWUP_CHANGED_DELAY'));

				acymailing_enqueueMessage($text, 'notice');

			}

		}



		if(preg_match('#<a[^>]*subid=[0-9].*</a>#Uis', $mail->body, $pregResult)){

			acymailing_enqueueMessage(JText::sprintf('ACY_PERSONAL_LINK', $pregResult[0]), 'warning');

		}



		if(empty($mail->thumb)){

			unset($mail->thumb);

		}elseif($mail->thumb == 'delete'){

			$mail->thumb = '';

		}

		if(isset($mail->published) && $mail->published != 1) $mail->published = 0;

		if(isset($mail->html) && $mail->html != 1) $mail->html = 0;

		if(isset($mail->visible) && $mail->visible != 1) $mail->visible = 0;

		$mailid = $this->save($mail);

		if(!$mailid) return false;

		JRequest::setVar('mailid', $mailid);



		$selectedTags = JRequest::getVar('tags', array(), '', 'array');

		$db = JFactory::getDBO();



		$db->setQuery('DELETE FROM #__acymailing_tagmail WHERE mailid = '.intval($mailid));

		$db->query();



		if(!empty($selectedTags)){

			$securedTags = array();

			$user = JFactory::getUser();



			foreach($selectedTags as $oneTag){

				$securedTags[] = $db->quote($oneTag);

			}



			$db->setQuery('SELECT name FROM #__acymailing_tag WHERE name = '.implode(' OR name = ', $securedTags));

			$existingTags = acymailing_loadResultArray($db);

			$nonExistingTags = array_diff($selectedTags, $existingTags);



			if(!empty($nonExistingTags)){

				$query = 'INSERT INTO #__acymailing_tag (name, userid) VALUES ';

				foreach($nonExistingTags as &$oneTag){

					$oneTag = '('.$db->quote($oneTag).', '.intval($user->id).')';

				}

				$db->setQuery($query.implode(',', $nonExistingTags));

				$db->query();

			}



			$db->setQuery('SELECT tagid FROM #__acymailing_tag WHERE name = '.implode(' OR name = ', $securedTags));

			$allTags = acymailing_loadResultArray($db);



			$db->setQuery('INSERT INTO #__acymailing_tagmail (tagid, mailid) VALUES ('.implode(','.intval($mailid).'),(', $allTags).','.intval($mailid).')');

			$db->query();

		}



		$status = true;



		if(!empty($formData['listmail'])){

			$receivers = array();

			$remove = array();



			foreach($formData['listmail'] as $listid => $receiveme){

				if(!empty($receiveme)){

					$receivers[] = $listid;

				}else{

					$remove[] = $listid;

				}

			}



			$listMailClass = acymailing_get('class.listmail');

			$status = $listMailClass->save($mailid, $receivers, $remove);

		}



		if(!empty($mail->type) && $mail->type == 'followup' && empty($mail->mailid) && !empty($mail->published)){

			$mail->mailid = $mailid;

			$this->_publishfollowup($mail);

		}



		return $status;

	}



	function addFollowUpQueue($mailid, $all = false){

		$followup = $this->get($mailid);

		if(empty($followup->mailid)){

			$this->errors[] = 'Could not load mailid '.$mailid;

			return false;

		}



		$listmailClass = acymailing_get('class.listmail');

		$mycampaign = $listmailClass->getCampaign($followup->mailid);

		if(empty($mycampaign->listid)){

			$this->errors[] = 'Could not get the attached campaign';

			return false;

		}



		$config = acymailing_config();



		$db = JFactory::getDBO();

		$query = 'INSERT IGNORE INTO `#__acymailing_queue` (`mailid`,`senddate`,`priority`,`subid`) ';

		$query .= 'SELECT '.$followup->mailid.', b.`subdate` + '.intval($followup->senddate).' , '.(int)$config->get('priority_followup', 2).', b.`subid` ';

		$query .= 'FROM `#__acymailing_listsub` as b';

		$query .= ' WHERE b.`status` = 1 AND b.`listid` = '.intval($mycampaign->listid);

		if(!$all) $query .= ' AND b.`subdate` > '.(time() - $followup->senddate);

		$db->setQuery($query);

		$db->query();

		$nbinserted = $db->getAffectedRows();



		if(!empty($nbupdated)){

			$campaignHelper = acymailing_get('helper.campaign');

			$campaignHelper->updateUnsubdate($mycampaign->listid, $followup->senddate);

		}



		return $nbinserted;

	}



	private function _publishfollowup(&$mail){

		$listmailClass = acymailing_get('class.listmail');

		$mycampaign = $listmailClass->getCampaign($mail->mailid);



		if(empty($mycampaign->listid)){

			return;

		}



		$db = JFactory::getDBO();

		$toggleHelper = acymailing_get('helper.toggle');

		$startdate = (time() - $mail->senddate);

		$db->setQuery('SELECT COUNT(subid) as total FROM `#__acymailing_listsub` as b WHERE b.`status` = 1 AND b.`listid` = '.intval($mycampaign->listid).' AND b.`subdate` > '.intval($startdate));

		$total = $db->loadResult();



		$db->setQuery('SELECT COUNT(subid) as total FROM `#__acymailing_listsub` as b WHERE b.`status` = 1 AND b.`listid` = '.intval($mycampaign->listid));

		$totalall = $db->loadResult();



		if(empty($total) && empty($totalall)) return;



		$text = JText::_('FOLLOWUP_PUBLISHED_INFORMED');

		$text .= '<ul>';

		if(!empty($total)) $text .= '<li>'.$toggleHelper->toggleText('add', $mail->mailid, 'followup', JText::sprintf('FOLLOWUP_ADDQUEUE_USERS', acymailing_getDate($startdate)).' ( '.JText::sprintf('SELECTED_USERS', $total).' )').'</li>';

		if(!empty($totalall)) $text .= '<li>'.$toggleHelper->toggleText('addall', $mail->mailid, 'followup', JText::_('FOLLOWUP_ADDQUEUE_ALLUSERS').' ( '.JText::sprintf('SELECTED_USERS', $totalall).' )').'</li>';



		acymailing_enqueueMessage($text, 'notice');

	}



	function save($mail){



		if(isset($mail->alias) OR empty($mail->mailid)){

			if(empty($mail->alias)) $mail->alias = $mail->subject;

			$jconfig = JFactory::getConfig();

			$method = $jconfig->get('unicodeslugs', 0) == 1 ? 'stringURLUnicodeSlug' : 'stringURLSafe';

			$mail->alias = JFilterOutput::$method(trim($mail->alias));

		}



		if(empty($mail->mailid)){

			if(empty($mail->created)) $mail->created = time();

			if(empty($mail->userid)){

				$user = JFactory::getUser();

				$mail->userid = $user->id;

			}

			if(empty($mail->key)) $mail->key = acymailing_generateKey(8);

		}else{

			if(!empty($mail->attach)){

				$oldMailObject = $this->get($mail->mailid);

				if(!empty($oldMailObject) && is_array($oldMailObject->attach)){

					$mail->attach = array_merge($oldMailObject->attach, $mail->attach);

				}

			}

		}



		if(!empty($mail->attach) AND !is_string($mail->attach)) $mail->attach = serialize($mail->attach);

		if(!empty($mail->favicon) AND !is_string($mail->favicon)) $mail->favicon = serialize($mail->favicon);

		if(isset($mail->filter) AND !is_string($mail->filter)) $mail->filter = serialize($mail->filter);



		if(!empty($mail->params)){

			if(!empty($mail->params['lastgenerateddate']) && !is_numeric($mail->params['lastgenerateddate'])){

				$mail->params['lastgenerateddate'] = acymailing_getTime($mail->params['lastgenerateddate']);

			}

			$mail->params = serialize($mail->params);

		}



		if(!empty($mail->senddate) && !is_numeric($mail->senddate)){

			$mail->senddate = acymailing_getTime($mail->senddate);

		}



		JPluginHelper::importPlugin('acymailing');

		$dispatcher = JDispatcher::getInstance();



		if(empty($mail->mailid)){

			$dispatcher->trigger('onAcyBeforeMailCreate', array(&$mail));

			$status = $this->database->insertObject(acymailing_table('mail'), $mail);

		}else{

			$dispatcher->trigger('onAcyBeforeMailModify', array(&$mail));

			$status = $this->database->updateObject(acymailing_table('mail'), $mail, 'mailid');

		}



		if(!$status){

			$this->errors[] = substr(strip_tags($this->database->getErrorMsg()), 0, 200).'...';

		}



		if(!empty($mail->params) AND is_string($mail->params)) $mail->params = unserialize($mail->params);

		if(!empty($mail->attach) AND is_string($mail->attach)) $mail->attach = unserialize($mail->attach);

		if(!empty($mail->favicon) AND is_string($mail->favicon)) $mail->favicon = unserialize($mail->favicon);



		if($status) return empty($mail->mailid) ? $this->database->insertid() : $mail->mailid;

		return false;

	}



	function saveastmpl(){

		$tmplClass = acymailing_get('class.template');

		$newTmpl = new stdClass();



		$formData = JRequest::getVar('data', array(), '', 'array');

		if(!empty($formData['mail']['tempid'])){

			$template = $tmplClass->get($formData['mail']['tempid']);

			$newTmpl->styles = $template->styles;

			$newTmpl->stylesheet = $template->stylesheet;

			$newTmpl->category = $template->category;

		}

		if(!empty($formData['mail']['subject'])){

			$formData['mail']['subject'] = str_replace(chr(226).chr(128).chr(168), '', $formData['mail']['subject']);

			$newTmpl->subject = strip_tags($formData['mail']['subject']);

			$newTmpl->name = strip_tags($formData['mail']['subject']);

		}



		$newTmpl->body = JRequest::getVar('editor_body', '', '', 'string', JREQUEST_ALLOWRAW);

		if(ACYMAILING_J25) $newTmpl->body = JComponentHelper::filterText($newTmpl->body);

		$acypluginsHelper = acymailing_get('helper.acyplugins');

		$acypluginsHelper->cleanHtml($newTmpl->body);



		if(!empty($formData['mail']['thumb']) && $formData['mail']['thumb'] == 'delete'){

			$newTmpl->thumb = null;

		}elseif(!empty($formData['mail']['thumb'])){

			$newTmpl->thumb = strip_tags($formData['mail']['thumb']);

		}else{

			$mailid = acymailing_getCID('mailid');

			if(!empty($mailid)){

				$mail = $this->get($mailid);

				$newTmpl->thumb = $mail->thumb;

			}

		}

		if(!empty($formData['mail']['altbody'])) $newTmpl->altbody = strip_tags($formData['mail']['altbody']);

		if(!empty($formData['mail']['fromname'])) $newTmpl->fromname = strip_tags($formData['mail']['fromname']);

		if(!empty($formData['mail']['fromemail'])) $newTmpl->fromemail = strip_tags($formData['mail']['fromemail']);

		if(!empty($formData['mail']['replyname'])) $newTmpl->replyname = strip_tags($formData['mail']['replyname']);

		if(!empty($formData['mail']['replyemail'])) $newTmpl->replyemail = strip_tags($formData['mail']['replyemail']);

		if(!empty($formData['mail']['summary'])) $newTmpl->description = strip_tags($formData['mail']['summary']);

		$newTmpl->ordering = 1;



		$tempid = $tmplClass->save($newTmpl);

		if(!empty($tempid)){

			$formData['mail']['tempid'] = $tempid;

			acymailing_enqueueMessage(JText::_('ACY_SAVEASTMPL_VALID'), 'message');

		}else{

			acymailing_enqueueMessage(JText::_('ERROR_SAVING'), 'error');

		}



		return true;

	}





	function ab_test($abTestDetail, $mailsArray, $nbTotalReceivers){

		$db = JFactory::getDBO();

		$query = "UPDATE #__acymailing_mail SET abtesting=".$db->quote(serialize($abTestDetail)).", published=1 WHERE mailid IN (".implode(',', $mailsArray).")";

		$db->setQuery($query);

		$db->query();



		if($abTestDetail['action'] != 'manual'){

			$config = acymailing_config();

			$currentAbTests = $config->get('currentABTests', '');

			if(!empty($currentAbTests)){

				$currentData = unserialize($currentAbTests);

			}else $currentData = array();

			$newTest = new stdClass();

			$newTest->sendDate = $abTestDetail['time'] + ($abTestDetail['delay'] * 86400);

			$newTest->ids = $abTestDetail['mailids'];

			$currentData[] = $newTest;

			$newconfig = new stdClass();

			$newconfig->currentABTests = serialize($currentData);

			$config->save($newconfig);

		}



		$statsClass = acymailing_get('class.stats');

		$statsClass->delete($mailsArray);



		$queueClass = acymailing_get('class.queue');

		$time = time();

		$nbReceiversTest = floor($nbTotalReceivers * $abTestDetail['prct'] / 100);

		$queueClass->limit = $nbReceiversTest;

		$queueClass->orderBy = 'RAND()';

		$queueClass->queue($mailsArray[0], $time);

		$nbReceiversPerMail = floor($nbReceiversTest / count($mailsArray));

		foreach($mailsArray as $oneMail){

			if($oneMail == $mailsArray[0]) continue;

			$query = "UPDATE #__acymailing_queue SET mailid=".intval($oneMail)." WHERE mailid=".intval($mailsArray[0])." LIMIT ".$nbReceiversPerMail;

			$db->setQuery($query);

			$db->query();

		}

		$query = "UPDATE #__acymailing_mail SET senddate=".$time." WHERE mailid IN (".implode(',', $mailsArray).")";

		$db->setQuery($query);

		$db->query();

		return $nbReceiversTest;

	}





	function complete_abtest($typeAction, $mailid){

		$db = JFactory::getDBO();

		$db->setQuery("SELECT abtesting FROM #__acymailing_mail WHERE mailid=".(int)$mailid);

		$resDetails = acymailing_loadResultArray($db);

		$abTestDetail = unserialize($resDetails[0]);

		$dataForCopy = array('mailid' => $mailid, 'abTestDetail' => $abTestDetail);

		$newMailid = $this->abTest_createFinalNewletter($typeAction, $dataForCopy);



		$queueClass = acymailing_get('class.queue');

		$time = time();

		$queueClass->queue($newMailid, $time);



		$mailidsTest = $abTestDetail['mailids'];

		$db->setQuery("SELECT subid FROM #__acymailing_userstats WHERE mailid IN (".$mailidsTest.")");

		$resUsersFromTest = acymailing_loadResultArray($db);

		if(!empty($resUsersFromTest)){

			$db->setQuery("DELETE FROM #__acymailing_queue WHERE subid IN (".implode(',', $resUsersFromTest).") AND mailid=".$newMailid);

			$db->query();

		}



		$abTestDetail['status'] = 'abTestFinalSend';

		$abTestDetail['newMail'] = $newMailid;

		$query = "UPDATE #__acymailing_mail SET abtesting=".$db->quote(serialize($abTestDetail))." WHERE mailid IN (".$mailidsTest.")";

		$db->setQuery($query);

		$db->query();



		return $newMailid;

	}



	function abTest_createFinalNewletter($typeAction, $dataForCopy){

		$db = JFactory::getDBO();



		if($typeAction == 'manual'){

			$mailid = $dataForCopy['mailid'];

			$newMailid = $this->copyOneNewsletter($mailid);

			return $newMailid;

		}



		$queryStat = 'SELECT mailid, openunique, clickunique, senthtml, senttext FROM #__acymailing_stats WHERE mailid IN ('.$dataForCopy['abTestDetail']['mailids'].')';

		$db->setQuery($queryStat);

		$resStat = $db->loadObjectList('mailid');

		$betterClick = -1;

		$betterOpen = -1;

		if(empty($resStat)) return 0;

		foreach($resStat as $mailid => $statsMail){

			if($statsMail->openunique > $betterOpen){

				$idOpen = $mailid;

				$betterOpen = $statsMail->openunique;

			}

			if($statsMail->clickunique > $betterClick){

				$idClick = $mailid;

				$betterClick = $statsMail->clickunique;

			}

		}

		if($dataForCopy['abTestDetail']['action'] == 'open'){

			$newMailid = $this->copyOneNewsletter($idOpen);

		}elseif($dataForCopy['abTestDetail']['action'] == 'click') $newMailid = $this->copyOneNewsletter($idClick);

		elseif($dataForCopy['abTestDetail']['action'] == 'mix'){

			$db->setQuery("SELECT subject, fromname, fromemail, replyname, replyemail FROM #__acymailing_mail WHERE mailid=".$idOpen);

			$newSubject = $db->loadObjectList();

			$newMailid = $this->copyOneNewsletter($idClick, $newSubject[0]);

		}

		return $newMailid;

	}



	function copyOneNewsletter($mailid, $subject = ''){

		$db = JFactory::getDBO();

		$time = time();

		$query = 'INSERT INTO `#__acymailing_mail` (`subject`, `fromname`, `fromemail`, `replyname`, `replyemail`, `body`, `altbody`, `published`, `created`, `type`, `visible`, `userid`, `alias`, `attach`, `html`, `tempid`, `key`, `frequency`, `params`,`filter`,`metakey`,`metadesc`,`summary`,`thumb`,`senddate`)';

		if(empty($subject)){

			$query .= " SELECT `subject`, `fromname`, `fromemail`, `replyname`, `replyemail`";

		}else{

			$query .= " SELECT ".$db->Quote($subject->subject).", ".$db->Quote($subject->fromname).", ".$db->Quote($subject->fromemail).", ".$db->Quote($subject->replyname).", ".$db->Quote($subject->replyemail);

		}

		$query .= ", `body`, `altbody`, `published`, '.$time.', `type`, `visible`, `userid`, `alias`, `attach`, `html`, `tempid`, ".$db->Quote(md5(rand(1000, 999999))).', `frequency`, `params`,`filter`,`metakey`,`metadesc`,`summary`,`thumb`,'.time().' FROM `#__acymailing_mail` WHERE `mailid` = '.(int)$mailid;

		$db->setQuery($query);

		$db->query();

		$newMailid = $db->insertid();

		$db->setQuery('INSERT IGNORE INTO `#__acymailing_listmail` (`listid`,`mailid`) SELECT `listid`,'.$newMailid.' FROM `#__acymailing_listmail` WHERE `mailid` = '.(int)$mailid);

		$db->query();

		$db->setQuery('INSERT IGNORE INTO `#__acymailing_tagmail` (`tagid`,`mailid`) SELECT `tagid`,'.$newMailid.' FROM `#__acymailing_tagmail` WHERE `mailid` = '.(int)$mailid);

		$db->query();

		return $newMailid;

	}



	function updateAbTest_auto($idsToSend){

		if(empty($idsToSend)) return;

		$db = JFactory::getDBO();

		$db->setQuery("SELECT mailid, abtesting FROM #__acymailing_mail WHERE mailid IN (".$idsToSend.") AND abtesting IS NOT NULL");

		$resDetails = $db->loadObjectList('mailid');

		if(empty($resDetails)) return;



		$oneAbTest = current($resDetails);

		$oneMailid = $oneAbTest->mailid;

		$abTestDetail = unserialize($oneAbTest->abtesting);

		$mailsArray = explode(',', $abTestDetail['mailids']);



		$query = "SELECT COUNT(*) FROM #__acymailing_queue WHERE mailid IN (".$abTestDetail['mailids'].")";

		$db->setQuery($query);

		$queueCheck = $db->loadResult();



		if(empty($queueCheck)){

			if(($abTestDetail['time'] + ($abTestDetail['delay'] * 24 * 3600)) < time()){

				$newMailid = $this->complete_abtest($abTestDetail['action'], $oneMailid);

				return $newMailid;

			}

		}

	}

}

