--- loncom/interface/lonmenu.pm	2008/09/04 22:47:20	1.240
+++ loncom/interface/lonmenu.pm	2008/12/04 08:56:28	1.246
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Routines to control the menu
 #
-# $Id: lonmenu.pm,v 1.240 2008/09/04 22:47:20 riegler Exp $
+# $Id: lonmenu.pm,v 1.246 2008/12/04 08:56:28 tempelho Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -36,6 +36,105 @@
 # browser.interface is 'textual'
 #
 
+=head1 NAME
+
+Apache::lonmenu
+
+=head1 SYNOPSIS
+
+Coordinates the response to clicking an image.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item show_course()
+
+Little texts
+
+=item initlittle()
+
+=item menubuttons()
+
+This gets called at the top of the body section
+
+=item show_return_link()
+
+=item registerurl()
+
+This gets called in the header section
+
+=item innerregister()
+
+This gets called in order to register a URL, both with the Remote
+and in the body of the document
+
+=item loadevents()
+
+=item unloadevents()
+
+=item startupremote()
+
+=item setflags()
+
+=item maincall()
+
+=item load_remote_msg()
+
+=item get_menu_name()
+
+=item reopenmenu()
+
+=item open()
+
+Open the menu
+
+=item clear()
+
+=item switch()
+
+Switch a button or create a link
+Switch acts on the javascript that is executed when a button is clicked.  
+The javascript is usually similar to "go('/adm/roles')" or "cstrgo(..)".
+
+=item secondlevel()
+
+=item openmenu()
+
+=item inlinemenu()
+
+=item rawconfig()
+
+=item close()
+
+=item footer()
+
+=item utilityfunctions()
+
+=item serverform()
+
+=item constspaceform()
+
+=item get_nav_status()
+
+=item convert_menu_function()
+
+FIXME this needs to move into mydesktab and the other locations 
+the text is generated
+
+=item hidden_button_check()
+
+=item roles_selector()
+
+=item jump_to_role()
+
+=back
+
+=cut
+
 package Apache::lonmenu;
 
 use strict;
@@ -53,7 +152,6 @@ my @inlineremote;
 
 
 
-# ================================================================ Little texts
 sub show_course {
     my $course = !$env{'user.adv'};
     if (!$env{'user.adv'}) {
@@ -84,8 +182,6 @@ sub initlittle {
                                        );
 }
 
-# ============================= This gets called at the top of the body section
-
 sub menubuttons {
     my $forcereg=shift;
     my $registration=shift;
@@ -203,7 +299,6 @@ ENDMAINMENU
      </td>
     </tr>
   </table>
-</font>
 ENDINLINEMENU
         }
         $roles = '<td><a href="/adm/roles" target="_top">'.$lt{'roles'}.'</a></td>';
@@ -251,10 +346,6 @@ ENDCRELOAD
         }
         my $form=&serverform();
 	my $utility=&utilityfunctions();
-	my $remote;
-	if ($env{'user.adv'}) {
-	    $remote = '<td><a href="/adm/remote?action=launch&amp;url='.$escurl.'" target="_top">'.$lt{'launch'}.'</a></td>'
-	}
 
         my $helplink=&Apache::loncommon::top_nav_help('Help');
 	return (<<ENDINLINEMENU);
@@ -272,10 +363,9 @@ $reloadlink
 $navmaps
 $docs
 $groups
-$remote
 $roles
-<td class="LC_top_nav_help">$helplink</td>
-<td class="LC_top_nav_exit"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
+<td style="width: 2.0em;">$helplink</td>
+<td style="width: 2.0em;"><a href="/adm/logout" target="_top">$lt{'exit'}</a></td>
 </tr>
 </table>
 $form
@@ -302,7 +392,6 @@ sub show_return_link {
 	     ));
 }
 
-# ====================================== This gets called in the header section
 
 sub registerurl {
     my ($forcereg) = @_;
@@ -327,9 +416,6 @@ sub registerurl {
     return $result.$force_title;
 }
 
-# =========== This gets called in order to register a URL, both with the Remote
-# =========== and in the body of the document
-
 sub innerregister {
     my ($forcereg, $titletable) = @_;
     my $result = '';
@@ -519,9 +605,20 @@ c&8&1
 c&8&2
 s&8&3&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
 s&9&1&sbkm.gif&set[_1]&bookmark[_2]&set_bookmark()&Set a bookmark for this resource&&1
-s&9&3&anot.gif&anno-[_1]&tations[_1]&annotate()&Make notes and annotations about this resource&&1
 ENDMENUITEMS
 
+my $currentURL = &Apache::loncommon::get_symb();
+my ($symb_old,$symb_old_enc) = &Apache::loncommon::clean_symb($currentURL);
+my $annotation = &Apache::loncommon::get_annotation($symb_old,$symb_old_enc);
+$menuitems.="s&9&3&";
+if(length($annotation) > 0){
+	$menuitems.="anot2.gif";
+}else{
+	$menuitems.="anot.gif";
+}
+$menuitems.="&anno-[_1]&tations[_1]&annotate()&";
+$menuitems.="Make notes and annotations about this resource&&1\n";
+
             unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) {
 		if (!$env{'request.enc'}) {
 		    $menuitems.=(<<ENDREALRES);
@@ -721,7 +818,6 @@ sub unloadevents() {
     return 'LONCAPAstale();';
 }
 
-# ============================================================= Start up remote
 
 sub startupremote {
     my ($lowerurl)=@_;
@@ -835,7 +931,6 @@ sub get_menu_name {
     return 'LCmenu'.$hostid;
 }
 
-# ================================================================= Reopen menu
 
 sub reopenmenu {
    if (($env{'browser.interface'} eq 'textual') ||
@@ -845,7 +940,6 @@ sub reopenmenu {
    return('window.open('.$nothing.',"'.$menuname.'","",false);');
 } 
 
-# =============================================================== Open the menu
 
 sub open {
     my $returnval='';
@@ -995,40 +1089,14 @@ sub inlinemenu {
     &rawconfig(1);
     my $output='<table id="LC_mainmenu"><tr>';
     for (my $col=1; $col<=2; $col++) {
-        $output.='<td class="LC_mainmenu_column">';
-        for (my $row=1; $row<=8; $row++) {
-            foreach my $cat (keys(%category_members)) {
-               if ($category_positions{$cat} ne "$col,$row") { next; }
-               $output.='<table id="LC_menubuttons_mainmenu"><tr><td colspan="4" class="LC_menubuttons_category">'.&mt($category_names{$cat}).'</td></tr>';
-               my %active=();
-               foreach my $menu_item (split(/\:/,$category_members{$cat})) {
-                  if ($inlineremote[$menu_item]) {
-                     $active{$menu_item}=1;
-                  }
-               }  
-               foreach my $item (sort(keys(%active))) {
-                  $output.=$inlineremote[$item];
-               }
-               $output.='</table>';
-            }
-         }
-         $output.="</td>";
-    }
-    $output.="</tr></table>";
-    return $output;
-}
-
-sub inlinemenu_new {
-    undef(@inlineremote);
-    undef(%category_members);
-    &rawconfig(1);
-    my $output='<table id="LC_mainmenu"><tr>';
-    for (my $col=1; $col<=2; $col++) {
-        $output.='<td class="LC_mainmenu_column">';
+        $output.='<td class="LC_mainmenu_col_fieldset">';
         for (my $row=1; $row<=8; $row++) {
             foreach my $cat (keys(%category_members)) {
                if ($category_positions{$cat} ne "$col,$row") { next; }
-               $output.='<table id="LC_menubuttons_mainmenu"><tr><td colspan="4" class="LC_menubuttons_category">'.&mt($category_names{$cat}).'</td></tr>';
+               #$output.='<table id="LC_menubuttons_mainmenu"><tr><td colspan="4" class="LC_menubuttons_category">'.&mt($category_names{$cat}).'</td></tr>';
+               $output.='<div class="ContentBoxSpecial">';
+	       $output.='<h4 class="hcell">'.&mt($category_names{$cat}).'</h4>';
+               $output.='<table id="LC_menubuttons_mainmenu">';
                my %active=();
                foreach my $menu_item (split(/\:/,$category_members{$cat})) {
                   if ($inlineremote[$menu_item]) {
@@ -1037,8 +1105,10 @@ sub inlinemenu_new {
                }  
                foreach my $item (sort(keys(%active))) {
                   $output.=$inlineremote[$item];
+		&Apache::lonnet::logthis("item=$item output=$inlineremote[$item]");
                }
                $output.='</table>';
+               $output.='</div>';
             }
          }
          $output.="</td>";