+function findAlternativeEntity ($message) {
+ global $show_html_default;
+ /* if we are dealing with alternative parts then we choose the best
+ * viewable message supported by SM.
+ */
+ if ($show_html_default) {
+ $alt_order = array ('text/plain','text/html');
+ } else {
+ $alt_order = array ('text/plain');
+ }
+ $best_view = 0;
+ $ent_id = 0;
+ $k = 0;
+ for ($i = 0; $i < count($message->entities); $i ++) {
+ $type = $message->entities[$i]->header->type0.'/'.$message->entities[$i]->header->type1;
+ if ($type == 'multipart/related') {
+ $type = $message->entities[$i]->header->type;
+ }
+ for ($j = $k; $j < count($alt_order); $j++) {
+ if ($alt_order[$j] == $type && $j > $best_view) {
+ $best_view = $j;
+ $ent_id = $i;
+ $k = $j;
+ }
+ }
+ }
+ return $message->entities[$ent_id];
+}
+
+function findRelatedEntity ($message) {
+ $msgs = array();
+ for ($i = 0; $i < count($message->entities); $i ++) {
+ $type = $message->entities[$i]->header->type0.'/'.$message->entities[$i]->header->type1;
+ if ($message->header->type == $type) {
+ $msgs[] = $message->entities[$i];
+ }
+ }
+ return $msgs;
+}
+