--- loncom/interface/londocs.pm	2008/12/15 06:09:37	1.322
+++ loncom/interface/londocs.pm	2009/01/30 09:05:36	1.330
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Documents
 #
-# $Id: londocs.pm,v 1.322 2008/12/15 06:09:37 raeburn Exp $
+# $Id: londocs.pm,v 1.330 2009/01/30 09:05:36 tempelho Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -59,7 +59,6 @@ my $hadchanges;
 my %help=();
 
 
-
 sub mapread {
     my ($coursenum,$coursedom,$map)=@_;
     return
@@ -120,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.
@@ -265,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');
 }
 
 
@@ -280,6 +276,15 @@ sub exportcourse {
                                                $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 '.lc($type).' to IMS content package').
+                  '<h2>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'});
+        return;
+    }
     my $it=$navmap->getIterator(undef,undef,undef,1,undef,undef);
     my $curRes;
     my $outcome;
@@ -471,8 +476,7 @@ function containerCheck(item) {
 	$r->print($display.'</table>'.
                   '<p><input type="hidden" name="finishexport" value="1">'.
                   '<input type="submit" name="exportcourse" value="'.
-                  &mt('Export '.$type.' DOCS').'" /></p></form>'.
-		  &Apache::loncommon::end_page());
+                  &mt('Export '.$type.' DOCS').'" /></p></form>');
     }
 }
 
@@ -1280,7 +1284,7 @@ sub do_paste_from_buffer {
 # Maps need to be copied first
     if (($url=~/\.(page|sequence)$/) && ($url=~/^\/uploaded\//)) {
 	$title=&mt('Copy of').' '.$title;
-	my $newid=$$.time;
+	my $newid=$$.int(rand(100)).time;
 	my ($oldid,$ext) = ($url=~/^(.+)\.(\w+)$/);
         if ($oldid =~ m{^(/uploaded/\Q$coursedom\E/\Q$coursenum\E/)(\D+)(\d+)$}) {
             my $path = $1;
@@ -2136,19 +2140,27 @@ List Symbs
 sub list_symbs {
     my ($r) = @_;
 
+    my $type = &Apache::loncommon::course_type();
     $r->print(&Apache::loncommon::start_page('Symb List'));
     $r->print(&Apache::lonhtmlcommon::breadcrumbs('Symb List'));
     my $navmap = Apache::lonnavmaps::navmap->new();
-    $r->print("<pre>\n");
-    foreach my $res ($navmap->retrieveResources()) {
-	$r->print($res->compTitle()."\t".$res->symb()."\n");
+    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'});
+    } else {
+        $r->print("<pre>\n");
+        foreach my $res ($navmap->retrieveResources()) {
+	    $r->print($res->compTitle()."\t".$res->symb()."\n");
+        }
+        $r->print("\n</pre>\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();
@@ -2506,6 +2518,7 @@ sub handler {
     return OK if $r->header_only;
     my $type = &Apache::loncommon::course_type();
 
+
 # --------------------------------------------- Initialize help topics for this
     foreach my $topic ('Adding_Course_Doc','Main_Course_Documents',
 	               'Adding_External_Resource','Navigate_Content',
@@ -2559,6 +2572,8 @@ sub handler {
     my $showdoc=0;
     my $containertag;
     my $uploadtag;
+
+
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
 					    ['folderpath','pagepath',
 					     'pagesymb']);
@@ -2632,9 +2647,10 @@ sub handler {
     }
 # -------------------------------------------------------------------- Body tag
     $script = '<script type="text/javascript">'."\n".$script."\n".'</script>';
-	my @brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}];
+    my $brcrum = [{href=>"/adm/createuser",text=>"$type Documents"}];
     $r->print(&Apache::loncommon::start_page("$type Documents", $script,
-					     {'force_register' => $showdoc, bread_crumbs => @brcrum}).
+				    {'force_register' => $showdoc,
+                                     'bread_crumbs' => $brcrum}).
 	      &Apache::loncommon::help_open_menu('','',273,'RAT'));
   
   my %allfiles = ();
@@ -2730,9 +2746,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',
@@ -2758,13 +2773,86 @@ sub handler {
                 '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',
@@ -2784,41 +2872,8 @@ 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
+       ##############alter hashaufruf
+       $r->print(&generate_admin_options($containertag,$uploadtag,\%lt,\%help,\%env));
        $r->print(&Apache::loncommon::help_open_topic('Docs_Adding_Course_Doc',
 		     &mt('Editing the Table of Contents for your '.$type)));
     }
@@ -2861,223 +2916,264 @@ ENDCOURSEVERIFY
 	    $container='page';
 	}
 	my $readfile='/uploaded/'.$coursedom.'/'.$coursenum.'/'.$folder.'.'.$container;
+
+
+
+	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 Info'}
+	</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
+
        $r->print(<<ENDFORM);
+
+
 <table class="LC_docs_adddocs">
-<tr>
+<!-- <tr>
 <th>$lt{'uplm'}</th>
 <th>$lt{'impp'}</th>
 <th>$lt{'spec'}</th>
-</tr>
+</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>
+$fileuploadform
 </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>
+$simpleeditdefaultform
 <hr />
-<form action="/adm/groupsort" method="post" name="recover">
-<input type="button" name="recovermap" onClick="javascript:groupopen('$readfile',1,0)" value="$lt{'reco'}" />
-</form>
+$recoverform
 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>
+$extresourcesform
+	<br />
+$imspform
 ENDFORM
        }
        $r->print('</td><td>');
        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>
+
+
+
+	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
+
+	my $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 Files'}
+	</span>
+	</form>
+NGFFORM
+
+
+           my $specialdocumentsform=(<<ENDFORM);
+<br />
+$newfolderform
+<br />
+$newpageform
+<br />
+$newsylform
+<br />
+$newnavform
+<br />
+$newsmppageform
+<br />
+$newsmpproblemform
+<br />
+$newdropboxform
+<br />
+$newexuploadform
+<br />
+$newbulform
+<br />
+$newaboutmeform
+<br />
+$newaboutsomeoneform
+<br />
+$newgroupfileform
+<br />
+$newrosterform
 ENDFORM
-       }
+
+$r->print($specialdocumentsform);
+my %orderhash = (
+                'aa_eins' => 'New Document',
+                'bb_zwei' => 'Published Documents',
+                'cc_drei' => 'Special Documents',
+		'dd_vier' => 'More Options',
+                'zz_hide' => 'Hide all Option',
+                );
+my %namehash = (
+                'New Document' => $fileuploadform,
+                'Published Documents' => $simpleeditdefaultform,
+                'Special Documents' => $specialdocumentsform,
+		'More Options' => $extresourcesform.'<br />'.$imspform.'<br />'.$recoverform,
+                'drei' => 'dr',
+                );
+$r->print(&generate_edit_table(\%namehash,\%orderhash)); 
+      }
        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>
+$newsmpproblemform
+<br />
+$newexuploadform
 ENDBLOCK
        }
        $r->print('</td></tr>'."\n".
 '</table>');
+#$r->print(&generate_edit_table(\%namehash,\%orderhash));
        $r->print('</td></tr>');
     }
 # ----------------------------------------------------- Supplemental documents
@@ -3104,71 +3200,96 @@ ENDBLOCK
 	       '.sequence';
 
 	   my $path = &HTML::Entities::encode($env{'form.folderpath'},'<>&"');
+
+	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 Info'}
+	</span>
+	</form>
+SNAMFORM
+
 	   $r->print(<<ENDSUPFORM);
-<table class="LC_docs_adddocs"><tr>
-<th>$lt{'upls'}</th>
-<th>$lt{'spec'}</th>
-</tr>
+<ul class="LC_TabContent">
+<li>$lt{'nd'}</li>
+<li>$lt{'sd'}</li>
+<li>$lt{'hao'}</li>
+</ul>
+<table class="LC_docs_adddocs">
 <tr><td>
-<form action="/adm/coursedocs" method="post" enctype="multipart/form-data">
-<input type="file" name="uploaddoc" size="40" />
+$supupdocform
+</td>
+<td>
+$supnewfolderform
 <br />
+$supnewextform
 <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>
+$supnewsylform
 <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>
+$supnewaboutmeform
 </td></tr>
 </table></td></tr>
 ENDSUPFORM
@@ -3184,6 +3305,7 @@ ENDSUPFORM
   <input type="hidden" name="residx" />
 </form>');
     }
+
   } else {
       unless ($upload_result eq 'phasetwo') {
 # -------------------------------------------------------- This is showdoc mode
@@ -3198,6 +3320,76 @@ ENDSUPFORM
  return OK;
 } 
 
+sub generate_admin_options {
+  my ($containertag,$uploadtag,$lt_ref,$help_ref,$env_ref) = @_;
+  my %lt = %{$lt_ref};
+  my %help = %{$help_ref};
+  my %env = %{$env_ref};
+  my $dumpbut=&dumpbutton();
+  my $exportbut=&exportbutton();
+  return (<<ENDOPTIONFORM);
+ <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">
+   <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 generate_edit_table {
+    my ($namehash_ref,$orderhash_ref) = @_;
+    #my %optionhash = %{$optionhash_ref};         #id verlinkt mit inhalt
+    my %namehash = %{$namehash_ref};             #name verlinkt mit id
+    my %orderhash = %{$orderhash_ref};           #name mit kürzel verlinkt mit name
+    my $form;
+    $form = '<div class="LC_ContentBoxSpecial"><h4 class="LC_hcell">'.&mt('Upload Course Documents').'</h4>';
+    $form .= '<ul class="LC_TabContent">';
+    foreach my $name (sort(keys(%orderhash))){
+        if($name eq 'zz_hide'){
+            $form .= '<li onclick="javascript:hideAll();">'.&mt($orderhash{$name}).'</li>';
+        }else{
+            $form .= '<li onclick="javascript:showPage(this, \''.$orderhash{$name}.'\');">'.&mt($orderhash{$name}).'</li>';
+        }
+    }
+    $form .= '<div id="content" style="padding: 0 0; margin: 0 0;">';
+    foreach my $field (keys(%namehash)){
+        $form .= '<div id="'.$field.'" class="LC_ContentBox" style="display: none;">'.$namehash{$field}.'</div>';
+    }
+    $form .= '</div></div>';
+    return $form;
+}
 
 sub editing_js {
     my ($udom,$uname) = @_;
@@ -3400,6 +3592,22 @@ function markcopy(folderpath,index,oldti
     this.document.forms.renameform.submit();
 }
 
+function hideAll() {
+	currentData = document.getElementById('content');
+	currentDivs = currentData.getElementsByTagName('div');
+	for (i = 0; i < currentDivs.length; i++) {
+	currentDivs[i].style.display = 'none';
+	}
+}
+
+function showPage(current, pageId) {
+	hideAll();
+	current.className = 'active';
+	currentData = document.getElementById(pageId);
+	currentData.style.display = 'block';
+	return false;
+}
+
 ENDNEWSCRIPT
 }
 1;