--- loncom/interface/lonmsgdisplay.pm	2009/06/05 12:49:50	1.125
+++ loncom/interface/lonmsgdisplay.pm	2010/01/06 18:25:38	1.139.2.1
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Routines for messaging display
 #
-# $Id: lonmsgdisplay.pm,v 1.125 2009/06/05 12:49:50 bisitz Exp $
+# $Id: lonmsgdisplay.pm,v 1.139.2.1 2010/01/06 18:25:38 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -113,8 +113,8 @@ use lib '/home/httpd/lib/perl/';
 use LONCAPA;
 
 # Querystring component with sorting type
-my $sqs;
-my $startdis;
+my $sqs='';
+my $startdis='';
 
 # ============================================================ List all folders
 
@@ -173,6 +173,7 @@ sub folderlist {
 
     $formhash{'select_form_order'} = ['','critical',@userorder,'sent','trash'];
     my $output = qq|<script type="text/javascript">
+// <![CDATA[
 function folder_choice(targetform,caller) {
     var permfolders_keys = new Array('$permlistkeys');
     var permfolders_vals = new Array('$permlistvals');
@@ -214,6 +215,7 @@ function folder_choice(targetform,caller
         }
     }
 }
+// ]]>
 </script>|;
     my %show = ('select_form_order' => [10,20,50,100,200],
 		map {$_=>$_} (10,20,50,100,200));
@@ -239,7 +241,7 @@ function folder_choice(targetform,caller
      <td align="center"><b>'.$lt{'actn'}.'</b><br />'.
          &Apache::loncommon::select_form('view','folderaction',%actions).'
      </td><td><br />'.
-    '<input type="button" value="'.$lt{'go'}.'" onClick="javascript:folder_choice(this.form,'."'change'".');" />
+    '<input type="button" value="'.$lt{'go'}.'" onclick="javascript:folder_choice(this.form,'."'change'".');" />
      </td>
     </tr>
    </table>
@@ -247,7 +249,7 @@ function folder_choice(targetform,caller
   <td align="right">
    <table><tr><td><br />
     <input type="button" value="'.&mt('New Folder').
-    '" onClick="javascript:folder_choice(this.form,'."'new'".');" /></td>'.
+    '" onclick="javascript:folder_choice(this.form,'."'new'".');" /></td>'.
     '<td align="center"><b>'.&mt('Name').'</b><br />'.
     '<input type="text" size="15" name="newfolder" value="" />
     </td></tr></table>
@@ -295,11 +297,11 @@ sub scrollbuttons {
     }
     return
    '<b>'.&mt('Page').'</b>: '. 
-   '<input type="submit" name="firstview" value="'.&mt('First').'" />'.
-   '<input type="submit" name="prevview" value="'.&mt('Previous').'" />'.
-   '<input type="text" size="5" name="startdis" value="'.$start.'" onChange="this.form.submit()" /> of '.$maxdis.
-   '<input type="submit" name="nextview" value="'.&mt('Next').'" />'.
-   '<input type="submit" name="lastview" value="'.&mt('Last').'" /><br />'.
+   '<input type="submit" name="firstview" value="|&lt;" />'.
+   '<input type="submit" name="prevview" value="&lt;" />'.
+   ' <input type="text" size="5" name="startdis" value="'.$start.'" onchange="this.form.submit()" /> / '.$maxdis.' '.
+   '<input type="submit" name="nextview" value="&gt;" />'.
+   '<input type="submit" name="lastview" value="&gt;|" /><br />'.
    &mt('<b>[_1] messages</b>: showing messages [_2] through [_3] of [_4].',$status,$first,$finish,$total).'</form>';
 }
 # =============================================================== Status Change
@@ -507,6 +509,7 @@ sub movemsg {
 sub discourse {
     my ($statushash) = @_;
     my ($result,$active,$previous,$future);
+    my $crstype = &Apache::loncommon::course_type();
     my ($course_personnel,
 	$current_members,
 	$expired_members,
@@ -522,8 +525,14 @@ sub discourse {
                                                                \%defaultUsers,
                                                                1,"selectedusers",1,'email')
        ) {
+       my $bcc_curr_hdr;
+       if ($crstype eq 'Community') {
+           $bcc_curr_hdr = &mt('Bcc: community participants with current access');
+       } else {
+           $bcc_curr_hdr = &mt('Bcc: course members with current access');
+       }
        $result .= '<fieldset id="LC_activeusers"><legend>'
-                 .&mt('Bcc: course members with current access')
+                 .$bcc_curr_hdr
                  .'</legend>'
                  .'<form name="activeusers">';
        $result .= $tmptext.'</form></fieldset><br />';
@@ -537,8 +546,14 @@ sub discourse {
                                                                \%defaultUsers,
                                                                1, "selectedusers",0,'email')
        ) {
+       my $bcc_prev_hdr;
+       if ($crstype eq 'Community') {
+           $bcc_prev_hdr = &mt('Bcc: community participants with expired access');
+       } else {
+           $bcc_prev_hdr = &mt('Bcc: course members with expired access');
+       }
        $result .= '<fieldset id="LC_previoususers"><legend>'
-                 .&mt('Bcc: course members with expired access')
+                 .$bcc_prev_hdr
                  .'</legend>'
                  .'<form name="previoususers">';
        $result .= $tmptext.'</form></fieldset><br />';
@@ -553,10 +568,17 @@ sub discourse {
                                                                \%defaultUsers,
                                                                1, "selectedusers",0,'email')
        ) {
+       my $bcc_future_hdr;
+       if ($crstype eq 'Community') {
+           $bcc_future_hdr = &mt('Bcc: community participants with future access');
+       } else {
+           $bcc_future_hdr = &mt('Bcc: course members with future access');
+       }
+
        $result .= '<fieldset id="LC_futureusers"><legend>'
-                 .&mt('Bcc: course members with future access')
+                 .$bcc_future_hdr
                  .'</legend>'
-                 .'<form name="previoususers">';
+                 .'<form name="futureusers">';
        $result .= $tmptext.'</form></fieldset>';
        if (ref($statushash) eq 'HASH') {
            $statushash->{'future'} = 1;
@@ -680,6 +702,7 @@ sub disgroup {
 sub group_check_uncheck {
     my $output = qq|
 <script type="text/javascript">
+// <![CDATA[
 function toggleAll(form,action) {
     if (typeof(form.selectedusers_forminput.length)=="undefined") {
          if (action == 'check') {
@@ -697,6 +720,7 @@ function toggleAll(form,action) {
         }
     }
 }
+// ]]>
 </script>
     |;
 }
@@ -726,10 +750,16 @@ sub groupmail_header {
     }
     &Apache::lonhtmlcommon::clear_breadcrumbs();
     if ($refarg) {
+        my $brtitle;
+        if (&Apache::loncommon::course_type() eq 'Community') {
+            $brtitle = 'View community groups';  
+        } else {
+            $brtitle = 'View course groups';
+        }  
         &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>"/adm/coursegroups",
               text=>"Groups",
-              title=>"View course groups"});
+              title=>$brtitle});
     }
     &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/$cdom/$cnum/$group/smppg?$refarg",
@@ -991,6 +1021,7 @@ sub disfolder {
     my $jscript = &Apache::loncommon::check_uncheck_jscript();
     $r->print(<<ENDDISHEADER);
 <script type="text/javascript">
+// <![CDATA[
     $jscript
 
     function validate_checkedaction() {
@@ -1019,11 +1050,11 @@ sub disfolder {
         }
         document.disall.submit();
     }
-
+// ]]>
 </script>
 ENDDISHEADER
 
-    my $fsqs='&folder='.$folder;
+    my $fsqs='&amp;folder='.$folder;
     my @temp=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
     my $totalnumber=$#temp+1;
     if ($totalnumber < 1) {
@@ -1055,44 +1086,44 @@ ENDDISHEADER
     $r->print('<form method="post" name="disall" action="/adm/email">'.
 	      '<table class="LC_mail_list"><tr><th colspan="1">&nbsp;</th><th>');
     if ($env{'form.sortedby'} eq "revdate") {
-	$r->print('<a href = "?sortedby=date'.$fsqs.'">'.&mt('Date').'</a></th>');
+	$r->print('<a href = "/adm/email?sortedby=date'.$fsqs.'">'.&mt('Date').'</a></th>');
     } else {
-	$r->print('<a href = "?sortedby=revdate'.$fsqs.'">'.&mt('Date').'</a></th>');
+	$r->print('<a href = "/adm/email?sortedby=revdate'.$fsqs.'">'.&mt('Date').'</a></th>');
     }
     $r->print('<th>');
     if ($env{'form.sortedby'} eq "revuser") {
-	$r->print('<a href = "?sortedby=user'.$fsqs.'">'.&mt('Username').'</a>');
+	$r->print('<a href = "/adm/email?sortedby=user'.$fsqs.'">'.&mt('Username').'</a>');
     } else {
-	$r->print('<a href = "?sortedby=revuser'.$fsqs.'">'.&mt('Username').'</a>');
+	$r->print('<a href = "/adm/email?sortedby=revuser'.$fsqs.'">'.&mt('Username').'</a>');
     }
     $r->print('</th><th>');
     if ($env{'form.sortedby'} eq "revdomain") {
-	$r->print('<a href = "?sortedby=domain'.$fsqs.'">'.&mt('Domain').'</a>');
+	$r->print('<a href = "/adm/email?sortedby=domain'.$fsqs.'">'.&mt('Domain').'</a>');
     } else {
-	$r->print('<a href = "?sortedby=revdomain'.$fsqs.'">'.&mt('Domain').'</a>');
+	$r->print('<a href = "/adm/email?sortedby=revdomain'.$fsqs.'">'.&mt('Domain').'</a>');
     }
     $r->print('</th><th>');
     if ($env{'form.sortedby'} eq "revsubject") {
-	$r->print('<a href = "?sortedby=subject'.$fsqs.'">'.&mt('Subject').'</a>');
+	$r->print('<a href = "/adm/email?sortedby=subject'.$fsqs.'">'.&mt('Subject').'</a>');
     } else {
-    	$r->print('<a href = "?sortedby=revsubject'.$fsqs.'">'.&mt('Subject').'</a>');
+    	$r->print('<a href = "/adm/email?sortedby=revsubject'.$fsqs.'">'.&mt('Subject').'</a>');
     }
     $r->print('</th><th>');
     if ($env{'form.sortedby'} eq "revcourse") {
-        $r->print('<a href = "?sortedby=course'.$fsqs.'">'.&mt('Course').'</a>');
+        $r->print('<a href = "/adm/email?sortedby=course'.$fsqs.'">'.&mt('Course').'</a>');
     } else {
-        $r->print('<a href = "?sortedby=revcourse'.$fsqs.'">'.&mt('Course').'</a>');
+        $r->print('<a href = "/adm/email?sortedby=revcourse'.$fsqs.'">'.&mt('Course').'</a>');
     }
     $r->print('</th><th>');
     if ($env{'form.sortedby'} eq "revstatus") {
-	$r->print('<a href = "?sortedby=status'.$fsqs.'">'.&mt('Status').'</a></th>');
+	$r->print('<a href = "/adm/email?sortedby=status'.$fsqs.'">'.&mt('Status').'</a></th>');
     } else {
-     	$r->print('<a href = "?sortedby=revstatus'.$fsqs.'">'.&mt('Status').'</a></th>');
+     	$r->print('<a href = "/adm/email?sortedby=revstatus'.$fsqs.'">'.&mt('Status').'</a></th>');
     }
     $r->print("</tr>\n");
 
     my $suffix = &Apache::lonmsg::foldersuffix($folder);
-    my $count = 0;
+    my $count = $firstdis;
     for (my $n=$firstdis;$n<=$lastdis;$n++) {
 	my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$origID,
 	    $description,$recv_name,$recv_domain)= 
@@ -1137,7 +1168,7 @@ ENDDISHEADER
             foreach my $item ($localsenttime,$dis_name,$dis_domain,$shortsubj) {
                 $r->print('<td>'.(($status eq 'new')?'<b>':'').
                           '<a href="/adm/email?display='.$origID.$sqs.'">'.
-                          $item.(($status eq 'new')?'</b>':'').'</td>');
+                          $item.(($status eq 'new')?'</b>':'').'</a></td>');
             }
             my $showstatus;
             my %statushash = &get_msgstatus_types();
@@ -1213,8 +1244,12 @@ sub blocked_in_folder {
     my $finishblock = &Apache::lonlocal::locallocaltime($endblock);
     my $output = '<br /><br />'.
                   &mt('[quant,_1,message is, messages are] not viewable because display of LON-CAPA messages sent to you by other students between [_2] and [_3] is currently being blocked because of online exams.',$numblocked,$beginblock,$finishblock);
-    $output .= &Apache::loncommon::build_block_table($startblock,$endblock,
-                                                     $setters);
+    #$output .= &Apache::loncommon::build_block_table($startblock,$endblock,
+    #                                                 $setters);
+    
+    my ($blocked, $blocktext) = &Apache::loncommon::blocking_status("com");
+    $output .="<br /><br />".$blocktext;
+
     return $output;
 }
 
@@ -1259,8 +1294,9 @@ sub compout {
         &printheader($r,'/adm/email?compose=multiforward',
              'Forwarding Multiple Messages');
         if ($multiforward > 1) {
-            $r->print(&mt('Each of the <b>[quant,_1,message]</b> you checked'
-                         .' will be forwarded to the recipient(s) you select below.',$multiforward)
+            $r->print(&mt('Each of the [quant,_1,message] you checked'
+                         .' will be forwarded to the recipient(s) you select below.'
+                         ,'<b>'.$multiforward.'</b>')
                     .'<br />');
         } else {
             $r->print(&mt('The message you checked will be forwarded to the recipient(s) you select below.').'<br />');
@@ -1305,22 +1341,36 @@ sub compout {
     if (&Apache::lonnet::allowed('srm',$env{'request.course.id'})
 	|| &Apache::lonnet::allowed('srm',$env{'request.course.id'}.
 				    '/'.$env{'request.course.sec'})) {
+         my $crstype = &Apache::loncommon::course_type();
 	 my $crithelp = Apache::loncommon::help_open_topic("Course_Critical_Message");
+         my $rsstxt;
+         if (&Apache::loncommon::course_type() eq 'Community') {
+             $rsstxt = &mt('Include in community RSS newsfeed');
+         } else {
+             $rsstxt = &mt('Include in course RSS newsfeed');
+         }
          $dispcrit=
  '<span class="LC_nobreak"><label><input type="checkbox" name="critmsg" /> '.&mt('Send as critical message').'.</label>'.$crithelp.'&nbsp;&nbsp;'.&mt('Require return receipt?').'<label><input type="radio" name="sendbck" value="1" />'.&mt('Yes').'</label>&nbsp;&nbsp;<label><input type="radio" name="sendbck" value="" checked="checked" />'.&mt('No').'</label></span><br />'.
  '<label><input type="checkbox" name="permanent" /> '.
 &mt('Send copy to permanent e-mail address (if known)').'</label><br />'.
 '<label><input type="checkbox" name="rsspost" /> '.
-		  &mt('Include in course RSS newsfeed').'</label><br />';
+		  $rsstxt.'</label><br />';
     }
     if ($broadcast ne 'group') {
         if (&Apache::lonnet::allowed('dff',$env{'request.course.id'}) ||
             &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
                                      '/'.$env{'request.course.sec'})) {
 
+            my $rectxt;
+            if (&Apache::loncommon::course_type() eq 'Community') {
+                $rectxt = &mt("Include in community's 'User records' for recipient(s)");
+            } else {
+                $rectxt = &mt("Include in course's 'User records' for recipient(s)");
+            }
+
             $dispcrit.='<label>'.
                        '<input type="checkbox" name="courserecord" value="1" /> '.
-                       &mt("Include in course's 'User records' for recipient(s)").
+                       $rectxt.
                        '</label><br />';
         }
     }
@@ -1356,6 +1406,7 @@ sub compout {
             $sendmode = '<input type="hidden" name="sendmode" value="group" />'."\n";
             $broadcast_js = qq|
 <script type="text/javascript">
+// <![CDATA[
 function courseRecipients() {
 |;
         foreach my $type (keys(%access_status)) {
@@ -1382,6 +1433,7 @@ function courseRecipients() {
         $broadcast_js .= qq|
     return;
 }
+// ]]>
 </script>
 
 |;
@@ -1425,7 +1477,9 @@ function courseRecipients() {
         my $jscript = &Apache::loncommon::check_uncheck_jscript();
         $r->print(<<"ENDREPSCRIPT");
 <script type="text/javascript">
+// <![CDATA[
 $jscript
+// ]]>
 </script>
 ENDREPSCRIPT
     }
@@ -1772,8 +1826,10 @@ sub retrieve_instructor_comments {
 }
 
 sub disfacetoface {
-    my ($r,$user,$domain)=@_;
-    my $target=$env{'form.grade_target'};
+    my ($r,$user,$domain,$target)=@_;
+	if ($target eq '') {
+    	my $target=$env{'form.grade_target'};
+	}
     unless ($env{'request.course.id'}) { return; }
     if  (!&Apache::lonnet::allowed('dff',$env{'request.course.id'})
 	 && ! &Apache::lonnet::allowed('dff',$env{'request.course.id'}.
@@ -1785,11 +1841,13 @@ sub disfacetoface {
 			 $env{'course.'.$env{'request.course.id'}.'.domain'},
 			 $env{'course.'.$env{'request.course.id'}.'.num'},
                          '%255b'.$user.'%253a'.$domain.'%255d');
-    my $result='';
+    my $result='<div>';
     foreach my $key (sort(keys(%records))) {
         my %content=&Apache::lonmsg::unpackagemsg($records{$key});
         next if ($content{'senderdomain'} eq '');
-	&Apache::lonfeedback::newline_to_br(\$content{'message'});
+    if (!&Apache::lonfeedback::contains_block_html($content{'message'})) {
+		&Apache::lonfeedback::newline_to_br(\$content{'message'});
+	}
         if ($content{'subject'}=~/^Record/) {
 	    $result.='<h3>'.&mt('Record').'</h3>';
         } elsif ($content{'subject'}=~/^Broadcast/) {
@@ -1849,9 +1907,11 @@ $content{'sendername'}.':'.
 	} else {
 	    $r->print('\textbf{'.&mt('No notes, face-to-face discussion records, critical messages or broadcast messages in this [_1].',$lctype).'}\\\\');
 	}
+    } elsif ($target ne 'tex') {
+       $r->print($result.'</div>');
     } else {
-       $r->print($result);
-    }
+		$r->print(&Apache::lonxml::xmlparse($r, 'tex', $result));
+	}
 }
 
 sub general_message {
@@ -1877,8 +1937,8 @@ sub facetoface {
 	return;
     }
     my $crstype = &Apache::loncommon::course_type();
-    my $leaders = ($crstype eq 'Group') ? 'coordinators and leaders'
-                                        : 'faculty and staff';
+    my $leaders = ($crstype eq 'Community') ? 'coordinators and leaders'
+                                            : 'faculty and staff';
     &printheader($r,
 		 '/adm/email?recordftf=query',
 		 "User Notes, Face-to-Face, Critical Messages, Broadcast Messages, Archived Messages");
@@ -1964,12 +2024,18 @@ sub examblock {
 	$r->print('Not allowed');
 	return;
     }
-    my $usertype = (&Apache::loncommon::course_type() eq 'Group') ? 'members'
-	                                                          : 'students';
+    my $usertype;
+    my $crstype = &Apache::loncommon::course_type();
+    if ($crstype eq 'Community') {
+        $usertype = 'members';
+    } else {
+	$usertype = 'students';
+    }
+    my $lctype = lc($crstype);
     my %lt=&Apache::lonlocal::texthash(
             'comb' => 'Communication Blocking',
             'cbds' => 'Communication blocking during scheduled exams',
-            'desc' => "You can use communication blocking to prevent $usertype enrolled in this course from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.",
+            'desc' => "You can use communication blocking to prevent $usertype enrolled in this $lctype from displaying LON-CAPA messages sent by other $usertype during an online exam. As blocking of communication could potentially interrupt legitimate communication between $usertype who are also both enrolled in a different LON-CAPA course or community, please be careful that you select the correct start and end times for your scheduled exam when setting or modifying these parameters.",
              'mecb' => 'Modify existing communication blocking periods',
              'ncbc' => 'No communication blocks currently saved',
              'stor' => 'Save',
@@ -2266,8 +2332,10 @@ sub displaymessage {
     my @messages=&sortedmessages(\%blocked,$startblock,$endblock,\$numblocked,$folder,$msgstatus);
     if ( $blocked{$msgid} eq 'ON' ) {
         &printheader($r,'/adm/email',&mt('Display a Message'));
-        $r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));
-        &build_block_table($r,$startblock,$endblock,\%setters);
+        #$r->print(&mt('You attempted to display a message that is currently blocked because you are enrolled in one or more courses for which there is an ongoing online exam.'));
+        #&build_block_table($r,$startblock,$endblock,\%setters);
+        my($blocked, $blocktext) = &Apache::loncommon::blocking_status("com");
+        $r->print("<br />".$blocktext);
         return;
     }
     if ($msgstatus eq '') {
@@ -2333,19 +2401,6 @@ sub displaymessage {
                           .&mt('Next')
                           .'</a>');
     }
-# Print functions
-    my $legendtext='<span class="LC_mail_functions">'
-                   .&mt('Functions')
-                   .'</span>';
-    $r->print('<div class="LC_left_float">'
-                     .&Apache::lontemplate::start_functionslist($legendtext)
-    );
-    foreach my $item (@functionlist) {
-        $r->print(&Apache::lontemplate::item_functionslist($item));
-    }
-    $r->print(&Apache::lontemplate::end_functionslist()
-             .'</div>'
-    );
 
 # Prepare available actions
     my $symb;
@@ -2354,8 +2409,8 @@ sub displaymessage {
     } elsif (defined($content{'baseurl'})) {
         $symb=&Apache::lonnet::symbread($content{'baseurl'});
     }
-    if ($env{'user.adv'}) {
         my @actionlist;
+    if ($env{'user.adv'}) {
 
 	if (&Apache::lonnet::allowed('vgr',$env{'request.course.id'})) {
 		push(@actionlist,&Apache::loncommon::track_student_link(
@@ -2380,22 +2435,31 @@ sub displaymessage {
                                      ,$symb
                                      ,'check'));
 	}
+    }
+
+# Print functionlist and actionlist in page header
+        my $functions='<div class="LC_columnSection">';
 
-# Print actions
+        # Functionlist
+        $functions.=&Apache::lonhtmlcommon::start_funclist();
+        foreach my $item (@functionlist) {
+            $functions.=&Apache::lonhtmlcommon::add_item_funclist($item);
+        }
+        $functions .= &Apache::lonhtmlcommon::end_funclist();
+
+        # Actionlist
         if (@actionlist) {
-            $legendtext=&mt('[_1]Currently available actions[_2] (will open extra window):'
-                           ,'<span class="LC_mail_functions">','</span>');
-            $r->print('<div class="LC_left_float">'
-                     .&Apache::lontemplate::start_functionslist($legendtext)
-            );
+            my $legendtext=&mt('Currently available actions (will open extra window)');
+            $functions.=&Apache::lonhtmlcommon::start_funclist($legendtext);
             foreach my $item (@actionlist) {
-                $r->print(&Apache::lontemplate::item_functionslist($item));
+                $functions.=&Apache::lonhtmlcommon::add_item_funclist($item);
             }
-            $r->print(&Apache::lontemplate::end_functionslist()
-                     .'</div>'
-            );
+            $functions.=&Apache::lonhtmlcommon::end_funclist();
         }
-    }
+
+        $functions.='</div>';
+        $r->print(&Apache::loncommon::head_subbox($functions));
+
 
     my ($tonum,$tolist,$cclist,$bcclist,$groupcclist,%recipients);
     if ($content{'recipid'}) {
@@ -2742,6 +2806,7 @@ sub recipients_link {
             $body =~ s{\n}{}g;
             $r->print(<<ENDJS);
 <script type="text/javascript">
+// <![CDATA[
 function showBroadcastList() {
     var caller = this;
     var newWindow = null;
@@ -2764,7 +2829,7 @@ function writeWin(caller) {
     caller.document.close();
     caller.focus();
 }
-
+// ]]>
 </script>
 
 ENDJS
@@ -2777,6 +2842,9 @@ ENDJS
 # =========================================================== Show the citation
 
 sub displayresource {
+    if (&Apache::loncommon::needs_gci_custom()) {
+        return '';
+    }
     my %content=@_;
 #
 # If the recipient is in the same course that the message was sent from and
@@ -2822,10 +2890,10 @@ sub header {
     if ($baseurl) {
 	$extra .= "<base href=\"".&Apache::lonnet::absolute_url()."/$baseurl\" />";
     }
-    $r->print(&Apache::loncommon::start_page('Communication',
+    $r->print(&Apache::loncommon::start_page('Messages',
  					$extra));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs
-     		(($title?$title:'Send and Receive Messages')));
+     		(($title?$title:'Send and display messages')));
 }
 
 # ---------------------------------------------------------------- Print header
@@ -3223,7 +3291,7 @@ sub handler {
          'recordftf','sortedby','block','folder','startdis','interdis',
 	 'showcommentbaseurl','dismode','group','subject','text','ref',
          'msgstatus']);
-    $sqs='&sortedby='.$env{'form.sortedby'};
+    $sqs='&amp;sortedby='.$env{'form.sortedby'};
 
 # ------------------------------------------------------ They checked for email
     unless ($env{'form.block'}) {
@@ -3235,7 +3303,7 @@ sub handler {
     &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>"/adm/communicate",
-          text=>"Communication/Messages",
+          text=>"Messages",
           faq=>12,bug=>'Communication Tools',});
 
 # ------------------------------------------------------------------ Get Folder
@@ -3244,7 +3312,7 @@ sub handler {
     unless ($folder) { 
 	$folder=''; 
     } else {
-	$sqs.='&folder='.&escape($folder);
+	$sqs.='&amp;folder='.&escape($folder);
     }
 # ------------------------------------------------------------ Get Display Mode
 
@@ -3276,7 +3344,7 @@ sub handler {
 	$startdis++;
     }
     my $postedstartdis=$startdis+1;
-    $sqs.='&startdis='.$postedstartdis;
+    $sqs.='&amp;startdis='.$postedstartdis;
 
 # --------------------------------------------------------------- Render Output
 
@@ -3340,7 +3408,7 @@ sub handler {
             $total ++;
         }
         &printheader($r,'','Marked Messages Read');
-        $r->print(&mt('Marked [_1] message(s) read',$total).'<p>');
+        $r->print(&mt('Marked [quant,_1,message] read',$total).'<p>');
         &Apache::loncommunicate::menu($r);
         &disall($r,($folder?$folder:$dismode),$msgstatus);
     } elsif ($env{'form.markedaction'} eq 'markedunread') {
@@ -3351,7 +3419,7 @@ sub handler {
             $total ++;
         }
         &printheader($r,'','Marked Messages Unread');
-        $r->print(&mt('Marked [_1] message(s) unread',$total).'<p>');
+        $r->print(&mt('Marked [quant,_1,message] unread',$total).'<p>');
         &Apache::loncommunicate::menu($r);
         &disall($r,($folder?$folder:$dismode),$msgstatus);
     } elsif ($env{'form.markedaction'} eq 'markedmove') {
@@ -3375,14 +3443,17 @@ sub handler {
 	        }
 	    }
 	    if ($failed) {
-	        $r->print('<p class="LC_error">
-                          '.&mt('Failed to move [_1] message(s)',$failed).
-		      '</p>');
+                $r->print('<p class="LC_error">'
+                         .&mt('Failed to move [quant,_1,message]',$failed)
+                         .'</p>');
 	        $r->print('<p class="LC_error">'.
 	   	          join("</p>\n<p class=\"LC_error\">",@failed_msg).
 		          "</p>\n");
 	    }
-	    $r->print(&mt('Moved [_1] message(s)',$total).'<p>');
+            $r->print('<p class="LC_success">'
+                     .&mt('Moved [quant,_1,message]',$total)
+                     .'</p>'
+                     .'<p>');
         }
 	&Apache::loncommunicate::menu($r);
 	&disall($r,($folder?$folder:$dismode),$msgstatus);
@@ -3401,14 +3472,17 @@ sub handler {
 	}
 	&printheader($r,'','Deleted Messages');
 	if ($failed) {
-	    $r->print('<p class="LC_error">
-                          '.&mt('Failed to delete [_1] message(s)',$failed).
-		      '</p>');
+            $r->print('<p class="LC_error">'
+                     .&mt('Failed to delete [quant,_1,message]',$failed)
+                     .'</p>');
 	    $r->print('<p class="LC_error">'.
 		      join("</p>\n<p class=\"LC_error\">",@failed_msg).
 		      "</p>\n");
 	}
-	$r->print(&mt('Deleted [_1] message(s)',$total).'<p>');
+        $r->print('<p class="LC_success">'
+                 .&mt('Deleted [quant,_1,message]',$total)
+                 .'</p>'
+                 .'<p>');
 	&Apache::loncommunicate::menu($r);
 	&disall($r,($folder?$folder:$dismode),$msgstatus);
     } elsif ($env{'form.markunread'}) {
@@ -3500,10 +3574,14 @@ sub handler {
         my $showfolder = $env{'form.newfolder'};
 	my ($makeresult,$warning) = &makefolder($env{'form.newfolder'});
         if ($makeresult eq 'ok') {
-            $r->print(&mt('Folder "[_1]" created.',$showfolder).'<br />');
+            $r->print('<p class="LC_success">'
+                     .&mt('Folder "[_1]" created.',$showfolder)
+                     .'</p>');
         } else {
-            $r->print(&mt('Creation failed.').' '.$makeresult.'<br />'.
-                      $warning);
+            $r->print('<p class="LC_warning">'
+                     .&mt('Creation failed.').' '.$makeresult.'<br />'
+                     .$warning
+                     .'</p>');
             $showfolder = $folder;
         }
         &Apache::loncommunicate::menu($r);
@@ -3515,10 +3593,14 @@ sub handler {
         my $showfolder = '';
         my $delresult = &deletefolder($folder);
         if ($delresult eq 'ok') {
-            $r->print(&mt('Folder "[_1]" deleted.',$folder).'<br />');
+            $r->print('<p class="LC_success">'
+                     .&mt('Folder "[_1]" deleted.',$folder)
+                     .'</p>');
             $env{'form.folder'} = '';
         } else {
-            $r->print(&mt('Deletion failed.').' '.$delresult.'<br />');
+            $r->print('<p class="LC_warning">'
+                     .&mt('Deletion failed.').' '.$delresult
+                     .'</p>');
             $showfolder = $folder;
         }
         &Apache::loncommunicate::menu($r);
@@ -3528,9 +3610,13 @@ sub handler {
         my $showfolder = $env{'form.renamed'};
         my $renresult = &renamefolder($folder);
         if ($renresult eq 'ok') {
-            $r->print(&mt('Folder "[_1]" renamed to "[_2]".',$folder,$showfolder).'<br />');
+            $r->print('<p class="LC_success">'
+                     .&mt('Folder "[_1]" renamed to "[_2]".',$folder,$showfolder)
+                     .'</p>');
         } else {
-            $r->print(&mt('Renaming failed.').' '.$renresult.'<br />');
+            $r->print('<p class="LC_warning">'
+                     .&mt('Renaming failed.').' '.$renresult
+                     .'</p>');
             $showfolder = $folder;
         }
         &Apache::loncommunicate::menu($r);