+function getThreadMessages($imapConnection, $start_msg, $show_num, $num_msgs) {
+ $id = get_thread_sort($imapConnection);
+ if ($id != 'no') {
+ if ($start_msg + ($show_num - 1) < $num_msgs) {
+ $end_msg = $start_msg + ($show_num-1);
+ } else {
+ $end_msg = $num_msgs;
+ }
+ $id = array_slice($id, ($start_msg-1), ($end_msg));
+
+ $end = $start_msg + $show_num - 1;
+ if ($num_msgs < $show_num) {
+ $end_loop = $num_msgs;
+ } else if ($end > $num_msgs) {
+ $end_loop = $num_msgs - $start_msg + 1;
+ } else {
+ $end_loop = $show_num;
+ }
+ return fillMessageArray($imapConnection,$id,$end_loop);
+ } else {
+ return false;
+ }
+}
+
+function getServerSortMessages($imapConnection, $start_msg, $show_num,
+ $num_msgs, $server_sort_order, $mbxresponse) {
+ $id = sqimap_get_sort_order($imapConnection, $server_sort_order,$mbxresponse);
+ if ($id != 'no') {
+ if ($start_msg + ($show_num - 1) < $num_msgs) {
+ $end_msg = $start_msg + ($show_num-1);
+ } else {
+ $end_msg = $num_msgs;
+ }
+ $id = array_slice($id, ($start_msg-1), ($end_msg));
+
+ $end = $start_msg + $show_num - 1;
+ if ($num_msgs < $show_num) {
+ $end_loop = $num_msgs;
+ } else if ($end > $num_msgs) {
+ $end_loop = $num_msgs - $start_msg + 1;
+ } else {
+ $end_loop = $show_num;
+ }
+ return fillMessageArray($imapConnection,$id,$end_loop);
+ } else {
+ return false;
+ }
+}
+
+function getSelfSortMessages($imapConnection, $start_msg, $show_num,
+ $num_msgs, $sort, $mbxresponse) {
+ $msgs = array();
+ if ($num_msgs >= 1) {
+ $id = sqimap_get_php_sort_order ($imapConnection, $mbxresponse);
+ if ($sort < 6 ) {
+ $end = $num_msgs;
+ $end_loop = $end;
+ } else {
+ /* if it's not sorted */
+ if ($start_msg + ($show_num - 1) < $num_msgs) {
+ $end_msg = $start_msg + ($show_num - 1);
+ } else {
+ $end_msg = $num_msgs;
+ }
+ if ($end_msg < $start_msg) {
+ $start_msg = $start_msg - $show_num;
+ if ($start_msg < 1) {
+ $start_msg = 1;
+ }
+ }
+ $id = array_slice(array_reverse($id), ($start_msg-1), ($end_msg));
+ $end = $start_msg + $show_num - 1;
+ if ($num_msgs < $show_num) {
+ $end_loop = $num_msgs;
+ } else if ($end > $num_msgs) {
+ $end_loop = $num_msgs - $start_msg + 1;
+ } else {
+ $end_loop = $show_num;
+ }
+ }
+ $msgs = fillMessageArray($imapConnection,$id,$end_loop);
+ }
+ return $msgs;
+}
+
+
+