--- loncom/interface/londocs.pm	2009/10/04 09:41:12	1.387
+++ loncom/interface/londocs.pm	2010/03/18 13:48:45	1.422
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.387 2009/10/04 09:41:12 tempelho Exp $
+# $Id: londocs.pm,v 1.422 2010/03/18 13:48:45 onken Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -117,17 +117,22 @@ sub authorhosts {
 
 sub dumpbutton {
     my ($home,$other,%outhash)=&authorhosts();
-    my $type = &Apache::loncommon::course_type();
+    my $crstype = &Apache::loncommon::course_type();
     if ($home+$other==0) { return ''; }
     if ($home) {
-	my $link = "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"dumpcourse\", \"".&mt('Dump '.$type.' DOCS to Construction Space')."\")'>".&mt('Dump '.$type.' DOCS to Construction Space')."</a>";
-	return $link.' '.
-	    &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').'<br />';
-    } else {
-	return '<div>'.
-     &mt('Dump '.$type.
-	 ' DOCS to Construction Space: available on other servers').
-	 '</div>';
+        my $link =
+            "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"dumpcourse\", \""
+           .&mt('Dump '.$crstype.' Documents to Construction Space')
+           ."\")'>"
+           .&mt('Dump '.$crstype.' Documents to Construction Space')
+           .'</a>';
+        return
+            $link.' '
+           .&Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs')
+           .'<br />';
+    } else {
+        return
+            &mt('Dump '.$crstype.' Documents to Construction Space: available on other servers');
     }
 }
 
@@ -141,10 +146,10 @@ sub clean {
 
 sub dumpcourse {
     my ($r) = @_;
-    my $type = &Apache::loncommon::course_type();
-    $r->print(&Apache::loncommon::start_page('Dump '.$type.' DOCS to Construction Space').
+    my $crstype = &Apache::loncommon::course_type();
+    $r->print(&Apache::loncommon::start_page('Dump '.$crstype.' Documents to Construction Space').
 	      '<form name="dumpdoc" action="" method="post">');
-    $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$type.' DOCS to Construction Space'));
+    $r->print(&Apache::lonhtmlcommon::breadcrumbs('Dump '.$crstype.' Documents to Construction Space'));
     my ($home,$other,%outhash)=&authorhosts();
     unless ($home) { return ''; }
     my $origcrsid=$env{'request.course.id'};
@@ -255,14 +260,14 @@ sub dumpcourse {
 	$r->print(&Apache::loncommon::end_data_table());
 	&untiehash();
 	$r->print(
-  '<p><input type="submit" name="dumpcourse" value="'.&mt("Dump $type DOCS").'" /></p></form>');
+  '<p><input type="submit" name="dumpcourse" value="'.&mt("Dump $crstype Documents").'" /></p></form>');
     }
 }
 
 
 
 sub exportbutton {
-    my $type = &Apache::loncommon::course_type();
+    my $crstype = &Apache::loncommon::course_type();
     return "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"exportcourse\", \"".&mt('IMS Export')."\")'>".&mt('IMS Export')."</a>".
     &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'<br />';
 }
@@ -271,18 +276,28 @@ sub exportbutton {
 
 sub exportcourse {
     my $r=shift;
-    my $type = &Apache::loncommon::course_type();
+    my $crstype = &Apache::loncommon::course_type();
     my %discussiontime = &Apache::lonnet::dump('discussiontimes',
                                                $env{'course.'.$env{'request.course.id'}.'.domain'}, $env{'course.'.$env{'request.course.id'}.'.num'});
     my $numdisc = keys(%discussiontime);
     my $navmap = Apache::lonnavmaps::navmap->new();
     if (!defined($navmap)) {
-        $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package').
+        $r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package').
                   '<h2>'.&mt('IMS Export Failed').'</h2>'.
-                  '<div class="LC_error">'.
-                  &mt('Unable to retrieve information about course contents').
-                  '</div><a href="/adm/coursedocs">'.&mt('Return to Course Editor').'</a>');
-        &Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
+                  '<div class="LC_error">');
+        if ($crstype eq 'Community') {
+            $r->print(&mt('Unable to retrieve information about community contents'));
+        } else {
+            $r->print(&mt('Unable to retrieve information about course contents'));
+        }
+        $r->print('</div><a href="/adm/coursedocs">');
+        if ($crstype eq 'Community') {
+            $r->print(&mt('Return to Community Editor'));
+        } else {
+            $r->print(&mt('Return to Course Editor'));
+        }
+        $r->print('</a>');
+        &Apache::lonnet::logthis('IMS export failed - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'});
         return;
     }
     my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef);
@@ -331,20 +346,20 @@ sub exportcourse {
                 open(OUTPUT, "zip -r $imszip *  2> /dev/null |");
                 close(OUTPUT);
                 chdir $cwd;
+                $outcome .= '<p>'
+                           .&mt('[_1]Your IMS package[_2] is ready for download.'
+                               ,'<a href="'.$imszipfile.'">','</a>')
+                           .'</p>';
                 if ($copyresult) {
                     $outcome .= '<p class="LC_error">'
                                .&mt('The following errors occurred during export - [_1]'
                                    ,$copyresult)
                                .'</p>';
                 }
-                $outcome .= '<p>'
-                           .&mt('[_1]Your IMS package[_2] is ready for download.'
-                               ,'<a href="'.$imszipfile.'">','</a>')
-                           .'</p>';
             } else {
                 $outcome = '<p class="LC_error">'
                           .&mt('Unfortunately you will not be able to retrieve'
-                              .' an IMS archive of this posts at this time,'
+                              .' an IMS archive of your course at this time,'
                               .' because there was a problem creating a'
                               .' manifest file.')
                           .'</p>'
@@ -353,29 +368,31 @@ sub exportcourse {
                           .'</a></p>';
             }
         }
-        $r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package'));
+        $r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package'));
 	$r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export'));
         $r->print($outcome);
         $r->print(&Apache::loncommon::end_page());
     } else {
-        my $display;
-        $display = '<form name="exportdoc" action="" method="post">'."\n";
-        $display .= '<p>'
-                   .&mt('Choose which items you wish to export from your '.$type.'.')
-                   .'</p>';
-        $display .= '<div class="LC_columnSection"><fieldset>'.
+        my $display='<form name="exportdoc" action="" method="post">'."\n".
+                    '<p>'.
+                    &mt('Choose which items you wish to export from your '.$crstype.'.').
+                    '</p>'.
+                    '<div class="LC_columnSection"><fieldset>'.
                     '<legend>'.&mt('Content items').'</legend>'.
                     '<input type="button" value="'.&mt('check all').'" '.
                     'onclick="javascript:checkAll(document.exportdoc.archive)" />'.
                     '&nbsp;&nbsp;<input type="button" value="'.&mt('uncheck all').'"'.
-                    ' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>'.
-                    '<fieldset>'.
-                    '<legend>'.&mt('Discussion posts').'</legend>'.
-                    '<input type="button" value="'.&mt('check all').'"'.
-                    ' onclick="javascript:checkAll(document.exportdoc.discussion)" />'.
-                    '&nbsp;&nbsp;<input type="button" value="'.&mt('uncheck all').'"'.
-                    ' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'.
-                    '</fieldset></div>';
+                    ' onclick="javascript:uncheckAll(document.exportdoc.archive)" /></fieldset>';
+        if ($numdisc > 0) {
+            $display .= '<fieldset>'.
+                        '<legend>'.&mt('Discussion posts').'</legend>'.
+                        '<input type="button" value="'.&mt('check all').'"'.
+                        ' onclick="javascript:checkAll(document.exportdoc.discussion)" />'.
+                        '&nbsp;&nbsp;<input type="button" value="'.&mt('uncheck all').'"'.
+                        ' onclick="javascript:uncheckAll(document.exportdoc.discussion)" />'.
+                        '</fieldset>';
+        }
+        $display .= '</div>';
         my $curRes;
         my $depth = 0;
         my $count = 0;
@@ -386,15 +403,11 @@ sub exportcourse {
         my $lastcontainer = $startcount;
         $display .= &Apache::loncommon::start_data_table()
                    .&Apache::loncommon::start_data_table_header_row()
-                   .'<th>'.&mt('Export content item?').'</th>'
-                   .'<th>';
+                   .'<th>'.&mt('Export content item?').'</th>';
         if ($numdisc > 0) {
-            $display .= &mt('Export discussion posts?');
-        } else {
-             $display .= '&nbsp;';
+            $display .= '<th>'.&mt('Export discussion posts?').'</th>';
         }
-        $display .= '</th>'
-                   .&Apache::loncommon::end_data_table_header_row();
+        $display .= &Apache::loncommon::end_data_table_header_row();
         while ($curRes = $it->next()) {
             if (ref($curRes)) {
                 $count ++;
@@ -415,37 +428,33 @@ sub exportcourse {
                         $ressymb = 'bulletin___'.$3.'___adm/wrapper/adm/'.$1.'/'.$2.'/'.$3.'/bulletinboard';
                     }
                 }
+                my $currelem = $count+$boards+$startcount;
                 $display .= &Apache::loncommon::start_data_table_row()
                            .'<td>'."\n"
                            .'<input type="checkbox" name="archive" value="'.$count.'" ';
                 if (($curRes->is_sequence()) || ($curRes->is_page())) {
-                    my $checkitem = $count + $boards + $startcount;
-                    $display .= 'onclick="javascript:propagateCheck('."'$checkitem'".')"';
+                    $lastcontainer = $currelem;
+                    $display .= 'onclick="javascript:propagateCheck('."'$currelem'".')"';
                 }
                 $display .= ' />'."\n";
                 for (my $i=0; $i<$depth; $i++) {
-                    $display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />'
-                               .'<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />'."\n";
+                    $display .= ('<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" alt="" />' x2)."\n";
                 }
                 if ($curRes->is_sequence()) {
                     $display .= '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" />&nbsp;'."\n";
-                    $lastcontainer = $count + $startcount + $boards;
                 } elsif ($curRes->is_page()) {
                     $display .= '<img src="/adm/lonIcons/navmap.page.open.gif" alt="" />&nbsp;'."\n";
-                    $lastcontainer = $count + $startcount + $boards;
                 }
-                my $currelem = $count+$boards+$startcount;
                 $children{$parent{$depth}} .= $currelem.':';
                 $display .= '&nbsp;'.$curRes->title().'</td>'."\n";
 
                 # Existing discussion posts?
                 if ($discussiontime{$ressymb} > 0) {
                     $boards ++;
-                    $currelem = $count+$boards+$startcount;
                     $display .= '<td align="right">'
                                .'<input type="checkbox" name="discussion" value="'.$count.'" />'
                                .'</td>'."\n";
-                } else {
+                } elsif ($numdisc > 0) {
                     $display .= '<td>&nbsp;</td>'."\n";
                 }
                 $display .= &Apache::loncommon::end_data_table_row();
@@ -507,7 +516,7 @@ function containerCheck(item) {
 // ]]>
 </script>
         |;
-	$r->print(&Apache::loncommon::start_page('Export '.$type.' to IMS Package',
+	$r->print(&Apache::loncommon::start_page('Export '.$crstype.' to IMS Package',
 						 $scripttag));
 	$r->print(&Apache::lonhtmlcommon::breadcrumbs('IMS Export'));
 	$r->print($display.
@@ -998,7 +1007,7 @@ sub group_import {
 }
 
 sub breadcrumbs {
-    my ($where,$allowed,$type)=@_;
+    my ($allowed,$crstype)=@_;
     &Apache::lonhtmlcommon::clear_breadcrumbs();
     my (@folders);
     if ($env{'form.pagepath'}) {
@@ -1013,6 +1022,15 @@ sub breadcrumbs {
     my $isencrypted=0;
     my $ishidden=0;
     my $is_random_order=0;
+    if (!$allowed) {
+        my $description = $env{'course.'.$env{'request.course.id'}.'.description'};
+        &Apache::lonhtmlcommon::add_breadcrumb(
+                                               {'href' => '/adm/menu',
+                                                'title'=> 'Go to main menu',
+                                                'text' => $description,
+                                               });
+        $plain .= $description.' &gt;';
+    }
     while (@folders) {
 	my $folder=shift(@folders);
     	my $foldername=shift(@folders);
@@ -1032,11 +1050,7 @@ sub breadcrumbs {
             if ($3) { $isencrypted=1; }
 	    if ($4 ne '') { $is_random_order = 1; }
             if ($folder eq 'supplemental') {
-                if ($allowed) {
-                    $name = &mt('Supplemental '.$type.' Documents');
-                } else {
-                    $name = &mt($type.' Documents');
-                }
+                $name = &mt('Supplemental '.$crstype.' Documents');
             }
 	    &Apache::lonhtmlcommon::add_breadcrumb(
 		      {'href'=>$url.$cpinfo,
@@ -1492,8 +1506,7 @@ sub handle_edit_cmd {
 }
 
 sub editor {
-    my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$type)=@_;
-
+    my ($r,$coursenum,$coursedom,$folder,$allowed,$upload_output,$crstype)=@_;
     my $container= ($env{'form.pagepath'}) ? 'page'
 		                           : 'sequence';
 
@@ -1508,9 +1521,14 @@ sub editor {
         $LONCAPA::map::resources[$idx]='';
     }
 
-    my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order)=
-	&breadcrumbs($folder,$allowed,$type);
-    $r->print($breadcrumbtrail);
+    my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order);
+    if ($allowed) {
+        ($breadcrumbtrail,$randompick,$ishidden,$isencrypted,$plain,$is_random_order) =
+	    &breadcrumbs($allowed,$crstype);
+        $r->print($breadcrumbtrail);
+    } else {
+        $randompick = -1;
+    }
 
 # ------------------------------------------------------------ Process commands
 
@@ -1627,23 +1645,26 @@ sub editor {
         unless ($name) {  $name=(split(/\//,$url))[-1]; }
         unless ($name) { $idx++; next; }
         $output .= &entryline($idx,$name,$url,$folder,$allowed,$res,
-                              $coursenum);
+                              $coursenum,$crstype);
         $idx++;
         $shown++;
     }
     if ($shown) {
-    $r->print(&Apache::loncommon::start_data_table()
-             .&Apache::loncommon::start_data_table_header_row()
-             .'<th colspan="2">'.&mt('Move').'</th>'
-             .'<th>'.&mt('Actions').'</th>'
-             .'<th colspan="2">'.&mt('Document').'</th>'
-             .'<th colspan="4">'.&mt('Settings').'</th>'
-             .&Apache::loncommon::end_data_table_header_row()
-             .$output
-             .&Apache::loncommon::end_data_table()
-    )
-    } 
-    unless($shown) {
+        $r->print(&Apache::loncommon::start_data_table());
+        if ($allowed) {
+            $r->print(&Apache::loncommon::start_data_table_header_row()
+                     .'<th colspan="2">'.&mt('Move').'</th>'
+                     .'<th>'.&mt('Actions').'</th>'
+                     .'<th colspan="2">'.&mt('Document').'</th>');
+            if ($folder !~ /^supplemental/) {
+                $->print('<th colspan="4">'.&mt('Settings').'</th>');
+            }
+            $r->print(&Apache::loncommon::end_data_table_header_row());
+        }
+        $r->print($output
+                 .&Apache::loncommon::end_data_table()
+        );
+    } else {
         $r->print('<p class="LC_info">'
                  .&mt('Currently no documents.')
                  .'</p>'
@@ -1780,6 +1801,7 @@ sub parse_supplemental_title {
 	$foldertitle=&Apache::lontexconvert::msgtexconverted($4);
 	my $name =  &Apache::loncommon::plainname($uname,$udom);
 	$name = &HTML::Entities::encode($name,'"<>&\'');
+        $renametitle = &HTML::Entities::encode($renametitle,'"<>&\'');
 	$title='<i>'.&Apache::lonlocal::locallocaltime($time).'</i> '.
 	    $name.': <br />'.$foldertitle;
     }
@@ -1792,8 +1814,7 @@ sub parse_supplemental_title {
 # --------------------------------------------------------------- An entry line
 
 sub entryline {
-    my ($index,$title,$url,$folder,$allowed,$residx,$coursenum)=@_;
-
+    my ($index,$title,$url,$folder,$allowed,$residx,$coursenum,$crstype)=@_;
     my ($foldertitle,$pagetitle,$renametitle);
     if (&is_supplemental_title($title)) {
 	($title,$foldertitle,$renametitle) = &parse_supplemental_title($title);
@@ -2050,18 +2071,24 @@ END
 	$url.='pagepath='.&escape($pagepath).
 	    '&amp;pagesymb='.&escape($symb).$cpinfo;
     }
-    if ($external) {
+    if (($external) && ($allowed)) {
 	my $form = ($folder =~ /^default/)? 'newext' : 'supnewext';
 	$external = '&nbsp;<a class="LC_docs_ext_edit" href="javascript:edittext(\''.$form.'\',\''.$residx.'\',\''.&escape($title).'\',\''.&escape($orig_url).'\');" >'.&mt('Edit').'</a>';
     } else {
 	undef($external);
     }
+    my $reinit;
+    if ($crstype eq 'Community') {
+        $reinit = &mt('(re-initialize community to access)');
+    } else {
+        $reinit = &mt('(re-initialize course to access)');
+    }  
     $line.='
   <td>
     '.($url?'<a href="'.$url.'">':'').'<img src="'.$icon.'" alt="" class="LC_icon" />'.($url?'</a>':'').'
   </td>
   <td>
-    '.($url?"<a href=\"$url\">":'').$title.($url?'</a>':' <span class="LC_docs_reinit_warn">'.&mt('(re-initialize course to access)').'</span>').$external."
+    '.($url?"<a href=\"$url\">":'').$title.($url?'</a>':' <span class="LC_docs_reinit_warn">'.$reinit.'</span>').$external."
   </td>";
     if (($allowed) && ($folder!~/^supplemental/)) {
  	my %lt=&Apache::lonlocal::texthash(
@@ -2209,7 +2236,7 @@ List Symbs
 sub list_symbs {
     my ($r) = @_;
 
-    my $type = &Apache::loncommon::course_type();
+    my $crstype = &Apache::loncommon::course_type();
     $r->print(&Apache::loncommon::start_page('Symb List'));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List'));
     my $navmap = Apache::lonnavmaps::navmap->new();
@@ -2218,25 +2245,25 @@ sub list_symbs {
                   '<div class="LC_error">'.
                   &mt('Unable to retrieve information about course contents').
                   '</div>');
-        &Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($type).':'.$env{'request.course.id'});
+        &Apache::lonnet::logthis('Symb list failed - could not create navmap object in '.lc($crstype).':'.$env{'request.course.id'});
     } else {
         $r->print("<pre>\n");
         foreach my $res ($navmap->retrieveResources()) {
-	    $r->print($res->compTitle()."\t".$res->symb()."\n");
+            $r->print($res->compTitle()."\t".$res->symb()."\n");
         }
         $r->print("\n</pre>\n");
     }
-    $r->print('<a href="/adm/coursedocs">'.&mt('Return to DOCS').'</a>');
+    $r->print('<hr /><a href="/adm/coursedocs">'.&mt('Back to Course Editor').'</a>');
 }
 
 
 sub verifycontent {
     my ($r) = @_;
-    my $type = &Apache::loncommon::course_type();
+    my $crstype = &Apache::loncommon::course_type();
    my $loaderror=&Apache::lonnet::overloaderror($r);
    if ($loaderror) { return $loaderror; }
-   $r->print(&Apache::loncommon::start_page('Verify '.$type.' Documents'));
-   $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$type.' Documents'));
+   $r->print(&Apache::loncommon::start_page('Verify '.$crstype.' Documents'));
+   $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$crstype.' Documents'));
    $hashtied=0;
    undef %alreadyseen;
    %alreadyseen=();
@@ -2245,9 +2272,9 @@ sub verifycontent {
        if ($hash{$key}=~/\.(page|sequence)$/) {
 	   if (($key=~/^src_/) && ($alreadyseen{&unescape($hash{$key})})) {
 	       $r->print('<hr /><span class="LC_error">'.
-			 &mt('The following sequence or page is included more than once in your '.$type.': ').
+			 &mt('The following sequence or page is included more than once in your '.$crstype.':').' '.
 			 &unescape($hash{$key}).'</span><br />'.
-			 &mt('Note that grading records for problems included in this sequence or folder will overlap.<hr />'));
+			 &mt('Note that grading records for problems included in this sequence or folder will overlap.').'<hr />');
 	   }
        }
        if (($key=~/^src\_(.+)$/) && (!$alreadyseen{&unescape($hash{$key})})) {
@@ -2255,8 +2282,13 @@ sub verifycontent {
        }
    }
    &untiehash();
-   $r->print('<h1>'.&mt('Done').'.</h1>'.'<a href="/adm/coursedocs">'.
-	     &mt('Return to DOCS').'</a>');
+   $r->print(
+       '<p class="LC_success">'.&mt('Done').'</p>'
+      .'<hr />'
+      .'<p><a href="/adm/coursedocs">'
+	  .&mt('Back to Course Editor')
+      .'</a></p>'
+   );
 }
 
 
@@ -2268,9 +2300,9 @@ sub devalidateversioncache {
 
 sub checkversions {
     my ($r) = @_;
-    my $type = &Apache::loncommon::course_type();
-    $r->print(&Apache::loncommon::start_page("Check $type Document Versions"));
-    $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $type Document Versions"));
+    my $crstype = &Apache::loncommon::course_type();
+    $r->print(&Apache::loncommon::start_page("Check $crstype Document Versions"));
+    $r->print(&Apache::lonhtmlcommon::breadcrumbs("Check $crstype Document Versions"));
     my $header='';
     my $startsel='';
     my $monthsel='';
@@ -2331,7 +2363,7 @@ sub checkversions {
     &changewarning($r,'');
     if ($env{'form.timerange'} eq 'all') {
 # show all documents
-	$header=&mt('All Documents in '.$type);
+	$header=&mt('All Documents in '.$crstype);
 	$allsel=1;
 	foreach my $key (keys(%hash)) {
 	    if ($key=~/^ids\_(\/res\/.+)$/) {
@@ -2376,7 +2408,7 @@ sub checkversions {
 			  $env{'course.'.$env{'request.course.id'}.'.domain'},
 			  $env{'course.'.$env{'request.course.id'}.'.num'});
     my %lt=&Apache::lonlocal::texthash
-	      ('st' => 'Version changes since start of '.$type,
+	      ('st' => 'Version changes since start of '.$crstype,
 	       'lm' => 'Version changes since last Month',
 	       'lw' => 'Version changes since last Week',
 	       'sy' => 'Version changes since Yesterday',
@@ -2385,9 +2417,9 @@ sub checkversions {
 	       'fi' => 'File',
 	       'md' => 'Modification Date',
                'mr' => 'Most recently published Version',
-	       've' => 'Version used in '.$type,
-               'vu' => 'Set Version to be used in '.$type,
-'sv' => 'Set Versions to be used in '.$type.' according to Selections below',
+	       've' => 'Version used in '.$crstype,
+               'vu' => 'Set Version to be used in '.$crstype,
+'sv' => 'Set Versions to be used in '.$crstype.' according to Selections below',
 'sm' => 'Keep all Resources up-to-date with most recent Versions (default)',
 'sc' => 'Set all Resource Versions to current Version (Fix Versions)',
 	       'di' => 'Differences');
@@ -2434,7 +2466,7 @@ ENDHEADERS
                       '<td title="'.$lt{'mr'}.'"><span class="LC_nobreak">Most Recent: '.
                       '<font size="+1">'.$currentversion.'</font>'.
                       '</span></td>'.
-                      '<td title="'.$lt{'ve'}.'"><span class="LC_nobreak">In '.$type.': '.
+                      '<td title="'.$lt{'ve'}.'"><span class="LC_nobreak">In '.$crstype.': '.
                       '<font size="+1">');
 # Used in course
 	    my $usedversion=$hash{'version_'.$linkurl};
@@ -2451,7 +2483,7 @@ ENDHEADERS
 						      ('select_form_order' =>
 						       ['',1..$currentversion,'mostrecent'],
 						       '' => '',
-						       'mostrecent' => 'most recent',
+						       'mostrecent' => &mt('most recent'),
 						       map {$_,$_} (1..$currentversion))));
 	    $r->print('</span></td></tr><tr><td></td>');
 	    my $lastold=1;
@@ -2506,7 +2538,7 @@ ENDHEADERS
 	}
     }
     $r->print('</table></form>');
-    $r->print('<h1>'.&mt('Done').'.</h1>');
+    $r->print('<p class="LC_success">'.&mt('Done').'</p>');
 
     &untiehash();
 }
@@ -2571,7 +2603,7 @@ sub init_breadcrumbs {
     my ($form,$text)=@_;
     &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb({href=>"/adm/coursedocs",
-					    text=>"Edit ".&Apache::loncommon::course_type(),
+					    text=>&Apache::loncommon::course_type().' Editor',
 					    faq=>273,
 					    bug=>'Instructor Interface',
                                             help => 'Docs_Adding_Course_Doc'});
@@ -2589,7 +2621,7 @@ sub handler {
     &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;
     return OK if $r->header_only;
-    my $type = &Apache::loncommon::course_type();
+    my $crstype = &Apache::loncommon::course_type();
 
 
 # --------------------------------------------- Initialize help topics for this
@@ -2630,7 +2662,7 @@ sub handler {
       &init_breadcrumbs('versions','Check/Set Resource Versions');
       &checkversions($r);
   } elsif ($allowed && $env{'form.dumpcourse'}) {
-      &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' DOCS to Construction Space');
+      &init_breadcrumbs('dumpcourse','Dump '.&Apache::loncommon::course_type().' Documents to Construction Space');
       &dumpcourse($r);
   } elsif ($allowed && $env{'form.exportcourse'}) {
       &init_breadcrumbs('exportcourse','IMS Export');
@@ -2655,7 +2687,12 @@ sub handler {
         &Apache::loncommon::restore_course_settings('docs_folderpath',
                                               {'folderpath' => 'scalar'});
     }
-    if (!$env{'form.folderpath'}) {
+    if (!$allowed) {
+        unless($env{'form.folderpath'} =~ /^supplemental/) {
+            $env{'form.folderpath'} = '';
+        }
+    }
+    if (!$env{'form.folderpath'} && $allowed) {
         &Apache::loncommon::restore_course_settings('docs_folderpath',
                                               {'pagepath' => 'scalar'});
     }
@@ -2664,7 +2701,7 @@ sub handler {
     }
     if ($env{'form.folderpath'} =~ /^supplemental_\d+/) {
         $env{'form.folderpath'} = 'supplemental&'.
-                                  &escape(&mt('Supplemental '.$type.' Documents')).'&'.
+                                  &escape(&mt('Supplemental '.$crstype.' Documents')).'&'.
                                   $env{'form.folderpath'};
     }
     &Apache::loncommon::store_course_settings('docs_folderpath',
@@ -2687,7 +2724,9 @@ sub handler {
     if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) {
        $showdoc='/'.$1;
     }
-    unless ($showdoc) { # got called from remote
+    if ($showdoc) { # got called in sequence from course
+	$allowed=0; 
+    } else {
        if (($env{'form.folder'}=~/^(?:group|default)_/) ||
           ($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) {
            $forcestandard = 1;
@@ -2698,8 +2737,6 @@ sub handler {
          &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']);
          $script=&Apache::lonratedt::editscript('simple');
        }
-    } else { # got called in sequence from course
-       $allowed=0;
     }
 
 # subroutine to list form elements
@@ -2747,16 +2784,30 @@ sub create_form_ul {
 
     # Breadcrumbs
     &Apache::lonhtmlcommon::clear_breadcrumbs();
-    &Apache::lonhtmlcommon::add_breadcrumb({
-        href=>"/adm/createuser",text=>"$type Documents"});
+    if ($allowed) {
+        &Apache::lonhtmlcommon::add_breadcrumb({
+            href=>"/adm/coursedocs",text=>"$crstype Editor"});
 
-    $r->print(&Apache::loncommon::start_page("$type Documents", $script,
-				    {'force_register' => $showdoc,})
-             .&Apache::loncommon::help_open_menu('','',273,'RAT')
-             .&Apache::lonhtmlcommon::breadcrumbs(
-                  'Editing the Table of Contents for your '.$type,
-                  'Docs_Adding_Course_Doc')
-    );
+        $r->print(&Apache::loncommon::start_page("$crstype Editor", $script,
+                                                 {'force_register' => $showdoc,})
+                 .&Apache::loncommon::help_open_menu('','',273,'RAT')
+                 .&Apache::lonhtmlcommon::breadcrumbs(
+                     'Editing the Table of Contents for your '.$crstype,
+                     'Docs_Adding_Course_Doc')
+        );
+    } elsif ($showdoc) {
+        $r->print(&Apache::loncommon::start_page("$crstype documents",undef,
+                                                {'force_register' => $showdoc,}));
+    } else {
+        my $folder=$env{'form.folder'};
+        if ($folder eq '' || $folder eq 'supplemental') {
+            $env{'form.folderpath'} = 'supplemental&'.
+                                      &escape(&mt('Supplemental '.$crstype.' Documents'));
+        }
+        my ($breadcrumbtrail) = &breadcrumbs($allowed,$crstype);
+        $r->print(&Apache::loncommon::start_page("Supplemental documents").
+                  $breadcrumbtrail);
+    }
 
   my %allfiles = ();
   my %codebase = ();
@@ -2848,17 +2899,17 @@ sub create_form_ul {
   unless ($showdoc ||  $upload_result eq 'phasetwo') {
 # -----------------------------------------------------------------------------
        my %lt=&Apache::lonlocal::texthash(
-                'uplm' => 'Upload a new main '.lc($type).' document',
-                'upls' => 'Upload a new supplemental '.lc($type).' document',
+                'uplm' => 'Upload a new main '.lc($crstype).' document',
+                'upls' => 'Upload a new supplemental '.lc($crstype).' document',
                 'impp' => 'Import a document',
 		'copm' => 'All documents out of a published map into this folder',
-                'upld' => 'Upload Document',
+                'upld' => 'Import Document',
                 'srch' => 'Search',
                 'impo' => 'Import',
 		'book' => 'Import Bookmarks',
                 'selm' => 'Select Map',
                 'load' => 'Load Map',
-                'reco' => 'Recover Deleted Resources',
+                'reco' => 'Recover Deleted Documents',
                 'newf' => 'New Folder',
                 'newp' => 'New Composite Page',
                 'extr' => 'External Resource',
@@ -2878,7 +2929,7 @@ sub create_form_ul {
                 'file' =>  'File',
                 'title' => 'Title',
                 'comment' => 'Comment',
-                'parse' => 'Upload embedded images/multimedia files if HTML file!',
+                'parse' => 'Upload embedded images/multimedia files if HTML file',
 		'nd' => 'Upload Document',
 		'pm' => 'Published Map',
 		'sd' => 'Special Document',
@@ -2899,9 +2950,7 @@ FIUP
 	</label>
 CHBO
 
-        my @fileuploada = (
-        { '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic01" />' => "<input type='submit' value='".$lt{'upld'}."' /> $help{'Uploading_From_Harddrive'}" },
-        );
+    my $fileuploada = "<input type='submit' value='".$lt{'upld'}."' /> $help{'Uploading_From_Harddrive'}";
 	my $fileuploadform=(<<FUFORM);
 	<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data">
 	<input type="hidden" name="active" value="aa" />
@@ -2916,7 +2965,9 @@ CHBO
 	$checkbox
 	</span>
 FUFORM
-	$fileuploadform .= create_form_ul(create_list_elements(@fileuploada));
+    #$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'});	
+    #$fileuploadform .= create_form_ul(create_list_elements(@fileuploada));
+    $fileuploadform .= create_form_ul(Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'}));
 	$fileuploadform .= (<<FUFORM);
 	</form>
 FUFORM
@@ -2926,9 +2977,9 @@ FUFORM
 	<input type="hidden" name="active" value="bb" />
 SEDFFORM
 	my @simpleeditdefaultforma = ( 
-	{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic03" />' => "$uploadtag<a onclick='javascript:groupsearch()'>$lt{'srch'}</a>" },
-	{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic04" />' => "<a onclick='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" },
-	{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic05" />' => "<a onclick='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" },
+	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/src.png" alt="'.$lt{srch}.'"  onclick="javascript:groupsearch()" />' => "$uploadtag<a onclick='javascript:groupsearch()'>$lt{'srch'}</a>" },
+	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{impo}.'"  onclick="javascript:groupimport();"/>' => "<a onclick='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" },
+	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/vbkm.png" alt="'.$lt{book}.'" onclick="javascript:groupopen(0,1,1);" />' => "<a onclick='javascript:groupopen(0,1,1);'>$lt{'book'}</a>" },
 	);
 	$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma));
 	$simpleeditdefaultform .=(<<SEDFFORM);
@@ -2966,7 +3017,7 @@ ERFORM
 	   if ($env{'form.folder'} eq '' ||
 	       $env{'form.folder'} eq 'supplemental') {
 	       $folderpath='default&'.
-		   &escape(&mt('Main '.$type.' Documents'));
+		   &escape(&mt('Main '.$crstype.' Documents'));
 	   }
        }
        unless ($env{'form.pagepath'}) {
@@ -2988,43 +3039,54 @@ ERFORM
 HIDDENFORM
     }
 # --------------------------------------------------------- Main tab structure
-    
+ 
     my $activeClass = 1;
     my $active = '';
-
-    $r->print('<ul class="LC_TabContentBigger" id="mainnav">');
-    if (($standard) && ($allowed) && (!$forcesupplement) && (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'}eq"" || ($env{'form.pagepath'}))) {
-        if($activeClass == 1){
-           $active = 'class="active"';
-	   $activeClass = 0;
-	}
-    }
-    if($env{'request.role'}=~/^cc/){
-    $r->print('<li '.$active.' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.&mt('Main Course Documents').'</b></a></li>');
-    }
-    $active = '';
-    if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) {
-        if($activeClass == 1){
-           $active = 'class="active"';
+    my %tabtitles = (
+                       main => {
+                                 Course => &mt('Main Course Documents'),
+                                 Community => &mt('Main Community Documents'),
+                               },
+                       supplemental => {
+                                 Course => &mt('Supplemental Course Documents'),        
+                                 Community => &mt('Supplemental Community Documents'),
+                               },
+                    );
+    if ($allowed) {
+        $r->print('<ul class="LC_TabContentBigger" id="mainnav">');
+        if (($standard) && ($allowed) && (!$forcesupplement) && (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'}eq"" || ($env{'form.pagepath'}))) {
+            if($activeClass == 1){
+                $active = 'class="active"';
+	        $activeClass = 0;
+	    }
+        }
+        $r->print('<li '.$active.' onclick="javascript:showPage(this,\'mainCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'main'}{$crstype}.'</b></a></li>');
+        $active = '';
+        if (!$forcestandard || ($env{'form.folderpath'}=~/^supplemental/)) {
+            if($activeClass == 1){
+                $active = 'class="active"';
+            }
         }
+        $r->print('<li '.$active.' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.$tabtitles{'supplemental'}{$crstype}.'</b></a></li>');
+        $r->print('</ul>');
+    } else {
+        $r->print('<br />');
     }
-    $r->print('<li '.$active.' onclick="javascript:showPage(this,\'supplCourseDocuments\',\'mainnav\',\'maincoursedoc\');"><a href="#"><b>'.&mt('Supplemental Course Documents').'</b></a></li>');
-    $r->print('</ul>'
-             .'<div class="LC_Box" style="clear:both;margin:0;">'
+    $r->print('<div class="LC_Box" style="clear:both;margin:0;">'
              .'<div id="maincoursedoc" style="margin:0 0;padding:0 0;">');
 # --------------------------------------------------------- Standard documents
        my $savefolderpath;
-       my $active = 'style="display: none;"';
+       $active = 'style="display: none;"';
        if($activeClass == 0){
           $active = 'style="display: block;"';
        }
-       if($env{'request.role'}=~/^cc/){
+       if ($allowed) {
        $r->print('<div class="LC_ContentBox" id="mainCourseDocuments" '.$active.'>');
        my $folder=$env{'form.folder'};
        if ($folder eq '' || $folder=~/^supplemental/) {
            $folder='default';
 	   $savefolderpath = $env{'form.folderpath'};
-	   $env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents'));
+	   $env{'form.folderpath'}='default&'.&escape($tabtitles{'main'}{$crstype});
            $uploadtag = '<input type="hidden" name="folderpath" value="'.
 	       &HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />';
        }
@@ -3159,6 +3221,7 @@ NROSTFORM
 my $specialdocumentsform;
 my @specialdocumentsforma;
 my $newfolderform;
+my $newfolderb;
 
        unless ($env{'form.pagepath'}) {
 	   my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
@@ -3172,21 +3235,16 @@ my $newfolderform;
 	$help{'Adding_Pages'}
 	</form>
 NPFORM
-	
+
+
 	$newfolderform=(<<NFFORM);
 	<form action="/adm/coursedocs" method="post" name="newfolder">
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="importdetail" value="" />
 	<input type="hidden" name="active" value="aa" />
-	<a onclick="javascript:makenewfolder(document.newfolder,'$folderseq');">$lt{'newf'}</a>$help{'Adding_Folders'}
+	<a href="javascript:makenewfolder(document.newfolder,'$folderseq');">$lt{'newf'}</a>$help{'Adding_Folders'}
 	</form>
 NFFORM
-	my @newfolderforma= (
-	{ '<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic02" />' => "$newfolderform" }
-        );
-
-
-	$newfolderform = create_form_ul(create_list_elements(@newfolderforma));
 
 	my $newsylform=(<<NSYLFORM);
 	<form action="/adm/coursedocs" method="post" name="newsyl">
@@ -3211,51 +3269,54 @@ NSYLFORM
 	</form>
 NGFFORM
 	@specialdocumentsforma=(
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic06" />'=>$newpageform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic07" />'=>$newsylform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic08" />'=>$newgroupfileform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/page.png" alt="'.$lt{newp}.'"  onclick="javascript:makenewpage(document.newpage,\''.$pageseq.'\');" />'=>$newpageform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.newsyl.submit()" />'=>$newsylform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/groupportfolio.png" alt="'.$lt{grpo}.'" onclick="document.newgroupfiles.submit()" />'=>$newgroupfileform},
 	); 
 	
       }
-	push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic09" />'=>$newnavform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic10" />'=>$newsmppageform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic11" />'=>$newsmpproblemform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic12" />'=>$newdropboxform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic13" />'=>$newexuploadform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic14" />'=>$newbulform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic15" />'=>$newaboutmeform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic16" />'=>$newaboutsomeoneform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic17" />'=>$newrosterform},);
+	push @specialdocumentsforma, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/navigation.png" alt="'.$lt{navc}.'" onclick="document.newnav.submit()" />'=>$newnavform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simple.png" alt="'.$lt{sipa}.'" onclick="javascript:makesmppage();" />'=>$newsmppageform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.$lt{sipr}.'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dropbox.png" alt="'.$lt{drbx}.'" onclick="javascript:makedropbox();" />'=>$newdropboxform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/scoreupfrm.png" alt="'.$lt{scuf}.'" onclick="javascript:makeexamupload();" />'=>$newexuploadform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/bchat.png" alt="'.$lt{bull}.'" onclick="javascript:makebulboard();" />'=>$newbulform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/myaboutme.png" alt="'.$lt{mypi}.'" onclick="javascript:makebulboard();" />'=>$newaboutmeform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/aboutme.png" alt="'.$lt{abou}.'" onclick="javascript:makeabout();" />'=>$newaboutsomeoneform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/chrt.png" alt="'.$lt{rost}.'" onclick="document.newroster.submit()" />'=>$newrosterform},);
 
 	$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma));
 
 if($env{'form.pagepath'}) {
 	
 	@specialdocumentsforma=(
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic32" />'=>$newsmpproblemform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic33" />'=>$newexuploadform}
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/simpprob.png" alt="'.&mt('Simple Problem').'" onclick="javascript:makesmpproblem();" />'=>$newsmpproblemform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/scoreupfrm.png" alt="'.&mt('Score Upload Form').'" onclick="javascript:makeexamupload();" />'=>$newexuploadform}
 	);
 	$specialdocumentsform= create_form_ul(create_list_elements(@specialdocumentsforma));
 }
 
 my @tools = (
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic18" />'=>$extresourcesform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic19" />'=>$imspform},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic20" />'=>$recoverform},
+#	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" />'=>$extresourcesform},
+#	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" />'=>$imspform},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/recover.png" alt="'.$lt{reco}.'" onclick="javascript:groupopen(\''.$readfile.'\',1,0)" />'=>$recoverform},
 	);
 
+my @importdoc = (
+    {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'newext\');" />'=>$extresourcesform},
+    {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/ims.png" alt="'.$lt{imsf}.'" onclick="javascript:makeims();" />'=>$imspform}, 
+);
+$fileuploadform =  create_form_ul(create_list_elements(@importdoc)) . '<hr/>' . $fileuploadform;
 my %orderhash = (
-                'aa' => ['Upload Document',$fileuploadform.''.$newfolderform],
+		'00' => ['Newfolder',$newfolderform],
+                'aa' => ['Import Documents',$fileuploadform],
                 'bb' => ['Published Resources',$simpleeditdefaultform],
                 'cc' => ['Special Documents',$specialdocumentsform],
 		'dd' => ['Tools', create_form_ul(create_list_elements(@tools)).&generate_admin_options($containertag,$uploadtag,\%help,\%env)],
-                'zz' => ['Hide'],
                 );
 my $tid='1';
-my $varcd = 'Main Course Documents';
-$r->print(&generate_edit_table($tid,$varcd,\%orderhash));
  $hadchanges=0;
-        my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
+        my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
        if ($error) {
            $r->print('<p><span class="LC_error">'.$error.'</span></p>');
        }
@@ -3264,12 +3325,14 @@ $r->print(&generate_edit_table($tid,$var
        }
 
        &changewarning($r,'');
+$r->print(&generate_edit_table($tid,\%orderhash));
+
 $r->print('</div>');
 	}
        if ($env{'form.pagepath'}) {
        }
 # ----------------------------------------------------- Supplemental documents
-       my $active = 'style="display: none;"';
+       $active = 'style="display: none;"';
        if($activeClass == 1){
           $active = 'style="display: block;"';
        }
@@ -3281,8 +3344,8 @@ $r->print('</div>');
        if ($folder =~ /^supplemental$/ &&
 	   (($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) {
           $env{'form.folderpath'} = 'supplemental&'.
-                                    &escape(&mt('Supplemental '.$type.' Documents'));
-       }else{
+                                    &escape(&mt('Supplemental '.$crstype.' Documents'));
+       } elsif ($allowed) {
 	  $env{'form.folderpath'} = $savefolderpath;
        }
        $env{'form.pagepath'} = '';
@@ -3293,9 +3356,7 @@ $r->print('</div>');
 
 	   my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
 
-	my @supupdocform = (
-		{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic27" />'=>"<a onclick='document.supuploaddocument.submit()'>$lt{'upld'}</a>$help{'Uploading_From_Harddrive'}"},
-		);
+	my $supupdocformbtn = "<input type='submit' value='".$lt{'upld'}."' />$help{'Uploading_From_Harddrive'}";
 	my $supupdocform=(<<SUPDOCFORM);
 	<form action="/adm/coursedocs" method="post" name="supuploaddocument" enctype="multipart/form-data">
 	<input type="hidden" name="active" value="ee" />	
@@ -3312,7 +3373,7 @@ $r->print('</div>');
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="cmd" value="upload_supplemental" />
 SUPDOCFORM
-	$supupdocform .=  create_form_ul(create_list_elements(@supupdocform))."</form>";
+	$supupdocform .=  create_form_ul(Apache::lonhtmlcommon::htmltag('li',$supupdocformbtn,{class => 'LC_menubuttons_inline_text'}))."</form>";
 
 	my $supnewfolderform=(<<SNFFORM);
 	<form action="/adm/coursedocs" method="post" name="supnewfolder">
@@ -3324,9 +3385,6 @@ SUPDOCFORM
 	</form>
 SNFFORM
 	
-	my @supnewfolderforma = ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic28" />'=>$supnewfolderform});
-	$supnewfolderform = create_form_ul(create_list_elements(@supnewfolderforma));
-
 
 	my $supnewextform=(<<SNEFORM);
 	<form action="/adm/coursedocs" method="post" name="supnewext">
@@ -3361,26 +3419,36 @@ SNAMFORM
 
 
 my @specialdocs = (
-		{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic29" />'=>$supnewextform},
-		{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic30" />'=>$supnewsylform},
-		{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic31" />'=>$supnewaboutmeform},
+		{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/syllabus.png" alt="'.$lt{syll}.'" onclick="document.supnewsyl.submit()" />'
+            =>$supnewsylform},
+		{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/myaboutme.png" alt="'.$lt{mypi}.'" onclick="document.supnewaboutme.submit()" />'
+            =>$supnewaboutmeform},
 		);
+my @supimportdoc = (
+		{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/extres.png" alt="'.$lt{extr}.'" onclick="javascript:makenewext(\'supnewext\');" />'
+            =>$supnewextform},
+        );
+$supupdocform =  create_form_ul(create_list_elements(@supimportdoc)) . '<hr/>' . $supupdocform;
 my %suporderhash = (
-                'ee' => ['Upload Document',$supupdocform.' '.$supnewfolderform],
-                'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))],
-                'zz' => ['Hide'],
+		'00' => ['Supnewfolder', $supnewfolderform],
+                'ee' => ['Import Documents',$supupdocform],
+                'ff' => ['Special Documents',create_form_ul(create_list_elements(@specialdocs))]
                 );
 
-my $tid='2';
-my $varscd = 'Supplemental Course Documents';
+        my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
+        if ($error) {
+            $r->print('<p><span class="LC_error">'.$error.'</span></p>');
+        }
+        my $tid='2';
+        $r->print(&generate_edit_table($tid,\%suporderhash));
+    } else {
+        my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
+        if ($error) {
+            $r->print('<p><span class="LC_error">'.$error.'</span></p>');
+        }
+    }
 
-$r->print(&generate_edit_table($tid,$varscd,\%suporderhash));
-}
 
-my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
-       if ($error) {
-           $r->print('<p><span class="LC_error">'.$error.'</span></p>');
-        }
 $r->print('</div>');
 $r->print('</div></div>');
 
@@ -3414,22 +3482,29 @@ sub generate_admin_options {
                                          'vc' => 'Verify Content',
                                          'cv' => 'Check/Set Resource Versions',
                                          'ls' => 'List Symbs',
-                                         'sl' => 'Show Log'
+                                         'sl' => 'Show Log',
+                                         'imse' => 'IMS Export',
+                                         'dcd' => 'Dump Course Documents to Construction Space: available on other servers'
                                           );
   my %help = %{$help_ref};
   my %env = %{$env_ref};
   my $dumpbut=&dumpbutton();
   my $exportbut=&exportbutton();
   my @list = (
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic21" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"verify\", \"$lt{'vc'}\")'>$lt{'vc'}</a>$help{'Verify_Content'}"},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic22" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"versions\", \"$lt{'cv'}\")'>$lt{'cv'}</a>$help{'Check_Resource_Versions'}"},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/verify.png" alt="'.$lt{vc}.'"  onclick=\'javascript:injectData(document.courseverify, "dummy", "verify", "'.$lt{'vc'}.'")\' />' 
+        => "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"verify\", \"$lt{'vc'}\")'>$lt{'vc'}</a>$help{'Verify_Content'}"},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/resversion.png" alt="'.$lt{cv}.'"  onclick=\'javascript:injectData(document.courseverify, "dummy", "versions", "'.$lt{'cv'}.'")\' />'
+        =>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"versions\", \"$lt{'cv'}\")'>$lt{'cv'}</a>$help{'Check_Resource_Versions'}"},
 	);
   if($dumpbut ne ''){
-  push @list, {'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic23" />'=>$dumpbut};
+  push @list, {'<img class="LC_noBorder LC_middle" src="/res/adm/pages/dump.png" alt="'.$lt{dcd}.'" />'=>$dumpbut};
   }
-  push @list, ({'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic24" />'=>$exportbut},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic25" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"},
-	{'<img class="LC_noBorder LC_middle" align="left" src="/res/adm/pages/docspacer.gif" alt="pic26" />'=>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"docslog\", \"$lt{'sl'}\")'>$lt{'sl'}</a>"},
+  push @list, ({'<img class="LC_noBorder LC_middle" src="/res/adm/pages/imsexport.png" alt="'.$lt{imse}.'" onclick=\'javascript:injectData(document.courseverify, "dummy", "exportcourse", "'.&mt('IMS Export').'")\' />'
+          =>$exportbut},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/symbs.png" alt="'.$lt{ls}.'"  onclick=\'javascript:injectData(document.courseverify, "dummy", "listsymbs", "'.$lt{'ls'}.'")\'  />'
+        =>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"listsymbs\", \"$lt{'ls'}\")'>$lt{'ls'}</a><input type='hidden' name='folder' value='$env{'form.folder'}' />"},
+	{'<img class="LC_noBorder LC_middle" src="/res/adm/pages/log.png" alt="'.$lt{sl}.'"  onclick=\'javascript:injectData(document.courseverify, "dummy", "docslog", "'.$lt{'sl'}.'")\'  />'
+        =>"<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"docslog\", \"$lt{'sl'}\")'>$lt{'sl'}</a>"},
 	);
   return '<form action="/adm/coursedocs" method="post" name="courseverify"><input type="hidden" id="dummy" />'.create_form_ul(create_list_elements(@list)).'</form>';
 
@@ -3437,7 +3512,8 @@ sub generate_admin_options {
 
 
 sub generate_edit_table {
-    my ($tid,$varcd,$orderhash_ref) = @_;
+    my ($tid,$orderhash_ref) = @_;
+    return unless(ref($orderhash_ref) eq 'HASH');
     my %orderhash = %{$orderhash_ref};
     my $form;
     my $activetab;
@@ -3445,37 +3521,33 @@ sub generate_edit_table {
     if($env{'form.active'} ne ''){
         $activetab = $env{'form.active'};
     }
-    $form = '<div class="LC_Box">';
+    $form = '<div class="LC_Box" style="margin-right:0">';
     $form .= '<ul id="navigation'.$tid.'" class="LC_TabContent">';
     foreach my $name (sort(keys(%orderhash))){
-        if($name eq 'zz'){
-            if($activetab ne ''){
-               $active = 'class="right"';
-            }else{
-               $active = 'class="right active"';
-            }
-            $form .= '<li onclick="javascript:hideAll(this, \'navigation'.$tid.'\' ,\'content'.$tid.'\');" '.$active.'>'.&mt(${$orderhash{$name}}[0]).'</li>';
-        }else{
+        if($name ne '00'){
             if($activetab eq '' || $activetab ne $name){
                $active = '';
             }elsif($activetab eq $name){
                $active = 'class="active"';
             }
-            $form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');">'.&mt(${$orderhash{$name}}[0]).'</li>';
-        }
+            $form .= '<li '.$active.' onclick="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');"><a href="javascript:;"><b>'.&mt(${$orderhash{$name}}[0]).'</b></a></li>';
+        } else {
+	    $form .= '<li '.$active.'>'.${$orderhash{$name}}[1].'</li>';
+
+	}
     }
     $form .= '</ul>';
-    $form .= '<div id="content'.$tid.'" style="padding: 0 0; margin: 0 0;">';
+    $form .= '<div id="content'.$tid.'" style="padding: 0 0; margin: 0 0; clear: both;">';
     foreach my $field (keys(%orderhash)){
-	if($field ne 'zz'){
-        if($activetab eq '' || $activetab ne $field){
+	if($field ne '00'){
+            if($activetab eq '' || $activetab ne $field){
                 $active = 'style="display: none;"';
-        }elsif($activetab eq $field){
+            }elsif($activetab eq $field){
                 $active = 'style="display:block;"';
-        }
-           $form .= '<div id="'.$field.$tid.'"'
-                   .' class="LC_ContentBox" '.$active.'>'.${$orderhash{$field}}[1]
-                   .'</div>';
+            }
+            $form .= '<div id="'.$field.$tid.'"'
+                    .' class="LC_ContentBox" '.$active.'>'.${$orderhash{$field}}[1]
+                    .'</div>';
         }
     }
     $form .= '</div></div>';
@@ -3715,12 +3787,15 @@ for (i = 0; i < currentDivs.length; i++)
 function openTabs(pageId) {
 	tabnav = document.getElementById(pageId).getElementsByTagName('UL');	
 	if(tabnav.length > 2 ){
-		currentNav = document.getElementById(tabnav[0].id);
+		currentNav = document.getElementById(tabnav[1].id);
 		currentLis = currentNav.getElementsByTagName('LI');
 		for(i = 0; i< currentLis.length; i++){
 			if(currentLis[i].className == 'active') {
 				funcString = currentLis[i].onclick.toString();
 				tab = funcString.split('"');
+                                if(tab.length < 2) {
+                                   tab = funcString.split("'");
+                                }
 				currentData = document.getElementById(tab[1]);
         			currentData.style.display = 'block';
 			}