protected function _buildSubQuery(array $query)
{
$imap_query = new Horde_Imap_Client_Search_Query();
foreach ($query as $q) {
foreach ($q['value'] as $type => $value) {
switch ($type) {
case Horde_ActiveSync_Message_Mail::POOMMAIL_DATERECEIVED:
if ($q['op'] == Horde_ActiveSync_Request_Search::SEARCH_GREATERTHAN) {
$range = Horde_Imap_Client_Search_Query::DATE_SINCE;
} elseif ($q['op'] == Horde_ActiveSync_Request_Search::SEARCH_LESSTHAN) {
$range = Horde_Imap_Client_Search_Query::DATE_BEFORE;
} else {
$range = Horde_Imap_Client_Search_Query::DATE_ON;
}
$imap_query->dateSearch($value, $range);
break;
case Horde_ActiveSync_Request_Search::SEARCH_FREETEXT:
$imap_query->text($value);
break;
}
}
}
return $imap_query;
}