--- loncom/interface/londocs.pm	2009/10/04 13:58:02	1.389
+++ loncom/interface/londocs.pm	2010/12/11 14:28:12	1.447
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.389 2009/10/04 13:58:02 tempelho Exp $
+# $Id: londocs.pm,v 1.447 2010/12/11 14:28:12 www 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 class='LC_menubuttons_link' href='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,15 +260,15 @@ 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();
-    return "<a onclick='javascript:injectData(document.courseverify, \"dummy\", \"exportcourse\", \"".&mt('IMS Export')."\")'>".&mt('IMS Export')."</a>".
+    my $crstype = &Apache::loncommon::course_type();
+    return "<a class='LC_menubuttons_link' href='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,13 @@ 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) =
+	    &breadcrumbs($allowed,$crstype);
+        $r->print($breadcrumbtrail);
+
+    unless ($allowed) {
+        $randompick = -1;
+    }
 
 # ------------------------------------------------------------ Process commands
 
@@ -1589,13 +1606,12 @@ sub editor {
     my $shown=0;
     if (($ishidden) || ($isencrypted) || ($randompick>=0) || ($is_random_order)) {
 	$r->print('<div class="LC_Box">'.
-          '<p>'.&mt('Parameters:').
-          '<ul>'.
+          '<ol class="LC_docs_parameters"><li class="LC_docs_parameters_title">'.&mt('Parameters:').'</li>'.
 		  ($randompick>=0?'<li>'.&mt('randomly pick [quant,_1,resource]',$randompick).'</li>':'').
 		  ($ishidden?'<li>'.&mt('contents hidden').'</li>':'').
 		  ($isencrypted?'<li>'.&mt('URLs hidden').'</li>':'').
 		  ($is_random_order?'<li>'.&mt('random order').'</li>':'').
-		  '</ul></p>');
+		  '</ol>');
         if ($randompick>=0) {
             $r->print('<p class="LC_warning">'
                  .&mt('Caution: this folder is set to randomly pick a subset'
@@ -1619,7 +1635,9 @@ sub editor {
         $r->print('</div>');
     }
 
-    my $output;
+    my $output;  
+
+    &Apache::loncommon::start_data_table_count(); #setup a row counter 
     foreach my $res (@LONCAPA::map::order) {
         my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$res]);
         $name=&LONCAPA::map::qtescape($name);
@@ -1627,23 +1645,28 @@ 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++;
     }
+    &Apache::loncommon::end_data_table_count();
+    
     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>'
@@ -1658,11 +1681,10 @@ sub editor {
 sub process_file_upload {
     my ($upload_output,$coursenum,$coursedom,$allfiles,$codebase,$uploadcmd) = @_;
 # upload a file, if present
-    my $parseaction;
-   if ($env{'form.parserflag'}) {
+    my ($parseaction,$showupload,$nextphase,$mimetype);
+    if ($env{'form.parserflag'}) {
         $parseaction = 'parse';
     }
-    my $phase_status;
     my $folder=$env{'form.folder'};
     if ($folder eq '') {
         $folder='default';
@@ -1681,7 +1703,8 @@ sub process_file_upload {
             $LONCAPA::map::resources[1]='';
         }
         if ($fatal) {
-            return 'failed';
+            $$upload_output = '<p><span class="LC_error">'.&mt('The uploaded file has not been stored as an error occurred reading the contents of the current folder.').'</span></p>';
+            return;
         }
         my $destination = 'docs/';
         if ($folder =~ /^supplemental/) {
@@ -1692,13 +1715,23 @@ sub process_file_upload {
         } elsif ($folder =~ /^(default|supplemental)_(\d+)$/) {
             $destination .=  $2.'/';
         }
-# this is for a course, not a user, so set coursedoc flag
-# probably the only place in the system where this should be "1"
+# this is for a course, not a user, so set context to coursedoc.
         my $newidx=&LONCAPA::map::getresidx();
         $destination .= $newidx;
-        my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination,
+        my $url=&Apache::lonnet::userfileupload('uploaddoc','coursedoc',$destination,
 						$parseaction,$allfiles,
-						$codebase);
+						$codebase,undef,undef,undef,undef,
+                                                undef,undef,\$mimetype);
+        if ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E.*/([^/]+)$}) {
+            my $stored = $1;
+            $showupload = '<p>'.&mt('Uploaded [_1]','<span class="LC_filename">'.
+                          $stored.'</span>').'</p>';
+        } else {
+            my ($filename) = ($env{'form.uploaddoc.filename'} =~ m{([^/]+)$});
+            
+            $$upload_output = '<p><span class="LC_error">'.&mt('Unable to save file [_1].','<span class="LC_filename">'.$filename.'</span>').'</span></p>';
+            return;
+        }
         my $ext='false';
         if ($url=~m{^http://}) { $ext='true'; }
 	$url     = &LONCAPA::map::qtunescape($url);
@@ -1715,51 +1748,37 @@ sub process_file_upload {
         ($errtext,$fatal)=&storemap($coursenum,$coursedom,
 				    $folder.'.'.$container);
         if ($fatal) {
-            $$upload_output .= '<p><span class="LC_error">'.$errtext.'</span></p>';
-            return 'failed';
+            $$upload_output = '<p><span class="LC_error">'.$errtext.'</span></p>';
+            return;
         } else {
-            if ($parseaction eq 'parse') {
+            if ($parseaction eq 'parse' && $mimetype eq 'text/html') {
+                $$upload_output = $showupload;
                 my $total_embedded = scalar(keys(%{$allfiles}));
                 if ($total_embedded > 0) {
-                    my $num = 0;
-		    my $state = '
-   <input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />
-   <input type="hidden" name="cmd" value="upload_embedded" />
-   <input type="hidden" name="newidx" value="'.$newidx.'" />
-   <input type="hidden" name="primaryurl" value="'.&escape($url).'" />
-   <input type="hidden" name="phasetwo" value="'.$total_embedded.'" />';
-		    $phase_status = 'phasetwo';
-
-                    $$upload_output .=
-			'This file contains embedded multimedia objects, which need to be uploaded to LON-CAPA.<br />'.
-			&Apache::loncommon::ask_for_embedded_content(
-                            '/adm/coursedocs',$state,$allfiles,$codebase);
+                    my $uploadphase = 'upload_embedded';
+                    my $primaryurl = &HTML::Entities::encode($url,'<>&"');
+		    my $state = &embedded_form_elems($uploadphase,$primaryurl,$newidx); 
+                    my ($embedded,$num) = 
+                        &Apache::loncommon::ask_for_embedded_content(
+                            '/adm/coursedocs',$state,$allfiles,$codebase,{'docs_url' => $url});
+                    if ($embedded) {
+                        if ($num) {
+                            $$upload_output .=
+			         '<p>'.&mt('This file contains embedded multimedia objects, which need to be uploaded.').'</p>'.$embedded;
+                            $nextphase = $uploadphase;
+                        } else {
+                            $$upload_output .= $embedded;
+                        }
+                    } else {
+                        $$upload_output .= &mt('Embedded item(s) already present, so no additional upload(s) required').'<br />';
+                    }
                 } else {
-                    $$upload_output .= 'No embedded items identified<br />';
+                    $$upload_output .= &mt('No embedded items identified').'<br />';
                 }
             }
         }
     }
-    return $phase_status;
-}
-
-sub process_secondary_uploads {
-    my ($upload_output,$coursedom,$coursenum,$formname,$num,$newidx) = @_;
-    my $folder=$env{'form.folder'};
-    my $destination = 'docs/';
-    if ($folder =~ /^supplemental/) {
-        $destination = 'supplemental/';
-    }
-    if (($folder eq 'default') || ($folder eq 'supplemental')) {
-        $destination .= 'default/';
-    } elsif ($folder =~ /^(default|supplemental)_(\d+)$/) {
-        $destination .=  $2.'/';
-    }
-    $destination .= $newidx;
-    my ($url,$filename);
-    $url=&Apache::lonnet::userfileupload($formname.$num,1,$destination);
-    ($filename) = ($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/\Q$destination\E/(.+)$});
-    return $filename;
+    return $nextphase;
 }
 
 sub is_supplemental_title {
@@ -1780,6 +1799,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 +1812,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);
@@ -1824,7 +1843,7 @@ sub entryline {
     }
     if ($env{'form.pagepath'}) {
         $type = $container = 'page';
-        $esc_path=&escape($path = $env{'form.pagepath'});
+        $esc_path=&escape($env{'form.pagepath'});
 	$path = &HTML::Entities::encode($env{'form.pagepath'},'<>&"');
         $symb=&escape($env{'form.pagesymb'});
     }
@@ -2050,18 +2069,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,34 +2234,33 @@ 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'));
+    &startContentScreen($r,'tools');
     my $navmap = Apache::lonnavmaps::navmap->new();
     if (!defined($navmap)) {
         $r->print('<h2>'.&mt('Retrieval of List Failed').'</h2>'.
                   '<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>');
 }
 
 
 sub verifycontent {
     my ($r) = @_;
-    my $type = &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'));
+    my $crstype = &Apache::loncommon::course_type();
+   $r->print(&Apache::loncommon::start_page('Verify '.$crstype.' Documents'));
+   $r->print(&Apache::lonhtmlcommon::breadcrumbs('Verify '.$crstype.' Documents'));
+   &startContentScreen($r,'tools');
    $hashtied=0;
    undef %alreadyseen;
    %alreadyseen=();
@@ -2245,9 +2269,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 +2279,7 @@ 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>');
 }
 
 
@@ -2268,9 +2291,11 @@ 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"));
+    &startContentScreen($r,'tools');
+
     my $header='';
     my $startsel='';
     my $monthsel='';
@@ -2331,7 +2356,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 +2401,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 +2410,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 +2459,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};
@@ -2448,11 +2473,11 @@ ENDHEADERS
 # Set version
 	    $r->print(&Apache::loncommon::select_form($setversions{$linkurl},
 						      'set_version_'.$linkurl,
-						      ('select_form_order' =>
+						      {'select_form_order' =>
 						       ['',1..$currentversion,'mostrecent'],
 						       '' => '',
-						       'mostrecent' => 'most recent',
-						       map {$_,$_} (1..$currentversion))));
+						       'mostrecent' => &mt('most recent'),
+						       map {$_,$_} (1..$currentversion)}));
 	    $r->print('</span></td></tr><tr><td></td>');
 	    my $lastold=1;
 	    for (my $prevvers=1;$prevvers<$currentversion;$prevvers++) {
@@ -2506,7 +2531,7 @@ ENDHEADERS
 	}
     }
     $r->print('</table></form>');
-    $r->print('<h1>'.&mt('Done').'.</h1>');
+    $r->print('<p class="LC_success">'.&mt('Done').'</p>');
 
     &untiehash();
 }
@@ -2571,7 +2596,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'});
@@ -2581,17 +2606,74 @@ sub init_breadcrumbs {
 					    bug=>'Instructor Interface'});
 }
 
+# subroutine to list form elements
+sub create_list_elements {
+   my @formarr = @_;
+   my $list = '';
+   for my $button (@formarr){
+        for my $picture(keys %$button) {
+            $list .= &Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'});
+        }
+   }
+   return $list;
+}
 
+# subroutine to create ul from list elements
+sub create_form_ul {
+   my $list = shift;
+   my $ul = &Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'});
+   return $ul;
+}
 
+#
+# Start tabs
+#
+
+sub startContentScreen {
+    my ($r,$mode)=@_;
+    $r->print('<ul class="LC_TabContentBigger" id="mainnav">');
+    $r->print('<li'.(($mode eq 'navmaps')?' class="active"':'').'><a href="/adm/navmaps"><b>&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Overview').'&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>');
+
+    my $active = '';
+# does this user have privileges to modify docs?
+    my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
+
+    my $onclick;
+    my $href;
+
+    if ($allowed) {
+        $r->print('<li '.(($mode eq 'docs')?' class="active"':'').
+               '><a href="/adm/coursedocs?forcestandard=1"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'.&mt('Content Editor').'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></a></li>');
+    }
+    $r->print('<li '.(($mode eq 'supdocs')?' class="active"':'').
+           '><a href="/adm/coursedocs?forcesupplement=1"><b>'.&mt('Supplemental Documents').'</b></a></li>');
+    $r->print('</ul>');
+    $r->print('<div class="LC_Box" style="clear:both;margin:0;">'
+             .'<div id="maincoursedoc" style="margin:0 0;padding:0 0;">');
+    $r->print('<div class="LC_ContentBox" id="mainCourseDocuments" style="display: block;">');
+}
+
+#
+# End tabs
+#
+
+sub endContentScreen {
+   my ($r)=@_;
+   $r->print('</div></div></div>');
+}
+
+sub supplemental_base {
+    return 'supplemental&'.&escape(&mt('Supplemental '.&Apache::loncommon::course_type().' Documents'));
+}
 
 sub handler {
     my $r = shift;
     &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
     foreach my $topic ('Adding_Course_Doc','Main_Course_Documents',
 	               'Adding_External_Resource','Navigate_Content',
@@ -2630,46 +2712,89 @@ 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');
       &exportcourse($r);
   } else {
-# is this a standard course?
+#
+# Done catching special calls
+# The whole rest is for course and supplemental documents
+# Get the parameters that may be needed
+#
+    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+                                            ['folderpath','pagepath',
+                                             'pagesymb','forcesupplement','forcestandard']);
+
+# standard=1: this is a "new-style" course with an uploaded map as top level
+# standard=2: this is a "old-style" course, and there is nothing we can do
 
     my $standard=($env{'request.course.uri'}=~/^\/uploaded\//);
-    my $forcestandard = 0;
-    my $forcesupplement;
+
+# Decide whether this should display supplemental or main content
+# supplementalflag=1: show supplemental documents
+# supplementalflag=0: show standard documents
+
+
+    my $supplementalflag=($env{'form.folderpath'}=~/^supplemental/);
+    if (($env{'form.folderpath'}=~/^default/) || $env{'form.folderpath'} eq "" || ($env{'form.pagepath'})) {
+       $supplementalflag=0;
+    }
+    if ($env{'form.forcesupplement'}) { $supplementalflag=1; }
+    if ($env{'form.forcestandard'})   { $supplementalflag=0; }
+    unless ($allowed) { $supplementalflag=1; }
+    unless ($standard) { $supplementalflag=1; }
+
     my $script='';
     my $showdoc=0;
     my $containertag;
     my $uploadtag;
 
-
-    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
-					    ['folderpath','pagepath',
-					     'pagesymb']);
+# Where do we store these for when we come back?
+    my $stored_folderpath='docs_folderpath';
+    if ($supplementalflag) {
+       $stored_folderpath='docs_sup_folderpath';
+    }
+       
 # No folderpath, no pagepath, see if we have something stored
     if ((!$env{'form.folderpath'}) && (!$env{'form.pagepath'})) {
-        &Apache::loncommon::restore_course_settings('docs_folderpath',
+        &Apache::loncommon::restore_course_settings($stored_folderpath,
                                               {'folderpath' => 'scalar'});
     }
-    if (!$env{'form.folderpath'}) {
-        &Apache::loncommon::restore_course_settings('docs_folderpath',
-                                              {'pagepath' => 'scalar'});
+   
+# If we are not allowed to make changes, all we can see are supplemental docs
+    if (!$allowed) {
+        $env{'form.pagepath'}='';
+        unless ($env{'form.folderpath'} =~ /^supplemental/) {
+            $env{'form.folderpath'} = &supplemental_base();
+        }
     }
-    if ($env{'form.pagepath'}) {
-       $env{'form.folderpath'}='';
+# If we still not have a folderpath, see if we can resurrect at pagepath
+    if (!$env{'form.folderpath'} && $allowed) {
+        &Apache::loncommon::restore_course_settings($stored_folderpath,
+                                              {'pagepath' => 'scalar'});
     }
+# Make the zeroth entry in supplemental docs page paths, so we can get to top level
     if ($env{'form.folderpath'} =~ /^supplemental_\d+/) {
-        $env{'form.folderpath'} = 'supplemental&'.
-                                  &escape(&mt('Supplemental '.$type.' Documents')).'&'.
+        $env{'form.folderpath'} = &supplemental_base()
+                                  .'&'.
                                   $env{'form.folderpath'};
     }
-    &Apache::loncommon::store_course_settings('docs_folderpath',
+# If after all of this, we still don't have any paths, make them
+    unless (($env{'form.pagepath'}) || ($env{'form.folderpath'})) {
+       if ($supplementalflag) {
+          $env{'form.folderpath'}=&supplemental_base();
+       } else {
+          $env{'form.folderpath'}='default';
+       }
+    } 
+
+# Store this
+    &Apache::loncommon::store_course_settings($stored_folderpath,
                                                 {'pagepath' => 'scalar',
                                                  'folderpath' => 'scalar'});
+
     if ($env{'form.folderpath'}) {
 	my (@folderpath)=split('&',$env{'form.folderpath'});
 	$env{'form.foldername'}=&unescape(pop(@folderpath));
@@ -2680,48 +2805,35 @@ sub handler {
         $env{'form.pagename'}=&unescape(pop(@pagepath));
         $env{'form.folder'}=pop(@pagepath);
         $containertag = '<input type="hidden" name="pagepath" value="" />'.
-	    '<input type="hidden" name="pagesymb" value="" />';
-        $uploadtag = '<input type="hidden" name="pagepath" value="'.&HTML::Entities::encode($env{'form.pagepath'},'<>&"').'" />'.
-	    '<input type="hidden" name="pagesymb" value="'.&HTML::Entities::encode($env{'form.pagesymb'},'<>&"').'" />';
+	                '<input type="hidden" name="pagesymb" value="" />';
+        $uploadtag = 
+            '<input type="hidden" name="pagepath" value="'.&HTML::Entities::encode($env{'form.pagepath'},'<>&"').'" />'.
+	    '<input type="hidden" name="pagesymb" value="'.&HTML::Entities::encode($env{'form.pagesymb'},'<>&"').'" />'.
+            '<input type="hidden" name="folderpath" value="" />';
+    } else {
+        my $folderpath=$env{'form.folderpath'};
+        if (!$folderpath) {
+            if ($env{'form.folder'} eq '' ||
+                $env{'form.folder'} eq 'supplemental') {
+                $folderpath='default&'.
+                    &escape(&mt('Main '.$crstype.' Documents'));
+            }
+        }
+        $containertag = '<input type="hidden" name="folderpath" value="" />';
+        $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
     }
     if ($r->uri=~/^\/adm\/coursedocs\/showdoc\/(.*)$/) {
        $showdoc='/'.$1;
     }
-    unless ($showdoc) { # got called from remote
-       if (($env{'form.folder'}=~/^(?:group|default)_/) ||
-          ($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) {
-           $forcestandard = 1;
-       }
-       $forcesupplement=($env{'form.folder'}=~/^supplemental_/);
-
+    if ($showdoc) { # got called in sequence from course
+	$allowed=0; 
+    } else {
        if ($allowed) {
          &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
-sub create_list_elements {
-   my @formarr = @_; 
-   my $list = '';
-   for my $button (@formarr){
-	for my $picture(keys %$button) {
-		#my $link = Apache::lonhtmlcommon::htmltag('a' ,$button->{$picture}, {href => "test"}); 
-		$list .= Apache::lonhtmlcommon::htmltag('li', $picture.' '.$button->{$picture}, {class => 'LC_menubuttons_inline_text'});	
-	}
-   }
-   return $list;
-}
-
-# subroutine to create ul from list elements
-sub create_form_ul {
-   my $list = shift;
-   my $ul = Apache::lonhtmlcommon::htmltag('ul',$list, {class => 'LC_ListStyleNormal'});
-   return $ul;
-}
-
 # get course data
     my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'};
     my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'};
@@ -2747,123 +2859,85 @@ sub create_form_ul {
 
     # Breadcrumbs
     &Apache::lonhtmlcommon::clear_breadcrumbs();
-    &Apache::lonhtmlcommon::add_breadcrumb({
-        href=>"/adm/createuser",text=>"$type Documents"});
-
-    $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')
-    );
+    unless ($showdoc) {
+        &Apache::lonhtmlcommon::add_breadcrumb({
+            href=>"/adm/coursedocs",text=>"$crstype Contents"});
+
+        $r->print(&Apache::loncommon::start_page("$crstype Contents", $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')
+        );
+    } else {
+        $r->print(&Apache::loncommon::start_page("$crstype documents",undef,
+                                                {'force_register' => $showdoc,}));
+    }
 
   my %allfiles = ();
   my %codebase = ();
-  my ($upload_result,$upload_output);
+  my ($upload_result,$upload_output,$uploadphase);
   if ($allowed) {
       if (($env{'form.uploaddoc.filename'}) &&
 	  ($env{'form.cmd'}=~/^upload_(\w+)/)) {
-# Process file upload - phase one - upload and parse primary file.
+          my $context = $1; 
+          # Process file upload - phase one - upload and parse primary file.
 	  undef($hadchanges);
-          $upload_result = &process_file_upload(\$upload_output,$coursenum,
-						$coursedom,\%allfiles,
-						\%codebase,$1);
+          $uploadphase = &process_file_upload(\$upload_output,$coursenum,$coursedom,
+                                              \%allfiles,\%codebase,$context);
 	  if ($hadchanges) {
 	      &mark_hash_old();
 	  }
-          if ($upload_result eq 'phasetwo') {
-              $r->print($upload_output);
-          }
-      } elsif ($env{'form.phasetwo'}) {
-          my %newname = ();
-          my %origname = ();
-          my %attribs = ();
-          my $updateflag = 0;
-          my $residx = $env{'form.newidx'};
-          my $primary_url = &unescape($env{'form.primaryurl'});
-# Process file upload - phase two - gather secondary files.
-          for (my $i=0; $i<$env{'form.phasetwo'}; $i++) {
-              if ($env{'form.embedded_item_'.$i.'.filename'}) {
-                  my $javacodebase;
-                  $newname{$i} = &process_secondary_uploads(\$upload_output,$coursedom,$coursenum,'embedded_item_',$i,$residx);
-                  $origname{$i} = &unescape($env{'form.embedded_orig_'.$i});
-                  if (exists($env{'form.embedded_codebase_'.$i})) {
-                      $javacodebase =  &unescape($env{'form.embedded_codebase_'.$i});
-                      $origname{$i} =~ s#^\Q$javacodebase\E/##;
-                  }
-                  my @attributes = ();
-                  if ($env{'form.embedded_attrib_'.$i} =~ /:/) {
-                      @attributes = split(/:/,$env{'form.embedded_attrib_'.$i});
-                  } else {
-                      @attributes = ($env{'form.embedded_attrib_'.$i});
-                  }
-                  foreach my $attr (@attributes) {
-                      push(@{$attribs{$i}},&unescape($attr));
-                  }
-                  if ($javacodebase) {
-                      $codebase{$i} = $javacodebase;
-                      $codebase{$i} =~ s#/$##;
-                      $updateflag = 1;
-                  }
-              }
-              unless ($newname{$i} eq $origname{$i}) {
-                  $updateflag = 1;
-              }
-          }
-# Process file upload - phase three - modify primary file
-          if ($updateflag) {
-              my ($content,$rtncode);
-              my $updateflag = 0;
-              my $getstatus = &Apache::lonnet::getuploaded('GET',$primary_url,$coursedom,$coursenum,\$content,\$rtncode);
-              if ($getstatus eq 'ok') {
-                  foreach my $item (keys(%newname)) {
-                      if ($newname{$item} ne $origname{$item}) {
-                          my $attrib_regexp = '';
-                          if (@{$attribs{$item}} > 1) {
-                              $attrib_regexp = join('|',@{$attribs{$item}});
-                          } else {
-                              $attrib_regexp = $attribs{$item}[0];
-                          }
-                          if ($content =~ m#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#) {
-                          }
-                          $content =~ s#($attrib_regexp\s*=\s*['"]?)\Q$origname{$item}\E(['"]?)#$1$newname{$item}$2#gi;
-                      }
-                      if (exists($codebase{$item})) {
-                          $content =~ s/(codebase\s*=\s*["']?)\Q$codebase{$item}\E(["']?)/$1.$2/i; #' stupid emacs
-                      }
-                  }
-# Save edited file.
-                  my $saveresult;
-                  my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'};
-                  my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'};
-                  my $url = &Apache::lonnet::store_edited_file($primary_url,$content,$docudom,$docuname,\$saveresult);
-              } else {
-                  &Apache::lonnet::logthis('retrieval of uploaded file - '.$primary_url.' - for editing, failed: '.$getstatus);
-              }
-          }
+          $r->print($upload_output);
+      } elsif ($env{'form.phase'} eq 'upload_embedded') {
+          # Process file upload - phase two - upload embedded objects 
+          $uploadphase = 'check_embedded';
+          my $primaryurl = &HTML::Entities::encode($env{'form.primaryurl'},'<>&"');   
+          my $state = &embedded_form_elems($uploadphase,$primaryurl,
+                                           $env{'form.newidx'});
+          my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'};
+          my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'};
+          my ($destination,$dir_root) = &embedded_destination();
+          my $url_root = '/uploaded/'.$docudom.'/'.$docuname;
+          my $actionurl = '/adm/coursedocs';
+          my ($result,$flag) = 
+              &Apache::loncommon::upload_embedded('coursedoc',$destination,
+                  $docuname,$docudom,$dir_root,$url_root,undef,undef,undef,$state,
+                  $actionurl);
+          $r->print($result.&return_to_editor());
+      } elsif ($env{'form.phase'} eq 'check_embedded') {
+          # Process file upload - phase three - modify references in HTML file
+          $uploadphase = 'modified_orightml';
+          my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'};
+          my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'};
+          my ($destination,$dir_root) = &embedded_destination();
+          $r->print(&Apache::loncommon::modify_html_refs('coursedoc',$destination,
+                                                         $docuname,$docudom,undef,
+                                                         $dir_root).
+                   &return_to_editor());
       }
   }
 
-  unless ($showdoc ||  $upload_result eq 'phasetwo') {
+  unless ($showdoc || $uploadphase) {  
 # -----------------------------------------------------------------------------
        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',
+		'wish' => 'Import from Wishlist',
                 'selm' => 'Select Map',
                 'load' => 'Load Map',
-                'reco' => 'Recover Deleted Resources',
+                'reco' => 'Recover Deleted Documents',
                 'newf' => 'New Folder',
                 'newp' => 'New Composite Page',
                 'extr' => 'External Resource',
                 'syll' => 'Syllabus',
-                'navc' => 'Navigate Contents',
+                'navc' => 'Table of Contents',
                 'sipa' => 'Simple Course Page',
                 'sipr' => 'Simple Problem',
                 'drbx' => 'Drop Box',
@@ -2878,7 +2952,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,16 +2973,14 @@ 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" />
 	$fileupload
 	<br />
 	$lt{'title'}:<br />
-	<input type="text" size="50" name="comment" />
+	<input type="text" size="80" name="comment" />
 	$uploadtag
 	<input type="hidden" name="cmd" value="upload_default" />
 	<br />
@@ -2916,21 +2988,18 @@ CHBO
 	$checkbox
 	</span>
 FUFORM
-	$fileuploadform .= create_form_ul(create_list_elements(@fileuploada));
-	$fileuploadform .= (<<FUFORM);
-	</form>
-FUFORM
+    $fileuploadform .= &create_form_ul(&Apache::lonhtmlcommon::htmltag('li',$fileuploada,{class => 'LC_menubuttons_inline_text'})).'</form>';
 
 	my $simpleeditdefaultform=(<<SEDFFORM);
 	<form action="/adm/coursedocs" method="post" name="simpleeditdefault">
 	<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 class='LC_menubuttons_link' href='javascript:groupsearch()'>$lt{'srch'}</a>" },
+	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/res.png" alt="'.$lt{impo}.'"  onclick="javascript:groupimport();"/>' => "<a class='LC_menubuttons_link' href='javascript:groupimport();'>$lt{'impo'}</a>$help{'Importing_LON-CAPA_Resource'}" },
+	{ '<img class="LC_noBorder LC_middle" src="/res/adm/pages/wishlist.png" alt="'.$lt{wish}.'" onclick="javascript:open_Wishlist_Import();" />' => "<a class='LC_menubuttons_link' href='javascript:open_Wishlist_Import();'>$lt{'wish'}</a>" },
 	);
-	$simpleeditdefaultform .= create_form_ul(create_list_elements(@simpleeditdefaultforma));
+	$simpleeditdefaultform .= &create_form_ul(&create_list_elements(@simpleeditdefaultforma));
 	$simpleeditdefaultform .=(<<SEDFFORM);
 	<hr />
 	<p>
@@ -2944,14 +3013,15 @@ SEDFFORM
 	</form>
 SEDFFORM
 
-	my $extresourcesform=(<<ERFORM);
-	<form action="/adm/coursedocs" method="post" name="newext">
-	$uploadtag
-	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makenewext('newext');">$lt{'extr'}</a>$help{'Adding_External_Resource'}
-	</form>
+      my $extresourcesform=(<<ERFORM);
+      <form action="/adm/coursedocs" method="post" name="newext">
+      $uploadtag
+      <input type="hidden" name="importdetail" value="" />
+      <a class="LC_menubuttons_link" href="javascript:makenewext('newext');">$lt{'extr'}</a>$help{'Adding_External_Resource'}
+      </form>
 ERFORM
 
+
     if ($allowed) {
 	&update_paste_buffer($coursenum,$coursedom);
        my %lt=&Apache::lonlocal::texthash(
@@ -2961,18 +3031,6 @@ ERFORM
                                          'sl' => 'Show Log'
 					  );
 
-       my $folderpath=$env{'form.folderpath'};
-       if (!$folderpath) {
-	   if ($env{'form.folder'} eq '' ||
-	       $env{'form.folder'} eq 'supplemental') {
-	       $folderpath='default&'.
-		   &escape(&mt('Main '.$type.' Documents'));
-	   }
-       }
-       unless ($env{'form.pagepath'}) {
-           $containertag = '<input type="hidden" name="folderpath" value="" />';
-           $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
-       }
 	$r->print(<<HIDDENFORM);
 	<form name="renameform" method="post" action="/adm/coursedocs">
    <input type="hidden" name="title" />
@@ -2987,44 +3045,21 @@ ERFORM
  </form>
 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"';
-        }
-    }
-    $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;">'
-             .'<div id="maincoursedoc" style="margin:0 0;padding:0 0;">');
-# --------------------------------------------------------- Standard documents
-       my $savefolderpath;
-       my $active = 'style="display: none;"';
-       if($activeClass == 0){
-          $active = 'style="display: block;"';
-       }
-       if($env{'request.role'}=~/^cc/){
-       $r->print('<div class="LC_ContentBox" id="mainCourseDocuments" '.$active.'>');
+# Generate the tabs
+    &startContentScreen($r,($supplementalflag?'supdocs':'docs'));
+
+
+#
+
+    my $savefolderpath;
+
+    if ($allowed) {
        my $folder=$env{'form.folder'};
-       if ($folder eq '' || $folder=~/^supplemental/) {
+       if ($folder eq '' || $supplementalflag) {
            $folder='default';
 	   $savefolderpath = $env{'form.folderpath'};
-	   $env{'form.folderpath'}='default&'.&escape(&mt('Main '.$type.' Documents'));
+	   $env{'form.folderpath'}='default&'.&escape(&mt('Content'));
            $uploadtag = '<input type="hidden" name="folderpath" value="'.
 	       &HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" />';
        }
@@ -3053,14 +3088,14 @@ HIDDENFORM
 
 	my $recoverform=(<<RFORM);
 	<form action="/adm/groupsort" method="post" name="recover">
-	<a onclick="javascript:groupopen('$readfile',1,0)">$lt{'reco'}</a>
+	<a class="LC_menubuttons_link" href="javascript:groupopen('$readfile',1)">$lt{'reco'}</a>
 	</form>
 RFORM
 
 	my $imspform=(<<IMSPFORM);
 	<form action="/adm/imsimportdocs" method="post" name="ims">
 	<input type="hidden" name="folder" value="$folder" />
-	<a onclick="javascript:makeims();">$lt{'imsf'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makeims();">$lt{'imsf'}</a>
 	</form>
 IMSPFORM
 
@@ -3070,7 +3105,7 @@ IMSPFORM
 	$uploadtag
 	<input type="hidden" name="importdetail" 
 	value="$lt{'navc'}=/adm/navmaps" />
-	<a onclick="document.newnav.submit()">$lt{'navc'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.newnav.submit()">$lt{'navc'}</a>
 	$help{'Navigate_Content'}
 	</form>
 NNFORM
@@ -3079,7 +3114,7 @@ NNFORM
 	<input type="hidden" name="active" value="cc" />
 	$uploadtag
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makesmppage();"> $lt{'sipa'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makesmppage();"> $lt{'sipa'}</a>
 	$help{'Simple Page'}
 	</form>
 NSPFORM
@@ -3089,7 +3124,7 @@ NSPFORM
 	<input type="hidden" name="active" value="cc" />
 	$uploadtag
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makesmpproblem();">$lt{'sipr'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makesmpproblem();">$lt{'sipr'}</a>
 	$help{'Simple Problem'}
 	</form>
 
@@ -3100,7 +3135,7 @@ NSPROBFORM
 	<input type="hidden" name="active" value="cc" />
 	$uploadtag
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makedropbox();">$lt{'drbx'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makedropbox();">$lt{'drbx'}</a>
 	</form>
 NDBFORM
 
@@ -3109,7 +3144,7 @@ NDBFORM
 	<input type="hidden" name="active" value="cc" />
 	$uploadtag
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makeexamupload();">$lt{'scuf'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makeexamupload();">$lt{'scuf'}</a>
 	$help{'Score_Upload_Form'}
 	</form>
 NEXUFORM
@@ -3119,7 +3154,7 @@ NEXUFORM
 	<input type="hidden" name="active" value="cc" />
 	$uploadtag
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makebulboard();" >$lt{'bull'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makebulboard();" >$lt{'bull'}</a>
 	$help{'Bulletin Board'}
 	</form>
 NBFORM
@@ -3130,7 +3165,7 @@ NBFORM
 	$uploadtag
 	<input type="hidden" name="importdetail" 
 	value="$plainname=/adm/$udom/$uname/aboutme" />
-	<a onclick="document.newaboutme.submit()">$lt{'mypi'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.newaboutme.submit()">$lt{'mypi'}</a>
 	$help{'My Personal Information Page'}
 	</form>
 NAMFORM
@@ -3140,7 +3175,7 @@ NAMFORM
 	<input type="hidden" name="active" value="cc" />
 	$uploadtag
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makeabout();">$lt{'abou'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makeabout();">$lt{'abou'}</a>
 	</form>
 NASOFORM
 
@@ -3151,7 +3186,7 @@ NASOFORM
 	$uploadtag
 	<input type="hidden" name="importdetail" 
 	value="$lt{'rost'}=/adm/viewclasslist" />
-	<a onclick="document.newroster.submit()">$lt{'rost'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.newroster.submit()">$lt{'rost'}</a>
 	$help{'Course Roster'}
 	</form>
 NROSTFORM
@@ -3159,6 +3194,7 @@ NROSTFORM
 my $specialdocumentsform;
 my @specialdocumentsforma;
 my $newfolderform;
+my $newfolderb;
 
        unless ($env{'form.pagepath'}) {
 	   my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
@@ -3168,25 +3204,20 @@ my $newfolderform;
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="importdetail" value="" />
 	<input type="hidden" name="active" value="cc" />
-	<a onclick="javascript:makenewpage(document.newpage,'$pageseq');">$lt{'newp'}</a>
+	<a class="LC_menubuttons_link" href="javascript:makenewpage(document.newpage,'$pageseq');">$lt{'newp'}</a>
 	$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">
@@ -3194,7 +3225,7 @@ NFFORM
 	$uploadtag
 	<input type="hidden" name="importdetail" 
 	value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />
-	<a onclick="document.newsyl.submit()">$lt{'syll'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.newsyl.submit()">$lt{'syll'}</a>
 	$help{'Syllabus'}
 
 	</form>
@@ -3206,84 +3237,85 @@ NSYLFORM
 	$uploadtag
 	<input type="hidden" name="importdetail"
 	value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" />
-	<a onclick="document.newgroupfiles.submit()">$lt{'grpo'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.newgroupfiles.submit()">$lt{'grpo'}</a>
 	$help{'Group Portfolio'}
 	</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},
-	); 
-	
-      }
-	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},);
+	{'<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},
+	);
 
-	$specialdocumentsform = create_form_ul(create_list_elements(@specialdocumentsforma));
+        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;
+
+	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/clst.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));
+	$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)" />'=>$recoverform},
 	);
 
 my %orderhash = (
-                'aa' => ['Upload Document',$fileuploadform.''.$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'],
+		'dd' => ['Tools', &create_form_ul(&create_list_elements(@tools)).&generate_admin_options(\%help,\%env)],
                 );
-my $tid='1';
-my $varcd = 'Main Course Documents';
+unless($env{'form.pagepath'}) {
+    $orderhash{'00'} = ['Newfolder',$newfolderform];
+}
+
  $hadchanges=0;
-        my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
-       if ($error) {
-           $r->print('<p><span class="LC_error">'.$error.'</span></p>');
-       }
-       if ($hadchanges) {
-           &mark_hash_old();
-       }
+       unless ($supplementalflag) {
+          my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
+          if ($error) {
+             $r->print('<p><span class="LC_error">'.$error.'</span></p>');
+          }
+          if ($hadchanges) {
+             &mark_hash_old();
+          }
 
-       &changewarning($r,'');
-$r->print(&generate_edit_table($tid,$varcd,\%orderhash));
+          &changewarning($r,'');
+          $r->print(&generate_edit_table('1',\%orderhash));
+        }
 
-$r->print('</div>');
 	}
-       if ($env{'form.pagepath'}) {
-       }
-# ----------------------------------------------------- Supplemental documents
-       my $active = 'style="display: none;"';
-       if($activeClass == 1){
-          $active = 'style="display: block;"';
-       }
-       $r->print('<div class="LC_ContentBox" id="supplCourseDocuments" '.$active.'>');
+
+# Supplemental documents start here
+
        my $folder=$env{'form.folder'};
-       unless ($folder=~/^supplemental/) {
+       unless ($supplementalflag) {
 	   $folder='supplemental';
        }
        if ($folder =~ /^supplemental$/ &&
 	   (($env{'form.folderpath'} =~ /^default\&/) || ($env{'form.folderpath'} eq ''))) {
-          $env{'form.folderpath'} = 'supplemental&'.
-                                    &escape(&mt('Supplemental '.$type.' Documents'));
-       }else{
+          $env{'form.folderpath'} = &supplemental_base();
+       } elsif ($allowed) {
 	  $env{'form.folderpath'} = $savefolderpath;
        }
        $env{'form.pagepath'} = '';
@@ -3294,9 +3326,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" />'=>"<input type='submit' value='".$lt{'upld'}."' />$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" />	
@@ -3313,28 +3343,25 @@ $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">
 	<input type="hidden" name="active" value="ee" />
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makenewfolder(document.supnewfolder,'$folderseq');">$lt{'newf'}</a> 
+	<a class="LC_menubuttons_link" href="javascript:makenewfolder(document.supnewfolder,'$folderseq');">$lt{'newf'}</a> 
 	$help{'Adding_Folders'}
 	</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">
 	<input type="hidden" name="active" value="ff" />
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="importdetail" value="" />
-	<a onclick="javascript:makenewext('supnewext');">$lt{'extr'}</a> $help{'Adding_External_Resource'}
+	<a class="LC_menubuttons_link" href="javascript:makenewext('supnewext');">$lt{'extr'}</a> $help{'Adding_External_Resource'}
 	</form>
 SNEFORM
 
@@ -3344,7 +3371,7 @@ SNEFORM
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="importdetail" 
 	value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
-	<a onclick="document.supnewsyl.submit()">$lt{'syll'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.supnewsyl.submit()">$lt{'syll'}</a>
 	$help{'Syllabus'}
 	</form>
 SNSFORM
@@ -3355,36 +3382,43 @@ SNSFORM
 	<input type="hidden" name="folderpath" value="$path" />
 	<input type="hidden" name="importdetail" 
 	value="$plainname=/adm/$udom/$uname/aboutme" />
-	<a onclick="document.supnewaboutme.submit()">$lt{'mypi'}</a>
+	<a class="LC_menubuttons_link" href="javascript:document.supnewaboutme.submit()">$lt{'mypi'}</a>
 	$help{'My Personal Information Page'}
 	</form>
 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,'',$type);
-       if ($error) {
-           $r->print('<p><span class="LC_error">'.$error.'</span></p>');
+        if ($supplementalflag) {
+           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('2',\%suporderhash));
         }
-$r->print(&generate_edit_table($tid,$varscd,\%suporderhash));
-}
-
-
-$r->print('</div>');
-$r->print('</div></div>');
+    } elsif ($supplementalflag) {
+        my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$crstype);
+        if ($error) {
+            $r->print('<p><span class="LC_error">'.$error.'</span></p>');
+        }
+    }
 
+    &endContentScreen($r);
 
     if ($allowed) {
 	$r->print('
@@ -3396,7 +3430,7 @@ $r->print('</div></div>');
 </form>');
     }
   } else {
-      unless ($upload_result eq 'phasetwo') {
+      unless ($uploadphase) {
 # -------------------------------------------------------- This is showdoc mode
           $r->print("<h1>".&mt('Uploaded Document').' - '.
 		&Apache::lonnet::gettitle($r->uri).'</h1><p>'.
@@ -3409,36 +3443,80 @@ $r->print('</div></div>');
  return OK;
 }
 
+sub embedded_form_elems {
+    my ($phase,$primaryurl,$newidx) = @_;
+    my $folderpath = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
+    return <<STATE;
+    <input type="hidden" name="folderpath" value="$folderpath" />
+    <input type="hidden" name="cmd" value="upload_embedded" />
+    <input type="hidden" name="newidx" value="$newidx" />
+    <input type="hidden" name="phase" value="$phase" />
+    <input type="hidden" name="primaryurl" value="$primaryurl" />
+STATE
+}
+
+sub embedded_destination {
+    my $folder=$env{'form.folder'};
+    my $destination = 'docs/';
+    if ($folder =~ /^supplemental/) {
+        $destination = 'supplemental/';
+    }
+    if (($folder eq 'default') || ($folder eq 'supplemental')) {
+        $destination .= 'default/';
+    } elsif ($folder =~ /^(default|supplemental)_(\d+)$/) {
+        $destination .=  $2.'/';
+    }
+    $destination .= $env{'form.newidx'};
+    my $dir_root = '/userfiles';
+    return ($destination,$dir_root);
+}
+
+sub return_to_editor {
+    my $actionurl = '/adm/coursedocs';
+    return '<p><form name="backtoeditor" method="post" action="'.$actionurl.'" />'."\n". 
+           '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($env{'form.folderpath'},'<>&"').'" /></form>'."\n".
+           '<a href="javascript:document.backtoeditor.submit();">'.&mt('Return to Editor').
+           '</a></p>';
+}
+
 sub generate_admin_options {
-  my ($containertag,$uploadtag,$help_ref,$env_ref) = @_;
- my %lt=&Apache::lonlocal::texthash(
+  my ($help_ref,$env_ref) = @_;
+  my %lt=&Apache::lonlocal::texthash(
                                          '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 class='LC_menubuttons_link' href='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 class='LC_menubuttons_link' href='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 class='LC_menubuttons_link' href='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/document-properties.png" alt="'.$lt{sl}.'"  onclick=\'javascript:injectData(document.courseverify, "dummy", "docslog", "'.$lt{'sl'}.'")\'  />'
+        =>"<a class='LC_menubuttons_link' href='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>';
+  return '<form action="/adm/coursedocs" method="post" name="courseverify"><input type="hidden" id="dummy" />'.&create_form_ul(&create_list_elements(@list)).'</form>';
 
 }
 
 
 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;
@@ -3446,30 +3524,35 @@ 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 ne 'zz'){
+        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
+                .' onmouseover="javascript:showPage(this, \''.$name.$tid.'\', \'navigation'.$tid.'\',\'content'.$tid.'\');"'
+                .' 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>';
@@ -3504,6 +3587,18 @@ sub editing_js {
                                           p_ctr2b => '?[_98]'
                                         );
 
+    my $crstype = &Apache::loncommon::course_type();
+    my $docs_folderpath = &HTML::Entities::encode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.folderpath'},'<>&"');
+    my $docs_pagepath = &HTML::Entities::encode($env{'environment.internal.'.$env{'request.course.id'}.'.docs_folderpath.pagepath'},'<>&"');
+    my $main_container_page;
+    if ($docs_folderpath eq '') {
+        if ($docs_pagepath ne '') {
+            $main_container_page = 1;
+        }
+    }
+    my $toplevelmain = 'default&Main%20'.$crstype.'%20Documents';
+    my $toplevelsupp = &supplemental_base();
+
     return <<ENDNEWSCRIPT;
 function makenewfolder(targetform,folderseq) {
     var foldername=prompt('$lt{"p_mnf"}','$lt{"t_mnf"}');
@@ -3715,6 +3810,9 @@ function openTabs(pageId) {
 			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';
 			}	
@@ -3729,6 +3827,40 @@ function showPage(current, pageId, nav,
 	current.className = 'active';
 	currentData = document.getElementById(pageId);
 	currentData.style.display = 'block';
+        if (nav == 'mainnav') {
+            var storedpath = "$docs_folderpath";
+            if (storedpath == '') {
+                storedpath = "$docs_pagepath";
+            }
+            var storedpage = "$main_container_page";
+            var reg = new RegExp("^supplemental");
+            if (pageId == 'mainCourseDocuments') {
+                if (storedpage == 1) {
+                    document.simpleedit.folderpath.value = '';
+                    document.uploaddocument.folderpath.value = '';
+                } else {
+                    if (reg.test(storedpath)) {
+                        document.simpleedit.folderpath.value = '$toplevelmain';
+                        document.uploaddocument.folderpath.value = '$toplevelmain';
+                        document.newext.folderpath.value = '$toplevelmain';
+                    } else {
+                        document.simpleedit.folderpath.value = storedpath;
+                        document.uploaddocument.folderpath.value = storedpath;
+                        document.newext.folderpath.value = storedpath;
+                    }
+                }
+            } else {
+                if (reg.test(storedpath)) {
+                    document.simpleedit.folderpath.value = storedpath;
+                    document.supuploaddocument.folderpath.value = storedpath;
+                    document.supnewext.folderpath.value = storedpath;
+                } else {
+                    document.simpleedit.folderpath.value = '$toplevelsupp';
+                    document.supuploaddocument.folderpath.value = '$toplevelsupp';
+                    document.supnewext.folderpath.value = '$toplevelsupp';
+                }
+            }
+        }
 	return false;
 }