--- loncom/interface/londocs.pm	2009/09/24 22:15:27	1.325.4.2
+++ loncom/interface/londocs.pm	2009/03/08 21:49:33	1.353
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.325.4.2 2009/09/24 22:15:27 raeburn Exp $
+# $Id: londocs.pm,v 1.353 2009/03/08 21:49:33 weissno Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -44,7 +44,6 @@ use HTML::Entities;
 use GDBM_File;
 use Apache::lonlocal;
 use Cwd;
-use Apache::londocsgci();
 use LONCAPA qw(:DEFAULT :match);
 
 my $iconpath;
@@ -60,7 +59,6 @@ my $hadchanges;
 my %help=();
 
 
-
 sub mapread {
     my ($coursenum,$coursedom,$map)=@_;
     return
@@ -121,11 +119,9 @@ sub dumpbutton {
     my $type = &Apache::loncommon::course_type();
     if ($home+$other==0) { return ''; }
     if ($home) {
-	return '<div>'.
-	    '<input type="submit" name="dumpcourse" value="'.
+	return '<input type="submit" name="dumpcourse" value="'.
 	    &mt('Dump '.$type.' DOCS to Construction Space').'" />'.
-	    &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs').
-	    '</div>';
+	    &Apache::loncommon::help_open_topic('Docs_Dump_Course_Docs');
     } else {
 	return '<div>'.
      &mt('Dump '.$type.
@@ -137,7 +133,7 @@ sub dumpbutton {
 sub clean {
     my ($title)=@_;
     $title=~s/[^\w\/\!\$\%\^\*\-\_\=\+\;\:\,\\\|\`\~]+/\_/gs;
-    return $title;	
+    return $title;
 }
 
 
@@ -179,8 +175,8 @@ sub dumpcourse {
 	    my $fail=0;
 	    for (my $i=0;$i<$#dirs;$i++) {
 		$makepath.='/'.$dirs[$i];
-		unless (-e $makepath) { 
-		    unless(mkdir($makepath,0777)) { $fail=1; } 
+		unless (-e $makepath) {
+		    unless(mkdir($makepath,0777)) { $fail=1; }
 		}
 	    }
 	    $r->print('<br /><tt>'.$item.'</tt> => <tt>'.$newfilename.'</tt>: ');
@@ -266,10 +262,9 @@ sub dumpcourse {
 
 sub exportbutton {
     my $type = &Apache::loncommon::course_type();
-    return '<div>'.
-            '<input type="submit" name="exportcourse" value="'.
+    return '<input type="submit" name="exportcourse" value="'.
             &mt('Export '.$type.' to IMS').'" />'.
-    &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs').'</div>';
+    &Apache::loncommon::help_open_topic('Docs_Export_Course_Docs');
 }
 
 
@@ -402,10 +397,10 @@ sub exportcourse {
                     $display .= '<img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" /><img src="/adm/lonIcons/whitespace1.gif" class="LC_docs_spacer" />'."\n";
                 }
                 if ($curRes->is_sequence()) {
-                    $display .= '<img src="/adm/lonIcons/navmap.folder.open.gif" alt="" />&nbsp;'."\n";
+                    $display .= '<img src="/adm/lonIcons/navmap.folder.open.gif">&nbsp;'."\n";
                     $lastcontainer = $count + $startcount + $boards;
                 } elsif ($curRes->is_page()) {
-                    $display .= '<img src="/adm/lonIcons/navmap.page.open.gif" alt="" />&nbsp;'."\n";
+                    $display .= '<img src="/adm/lonIcons/navmap.page.open.gif">&nbsp;'."\n";
                     $lastcontainer = $count + $startcount + $boards;
                 }
                 my $currelem = $count+$boards+$startcount;
@@ -479,7 +474,7 @@ function containerCheck(item) {
 						 $scripttag));
 	$r->print(&Apache::lonhtmlcommon::breadcrumbs('Export '.lc($type).' to IMS content package'));
 	$r->print($display.'</table>'.
-                  '<p><input type="hidden" name="finishexport" value="1" />'.
+                  '<p><input type="hidden" name="finishexport" value="1">'.
                   '<input type="submit" name="exportcourse" value="'.
                   &mt('Export '.$type.' DOCS').'" /></p></form>');
     }
@@ -764,7 +759,7 @@ sub replicate_content {
     if ($caller eq 'templateupload') {
         $url = $symb;
         $url =~ s#//#/#g;
-    } else { 
+    } else {
         ($map,$ind,$url)=&Apache::lonnet::decode_symb($symb);
     }
     my $content;
@@ -804,9 +799,9 @@ sub replicate_content {
                     $$message = 'Could not render '.$url.' server message - '.$rtncode."<br />\n";
                 }
             } elsif ($caller eq 'noedit') {
-# Need to render the resource without the LON-CAPA Internal header and the Post discussion footer, and then set $content equal to this. 
+# Need to render the resource without the LON-CAPA Internal header and the Post discussion footer, and then set $content equal to this.
                 $repstatus = 'ok';
-                $content = 'Not the owner of this resource'; 
+                $content = 'Not the owner of this resource';
             }
             if ($repstatus eq 'ok') {
                 print $copiedfile $content;
@@ -857,8 +852,8 @@ sub extract_media {
             }
         }
         if ($caller eq 'resource') {
-            my $respath =  $Apache::lonnet::perlvar{'lonDocRoot'}.'/res';  
-            my $embed_path = &Apache::lonnet::filelocation($respath,$embed_url); 
+            my $respath =  $Apache::lonnet::perlvar{'lonDocRoot'}.'/res';
+            my $embed_path = &Apache::lonnet::filelocation($respath,$embed_url);
             $embed_content = &Apache::lonnet::getfile($embed_path);
             unless ($embed_content eq -1) {
                 $repstatus = 'ok';
@@ -926,7 +921,7 @@ sub group_import {
 
     while (@files) {
 	my ($name, $url, $residx) = @{ shift(@files) };
-        if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$}) 
+        if (($url =~ m{^/uploaded/\Q$coursedom\E/\Q$coursenum\E/(default_\d+\.)(page|sequence)$})
 	     && ($caller eq 'londocs')
 	     && (!&Apache::lonnet::stat_file($url))) {
 	    
@@ -949,7 +944,7 @@ sub group_import {
             }
         }
 	if ($url) {
-	    if (!$residx 
+	    if (!$residx
 		|| defined($LONCAPA::map::zombies[$residx])) {
 		$residx = &LONCAPA::map::getresidx($url,$residx);
 		push(@LONCAPA::map::order, $residx);
@@ -958,7 +953,7 @@ sub group_import {
 	    if ($url=~m{^http://} || $url=~m{^https://}) { $ext = 'true'; }
 	    $url  = &LONCAPA::map::qtunescape($url);
 	    $name = &LONCAPA::map::qtunescape($name);
-	    $LONCAPA::map::resources[$residx] = 
+	    $LONCAPA::map::resources[$residx] =
 		join(':', ($name, $url, $ext, 'normal', 'res'));
 	}
     }
@@ -989,9 +984,9 @@ sub breadcrumbs {
 	my $url='/adm/coursedocs?folderpath='.
 	    &escape($folderpath);
 	    my $name=&unescape($foldername);
-# randompick number, hidden, encrypted, random order, is appended with ":"s to the foldername	
+# randompick number, hidden, encrypted, random order, is appended with ":"s to the foldername
  	    $name=~s/\:(\d*)\:(\w*)\:(\w*):(\d*)$//;
-	    if ($1 ne '') { 
+	    if ($1 ne '') {
                $randompick=$1;
             } else {
                $randompick=-1;
@@ -1130,7 +1125,7 @@ sub docs_change_log {
 	    foreach my $key (@changes) {
 		$wholeentry.=':'.$docslog{$id}{'logentry'}{$key};
 	    }
-	    if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; }         
+	    if ($wholeentry!~/\Q$env{'form.containingphrase'}\E/i) { next; }
 	}
         my $count = 0;
         my $time =
@@ -1343,7 +1338,7 @@ sub do_paste_from_buffer {
 	    $db_name =~ s{_\d*$ }{_$now}x;
 	    my $result=&Apache::lonnet::put($db_name,\%contents,
 					    $coursedom,$coursenum);
-	    $url =~ s{/(\d*)/smppg$ }{/$now/smppg}x; 
+	    $url =~ s{/(\d*)/smppg$ }{/$now/smppg}x;
 	    $title=&mt('Copy of').' '.$title;
 	}
     }
@@ -1357,7 +1352,7 @@ sub do_paste_from_buffer {
         if ($folder =~ /^supplemental/) {
             $title = $env{'docs.markedcopy_supplemental'};
         } else {
-            (undef,undef,$title) = 
+            (undef,undef,$title) =
                 &parse_supplemental_title($env{'docs.markedcopy_supplemental'});
         }
     } else {
@@ -1381,7 +1376,7 @@ sub uniqueness_check {
         $url=&LONCAPA::map::qtescape($url);
         if ($newurl eq $url) {
             $unique = 0;
-            last;    
+            last;
         }
     }
     return $unique;
@@ -1435,7 +1430,7 @@ sub handle_edit_cmd {
 	&LONCAPA::map::makezombie($LONCAPA::map::order[$idx]);
 	splice(@LONCAPA::map::order, $idx, 1);
 
-    } elsif ($cmd eq 'up' 
+    } elsif ($cmd eq 'up'
 	     && ($idx) && (defined($LONCAPA::map::order[$idx-1]))) {
 	@LONCAPA::map::order[$idx-1,$idx] = @LONCAPA::map::order[$idx,$idx-1];
 
@@ -1502,7 +1497,7 @@ sub editor {
 	}
 	    
 	if ($env{'form.pastemarked'}) {
-            my $paste_res = 
+            my $paste_res =
                 &do_paste_from_buffer($coursenum,$coursedom,$folder);
             if ($paste_res eq 'ok') {
                 ($errtext,$fatal) = &storemap($coursenum,$coursedom,$folder.'.'.$container);
@@ -1665,7 +1660,7 @@ sub process_file_upload {
    <input type="hidden" name="phasetwo" value="'.$total_embedded.'" />';
 		    $phase_status = 'phasetwo';
 
-                    $$upload_output .= 
+                    $$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);
@@ -1768,19 +1763,19 @@ sub entryline {
 	my $incindex=$index+1;
 	my $selectbox='';
 	if (($folder!~/^supplemental/) &&
-	    ($#LONCAPA::map::order>0) && 
+	    ($#LONCAPA::map::order>0) &&
 	    ((split(/\:/,
-	     $LONCAPA::map::resources[$LONCAPA::map::order[0]]))[1] 
-	     ne '') && 
+	     $LONCAPA::map::resources[$LONCAPA::map::order[0]]))[1]
+	     ne '') &&
 	    ((split(/\:/,
-	     $LONCAPA::map::resources[$LONCAPA::map::order[1]]))[1] 
+	     $LONCAPA::map::resources[$LONCAPA::map::order[1]]))[1]
 	     ne '')) {
 	    $selectbox=
 		'<input type="hidden" name="currentpos" value="'.$incindex.'" />'.
 		'<select name="newpos" onChange="this.form.submit()">';
 	    for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) {
 		if ($i==$incindex) {
-		    $selectbox.='<option value="" selected="selected">('.$i.')</option>';
+		    $selectbox.='<option value="" selected="1">('.$i.')</option>';
 		} else {
 		    $selectbox.='<option value="'.$i.'">'.$i.'</option>';
 		}
@@ -1810,8 +1805,8 @@ sub entryline {
 		}
 	    }
 	}
-        if ($url=~/^\/res\/lib\/templates\//) { 
-           $nocopy=1; 
+        if ($url=~/^\/res\/lib\/templates\//) {
+           $nocopy=1;
            $nocut=1;
         }
         my $copylink='&nbsp;';
@@ -1926,7 +1921,7 @@ END
 	    } elsif ($url!~/\.(sequence|page)$/) {
 		$url='/adm/coursedocs/showdoc'.$url;
 	    }
-	} elsif ($url=~m|^/ext/|) { 
+	} elsif ($url=~m|^/ext/|) {
 	    $url='/adm/wrapper'.$url;
 	    $external = 1;
 	}
@@ -1947,7 +1942,7 @@ END
 	my $foldername=&escape($foldertitle);
 	my $folderpath=$env{'form.folderpath'};
 	if ($folderpath) { $folderpath.='&' };
-# Append randompick number, hidden, and encrypted with ":" to foldername, 
+# Append randompick number, hidden, and encrypted with ":" to foldername,
 # so it gets transferred between levels
 	$folderpath.=$folderarg.'&'.$foldername.':'.(&LONCAPA::map::getparameter($orderidx,
                                               'parameter_randompick'))[0]
@@ -1967,7 +1962,7 @@ END
     	my $ro_set=
 	    ((&LONCAPA::map::getparameter($orderidx,'parameter_randomorder'))[0]=~/^yes$/i?' checked="checked"':'');
 	$rand_order_text ='
-<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onClick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>';   
+<span class="LC_nobreak"><label><input type="checkbox" name="randomorder_'.$orderidx.'" onClick="this.form.changeparms.value=\'randomorder\';this.form.submit()" '.$ro_set.' /> '.&mt('Random Order').' </label></span>';
     }
     if ($ispage) {
         my $pagename=&escape($pagetitle);
@@ -2005,9 +2000,9 @@ END
  			      'hd' => 'Hidden',
  			      'ec' => 'URL hidden');
 	my $enctext=
-	    ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="checked"':'');
+	    ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':'');
 	my $hidtext=
-	    ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="checked"':'');
+	    ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
 	$line.=(<<ENDPARMS);
   <td class="LC_docs_entry_parameter">
     $form_start
@@ -2099,7 +2094,7 @@ sub checkonthis {
                  if (($errorcount) ||
                      ($warningcount)) {
 		     if ($errorcount) {
-                        $r->print('<img src="/adm/lonMisc/bomb.gif" alt="" /><span class="LC_error">'.
+                        $r->print('<img src="/adm/lonMisc/bomb.gif" /><span class="LC_error">'.
                           &mt('[quant,_1,error]',$errorcount).'</span>');
                      }
 		     if ($warningcount) {
@@ -2124,7 +2119,7 @@ sub checkonthis {
 	      unless ($url=~/\$/) {
 		  $r->print('<span class="LC_error">'.&mt('not found').'</b></span>');
 	      } else {
-		  $r->print('<span class="LC_error">'.&mt('unable to verify variable URL').'</span>');
+		  $r->print('<span class="LC_unknown">'.&mt('unable to verify variable URL').'</span>');
 	      }
           } else {
              $r->print('<span class="LC_error">'.&mt('access denied').'</span>');
@@ -2258,7 +2253,7 @@ sub checkversions {
     if ($haschanged) {
         if (&Apache::lonnet::put('resourceversions',\%newsetversions,
 			  $env{'course.'.$env{'request.course.id'}.'.domain'},
-			  $env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') {		
+			  $env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') {
 	    $r->print('<h1>'.&mt('Your Version Settings have been Saved').'</h1>');
 	} else {
 	    $r->print('<h1><span class="LC_error">'.&mt('An Error Occured while Attempting to Save your Version Settings').'</span></h1>');
@@ -2410,7 +2405,7 @@ ENDHEADERS
                 $entries_per_col = $num_entries/4 + 1;
             }
             my $entries_count = 0;
-            $r->print('<td valign="top"><font size="-2">'); 
+            $r->print('<td valign="top"><font size="-2">');
             my $cols_output = 1;
             for (my $prevvers=$lastold;$prevvers<$currentversion;$prevvers++) {
 		my $url=$root.'.'.$prevvers.'.'.$extension;
@@ -2489,7 +2484,7 @@ sub changewarning {
 	$message='Changes will become active for your current session after [_1], or the next time you log in.';
     }
     $r->print("\n\n".
-'<script type="text/javascript">function reinit(tf) { tf.submit();'.$postexec.' }</script>'."\n". 
+'<script type="text/javascript">function reinit(tf) { tf.submit();'.$postexec.' }</script>'."\n".
 '<form name="reinitform" method="post" action="/adm/roles" target="loncapaclient">'.
 '<input type="hidden" name="orgurl" value="'.$url.
 '" /><input type="hidden" name="selectrole" value="1" /><h3><span class="LC_warning">'.
@@ -2524,14 +2519,6 @@ sub handler {
     return OK if $r->header_only;
     my $type = &Apache::loncommon::course_type();
 
-    my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'};
-    if ($coursedom eq 'gcitest') {
-        my $allowed=&Apache::lonnet::allowed('mdc',$env{'request.course.id'});
-        if ($allowed) {
-            &concept_test_builder($r);
-            return OK;
-        }
-    }
 
 # --------------------------------------------- Initialize help topics for this
     foreach my $topic ('Adding_Course_Doc','Main_Course_Documents',
@@ -2551,9 +2538,9 @@ sub handler {
 		    'Option_Response_Simple');
     $help{'Bulletin Board'} = &Apache::loncommon::help_open_topic(
 		    'Docs_About_Bulletin_Board,Docs_Editing_Templated_Pages');
-    $help{'My Personal Info'} = &Apache::loncommon::help_open_topic(
+    $help{'My Personal Information Page'} = &Apache::loncommon::help_open_topic(
 		  'Docs_About_My_Personal_Info,Docs_Editing_Templated_Pages');
-    $help{'Group Files'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files');
+    $help{'Group Portfolio'} = &Apache::loncommon::help_open_topic('Docs_About_Group_Files');
     $help{'Caching'} = &Apache::loncommon::help_open_topic('Caching');
 
 # does this user have privileges to modify docs
@@ -2586,6 +2573,8 @@ sub handler {
     my $showdoc=0;
     my $containertag;
     my $uploadtag;
+
+
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
 					    ['folderpath','pagepath',
 					     'pagesymb']);
@@ -2627,15 +2616,15 @@ sub handler {
        $showdoc='/'.$1;
     }
     unless ($showdoc) { # got called from remote
-       if (($env{'form.folder'}=~/^(?:group|default)_/) || 
+       if (($env{'form.folder'}=~/^(?:group|default)_/) ||
           ($env{'form.folder'} =~ m:^\d+/(pages|sequences)/:)) {
            $forcestandard = 1;
        } 
        $forcesupplement=($env{'form.folder'}=~/^supplemental_/);
 
-       if ($allowed) { 
+       if ($allowed) {
          &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['cmd']);
-         $script=&Apache::lonratedt::editscript('simple'); 
+         $script=&Apache::lonratedt::editscript('simple');
        }
     } else { # got called in sequence from course
        $allowed=0;
@@ -2645,7 +2634,7 @@ sub handler {
     my $coursenum=$env{'course.'.$env{'request.course.id'}.'.num'};
     my $coursedom=$env{'course.'.$env{'request.course.id'}.'.domain'};
 
-# get personal data 
+# get personal data
     my $uname=$env{'user.name'};
     my $udom=$env{'user.domain'};
     my $plainname=&escape(&Apache::loncommon::plainname($uname,$udom));
@@ -2671,7 +2660,7 @@ sub handler {
   if ($allowed) {
       if (($env{'form.uploaddoc.filename'}) &&
 	  ($env{'form.cmd'}=~/^upload_(\w+)/)) {
-# Process file upload - phase one - upload and parse primary file.  
+# Process file upload - phase one - upload and parse primary file.
 	  undef($hadchanges);
           $upload_result = &process_file_upload(\$upload_output,$coursenum,
 						$coursedom,\%allfiles,
@@ -2696,8 +2685,8 @@ sub handler {
                   $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/##; 
+                      $javacodebase =  &unescape($env{'form.embedded_codebase_'.$i});
+                      $origname{$i} =~ s#^\Q$javacodebase\E/##;
                   }
                   my @attributes = ();
                   if ($env{'form.embedded_attrib_'.$i} =~ /:/) {
@@ -2734,7 +2723,7 @@ sub handler {
                           }
                           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; 
+                          $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
@@ -2746,7 +2735,7 @@ sub handler {
                   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); 
+                  &Apache::lonnet::logthis('retrieval of uploaded file - '.$primary_url.' - for editing, failed: '.$getstatus);
               }
           }
       }
@@ -2758,9 +2747,8 @@ sub handler {
                 'uplm' => 'Upload a new main '.lc($type).' document',
                 'upls' => 'Upload a new supplemental '.lc($type).' document',
                 'impp' => 'Import a document',
-                'pubd' => 'Published documents',
+                'pubd' => 'Published Documents',
 		'copm' => 'All documents out of a published map into this folder',
-                'spec' => 'Special documents',
                 'upld' => 'Upload Document',
                 'srch' => 'Search',
                 'impo' => 'Import',
@@ -2779,20 +2767,93 @@ sub handler {
                 'scuf' => 'Score Upload Form',
                 'bull' => 'Discussion Board',
                 'mypi' => 'My Personal Information Page',
-                'grpo' => 'Group Portfolios',
+                'grpo' => 'Group Portfolio',
                 'rost' => 'Course Roster',
-		'abou' => 'About User',
+				'abou' => 'Personal Information Page for a User',
                 'imsf' => 'Import IMS package',
                 'file' =>  'File',
                 'title' => 'Title',
                 'comment' => 'Comment',
-                'parse' => 'If HTML file, upload embedded images/multimedia files'
+                'parse' => 'Upload embedded images/multimedia files if HTML file!',
+		'nd' => 'New Document',
+		'pm' => 'Published Map',
+		'sd' => 'Special Document',
+		'mo' => 'More Options',
+		'hao' => 'Hide all Options'
 					  );
 # -----------------------------------------------------------------------------
+	my $fileupload=(<<FIUP);
+	$lt{'file'}:<br />
+	<input type="file" name="uploaddoc" size="40" />
+FIUP
+
+	my $checkbox=(<<CHBO);
+	<!-- <label>$lt{'parse'}?
+	<input type="checkbox" name="parserflag" />
+	</label> -->
+	<label>
+	<input type="checkbox" name="parserflag" checked="checked" /> $lt{'parse'}
+	</label>
+CHBO
+
+	my $fileuploadform=(<<FUFORM);
+	<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data">
+	$fileupload
+	<br />
+	$lt{'title'}:<br />
+	<input type="text" size="50" name="comment" />
+	$uploadtag
+	<input type="hidden" name="cmd" value="upload_default" />
+	<br />
+	<span class="LC_nobreak">
+	$checkbox
+	</span>
+	<br />
+	<br />
+	<span class="LC_nobreak">
+	<input type="submit" value="$lt{'upld'}" />
+	 $help{'Uploading_From_Harddrive'}
+	</span>
+	</form>
+FUFORM
+
+	my $simpleeditdefaultform=(<<SEDFFORM);
+	<form action="/adm/coursedocs" method="post" name="simpleeditdefault">
+	$lt{'pubd'}<br />
+	$uploadtag
+	<input type="button" onClick="javascript:groupsearch()" value="$lt{'srch'}" />
+	<br />
+	<span class="LC_nobreak">
+	<input type="button" onClick="javascript:groupimport();" value="$lt{'impo'}" />
+	$help{'Importing_LON-CAPA_Resource'}
+	</span>
+	<br />
+	<input type="button" onClick="javascript:groupopen(0,1,1);" value="$lt{'book'}" />
+	<hr />
+	<p>
+	$lt{'copm'}<br />
+	<input type="text" size="40" name="importmap" /><br />
+	<span class="LC_nobreak"><input type="button"
+	onClick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')"
+	value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" />
+	$help{'Load_Map'}</span>
+	</p>
+	</form>
+SEDFFORM
+
+	my $extresourcesform=(<<ERFORM);
+	<form action="/adm/coursedocs" method="post" name="newext">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newext" type="button" onClick="javascript:makenewext('newext');"
+	value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
+	</span>
+	</form>
+ERFORM
+
     if ($allowed) {
 	&update_paste_buffer($coursenum,$coursedom);
-       my $dumpbut=&dumpbutton();
-       my $exportbut=&exportbutton();
        my %lt=&Apache::lonlocal::texthash(
 					 'vc' => 'Verify Content',
 					 'cv' => 'Check/Set Resource Versions',
@@ -2812,51 +2873,49 @@ sub handler {
            $containertag = '<input type="hidden" name="folderpath" value="" />';
            $uploadtag = '<input type="hidden" name="folderpath" value="'.&HTML::Entities::encode($folderpath,'<>&"').'" />';
        }
-
-       $r->print(<<ENDCOURSEVERIFY);
-<form name="renameform" method="post" action="/adm/coursedocs">
-  <input type="hidden" name="title" />
-  <input type="hidden" name="cmd" />
-  <input type="hidden" name="markcopy" />
-  <input type="hidden" name="copyfolder" />
-  $containertag
-</form>
-<form name="simpleedit" method="post" action="/adm/coursedocs">
-  <input type="hidden" name="importdetail" value="" />
-  $uploadtag
-</form>
-<form action="/adm/coursedocs" method="post" name="courseverify">
-  <div class="LC_docs_course_commands">
-
-      <div>
-        <input type="submit" name="verify" value="$lt{'vc'}" />$help{'Verify_Content'}
-      </div>
-      <div>
-        <input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'}
-      </div>
-        $dumpbut
-        $exportbut
-      <div>
-        <input type="submit" name="listsymbs" value="$lt{'ls'}" />
-      </div>
-      <div>
-        <input type="hidden" name="folder" value="$env{'form.folder'}" />
-        <input type="submit" name="docslog" value="$lt{'sl'}" />
-      </div>
-  </div>
-</form>
-<div style="clear: both; height: 0px;">&nbsp;</div>
-ENDCOURSEVERIFY
-       $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
-		     &mt('Editing the Table of Contents for your '.$type)));
+	$r->print(<<HIDDENFORM);
+	<form name="renameform" method="post" action="/adm/coursedocs">
+   <input type="hidden" name="title" />
+   <input type="hidden" name="cmd" />
+   <input type="hidden" name="markcopy" />
+   <input type="hidden" name="copyfolder" />
+   $containertag
+ </form>
+ <form name="simpleedit" method="post" action="/adm/coursedocs">
+   <input type="hidden" name="importdetail" value="" />
+   $uploadtag
+ </form>
+HIDDENFORM
+    }
+# --------------------------------------------------------- Main tab structure
+    my $activeClass = 1;
+    $r->print('<ul class="LC_TabContentBigger" id="mainnav">');
+    if (($standard) && ($allowed) && (!$forcesupplement)) {
+	my $active = '';
+        if($activeClass == 1){
+           $active = 'class="active"';
+	   $activeClass = 0;
+	}
+	$r->print('<li '.$active.'onclick="javascript:showPage(this,\'Main Course Documents\',\'mainnav\',\'maincoursedoc\');">'.&mt('Main Course Documents').'</li>');
+    }
+    if (!$forcestandard) {
+	my $active = '';
+        if($activeClass == 1){
+           $active = 'class="active"';
+        }
+	$r->print('<li '.$active.'onclick="javascript:showPage(this,\'Supplemental Course Documents\',\'mainnav\',\'maincoursedoc\');">'.&mt('Supplemental Course Documents').'</li>');
     }
+    $r->print('<li onclick="javascript:showPage(this,\'Special Admin Options\',\'mainnav\',\'maincoursedoc\');">'.&mt('Special Admin Options').'</li>');
+    $r->print('</ul><div class="LC_ContentBoxSpecial" style="margin:0 0;padding:0 0;"><div id="maincoursedoc" style="margin:0 0;padding:0 0;">');
 # --------------------------------------------------------- Standard documents
-    $r->print('<table class="LC_docs_documents">');
-
     if (($standard) && ($allowed) && (!$forcesupplement)) {
-	$r->print('<tr><td class="LC_docs_document">');
-#  '<h2>'.&mt('Main Course Documents').
-#  ($allowed?' '.$help{'Main_Course_Documents'}:'').'</h2>');
+       my $active = 'style="display: none;"';
+       if($activeClass == 0){
+          $active = 'style="display: block;"';
+       }
+       $r->print('<div class="LC_ContentBox" id="Main Course Documents" '.$active.'>');
+        $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
+                     &mt('Editing the Table of Contents for your '.$type)));
        my $folder=$env{'form.folder'};
        if ($folder eq '' || $folder eq 'supplemental') {
            $folder='default';
@@ -2870,16 +2929,6 @@ ENDCOURSEVERIFY
        } else {
            #$postexec='self.close();';
        }
-       $hadchanges=0;
-       my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,
-			   $upload_output,$type);
-       if ($error) {
-	   $r->print('<p><span class="LC_error">'.$error.'</span></p>');
-       }
-       if ($hadchanges) {
-	   &mark_hash_old();
-       }
-       &changewarning($r,$postexec);
        my $folderseq='/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.
                      '.sequence';
        my $pageseq = '/uploaded/'.$coursedom.'/'.$coursenum.'/default_'.time.
@@ -2889,230 +2938,231 @@ ENDCOURSEVERIFY
 	    $container='page';
 	}
 	my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container;
-       $r->print(<<ENDFORM);
-<table class="LC_docs_adddocs">
-<tr>
-<th>$lt{'uplm'}</th>
-<th>$lt{'impp'}</th>
-<th>$lt{'spec'}</th>
-</tr>
-<tr>
-<td>
-$lt{'file'}:<br />
-<form name="uploaddocument" action="/adm/coursedocs" method="post" enctype="multipart/form-data">
-<input type="file" name="uploaddoc" size="40" />
-<br />
-$lt{'title'}:<br />
-<input type="text" size="50" name="comment" />
-$uploadtag
-<input type="hidden" name="cmd" value="upload_default" />
-<br />
-<span class="LC_nobreak">
-<label>$lt{'parse'}?
-<input type="checkbox" name="parserflag" checked="checked" />
-</label>
-</span>
-<br />
-<br />
-<span class="LC_nobreak">
-<input type="submit" value="$lt{'upld'}" />
- $help{'Uploading_From_Harddrive'}
-</span>
-</form>
-</td>
-<td>
-<form action="/adm/coursedocs" method="post" name="simpleeditdefault">
-$lt{'pubd'}<br />
-$uploadtag
-<input type="button" onClick="javascript:groupsearch()" value="$lt{'srch'}" />
-<br />
-<span class="LC_nobreak">
-<input type="button" onClick="javascript:groupimport();" value="$lt{'impo'}" />
-$help{'Importing_LON-CAPA_Resource'}
-</span>
-<br />
-<input type="button" onClick="javascript:groupopen(0,1,1);" value="$lt{'book'}" />
-<hr />
-<p>
-$lt{'copm'}<br />
-<input type="text" size="40" name="importmap" /><br />
-<span class="LC_nobreak"><input type="button" 
-onClick="javascript:openbrowser('simpleeditdefault','importmap','sequence,page','')"
-value="$lt{'selm'}" /> <input type="submit" name="loadmap" value="$lt{'load'}" />
-$help{'Load_Map'}</span>
-</p>
-</form>
-<hr />
-<form action="/adm/groupsort" method="post" name="recover">
-<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />
-</form>
-ENDFORM
-       unless ($env{'form.pagepath'}) {
-	   $r->print(<<ENDFORM);
-<hr />
-<form action="/adm/coursedocs" method="post" name="newext">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newext" type="button" onClick="javascript:makenewext('newext');"
-value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
-</span>
-</form>
-<br /><form action="/adm/imsimportdocs" method="post" name="ims">
-<input type="hidden" name="folder" value="$folder" />
-<input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" />
-</form>
-ENDFORM
-       }
-       $r->print('</td><td>');
+
+
+
+	my $recoverform=(<<RFORM);
+	<form action="/adm/groupsort" method="post" name="recover">
+	<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />
+	</form>
+RFORM
+
+	my $imspform=(<<IMSPFORM);
+	<form action="/adm/imsimportdocs" method="post" name="ims">
+	<input type="hidden" name="folder" value="$folder" />
+	<input name="imsimport" type="button" value="$lt{'imsf'}" onClick="javascript:makeims();" />
+	</form>
+IMSPFORM
+
+	my $newnavform=(<<NNFORM);
+	<form action="/adm/coursedocs" method="post" name="newnav">
+	$uploadtag
+	<input type="hidden" name="importdetail" 
+	value="$lt{'navc'}=/adm/navmaps" />
+	<span class="LC_nobreak">
+	<input name="newnav" type="submit" value="$lt{'navc'}" />
+	$help{'Navigate_Content'}
+	</span>
+	</form>
+NNFORM
+	my $newsmppageform=(<<NSPFORM);
+	<form action="/adm/coursedocs" method="post" name="newsmppg">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newsmppg" type="button" value="$lt{'sipa'}"
+	onClick="javascript:makesmppage();" /> $help{'Simple Page'}
+	</span>
+	</form>
+NSPFORM
+
+	my $newsmpproblemform=(<<NSPROBFORM);
+	<form action="/adm/coursedocs" method="post" name="newsmpproblem">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newsmpproblem" type="button" value="$lt{'sipr'}"
+	onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
+	</span>
+	</form>
+
+NSPROBFORM
+
+	my $newdropboxform=(<<NDBFORM);
+	<form action="/adm/coursedocs" method="post" name="newdropbox">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newdropbox" type="button" value="$lt{'drbx'}"
+	onClick="javascript:makedropbox();" />
+	</span>
+	</form>
+NDBFORM
+
+	my $newexuploadform=(<<NEXUFORM);
+	<form action="/adm/coursedocs" method="post" name="newexamupload">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newexamupload" type="button" value="$lt{'scuf'}"
+	onClick="javascript:makeexamupload();" />
+	$help{'Score_Upload_Form'}
+	</span>
+	</form>
+NEXUFORM
+
+	my $newbulform=(<<NBFORM);
+	<form action="/adm/coursedocs" method="post" name="newbul">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newbulletin" type="button" value="$lt{'bull'}"
+	onClick="javascript:makebulboard();" />
+	$help{'Bulletin Board'}
+	</span>
+	</form>
+NBFORM
+
+	my $newaboutmeform=(<<NAMFORM);
+	<form action="/adm/coursedocs" method="post" name="newaboutme">
+	$uploadtag
+	<input type="hidden" name="importdetail" 
+	value="$plainname=/adm/$udom/$uname/aboutme" />
+	<span class="LC_nobreak">
+	<input name="newaboutme" type="submit" value="$lt{'mypi'}" />
+	$help{'My Personal Information Page'}
+	</span>
+	</form>
+NAMFORM
+
+	my $newaboutsomeoneform=(<<NASOFORM);
+	<form action="/adm/coursedocs" method="post" name="newaboutsomeone">
+	$uploadtag
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newaboutsomeone" type="button" value="$lt{'abou'}" 
+	onClick="javascript:makeabout();" />
+	</span>
+	</form>
+NASOFORM
+
+
+	my $newrosterform=(<<NROSTFORM);
+	<form action="/adm/coursedocs" method="post" name="newroster">
+	$uploadtag
+	<input type="hidden" name="importdetail" 
+	value="$lt{'rost'}=/adm/viewclasslist" />
+	<span class="LC_nobreak">
+	<input name="newroster" type="submit" value="$lt{'rost'}" />
+	$help{'Course Roster'}
+	</span>
+	</form>
+NROSTFORM
+
+my $specialdocumentsform;
+my $newfolderform;
+
        unless ($env{'form.pagepath'}) {
 	   my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
-           $r->print(<<ENDFORM);
-<br /><form action="/adm/coursedocs" method="post" name="newfolder">
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newfolder" type="button"
-onClick="javascript:makenewfolder(this.form,'$folderseq');"
-value="$lt{'newf'}" />$help{'Adding_Folders'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newpage">
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newpage" type="button"
-onClick="javascript:makenewpage(this.form,'$pageseq');"
-value="$lt{'newp'}" />$help{'Adding_Pages'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newsyl">
-$uploadtag
-<input type="hidden" name="importdetail" 
-value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />
-<span class="LC_nobreak">
-<input name="newsyl" type="submit" value="$lt{'syll'}" /> 
- $help{'Syllabus'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newnav">
-$uploadtag
-<input type="hidden" name="importdetail" 
-value="$lt{'navc'}=/adm/navmaps" />
-<span class="LC_nobreak">
-<input name="newnav" type="submit" value="$lt{'navc'}" />
-$help{'Navigate_Content'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newsmppg">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newsmppg" type="button" value="$lt{'sipa'}"
-onClick="javascript:makesmppage();" /> $help{'Simple Page'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newsmpproblem">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newsmpproblem" type="button" value="$lt{'sipr'}"
-onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newdropbox">
-$uploadtag      
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">          
-<input name="newdropbox" type="button" value="$lt{'drbx'}"
-onClick="javascript:makedropbox();" />
-</span>         
-</form> 
-<br /><form action="/adm/coursedocs" method="post" name="newexamupload">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newexamupload" type="button" value="$lt{'scuf'}"
-onClick="javascript:makeexamupload();" />
-$help{'Score_Upload_Form'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newbul">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newbulletin" type="button" value="$lt{'bull'}"
-onClick="javascript:makebulboard();" />
-$help{'Bulletin Board'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newaboutme">
-$uploadtag
-<input type="hidden" name="importdetail" 
-value="$plainname=/adm/$udom/$uname/aboutme" />
-<span class="LC_nobreak">
-<input name="newaboutme" type="submit" value="$lt{'mypi'}" />
-$help{'My Personal Info'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newaboutsomeone">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newaboutsomeone" type="button" value="$lt{'abou'}" 
-onClick="javascript:makeabout();" />
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newgroupfiles">
-$uploadtag
-<input type="hidden" name="importdetail"
-value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" />
-<span class="LC_nobreak">
-<input name="newgroupfiles" type="submit" value="$lt{'grpo'}" />
-$help{'Group Files'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newroster">
-$uploadtag
-<input type="hidden" name="importdetail" 
-value="$lt{'rost'}=/adm/viewclasslist" />
-<span class="LC_nobreak">
-<input name="newroster" type="submit" value="$lt{'rost'}" />
-$help{'Course Roster'}
-</span>
-</form>
-ENDFORM
+
+	my $newpageform=(<<NPFORM);
+	<form action="/adm/coursedocs" method="post" name="newpage">
+	<input type="hidden" name="folderpath" value="$path" />
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newpage" type="button"
+	onClick="javascript:makenewpage(this.form,'$pageseq');"
+	value="$lt{'newp'}" />$help{'Adding_Pages'}
+	</span>
+	</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="" />
+	<span class="LC_nobreak">
+	<input name="newfolder" type="button"
+	onClick="javascript:makenewfolder(this.form,'$folderseq');"
+	value="$lt{'newf'}" />$help{'Adding_Folders'}
+	</span>
+	</form>
+NFFORM
+
+	my $newsylform=(<<NSYLFORM);
+	<form action="/adm/coursedocs" method="post" name="newsyl">
+	$uploadtag
+	<input type="hidden" name="importdetail" 
+	value="$lt{'syll'}=/public/$coursedom/$coursenum/syllabus" />
+	<span class="LC_nobreak">
+	<input name="newsyl" type="submit" value="$lt{'syll'}" /> 
+	$help{'Syllabus'}
+	</span>
+	</form>
+NSYLFORM
+	
+	my $newgroupfileform=(<<NGFFORM);
+	<form action="/adm/coursedocs" method="post" name="newgroupfiles">
+	$uploadtag
+	<input type="hidden" name="importdetail"
+	value="$lt{'grpo'}=/adm/$coursedom/$coursenum/aboutme" />
+	<span class="LC_nobreak">
+	<input name="newgroupfiles" type="submit" value="$lt{'grpo'}" />
+	$help{'Group Portfolio'}
+	</span>
+	</form>
+NGFFORM
+
+	$specialdocumentsform="<br />$newpageform<br />$newsylform<br />$newgroupfileform";
+      }
+	$specialdocumentsform.="<br />$newnavform<br />$newsmppageform
+				<br />$newsmpproblemform<br />$newdropboxform
+       				<br />$newexuploadform<br />$newbulform
+       				<br />$newaboutmeform<br />$newaboutsomeoneform
+       				<br />$newrosterform";
+if($env{'form.pagepath'}) {
+	$specialdocumentsform="<br />$newsmpproblemform<br />$newexuploadform";
+}
+
+my %orderhash = (
+                'aa' => 'New Document',
+                'bb' => 'Published Documents',
+                'cc' => 'Special Documents',
+		'dd' => 'More Options',
+                'zz' => 'Hide all Options',
+                );
+my %namehash = (
+                'New Document' => $fileuploadform.'<br />'.$newfolderform,
+                'Published Documents' => $simpleeditdefaultform,
+                'Special Documents' => $specialdocumentsform,
+		'More Options' => $extresourcesform.'<br />'.$imspform.'<br />'.$recoverform,
+                );
+my $tid='1';
+my $content='content';
+my $navigation='navigation';
+my $varcd = 'Main Course Documents';
+$r->print(&generate_edit_table($tid,$content,$navigation,$varcd,\%namehash,\%orderhash));
+ $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();
+       }
+
+       &changewarning($r,'');
+$r->print('</div>');
        if ($env{'form.pagepath'}) {
-           $r->print(<<ENDBLOCK);
-<form action="/adm/coursedocs" method="post" name="newsmpproblem">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newsmpproblem" type="button" value="$lt{'sipr'}"
-onClick="javascript:makesmpproblem();" />$help{'Simple Problem'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="newexamupload">
-$uploadtag
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newexamupload" type="button" value="$lt{'scuf'}"
-onClick="javascript:makeexamupload();" />
-$help{'Score_Upload_Form'}
-</span>
-</form>
-ENDBLOCK
        }
-       $r->print('</td></tr>'."\n".
-'</table>');
-       $r->print('</td></tr>');
     }
 # ----------------------------------------------------- Supplemental documents
     if (!$forcestandard) {
-       $r->print('<tr><td class="LC_docs_document">');
-# '<h2>'.&mt('Supplemental Course Documents').
-#  ($allowed?' '.$help{'Supplemental'}:'').'</h2>');
+       my $active = 'style="display: none;"';
+       if($activeClass == 1){
+          $active = 'style="display: block;"';
+       }
+       $r->print('<div class="LC_ContentBox" id="Supplemental Course Documents" '.$active.'>');
        my $folder=$env{'form.folder'};
        unless ($folder=~/^supplemental/) {
 	   $folder='supplemental';
@@ -3122,87 +3172,114 @@ ENDBLOCK
           $env{'form.folderpath'} = 'supplemental&'.
                                     &escape(&mt('Supplemental '.$type.' Documents'));
        }
-       my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
-       if ($error) {
-	   $r->print('<p><span class="LC_error">'.$error.'</span></p>');
-       }
        if ($allowed) {
 	   my $folderseq=
 	       '/uploaded/'.$coursedom.'/'.$coursenum.'/supplemental_'.time.
 	       '.sequence';
 
 	   my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
-	   $r->print(<<ENDSUPFORM);
-<table class="LC_docs_adddocs"><tr>
-<th>$lt{'upls'}</th>
-<th>$lt{'spec'}</th>
-</tr>
-<tr><td>
-<form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
-<input type="file" name="uploaddoc" size="40" />
-<br />
-<br />
-<span class="LC_nobreak">
-<label>$lt{'parse'}?
-<input type="checkbox" name="parserflag" />
-</label>
-</span>
-<br /><br />
-$lt{'comment'}:<br />
-<textarea cols="50" rows="4" name="comment">
-</textarea>
-<br />
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="cmd" value="upload_supplemental" />
-<span class="LC_nobreak">
-<input type="submit" value="$lt{'upld'}" />
- $help{'Uploading_From_Harddrive'}
-</span>
-</form>
-</td>
-<td>
-<form action="/adm/coursedocs" method="post" name="supnewfolder">
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newfolder" type="button"
-onClick="javascript:makenewfolder(this.form,'$folderseq');"
-value="$lt{'newf'}" /> $help{'Adding_Folders'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="supnewext">
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="importdetail" value="" />
-<span class="LC_nobreak">
-<input name="newext" type="button" 
-onClick="javascript:makenewext('supnewext');"
-value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="supnewsyl">
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="importdetail" 
-value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
-<span class="LC_nobreak">
-<input name="newsyl" type="submit" value="$lt{'syll'}" />
-$help{'Syllabus'}
-</span>
-</form>
-<br /><form action="/adm/coursedocs" method="post" name="subnewaboutme">
-<input type="hidden" name="folderpath" value="$path" />
-<input type="hidden" name="importdetail" 
-value="$plainname=/adm/$udom/$uname/aboutme" />
-<span class="LC_nobreak">
-<input name="newaboutme" type="submit" value="$lt{'mypi'}" />
-$help{'My Personal Info'}
-</span>
-</form>
-</td></tr>
-</table></td></tr>
-ENDSUPFORM
+
+	my $supupdocform=(<<SUPDOCFORM);
+	<form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
+	$fileupload
+	<br />
+	<br />
+	<span class="LC_nobreak">
+	$checkbox
+	</span>
+	<br /><br />
+	$lt{'comment'}:<br />
+	<textarea cols=50 rows=4 name='comment'>
+	</textarea>
+	<br />
+	<input type="hidden" name="folderpath" value="$path" />
+	<input type="hidden" name="cmd" value="upload_supplemental" />
+	<span class="LC_nobreak">
+	<input type="submit" value="$lt{'upld'}" />
+	 $help{'Uploading_From_Harddrive'}
+	</span>
+	</form>
+SUPDOCFORM
+
+	my $supnewfolderform=(<<SNFFORM);
+	<form action="/adm/coursedocs" method="post" name="supnewfolder">
+	<input type="hidden" name="folderpath" value="$path" />
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newfolder" type="button"
+	onClick="javascript:makenewfolder(this.form,'$folderseq');"
+	value="$lt{'newf'}" /> $help{'Adding_Folders'}
+	</span>
+	</form>
+SNFFORM
+
+
+	my $supnewextform=(<<SNEFORM);
+	<form action="/adm/coursedocs" method="post" name="supnewext">
+	<input type="hidden" name="folderpath" value="$path" />
+	<input type="hidden" name="importdetail" value="" />
+	<span class="LC_nobreak">
+	<input name="newext" type="button" 
+	onClick="javascript:makenewext('supnewext');"
+	value="$lt{'extr'}" /> $help{'Adding_External_Resource'}
+	</span>
+	</form>
+SNEFORM
+
+	my $supnewsylform=(<<SNSFORM);
+	<form action="/adm/coursedocs" method="post" name="supnewsyl">
+	<input type="hidden" name="folderpath" value="$path" />
+	<input type="hidden" name="importdetail" 
+	value="Syllabus=/public/$coursedom/$coursenum/syllabus" />
+	<span class="LC_nobreak">
+	<input name="newsyl" type="submit" value="$lt{'syll'}" />
+	$help{'Syllabus'}
+	</span>
+	</form>
+SNSFORM
+
+	my $supnewaboutmeform=(<<SNAMFORM);
+	<form action="/adm/coursedocs" method="post" name="subnewaboutme">
+	<input type="hidden" name="folderpath" value="$path" />
+	<input type="hidden" name="importdetail" 
+	value="$plainname=/adm/$udom/$uname/aboutme" />
+	<span class="LC_nobreak">
+	<input name="newaboutme" type="submit" value="$lt{'mypi'}" />
+	$help{'My Personal Information Page'}
+	</span>
+	</form>
+SNAMFORM
+
+
+
+my %suporderhash = (
+                'ee' => 'New Document',
+                'ff' => 'Special Documents',
+                'zz' => 'Hide all Options',
+                );
+
+my %supnamehash = (
+                'New Document' => $supupdocform,
+                'Special Documents' => $supnewfolderform.'<br />'.$supnewextform.'<br />'.$supnewsylform.'<br />'.$supnewaboutmeform,
+                );
+
+my $tid='2';
+my $content='content';
+my $navigation='navigation';
+my $varscd = 'Supplemental Course Documents';
+
+$r->print(&generate_edit_table($tid,$content,$navigation,$varscd,\%supnamehash,\%suporderhash));
+my $error = &editor($r,$coursenum,$coursedom,$folder,$allowed,'',$type);
+       if ($error) {
+           $r->print('<p><span class="LC_error">'.$error.'</span></p>');
        }
-    }
-    $r->print('</table>');
+$r->print('</div>');
+	} 
+   }
+$r->print('<div class="LC_ContentBox" id="Special Admin Options" style="display: none;">');
+$r->print(&generate_admin_options($containertag,$uploadtag,\%help,\%env));
+$r->print('</div>');
+$r->print('</div>');
     if ($allowed) {
 	$r->print('
 <form method="post" name="extimport" action="/adm/coursedocs">
@@ -3224,20 +3301,73 @@ ENDSUPFORM
  }
  $r->print(&Apache::loncommon::end_page());
  return OK;
+} 
+
+sub generate_admin_options {
+  my ($containertag,$uploadtag,$help_ref,$env_ref) = @_;
+ my %lt=&Apache::lonlocal::texthash(
+                                         'vc' => 'Verify Content',
+                                         'cv' => 'Check/Set Resource Versions',
+                                         'ls' => 'List Symbs',
+                                         'sl' => 'Show Log'
+                                          );
+  my %help = %{$help_ref};
+  my %env = %{$env_ref};
+  my $dumpbut=&dumpbutton();
+  my $exportbut=&exportbutton();
+  return (<<ENDOPTIONFORM);
+ <form action="/adm/coursedocs" method="post" name="courseverify">
+   <ul style="list-style-type:none">
+       <li>
+           <input type="submit" name="verify" value="$lt{'vc'}" />$help{'Verify_Content'}
+       </li>
+       <li>
+           <input type="submit" name="versions" value="$lt{'cv'}" />$help{'Check_Resource_Versions'}
+       </li>
+       <li>
+           $dumpbut
+       </li>
+       <li>
+           $exportbut
+       </li>
+       <li>
+          <input type="submit" name="listsymbs" value="$lt{'ls'}" />
+        </li>
+        <li>
+          <input type="hidden" name="folder" value="$env{'form.folder'}" />
+          <input type="submit" name="docslog" value="$lt{'sl'}" />
+        </li>
+   </ul>
+ </form>
+<!-- <div style="clear: both; height: 0px;">&nbsp;</div>-->
+ENDOPTIONFORM
+
 }
 
-sub concept_test_builder {
-    my ($r) = @_;
-    $r->print(&Apache::loncommon::start_page('Assemble Test'));
-    &Apache::londocsgci::setdefaults();
-    if ($env{'form.phase'} eq 'storemap') {
-          &Apache::londocsgci::evaluate();
-          &Apache::londocsgci::store($r);
-    }
-    &Apache::londocsgci::load();
-    &Apache::londocsgci::listresources($r);
-    $r->print(&Apache::loncommon::end_page());
-    return;
+
+sub generate_edit_table {
+    my ($tid,$content,$navigation,$varcd,$namehash_ref,$orderhash_ref) = @_;
+    my %namehash = %{$namehash_ref};
+    my %orderhash = %{$orderhash_ref};
+    my $form;
+
+    $form = '<div class="LC_ContentBoxSpecial"><h4 class="LC_hcell">'.&mt($varcd).'</h4>';
+    $form .= '<ul id="'.$navigation.$tid.'" class="LC_TabContent">';
+    foreach my $name (sort(keys(%orderhash))){
+        if($name eq 'zz'){
+            $form .= '<span class="LC_Right"><li onclick="javascript:hideAll(this, \''.$navigation.$tid.'\' ,\''.$content.$tid.'\');" class="active">'.&mt($orderhash{$name}).'</li></span>';
+        }else{
+            $form .= '<li onclick="javascript:showPage(this, \''.$tid.$orderhash{$name}.'\', \''.$navigation.$tid.'\',\''.$content.$tid.'\');">'.&mt($orderhash{$name}).'</li>';
+        }
+    }
+    $form .= '</ul>';
+    $form .= '<div id="'.$content.$tid.'" style="padding: 0 0; margin: 0 0;">';
+    foreach my $field (keys(%namehash)){
+        $form .= '<div id="'.$tid.$field.'" class="LC_ContentBox" style="display: none;">'.$namehash{$field}.'</div>';
+      }
+    $form .= '</div></div>';
+    
+    return $form;
 }
 
 sub editing_js {
@@ -3249,12 +3379,12 @@ sub editing_js {
                                           p_mnp => 'Name of New Page',
                                           t_mnp => 'New Page',
                                           p_mxu => 'Title for the Uploaded Score',
-                                          p_msp => 'Name of the Simple Course Page',
+                                          p_msp => 'Name of Simple Course Page',
                                           p_msb => 'Title for the Problem',
                                           p_mdb => 'Title for the Drop Box',
                                           p_mbb => 'Title for the Discussion Board',
-                                          p_mab => "Enter user:domain for User's 'About Me' Page",
-                                          p_mab2 => "About [_99]",
+                                          p_mab => "Enter user:domain for User's Personal Information Page",
+                                          p_mab2 => 'Personal Information Page of ',
                                           p_mab_alrt1 => 'Not a valid user:domain',
                                           p_mab_alrt2 => 'Please enter both user and domain in the format user:domain',
                                           p_chn => 'New Title',
@@ -3302,7 +3432,7 @@ function edittext(targetname,residx,titl
 
 function makeexamupload() {
    var title=prompt('$lt{"p_mxu"}');
-   if (title) { 
+   if (title) {
     this.document.forms.newexamupload.importdetail.value=
 	escape(title)+'=/res/lib/templates/examupload.problem';
     this.document.forms.newexamupload.submit();
@@ -3311,7 +3441,7 @@ function makeexamupload() {
 
 function makesmppage() {
    var title=prompt('$lt{"p_msp"}');
-   if (title) { 
+   if (title) {
     this.document.forms.newsmppg.importdetail.value=
 	escape(title)+'=/adm/$udom/$uname/$now/smppg';
     this.document.forms.newsmppg.submit();
@@ -3320,7 +3450,7 @@ function makesmppage() {
 
 function makesmpproblem() {
    var title=prompt('$lt{"p_msb"}');
-   if (title) { 
+   if (title) {
     this.document.forms.newsmpproblem.importdetail.value=
 	escape(title)+'=/res/lib/templates/simpleproblem.problem';
     this.document.forms.newsmpproblem.submit();
@@ -3329,7 +3459,7 @@ function makesmpproblem() {
 
 function makedropbox() {
    var title=prompt('$lt{"p_mdb"}');
-   if (title) { 
+   if (title) {
     this.document.forms.newdropbox.importdetail.value=
         escape(title)+'=/res/lib/templates/DropBox.problem';
     this.document.forms.newdropbox.submit();
@@ -3354,91 +3484,120 @@ function makeabout() {
 	   if ((comp[0]) && (comp[1])) {
 	       this.document.forms.newaboutsomeone.importdetail.value=
 		   '$lt{"p_mab2"}'+escape(user)+'=/adm/'+comp[1]+'/'+comp[0]+'/aboutme';
-	       this.document.forms.newaboutsomeone.submit();
-	   } else {
-               alert("$lt{'p_mab_alrt1'}");
-           }
-       } else {
-           alert("$lt{'p_mab_alrt2'}");
-       }
+       this.document.forms.newaboutsomeone.submit();
+   } else {
+       alert("$lt{'p_mab_alrt1'}");
    }
+} else {
+   alert("$lt{'p_mab_alrt2'}");
+}
+}
 }
 
 function makeims() {
-    var caller = document.forms.ims.folder.value;
-    var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one";
-    newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes");
-    newWindow.location.href = newlocation;
+var caller = document.forms.ims.folder.value;
+var newlocation = "/adm/imsimportdocs?folder="+caller+"&phase=one";
+newWindow = window.open("","IMSimport","HEIGHT=700,WIDTH=750,scrollbars=yes");
+newWindow.location.href = newlocation;
 }
 
 
 function finishpick() {
-    var title=this.document.forms.extimport.title.value;
-    var url=this.document.forms.extimport.url.value;
-    var form=this.document.forms.extimport.useform.value;
-    var residx=this.document.forms.extimport.residx.value;
-    eval('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+'='+residx+'";this.document.forms.'+form+'.submit();');
+var title=this.document.forms.extimport.title.value;
+var url=this.document.forms.extimport.url.value;
+var form=this.document.forms.extimport.useform.value;
+var residx=this.document.forms.extimport.residx.value;
+eval('this.document.forms.'+form+'.importdetail.value="'+title+'='+url+'='+residx+'";this.document.forms.'+form+'.submit();');
 }
 
 function changename(folderpath,index,oldtitle,container,pagesymb) {
-    var title=prompt('$lt{"p_chn"}',oldtitle);
-    if (title) {
-	this.document.forms.renameform.markcopy.value=-1;
-	this.document.forms.renameform.title.value=title;
-	this.document.forms.renameform.cmd.value='rename_'+index;
-        if (container == 'sequence') {
-	    this.document.forms.renameform.folderpath.value=folderpath;
-        }
-        if (container == 'page') {
-            this.document.forms.renameform.pagepath.value=folderpath;
-            this.document.forms.renameform.pagesymb.value=pagesymb;
-        }
-        this.document.forms.renameform.submit();
-    }
+var title=prompt('$lt{"p_chn"}',oldtitle);
+if (title) {
+this.document.forms.renameform.markcopy.value=-1;
+this.document.forms.renameform.title.value=title;
+this.document.forms.renameform.cmd.value='rename_'+index;
+if (container == 'sequence') {
+    this.document.forms.renameform.folderpath.value=folderpath;
+}
+if (container == 'page') {
+    this.document.forms.renameform.pagepath.value=folderpath;
+    this.document.forms.renameform.pagesymb.value=pagesymb;
+}
+this.document.forms.renameform.submit();
+}
 }
 
 function removeres(folderpath,index,oldtitle,container,pagesymb,skip_confirm) {
-    if (skip_confirm || confirm('$lt{"p_rmr1"}\\n\\n$lt{"p_rmr2a"} "'+oldtitle+'" $lt{"p_rmr2b"}')) {
-	this.document.forms.renameform.markcopy.value=-1;
-	this.document.forms.renameform.cmd.value='del_'+index;
-        if (container == 'sequence') {
-            this.document.forms.renameform.folderpath.value=folderpath;
-        }
-        if (container == 'page') {
-            this.document.forms.renameform.pagepath.value=folderpath;
-            this.document.forms.renameform.pagesymb.value=pagesymb;
-        }
-        this.document.forms.renameform.submit();
-    }
+if (skip_confirm || confirm('$lt{"p_rmr1"}\\n\\n$lt{"p_rmr2a"} "'+oldtitle+'" $lt{"p_rmr2b"}')) {
+this.document.forms.renameform.markcopy.value=-1;
+this.document.forms.renameform.cmd.value='del_'+index;
+if (container == 'sequence') {
+    this.document.forms.renameform.folderpath.value=folderpath;
+}
+if (container == 'page') {
+    this.document.forms.renameform.pagepath.value=folderpath;
+    this.document.forms.renameform.pagesymb.value=pagesymb;
+}
+this.document.forms.renameform.submit();
+}
 }
 
 function cutres(folderpath,index,oldtitle,container,pagesymb,folder,skip_confirm) {
-    if (skip_confirm || confirm('$lt{"p_ctr1a"}\\n$lt{"p_ctr1b"}\\n\\n$lt{"p_ctr2a"} "'+oldtitle+'" $lt{"p_ctr2b"}')) {
-	this.document.forms.renameform.cmd.value='cut_'+index;
-	this.document.forms.renameform.markcopy.value=index;
-	this.document.forms.renameform.copyfolder.value=folder+'.'+container;
-        if (container == 'sequence') {
-            this.document.forms.renameform.folderpath.value=folderpath;
-        }
-        if (container == 'page') {
-            this.document.forms.renameform.pagepath.value=folderpath;
-            this.document.forms.renameform.pagesymb.value=pagesymb;
-        }
-        this.document.forms.renameform.submit();
-    }
+if (skip_confirm || confirm('$lt{"p_ctr1a"}\\n$lt{"p_ctr1b"}\\n\\n$lt{"p_ctr2a"} "'+oldtitle+'" $lt{"p_ctr2b"}')) {
+this.document.forms.renameform.cmd.value='cut_'+index;
+this.document.forms.renameform.markcopy.value=index;
+this.document.forms.renameform.copyfolder.value=folder+'.'+container;
+if (container == 'sequence') {
+    this.document.forms.renameform.folderpath.value=folderpath;
+}
+if (container == 'page') {
+    this.document.forms.renameform.pagepath.value=folderpath;
+    this.document.forms.renameform.pagesymb.value=pagesymb;
+}
+this.document.forms.renameform.submit();
+}
 }
 
 function markcopy(folderpath,index,oldtitle,container,pagesymb,folder) {
-    this.document.forms.renameform.markcopy.value=index;
-    this.document.forms.renameform.copyfolder.value=folder+'.'+container;
-    if (container == 'sequence') {
-	this.document.forms.renameform.folderpath.value=folderpath;
-    }
-    if (container == 'page') {
-	this.document.forms.renameform.pagepath.value=folderpath;
-	this.document.forms.renameform.pagesymb.value=pagesymb;
-    }
-    this.document.forms.renameform.submit();
+this.document.forms.renameform.markcopy.value=index;
+this.document.forms.renameform.copyfolder.value=folder+'.'+container;
+if (container == 'sequence') {
+this.document.forms.renameform.folderpath.value=folderpath;
+}
+if (container == 'page') {
+this.document.forms.renameform.pagepath.value=folderpath;
+this.document.forms.renameform.pagesymb.value=pagesymb;
+}
+this.document.forms.renameform.submit();
+}
+
+function unselectInactive(nav) {
+currentNav = document.getElementById(nav);
+currentLis = currentNav.getElementsByTagName('LI');
+for (i = 0; i < currentLis.length; i++) {
+	currentLis[i].className = 'i';
+}
+}
+
+function hideAll(current, nav, data) {
+unselectInactive(nav);
+current.className = 'active';
+currentData = document.getElementById(data);
+currentDivs = currentData.getElementsByTagName('DIV');
+for (i = 0; i < currentDivs.length; i++) {
+	if(currentDivs[i].className == 'LC_ContentBox'){
+		currentDivs[i].style.display = 'none';
+	}
+}
+}
+
+function showPage(current, pageId, nav, data) {
+	hideAll(current, nav, data);
+	unselectInactive(nav);
+	current.className = 'active';
+	currentData = document.getElementById(pageId);
+	currentData.style.display = 'block';
+	return false;
 }
 
 ENDNEWSCRIPT
@@ -3466,7 +3625,7 @@ Available help topics
 
 =item mapread()
 
-Mapread read maps into LONCAPA::map:: global arrays 
+Mapread read maps into LONCAPA::map:: global arrays
 @order and @resources, determines status
 sets @order - pointer to resources in right order
 sets @resources - array with the resources with correct idx